@stigmer/cli 3.1.6 → 3.1.8

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.
Files changed (93) hide show
  1. package/commands/share.d.ts +3 -0
  2. package/commands/share.d.ts.map +1 -0
  3. package/commands/share.js +75 -0
  4. package/commands/share.js.map +1 -0
  5. package/config/index.d.ts +1 -1
  6. package/config/index.d.ts.map +1 -1
  7. package/config/index.js +1 -1
  8. package/config/index.js.map +1 -1
  9. package/config/resolve.d.ts +19 -2
  10. package/config/resolve.d.ts.map +1 -1
  11. package/config/resolve.js +40 -2
  12. package/config/resolve.js.map +1 -1
  13. package/local/runtime/node.d.ts +9 -2
  14. package/local/runtime/node.d.ts.map +1 -1
  15. package/local/runtime/node.js +38 -23
  16. package/local/runtime/node.js.map +1 -1
  17. package/package.json +6 -6
  18. package/program.d.ts.map +1 -1
  19. package/program.js +2 -0
  20. package/program.js.map +1 -1
  21. package/resources/connect/connect.d.ts.map +1 -1
  22. package/resources/connect/connect.js +76 -8
  23. package/resources/connect/connect.js.map +1 -1
  24. package/resources/connect/discover.d.ts.map +1 -1
  25. package/resources/connect/discover.js +12 -4
  26. package/resources/connect/discover.js.map +1 -1
  27. package/resources/connect/oauth.d.ts +0 -9
  28. package/resources/connect/oauth.d.ts.map +1 -1
  29. package/resources/connect/oauth.js +1 -17
  30. package/resources/connect/oauth.js.map +1 -1
  31. package/resources/mcp/placeholder-resolver.d.ts +19 -0
  32. package/resources/mcp/placeholder-resolver.d.ts.map +1 -0
  33. package/resources/mcp/placeholder-resolver.js +52 -0
  34. package/resources/mcp/placeholder-resolver.js.map +1 -0
  35. package/resources/mcp/runtime-env.d.ts +16 -0
  36. package/resources/mcp/runtime-env.d.ts.map +1 -1
  37. package/resources/mcp/runtime-env.js +29 -8
  38. package/resources/mcp/runtime-env.js.map +1 -1
  39. package/resources/share.d.ts +37 -0
  40. package/resources/share.d.ts.map +1 -0
  41. package/resources/share.js +144 -0
  42. package/resources/share.js.map +1 -0
  43. package/resources/stream/convert.d.ts +6 -2
  44. package/resources/stream/convert.d.ts.map +1 -1
  45. package/resources/stream/convert.js +8 -2
  46. package/resources/stream/convert.js.map +1 -1
  47. package/resources/stream/events.d.ts +14 -2
  48. package/resources/stream/events.d.ts.map +1 -1
  49. package/resources/stream/events.js.map +1 -1
  50. package/resources/stream/render-ndjson.js +2 -0
  51. package/resources/stream/render-ndjson.js.map +1 -1
  52. package/resources/stream/render-plaintext.d.ts.map +1 -1
  53. package/resources/stream/render-plaintext.js +3 -0
  54. package/resources/stream/render-plaintext.js.map +1 -1
  55. package/resources/stream/snapshot.js +6 -1
  56. package/resources/stream/snapshot.js.map +1 -1
  57. package/resources/stream/tool-state.d.ts +1 -1
  58. package/resources/stream/tool-state.d.ts.map +1 -1
  59. package/resources/stream/tool-state.js +13 -4
  60. package/resources/stream/tool-state.js.map +1 -1
  61. package/src/commands/connect.test.ts +26 -4
  62. package/src/commands/share.ts +99 -0
  63. package/src/config/index.ts +2 -0
  64. package/src/config/resolve.test.ts +38 -0
  65. package/src/config/resolve.ts +42 -3
  66. package/src/local/runtime/node.ts +43 -25
  67. package/src/local/runtime/runtime.test.ts +5 -4
  68. package/src/program.test.ts +7 -0
  69. package/src/program.ts +2 -0
  70. package/src/resources/connect/__fixtures__/stdio-server.mjs +8 -3
  71. package/src/resources/connect/connect.integration.test.ts +91 -0
  72. package/src/resources/connect/connect.ts +86 -8
  73. package/src/resources/connect/discover.test.ts +40 -1
  74. package/src/resources/connect/discover.ts +16 -4
  75. package/src/resources/connect/oauth.test.ts +1 -24
  76. package/src/resources/connect/oauth.ts +1 -17
  77. package/src/resources/mcp/placeholder-resolver.test.ts +71 -0
  78. package/src/resources/mcp/placeholder-resolver.ts +63 -0
  79. package/src/resources/mcp/runtime-env.test.ts +35 -1
  80. package/src/resources/mcp/runtime-env.ts +35 -9
  81. package/src/resources/read-verbs.integration.test.ts +1 -1
  82. package/src/resources/share.test.ts +389 -0
  83. package/src/resources/share.ts +227 -0
  84. package/src/resources/stream/convert.ts +17 -3
  85. package/src/resources/stream/diff.test.ts +22 -0
  86. package/src/resources/stream/events.ts +15 -1
  87. package/src/resources/stream/render-ndjson.test.ts +10 -0
  88. package/src/resources/stream/render-ndjson.ts +2 -0
  89. package/src/resources/stream/render-plaintext.test.ts +8 -0
  90. package/src/resources/stream/render-plaintext.ts +3 -0
  91. package/src/resources/stream/snapshot.test.ts +14 -0
  92. package/src/resources/stream/snapshot.ts +5 -1
  93. package/src/resources/stream/tool-state.ts +13 -4
