CMLabs · Psyclone AIOS

11. Roadmap Features

Where the platform is heading — and what has already arrived. Supervisors, node-local builders and LLM connections shipped in Psyclone AIOS v2.2 (22 August 2026); the LLM-authored-code tier and external auto-start remain roadmap. Every section below is badged with its status as of v2.2.

Read this first. This page mixes shipped and unshipped features, so check the badge on each heading. Items marked Shipped are current capability in v2.2 and are documented in full elsewhere in these guides; items marked Roadmap are design direction, not current capability. Several of the XML tags below (<supervisor>, <executable>) are already accepted by the parser but are stubs — using them today has no effect. Do not build production plans on any feature here until it appears in release notes with a Shipped status.

Supervisors Shipped in v2.2 (LLM-backed tiers roadmap)

Status in v2.2. The Startup Supervisor shipped on 22 August 2026 and performs deterministic bring-up orchestration — it sequences system start-up from the Root space and publishes Psyclone.SystemStatus on a 5-second cadence. See User Guide §13 and chapter 11 for the shipped behaviour. Note that a Supervisor is not declared with a <supervisor> tag: that tag is still parsed-and-ignored. You write a continuous crank component that owns a Supervisor object. Custom Supervisors (a crank component owning a Supervisor object) are not yet fully supported — fuller support is planned. The observe-and-decide specialisations below remain roadmap.

The <supervisor> tag exists in the grammar today as a log-only stub. The plan wires it into a real global supervisor: a component that observes the system and decides module lifecycle changes — while the actual execution of every change is delegated to the node-local builders below. Planned supervisor specialisations:

  • sim-manager — a test-harness supervisor (first to be built, in non-LLM form; see below).
  • performance-manager — load/latency-driven placement and algorithm decisions (later phase).
  • ad-hoc-manager — operator- or application-directed restructuring (later phase).

Every supervisor is planned to get a standard PsyProbe entry: a one-line main-page summary expanding to a full page whose top is a standard visualisation and whose body lists every change the supervisor has made (modules built/started/removed, nodes, services). A programmable interactive bottom panel is a later phase.

Node-local builder Shipped in v2.2 (LLM tier roadmap)

Status in v2.2. The node-local Builder shipped on 22 August 2026: a declarative bake pipeline with RecipeID identity, a two-stream .status/.data protocol and governed control verbs. Full documentation: User Guide §13 (usage) and chapter 11 (wire protocol, including multi-node caveats). The LLM tier described below — a builder that authors code from a textual description — is not shipped and remains roadmap; the shipped pipeline is supervised, not autonomous.

Every node gets a builder: the single local executor for all module actions — create, load/execute, delete, move-to-node, and the registration updates those cause. Supervisors decide what; the builder on the target node decides how and does it locally. Two tiers:

  • Basic (non-LLM) tier — part of the first roadmap milestone. Present automatically on every node (declaring a <builder> replaces it). Accepts a module spec with Python code supplied and builds/loads/deletes/moves it. Asking a basic builder for more than it can do (e.g. build C++ or build from a description) is rejected with a typed error message.
  • LLM tier — later phase. Uses a named <llm> connection; can build Python or C++ from code or from a textual description.

All builder actions are driven by standard system messages, so any component can command any builder: SYS_BUILDER_CREATE, SYS_BUILDER_LOAD / SYS_BUILDER_EXECUTE, SYS_BUILDER_DELETE, SYS_BUILDER_MOVE, SYS_BUILDER_REGISTER_UPDATE, with results published as SYS_BUILDER_RESULT (ok/error + error type). Supervisor–builder communication always rides the existing message bus via the node — no dedicated control channel.

Module migration fits here: the machinery for moving components between nodes is mostly built in the engine today (see chapter 8); the roadmap makes move-to-node a builder-owned action driving that existing machinery via source and target builders.

Non-LLM sim-manager Roadmap

The first concrete supervisor: a test harness that builds a set of modules to run a specific simulation/test, lets them run, checks the result, and reports. The whole planned loop:

  1. Build/load a named set of modules on named node(s), via the target builders.
  2. Let them run.
  3. The modules collect all data into one final output message.
  4. Check it against XML-declared success criteria — named values typed int/float/string; numeric checks are min/max ranges, string checks are matches with optional wildcards.
  5. Publish success/fail and clean up.

Kick-off is by system message (so any module can start a simulation), lifecycle events (created, started, status, success, fail) are published to any subscriber, and a running simulation can be terminated by message. Simulations may span multiple named nodes from the start; isolation is a spec design decision, not enforced. The non-LLM version runs one fixed, pre-supplied plan; candidate regeneration (trying new module variants automatically) is an LLM-tier follow-on.

<triggergroup> declarative join Shipped

