@the-open-engine/zeroshot 6.3.0 → 6.5.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.
- package/cli/commands/providers.js +11 -5
- package/cli/index.js +83 -17
- package/cli/lib/first-run.js +14 -3
- package/docker/zeroshot-cluster/Dockerfile +11 -1
- package/lib/agent-cli-provider/acp-stdio-runner.d.ts +4 -0
- package/lib/agent-cli-provider/acp-stdio-runner.d.ts.map +1 -0
- package/lib/agent-cli-provider/acp-stdio-runner.js +259 -0
- package/lib/agent-cli-provider/acp-stdio-runner.js.map +1 -0
- package/lib/agent-cli-provider/adapters/acp.d.ts +23 -0
- package/lib/agent-cli-provider/adapters/acp.d.ts.map +1 -0
- package/lib/agent-cli-provider/adapters/acp.js +373 -0
- package/lib/agent-cli-provider/adapters/acp.js.map +1 -0
- package/lib/agent-cli-provider/adapters/claude.d.ts.map +1 -1
- package/lib/agent-cli-provider/adapters/claude.js +2 -29
- package/lib/agent-cli-provider/adapters/claude.js.map +1 -1
- package/lib/agent-cli-provider/adapters/copilot-parser.d.ts +3 -0
- package/lib/agent-cli-provider/adapters/copilot-parser.d.ts.map +1 -0
- package/lib/agent-cli-provider/adapters/copilot-parser.js +154 -0
- package/lib/agent-cli-provider/adapters/copilot-parser.js.map +1 -0
- package/lib/agent-cli-provider/adapters/copilot.d.ts +3 -0
- package/lib/agent-cli-provider/adapters/copilot.d.ts.map +1 -0
- package/lib/agent-cli-provider/adapters/copilot.js +176 -0
- package/lib/agent-cli-provider/adapters/copilot.js.map +1 -0
- package/lib/agent-cli-provider/adapters/gateway.d.ts +6 -0
- package/lib/agent-cli-provider/adapters/gateway.d.ts.map +1 -0
- package/lib/agent-cli-provider/adapters/gateway.js +161 -0
- package/lib/agent-cli-provider/adapters/gateway.js.map +1 -0
- package/lib/agent-cli-provider/adapters/gemini.d.ts.map +1 -1
- package/lib/agent-cli-provider/adapters/gemini.js +9 -2
- package/lib/agent-cli-provider/adapters/gemini.js.map +1 -1
- package/lib/agent-cli-provider/adapters/index.d.ts.map +1 -1
- package/lib/agent-cli-provider/adapters/index.js +6 -34
- package/lib/agent-cli-provider/adapters/index.js.map +1 -1
- package/lib/agent-cli-provider/adapters/opencode.d.ts.map +1 -1
- package/lib/agent-cli-provider/adapters/opencode.js +5 -1
- package/lib/agent-cli-provider/adapters/opencode.js.map +1 -1
- package/lib/agent-cli-provider/adapters/pi.d.ts +3 -0
- package/lib/agent-cli-provider/adapters/pi.d.ts.map +1 -0
- package/lib/agent-cli-provider/adapters/pi.js +331 -0
- package/lib/agent-cli-provider/adapters/pi.js.map +1 -0
- package/lib/agent-cli-provider/claude-command.d.ts +6 -0
- package/lib/agent-cli-provider/claude-command.d.ts.map +1 -0
- package/lib/agent-cli-provider/claude-command.js +43 -0
- package/lib/agent-cli-provider/claude-command.js.map +1 -0
- package/lib/agent-cli-provider/contract-actions.d.ts.map +1 -1
- package/lib/agent-cli-provider/contract-actions.js +13 -17
- package/lib/agent-cli-provider/contract-actions.js.map +1 -1
- package/lib/agent-cli-provider/contract-invoke.d.ts.map +1 -1
- package/lib/agent-cli-provider/contract-invoke.js +10 -3
- package/lib/agent-cli-provider/contract-invoke.js.map +1 -1
- package/lib/agent-cli-provider/contract-options.d.ts.map +1 -1
- package/lib/agent-cli-provider/contract-options.js +57 -2
- package/lib/agent-cli-provider/contract-options.js.map +1 -1
- package/lib/agent-cli-provider/contract-support.d.ts +1 -0
- package/lib/agent-cli-provider/contract-support.d.ts.map +1 -1
- package/lib/agent-cli-provider/contract-support.js +25 -3
- package/lib/agent-cli-provider/contract-support.js.map +1 -1
- package/lib/agent-cli-provider/errors.d.ts +1 -0
- package/lib/agent-cli-provider/errors.d.ts.map +1 -1
- package/lib/agent-cli-provider/errors.js +14 -5
- package/lib/agent-cli-provider/errors.js.map +1 -1
- package/lib/agent-cli-provider/gateway-client.d.ts +32 -0
- package/lib/agent-cli-provider/gateway-client.d.ts.map +1 -0
- package/lib/agent-cli-provider/gateway-client.js +135 -0
- package/lib/agent-cli-provider/gateway-client.js.map +1 -0
- package/lib/agent-cli-provider/gateway-runner.d.ts +9 -0
- package/lib/agent-cli-provider/gateway-runner.d.ts.map +1 -0
- package/lib/agent-cli-provider/gateway-runner.js +294 -0
- package/lib/agent-cli-provider/gateway-runner.js.map +1 -0
- package/lib/agent-cli-provider/gateway-tools.d.ts +14 -0
- package/lib/agent-cli-provider/gateway-tools.d.ts.map +1 -0
- package/lib/agent-cli-provider/gateway-tools.js +495 -0
- package/lib/agent-cli-provider/gateway-tools.js.map +1 -0
- package/lib/agent-cli-provider/index.d.ts +3 -2
- package/lib/agent-cli-provider/index.d.ts.map +1 -1
- package/lib/agent-cli-provider/index.js +14 -1
- package/lib/agent-cli-provider/index.js.map +1 -1
- package/lib/agent-cli-provider/invoke-evidence.d.ts +2 -2
- package/lib/agent-cli-provider/invoke-evidence.d.ts.map +1 -1
- package/lib/agent-cli-provider/invoke-evidence.js +17 -3
- package/lib/agent-cli-provider/invoke-evidence.js.map +1 -1
- package/lib/agent-cli-provider/provider-registry.d.ts +437 -0
- package/lib/agent-cli-provider/provider-registry.d.ts.map +1 -0
- package/lib/agent-cli-provider/provider-registry.js +411 -0
- package/lib/agent-cli-provider/provider-registry.js.map +1 -0
- package/lib/agent-cli-provider/single-agent-runtime.d.ts +7 -0
- package/lib/agent-cli-provider/single-agent-runtime.d.ts.map +1 -1
- package/lib/agent-cli-provider/single-agent-runtime.js +139 -19
- package/lib/agent-cli-provider/single-agent-runtime.js.map +1 -1
- package/lib/agent-cli-provider/types.d.ts +106 -4
- package/lib/agent-cli-provider/types.d.ts.map +1 -1
- package/lib/agent-cli-provider/types.js.map +1 -1
- package/lib/detached-startup.js +4 -2
- package/lib/docker-config.js +24 -13
- package/lib/provider-defaults.js +15 -4
- package/lib/provider-detection.js +2 -0
- package/lib/provider-names.js +32 -12
- package/lib/repo-settings.js +15 -1
- package/lib/run-mode.js +18 -6
- package/lib/run-plan.js +32 -0
- package/lib/settings/claude-auth.js +3 -6
- package/lib/settings.js +17 -2
- package/lib/setup-apply.js +300 -0
- package/lib/setup-journal.js +109 -0
- package/lib/setup-plan.js +406 -0
- package/lib/setup-undo.js +88 -0
- package/lib/start-cluster.js +34 -9
- package/lib/stream-json-parser.js +7 -5
- package/package.json +33 -3
- package/scripts/live-provider-smoke.js +221 -0
- package/src/agent/agent-lifecycle.js +7 -4
- package/src/agent/agent-quality-gate-schema.js +2 -2
- package/src/agent/agent-task-executor.js +41 -2
- package/src/agent-cli-provider/acp-stdio-runner.ts +314 -0
- package/src/agent-cli-provider/adapters/acp.ts +493 -0
- package/src/agent-cli-provider/adapters/claude.ts +2 -32
- package/src/agent-cli-provider/adapters/copilot-parser.ts +166 -0
- package/src/agent-cli-provider/adapters/copilot.ts +231 -0
- package/src/agent-cli-provider/adapters/gateway.ts +186 -0
- package/src/agent-cli-provider/adapters/gemini.ts +9 -2
- package/src/agent-cli-provider/adapters/index.ts +5 -36
- package/src/agent-cli-provider/adapters/opencode.ts +4 -1
- package/src/agent-cli-provider/adapters/pi.ts +410 -0
- package/src/agent-cli-provider/claude-command.ts +47 -0
- package/src/agent-cli-provider/contract-actions.ts +14 -17
- package/src/agent-cli-provider/contract-invoke.ts +12 -3
- package/src/agent-cli-provider/contract-options.ts +72 -3
- package/src/agent-cli-provider/contract-support.ts +30 -3
- package/src/agent-cli-provider/errors.ts +14 -4
- package/src/agent-cli-provider/gateway-client.ts +170 -0
- package/src/agent-cli-provider/gateway-runner.ts +353 -0
- package/src/agent-cli-provider/gateway-tools.ts +616 -0
- package/src/agent-cli-provider/index.ts +28 -0
- package/src/agent-cli-provider/invoke-evidence.ts +24 -3
- package/src/agent-cli-provider/provider-registry.ts +515 -0
- package/src/agent-cli-provider/single-agent-runtime.ts +192 -18
- package/src/agent-cli-provider/types.ts +145 -4
- package/src/config-validator.js +33 -15
- package/src/isolation-manager.js +124 -19
- package/src/ledger.js +3 -0
- package/src/message-bus.js +12 -2
- package/src/orchestrator.js +37 -17
- package/src/preflight.js +83 -30
- package/src/providers/capabilities.js +15 -42
- package/src/providers/index.js +52 -72
- package/src/worktree-claude-config.js +17 -0
- package/task-lib/commands/run.js +1 -0
- package/task-lib/provider-helper-runtime.js +11 -0
- package/task-lib/runner.js +7 -0
|
@@ -0,0 +1,495 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.GatewayPolicyError = void 0;
|
|
7
|
+
exports.normalizeGatewayBuildOptions = normalizeGatewayBuildOptions;
|
|
8
|
+
exports.resolveGatewayConfiguration = resolveGatewayConfiguration;
|
|
9
|
+
exports.validateGatewaySettings = validateGatewaySettings;
|
|
10
|
+
exports.normalizeGatewayToolPolicy = normalizeGatewayToolPolicy;
|
|
11
|
+
exports.executeGatewayToolCall = executeGatewayToolCall;
|
|
12
|
+
const promises_1 = require("node:fs/promises");
|
|
13
|
+
const node_path_1 = __importDefault(require("node:path"));
|
|
14
|
+
const node_child_process_1 = require("node:child_process");
|
|
15
|
+
const contract_errors_1 = require("./contract-errors");
|
|
16
|
+
const json_1 = require("./json");
|
|
17
|
+
const DEFAULT_COMMAND_TIMEOUT_MS = 10_000;
|
|
18
|
+
class GatewayPolicyError extends Error {
|
|
19
|
+
constructor(message) {
|
|
20
|
+
super(message);
|
|
21
|
+
this.name = 'GatewayPolicyError';
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
exports.GatewayPolicyError = GatewayPolicyError;
|
|
25
|
+
function normalizeGatewayBuildOptions(value, field, cwd) {
|
|
26
|
+
if (value === undefined)
|
|
27
|
+
return undefined;
|
|
28
|
+
if (!(0, json_1.isRecord)(value)) {
|
|
29
|
+
(0, contract_errors_1.invalidField)(field, `${field} must be an object.`);
|
|
30
|
+
}
|
|
31
|
+
const result = {};
|
|
32
|
+
const baseUrl = optionalString(value.baseUrl, `${field}.baseUrl`);
|
|
33
|
+
const apiKey = optionalString(value.apiKey, `${field}.apiKey`);
|
|
34
|
+
const model = optionalNullableString(value.model, `${field}.model`);
|
|
35
|
+
const headers = optionalStringRecord(value.headers, `${field}.headers`);
|
|
36
|
+
const toolPolicy = optionalGatewayToolPolicy(value.toolPolicy, `${field}.toolPolicy`, cwd);
|
|
37
|
+
if (baseUrl !== undefined)
|
|
38
|
+
result.baseUrl = baseUrl;
|
|
39
|
+
if (typeof apiKey === 'string')
|
|
40
|
+
result.apiKey = apiKey;
|
|
41
|
+
if (model !== undefined)
|
|
42
|
+
result.model = model;
|
|
43
|
+
if (headers !== undefined)
|
|
44
|
+
result.headers = headers;
|
|
45
|
+
if (toolPolicy !== undefined)
|
|
46
|
+
result.toolPolicy = toolPolicy;
|
|
47
|
+
return result;
|
|
48
|
+
}
|
|
49
|
+
function resolveGatewayConfiguration(value, field, cwd) {
|
|
50
|
+
if (value === undefined) {
|
|
51
|
+
throw (0, contract_errors_1.contractError)({
|
|
52
|
+
code: 'invalid-field',
|
|
53
|
+
field,
|
|
54
|
+
exitCode: 2,
|
|
55
|
+
message: `${field} is required for the gateway provider.`,
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
const baseUrl = requiredNonEmptyString(value.baseUrl, `${field}.baseUrl`);
|
|
59
|
+
const apiKey = requiredNonEmptyString(value.apiKey, `${field}.apiKey`);
|
|
60
|
+
const model = requiredNonEmptyString(value.model, `${field}.model`);
|
|
61
|
+
const headers = value.headers ?? {};
|
|
62
|
+
const toolPolicy = requiredGatewayToolPolicy(value.toolPolicy, `${field}.toolPolicy`, cwd);
|
|
63
|
+
assertValidGatewayBaseUrl(baseUrl, `${field}.baseUrl`);
|
|
64
|
+
return {
|
|
65
|
+
baseUrl: normalizeBaseUrl(baseUrl),
|
|
66
|
+
apiKey,
|
|
67
|
+
headers,
|
|
68
|
+
model,
|
|
69
|
+
toolPolicy,
|
|
70
|
+
};
|
|
71
|
+
}
|
|
72
|
+
function validateGatewaySettings(settings) {
|
|
73
|
+
try {
|
|
74
|
+
optionalString(settings.baseUrl, 'providerSettings.gateway.baseUrl');
|
|
75
|
+
optionalString(settings.apiKey, 'providerSettings.gateway.apiKey');
|
|
76
|
+
optionalNullableString(settings.model, 'providerSettings.gateway.model');
|
|
77
|
+
optionalStringRecord(settings.headers, 'providerSettings.gateway.headers');
|
|
78
|
+
optionalGatewayToolPolicy(settings.toolPolicy, 'providerSettings.gateway.toolPolicy', process.cwd());
|
|
79
|
+
return null;
|
|
80
|
+
}
|
|
81
|
+
catch (error) {
|
|
82
|
+
return (0, json_1.unknownToMessage)(error);
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
function normalizeGatewayToolPolicy(value, field, cwd) {
|
|
86
|
+
const roots = normalizeGatewayRoots(value.roots, `${field}.roots`, cwd);
|
|
87
|
+
const commands = normalizeGatewayCommands(value.commands, `${field}.commands`);
|
|
88
|
+
const timeoutMs = optionalFiniteInteger(value.commandTimeoutMs, `${field}.commandTimeoutMs`);
|
|
89
|
+
return timeoutMs === undefined
|
|
90
|
+
? { roots, commands }
|
|
91
|
+
: { roots, commands, commandTimeoutMs: timeoutMs };
|
|
92
|
+
}
|
|
93
|
+
async function executeGatewayToolCall(toolName, input, policy) {
|
|
94
|
+
switch (toolName) {
|
|
95
|
+
case 'read_file':
|
|
96
|
+
return { content: await readGatewayFile(input, policy), isError: false };
|
|
97
|
+
case 'apply_patch':
|
|
98
|
+
return { content: await applyGatewayPatch(input, policy), isError: false };
|
|
99
|
+
case 'run_command':
|
|
100
|
+
return runGatewayCommand(input, policy);
|
|
101
|
+
default:
|
|
102
|
+
throw new GatewayPolicyError(`Unsupported gateway tool: ${toolName}`);
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
function optionalGatewayToolPolicy(value, field, cwd) {
|
|
106
|
+
if (value === undefined || value === null)
|
|
107
|
+
return undefined;
|
|
108
|
+
if (!(0, json_1.isRecord)(value)) {
|
|
109
|
+
(0, contract_errors_1.invalidField)(field, `${field} must be an object.`);
|
|
110
|
+
}
|
|
111
|
+
return normalizeGatewayToolPolicy({
|
|
112
|
+
roots: stringArray(value.roots, `${field}.roots`),
|
|
113
|
+
commands: stringArray(value.commands, `${field}.commands`),
|
|
114
|
+
...(value.commandTimeoutMs === undefined
|
|
115
|
+
? {}
|
|
116
|
+
: {
|
|
117
|
+
commandTimeoutMs: requiredFiniteInteger(value.commandTimeoutMs, `${field}.commandTimeoutMs`),
|
|
118
|
+
}),
|
|
119
|
+
}, field, cwd);
|
|
120
|
+
}
|
|
121
|
+
function requiredGatewayToolPolicy(value, field, cwd) {
|
|
122
|
+
if (value === undefined) {
|
|
123
|
+
throw (0, contract_errors_1.contractError)({
|
|
124
|
+
code: 'invalid-field',
|
|
125
|
+
field,
|
|
126
|
+
exitCode: 2,
|
|
127
|
+
message: `${field} is required for the gateway provider.`,
|
|
128
|
+
});
|
|
129
|
+
}
|
|
130
|
+
return normalizeGatewayToolPolicy(value, field, cwd);
|
|
131
|
+
}
|
|
132
|
+
function normalizeGatewayRoots(value, field, cwd) {
|
|
133
|
+
if (value.length === 0) {
|
|
134
|
+
(0, contract_errors_1.invalidField)(field, `${field} must contain at least one root path.`);
|
|
135
|
+
}
|
|
136
|
+
return value.map((root, index) => {
|
|
137
|
+
const normalized = root.trim();
|
|
138
|
+
if (!normalized) {
|
|
139
|
+
(0, contract_errors_1.invalidField)(`${field}[${index}]`, `${field}[${index}] must be a non-empty string.`);
|
|
140
|
+
}
|
|
141
|
+
return node_path_1.default.resolve(cwd, normalized);
|
|
142
|
+
});
|
|
143
|
+
}
|
|
144
|
+
function normalizeGatewayCommands(value, field) {
|
|
145
|
+
return value.map((command, index) => {
|
|
146
|
+
const normalized = command.trim();
|
|
147
|
+
if (!normalized) {
|
|
148
|
+
(0, contract_errors_1.invalidField)(`${field}[${index}]`, `${field}[${index}] must be a non-empty string.`);
|
|
149
|
+
}
|
|
150
|
+
if (/\s/.test(normalized)) {
|
|
151
|
+
(0, contract_errors_1.invalidField)(`${field}[${index}]`, `${field}[${index}] must not contain whitespace.`);
|
|
152
|
+
}
|
|
153
|
+
return normalized;
|
|
154
|
+
});
|
|
155
|
+
}
|
|
156
|
+
async function assertWithinRoots(targetPath, roots, field, options = {}) {
|
|
157
|
+
const resolvedRoots = await resolveGatewayRoots(roots);
|
|
158
|
+
if (resolvedRoots.length === 0) {
|
|
159
|
+
throw new GatewayPolicyError('toolPolicy.roots must include at least one root.');
|
|
160
|
+
}
|
|
161
|
+
const candidates = getGatewayTargetCandidates(targetPath, resolvedRoots);
|
|
162
|
+
const firstExistingMatch = await resolveFirstMatchingGatewayTarget(candidates, resolvedRoots, {
|
|
163
|
+
throwOnMissing: !options.allowMissingLeaf,
|
|
164
|
+
});
|
|
165
|
+
if (firstExistingMatch !== undefined)
|
|
166
|
+
return firstExistingMatch;
|
|
167
|
+
if (options.allowMissingLeaf) {
|
|
168
|
+
const missingLeafMatch = await resolveFirstMatchingGatewayTarget(candidates, resolvedRoots, {
|
|
169
|
+
allowMissingLeaf: true,
|
|
170
|
+
});
|
|
171
|
+
if (missingLeafMatch !== undefined)
|
|
172
|
+
return missingLeafMatch;
|
|
173
|
+
}
|
|
174
|
+
throw new GatewayPolicyError(`${field} must stay within toolPolicy.roots.`);
|
|
175
|
+
}
|
|
176
|
+
function resolveGatewayRoots(roots) {
|
|
177
|
+
return Promise.all(roots.map(async (configuredPath) => ({
|
|
178
|
+
configuredPath,
|
|
179
|
+
realPath: await (0, promises_1.realpath)(configuredPath),
|
|
180
|
+
})));
|
|
181
|
+
}
|
|
182
|
+
function getGatewayTargetCandidates(targetPath, roots) {
|
|
183
|
+
if (node_path_1.default.isAbsolute(targetPath)) {
|
|
184
|
+
return [node_path_1.default.resolve(targetPath)];
|
|
185
|
+
}
|
|
186
|
+
return roots.map((root) => node_path_1.default.resolve(root.configuredPath, targetPath));
|
|
187
|
+
}
|
|
188
|
+
async function resolveFirstMatchingGatewayTarget(candidates, resolvedRoots, options = {}) {
|
|
189
|
+
let firstMissingError;
|
|
190
|
+
for (const candidate of candidates) {
|
|
191
|
+
let resolvedTarget;
|
|
192
|
+
try {
|
|
193
|
+
resolvedTarget = options.allowMissingLeaf
|
|
194
|
+
? await resolveGatewayTargetPath(candidate)
|
|
195
|
+
: await (0, promises_1.realpath)(candidate);
|
|
196
|
+
}
|
|
197
|
+
catch (error) {
|
|
198
|
+
if (isNodeErrorWithCode(error, 'ENOENT')) {
|
|
199
|
+
firstMissingError ??= error;
|
|
200
|
+
continue;
|
|
201
|
+
}
|
|
202
|
+
throw error;
|
|
203
|
+
}
|
|
204
|
+
if (resolvedRoots.some((root) => isWithinRoot(resolvedTarget, root.realPath))) {
|
|
205
|
+
return resolvedTarget;
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
if (firstMissingError !== undefined && options.throwOnMissing) {
|
|
209
|
+
throw firstMissingError;
|
|
210
|
+
}
|
|
211
|
+
return undefined;
|
|
212
|
+
}
|
|
213
|
+
async function resolveGatewayTargetPath(candidatePath) {
|
|
214
|
+
try {
|
|
215
|
+
return await (0, promises_1.realpath)(candidatePath);
|
|
216
|
+
}
|
|
217
|
+
catch (error) {
|
|
218
|
+
if (!isNodeErrorWithCode(error, 'ENOENT'))
|
|
219
|
+
throw error;
|
|
220
|
+
}
|
|
221
|
+
const missingSegments = [];
|
|
222
|
+
let current = candidatePath;
|
|
223
|
+
while (true) {
|
|
224
|
+
const parent = node_path_1.default.dirname(current);
|
|
225
|
+
if (parent === current) {
|
|
226
|
+
throw new GatewayPolicyError(`Unable to resolve ${candidatePath} within toolPolicy.roots.`);
|
|
227
|
+
}
|
|
228
|
+
missingSegments.unshift(node_path_1.default.basename(current));
|
|
229
|
+
current = parent;
|
|
230
|
+
try {
|
|
231
|
+
const realCurrent = await (0, promises_1.realpath)(current);
|
|
232
|
+
return node_path_1.default.join(realCurrent, ...missingSegments);
|
|
233
|
+
}
|
|
234
|
+
catch (error) {
|
|
235
|
+
if (!isNodeErrorWithCode(error, 'ENOENT'))
|
|
236
|
+
throw error;
|
|
237
|
+
}
|
|
238
|
+
}
|
|
239
|
+
}
|
|
240
|
+
function isWithinRoot(targetPath, rootPath) {
|
|
241
|
+
const relative = node_path_1.default.relative(rootPath, targetPath);
|
|
242
|
+
return relative === '' || (!relative.startsWith('..') && !node_path_1.default.isAbsolute(relative));
|
|
243
|
+
}
|
|
244
|
+
function isNodeErrorWithCode(error, code) {
|
|
245
|
+
return (0, json_1.isRecord)(error) && error.code === code;
|
|
246
|
+
}
|
|
247
|
+
function readGatewayFileInput(input) {
|
|
248
|
+
if (!(0, json_1.isRecord)(input)) {
|
|
249
|
+
throw new Error('read_file input must be an object.');
|
|
250
|
+
}
|
|
251
|
+
const targetPath = (0, json_1.getString)(input, 'path');
|
|
252
|
+
if (!targetPath || !targetPath.trim()) {
|
|
253
|
+
throw new Error('read_file.path must be a non-empty string.');
|
|
254
|
+
}
|
|
255
|
+
return targetPath;
|
|
256
|
+
}
|
|
257
|
+
async function readGatewayFile(input, policy) {
|
|
258
|
+
const targetPath = await assertWithinRoots(readGatewayFileInput(input), policy.roots, 'read_file.path');
|
|
259
|
+
const content = await (0, promises_1.readFile)(targetPath, 'utf8');
|
|
260
|
+
return { path: targetPath, content };
|
|
261
|
+
}
|
|
262
|
+
function readApplyPatchInput(input) {
|
|
263
|
+
if (!(0, json_1.isRecord)(input)) {
|
|
264
|
+
throw new Error('apply_patch input must be an object.');
|
|
265
|
+
}
|
|
266
|
+
const targetPath = (0, json_1.getString)(input, 'path');
|
|
267
|
+
if (!targetPath || !targetPath.trim()) {
|
|
268
|
+
throw new Error('apply_patch.path must be a non-empty string.');
|
|
269
|
+
}
|
|
270
|
+
const content = optionalRuntimeString(input.content, 'apply_patch.content');
|
|
271
|
+
const search = optionalRuntimeString(input.search, 'apply_patch.search');
|
|
272
|
+
const replace = optionalRuntimeString(input.replace, 'apply_patch.replace');
|
|
273
|
+
const replaceAll = optionalBoolean(input.replaceAll, 'apply_patch.replaceAll') ?? false;
|
|
274
|
+
if (content === undefined) {
|
|
275
|
+
if (search === undefined || replace === undefined) {
|
|
276
|
+
throw new Error('apply_patch requires either content or both search and replace.');
|
|
277
|
+
}
|
|
278
|
+
if (search.length === 0) {
|
|
279
|
+
throw new Error('apply_patch.search must be a non-empty string.');
|
|
280
|
+
}
|
|
281
|
+
}
|
|
282
|
+
return { path: targetPath, content, search, replace, replaceAll };
|
|
283
|
+
}
|
|
284
|
+
async function applyGatewayPatch(input, policy) {
|
|
285
|
+
const request = readApplyPatchInput(input);
|
|
286
|
+
const targetPath = await assertWithinRoots(request.path, policy.roots, 'apply_patch.path', {
|
|
287
|
+
allowMissingLeaf: true,
|
|
288
|
+
});
|
|
289
|
+
await (0, promises_1.mkdir)(node_path_1.default.dirname(targetPath), { recursive: true });
|
|
290
|
+
if (request.content !== undefined) {
|
|
291
|
+
await (0, promises_1.writeFile)(targetPath, request.content, 'utf8');
|
|
292
|
+
return { path: targetPath, bytesWritten: Buffer.byteLength(request.content, 'utf8') };
|
|
293
|
+
}
|
|
294
|
+
const current = await (0, promises_1.readFile)(targetPath, 'utf8');
|
|
295
|
+
const search = request.search;
|
|
296
|
+
const replace = request.replace;
|
|
297
|
+
if (search === undefined || replace === undefined) {
|
|
298
|
+
throw new Error('apply_patch requires either content or both search and replace.');
|
|
299
|
+
}
|
|
300
|
+
if (!current.includes(search)) {
|
|
301
|
+
throw new Error('apply_patch.search did not match the target file.');
|
|
302
|
+
}
|
|
303
|
+
const next = request.replaceAll ? current.split(search).join(replace) : current.replace(search, replace);
|
|
304
|
+
await (0, promises_1.writeFile)(targetPath, next, 'utf8');
|
|
305
|
+
return {
|
|
306
|
+
path: targetPath,
|
|
307
|
+
bytesWritten: Buffer.byteLength(next, 'utf8'),
|
|
308
|
+
replaced: request.replaceAll ? 'all' : 'first',
|
|
309
|
+
};
|
|
310
|
+
}
|
|
311
|
+
function readRunCommandInput(input) {
|
|
312
|
+
if (!(0, json_1.isRecord)(input)) {
|
|
313
|
+
throw new Error('run_command input must be an object.');
|
|
314
|
+
}
|
|
315
|
+
const command = (0, json_1.getString)(input, 'command');
|
|
316
|
+
if (!command || !command.trim()) {
|
|
317
|
+
throw new Error('run_command.command must be a non-empty string.');
|
|
318
|
+
}
|
|
319
|
+
if (/\s/.test(command)) {
|
|
320
|
+
throw new GatewayPolicyError('run_command.command must not contain whitespace.');
|
|
321
|
+
}
|
|
322
|
+
const rawArgs = requiredArrayIfPresent(input, 'args', 'run_command.args');
|
|
323
|
+
const args = rawArgs.map((item, index) => {
|
|
324
|
+
if (typeof item !== 'string') {
|
|
325
|
+
throw new Error(`run_command.args[${index}] must be a string.`);
|
|
326
|
+
}
|
|
327
|
+
return item;
|
|
328
|
+
});
|
|
329
|
+
const cwd = optionalRuntimeString(input.cwd, 'run_command.cwd');
|
|
330
|
+
return { command, args, cwd };
|
|
331
|
+
}
|
|
332
|
+
async function runGatewayCommand(input, policy) {
|
|
333
|
+
const request = readRunCommandInput(input);
|
|
334
|
+
if (!policy.commands.includes(request.command)) {
|
|
335
|
+
throw new GatewayPolicyError(`run_command.command "${request.command}" is not allowlisted by toolPolicy.commands.`);
|
|
336
|
+
}
|
|
337
|
+
const timeoutMs = policy.commandTimeoutMs ?? DEFAULT_COMMAND_TIMEOUT_MS;
|
|
338
|
+
const result = request.cwd
|
|
339
|
+
? await spawnGatewayCommand(request.command, request.args, await assertWithinRoots(request.cwd, policy.roots, 'run_command.cwd'), timeoutMs)
|
|
340
|
+
: await spawnGatewayCommand(request.command, request.args, await resolveDefaultGatewayCommandCwd(policy.roots), timeoutMs);
|
|
341
|
+
return {
|
|
342
|
+
isError: result.exitCode !== 0 || result.signal !== null,
|
|
343
|
+
content: result,
|
|
344
|
+
};
|
|
345
|
+
}
|
|
346
|
+
async function resolveDefaultGatewayCommandCwd(roots) {
|
|
347
|
+
const resolvedRoots = await resolveGatewayRoots(roots);
|
|
348
|
+
if (resolvedRoots.length === 0) {
|
|
349
|
+
throw new GatewayPolicyError('toolPolicy.roots must include at least one root.');
|
|
350
|
+
}
|
|
351
|
+
const [firstRoot] = resolvedRoots;
|
|
352
|
+
if (!firstRoot) {
|
|
353
|
+
throw new GatewayPolicyError('toolPolicy.roots must include at least one root.');
|
|
354
|
+
}
|
|
355
|
+
return firstRoot.realPath;
|
|
356
|
+
}
|
|
357
|
+
function spawnGatewayCommand(command, args, cwd, timeoutMs) {
|
|
358
|
+
return new Promise((resolve, reject) => {
|
|
359
|
+
const child = (0, node_child_process_1.spawn)(command, [...args], {
|
|
360
|
+
cwd,
|
|
361
|
+
env: {
|
|
362
|
+
PATH: process.env.PATH ?? '',
|
|
363
|
+
HOME: process.env.HOME ?? '',
|
|
364
|
+
},
|
|
365
|
+
shell: false,
|
|
366
|
+
stdio: ['ignore', 'pipe', 'pipe'],
|
|
367
|
+
});
|
|
368
|
+
const stdout = [];
|
|
369
|
+
const stderr = [];
|
|
370
|
+
let timedOut = false;
|
|
371
|
+
const timeout = setTimeout(() => {
|
|
372
|
+
timedOut = true;
|
|
373
|
+
child.kill('SIGKILL');
|
|
374
|
+
}, timeoutMs);
|
|
375
|
+
child.stdout?.on('data', (chunk) => stdout.push(chunk));
|
|
376
|
+
child.stderr?.on('data', (chunk) => stderr.push(chunk));
|
|
377
|
+
child.once('error', (error) => {
|
|
378
|
+
clearTimeout(timeout);
|
|
379
|
+
reject(error);
|
|
380
|
+
});
|
|
381
|
+
child.once('close', (exitCode, signal) => {
|
|
382
|
+
clearTimeout(timeout);
|
|
383
|
+
resolve({
|
|
384
|
+
command,
|
|
385
|
+
args,
|
|
386
|
+
cwd,
|
|
387
|
+
exitCode,
|
|
388
|
+
signal,
|
|
389
|
+
timedOut,
|
|
390
|
+
stdout: Buffer.concat(stdout).toString('utf8'),
|
|
391
|
+
stderr: Buffer.concat(stderr).toString('utf8'),
|
|
392
|
+
});
|
|
393
|
+
});
|
|
394
|
+
});
|
|
395
|
+
}
|
|
396
|
+
function requiredNonEmptyString(value, field) {
|
|
397
|
+
if (typeof value === 'string' && value.trim())
|
|
398
|
+
return value.trim();
|
|
399
|
+
throw (0, contract_errors_1.contractError)({
|
|
400
|
+
code: 'invalid-field',
|
|
401
|
+
field,
|
|
402
|
+
exitCode: 2,
|
|
403
|
+
message: `${field} must be a non-empty string.`,
|
|
404
|
+
});
|
|
405
|
+
}
|
|
406
|
+
function optionalString(value, field) {
|
|
407
|
+
if (value === undefined || value === null)
|
|
408
|
+
return undefined;
|
|
409
|
+
if (typeof value === 'string')
|
|
410
|
+
return value;
|
|
411
|
+
(0, contract_errors_1.invalidField)(field, `${field} must be a string.`);
|
|
412
|
+
}
|
|
413
|
+
function optionalBoolean(value, field) {
|
|
414
|
+
if (value === undefined)
|
|
415
|
+
return undefined;
|
|
416
|
+
if (typeof value === 'boolean')
|
|
417
|
+
return value;
|
|
418
|
+
throw new Error(`${field} must be a boolean.`);
|
|
419
|
+
}
|
|
420
|
+
function optionalRuntimeString(value, field) {
|
|
421
|
+
if (value === undefined)
|
|
422
|
+
return undefined;
|
|
423
|
+
if (typeof value === 'string')
|
|
424
|
+
return value;
|
|
425
|
+
throw new Error(`${field} must be a string.`);
|
|
426
|
+
}
|
|
427
|
+
function optionalNullableString(value, field) {
|
|
428
|
+
if (value === undefined)
|
|
429
|
+
return undefined;
|
|
430
|
+
if (value === null)
|
|
431
|
+
return null;
|
|
432
|
+
if (typeof value === 'string')
|
|
433
|
+
return value;
|
|
434
|
+
(0, contract_errors_1.invalidField)(field, `${field} must be a string or null.`);
|
|
435
|
+
}
|
|
436
|
+
function optionalStringRecord(value, field) {
|
|
437
|
+
if (value === undefined || value === null)
|
|
438
|
+
return undefined;
|
|
439
|
+
if (!(0, json_1.isRecord)(value)) {
|
|
440
|
+
(0, contract_errors_1.invalidField)(field, `${field} must be an object with string values.`);
|
|
441
|
+
}
|
|
442
|
+
const result = {};
|
|
443
|
+
for (const [key, item] of Object.entries(value)) {
|
|
444
|
+
if (typeof item !== 'string') {
|
|
445
|
+
(0, contract_errors_1.invalidField)(`${field}.${key}`, `${field}.${key} must be a string.`);
|
|
446
|
+
}
|
|
447
|
+
result[key] = item;
|
|
448
|
+
}
|
|
449
|
+
return result;
|
|
450
|
+
}
|
|
451
|
+
function stringArray(value, field) {
|
|
452
|
+
if (!Array.isArray(value)) {
|
|
453
|
+
(0, contract_errors_1.invalidField)(field, `${field} must be an array of strings.`);
|
|
454
|
+
}
|
|
455
|
+
return value.map((item, index) => {
|
|
456
|
+
if (typeof item !== 'string') {
|
|
457
|
+
(0, contract_errors_1.invalidField)(`${field}[${index}]`, `${field}[${index}] must be a string.`);
|
|
458
|
+
}
|
|
459
|
+
return item;
|
|
460
|
+
});
|
|
461
|
+
}
|
|
462
|
+
function requiredArrayIfPresent(record, key, field) {
|
|
463
|
+
const value = record[key];
|
|
464
|
+
if (value === undefined)
|
|
465
|
+
return [];
|
|
466
|
+
if (!Array.isArray(value)) {
|
|
467
|
+
throw new Error(`${field} must be an array.`);
|
|
468
|
+
}
|
|
469
|
+
return value;
|
|
470
|
+
}
|
|
471
|
+
function optionalFiniteInteger(value, field) {
|
|
472
|
+
if (value === undefined)
|
|
473
|
+
return undefined;
|
|
474
|
+
return requiredFiniteInteger(value, field);
|
|
475
|
+
}
|
|
476
|
+
function requiredFiniteInteger(value, field) {
|
|
477
|
+
if (typeof value === 'number' && Number.isInteger(value) && value > 0)
|
|
478
|
+
return value;
|
|
479
|
+
(0, contract_errors_1.invalidField)(field, `${field} must be a positive integer.`);
|
|
480
|
+
}
|
|
481
|
+
function assertValidGatewayBaseUrl(value, field) {
|
|
482
|
+
try {
|
|
483
|
+
const parsed = new URL(value);
|
|
484
|
+
if (parsed.protocol !== 'http:' && parsed.protocol !== 'https:') {
|
|
485
|
+
(0, contract_errors_1.invalidField)(field, `${field} must use http or https.`);
|
|
486
|
+
}
|
|
487
|
+
}
|
|
488
|
+
catch {
|
|
489
|
+
(0, contract_errors_1.invalidField)(field, `${field} must be a valid URL.`);
|
|
490
|
+
}
|
|
491
|
+
}
|
|
492
|
+
function normalizeBaseUrl(value) {
|
|
493
|
+
return value.replace(/\/+$/, '');
|
|
494
|
+
}
|
|
495
|
+
//# sourceMappingURL=gateway-tools.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gateway-tools.js","sourceRoot":"","sources":["../../src/agent-cli-provider/gateway-tools.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
export { buildProviderCommand, classifyProviderError, detectProviderFatalError, detectProviderStreamingModeError, getProviderAdapter, listProviderAdapters, parseProviderChunk, recoverProviderStructuredOutput, resolveModelSpec, supportsProviderStructuredOutputRecovery, NO_MESSAGES_RETURNED, STREAMING_MODE_ERROR, type StreamingModeError, type StructuredOutputRecovery, } from './adapters';
|
|
2
2
|
export { providerExecutableSchemaVersion, runProviderExecutable, type ContractEnvelope, type ContractErrorEnvelope, type ContractErrorObject, type ContractEvidence, type ContractSuccessEnvelope, type ProviderExecutableCommand, type ProviderExecutableOptions, type ProviderExecutableResponse, } from './contract';
|
|
3
3
|
export { spawnProcessRunner, type ProcessResult, type ProcessRunner, type ProcessRunnerOptions, } from './process-runner';
|
|
4
|
-
export { detectRuntimeProviderCliFeatures, prepareSingleAgentProviderCommand, type PreparedSingleAgentProviderCommand, type SingleAgentProviderCommandInput, } from './single-agent-runtime';
|
|
5
|
-
export
|
|
4
|
+
export { detectRuntimeProviderCliFeatures, prepareSingleAgentProviderCommand, probeRuntimeProviderCli, type PreparedSingleAgentProviderCommand, type RuntimeProviderProbe, type SingleAgentProviderCommandInput, } from './single-agent-runtime';
|
|
5
|
+
export { findProviderRegistryEntry, getProviderRegistryEntry, knownProviderNames, listProviderRegistryEntries, normalizeProviderName, providerAliasMap, providerAliases, providerIds, providerRegistry, resolveProviderCommand, supportsProviderCapability, } from './provider-registry';
|
|
6
|
+
export type { AgentCliProviderHelperMetadata, BuildProviderCommandOptions, CleanupMetadata, CliFeatureOverrides, AcpCliFeatures, ClaudeCliFeatures, CodexCliFeatures, CopilotCliFeatures, CommandSpec, ErrorClassification, ErrorClassificationKind, GatewayBuildOptions, GatewayCliFeatures, GatewayToolPolicy, GeminiCliFeatures, KnownProviderName, LevelModelSpec, LevelOverrides, ModelCatalogEntry, ModelLevel, ModelSpec, OpencodeCliFeatures, OutputEvent, OutputFormat, PiCliFeatures, ProviderAdapter, ProviderCapabilities, ProviderCapabilityState, ProviderCommandSpec, ProviderDocsMetadata, ProviderInvokeSpec, ProviderAlias, ProviderCliFeatures, ProviderId, ProviderRegistryEntry, RedactionMetadata, ResolvedGatewayBuildOptions, ResolvedModelSpec, ResultEvent, TextEvent, ThinkingEvent, ToolCallEvent, ToolResultEvent, WarningMetadata, } from './types';
|
|
6
7
|
import type { AgentCliProviderHelperMetadata } from './types';
|
|
7
8
|
export declare const agentCliProviderHelperMetadata: Readonly<AgentCliProviderHelperMetadata>;
|
|
8
9
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/agent-cli-provider/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,oBAAoB,EACpB,qBAAqB,EACrB,wBAAwB,EACxB,gCAAgC,EAChC,kBAAkB,EAClB,oBAAoB,EACpB,kBAAkB,EAClB,+BAA+B,EAC/B,gBAAgB,EAChB,wCAAwC,EACxC,oBAAoB,EACpB,oBAAoB,EACpB,KAAK,kBAAkB,EACvB,KAAK,wBAAwB,GAC9B,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,+BAA+B,EAC/B,qBAAqB,EACrB,KAAK,gBAAgB,EACrB,KAAK,qBAAqB,EAC1B,KAAK,mBAAmB,EACxB,KAAK,gBAAgB,EACrB,KAAK,uBAAuB,EAC5B,KAAK,yBAAyB,EAC9B,KAAK,yBAAyB,EAC9B,KAAK,0BAA0B,GAChC,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,kBAAkB,EAClB,KAAK,aAAa,EAClB,KAAK,aAAa,EAClB,KAAK,oBAAoB,GAC1B,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,gCAAgC,EAChC,iCAAiC,EACjC,KAAK,kCAAkC,EACvC,KAAK,+BAA+B,GACrC,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/agent-cli-provider/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,oBAAoB,EACpB,qBAAqB,EACrB,wBAAwB,EACxB,gCAAgC,EAChC,kBAAkB,EAClB,oBAAoB,EACpB,kBAAkB,EAClB,+BAA+B,EAC/B,gBAAgB,EAChB,wCAAwC,EACxC,oBAAoB,EACpB,oBAAoB,EACpB,KAAK,kBAAkB,EACvB,KAAK,wBAAwB,GAC9B,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,+BAA+B,EAC/B,qBAAqB,EACrB,KAAK,gBAAgB,EACrB,KAAK,qBAAqB,EAC1B,KAAK,mBAAmB,EACxB,KAAK,gBAAgB,EACrB,KAAK,uBAAuB,EAC5B,KAAK,yBAAyB,EAC9B,KAAK,yBAAyB,EAC9B,KAAK,0BAA0B,GAChC,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,kBAAkB,EAClB,KAAK,aAAa,EAClB,KAAK,aAAa,EAClB,KAAK,oBAAoB,GAC1B,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,gCAAgC,EAChC,iCAAiC,EACjC,uBAAuB,EACvB,KAAK,kCAAkC,EACvC,KAAK,oBAAoB,EACzB,KAAK,+BAA+B,GACrC,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,yBAAyB,EACzB,wBAAwB,EACxB,kBAAkB,EAClB,2BAA2B,EAC3B,qBAAqB,EACrB,gBAAgB,EAChB,eAAe,EACf,WAAW,EACX,gBAAgB,EAChB,sBAAsB,EACtB,0BAA0B,GAC3B,MAAM,qBAAqB,CAAC;AAE7B,YAAY,EACV,8BAA8B,EAC9B,2BAA2B,EAC3B,eAAe,EACf,mBAAmB,EACnB,cAAc,EACd,iBAAiB,EACjB,gBAAgB,EAChB,kBAAkB,EAClB,WAAW,EACX,mBAAmB,EACnB,uBAAuB,EACvB,mBAAmB,EACnB,kBAAkB,EAClB,iBAAiB,EACjB,iBAAiB,EACjB,iBAAiB,EACjB,cAAc,EACd,cAAc,EACd,iBAAiB,EACjB,UAAU,EACV,SAAS,EACT,mBAAmB,EACnB,WAAW,EACX,YAAY,EACZ,aAAa,EACb,eAAe,EACf,oBAAoB,EACpB,uBAAuB,EACvB,mBAAmB,EACnB,oBAAoB,EACpB,kBAAkB,EAClB,aAAa,EACb,mBAAmB,EACnB,UAAU,EACV,qBAAqB,EACrB,iBAAiB,EACjB,2BAA2B,EAC3B,iBAAiB,EACjB,WAAW,EACX,SAAS,EACT,aAAa,EACb,aAAa,EACb,eAAe,EACf,eAAe,GAChB,MAAM,SAAS,CAAC;AAEjB,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,SAAS,CAAC;AAE9D,eAAO,MAAM,8BAA8B,EAAE,QAAQ,CAAC,8BAA8B,CAKnF,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.agentCliProviderHelperMetadata = exports.prepareSingleAgentProviderCommand = exports.detectRuntimeProviderCliFeatures = exports.spawnProcessRunner = exports.runProviderExecutable = exports.providerExecutableSchemaVersion = exports.STREAMING_MODE_ERROR = exports.NO_MESSAGES_RETURNED = exports.supportsProviderStructuredOutputRecovery = exports.resolveModelSpec = exports.recoverProviderStructuredOutput = exports.parseProviderChunk = exports.listProviderAdapters = exports.getProviderAdapter = exports.detectProviderStreamingModeError = exports.detectProviderFatalError = exports.classifyProviderError = exports.buildProviderCommand = void 0;
|
|
3
|
+
exports.agentCliProviderHelperMetadata = exports.supportsProviderCapability = exports.resolveProviderCommand = exports.providerRegistry = exports.providerIds = exports.providerAliases = exports.providerAliasMap = exports.normalizeProviderName = exports.listProviderRegistryEntries = exports.knownProviderNames = exports.getProviderRegistryEntry = exports.findProviderRegistryEntry = exports.probeRuntimeProviderCli = exports.prepareSingleAgentProviderCommand = exports.detectRuntimeProviderCliFeatures = exports.spawnProcessRunner = exports.runProviderExecutable = exports.providerExecutableSchemaVersion = exports.STREAMING_MODE_ERROR = exports.NO_MESSAGES_RETURNED = exports.supportsProviderStructuredOutputRecovery = exports.resolveModelSpec = exports.recoverProviderStructuredOutput = exports.parseProviderChunk = exports.listProviderAdapters = exports.getProviderAdapter = exports.detectProviderStreamingModeError = exports.detectProviderFatalError = exports.classifyProviderError = exports.buildProviderCommand = void 0;
|
|
4
4
|
var adapters_1 = require("./adapters");
|
|
5
5
|
Object.defineProperty(exports, "buildProviderCommand", { enumerable: true, get: function () { return adapters_1.buildProviderCommand; } });
|
|
6
6
|
Object.defineProperty(exports, "classifyProviderError", { enumerable: true, get: function () { return adapters_1.classifyProviderError; } });
|
|
@@ -22,6 +22,19 @@ Object.defineProperty(exports, "spawnProcessRunner", { enumerable: true, get: fu
|
|
|
22
22
|
var single_agent_runtime_1 = require("./single-agent-runtime");
|
|
23
23
|
Object.defineProperty(exports, "detectRuntimeProviderCliFeatures", { enumerable: true, get: function () { return single_agent_runtime_1.detectRuntimeProviderCliFeatures; } });
|
|
24
24
|
Object.defineProperty(exports, "prepareSingleAgentProviderCommand", { enumerable: true, get: function () { return single_agent_runtime_1.prepareSingleAgentProviderCommand; } });
|
|
25
|
+
Object.defineProperty(exports, "probeRuntimeProviderCli", { enumerable: true, get: function () { return single_agent_runtime_1.probeRuntimeProviderCli; } });
|
|
26
|
+
var provider_registry_1 = require("./provider-registry");
|
|
27
|
+
Object.defineProperty(exports, "findProviderRegistryEntry", { enumerable: true, get: function () { return provider_registry_1.findProviderRegistryEntry; } });
|
|
28
|
+
Object.defineProperty(exports, "getProviderRegistryEntry", { enumerable: true, get: function () { return provider_registry_1.getProviderRegistryEntry; } });
|
|
29
|
+
Object.defineProperty(exports, "knownProviderNames", { enumerable: true, get: function () { return provider_registry_1.knownProviderNames; } });
|
|
30
|
+
Object.defineProperty(exports, "listProviderRegistryEntries", { enumerable: true, get: function () { return provider_registry_1.listProviderRegistryEntries; } });
|
|
31
|
+
Object.defineProperty(exports, "normalizeProviderName", { enumerable: true, get: function () { return provider_registry_1.normalizeProviderName; } });
|
|
32
|
+
Object.defineProperty(exports, "providerAliasMap", { enumerable: true, get: function () { return provider_registry_1.providerAliasMap; } });
|
|
33
|
+
Object.defineProperty(exports, "providerAliases", { enumerable: true, get: function () { return provider_registry_1.providerAliases; } });
|
|
34
|
+
Object.defineProperty(exports, "providerIds", { enumerable: true, get: function () { return provider_registry_1.providerIds; } });
|
|
35
|
+
Object.defineProperty(exports, "providerRegistry", { enumerable: true, get: function () { return provider_registry_1.providerRegistry; } });
|
|
36
|
+
Object.defineProperty(exports, "resolveProviderCommand", { enumerable: true, get: function () { return provider_registry_1.resolveProviderCommand; } });
|
|
37
|
+
Object.defineProperty(exports, "supportsProviderCapability", { enumerable: true, get: function () { return provider_registry_1.supportsProviderCapability; } });
|
|
25
38
|
exports.agentCliProviderHelperMetadata = {
|
|
26
39
|
packageName: '@the-open-engine/zeroshot',
|
|
27
40
|
buildOutputDir: 'lib/agent-cli-provider',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/agent-cli-provider/index.ts"],"names":[],"mappings":";;;AAAA,uCAeoB;AAdlB,gHAAA,oBAAoB,OAAA;AACpB,iHAAA,qBAAqB,OAAA;AACrB,oHAAA,wBAAwB,OAAA;AACxB,4HAAA,gCAAgC,OAAA;AAChC,8GAAA,kBAAkB,OAAA;AAClB,gHAAA,oBAAoB,OAAA;AACpB,8GAAA,kBAAkB,OAAA;AAClB,2HAAA,+BAA+B,OAAA;AAC/B,4GAAA,gBAAgB,OAAA;AAChB,oIAAA,wCAAwC,OAAA;AACxC,gHAAA,oBAAoB,OAAA;AACpB,gHAAA,oBAAoB,OAAA;AAItB,uCAWoB;AAVlB,2HAAA,+BAA+B,OAAA;AAC/B,iHAAA,qBAAqB,OAAA;AAUvB,mDAK0B;AAJxB,oHAAA,kBAAkB,OAAA;AAKpB,+
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/agent-cli-provider/index.ts"],"names":[],"mappings":";;;AAAA,uCAeoB;AAdlB,gHAAA,oBAAoB,OAAA;AACpB,iHAAA,qBAAqB,OAAA;AACrB,oHAAA,wBAAwB,OAAA;AACxB,4HAAA,gCAAgC,OAAA;AAChC,8GAAA,kBAAkB,OAAA;AAClB,gHAAA,oBAAoB,OAAA;AACpB,8GAAA,kBAAkB,OAAA;AAClB,2HAAA,+BAA+B,OAAA;AAC/B,4GAAA,gBAAgB,OAAA;AAChB,oIAAA,wCAAwC,OAAA;AACxC,gHAAA,oBAAoB,OAAA;AACpB,gHAAA,oBAAoB,OAAA;AAItB,uCAWoB;AAVlB,2HAAA,+BAA+B,OAAA;AAC/B,iHAAA,qBAAqB,OAAA;AAUvB,mDAK0B;AAJxB,oHAAA,kBAAkB,OAAA;AAKpB,+DAOgC;AAN9B,wIAAA,gCAAgC,OAAA;AAChC,yIAAA,iCAAiC,OAAA;AACjC,+HAAA,uBAAuB,OAAA;AAKzB,yDAY6B;AAX3B,8HAAA,yBAAyB,OAAA;AACzB,6HAAA,wBAAwB,OAAA;AACxB,uHAAA,kBAAkB,OAAA;AAClB,gIAAA,2BAA2B,OAAA;AAC3B,0HAAA,qBAAqB,OAAA;AACrB,qHAAA,gBAAgB,OAAA;AAChB,oHAAA,eAAe,OAAA;AACf,gHAAA,WAAW,OAAA;AACX,qHAAA,gBAAgB,OAAA;AAChB,2HAAA,sBAAsB,OAAA;AACtB,+HAAA,0BAA0B,OAAA;AAoDf,QAAA,8BAA8B,GAA6C;IACtF,WAAW,EAAE,2BAA2B;IACxC,cAAc,EAAE,wBAAwB;IACxC,eAAe,EAAE,CAAC;IAClB,cAAc,EAAE,GAAG;CACpB,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import type { ProcessResult } from './process-runner';
|
|
2
|
-
import type { ErrorClassification, ProviderAdapter } from './types';
|
|
3
|
-
export declare function providerFailureClassification(adapter: ProviderAdapter, result: ProcessResult): ErrorClassification | null;
|
|
2
|
+
import type { ErrorClassification, OutputEvent, ProviderAdapter } from './types';
|
|
3
|
+
export declare function providerFailureClassification(adapter: ProviderAdapter, result: ProcessResult, events?: readonly OutputEvent[]): ErrorClassification | null;
|
|
4
4
|
//# sourceMappingURL=invoke-evidence.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"invoke-evidence.d.ts","sourceRoot":"","sources":["../../src/agent-cli-provider/invoke-evidence.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,KAAK,EAAE,mBAAmB,EAAE,
|
|
1
|
+
{"version":3,"file":"invoke-evidence.d.ts","sourceRoot":"","sources":["../../src/agent-cli-provider/invoke-evidence.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,KAAK,EAAE,mBAAmB,EAAE,WAAW,EAAE,eAAe,EAAe,MAAM,SAAS,CAAC;AAoB9F,wBAAgB,6BAA6B,CAC3C,OAAO,EAAE,eAAe,EACxB,MAAM,EAAE,aAAa,EACrB,MAAM,GAAE,SAAS,WAAW,EAAO,GAClC,mBAAmB,GAAG,IAAI,CAY5B"}
|
|
@@ -2,14 +2,28 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.providerFailureClassification = providerFailureClassification;
|
|
4
4
|
const adapters_1 = require("./adapters");
|
|
5
|
-
function
|
|
5
|
+
function isFailedResultEvent(event) {
|
|
6
|
+
return event.type === 'result' && event.success === false;
|
|
7
|
+
}
|
|
8
|
+
function classifyParsedFailure(adapter, events) {
|
|
9
|
+
const failedResult = [...events].reverse().find(isFailedResultEvent);
|
|
10
|
+
if (failedResult === undefined)
|
|
11
|
+
return null;
|
|
12
|
+
return (0, adapters_1.classifyProviderError)(adapter.id, {
|
|
13
|
+
message: typeof failedResult.error === 'string' && failedResult.error.trim()
|
|
14
|
+
? failedResult.error
|
|
15
|
+
: 'Provider reported a failed result event.',
|
|
16
|
+
});
|
|
17
|
+
}
|
|
18
|
+
function providerFailureClassification(adapter, result, events = []) {
|
|
6
19
|
if (result.timedOut) {
|
|
7
20
|
return (0, adapters_1.classifyProviderError)(adapter.id, {
|
|
8
21
|
message: `Provider timed out after ${result.timeoutMs ?? 'unknown'}ms`,
|
|
9
22
|
});
|
|
10
23
|
}
|
|
11
|
-
if (result.exitCode === 0 && result.signal === null)
|
|
12
|
-
return
|
|
24
|
+
if (result.exitCode === 0 && result.signal === null) {
|
|
25
|
+
return classifyParsedFailure(adapter, events);
|
|
26
|
+
}
|
|
13
27
|
return (0, adapters_1.classifyProviderError)(adapter.id, {
|
|
14
28
|
message: result.stderr || result.stdout || `Provider exited with code ${result.exitCode ?? ''}`,
|
|
15
29
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"invoke-evidence.js","sourceRoot":"","sources":["../../src/agent-cli-provider/invoke-evidence.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"invoke-evidence.js","sourceRoot":"","sources":["../../src/agent-cli-provider/invoke-evidence.ts"],"names":[],"mappings":";;AAsBA,sEAgBC;AAtCD,yCAAmD;AAInD,SAAS,mBAAmB,CAAC,KAAkB;IAC7C,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,KAAK,KAAK,CAAC;AAC5D,CAAC;AAED,SAAS,qBAAqB,CAC5B,OAAwB,EACxB,MAA8B;IAE9B,MAAM,YAAY,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;IACrE,IAAI,YAAY,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC;IAC5C,OAAO,IAAA,gCAAqB,EAAC,OAAO,CAAC,EAAE,EAAE;QACvC,OAAO,EACL,OAAO,YAAY,CAAC,KAAK,KAAK,QAAQ,IAAI,YAAY,CAAC,KAAK,CAAC,IAAI,EAAE;YACjE,CAAC,CAAC,YAAY,CAAC,KAAK;YACpB,CAAC,CAAC,0CAA0C;KACjD,CAAC,CAAC;AACL,CAAC;AAED,SAAgB,6BAA6B,CAC3C,OAAwB,EACxB,MAAqB,EACrB,SAAiC,EAAE;IAEnC,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;QACpB,OAAO,IAAA,gCAAqB,EAAC,OAAO,CAAC,EAAE,EAAE;YACvC,OAAO,EAAE,4BAA4B,MAAM,CAAC,SAAS,IAAI,SAAS,IAAI;SACvE,CAAC,CAAC;IACL,CAAC;IACD,IAAI,MAAM,CAAC,QAAQ,KAAK,CAAC,IAAI,MAAM,CAAC,MAAM,KAAK,IAAI,EAAE,CAAC;QACpD,OAAO,qBAAqB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAChD,CAAC;IACD,OAAO,IAAA,gCAAqB,EAAC,OAAO,CAAC,EAAE,EAAE;QACvC,OAAO,EAAE,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,IAAI,6BAA6B,MAAM,CAAC,QAAQ,IAAI,EAAE,EAAE;KAChG,CAAC,CAAC;AACL,CAAC"}
|