voratiq 0.1.0-beta.21 → 0.1.0-beta.22

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 (149) hide show
  1. package/README.md +18 -22
  2. package/dist/agents/launch/chat.d.ts +3 -1
  3. package/dist/agents/launch/chat.js +2 -0
  4. package/dist/bin.js +28 -7
  5. package/dist/cli/auto.js +1 -0
  6. package/dist/cli/contract.d.ts +26 -17
  7. package/dist/cli/contract.js +3 -1
  8. package/dist/cli/doctor.d.ts +12 -0
  9. package/dist/cli/doctor.js +115 -0
  10. package/dist/cli/list.js +4 -1
  11. package/dist/cli/operator-envelope.d.ts +19 -6
  12. package/dist/cli/operator-envelope.js +61 -1
  13. package/dist/cli/run.js +2 -0
  14. package/dist/cli/verify.d.ts +1 -1
  15. package/dist/cli/verify.js +48 -9
  16. package/dist/commands/auto/command.d.ts +1 -0
  17. package/dist/commands/auto/command.js +22 -12
  18. package/dist/commands/auto/errors.js +1 -1
  19. package/dist/commands/doctor/agents.d.ts +5 -0
  20. package/dist/commands/{init → doctor}/agents.js +37 -19
  21. package/dist/commands/doctor/command.d.ts +22 -0
  22. package/dist/commands/doctor/command.js +99 -0
  23. package/dist/commands/doctor/environment.d.ts +2 -0
  24. package/dist/commands/{init → doctor}/environment.js +38 -6
  25. package/dist/commands/{init/types.d.ts → doctor/fix-types.d.ts} +30 -9
  26. package/dist/commands/doctor/fix.d.ts +2 -0
  27. package/dist/commands/{init/command.js → doctor/fix.js} +106 -10
  28. package/dist/commands/doctor/reconcile.d.ts +2 -0
  29. package/dist/commands/doctor/reconcile.js +101 -0
  30. package/dist/commands/interactive/lifecycle.d.ts +2 -0
  31. package/dist/commands/interactive/lifecycle.js +8 -0
  32. package/dist/commands/list/command.d.ts +1 -0
  33. package/dist/commands/list/command.js +211 -352
  34. package/dist/commands/list/normalization.d.ts +56 -0
  35. package/dist/commands/list/normalization.js +317 -0
  36. package/dist/commands/message/command.d.ts +2 -1
  37. package/dist/commands/message/command.js +35 -14
  38. package/dist/commands/message/errors.d.ts +12 -3
  39. package/dist/commands/message/errors.js +19 -3
  40. package/dist/commands/reduce/command.js +16 -17
  41. package/dist/commands/reduce/errors.d.ts +2 -2
  42. package/dist/commands/reduce/errors.js +3 -3
  43. package/dist/commands/reduce/targets.js +11 -2
  44. package/dist/commands/root-launcher/command.js +12 -6
  45. package/dist/commands/run/command.d.ts +1 -0
  46. package/dist/commands/run/command.js +4 -1
  47. package/dist/commands/run/record-init.d.ts +2 -0
  48. package/dist/commands/run/record-init.js +2 -1
  49. package/dist/commands/run/spec-provenance.d.ts +37 -0
  50. package/dist/commands/run/spec-provenance.js +384 -0
  51. package/dist/commands/run/validation.d.ts +4 -0
  52. package/dist/commands/run/validation.js +25 -62
  53. package/dist/commands/spec/command.js +19 -6
  54. package/dist/commands/spec/errors.d.ts +5 -0
  55. package/dist/commands/spec/errors.js +9 -0
  56. package/dist/commands/verify/agents.d.ts +4 -2
  57. package/dist/commands/verify/agents.js +4 -11
  58. package/dist/commands/verify/command.js +15 -5
  59. package/dist/commands/verify/errors.d.ts +12 -0
  60. package/dist/commands/verify/errors.js +22 -0
  61. package/dist/commands/verify/targets.js +108 -12
  62. package/dist/competition/shared/preflight.d.ts +1 -1
  63. package/dist/competition/shared/preflight.js +15 -2
  64. package/dist/contracts/list.d.ts +129 -149
  65. package/dist/contracts/list.js +47 -99
  66. package/dist/domain/interactive/persistence/adapter.d.ts +23 -0
  67. package/dist/domain/interactive/persistence/adapter.js +42 -0
  68. package/dist/domain/message/model/types.d.ts +32 -0
  69. package/dist/domain/message/model/types.js +25 -0
  70. package/dist/domain/reduce/competition/adapter.js +21 -7
  71. package/dist/domain/reduce/competition/finalize.d.ts +7 -0
  72. package/dist/domain/reduce/competition/finalize.js +19 -0
  73. package/dist/domain/reduce/model/types.d.ts +3 -3
  74. package/dist/domain/run/competition/agents/artifacts.js +4 -2
  75. package/dist/domain/run/competition/errors.d.ts +1 -1
  76. package/dist/domain/run/competition/errors.js +4 -7
  77. package/dist/domain/run/model/types.d.ts +384 -0
  78. package/dist/domain/run/model/types.js +87 -0
  79. package/dist/domain/spec/competition/adapter.d.ts +1 -0
  80. package/dist/domain/spec/competition/adapter.js +6 -1
  81. package/dist/domain/spec/model/types.d.ts +3 -0
  82. package/dist/domain/spec/model/types.js +5 -0
  83. package/dist/domain/verify/competition/finalize.d.ts +9 -0
  84. package/dist/domain/verify/competition/finalize.js +22 -3
  85. package/dist/domain/verify/model/types.d.ts +2 -2
  86. package/dist/interactive/providers/mcp.d.ts +1 -0
  87. package/dist/interactive/providers/mcp.js +45 -7
  88. package/dist/interactive/substrate.js +20 -3
  89. package/dist/mcp/server.js +26 -9
  90. package/dist/policy/verification.js +18 -1
  91. package/dist/preflight/agents.d.ts +24 -0
  92. package/dist/preflight/agents.js +71 -0
  93. package/dist/preflight/environment.d.ts +6 -0
  94. package/dist/preflight/environment.js +17 -0
  95. package/dist/preflight/formatting.d.ts +5 -0
  96. package/dist/preflight/formatting.js +20 -0
  97. package/dist/preflight/index.d.ts +2 -0
  98. package/dist/preflight/index.js +5 -9
  99. package/dist/preflight/operator.d.ts +32 -0
  100. package/dist/preflight/operator.js +40 -0
  101. package/dist/preflight/settings.d.ts +2 -0
  102. package/dist/preflight/settings.js +17 -0
  103. package/dist/render/transcripts/interactive.d.ts +16 -0
  104. package/dist/render/transcripts/interactive.js +42 -0
  105. package/dist/render/transcripts/list.d.ts +41 -0
  106. package/dist/render/transcripts/list.js +152 -3
  107. package/dist/render/transcripts/message.d.ts +2 -1
  108. package/dist/render/transcripts/message.js +19 -20
  109. package/dist/render/transcripts/reduce.d.ts +1 -0
  110. package/dist/render/transcripts/reduce.js +21 -21
  111. package/dist/render/transcripts/root-launcher.js +2 -12
  112. package/dist/render/transcripts/run.d.ts +3 -0
  113. package/dist/render/transcripts/run.js +30 -4
  114. package/dist/render/transcripts/spec.js +5 -8
  115. package/dist/render/transcripts/verify.d.ts +5 -3
  116. package/dist/render/transcripts/verify.js +44 -31
  117. package/dist/render/utils/duration.d.ts +5 -0
  118. package/dist/render/utils/duration.js +6 -0
  119. package/dist/render/utils/runs.d.ts +1 -0
  120. package/dist/render/utils/runs.js +1 -0
  121. package/dist/render/utils/transcript-shell.d.ts +2 -1
  122. package/dist/render/utils/transcript-shell.js +19 -6
  123. package/dist/utils/errors.d.ts +2 -1
  124. package/dist/utils/errors.js +3 -1
  125. package/dist/utils/git.d.ts +1 -1
  126. package/dist/utils/git.js +25 -2
  127. package/dist/utils/list-target.d.ts +4 -0
  128. package/dist/utils/list-target.js +35 -0
  129. package/dist/utils/terminal.d.ts +1 -0
  130. package/dist/utils/terminal.js +11 -0
  131. package/dist/workspace/chat/artifacts.d.ts +7 -0
  132. package/dist/workspace/chat/artifacts.js +94 -3
  133. package/dist/workspace/errors.js +2 -2
  134. package/dist/workspace/managed-state.d.ts +32 -0
  135. package/dist/workspace/managed-state.js +103 -0
  136. package/dist/workspace/setup.js +66 -2
  137. package/dist/workspace/shim.d.ts +1 -0
  138. package/dist/workspace/shim.js +3 -3
  139. package/dist/workspace/structure.d.ts +1 -0
  140. package/dist/workspace/structure.js +1 -0
  141. package/package.json +2 -2
  142. package/dist/cli/init.d.ts +0 -15
  143. package/dist/cli/init.js +0 -70
  144. package/dist/commands/init/agents.d.ts +0 -4
  145. package/dist/commands/init/command.d.ts +0 -2
  146. package/dist/commands/init/environment.d.ts +0 -2
  147. package/dist/render/transcripts/init.d.ts +0 -7
  148. package/dist/render/transcripts/init.js +0 -83
  149. /package/dist/commands/{init/types.js → doctor/fix-types.js} +0 -0
