@exaudeus/workrail 3.41.0 → 3.42.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (39) hide show
  1. package/dist/cli-worktrain.js +40 -11
  2. package/dist/console-ui/assets/{index-CQt4UhPB.js → index-DwfWMKvv.js} +1 -1
  3. package/dist/console-ui/index.html +1 -1
  4. package/dist/context-assembly/deps.d.ts +8 -0
  5. package/dist/context-assembly/deps.js +2 -0
  6. package/dist/context-assembly/index.d.ts +6 -0
  7. package/dist/context-assembly/index.js +50 -0
  8. package/dist/context-assembly/infra.d.ts +3 -0
  9. package/dist/context-assembly/infra.js +154 -0
  10. package/dist/context-assembly/types.d.ts +30 -0
  11. package/dist/context-assembly/types.js +2 -0
  12. package/dist/coordinators/pr-review.d.ts +3 -1
  13. package/dist/coordinators/pr-review.js +25 -4
  14. package/dist/daemon/workflow-runner.js +11 -0
  15. package/dist/domain/execution/state.d.ts +6 -6
  16. package/dist/manifest.json +64 -32
  17. package/dist/mcp/handlers/v2-workflow.d.ts +2 -2
  18. package/dist/mcp/output-schemas.d.ts +234 -234
  19. package/dist/mcp/tools.d.ts +2 -2
  20. package/dist/mcp/v2/tools.d.ts +24 -24
  21. package/dist/v2/durable-core/schemas/artifacts/assessment.d.ts +2 -2
  22. package/dist/v2/durable-core/schemas/artifacts/coordinator-signal.d.ts +2 -2
  23. package/dist/v2/durable-core/schemas/artifacts/loop-control.d.ts +6 -6
  24. package/dist/v2/durable-core/schemas/artifacts/review-verdict.d.ts +6 -6
  25. package/dist/v2/durable-core/schemas/compiled-workflow/index.d.ts +56 -56
  26. package/dist/v2/durable-core/schemas/execution-snapshot/blocked-snapshot.d.ts +83 -83
  27. package/dist/v2/durable-core/schemas/execution-snapshot/execution-snapshot.v1.d.ts +1024 -1024
  28. package/dist/v2/durable-core/schemas/export-bundle/index.d.ts +2336 -2336
  29. package/dist/v2/durable-core/schemas/session/dag-topology.d.ts +6 -6
  30. package/dist/v2/durable-core/schemas/session/events.d.ts +339 -339
  31. package/dist/v2/durable-core/schemas/session/gaps.d.ts +30 -30
  32. package/dist/v2/durable-core/schemas/session/manifest.d.ts +6 -6
  33. package/dist/v2/durable-core/schemas/session/outputs.d.ts +8 -8
  34. package/dist/v2/durable-core/schemas/session/validation-event.d.ts +3 -3
  35. package/docs/design/context-assembly-design-candidates.md +199 -0
  36. package/docs/design/context-assembly-implementation-plan.md +211 -0
  37. package/docs/design/context-assembly-review-findings.md +112 -0
  38. package/docs/ideas/backlog.md +64 -0
  39. package/package.json +1 -1
