@shapeshift-labs/frontier-swarm-codex 0.5.134 → 0.5.136
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 +5 -2
- package/dist/cli-args.d.ts +11 -7
- package/dist/cli-args.d.ts.map +1 -1
- package/dist/cli-args.js +4 -4
- package/dist/cli-args.js.map +1 -1
- package/dist/cli-help.d.ts.map +1 -1
- package/dist/cli-help.js +6 -0
- package/dist/cli-help.js.map +1 -1
- package/dist/cli-run-events-args.d.ts +1 -0
- package/dist/cli-run-events-args.d.ts.map +1 -1
- package/dist/cli-run-events-args.js +22 -0
- package/dist/cli-run-events-args.js.map +1 -1
- package/dist/cli.js +51 -2
- package/dist/cli.js.map +1 -1
- package/dist/codex-events.d.ts +2 -0
- package/dist/codex-events.d.ts.map +1 -1
- package/dist/codex-events.js +4 -0
- package/dist/codex-events.js.map +1 -1
- package/dist/codex-run-swarm.d.ts.map +1 -1
- package/dist/codex-run-swarm.js +26 -2
- package/dist/codex-run-swarm.js.map +1 -1
- package/dist/collect.d.ts.map +1 -1
- package/dist/collect.js +5 -1
- package/dist/collect.js.map +1 -1
- package/dist/constants.d.ts +2 -0
- package/dist/constants.d.ts.map +1 -1
- package/dist/constants.js +2 -0
- package/dist/constants.js.map +1 -1
- package/dist/continuation.js +5 -1
- package/dist/continuation.js.map +1 -1
- package/dist/distributed-pilot-events.d.ts +22 -0
- package/dist/distributed-pilot-events.d.ts.map +1 -0
- package/dist/distributed-pilot-events.js +157 -0
- package/dist/distributed-pilot-events.js.map +1 -0
- package/dist/distributed-pilot-gates.d.ts +3 -0
- package/dist/distributed-pilot-gates.d.ts.map +1 -0
- package/dist/distributed-pilot-gates.js +47 -0
- package/dist/distributed-pilot-gates.js.map +1 -0
- package/dist/distributed-pilot-lease.d.ts +4 -0
- package/dist/distributed-pilot-lease.d.ts.map +1 -0
- package/dist/distributed-pilot-lease.js +110 -0
- package/dist/distributed-pilot-lease.js.map +1 -0
- package/dist/distributed-pilot-plan.d.ts +11 -0
- package/dist/distributed-pilot-plan.d.ts.map +1 -0
- package/dist/distributed-pilot-plan.js +68 -0
- package/dist/distributed-pilot-plan.js.map +1 -0
- package/dist/distributed-pilot-proof.d.ts +3 -0
- package/dist/distributed-pilot-proof.d.ts.map +1 -0
- package/dist/distributed-pilot-proof.js +85 -0
- package/dist/distributed-pilot-proof.js.map +1 -0
- package/dist/distributed-pilot-queue.d.ts +4 -0
- package/dist/distributed-pilot-queue.d.ts.map +1 -0
- package/dist/distributed-pilot-queue.js +96 -0
- package/dist/distributed-pilot-queue.js.map +1 -0
- package/dist/distributed-pilot-telemetry.d.ts +4 -0
- package/dist/distributed-pilot-telemetry.d.ts.map +1 -0
- package/dist/distributed-pilot-telemetry.js +79 -0
- package/dist/distributed-pilot-telemetry.js.map +1 -0
- package/dist/distributed-pilot-types.d.ts +126 -0
- package/dist/distributed-pilot-types.d.ts.map +1 -0
- package/dist/distributed-pilot-types.js +10 -0
- package/dist/distributed-pilot-types.js.map +1 -0
- package/dist/distributed-pilot.d.ts +5 -0
- package/dist/distributed-pilot.d.ts.map +1 -0
- package/dist/distributed-pilot.js +103 -0
- package/dist/distributed-pilot.js.map +1 -0
- package/dist/index.d.ts +5 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -1
- package/dist/index.js.map +1 -1
- package/dist/run-sync.d.ts +65 -0
- package/dist/run-sync.d.ts.map +1 -0
- package/dist/run-sync.js +220 -0
- package/dist/run-sync.js.map +1 -0
- package/dist/types-collection.d.ts +6 -0
- package/dist/types-collection.d.ts.map +1 -1
- package/dist/types-continuation.d.ts +5 -0
- package/dist/types-continuation.d.ts.map +1 -1
- package/dist/types-dashboard.d.ts +2 -0
- package/dist/types-dashboard.d.ts.map +1 -1
- package/dist/types-run.d.ts +8 -0
- package/dist/types-run.d.ts.map +1 -1
- package/package.json +2 -2
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
import path from 'node:path';
|
|
2
|
+
import { acquireSwarmCoordinatorSemanticLease, createSwarmHierarchicalMergeQueue, createSwarmMergeBundle, createSwarmMergeIndex, createSwarmSemanticLeaseStateForMergeQueue, validateSwarmCoordinatorSemanticLeaseFence } from '@shapeshift-labs/frontier-swarm';
|
|
3
|
+
import { writeJsonAtomic } from './common.js';
|
|
4
|
+
import { FRONTIER_SWARM_CODEX_DISTRIBUTED_PILOT_KIND, FRONTIER_SWARM_CODEX_DISTRIBUTED_PILOT_LEASE_FILE } from './distributed-pilot-types.js';
|
|
5
|
+
export async function writePilotLeaseArtifacts(repo, plan, generatedAt) {
|
|
6
|
+
const bundle = createPilotMergeBundle(plan);
|
|
7
|
+
const index = createSwarmMergeIndex({
|
|
8
|
+
id: 'distributed-pilot-merge-index',
|
|
9
|
+
runId: plan.runId,
|
|
10
|
+
planId: plan.id,
|
|
11
|
+
bundles: [bundle],
|
|
12
|
+
metadata: {
|
|
13
|
+
source: FRONTIER_SWARM_CODEX_DISTRIBUTED_PILOT_KIND,
|
|
14
|
+
runId: plan.runId,
|
|
15
|
+
repository: repo.repoRoot
|
|
16
|
+
}
|
|
17
|
+
});
|
|
18
|
+
const mergeQueue = createSwarmHierarchicalMergeQueue({
|
|
19
|
+
id: 'distributed-pilot-merge-queue',
|
|
20
|
+
index,
|
|
21
|
+
metadata: {
|
|
22
|
+
source: FRONTIER_SWARM_CODEX_DISTRIBUTED_PILOT_KIND,
|
|
23
|
+
runId: plan.runId,
|
|
24
|
+
repository: repo.repoRoot
|
|
25
|
+
}
|
|
26
|
+
});
|
|
27
|
+
const assignment = mergeQueue.assignments[0];
|
|
28
|
+
if (!assignment)
|
|
29
|
+
throw new Error('distributed pilot merge queue did not create an assignment');
|
|
30
|
+
let state = createSwarmSemanticLeaseStateForMergeQueue(mergeQueue, {
|
|
31
|
+
repository: repo.repoRoot,
|
|
32
|
+
packageId: '@shapeshift-labs/frontier-swarm-codex',
|
|
33
|
+
metadata: { runId: plan.runId }
|
|
34
|
+
});
|
|
35
|
+
const leaseClaim = acquireSwarmCoordinatorSemanticLease({
|
|
36
|
+
queue: mergeQueue,
|
|
37
|
+
assignment,
|
|
38
|
+
state,
|
|
39
|
+
ownerId: repo.actorId,
|
|
40
|
+
holderId: repo.actorId,
|
|
41
|
+
ttlMs: 30_000,
|
|
42
|
+
purpose: 'distributed pilot coordinator apply',
|
|
43
|
+
reason: 'same-machine multi-repo proof',
|
|
44
|
+
repository: repo.repoRoot,
|
|
45
|
+
packageId: '@shapeshift-labs/frontier-swarm-codex',
|
|
46
|
+
metadata: { runId: plan.runId }
|
|
47
|
+
});
|
|
48
|
+
state = leaseClaim.state;
|
|
49
|
+
if (!leaseClaim.lease)
|
|
50
|
+
throw new Error('distributed pilot semantic lease was not granted');
|
|
51
|
+
const fence = {
|
|
52
|
+
leaseId: leaseClaim.lease.id,
|
|
53
|
+
token: leaseClaim.lease.token,
|
|
54
|
+
fencingToken: leaseClaim.lease.fencingToken,
|
|
55
|
+
ownerId: leaseClaim.lease.ownerId,
|
|
56
|
+
...(leaseClaim.lease.holderId ? { holderId: leaseClaim.lease.holderId } : {}),
|
|
57
|
+
expiresAt: leaseClaim.lease.expiresAt,
|
|
58
|
+
scopeKeys: [...leaseClaim.lease.scopeKeys]
|
|
59
|
+
};
|
|
60
|
+
const fenceValidation = validateSwarmCoordinatorSemanticLeaseFence({
|
|
61
|
+
assignment,
|
|
62
|
+
state,
|
|
63
|
+
lease: leaseClaim.lease,
|
|
64
|
+
token: fence.token,
|
|
65
|
+
fencingToken: fence.fencingToken,
|
|
66
|
+
requiredSemanticLeaseScopes: leaseClaim.scopes
|
|
67
|
+
});
|
|
68
|
+
const summary = {
|
|
69
|
+
kind: 'frontier.swarm-codex.distributed-pilot.semantic-lease',
|
|
70
|
+
version: 1,
|
|
71
|
+
generatedAt,
|
|
72
|
+
runId: plan.runId,
|
|
73
|
+
queueId: mergeQueue.id,
|
|
74
|
+
state,
|
|
75
|
+
leaseClaim,
|
|
76
|
+
fence,
|
|
77
|
+
fenceValidation,
|
|
78
|
+
requiredLeaseScopeIds: leaseClaim.requiredLeaseScopeIds,
|
|
79
|
+
requiredLeaseKeys: leaseClaim.requiredLeaseKeys,
|
|
80
|
+
granted: Boolean(leaseClaim.lease),
|
|
81
|
+
fenceValid: Boolean(fenceValidation.ok)
|
|
82
|
+
};
|
|
83
|
+
const semanticLeasePath = path.join(repo.runDir, FRONTIER_SWARM_CODEX_DISTRIBUTED_PILOT_LEASE_FILE);
|
|
84
|
+
await writeJsonAtomic(semanticLeasePath, summary);
|
|
85
|
+
return { semanticLeasePath, summary };
|
|
86
|
+
}
|
|
87
|
+
function createPilotMergeBundle(plan) {
|
|
88
|
+
return createSwarmMergeBundle({
|
|
89
|
+
id: 'distributed-pilot-bundle',
|
|
90
|
+
runId: plan.runId,
|
|
91
|
+
planId: plan.id,
|
|
92
|
+
job: plan.jobs[0],
|
|
93
|
+
result: {
|
|
94
|
+
jobId: plan.jobs[0]?.id ?? 'distributed-pilot-job',
|
|
95
|
+
status: 'completed',
|
|
96
|
+
mergeReadiness: 'verified-patch',
|
|
97
|
+
mergeDisposition: 'ready',
|
|
98
|
+
riskLevel: 'low',
|
|
99
|
+
queueItemIds: ['distributed-pilot-task'],
|
|
100
|
+
changedPaths: ['packages/frontier-swarm-codex/src/distributed-pilot.ts'],
|
|
101
|
+
verification: [{ name: 'distributed-pilot-smoke', command: ['node', 'test/smoke/distributed-pilot.mjs'], status: 0, required: true }],
|
|
102
|
+
evidencePaths: []
|
|
103
|
+
},
|
|
104
|
+
queueItemIds: ['distributed-pilot-task'],
|
|
105
|
+
riskLevel: 'low',
|
|
106
|
+
disposition: 'ready',
|
|
107
|
+
metadata: { source: FRONTIER_SWARM_CODEX_DISTRIBUTED_PILOT_KIND }
|
|
108
|
+
});
|
|
109
|
+
}
|
|
110
|
+
//# sourceMappingURL=distributed-pilot-lease.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"distributed-pilot-lease.js","sourceRoot":"","sources":["../src/distributed-pilot-lease.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { FrontierSwarmPlan } from '@shapeshift-labs/frontier-swarm';
|
|
2
|
+
import type { FrontierCodexDistributedPilotOptions, PilotRepo } from './distributed-pilot-types.js';
|
|
3
|
+
export declare function createPilotPlan(runId: string): FrontierSwarmPlan;
|
|
4
|
+
export declare function createPilotRepos(input: {
|
|
5
|
+
cwd: string;
|
|
6
|
+
outDir: string;
|
|
7
|
+
runId: string;
|
|
8
|
+
options: FrontierCodexDistributedPilotOptions;
|
|
9
|
+
}): Promise<[PilotRepo, PilotRepo]>;
|
|
10
|
+
export declare function slugTime(value: string): string;
|
|
11
|
+
//# sourceMappingURL=distributed-pilot-plan.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"distributed-pilot-plan.d.ts","sourceRoot":"","sources":["../src/distributed-pilot-plan.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AAGzE,OAAO,KAAK,EAAE,oCAAoC,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAEpG,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,iBAAiB,CA4BhE;AAED,wBAAsB,gBAAgB,CAAC,KAAK,EAAE;IAC5C,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,oCAAoC,CAAC;CAC/C,GAAG,OAAO,CAAC,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAyBlC;AAED,wBAAgB,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAE9C"}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import fs from 'node:fs/promises';
|
|
2
|
+
import path from 'node:path';
|
|
3
|
+
import { runProcess } from './common.js';
|
|
4
|
+
import { createCodexSwarmPlan } from './plan.js';
|
|
5
|
+
export function createPilotPlan(runId) {
|
|
6
|
+
const plan = createCodexSwarmPlan({
|
|
7
|
+
manifest: {
|
|
8
|
+
id: 'distributed-run-pilot',
|
|
9
|
+
compute: [
|
|
10
|
+
{ id: 'fast', kind: 'codex', model: 'gpt-5.4-mini', reasoningEffort: 'medium', metadata: { modelTier: 'cheap' } },
|
|
11
|
+
{ id: 'deep', kind: 'codex', model: 'gpt-5.5', reasoningEffort: 'high', metadata: { modelTier: 'deep' } }
|
|
12
|
+
],
|
|
13
|
+
lanes: [
|
|
14
|
+
{ id: 'distributed-runtime', allowedGlobs: ['packages/frontier-swarm-codex/**'] }
|
|
15
|
+
],
|
|
16
|
+
policy: { defaultCompute: 'fast', defaultConcurrency: 1 }
|
|
17
|
+
},
|
|
18
|
+
tasks: {
|
|
19
|
+
items: [{
|
|
20
|
+
id: 'distributed-pilot-task',
|
|
21
|
+
lane: 'distributed-runtime',
|
|
22
|
+
surfaceKind: 'runtime',
|
|
23
|
+
workKind: 'implementation',
|
|
24
|
+
ownedFiles: ['packages/frontier-swarm-codex/src/distributed-pilot.ts'],
|
|
25
|
+
acceptanceChecks: [
|
|
26
|
+
{ description: 'two repos exchange frontier-run events' },
|
|
27
|
+
{ description: 'queue, lease, gate, telemetry, and dashboard artifacts exist' }
|
|
28
|
+
]
|
|
29
|
+
}]
|
|
30
|
+
}
|
|
31
|
+
});
|
|
32
|
+
return { ...plan, runId };
|
|
33
|
+
}
|
|
34
|
+
export async function createPilotRepos(input) {
|
|
35
|
+
const requested = input.options.repos?.length ? [...input.options.repos] : [];
|
|
36
|
+
const repoCount = Math.max(2, Math.floor(input.options.repoCount ?? requested.length ?? 2));
|
|
37
|
+
const roots = Array.from({ length: repoCount }, (_, index) => path.resolve(input.cwd, requested[index] ?? path.join(input.outDir, `repo-${String.fromCharCode(97 + index)}`)));
|
|
38
|
+
const repos = [];
|
|
39
|
+
for (let index = 0; index < roots.length; index += 1) {
|
|
40
|
+
const repoRoot = roots[index];
|
|
41
|
+
await fs.mkdir(repoRoot, { recursive: true });
|
|
42
|
+
await fs.writeFile(path.join(repoRoot, 'README.md'), `# Distributed pilot ${index + 1}\n\nRun: ${input.runId}\n`);
|
|
43
|
+
if (input.options.initializeGit !== false)
|
|
44
|
+
await ensureGitRepo(repoRoot);
|
|
45
|
+
const runDir = path.join(repoRoot, '.frontier-run', input.runId.replace(/[^a-zA-Z0-9._-]+/g, '-'));
|
|
46
|
+
await fs.mkdir(runDir, { recursive: true });
|
|
47
|
+
repos.push({
|
|
48
|
+
id: `repo-${String.fromCharCode(97 + index)}`,
|
|
49
|
+
actorId: `pilot:${String.fromCharCode(97 + index)}`,
|
|
50
|
+
repoRoot,
|
|
51
|
+
runDir,
|
|
52
|
+
runEventsPath: path.join(runDir, 'run-events.jsonl'),
|
|
53
|
+
runDashboardPath: path.join(runDir, 'run-dashboard.json')
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
return [repos[0], repos[1]];
|
|
57
|
+
}
|
|
58
|
+
export function slugTime(value) {
|
|
59
|
+
return value.replace(/[^a-zA-Z0-9._-]+/g, '-').replace(/^-+|-+$/g, '') || 'run';
|
|
60
|
+
}
|
|
61
|
+
async function ensureGitRepo(repoRoot) {
|
|
62
|
+
await runProcess('git', ['init'], { cwd: repoRoot });
|
|
63
|
+
await runProcess('git', ['config', 'user.email', 'frontier-distributed-pilot@example.invalid'], { cwd: repoRoot });
|
|
64
|
+
await runProcess('git', ['config', 'user.name', 'Frontier Distributed Pilot'], { cwd: repoRoot });
|
|
65
|
+
await runProcess('git', ['add', 'README.md'], { cwd: repoRoot });
|
|
66
|
+
await runProcess('git', ['commit', '-m', 'Seed distributed pilot repo'], { cwd: repoRoot, allowFailure: true });
|
|
67
|
+
}
|
|
68
|
+
//# sourceMappingURL=distributed-pilot-plan.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"distributed-pilot-plan.js","sourceRoot":"","sources":["../src/distributed-pilot-plan.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAClC,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAC;AAGjD,MAAM,UAAU,eAAe,CAAC,KAAa;IAC3C,MAAM,IAAI,GAAG,oBAAoB,CAAC;QAChC,QAAQ,EAAE;YACR,EAAE,EAAE,uBAAuB;YAC3B,OAAO,EAAE;gBACP,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE;gBACjH,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE;aAC1G;YACD,KAAK,EAAE;gBACL,EAAE,EAAE,EAAE,qBAAqB,EAAE,YAAY,EAAE,CAAC,kCAAkC,CAAC,EAAE;aAClF;YACD,MAAM,EAAE,EAAE,cAAc,EAAE,MAAM,EAAE,kBAAkB,EAAE,CAAC,EAAE;SAC1D;QACD,KAAK,EAAE;YACL,KAAK,EAAE,CAAC;oBACN,EAAE,EAAE,wBAAwB;oBAC5B,IAAI,EAAE,qBAAqB;oBAC3B,WAAW,EAAE,SAAS;oBACtB,QAAQ,EAAE,gBAAgB;oBAC1B,UAAU,EAAE,CAAC,wDAAwD,CAAC;oBACtE,gBAAgB,EAAE;wBAChB,EAAE,WAAW,EAAE,wCAAwC,EAAE;wBACzD,EAAE,WAAW,EAAE,8DAA8D,EAAE;qBAChF;iBACF,CAAC;SACH;KACF,CAAC,CAAC;IACH,OAAO,EAAE,GAAG,IAAI,EAAE,KAAK,EAAE,CAAC;AAC5B,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,KAKtC;IACC,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAC9E,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,IAAI,SAAS,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC;IAC5F,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CACxE,KAAK,CAAC,GAAG,EACT,SAAS,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,QAAQ,MAAM,CAAC,YAAY,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,CAAC,CACvF,CAAC,CAAC;IACH,MAAM,KAAK,GAAgB,EAAE,CAAC;IAC9B,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QACrD,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC;QAC9B,MAAM,EAAE,CAAC,KAAK,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC9C,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,WAAW,CAAC,EAAE,uBAAuB,KAAK,GAAG,CAAC,YAAY,KAAK,CAAC,KAAK,IAAI,CAAC,CAAC;QAClH,IAAI,KAAK,CAAC,OAAO,CAAC,aAAa,KAAK,KAAK;YAAE,MAAM,aAAa,CAAC,QAAQ,CAAC,CAAC;QACzE,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,eAAe,EAAE,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,mBAAmB,EAAE,GAAG,CAAC,CAAC,CAAC;QACnG,MAAM,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC5C,KAAK,CAAC,IAAI,CAAC;YACT,EAAE,EAAE,QAAQ,MAAM,CAAC,YAAY,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE;YAC7C,OAAO,EAAE,SAAS,MAAM,CAAC,YAAY,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE;YACnD,QAAQ;YACR,MAAM;YACN,aAAa,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,kBAAkB,CAAC;YACpD,gBAAgB,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,oBAAoB,CAAC;SAC1D,CAAC,CAAC;IACL,CAAC;IACD,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AAC9B,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,KAAa;IACpC,OAAO,KAAK,CAAC,OAAO,CAAC,mBAAmB,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,IAAI,KAAK,CAAC;AAClF,CAAC;AAED,KAAK,UAAU,aAAa,CAAC,QAAgB;IAC3C,MAAM,UAAU,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC,CAAC;IACrD,MAAM,UAAU,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE,YAAY,EAAE,4CAA4C,CAAC,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC,CAAC;IACnH,MAAM,UAAU,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE,WAAW,EAAE,4BAA4B,CAAC,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC,CAAC;IAClG,MAAM,UAAU,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,WAAW,CAAC,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC,CAAC;IACjE,MAAM,UAAU,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE,IAAI,EAAE,6BAA6B,CAAC,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC;AAClH,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"distributed-pilot-proof.d.ts","sourceRoot":"","sources":["../src/distributed-pilot-proof.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,kCAAkC,EACvC,KAAK,eAAe,EACrB,MAAM,8BAA8B,CAAC;AAEtC,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,eAAe,GAAG,kCAAkC,CAkF3F"}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
import { FRONTIER_SWARM_CODEX_DISTRIBUTED_PILOT_KIND, FRONTIER_SWARM_CODEX_DISTRIBUTED_PILOT_VERSION } from './distributed-pilot-types.js';
|
|
2
|
+
export function createPilotProof(input) {
|
|
3
|
+
const syncEvidencePaths = [
|
|
4
|
+
input.firstSync.runSyncEvidencePath,
|
|
5
|
+
input.secondSync.runSyncEvidencePath
|
|
6
|
+
].filter((value) => Boolean(value));
|
|
7
|
+
const syncHistoryPaths = [
|
|
8
|
+
input.firstSync.runSyncHistoryPath,
|
|
9
|
+
input.secondSync.runSyncHistoryPath
|
|
10
|
+
].filter((value) => Boolean(value));
|
|
11
|
+
const gitRepoCount = input.repos.filter((repo) => repo.gitDirExists).length;
|
|
12
|
+
const actorCount = new Set(input.repos.map((repo) => repo.actorId)).size;
|
|
13
|
+
const sync = {
|
|
14
|
+
exchangeCount: input.firstSync.summary.exchangeCount + input.secondSync.summary.exchangeCount,
|
|
15
|
+
pulledEventCount: input.firstSync.summary.pulledEventCount + input.secondSync.summary.pulledEventCount,
|
|
16
|
+
pushedEventCount: input.firstSync.summary.pushedEventCount + input.secondSync.summary.pushedEventCount,
|
|
17
|
+
acceptedEventCount: input.firstSync.summary.acceptedEventCount + input.secondSync.summary.acceptedEventCount,
|
|
18
|
+
conflictCount: input.firstSync.summary.conflictCount + input.secondSync.summary.conflictCount,
|
|
19
|
+
evidencePaths: syncEvidencePaths,
|
|
20
|
+
historyPaths: syncHistoryPaths
|
|
21
|
+
};
|
|
22
|
+
const gatePackageScope = input.gateArtifacts.gateSummary.packageScope;
|
|
23
|
+
const packageMaintenance = Array.isArray(gatePackageScope)
|
|
24
|
+
&& gatePackageScope.includes('@shapeshift-labs/frontier-swarm-codex');
|
|
25
|
+
const sharedRunId = input.repos.every((repo) => repo.runIds.length === 1 && repo.runIds[0] === input.runId);
|
|
26
|
+
const coverage = {
|
|
27
|
+
packageMaintenance,
|
|
28
|
+
distributedRunPilot: input.repos.length >= 2 && input.repos.every((repo) => repo.eventCount >= 3),
|
|
29
|
+
durableQueue: Number(input.queueArtifacts.summary.terminalOutcomeCount ?? 0) >= 1,
|
|
30
|
+
semanticLeases: input.leaseArtifacts.summary.granted === true && input.leaseArtifacts.summary.fenceValid === true,
|
|
31
|
+
coordinatorApplyEngine: input.leaseArtifacts.summary.fenceValid === true && Boolean(input.leaseArtifacts.summary.leaseClaim),
|
|
32
|
+
gateContract: input.gateArtifacts.gateSummary.failed === 0
|
|
33
|
+
&& input.gateArtifacts.gateSummary.blocked === 0
|
|
34
|
+
&& input.gateArtifacts.gateSummary.passed >= 1,
|
|
35
|
+
dashboardProjection: input.repos.every((repo) => Number(repo.dashboardCounts.decision ?? 0) >= 1),
|
|
36
|
+
telemetryRouting: Number(input.telemetryArtifacts.telemetrySummary.recordCount ?? 0) >= 1
|
|
37
|
+
&& Number(input.telemetryArtifacts.routingSummary.policySignalCount ?? 0) >= 0
|
|
38
|
+
};
|
|
39
|
+
const ok = Object.values(coverage).every(Boolean)
|
|
40
|
+
&& input.repos.length >= 2
|
|
41
|
+
&& gitRepoCount >= 2
|
|
42
|
+
&& actorCount >= 2
|
|
43
|
+
&& sharedRunId
|
|
44
|
+
&& sync.acceptedEventCount > 0
|
|
45
|
+
&& sync.conflictCount === 0
|
|
46
|
+
&& input.ackEvent.parents.length > 0;
|
|
47
|
+
return {
|
|
48
|
+
kind: FRONTIER_SWARM_CODEX_DISTRIBUTED_PILOT_KIND,
|
|
49
|
+
version: FRONTIER_SWARM_CODEX_DISTRIBUTED_PILOT_VERSION,
|
|
50
|
+
ok,
|
|
51
|
+
generatedAt: input.generatedAt,
|
|
52
|
+
runId: input.runId,
|
|
53
|
+
outDir: input.outDir,
|
|
54
|
+
proofPath: input.proofPath,
|
|
55
|
+
repoCount: input.repos.length,
|
|
56
|
+
gitRepoCount,
|
|
57
|
+
actorCount,
|
|
58
|
+
sharedRunId,
|
|
59
|
+
...(input.ackEvent.parents[0] ? { causalAckParentId: input.ackEvent.parents[0] } : {}),
|
|
60
|
+
sync,
|
|
61
|
+
artifacts: {
|
|
62
|
+
queueStatePath: input.queueArtifacts.queueStatePath,
|
|
63
|
+
queueEventsPath: input.queueArtifacts.queueEventsPath,
|
|
64
|
+
queueSummaryPath: input.queueArtifacts.queueSummaryPath,
|
|
65
|
+
semanticLeasePath: input.leaseArtifacts.semanticLeasePath,
|
|
66
|
+
gateExecutionsPath: input.gateArtifacts.gateExecutionsPath,
|
|
67
|
+
gateSummaryPath: input.gateArtifacts.gateSummaryPath,
|
|
68
|
+
modelTelemetryPath: input.telemetryArtifacts.modelTelemetryPath,
|
|
69
|
+
modelTelemetrySummaryPath: input.telemetryArtifacts.modelTelemetrySummaryPath,
|
|
70
|
+
liveRoutingPolicyPath: input.telemetryArtifacts.liveRoutingPolicyPath,
|
|
71
|
+
liveRoutingControllerPath: input.telemetryArtifacts.liveRoutingControllerPath,
|
|
72
|
+
liveRoutingHistoryPath: input.telemetryArtifacts.liveRoutingHistoryPath
|
|
73
|
+
},
|
|
74
|
+
coverage,
|
|
75
|
+
repos: input.repos,
|
|
76
|
+
summaries: {
|
|
77
|
+
queue: input.queueArtifacts.summary,
|
|
78
|
+
lease: input.leaseArtifacts.summary,
|
|
79
|
+
gate: input.gateArtifacts.gateSummary,
|
|
80
|
+
telemetry: input.telemetryArtifacts.telemetrySummary,
|
|
81
|
+
routing: input.telemetryArtifacts.routingSummary
|
|
82
|
+
}
|
|
83
|
+
};
|
|
84
|
+
}
|
|
85
|
+
//# sourceMappingURL=distributed-pilot-proof.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"distributed-pilot-proof.js","sourceRoot":"","sources":["../src/distributed-pilot-proof.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { type FrontierSwarmPlan } from '@shapeshift-labs/frontier-swarm';
|
|
2
|
+
import { type PilotQueueArtifacts, type PilotRepo } from './distributed-pilot-types.js';
|
|
3
|
+
export declare function writePilotQueueArtifacts(repo: PilotRepo, plan: FrontierSwarmPlan, generatedAt: string): Promise<PilotQueueArtifacts>;
|
|
4
|
+
//# sourceMappingURL=distributed-pilot-queue.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"distributed-pilot-queue.d.ts","sourceRoot":"","sources":["../src/distributed-pilot-queue.ts"],"names":[],"mappings":"AAYA,OAAO,EAA2B,KAAK,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AAElG,OAAO,EAKL,KAAK,mBAAmB,EACxB,KAAK,SAAS,EACf,MAAM,8BAA8B,CAAC;AAEtC,wBAAsB,wBAAwB,CAC5C,IAAI,EAAE,SAAS,EACf,IAAI,EAAE,iBAAiB,EACvB,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,mBAAmB,CAAC,CAuF9B"}
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
import fs from 'node:fs/promises';
|
|
2
|
+
import path from 'node:path';
|
|
3
|
+
import { completeQueueJob, createQueueEvidence, createQueueState, encodeQueueJsonl, enqueueQueueJob, inspectQueueState, leaseQueueJobs } from '@shapeshift-labs/frontier-queue';
|
|
4
|
+
import { createSwarmQueueOverlay } from '@shapeshift-labs/frontier-swarm';
|
|
5
|
+
import { stableHash, writeJsonAtomic } from './common.js';
|
|
6
|
+
import { FRONTIER_SWARM_CODEX_DISTRIBUTED_PILOT_KIND, FRONTIER_SWARM_CODEX_DISTRIBUTED_PILOT_QUEUE_EVENTS_FILE, FRONTIER_SWARM_CODEX_DISTRIBUTED_PILOT_QUEUE_STATE_FILE, FRONTIER_SWARM_CODEX_DISTRIBUTED_PILOT_QUEUE_SUMMARY_FILE } from './distributed-pilot-types.js';
|
|
7
|
+
export async function writePilotQueueArtifacts(repo, plan, generatedAt) {
|
|
8
|
+
const queueStatePath = path.join(repo.runDir, FRONTIER_SWARM_CODEX_DISTRIBUTED_PILOT_QUEUE_STATE_FILE);
|
|
9
|
+
const queueEventsPath = path.join(repo.runDir, FRONTIER_SWARM_CODEX_DISTRIBUTED_PILOT_QUEUE_EVENTS_FILE);
|
|
10
|
+
const queueSummaryPath = path.join(repo.runDir, FRONTIER_SWARM_CODEX_DISTRIBUTED_PILOT_QUEUE_SUMMARY_FILE);
|
|
11
|
+
const now = Date.parse(generatedAt);
|
|
12
|
+
let state = createQueueState({
|
|
13
|
+
id: `distributed-pilot:${plan.runId}`,
|
|
14
|
+
defaults: {
|
|
15
|
+
queue: 'distributed-pilot',
|
|
16
|
+
leaseMs: 30_000,
|
|
17
|
+
maxStalls: 0,
|
|
18
|
+
retry: { maxAttempts: 1, initialDelayMs: 0, maxDelayMs: 0, backoff: 1, jitter: 'none' },
|
|
19
|
+
deadLetterQueue: 'distributed-pilot:dead'
|
|
20
|
+
},
|
|
21
|
+
metadata: {
|
|
22
|
+
source: FRONTIER_SWARM_CODEX_DISTRIBUTED_PILOT_KIND,
|
|
23
|
+
planId: plan.id,
|
|
24
|
+
runId: plan.runId,
|
|
25
|
+
repoId: repo.id
|
|
26
|
+
}
|
|
27
|
+
});
|
|
28
|
+
state = enqueueQueueJob(state, {
|
|
29
|
+
id: 'distributed-pilot-job',
|
|
30
|
+
queue: 'distributed-pilot',
|
|
31
|
+
payload: { taskId: 'distributed-pilot-task', repoId: repo.id },
|
|
32
|
+
dedupeKey: stableHash(['distributed-pilot', plan.runId, 'distributed-pilot-task']),
|
|
33
|
+
dedupeMode: 'drop',
|
|
34
|
+
priority: 100,
|
|
35
|
+
runAt: now,
|
|
36
|
+
leaseMs: 30_000,
|
|
37
|
+
maxAttempts: 1,
|
|
38
|
+
maxStalls: 0,
|
|
39
|
+
tags: ['frontier-swarm-codex', 'distributed-pilot'],
|
|
40
|
+
metadata: { planId: plan.id, runId: plan.runId, lane: 'distributed-runtime' }
|
|
41
|
+
}, { now }).state;
|
|
42
|
+
const leased = leaseQueueJobs(state, {
|
|
43
|
+
queue: 'distributed-pilot',
|
|
44
|
+
workerId: repo.actorId,
|
|
45
|
+
count: 1,
|
|
46
|
+
now: now + 1,
|
|
47
|
+
leaseMs: 30_000
|
|
48
|
+
});
|
|
49
|
+
state = leased.state;
|
|
50
|
+
const leaseToken = leased.jobs?.[0]?.lease?.token;
|
|
51
|
+
if (!leaseToken)
|
|
52
|
+
throw new Error('distributed pilot queue lease was not created');
|
|
53
|
+
state = completeQueueJob(state, {
|
|
54
|
+
jobId: 'distributed-pilot-job',
|
|
55
|
+
leaseToken,
|
|
56
|
+
workerId: repo.actorId,
|
|
57
|
+
now: now + 2,
|
|
58
|
+
metadata: { completedBy: repo.actorId, source: FRONTIER_SWARM_CODEX_DISTRIBUTED_PILOT_KIND }
|
|
59
|
+
}).state;
|
|
60
|
+
const evidence = createQueueEvidence(state);
|
|
61
|
+
const inspection = inspectQueueState(state);
|
|
62
|
+
const overlay = createSwarmQueueOverlay({
|
|
63
|
+
runId: plan.runId,
|
|
64
|
+
results: [{
|
|
65
|
+
jobId: 'distributed-pilot-job',
|
|
66
|
+
status: 'completed',
|
|
67
|
+
mergeReadiness: 'verified-patch',
|
|
68
|
+
mergeDisposition: 'ready',
|
|
69
|
+
queueItemIds: ['distributed-pilot-task'],
|
|
70
|
+
changedPaths: ['packages/frontier-swarm-codex/src/distributed-pilot.ts'],
|
|
71
|
+
evidencePaths: [queueSummaryPath],
|
|
72
|
+
riskLevel: 'low',
|
|
73
|
+
metadata: { queueId: state.id, terminalOutcomeCount: state.terminalOutcomes.length }
|
|
74
|
+
}],
|
|
75
|
+
metadata: { source: FRONTIER_SWARM_CODEX_DISTRIBUTED_PILOT_KIND }
|
|
76
|
+
});
|
|
77
|
+
const summary = {
|
|
78
|
+
kind: 'frontier.swarm-codex.distributed-pilot.queue-summary',
|
|
79
|
+
version: 1,
|
|
80
|
+
generatedAt,
|
|
81
|
+
runId: plan.runId,
|
|
82
|
+
planId: plan.id,
|
|
83
|
+
queueId: state.id,
|
|
84
|
+
inspection,
|
|
85
|
+
evidence,
|
|
86
|
+
overlay,
|
|
87
|
+
terminalOutcomeCount: state.terminalOutcomes.length,
|
|
88
|
+
eventCount: state.events.length,
|
|
89
|
+
completed: inspection.completed
|
|
90
|
+
};
|
|
91
|
+
await writeJsonAtomic(queueStatePath, state);
|
|
92
|
+
await fs.writeFile(queueEventsPath, encodeQueueJsonl(state.events));
|
|
93
|
+
await writeJsonAtomic(queueSummaryPath, summary);
|
|
94
|
+
return { queueStatePath, queueEventsPath, queueSummaryPath, summary };
|
|
95
|
+
}
|
|
96
|
+
//# sourceMappingURL=distributed-pilot-queue.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"distributed-pilot-queue.js","sourceRoot":"","sources":["../src/distributed-pilot-queue.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { FrontierSwarmPlan } from '@shapeshift-labs/frontier-swarm';
|
|
2
|
+
import { type PilotGateArtifacts, type PilotRepo, type PilotTelemetryArtifacts } from './distributed-pilot-types.js';
|
|
3
|
+
export declare function writePilotTelemetryArtifacts(repo: PilotRepo, plan: FrontierSwarmPlan, gateArtifacts: PilotGateArtifacts, generatedAt: string): Promise<PilotTelemetryArtifacts>;
|
|
4
|
+
//# sourceMappingURL=distributed-pilot-telemetry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"distributed-pilot-telemetry.d.ts","sourceRoot":"","sources":["../src/distributed-pilot-telemetry.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAIV,iBAAiB,EAClB,MAAM,iCAAiC,CAAC;AAazC,OAAO,EAEL,KAAK,kBAAkB,EACvB,KAAK,SAAS,EACd,KAAK,uBAAuB,EAC7B,MAAM,8BAA8B,CAAC;AAEtC,wBAAsB,4BAA4B,CAChD,IAAI,EAAE,SAAS,EACf,IAAI,EAAE,iBAAiB,EACvB,aAAa,EAAE,kBAAkB,EACjC,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,uBAAuB,CAAC,CA+ClC"}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import path from 'node:path';
|
|
2
|
+
import { createCodexLiveRoutingController, createCodexLiveRoutingTelemetryRecord, normalizeCodexLiveRoutingOptions, writeCodexLiveRoutingArtifacts } from './live-routing.js';
|
|
3
|
+
import { resolveCodexRuntimeProjectionPaths } from './runtime-projection-common.js';
|
|
4
|
+
import { appendCodexRuntimeProjectionResult, finalizeCodexRuntimeProjectionStores, summarizeCodexModelTelemetry } from './runtime-projections.js';
|
|
5
|
+
import { FRONTIER_SWARM_CODEX_DISTRIBUTED_PILOT_KIND } from './distributed-pilot-types.js';
|
|
6
|
+
export async function writePilotTelemetryArtifacts(repo, plan, gateArtifacts, generatedAt) {
|
|
7
|
+
const paths = resolveCodexRuntimeProjectionPaths({ outDir: repo.runDir, cwd: repo.repoRoot }, repo.runDir);
|
|
8
|
+
const generatedAtMs = Date.parse(generatedAt);
|
|
9
|
+
const job = plan.jobs[0];
|
|
10
|
+
if (!job)
|
|
11
|
+
throw new Error('distributed pilot plan did not create a job');
|
|
12
|
+
const result = createTelemetryResult(job, gateArtifacts, generatedAtMs);
|
|
13
|
+
await appendCodexRuntimeProjectionResult({ paths, plan, job, result, generatedAt: generatedAtMs });
|
|
14
|
+
const finalized = await finalizeCodexRuntimeProjectionStores({ paths, plan, generatedAt: generatedAtMs });
|
|
15
|
+
const record = createCodexLiveRoutingTelemetryRecord({ plan, job, result, generatedAt: generatedAtMs });
|
|
16
|
+
const routingOptions = normalizeCodexLiveRoutingOptions({ enabled: true, routingMode: 'fill', minSamples: 1 });
|
|
17
|
+
const controller = createCodexLiveRoutingController({
|
|
18
|
+
plan,
|
|
19
|
+
records: [record],
|
|
20
|
+
options: routingOptions,
|
|
21
|
+
completedJobIds: [job.id],
|
|
22
|
+
generatedAt: generatedAtMs
|
|
23
|
+
});
|
|
24
|
+
const liveRoutingPolicyPath = path.join(repo.runDir, 'model-routing-policy.live.json');
|
|
25
|
+
const liveRoutingControllerPath = path.join(repo.runDir, 'routing-controller.json');
|
|
26
|
+
const liveRoutingHistoryPath = path.join(repo.runDir, 'routing-controller-history.json');
|
|
27
|
+
await writeCodexLiveRoutingArtifacts({
|
|
28
|
+
paths: { liveRoutingPolicyPath, liveRoutingControllerPath, liveRoutingHistoryPath },
|
|
29
|
+
options: routingOptions,
|
|
30
|
+
controller,
|
|
31
|
+
history: [controller]
|
|
32
|
+
});
|
|
33
|
+
const telemetrySummary = finalized.modelTelemetrySummary ?? summarizeCodexModelTelemetry([record], {
|
|
34
|
+
generatedAt: generatedAtMs,
|
|
35
|
+
runId: plan.runId,
|
|
36
|
+
planId: plan.id,
|
|
37
|
+
telemetryPath: paths.modelTelemetryPath
|
|
38
|
+
});
|
|
39
|
+
return {
|
|
40
|
+
modelTelemetryPath: paths.modelTelemetryPath ?? path.join(repo.runDir, 'model-telemetry.jsonl'),
|
|
41
|
+
modelTelemetrySummaryPath: paths.modelTelemetrySummaryPath ?? path.join(repo.runDir, 'model-telemetry-summary.json'),
|
|
42
|
+
liveRoutingPolicyPath,
|
|
43
|
+
liveRoutingControllerPath,
|
|
44
|
+
liveRoutingHistoryPath,
|
|
45
|
+
telemetrySummary: telemetrySummary,
|
|
46
|
+
routingSummary: {
|
|
47
|
+
kind: controller.kind,
|
|
48
|
+
id: controller.id,
|
|
49
|
+
policySignalCount: controller.policy.signals.length,
|
|
50
|
+
decisionCount: controller.decisions.length,
|
|
51
|
+
generatedAt: controller.generatedAt
|
|
52
|
+
}
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
function createTelemetryResult(job, gateArtifacts, generatedAtMs) {
|
|
56
|
+
return {
|
|
57
|
+
jobId: job.id,
|
|
58
|
+
status: 'completed',
|
|
59
|
+
mergeReadiness: 'verified-patch',
|
|
60
|
+
mergeDisposition: 'ready',
|
|
61
|
+
startedAt: generatedAtMs,
|
|
62
|
+
finishedAt: generatedAtMs + 10,
|
|
63
|
+
changedPaths: ['packages/frontier-swarm-codex/src/distributed-pilot.ts'],
|
|
64
|
+
evidencePaths: [gateArtifacts.gateExecutionsPath, gateArtifacts.gateSummaryPath],
|
|
65
|
+
verification: [{ command: ['node', 'test/smoke/distributed-pilot.mjs'], status: 0, required: true }],
|
|
66
|
+
metadata: {
|
|
67
|
+
source: FRONTIER_SWARM_CODEX_DISTRIBUTED_PILOT_KIND,
|
|
68
|
+
verificationGateEvidence: {
|
|
69
|
+
gateExecutionsPath: gateArtifacts.gateExecutionsPath,
|
|
70
|
+
gateSummaryPath: gateArtifacts.gateSummaryPath
|
|
71
|
+
},
|
|
72
|
+
contextBudget: {
|
|
73
|
+
measured: { promptBytes: 1024, estimatedInputTokens: 256 },
|
|
74
|
+
usage: { inputTokens: 320, cachedInputTokens: 80, uncachedInputTokens: 240, outputTokens: 96 }
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
};
|
|
78
|
+
}
|
|
79
|
+
//# sourceMappingURL=distributed-pilot-telemetry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"distributed-pilot-telemetry.js","sourceRoot":"","sources":["../src/distributed-pilot-telemetry.ts"],"names":[],"mappings":"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"}
|