@@ -9,6 +9,30 @@ export { messageRecipientStatusSchema, messageStatusSchema, TERMINAL_MESSAGE_REC
9
9
  const RUNNING_MESSAGE_RECORD_STATUSES = [
10
10
  "running",
11
11
  ];
12
+ const MESSAGE_TARGET_KIND_VALUES = [
13
+ "interactive",
14
+ "run",
15
+ "spec",
16
+ "reduce",
17
+ "verify",
18
+ ];
19
+ export const messageTargetKindSchema = z.enum(MESSAGE_TARGET_KIND_VALUES);
20
+ export const messageTargetSchema = z
21
+ .object({
22
+ kind: messageTargetKindSchema,
23
+ sessionId: z.string().min(1),
24
+ agentId: agentIdSchema.optional(),
25
+ })
26
+ .strict()
27
+ .superRefine((target, ctx) => {
28
+ if (target.kind === "interactive" && target.agentId) {
29
+ ctx.addIssue({
30
+ code: z.ZodIssueCode.custom,
31
+ path: ["agentId"],
32
+ message: "interactive message targets must not persist an `agentId` lane reference",
33
+ });
34
+ }
35
+ });
12
36
  export const messageRecipientEntrySchema = z
13
37
  .object({
14
38
  agentId: agentIdSchema,
@@ -48,6 +72,7 @@ export const messageRecordSchema = z
48
72
  status: messageStatusSchema,
49
73
  baseRevisionSha: z.string().optional(),
50
74
  prompt: z.string(),
75
+ target: messageTargetSchema.optional(),
51
76
  sourceInteractiveSessionId: z.string().optional(),
52
77
  extraContext: z.array(persistedExtraContextPathSchema).optional(),
53
78
  extraContextMetadata: z.array(extraContextMetadataEntrySchema).optional(),
@@ -8,6 +8,7 @@ import { stageExtraContextFiles, } from "../../../competition/shared/extra-conte
8
8
  import { composeStageSandboxPolicy } from "../../../competition/shared/sandbox-policy.js";
9
9
  import { createTeardownController, runTeardown, } from "../../../competition/shared/teardown.js";
10
10
  import { readMessageRecords } from "../../../domain/message/persistence/adapter.js";
11
+ import { deriveReductionStatusFromReducers } from "../../../domain/reduce/competition/finalize.js";
11
12
  import { validateReductionOutputContract } from "../../../domain/reduce/competition/output-validation.js";
12
13
  import { buildReducePrompt } from "../../../domain/reduce/competition/prompt.js";
13
14
  import { parseReductionArtifact } from "../../../domain/reduce/competition/reduction.js";
@@ -323,7 +324,7 @@ export function createReduceCompetitionAdapter(input) {
323
324
  };
324
325
  },
325
326
  finalizeCompetition: async () => {
326
- const failed = failure !== undefined;
327
+ let finalizedStatus;
327
328
  const completedAt = new Date().toISOString();
328
329
  await rewriteReductionRecord({
329
330
  root,
@@ -335,25 +336,30 @@ export function createReduceCompetitionAdapter(input) {
335
336
  startedAt: record.startedAt ?? completedAt,
336
337
  completedAt,
337
338
  });
338
- const status = failed ? "failed" : "succeeded";
339
+ const status = deriveReductionStatusFromReducers(record.reducers);
340
+ finalizedStatus = status;
339
341
  return {
340
342
  ...record,
341
343
  status,
342
344
  ...recordComplete,
343
- error: failed ? toErrorMessage(failure) : null,
345
+ error: status === "failed" && failure !== undefined
346
+ ? toErrorMessage(failure)
347
+ : null,
344
348
  reducers: record.reducers.map((reducer) => {
345
349
  if (reducer.status !== "running" && reducer.status !== "queued") {
346
350
  return reducer;
347
351
  }
348
352
  return {
349
353
  ...reducer,
350
- status,
354
+ status: "failed",
351
355
  ...buildOperationLifecycleCompleteFields({
352
356
  existing: reducer,
353
357
  startedAt: reducer.startedAt ?? recordComplete.completedAt,
354
358
  completedAt: recordComplete.completedAt,
355
359
  }),
356
- error: failed ? toErrorMessage(failure) : null,
360
+ error: failure !== undefined
361
+ ? toErrorMessage(failure)
362
+ : reducer.error,
357
363
  };
358
364
  }),
359
365
  };
@@ -396,10 +402,11 @@ export function createReduceCompetitionAdapter(input) {
396
402
  });
397
403
  }
398
404
  else {
405
+ const status = finalizedStatus ?? (failure === undefined ? "succeeded" : "failed");
399
406
  emitStageProgressEvent(renderer, {
400
407
  type: "stage.status",
401
408
  stage: "reduce",
402
- status: failed ? "failed" : "succeeded",
409
+ status,
403
410
  });
404
411
  }
405
412
  await runTeardown(teardown);
@@ -617,6 +624,9 @@ async function prepareVerificationTargetContext(options) {
617
624
  ...(method.error ? { error: method.error } : {}),
618
625
  });
619
626
  }