@@ -0,0 +1,3 @@
1
+ import type { Command } from "commander";
2
+ export declare function registerShare(program: Command): void;
3
+ //# sourceMappingURL=share.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"share.d.ts","sourceRoot":"","sources":["../../src/commands/share.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAczC,wBAAgB,aAAa,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAkBpD"}
@@ -0,0 +1,75 @@
1
+ // `stigmer share agent <ref>` — enable (default) or disable (--off) public
2
+ // sharing for an agent, printing the hosted chat link and embed snippet.
3
+ //
4
+ // Thin handler: resolve credentials/org and the console origin, delegate the
5
+ // merge-preserving toggle to resources/share, render the result. `--open` is a
6
+ // best-effort browser launch after render (mirrors auth login: the URL is
7
+ // already on screen, so a failed launch costs nothing). Heavy modules are
8
+ // lazy-imported so `--help` stays fast (DD-001).
9
+ import { ensureAuthenticated, resolveConsoleURL, resolveOrganization } from "../config/index.js";
10
+ import { UsageError } from "../errors/index.js";
11
+ import { addResultFlags, globalOrg, resultFormat } from "./shared.js";
12
+ export function registerShare(program) {
13
+ const share = program.command("share").description("share resources via a hosted link");
14
+ const agent = share
15
+ .command("agent <ref>")
16
+ .description("enable sharing for an agent and print its chat link and embed snippet")
17
+ .option("--off", "disable sharing (the link stops working immediately)")
18
+ .option("--audience <audience>", "who can chat: 'public' (anyone with the link) or 'org' (signed-in organization members only); omit to keep the current audience")
19
+ .option("--reset-link", "generate a new share link and kill the current one immediately (public audience)")
20
+ .option("--open", "open the chat link in your browser")
21
+ .action((ref, options, command) => runShareAgent(ref, options, command));
22
+ addResultFlags(agent);
23
+ }
24
+ // Validates --audience before any network work; omitted means "preserve".
25
+ function parseAudience(value) {
26
+ if (value === undefined)
27
+ return undefined;
28
+ if (value === "public" || value === "org")
29
+ return value;
30
+ throw new UsageError(`invalid --audience '${value}'\n\nExpected 'public' or 'org'.`);
31
+ }
32
+ async function runShareAgent(ref, options, command) {
33
+ const format = resultFormat(options);
34
+ const [{ connectBackend }, { shareAgent }, { renderResult }] = await Promise.all([
35
+ import("../backend.js"),
36
+ import("../resources/share.js"),
37
+ import("../output/command-result.js"),
38
+ ]);
39
+ const client = connectBackend();
40
+ ensureAuthenticated(client.config);
41
+ const org = resolveOrganization(client.config, globalOrg(command));
42
+ const backendType = client.config.backend.type;
43
+ const appOrigin = resolveConsoleURL(backendType);
44
+ const enabled = options.off !== true;
45
+ const audience = parseAudience(options.audience);
46
+ const resetLink = options.resetLink === true;
47
+ if (resetLink && !enabled) {
48
+ throw new UsageError("--reset-link cannot be combined with --off\n\n" +
49
+ "Disabling sharing already kills the link. Reset is for keeping\n" +
50
+ "sharing on while invalidating the current URL.");
51
+ }
52
+ const result = await shareAgent(client.stigmer, ref, org, {
53
+ enabled,
54
+ ...(audience !== undefined ? { audience } : {}),
55
+ resetLink,
56
+ appOrigin,
57
+ isLocal: backendType === "local",
58
+ });
59
+ renderResult(result, format);
60
+ if (options.open === true && enabled) {
61
+ // Best-effort: the link is already rendered above, so a launch failure
62
+ // only needs a nudge, never an error exit (mirrors auth login).
63
+ const url = result.sections.find((s) => s.title.endsWith("chat link"))?.items[0];
64
+ if (url !== undefined) {
65
+ try {
66
+ const { default: open } = await import("open");
67
+ await open(url);
68
+ }
69
+ catch {
70
+ process.stderr.write("Could not open the browser automatically. Please open the link above.\n");
71
+ }
72
+ }
73
+ }
74
+ }
75
+ //# sourceMappingURL=share.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"share.js","sourceRoot":"","sources":["../../src/commands/share.ts"],"names":[],"mappings":"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"}
package/config/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  export { type BackendConfig, type BackendType, type CloudBackendConfig, type Config, type ContextConfig, getDefault, isCloudMode, load, save, } from "./config.js";
2
- export { ensureAuthenticated, resolveContextOrganization, resolveEndpoint, resolveOrganization, resolveToken, } from "./resolve.js";
2
+ export { DEFAULT_CLOUD_CONSOLE_URL, ensureAuthenticated, resolveConsoleURL, resolveContextOrganization, resolveEndpoint, resolveOrganization, resolveToken, } from "./resolve.js";
3
3
  export { configDir, configPath, dataDir } from "./paths.js";
4
4
  export { configKeyNames, getConfigValue, setConfigValue } from "./keys.js";
