@odla-ai/harness 0.9.1 → 0.9.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.
- package/dist/{chunk-HDIR4MM5.js → chunk-5LRYJKUI.js} +3 -3
- package/dist/chunk-FAN2R3GW.js +166 -0
- package/dist/chunk-FAN2R3GW.js.map +1 -0
- package/dist/{chunk-CIKYMC67.js → chunk-OZBJNTML.js} +4 -4
- package/dist/{chunk-4EPJJMFG.js → chunk-Q4NL5XO3.js} +142 -214
- package/dist/chunk-Q4NL5XO3.js.map +1 -0
- package/dist/{chunk-I43KTCJ2.js → chunk-U324RQ4N.js} +1 -1
- package/dist/{chunk-I43KTCJ2.js.map → chunk-U324RQ4N.js.map} +1 -1
- package/dist/{chunk-VGNIDRKM.js → chunk-VDY5V7ZG.js} +2 -2
- package/dist/cli.cjs.map +1 -1
- package/dist/cli.js +4 -4
- package/dist/code-runtime-cli.cjs +243 -160
- package/dist/code-runtime-cli.cjs.map +1 -1
- package/dist/code-runtime-cli.js +6 -5
- package/dist/code-runtime-cli.js.map +1 -1
- package/dist/index.cjs +172 -6
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +24 -3
- package/dist/index.d.ts +24 -3
- package/dist/index.js +11 -3
- package/dist/index.js.map +1 -1
- package/dist/node.cjs +246 -159
- package/dist/node.cjs.map +1 -1
- package/dist/node.d.cts +39 -6
- package/dist/node.d.ts +39 -6
- package/dist/node.js +10 -5
- package/dist/node.js.map +1 -1
- package/dist/testing.cjs.map +1 -1
- package/dist/testing.d.cts +1 -1
- package/dist/testing.d.ts +1 -1
- package/dist/testing.js +1 -1
- package/dist/{types-BazqxWK8.d.cts → types-_8y8vBDI.d.cts} +5 -1
- package/dist/{types-BazqxWK8.d.ts → types-_8y8vBDI.d.ts} +5 -1
- package/package.json +1 -1
- package/dist/chunk-4EPJJMFG.js.map +0 -1
- /package/dist/{chunk-HDIR4MM5.js.map → chunk-5LRYJKUI.js.map} +0 -0
- /package/dist/{chunk-CIKYMC67.js.map → chunk-OZBJNTML.js.map} +0 -0
- /package/dist/{chunk-VGNIDRKM.js.map → chunk-VDY5V7ZG.js.map} +0 -0
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import {
|
|
2
2
|
encodeAgentInput,
|
|
3
3
|
parseAgentOutput
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-VDY5V7ZG.js";
|
|
5
5
|
import {
|
|
6
6
|
HARNESS_PROTOCOL_VERSION
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-U324RQ4N.js";
|
|
8
8
|
|
|
9
9
|
// src/container.ts
|
|
10
10
|
import { execFile, spawn } from "child_process";
|
|
@@ -548,4 +548,4 @@ export {
|
|
|
548
548
|
stageWorkspacePair,
|
|
549
549
|
safeWorkspaceLabel
|
|
550
550
|
};
|
|
551
|
-
//# sourceMappingURL=chunk-
|
|
551
|
+
//# sourceMappingURL=chunk-5LRYJKUI.js.map
|
|
@@ -0,0 +1,166 @@
|
|
|
1
|
+
// src/code-tool-presentation.ts
|
|
2
|
+
var text = (value, maximum) => {
|
|
3
|
+
if (typeof value !== "string") return void 0;
|
|
4
|
+
const bounded = value.replace(/[\u0000-\u0008\u000b\u000c\u000e-\u001f\u007f]/g, " ").trim();
|
|
5
|
+
return bounded ? bounded.slice(0, maximum) : void 0;
|
|
6
|
+
};
|
|
7
|
+
var integer = (value) => Number.isSafeInteger(value) && Number(value) >= 0 ? Number(value) : void 0;
|
|
8
|
+
var record = (value) => value && typeof value === "object" && !Array.isArray(value) ? value : void 0;
|
|
9
|
+
var excerpt = (value, tail = false) => {
|
|
10
|
+
if (typeof value !== "string") return void 0;
|
|
11
|
+
const safe = value.replace(/[\u0000-\u0008\u000b\u000c\u000e-\u001f\u007f]/g, " ");
|
|
12
|
+
const source = (tail ? safe.slice(-1e4) : safe.slice(0, 1e4)).trim();
|
|
13
|
+
if (!source) return void 0;
|
|
14
|
+
const lines = source.split("\n").filter((line) => line.trim()).map((line) => line.slice(0, 240));
|
|
15
|
+
const selected = tail ? lines.slice(-10) : lines.slice(0, 10);
|
|
16
|
+
return text(selected.join("\n"), 2400);
|
|
17
|
+
};
|
|
18
|
+
var paths = (value) => {
|
|
19
|
+
if (!Array.isArray(value)) return void 0;
|
|
20
|
+
const items = value.flatMap((item) => {
|
|
21
|
+
const path = text(item, 1024);
|
|
22
|
+
return path ? [path] : [];
|
|
23
|
+
}).slice(0, 12);
|
|
24
|
+
return items.length ? items : void 0;
|
|
25
|
+
};
|
|
26
|
+
function patchStats(value) {
|
|
27
|
+
if (typeof value !== "string") return {};
|
|
28
|
+
let additions = 0;
|
|
29
|
+
let deletions = 0;
|
|
30
|
+
for (const line of value.slice(0, 262144).split("\n")) {
|
|
31
|
+
if (line.startsWith("+++") || line.startsWith("---")) continue;
|
|
32
|
+
if (line.startsWith("+")) additions += 1;
|
|
33
|
+
else if (line.startsWith("-")) deletions += 1;
|
|
34
|
+
}
|
|
35
|
+
return { ...additions ? { additions } : {}, ...deletions ? { deletions } : {} };
|
|
36
|
+
}
|
|
37
|
+
function searchResults(value) {
|
|
38
|
+
if (typeof value !== "string") return void 0;
|
|
39
|
+
const results = value.split("\n").flatMap((line) => {
|
|
40
|
+
const match = /^([^:\n]{1,1024}):(\d+):\s?(.*)$/.exec(line);
|
|
41
|
+
if (!match) return [];
|
|
42
|
+
const lineNumber = Number(match[2]);
|
|
43
|
+
const itemText = text(match[3], 240);
|
|
44
|
+
if (!Number.isSafeInteger(lineNumber) || lineNumber < 1) return [];
|
|
45
|
+
return [{ path: match[1], line: lineNumber, ...itemText ? { text: itemText } : {} }];
|
|
46
|
+
}).slice(0, 5);
|
|
47
|
+
return results.length ? results : void 0;
|
|
48
|
+
}
|
|
49
|
+
function codeToolRequestPresentation(request) {
|
|
50
|
+
const input = request.input;
|
|
51
|
+
if (request.tool === "sandbox.read") {
|
|
52
|
+
const path = text(input.path, 1024);
|
|
53
|
+
if (!path) return void 0;
|
|
54
|
+
const startLine = integer(input.startLine);
|
|
55
|
+
const endLine = integer(input.endLine);
|
|
56
|
+
return { kind: "read", path, ...startLine ? { startLine } : {}, ...endLine ? { endLine } : {} };
|
|
57
|
+
}
|
|
58
|
+
if (request.tool === "sandbox.list") {
|
|
59
|
+
const scope = text(input.prefix, 1024);
|
|
60
|
+
return { kind: "list", ...scope ? { scope } : {} };
|
|
61
|
+
}
|
|
62
|
+
if (request.tool === "sandbox.search" || request.tool === "sandbox.overview" || request.tool === "sandbox.where_is" || request.tool === "sandbox.who_imports" || request.tool === "sandbox.who_touches") {
|
|
63
|
+
const query = text(input.query, 512);
|
|
64
|
+
const scope = request.tool === "sandbox.search" ? text(input.prefix, 1024) : void 0;
|
|
65
|
+
if (request.tool === "sandbox.search" && !query) return void 0;
|
|
66
|
+
return { kind: "query", ...query ? { query } : {}, ...scope ? { scope } : {} };
|
|
67
|
+
}
|
|
68
|
+
if (request.tool === "sandbox.apply_patch") {
|
|
69
|
+
return { kind: "patch", ...patchStats(input.patch) };
|
|
70
|
+
}
|
|
71
|
+
const recipeId = text(input.recipeId, 120);
|
|
72
|
+
return recipeId ? { kind: "recipe", recipeId } : void 0;
|
|
73
|
+
}
|
|
74
|
+
function codeToolResultPresentation(request, response) {
|
|
75
|
+
const started = codeToolRequestPresentation(request);
|
|
76
|
+
if (!started || !response.ok) return started;
|
|
77
|
+
const details = record(response.details);
|
|
78
|
+
if (started.kind === "read") {
|
|
79
|
+
return {
|
|
80
|
+
...started,
|
|
81
|
+
...integer(details?.startLine) ? { startLine: integer(details?.startLine) } : {},
|
|
82
|
+
...integer(details?.endLine) ? { endLine: integer(details?.endLine) } : {},
|
|
83
|
+
...excerpt(response.content) ? { excerpt: excerpt(response.content) } : {}
|
|
84
|
+
};
|
|
85
|
+
}
|
|
86
|
+
if (started.kind === "list") {
|
|
87
|
+
const listed = response.content.split("\n").filter((line) => line && !line.startsWith("\u2026") && !line.startsWith("Workspace ")).map((line) => text(line, 1024)).filter((line) => Boolean(line)).slice(0, 8);
|
|
88
|
+
return {
|
|
89
|
+
...started,
|
|
90
|
+
...integer(details?.count) !== void 0 ? { count: integer(details?.count) } : {},
|
|
91
|
+
...listed.length ? { paths: listed } : {}
|
|
92
|
+
};
|
|
93
|
+
}
|
|
94
|
+
if (started.kind === "query") {
|
|
95
|
+
const results = request.tool === "sandbox.search" ? searchResults(response.content) : void 0;
|
|
96
|
+
const resultExcerpt = request.tool === "sandbox.search" ? void 0 : excerpt(response.content);
|
|
97
|
+
return {
|
|
98
|
+
...started,
|
|
99
|
+
...integer(details?.count) !== void 0 ? { count: integer(details?.count) } : {},
|
|
100
|
+
...results ? { results } : {},
|
|
101
|
+
...resultExcerpt ? { excerpt: resultExcerpt } : {}
|
|
102
|
+
};
|
|
103
|
+
}
|
|
104
|
+
if (started.kind === "patch") {
|
|
105
|
+
return { ...started, ...paths(details?.paths) ? { paths: paths(details?.paths) } : {} };
|
|
106
|
+
}
|
|
107
|
+
const output = response.content.replace(/^Recipe [^\n]*\.?\s*/u, "");
|
|
108
|
+
return {
|
|
109
|
+
...started,
|
|
110
|
+
...integer(details?.exitCode) !== void 0 ? { exitCode: integer(details?.exitCode) } : {},
|
|
111
|
+
...typeof details?.timedOut === "boolean" ? { timedOut: details.timedOut } : {},
|
|
112
|
+
...typeof details?.outputLimitExceeded === "boolean" ? { outputLimitExceeded: details.outputLimitExceeded } : {},
|
|
113
|
+
...excerpt(output, true) ? { excerpt: excerpt(output, true) } : {}
|
|
114
|
+
};
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
// src/code-runtime-observer.ts
|
|
118
|
+
var MAX_FAILURE_REASON = 240;
|
|
119
|
+
function toolFailureReason(response) {
|
|
120
|
+
if (response.ok) return void 0;
|
|
121
|
+
const supplied = response.details?.failureReason;
|
|
122
|
+
const reason = typeof supplied === "string" && supplied || DEFAULT_FAILURE_REASON[response.content] || response.content || "tool request failed; inspect the tool input and workspace state";
|
|
123
|
+
return reason.slice(0, MAX_FAILURE_REASON);
|
|
124
|
+
}
|
|
125
|
+
var DEFAULT_FAILURE_REASON = {
|
|
126
|
+
"tool denied by CaMeL policy": "tool denied by CaMeL policy",
|
|
127
|
+
"review sessions are read-only": "review session is read-only; workspace changes are not permitted"
|
|
128
|
+
};
|
|
129
|
+
function observedBroker(input) {
|
|
130
|
+
const now = input.now ?? Date.now;
|
|
131
|
+
return {
|
|
132
|
+
execute: async (context, request) => {
|
|
133
|
+
const startedAt = now();
|
|
134
|
+
const operationId = input.operationIdFor(request.requestId);
|
|
135
|
+
const startedPresentation = codeToolRequestPresentation(request);
|
|
136
|
+
await input.emit({
|
|
137
|
+
type: "tool",
|
|
138
|
+
phase: "started",
|
|
139
|
+
tool: request.tool,
|
|
140
|
+
operationId,
|
|
141
|
+
...startedPresentation ? { presentation: startedPresentation } : {}
|
|
142
|
+
});
|
|
143
|
+
const response = await input.broker.execute(context, request);
|
|
144
|
+
const completedPresentation = codeToolResultPresentation(request, response);
|
|
145
|
+
const failureReason = toolFailureReason(response);
|
|
146
|
+
await input.emit({
|
|
147
|
+
type: "tool",
|
|
148
|
+
phase: "completed",
|
|
149
|
+
tool: request.tool,
|
|
150
|
+
ok: response.ok,
|
|
151
|
+
durationMs: now() - startedAt,
|
|
152
|
+
operationId,
|
|
153
|
+
...failureReason ? { failureReason } : {},
|
|
154
|
+
...completedPresentation ? { presentation: completedPresentation } : {}
|
|
155
|
+
});
|
|
156
|
+
return response;
|
|
157
|
+
}
|
|
158
|
+
};
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
export {
|
|
162
|
+
MAX_FAILURE_REASON,
|
|
163
|
+
toolFailureReason,
|
|
164
|
+
observedBroker
|
|
165
|
+
};
|
|
166
|
+
//# sourceMappingURL=chunk-FAN2R3GW.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/code-tool-presentation.ts","../src/code-runtime-observer.ts"],"sourcesContent":["import type {\n CodeToolLocationPreview, CodeToolPresentation, HarnessToolRequest, HarnessToolResponse,\n} from \"./types\";\n\nconst text = (value: unknown, maximum: number): string | undefined => {\n if (typeof value !== \"string\") return undefined;\n const bounded = value.replace(/[\\u0000-\\u0008\\u000b\\u000c\\u000e-\\u001f\\u007f]/g, \" \").trim();\n return bounded ? bounded.slice(0, maximum) : undefined;\n};\nconst integer = (value: unknown): number | undefined =>\n Number.isSafeInteger(value) && Number(value) >= 0 ? Number(value) : undefined;\nconst record = (value: unknown): Record<string, unknown> | undefined =>\n value && typeof value === \"object\" && !Array.isArray(value)\n ? value as Record<string, unknown> : undefined;\nconst excerpt = (value: unknown, tail = false): string | undefined => {\n if (typeof value !== \"string\") return undefined;\n const safe = value.replace(/[\\u0000-\\u0008\\u000b\\u000c\\u000e-\\u001f\\u007f]/g, \" \");\n const source = (tail ? safe.slice(-10_000) : safe.slice(0, 10_000)).trim();\n if (!source) return undefined;\n const lines = source.split(\"\\n\").filter((line) => line.trim()).map((line) => line.slice(0, 240));\n const selected = tail ? lines.slice(-10) : lines.slice(0, 10);\n return text(selected.join(\"\\n\"), 2_400);\n};\nconst paths = (value: unknown): string[] | undefined => {\n if (!Array.isArray(value)) return undefined;\n const items = value.flatMap((item) => {\n const path = text(item, 1_024);\n return path ? [path] : [];\n }).slice(0, 12);\n return items.length ? items : undefined;\n};\n\nfunction patchStats(value: unknown): { additions?: number; deletions?: number } {\n if (typeof value !== \"string\") return {};\n let additions = 0;\n let deletions = 0;\n for (const line of value.slice(0, 262_144).split(\"\\n\")) {\n if (line.startsWith(\"+++\") || line.startsWith(\"---\")) continue;\n if (line.startsWith(\"+\")) additions += 1;\n else if (line.startsWith(\"-\")) deletions += 1;\n }\n return { ...(additions ? { additions } : {}), ...(deletions ? { deletions } : {}) };\n}\n\nfunction searchResults(value: unknown): CodeToolLocationPreview[] | undefined {\n if (typeof value !== \"string\") return undefined;\n const results = value.split(\"\\n\").flatMap((line) => {\n const match = /^([^:\\n]{1,1024}):(\\d+):\\s?(.*)$/.exec(line);\n if (!match) return [];\n const lineNumber = Number(match[2]);\n const itemText = text(match[3], 240);\n if (!Number.isSafeInteger(lineNumber) || lineNumber < 1) return [];\n return [{ path: match[1]!, line: lineNumber, ...(itemText ? { text: itemText } : {}) }];\n }).slice(0, 5);\n return results.length ? results : undefined;\n}\n\n/** Produce the bounded presentation available as soon as a broker call starts. */\nexport function codeToolRequestPresentation(request: HarnessToolRequest): CodeToolPresentation | undefined {\n const input = request.input;\n if (request.tool === \"sandbox.read\") {\n const path = text(input.path, 1_024);\n if (!path) return undefined;\n const startLine = integer(input.startLine);\n const endLine = integer(input.endLine);\n return { kind: \"read\", path, ...(startLine ? { startLine } : {}), ...(endLine ? { endLine } : {}) };\n }\n if (request.tool === \"sandbox.list\") {\n const scope = text(input.prefix, 1_024);\n return { kind: \"list\", ...(scope ? { scope } : {}) };\n }\n if (request.tool === \"sandbox.search\" || request.tool === \"sandbox.overview\"\n || request.tool === \"sandbox.where_is\" || request.tool === \"sandbox.who_imports\"\n || request.tool === \"sandbox.who_touches\") {\n const query = text(input.query, 512);\n const scope = request.tool === \"sandbox.search\" ? text(input.prefix, 1_024) : undefined;\n if (request.tool === \"sandbox.search\" && !query) return undefined;\n return { kind: \"query\", ...(query ? { query } : {}), ...(scope ? { scope } : {}) };\n }\n if (request.tool === \"sandbox.apply_patch\") {\n return { kind: \"patch\", ...patchStats(input.patch) };\n }\n const recipeId = text(input.recipeId, 120);\n return recipeId ? { kind: \"recipe\", recipeId } : undefined;\n}\n\n/** Enrich a started presentation with only the broker's bounded result shape. */\nexport function codeToolResultPresentation(\n request: HarnessToolRequest,\n response: HarnessToolResponse,\n): CodeToolPresentation | undefined {\n const started = codeToolRequestPresentation(request);\n if (!started || !response.ok) return started;\n const details = record(response.details);\n if (started.kind === \"read\") {\n return {\n ...started,\n ...(integer(details?.startLine) ? { startLine: integer(details?.startLine) } : {}),\n ...(integer(details?.endLine) ? { endLine: integer(details?.endLine) } : {}),\n ...(excerpt(response.content) ? { excerpt: excerpt(response.content) } : {}),\n };\n }\n if (started.kind === \"list\") {\n const listed = response.content.split(\"\\n\")\n .filter((line) => line && !line.startsWith(\"…\") && !line.startsWith(\"Workspace \"))\n .map((line) => text(line, 1_024)).filter((line): line is string => Boolean(line)).slice(0, 8);\n return {\n ...started,\n ...(integer(details?.count) !== undefined ? { count: integer(details?.count) } : {}),\n ...(listed.length ? { paths: listed } : {}),\n };\n }\n if (started.kind === \"query\") {\n const results = request.tool === \"sandbox.search\" ? searchResults(response.content) : undefined;\n const resultExcerpt = request.tool === \"sandbox.search\" ? undefined : excerpt(response.content);\n return {\n ...started,\n ...(integer(details?.count) !== undefined ? { count: integer(details?.count) } : {}),\n ...(results ? { results } : {}),\n ...(resultExcerpt ? { excerpt: resultExcerpt } : {}),\n };\n }\n if (started.kind === \"patch\") {\n return { ...started, ...(paths(details?.paths) ? { paths: paths(details?.paths) } : {}) };\n }\n const output = response.content.replace(/^Recipe [^\\n]*\\.?\\s*/u, \"\");\n return {\n ...started,\n ...(integer(details?.exitCode) !== undefined ? { exitCode: integer(details?.exitCode) } : {}),\n ...(typeof details?.timedOut === \"boolean\" ? { timedOut: details.timedOut } : {}),\n ...(typeof details?.outputLimitExceeded === \"boolean\"\n ? { outputLimitExceeded: details.outputLimitExceeded } : {}),\n ...(excerpt(output, true) ? { excerpt: excerpt(output, true) } : {}),\n };\n}\n","// Reporting a brokered tool effect onto the session event stream.\n//\n// Split out of code-runtime-engine.ts, which was one line under the 250 LOC cap\n// and so could not absorb the failure reason below (PM bug c775485c: the same\n// two lines left PR #684 red and unlandable). The seam is real rather than\n// convenient — this is the only code in the engine that translates a broker\n// call into what a watcher sees, and it is the only code that needs to know how\n// a failure is described.\n\nimport { codeToolRequestPresentation, codeToolResultPresentation } from \"./code-tool-presentation\";\nimport type { CodeSessionEventData, HarnessToolBroker, HarnessToolResponse } from \"./types\";\n\n/** Longest failure reason forwarded onto a session event. A reason is a short\n * diagnostic for a human or an agent reading the stream, never a transcript. */\nexport const MAX_FAILURE_REASON = 240;\n\n/** The bounded reason a failed tool response carries, if it carries one.\n *\n * Only `response.ok` used to reach the stream, so a watcher saw that a call\n * failed and could never see why — which is what made an 84% apply_patch\n * failure rate undiagnosable (PM bugs 515655ec and 38d92f1d). */\nexport function toolFailureReason(response: HarnessToolResponse): string | undefined {\n if (response.ok) return undefined;\n // Guaranteed here rather than only where the response is built, because this\n // is the boundary that emits the event: a failure reaching the stream without\n // a reason is the defect, whoever constructed the response.\n const supplied = response.details?.failureReason;\n const reason = (typeof supplied === \"string\" && supplied)\n || DEFAULT_FAILURE_REASON[response.content]\n || response.content\n || \"tool request failed; inspect the tool input and workspace state\";\n return reason.slice(0, MAX_FAILURE_REASON);\n}\n\n/** Reasons for the two refusals the broker states as bare content. */\nconst DEFAULT_FAILURE_REASON: Record<string, string> = {\n \"tool denied by CaMeL policy\": \"tool denied by CaMeL policy\",\n \"review sessions are read-only\": \"review session is read-only; workspace changes are not permitted\",\n};\n\n/** Wrap `broker` so every effect reports its start and its finish.\n *\n * `emit` is the engine's own event sink; it already swallows its own errors, so\n * reporting can never fail the effect it is reporting on.\n */\nexport function observedBroker(input: {\n broker: HarnessToolBroker;\n operationIdFor: (requestId: string) => string;\n emit: (event: CodeSessionEventData) => Promise<void>;\n now?: () => number;\n}): HarnessToolBroker {\n const now = input.now ?? Date.now;\n return {\n execute: async (context, request) => {\n const startedAt = now();\n // Stable and opaque: an older container may choose any bounded request\n // id, while the owner stream admits only a closed printable id shape.\n const operationId = input.operationIdFor(request.requestId);\n const startedPresentation = codeToolRequestPresentation(request);\n await input.emit({\n type: \"tool\", phase: \"started\", tool: request.tool, operationId,\n ...(startedPresentation ? { presentation: startedPresentation } : {}),\n });\n const response = await input.broker.execute(context, request);\n const completedPresentation = codeToolResultPresentation(request, response);\n const failureReason = toolFailureReason(response);\n await input.emit({\n type: \"tool\", phase: \"completed\", tool: request.tool,\n ok: response.ok, durationMs: now() - startedAt, operationId,\n ...(failureReason ? { failureReason } : {}),\n ...(completedPresentation ? { presentation: completedPresentation } : {}),\n });\n return response;\n },\n };\n}\n"],"mappings":"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","names":[]}
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import {
|
|
2
2
|
runContainerAttempt,
|
|
3
3
|
stageWorkspace
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-5LRYJKUI.js";
|
|
5
5
|
import {
|
|
6
6
|
makeHarnessEvent
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-VDY5V7ZG.js";
|
|
8
8
|
import {
|
|
9
9
|
HARNESS_PROTOCOL_VERSION
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-U324RQ4N.js";
|
|
11
11
|
|
|
12
12
|
// src/runner.ts
|
|
13
13
|
import { setTimeout as delay } from "timers/promises";
|
|
@@ -165,4 +165,4 @@ export {
|
|
|
165
165
|
runLeasedAttempt,
|
|
166
166
|
runHarnessRunner
|
|
167
167
|
};
|
|
168
|
-
//# sourceMappingURL=chunk-
|
|
168
|
+
//# sourceMappingURL=chunk-OZBJNTML.js.map
|