@stigmer/cli 3.1.17 → 3.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,4 +1,4 @@
1
- export { MIN_NODE_MAJOR, resolveNode } from "./node.js";
1
+ export { resolveNode } from "./node.js";
2
2
  export { type EnsureRunnerOptions, type RunnerResolution, acquireRunner, ensureRunner, resolveRunner, } from "./runner.js";
3
3
  export { type EnsureServerOptions, type ServerDownloadTarget, downloadServerBinary, ensureServerBinary, resolveServerBinary, } from "./server.js";
4
4
  export { which } from "./which.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/local/runtime/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxD,OAAO,EACL,KAAK,mBAAmB,EACxB,KAAK,gBAAgB,EACrB,aAAa,EACb,YAAY,EACZ,aAAa,GACd,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,KAAK,mBAAmB,EACxB,KAAK,oBAAoB,EACzB,oBAAoB,EACpB,kBAAkB,EAClB,mBAAmB,GACpB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/local/runtime/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EACL,KAAK,mBAAmB,EACxB,KAAK,gBAAgB,EACrB,aAAa,EACb,YAAY,EACZ,aAAa,GACd,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,KAAK,mBAAmB,EACxB,KAAK,oBAAoB,EACzB,oBAAoB,EACpB,kBAAkB,EAClB,mBAAmB,GACpB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC"}
@@ -1,5 +1,5 @@
1
1
  // Public surface of the runtime-acquisition seams (DD-002/003/007).
2
- export { MIN_NODE_MAJOR, resolveNode } from "./node.js";
2
+ export { resolveNode } from "./node.js";
3
3
  export { acquireRunner, ensureRunner, resolveRunner, } from "./runner.js";
4
4
  export { downloadServerBinary, ensureServerBinary, resolveServerBinary, } from "./server.js";
5
5
  export { which } from "./which.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/local/runtime/index.ts"],"names":[],"mappings":"AAAA,oEAAoE;AAEpE,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxD,OAAO,EAGL,aAAa,EACb,YAAY,EACZ,aAAa,GACd,MAAM,aAAa,CAAC;AACrB,OAAO,EAGL,oBAAoB,EACpB,kBAAkB,EAClB,mBAAmB,GACpB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/local/runtime/index.ts"],"names":[],"mappings":"AAAA,oEAAoE;AAEpE,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAGL,aAAa,EACb,YAAY,EACZ,aAAa,GACd,MAAM,aAAa,CAAC;AACrB,OAAO,EAGL,oBAAoB,EACpB,kBAAkB,EAClB,mBAAmB,GACpB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC"}
@@ -1,15 +1,9 @@
1
1
  /**
2
- * Minimum Node version the runner requires: 22.13. The runner's durable local
3
- * checkpointer imports Node's built-in `node:sqlite`, which is only available
4
- * WITHOUT the --experimental-sqlite flag from v22.13 (and v23.4) onward. A
5
- * major-only gate would let 22.0-22.12 pass and then crash at checkpointer
6
- * creation, so the minor is enforced when the major is exactly 22.
7
- */
8
- export declare const MIN_NODE_MAJOR = 22;
9
- export declare const MIN_NODE_MINOR_ON_MAJOR = 13;
10
- /**
11
- * Resolve the Node binary to launch the runner with. Honors STIGMER_NODE_BIN
12
- * (version-checked); otherwise returns the current runtime.
2
+ * Resolve the Node binary to launch the runner with. Honors STIGMER_NODE_BIN;
3
+ * otherwise returns the current runtime. Either way the binary is probed for
4
+ * the runner's `node:sqlite` requirement; an unsuitable binary throws an
5
+ * actionable CliExitError. The probe cost is one silent subprocess spawn on
6
+ * runner-launch paths only (ensureRunner), never on ordinary CLI commands.
13
7
  */
14
8
  export declare function resolveNode(): string;
15
9
  //# sourceMappingURL=node.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"node.d.ts","sourceRoot":"","sources":["../../../src/local/runtime/node.ts"],"names":[],"mappings":"AAcA;;;;;;GAMG;AACH,eAAO,MAAM,cAAc,KAAK,CAAC;AACjC,eAAO,MAAM,uBAAuB,KAAK,CAAC;AAO1C;;;GAGG;AACH,wBAAgB,WAAW,IAAI,MAAM,CASpC"}
1
+ {"version":3,"file":"node.d.ts","sourceRoot":"","sources":["../../../src/local/runtime/node.ts"],"names":[],"mappings":"AAyCA;;;;;;GAMG;AACH,wBAAgB,WAAW,IAAI,MAAM,CAKpC"}
@@ -6,69 +6,83 @@
6
6
  // download (DD-002: keep the base install lean; nothing to acquire that the host
7
7
  // already guarantees). This is exactly what the conformance harness does
8
8
  // (`spawn(process.execPath, ...)`). An explicit STIGMER_NODE_BIN override is
9
- // honored and version-checked for advanced/multi-runtime setups.
9
+ // honored and capability-checked for advanced/multi-runtime setups.
10
+ //
11
+ // The gate is a CAPABILITY probe, not a version check. The runner's durable
12
+ // local checkpointer imports Node's built-in `node:sqlite`, available unflagged
13
+ // from 22.13 in the 22.x line and only from 23.4 in the 23.x line — a gap
14
+ // (23.0–23.3) that a previous version-table gate here missed, letting those
15
+ // Nodes through to crash at runner boot with a raw ERR_UNKNOWN_BUILTIN_MODULE.
16
+ // Probing "can this binary provide node:sqlite?" directly cannot drift; the
17
+ // version floors survive only in the error message, where staleness is
18
+ // harmless. The runner performs the same probe on its own boot (see
19
+ // backend/services/runner/src/preflight.ts) — this one exists to fail at
20
+ // resolve time with CLI-appropriate guidance instead of a subprocess crash.
10
21
  import { execFileSync } from "node:child_process";
11
22
  import { CliExitError } from "../../errors/cli-exit-error.js";
12
23
  import { ExitCode } from "../../errors/exit-codes.js";
