@the-open-engine/zeroshot 6.16.0 → 6.18.0

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/README.md +2 -2
  2. package/cli/index.js +9 -13
  3. package/lib/agent-cli-provider/adapters/claude.d.ts +2 -2
  4. package/lib/agent-cli-provider/adapters/claude.d.ts.map +1 -1
  5. package/lib/agent-cli-provider/adapters/claude.js +30 -0
  6. package/lib/agent-cli-provider/adapters/claude.js.map +1 -1
  7. package/lib/agent-cli-provider/adapters/codex.d.ts +2 -2
  8. package/lib/agent-cli-provider/adapters/codex.d.ts.map +1 -1
  9. package/lib/agent-cli-provider/adapters/codex.js +37 -0
  10. package/lib/agent-cli-provider/adapters/codex.js.map +1 -1
  11. package/lib/agent-cli-provider/adapters/gemini.d.ts +2 -2
  12. package/lib/agent-cli-provider/adapters/gemini.d.ts.map +1 -1
  13. package/lib/agent-cli-provider/adapters/gemini.js +115 -4
  14. package/lib/agent-cli-provider/adapters/gemini.js.map +1 -1
  15. package/lib/agent-cli-provider/adapters/omp.d.ts +3 -0
  16. package/lib/agent-cli-provider/adapters/omp.d.ts.map +1 -0
  17. package/lib/agent-cli-provider/adapters/omp.js +356 -0
  18. package/lib/agent-cli-provider/adapters/omp.js.map +1 -0
  19. package/lib/agent-cli-provider/adapters/opencode.d.ts +2 -2
  20. package/lib/agent-cli-provider/adapters/opencode.d.ts.map +1 -1
  21. package/lib/agent-cli-provider/adapters/opencode.js +108 -0
  22. package/lib/agent-cli-provider/adapters/opencode.js.map +1 -1
  23. package/lib/agent-cli-provider/contract-options.d.ts.map +1 -1
  24. package/lib/agent-cli-provider/contract-options.js +17 -0
  25. package/lib/agent-cli-provider/contract-options.js.map +1 -1
  26. package/lib/agent-cli-provider/index.d.ts +2 -2
  27. package/lib/agent-cli-provider/index.d.ts.map +1 -1
  28. package/lib/agent-cli-provider/index.js +2 -1
  29. package/lib/agent-cli-provider/index.js.map +1 -1
  30. package/lib/agent-cli-provider/provider-registry.d.ts +65 -7
  31. package/lib/agent-cli-provider/provider-registry.d.ts.map +1 -1
  32. package/lib/agent-cli-provider/provider-registry.js +43 -0
  33. package/lib/agent-cli-provider/provider-registry.js.map +1 -1
  34. package/lib/agent-cli-provider/single-agent-runtime.d.ts.map +1 -1
  35. package/lib/agent-cli-provider/single-agent-runtime.js +35 -4
  36. package/lib/agent-cli-provider/single-agent-runtime.js.map +1 -1
  37. package/lib/agent-cli-provider/types.d.ts +49 -4
  38. package/lib/agent-cli-provider/types.d.ts.map +1 -1
  39. package/lib/agent-cli-provider/types.js.map +1 -1
  40. package/lib/cluster/errors.cjs +4 -1
  41. package/lib/cluster/errors.d.ts +2 -0
  42. package/lib/cluster/errors.mjs +2 -0
  43. package/lib/cluster/index.cjs +8 -1
  44. package/lib/cluster/index.d.ts +4 -1
  45. package/lib/cluster/index.mjs +4 -1
  46. package/lib/cluster/json-source.cjs +61 -0
  47. package/lib/cluster/json-source.d.ts +4 -0
  48. package/lib/cluster/json-source.mjs +55 -0
  49. package/lib/cluster/payload-value.cjs +76 -0
  50. package/lib/cluster/payload-value.d.ts +7 -0
  51. package/lib/cluster/payload-value.mjs +72 -0
  52. package/lib/cluster/validators.cjs +21 -0
  53. package/lib/cluster/validators.d.ts +4 -1
  54. package/lib/cluster/validators.mjs +19 -1
  55. package/lib/provider-names.js +5 -0
  56. package/package.json +2 -2
  57. package/src/agent/agent-task-executor.js +194 -410
  58. package/src/agent/output-extraction.js +39 -14
  59. package/src/agent/output-reformatter.js +154 -111
  60. package/src/agent-cli-provider/adapters/claude.ts +39 -2
  61. package/src/agent-cli-provider/adapters/codex.ts +56 -2
  62. package/src/agent-cli-provider/adapters/gemini.ts +102 -6
  63. package/src/agent-cli-provider/adapters/omp.ts +448 -0
  64. package/src/agent-cli-provider/adapters/opencode.ts +85 -2
  65. package/src/agent-cli-provider/contract-options.ts +21 -0
  66. package/src/agent-cli-provider/index.ts +5 -0
  67. package/src/agent-cli-provider/provider-registry.ts +62 -3
  68. package/src/agent-cli-provider/single-agent-runtime.ts +50 -4
  69. package/src/agent-cli-provider/types.ts +56 -2
  70. package/src/agent-wrapper.js +2 -2
  71. package/src/cluster/errors.ts +1 -0
  72. package/src/cluster/index.ts +4 -0
  73. package/src/cluster/json-source.ts +71 -0
  74. package/src/cluster/payload-value.ts +84 -0
  75. package/src/cluster/validators.ts +31 -2
  76. package/src/orchestrator.js +33 -13
  77. package/task-lib/attachable-watcher.js +1 -0
  78. package/task-lib/command-spec-cleanup.js +57 -11
  79. package/task-lib/commands/run.js +1 -0
  80. package/task-lib/provider-session-capture.js +8 -0
  81. package/task-lib/runner.js +9 -6
  82. package/task-lib/watcher.js +1 -0