@@ -0,0 +1,154 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.createListRecentSessions = createListRecentSessions;
37
+ const fs = __importStar(require("node:fs/promises"));
38
+ const nodePath = __importStar(require("node:path"));
39
+ const node_crypto_1 = require("node:crypto");
40
+ const neverthrow_1 = require("neverthrow");
41
+ const result_js_1 = require("../runtime/result.js");
42
+ const index_js_1 = require("../v2/infra/local/session-summary-provider/index.js");
43
+ const index_js_2 = require("../v2/infra/local/data-dir/index.js");
44
+ const index_js_3 = require("../v2/infra/local/directory-listing/index.js");
45
+ const index_js_4 = require("../v2/infra/local/session-store/index.js");
46
+ const index_js_5 = require("../v2/infra/local/sha256/index.js");
47
+ const WRITE_NOT_SUPPORTED = 'context-assembly: write ops not supported in read-only session store';
48
+ function makeReadOnlyFsPort() {
49
+ return {
50
+ readFileUtf8(filePath) {
51
+ return (0, neverthrow_1.fromPromise)(fs.readFile(filePath, 'utf-8'), (e) => {
52
+ const nodeErr = e;
53
+ if (nodeErr.code === 'ENOENT')
54
+ return { code: 'FS_NOT_FOUND', message: nodeErr.message ?? 'not found' };
55
+ return { code: 'FS_IO_ERROR', message: nodeErr.message ?? String(e) };
56
+ });
57
+ },
58
+ readFileBytes(filePath) {
59
+ return (0, neverthrow_1.fromPromise)(fs.readFile(filePath).then((buf) => new Uint8Array(buf)), (e) => {
60
+ const nodeErr = e;
61
+ if (nodeErr.code === 'ENOENT')
62
+ return { code: 'FS_NOT_FOUND', message: nodeErr.message ?? 'not found' };
63
+ return { code: 'FS_IO_ERROR', message: nodeErr.message ?? String(e) };
64
+ });
65
+ },
66
+ stat(_filePath) {
67
+ throw new Error(WRITE_NOT_SUPPORTED);
68
+ },
69
+ mkdirp(_dirPath) { throw new Error(WRITE_NOT_SUPPORTED); },
70
+ fsyncDir(_dirPath) { throw new Error(WRITE_NOT_SUPPORTED); },
71
+ openWriteTruncate(_filePath) { throw new Error(WRITE_NOT_SUPPORTED); },
72
+ openAppend(_filePath) { throw new Error(WRITE_NOT_SUPPORTED); },
73
+ openExclusive(_filePath, _bytes) { throw new Error(WRITE_NOT_SUPPORTED); },
74
+ writeAll(_fd, _bytes) { throw new Error(WRITE_NOT_SUPPORTED); },
75
+ fsyncFile(_fd) { throw new Error(WRITE_NOT_SUPPORTED); },
76
+ closeFile(_fd) { throw new Error(WRITE_NOT_SUPPORTED); },
77
+ rename(_from, _to) { throw new Error(WRITE_NOT_SUPPORTED); },
78
+ unlink(_filePath) { throw new Error(WRITE_NOT_SUPPORTED); },
79
+ writeFileBytes(_filePath, _bytes) { throw new Error(WRITE_NOT_SUPPORTED); },
80
+ readdir(_dirPath) { throw new Error(WRITE_NOT_SUPPORTED); },
81
+ readdirWithMtime(_dirPath) { throw new Error(WRITE_NOT_SUPPORTED); },
82
+ };
83
+ }
84
+ function makeDirectoryListingOpsPort() {
85
+ return {
86
+ readdir(dirPath) {
87
+ return (0, neverthrow_1.fromPromise)(fs.readdir(dirPath), (e) => {
88
+ const nodeErr = e;
89
+ if (nodeErr.code === 'ENOENT')
90
+ return { code: 'FS_NOT_FOUND', message: nodeErr.message ?? 'not found' };
91
+ return { code: 'FS_IO_ERROR', message: nodeErr.message ?? String(e) };
92
+ });
93
+ },
94
+ readdirWithMtime(dirPath) {
95
+ return (0, neverthrow_1.fromPromise)((async () => {
96
+ const entries = await fs.readdir(dirPath, { withFileTypes: true });
97
+ const withMtimes = await Promise.all(entries.map(async (entry) => {
98
+ try {
99
+ const stat = await fs.stat(nodePath.join(dirPath, entry.name));
100
+ return { name: entry.name, mtimeMs: stat.mtimeMs };
101
+ }
102
+ catch {
103
+ return null;
104
+ }
105
+ }));
106
+ return withMtimes.filter((e) => e !== null);
107
+ })(), (e) => {
108
+ const nodeErr = e;
109
+ if (nodeErr.code === 'ENOENT')
110
+ return { code: 'FS_NOT_FOUND', message: nodeErr.message ?? 'not found' };
111
+ return { code: 'FS_IO_ERROR', message: nodeErr.message ?? String(e) };
112
+ });
113
+ },
114
+ };
115
+ }
116
+ function createListRecentSessions() {
117
+ return async (workspacePath, limit) => {
118
+ try {
119
+ const dataDir = new index_js_2.LocalDataDirV2(process.env);
120
+ const directoryListingOps = makeDirectoryListingOpsPort();
121
+ const directoryListing = new index_js_3.LocalDirectoryListingV2(directoryListingOps);
122
+ const fsPort = makeReadOnlyFsPort();
123
+ const sha256 = new index_js_5.NodeSha256V2();
124
+ const sessionStore = new index_js_4.LocalSessionEventLogStoreV2(dataDir, fsPort, sha256);
125
+ const provider = new index_js_1.LocalSessionSummaryProviderV2({
126
+ directoryListing,
127
+ dataDir,
128
+ sessionStore,
129
+ });
130
+ const result = await provider.loadHealthySummaries();
131
+ if (result.isErr()) {
132
+ return (0, result_js_1.err)(`listRecentSessions: ${result.error.message}`);
133
+ }
134
+ const workspaceHash = `sha256:${(0, node_crypto_1.createHash)('sha256').update(workspacePath).digest('hex')}`;
135
+ const notes = result.value
136
+ .filter((s) => s.observations.repoRootHash === null ||
137
+ s.observations.repoRootHash === workspaceHash)
138
+ .slice()
139
+ .sort((a, b) => (b.lastModifiedMs ?? Date.now()) - (a.lastModifiedMs ?? Date.now()))
140
+ .slice(0, limit)
141
+ .map((s) => ({
142
+ sessionId: String(s.sessionId),
143
+ recapSnippet: s.recapSnippet != null ? String(s.recapSnippet) : null,
144
+ sessionTitle: s.sessionTitle,
145
+ gitBranch: s.observations.gitBranch,
146
+ lastModifiedMs: s.lastModifiedMs ?? Date.now(),
147
+ }));
148
+ return (0, result_js_1.ok)(notes);
149
+ }
150
+ catch (e) {
151
+ return (0, result_js_1.err)(`listRecentSessions error: ${e instanceof Error ? e.message : String(e)}`);
152
+ }
153
+ };
154
+ }
@@ -0,0 +1,30 @@
1
+ import type { Result } from '../runtime/result.js';
2
+ export type AssemblyTask = {
3
+ readonly kind: 'pr_review';
4
+ readonly prNumber: number;
5
+ readonly workspacePath: string;
6
+ readonly payloadBody?: string;
7
+ } | {
8
+ readonly kind: 'coding_task';
9
+ readonly issueNumber?: number;
10
+ readonly workspacePath: string;
11
+ readonly payloadBody?: string;
12
+ };
13
+ export interface SessionNote {
14
+ readonly sessionId: string;
15
+ readonly recapSnippet: string | null;
16
+ readonly sessionTitle: string | null;
17
+ readonly gitBranch: string | null;
18
+ readonly lastModifiedMs: number;
19
+ }
20
+ export interface ContextBundle {
21
+ readonly task: AssemblyTask;
22
+ readonly gitDiff: Result<string, string>;
23
+ readonly priorSessionNotes: Result<readonly SessionNote[], string>;
24
+ readonly assembledAt: string;
25
+ }
26
+ export interface RenderOpts {
27
+ }
28
+ export interface ContextAssembler {
29
+ assemble(task: AssemblyTask): Promise<ContextBundle>;
30
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,5 +1,6 @@
1
1
  import type { Result } from '../runtime/result.js';
2
2
  import type { AwaitResult } from '../cli/commands/worktrain-await.js';
3
+ import type { ContextAssembler } from '../context-assembly/types.js';
3
4
  export type ReviewSeverity = 'clean' | 'minor' | 'blocking' | 'unknown';
4
5
  export interface ReviewFindings {
5
6
  readonly severity: ReviewSeverity;
@@ -36,7 +37,8 @@ export interface PrReviewOpts {
36
37
  readonly port?: number;
37
38
  }
38
39
  export interface CoordinatorDeps {
39
- readonly spawnSession: (workflowId: string, goal: string, workspace: string) => Promise<Result<string, string>>;
40
+ readonly spawnSession: (workflowId: string, goal: string, workspace: string, context?: Readonly<Record<string, unknown>>) => Promise<Result<string, string>>;
41
+ readonly contextAssembler?: ContextAssembler;
40
42
  readonly awaitSessions: (handles: readonly string[], timeoutMs: number) => Promise<AwaitResult>;
41
43
  readonly getAgentResult: (sessionHandle: string) => Promise<{
42
44
  recapMarkdown: string | null;
@@ -9,6 +9,7 @@ exports.drainMessageQueue = drainMessageQueue;
9
9
  exports.runPrReviewCoordinator = runPrReviewCoordinator;
10
10
  const result_js_1 = require("../runtime/result.js");
11
11
  const review_verdict_js_1 = require("../v2/durable-core/schemas/artifacts/review-verdict.js");
12
+ const index_js_1 = require("../context-assembly/index.js");
12
13
  const MAX_FIX_PASSES = 3;
13
14
  const CHILD_SESSION_TIMEOUT_MS = 15 * 60 * 1000;
14
15
  const COORDINATOR_MAX_MS = 90 * 60 * 1000;
@@ -377,13 +378,33 @@ async function runPrReviewCoordinator(deps, opts) {
377
378
  }
378
379
  const reviewHandles = new Map();
379
380
  const spawnErrors = new Map();
381
+ const spawnContexts = new Map();
380
382
  for (const pr of prs) {
381
383
  const goal = `Review PR #${pr.number} "${pr.title}" before merge`;
382
384
  if (opts.dryRun) {
383
385
  log(` PR #${pr.number} [dry-run] would spawn mr-review-workflow-agentic`);
384
386
  continue;
385
387
  }
386
- const spawnResult = await deps.spawnSession('mr-review-workflow-agentic', goal, opts.workspace);
388
+ let spawnContext;
389
+ if (deps.contextAssembler) {
390
+ const bundle = await deps.contextAssembler.assemble({
391
+ kind: 'pr_review',
392
+ prNumber: pr.number,
393
+ workspacePath: opts.workspace,
394
+ });
395
+ const rendered = (0, index_js_1.renderContextBundle)(bundle);
396
+ if (rendered.trim().length > 0) {
397
+ spawnContext = { assembledContextSummary: rendered };
398
+ spawnContexts.set(pr.number, spawnContext);
399
+ }
400
+ if (bundle.gitDiff.kind === 'err') {
401
+ deps.stderr(`[WARN coord:context prNumber=${pr.number}] gitDiff failed: ${bundle.gitDiff.error}`);
402
+ }
403
+ if (bundle.priorSessionNotes.kind === 'err') {
404
+ deps.stderr(`[WARN coord:context prNumber=${pr.number}] priorSessionNotes failed: ${bundle.priorSessionNotes.error}`);
405
+ }
406
+ }
407
+ const spawnResult = await deps.spawnSession('mr-review-workflow-agentic', goal, opts.workspace, spawnContext);
387
408
  if (spawnResult.kind === 'err') {
388
409
  spawnErrors.set(pr.number, spawnResult.error);
389
410
  log(` PR #${pr.number} spawn failed: ${spawnResult.error}`);
@@ -462,7 +483,7 @@ async function runPrReviewCoordinator(deps, opts) {
462
483
  sessionHandles: [handle],
463
484
  };
464
485
  if (severity === 'minor' && findings && sessionResult.outcome === 'success') {
465
- const processedOutcome = await runFixAgentLoop(deps, opts, pr, findings, outcome, coordinatorStartMs, log);
486
+ const processedOutcome = await runFixAgentLoop(deps, opts, pr, findings, outcome, coordinatorStartMs, log, spawnContexts.get(prNum));
466
487
  outcomes.set(prNum, processedOutcome);
467
488
  }
468
489
  else {
@@ -537,7 +558,7 @@ async function runPrReviewCoordinator(deps, opts) {
537
558
  await writeReport(deps, reportPath, reportLines, result);
538
559
  return result;
539
560
  }
540
- async function runFixAgentLoop(deps, opts, pr, initialFindings, initialOutcome, coordinatorStartMs, log) {
561
+ async function runFixAgentLoop(deps, opts, pr, initialFindings, initialOutcome, coordinatorStartMs, log, reviewSpawnContext) {
541
562
  let passCount = 0;
542
563
  let currentFindings = initialFindings;
543
564
  let sessionHandles = [...initialOutcome.sessionHandles];
@@ -614,7 +635,7 @@ async function runFixAgentLoop(deps, opts, pr, initialFindings, initialOutcome,
614
635
  };
615
636
  }
616
637
  const reReviewGoal = `Re-review PR #${pr.number} after fixes (pass ${passCount})`;
617
- const reReviewSpawnResult = await deps.spawnSession('mr-review-workflow-agentic', reReviewGoal, opts.workspace);
638
+ const reReviewSpawnResult = await deps.spawnSession('mr-review-workflow-agentic', reReviewGoal, opts.workspace, reviewSpawnContext);
618
639
  if (reReviewSpawnResult.kind === 'err') {
619
640
  log(` PR #${pr.number} -> re-review spawn failed: ${reReviewSpawnResult.error}`);
620
641
  return {
@@ -85,6 +85,7 @@ exports.DAEMON_SESSIONS_DIR = path.join(os.homedir(), '.workrail', 'daemon-sessi
85
85
  const MAX_ORPHAN_AGE_MS = 2 * 60 * 60 * 1000;
86
86
  const WORKRAIL_DIR = path.join(os.homedir(), '.workrail');
87
87
  const WORKSPACE_CONTEXT_MAX_BYTES = 32 * 1024;
88
+ const MAX_ASSEMBLED_CONTEXT_BYTES = 8192;
88
89
  const WORKSPACE_CONTEXT_CANDIDATE_PATHS = [
89
90
  '.claude/CLAUDE.md',
90
91
  'CLAUDE.md',
@@ -1307,6 +1308,16 @@ function buildSystemPrompt(trigger, sessionState, soulContent, workspaceContext)
1307
1308
  lines.push('## Workspace Context (from AGENTS.md / CLAUDE.md)');
1308
1309
  lines.push(workspaceContext);
1309
1310
  }
1311
+ const assembledContextSummary = trigger.context?.['assembledContextSummary'];
1312
+ if (typeof assembledContextSummary === 'string' && assembledContextSummary.trim().length > 0) {
1313
+ let ctxStr = assembledContextSummary;
1314
+ if (Buffer.byteLength(ctxStr, 'utf8') > MAX_ASSEMBLED_CONTEXT_BYTES) {
1315
+ ctxStr = ctxStr.slice(0, MAX_ASSEMBLED_CONTEXT_BYTES) + '\n[Prior context truncated at 8KB]';
1316
+ }
1317
+ lines.push('');
1318
+ lines.push('## Prior Context');
1319
+ lines.push(ctxStr.trim());
1320
+ }
1310
1321
  if (trigger.referenceUrls && trigger.referenceUrls.length > 0) {
1311
1322
  lines.push('');
1312
1323
  lines.push('## Reference documents');
@@ -20,12 +20,12 @@ export declare const LoopFrameSchema: z.ZodObject<{
20
20
  iteration: z.ZodNumber;
21
21
  bodyIndex: z.ZodNumber;
22
22
  }, "strip", z.ZodTypeAny, {
23
- loopId: string;
24
23
  iteration: number;
24
+ loopId: string;
25
25
  bodyIndex: number;
26
26
  }, {
27
- loopId: string;
28
27
  iteration: number;
28
+ loopId: string;
29
29
  bodyIndex: number;
30
30
  }>;
31
31
  export declare const StepInstanceIdSchema: z.ZodObject<{
@@ -34,23 +34,23 @@ export declare const StepInstanceIdSchema: z.ZodObject<{
34
34
  loopId: z.ZodString;
35
35
  iteration: z.ZodNumber;
36
36
  }, "strip", z.ZodTypeAny, {
37
- loopId: string;
38
37
  iteration: number;
39
- }, {
40
38
  loopId: string;
39
+ }, {
41
40
  iteration: number;
41
+ loopId: string;
42
42
  }>, "many">;
43
43
  }, "strip", z.ZodTypeAny, {
44
44
  stepId: string;
45
45
  loopPath: {
46
- loopId: string;
47
46
  iteration: number;
47
+ loopId: string;
48
48
  }[];
49
49
  }, {
50
50
  stepId: string;
51
51
  loopPath: {
52
- loopId: string;
53
52
  iteration: number;
53
+ loopId: string;
54
54
  }[];
55
55
  }>;
56
56
  export declare const ExecutionStateSchema: z.ZodType<ExecutionState>;
@@ -238,8 +238,8 @@
238
238
  "bytes": 31
239
239
  },
240
240
  "cli-worktrain.js": {
241
- "sha256": "d2b9e9e4f6d58be3a548d77cbd8a1d029693f4b1b3c4592ebe063ddb19c5f1f8",
242
- "bytes": 45440
241
+ "sha256": "75410de5c741ed86839f2834b69ff1dbf18b0284140a765a8a4ffd34257d19a3",
242
+ "bytes": 46706
243
243
  },
244
244
  "cli.d.ts": {
245
245
  "sha256": "43e818adf60173644896298637f47b01d5819b17eda46eaa32d0c7d64724d012",
@@ -449,16 +449,16 @@
449
449
  "sha256": "5fe866e54f796975dec5d8ba9983aefd86074db212d3fccd64eed04bc9f0b3da",
450
450
  "bytes": 8011
451
451
  },
452
- "console-ui/assets/index-CQt4UhPB.js": {
453
- "sha256": "401861d73e3e6a62d6fa42977fd52b20e114a68947a7bcb83b090cbd526fdeb3",
454
- "bytes": 760528
455
- },
456
452
  "console-ui/assets/index-DGj8EsFR.css": {
457
453
  "sha256": "3bdb55ec0957928e0ebbb86a7d6b36d28f7ba7d5c0f3e236fd8f2e2aacee2fa4",
458
454
  "bytes": 60631
459
455
  },
456
+ "console-ui/assets/index-DwfWMKvv.js": {
457
+ "sha256": "14a935b1b1ed6b4d2a178a1f21bd657c5f9bcede837ac06b35fbb713114e99d0",
458
+ "bytes": 760528
459
+ },
460
460
  "console-ui/index.html": {
461
- "sha256": "109c9d143b49794ec3b0a1ed4afb8a6a5c9cf7243c5c7ddc4865413ab12a9e10",
461
+ "sha256": "d0fec3b4d1f1156b9f4df60f7e5fe72af7f12fa8a29c90a331f0706dda67b908",
462
462
  "bytes": 417
463
463
  },
464
464
  "console/standalone-console.d.ts": {
@@ -469,13 +469,45 @@
469
469
  "sha256": "759d8be0b9804aa2e6301f14afb2dc97d45231434058f64d1cfbec6e025a1991",
470
470
  "bytes": 6325
471
471
  },
472
+ "context-assembly/deps.d.ts": {
473
+ "sha256": "d699ae8f8f081d92708eba5969e35cf24a45d3f86de72d308ffc4a542b954bc3",
474
+ "bytes": 493
475
+ },
476
+ "context-assembly/deps.js": {
477
+ "sha256": "d43aa81f5bc89faa359e0f97c814ba25155591ff078fbb9bfd40f8c7c9683230",
478
+ "bytes": 77
479
+ },
480
+ "context-assembly/index.d.ts": {
481
+ "sha256": "e2fa1a0b508d08f7f9e3177c49cc74e0be7c3412f15f6fcb84f029947c092d22",
482
+ "bytes": 485
483
+ },
484
+ "context-assembly/index.js": {
485
+ "sha256": "00debe14d150ee573e163758b237b1f9a844419a666082d1e819fb9b633f2210",
486
+ "bytes": 2072
487
+ },
488
+ "context-assembly/infra.d.ts": {
489
+ "sha256": "e880f76a8ca47864fdd60c60fe930de68cc13bd73538fc28e0140507865b2439",
490
+ "bytes": 242
491
+ },
492
+ "context-assembly/infra.js": {
493
+ "sha256": "004b7b82a6bb80c3519b4d63a683c18548683a1b1380fc181c4c1d6d68f730f1",
494
+ "bytes": 7526
495
+ },
496
+ "context-assembly/types.d.ts": {
497
+ "sha256": "cdfef8127cbf9197142ce945a59745100bbb06d7d84851615d92eb00e367838e",
498
+ "bytes": 937
499
+ },
500
+ "context-assembly/types.js": {
501
+ "sha256": "d43aa81f5bc89faa359e0f97c814ba25155591ff078fbb9bfd40f8c7c9683230",
502
+ "bytes": 77
503
+ },
472
504
  "coordinators/pr-review.d.ts": {
473
- "sha256": "15bb232eceb035d137b996590f44692a03d05674dfd7a7bd6bb5299345d55fd3",
474
- "bytes": 3667
505
+ "sha256": "8f6794d60ecabaf6898199120620fcd5aac932b64654636bc8d308103c987e57",
506
+ "bytes": 3832
475
507
  },
476
508
  "coordinators/pr-review.js": {
477
- "sha256": "c58a423eab61e1f210f6952129a9a0ab1ac21c648103149887328f71efb8b5b2",
478
- "bytes": 31196
509
+ "sha256": "84b51f931eb55d908de8c60f90b4d4b66540054791a28ce2f07426a841fed386",
510
+ "bytes": 32297
479
511
  },
480
512
  "core/error-handler.d.ts": {
481
513
  "sha256": "80451f12ac8e185133ec3dc4c57285491a785f27525ed21e729db1da3f61010d",
@@ -522,8 +554,8 @@
522
554
  "bytes": 6154
523
555
  },
524
556
  "daemon/workflow-runner.js": {
525
- "sha256": "53db37bda845975ca06f81e4df9db458bb5edc6a531f9574a4aeee08f06041bb",
526
- "bytes": 84353
557
+ "sha256": "94fad3401dca1d854c3d254ac8b6e7ab5ae9a942c47e9c5900383a4e017c820e",
558
+ "bytes": 84923
527
559
  },
528
560
  "di/container.d.ts": {
529
561
  "sha256": "003bb7fb7478d627524b9b1e76bd0a963a243794a687ff233b96dc0e33a06d9f",
@@ -574,7 +606,7 @@
574
606
  "bytes": 505
575
607
  },
576
608
  "domain/execution/state.d.ts": {
577
- "sha256": "a2e7422f004ceb5b049fd6bf6ea3a76f02aee1a8321456f270655e3dcf4a06ab",
609
+ "sha256": "c86572f527cc34be53de9e155e839f7061d8aee69ee0f2b02415b211657bcd5c",
578
610
  "bytes": 1469
579
611
  },
580
612
  "domain/execution/state.js": {
@@ -1094,7 +1126,7 @@
1094
1126
  "bytes": 22303
1095
1127
  },
1096
1128
  "mcp/handlers/v2-workflow.d.ts": {
1097
- "sha256": "5bada214e39f58cbbe76037e48e5fd696e2715d66b23c214d8bf3d1a8c7ee0d1",
1129
+ "sha256": "e219bca56cef4f1007c23c802a8f66c45ec981fdf3731624a957be1ef2a91206",
1098
1130
  "bytes": 4343
1099
1131
  },
1100
1132
  "mcp/handlers/v2-workflow.js": {
@@ -1126,7 +1158,7 @@
1126
1158
  "bytes": 7991
1127
1159
  },
1128
1160
  "mcp/output-schemas.d.ts": {
1129
- "sha256": "7256e28820efc7093db818fffbeca547efbdd5aca4e9d42341c47805403479d3",
1161
+ "sha256": "aedab6be485391586f64655be2ad590a590684b548c1d55b7e216d06656a4e7f",
1130
1162
  "bytes": 93176
1131
1163
  },
1132
1164
  "mcp/output-schemas.js": {
@@ -1198,7 +1230,7 @@
1198
1230
  "bytes": 479
1199
1231
  },
1200
1232
  "mcp/tools.d.ts": {
1201
- "sha256": "d29bd8bfb33e9e0457deb55fc79929bd25252d0d6ec28f4768fbacc9fb2c79e9",
1233
+ "sha256": "43fdc8cb0cf166f4bd66140dd5c101695105cd745cada413345b579c255ef43c",
1202
1234
  "bytes": 5976
1203
1235
  },
1204
1236
  "mcp/tools.js": {
@@ -1302,7 +1334,7 @@
1302
1334
  "bytes": 3832
1303
1335
  },
1304
1336
  "mcp/v2/tools.d.ts": {
1305
- "sha256": "8b4b838e78f7eddeeb9f9c987611c20781988fd3d5185f233bb49f49bb9f39c5",
1337
+ "sha256": "c789dde31543ea0e43c0e756b8e84c32119f6a26544af50a4d6a00caca2e0d55",
1306
1338
  "bytes": 7979
1307
1339
  },
1308
1340
  "mcp/v2/tools.js": {
@@ -2110,7 +2142,7 @@
2110
2142
  "bytes": 456
2111
2143
  },
2112
2144
  "v2/durable-core/schemas/artifacts/assessment.d.ts": {
2113
- "sha256": "ad7f345026455625144db69e422956ee198537041fbf66e361a81868a38013e8",
2145
+ "sha256": "27b9ec4bbc2e804cd96f250e12b78081d657a950758f58d9256ab0e2b9538af4",
2114
2146
  "bytes": 2000
2115
2147
  },
2116
2148
  "v2/durable-core/schemas/artifacts/assessment.js": {
@@ -2118,7 +2150,7 @@
2118
2150
  "bytes": 1492
2119
2151
  },
2120
2152
  "v2/durable-core/schemas/artifacts/coordinator-signal.d.ts": {
2121
- "sha256": "9bf3d18568555f2da5a21a54e1e83934ab6f6a94df10ab4d39016a5e1561962a",
2153
+ "sha256": "89115212f7bfc13b93dcdfb45bdde2094ec25360ce2ca6f91682e3ee30646631",
2122
2154
  "bytes": 1407
2123
2155
  },
2124
2156
  "v2/durable-core/schemas/artifacts/coordinator-signal.js": {
@@ -2134,7 +2166,7 @@
2134
2166
  "bytes": 4827
2135
2167
  },
2136
2168
  "v2/durable-core/schemas/artifacts/loop-control.d.ts": {
2137
- "sha256": "714e2980400da0aaf814c691d8915653393316e70bc9af9da72130bb07e959be",
2169
+ "sha256": "95dabfdcedb1a71c58c38a805dcf24c76254783bc0b2c7d429a3b8ffb94202ed",
2138
2170
  "bytes": 2768
2139
2171
  },
2140
2172
  "v2/durable-core/schemas/artifacts/loop-control.js": {
@@ -2142,7 +2174,7 @@
2142
2174
  "bytes": 2115
2143
2175
  },
2144
2176
  "v2/durable-core/schemas/artifacts/review-verdict.d.ts": {
2145
- "sha256": "9f62b447edc4dfb042e1316c4cc3f005dd0afef2e6e30e6d9fff5c89e048c68c",
2177
+ "sha256": "3190c4c99a6f7fe85d56b4e2f16ee2239d5f8b1addf995b76359f231909cc3d3",
2146
2178
  "bytes": 1562
2147
2179
  },
2148
2180
  "v2/durable-core/schemas/artifacts/review-verdict.js": {
@@ -2150,7 +2182,7 @@
2150
2182
  "bytes": 1206
2151
2183
  },
2152
2184
  "v2/durable-core/schemas/compiled-workflow/index.d.ts": {
2153
- "sha256": "451822411a8c1ca5236939b6dc7a58e0a00aa4cf82bcec67ce7cc38e942fa820",
2185
+ "sha256": "49f355aaf9b5c42e59f467935425625149456cabe047017ce7a11501ed0cf6a3",
2154
2186
  "bytes": 11821
2155
2187
  },
2156
2188
  "v2/durable-core/schemas/compiled-workflow/index.js": {
@@ -2158,7 +2190,7 @@
2158
2190
  "bytes": 2896
2159
2191
  },
2160
2192
  "v2/durable-core/schemas/execution-snapshot/blocked-snapshot.d.ts": {
2161
- "sha256": "0c3fc8cc2c5cd51eba4f12d0f6997d57c1554a76497290c7092f51fb3d305c36",
2193
+ "sha256": "20803da6569c5931e3fe1bbdf4b90889c8b5a78063607fbddba2bba6a7d02d50",
2162
2194
  "bytes": 29364
2163
2195
  },
2164
2196
  "v2/durable-core/schemas/execution-snapshot/blocked-snapshot.js": {
@@ -2166,7 +2198,7 @@
2166
2198
  "bytes": 5033
2167
2199
  },
2168
2200
  "v2/durable-core/schemas/execution-snapshot/execution-snapshot.v1.d.ts": {
2169
- "sha256": "19cc7c9f42f12eda9f65d5c497535aa7d39c1f387ce70bb95915bdb7948b94cf",
2201
+ "sha256": "6590da35f0737e0205f854136af1abdc8a5ab489a09a8e979abfdf407fe43848",
2170
2202
  "bytes": 222096
2171
2203
  },
2172
2204
  "v2/durable-core/schemas/execution-snapshot/execution-snapshot.v1.js": {
@@ -2190,7 +2222,7 @@
2190
2222
  "bytes": 3397
2191
2223
  },
2192
2224
  "v2/durable-core/schemas/export-bundle/index.d.ts": {
2193
- "sha256": "521e9667b1a5167f44b8d67eec35b7b237733f41d568a150f84e31796f0ba546",
2225
+ "sha256": "f1a2f7a927e05c2acda22cb93d494b5e3278bdd8b79eb8102897a005fcc80798",
2194
2226
  "bytes": 535324
2195
2227
  },
2196
2228
  "v2/durable-core/schemas/export-bundle/index.js": {
@@ -2238,7 +2270,7 @@
2238
2270
  "bytes": 3484
2239
2271
  },
2240
2272
  "v2/durable-core/schemas/session/dag-topology.d.ts": {
2241
- "sha256": "67fc952e5af8f364764996c62a685bf9db8e7d73727f639cbf87cb1b4f5d8dd6",
2273
+ "sha256": "ab9b9e8a0c6d2f4cfb5be327f982db3f2b8a77c8f4fb90bfe44eee0a38cb6abb",
2242
2274
  "bytes": 3018
2243
2275
  },
2244
2276
  "v2/durable-core/schemas/session/dag-topology.js": {
@@ -2246,7 +2278,7 @@
2246
2278
  "bytes": 2138
2247
2279
  },
2248
2280
  "v2/durable-core/schemas/session/events.d.ts": {
2249
- "sha256": "e49769b06e5ce888cf94c935c1f204b8def5fecc33ce526fc9c00655439d88d7",
2281
+ "sha256": "b1465390a6937cea6bf624f9487d8a6c8cdcd39d09c0df3485e445e635edf1f5",
2250
2282
  "bytes": 80635
2251
2283
  },
2252
2284
  "v2/durable-core/schemas/session/events.js": {
@@ -2254,7 +2286,7 @@
2254
2286
  "bytes": 12950
2255
2287
  },
2256
2288
  "v2/durable-core/schemas/session/gaps.d.ts": {
2257
- "sha256": "64580ca179127c75c8b0ec8b8c5df3cb87ec315605220a2cb42eb9da48407bdc",
2289
+ "sha256": "85d17b865a1ebe9deaa0c99d69039c514b217362715c6697b0bc5908cbf9fff0",
2258
2290
  "bytes": 8983
2259
2291
  },
2260
2292
  "v2/durable-core/schemas/session/gaps.js": {
@@ -2270,7 +2302,7 @@
2270
2302
  "bytes": 715
2271
2303
  },
2272
2304
  "v2/durable-core/schemas/session/manifest.d.ts": {
2273
- "sha256": "ac903651f9cb59faedae49642ff9d9b52ddaa0a8c25cb3f6129b2d69572b914e",
2305
+ "sha256": "c34812c1d804dd2d5b8bea8a8cd0ff8ddebd057e8c898bfdd14d8e5b9c0d5f06",
2274
2306
  "bytes": 1594
2275
2307
  },
2276
2308
  "v2/durable-core/schemas/session/manifest.js": {
@@ -2278,7 +2310,7 @@
2278
2310
  "bytes": 1526
2279
2311
  },
2280
2312
  "v2/durable-core/schemas/session/outputs.d.ts": {
2281
- "sha256": "bee0f72882c6eea71273b9ff6a695264e6a425408685dde6ced74d783274df66",
2313
+ "sha256": "0501691be580d8dd52464c124b5e2433256f2e2ece2c0618f0d261137ffee1cc",
2282
2314
  "bytes": 4285
2283
2315
  },
2284
2316
  "v2/durable-core/schemas/session/outputs.js": {
@@ -2302,7 +2334,7 @@
2302
2334
  "bytes": 77
2303
2335
  },
2304
2336
  "v2/durable-core/schemas/session/validation-event.d.ts": {
2305
- "sha256": "c5aa9b265f60edd681d07fd5252292cc89f33e822b2b59e355a7c88b55c6556f",
2337
+ "sha256": "59fd9b647896914ec895f8340edf540c94456db77055bccebce7059253fc8ca2",
2306
2338
  "bytes": 2206
2307
2339
  },
2308
2340
  "v2/durable-core/schemas/session/validation-event.js": {
@@ -86,8 +86,8 @@ export declare function buildV2WorkflowListItem(options: {
86
86
  } | {
87
87
  examples: string[];
88
88
  staleness?: {
89
- level: "none" | "possible" | "likely";
90
89
  reason: string;
90
+ level: "none" | "possible" | "likely";
91
91
  specVersionAtLastReview?: number | undefined;
92
92
  } | undefined;
93
93
  workflowId: string;
@@ -100,8 +100,8 @@ export declare function buildV2WorkflowListItem(options: {
100
100
  } | {
101
101
  examples?: undefined;
102
102
  staleness?: {
103
- level: "none" | "possible" | "likely";
104
103
  reason: string;
104
+ level: "none" | "possible" | "likely";
105
105
  specVersionAtLastReview?: number | undefined;
106
106
  } | undefined;
107
107
  workflowId: string;