24
+ // Exits 0 when the binary provides `node:sqlite`, 1 otherwise.
25
+ //
26
+ // Probe notes (each verified against real binaries; do not "simplify"):
27
+ // - `process.getBuiltinModule(id)` returns the module when present and
28
+ // `undefined` when absent — no throw. The `?.` guard covers Nodes older than
29
+ // 22.3, where `getBuiltinModule` itself does not exist (no `node:sqlite`
30
+ // there either, so exiting 1 is correct).
31
+ // - `module.builtinModules` is NOT a valid alternative: it omits experimental
32
+ // builtins, so it reports no `sqlite` even on Nodes where `node:sqlite`
33
+ // loads fine (e.g. 22.13+). Gating on it would reject every supported Node.
34
+ // - The probe runs in a SUBPROCESS with stdio suppressed even for the CLI's
35
+ // own runtime: `getBuiltinModule` loads the module, which on 22.x emits an
36
+ // `ExperimentalWarning` on stderr that must not leak into the CLI's output.
37
+ const NODE_SQLITE_PROBE = "process.exit(process.getBuiltinModule?.('node:sqlite') === undefined ? 1 : 0)";
13
38
  /**
14
- * Minimum Node version the runner requires: 22.13. The runner's durable local
15
- * checkpointer imports Node's built-in `node:sqlite`, which is only available
16
- * WITHOUT the --experimental-sqlite flag from v22.13 (and v23.4) onward. A
17
- * major-only gate would let 22.0-22.12 pass and then crash at checkpointer
18
- * creation, so the minor is enforced when the major is exactly 22.
19
- */
20
- export const MIN_NODE_MAJOR = 22;
21
- export const MIN_NODE_MINOR_ON_MAJOR = 13;
22
- /**
23
- * Resolve the Node binary to launch the runner with. Honors STIGMER_NODE_BIN
24
- * (version-checked); otherwise returns the current runtime.
39
+ * Resolve the Node binary to launch the runner with. Honors STIGMER_NODE_BIN;
40
+ * otherwise returns the current runtime. Either way the binary is probed for
41
+ * the runner's `node:sqlite` requirement; an unsuitable binary throws an
42
+ * actionable CliExitError. The probe cost is one silent subprocess spawn on
43
+ * runner-launch paths only (ensureRunner), never on ordinary CLI commands.
25
44
  */
26
45
  export function resolveNode() {
27
46
  const override = process.env.STIGMER_NODE_BIN;
28
- if (override !== undefined && override !== "") {
29
- assertVersion(override, probeNodeVersion(override));
30
- return override;
31
- }
32
- // The CLI's own runtime: version is readable directly, no subprocess needed.
33
- assertVersion(process.execPath, parseVersion(process.versions.node));
34
- return process.execPath;
47
+ const bin = override !== undefined && override !== "" ? override : process.execPath;
48
+ assertProvidesNodeSqlite(bin);
49
+ return bin;
35
50
  }
51
+ /** Best-effort `--version` for error messages only; null when the spawn fails. */
36
52
  function probeNodeVersion(bin) {
37
53
  try {
38
- const out = execFileSync(bin, ["--version"], { encoding: "utf8" });
39
- return parseVersion(out.trim());
54
+ const out = execFileSync(bin, ["--version"], {
55
+ encoding: "utf8",
56
+ stdio: ["ignore", "pipe", "ignore"],
57
+ });
58
+ return out.trim();
40
59
  }
41
60
  catch {
42
61
  return null;
43
62
  }
44
63
  }