@@ -1,4 +1,4 @@
1
- import type { providerAliases, providerIds, ProviderCapabilities, ProviderCapabilityState, ProviderCommandSpec, ProviderDockerMetadata, ProviderDockerMountPreset, ProviderDocsMetadata, ProviderInvokeSpec, ProviderRegistryEntry } from './provider-registry';
1
+ import type { providerAliases, providerIds, ProviderCapabilities, ProviderCapabilityState, ProviderCommandSpec, ProviderDockerMetadata, ProviderDockerMountPreset, ProviderDocsMetadata, ProviderInvokeSpec, ProviderRegistryEntry, StructuredOutputProviderRegistryEntry, UnstructuredOutputProviderRegistryEntry } from './provider-registry';
2
2
  export type ProviderId = (typeof providerIds)[number];
3
3
  export type ProviderAlias = (typeof providerAliases)[number];
4
4
  export type KnownProviderName = ProviderId | ProviderAlias;
@@ -6,7 +6,7 @@ export type ModelLevel = 'level1' | 'level2' | 'level3';
6
6
  export type ReasoningEffort = 'low' | 'medium' | 'high' | 'xhigh' | 'max';
7
7
  export type OutputFormat = 'text' | 'json' | 'stream-json';
8
8
  export type GatewayProtocol = 'openai' | 'anthropic';
