wicked-crew 0.9.0 → 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/api/capture.d.ts +6 -6
- package/dist/api/codebase-archive.d.ts +102 -0
- package/dist/api/codebase-archive.d.ts.map +1 -0
- package/dist/api/codebase-archive.js +299 -0
- package/dist/api/codebase-archive.js.map +1 -0
- package/dist/api/delivery-index.d.ts +3 -1
- package/dist/api/delivery-index.d.ts.map +1 -1
- package/dist/api/delivery-index.js +4 -2
- package/dist/api/delivery-index.js.map +1 -1
- package/dist/api/mcp.d.ts +8 -8
- package/dist/api/routes.d.ts +7 -2
- package/dist/api/routes.d.ts.map +1 -1
- package/dist/api/routes.js +70 -11
- package/dist/api/routes.js.map +1 -1
- package/dist/api/server.d.ts +2 -0
- package/dist/api/server.d.ts.map +1 -1
- package/dist/api/server.js +64 -1
- package/dist/api/server.js.map +1 -1
- package/dist/core/adapter.d.ts +10 -0
- package/dist/core/adapter.d.ts.map +1 -1
- package/dist/core/adapter.js +46 -14
- package/dist/core/adapter.js.map +1 -1
- package/dist/core/ado-deliver-helper.d.ts +22 -0
- package/dist/core/ado-deliver-helper.d.ts.map +1 -0
- package/dist/core/ado-deliver-helper.js +139 -0
- package/dist/core/ado-deliver-helper.js.map +1 -0
- package/dist/core/deliver-credentials.d.ts +88 -0
- package/dist/core/deliver-credentials.d.ts.map +1 -0
- package/dist/core/deliver-credentials.js +231 -0
- package/dist/core/deliver-credentials.js.map +1 -0
- package/dist/core/deliver.d.ts +11 -0
- package/dist/core/deliver.d.ts.map +1 -1
- package/dist/core/deliver.js +108 -4
- package/dist/core/deliver.js.map +1 -1
- package/dist/core/inventory-claim.d.ts +2 -8
- package/dist/core/inventory-claim.d.ts.map +1 -1
- package/dist/core/inventory-claim.js.map +1 -1
- package/dist/projects/routes.d.ts +2 -2
- package/dist/projects/state-home-registry.d.ts.map +1 -1
- package/dist/projects/state-home-registry.js +2 -0
- package/dist/projects/state-home-registry.js.map +1 -1
- package/dist/studio/assets/index-BLYKfepE.css +32 -0
- package/dist/studio/assets/{index-B1MYiNq-.js → index-BbXtfDnB.js} +95 -95
- package/dist/studio/editors/wicked-page/editor.json +1 -1
- package/dist/studio/editors/wicked-page/index.html +1 -1
- package/dist/studio/index.html +2 -2
- package/dist/studio/testid-inventory.json +37 -6
- package/endpoint-manifest.json +12 -2
- package/package.json +4 -4
- package/dist/studio/assets/index--O1AdvNx.css +0 -32
package/dist/api/mcp.d.ts
CHANGED
|
@@ -84,14 +84,14 @@ export declare const McpServerConfigSchema: z.ZodEffects<z.ZodObject<{
|
|
|
84
84
|
}, "strict", z.ZodTypeAny, {
|
|
85
85
|
name: string;
|
|
86
86
|
kind: "mcp-stdio" | "mcp-http" | "rest";
|
|
87
|
-
command?: string | undefined;
|
|
88
|
-
url?: string | undefined;
|
|
89
87
|
auth?: {
|
|
90
88
|
ref: string;
|
|
91
89
|
env?: string | undefined;
|
|
92
90
|
header?: string | undefined;
|
|
93
91
|
prefix?: string | undefined;
|
|
94
92
|
} | null | undefined;
|
|
93
|
+
command?: string | undefined;
|
|
94
|
+
url?: string | undefined;
|
|
95
95
|
operations?: string[] | undefined;
|
|
96
96
|
secret?: string | undefined;
|
|
97
97
|
args?: string[] | undefined;
|
|
@@ -100,14 +100,14 @@ export declare const McpServerConfigSchema: z.ZodEffects<z.ZodObject<{
|
|
|
100
100
|
}, {
|
|
101
101
|
name: string;
|
|
102
102
|
kind: "mcp-stdio" | "mcp-http" | "rest";
|
|
103
|
-
command?: string | undefined;
|
|
104
|
-
url?: string | undefined;
|
|
105
103
|
auth?: {
|
|
106
104
|
ref: string;
|
|
107
105
|
env?: string | undefined;
|
|
108
106
|
header?: string | undefined;
|
|
109
107
|
prefix?: string | undefined;
|
|
110
108
|
} | null | undefined;
|
|
109
|
+
command?: string | undefined;
|
|
110
|
+
url?: string | undefined;
|
|
111
111
|
operations?: string[] | undefined;
|
|
112
112
|
secret?: string | undefined;
|
|
113
113
|
args?: string[] | undefined;
|
|
@@ -116,14 +116,14 @@ export declare const McpServerConfigSchema: z.ZodEffects<z.ZodObject<{
|
|
|
116
116
|
}>, {
|
|
117
117
|
name: string;
|
|
118
118
|
kind: "mcp-stdio" | "mcp-http" | "rest";
|
|
119
|
-
command?: string | undefined;
|
|
120
|
-
url?: string | undefined;
|
|
121
119
|
auth?: {
|
|
122
120
|
ref: string;
|
|
123
121
|
env?: string | undefined;
|
|
124
122
|
header?: string | undefined;
|
|
125
123
|
prefix?: string | undefined;
|
|
126
124
|
} | null | undefined;
|
|
125
|
+
command?: string | undefined;
|
|
126
|
+
url?: string | undefined;
|
|
127
127
|
operations?: string[] | undefined;
|
|
128
128
|
secret?: string | undefined;
|
|
129
129
|
args?: string[] | undefined;
|
|
@@ -132,14 +132,14 @@ export declare const McpServerConfigSchema: z.ZodEffects<z.ZodObject<{
|
|
|
132
132
|
}, {
|
|
133
133
|
name: string;
|
|
134
134
|
kind: "mcp-stdio" | "mcp-http" | "rest";
|
|
135
|
-
command?: string | undefined;
|
|
136
|
-
url?: string | undefined;
|
|
137
135
|
auth?: {
|
|
138
136
|
ref: string;
|
|
139
137
|
env?: string | undefined;
|
|
140
138
|
header?: string | undefined;
|
|
141
139
|
prefix?: string | undefined;
|
|
142
140
|
} | null | undefined;
|
|
141
|
+
command?: string | undefined;
|
|
142
|
+
url?: string | undefined;
|
|
143
143
|
operations?: string[] | undefined;
|
|
144
144
|
secret?: string | undefined;
|
|
145
145
|
args?: string[] | undefined;
|
package/dist/api/routes.d.ts
CHANGED
|
@@ -28,6 +28,7 @@ import type { EvalRunStore } from './eval-store.js';
|
|
|
28
28
|
import type { WatchRegistry } from '../watch/registry.js';
|
|
29
29
|
import { InteractiveBridgePool } from '../interactive/bridge-pool.js';
|
|
30
30
|
import { type PullRequestResolution } from '../core/deliver.js';
|
|
31
|
+
import { type CodebaseArchiveStore } from './codebase-archive.js';
|
|
31
32
|
import type { DocGroundingStore } from '../interactive/doc-grounding.js';
|
|
32
33
|
import type { DocLedgerSweep } from '../interactive/doc-ledger-sweep.js';
|
|
33
34
|
import { type LinkedIssuesResult } from '../core/linked-issues.js';
|
|
@@ -1291,6 +1292,10 @@ export interface RuntimeDeps {
|
|
|
1291
1292
|
* read and a run that pushed and opened its PR is never served `'stranded'`. Optional: a
|
|
1292
1293
|
* directly-driven route set without one derives as before. */
|
|
1293
1294
|
deliveryResolver?: DeliveryResolver;
|
|
1295
|
+
/** (crew#720) The final-codebase zips (`AgentSession.codebase_archive`, `GET /runs/:id/artifacts/
|
|
1296
|
+
* codebase.zip`, taken again by a post-hoc deliver). Optional: a directly-driven route set without
|
|
1297
|
+
* one serves no archive. */
|
|
1298
|
+
codebaseArchives?: CodebaseArchiveStore;
|
|
1294
1299
|
/** The read-path bound for that await (default `READ_PATH_SETTLE_MS`); tests shorten it. */
|
|
1295
1300
|
deliverySettleMs?: number;
|
|
1296
1301
|
/** Def-awareness for the delivery derivation (crew#481 / D-14) — `createServer` injects the
|
|
@@ -1436,7 +1441,7 @@ export declare const ChatOpenSchema: z.ZodObject<{
|
|
|
1436
1441
|
chatId?: string | undefined;
|
|
1437
1442
|
clis?: string[] | undefined;
|
|
1438
1443
|
repoRefs?: string[] | undefined;
|
|
1439
|
-
scopeKind?: "none" | "
|
|
1444
|
+
scopeKind?: "none" | "project" | "repo" | "repos" | "system" | "everything" | undefined;
|
|
1440
1445
|
}, {
|
|
1441
1446
|
primary?: string | undefined;
|
|
1442
1447
|
projectId?: string | undefined;
|
|
@@ -1444,7 +1449,7 @@ export declare const ChatOpenSchema: z.ZodObject<{
|
|
|
1444
1449
|
chatId?: string | undefined;
|
|
1445
1450
|
clis?: string[] | undefined;
|
|
1446
1451
|
repoRefs?: string[] | undefined;
|
|
1447
|
-
scopeKind?: "none" | "
|
|
1452
|
+
scopeKind?: "none" | "project" | "repo" | "repos" | "system" | "everything" | undefined;
|
|
1448
1453
|
}>;
|
|
1449
1454
|
export declare function registerRoutes(app: FastifyInstance, adapter: CoreAdapter, gateCache: GateCache, elicitationCache: ElicitationCache, projects?: ProjectRoutesDeps, security?: SecurityDeps, runtime?: RuntimeDeps): RegisteredRoutes;
|
|
1450
1455
|
//# sourceMappingURL=routes.d.ts.map
|
package/dist/api/routes.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"routes.d.ts","sourceRoot":"","sources":["../../src/api/routes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAgC,MAAM,SAAS,CAAC;AAE7E,OAAO,EAAE,UAAU,EAAgB,MAAM,kBAAkB,CAAC;AAC5D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAQxB,OAAO,EAAmD,WAAW,EAA2L,MAAM,oBAAoB,CAAC;AAE3R,OAAO,KAAK,EAEV,aAAa,EACb,SAAS,EAGT,WAAW,EACZ,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAAiB,KAAK,SAAS,EAAuB,MAAM,iBAAiB,CAAC;AACrF,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAK/D,OAAO,KAAK,EAaV,WAAW,EAEZ,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAUrD,OAAO,EAA6B,KAAK,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1F,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,KAAK,EAAgB,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC/E,OAAO,EACL,cAAc,EAQf,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAwB,YAAY,EAAyB,MAAM,gBAAgB,CAAC;AAa3F,OAAO,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAE9D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAa,iBAAiB,EAA8B,MAAM,sBAAsB,CAAC;AAChG,OAAO,EAAyB,KAAK,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"routes.d.ts","sourceRoot":"","sources":["../../src/api/routes.ts"],"names":[],"mappings":"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"}
|
package/dist/api/routes.js
CHANGED
|
@@ -61,6 +61,8 @@ import { isHumanOperator } from './watch-routes.js';
|
|
|
61
61
|
import { boundOrigin, InteractiveBridgePool } from '../interactive/bridge-pool.js';
|
|
62
62
|
import { composeDeliverText, configuredPublicOrigin, extractFollowUps, factsFromRun, reportsFromOutputs, FOLLOW_UPS_MAX, framedDeliverText, runUrlFor, } from '../core/deliver-text.js';
|
|
63
63
|
import { deliverRepoFor, deliverTargetView, isGitHubLogin, readDeliverOriginUrl, resolvePullRequest as resolvePullRequestViaGh, unverifiedTreesFrom, } from '../core/deliver.js';
|
|
64
|
+
import { credentialsMissingIn, deliverCredentialsProbe, missingCredentials } from '../core/deliver-credentials.js';
|
|
65
|
+
import { codebaseArchiveUrl } from './codebase-archive.js';
|
|
64
66
|
import { registerInteractiveProxy } from '../interactive/proxy-routes.js';
|
|
65
67
|
import { registerInteractiveDocDelete } from '../interactive/doc-delete-routes.js';
|
|
66
68
|
import { registerInteractiveDocChecks } from '../interactive/doc-checks-routes.js';
|
|
@@ -82,7 +84,7 @@ import { DeliveryFreeze, frozenRefusal, isDeliverUnit, registerDeliveryFreezeRou
|
|
|
82
84
|
import { GroupIndex } from './group-index.js';
|
|
83
85
|
import { RunTimingIndex, recordRunLaunched } from './run-timing-index.js';
|
|
84
86
|
import { GuidanceIndex } from './guidance-index.js';
|
|
85
|
-
import { DELIVER_REQUESTED_ACTION, DeliveryIndex, gitRunBranchIsEmpty, gitWorktreeIsClean, isDeliverConflictStranded, deliveryRecordFrom, pushedState, canDeliverResolver, FREE_TEXT_NOTICE, freeTextOutcome, } from './delivery-index.js';
|
|
87
|
+
import { DELIVER_REQUESTED_ACTION, DeliveryIndex, gitRunBranchIsEmpty, gitWorktreeIsClean, isDeliverConflictStranded, deliveryRecordFrom, deliverUnitOf, pushedState, canDeliverResolver, FREE_TEXT_NOTICE, freeTextOutcome, } from './delivery-index.js';
|
|
86
88
|
import { DeliveryDerivationCache } from './delivery-cache.js';
|
|
87
89
|
import { gitReprovisionWorktree, runDeliverScript, } from './post-hoc-deliver.js';
|
|
88
90
|
import { LOCAL_ACTOR, trustAtLeast } from './auth.js';
|
|
@@ -974,6 +976,15 @@ runtime = {}) {
|
|
|
974
976
|
view.session.deliverBranch = state.deliverBranch;
|
|
975
977
|
if (state.deliverRemote !== undefined)
|
|
976
978
|
view.session.deliverRemote = state.deliverRemote;
|
|
979
|
+
// crew#720: the final-codebase zip (every outcome), and a deliver phase that refused for want of
|
|
980
|
+
// the provider credential — read from the deliver unit's own refusal line.
|
|
981
|
+
const archive = runtime.codebaseArchives?.get(view.session.id);
|
|
982
|
+
if (archive !== undefined)
|
|
983
|
+
view.session.codebase_archive = archive;
|
|
984
|
+
const deliverUnit = deliverUnitOf(view);
|
|
985
|
+
const credMissing = deliverUnit !== null && deliverUnit.status !== 'done' ? credentialsMissingIn(deliverUnit.denial_reason ?? '') : null;
|
|
986
|
+
if (credMissing !== null)
|
|
987
|
+
view.session.deliver_credentials = missingCredentials(credMissing);
|
|
977
988
|
// crew#641/#642 (item 5): chat promotion provenance — ABSENT when not a chat-promoted run.
|
|
978
989
|
const chatSeatCount = runTimingIndex.chatSeatCountFor(view.session.id);
|
|
979
990
|
if (chatSeatCount !== undefined)
|
|
@@ -1443,7 +1454,8 @@ runtime = {}) {
|
|
|
1443
1454
|
return reply.code(500).send({ error: message(err) });
|
|
1444
1455
|
};
|
|
1445
1456
|
const worktreeLive = typeof workdir === 'string' && workdir.length > 0 && existsSync(workdir);
|
|
1446
|
-
|
|
1457
|
+
/** The run branch's diff, when the worktree is gone (or went while this request ran). */
|
|
1458
|
+
const fromBranchOr409 = async () => {
|
|
1447
1459
|
// Wave 6 (F-7R2-013): the engine reaps a completed run's worktree, and the run page went dark
|
|
1448
1460
|
// (`409 workdir no longer exists`). The run's WORK is not gone — it lives on the `wicked/<id>`
|
|
1449
1461
|
// branch of the registered repo, and the wave-6 engine records `run_branch` + `base_commit`
|
|
@@ -1468,11 +1480,14 @@ runtime = {}) {
|
|
|
1468
1480
|
// Narrowing: a path under the (gone) worktree or under the repo root, made repo-relative.
|
|
1469
1481
|
let rel;
|
|
1470
1482
|
if (resolved.target !== undefined) {
|
|
1471
|
-
|
|
1472
|
-
|
|
1473
|
-
|
|
1483
|
+
// The worktree first: engine worktrees live UNDER the repo root (`wicked-worktrees/<id>`),
|
|
1484
|
+
// and a path inside one is worktree-relative on the branch (codex r1).
|
|
1485
|
+
if (typeof workdir === 'string' && workdir.length > 0 && isInsideRoot(workdir, resolved.target)) {
|
|
1474
1486
|
rel = relative(workdir, resolved.target);
|
|
1475
1487
|
}
|
|
1488
|
+
else if (isInsideRoot(root, resolved.target)) {
|
|
1489
|
+
rel = relative(root, resolved.target);
|
|
1490
|
+
}
|
|
1476
1491
|
else {
|
|
1477
1492
|
return reply.code(400).send({
|
|
1478
1493
|
error: `\`path\` must be inside the run's worktree or its repository to diff: ${root}`,
|
|
@@ -1494,7 +1509,9 @@ runtime = {}) {
|
|
|
1494
1509
|
return reply.code(409).send({
|
|
1495
1510
|
error: `run ${id}'s workdir no longer exists (${workdir}) and its run branch holds no commits — nothing to diff`,
|
|
1496
1511
|
});
|
|
1497
|
-
}
|
|
1512
|
+
};
|
|
1513
|
+
if (!worktreeLive)
|
|
1514
|
+
return fromBranchOr409();
|
|
1498
1515
|
// Narrowing is WORKTREE-scoped: a contained-but-outside-the-worktree path (extra write
|
|
1499
1516
|
// root / repo root) is a valid FILE read but has no meaning as a diff pathspec — rejected
|
|
1500
1517
|
// explicitly here rather than handing git a `../`-prefixed pathspec and surfacing its
|
|
@@ -1525,6 +1542,11 @@ runtime = {}) {
|
|
|
1525
1542
|
return { ...(await worktreeDiff(workdir, rel, rawBase)), source: 'worktree' };
|
|
1526
1543
|
}
|
|
1527
1544
|
catch (err) {
|
|
1545
|
+
// The worktree was removed WHILE this request ran (the delivered-worktree sweep, an engine
|
|
1546
|
+
// reap): git's spawn into a vanished cwd fails ENOENT, which is not "git is missing". Serve the
|
|
1547
|
+
// run branch, as for a worktree that was already gone (seen in the 0.9.1 release smoke, S04).
|
|
1548
|
+
if (err.code === 'ENOENT' && !existsSync(workdir))
|
|
1549
|
+
return fromBranchOr409();
|
|
1528
1550
|
return diffError(err);
|
|
1529
1551
|
}
|
|
1530
1552
|
});
|
|
@@ -2193,7 +2215,7 @@ runtime = {}) {
|
|
|
2193
2215
|
app.get(`${V}/runs/:id/inventory`, {
|
|
2194
2216
|
config: {
|
|
2195
2217
|
manifest: {
|
|
2196
|
-
responseType: '
|
|
2218
|
+
responseType: 'RunInventoryResponse',
|
|
2197
2219
|
statusCodes: [200, 404],
|
|
2198
2220
|
},
|
|
2199
2221
|
},
|
|
@@ -2321,7 +2343,9 @@ runtime = {}) {
|
|
|
2321
2343
|
const existing = deliveryIndex.urlFor(id);
|
|
2322
2344
|
if (existing !== undefined) {
|
|
2323
2345
|
const recorded = deliveryIndex.assuranceFor(id);
|
|
2324
|
-
|
|
2346
|
+
// crew#720: the run's final-codebase zip rides the replay too.
|
|
2347
|
+
const zip = runtime.codebaseArchives?.get(id);
|
|
2348
|
+
return { prUrl: existing, ...(recorded !== undefined ? { assurance: recorded } : {}), ...(zip !== undefined ? { codebase: zip } : {}) };
|
|
2325
2349
|
}
|
|
2326
2350
|
// N1: a run whose branch is already on a non-GitHub origin has nothing left to lift, and no
|
|
2327
2351
|
// pull request can be opened from here — say so instead of pushing the branch again.
|
|
@@ -2382,6 +2406,7 @@ runtime = {}) {
|
|
|
2382
2406
|
// that branch and lift THAT; the branch (the record) is untouched. `cleanupWorktree` tears
|
|
2383
2407
|
// the throwaway down after the lift.
|
|
2384
2408
|
let result;
|
|
2409
|
+
let codebase;
|
|
2385
2410
|
let worktreeGone = false;
|
|
2386
2411
|
// DES-L9: a stranded REVISION re-pushes onto its PR's branch (re-checked OPEN via the same
|
|
2387
2412
|
// resolver), never a new PR; a PR that closed meanwhile is a named 409.
|
|
@@ -2440,6 +2465,17 @@ runtime = {}) {
|
|
|
2440
2465
|
// remotes), so the PR opens where origin points rather than where gh's default does.
|
|
2441
2466
|
originUrl: await readDeliverOriginUrl(workdir),
|
|
2442
2467
|
});
|
|
2468
|
+
// crew#720: the final-codebase zip, taken while this checkout (perhaps a throwaway)
|
|
2469
|
+
// still exists — whatever the script's verdict.
|
|
2470
|
+
const archives = runtime.codebaseArchives;
|
|
2471
|
+
if (archives !== undefined) {
|
|
2472
|
+
try {
|
|
2473
|
+
codebase = (await archives.archive(id, { workdir, repoRoot: (await repoRootOf(repoRef)) ?? null }, 'deliver')) ?? undefined;
|
|
2474
|
+
}
|
|
2475
|
+
catch {
|
|
2476
|
+
// Best-effort: the archive store logs its own failures; a lookup that threw leaves none.
|
|
2477
|
+
}
|
|
2478
|
+
}
|
|
2443
2479
|
}
|
|
2444
2480
|
finally {
|
|
2445
2481
|
if (cw !== null)
|
|
@@ -2478,6 +2514,8 @@ runtime = {}) {
|
|
|
2478
2514
|
// guarantees nothing was pushed on the refusing paths.
|
|
2479
2515
|
return reply.code(409).send({
|
|
2480
2516
|
error: `deliver failed (exit ${result.status}): ${deliverErrorTail(result.output)}`,
|
|
2517
|
+
// crew#720: the final-codebase zip is there whatever the verdict.
|
|
2518
|
+
...(codebase !== undefined ? { codebase } : {}),
|
|
2481
2519
|
});
|
|
2482
2520
|
}
|
|
2483
2521
|
// The SAME parser the in-run record uses: the script's push-only verdict outranks a URL a
|
|
@@ -2506,9 +2544,9 @@ runtime = {}) {
|
|
|
2506
2544
|
}
|
|
2507
2545
|
// The durable record first, then the read-side index — the same write order as the
|
|
2508
2546
|
// deliver-phase resolution in server.ts, so the index can only LAG a crash, never lead it.
|
|
2509
|
-
audit.record('run.delivered', actorOf(req), { runId: id, detail: { url, via: 'post-hoc', assurance } });
|
|
2547
|
+
audit.record('run.delivered', actorOf(req), { runId: id, detail: { url, via: 'post-hoc', assurance, ...(codebase !== undefined ? { codebase } : {}) } });
|
|
2510
2548
|
deliveryIndex.set(id, url, assurance);
|
|
2511
|
-
return { prUrl: url, assurance };
|
|
2549
|
+
return { prUrl: url, assurance, ...(codebase !== undefined ? { codebase } : {}) };
|
|
2512
2550
|
});
|
|
2513
2551
|
// Durable pre-gate guidance (DES-UX-002 §7.2 — spec'd there as CREW-UX-4, implemented as
|
|
2514
2552
|
// CREW-UX-7 because crew#308 already spent that id; see guidance-index.ts). Upserts the ONE
|
|
@@ -3255,6 +3293,25 @@ runtime = {}) {
|
|
|
3255
3293
|
// `outputUnavailable` saying WHICH cause applies — denied, not finished, or a store that
|
|
3256
3294
|
// disagrees with itself. It previously answered `200 {"output": null}` to all four, so the
|
|
3257
3295
|
// failed unit an operator opens during triage was the one that told them nothing (FINDING-006).
|
|
3296
|
+
// crew#720: the run's final-codebase zip (every delivery, every outcome). 404 for an unknown run
|
|
3297
|
+
// or one with no archive yet; the record (`AgentSession.codebase_archive`) names the same sha256,
|
|
3298
|
+
// which the answer also carries as `X-Content-SHA256`.
|
|
3299
|
+
app.get(`${V}/runs/:id/artifacts/codebase.zip`, { config: { manifest: { responseType: 'binary (application/zip)', statusCodes: [200, 404] } } }, async (req, reply) => {
|
|
3300
|
+
const { id } = req.params;
|
|
3301
|
+
const opened = runtime.codebaseArchives?.open(id) ?? null;
|
|
3302
|
+
if (opened === null || opened.rec.url !== codebaseArchiveUrl(id)) {
|
|
3303
|
+
opened?.stream.destroy();
|
|
3304
|
+
return reply.code(404).send({ error: `run ${id} has no codebase archive` });
|
|
3305
|
+
}
|
|
3306
|
+
const rec = opened.rec;
|
|
3307
|
+
const safe = id.replace(/[^A-Za-z0-9._-]/g, '_').slice(0, 80);
|
|
3308
|
+
return reply
|
|
3309
|
+
.header('content-type', 'application/zip')
|
|
3310
|
+
.header('content-disposition', `attachment; filename="${safe}-codebase.zip"`)
|
|
3311
|
+
.header('x-content-sha256', rec.sha256)
|
|
3312
|
+
.header('content-length', String(rec.bytes))
|
|
3313
|
+
.send(opened.stream);
|
|
3314
|
+
});
|
|
3258
3315
|
app.get(`${V}/runs/:id/units/:unitKey/output`, async (req, reply) => {
|
|
3259
3316
|
const { id, unitKey } = req.params;
|
|
3260
3317
|
const views = await adapter.sessionsDetail();
|
|
@@ -4835,7 +4892,9 @@ runtime = {}) {
|
|
|
4835
4892
|
if (repo === undefined)
|
|
4836
4893
|
return reply.code(404).send({ error: `Repo ${id} not found` });
|
|
4837
4894
|
const originUrl = repo.root_path === '' ? null : await readDeliverOriginUrl(repo.root_path);
|
|
4838
|
-
|
|
4895
|
+
// crew#720: the provider credential preflight, so a launch can say "not configured" up front.
|
|
4896
|
+
const credentials = await deliverCredentialsProbe(originUrl, process.env);
|
|
4897
|
+
return reply.send({ repo: repo.id, ...deliverTargetView(originUrl), credentials });
|
|
4839
4898
|
});
|
|
4840
4899
|
app.get(`${V}/repos/:id/git-history`, async (req, reply) => {
|
|
4841
4900
|
const { id } = req.params;
|