5
5
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,KAAK,aAAa,EAClB,KAAK,WAAW,EAChB,KAAK,kBAAkB,EACvB,KAAK,MAAM,EACX,KAAK,aAAa,EAClB,UAAU,EACV,WAAW,EACX,IAAI,EACJ,IAAI,GACL,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,mBAAmB,EACnB,0BAA0B,EAC1B,eAAe,EACf,mBAAmB,EACnB,YAAY,GACb,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,KAAK,aAAa,EAClB,KAAK,WAAW,EAChB,KAAK,kBAAkB,EACvB,KAAK,MAAM,EACX,KAAK,aAAa,EAClB,UAAU,EACV,WAAW,EACX,IAAI,EACJ,IAAI,GACL,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,yBAAyB,EACzB,mBAAmB,EACnB,iBAAiB,EACjB,0BAA0B,EAC1B,eAAe,EACf,mBAAmB,EACnB,YAAY,GACb,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC"}
package/config/index.js CHANGED
@@ -1,6 +1,6 @@
1
1
  // Public surface of the CLI config module.
2
2
  export { getDefault, isCloudMode, load, save, } from "./config.js";
3
- export { ensureAuthenticated, resolveContextOrganization, resolveEndpoint, resolveOrganization, resolveToken, } from "./resolve.js";
3
+ export { DEFAULT_CLOUD_CONSOLE_URL, ensureAuthenticated, resolveConsoleURL, resolveContextOrganization, resolveEndpoint, resolveOrganization, resolveToken, } from "./resolve.js";
4
4
  export { configDir, configPath, dataDir } from "./paths.js";
5
5
  export { configKeyNames, getConfigValue, setConfigValue } from "./keys.js";
6
6
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"AAAA,2CAA2C;AAE3C,OAAO,EAML,UAAU,EACV,WAAW,EACX,IAAI,EACJ,IAAI,GACL,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,mBAAmB,EACnB,0BAA0B,EAC1B,eAAe,EACf,mBAAmB,EACnB,YAAY,GACb,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"AAAA,2CAA2C;AAE3C,OAAO,EAML,UAAU,EACV,WAAW,EACX,IAAI,EACJ,IAAI,GACL,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,yBAAyB,EACzB,mBAAmB,EACnB,iBAAiB,EACjB,0BAA0B,EAC1B,eAAe,EACf,mBAAmB,EACnB,YAAY,GACb,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC"}
@@ -1,4 +1,6 @@
1
- import { type Config } from "./config.js";
1
+ import { type BackendType, type Config } from "./config.js";
2
+ /** Well-known URL for the Stigmer Cloud web console. */
3
+ export declare const DEFAULT_CLOUD_CONSOLE_URL = "https://app.stigmer.ai";
2
4
  /**
3
5
  * Resolve the server endpoint.
4
6
  * STIGMER_SERVER_ADDRESS (explicit override, either backend)
@@ -19,7 +21,22 @@ export declare function resolveToken(config: Config): string;
19
21
  * > cloud.org_id (legacy fallback)
20
22
  */
21
23
  export declare function resolveOrganization(config: Config, flagOrg?: string): string;
22
- /** The configured organization, with the legacy cloud.org_id fallback. */
24
+ /**
25
+ * Resolve the web console URL:
26
+ * 1. `STIGMER_CONSOLE_URL` (explicit override)
27
+ * 2. local backend → `http://localhost:{WEB_CONSOLE_PORT}`
28
+ * 3. cloud backend → {@link DEFAULT_CLOUD_CONSOLE_URL}
29
+ *
30
+ * The console origin is also the app origin that serves the hosted chat
31
+ * page (`/chat/<org>/<slug>`) and the embed loader (`/embed.js`), so
32
+ * share-link builders use this same resolver.
33
+ */
34
+ export declare function resolveConsoleURL(backendType: BackendType, env?: NodeJS.ProcessEnv): string;
35
+ /**
36
+ * The configured organization, with the legacy cloud.org_id fallback. Reports
37
+ * only what is explicitly set (no implicit local default) so config/context
38
+ * display can faithfully show "(not set)".
39
+ */
23
40
  export declare function resolveContextOrganization(config: Config): string;
