stitchkit 0.113.0 → 0.113.2

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 (82) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/dist/contract/errors.d.ts +1 -0
  3. package/dist/contract/errors.d.ts.map +1 -1
  4. package/dist/entrypoints/agent-runtime/browser.js +2 -2
  5. package/dist/entrypoints/agent-runtime/coding-tools.js +4 -4
  6. package/dist/entrypoints/agent-runtime/harness.js +7 -7
  7. package/dist/entrypoints/agent-runtime/realtime.js +2 -2
  8. package/dist/entrypoints/agent-runtime/sandbox.js +4 -4
  9. package/dist/entrypoints/agent-runtime/sqlite/bun.js +6 -6
  10. package/dist/entrypoints/agent-runtime/sqlite/node.js +6 -6
  11. package/dist/entrypoints/agent-runtime/testing.js +6 -6
  12. package/dist/entrypoints/agent-runtime.js +13 -13
  13. package/dist/entrypoints/application/grammy.js +1 -1
  14. package/dist/entrypoints/application.js +2 -2
  15. package/dist/entrypoints/cli.js +10 -10
  16. package/dist/entrypoints/contract.js +2 -2
  17. package/dist/entrypoints/files.js +1 -1
  18. package/dist/entrypoints/index.js +5 -5
  19. package/dist/entrypoints/node.js +7 -7
  20. package/dist/entrypoints/observability.js +1 -1
  21. package/dist/entrypoints/realtime.js +3 -3
  22. package/dist/entrypoints/remote.js +1 -1
  23. package/dist/entrypoints/server.js +8 -8
  24. package/dist/entrypoints/testing.js +3 -3
  25. package/dist/entrypoints/tools/connections.js +8 -8
  26. package/dist/entrypoints/tools/contract.js +2 -2
  27. package/dist/entrypoints/tools/invoker.js +7 -7
  28. package/dist/entrypoints/tools/mcp.js +9 -9
  29. package/dist/entrypoints/tools.js +15 -15
  30. package/dist/{index-yjnmac9b.js → index-09dyy94r.js} +1 -1
  31. package/dist/{index-zm1k7hhv.js → index-0gbn42hr.js} +3 -3
  32. package/dist/{index-86sxnvpr.js → index-0pfk3c1p.js} +1 -1
  33. package/dist/{index-eddzs589.js → index-2s7wv547.js} +3 -3
  34. package/dist/{index-h1spd9kv.js → index-4e36ts8b.js} +1 -1
  35. package/dist/{index-556g5hsh.js → index-5gmrx6sc.js} +1 -1
  36. package/dist/{index-2qymcsq2.js → index-5zxe0f3h.js} +3 -3
  37. package/dist/{index-5jjda9a4.js → index-6ez1r4j2.js} +4 -4
  38. package/dist/{index-8asb62xn.js → index-7ysby53h.js} +1 -1
  39. package/dist/{index-ppf5nerp.js → index-8swt2h9y.js} +1 -1
  40. package/dist/{index-z4ga1fa1.js → index-a31p9ekx.js} +6 -6
  41. package/dist/{index-k8fbzggr.js → index-awbed0mk.js} +1 -1
  42. package/dist/{index-nk1mh535.js → index-bv51s0f4.js} +1 -1
  43. package/dist/{index-54q2mghq.js → index-cn7xenet.js} +5 -5
  44. package/dist/{index-epmnrnth.js → index-dsa676h8.js} +24 -7
  45. package/dist/{index-fynr93w4.js → index-e40rzw1m.js} +1 -1
  46. package/dist/{index-ykdcnq1f.js → index-grn4brx1.js} +1 -1
  47. package/dist/{index-4dh3hfs7.js → index-kvga921h.js} +4 -4
  48. package/dist/{index-j9gxbztg.js → index-pd578538.js} +1 -0
  49. package/dist/{index-dsxrcseb.js → index-ptjx84pr.js} +2 -2
  50. package/dist/{index-jy9wq8tp.js → index-rbzq0q16.js} +1 -1
  51. package/dist/{index-pvh3z03x.js → index-shg5xc9t.js} +1 -1
  52. package/dist/{index-xmgjtkvr.js → index-sps9s3aj.js} +1 -1
  53. package/dist/{index-jgwqc38k.js → index-vf9c59t3.js} +2 -2
  54. package/dist/{index-pzw0fpek.js → index-vgtzdykw.js} +1 -1
  55. package/dist/{index-gpbk7yse.js → index-xtc8k5n9.js} +172 -117
  56. package/dist/{index-k0zfcxf5.js → index-z8fnfj42.js} +1 -1
  57. package/dist/{index-gz9jf461.js → index-zbs0g0v2.js} +1 -1
  58. package/dist/tools/cli/command-shape.d.ts +4 -0
  59. package/dist/tools/cli/command-shape.d.ts.map +1 -0
  60. package/dist/tools/cli/format.d.ts.map +1 -1
  61. package/dist/tools/cli/help.d.ts.map +1 -1
  62. package/dist/tools/cli/invoke.d.ts +1 -1
  63. package/dist/tools/cli/invoke.d.ts.map +1 -1
  64. package/dist/tools/cli/managed-surface.d.ts +3 -2
  65. package/dist/tools/cli/managed-surface.d.ts.map +1 -1
  66. package/dist/tools/cli/policy.d.ts +2 -0
  67. package/dist/tools/cli/policy.d.ts.map +1 -1
  68. package/dist/tools/cli/run-managed.d.ts.map +1 -1
  69. package/dist/tools/cli/session.d.ts +0 -1
  70. package/dist/tools/cli/session.d.ts.map +1 -1
  71. package/dist/tools/cli/unavailable.d.ts +10 -0
  72. package/dist/tools/cli/unavailable.d.ts.map +1 -0
  73. package/dist/tools/connections/runtime.d.ts +1 -1
  74. package/dist/tools/schema/json-schema-origin.d.ts +6 -5
  75. package/dist/tools/schema/json-schema-origin.d.ts.map +1 -1
  76. package/llms/cli.2.txt +15 -4
  77. package/llms/cli.txt +31 -2
  78. package/llms/server.4.txt +1 -1
  79. package/llms/tools-connections.txt +1 -1
  80. package/llms-full.txt +48 -8
  81. package/llms.txt +2 -2
  82. package/package.json +1 -1
@@ -1,12 +1,12 @@
1
1
  import {
2
2
  validateDeclaredOutput
3
- } from "./index-fynr93w4.js";
3
+ } from "./index-e40rzw1m.js";
4
4
  import {
5
5
  jsonSchemaObjectCoercionMembers
6
- } from "./index-epmnrnth.js";
6
+ } from "./index-dsa676h8.js";
7
7
  import {
8
8
  coerceJsonArgs2
9
- } from "./index-jy9wq8tp.js";
9
+ } from "./index-rbzq0q16.js";
10
10
  import {
11
11
  jsonSchemaFields
12
12
  } from "./index-ct75c3at.js";