9
- export type { ProviderCapabilities, ProviderCapabilityState, ProviderCommandSpec, ProviderDockerMetadata, ProviderDockerMountPreset, ProviderDocsMetadata, ProviderInvokeSpec, ProviderRegistryEntry, };
9
+ export type { ProviderCapabilities, ProviderCapabilityState, ProviderCommandSpec, ProviderDockerMetadata, ProviderDockerMountPreset, ProviderDocsMetadata, ProviderInvokeSpec, ProviderRegistryEntry, StructuredOutputProviderRegistryEntry, UnstructuredOutputProviderRegistryEntry, };
10
10
  export interface AgentCliProviderHelperMetadata {
11
11
  readonly packageName: '@the-open-engine/zeroshot';
12
12
  readonly buildOutputDir: 'lib/agent-cli-provider';
@@ -73,6 +73,9 @@ export interface ClaudeCliFeatures extends BaseCliFeatures {
73
73
  readonly supportsSettings: boolean;
74
74
  readonly supportsMcpConfig: boolean;
75
75
  readonly supportsResume: boolean;
76
+ readonly supportsTools: boolean;
77
+ readonly supportsStrictMcpConfig: boolean;
78
+ readonly supportsNoSessionPersistence: boolean;
76
79
  }
77
80
  export interface CodexCliFeatures extends BaseCliFeatures {
78
81
  readonly provider: 'codex';
@@ -85,6 +88,11 @@ export interface CodexCliFeatures extends BaseCliFeatures {
85
88
  readonly supportsSkipGitRepoCheck: boolean;
86
89
  readonly supportsResume: boolean;
87
90
  readonly supportsWebSearch: boolean;
91
+ readonly supportsSandbox: boolean;
92
+ readonly supportsEphemeral: boolean;
93
+ readonly supportsIgnoreUserConfig: boolean;
94
+ readonly supportsIgnoreRules: boolean;
95
+ readonly supportsStrictConfig: boolean;
88
96
  }
89
97
  export interface GeminiCliFeatures extends BaseCliFeatures {
90
98
  readonly provider: 'gemini';
@@ -92,6 +100,7 @@ export interface GeminiCliFeatures extends BaseCliFeatures {
92
100
  readonly supportsAutoApprove: boolean;
93
101
  readonly supportsCwd: boolean;
94
102
  readonly supportsModel: boolean;
103
+ readonly supportsAdminPolicy: boolean;
95
104
  }
96
105
  export interface OpencodeCliFeatures extends BaseCliFeatures {
97
106
  readonly provider: 'opencode';
@@ -103,6 +112,8 @@ export interface OpencodeCliFeatures extends BaseCliFeatures {
103
112
  readonly supportsAutoApprove: false;
104
113
  readonly supportsResume: boolean;
105
114
  readonly supportsWebSearch: boolean;
115
+ readonly supportsAgent: boolean;
116
+ readonly supportsRecoveryIsolation: boolean;
106
117
  }
107
118
  export interface PiCliFeatures extends BaseCliFeatures {
108
119
  readonly provider: 'pi';
@@ -115,6 +126,19 @@ export interface PiCliFeatures extends BaseCliFeatures {
115
126
  readonly supportsNoContextFiles: boolean;
116
127
  readonly supportsNoApprove: boolean;
117
128
  }
129
+ export interface OmpCliFeatures extends BaseCliFeatures {
130
+ readonly provider: 'omp';
131
+ readonly supportsModeJson: boolean;
132
+ readonly supportsPrint: boolean;
133
+ readonly supportsCwd: boolean;
134
+ readonly supportsAutoApprove: boolean;
135
+ readonly supportsModel: boolean;
136
+ readonly supportsThinking: boolean;
137
+ readonly supportsNoExtensions: boolean;
138
+ readonly supportsNoSkills: boolean;
139
+ readonly supportsNoRules: boolean;
140
+ readonly supportsNoTitle: boolean;
141
+ }
118
142
  export interface CopilotCliFeatures extends BaseCliFeatures {
119
143
  readonly provider: 'copilot';
120
144
  readonly supportsJsonOutput: boolean;
@@ -142,7 +166,7 @@ export interface AcpCliFeatures extends BaseCliFeatures {
142
166
  readonly supportsFsTools: false;
143
167
  readonly supportsTerminalTools: false;
144
168
  }
145
- export type ProviderCliFeatures = ClaudeCliFeatures | CodexCliFeatures | GeminiCliFeatures | OpencodeCliFeatures | PiCliFeatures | CopilotCliFeatures | GatewayCliFeatures | AcpCliFeatures;
169
+ export type ProviderCliFeatures = ClaudeCliFeatures | CodexCliFeatures | GeminiCliFeatures | OpencodeCliFeatures | PiCliFeatures | OmpCliFeatures | CopilotCliFeatures | GatewayCliFeatures | AcpCliFeatures;
146
170
  export interface CliFeatureOverrides {
147
171
  readonly supportsOutputFormat?: boolean;
148
172
  readonly supportsStreamJson?: boolean;
@@ -151,6 +175,9 @@ export interface CliFeatureOverrides {
151
175
  readonly supportsIncludePartials?: boolean;
152
176
  readonly supportsVerbose?: boolean;
153
177
  readonly supportsModel?: boolean;
178
+ readonly supportsTools?: boolean;
179
+ readonly supportsStrictMcpConfig?: boolean;
180
+ readonly supportsNoSessionPersistence?: boolean;
154
181
  readonly supportsEffort?: boolean;
155
182
  readonly supportsSettings?: boolean;
156
183
  readonly supportsJson?: boolean;
@@ -159,14 +186,27 @@ export interface CliFeatureOverrides {
159
186
  readonly supportsCwd?: boolean;
160
187
  readonly supportsConfigOverride?: boolean;
161
188
  readonly supportsSkipGitRepoCheck?: boolean;
189
+ readonly supportsSandbox?: boolean;
190
+ readonly supportsEphemeral?: boolean;
191
+ readonly supportsIgnoreUserConfig?: boolean;
192
+ readonly supportsIgnoreRules?: boolean;
193
+ readonly supportsStrictConfig?: boolean;
162
194
  readonly supportsVariant?: boolean;
195
+ readonly supportsAdminPolicy?: boolean;
163
196
  readonly supportsJsonMode?: boolean;
164
197
  readonly supportsNoSession?: boolean;
165
198
  readonly supportsNoExtensions?: boolean;
166
199
  readonly supportsNoSkills?: boolean;
167
200
  readonly supportsNoPromptTemplates?: boolean;
201
+ readonly supportsAgent?: boolean;
202
+ readonly supportsRecoveryIsolation?: boolean;
168
203
  readonly supportsNoContextFiles?: boolean;
169
204
  readonly supportsNoApprove?: boolean;
205
+ readonly supportsModeJson?: boolean;
206
+ readonly supportsPrint?: boolean;
207
+ readonly supportsThinking?: boolean;
208
+ readonly supportsNoRules?: boolean;
209
+ readonly supportsNoTitle?: boolean;
170
210
  readonly supportsJsonOutput?: boolean;
171
211
  readonly supportsAllowAll?: boolean;
172
212
  readonly supportsNoAskUser?: boolean;
@@ -192,7 +232,7 @@ export interface CleanupMetadata {
192
232
  readonly kind: 'temp-file' | 'temp-directory';
193
233
  readonly provider: ProviderId;
194
234
  readonly path: string;
195
- readonly reason: 'output-schema' | 'settings-overlay';
235
+ readonly reason: 'output-schema' | 'settings-overlay' | 'admin-policy' | 'isolated-config';
196
236
  }
197
237
  export interface WarningMetadata {
198
238
  readonly provider: ProviderId;
@@ -234,6 +274,8 @@ export interface BuildProviderCommandOptions {
234
274
  readonly strictSchema?: boolean;
235
275
  readonly gateway?: GatewayBuildOptions;
236
276
  readonly mcpConfig?: readonly string[];
277
+ /** Internal profile for provider-neutral structured-output correction turns. */
278
+ readonly structuredOutputRecovery?: boolean;
237
279
  }
238
280
  export interface TextEvent {
239
281
  readonly type: 'text';
@@ -316,6 +358,9 @@ export interface ProviderAdapter {
316
358
  validateConfiguredModelId?(modelId: string | null | undefined): string | null | undefined;
317
359
  classifyError(error: unknown): ErrorClassification;
318
360
  }
361
+ export interface StructuredOutputRecoveryAdapter extends ProviderAdapter {
362
+ buildStructuredOutputRecoveryCommand(context: string, options?: BuildProviderCommandOptions): CommandSpec;
363
+ }
319
364
  export declare class InvalidProviderModelError extends Error {
320
365
  readonly permanent = true;
321
366
  constructor(message: string);
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/agent-cli-provider/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/agent-cli-provider/types.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/agent-cli-provider/types.ts"],"names":[],"mappings":";;;AA6YA,MAAa,yBAA0B,SAAQ,KAAK;IACzC,SAAS,GAAG,IAAI,CAAC;IAE1B,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,2BAA2B,CAAC;IAC1C,CAAC;CACF;AAPD,8DAOC"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/agent-cli-provider/types.ts"],"names":[],"mappings":";;;AAmcA,MAAa,yBAA0B,SAAQ,KAAK;IACzC,SAAS,GAAG,IAAI,CAAC;IAE1B,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,2BAA2B,CAAC;IAC1C,CAAC;CACF;AAPD,8DAOC"}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ClusterRpcError = exports.ClusterTimeoutError = exports.ClusterTransportError = exports.ClusterProtocolError = exports.ClusterInternalError = exports.ClusterStateError = exports.ClusterConfigError = exports.ClusterError = void 0;
3
+ exports.ClusterRpcError = exports.ClusterRequestError = exports.ClusterTimeoutError = exports.ClusterTransportError = exports.ClusterProtocolError = exports.ClusterInternalError = exports.ClusterStateError = exports.ClusterConfigError = exports.ClusterError = void 0;
4
4
  exports.requestAbortError = requestAbortError;
5
5
  class ClusterError extends Error {
6
6
  code;
@@ -29,6 +29,9 @@ exports.ClusterTransportError = ClusterTransportError;
29
29
  class ClusterTimeoutError extends ClusterError {
30
30
  }
31
31
  exports.ClusterTimeoutError = ClusterTimeoutError;
32
+ class ClusterRequestError extends ClusterError {
33
+ }
34
+ exports.ClusterRequestError = ClusterRequestError;
32
35
  function requestAbortError(method) {
33
36
  return new DOMException(`${method} aborted locally; the server may still have committed this request`, 'AbortError');
34
37
  }
@@ -15,6 +15,8 @@ export declare class ClusterTransportError extends ClusterError {
15
15
  }
16
16
  export declare class ClusterTimeoutError extends ClusterError {
17
17
  }
18
+ export declare class ClusterRequestError extends ClusterError {
19
+ }
18
20
  export declare function requestAbortError(method: string): DOMException;
19
21
  export declare class ClusterRpcError extends ClusterError {
20
22
  readonly rpcCode: number;
@@ -18,6 +18,8 @@ export class ClusterTransportError extends ClusterError {
18
18
  }
19
19
  export class ClusterTimeoutError extends ClusterError {
20
20
  }
21
+ export class ClusterRequestError extends ClusterError {
22
+ }
21
23
  export function requestAbortError(method) {
22
24
  return new DOMException(`${method} aborted locally; the server may still have committed this request`, 'AbortError');
23
25
  }
@@ -14,7 +14,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
- exports.connect = exports.ClusterClient = exports.WatchSubscriptionStream = exports.LogsSubscriptionStream = exports.AgentAttachSubscriptionStream = exports.Connection = exports.PROTOCOL_DIAGNOSTIC_CAPACITY = exports.CONNECTION_TRANSITIONS = exports.ClusterTransportError = exports.ClusterTimeoutError = exports.ClusterStateError = exports.ClusterRpcError = exports.ClusterProtocolError = exports.ClusterInternalError = exports.ClusterError = exports.ClusterConfigError = exports.SUBSCRIPTION_QUEUE_MAX_BYTES = void 0;
17
+ exports.connect = exports.ClusterClient = exports.WatchSubscriptionStream = exports.LogsSubscriptionStream = exports.AgentAttachSubscriptionStream = exports.Connection = exports.PROTOCOL_DIAGNOSTIC_CAPACITY = exports.CONNECTION_TRANSITIONS = exports.assertGraphSpec = exports.assertGraphProfileSupported = exports.assertGraphProfile = exports.ClusterTransportError = exports.ClusterTimeoutError = exports.ClusterStateError = exports.ClusterRpcError = exports.ClusterRequestError = exports.ClusterProtocolError = exports.ClusterInternalError = exports.ClusterError = exports.ClusterConfigError = exports.SUBSCRIPTION_QUEUE_MAX_BYTES = void 0;
18
18
  __exportStar(require("./generated/protocol.cjs"), exports);
19
19
  var queue_js_1 = require("./queue.cjs");
20
20
  Object.defineProperty(exports, "SUBSCRIPTION_QUEUE_MAX_BYTES", { enumerable: true, get: function () { return queue_js_1.SUBSCRIPTION_QUEUE_MAX_BYTES; } });
@@ -23,10 +23,17 @@ Object.defineProperty(exports, "ClusterConfigError", { enumerable: true, get: fu
23
23
  Object.defineProperty(exports, "ClusterError", { enumerable: true, get: function () { return errors_js_1.ClusterError; } });
24
24
  Object.defineProperty(exports, "ClusterInternalError", { enumerable: true, get: function () { return errors_js_1.ClusterInternalError; } });
25
25
  Object.defineProperty(exports, "ClusterProtocolError", { enumerable: true, get: function () { return errors_js_1.ClusterProtocolError; } });
26
+ Object.defineProperty(exports, "ClusterRequestError", { enumerable: true, get: function () { return errors_js_1.ClusterRequestError; } });
26
27
  Object.defineProperty(exports, "ClusterRpcError", { enumerable: true, get: function () { return errors_js_1.ClusterRpcError; } });
27
28
  Object.defineProperty(exports, "ClusterStateError", { enumerable: true, get: function () { return errors_js_1.ClusterStateError; } });
28
29
  Object.defineProperty(exports, "ClusterTimeoutError", { enumerable: true, get: function () { return errors_js_1.ClusterTimeoutError; } });
29
30
  Object.defineProperty(exports, "ClusterTransportError", { enumerable: true, get: function () { return errors_js_1.ClusterTransportError; } });
31
+ var validators_js_1 = require("./validators.cjs");
32
+ Object.defineProperty(exports, "assertGraphProfile", { enumerable: true, get: function () { return validators_js_1.assertGraphProfile; } });
33
+ Object.defineProperty(exports, "assertGraphProfileSupported", { enumerable: true, get: function () { return validators_js_1.assertGraphProfileSupported; } });
34
+ Object.defineProperty(exports, "assertGraphSpec", { enumerable: true, get: function () { return validators_js_1.assertGraphSpec; } });
35
+ __exportStar(require("./payload-value.cjs"), exports);
36
+ __exportStar(require("./json-source.cjs"), exports);
30
37
  var connection_js_1 = require("./connection.cjs");
31
38
  Object.defineProperty(exports, "CONNECTION_TRANSITIONS", { enumerable: true, get: function () { return connection_js_1.CONNECTION_TRANSITIONS; } });
32
39
  Object.defineProperty(exports, "PROTOCOL_DIAGNOSTIC_CAPACITY", { enumerable: true, get: function () { return connection_js_1.PROTOCOL_DIAGNOSTIC_CAPACITY; } });
@@ -1,6 +1,9 @@
1
1
  export * from './generated/protocol.js';
2
2
  export { SUBSCRIPTION_QUEUE_MAX_BYTES } from './queue.js';
3
- export { ClusterConfigError, ClusterError, ClusterInternalError, ClusterProtocolError, ClusterRpcError, ClusterStateError, ClusterTimeoutError, ClusterTransportError, } from './errors.js';
3
+ export { ClusterConfigError, ClusterError, ClusterInternalError, ClusterProtocolError, ClusterRequestError, ClusterRpcError, ClusterStateError, ClusterTimeoutError, ClusterTransportError, } from './errors.js';
4
+ export { assertGraphProfile, assertGraphProfileSupported, assertGraphSpec } from './validators.js';
5
+ export * from './payload-value.js';
6
+ export * from './json-source.js';
4
7
  export { CONNECTION_TRANSITIONS, PROTOCOL_DIAGNOSTIC_CAPACITY, Connection } from './connection.js';
5
8
  export type { CallOptions, ConnectionState, } from './connection.js';
6
9
  export type { WebSocketLike } from './socket.js';
@@ -1,6 +1,9 @@
1
1
  export * from './generated/protocol.mjs';
2
2
  export { SUBSCRIPTION_QUEUE_MAX_BYTES } from './queue.mjs';
3
- export { ClusterConfigError, ClusterError, ClusterInternalError, ClusterProtocolError, ClusterRpcError, ClusterStateError, ClusterTimeoutError, ClusterTransportError, } from './errors.mjs';
3
+ export { ClusterConfigError, ClusterError, ClusterInternalError, ClusterProtocolError, ClusterRequestError, ClusterRpcError, ClusterStateError, ClusterTimeoutError, ClusterTransportError, } from './errors.mjs';
4
+ export { assertGraphProfile, assertGraphProfileSupported, assertGraphSpec } from './validators.mjs';
5
+ export * from './payload-value.mjs';
6
+ export * from './json-source.mjs';
4
7
  export { CONNECTION_TRANSITIONS, PROTOCOL_DIAGNOSTIC_CAPACITY, Connection } from './connection.mjs';
5
8
  export { AgentAttachSubscriptionStream, LogsSubscriptionStream, WatchSubscriptionStream, } from './subscriptions.mjs';
6
9
  export { ClusterClient, connect } from './client.mjs';
@@ -0,0 +1,61 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MAX_REQUEST_BYTES = void 0;
4
+ exports.decodeBoundedJson = decodeBoundedJson;
5
+ exports.readBoundedSource = readBoundedSource;
6
+ exports.assertDistinctRequestSources = assertDistinctRequestSources;
7
+ const errors_js_1 = require("./errors.cjs");
8
+ const protocol_js_1 = require("./generated/protocol.cjs");
9
+ exports.MAX_REQUEST_BYTES = protocol_js_1.MAX_FRAME_BYTES;
10
+ function decodeBoundedJson(bytes) {
11
+ if (bytes.length > exports.MAX_REQUEST_BYTES) {
12
+ throw new errors_js_1.ClusterRequestError(`request payload of ${bytes.length} bytes exceeds the ${exports.MAX_REQUEST_BYTES} byte limit`, 'OVERSIZED_JSON');
13
+ }
14
+ let text;
15
+ try {
16
+ text = new TextDecoder('utf-8', { fatal: true }).decode(bytes);
17
+ }
18
+ catch {
19
+ throw new errors_js_1.ClusterRequestError('request payload is not valid UTF-8', 'INVALID_UTF8');
20
+ }
21
+ try {
22
+ return JSON.parse(text);
23
+ }
24
+ catch {
25
+ throw new errors_js_1.ClusterRequestError('request payload is not valid JSON', 'MALFORMED_JSON');
26
+ }
27
+ }
28
+ // Callers resolve `--graph`/`--input` specifiers ('-' vs. a file path) to a byte
29
+ // source themselves; opening the filesystem stream stays outside src/cluster so this
30
+ // module keeps no host-specific dependency (not even the `NodeJS` ambient namespace,
31
+ // which isn't resolvable from a consumer's declaration-only install) beyond the
32
+ // standard async-iterable protocol every Node Readable already implements — mirrors
33
+ // how WebSocketLike is injected instead of importing 'ws' directly, see socket.ts.
34
+ async function readBoundedSource(source) {
35
+ const encoder = new TextEncoder();
36
+ const chunks = [];
37
+ let total = 0;
38
+ for await (const chunk of source) {
39
+ const bytes = typeof chunk === 'string' ? encoder.encode(chunk) : new Uint8Array(chunk);
40
+ total += bytes.length;
41
+ if (total > exports.MAX_REQUEST_BYTES) {
42
+ throw new errors_js_1.ClusterRequestError(`request payload exceeds the ${exports.MAX_REQUEST_BYTES} byte limit`, 'OVERSIZED_JSON');
43
+ }
44
+ chunks.push(bytes);
45
+ }
46
+ const assembled = new Uint8Array(total);
47
+ let offset = 0;
48
+ for (const bytes of chunks) {
49
+ assembled.set(bytes, offset);
50
+ offset += bytes.length;
51
+ }
52
+ return assembled;
53
+ }
54
+ function assertDistinctRequestSources(graph, input) {
55
+ if (input === undefined) {
56
+ throw new errors_js_1.ClusterRequestError('--input is required for every hosted run', 'MISSING_INPUT');
57
+ }
58
+ if (graph === '-' && input === '-') {
59
+ throw new errors_js_1.ClusterRequestError('graph and input cannot both read from stdin', 'AMBIGUOUS_STDIN_SOURCE');
60
+ }
61
+ }
@@ -0,0 +1,4 @@
1
+ export declare const MAX_REQUEST_BYTES: 1048576;
2
+ export declare function decodeBoundedJson(bytes: Uint8Array): unknown;
3
+ export declare function readBoundedSource(source: AsyncIterable<Uint8Array | string>): Promise<Uint8Array>;
4
+ export declare function assertDistinctRequestSources(graph: string, input: string | undefined): asserts input is string;
@@ -0,0 +1,55 @@
1
+ import { ClusterRequestError } from './errors.mjs';
2
+ import { MAX_FRAME_BYTES } from './generated/protocol.mjs';
3
+ export const MAX_REQUEST_BYTES = MAX_FRAME_BYTES;
4
+ export function decodeBoundedJson(bytes) {
5
+ if (bytes.length > MAX_REQUEST_BYTES) {
6
+ throw new ClusterRequestError(`request payload of ${bytes.length} bytes exceeds the ${MAX_REQUEST_BYTES} byte limit`, 'OVERSIZED_JSON');
7
+ }
8
+ let text;
9
+ try {
10
+ text = new TextDecoder('utf-8', { fatal: true }).decode(bytes);
11
+ }
12
+ catch {
13
+ throw new ClusterRequestError('request payload is not valid UTF-8', 'INVALID_UTF8');
14
+ }
15
+ try {
16
+ return JSON.parse(text);
17
+ }
18
+ catch {
19
+ throw new ClusterRequestError('request payload is not valid JSON', 'MALFORMED_JSON');
20
+ }
21
+ }
22
+ // Callers resolve `--graph`/`--input` specifiers ('-' vs. a file path) to a byte
23
+ // source themselves; opening the filesystem stream stays outside src/cluster so this
24
+ // module keeps no host-specific dependency (not even the `NodeJS` ambient namespace,
25
+ // which isn't resolvable from a consumer's declaration-only install) beyond the
26
+ // standard async-iterable protocol every Node Readable already implements — mirrors
27
+ // how WebSocketLike is injected instead of importing 'ws' directly, see socket.ts.
28
+ export async function readBoundedSource(source) {
29
+ const encoder = new TextEncoder();
30
+ const chunks = [];
31
+ let total = 0;
32
+ for await (const chunk of source) {
33
+ const bytes = typeof chunk === 'string' ? encoder.encode(chunk) : new Uint8Array(chunk);
34
+ total += bytes.length;
35
+ if (total > MAX_REQUEST_BYTES) {
36
+ throw new ClusterRequestError(`request payload exceeds the ${MAX_REQUEST_BYTES} byte limit`, 'OVERSIZED_JSON');
37
+ }
38
+ chunks.push(bytes);
39
+ }
40
+ const assembled = new Uint8Array(total);
41
+ let offset = 0;
42
+ for (const bytes of chunks) {
43
+ assembled.set(bytes, offset);
44
+ offset += bytes.length;
45
+ }
46
+ return assembled;
47
+ }
48
+ export function assertDistinctRequestSources(graph, input) {
49
+ if (input === undefined) {
50
+ throw new ClusterRequestError('--input is required for every hosted run', 'MISSING_INPUT');
51
+ }
52
+ if (graph === '-' && input === '-') {
53
+ throw new ClusterRequestError('graph and input cannot both read from stdin', 'AMBIGUOUS_STDIN_SOURCE');
54
+ }
55
+ }
@@ -0,0 +1,76 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.firstInputValidationIssue = firstInputValidationIssue;
4
+ exports.assertInputValue = assertInputValue;
5
+ const errors_js_1 = require("./errors.cjs");
6
+ function isJsonInteger(value) {
7
+ return typeof value === 'number' && Number.isFinite(value) && Number.isInteger(value);
8
+ }
9
+ function evaluate(type, value, path) {
10
+ switch (type.kind) {
11
+ case 'null':
12
+ return value === null ? null : { path, code: 'TYPE_MISMATCH', expectedKind: 'null' };
13
+ case 'boolean':
14
+ return typeof value === 'boolean' ? null : { path, code: 'TYPE_MISMATCH', expectedKind: 'boolean' };
15
+ case 'integer':
16
+ return isJsonInteger(value) ? null : { path, code: 'TYPE_MISMATCH', expectedKind: 'integer' };
17
+ case 'number':
18
+ return typeof value === 'number' && Number.isFinite(value)
19
+ ? null
20
+ : { path, code: 'TYPE_MISMATCH', expectedKind: 'number' };
21
+ case 'string':
22
+ return typeof value === 'string' ? null : { path, code: 'TYPE_MISMATCH', expectedKind: 'string' };
23
+ case 'enum':
24
+ if (typeof value !== 'string')
25
+ return { path, code: 'TYPE_MISMATCH', expectedKind: 'enum' };
26
+ return type.values.includes(value)
27
+ ? null
28
+ : { path, code: 'UNKNOWN_ENUM_LABEL', expectedKind: 'enum' };
29
+ case 'array': {
30
+ if (!Array.isArray(value))
31
+ return { path, code: 'TYPE_MISMATCH', expectedKind: 'array' };
32
+ for (let index = 0; index < value.length; index += 1) {
33
+ const issue = evaluate(type.items, value[index], `${path}/${index}`);
34
+ if (issue)
35
+ return issue;
36
+ }
37
+ return null;
38
+ }
39
+ case 'record': {
40
+ if (typeof value !== 'object' || value === null || Array.isArray(value)) {
41
+ return { path, code: 'TYPE_MISMATCH', expectedKind: 'record' };
42
+ }
43
+ const record = value;
44
+ const fieldNames = Object.keys(type.fields).sort();
45
+ for (const name of fieldNames) {
46
+ const field = type.fields[name];
47
+ if (!field)
48
+ continue;
49
+ const fieldPath = `${path}/${name}`;
50
+ if (Object.prototype.hasOwnProperty.call(record, name)) {
51
+ const issue = evaluate(field.type, record[name], fieldPath);
52
+ if (issue)
53
+ return issue;
54
+ }
55
+ else if (field.required) {
56
+ return { path: fieldPath, code: 'MISSING_REQUIRED_FIELD', expectedKind: field.type.kind };
57
+ }
58
+ }
59
+ const declared = new Set(fieldNames);
60
+ const unknownField = Object.keys(record).sort().find((name) => !declared.has(name));
61
+ return unknownField
62
+ ? { path: `${path}/${unknownField}`, code: 'UNKNOWN_FIELD', expectedKind: 'record' }
63
+ : null;
64
+ }
65
+ }
66
+ }
67
+ function firstInputValidationIssue(type, value, path = '') {
68
+ const issue = evaluate(type, value, path);
69
+ return issue ? { path: issue.path, code: issue.code } : null;
70
+ }
71
+ function assertInputValue(type, value) {
72
+ const issue = evaluate(type, value, '');
73
+ if (!issue)
74
+ return;
75
+ throw new errors_js_1.ClusterRequestError(`input value at '${issue.path || '/'}' failed validation: ${issue.code}, expected ${issue.expectedKind}`, 'INVALID_INPUT');
76
+ }
@@ -0,0 +1,7 @@
1
+ import type { PayloadType } from './generated/protocol.js';
2
+ export type InputValidationIssue = {
3
+ readonly path: string;
4
+ readonly code: 'TYPE_MISMATCH' | 'MISSING_REQUIRED_FIELD' | 'UNKNOWN_FIELD' | 'UNKNOWN_ENUM_LABEL';
5
+ };
6
+ export declare function firstInputValidationIssue(type: PayloadType, value: unknown, path?: string): InputValidationIssue | null;
7
+ export declare function assertInputValue(type: PayloadType, value: unknown): void;
@@ -0,0 +1,72 @@
1
+ import { ClusterRequestError } from './errors.mjs';
2
+ function isJsonInteger(value) {
3
+ return typeof value === 'number' && Number.isFinite(value) && Number.isInteger(value);
4
+ }
5
+ function evaluate(type, value, path) {
6
+ switch (type.kind) {
7
+ case 'null':
8
+ return value === null ? null : { path, code: 'TYPE_MISMATCH', expectedKind: 'null' };
9
+ case 'boolean':
10
+ return typeof value === 'boolean' ? null : { path, code: 'TYPE_MISMATCH', expectedKind: 'boolean' };
11
+ case 'integer':
12
+ return isJsonInteger(value) ? null : { path, code: 'TYPE_MISMATCH', expectedKind: 'integer' };
13
+ case 'number':
14
+ return typeof value === 'number' && Number.isFinite(value)
15
+ ? null
16
+ : { path, code: 'TYPE_MISMATCH', expectedKind: 'number' };
17
+ case 'string':
18
+ return typeof value === 'string' ? null : { path, code: 'TYPE_MISMATCH', expectedKind: 'string' };
19
+ case 'enum':
20
+ if (typeof value !== 'string')
21
+ return { path, code: 'TYPE_MISMATCH', expectedKind: 'enum' };
22
+ return type.values.includes(value)
23
+ ? null
24
+ : { path, code: 'UNKNOWN_ENUM_LABEL', expectedKind: 'enum' };
25
+ case 'array': {
26
+ if (!Array.isArray(value))
27
+ return { path, code: 'TYPE_MISMATCH', expectedKind: 'array' };
28
+ for (let index = 0; index < value.length; index += 1) {
29
+ const issue = evaluate(type.items, value[index], `${path}/${index}`);
30
+ if (issue)
31
+ return issue;
32
+ }
33
+ return null;
34
+ }
35
+ case 'record': {
36
+ if (typeof value !== 'object' || value === null || Array.isArray(value)) {
37
+ return { path, code: 'TYPE_MISMATCH', expectedKind: 'record' };
38
+ }
39
+ const record = value;
40
+ const fieldNames = Object.keys(type.fields).sort();
41
+ for (const name of fieldNames) {
42
+ const field = type.fields[name];
43
+ if (!field)
44
+ continue;
45
+ const fieldPath = `${path}/${name}`;
46
+ if (Object.prototype.hasOwnProperty.call(record, name)) {
47
+ const issue = evaluate(field.type, record[name], fieldPath);
48
+ if (issue)
49
+ return issue;
50
+ }
51
+ else if (field.required) {
52
+ return { path: fieldPath, code: 'MISSING_REQUIRED_FIELD', expectedKind: field.type.kind };
53
+ }
54
+ }
55
+ const declared = new Set(fieldNames);
56
+ const unknownField = Object.keys(record).sort().find((name) => !declared.has(name));
57
+ return unknownField
58
+ ? { path: `${path}/${unknownField}`, code: 'UNKNOWN_FIELD', expectedKind: 'record' }
59
+ : null;
60
+ }
61
+ }
62
+ }
63
+ export function firstInputValidationIssue(type, value, path = '') {
64
+ const issue = evaluate(type, value, path);
65
+ return issue ? { path: issue.path, code: issue.code } : null;
66
+ }
67
+ export function assertInputValue(type, value) {
68
+ const issue = evaluate(type, value, '');
69
+ if (!issue)
70
+ return;
71
+ throw new ClusterRequestError(`input value at '${issue.path || '/'}' failed validation: ${issue.code}, expected ${issue.expectedKind}`, 'INVALID_INPUT');
72
+ }
@@ -2,6 +2,9 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.assertDefinition = assertDefinition;
4
4
  exports.assertMethodResult = assertMethodResult;
5
+ exports.assertGraphSpec = assertGraphSpec;
6
+ exports.assertGraphProfile = assertGraphProfile;
7
+ exports.assertGraphProfileSupported = assertGraphProfileSupported;
5
8
  const _2020_js_1 = require("ajv/dist/2020.js");
6
9
  const protocol_js_1 = require("./generated/protocol.cjs");
7
10
  const protocol_schema_js_1 = require("./generated/protocol-schema.cjs");
@@ -44,3 +47,21 @@ function assertMethodResult(method, value) {
44
47
  throw error;
45
48
  }
46
49
  }
50
+ function assertRequestDefinition(definition, value, code) {
51
+ const validate = validatorFor(definition);
52
+ if (validate(value))
53
+ return;
54
+ const details = (validate.errors ?? []).map((error) => `${error.instancePath || '/'} ${error.message ?? 'is invalid'}`).join('; ');
55
+ throw new errors_js_1.ClusterRequestError(`${definition} validation failed: ${details}`, code);
56
+ }
57
+ function assertGraphSpec(value) {
58
+ assertRequestDefinition('GraphSpec', value, 'INVALID_GRAPH');
59
+ }
60
+ function assertGraphProfile(value) {
61
+ assertRequestDefinition('GraphProfile', value, 'INVALID_GRAPH_PROFILE');
62
+ }
63
+ function assertGraphProfileSupported(profile, capabilities) {
64
+ if (!capabilities.graphProfiles?.includes(profile)) {
65
+ throw new errors_js_1.ClusterRequestError(`graph profile ${profile} is not among the server's advertised graphProfiles`, 'UNSUPPORTED_GRAPH_PROFILE');
66
+ }
67
+ }
@@ -1,3 +1,6 @@
1
- import type { ClusterMethod } from './generated/protocol.js';
1
+ import type { ClusterMethod, GraphProfile, GraphSpec, ServerCapabilities } from './generated/protocol.js';
2
2
  export declare function assertDefinition(definition: string, value: unknown): void;
3
3
  export declare function assertMethodResult(method: ClusterMethod, value: unknown): void;
4
+ export declare function assertGraphSpec(value: unknown): asserts value is GraphSpec;
5
+ export declare function assertGraphProfile(value: unknown): asserts value is GraphProfile;
6
+ export declare function assertGraphProfileSupported(profile: GraphProfile, capabilities: ServerCapabilities): void;