627
+ if (artifacts.length === 0) {
628
+ throw new Error(`Verification session \`${target.id}\` has no reduction-ready artifacts.`);
629
+ }
620
630
  return {
621
631
  target,
622
632
  displayPath: `.voratiq/verify/sessions/${record.sessionId}`,
@@ -647,7 +657,11 @@ async function prepareReductionTargetContextInternal(options) {
647
657
  }
648
658
  const stagedFiles = [];
649
659
  const artifacts = [];
650
- for (const reducer of record.reducers) {
660
+ const succeededReducers = record.reducers.filter((reducer) => reducer.status === "succeeded" && typeof reducer.outputPath === "string");
661
+ if (succeededReducers.length === 0) {
662
+ throw new Error(`Reduction session \`${target.id}\` has no successful reduction artifacts.`);
663
+ }
664
+ for (const reducer of succeededReducers) {
651
665
  const reductionRelative = `inputs/reducers/${reducer.agentId}/reduction.md`;
652
666
  stagedFiles.push({
653
667
  sourceAbsolutePath: resolvePath(root, reducer.outputPath),
@@ -0,0 +1,7 @@
1
+ import type { ReductionRecord } from "../model/types.js";
2
+ /**
3
+ * Derive the reduction session status from per-reducer outcomes.
4
+ * Returns "succeeded" when at least one reducer succeeds, "aborted" when all
5
+ * terminal reducers aborted, and "failed" otherwise.
6
+ */
7
+ export declare function deriveReductionStatusFromReducers(reducers: readonly Pick<ReductionRecord["reducers"][number], "status">[]): ReductionRecord["status"];
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Derive the reduction session status from per-reducer outcomes.
3
+ * Returns "succeeded" when at least one reducer succeeds, "aborted" when all
4
+ * terminal reducers aborted, and "failed" otherwise.
5
+ */
6
+ export function deriveReductionStatusFromReducers(reducers) {
7
+ const terminalReducers = reducers.filter((reducer) => reducer.status === "succeeded" ||
8
+ reducer.status === "failed" ||
9
+ reducer.status === "aborted");
10
+ const hasSucceeded = terminalReducers.some((reducer) => reducer.status === "succeeded");
11
+ if (hasSucceeded) {
12
+ return "succeeded";
13
+ }
14
+ if (terminalReducers.length > 0 &&
15
+ terminalReducers.every((reducer) => reducer.status === "aborted")) {
16
+ return "aborted";
17
+ }
18
+ return "failed";
19
+ }
@@ -4,8 +4,8 @@ export type { ReductionStatus };
4
4
  export { reductionStatusSchema, TERMINAL_REDUCTION_STATUSES };
5
5
  export declare const reductionTargetTypeSchema: z.ZodEnum<{
6
6
  message: "message";
7
- reduce: "reduce";
8
7
  spec: "spec";
8
+ reduce: "reduce";
9
9
  run: "run";
10
10
  verify: "verify";
11
11
  }>;
@@ -13,8 +13,8 @@ export type ReductionTargetType = z.infer<typeof reductionTargetTypeSchema>;
13
13
  export declare const reductionTargetSchema: z.ZodObject<{
14
14
  type: z.ZodEnum<{
15
15
  message: "message";
16
- reduce: "reduce";
17
16
  spec: "spec";
17
+ reduce: "reduce";
18
18
  run: "run";
19
19
  verify: "verify";
20
20
  }>;
@@ -60,8 +60,8 @@ export declare const reductionRecordSchema: z.ZodObject<{
60
60
  target: z.ZodObject<{
61
61
  type: z.ZodEnum<{
62
62
  message: "message";
63
- reduce: "reduce";
64
63
  spec: "spec";
64
+ reduce: "reduce";
65
65
  run: "run";
66
66
  verify: "verify";
67
67
  }>;
@@ -7,7 +7,9 @@ import { gitAddAll, gitCommitAll, gitDiff, gitDiffShortStat, gitHasStagedChanges
7
7
  import { enforceCredentialExclusion } from "../../../../workspace/credential-guard.js";
8
8
  import { cleanupWorkspaceDependencies, ensureWorkspaceDependencies, WorkspaceDependencyCleanupError, } from "../../../../workspace/dependencies.js";
9
9
  import { promoteWorkspaceFile } from "../../../../workspace/promotion.js";
10
+ import { WORKSPACE_SHIM_RELATIVE_PATH } from "../../../../workspace/shim.js";
10
11
  import { WORKSPACE_SUMMARY_FILENAME, } from "./workspace.js";
12
+ const EXPORT_EXCLUDED_PATHS = [WORKSPACE_SHIM_RELATIVE_PATH.join("/")];
11
13
  export async function collectAgentArtifacts(options) {
12
14
  const { baseRevisionSha, workspacePaths, root, environment, persona } = options;
13
15
  const { workspacePath, artifactsPath, summaryPath, diffPath } = workspacePaths;
@@ -33,7 +35,7 @@ export async function collectAgentArtifacts(options) {
33
35
  let artifactResult;
34
36
  let dependencyRestoreError;
35
37
  try {
36
- await runGitStep("Git add failed", async () => gitAddAll(workspacePath));
38
+ await runGitStep("Git add failed", async () => gitAddAll(workspacePath, EXPORT_EXCLUDED_PATHS));
37
39
  const hasChangesBeforeSummary = await gitHasStagedChanges(workspacePath);
38
40
  if (!hasChangesBeforeSummary) {
39
41
  throw new AgentProcessError({
@@ -45,7 +47,7 @@ export async function collectAgentArtifacts(options) {
45
47
  artifactsPath,
46
48
  summaryPath,
47
49
  });
48
- await runGitStep("Git add failed", async () => gitAddAll(workspacePath));
50
+ await runGitStep("Git add failed", async () => gitAddAll(workspacePath, EXPORT_EXCLUDED_PATHS));
49
51
  const hasChanges = await gitHasStagedChanges(workspacePath);
50
52
  if (!hasChanges) {
51
53
  throw new AgentProcessError({
@@ -52,7 +52,7 @@ export declare class AuthProviderStageError extends RunCommandError {
52
52
  export declare class RunPreflightError extends RunCommandError {
53
53
  readonly kind: "workspace-setup";
54
54
  readonly issues: readonly PreflightIssue[];
55
- constructor(issues: readonly PreflightIssue[], hintLines?: readonly string[]);
55
+ constructor(issues: readonly PreflightIssue[], preProviderIssueCount?: number);
56
56
  }
57
57
  export declare class NoAgentsEnabledError extends RunCommandError {
58
58
  readonly kind: "workspace-setup";
@@ -1,4 +1,4 @@
1
- import { formatPreflightIssueLines, PREFLIGHT_HINT, } from "../../../competition/shared/preflight.js";
1
+ import { formatOperatorPreflightIssueLines, resolveOperatorPreflightHintLines, } from "../../../preflight/formatting.js";
2
2
  import { DisplayableError, } from "../../../utils/errors.js";
3
3
  export class RunCommandError extends DisplayableError {
4
4
  constructor(message, options = {}) {
@@ -76,16 +76,13 @@ export class AuthProviderStageError extends RunCommandError {
76
76
  });
77
77
  }
78
78
  }
79
- const RUN_PREFLIGHT_UNLABELED_AGENT_IDS = ["settings"];
80
79
  export class RunPreflightError extends RunCommandError {
81
80
  kind = "workspace-setup";
82
81
  issues;
83
- constructor(issues, hintLines = [PREFLIGHT_HINT]) {
82
+ constructor(issues, preProviderIssueCount = issues.length) {
84
83
  super("Preflight failed. Aborting run.", {
85
- detailLines: formatPreflightIssueLines(issues, {
86
- unlabeledAgentIds: RUN_PREFLIGHT_UNLABELED_AGENT_IDS,
87
- }),
88
- hintLines,
84
+ detailLines: formatOperatorPreflightIssueLines(issues),
85
+ hintLines: resolveOperatorPreflightHintLines(issues, preProviderIssueCount) ?? [],
89
86
  });
90
87
  this.issues = Array.from(issues);
91
88
  this.name = "RunPreflightError";
@@ -3,8 +3,327 @@ import { type AgentStatus, agentStatusSchema, IN_PROGRESS_AGENT_STATUSES, TERMIN
3
3
  import type { TokenUsageResult } from "../../../workspace/chat/token-usage-result.js";
4
4
  export type { AgentStatus };
5
5
  export { agentStatusSchema, IN_PROGRESS_AGENT_STATUSES, TERMINAL_AGENT_STATUSES, };
6
+ export declare const runSpecTargetKindSchema: z.ZodEnum<{
7
+ file: "file";
8
+ spec: "spec";
9
+ }>;
10
+ export declare const runSpecProvenanceLineageSchema: z.ZodEnum<{
11
+ exact: "exact";
12
+ derived: "derived";
13
+ derived_modified: "derived_modified";
14
+ invalid: "invalid";
15
+ }>;
16
+ export declare const runSpecProvenanceIssueSchema: z.ZodEnum<{
17
+ malformed_frontmatter: "malformed_frontmatter";
18
+ stale_source: "stale_source";
19
+ }>;
20
+ export declare const runSpecContentHashSchema: z.ZodString;
21
+ export declare const runSpecSourceDescriptorSchema: z.ZodObject<{
22
+ kind: z.ZodLiteral<"spec">;
23
+ sessionId: z.ZodString;
24
+ agentId: z.ZodString;
25
+ outputPath: z.ZodString;
26
+ contentHash: z.ZodString;
27
+ }, z.core.$strict>;
28
+ export type RunSpecSourceDescriptor = z.infer<typeof runSpecSourceDescriptorSchema>;
29
+ export declare const runSpecSourceHintSchema: z.ZodObject<{
30
+ kind: z.ZodOptional<z.ZodLiteral<"spec">>;
31
+ sessionId: z.ZodOptional<z.ZodString>;
32
+ agentId: z.ZodOptional<z.ZodString>;
33
+ outputPath: z.ZodOptional<z.ZodString>;
34
+ contentHash: z.ZodOptional<z.ZodString>;
35
+ }, z.core.$strict>;
36
+ export declare const exactRunSpecProvenanceSchema: z.ZodObject<{
37
+ lineage: z.ZodLiteral<"exact">;
38
+ source: z.ZodOptional<z.ZodObject<{
39
+ kind: z.ZodLiteral<"spec">;
40
+ sessionId: z.ZodString;
41
+ agentId: z.ZodString;
42
+ outputPath: z.ZodString;
43
+ contentHash: z.ZodString;
44
+ }, z.core.$strict>>;
45
+ }, z.core.$strict>;
46
+ export declare const derivedRunSpecProvenanceSchema: z.ZodObject<{
47
+ lineage: z.ZodLiteral<"derived">;
48
+ source: z.ZodObject<{
49
+ kind: z.ZodLiteral<"spec">;
50
+ sessionId: z.ZodString;
51
+ agentId: z.ZodString;
52
+ outputPath: z.ZodString;
53
+ contentHash: z.ZodString;
54
+ }, z.core.$strict>;
55
+ currentContentHash: z.ZodString;
56
+ }, z.core.$strict>;
57
+ export declare const derivedModifiedRunSpecProvenanceSchema: z.ZodObject<{
58
+ lineage: z.ZodLiteral<"derived_modified">;
59
+ source: z.ZodObject<{
60
+ kind: z.ZodLiteral<"spec">;
61
+ sessionId: z.ZodString;
62
+ agentId: z.ZodString;
63
+ outputPath: z.ZodString;
64
+ contentHash: z.ZodString;
65
+ }, z.core.$strict>;
66
+ currentContentHash: z.ZodString;
67
+ }, z.core.$strict>;
68
+ export declare const invalidRunSpecProvenanceSchema: z.ZodObject<{
69
+ lineage: z.ZodLiteral<"invalid">;
70
+ issueCode: z.ZodEnum<{
71
+ malformed_frontmatter: "malformed_frontmatter";
72
+ stale_source: "stale_source";
73
+ }>;
74
+ source: z.ZodOptional<z.ZodObject<{
75
+ kind: z.ZodOptional<z.ZodLiteral<"spec">>;
76
+ sessionId: z.ZodOptional<z.ZodString>;
77
+ agentId: z.ZodOptional<z.ZodString>;
78
+ outputPath: z.ZodOptional<z.ZodString>;
79
+ contentHash: z.ZodOptional<z.ZodString>;
80
+ }, z.core.$strict>>;
81
+ currentContentHash: z.ZodOptional<z.ZodString>;
82
+ }, z.core.$strict>;
83
+ export declare const runSpecProvenanceSchema: z.ZodUnion<readonly [z.ZodObject<{
84
+ lineage: z.ZodLiteral<"exact">;
85
+ source: z.ZodOptional<z.ZodObject<{
86
+ kind: z.ZodLiteral<"spec">;
87
+ sessionId: z.ZodString;
88
+ agentId: z.ZodString;
89
+ outputPath: z.ZodString;
90
+ contentHash: z.ZodString;
91
+ }, z.core.$strict>>;
92
+ }, z.core.$strict>, z.ZodObject<{
93
+ lineage: z.ZodLiteral<"derived">;
94
+ source: z.ZodObject<{
95
+ kind: z.ZodLiteral<"spec">;
96
+ sessionId: z.ZodString;
97
+ agentId: z.ZodString;
98
+ outputPath: z.ZodString;
99
+ contentHash: z.ZodString;
100
+ }, z.core.$strict>;
101
+ currentContentHash: z.ZodString;
102
+ }, z.core.$strict>, z.ZodObject<{
103
+ lineage: z.ZodLiteral<"derived_modified">;
104
+ source: z.ZodObject<{
105
+ kind: z.ZodLiteral<"spec">;
106
+ sessionId: z.ZodString;
107
+ agentId: z.ZodString;
108
+ outputPath: z.ZodString;
109
+ contentHash: z.ZodString;
110
+ }, z.core.$strict>;
111
+ currentContentHash: z.ZodString;
112
+ }, z.core.$strict>, z.ZodObject<{
113
+ lineage: z.ZodLiteral<"invalid">;
114
+ issueCode: z.ZodEnum<{
115
+ malformed_frontmatter: "malformed_frontmatter";
116
+ stale_source: "stale_source";
117
+ }>;
118
+ source: z.ZodOptional<z.ZodObject<{
119
+ kind: z.ZodOptional<z.ZodLiteral<"spec">>;
120
+ sessionId: z.ZodOptional<z.ZodString>;
121
+ agentId: z.ZodOptional<z.ZodString>;
122
+ outputPath: z.ZodOptional<z.ZodString>;
123
+ contentHash: z.ZodOptional<z.ZodString>;
124
+ }, z.core.$strict>>;
125
+ currentContentHash: z.ZodOptional<z.ZodString>;
126
+ }, z.core.$strict>]>;
127
+ export type RunSpecProvenance = z.infer<typeof runSpecProvenanceSchema>;
128
+ export declare const fileRunSpecTargetSchema: z.ZodObject<{
129
+ kind: z.ZodLiteral<"file">;
130
+ provenance: z.ZodOptional<z.ZodObject<{
131
+ lineage: z.ZodLiteral<"invalid">;
132
+ issueCode: z.ZodEnum<{
133
+ malformed_frontmatter: "malformed_frontmatter";
134
+ stale_source: "stale_source";
135
+ }>;
136
+ source: z.ZodOptional<z.ZodObject<{
137
+ kind: z.ZodOptional<z.ZodLiteral<"spec">>;
138
+ sessionId: z.ZodOptional<z.ZodString>;
139
+ agentId: z.ZodOptional<z.ZodString>;
140
+ outputPath: z.ZodOptional<z.ZodString>;
141
+ contentHash: z.ZodOptional<z.ZodString>;
142
+ }, z.core.$strict>>;
143
+ currentContentHash: z.ZodOptional<z.ZodString>;
144
+ }, z.core.$strict>>;
145
+ }, z.core.$strict>;
146
+ export declare const sessionRunSpecTargetSchema: z.ZodObject<{
147
+ kind: z.ZodLiteral<"spec">;
148
+ sessionId: z.ZodString;
149
+ provenance: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
150
+ lineage: z.ZodLiteral<"exact">;
151
+ source: z.ZodOptional<z.ZodObject<{
152
+ kind: z.ZodLiteral<"spec">;
153
+ sessionId: z.ZodString;
154
+ agentId: z.ZodString;
155
+ outputPath: z.ZodString;
156
+ contentHash: z.ZodString;
157
+ }, z.core.$strict>>;
158
+ }, z.core.$strict>, z.ZodObject<{
159
+ lineage: z.ZodLiteral<"derived">;
160
+ source: z.ZodObject<{
161
+ kind: z.ZodLiteral<"spec">;
162
+ sessionId: z.ZodString;
163
+ agentId: z.ZodString;
164
+ outputPath: z.ZodString;
165
+ contentHash: z.ZodString;
166
+ }, z.core.$strict>;
167
+ currentContentHash: z.ZodString;
168
+ }, z.core.$strict>, z.ZodObject<{
169
+ lineage: z.ZodLiteral<"derived_modified">;
170
+ source: z.ZodObject<{
171
+ kind: z.ZodLiteral<"spec">;
172
+ sessionId: z.ZodString;
173
+ agentId: z.ZodString;
174
+ outputPath: z.ZodString;
175
+ contentHash: z.ZodString;
176
+ }, z.core.$strict>;
177
+ currentContentHash: z.ZodString;
178
+ }, z.core.$strict>, z.ZodObject<{
179
+ lineage: z.ZodLiteral<"invalid">;
180
+ issueCode: z.ZodEnum<{
181
+ malformed_frontmatter: "malformed_frontmatter";
182
+ stale_source: "stale_source";
183
+ }>;
184
+ source: z.ZodOptional<z.ZodObject<{
185
+ kind: z.ZodOptional<z.ZodLiteral<"spec">>;
186
+ sessionId: z.ZodOptional<z.ZodString>;
187
+ agentId: z.ZodOptional<z.ZodString>;
188
+ outputPath: z.ZodOptional<z.ZodString>;
189
+ contentHash: z.ZodOptional<z.ZodString>;
190
+ }, z.core.$strict>>;
191
+ currentContentHash: z.ZodOptional<z.ZodString>;
192
+ }, z.core.$strict>]>>;
193
+ }, z.core.$strict>;
194
+ export declare const runSpecTargetSchema: z.ZodUnion<readonly [z.ZodObject<{
195
+ kind: z.ZodLiteral<"file">;
196
+ provenance: z.ZodOptional<z.ZodObject<{
197
+ lineage: z.ZodLiteral<"invalid">;
198
+ issueCode: z.ZodEnum<{
199
+ malformed_frontmatter: "malformed_frontmatter";
200
+ stale_source: "stale_source";
201
+ }>;
202
+ source: z.ZodOptional<z.ZodObject<{
203
+ kind: z.ZodOptional<z.ZodLiteral<"spec">>;
204
+ sessionId: z.ZodOptional<z.ZodString>;
205
+ agentId: z.ZodOptional<z.ZodString>;
206
+ outputPath: z.ZodOptional<z.ZodString>;
207
+ contentHash: z.ZodOptional<z.ZodString>;
208
+ }, z.core.$strict>>;
209
+ currentContentHash: z.ZodOptional<z.ZodString>;
210
+ }, z.core.$strict>>;
211
+ }, z.core.$strict>, z.ZodObject<{
212
+ kind: z.ZodLiteral<"spec">;
213
+ sessionId: z.ZodString;
214
+ provenance: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
215
+ lineage: z.ZodLiteral<"exact">;
216
+ source: z.ZodOptional<z.ZodObject<{
217
+ kind: z.ZodLiteral<"spec">;
218
+ sessionId: z.ZodString;
219
+ agentId: z.ZodString;
220
+ outputPath: z.ZodString;
221
+ contentHash: z.ZodString;
222
+ }, z.core.$strict>>;
223
+ }, z.core.$strict>, z.ZodObject<{
224
+ lineage: z.ZodLiteral<"derived">;
225
+ source: z.ZodObject<{
226
+ kind: z.ZodLiteral<"spec">;
227
+ sessionId: z.ZodString;
228
+ agentId: z.ZodString;
229
+ outputPath: z.ZodString;
230
+ contentHash: z.ZodString;
231
+ }, z.core.$strict>;
232
+ currentContentHash: z.ZodString;
233
+ }, z.core.$strict>, z.ZodObject<{
234
+ lineage: z.ZodLiteral<"derived_modified">;
235
+ source: z.ZodObject<{
236
+ kind: z.ZodLiteral<"spec">;
237
+ sessionId: z.ZodString;
238
+ agentId: z.ZodString;
239
+ outputPath: z.ZodString;
240
+ contentHash: z.ZodString;
241
+ }, z.core.$strict>;
242
+ currentContentHash: z.ZodString;
243
+ }, z.core.$strict>, z.ZodObject<{
244
+ lineage: z.ZodLiteral<"invalid">;
245
+ issueCode: z.ZodEnum<{
246
+ malformed_frontmatter: "malformed_frontmatter";
247
+ stale_source: "stale_source";
248
+ }>;
249
+ source: z.ZodOptional<z.ZodObject<{
250
+ kind: z.ZodOptional<z.ZodLiteral<"spec">>;
251
+ sessionId: z.ZodOptional<z.ZodString>;
252
+ agentId: z.ZodOptional<z.ZodString>;
253
+ outputPath: z.ZodOptional<z.ZodString>;
254
+ contentHash: z.ZodOptional<z.ZodString>;
255
+ }, z.core.$strict>>;
256
+ currentContentHash: z.ZodOptional<z.ZodString>;
257
+ }, z.core.$strict>]>>;
258
+ }, z.core.$strict>]>;
259
+ export type RunSpecTarget = z.infer<typeof runSpecTargetSchema>;
6
260
  export declare const runSpecDescriptorSchema: z.ZodObject<{
7
261
  path: z.ZodString;
262
+ target: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
263
+ kind: z.ZodLiteral<"file">;
264
+ provenance: z.ZodOptional<z.ZodObject<{
265
+ lineage: z.ZodLiteral<"invalid">;
266
+ issueCode: z.ZodEnum<{
267
+ malformed_frontmatter: "malformed_frontmatter";
268
+ stale_source: "stale_source";
269
+ }>;
270
+ source: z.ZodOptional<z.ZodObject<{
271
+ kind: z.ZodOptional<z.ZodLiteral<"spec">>;
272
+ sessionId: z.ZodOptional<z.ZodString>;
273
+ agentId: z.ZodOptional<z.ZodString>;
274
+ outputPath: z.ZodOptional<z.ZodString>;
275
+ contentHash: z.ZodOptional<z.ZodString>;
276
+ }, z.core.$strict>>;
277
+ currentContentHash: z.ZodOptional<z.ZodString>;
278
+ }, z.core.$strict>>;
279
+ }, z.core.$strict>, z.ZodObject<{
280
+ kind: z.ZodLiteral<"spec">;
281
+ sessionId: z.ZodString;
282
+ provenance: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
283
+ lineage: z.ZodLiteral<"exact">;
284
+ source: z.ZodOptional<z.ZodObject<{
285
+ kind: z.ZodLiteral<"spec">;
286
+ sessionId: z.ZodString;
287
+ agentId: z.ZodString;
288
+ outputPath: z.ZodString;
289
+ contentHash: z.ZodString;
290
+ }, z.core.$strict>>;
291
+ }, z.core.$strict>, z.ZodObject<{
292
+ lineage: z.ZodLiteral<"derived">;
293
+ source: z.ZodObject<{
294
+ kind: z.ZodLiteral<"spec">;
295
+ sessionId: z.ZodString;
296
+ agentId: z.ZodString;
297
+ outputPath: z.ZodString;
298
+ contentHash: z.ZodString;
299
+ }, z.core.$strict>;
300
+ currentContentHash: z.ZodString;
301
+ }, z.core.$strict>, z.ZodObject<{
302
+ lineage: z.ZodLiteral<"derived_modified">;
303
+ source: z.ZodObject<{
304
+ kind: z.ZodLiteral<"spec">;
305
+ sessionId: z.ZodString;
306
+ agentId: z.ZodString;
307
+ outputPath: z.ZodString;
308
+ contentHash: z.ZodString;
309
+ }, z.core.$strict>;
310
+ currentContentHash: z.ZodString;
311
+ }, z.core.$strict>, z.ZodObject<{
312
+ lineage: z.ZodLiteral<"invalid">;
313
+ issueCode: z.ZodEnum<{
314
+ malformed_frontmatter: "malformed_frontmatter";
315
+ stale_source: "stale_source";
316
+ }>;
317
+ source: z.ZodOptional<z.ZodObject<{
318
+ kind: z.ZodOptional<z.ZodLiteral<"spec">>;
319
+ sessionId: z.ZodOptional<z.ZodString>;
320
+ agentId: z.ZodOptional<z.ZodString>;
321
+ outputPath: z.ZodOptional<z.ZodString>;
322
+ contentHash: z.ZodOptional<z.ZodString>;
323
+ }, z.core.$strict>>;
324
+ currentContentHash: z.ZodOptional<z.ZodString>;
325
+ }, z.core.$strict>]>>;
326
+ }, z.core.$strict>]>>;
8
327
  }, z.core.$strip>;
9
328
  export type RunSpecDescriptor = z.infer<typeof runSpecDescriptorSchema>;
10
329
  export declare const CHAT_USAGE_PROVIDER_IDS: readonly ["claude", "codex", "gemini"];
@@ -224,6 +543,71 @@ export declare const runRecordSchema: z.ZodObject<{
224
543
  rootPath: z.ZodString;
225
544
  spec: z.ZodObject<{
226
545
  path: z.ZodString;
546
+ target: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
547
+ kind: z.ZodLiteral<"file">;
548
+ provenance: z.ZodOptional<z.ZodObject<{
549
+ lineage: z.ZodLiteral<"invalid">;
550
+ issueCode: z.ZodEnum<{
551
+ malformed_frontmatter: "malformed_frontmatter";
552
+ stale_source: "stale_source";
553
+ }>;
554
+ source: z.ZodOptional<z.ZodObject<{
555
+ kind: z.ZodOptional<z.ZodLiteral<"spec">>;
556
+ sessionId: z.ZodOptional<z.ZodString>;
557
+ agentId: z.ZodOptional<z.ZodString>;
558
+ outputPath: z.ZodOptional<z.ZodString>;
559
+ contentHash: z.ZodOptional<z.ZodString>;
560
+ }, z.core.$strict>>;
561
+ currentContentHash: z.ZodOptional<z.ZodString>;
562
+ }, z.core.$strict>>;
563
+ }, z.core.$strict>, z.ZodObject<{
564
+ kind: z.ZodLiteral<"spec">;
565
+ sessionId: z.ZodString;
566
+ provenance: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
567
+ lineage: z.ZodLiteral<"exact">;
568
+ source: z.ZodOptional<z.ZodObject<{
569
+ kind: z.ZodLiteral<"spec">;
570
+ sessionId: z.ZodString;
571
+ agentId: z.ZodString;
572
+ outputPath: z.ZodString;
573
+ contentHash: z.ZodString;
574
+ }, z.core.$strict>>;
575
+ }, z.core.$strict>, z.ZodObject<{
576
+ lineage: z.ZodLiteral<"derived">;
577
+ source: z.ZodObject<{
578
+ kind: z.ZodLiteral<"spec">;
579
+ sessionId: z.ZodString;
580
+ agentId: z.ZodString;
581
+ outputPath: z.ZodString;
582
+ contentHash: z.ZodString;
583
+ }, z.core.$strict>;
584
+ currentContentHash: z.ZodString;
585
+ }, z.core.$strict>, z.ZodObject<{
586
+ lineage: z.ZodLiteral<"derived_modified">;
587
+ source: z.ZodObject<{
588
+ kind: z.ZodLiteral<"spec">;
589
+ sessionId: z.ZodString;
590
+ agentId: z.ZodString;
591
+ outputPath: z.ZodString;
592
+ contentHash: z.ZodString;
593
+ }, z.core.$strict>;
594
+ currentContentHash: z.ZodString;
595
+ }, z.core.$strict>, z.ZodObject<{
596
+ lineage: z.ZodLiteral<"invalid">;
597
+ issueCode: z.ZodEnum<{
598
+ malformed_frontmatter: "malformed_frontmatter";
599
+ stale_source: "stale_source";
600
+ }>;
601
+ source: z.ZodOptional<z.ZodObject<{
602
+ kind: z.ZodOptional<z.ZodLiteral<"spec">>;
603
+ sessionId: z.ZodOptional<z.ZodString>;
604
+ agentId: z.ZodOptional<z.ZodString>;
605
+ outputPath: z.ZodOptional<z.ZodString>;
606
+ contentHash: z.ZodOptional<z.ZodString>;
607
+ }, z.core.$strict>>;
608
+ currentContentHash: z.ZodOptional<z.ZodString>;
609
+ }, z.core.$strict>]>>;
610
+ }, z.core.$strict>]>>;
227
611
  }, z.core.$strip>;
228
612
  extraContext: z.ZodOptional<z.ZodArray<z.ZodString>>;
229
613
  extraContextMetadata: z.ZodOptional<z.ZodArray<z.ZodObject<{