45
- // Parses "v22.22.2" or "22.22.2" to its major/minor numbers.
46
- function parseVersion(version) {
47
- const match = /^v?(\d+)\.(\d+)\./.exec(version.trim());
48
- if (match === null)
49
- return null;
50
- const major = Number.parseInt(match[1], 10);
51
- const minor = Number.parseInt(match[2], 10);
52
- if (!Number.isInteger(major) || !Number.isInteger(minor))
53
- return null;
54
- return { major, minor };
55
- }
56
- // True when the version is at or above the 22.13 floor.
57
- function meetsFloor(v) {
58
- if (v.major > MIN_NODE_MAJOR)
59
- return true;
60
- return v.major === MIN_NODE_MAJOR && v.minor >= MIN_NODE_MINOR_ON_MAJOR;
61
- }
62
- function assertVersion(bin, version) {
63
- const floor = `${MIN_NODE_MAJOR}.${MIN_NODE_MINOR_ON_MAJOR}`;
64
- if (version === null) {
65
- throw new CliExitError(`could not determine the Node version of ${bin}`, ExitCode.General, [
66
- `Ensure ${bin} is a working Node >= ${floor} runtime.`,
67
- ]);
64
+ function assertProvidesNodeSqlite(bin) {
65
+ let exitStatus;
66
+ try {
67
+ execFileSync(bin, ["-e", NODE_SQLITE_PROBE], { stdio: "ignore" });
68
+ return;
69
+ }
70
+ catch (err) {
71
+ // execFileSync reports a nonzero exit via `status`; a spawn failure
72
+ // (ENOENT, not executable) leaves it null/undefined.
73
+ exitStatus = err.status ?? null;
68
74
  }
69
- if (!meetsFloor(version)) {
70
- throw new CliExitError(`Node >= ${floor} is required to run the runner ` +
71
- `(found ${version.major}.${version.minor} at ${bin})`, ExitCode.General, [`Upgrade Node to ${floor} or newer, or point STIGMER_NODE_BIN at one.`]);
75
+ if (exitStatus === null) {
76
+ throw new CliExitError(`could not run ${bin} to verify the runner's Node requirements`, ExitCode.General, [
77
+ `Ensure ${bin} is a working Node >= 22.13 runtime (>= 23.4 in the 23.x line).`,
78
+ ]);
72
79
  }
80
+ const version = probeNodeVersion(bin) ?? "unknown version";
81
+ throw new CliExitError(`Node at ${bin} (${version}) cannot run the runner: it does not provide the built-in node:sqlite module`, ExitCode.General, [
82
+ "The runner's durable checkpointer requires node:sqlite, which is available",
83
+ "unflagged from Node 22.13 (22.x line) and 23.4 (23.x and later) — note that",
84
+ "23.0-23.3 lack it.",
85
+ "Upgrade Node, or point STIGMER_NODE_BIN at a suitable runtime.",
86
+ ]);
73
87
  }
74
88
  //# sourceMappingURL=node.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"node.js","sourceRoot":"","sources":["../../../src/local/runtime/node.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"node.js","sourceRoot":"","sources":["../../../src/local/runtime/node.ts"],"names":[],"mappings":"AAAA,0EAA0E;AAC1E,EAAE;AACF,gFAAgF;AAChF,6EAA6E;AAC7E,0EAA0E;AAC1E,iFAAiF;AACjF,yEAAyE;AACzE,6EAA6E;AAC7E,oEAAoE;AACpE,EAAE;AACF,4EAA4E;AAC5E,gFAAgF;AAChF,0EAA0E;AAC1E,4EAA4E;AAC5E,+EAA+E;AAC/E,4EAA4E;AAC5E,uEAAuE;AACvE,oEAAoE;AACpE,yEAAyE;AACzE,4EAA4E;AAE5E,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAC9D,OAAO,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AAEtD,+DAA+D;AAC/D,EAAE;AACF,wEAAwE;AACxE,uEAAuE;AACvE,+EAA+E;AAC/E,2EAA2E;AAC3E,4CAA4C;AAC5C,8EAA8E;AAC9E,0EAA0E;AAC1E,8EAA8E;AAC9E,4EAA4E;AAC5E,6EAA6E;AAC7E,8EAA8E;AAC9E,MAAM,iBAAiB,GACrB,+EAA+E,CAAC;AAElF;;;;;;GAMG;AACH,MAAM,UAAU,WAAW;IACzB,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC;IAC9C,MAAM,GAAG,GAAG,QAAQ,KAAK,SAAS,IAAI,QAAQ,KAAK,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC;IACpF,wBAAwB,CAAC,GAAG,CAAC,CAAC;IAC9B,OAAO,GAAG,CAAC;AACb,CAAC;AAED,kFAAkF;AAClF,SAAS,gBAAgB,CAAC,GAAW;IACnC,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,YAAY,CAAC,GAAG,EAAE,CAAC,WAAW,CAAC,EAAE;YAC3C,QAAQ,EAAE,MAAM;YAChB,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC;SACpC,CAAC,CAAC;QACH,OAAO,GAAG,CAAC,IAAI,EAAE,CAAC;IACpB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,SAAS,wBAAwB,CAAC,GAAW;IAC3C,IAAI,UAAyB,CAAC;IAC9B,IAAI,CAAC;QACH,YAAY,CAAC,GAAG,EAAE,CAAC,IAAI,EAAE,iBAAiB,CAAC,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;QAClE,OAAO;IACT,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,oEAAoE;QACpE,qDAAqD;QACrD,UAAU,GAAI,GAAkC,CAAC,MAAM,IAAI,IAAI,CAAC;IAClE,CAAC;IAED,IAAI,UAAU,KAAK,IAAI,EAAE,CAAC;QACxB,MAAM,IAAI,YAAY,CAAC,iBAAiB,GAAG,2CAA2C,EAAE,QAAQ,CAAC,OAAO,EAAE;YACxG,UAAU,GAAG,iEAAiE;SAC/E,CAAC,CAAC;IACL,CAAC;IAED,MAAM,OAAO,GAAG,gBAAgB,CAAC,GAAG,CAAC,IAAI,iBAAiB,CAAC;IAC3D,MAAM,IAAI,YAAY,CACpB,WAAW,GAAG,KAAK,OAAO,8EAA8E,EACxG,QAAQ,CAAC,OAAO,EAChB;QACE,4EAA4E;QAC5E,6EAA6E;QAC7E,oBAAoB;QACpB,gEAAgE;KACjE,CACF,CAAC;AACJ,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@stigmer/cli",
3
- "version": "3.1.17",
3
+ "version": "3.2.1",
4
4
  "description": "Stigmer command-line interface — manage agents, workflows, MCP servers, skills, and executions from the terminal",
5
5
  "license": "Apache-2.0",
6
6
  "type": "module",
@@ -35,10 +35,10 @@
35
35
  "@connectrpc/connect": "^2.0.0",
36
36
  "@connectrpc/connect-node": "^2.1.1",
37
37
  "@modelcontextprotocol/sdk": "^1.26.0",
38
- "@stigmer/ink": "3.1.17",
39
- "@stigmer/mcp-server": "3.1.17",
40
- "@stigmer/protos": "3.1.17",
41
- "@stigmer/sdk": "3.1.17",
38
+ "@stigmer/ink": "3.2.1",
39
+ "@stigmer/mcp-server": "3.2.1",
40
+ "@stigmer/protos": "3.2.1",
41
+ "@stigmer/sdk": "3.2.1",
42
42
  "commander": "^12.1.0",
43
43
  "fflate": "^0.8.3",
44
44
  "ink": "^7.0.0",
@@ -1 +1 @@
1
- {"version":3,"file":"metadata.d.ts","sourceRoot":"","sources":["../../src/registry/metadata.ts"],"names":[],"mappings":"AAYA,OAAO,EAAE,eAAe,EAAE,MAAM,qFAAqF,CAAC;AAEtH,MAAM,WAAW,QAAQ;IACvB,4EAA4E;IAC5E,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,wDAAwD;IACxD,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,8CAA8C;IAC9C,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B;AAED,eAAO,MAAM,SAAS,EAAE,WAAW,CAAC,eAAe,EAAE,QAAQ,CAgB3D,CAAC;AAOH,eAAO,MAAM,kBAAkB,EAAE,SAAS,eAAe,EAexD,CAAC"}
1
+ {"version":3,"file":"metadata.d.ts","sourceRoot":"","sources":["../../src/registry/metadata.ts"],"names":[],"mappings":"AAYA,OAAO,EAAE,eAAe,EAAE,MAAM,qFAAqF,CAAC;AAEtH,MAAM,WAAW,QAAQ;IACvB,4EAA4E;IAC5E,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,wDAAwD;IACxD,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,8CAA8C;IAC9C,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B;AAED,eAAO,MAAM,SAAS,EAAE,WAAW,CAAC,eAAe,EAAE,QAAQ,CAkB3D,CAAC;AAOH,eAAO,MAAM,kBAAkB,EAAE,SAAS,eAAe,EAiBxD,CAAC"}
@@ -22,6 +22,8 @@ export const KIND_META = new Map([
22
22
  [ApiResourceKind.oauth_app, { name: "OAuthApp", displayName: "OAuth App", idPrefix: "oapp" }],
23
23
  [ApiResourceKind.environment, { name: "Environment", displayName: "Environment", idPrefix: "env" }],
24
24
  [ApiResourceKind.agent_share, { name: "AgentShare", displayName: "Agent Share", idPrefix: "ash" }],
25
+ [ApiResourceKind.agent_channel, { name: "AgentChannel", displayName: "Agent Channel", idPrefix: "ach" }],
26
+ [ApiResourceKind.channel_app, { name: "ChannelApp", displayName: "Channel App", idPrefix: "chapp" }],
25
27
  [ApiResourceKind.agent_instance, { name: "AgentInstance", displayName: "Agent Instance", idPrefix: "ain" }],
26
28
  [ApiResourceKind.workflow_instance, { name: "WorkflowInstance", displayName: "Workflow Instance", idPrefix: "win" }],
27
29
  [ApiResourceKind.session, { name: "Session", displayName: "Session", idPrefix: "ses" }],
@@ -44,6 +46,8 @@ export const CLI_RELEVANT_KINDS = [
44
46
  ApiResourceKind.oauth_app,
45
47
  ApiResourceKind.environment,
46
48
  ApiResourceKind.agent_share,
49
+ ApiResourceKind.agent_channel,
50
+ ApiResourceKind.channel_app,
47
51
  ApiResourceKind.agent_instance,
48
52
  ApiResourceKind.workflow_instance,
49
53
  ApiResourceKind.session,
@@ -1 +1 @@
1
- {"version":3,"file":"metadata.js","sourceRoot":"","sources":["../../src/registry/metadata.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"metadata.js","sourceRoot":"","sources":["../../src/registry/metadata.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"verb-support.d.ts","sourceRoot":"","sources":["../../src/registry/verb-support.ts"],"names":[],"mappings":"AAkBA,OAAO,EAAE,eAAe,EAAE,MAAM,qFAAqF,CAAC;AACtH,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAElC,eAAO,MAAM,YAAY,EAAE,WAAW,CAAC,eAAe,EAAE,WAAW,CAAC,IAAI,CAAC,CA2BvE,CAAC;AAEH,wBAAgB,YAAY,CAAC,IAAI,EAAE,eAAe,GAAG,WAAW,CAAC,IAAI,CAAC,CAErE"}
1
+ {"version":3,"file":"verb-support.d.ts","sourceRoot":"","sources":["../../src/registry/verb-support.ts"],"names":[],"mappings":"AAkBA,OAAO,EAAE,eAAe,EAAE,MAAM,qFAAqF,CAAC;AACtH,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAElC,eAAO,MAAM,YAAY,EAAE,WAAW,CAAC,eAAe,EAAE,WAAW,CAAC,IAAI,CAAC,CAiCvE,CAAC;AAEH,wBAAgB,YAAY,CAAC,IAAI,EAAE,eAAe,GAAG,WAAW,CAAC,IAAI,CAAC,CAErE"}
@@ -40,6 +40,12 @@ export const VERB_SUPPORT = new Map([
40
40
  // Enable/disable flows through `stigmer share agent`; the generic verbs
41
41
  // cover the declarative path (apply a manifest, inspect, tear down).
42
42
  [ApiResourceKind.agent_share, new Set([Verb.Apply, Verb.Get, Verb.List, Verb.Delete])],
43
+ // The provider install flow is console-driven and cloud-only; the generic
44
+ // verbs cover the declarative path (apply a manifest, inspect, tear down).
45
+ [ApiResourceKind.agent_channel, new Set([Verb.Apply, Verb.Get, Verb.List, Verb.Delete])],
46
+ // Secret fields round-trip as ***REDACTED***; applying a fetched manifest
47
+ // preserves the stored secrets (the OAuthApp marker convention).
48
+ [ApiResourceKind.channel_app, new Set([Verb.Apply, Verb.Get, Verb.List, Verb.Delete])],
43
49
  [ApiResourceKind.agent_instance, new Set([Verb.Apply, Verb.Get, Verb.List, Verb.Delete])],
44
50
  // No list: proto exposes getByWorkflow (requires workflow_id), not a generic list.
45
51
  [ApiResourceKind.workflow_instance, new Set([Verb.Apply, Verb.Get, Verb.Delete])],
@@ -1 +1 @@
1
- {"version":3,"file":"verb-support.js","sourceRoot":"","sources":["../../src/registry/verb-support.ts"],"names":[],"mappings":"AAAA,iEAAiE;AACjE,EAAE;AACF,+EAA+E;AAC/E,4EAA4E;AAC5E,EAAE;AACF,+FAA+F;AAC/F,+FAA+F;AAC/F,+FAA+F;AAC/F,+FAA+F;AAC/F,+FAA+F;AAC/F,+FAA+F;AAC/F,+FAA+F;AAC/F,+FAA+F;AAC/F,+FAA+F;AAC/F,EAAE;AACF,oDAAoD;AACpD,sDAAsD;AAEtD,OAAO,EAAE,eAAe,EAAE,MAAM,qFAAqF,CAAC;AACtH,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAElC,MAAM,CAAC,MAAM,YAAY,GAAoD,IAAI,GAAG,CAAC;IACnF,CAAC,eAAe,CAAC,YAAY,EAAE,IAAI,GAAG,CAAO,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IAC7F;QACE,eAAe,CAAC,KAAK;QACrB,IAAI,GAAG,CAAO,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;KACpG;IACD;QACE,eAAe,CAAC,QAAQ;QACxB,IAAI,GAAG,CAAO,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;KACpG;IACD,CAAC,eAAe,CAAC,KAAK,EAAE,IAAI,GAAG,CAAO,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IACrF,CAAC,eAAe,CAAC,UAAU,EAAE,IAAI,GAAG,CAAO,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IAC1G,CAAC,eAAe,CAAC,OAAO,EAAE,IAAI,GAAG,CAAO,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IACvG,CAAC,eAAe,CAAC,OAAO,EAAE,IAAI,GAAG,CAAO,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IAC5E,4EAA4E;IAC5E,8DAA8D;IAC9D,CAAC,eAAe,CAAC,eAAe,EAAE,IAAI,GAAG,CAAO,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;IACnG,CAAC,eAAe,CAAC,iBAAiB,EAAE,IAAI,GAAG,CAAO,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IAClG,CAAC,eAAe,CAAC,SAAS,EAAE,IAAI,GAAG,CAAO,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IAC1F,CAAC,eAAe,CAAC,WAAW,EAAE,IAAI,GAAG,CAAO,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IAC5F,wEAAwE;IACxE,qEAAqE;IACrE,CAAC,eAAe,CAAC,WAAW,EAAE,IAAI,GAAG,CAAO,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IAC5F,CAAC,eAAe,CAAC,cAAc,EAAE,IAAI,GAAG,CAAO,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IAC/F,mFAAmF;IACnF,CAAC,eAAe,CAAC,iBAAiB,EAAE,IAAI,GAAG,CAAO,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IACvF,CAAC,eAAe,CAAC,OAAO,EAAE,IAAI,GAAG,CAAO,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;CACzF,CAAC,CAAC;AAEH,MAAM,UAAU,YAAY,CAAC,IAAqB;IAChD,OAAO,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,GAAG,EAAQ,CAAC;AACnD,CAAC"}
1
+ {"version":3,"file":"verb-support.js","sourceRoot":"","sources":["../../src/registry/verb-support.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"handlers.d.ts","sourceRoot":"","sources":["../../../src/resources/apply/handlers.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC5E,OAAO,EAAE,eAAe,EAAE,MAAM,qFAAqF,CAAC;AA4BtH,6EAA6E;AAC7E,MAAM,MAAM,YAAY,GAAG,CAAC,IAAI,SAAS,WAAW,EAAE,OAAO,EAAE,IAAI,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC;AAErF,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,IAAI,EAAE,eAAe,CAAC;IAC/B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,sDAAsD;IACtD,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAC7B,yEAAyE;IACzE,KAAK,CAAC,UAAU,EAAE,YAAY,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CACrE;AAED,eAAO,MAAM,cAAc,EAAE,WAAW,CAAC,eAAe,EAAE,YAAY,CAoGpE,CAAC"}
1
+ {"version":3,"file":"handlers.d.ts","sourceRoot":"","sources":["../../../src/resources/apply/handlers.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC5E,OAAO,EAAE,eAAe,EAAE,MAAM,qFAAqF,CAAC;AA8BtH,6EAA6E;AAC7E,MAAM,MAAM,YAAY,GAAG,CAAC,IAAI,SAAS,WAAW,EAAE,OAAO,EAAE,IAAI,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC;AAErF,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,IAAI,EAAE,eAAe,CAAC;IAC/B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,sDAAsD;IACtD,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAC7B,yEAAyE;IACzE,KAAK,CAAC,UAAU,EAAE,YAAY,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CACrE;AAED,eAAO,MAAM,cAAc,EAAE,WAAW,CAAC,eAAe,EAAE,YAAY,CA6GpE,CAAC"}
@@ -13,6 +13,8 @@
13
13
  import { ApiResourceKind } from "@stigmer/protos/ai/stigmer/commons/apiresource/apiresourcekind/api_resource_kind_pb";
14
14
  import { AgentSchema } from "@stigmer/protos/ai/stigmer/agentic/agent/v1/api_pb";
15
15
  import { AgentCommandController } from "@stigmer/protos/ai/stigmer/agentic/agent/v1/command_pb";
16
+ import { AgentChannelSchema } from "@stigmer/protos/ai/stigmer/agentic/agentchannel/v1/api_pb";
17
+ import { AgentChannelCommandController } from "@stigmer/protos/ai/stigmer/agentic/agentchannel/v1/command_pb";
16
18
  import { AgentInstanceSchema } from "@stigmer/protos/ai/stigmer/agentic/agentinstance/v1/api_pb";
17
19
  import { AgentInstanceCommandController } from "@stigmer/protos/ai/stigmer/agentic/agentinstance/v1/command_pb";
18
20
  import { AgentShareSchema } from "@stigmer/protos/ai/stigmer/agentic/agentshare/v1/api_pb";
@@ -106,6 +108,15 @@ export const APPLY_HANDLERS = new Map([
106
108
  apply: (c, m) => c(AgentShareCommandController).apply(m),
107
109
  },
108
110
  ],
111
+ [
112
+ ApiResourceKind.agent_channel,
113
+ {
114
+ kind: ApiResourceKind.agent_channel,
115
+ displayName: "Agent Channel",
116
+ schema: AgentChannelSchema,
117
+ apply: (c, m) => c(AgentChannelCommandController).apply(m),
118
+ },
119
+ ],
109
120
  [
110
121
  ApiResourceKind.agent_instance,
111
122
  {
@@ -1 +1 @@
1
- {"version":3,"file":"handlers.js","sourceRoot":"","sources":["../../../src/resources/apply/handlers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"handlers.js","sourceRoot":"","sources":["../../../src/resources/apply/handlers.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  // Public surface of the runtime-acquisition seams (DD-002/003/007).
2
2
 
3
- export { MIN_NODE_MAJOR, resolveNode } from "./node.js";
3
+ export { resolveNode } from "./node.js";
4
4
  export {
5
5
  type EnsureRunnerOptions,
6
6
  type RunnerResolution,
@@ -6,80 +6,92 @@
6
6
  // download (DD-002: keep the base install lean; nothing to acquire that the host
7
7
  // already guarantees). This is exactly what the conformance harness does
8
8
  // (`spawn(process.execPath, ...)`). An explicit STIGMER_NODE_BIN override is
9
- // honored and version-checked for advanced/multi-runtime setups.
9
+ // honored and capability-checked for advanced/multi-runtime setups.
10
+ //
11
+ // The gate is a CAPABILITY probe, not a version check. The runner's durable
12
+ // local checkpointer imports Node's built-in `node:sqlite`, available unflagged
13
+ // from 22.13 in the 22.x line and only from 23.4 in the 23.x line — a gap
14
+ // (23.0–23.3) that a previous version-table gate here missed, letting those
15
+ // Nodes through to crash at runner boot with a raw ERR_UNKNOWN_BUILTIN_MODULE.
16
+ // Probing "can this binary provide node:sqlite?" directly cannot drift; the
17
+ // version floors survive only in the error message, where staleness is
18
+ // harmless. The runner performs the same probe on its own boot (see
19
+ // backend/services/runner/src/preflight.ts) — this one exists to fail at
20
+ // resolve time with CLI-appropriate guidance instead of a subprocess crash.
10
21
 
11
22
  import { execFileSync } from "node:child_process";
12
23
  import { CliExitError } from "../../errors/cli-exit-error.js";
13
24
  import { ExitCode } from "../../errors/exit-codes.js";
14
25
 
15
- /**
16
- * Minimum Node version the runner requires: 22.13. The runner's durable local
17
- * checkpointer imports Node's built-in `node:sqlite`, which is only available
18
- * WITHOUT the --experimental-sqlite flag from v22.13 (and v23.4) onward. A
19
- * major-only gate would let 22.0-22.12 pass and then crash at checkpointer
20
- * creation, so the minor is enforced when the major is exactly 22.
21
- */
22
- export const MIN_NODE_MAJOR = 22;
23
- export const MIN_NODE_MINOR_ON_MAJOR = 13;
24
-
25
- interface NodeVersion {
26
- major: number;
27
- minor: number;
28
- }
26
+ // Exits 0 when the binary provides `node:sqlite`, 1 otherwise.
27
+ //
28
+ // Probe notes (each verified against real binaries; do not "simplify"):
29
+ // - `process.getBuiltinModule(id)` returns the module when present and
30
+ // `undefined` when absent — no throw. The `?.` guard covers Nodes older than
31
+ // 22.3, where `getBuiltinModule` itself does not exist (no `node:sqlite`
32
+ // there either, so exiting 1 is correct).
33
+ // - `module.builtinModules` is NOT a valid alternative: it omits experimental
34
+ // builtins, so it reports no `sqlite` even on Nodes where `node:sqlite`
35
+ // loads fine (e.g. 22.13+). Gating on it would reject every supported Node.
36
+ // - The probe runs in a SUBPROCESS with stdio suppressed even for the CLI's
37
+ // own runtime: `getBuiltinModule` loads the module, which on 22.x emits an
38
+ // `ExperimentalWarning` on stderr that must not leak into the CLI's output.
39
+ const NODE_SQLITE_PROBE =
40
+ "process.exit(process.getBuiltinModule?.('node:sqlite') === undefined ? 1 : 0)";
29
41
 
30
42
  /**
31
- * Resolve the Node binary to launch the runner with. Honors STIGMER_NODE_BIN
32
- * (version-checked); otherwise returns the current runtime.
43
+ * Resolve the Node binary to launch the runner with. Honors STIGMER_NODE_BIN;
44
+ * otherwise returns the current runtime. Either way the binary is probed for
45
+ * the runner's `node:sqlite` requirement; an unsuitable binary throws an
46
+ * actionable CliExitError. The probe cost is one silent subprocess spawn on
47
+ * runner-launch paths only (ensureRunner), never on ordinary CLI commands.
33
48
  */
34
49
  export function resolveNode(): string {
35
50
  const override = process.env.STIGMER_NODE_BIN;
36
- if (override !== undefined && override !== "") {
37
- assertVersion(override, probeNodeVersion(override));
38
- return override;
39
- }
40
- // The CLI's own runtime: version is readable directly, no subprocess needed.
41
- assertVersion(process.execPath, parseVersion(process.versions.node));
42
- return process.execPath;
51
+ const bin = override !== undefined && override !== "" ? override : process.execPath;
52
+ assertProvidesNodeSqlite(bin);
53
+ return bin;
43
54
  }
44
55
 
45
- function probeNodeVersion(bin: string): NodeVersion | null {
56
+ /** Best-effort `--version` for error messages only; null when the spawn fails. */
57
+ function probeNodeVersion(bin: string): string | null {
46
58
  try {
47
- const out = execFileSync(bin, ["--version"], { encoding: "utf8" });
48
- return parseVersion(out.trim());
59
+ const out = execFileSync(bin, ["--version"], {
60
+ encoding: "utf8",
61
+ stdio: ["ignore", "pipe", "ignore"],
62
+ });
63
+ return out.trim();
49
64
  } catch {
50
65
  return null;
51
66
  }
52
67
  }
53
68
 
54
- // Parses "v22.22.2" or "22.22.2" to its major/minor numbers.
55
- function parseVersion(version: string): NodeVersion | null {
56
- const match = /^v?(\d+)\.(\d+)\./.exec(version.trim());
57
- if (match === null) return null;
58
- const major = Number.parseInt(match[1], 10);
59
- const minor = Number.parseInt(match[2], 10);
60
- if (!Number.isInteger(major) || !Number.isInteger(minor)) return null;
61
- return { major, minor };
62
- }
63
-
64
- // True when the version is at or above the 22.13 floor.
65
- function meetsFloor(v: NodeVersion): boolean {
66
- if (v.major > MIN_NODE_MAJOR) return true;
67
- return v.major === MIN_NODE_MAJOR && v.minor >= MIN_NODE_MINOR_ON_MAJOR;
68
- }
69
+ function assertProvidesNodeSqlite(bin: string): void {
70
+ let exitStatus: number | null;
71
+ try {
72
+ execFileSync(bin, ["-e", NODE_SQLITE_PROBE], { stdio: "ignore" });
73
+ return;
74
+ } catch (err) {
75
+ // execFileSync reports a nonzero exit via `status`; a spawn failure
76
+ // (ENOENT, not executable) leaves it null/undefined.
77
+ exitStatus = (err as { status?: number | null }).status ?? null;
78
+ }
69
79
 
70
- function assertVersion(bin: string, version: NodeVersion | null): void {
71
- const floor = `${MIN_NODE_MAJOR}.${MIN_NODE_MINOR_ON_MAJOR}`;
72
- if (version === null) {
73
- throw new CliExitError(`could not determine the Node version of ${bin}`, ExitCode.General, [
74
- `Ensure ${bin} is a working Node >= ${floor} runtime.`,
80
+ if (exitStatus === null) {
81
+ throw new CliExitError(`could not run ${bin} to verify the runner's Node requirements`, ExitCode.General, [
82
+ `Ensure ${bin} is a working Node >= 22.13 runtime (>= 23.4 in the 23.x line).`,
75
83
  ]);
76
84
  }
77
- if (!meetsFloor(version)) {
78
- throw new CliExitError(
79
- `Node >= ${floor} is required to run the runner ` +
80
- `(found ${version.major}.${version.minor} at ${bin})`,
81
- ExitCode.General,
82
- [`Upgrade Node to ${floor} or newer, or point STIGMER_NODE_BIN at one.`],
83
- );
84
- }
85
+
86
+ const version = probeNodeVersion(bin) ?? "unknown version";
87
+ throw new CliExitError(
88
+ `Node at ${bin} (${version}) cannot run the runner: it does not provide the built-in node:sqlite module`,
89
+ ExitCode.General,
90
+ [
91
+ "The runner's durable checkpointer requires node:sqlite, which is available",
92
+ "unflagged from Node 22.13 (22.x line) and 23.4 (23.x and later) — note that",
93
+ "23.0-23.3 lack it.",
94
+ "Upgrade Node, or point STIGMER_NODE_BIN at a suitable runtime.",
95
+ ],
96
+ );
85
97
  }
@@ -3,7 +3,7 @@ import { tmpdir } from "node:os";
3
3
  import { join } from "node:path";
4
4
  import { afterEach, beforeEach, describe, expect, it, vi } from "vitest";
5
5
  import { CliExitError } from "../../errors/cli-exit-error.js";
6
- import { MIN_NODE_MAJOR, MIN_NODE_MINOR_ON_MAJOR, resolveNode } from "./node.js";
6
+ import { resolveNode } from "./node.js";
7
7
  import { acquireRunner, resolveRunner } from "./runner.js";
8
8
  import { resolveServerBinary } from "./server.js";
9
9
  import { which } from "./which.js";
@@ -50,15 +50,37 @@ describe("which", () => {
50
50
  });
51
51
  });
52
52
 
53
+ // A fake "node" whose --version and capability-probe behavior the test
54
+ // controls, making these tests deterministic regardless of which Node runs
55
+ // the suite itself.
56
+ function fakeNodeBinary(opts: { version: string; hasSqlite: boolean }): string {
57
+ const bin = join(tempDir("stigmer-node-"), "node");
58
+ writeFileSync(
59
+ bin,
60
+ `#!/bin/sh\nif [ "$1" = "--version" ]; then echo "${opts.version}"; exit 0; fi\nexit ${opts.hasSqlite ? 0 : 1}\n`,
61
+ );
62
+ chmodSync(bin, 0o755);
63
+ return bin;
64
+ }
65
+
53
66
  describe("resolveNode", () => {
54
- it("defaults to the current Node runtime", () => {
67
+ it("resolves the current runtime iff it provides node:sqlite", () => {
68
+ // The contract, not an environment assumption: on a supported Node the
69
+ // own-runtime path resolves; on an unsupported one (e.g. 23.0-23.3, the
70
+ // gap the old version-table gate let through) it must throw the
71
+ // capability error rather than hand the runner a Node it will crash on.
55
72
  delete process.env.STIGMER_NODE_BIN;
56
- expect(resolveNode()).toBe(process.execPath);
73
+ if (process.getBuiltinModule?.("node:sqlite") !== undefined) {
74
+ expect(resolveNode()).toBe(process.execPath);
75
+ } else {
76
+ expect(() => resolveNode()).toThrow(/node:sqlite/);
77
+ }
57
78
  });
58
79
 
59
- it("honors a valid override", () => {
60
- process.env.STIGMER_NODE_BIN = process.execPath; // a real Node >= 22.13
61
- expect(resolveNode()).toBe(process.execPath);
80
+ it("honors an override that passes the capability probe", () => {
81
+ const bin = fakeNodeBinary({ version: "v22.13.0", hasSqlite: true });
82
+ process.env.STIGMER_NODE_BIN = bin;
83
+ expect(resolveNode()).toBe(bin);
62
84
  });
63
85
 
64
86
  it("rejects an override that is not a working Node", () => {
@@ -66,9 +88,12 @@ describe("resolveNode", () => {
66
88
  expect(() => resolveNode()).toThrow(CliExitError);
67
89
  });
68
90
 
69
- it("requires Node >= 22.13 (the node:sqlite floor)", () => {
70
- expect(MIN_NODE_MAJOR).toBe(22);
71
- expect(MIN_NODE_MINOR_ON_MAJOR).toBe(13);
91
+ it("rejects a Node without node:sqlite, naming the version and capability", () => {
92
+ // The shape of a real 23.0-23.3 binary: healthy --version, no node:sqlite.
93
+ process.env.STIGMER_NODE_BIN = fakeNodeBinary({ version: "v23.1.0", hasSqlite: false });
94
+
95
+ expect(() => resolveNode()).toThrow(/node:sqlite/);
96
+ expect(() => resolveNode()).toThrow(/v23\.1\.0/);
72
97
  });
73
98
  });
74
99
 
@@ -33,6 +33,8 @@ export const KIND_META: ReadonlyMap<ApiResourceKind, KindMeta> = new Map([
33
33
  [ApiResourceKind.oauth_app, { name: "OAuthApp", displayName: "OAuth App", idPrefix: "oapp" }],
34
34
  [ApiResourceKind.environment, { name: "Environment", displayName: "Environment", idPrefix: "env" }],
35
35
  [ApiResourceKind.agent_share, { name: "AgentShare", displayName: "Agent Share", idPrefix: "ash" }],
36
+ [ApiResourceKind.agent_channel, { name: "AgentChannel", displayName: "Agent Channel", idPrefix: "ach" }],
37
+ [ApiResourceKind.channel_app, { name: "ChannelApp", displayName: "Channel App", idPrefix: "chapp" }],
36
38
  [ApiResourceKind.agent_instance, { name: "AgentInstance", displayName: "Agent Instance", idPrefix: "ain" }],
37
39
  [ApiResourceKind.workflow_instance, { name: "WorkflowInstance", displayName: "Workflow Instance", idPrefix: "win" }],
38
40
  [ApiResourceKind.session, { name: "Session", displayName: "Session", idPrefix: "ses" }],
@@ -56,6 +58,8 @@ export const CLI_RELEVANT_KINDS: readonly ApiResourceKind[] = [
56
58
  ApiResourceKind.oauth_app,
57
59
  ApiResourceKind.environment,
58
60
  ApiResourceKind.agent_share,
61
+ ApiResourceKind.agent_channel,
62
+ ApiResourceKind.channel_app,
59
63
  ApiResourceKind.agent_instance,
60
64
  ApiResourceKind.workflow_instance,
61
65
  ApiResourceKind.session,
@@ -1,5 +1,6 @@
1
1
  import { ApiResourceKind } from "@stigmer/protos/ai/stigmer/commons/apiresource/apiresourcekind/api_resource_kind_pb";
2
2
  import { describe, expect, it } from "vitest";
3
+ import { APPLY_HANDLERS } from "../resources/apply/handlers.js";
3
4
  import { defaultRegistry } from "./registry.js";
4
5
  import { Verb } from "./verbs.js";
5
6
 
@@ -19,10 +20,20 @@ describe("registry — alias resolution", () => {
19
20
  ["wfl", ApiResourceKind.workflow],
20
21
  ["org", ApiResourceKind.organization],
21
22
  ["oapp", ApiResourceKind.oauth_app],
23
+ ["agentchannel", ApiResourceKind.agent_channel],
24
+ ["agent-channel", ApiResourceKind.agent_channel],
25
+ ["agent_channel", ApiResourceKind.agent_channel],
26
+ ["AgentChannel", ApiResourceKind.agent_channel],
27
+ ["agentchannels", ApiResourceKind.agent_channel],
28
+ ["ach", ApiResourceKind.agent_channel],
22
29
  ])("resolves %s -> kind", (alias, kind) => {
23
30
  expect(registry.getByAlias(alias)?.kind).toBe(kind);
24
31
  });
25
32
 
33
+ it("agent_channel does not steal the agent alias (multi-word first-word guard)", () => {
34
+ expect(registry.getByAlias("agent")?.kind).toBe(ApiResourceKind.agent);
35
+ });
36
+
26
37
  it("resolution is case-insensitive", () => {
27
38
  expect(registry.getByAlias("MCP-SERVER")?.kind).toBe(ApiResourceKind.mcp_server);
28
39
  });
@@ -61,6 +72,15 @@ describe("registry — verb support matrix", () => {
61
72
  expect(registry.supportsVerb(ApiResourceKind.workflow_instance, Verb.List)).toBe(false);
62
73
  });
63
74
 
75
+ it("agent_channel supports the declarative verbs, matching agent_share", () => {
76
+ for (const v of [Verb.Apply, Verb.Get, Verb.List, Verb.Delete]) {
77
+ expect(registry.supportsVerb(ApiResourceKind.agent_channel, v)).toBe(true);
78
+ }
79
+ // The install flow is console-driven and cloud-only — never a CLI verb.
80
+ expect(registry.supportsVerb(ApiResourceKind.agent_channel, Verb.Run)).toBe(false);
81
+ expect(registry.supportsVerb(ApiResourceKind.agent_channel, Verb.Search)).toBe(false);
82
+ });
83
+
64
84
  it("typesForVerb(get) includes the core read kinds", () => {
65
85
  const kinds = new Set(registry.typesForVerb(Verb.Get).map((t) => t.kind));
66
86
  expect(kinds).toContain(ApiResourceKind.agent);
@@ -77,4 +97,14 @@ describe("registry — completeness", () => {
77
97
  expect(info.aliases.length).toBeGreaterThan(0);
78
98
  }
79
99
  });
100
+
101
+ // The apply verb dispatches through an explicit handler registry, not
102
+ // the kind registry — a kind can advertise Apply in the verb matrix yet
103
+ // fail at dispatch if its handler entry is missing. Pin the wiring for
104
+ // the kinds whose apply path the declarative flow depends on.
105
+ it("every declarative kind with an Apply verb intent has an apply handler", () => {
106
+ for (const kind of [ApiResourceKind.agent_share, ApiResourceKind.agent_channel]) {
107
+ expect(APPLY_HANDLERS.get(kind), `apply handler missing for kind ${kind}`).toBeDefined();
108
+ }
109
+ });
80
110
  });
@@ -42,6 +42,12 @@ export const VERB_SUPPORT: ReadonlyMap<ApiResourceKind, ReadonlySet<Verb>> = new
42
42
  // Enable/disable flows through `stigmer share agent`; the generic verbs
43
43
  // cover the declarative path (apply a manifest, inspect, tear down).
44
44
  [ApiResourceKind.agent_share, new Set<Verb>([Verb.Apply, Verb.Get, Verb.List, Verb.Delete])],
45
+ // The provider install flow is console-driven and cloud-only; the generic
46
+ // verbs cover the declarative path (apply a manifest, inspect, tear down).
47
+ [ApiResourceKind.agent_channel, new Set<Verb>([Verb.Apply, Verb.Get, Verb.List, Verb.Delete])],
48
+ // Secret fields round-trip as ***REDACTED***; applying a fetched manifest
49
+ // preserves the stored secrets (the OAuthApp marker convention).
50
+ [ApiResourceKind.channel_app, new Set<Verb>([Verb.Apply, Verb.Get, Verb.List, Verb.Delete])],
45
51
  [ApiResourceKind.agent_instance, new Set<Verb>([Verb.Apply, Verb.Get, Verb.List, Verb.Delete])],
46
52
  // No list: proto exposes getByWorkflow (requires workflow_id), not a generic list.
47
53
  [ApiResourceKind.workflow_instance, new Set<Verb>([Verb.Apply, Verb.Get, Verb.Delete])],
@@ -17,6 +17,8 @@ import { ApiResourceKind } from "@stigmer/protos/ai/stigmer/commons/apiresource/
17
17
 
18
18
  import { type Agent, AgentSchema } from "@stigmer/protos/ai/stigmer/agentic/agent/v1/api_pb";
19
19
  import { AgentCommandController } from "@stigmer/protos/ai/stigmer/agentic/agent/v1/command_pb";
20
+ import { type AgentChannel, AgentChannelSchema } from "@stigmer/protos/ai/stigmer/agentic/agentchannel/v1/api_pb";
21
+ import { AgentChannelCommandController } from "@stigmer/protos/ai/stigmer/agentic/agentchannel/v1/command_pb";
20
22
  import { type AgentInstance, AgentInstanceSchema } from "@stigmer/protos/ai/stigmer/agentic/agentinstance/v1/api_pb";
21
23
  import { AgentInstanceCommandController } from "@stigmer/protos/ai/stigmer/agentic/agentinstance/v1/command_pb";
22
24
  import { type AgentShare, AgentShareSchema } from "@stigmer/protos/ai/stigmer/agentic/agentshare/v1/api_pb";
@@ -126,6 +128,15 @@ export const APPLY_HANDLERS: ReadonlyMap<ApiResourceKind, ApplyHandler> = new Ma
126
128
  apply: (c, m) => c(AgentShareCommandController).apply(m as AgentShare),
127
129
  },
128
130
  ],
131
+ [
132
+ ApiResourceKind.agent_channel,
133
+ {
134
+ kind: ApiResourceKind.agent_channel,
135
+ displayName: "Agent Channel",
136
+ schema: AgentChannelSchema,
137
+ apply: (c, m) => c(AgentChannelCommandController).apply(m as AgentChannel),
138
+ },
139
+ ],
129
140
  [
130
141
  ApiResourceKind.agent_instance,
131
142
  {