@@ -14,15 +14,15 @@ import {
14
14
  objectShapeKeys,
15
15
  assertUniqueToolName,
16
16
  buildToolPresentationSchema
17
- } from "./index-jgwqc38k.js";
17
+ } from "./index-vf9c59t3.js";
18
18
  import {
19
19
  toolResultFromError,
20
20
  toolErrorFromResult
21
- } from "./index-z4ga1fa1.js";
21
+ } from "./index-a31p9ekx.js";
22
22
  import {
23
23
  createToolRunner,
24
24
  formatToolError
25
- } from "./index-zm1k7hhv.js";
25
+ } from "./index-0gbn42hr.js";
26
26
  import {
27
27
  fetchGuarded,
28
28
  readCapped
@@ -35,7 +35,7 @@ import {
35
35
  } from "./index-eemvahkc.js";
36
36
  import {
37
37
  collectToolSurface
38
- } from "./index-eddzs589.js";
38
+ } from "./index-2s7wv547.js";
39
39
  import {
40
40
  isUnsafeKey,
41
41
  safeJsonParse
@@ -43,6 +43,10 @@ import {
43
43
  import {
44
44
  formatZodError2
45
45
  } from "./index-1eeqpadm.js";
46
+ import {
47
+ AppError2,
48
+ STITCH_ERROR_STATUS2
49
+ } from "./index-pd578538.js";
46
50
  import {
47
51
  isRecord
48
52
  } from "./index-9jfdm5tg.js";
@@ -137,6 +141,7 @@ var DEFAULT_EXIT_CODES2 = {
137
141
  CONNECTION_REQUEST_FAILED: 1,
138
142
  UPSTREAM_TOOL_ERROR: 1,
139
143
  WAIT_FAILED: 1,
144
+ CLI_COMMAND_UNAVAILABLE: 1,
140
145
  INTERNAL_SERVER_ERROR: 1
141
146
  };
142
147
  function cliExitCode2(result, exitCodes) {
@@ -653,19 +658,25 @@ async function runNativeCommand(definition, args, config, globals) {
653
658
  written: { ...out !== "" && { stdout: out }, ...err !== "" && { stderr: err } }
654
659
  };
655
660
  }
656
- function buildCliSurface(config, auth, nativeHelp, applicationGlobalNames, assertShape) {
661
+ function buildCliSurface(config, auth, nativeHelp, applicationGlobalNames, shapeIssue) {
657
662
  const services = typeof config.services === "function" ? config.services(auth) : config.services ?? [];
658
663
  const runtimeTools = typeof config.runtimeTools === "function" ? config.runtimeTools(auth) : config.runtimeTools ?? [];
659
664
  const tools = new Map;
660
665
  const help = new Map(nativeHelp);
661
- for (const { mountable } of collectToolSurface({
666
+ for (const { kind, mountable } of collectToolSurface({
662
667
  surface: { services, runtimeTools },
663
668
  transport: "CLI"
664
669
  })) {
665
670
  const descriptor = applyCliPresentationPolicy(mountable.name, managedCliDescriptor(mountable), config);
666
- assertShape?.(mountable.name, descriptor, help.has(mountable.name), config.passthrough?.[mountable.name], applicationGlobalNames);
667
- tools.set(mountable.name, mountable);
668
- help.set(mountable.name, descriptor);
671
+ const issue = shapeIssue?.(mountable.name, descriptor, help.has(mountable.name), config.passthrough?.[mountable.name], applicationGlobalNames);
672
+ if (issue !== undefined) {
673
+ if (kind !== "runtime")
674
+ throw new Error(issue);
675
+ help.set(mountable.name, { ...descriptor, unavailableReason: issue });
676
+ } else {
677
+ tools.set(mountable.name, mountable);
678
+ help.set(mountable.name, descriptor);
679
+ }
669
680
  }
670
681
  assertCliPoliciesResolved(help, config);
671
682
  return { tools, help };
@@ -1765,7 +1776,10 @@ function renderTopHelp(input) {
1765
1776
  ];
1766
1777
  const width = Math.max(0, ...[...commands.keys()].map((key) => key.length));
1767
1778
  for (const [command, descriptor] of commands) {
1768
- lines.push(` ${padRight(command, width)} ${summarize(descriptor.description)}${command === defaultCommand ? " (default)" : ""}`);
1779
+ lines.push(` ${padRight(command, width)} ${summarize(descriptor.description)}${command === defaultCommand ? " (default)" : ""}${descriptor.unavailableReason !== undefined ? " [unavailable]" : ""}`);
1780
+ if (descriptor.unavailableReason !== undefined) {
1781
+ lines.push(` Unavailable: ${descriptor.unavailableReason}`);
1782
+ }
1769
1783
  }
1770
1784
  if (input.unavailable !== undefined) {
1771
1785
  lines.push("", `Managed commands are unavailable: ${input.unavailable}`);
@@ -1809,6 +1823,9 @@ function renderCommandHelp(name, command, descriptor, applicationOptions = []) {
1809
1823
  "[--flags]"
1810
1824
  ].join(" ");
1811
1825
  const lines = [descriptor.description, "", usage, ""];
1826
+ if (descriptor.unavailableReason !== undefined) {
1827
+ lines.push(`Unavailable: ${descriptor.unavailableReason}`, "");
1828
+ }
1812
1829
  if (fields.length > 0) {
1813
1830
  lines.push("Arguments:");
1814
1831
  const labels = new Map(fields.map((field) => {
@@ -1845,115 +1862,25 @@ function renderCommandHelp(name, command, descriptor, applicationOptions = []) {
1845
1862
  `;
1846
1863
  }
1847
1864
 
1848
- // src/tools/cli/session.ts
1849
- function nativeDescriptor(definition) {
1850
- return {
1851
- description: definition.description,
1852
- argumentSchema: definition.input,
1853
- presentationSchema: cliCommandPresentationSchema(definition)
1854
- };
1855
- }
1856
- function assertCommandShape(name, descriptor, exists, passthroughField, applicationGlobals = new Set) {
1865
+ // src/tools/cli/command-shape.ts
1866
+ function commandShapeIssue(name, descriptor, exists, passthroughField, applicationGlobals = new Set) {
1857
1867
  assertUniqueToolName(name, exists, "CLI command");
1858
1868
  if (name === "help" || name === "version") {
1859
1869
  throw new Error(`[stitchkit] CLI command "${name}" is reserved`);
1860
1870
  }
1871
+ if (passthroughField !== undefined && descriptor.aliases.has(passthroughField)) {
1872
+ throw new Error(`[stitchkit] CLI command "${name}" cannot alias passthrough field "${passthroughField}"`);
1873
+ }
1861
1874
  const fieldNames = jsonSchemaFields(descriptor.presentationSchema).map((field) => field.name);
1862
1875
  const conflicting = fieldNames.filter((field) => RESERVED_CLI_OPTIONS.has(field));
1863
1876
  if (conflicting.length > 0) {
1864
- throw new Error(`[stitchkit] CLI command "${name}" declares reserved option field(s): ${conflicting.join(", ")}`);
1877
+ return `[stitchkit] CLI command "${name}" declares reserved option field(s): ${conflicting.join(", ")}`;
1865
1878
  }
1866
1879
  const shadowed = fieldNames.filter((field) => applicationGlobals.has(field));
1867
1880
  if (shadowed.length > 0) {
1868
- throw new Error(`[stitchkit] CLI command "${name}" declares field(s) shadowed by application global options: ${shadowed.join(", ")}`);
1869
- }
1870
- if (passthroughField !== undefined && descriptor.aliases.has(passthroughField)) {
1871
- throw new Error(`[stitchkit] CLI command "${name}" cannot alias passthrough field "${passthroughField}"`);
1881
+ return `[stitchkit] CLI command "${name}" declares field(s) shadowed by application global options: ${shadowed.join(", ")}`;
1872
1882
  }
1873
1883
  }
1874
- function createCliSession(config, io) {
1875
- if (config.auth !== undefined && config.resolveAuth !== undefined) {
1876
- throw new Error("[stitchkit] createCli: use either auth or resolveAuth, not both");
1877
- }
1878
- const applicationOptions = config.globalOptions ? jsonSchemaFields(buildToolPresentationSchema({
1879
- inputSchema: config.globalOptions,
1880
- unrepresentable: "any"
1881
- })) : [];
1882
- const applicationGlobalNames = new Set(applicationOptions.map((field) => field.name));
1883
- for (const name of applicationGlobalNames) {
1884
- if (RESERVED_CLI_OPTIONS.has(name)) {
1885
- throw new Error(`[stitchkit] CLI global option "--${name}" is reserved by the framework`);
1886
- }
1887
- }
1888
- const nativeCommands = new Map;
1889
- const nativeHelp = new Map;
1890
- for (const definition of config.commands ?? []) {
1891
- const descriptor = applyCliPresentationPolicy(definition.name, nativeDescriptor(definition), config);
1892
- assertCommandShape(definition.name, descriptor, nativeCommands.has(definition.name), config.passthrough?.[definition.name], applicationGlobalNames);
1893
- nativeCommands.set(definition.name, definition);
1894
- nativeHelp.set(definition.name, descriptor);
1895
- }
1896
- return {
1897
- config,
1898
- io,
1899
- applicationOptions,
1900
- applicationGlobalNames,
1901
- nativeCommands,
1902
- nativeHelp
1903
- };
1904
- }
1905
- function resolveCliRoute(session, argv) {
1906
- const { config } = session;
1907
- const { stdout, stderr, exit } = session.io;
1908
- let globals;
1909
- let routableArgv;
1910
- try {
1911
- const lifted = extractCliGlobalOptions2(argv, config.globalOptions);
1912
- globals = lifted.globals;
1913
- routableArgv = lifted.argv;
1914
- } catch (error) {
1915
- if (!(error instanceof CliArgumentError2))
1916
- throw error;
1917
- stderr(`${error.message}
1918
- `);
1919
- exit(2);
1920
- return;
1921
- }
1922
- const typedGlobals = globals;
1923
- const route = routeCliArgv2(routableArgv, config.defaultCommand);
1924
- if (route.error) {
1925
- stderr(`${route.error}
1926
- `);
1927
- exit(2);
1928
- return;
1929
- }
1930
- const { command, commandArgv } = route;
1931
- if (route.version || command === "--version" || command === "version") {
1932
- stdout(`${config.name} ${config.version}
1933
- `);
1934
- exit(0);
1935
- return;
1936
- }
1937
- const beforeSeparator = commandArgv.indexOf("--") === -1 ? commandArgv : commandArgv.slice(0, commandArgv.indexOf("--"));
1938
- const helpRequested = beforeSeparator.includes("--help") || beforeSeparator.includes("-h");
1939
- return {
1940
- globals,
1941
- typedGlobals,
1942
- route,
1943
- command,
1944
- commandArgv,
1945
- beforeSeparator,
1946
- helpRequested
1947
- };
1948
- }
1949
- function emitOptionsFor(config, json, toolName) {
1950
- return {
1951
- json,
1952
- toolName,
1953
- errorHint: config.errorHint,
1954
- exitCodes: { ...DEFAULT_EXIT_CODES2, ...config.exitCodes }
1955
- };
1956
- }
1957
1884
 
1958
1885
  // src/tools/cli/managed-surface.ts
1959
1886
  async function buildManagedSurface(session, typedGlobals, forExecution) {
@@ -1979,7 +1906,7 @@ async function buildManagedSurface(session, typedGlobals, forExecution) {
1979
1906
  };
1980
1907
  }
1981
1908
  }
1982
- const { tools, help } = buildCliSurface(config, auth, nativeHelp, applicationGlobalNames, assertCommandShape);
1909
+ const { tools, help } = buildCliSurface(config, auth, nativeHelp, applicationGlobalNames, commandShapeIssue);
1983
1910
  return { resolved: true, auth, help, tools };
1984
1911
  }
1985
1912
 
@@ -2056,6 +1983,128 @@ async function prepareInvocation(command, commandArgv, descriptor, config, readS
2056
1983
  return { ok: true, toolArgs, options };
2057
1984
  }
2058
1985
 
1986
+ // src/tools/cli/session.ts
1987
+ function nativeDescriptor(definition) {
1988
+ return {
1989
+ description: definition.description,
1990
+ argumentSchema: definition.input,
1991
+ presentationSchema: cliCommandPresentationSchema(definition)
1992
+ };
1993
+ }
1994
+ function createCliSession(config, io) {
1995
+ if (config.auth !== undefined && config.resolveAuth !== undefined) {
1996
+ throw new Error("[stitchkit] createCli: use either auth or resolveAuth, not both");
1997
+ }
1998
+ const applicationOptions = config.globalOptions ? jsonSchemaFields(buildToolPresentationSchema({
1999
+ inputSchema: config.globalOptions,
2000
+ unrepresentable: "any"
2001
+ })) : [];
2002
+ const applicationGlobalNames = new Set(applicationOptions.map((field) => field.name));
2003
+ for (const name of applicationGlobalNames) {
2004
+ if (RESERVED_CLI_OPTIONS.has(name)) {
2005
+ throw new Error(`[stitchkit] CLI global option "--${name}" is reserved by the framework`);
2006
+ }
2007
+ }
2008
+ const nativeCommands = new Map;
2009
+ const nativeHelp = new Map;
2010
+ for (const definition of config.commands ?? []) {
2011
+ const descriptor = applyCliPresentationPolicy(definition.name, nativeDescriptor(definition), config);
2012
+ const issue = commandShapeIssue(definition.name, descriptor, nativeCommands.has(definition.name), config.passthrough?.[definition.name], applicationGlobalNames);
2013
+ if (issue !== undefined)
2014
+ throw new Error(issue);
2015
+ nativeCommands.set(definition.name, definition);
2016
+ nativeHelp.set(definition.name, descriptor);
2017
+ }
2018
+ return {
2019
+ config,
2020
+ io,
2021
+ applicationOptions,
2022
+ applicationGlobalNames,
2023
+ nativeCommands,
2024
+ nativeHelp
2025
+ };
2026
+ }
2027
+ function resolveCliRoute(session, argv) {
2028
+ const { config } = session;
2029
+ const { stdout, stderr, exit } = session.io;
2030
+ let globals;
2031
+ let routableArgv;
2032
+ try {
2033
+ const lifted = extractCliGlobalOptions2(argv, config.globalOptions);
2034
+ globals = lifted.globals;
2035
+ routableArgv = lifted.argv;
2036
+ } catch (error) {
2037
+ if (!(error instanceof CliArgumentError2))
2038
+ throw error;
2039
+ stderr(`${error.message}
2040
+ `);
2041
+ exit(2);
2042
+ return;
2043
+ }
2044
+ const typedGlobals = globals;
2045
+ const route = routeCliArgv2(routableArgv, config.defaultCommand);
2046
+ if (route.error) {
2047
+ stderr(`${route.error}
2048
+ `);
2049
+ exit(2);
2050
+ return;
2051
+ }
2052
+ const { command, commandArgv } = route;
2053
+ if (route.version || command === "--version" || command === "version") {
2054
+ stdout(`${config.name} ${config.version}
2055
+ `);
2056
+ exit(0);
2057
+ return;
2058
+ }
2059
+ const beforeSeparator = commandArgv.indexOf("--") === -1 ? commandArgv : commandArgv.slice(0, commandArgv.indexOf("--"));
2060
+ const helpRequested = beforeSeparator.some((token) => {
2061
+ if (token === "--help" || token === "-h")
2062
+ return true;
2063
+ const option = classifyLongOptionToken(token);
2064
+ return option?.name === "help" && option.value !== undefined && isReservedBoolWord(option.value) && parseReservedBool("help", option.value);
2065
+ });
2066
+ return {
2067
+ globals,
2068
+ typedGlobals,
2069
+ route,
2070
+ command,
2071
+ commandArgv,
2072
+ beforeSeparator,
2073
+ helpRequested
2074
+ };
2075
+ }
2076
+ function emitOptionsFor(config, json, toolName) {
2077
+ return {
2078
+ json,
2079
+ toolName,
2080
+ errorHint: config.errorHint,
2081
+ exitCodes: { ...DEFAULT_EXIT_CODES2, ...config.exitCodes }
2082
+ };
2083
+ }
2084
+
2085
+ // src/tools/cli/unavailable.ts
2086
+ function unavailableCommand(reason) {
2087
+ return toolResultFromError(new AppError2("CLI_COMMAND_UNAVAILABLE", {
2088
+ message: reason,
2089
+ status: STITCH_ERROR_STATUS2.CLI_COMMAND_UNAVAILABLE,
2090
+ retryable: false
2091
+ }));
2092
+ }
2093
+ function unavailableCommandJson(argv) {
2094
+ for (let i = 0;i < argv.length; i++) {
2095
+ const token = argv[i];
2096
+ if (token === "--")
2097
+ break;
2098
+ if (token === undefined)
2099
+ continue;
2100
+ const option = classifyLongOptionToken(token);
2101
+ if (option?.name !== "json")
2102
+ continue;
2103
+ return option.value === undefined ? separateBoolValue(argv[i + 1]) ?? true : isReservedBoolWord(option.value) && parseReservedBool("json", option.value);
2104
+ }
2105
+ return false;
2106
+ }
2107
+
2059
2108
  // src/tools/cli/run-managed.ts
2060
2109
  async function runManagedInvocation(session, route) {
2061
2110
  const { config } = session;
@@ -2077,7 +2126,7 @@ function respondTopLevelHelp(session, route, managed) {
2077
2126
  const helpFilter = route.route.helpFilter ?? (command !== undefined ? commandArgv[0] : undefined);
2078
2127
  const filter = helpFilter !== undefined && !helpFilter.startsWith("-") ? helpFilter : undefined;
2079
2128
  if (filter !== undefined && filterCommands(managed.help, filter).size === 0) {
2080
- stderr(`no command matches "${filter}" (${managed.help.size} available)
2129
+ stderr(`no command matches "${filter}" (${[...managed.help.values()].filter((entry) => entry.unavailableReason === undefined).length} available)
2081
2130
  ` + (managed.resolved ? "" : `Managed commands are unavailable: ${managed.reason}
2082
2131
  `));
2083
2132
  const codes = { ...DEFAULT_EXIT_CODES2, ...config.exitCodes };
@@ -2098,19 +2147,22 @@ function respondTopLevelHelp(session, route, managed) {
2098
2147
  async function runManagedCommand(session, route, command, managed) {
2099
2148
  const { config, applicationOptions } = session;
2100
2149
  const { stdout, stderr, exit, readStdin } = session.io;
2101
- const tool = managed.tools.get(command);
2102
- if (!tool) {
2150
+ const descriptor = managed.help.get(command);
2151
+ if (!descriptor) {
2103
2152
  stderr(`Unknown command "${command}". Run "${config.name} --help" for the command list.
2104
2153
  `);
2105
2154
  return exit(1);
2106
2155
  }
2107
- const descriptor = managed.help.get(command);
2108
- if (!descriptor)
2109
- throw new Error("[stitchkit] managed CLI descriptor invariant failed");
2110
2156
  if (route.helpRequested) {
2111
2157
  stdout(renderCommandHelp(config.name, command, descriptor, applicationOptions));
2112
2158
  return exit(0);
2113
2159
  }
2160
+ if (descriptor.unavailableReason !== undefined) {
2161
+ return exit(emitResult2(unavailableCommand(descriptor.unavailableReason), { stdout, stderr }, emitOptionsFor(config, unavailableCommandJson(route.commandArgv), command)));
2162
+ }
2163
+ const tool = managed.tools.get(command);
2164
+ if (!tool)
2165
+ throw new Error("[stitchkit] managed CLI executable invariant failed");
2114
2166
  const prepared = await prepareInvocation(command, route.commandArgv, descriptor, config, readStdin);
2115
2167
  if (!prepared.ok) {
2116
2168
  stderr(`${prepared.message}
@@ -2171,6 +2223,9 @@ async function executeManagedTool(session, route, command, managed, tool, { tool
2171
2223
  initial: result,
2172
2224
  wait: waitConfig,
2173
2225
  call: async (toolName, args) => {
2226
+ const unavailable = managed.help.get(toolName)?.unavailableReason;
2227
+ if (unavailable !== undefined)
2228
+ return unavailableCommand(unavailable);
2174
2229
  const pollTool = managed.tools.get(toolName);
2175
2230
  if (!pollTool) {
2176
2231
  return {
@@ -17,7 +17,7 @@ import {
17
17
  replaceMessage,
18
18
  ArchiveSpillSchema,
19
19
  createAgentRuntimeStore2
20
- } from "./index-yjnmac9b.js";
20
+ } from "./index-09dyy94r.js";
21
21
 
22
22
  // src/agent-runtime/store-memory.ts
23
23
  import { z as z2 } from "zod";
@@ -19,7 +19,7 @@ import {
19
19
  appendEventIn,
20
20
  ArchiveProjectionSchema,
21
21
  createAgentRuntimeStore2
22
- } from "./index-yjnmac9b.js";
22
+ } from "./index-09dyy94r.js";
23
23
  import {
24
24
  AgentConversationPageSchema2,
25
25
  AgentConversationMessagePageSchema2
@@ -0,0 +1,4 @@
1
+ import type { CliCommandPresentation } from './policy.js';
2
+ /** Local configuration faults throw; only argv field conflicts become unavailable. */
3
+ export declare function commandShapeIssue(name: string, descriptor: CliCommandPresentation, exists: boolean, passthroughField?: string, applicationGlobals?: ReadonlySet<string>): string | undefined;
4
+ //# sourceMappingURL=command-shape.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"command-shape.d.ts","sourceRoot":"","sources":["../../../src/tools/cli/command-shape.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAC;AAEvD,sFAAsF;AACtF,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,sBAAsB,EAClC,MAAM,EAAE,OAAO,EACf,gBAAgB,CAAC,EAAE,MAAM,EACzB,kBAAkB,GAAE,WAAW,CAAC,MAAM,CAAa,GAClD,MAAM,GAAG,SAAS,CAwBpB"}
@@ -1 +1 @@
1
- {"version":3,"file":"format.d.ts","sourceRoot":"","sources":["../../../src/tools/cli/format.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAGpD,sDAAsD;AACtD,MAAM,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAEjD;;;GAGG;AACH,eAAO,MAAM,kBAAkB,EAAE,WAiBhC,CAAC;AAEF,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/B,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CAChC;AAED,MAAM,WAAW,WAAW;IAC1B,wEAAwE;IACxE,IAAI,EAAE,OAAO,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,WAAW,CAAC;IACxB,SAAS,CAAC,EAAE,WAAW,CAAC;CACzB;AAED;;;;GAIG;AACH;;;;;;;;GAQG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,UAAU,EAAE,SAAS,CAAC,EAAE,WAAW,GAAG,MAAM,CAY/E;AAED,wBAAgB,UAAU,CACxB,MAAM,EAAE,UAAU,EAClB,OAAO,EAAE,UAAU,EACnB,IAAI,EAAE,WAAW,GAChB,MAAM,CAeR"}
1
+ {"version":3,"file":"format.d.ts","sourceRoot":"","sources":["../../../src/tools/cli/format.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAGpD,sDAAsD;AACtD,MAAM,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAEjD;;;GAGG;AACH,eAAO,MAAM,kBAAkB,EAAE,WAkBhC,CAAC;AAEF,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/B,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CAChC;AAED,MAAM,WAAW,WAAW;IAC1B,wEAAwE;IACxE,IAAI,EAAE,OAAO,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,WAAW,CAAC;IACxB,SAAS,CAAC,EAAE,WAAW,CAAC;CACzB;AAED;;;;GAIG;AACH;;;;;;;;GAQG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,UAAU,EAAE,SAAS,CAAC,EAAE,WAAW,GAAG,MAAM,CAY/E;AAED,wBAAgB,UAAU,CACxB,MAAM,EAAE,UAAU,EAClB,OAAO,EAAE,UAAU,EACnB,IAAI,EAAE,WAAW,GAChB,MAAM,CAeR"}
@@ -1 +1 @@
1
- {"version":3,"file":"help.d.ts","sourceRoot":"","sources":["../../../src/tools/cli/help.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,eAAe,EAAoB,MAAM,+BAA+B,CAAC;AAEvF,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAC;AAkIvD;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAC5B,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,sBAAsB,CAAC,EAC7C,MAAM,EAAE,MAAM,GACb,GAAG,CAAC,MAAM,EAAE,sBAAsB,CAAC,CASrC;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,sBAAsB,CAAC,CAAC;IAC9C,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,kBAAkB,EAAE,SAAS,eAAe,EAAE,CAAC;IAC/C,wEAAwE;IACxE,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,mEAAmE;IACnE,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,GAAG,MAAM,CAsCT;AAED,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,sBAAsB,EAClC,kBAAkB,GAAE,SAAS,eAAe,EAAO,GAClD,MAAM,CAyER"}
1
+ {"version":3,"file":"help.d.ts","sourceRoot":"","sources":["../../../src/tools/cli/help.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,eAAe,EAAoB,MAAM,+BAA+B,CAAC;AAEvF,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAC;AAkIvD;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAC5B,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,sBAAsB,CAAC,EAC7C,MAAM,EAAE,MAAM,GACb,GAAG,CAAC,MAAM,EAAE,sBAAsB,CAAC,CASrC;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,sBAAsB,CAAC,CAAC;IAC9C,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,kBAAkB,EAAE,SAAS,eAAe,EAAE,CAAC;IAC/C,wEAAwE;IACxE,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,mEAAmE;IACnE,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,GAAG,MAAM,CAyCT;AAED,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,sBAAsB,EAClC,kBAAkB,GAAE,SAAS,eAAe,EAAO,GAClD,MAAM,CA4ER"}
@@ -135,7 +135,7 @@ export declare function createCliInvoker<TAuth = unknown, TContext extends Recor
135
135
  * empty map — the uniqueness and shape checks have to see both halves, or a
136
136
  * managed command could silently shadow a native one.
137
137
  */
138
- export declare function buildCliSurface<TAuth, TContext extends Record<string, unknown>, TGlobals extends ZodObject>(config: CliInvokerConfig<TAuth, TContext, TGlobals>, auth: Awaited<TAuth> | undefined, nativeHelp: Map<string, CliCommandPresentation>, applicationGlobalNames: ReadonlySet<string>, assertShape?: (name: string, descriptor: CliCommandPresentation, exists: boolean, passthroughField: string | undefined, globalNames: ReadonlySet<string>) => void): {
138
+ export declare function buildCliSurface<TAuth, TContext extends Record<string, unknown>, TGlobals extends ZodObject>(config: CliInvokerConfig<TAuth, TContext, TGlobals>, auth: Awaited<TAuth> | undefined, nativeHelp: Map<string, CliCommandPresentation>, applicationGlobalNames: ReadonlySet<string>, shapeIssue?: (name: string, descriptor: CliCommandPresentation, exists: boolean, passthroughField: string | undefined, globalNames: ReadonlySet<string>) => string | undefined): {
139
139
  tools: Map<string, MountableTool>;
140
140
  help: Map<string, CliCommandPresentation>;
141
141
  };
@@ -1 +1 @@
1
- {"version":3,"file":"invoke.d.ts","sourceRoot":"","sources":["../../../src/tools/cli/invoke.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"invoke.d.ts","sourceRoot":"","sources":["../../../src/tools/cli/invoke.ts"],"names":[],"mappings":"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"}
@@ -2,7 +2,7 @@ import type { ZodObject, z } from 'zod';
2
2
  import { type ToolResult } from '../execute-result.js';
3
3
  import type { MountableTool } from '../mount.js';
4
4
  import type { CliCommandPresentation } from './policy.js';
5
- import { type CliSession } from './session.js';
5
+ import type { CliSession } from './session.js';
6
6
  /**
7
7
  * The managed surface, or the reason there isn't one.
8
8
  *
@@ -11,7 +11,8 @@ import { type CliSession } from './session.js';
11
11
  * and it knows why the rest are missing. Letting the rejection escape printed
12
12
  * neither, and answering `Unknown command` would be a lie: the name is not
13
13
  * unknown, it is unresolvable. Only identity resolution is caught here; a
14
- * configuration fault in the surface itself is still a startup error.
14
+ * local configuration fault is still a startup error; runtime argv field
15
+ * conflicts remain discoverable as unavailable commands.
15
16
  */
16
17
  export type ManagedSurface<TAuth> = {
17
18
  resolved: true;
@@ -1 +1 @@
1
- {"version":3,"file":"managed-surface.d.ts","sourceRoot":"","sources":["../../../src/tools/cli/managed-surface.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxC,OAAO,EAAE,KAAK,UAAU,EAA4C,MAAM,mBAAmB,CAAC;AAC9F,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAE9C,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAC;AACvD,OAAO,EAAsB,KAAK,UAAU,EAAE,MAAM,WAAW,CAAC;AAEhE;;;;;;;;;GASG;AACH,MAAM,MAAM,cAAc,CAAC,KAAK,IAC5B;IACE,QAAQ,EAAE,IAAI,CAAC;IACf,IAAI,EAAE,OAAO,CAAC,KAAK,CAAC,GAAG,SAAS,CAAC;IACjC,IAAI,EAAE,GAAG,CAAC,MAAM,EAAE,sBAAsB,CAAC,CAAC;IAC1C,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;CACnC,GACD;IACE,QAAQ,EAAE,KAAK,CAAC;IAChB,OAAO,EAAE,OAAO,CAAC,UAAU,EAAE;QAAE,EAAE,EAAE,KAAK,CAAA;KAAE,CAAC,CAAC;IAC5C,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,GAAG,CAAC,MAAM,EAAE,sBAAsB,CAAC,CAAC;CAC3C,CAAC;AAEN,wBAAsB,mBAAmB,CACvC,KAAK,EACL,QAAQ,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACxC,QAAQ,SAAS,SAAS,EAE1B,OAAO,EAAE,UAAU,CAAC,KAAK,EAAE,QAAQ,EAAE,QAAQ,CAAC,EAC9C,YAAY,EAAE,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,EAChC,YAAY,EAAE,OAAO,GACpB,OAAO,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,CAuChC"}
1
+ {"version":3,"file":"managed-surface.d.ts","sourceRoot":"","sources":["../../../src/tools/cli/managed-surface.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxC,OAAO,EAAE,KAAK,UAAU,EAA4C,MAAM,mBAAmB,CAAC;AAC9F,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAG9C,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAC;AACvD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAE5C;;;;;;;;;;GAUG;AACH,MAAM,MAAM,cAAc,CAAC,KAAK,IAC5B;IACE,QAAQ,EAAE,IAAI,CAAC;IACf,IAAI,EAAE,OAAO,CAAC,KAAK,CAAC,GAAG,SAAS,CAAC;IACjC,IAAI,EAAE,GAAG,CAAC,MAAM,EAAE,sBAAsB,CAAC,CAAC;IAC1C,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;CACnC,GACD;IACE,QAAQ,EAAE,KAAK,CAAC;IAChB,OAAO,EAAE,OAAO,CAAC,UAAU,EAAE;QAAE,EAAE,EAAE,KAAK,CAAA;KAAE,CAAC,CAAC;IAC5C,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,GAAG,CAAC,MAAM,EAAE,sBAAsB,CAAC,CAAC;CAC3C,CAAC;AAEN,wBAAsB,mBAAmB,CACvC,KAAK,EACL,QAAQ,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACxC,QAAQ,SAAS,SAAS,EAE1B,OAAO,EAAE,UAAU,CAAC,KAAK,EAAE,QAAQ,EAAE,QAAQ,CAAC,EAC9C,YAAY,EAAE,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,EAChC,YAAY,EAAE,OAAO,GACpB,OAAO,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,CAuChC"}
@@ -9,6 +9,8 @@ export interface CliPresentationPolicyConfig {
9
9
  }
10
10
  export interface CliCommandPresentation {
11
11
  description: string;
12
+ /** An argv field conflict in a runtime catalogue entry; never executable. */
13
+ unavailableReason?: string;
12
14
  argumentSchema: Parameters<typeof describeSchemaFields>[0];
13
15
  presentationSchema: Record<string, unknown>;
14
16
  /** Canonical field name → one short alias. */
@@ -1 +1 @@
1
- {"version":3,"file":"policy.d.ts","sourceRoot":"","sources":["../../../src/tools/cli/policy.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAErD,MAAM,WAAW,2BAA2B;IAC1C,+DAA+D;IAC/D,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,+EAA+E;IAC/E,aAAa,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3E,6FAA6F;IAC7F,WAAW,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC,CAAC,CAAC;CAC3D;AAED,MAAM,WAAW,sBAAsB;IACrC,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,UAAU,CAAC,OAAO,oBAAoB,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3D,kBAAkB,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC5C,8CAA8C;IAC9C,OAAO,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACrC;;;;;OAKG;IACH,WAAW,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CACjC;AAkFD,wBAAgB,0BAA0B,CACxC,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,IAAI,CAAC,sBAAsB,EAAE,SAAS,GAAG,aAAa,CAAC,EACnE,MAAM,EAAE,2BAA2B,GAClC,sBAAsB,CAexB;AAED,wFAAwF;AACxF,wBAAgB,yBAAyB,CACvC,QAAQ,EAAE,WAAW,CAAC,MAAM,EAAE,sBAAsB,CAAC,EACrD,MAAM,EAAE,2BAA2B,GAClC,IAAI,CAWN"}
1
+ {"version":3,"file":"policy.d.ts","sourceRoot":"","sources":["../../../src/tools/cli/policy.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAErD,MAAM,WAAW,2BAA2B;IAC1C,+DAA+D;IAC/D,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,+EAA+E;IAC/E,aAAa,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3E,6FAA6F;IAC7F,WAAW,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC,CAAC,CAAC;CAC3D;AAED,MAAM,WAAW,sBAAsB;IACrC,WAAW,EAAE,MAAM,CAAC;IACpB,6EAA6E;IAC7E,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,cAAc,EAAE,UAAU,CAAC,OAAO,oBAAoB,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3D,kBAAkB,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC5C,8CAA8C;IAC9C,OAAO,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACrC;;;;;OAKG;IACH,WAAW,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CACjC;AAkFD,wBAAgB,0BAA0B,CACxC,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,IAAI,CAAC,sBAAsB,EAAE,SAAS,GAAG,aAAa,CAAC,EACnE,MAAM,EAAE,2BAA2B,GAClC,sBAAsB,CAexB;AAED,wFAAwF;AACxF,wBAAgB,yBAAyB,CACvC,QAAQ,EAAE,WAAW,CAAC,MAAM,EAAE,sBAAsB,CAAC,EACrD,MAAM,EAAE,2BAA2B,GAClC,IAAI,CAWN"}
@@ -1 +1 @@
1
- {"version":3,"file":"run-managed.d.ts","sourceRoot":"","sources":["../../../src/tools/cli/run-managed.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,KAAK,CAAC;AAWrC,OAAO,EAAE,KAAK,QAAQ,EAAE,KAAK,UAAU,EAAkB,MAAM,WAAW,CAAC;AAO3E,wFAAwF;AACxF,wBAAsB,oBAAoB,CACxC,KAAK,EACL,QAAQ,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACxC,QAAQ,SAAS,SAAS,EAC1B,OAAO,EAAE,UAAU,CAAC,KAAK,EAAE,QAAQ,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,QAAQ,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAkC1F"}
1
+ {"version":3,"file":"run-managed.d.ts","sourceRoot":"","sources":["../../../src/tools/cli/run-managed.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,KAAK,CAAC;AAWrC,OAAO,EAAE,KAAK,QAAQ,EAAE,KAAK,UAAU,EAAkB,MAAM,WAAW,CAAC;AAQ3E,wFAAwF;AACxF,wBAAsB,oBAAoB,CACxC,KAAK,EACL,QAAQ,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACxC,QAAQ,SAAS,SAAS,EAC1B,OAAO,EAAE,UAAU,CAAC,KAAK,EAAE,QAAQ,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,QAAQ,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAkC1F"}
@@ -10,7 +10,6 @@ import type { CliConfig } from './config.js';
10
10
  import { type EmitOptions } from './format.js';
11
11
  import type { CliIo } from './io.js';
12
12
  import { type CliCommandPresentation } from './policy.js';
13
- export declare function assertCommandShape(name: string, descriptor: CliCommandPresentation, exists: boolean, passthroughField?: string, applicationGlobals?: ReadonlySet<string>): void;
14
13
  export interface CliSession<TAuth, TContext extends Record<string, unknown>, TGlobals extends ZodObject> {
15
14
  config: CliConfig<TAuth, TContext, TGlobals>;
16
15
  io: CliIo;
@@ -1 +1 @@
1
- {"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../../src/tools/cli/session.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,EAAE,SAAS,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxC,OAAO,EAAE,KAAK,eAAe,EAAoB,MAAM,+BAA+B,CAAC;AAIvF,OAAO,EAAE,KAAK,YAAY,EAAsC,MAAM,cAAc,CAAC;AAErF,OAAO,EAAE,KAAK,oBAAoB,EAAgC,MAAM,WAAW,CAAC;AACpF,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAC1C,OAAO,EAAsB,KAAK,WAAW,EAAE,MAAM,UAAU,CAAC;AAChE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,MAAM,CAAC;AAClC,OAAO,EAA8B,KAAK,sBAAsB,EAAE,MAAM,UAAU,CAAC;AAYnF,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,sBAAsB,EAClC,MAAM,EAAE,OAAO,EACf,gBAAgB,CAAC,EAAE,MAAM,EACzB,kBAAkB,GAAE,WAAW,CAAC,MAAM,CAAa,GAClD,IAAI,CA4BN;AAED,MAAM,WAAW,UAAU,CACzB,KAAK,EACL,QAAQ,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACxC,QAAQ,SAAS,SAAS;IAE1B,MAAM,EAAE,SAAS,CAAC,KAAK,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAC7C,EAAE,EAAE,KAAK,CAAC;IACV,kBAAkB,EAAE,SAAS,eAAe,EAAE,CAAC;IAC/C,sBAAsB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACpC,cAAc,EAAE,GAAG,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAC;IAClD,UAAU,EAAE,GAAG,CAAC,MAAM,EAAE,sBAAsB,CAAC,CAAC;CACjD;AAED,0FAA0F;AAC1F,wBAAgB,gBAAgB,CAC9B,KAAK,EACL,QAAQ,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACxC,QAAQ,SAAS,SAAS,EAE1B,MAAM,EAAE,SAAS,CAAC,KAAK,EAAE,QAAQ,EAAE,QAAQ,CAAC,EAC5C,EAAE,EAAE,KAAK,GACR,UAAU,CAAC,KAAK,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAgDvC;AAED,MAAM,WAAW,QAAQ,CAAC,QAAQ,SAAS,SAAS;IAClD,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,YAAY,EAAE,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IACjC,KAAK,EAAE,YAAY,CAAC;IACpB,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,aAAa,EAAE,OAAO,CAAC;CACxB;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAC7B,KAAK,EACL,QAAQ,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACxC,QAAQ,SAAS,SAAS,EAE1B,OAAO,EAAE,UAAU,CAAC,KAAK,EAAE,QAAQ,EAAE,QAAQ,CAAC,EAC9C,IAAI,EAAE,MAAM,EAAE,GACb,QAAQ,CAAC,QAAQ,CAAC,GAAG,SAAS,CAmDhC;AAED,qFAAqF;AACrF,wBAAgB,cAAc,CAC5B,MAAM,EAAE,IAAI,CAAC,SAAS,EAAE,WAAW,GAAG,WAAW,CAAC,EAClD,IAAI,EAAE,OAAO,EACb,QAAQ,EAAE,MAAM,GACf,WAAW,CAOb"}
1
+ {"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../../src/tools/cli/session.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,EAAE,SAAS,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxC,OAAO,EAAE,KAAK,eAAe,EAAoB,MAAM,+BAA+B,CAAC;AAIvF,OAAO,EACL,KAAK,YAAY,EAIlB,MAAM,cAAc,CAAC;AAEtB,OAAO,EAAE,KAAK,oBAAoB,EAAgC,MAAM,WAAW,CAAC;AAEpF,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAC1C,OAAO,EAAsB,KAAK,WAAW,EAAE,MAAM,UAAU,CAAC;AAChE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,MAAM,CAAC;AAClC,OAAO,EAA8B,KAAK,sBAAsB,EAAE,MAAM,UAAU,CAAC;AAYnF,MAAM,WAAW,UAAU,CACzB,KAAK,EACL,QAAQ,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACxC,QAAQ,SAAS,SAAS;IAE1B,MAAM,EAAE,SAAS,CAAC,KAAK,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAC7C,EAAE,EAAE,KAAK,CAAC;IACV,kBAAkB,EAAE,SAAS,eAAe,EAAE,CAAC;IAC/C,sBAAsB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACpC,cAAc,EAAE,GAAG,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAC;IAClD,UAAU,EAAE,GAAG,CAAC,MAAM,EAAE,sBAAsB,CAAC,CAAC;CACjD;AAED,0FAA0F;AAC1F,wBAAgB,gBAAgB,CAC9B,KAAK,EACL,QAAQ,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACxC,QAAQ,SAAS,SAAS,EAE1B,MAAM,EAAE,SAAS,CAAC,KAAK,EAAE,QAAQ,EAAE,QAAQ,CAAC,EAC5C,EAAE,EAAE,KAAK,GACR,UAAU,CAAC,KAAK,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAiDvC;AAED,MAAM,WAAW,QAAQ,CAAC,QAAQ,SAAS,SAAS;IAClD,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,YAAY,EAAE,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IACjC,KAAK,EAAE,YAAY,CAAC;IACpB,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,aAAa,EAAE,OAAO,CAAC;CACxB;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAC7B,KAAK,EACL,QAAQ,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACxC,QAAQ,SAAS,SAAS,EAE1B,OAAO,EAAE,UAAU,CAAC,KAAK,EAAE,QAAQ,EAAE,QAAQ,CAAC,EAC9C,IAAI,EAAE,MAAM,EAAE,GACb,QAAQ,CAAC,QAAQ,CAAC,GAAG,SAAS,CA4DhC;AAED,qFAAqF;AACrF,wBAAgB,cAAc,CAC5B,MAAM,EAAE,IAAI,CAAC,SAAS,EAAE,WAAW,GAAG,WAAW,CAAC,EAClD,IAAI,EAAE,OAAO,EACb,QAAQ,EAAE,MAAM,GACf,WAAW,CAOb"}
@@ -0,0 +1,10 @@
1
+ import { type ToolFailure } from '../execute-result.js';
2
+ /** One refusal for direct dispatch and a known, unavailable --wait target. */
3
+ export declare function unavailableCommand(reason: string): ToolFailure;
4
+ /**
5
+ * Choose only the error's format, without admitting arguments of a command that
6
+ * cannot run. Its availability refusal takes precedence over argument errors.
7
+ * Reuse the framework's token/boolean vocabulary; after -- everything is data.
8
+ */
9
+ export declare function unavailableCommandJson(argv: readonly string[]): boolean;
10
+ //# sourceMappingURL=unavailable.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"unavailable.d.ts","sourceRoot":"","sources":["../../../src/tools/cli/unavailable.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,WAAW,EAAuB,MAAM,mBAAmB,CAAC;AAI1E,8EAA8E;AAC9E,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,WAAW,CAQ9D;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,GAAG,OAAO,CAYvE"}
@@ -21,7 +21,7 @@ export declare function withConnectionToken<T>(params: {
21
21
  * Turn a discovered JSON Schema into a `ZodObject`, falling back to a permissive
22
22
  * object when the external schema is absent or not an object. This is the typed
23
23
  * boundary: the schema crosses from an untrusted foreign document into Zod here
24
- * and nowhere else. Its unions are left to the remote that owns the schema.
24
+ * and nowhere else. Unions and string formats are left to the remote that owns the schema.
25
25
  */
26
26
  export declare function zodObjectFromJsonSchema(schema: Record<string, unknown> | undefined): ZodObject;
27
27
  /** Normalise a tool name into the characters every provider accepts. */
@@ -6,19 +6,20 @@ import { z } from 'zod';
6
6
  */
7
7
  export declare function markJsonSchemaObjectGuards(schema: z.core.$ZodType): void;
8
8
  /**
9
- * Record that a schema restored from a foreign document leaves its unions to the remote.
9
+ * Record that a foreign schema leaves unions and string formats to its remote owner.
10
10
  *
11
11
  * A foreign tool schema is the remote's presentation, and a presentation may join a
12
12
  * discriminated union into one object whose shared field is an unlabelled `anyOf` (a stitchkit
13
13
  * server with `flattenUnionInput` does, ADR 0205). Every value the remote accepts still passes
14
14
  * such a union; which branch a value was meant for does not survive. Judged here, a wrong value
15
15
  * can only be refused with every branch listed, while the remote, which holds the original
16
- * schema, names the one field that is wrong.
16
+ * schema, names the one field that is wrong. JSON Schema also carries string formats and
17
+ * patterns without the author's error messages; only the remote can report those faithfully.
17
18
  */
18
- export declare function markRemoteUnionVerdict(schema: z.ZodObject): void;
19
+ export declare function markRemoteSchemaVerdict(schema: z.ZodObject): void;
19
20
  /**
20
- * What a local parse refuses of a value the remote judges: everything but its unions. `null` when
21
- * every refusal was a union's — the value goes to the remote, whose refusal is the answer.
21
+ * Retain every reported issue except foreign unions and string formats. `null` means that
22
+ * every refusal belongs to the remote, whose answer carries the original schema's wording.
22
23
  * A schema that is not a restored foreign one keeps its own verdict whole.
23
24
  */
24
25
  export declare function localVerdict(schema: z.core.$ZodType, error: z.ZodError): z.ZodError | null;
@@ -1 +1 @@
1
- {"version":3,"file":"json-schema-origin.d.ts","sourceRoot":"","sources":["../../../src/tools/schema/json-schema-origin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAgCxB;;;;GAIG;AACH,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAiExE;AAID;;;;;;;;;GASG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,CAAC,CAAC,SAAS,GAAG,IAAI,CAOhE;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,QAAQ,GAAG,IAAI,CAK1F;AAED;;;;GAIG;AACH,wBAAgB,+BAA+B,CAC7C,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,GACtB,SAAS,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,SAAS,CAsBxC"}
1
+ {"version":3,"file":"json-schema-origin.d.ts","sourceRoot":"","sources":["../../../src/tools/schema/json-schema-origin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAgCxB;;;;GAIG;AACH,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAiExE;AAID;;;;;;;;;;GAUG;AACH,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,CAAC,CAAC,SAAS,GAAG,IAAI,CAOjE;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,QAAQ,GAAG,IAAI,CAK1F;AAuBD;;;;GAIG;AACH,wBAAgB,+BAA+B,CAC7C,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,GACtB,SAAS,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,SAAS,CAsBxC"}