24
41
  /**
25
42
  * Fail fast with a clear "please log in" error when a cloud command has no
@@ -1 +1 @@
1
- {"version":3,"file":"resolve.d.ts","sourceRoot":"","sources":["../../src/config/resolve.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,KAAK,MAAM,EAAe,MAAM,aAAa,CAAC;AAKvD;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAStD;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAMnD;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAS5E;AAED,0EAA0E;AAC1E,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAKjE;AAED;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAMxD"}
1
+ {"version":3,"file":"resolve.d.ts","sourceRoot":"","sources":["../../src/config/resolve.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,KAAK,WAAW,EAAE,KAAK,MAAM,EAAe,MAAM,aAAa,CAAC;AAKzE,wDAAwD;AACxD,eAAO,MAAM,yBAAyB,2BAA2B,CAAC;AASlE;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAStD;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAMnD;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAgB5E;AAED;;;;;;;;;GASG;AACH,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,WAAW,EAAE,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,MAAM,CAKxG;AAED;;;;GAIG;AACH,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAKjE;AAED;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAMxD"}
package/config/resolve.js CHANGED
@@ -2,9 +2,18 @@
2
2
  // the settings the backend client and read verbs depend on; centralizing the
3
3
  // precedence keeps every call site consistent (mirrors the Go CLI's Resolve*).
4
4
  import { CliExitError, ExitCode } from "../errors/index.js";
5
+ import { WEB_CONSOLE_PORT } from "../local/constants.js";
5
6
  import { isCloudMode } from "./config.js";
6
7
  const DEFAULT_CLOUD_ENDPOINT = "api.stigmer.ai:443";
7
8
  const DEFAULT_LOCAL_ENDPOINT = "localhost:7234";
9
+ /** Well-known URL for the Stigmer Cloud web console. */
10
+ export const DEFAULT_CLOUD_CONSOLE_URL = "https://app.stigmer.ai";
11
+ // Local mode is single-tenant: the seedpack bootstraps resources into the
12
+ // "stigmer" org (see client-apps/cli/src/local/seedpack/apply.ts DEFAULT_ORG).
13
+ // Org-scoped getByReference now requires an org, so bare-slug `get`/`run`/`apply`
14
+ // in local mode fall back to this default when nothing else is configured. Cloud
15
+ // mode has no implicit org — the caller must select one (flag/env/context/login).
16
+ const DEFAULT_LOCAL_ORG = "stigmer";
8
17
  /**
9
18
  * Resolve the server endpoint.
10
19
  * STIGMER_SERVER_ADDRESS (explicit override, either backend)
@@ -47,9 +56,38 @@ export function resolveOrganization(config, flagOrg) {
47
56
  if (env !== undefined && env !== "") {
48
57
  return env;
49
58
  }
50
- return resolveContextOrganization(config);
59
+ const context = resolveContextOrganization(config);
60
+ if (context !== "") {
61
+ return context;
62
+ }
63
+ // Nothing configured: local mode falls back to its single-tenant default org
64
+ // so bare-slug operations resolve without ceremony; cloud stays empty (the
65
+ // caller must select an org, e.g. apply raises a clear "organization not set").
66
+ return isCloudMode(config) ? "" : DEFAULT_LOCAL_ORG;
51
67
  }
52
- /** The configured organization, with the legacy cloud.org_id fallback. */
68
+ /**
69
+ * Resolve the web console URL:
70
+ * 1. `STIGMER_CONSOLE_URL` (explicit override)
71
+ * 2. local backend → `http://localhost:{WEB_CONSOLE_PORT}`
72
+ * 3. cloud backend → {@link DEFAULT_CLOUD_CONSOLE_URL}
73
+ *
74
+ * The console origin is also the app origin that serves the hosted chat
75
+ * page (`/chat/<org>/<slug>`) and the embed loader (`/embed.js`), so
76
+ * share-link builders use this same resolver.
77
+ */
78
+ export function resolveConsoleURL(backendType, env = process.env) {
79
+ const override = env.STIGMER_CONSOLE_URL;
80
+ if (override !== undefined && override !== "")
81
+ return override;
82
+ if (backendType === "local")
83
+ return `http://localhost:${WEB_CONSOLE_PORT}`;
84
+ return DEFAULT_CLOUD_CONSOLE_URL;
85
+ }
86
+ /**
87
+ * The configured organization, with the legacy cloud.org_id fallback. Reports
88
+ * only what is explicitly set (no implicit local default) so config/context
89
+ * display can faithfully show "(not set)".
90
+ */
53
91
  export function resolveContextOrganization(config) {
54
92
  if (config.context?.organization !== undefined && config.context.organization !== "") {
55
93
  return config.context.organization;
@@ -1 +1 @@
1
- {"version":3,"file":"resolve.js","sourceRoot":"","sources":["../../src/config/resolve.ts"],"names":[],"mappings":"AAAA,+EAA+E;AAC/E,6EAA6E;AAC7E,+EAA+E;AAE/E,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC5D,OAAO,EAAe,WAAW,EAAE,MAAM,aAAa,CAAC;AAEvD,MAAM,sBAAsB,GAAG,oBAAoB,CAAC;AACpD,MAAM,sBAAsB,GAAG,gBAAgB,CAAC;AAEhD;;;;;GAKG;AACH,MAAM,UAAU,eAAe,CAAC,MAAc;IAC5C,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC;IACpD,IAAI,QAAQ,KAAK,SAAS,IAAI,QAAQ,KAAK,EAAE,EAAE,CAAC;QAC9C,OAAO,QAAQ,CAAC;IAClB,CAAC;IACD,IAAI,WAAW,CAAC,MAAM,CAAC,EAAE,CAAC;QACxB,OAAO,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,QAAQ,IAAI,sBAAsB,CAAC;IAClE,CAAC;IACD,OAAO,sBAAsB,CAAC;AAChC,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,YAAY,CAAC,MAAc;IACzC,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC;IACxC,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,EAAE,EAAE,CAAC;QACpC,OAAO,GAAG,CAAC;IACb,CAAC;IACD,OAAO,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,IAAI,EAAE,CAAC;AAC3C,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,mBAAmB,CAAC,MAAc,EAAE,OAAgB;IAClE,IAAI,OAAO,KAAK,SAAS,IAAI,OAAO,KAAK,EAAE,EAAE,CAAC;QAC5C,OAAO,OAAO,CAAC;IACjB,CAAC;IACD,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC;IACvC,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,EAAE,EAAE,CAAC;QACpC,OAAO,GAAG,CAAC;IACb,CAAC;IACD,OAAO,0BAA0B,CAAC,MAAM,CAAC,CAAC;AAC5C,CAAC;AAED,0EAA0E;AAC1E,MAAM,UAAU,0BAA0B,CAAC,MAAc;IACvD,IAAI,MAAM,CAAC,OAAO,EAAE,YAAY,KAAK,SAAS,IAAI,MAAM,CAAC,OAAO,CAAC,YAAY,KAAK,EAAE,EAAE,CAAC;QACrF,OAAO,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC;IACrC,CAAC;IACD,OAAO,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,IAAI,EAAE,CAAC;AAC5C,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,mBAAmB,CAAC,MAAc;IAChD,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC;QAAE,OAAO;IACjC,IAAI,OAAO,CAAC,GAAG,CAAC,eAAe;QAAE,OAAO;IACxC,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC;IACnC,IAAI,KAAK,EAAE,KAAK,IAAI,KAAK,EAAE,aAAa;QAAE,OAAO;IACjD,MAAM,IAAI,YAAY,CAAC,mBAAmB,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,iBAAiB,EAAE,sBAAsB,CAAC,CAAC,CAAC;AAC1G,CAAC"}
1
+ {"version":3,"file":"resolve.js","sourceRoot":"","sources":["../../src/config/resolve.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,12 @@
1
- /** Minimum Node major version the runner requires. */
2
- export declare const MIN_NODE_MAJOR = 20;
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;
3
10
  /**
4
11
  * Resolve the Node binary to launch the runner with. Honors STIGMER_NODE_BIN
5
12
  * (version-checked); otherwise returns the current runtime.
@@ -1 +1 @@
1
- {"version":3,"file":"node.d.ts","sourceRoot":"","sources":["../../../src/local/runtime/node.ts"],"names":[],"mappings":"AAcA,sDAAsD;AACtD,eAAO,MAAM,cAAc,KAAK,CAAC;AAEjC;;;GAGG;AACH,wBAAgB,WAAW,IAAI,MAAM,CASpC"}
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,17 +1,24 @@
1
1
  // Resolution of the Node.js runtime used to launch the runner subprocess.
2
2
  //
3
3
  // We reuse the very Node that is running the CLI (process.execPath). The CLI is
4
- // itself an npm package with `engines: node >= 20`, so a suitable Node is always
5
- // present by construction — there is deliberately no hermetic Node download
6
- // (DD-002: keep the base install lean; nothing to acquire that the host already
7
- // guarantees). This is exactly what the conformance harness does
4
+ // itself an npm package with `engines: node >= 22.13`, so a suitable Node is
5
+ // always present by construction — there is deliberately no hermetic Node
6
+ // download (DD-002: keep the base install lean; nothing to acquire that the host
7
+ // already guarantees). This is exactly what the conformance harness does
8
8
  // (`spawn(process.execPath, ...)`). An explicit STIGMER_NODE_BIN override is
9
9
  // honored and version-checked for advanced/multi-runtime setups.
10
10
  import { execFileSync } from "node:child_process";
11
11
  import { CliExitError } from "../../errors/cli-exit-error.js";
12
12
  import { ExitCode } from "../../errors/exit-codes.js";
13
- /** Minimum Node major version the runner requires. */
14
- export const MIN_NODE_MAJOR = 20;
13
+ /**
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;
15
22
  /**
16
23
  * Resolve the Node binary to launch the runner with. Honors STIGMER_NODE_BIN
17
24
  * (version-checked); otherwise returns the current runtime.
@@ -19,41 +26,49 @@ export const MIN_NODE_MAJOR = 20;
19
26
  export function resolveNode() {
20
27
  const override = process.env.STIGMER_NODE_BIN;
21
28
  if (override !== undefined && override !== "") {
22
- assertVersion(override, probeNodeMajor(override));
29
+ assertVersion(override, probeNodeVersion(override));
23
30
  return override;
24
31
  }
25
- // The CLI's own runtime: major is readable directly, no subprocess needed.
26
- assertVersion(process.execPath, currentMajor());
32
+ // The CLI's own runtime: version is readable directly, no subprocess needed.
33
+ assertVersion(process.execPath, parseVersion(process.versions.node));
27
34
  return process.execPath;
28
35
  }
29
- function currentMajor() {
30
- return parseMajor(process.versions.node);
31
- }
32
- function probeNodeMajor(bin) {
36
+ function probeNodeVersion(bin) {
33
37
  try {
34
38
  const out = execFileSync(bin, ["--version"], { encoding: "utf8" });
35
- return parseMajor(out.trim());
39
+ return parseVersion(out.trim());
36
40
  }
37
41
  catch {
38
42
  return null;
39
43
  }
40
44
  }
41
- // Parses "v22.22.2" or "22.22.2" to its major number.
42
- function parseMajor(version) {
43
- const match = /^v?(\d+)\./.exec(version.trim());
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());
44
48
  if (match === null)
45
49
  return null;
46
50
  const major = Number.parseInt(match[1], 10);
47
- return Number.isInteger(major) ? major : null;
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;
48
61
  }
49
- function assertVersion(bin, major) {
50
- if (major === null) {
62
+ function assertVersion(bin, version) {
63
+ const floor = `${MIN_NODE_MAJOR}.${MIN_NODE_MINOR_ON_MAJOR}`;
64
+ if (version === null) {
51
65
  throw new CliExitError(`could not determine the Node version of ${bin}`, ExitCode.General, [
52
- `Ensure ${bin} is a working Node >= ${MIN_NODE_MAJOR} runtime.`,
66
+ `Ensure ${bin} is a working Node >= ${floor} runtime.`,
53
67
  ]);
54
68
  }
55
- if (major < MIN_NODE_MAJOR) {
56
- throw new CliExitError(`Node >= ${MIN_NODE_MAJOR} is required to run the runner (found major ${major} at ${bin})`, ExitCode.General, [`Upgrade Node to ${MIN_NODE_MAJOR} or newer, or point STIGMER_NODE_BIN at one.`]);
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.`]);
57
72
  }
58
73
  }
59
74
  //# sourceMappingURL=node.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"node.js","sourceRoot":"","sources":["../../../src/local/runtime/node.ts"],"names":[],"mappings":"AAAA,0EAA0E;AAC1E,EAAE;AACF,gFAAgF;AAChF,iFAAiF;AACjF,4EAA4E;AAC5E,gFAAgF;AAChF,iEAAiE;AACjE,6EAA6E;AAC7E,iEAAiE;AAEjE,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAC9D,OAAO,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AAEtD,sDAAsD;AACtD,MAAM,CAAC,MAAM,cAAc,GAAG,EAAE,CAAC;AAEjC;;;GAGG;AACH,MAAM,UAAU,WAAW;IACzB,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC;IAC9C,IAAI,QAAQ,KAAK,SAAS,IAAI,QAAQ,KAAK,EAAE,EAAE,CAAC;QAC9C,aAAa,CAAC,QAAQ,EAAE,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC;QAClD,OAAO,QAAQ,CAAC;IAClB,CAAC;IACD,2EAA2E;IAC3E,aAAa,CAAC,OAAO,CAAC,QAAQ,EAAE,YAAY,EAAE,CAAC,CAAC;IAChD,OAAO,OAAO,CAAC,QAAQ,CAAC;AAC1B,CAAC;AAED,SAAS,YAAY;IACnB,OAAO,UAAU,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AAC3C,CAAC;AAED,SAAS,cAAc,CAAC,GAAW;IACjC,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,YAAY,CAAC,GAAG,EAAE,CAAC,WAAW,CAAC,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC;QACnE,OAAO,UAAU,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;IAChC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,sDAAsD;AACtD,SAAS,UAAU,CAAC,OAAe;IACjC,MAAM,KAAK,GAAG,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;IAChD,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IAChC,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAC5C,OAAO,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;AAChD,CAAC;AAED,SAAS,aAAa,CAAC,GAAW,EAAE,KAAoB;IACtD,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QACnB,MAAM,IAAI,YAAY,CAAC,2CAA2C,GAAG,EAAE,EAAE,QAAQ,CAAC,OAAO,EAAE;YACzF,UAAU,GAAG,yBAAyB,cAAc,WAAW;SAChE,CAAC,CAAC;IACL,CAAC;IACD,IAAI,KAAK,GAAG,cAAc,EAAE,CAAC;QAC3B,MAAM,IAAI,YAAY,CACpB,WAAW,cAAc,+CAA+C,KAAK,OAAO,GAAG,GAAG,EAC1F,QAAQ,CAAC,OAAO,EAChB,CAAC,mBAAmB,cAAc,8CAA8C,CAAC,CAClF,CAAC;IACJ,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"node.js","sourceRoot":"","sources":["../../../src/local/runtime/node.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@stigmer/cli",
3
- "version": "3.1.6",
3
+ "version": "3.1.8",
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",
@@ -10,7 +10,7 @@
10
10
  "directory": "client-apps/cli"
11
11
  },
12
12
  "engines": {
13
- "node": ">=20"
13
+ "node": ">=22.13"
14
14
  },
15
15
  "keywords": [
16
16
  "stigmer",
@@ -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.6",
39
- "@stigmer/mcp-server": "3.1.6",
40
- "@stigmer/protos": "3.1.6",
41
- "@stigmer/sdk": "3.1.6",
38
+ "@stigmer/ink": "3.1.8",
39
+ "@stigmer/mcp-server": "3.1.8",
40
+ "@stigmer/protos": "3.1.8",
41
+ "@stigmer/sdk": "3.1.8",
42
42
  "commander": "^12.1.0",
43
43
  "fflate": "^0.8.3",
44
44
  "ink": "^7.0.0",
package/program.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"program.d.ts","sourceRoot":"","sources":["../src/program.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAkCpC,wBAAgB,YAAY,IAAI,OAAO,CAyDtC"}
1
+ {"version":3,"file":"program.d.ts","sourceRoot":"","sources":["../src/program.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAmCpC,wBAAgB,YAAY,IAAI,OAAO,CA0DtC"}
package/program.js CHANGED
@@ -30,6 +30,7 @@ import { registerRun } from "./commands/run.js";
30
30
  import { registerSearch } from "./commands/search.js";
31
31
  import { registerSeedpack } from "./commands/seedpack.js";
32
32
  import { registerSetup } from "./commands/setup.js";
33
+ import { registerShare } from "./commands/share.js";
33
34
  import { registerStatus } from "./commands/status.js";
34
35
  import { registerTag } from "./commands/tag.js";
35
36
  import { registerUp } from "./commands/up.js";
@@ -71,6 +72,7 @@ export function buildProgram() {
71
72
  registerValidate(program);
72
73
  registerDelete(program);
73
74
  registerTag(program);
75
+ registerShare(program);
74
76
  registerDiff(program);
75
77
  registerUsage(program);
76
78
  registerPush(program);
package/program.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"program.js","sourceRoot":"","sources":["../src/program.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"program.js","sourceRoot":"","sources":["../src/program.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"connect.d.ts","sourceRoot":"","sources":["../../../src/resources/connect/connect.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wDAAwD,CAAC;AAExF,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,2DAA2D,CAAC;AAExG,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAO1D,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,YAAY,EAAE,SAAS,MAAM,EAAE,CAAC;IACzC,6DAA6D;IAC7D,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;IAClC,0EAA0E;IAC1E,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC;CAC/B;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC;IAC3B,QAAQ,CAAC,YAAY,EAAE,sBAAsB,GAAG,SAAS,CAAC;IAC1D,iFAAiF;IACjF,QAAQ,CAAC,OAAO,EAAE,SAAS,GAAG,SAAS,CAAC;CACzC;AAED,gFAAgF;AAChF,wBAAsB,gBAAgB,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC,aAAa,CAAC,CAmBpG"}
1
+ {"version":3,"file":"connect.d.ts","sourceRoot":"","sources":["../../../src/resources/connect/connect.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wDAAwD,CAAC;AAExF,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,2DAA2D,CAAC;AAExG,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAQ1D,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,YAAY,EAAE,SAAS,MAAM,EAAE,CAAC;IACzC,6DAA6D;IAC7D,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;IAClC,0EAA0E;IAC1E,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC;CAC/B;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC;IAC3B,QAAQ,CAAC,YAAY,EAAE,sBAAsB,GAAG,SAAS,CAAC;IAC1D,iFAAiF;IACjF,QAAQ,CAAC,OAAO,EAAE,SAAS,GAAG,SAAS,CAAC;CACzC;AAED,gFAAgF;AAChF,wBAAsB,gBAAgB,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC,aAAa,CAAC,CA+BpG"}
@@ -12,6 +12,7 @@ import { create } from "@bufbuild/protobuf";
12
12
  import { ConnectInputSchema, GetOAuthGrantStatusInputSchema } from "@stigmer/protos/ai/stigmer/agentic/mcpserver/v1/io_pb";
13
13
  import { UsageError } from "../../errors/index.js";
14
14
  import { defaultRegistry } from "../../registry/index.js";
15
+ import { PlaceholderResolutionError } from "../mcp/placeholder-resolver.js";
15
16
  import { buildRuntimeEnv } from "../mcp/runtime-env.js";
16
17
  import { parseReference } from "../reference.js";
17
18
  import { localDiscover } from "./discover.js";
@@ -21,8 +22,23 @@ export async function connectMcpServer(client, opts) {
21
22
  if (opts.dryRun) {
22
23
  if (server.spec === undefined)
23
24
  throw new UsageError("MCP server has no spec; cannot discover capabilities");
24
- const capabilities = await localDiscover(server.spec, opts.envOverrides, opts.timeoutMs);
25
- return { server, capabilities, updated: undefined };
25
+ // An oauth_only endpoint rejects static tokens, and the OAuth token lives in
26
+ // the backend's managed environment — never on the caller's machine. So local
27
+ // discovery cannot authenticate it; say so plainly instead of failing on a 401.
28
+ if (isOAuthOnly(server))
29
+ throw oauthOnlyDryRunError(server, opts.reference);
30
+ try {
31
+ const capabilities = await localDiscover(server.spec, opts.envOverrides, opts.timeoutMs);
32
+ return { server, capabilities, updated: undefined };
33
+ }
34
+ catch (err) {
35
+ // A ${VAR} placeholder that could not be resolved is a configuration
36
+ // problem, not a discovery failure — surface it as actionable guidance
37
+ // instead of a raw resolver error or a cryptic subprocess crash.
38
+ if (err instanceof PlaceholderResolutionError)
39
+ throw unresolvedEnvError(server, err);
40
+ throw err;
41
+ }
26
42
  }
27
43
  await ensureOAuthSatisfied(client, server, opts);
28
44
  const updated = await client.mcpServer.connect(create(ConnectInputSchema, {
@@ -46,8 +62,18 @@ async function resolveMcpServer(client, reference, org) {
46
62
  // flow and wait for the grant; otherwise stop with actionable guidance so
47
63
  // scripted callers get a clean, stable failure instead of a 5-minute block.
48
64
  async function ensureOAuthSatisfied(client, server, opts) {
49
- if (!oauthRequired(server) || opts.envOverrides.length > 0)
65
+ if (!oauthRequired(server))
50
66
  return;
67
+ const oauthOnly = isOAuthOnly(server);
68
+ // A manually supplied token is a valid bypass for a normal OAuth server (many
69
+ // vendors also accept a PAT), but an oauth_only endpoint rejects static tokens
70
+ // outright — so --env cannot connect it. Fail with guidance rather than push a
71
+ // token the endpoint will reject.
72
+ if (opts.envOverrides.length > 0) {
73
+ if (!oauthOnly)
74
+ return;
75
+ throw oauthOnlyEnvError(server, opts.reference);
76
+ }
51
77
  const status = await client.mcpServer.getOAuthGrantStatus(create(GetOAuthGrantStatusInputSchema, {
52
78
  resourceId: server.metadata?.id ?? "",
53
79
  org: opts.org,
@@ -55,18 +81,60 @@ async function ensureOAuthSatisfied(client, server, opts) {
55
81
  if (status.connected)
56
82
  return;
57
83
  if (!opts.interactive)
58
- throw oauthGuidanceError(server, opts.reference);
84
+ throw oauthGuidanceError(server, opts.reference, oauthOnly);
59
85
  const { runOAuthFlow } = await import("./oauth.js");
60
86
  await runOAuthFlow({ client, server, org: opts.org, backendType: opts.backendType });
61
87
  }
62
- function oauthGuidanceError(server, reference) {
88
+ // Turn a strict-resolution failure into actionable guidance. A declared-but-unset
89
+ // variable is the user's to provide; an undeclared one is a bug in the server
90
+ // definition. Both are far clearer than the cryptic subprocess crash (ENOENT on a
91
+ // literal "${VAR}" path) that motivated issue #141.
92
+ function unresolvedEnvError(server, err) {
93
+ const slug = server.metadata?.slug ?? server.metadata?.name ?? server.metadata?.id ?? "this server";
94
+ const decl = server.spec?.env?.[err.variableName];
95
+ if (decl) {
96
+ const hint = decl.description !== "" ? ` (${decl.description})` : "";
97
+ return new UsageError(`MCP server '${slug}' needs environment variable ${err.variableName}${hint}, but it is not set.\n` +
98
+ `Provide it with --env ${err.variableName}=<value> or export it in your shell before running --dry-run.`);
99
+ }
100
+ const where = err.context !== undefined ? ` in its ${err.context}` : "";
101
+ return new UsageError(`MCP server '${slug}' references \${${err.variableName}}${where} but does not declare ${err.variableName} under spec.env.\n` +
102
+ `This is a problem with the server definition — declare ${err.variableName} in the server's env, or remove the placeholder.`);
103
+ }
104
+ function oauthGuidanceError(server, reference, oauthOnly) {
63
105
  const slug = server.metadata?.slug ?? server.metadata?.name ?? reference;
106
+ const choices = [
107
+ " - Re-run this command in an interactive terminal to complete OAuth in your browser",
108
+ ];
109
+ // Only offer the manual-token route for servers that actually accept one.
110
+ // Suggesting it for an oauth_only endpoint would send the user down a dead end.
111
+ if (!oauthOnly) {
112
+ choices.push(` - Provide credentials directly: stigmer connect mcp-server ${slug} --env TOKEN=...`);
113
+ }
64
114
  return new UsageError(`MCP server '${slug}' requires OAuth authentication, which needs an interactive terminal.\n\n` +
65
- "To connect, choose one of:\n" +
66
- " - Re-run this command in an interactive terminal to complete OAuth in your browser\n" +
67
- ` - Provide credentials directly: stigmer connect mcp-server ${slug} --env TOKEN=...`);
115
+ `To connect${oauthOnly ? "" : ", choose one of"}:\n` +
116
+ choices.join("\n"));
117
+ }
118
+ // An oauth_only server whose endpoint rejects static tokens was given a manual
119
+ // token via --env. Explain that OAuth is the only path rather than pushing a
120
+ // credential the endpoint will reject with an opaque 401.
121
+ function oauthOnlyEnvError(server, reference) {
122
+ const slug = server.metadata?.slug ?? server.metadata?.name ?? reference;
123
+ return new UsageError(`MCP server '${slug}' requires OAuth and rejects manually-entered tokens, so --env cannot connect it.\n` +
124
+ `Re-run without --env in an interactive terminal to sign in: stigmer connect mcp-server ${slug}`);
125
+ }
126
+ // --dry-run discovers locally, but an oauth_only endpoint needs an OAuth token
127
+ // that only the backend can obtain and store — there is nothing valid to send
128
+ // from the caller's machine. Say so plainly instead of attempting a doomed 401.
129
+ function oauthOnlyDryRunError(server, reference) {
130
+ const slug = server.metadata?.slug ?? server.metadata?.name ?? reference;
131
+ return new UsageError(`MCP server '${slug}' requires OAuth, so --dry-run cannot discover it locally — its endpoint only accepts an OAuth token that the connected backend obtains for you.\n` +
132
+ `Run it for real and sign in when prompted: stigmer connect mcp-server ${slug}`);
68
133
  }
69
134
  function oauthRequired(server) {
70
135
  return (server.spec?.auth?.targetEnvVar ?? "") !== "";
71
136
  }
137
+ function isOAuthOnly(server) {
138
+ return server.spec?.auth?.oauthOnly === true;
139
+ }
72
140
  //# sourceMappingURL=connect.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"connect.js","sourceRoot":"","sources":["../../../src/resources/connect/connect.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"connect.js","sourceRoot":"","sources":["../../../src/resources/connect/connect.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"discover.d.ts","sourceRoot":"","sources":["../../../src/resources/connect/discover.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yDAAyD,CAAC;AAC7F,OAAO,EACL,KAAK,sBAAsB,EAI5B,MAAM,2DAA2D,CAAC;AAMnE,uFAAuF;AACvF,wBAAsB,aAAa,CACjC,IAAI,EAAE,aAAa,EACnB,YAAY,EAAE,SAAS,MAAM,EAAE,EAC/B,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,sBAAsB,CAAC,CA0CjC"}
1
+ {"version":3,"file":"discover.d.ts","sourceRoot":"","sources":["../../../src/resources/connect/discover.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yDAAyD,CAAC;AAC7F,OAAO,EACL,KAAK,sBAAsB,EAI5B,MAAM,2DAA2D,CAAC;AAOnE,uFAAuF;AACvF,wBAAsB,aAAa,CACjC,IAAI,EAAE,aAAa,EACnB,YAAY,EAAE,SAAS,MAAM,EAAE,EAC/B,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,sBAAsB,CAAC,CA0CjC"}