This has landed<triggergroup> is now a real declarative join operator, no longer a stub. The node-side join engine buffers member messages by tag, activates the crank once per complete set (wakeups ≈ joins, not one per member), coalesces repeats per policy (dup="latest|keep"), and delivers the completed set in one activation keyed by trigger name (PsyAPI::waitForNewMessageGroup). Group maxage/timeout eviction, count/min (N-of-M), within=/time= windows, snapshot mode, optional members, per-member maxage, sliding window, debounce and order="strict" are all supported. See the full attribute reference in the User Guide, chapter 13.

<llm> named connections Shipped in v2.2 (some facets roadmap)

Status in v2.2. LLM Connections shipped in CMSDK 2.2.0 on 22 August 2026: the reserved <llm> element with its nested <llmvendor> descriptor, an LLMConnection object, request/response and streaming call modes, SSE / HTTP-chunked / AWS event-stream parsers, and credential references resolved from environment variables or files (inline secrets are rejected). See User Guide §16 for usage and chapter 5 for credential and TLS operations. Facets in the forward design below that have not shipped: global="true" master-only proxying, preloaded per-connection context windows, spec-set token/cost limit enforcement, and the first-party PsyProbe LLM section.

A planned platform primitive, parallel to <catalog>/<whiteboard>: named LLM connections defined globally in the spec; any code asks for a connection by name and receives an LLM object. Documented now so the XML and message surface stays stable — none of it is built. Key design points:

  • Providers: a connection points at a direct model (e.g. Gemini with a key) or a broker (e.g. Bedrock); Gemini, Bedrock, OpenAI and Anthropic are the targets.
  • Per-connection context window, preloaded on startup with generic Psyclone info, this-system info, connection-specific context, and role-specific context for system LLMs (supervisor, builder, sim, perf).
  • global="true" master-only proxying: the connection is instantiated and owned only by the master node; other nodes get a transparent proxy object that marshals calls to the master over native CMSDK networking — so nodes without internet access still get full LLM access with the same object interface. A local explicit connection overrides the global proxy. Context for a global connection defaults to per-requesting-node; a single shared context is an explicit opt-in (shared="true").
  • Native transport only: no third-party HTTP/WS libraries in the core binary; connectors ride CMSDK’s own http/websocket transport (including SSE streaming).
  • Credentials never in XML: the spec references a secret by logical name (apikeyref="gemini_main"); distribution to worker nodes is planned over the verified TLS node channel, cached in memory only, with per-node environment-variable override.
  • Lifecycle per node: the LLM object tracks tokens, connection status and (where the provider surfaces it) cost; the spec can set token and cost limits. A PsyProbe LLM section is planned as first-party: always visible, collapsed = aggregate rollup (total tokens/cost, active/failed counts), expanded = per-connection detail, with cost/token fields nullable so it degrades to “cost: n/a” rather than fake zeros.

The LLM-tier builder and every LLM-backed supervisor depend on this primitive; the basic builder and non-LLM sim-manager do not.

<executable> external auto-start Roadmap — in progress

The spec already accepts <executable consoleoutput=".." autorestart="..">cmdline</executable> on a component, but the command line is parsed and never launched. The in-progress work launches the declared process when its external space is created: the command line runs via the SDK process API with %nodeid% substitution, the child PID is tracked so node shutdown cleans it up, and consoleoutput/autorestart are honoured. Node-level <executable name="X" cmdline="..."> declarations (one executable hosting many modules) are part of the same design. This unblocks auto-started external modules and is a prerequisite for the builder harness above. Treat it as roadmap until it is merged and appears in test=list/release notes.

Status summary

FeatureSpec surface todayStatus
Startup Supervisor (deterministic bring-up)Crank component owning a Supervisor object; <supervisor> tag still parsed-and-ignoredShipped v2.2 — see User Guide §13
Observe-and-decide supervisors (sim/perf/ad-hoc)Roadmap (sim-manager first)
Node-local Builder (bake pipeline, basic tier)Auto-present on every node; RecipeID, .status/.data streams, control verbsShipped v2.2 — see ch. 11
Builder LLM tier / LLM sim-manager (LLM-authored code)Roadmap (later phase; shipped pipeline is supervised, not autonomous)
Non-LLM sim-manager harnessRoadmap
<triggergroup> declarative joinFully parsed + join engineShipped — see User Guide ch. 13
<llm> named connections<llm> + <llmvendor> parsed; LLMConnection object; request/response + streamingShipped v2.2 (CMSDK) — see User Guide §16
<llm> global proxying, preloaded contexts, token/cost enforcement, PsyProbe LLM sectionRoadmap
Multi-node bring-up across separate OS processesVerified by the standard test=psymulti test (3 real nodes)Shipped v2.2 — see ch. 8
<executable> auto-startParsed, never launchedRoadmap (in progress)
Note. For what is shipped and current — command-line variable overrides, per-module logging, SSL verification by default — see chapters 1, 5 and 6. When a roadmap item ships, this page moves it to the relevant chapter with a Shipped badge.
Psyclone AIOS · CMLabs