@loucompanion/forge-bridge 0.1.3-dev.f66395c3ac21 → 0.1.4-dev.1ff37038366e
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/README.md +165 -1
- package/dist/bridge/bridge-chat.types.d.ts +111 -0
- package/dist/bridge/bridge-chat.types.js +401 -0
- package/dist/bridge/bridge.base.d.ts +9 -1
- package/dist/bridge/bridge.service.d.ts +129 -3
- package/dist/bridge/bridge.service.js +2427 -70
- package/dist/bridge/bridge.types.d.ts +218 -2
- package/dist/bridge/dispatch-result-outbox.d.ts +25 -0
- package/dist/bridge/dispatch-result-outbox.js +62 -0
- package/dist/bridge/dispatch-result-worker.d.ts +2 -0
- package/dist/bridge/dispatch-result-worker.js +122 -0
- package/dist/bridge/internals.d.ts +2 -0
- package/dist/bridge/internals.js +1 -0
- package/dist/bridge/readiness-result-outbox.d.ts +21 -0
- package/dist/bridge/readiness-result-outbox.js +54 -0
- package/dist/bridge/readiness-result-worker.d.ts +2 -0
- package/dist/bridge/readiness-result-worker.js +121 -0
- package/dist/bridge/runner-host-capabilities.d.ts +15 -0
- package/dist/bridge/runner-host-capabilities.js +93 -0
- package/dist/cleanup/cleanup.service.d.ts +14 -2
- package/dist/cleanup/cleanup.service.js +496 -3
- package/dist/cleanup/cleanup.types.d.ts +10 -0
- package/dist/cleanup/index.d.ts +1 -1
- package/dist/cleanup/index.js +1 -1
- package/dist/cleanup/internals.d.ts +2 -2
- package/dist/cleanup/internals.js +1 -1
- package/dist/cli/cli.help.d.ts +2 -0
- package/dist/cli/cli.help.js +217 -0
- package/dist/cli/cli.service.d.ts +55 -7
- package/dist/cli/cli.service.js +429 -219
- package/dist/cli/local-config.d.ts +7 -0
- package/dist/cli/local-config.js +51 -3
- package/dist/runtime/aspnet-runtime-prebuild.d.ts +36 -0
- package/dist/runtime/aspnet-runtime-prebuild.js +341 -0
- package/dist/runtime/attempt-database-broker.d.ts +89 -0
- package/dist/runtime/attempt-database-broker.js +390 -0
- package/dist/runtime/attempt-node-runtime-launcher.d.ts +18 -0
- package/dist/runtime/attempt-node-runtime-launcher.js +140 -0
- package/dist/runtime/attempt-path-operation.d.ts +21 -0
- package/dist/runtime/attempt-path-operation.js +94 -0
- package/dist/runtime/attempt-private-directory.d.ts +6 -0
- package/dist/runtime/attempt-private-directory.js +54 -0
- package/dist/runtime/attempt-process-supervisor-registry.d.ts +20 -0
- package/dist/runtime/attempt-process-supervisor-registry.js +64 -0
- package/dist/runtime/attempt-process-supervisor.d.ts +97 -0
- package/dist/runtime/attempt-process-supervisor.js +397 -0
- package/dist/runtime/canonical-source-file.d.ts +3 -0
- package/dist/runtime/canonical-source-file.js +54 -0
- package/dist/runtime/docker-engine-probe.d.ts +90 -0
- package/dist/runtime/docker-engine-probe.js +333 -0
- package/dist/runtime/generated-output-reset.d.ts +20 -0
- package/dist/runtime/generated-output-reset.js +157 -0
- package/dist/runtime/host-database-capability-boundary.d.ts +16 -0
- package/dist/runtime/host-database-capability-boundary.js +62 -0
- package/dist/runtime/host-diagnostics.d.ts +11 -0
- package/dist/runtime/host-diagnostics.js +191 -0
- package/dist/runtime/host-execution-root.d.ts +4 -0
- package/dist/runtime/host-execution-root.js +39 -0
- package/dist/runtime/host-listener-inspector.d.ts +51 -0
- package/dist/runtime/host-listener-inspector.js +385 -0
- package/dist/runtime/host-port-broker.d.ts +76 -0
- package/dist/runtime/host-port-broker.js +333 -0
- package/dist/runtime/host-runtime-contract.d.ts +58 -0
- package/dist/runtime/host-runtime-contract.js +813 -0
- package/dist/runtime/host-runtime-lease.d.ts +217 -0
- package/dist/runtime/host-runtime-lease.js +2487 -0
- package/dist/runtime/host-runtime-promotion.d.ts +32 -0
- package/dist/runtime/host-runtime-promotion.js +206 -0
- package/dist/runtime/memory-capacity.d.ts +70 -0
- package/dist/runtime/memory-capacity.js +123 -0
- package/dist/runtime/native-test-postgres-fallback.d.ts +25 -0
- package/dist/runtime/native-test-postgres-fallback.js +91 -0
- package/dist/runtime/node-host-runtime-adapter.d.ts +54 -0
- package/dist/runtime/node-host-runtime-adapter.js +285 -0
- package/dist/runtime/pinned-directory-process.d.ts +9 -0
- package/dist/runtime/pinned-directory-process.js +61 -0
- package/dist/runtime/pinned-source-directory.d.ts +17 -0
- package/dist/runtime/pinned-source-directory.js +94 -0
- package/dist/runtime/playwright-host-runtime-adapter.d.ts +21 -0
- package/dist/runtime/playwright-host-runtime-adapter.js +268 -0
- package/dist/runtime/prepared-runtime-identity.d.ts +6 -0
- package/dist/runtime/prepared-runtime-identity.js +218 -0
- package/dist/runtime/prepared-runtime-readiness.d.ts +30 -0
- package/dist/runtime/prepared-runtime-readiness.js +285 -0
- package/dist/runtime/runtime-isolation-lease.d.ts +67 -0
- package/dist/runtime/runtime-isolation-lease.js +161 -0
- package/dist/runtime/workspace-resource-estimator.d.ts +17 -0
- package/dist/runtime/workspace-resource-estimator.js +174 -0
- package/dist/sandbox/command-runner.d.ts +4 -0
- package/dist/sandbox/command-runner.js +47 -0
- package/dist/sandbox/contract.d.ts +5 -0
- package/dist/sandbox/contract.js +276 -0
- package/dist/sandbox/event-budget.d.ts +11 -0
- package/dist/sandbox/event-budget.js +27 -0
- package/dist/sandbox/image-policy.d.ts +35 -0
- package/dist/sandbox/image-policy.js +247 -0
- package/dist/sandbox/index.d.ts +5 -0
- package/dist/sandbox/index.js +5 -0
- package/dist/sandbox/lease-watchdog.d.ts +18 -0
- package/dist/sandbox/lease-watchdog.js +67 -0
- package/dist/sandbox/preflight.d.ts +84 -0
- package/dist/sandbox/preflight.js +521 -0
- package/dist/sandbox/process.d.ts +20 -0
- package/dist/sandbox/process.js +209 -0
- package/dist/sandbox/provider-auth/codex.d.ts +26 -0
- package/dist/sandbox/provider-auth/codex.js +212 -0
- package/dist/sandbox/repository-lock.d.ts +6 -0
- package/dist/sandbox/repository-lock.js +128 -0
- package/dist/sandbox/runtime.d.ts +302 -0
- package/dist/sandbox/runtime.js +2367 -0
- package/dist/sandbox/sandbox.types.d.ts +93 -0
- package/dist/sandbox/sandbox.types.js +1 -0
- package/dist/sandbox/smoke.d.ts +76 -0
- package/dist/sandbox/smoke.js +380 -0
- package/dist/sandbox/worker-supervisor.d.ts +13 -0
- package/dist/sandbox/worker-supervisor.js +36 -0
- package/dist/sandbox/worker.d.ts +1 -0
- package/dist/sandbox/worker.js +225 -0
- package/dist/sandbox/workspace.service.d.ts +13 -0
- package/dist/sandbox/workspace.service.js +74 -0
- package/dist/session/managed-attempt-tools.d.ts +28 -0
- package/dist/session/managed-attempt-tools.js +1015 -0
- package/dist/session/managed-build-coordinator.d.ts +5 -0
- package/dist/session/managed-build-coordinator.js +105 -0
- package/dist/session/managed-build-receipt.d.ts +21 -0
- package/dist/session/managed-build-receipt.js +337 -0
- package/dist/session/managed-verification-timeouts.d.ts +8 -0
- package/dist/session/managed-verification-timeouts.js +17 -0
- package/dist/session/phase-completion.artifacts.d.ts +27 -0
- package/dist/session/phase-completion.artifacts.js +829 -0
- package/dist/session/phase-completion.d.ts +53 -42
- package/dist/session/phase-completion.helpers.d.ts +117 -0
- package/dist/session/phase-completion.helpers.js +707 -0
- package/dist/session/phase-completion.js +125 -3007
- package/dist/session/phase-completion.prompts.d.ts +14 -0
- package/dist/session/phase-completion.prompts.js +233 -0
- package/dist/session/phase-completion.runtime.d.ts +49 -0
- package/dist/session/phase-completion.runtime.js +840 -0
- package/dist/session/phase-completion.schemas.d.ts +3 -0
- package/dist/session/phase-completion.schemas.js +859 -0
- package/dist/session/phase-completion.validation.d.ts +38 -0
- package/dist/session/phase-completion.validation.js +918 -0
- package/dist/session/pre-publication-validation.d.ts +75 -0
- package/dist/session/pre-publication-validation.js +661 -0
- package/dist/session/provider-cli/bridge-cli.conformance-fixtures.d.ts +72 -0
- package/dist/session/provider-cli/bridge-cli.conformance-fixtures.js +462 -0
- package/dist/session/provider-cli/ci-repair-readiness.d.ts +16 -0
- package/dist/session/provider-cli/ci-repair-readiness.js +110 -0
- package/dist/session/provider-cli/provider-cli.artifacts.d.ts +95 -0
- package/dist/session/provider-cli/provider-cli.artifacts.js +812 -0
- package/dist/session/provider-cli/provider-cli.base.d.ts +1 -0
- package/dist/session/provider-cli/provider-cli.deterministic-payloads.d.ts +12 -0
- package/dist/session/provider-cli/provider-cli.deterministic-payloads.js +279 -0
- package/dist/session/provider-cli/provider-cli.deterministic.d.ts +14 -0
- package/dist/session/provider-cli/provider-cli.deterministic.js +407 -0
- package/dist/session/provider-cli/provider-cli.process.d.ts +99 -0
- package/dist/session/provider-cli/provider-cli.process.js +874 -0
- package/dist/session/provider-cli/provider-cli.prompts.d.ts +52 -0
- package/dist/session/provider-cli/provider-cli.prompts.js +715 -0
- package/dist/session/provider-cli/provider-cli.qa-sidecars.d.ts +11 -0
- package/dist/session/provider-cli/provider-cli.qa-sidecars.js +66 -0
- package/dist/session/provider-cli/provider-cli.repair-epoch.d.ts +6 -0
- package/dist/session/provider-cli/provider-cli.repair-epoch.js +11 -0
- package/dist/session/provider-cli/provider-cli.runtime.d.ts +16 -0
- package/dist/session/provider-cli/provider-cli.runtime.js +81 -0
- package/dist/session/provider-cli/provider-cli.service.d.ts +47 -53
- package/dist/session/provider-cli/provider-cli.service.js +1257 -2497
- package/dist/session/provider-cli/provider-cli.types.d.ts +8 -0
- package/dist/session/provider-cli/provider-output-state.d.ts +32 -0
- package/dist/session/provider-cli/provider-output-state.js +817 -0
- package/dist/session/provider-cli/provider-usage.d.ts +7 -0
- package/dist/session/provider-cli/provider-usage.js +28 -5
- package/dist/session/session-redaction.d.ts +3 -0
- package/dist/session/session-redaction.js +448 -0
- package/dist/session/session.base.d.ts +6 -1
- package/dist/session/session.service.d.ts +8 -2
- package/dist/session/session.service.js +586 -59
- package/dist/session/session.types.d.ts +324 -3
- package/dist/session/session.types.js +939 -10
- package/dist/session/unreferenced-exports.d.ts +12 -0
- package/dist/session/unreferenced-exports.js +59 -0
- package/dist/shared/format/format-bytes.d.ts +1 -0
- package/dist/shared/format/format-bytes.js +9 -0
- package/dist/shared/git/git.js +2 -1
- package/dist/shared/path/path.d.ts +1 -0
- package/dist/shared/path/path.js +21 -1
- package/dist/shared/process/dotnet-toolchain.d.ts +17 -0
- package/dist/shared/process/dotnet-toolchain.js +307 -0
- package/dist/shared/process/host-process-recovery.d.ts +12 -0
- package/dist/shared/process/host-process-recovery.js +78 -0
- package/dist/shared/process/host-process-supervisor.d.ts +59 -0
- package/dist/shared/process/host-process-supervisor.js +330 -0
- package/dist/shared/process/process.d.ts +3 -0
- package/dist/shared/process/process.js +13 -7
- package/dist/shared/process/windows-launch.d.ts +8 -0
- package/dist/shared/process/windows-launch.js +41 -0
- package/dist/shared/provider-capabilities.d.ts +4 -0
- package/dist/shared/provider-capabilities.js +88 -0
- package/dist/shared/redaction/redaction.d.ts +1 -0
- package/dist/shared/redaction/redaction.js +47 -4
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/dist/worktree/artifact-injector.d.ts +3 -2
- package/dist/worktree/artifact-injector.js +82 -10
- package/dist/worktree/dependency-warmer.d.ts +53 -1
- package/dist/worktree/dependency-warmer.js +619 -11
- package/dist/worktree/index.d.ts +2 -1
- package/dist/worktree/index.js +1 -0
- package/dist/worktree/prior-phase-artifact-hydrator.d.ts +2 -0
- package/dist/worktree/prior-phase-artifact-hydrator.js +136 -0
- package/dist/worktree/story-qa-reference-hydrator.d.ts +4 -0
- package/dist/worktree/story-qa-reference-hydrator.js +253 -0
- package/dist/worktree/worktree-paths.d.ts +4 -0
- package/dist/worktree/worktree-paths.js +30 -0
- package/dist/worktree/worktree.base.d.ts +3 -0
- package/dist/worktree/worktree.service.d.ts +16 -3
- package/dist/worktree/worktree.service.js +334 -54
- package/dist/worktree/worktree.types.d.ts +9 -1
- package/package.json +12 -7
- package/runtime/windows-job-supervisor.ps1 +722 -0
- package/runtime/windows-listener-owner.ps1 +33 -0
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import crypto from "node:crypto";
|
|
2
|
+
import { spawn } from "node:child_process";
|
|
2
3
|
import fs from "node:fs/promises";
|
|
3
4
|
import path from "node:path";
|
|
4
5
|
const DEBUG_OPERATIONAL_SKILLS = new Set(["debug-repro", "debug-root-cause", "debug-fix", "debug-regression"]);
|
|
@@ -36,22 +37,32 @@ const DRAFT_OPERATIONAL_SKILLS = new Set([
|
|
|
36
37
|
"draft-repo-context",
|
|
37
38
|
"draft-graph-context",
|
|
38
39
|
"draft-product-scope",
|
|
39
|
-
"draft-work-order-plan",
|
|
40
40
|
"draft-critic",
|
|
41
41
|
"draft-proposal"
|
|
42
42
|
]);
|
|
43
|
+
const DRAFT_WORK_ITEM_OPERATIONAL_SKILLS = new Set([
|
|
44
|
+
"draft-work-item-plan"
|
|
45
|
+
]);
|
|
46
|
+
const DRAFT_WORK_ORDER_OPERATIONAL_SKILLS = new Set([
|
|
47
|
+
"draft-work-order-plan"
|
|
48
|
+
]);
|
|
43
49
|
const DRAFT_OPERATIONAL_HOOKS = new Set([
|
|
44
50
|
"draft-intent",
|
|
45
51
|
"draft-repo-context",
|
|
46
52
|
"draft-graph-context",
|
|
47
53
|
"draft-product-scope",
|
|
48
|
-
"draft-work-order-plan",
|
|
49
54
|
"draft-critic",
|
|
50
55
|
"draft-proposal"
|
|
51
56
|
]);
|
|
52
|
-
|
|
57
|
+
const DRAFT_WORK_ITEM_OPERATIONAL_HOOKS = new Set([
|
|
58
|
+
"draft-work-item-plan"
|
|
59
|
+
]);
|
|
60
|
+
const DRAFT_WORK_ORDER_OPERATIONAL_HOOKS = new Set([
|
|
61
|
+
"draft-work-order-plan"
|
|
62
|
+
]);
|
|
63
|
+
export async function injectWorktreeArtifacts(worktreePath, artifacts, protectedRelativePaths = new Set()) {
|
|
53
64
|
for (const artifact of artifacts) {
|
|
54
|
-
await writeArtifact(worktreePath, artifact);
|
|
65
|
+
await writeArtifact(worktreePath, artifact, protectedRelativePaths);
|
|
55
66
|
}
|
|
56
67
|
}
|
|
57
68
|
export function filterArtifactsForLane(artifacts, lane, phase) {
|
|
@@ -64,11 +75,11 @@ export function filterArtifactsForLane(artifacts, lane, phase) {
|
|
|
64
75
|
return artifacts.filter((artifact) => shouldInjectArchitectArtifact(artifact, commandSlug));
|
|
65
76
|
}
|
|
66
77
|
if (normalizedLane === "draft") {
|
|
67
|
-
return artifacts.filter((artifact) => shouldInjectDraftArtifact(artifact, commandSlug));
|
|
78
|
+
return artifacts.filter((artifact) => shouldInjectDraftArtifact(artifact, commandSlug, phase));
|
|
68
79
|
}
|
|
69
80
|
return artifacts;
|
|
70
81
|
}
|
|
71
|
-
export async function writeArtifact(worktreePath, artifact) {
|
|
82
|
+
export async function writeArtifact(worktreePath, artifact, protectedRelativePaths = new Set()) {
|
|
72
83
|
const writtenHash = sha256(artifact.body);
|
|
73
84
|
if (writtenHash !== artifact.contentHash.toLowerCase()) {
|
|
74
85
|
throw new Error(`Injected artifact '${artifact.slug}' content_hash mismatch (expected ${artifact.contentHash}, got ${writtenHash}).`);
|
|
@@ -83,6 +94,11 @@ export async function writeArtifact(worktreePath, artifact) {
|
|
|
83
94
|
? path.resolve(scopeDir, slug, "SKILL.md")
|
|
84
95
|
: path.resolve(scopeDir, `${slug}.md`);
|
|
85
96
|
assertInside(forgeRoot, filePath, "Artifact file");
|
|
97
|
+
const relativePath = path.relative(worktreePath, filePath).replaceAll(path.sep, "/");
|
|
98
|
+
if (protectedRelativePaths.has(relativePath)) {
|
|
99
|
+
await restoreTrackedArtifactIfItMatchesManagedBody(worktreePath, filePath, relativePath, artifact);
|
|
100
|
+
return;
|
|
101
|
+
}
|
|
86
102
|
await fs.mkdir(path.dirname(filePath), { recursive: true });
|
|
87
103
|
await fs.writeFile(filePath, artifact.body, "utf8");
|
|
88
104
|
}
|
|
@@ -110,6 +126,39 @@ export function resolveCommandSlug(lane, phase) {
|
|
|
110
126
|
return "dev-prompt";
|
|
111
127
|
}
|
|
112
128
|
}
|
|
129
|
+
async function restoreTrackedArtifactIfItMatchesManagedBody(worktreePath, filePath, relativePath, artifact) {
|
|
130
|
+
const current = await fs.readFile(filePath, "utf8").catch(() => null);
|
|
131
|
+
if (current === null
|
|
132
|
+
|| (current !== artifact.body && current !== artifactExecutionBody(artifact)))
|
|
133
|
+
return;
|
|
134
|
+
const result = await new Promise((resolve) => {
|
|
135
|
+
const child = spawn("git", ["show", `HEAD:${relativePath}`], {
|
|
136
|
+
cwd: worktreePath,
|
|
137
|
+
windowsHide: true,
|
|
138
|
+
stdio: ["ignore", "pipe", "ignore"],
|
|
139
|
+
});
|
|
140
|
+
let stdout = "";
|
|
141
|
+
child.stdout?.setEncoding("utf8");
|
|
142
|
+
child.stdout?.on("data", chunk => { stdout += chunk; });
|
|
143
|
+
child.on("error", () => resolve({ exitCode: 1, stdout: "" }));
|
|
144
|
+
child.on("close", code => resolve({ exitCode: code ?? 1, stdout }));
|
|
145
|
+
});
|
|
146
|
+
if (result.exitCode === 0)
|
|
147
|
+
await fs.writeFile(filePath, result.stdout, "utf8");
|
|
148
|
+
}
|
|
149
|
+
export function artifactExecutionBody(artifact) {
|
|
150
|
+
const content = artifact.body;
|
|
151
|
+
if (!content.startsWith("---"))
|
|
152
|
+
return content;
|
|
153
|
+
const end = content.indexOf("\n---", 3);
|
|
154
|
+
if (end < 3)
|
|
155
|
+
return content;
|
|
156
|
+
let bodyStart = end + 4;
|
|
157
|
+
while (bodyStart < content.length && (content[bodyStart] === "\n" || content[bodyStart] === "\r")) {
|
|
158
|
+
bodyStart += 1;
|
|
159
|
+
}
|
|
160
|
+
return content.slice(bodyStart);
|
|
161
|
+
}
|
|
113
162
|
function shouldInjectDebugArtifact(artifact, commandSlug) {
|
|
114
163
|
if (artifact.scope.trim().toLowerCase() !== "operational") {
|
|
115
164
|
return false;
|
|
@@ -142,7 +191,7 @@ function shouldInjectArchitectArtifact(artifact, commandSlug) {
|
|
|
142
191
|
return false;
|
|
143
192
|
}
|
|
144
193
|
}
|
|
145
|
-
function shouldInjectDraftArtifact(artifact, commandSlug) {
|
|
194
|
+
function shouldInjectDraftArtifact(artifact, commandSlug, phase) {
|
|
146
195
|
if (artifact.scope.trim().toLowerCase() !== "operational") {
|
|
147
196
|
return false;
|
|
148
197
|
}
|
|
@@ -151,15 +200,38 @@ function shouldInjectDraftArtifact(artifact, commandSlug) {
|
|
|
151
200
|
case "command":
|
|
152
201
|
return slug === commandSlug;
|
|
153
202
|
case "skill":
|
|
154
|
-
return DRAFT_OPERATIONAL_SKILLS.has(slug);
|
|
203
|
+
return DRAFT_OPERATIONAL_SKILLS.has(slug) || draftPhaseSkills(phase).has(slug);
|
|
155
204
|
case "hook":
|
|
156
|
-
return DRAFT_OPERATIONAL_HOOKS.has(slug);
|
|
205
|
+
return DRAFT_OPERATIONAL_HOOKS.has(slug) || draftPhaseHooks(phase).has(slug);
|
|
157
206
|
default:
|
|
158
207
|
return false;
|
|
159
208
|
}
|
|
160
209
|
}
|
|
210
|
+
function draftPhaseSkills(phase) {
|
|
211
|
+
switch (normalizeDraftPhase(phase)) {
|
|
212
|
+
case "work_order":
|
|
213
|
+
return DRAFT_WORK_ORDER_OPERATIONAL_SKILLS;
|
|
214
|
+
case "story":
|
|
215
|
+
return DRAFT_WORK_ITEM_OPERATIONAL_SKILLS;
|
|
216
|
+
default:
|
|
217
|
+
return DRAFT_WORK_ITEM_OPERATIONAL_SKILLS;
|
|
218
|
+
}
|
|
219
|
+
}
|
|
220
|
+
function draftPhaseHooks(phase) {
|
|
221
|
+
switch (normalizeDraftPhase(phase)) {
|
|
222
|
+
case "work_order":
|
|
223
|
+
return DRAFT_WORK_ORDER_OPERATIONAL_HOOKS;
|
|
224
|
+
case "story":
|
|
225
|
+
return DRAFT_WORK_ITEM_OPERATIONAL_HOOKS;
|
|
226
|
+
default:
|
|
227
|
+
return DRAFT_WORK_ITEM_OPERATIONAL_HOOKS;
|
|
228
|
+
}
|
|
229
|
+
}
|
|
230
|
+
function normalizeDraftPhase(phase) {
|
|
231
|
+
return phase.trim().toLowerCase().replaceAll("-", "_");
|
|
232
|
+
}
|
|
161
233
|
export function buildSpecBody(laneCommand, workItem, phase = "implementation") {
|
|
162
|
-
const prompt = laneCommand.
|
|
234
|
+
const prompt = artifactExecutionBody(laneCommand).replaceAll("{workItemId}", workItem.id);
|
|
163
235
|
return `---
|
|
164
236
|
work_item_id: ${workItem.id}
|
|
165
237
|
status: approved
|
|
@@ -9,6 +9,13 @@ export interface WarmDependenciesRequest {
|
|
|
9
9
|
readonly worktreePath: string;
|
|
10
10
|
readonly allowedRoot: string;
|
|
11
11
|
readonly warmPathOverrides?: readonly string[];
|
|
12
|
+
readonly preparationPolicy?: DependencyPreparationPolicy;
|
|
13
|
+
}
|
|
14
|
+
export interface DependencyPreparationPolicy {
|
|
15
|
+
readonly isolation?: string;
|
|
16
|
+
readonly trustDomain?: string;
|
|
17
|
+
readonly invalidationEpoch?: string;
|
|
18
|
+
readonly toolchainVersions?: Readonly<Partial<Record<DependencyEcosystem | "npm" | "pnpm", string>>>;
|
|
12
19
|
}
|
|
13
20
|
export interface InstallFallbackResult {
|
|
14
21
|
readonly ecosystem: DependencyEcosystem;
|
|
@@ -20,9 +27,24 @@ export interface WarmDependenciesResult {
|
|
|
20
27
|
readonly linked: readonly string[];
|
|
21
28
|
readonly skipped: readonly string[];
|
|
22
29
|
readonly fallbacks: readonly InstallFallbackResult[];
|
|
30
|
+
readonly receipts: readonly DependencyPreparationReceiptResult[];
|
|
31
|
+
}
|
|
32
|
+
export interface DependencyPreparationReceiptResult {
|
|
33
|
+
readonly ecosystem: DependencyEcosystem;
|
|
34
|
+
readonly packageRoot: string;
|
|
35
|
+
readonly command: string;
|
|
36
|
+
readonly cacheHit: boolean;
|
|
37
|
+
readonly fingerprint: string;
|
|
38
|
+
readonly receiptPath: string;
|
|
39
|
+
/** End-to-end receipt lookup/preparation time, including coordinator wait. */
|
|
40
|
+
readonly durationMs: number;
|
|
23
41
|
}
|
|
24
42
|
export interface CommandExecutor {
|
|
25
|
-
run(cwd: string, command: string, args: readonly string[]): Promise<void>;
|
|
43
|
+
run(cwd: string, command: string, args: readonly string[], options?: CommandExecutionOptions): Promise<void>;
|
|
44
|
+
}
|
|
45
|
+
export interface CommandExecutionOptions {
|
|
46
|
+
readonly env?: NodeJS.ProcessEnv;
|
|
47
|
+
readonly windowsVerbatimArguments?: boolean;
|
|
26
48
|
}
|
|
27
49
|
export declare function detectWarmPaths(repoRoot: string, warmPathOverrides?: readonly string[]): Promise<WarmPathEntry[]>;
|
|
28
50
|
export declare function warmWorktreeDependencies(request: WarmDependenciesRequest, executor?: CommandExecutor): Promise<WarmDependenciesResult>;
|
|
@@ -30,3 +52,33 @@ export declare function createDirectoryLink(sourcePath: string, targetPath: stri
|
|
|
30
52
|
export declare function lockfilesDiffer(baseCheckoutPath: string, worktreePath: string, packageRootRelative: string): Promise<boolean>;
|
|
31
53
|
export declare function requiresInstallFallback(entry: WarmPathEntry, baseCheckoutPath: string, worktreePath: string, sourceExists: boolean): Promise<string | null>;
|
|
32
54
|
export declare function declaresNativeModules(packageRootPath: string): Promise<boolean>;
|
|
55
|
+
export interface NpmLaunchOptions {
|
|
56
|
+
readonly env?: NodeJS.ProcessEnv;
|
|
57
|
+
readonly execPath?: string;
|
|
58
|
+
readonly platform?: NodeJS.Platform;
|
|
59
|
+
readonly homeDir?: string;
|
|
60
|
+
readonly candidates?: readonly string[];
|
|
61
|
+
readonly pathExists?: (candidate: string) => boolean;
|
|
62
|
+
}
|
|
63
|
+
export interface PackageManagerEnvironmentOptions {
|
|
64
|
+
readonly platform?: NodeJS.Platform;
|
|
65
|
+
readonly execPath?: string;
|
|
66
|
+
readonly pathExists?: (candidate: string) => boolean;
|
|
67
|
+
readonly maximumPathLength?: number;
|
|
68
|
+
readonly packageRoot?: string;
|
|
69
|
+
readonly requiredPathDirectories?: readonly string[];
|
|
70
|
+
}
|
|
71
|
+
export interface PackageManagerLaunch {
|
|
72
|
+
readonly command: string;
|
|
73
|
+
readonly args: readonly string[];
|
|
74
|
+
readonly requiredPathDirectories?: readonly string[];
|
|
75
|
+
readonly windowsVerbatimArguments?: boolean;
|
|
76
|
+
}
|
|
77
|
+
export declare function resolveNpmLaunch(args: readonly string[], options?: NpmLaunchOptions): PackageManagerLaunch;
|
|
78
|
+
export declare function resolvePnpmLaunch(args: readonly string[], options?: NpmLaunchOptions): PackageManagerLaunch;
|
|
79
|
+
export declare function formatCommandFailureOutput(stdout: string, stderr: string): string;
|
|
80
|
+
export declare function unattendedPackageManagerEnvironment(env?: NodeJS.ProcessEnv, options?: PackageManagerEnvironmentOptions): NodeJS.ProcessEnv;
|
|
81
|
+
export declare function unattendedDependencyEnvironment(env?: NodeJS.ProcessEnv): NodeJS.ProcessEnv;
|
|
82
|
+
export declare function compactWindowsPackageManagerPath(pathValue: string, env?: NodeJS.ProcessEnv, options?: PackageManagerEnvironmentOptions): string;
|
|
83
|
+
export declare function windowsPackageManagerLifecyclePathPrefix(packageRoot: string): string;
|
|
84
|
+
export declare function windowsPackageManagerPathBudget(packageRoot: string): number;
|