Manifest and distribution reference
Contract versions
The public guest manifest is glixo.extension.json and follows the version 2 extension schema (schemaVersion: 2). It carries guest package identity, contribution declarations, requested grants, configuration, and component metadata. A manifest version is independent from CLI, SDK, catalog API, distribution metadata, and provider HTTP/WIT ABI versions.
The current distribution metadata envelope is glixo.module.json version 1; publisher signature canonicalization is version 2. These remain separate from manifest version 2 and provider HTTP/WIT ABI 3.0.0. The envelope may describe package bytes containing a v2 manifest and component, but it does not replace or redefine that manifest.
The field names differ by object: the guest manifest uses schemaVersion: 2, the outer glixo.module.json uses manifestVersion: 1, and publisher signatures use canonicalizationVersion: 2. The generic contribution WIT world is 1.0.0; the provider HTTP/WIT ABI is 3.0.0. These independent axes must not be substituted for one another. The generated reference links the exact schema and source identities. Treat generated files as read-only snapshots; regenerate them from their pinned source instead of editing the portal copy.
Host-issued handles
Public guests receive narrowly scoped handles for approved network endpoints, secrets, state, events, and invocation context. The host validates endpoint, package identity, account, contribution, grant, resource limits, cancellation, and lifecycle. Guests do not receive ambient filesystem, environment-secret, process-launch, or unrestricted network access.
Workflow extension nodes (development preview)
A workflow extension node binds an installed tools[] contribution into a workflow graph. The guest package still uses the existing signed manifest contract: each tool declares inputSchema, outputSchema, a safety class, and its component export. It requests the scoped tool.invoke permission for the specific tool ID. The Workflow Designer does not add a new manifest contribution kind.
Designer host API
The host derives the palette from verified, active tool installations that are eligible for the current account and workflow designer. Palette and configuration reads require WorkflowsRead; binding and configuration writes require WorkflowsManage. All routes require a Designer context.
| Operation | Route | Contract |
|---|---|---|
| List eligible tools | GET /vnext/workflow/extension-nodes?definitionId={definitionId} |
Returns { extensionNodes: [...] } for verified active tools eligible to the account. Each descriptor includes selectionId, title, description, package ID/version/digest, contribution ID, input/output schemas, available secret-slot metadata, and fixed runtime flags (timeoutMs: 10000, cancellable: true, idempotent: false). Tools requiring confirmation for every call are omitted. |
| Bind a tool to a draft node | PUT /vnext/workflow/definitions/{definitionId}/draft/nodes/{nodeId}/extension-binding |
Requires If-Match; body is { "selectionId": "..." }. The host re-resolves the current palette item and returns an opaque bindingId, signed schemas, non-secret defaults, secret-slot metadata, status, and the new draft ETag. |
| Read node settings | GET /vnext/workflow/definitions/{definitionId}/draft/nodes/{nodeId}/extension-configuration |
Reads the host-managed configuration resource for the node. |
| Save node settings | PUT /vnext/workflow/definitions/{definitionId}/draft/nodes/{nodeId}/extension-configuration |
Requires If-Match; body is { "bindingId": "...", "configuration": { ... }, "secrets": { ... } }, with secrets optional. The UI submits masked secret entries separately in this map; secret values are stored through the host vault and returned as redacted slot metadata, never in configuration. |
The graph stores the node kind workflow-extension-node, host-issued bindingId, and optional inputBindings; it does not store display labels, package metadata, or node configuration. A binding entry maps a tool input property to a scalar value path, for example { "text": "$.text" }. Up to 32 distinct tool properties may be bound. Paths select scalar data from the current run input or an immediately preceding node's output; the host does not coerce missing or non-scalar values.
Node configuration is a host-managed resource, not graph data. The current schema exposes vault-backed inputs only for top-level string properties annotated x-secret; the host returns their slots redacted. Nested or non-string secret fields are not supported by this editor.
Drafts may be saved before every required input is connected. Publish validates that required inputs are provided by non-secret static configuration, bindings, or current secret-slot metadata. At execution, a missing or non-scalar path value fails that node with workflow_extension_input_binding_missing. Each published workflow revision freezes the selected package digest, contribution and schema, and configuration revision. A later package update does not rewrite an existing published revision; republish to select a newer version. Before invocation the host checks the current installation, grant, and pinned digest, then dispatches through the installed contribution invoker.
The current hosted workflow path has no per-invocation confirmation presenter. A tool that requires confirmation on every call—because its confirmation is invoke or its safety class is not readonly—cannot run automatically here until a workflow approval step exists. Read-only tools without per-call confirmation can use this path after the required installation and scoped tool grant are approved.
Text Stats source identity
The workflow-text-stats C# project README describes the read-only tools[] reference using the generic contribution world; corresponding READMEs and source paths for all four languages are listed in Source identities. Its text-stats tool accepts required text plus optional counting settings and returns word and character counts. All four signed language packages passed installed workflow tests using a source-built protocol-2 runner. Tests covered published configuration, grant revocation, package changes, secrets, cancellation, and checkpoints. Stable Glixo 0.7.8 ships protocol 1, so a newer app release is needed to run this example.
Support status
Support is qualified per language, contribution, host, platform, and package revision. A green compiler build proves that a component can be produced; it does not prove that Glixo can install and invoke it. See the pinned source and evidence table below.
SDK source and build matrix
The public SDK support matrix is the source of truth for language status and build recipes. Its companion runtime version contract lists the host protocol and WIT worlds. The generated source-identity table below links the pinned source and paths. Public main is pinned at 7052b3f954418cff91439236942a6623d75e8907; its latest official GitHub run, 36995827686, passed all five workflows and validated receipts for all 40 language components. The report SHA-256 is a2c8920a4ff588ab7d2f41b4762f0026011514dbc219e71fa5c65a3ae4ee4784. This verifies source builds, not app-release support.
| Language | Pinned recipe toolchain | Status |
|---|---|---|
| Rust | Rust/Cargo 1.96.0, wit-bindgen 0.62.0, wasm-tools 1.239.0, wasm32-wasip2 |
Preview |
| Go | Go 1.27.1, componentize-go 0.4.3 | Preview |
| C# | .NET SDK 10.0.301, componentize-dotnet 0.8.0-preview00011, wit-bindgen-csharp 0.58.0 | Preview |
| TypeScript | Node.js 22.14.0, npm 10.9.2, TypeScript 6.0.3, Jco 1.35.0, componentize-js 0.23.0, esbuild 0.28.2, preview2-shim 0.25.0 | Preview |
Published CLI and SDK packages
TeamCity publication builds 4918 (CLI) and 4920 (SDK) used tested producer snapshots 4914 and 4916. Registry metadata, latest tags, package sizes, and digests were checked. Fresh consumers installed CLI 0.3.3 and scaffolded and checked examples in C#, Go, Rust, and TypeScript. Each check correctly reported artifact_not_built: the test stops after glxdev check, so this proves fresh install, scaffold, and check, not a fresh language build. The durable receipt is scripts/extensions-vnext/evidence/glxdev-0.3.3-teamcity-publication.json at app source commit 103c08ceee28c16e032d90726d0f1b928eff5f44.
| Package | Published version | Registry size | SHA-256 | npm integrity / availability |
|---|---|---|---|---|
@glixo/glxdev |
0.3.3 |
925,013 bytes | c835b6d7986833a5f5e896ea651e5d5a9aaf4bdd227494f279a7f3b7dbe372a4 |
sha512-5IhVfmS8I7Qd4G29TMT012cIRsbhzyfGOMOOh7BOkACHMz/XRdLpuH94Pf+DMkPf+c6zNpGtFCvmpGkvt45Xuw==; npm latest |
@glixo/extension-sdk |
0.1.0 |
4,492 bytes | 0137aac5d5038a0cad15c2b0e3f70bd7ee13134c9f8762477e223bc73810c26a |
sha512-xEc+GT69tASVPyFFQsAncjcV41VZaPRKGo0OiUK0UE1QZDcq4R3+ao4m/EcV4vVpnwT/VeiEhmUjLLQYGq0tcQ==; npm latest |
| Go SDK module | v0.1.0 |
— | source tag a987f8aa766201b0f6fa4234f12b63c70234d9b7 |
Published through the Go proxy; public proxy consumer test passed |
| SDK NuGet and Cargo packages | — | — | — | Not published yet |
The Go module and npm package are published. A fresh, unauthenticated npm consumer install passed with Node.js 22.14.0 and npm 10.9.2 using a new cache and blank npm configuration; the root, HTTP, and WIT imports exposed the expected symbols. The Go module also passed its public-proxy consumer test. The SDK remains Preview overall and is not yet supported in a released app. CLI versioning is separate from the SDK and compiler pins.
Source identities
This section is populated by the canonical export with full repository commits and source paths for the executable contribution references, SDK recipe matrix, and shared UI authoring assets. A source commit does not imply an accepted SDK, installed-host integration, or live provider/account acceptance. If an acceptance artifact is absent, the feature remains Preview source or Planned.
| Source | Commit and paths | Qualification |
|---|---|---|
| Ollama provider reference | https://github.com/tmedanovic/glixo-community-modules@7052b3f954418cff91439236942a6623d75e8907 · references/ollama-provider/csharp/README.md, references/ollama-provider/csharp/src/Provider.cs, references/ollama-provider/go/README.md, references/ollama-provider/go/provider/provider.go, references/ollama-provider/rust/README.md, references/ollama-provider/rust/src/lib.rs, references/ollama-provider/typescript/README.md, references/ollama-provider/typescript/src/provider.ts, references/_shared/host-evidence/ollama-provider-protocol2.json |
Preview: all four signed Ollama packages passed offline tests and local Gemma installed-host tests using a source-built protocol-2 runner. Each language completed a tool call and continuation. Stable Glixo 0.7.8 ships protocol 1, so these guests need a newer app release. |
| Mail Watch service reference | https://github.com/tmedanovic/glixo-community-modules@7052b3f954418cff91439236942a6623d75e8907 · references/mail-watch/csharp/MailWatch.cs, references/mail-watch/go/mailwatch/mailwatch.go, references/mail-watch/rust/src/lib.rs, references/mail-watch/typescript/src/mail-watch.ts, references/mail-watch/configuration.schema.json |
Preview overall: all four guests passed protocol-2 framed-host fixture probes. TypeScript component artifact 466438B454FDC396161CB519114FDEFA36B92820E9322F89DA6CA18D00F3673B from the signed package also passed a persisted Code.Server scheduler fixture journey on runner pin 9CBB7DA99521D65B88955653D2E2E55ACA41FC588D9F1A8B8F4E4A2F86627D30. The E2E covers database-backed grants, encrypted OAuth configuration, lifecycle, checkpoint/outbox deduplication, and domain-event delivery; C#/Go/Rust persistence and live Graph acceptance remain open. |
| Conversation Insights middleware reference | https://github.com/tmedanovic/glixo-community-modules@7052b3f954418cff91439236942a6623d75e8907 · references/conversation-insights/csharp/src/GuestImpl.cs, references/conversation-insights/go/internal/middleware/guest.go, references/conversation-insights/rust/src/lib.rs, references/conversation-insights/typescript/src/guest.ts |
Preview: four-language observer source is pinned. Production installed-host request-path, grant, audit, revoke, and account-boundary acceptance remains open. |
| Prompt Redactor middleware reference | https://github.com/tmedanovic/glixo-community-modules@7052b3f954418cff91439236942a6623d75e8907 · references/prompt-redactor/csharp/src/GuestImpl.cs, references/prompt-redactor/go/internal/middleware/guest.go, references/prompt-redactor/rust/src/lib.rs, references/prompt-redactor/typescript/src/guest.ts |
Preview: four-language transform source is pinned. Production installed-host request-path, separate input/output grants, failure policy, provenance, and revoke acceptance remains open. |
| Workspace Health reference | https://github.com/tmedanovic/glixo-community-modules@7052b3f954418cff91439236942a6623d75e8907 · references/workspace-health/csharp/src/Handler.cs, references/workspace-health/go/internal/workspacehealth/handler.go, references/workspace-health/rust/src/lib.rs, references/workspace-health/typescript/src/handler.ts |
Preview: four-language source is pinned. Workspace scoping and installed-host acceptance remain open; bounded listings must not be represented as complete project totals. |
| Document Index reference | https://github.com/tmedanovic/glixo-community-modules@7052b3f954418cff91439236942a6623d75e8907 · references/document-index/csharp/src/Handler.cs, references/document-index/go/internal/documentindex/handler.go, references/document-index/rust/src/lib.rs, references/document-index/typescript/src/handler.ts |
Preview: four-language source is pinned. It demonstrates bounded relative-path matching and excerpts, not a semantic search index; installed-host workspace authorization remains open. |
| Workspace Storage reference | https://github.com/tmedanovic/glixo-community-modules@7052b3f954418cff91439236942a6623d75e8907 · references/workspace-storage/csharp/src/StorageHandler.cs, references/workspace-storage/go/storage/handler.go, references/workspace-storage/rust/src/lib.rs, references/workspace-storage/typescript/src/handler.ts |
Preview: four-language source is pinned. Prefix-scoped access and persistence in the selected installed host remain open. |
| Issue Lookup MCP reference | https://github.com/tmedanovic/glixo-community-modules@7052b3f954418cff91439236942a6623d75e8907 · references/issue-lookup-mcp/csharp/IssueLookup.cs, references/issue-lookup-mcp/go/internal/issuelookup/handler.go, references/issue-lookup-mcp/rust/src/lib.rs, references/issue-lookup-mcp/typescript/src/handler.ts |
Preview: four-language source is pinned. The approved Streamable HTTP endpoint, current account grant, and installed external-service acceptance remain open. |
| Extension SDK toolchain and recipe matrix | https://github.com/tmedanovic/glixo-community-modules@7052b3f954418cff91439236942a6623d75e8907 · packages/extension-sdk/README.md, packages/extension-sdk/support-matrix.json, packages/extension-sdk/runtime-versions.json |
Preview: source and four-language build recipes are available. The npm package and Go module for @glixo/extension-sdk v0.1.0 are published. A fresh unauthenticated npm consumer install with Node.js 22.14.0 and npm 10.9.2 passed and exposed the expected root, HTTP, and WIT imports; the Go module passed a clean public-proxy consumer test. NuGet and Cargo packages are not published, and the SDK is not yet supported in a released app. See Reference for the verified registry package sizes and digests. |
| Accessible Theme UI sample and shared controls | https://github.com/tmedanovic/glixo-community-modules@7052b3f954418cff91439236942a6623d75e8907 · references/accessible-theme/README.md, references/accessible-theme/placements.json, references/accessible-theme/csharp/glixo.extension.json, references/accessible-theme/csharp/glixo.project.json, references/accessible-theme/csharp/reference.json, references/accessible-theme/csharp/src/GuestExports.cs, references/accessible-theme/csharp/src/StorageHandler.cs, references/accessible-theme/go/glixo.extension.json, references/accessible-theme/go/glixo.project.json, references/accessible-theme/go/reference.json, references/accessible-theme/go/guest/guest.go, references/accessible-theme/go/storage/handler.go, references/accessible-theme/rust/glixo.extension.json, references/accessible-theme/rust/glixo.project.json, references/accessible-theme/rust/reference.json, references/accessible-theme/rust/src/lib.rs, references/accessible-theme/typescript/glixo.extension.json, references/accessible-theme/typescript/glixo.project.json, references/accessible-theme/typescript/reference.json, references/accessible-theme/typescript/src/guest.ts, references/accessible-theme/typescript/src/handler.ts, references/_shared/ui/accessible-theme/index.html, references/accessible-theme/src/theme.ts, references/accessible-theme/src/components.ts, references/accessible-theme/src/extension-ui.css, references/accessible-theme/src/index.ts, references/accessible-theme/placements.json |
Preview: a corrected sample bridge and scoped permissions are in the source; new package receipts are being built. Windows isolation checks passed 7/7 in a source-built app, but signed package, account-grant, and full action checks are still underway. Linux custom panels are unavailable; mobile is unsupported. The shared TypeScript controls helper is authoring source, not an installed theme; Glixo Code has no theme selector or apply flow. |
| Workflow Text Stats tool reference | https://github.com/tmedanovic/glixo-community-modules@7052b3f954418cff91439236942a6623d75e8907 · references/workflow-text-stats/csharp/README.md, references/workflow-text-stats/csharp/glixo.extension.json, references/workflow-text-stats/csharp/src/Handler.cs, references/workflow-text-stats/csharp/src/GuestExports.cs, references/workflow-text-stats/go/README.md, references/workflow-text-stats/go/glixo.extension.json, references/workflow-text-stats/go/internal/workflowtextstats/stats.go, references/workflow-text-stats/go/generated/wit/export_provider/export_glixo_contribution_guest/guest.go, references/workflow-text-stats/rust/README.md, references/workflow-text-stats/rust/glixo.extension.json, references/workflow-text-stats/rust/src/lib.rs, references/workflow-text-stats/typescript/README.md, references/workflow-text-stats/typescript/glixo.extension.json, references/workflow-text-stats/typescript/src/handler.ts, references/workflow-text-stats/typescript/src/guest.ts |
Preview: all four signed Workflow Text Stats packages passed installed workflow tests using a source-built protocol-2 runner. Tests covered configuration, grant revocation, package changes, secrets, cancellation, and checkpoints. Stable Glixo 0.7.8 ships protocol 1; a newer app release is needed to use this feature. |
UI and shared controls
The Accessible Theme example has four language guests and a sandboxed settings panel at the supported web settings.extensions placement. Its preference state uses extension-scoped storage, and it does not apply a theme to Glixo Code. Windows isolation checks passed 7/7 in a source-built app. The signed package, account grant, and full action journey are still being checked. Linux custom panels are unavailable; mobile is unsupported.
The shared @glixo/extension-ui controls and theme bridge are authoring helpers, separate from the example extension. Native/shared host controls inherit the active Glixo theme. Isolated custom surfaces receive a versioned theme bridge, but arbitrary authored pixels remain under extension control. Mobile WebView support is listed only after the platform-specific isolation and lifecycle tests pass.