specrails-core 6.5.0 → 6.6.1

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 (49) hide show
  1. package/dist/agent-runtime/capabilities.d.ts +2 -2
  2. package/dist/agent-runtime/cli-executor.js +1 -1
  3. package/dist/agent-runtime/cli.d.ts +4 -4
  4. package/dist/agent-runtime/compact/environment.d.ts +20 -2
  5. package/dist/agent-runtime/compact/environment.js +63 -4
  6. package/dist/agent-runtime/compact/step.d.ts +1 -1
  7. package/dist/agent-runtime/efficiency-summary.d.ts +1 -1
  8. package/dist/agent-runtime/efficiency-types.d.ts +1 -1
  9. package/dist/agent-runtime/engine/checkpoint/database.d.ts +15 -15
  10. package/dist/agent-runtime/engine/contracts.d.ts +2 -1
  11. package/dist/agent-runtime/engine/definition-types.d.ts +1 -1
  12. package/dist/agent-runtime/engine/efficiency-summary.d.ts +8 -8
  13. package/dist/agent-runtime/engine/fork.d.ts +1 -1
  14. package/dist/agent-runtime/engine/graph-description.d.ts +16 -16
  15. package/dist/agent-runtime/engine/implementation-compiler.d.ts +68 -68
  16. package/dist/agent-runtime/engine/piece-dependencies.js +4 -4
  17. package/dist/agent-runtime/engine/pieces/implementation-step.d.ts +1 -1
  18. package/dist/agent-runtime/engine/pieces/role-turn.js +10 -1
  19. package/dist/agent-runtime/engine/pieces/shared.d.ts +2 -2
  20. package/dist/agent-runtime/engine/pieces/verify.js +43 -8
  21. package/dist/agent-runtime/engine/run-status.d.ts +165 -165
  22. package/dist/agent-runtime/engine/runs.d.ts +168 -168
  23. package/dist/agent-runtime/engine/state.d.ts +16 -16
  24. package/dist/agent-runtime/evaluation.d.ts +3 -3
  25. package/dist/agent-runtime/executor-types.d.ts +10 -10
  26. package/dist/agent-runtime/graph/convergence.d.ts +2 -2
  27. package/dist/agent-runtime/graph/convergence.js +11 -0
  28. package/dist/agent-runtime/graph/nodes.js +35 -4
  29. package/dist/agent-runtime/graph/review-policy.d.ts +1 -1
  30. package/dist/agent-runtime/graph/state.d.ts +6 -2
  31. package/dist/agent-runtime/guardrails.d.ts +1 -1
  32. package/dist/agent-runtime/guardrails.js +4 -1
  33. package/dist/agent-runtime/index.d.ts +3 -2
  34. package/dist/agent-runtime/index.js +1 -0
  35. package/dist/agent-runtime/openai-executor.d.ts +9 -9
  36. package/dist/agent-runtime/openspec.d.ts +4 -4
  37. package/dist/agent-runtime/prompts.d.ts +6 -0
  38. package/dist/agent-runtime/prompts.js +32 -8
  39. package/dist/agent-runtime/recovery.d.ts +12 -12
  40. package/dist/agent-runtime/session/drivers/claude/argv.d.ts +2 -2
  41. package/dist/agent-runtime/verification-repair.d.ts +31 -2
  42. package/dist/agent-runtime/verification-repair.js +58 -3
  43. package/dist/installer/commands/init.d.ts +1 -1
  44. package/dist/installer/phases/install-config.js +10 -3
  45. package/dist/installer/util/paths.d.ts +25 -1
  46. package/dist/pipeline/pipeline-state.d.ts +42 -11
  47. package/dist/pipeline/pipeline-state.js +47 -8
  48. package/package.json +13 -11
  49. package/schemas/agent-runtime.schema.json +1 -1
@@ -4,16 +4,26 @@ import type { NodeResult } from '../workflow-types.js';
4
4
  import { type AttemptFrame, type CoreDefinitionState, type ExecutionScope, type NodeExecutionPort, type PieceExecutionContext, type TerminalCommit } from './contracts.js';
5
5
  import type { ImplementationAdapter } from './pieces/implementation.js';
6
6
  declare function implementationSchema(): import("@langchain/langgraph").AnnotationRoot<{
7
+ plan: import("@langchain/langgraph").BaseChannel<import("../../pipeline/pipeline-state.js").VerificationCommand[], import("../../pipeline/pipeline-state.js").VerificationCommand[] | import("@langchain/langgraph").OverwriteValue<import("../../pipeline/pipeline-state.js").VerificationCommand[]>, unknown>;
8
+ unverifiedRepositories: import("@langchain/langgraph").BaseChannel<string[], string[] | import("@langchain/langgraph").OverwriteValue<string[]>, unknown>;
9
+ architecture: import("@langchain/langgraph").BaseChannel<import("../graph/state.js").ArchitectureRecord | null, import("../graph/state.js").ArchitectureRecord | import("@langchain/langgraph").OverwriteValue<import("../graph/state.js").ArchitectureRecord | null> | null, unknown>;
10
+ development: import("@langchain/langgraph").BaseChannel<import("../graph/state.js").DeveloperRecord | null, import("../graph/state.js").DeveloperRecord | import("@langchain/langgraph").OverwriteValue<import("../graph/state.js").DeveloperRecord | null> | null, unknown>;
11
+ verifyResult: import("@langchain/langgraph").BaseChannel<import("../graph/state.js").VerificationRecord | null, import("@langchain/langgraph").OverwriteValue<import("../graph/state.js").VerificationRecord | null> | import("../graph/state.js").VerificationRecord | null, unknown>;
12
+ review: import("@langchain/langgraph").BaseChannel<import("../graph/state.js").ReviewRecord | null, import("@langchain/langgraph").OverwriteValue<import("../graph/state.js").ReviewRecord | null> | import("../graph/state.js").ReviewRecord | null, unknown>;
13
+ answers: import("@langchain/langgraph").BaseChannel<string[], string[] | import("@langchain/langgraph").OverwriteValue<string[]>, unknown>;
14
+ deepenPasses: import("@langchain/langgraph").BaseChannel<number, number | import("@langchain/langgraph").OverwriteValue<number>, unknown>;
15
+ archived: import("@langchain/langgraph").BaseChannel<import("../graph/state.js").ArchiveRecord | null, import("../graph/state.js").ArchiveRecord | import("@langchain/langgraph").OverwriteValue<import("../graph/state.js").ArchiveRecord | null> | null, unknown>;
16
+ verifyHistory: import("@langchain/langgraph").BaseChannel<import("../graph/convergence.js").VerifyOutcome[], import("../graph/convergence.js").VerifyOutcome[] | import("@langchain/langgraph").OverwriteValue<import("../graph/convergence.js").VerifyOutcome[]>, unknown>;
7
17
  $scope: import("@langchain/langgraph").BaseChannel<ExecutionScope, ExecutionScope | import("@langchain/langgraph").OverwriteValue<ExecutionScope>, unknown>;
8
18
  $outer: import("@langchain/langgraph").BaseChannel<CoreDefinitionState, CoreDefinitionState | import("@langchain/langgraph").OverwriteValue<CoreDefinitionState>, unknown>;
9
- $next: import("@langchain/langgraph").BaseChannel<CoreNodeId | null, CoreNodeId | import("@langchain/langgraph").OverwriteValue<CoreNodeId | null> | null, unknown>;
19
+ $next: import("@langchain/langgraph").BaseChannel<CoreNodeId | null, import("@langchain/langgraph").OverwriteValue<CoreNodeId | null> | CoreNodeId | null, unknown>;
10
20
  $nodeResult: import("@langchain/langgraph").BaseChannel<NodeResult<import("@langchain/langgraph").StateType<{
11
21
  plan: import("@langchain/langgraph").BaseChannel<import("../../pipeline/pipeline-state.js").VerificationCommand[], import("../../pipeline/pipeline-state.js").VerificationCommand[] | import("@langchain/langgraph").OverwriteValue<import("../../pipeline/pipeline-state.js").VerificationCommand[]>, unknown>;
12
22
  unverifiedRepositories: import("@langchain/langgraph").BaseChannel<string[], string[] | import("@langchain/langgraph").OverwriteValue<string[]>, unknown>;
13
23
  architecture: import("@langchain/langgraph").BaseChannel<import("../graph/state.js").ArchitectureRecord | null, import("../graph/state.js").ArchitectureRecord | import("@langchain/langgraph").OverwriteValue<import("../graph/state.js").ArchitectureRecord | null> | null, unknown>;
14
24
  development: import("@langchain/langgraph").BaseChannel<import("../graph/state.js").DeveloperRecord | null, import("../graph/state.js").DeveloperRecord | import("@langchain/langgraph").OverwriteValue<import("../graph/state.js").DeveloperRecord | null> | null, unknown>;
15
- verifyResult: import("@langchain/langgraph").BaseChannel<import("../graph/state.js").VerificationRecord | null, import("../graph/state.js").VerificationRecord | import("@langchain/langgraph").OverwriteValue<import("../graph/state.js").VerificationRecord | null> | null, unknown>;
16
- review: import("@langchain/langgraph").BaseChannel<import("../graph/state.js").ReviewRecord | null, import("../graph/state.js").ReviewRecord | import("@langchain/langgraph").OverwriteValue<import("../graph/state.js").ReviewRecord | null> | null, unknown>;
25
+ verifyResult: import("@langchain/langgraph").BaseChannel<import("../graph/state.js").VerificationRecord | null, import("@langchain/langgraph").OverwriteValue<import("../graph/state.js").VerificationRecord | null> | import("../graph/state.js").VerificationRecord | null, unknown>;
26
+ review: import("@langchain/langgraph").BaseChannel<import("../graph/state.js").ReviewRecord | null, import("@langchain/langgraph").OverwriteValue<import("../graph/state.js").ReviewRecord | null> | import("../graph/state.js").ReviewRecord | null, unknown>;
17
27
  answers: import("@langchain/langgraph").BaseChannel<string[], string[] | import("@langchain/langgraph").OverwriteValue<string[]>, unknown>;
18
28
  deepenPasses: import("@langchain/langgraph").BaseChannel<number, number | import("@langchain/langgraph").OverwriteValue<number>, unknown>;
19
29
  archived: import("@langchain/langgraph").BaseChannel<import("../graph/state.js").ArchiveRecord | null, import("../graph/state.js").ArchiveRecord | import("@langchain/langgraph").OverwriteValue<import("../graph/state.js").ArchiveRecord | null> | null, unknown>;
@@ -23,8 +33,8 @@ declare function implementationSchema(): import("@langchain/langgraph").Annotati
23
33
  unverifiedRepositories: import("@langchain/langgraph").BaseChannel<string[], string[] | import("@langchain/langgraph").OverwriteValue<string[]>, unknown>;
24
34
  architecture: import("@langchain/langgraph").BaseChannel<import("../graph/state.js").ArchitectureRecord | null, import("../graph/state.js").ArchitectureRecord | import("@langchain/langgraph").OverwriteValue<import("../graph/state.js").ArchitectureRecord | null> | null, unknown>;
25
35
  development: import("@langchain/langgraph").BaseChannel<import("../graph/state.js").DeveloperRecord | null, import("../graph/state.js").DeveloperRecord | import("@langchain/langgraph").OverwriteValue<import("../graph/state.js").DeveloperRecord | null> | null, unknown>;
26
- verifyResult: import("@langchain/langgraph").BaseChannel<import("../graph/state.js").VerificationRecord | null, import("../graph/state.js").VerificationRecord | import("@langchain/langgraph").OverwriteValue<import("../graph/state.js").VerificationRecord | null> | null, unknown>;
27
- review: import("@langchain/langgraph").BaseChannel<import("../graph/state.js").ReviewRecord | null, import("../graph/state.js").ReviewRecord | import("@langchain/langgraph").OverwriteValue<import("../graph/state.js").ReviewRecord | null> | null, unknown>;
36
+ verifyResult: import("@langchain/langgraph").BaseChannel<import("../graph/state.js").VerificationRecord | null, import("@langchain/langgraph").OverwriteValue<import("../graph/state.js").VerificationRecord | null> | import("../graph/state.js").VerificationRecord | null, unknown>;
37
+ review: import("@langchain/langgraph").BaseChannel<import("../graph/state.js").ReviewRecord | null, import("@langchain/langgraph").OverwriteValue<import("../graph/state.js").ReviewRecord | null> | import("../graph/state.js").ReviewRecord | null, unknown>;
28
38
  answers: import("@langchain/langgraph").BaseChannel<string[], string[] | import("@langchain/langgraph").OverwriteValue<string[]>, unknown>;
29
39
  deepenPasses: import("@langchain/langgraph").BaseChannel<number, number | import("@langchain/langgraph").OverwriteValue<number>, unknown>;
30
40
  archived: import("@langchain/langgraph").BaseChannel<import("../graph/state.js").ArchiveRecord | null, import("../graph/state.js").ArchiveRecord | import("@langchain/langgraph").OverwriteValue<import("../graph/state.js").ArchiveRecord | null> | null, unknown>;
@@ -34,24 +44,14 @@ declare function implementationSchema(): import("@langchain/langgraph").Annotati
34
44
  unverifiedRepositories: import("@langchain/langgraph").BaseChannel<string[], string[] | import("@langchain/langgraph").OverwriteValue<string[]>, unknown>;
35
45
  architecture: import("@langchain/langgraph").BaseChannel<import("../graph/state.js").ArchitectureRecord | null, import("../graph/state.js").ArchitectureRecord | import("@langchain/langgraph").OverwriteValue<import("../graph/state.js").ArchitectureRecord | null> | null, unknown>;
36
46
  development: import("@langchain/langgraph").BaseChannel<import("../graph/state.js").DeveloperRecord | null, import("../graph/state.js").DeveloperRecord | import("@langchain/langgraph").OverwriteValue<import("../graph/state.js").DeveloperRecord | null> | null, unknown>;
37
- verifyResult: import("@langchain/langgraph").BaseChannel<import("../graph/state.js").VerificationRecord | null, import("../graph/state.js").VerificationRecord | import("@langchain/langgraph").OverwriteValue<import("../graph/state.js").VerificationRecord | null> | null, unknown>;
38
- review: import("@langchain/langgraph").BaseChannel<import("../graph/state.js").ReviewRecord | null, import("../graph/state.js").ReviewRecord | import("@langchain/langgraph").OverwriteValue<import("../graph/state.js").ReviewRecord | null> | null, unknown>;
47
+ verifyResult: import("@langchain/langgraph").BaseChannel<import("../graph/state.js").VerificationRecord | null, import("@langchain/langgraph").OverwriteValue<import("../graph/state.js").VerificationRecord | null> | import("../graph/state.js").VerificationRecord | null, unknown>;
48
+ review: import("@langchain/langgraph").BaseChannel<import("../graph/state.js").ReviewRecord | null, import("@langchain/langgraph").OverwriteValue<import("../graph/state.js").ReviewRecord | null> | import("../graph/state.js").ReviewRecord | null, unknown>;
39
49
  answers: import("@langchain/langgraph").BaseChannel<string[], string[] | import("@langchain/langgraph").OverwriteValue<string[]>, unknown>;
40
50
  deepenPasses: import("@langchain/langgraph").BaseChannel<number, number | import("@langchain/langgraph").OverwriteValue<number>, unknown>;
41
51
  archived: import("@langchain/langgraph").BaseChannel<import("../graph/state.js").ArchiveRecord | null, import("../graph/state.js").ArchiveRecord | import("@langchain/langgraph").OverwriteValue<import("../graph/state.js").ArchiveRecord | null> | null, unknown>;
42
52
  verifyHistory: import("@langchain/langgraph").BaseChannel<import("../graph/convergence.js").VerifyOutcome[], import("../graph/convergence.js").VerifyOutcome[] | import("@langchain/langgraph").OverwriteValue<import("../graph/convergence.js").VerifyOutcome[]>, unknown>;
43
53
  }>> | null> | null, unknown>;
44
54
  $commit: EphemeralValue<TerminalCommit>;
45
- plan: import("@langchain/langgraph").BaseChannel<import("../../pipeline/pipeline-state.js").VerificationCommand[], import("../../pipeline/pipeline-state.js").VerificationCommand[] | import("@langchain/langgraph").OverwriteValue<import("../../pipeline/pipeline-state.js").VerificationCommand[]>, unknown>;
46
- unverifiedRepositories: import("@langchain/langgraph").BaseChannel<string[], string[] | import("@langchain/langgraph").OverwriteValue<string[]>, unknown>;
47
- architecture: import("@langchain/langgraph").BaseChannel<import("../graph/state.js").ArchitectureRecord | null, import("../graph/state.js").ArchitectureRecord | import("@langchain/langgraph").OverwriteValue<import("../graph/state.js").ArchitectureRecord | null> | null, unknown>;
48
- development: import("@langchain/langgraph").BaseChannel<import("../graph/state.js").DeveloperRecord | null, import("../graph/state.js").DeveloperRecord | import("@langchain/langgraph").OverwriteValue<import("../graph/state.js").DeveloperRecord | null> | null, unknown>;
49
- verifyResult: import("@langchain/langgraph").BaseChannel<import("../graph/state.js").VerificationRecord | null, import("../graph/state.js").VerificationRecord | import("@langchain/langgraph").OverwriteValue<import("../graph/state.js").VerificationRecord | null> | null, unknown>;
50
- review: import("@langchain/langgraph").BaseChannel<import("../graph/state.js").ReviewRecord | null, import("../graph/state.js").ReviewRecord | import("@langchain/langgraph").OverwriteValue<import("../graph/state.js").ReviewRecord | null> | null, unknown>;
51
- answers: import("@langchain/langgraph").BaseChannel<string[], string[] | import("@langchain/langgraph").OverwriteValue<string[]>, unknown>;
52
- deepenPasses: import("@langchain/langgraph").BaseChannel<number, number | import("@langchain/langgraph").OverwriteValue<number>, unknown>;
53
- archived: import("@langchain/langgraph").BaseChannel<import("../graph/state.js").ArchiveRecord | null, import("../graph/state.js").ArchiveRecord | import("@langchain/langgraph").OverwriteValue<import("../graph/state.js").ArchiveRecord | null> | null, unknown>;
54
- verifyHistory: import("@langchain/langgraph").BaseChannel<import("../graph/convergence.js").VerifyOutcome[], import("../graph/convergence.js").VerifyOutcome[] | import("@langchain/langgraph").OverwriteValue<import("../graph/convergence.js").VerifyOutcome[]>, unknown>;
55
55
  }>;
56
56
  type ImplementationSchema = ReturnType<typeof implementationSchema>;
57
57
  export type ImplementationGraphState = ImplementationSchema['State'];
@@ -59,6 +59,16 @@ export declare function implementationInput(parent: CoreDefinitionState, frame:
59
59
  export declare function implementationContext(state: CoreDefinitionState, frame: AttemptFrame, signal: AbortSignal, execution: NodeExecutionPort): PieceExecutionContext;
60
60
  /** Six actual Core nodes use the parent's saver; every state update shares its terminal commit. */
61
61
  export declare function compileImplementationGraph(adapter: ImplementationAdapter, execution: NodeExecutionPort): import("@langchain/langgraph").CompiledStateGraph<{
62
+ plan: import("../../pipeline/pipeline-state.js").VerificationCommand[];
63
+ unverifiedRepositories: string[];
64
+ architecture: import("../graph/state.js").ArchitectureRecord | null;
65
+ development: import("../graph/state.js").DeveloperRecord | null;
66
+ verifyResult: import("../graph/state.js").VerificationRecord | null;
67
+ review: import("../graph/state.js").ReviewRecord | null;
68
+ answers: string[];
69
+ deepenPasses: number;
70
+ archived: import("../graph/state.js").ArchiveRecord | null;
71
+ verifyHistory: import("../graph/convergence.js").VerifyOutcome[];
62
72
  $scope: ExecutionScope;
63
73
  $outer: CoreDefinitionState;
64
74
  $next: CoreNodeId | null;
@@ -67,25 +77,25 @@ export declare function compileImplementationGraph(adapter: ImplementationAdapte
67
77
  unverifiedRepositories: import("@langchain/langgraph").BaseChannel<string[], string[] | import("@langchain/langgraph").OverwriteValue<string[]>, unknown>;
68
78
  architecture: import("@langchain/langgraph").BaseChannel<import("../graph/state.js").ArchitectureRecord | null, import("../graph/state.js").ArchitectureRecord | import("@langchain/langgraph").OverwriteValue<import("../graph/state.js").ArchitectureRecord | null> | null, unknown>;
69
79
  development: import("@langchain/langgraph").BaseChannel<import("../graph/state.js").DeveloperRecord | null, import("../graph/state.js").DeveloperRecord | import("@langchain/langgraph").OverwriteValue<import("../graph/state.js").DeveloperRecord | null> | null, unknown>;
70
- verifyResult: import("@langchain/langgraph").BaseChannel<import("../graph/state.js").VerificationRecord | null, import("../graph/state.js").VerificationRecord | import("@langchain/langgraph").OverwriteValue<import("../graph/state.js").VerificationRecord | null> | null, unknown>;
71
- review: import("@langchain/langgraph").BaseChannel<import("../graph/state.js").ReviewRecord | null, import("../graph/state.js").ReviewRecord | import("@langchain/langgraph").OverwriteValue<import("../graph/state.js").ReviewRecord | null> | null, unknown>;
80
+ verifyResult: import("@langchain/langgraph").BaseChannel<import("../graph/state.js").VerificationRecord | null, import("@langchain/langgraph").OverwriteValue<import("../graph/state.js").VerificationRecord | null> | import("../graph/state.js").VerificationRecord | null, unknown>;
81
+ review: import("@langchain/langgraph").BaseChannel<import("../graph/state.js").ReviewRecord | null, import("@langchain/langgraph").OverwriteValue<import("../graph/state.js").ReviewRecord | null> | import("../graph/state.js").ReviewRecord | null, unknown>;
72
82
  answers: import("@langchain/langgraph").BaseChannel<string[], string[] | import("@langchain/langgraph").OverwriteValue<string[]>, unknown>;
73
83
  deepenPasses: import("@langchain/langgraph").BaseChannel<number, number | import("@langchain/langgraph").OverwriteValue<number>, unknown>;
74
84
  archived: import("@langchain/langgraph").BaseChannel<import("../graph/state.js").ArchiveRecord | null, import("../graph/state.js").ArchiveRecord | import("@langchain/langgraph").OverwriteValue<import("../graph/state.js").ArchiveRecord | null> | null, unknown>;
75
85
  verifyHistory: import("@langchain/langgraph").BaseChannel<import("../graph/convergence.js").VerifyOutcome[], import("../graph/convergence.js").VerifyOutcome[] | import("@langchain/langgraph").OverwriteValue<import("../graph/convergence.js").VerifyOutcome[]>, unknown>;
76
86
  }>> | null;
77
87
  $commit: TerminalCommit;
78
- plan: import("../../pipeline/pipeline-state.js").VerificationCommand[];
79
- unverifiedRepositories: string[];
80
- architecture: import("../graph/state.js").ArchitectureRecord | null;
81
- development: import("../graph/state.js").DeveloperRecord | null;
82
- verifyResult: import("../graph/state.js").VerificationRecord | null;
83
- review: import("../graph/state.js").ReviewRecord | null;
84
- answers: string[];
85
- deepenPasses: number;
86
- archived: import("../graph/state.js").ArchiveRecord | null;
87
- verifyHistory: import("../graph/convergence.js").VerifyOutcome[];
88
88
  }, {
89
+ plan?: import("../../pipeline/pipeline-state.js").VerificationCommand[] | undefined;
90
+ unverifiedRepositories?: string[] | undefined;
91
+ architecture?: import("../graph/state.js").ArchitectureRecord | null | undefined;
92
+ development?: import("../graph/state.js").DeveloperRecord | null | undefined;
93
+ verifyResult?: import("../graph/state.js").VerificationRecord | null | undefined;
94
+ review?: import("../graph/state.js").ReviewRecord | null | undefined;
95
+ answers?: string[] | undefined;
96
+ deepenPasses?: number | undefined;
97
+ archived?: import("../graph/state.js").ArchiveRecord | null | undefined;
98
+ verifyHistory?: import("../graph/convergence.js").VerifyOutcome[] | undefined;
89
99
  $scope?: ExecutionScope | undefined;
90
100
  $outer?: CoreDefinitionState | undefined;
91
101
  $next?: CoreNodeId | null | undefined;
@@ -94,35 +104,35 @@ export declare function compileImplementationGraph(adapter: ImplementationAdapte
94
104
  unverifiedRepositories: import("@langchain/langgraph").BaseChannel<string[], string[] | import("@langchain/langgraph").OverwriteValue<string[]>, unknown>;
95
105
  architecture: import("@langchain/langgraph").BaseChannel<import("../graph/state.js").ArchitectureRecord | null, import("../graph/state.js").ArchitectureRecord | import("@langchain/langgraph").OverwriteValue<import("../graph/state.js").ArchitectureRecord | null> | null, unknown>;
96
106
  development: import("@langchain/langgraph").BaseChannel<import("../graph/state.js").DeveloperRecord | null, import("../graph/state.js").DeveloperRecord | import("@langchain/langgraph").OverwriteValue<import("../graph/state.js").DeveloperRecord | null> | null, unknown>;
97
- verifyResult: import("@langchain/langgraph").BaseChannel<import("../graph/state.js").VerificationRecord | null, import("../graph/state.js").VerificationRecord | import("@langchain/langgraph").OverwriteValue<import("../graph/state.js").VerificationRecord | null> | null, unknown>;
98
- review: import("@langchain/langgraph").BaseChannel<import("../graph/state.js").ReviewRecord | null, import("../graph/state.js").ReviewRecord | import("@langchain/langgraph").OverwriteValue<import("../graph/state.js").ReviewRecord | null> | null, unknown>;
107
+ verifyResult: import("@langchain/langgraph").BaseChannel<import("../graph/state.js").VerificationRecord | null, import("@langchain/langgraph").OverwriteValue<import("../graph/state.js").VerificationRecord | null> | import("../graph/state.js").VerificationRecord | null, unknown>;
108
+ review: import("@langchain/langgraph").BaseChannel<import("../graph/state.js").ReviewRecord | null, import("@langchain/langgraph").OverwriteValue<import("../graph/state.js").ReviewRecord | null> | import("../graph/state.js").ReviewRecord | null, unknown>;
99
109
  answers: import("@langchain/langgraph").BaseChannel<string[], string[] | import("@langchain/langgraph").OverwriteValue<string[]>, unknown>;
100
110
  deepenPasses: import("@langchain/langgraph").BaseChannel<number, number | import("@langchain/langgraph").OverwriteValue<number>, unknown>;
101
111
  archived: import("@langchain/langgraph").BaseChannel<import("../graph/state.js").ArchiveRecord | null, import("../graph/state.js").ArchiveRecord | import("@langchain/langgraph").OverwriteValue<import("../graph/state.js").ArchiveRecord | null> | null, unknown>;
102
112
  verifyHistory: import("@langchain/langgraph").BaseChannel<import("../graph/convergence.js").VerifyOutcome[], import("../graph/convergence.js").VerifyOutcome[] | import("@langchain/langgraph").OverwriteValue<import("../graph/convergence.js").VerifyOutcome[]>, unknown>;
103
113
  }>> | null | undefined;
104
114
  $commit?: TerminalCommit | undefined;
105
- plan?: import("../../pipeline/pipeline-state.js").VerificationCommand[] | undefined;
106
- unverifiedRepositories?: string[] | undefined;
107
- architecture?: import("../graph/state.js").ArchitectureRecord | null | undefined;
108
- development?: import("../graph/state.js").DeveloperRecord | null | undefined;
109
- verifyResult?: import("../graph/state.js").VerificationRecord | null | undefined;
110
- review?: import("../graph/state.js").ReviewRecord | null | undefined;
111
- answers?: string[] | undefined;
112
- deepenPasses?: number | undefined;
113
- archived?: import("../graph/state.js").ArchiveRecord | null | undefined;
114
- verifyHistory?: import("../graph/convergence.js").VerifyOutcome[] | undefined;
115
115
  }, string, {
116
+ plan: import("@langchain/langgraph").BaseChannel<import("../../pipeline/pipeline-state.js").VerificationCommand[], import("../../pipeline/pipeline-state.js").VerificationCommand[] | import("@langchain/langgraph").OverwriteValue<import("../../pipeline/pipeline-state.js").VerificationCommand[]>, unknown>;
117
+ unverifiedRepositories: import("@langchain/langgraph").BaseChannel<string[], string[] | import("@langchain/langgraph").OverwriteValue<string[]>, unknown>;
118
+ architecture: import("@langchain/langgraph").BaseChannel<import("../graph/state.js").ArchitectureRecord | null, import("../graph/state.js").ArchitectureRecord | import("@langchain/langgraph").OverwriteValue<import("../graph/state.js").ArchitectureRecord | null> | null, unknown>;
119
+ development: import("@langchain/langgraph").BaseChannel<import("../graph/state.js").DeveloperRecord | null, import("../graph/state.js").DeveloperRecord | import("@langchain/langgraph").OverwriteValue<import("../graph/state.js").DeveloperRecord | null> | null, unknown>;
120
+ verifyResult: import("@langchain/langgraph").BaseChannel<import("../graph/state.js").VerificationRecord | null, import("@langchain/langgraph").OverwriteValue<import("../graph/state.js").VerificationRecord | null> | import("../graph/state.js").VerificationRecord | null, unknown>;
121
+ review: import("@langchain/langgraph").BaseChannel<import("../graph/state.js").ReviewRecord | null, import("@langchain/langgraph").OverwriteValue<import("../graph/state.js").ReviewRecord | null> | import("../graph/state.js").ReviewRecord | null, unknown>;
122
+ answers: import("@langchain/langgraph").BaseChannel<string[], string[] | import("@langchain/langgraph").OverwriteValue<string[]>, unknown>;
123
+ deepenPasses: import("@langchain/langgraph").BaseChannel<number, number | import("@langchain/langgraph").OverwriteValue<number>, unknown>;
124
+ archived: import("@langchain/langgraph").BaseChannel<import("../graph/state.js").ArchiveRecord | null, import("../graph/state.js").ArchiveRecord | import("@langchain/langgraph").OverwriteValue<import("../graph/state.js").ArchiveRecord | null> | null, unknown>;
125
+ verifyHistory: import("@langchain/langgraph").BaseChannel<import("../graph/convergence.js").VerifyOutcome[], import("../graph/convergence.js").VerifyOutcome[] | import("@langchain/langgraph").OverwriteValue<import("../graph/convergence.js").VerifyOutcome[]>, unknown>;
116
126
  $scope: import("@langchain/langgraph").BaseChannel<ExecutionScope, ExecutionScope | import("@langchain/langgraph").OverwriteValue<ExecutionScope>, unknown>;
117
127
  $outer: import("@langchain/langgraph").BaseChannel<CoreDefinitionState, CoreDefinitionState | import("@langchain/langgraph").OverwriteValue<CoreDefinitionState>, unknown>;
118
- $next: import("@langchain/langgraph").BaseChannel<CoreNodeId | null, CoreNodeId | import("@langchain/langgraph").OverwriteValue<CoreNodeId | null> | null, unknown>;
128
+ $next: import("@langchain/langgraph").BaseChannel<CoreNodeId | null, import("@langchain/langgraph").OverwriteValue<CoreNodeId | null> | CoreNodeId | null, unknown>;
119
129
  $nodeResult: import("@langchain/langgraph").BaseChannel<NodeResult<import("@langchain/langgraph").StateType<{
120
130
  plan: import("@langchain/langgraph").BaseChannel<import("../../pipeline/pipeline-state.js").VerificationCommand[], import("../../pipeline/pipeline-state.js").VerificationCommand[] | import("@langchain/langgraph").OverwriteValue<import("../../pipeline/pipeline-state.js").VerificationCommand[]>, unknown>;
121
131
  unverifiedRepositories: import("@langchain/langgraph").BaseChannel<string[], string[] | import("@langchain/langgraph").OverwriteValue<string[]>, unknown>;
122
132
  architecture: import("@langchain/langgraph").BaseChannel<import("../graph/state.js").ArchitectureRecord | null, import("../graph/state.js").ArchitectureRecord | import("@langchain/langgraph").OverwriteValue<import("../graph/state.js").ArchitectureRecord | null> | null, unknown>;
123
133
  development: import("@langchain/langgraph").BaseChannel<import("../graph/state.js").DeveloperRecord | null, import("../graph/state.js").DeveloperRecord | import("@langchain/langgraph").OverwriteValue<import("../graph/state.js").DeveloperRecord | null> | null, unknown>;
124
- verifyResult: import("@langchain/langgraph").BaseChannel<import("../graph/state.js").VerificationRecord | null, import("../graph/state.js").VerificationRecord | import("@langchain/langgraph").OverwriteValue<import("../graph/state.js").VerificationRecord | null> | null, unknown>;
125
- review: import("@langchain/langgraph").BaseChannel<import("../graph/state.js").ReviewRecord | null, import("../graph/state.js").ReviewRecord | import("@langchain/langgraph").OverwriteValue<import("../graph/state.js").ReviewRecord | null> | null, unknown>;
134
+ verifyResult: import("@langchain/langgraph").BaseChannel<import("../graph/state.js").VerificationRecord | null, import("@langchain/langgraph").OverwriteValue<import("../graph/state.js").VerificationRecord | null> | import("../graph/state.js").VerificationRecord | null, unknown>;
135
+ review: import("@langchain/langgraph").BaseChannel<import("../graph/state.js").ReviewRecord | null, import("@langchain/langgraph").OverwriteValue<import("../graph/state.js").ReviewRecord | null> | import("../graph/state.js").ReviewRecord | null, unknown>;
126
136
  answers: import("@langchain/langgraph").BaseChannel<string[], string[] | import("@langchain/langgraph").OverwriteValue<string[]>, unknown>;
127
137
  deepenPasses: import("@langchain/langgraph").BaseChannel<number, number | import("@langchain/langgraph").OverwriteValue<number>, unknown>;
128
138
  archived: import("@langchain/langgraph").BaseChannel<import("../graph/state.js").ArchiveRecord | null, import("../graph/state.js").ArchiveRecord | import("@langchain/langgraph").OverwriteValue<import("../graph/state.js").ArchiveRecord | null> | null, unknown>;
@@ -132,8 +142,8 @@ export declare function compileImplementationGraph(adapter: ImplementationAdapte
132
142
  unverifiedRepositories: import("@langchain/langgraph").BaseChannel<string[], string[] | import("@langchain/langgraph").OverwriteValue<string[]>, unknown>;
133
143
  architecture: import("@langchain/langgraph").BaseChannel<import("../graph/state.js").ArchitectureRecord | null, import("../graph/state.js").ArchitectureRecord | import("@langchain/langgraph").OverwriteValue<import("../graph/state.js").ArchitectureRecord | null> | null, unknown>;
134
144
  development: import("@langchain/langgraph").BaseChannel<import("../graph/state.js").DeveloperRecord | null, import("../graph/state.js").DeveloperRecord | import("@langchain/langgraph").OverwriteValue<import("../graph/state.js").DeveloperRecord | null> | null, unknown>;
135
- verifyResult: import("@langchain/langgraph").BaseChannel<import("../graph/state.js").VerificationRecord | null, import("../graph/state.js").VerificationRecord | import("@langchain/langgraph").OverwriteValue<import("../graph/state.js").VerificationRecord | null> | null, unknown>;
136
- review: import("@langchain/langgraph").BaseChannel<import("../graph/state.js").ReviewRecord | null, import("../graph/state.js").ReviewRecord | import("@langchain/langgraph").OverwriteValue<import("../graph/state.js").ReviewRecord | null> | null, unknown>;
145
+ verifyResult: import("@langchain/langgraph").BaseChannel<import("../graph/state.js").VerificationRecord | null, import("@langchain/langgraph").OverwriteValue<import("../graph/state.js").VerificationRecord | null> | import("../graph/state.js").VerificationRecord | null, unknown>;
146
+ review: import("@langchain/langgraph").BaseChannel<import("../graph/state.js").ReviewRecord | null, import("@langchain/langgraph").OverwriteValue<import("../graph/state.js").ReviewRecord | null> | import("../graph/state.js").ReviewRecord | null, unknown>;
137
147
  answers: import("@langchain/langgraph").BaseChannel<string[], string[] | import("@langchain/langgraph").OverwriteValue<string[]>, unknown>;
138
148
  deepenPasses: import("@langchain/langgraph").BaseChannel<number, number | import("@langchain/langgraph").OverwriteValue<number>, unknown>;
139
149
  archived: import("@langchain/langgraph").BaseChannel<import("../graph/state.js").ArchiveRecord | null, import("../graph/state.js").ArchiveRecord | import("@langchain/langgraph").OverwriteValue<import("../graph/state.js").ArchiveRecord | null> | null, unknown>;
@@ -143,35 +153,35 @@ export declare function compileImplementationGraph(adapter: ImplementationAdapte
143
153
  unverifiedRepositories: import("@langchain/langgraph").BaseChannel<string[], string[] | import("@langchain/langgraph").OverwriteValue<string[]>, unknown>;
144
154
  architecture: import("@langchain/langgraph").BaseChannel<import("../graph/state.js").ArchitectureRecord | null, import("../graph/state.js").ArchitectureRecord | import("@langchain/langgraph").OverwriteValue<import("../graph/state.js").ArchitectureRecord | null> | null, unknown>;
145
155
  development: import("@langchain/langgraph").BaseChannel<import("../graph/state.js").DeveloperRecord | null, import("../graph/state.js").DeveloperRecord | import("@langchain/langgraph").OverwriteValue<import("../graph/state.js").DeveloperRecord | null> | null, unknown>;
146
- verifyResult: import("@langchain/langgraph").BaseChannel<import("../graph/state.js").VerificationRecord | null, import("../graph/state.js").VerificationRecord | import("@langchain/langgraph").OverwriteValue<import("../graph/state.js").VerificationRecord | null> | null, unknown>;
147
- review: import("@langchain/langgraph").BaseChannel<import("../graph/state.js").ReviewRecord | null, import("../graph/state.js").ReviewRecord | import("@langchain/langgraph").OverwriteValue<import("../graph/state.js").ReviewRecord | null> | null, unknown>;
156
+ verifyResult: import("@langchain/langgraph").BaseChannel<import("../graph/state.js").VerificationRecord | null, import("@langchain/langgraph").OverwriteValue<import("../graph/state.js").VerificationRecord | null> | import("../graph/state.js").VerificationRecord | null, unknown>;
157
+ review: import("@langchain/langgraph").BaseChannel<import("../graph/state.js").ReviewRecord | null, import("@langchain/langgraph").OverwriteValue<import("../graph/state.js").ReviewRecord | null> | import("../graph/state.js").ReviewRecord | null, unknown>;
148
158
  answers: import("@langchain/langgraph").BaseChannel<string[], string[] | import("@langchain/langgraph").OverwriteValue<string[]>, unknown>;
149
159
  deepenPasses: import("@langchain/langgraph").BaseChannel<number, number | import("@langchain/langgraph").OverwriteValue<number>, unknown>;
150
160
  archived: import("@langchain/langgraph").BaseChannel<import("../graph/state.js").ArchiveRecord | null, import("../graph/state.js").ArchiveRecord | import("@langchain/langgraph").OverwriteValue<import("../graph/state.js").ArchiveRecord | null> | null, unknown>;
151
161
  verifyHistory: import("@langchain/langgraph").BaseChannel<import("../graph/convergence.js").VerifyOutcome[], import("../graph/convergence.js").VerifyOutcome[] | import("@langchain/langgraph").OverwriteValue<import("../graph/convergence.js").VerifyOutcome[]>, unknown>;
152
162
  }>> | null> | null, unknown>;
153
163
  $commit: EphemeralValue<TerminalCommit>;
164
+ }, {
154
165
  plan: import("@langchain/langgraph").BaseChannel<import("../../pipeline/pipeline-state.js").VerificationCommand[], import("../../pipeline/pipeline-state.js").VerificationCommand[] | import("@langchain/langgraph").OverwriteValue<import("../../pipeline/pipeline-state.js").VerificationCommand[]>, unknown>;
155
166
  unverifiedRepositories: import("@langchain/langgraph").BaseChannel<string[], string[] | import("@langchain/langgraph").OverwriteValue<string[]>, unknown>;
156
167
  architecture: import("@langchain/langgraph").BaseChannel<import("../graph/state.js").ArchitectureRecord | null, import("../graph/state.js").ArchitectureRecord | import("@langchain/langgraph").OverwriteValue<import("../graph/state.js").ArchitectureRecord | null> | null, unknown>;
157
168
  development: import("@langchain/langgraph").BaseChannel<import("../graph/state.js").DeveloperRecord | null, import("../graph/state.js").DeveloperRecord | import("@langchain/langgraph").OverwriteValue<import("../graph/state.js").DeveloperRecord | null> | null, unknown>;
158
- verifyResult: import("@langchain/langgraph").BaseChannel<import("../graph/state.js").VerificationRecord | null, import("../graph/state.js").VerificationRecord | import("@langchain/langgraph").OverwriteValue<import("../graph/state.js").VerificationRecord | null> | null, unknown>;
159
- review: import("@langchain/langgraph").BaseChannel<import("../graph/state.js").ReviewRecord | null, import("../graph/state.js").ReviewRecord | import("@langchain/langgraph").OverwriteValue<import("../graph/state.js").ReviewRecord | null> | null, unknown>;
169
+ verifyResult: import("@langchain/langgraph").BaseChannel<import("../graph/state.js").VerificationRecord | null, import("@langchain/langgraph").OverwriteValue<import("../graph/state.js").VerificationRecord | null> | import("../graph/state.js").VerificationRecord | null, unknown>;
170
+ review: import("@langchain/langgraph").BaseChannel<import("../graph/state.js").ReviewRecord | null, import("@langchain/langgraph").OverwriteValue<import("../graph/state.js").ReviewRecord | null> | import("../graph/state.js").ReviewRecord | null, unknown>;
160
171
  answers: import("@langchain/langgraph").BaseChannel<string[], string[] | import("@langchain/langgraph").OverwriteValue<string[]>, unknown>;
161
172
  deepenPasses: import("@langchain/langgraph").BaseChannel<number, number | import("@langchain/langgraph").OverwriteValue<number>, unknown>;
162
173
  archived: import("@langchain/langgraph").BaseChannel<import("../graph/state.js").ArchiveRecord | null, import("../graph/state.js").ArchiveRecord | import("@langchain/langgraph").OverwriteValue<import("../graph/state.js").ArchiveRecord | null> | null, unknown>;
163
174
  verifyHistory: import("@langchain/langgraph").BaseChannel<import("../graph/convergence.js").VerifyOutcome[], import("../graph/convergence.js").VerifyOutcome[] | import("@langchain/langgraph").OverwriteValue<import("../graph/convergence.js").VerifyOutcome[]>, unknown>;
164
- }, {
165
175
  $scope: import("@langchain/langgraph").BaseChannel<ExecutionScope, ExecutionScope | import("@langchain/langgraph").OverwriteValue<ExecutionScope>, unknown>;
166
176
  $outer: import("@langchain/langgraph").BaseChannel<CoreDefinitionState, CoreDefinitionState | import("@langchain/langgraph").OverwriteValue<CoreDefinitionState>, unknown>;
167
- $next: import("@langchain/langgraph").BaseChannel<CoreNodeId | null, CoreNodeId | import("@langchain/langgraph").OverwriteValue<CoreNodeId | null> | null, unknown>;
177
+ $next: import("@langchain/langgraph").BaseChannel<CoreNodeId | null, import("@langchain/langgraph").OverwriteValue<CoreNodeId | null> | CoreNodeId | null, unknown>;
168
178
  $nodeResult: import("@langchain/langgraph").BaseChannel<NodeResult<import("@langchain/langgraph").StateType<{
169
179
  plan: import("@langchain/langgraph").BaseChannel<import("../../pipeline/pipeline-state.js").VerificationCommand[], import("../../pipeline/pipeline-state.js").VerificationCommand[] | import("@langchain/langgraph").OverwriteValue<import("../../pipeline/pipeline-state.js").VerificationCommand[]>, unknown>;
170
180
  unverifiedRepositories: import("@langchain/langgraph").BaseChannel<string[], string[] | import("@langchain/langgraph").OverwriteValue<string[]>, unknown>;
171
181
  architecture: import("@langchain/langgraph").BaseChannel<import("../graph/state.js").ArchitectureRecord | null, import("../graph/state.js").ArchitectureRecord | import("@langchain/langgraph").OverwriteValue<import("../graph/state.js").ArchitectureRecord | null> | null, unknown>;
172
182
  development: import("@langchain/langgraph").BaseChannel<import("../graph/state.js").DeveloperRecord | null, import("../graph/state.js").DeveloperRecord | import("@langchain/langgraph").OverwriteValue<import("../graph/state.js").DeveloperRecord | null> | null, unknown>;
173
- verifyResult: import("@langchain/langgraph").BaseChannel<import("../graph/state.js").VerificationRecord | null, import("../graph/state.js").VerificationRecord | import("@langchain/langgraph").OverwriteValue<import("../graph/state.js").VerificationRecord | null> | null, unknown>;
174
- review: import("@langchain/langgraph").BaseChannel<import("../graph/state.js").ReviewRecord | null, import("../graph/state.js").ReviewRecord | import("@langchain/langgraph").OverwriteValue<import("../graph/state.js").ReviewRecord | null> | null, unknown>;
183
+ verifyResult: import("@langchain/langgraph").BaseChannel<import("../graph/state.js").VerificationRecord | null, import("@langchain/langgraph").OverwriteValue<import("../graph/state.js").VerificationRecord | null> | import("../graph/state.js").VerificationRecord | null, unknown>;
184
+ review: import("@langchain/langgraph").BaseChannel<import("../graph/state.js").ReviewRecord | null, import("@langchain/langgraph").OverwriteValue<import("../graph/state.js").ReviewRecord | null> | import("../graph/state.js").ReviewRecord | null, unknown>;
175
185
  answers: import("@langchain/langgraph").BaseChannel<string[], string[] | import("@langchain/langgraph").OverwriteValue<string[]>, unknown>;
176
186
  deepenPasses: import("@langchain/langgraph").BaseChannel<number, number | import("@langchain/langgraph").OverwriteValue<number>, unknown>;
177
187
  archived: import("@langchain/langgraph").BaseChannel<import("../graph/state.js").ArchiveRecord | null, import("../graph/state.js").ArchiveRecord | import("@langchain/langgraph").OverwriteValue<import("../graph/state.js").ArchiveRecord | null> | null, unknown>;
@@ -181,8 +191,8 @@ export declare function compileImplementationGraph(adapter: ImplementationAdapte
181
191
  unverifiedRepositories: import("@langchain/langgraph").BaseChannel<string[], string[] | import("@langchain/langgraph").OverwriteValue<string[]>, unknown>;
182
192
  architecture: import("@langchain/langgraph").BaseChannel<import("../graph/state.js").ArchitectureRecord | null, import("../graph/state.js").ArchitectureRecord | import("@langchain/langgraph").OverwriteValue<import("../graph/state.js").ArchitectureRecord | null> | null, unknown>;
183
193
  development: import("@langchain/langgraph").BaseChannel<import("../graph/state.js").DeveloperRecord | null, import("../graph/state.js").DeveloperRecord | import("@langchain/langgraph").OverwriteValue<import("../graph/state.js").DeveloperRecord | null> | null, unknown>;
184
- verifyResult: import("@langchain/langgraph").BaseChannel<import("../graph/state.js").VerificationRecord | null, import("../graph/state.js").VerificationRecord | import("@langchain/langgraph").OverwriteValue<import("../graph/state.js").VerificationRecord | null> | null, unknown>;
185
- review: import("@langchain/langgraph").BaseChannel<import("../graph/state.js").ReviewRecord | null, import("../graph/state.js").ReviewRecord | import("@langchain/langgraph").OverwriteValue<import("../graph/state.js").ReviewRecord | null> | null, unknown>;
194
+ verifyResult: import("@langchain/langgraph").BaseChannel<import("../graph/state.js").VerificationRecord | null, import("@langchain/langgraph").OverwriteValue<import("../graph/state.js").VerificationRecord | null> | import("../graph/state.js").VerificationRecord | null, unknown>;
195
+ review: import("@langchain/langgraph").BaseChannel<import("../graph/state.js").ReviewRecord | null, import("@langchain/langgraph").OverwriteValue<import("../graph/state.js").ReviewRecord | null> | import("../graph/state.js").ReviewRecord | null, unknown>;
186
196
  answers: import("@langchain/langgraph").BaseChannel<string[], string[] | import("@langchain/langgraph").OverwriteValue<string[]>, unknown>;
187
197
  deepenPasses: import("@langchain/langgraph").BaseChannel<number, number | import("@langchain/langgraph").OverwriteValue<number>, unknown>;
188
198
  archived: import("@langchain/langgraph").BaseChannel<import("../graph/state.js").ArchiveRecord | null, import("../graph/state.js").ArchiveRecord | import("@langchain/langgraph").OverwriteValue<import("../graph/state.js").ArchiveRecord | null> | null, unknown>;
@@ -192,23 +202,13 @@ export declare function compileImplementationGraph(adapter: ImplementationAdapte
192
202
  unverifiedRepositories: import("@langchain/langgraph").BaseChannel<string[], string[] | import("@langchain/langgraph").OverwriteValue<string[]>, unknown>;
193
203
  architecture: import("@langchain/langgraph").BaseChannel<import("../graph/state.js").ArchitectureRecord | null, import("../graph/state.js").ArchitectureRecord | import("@langchain/langgraph").OverwriteValue<import("../graph/state.js").ArchitectureRecord | null> | null, unknown>;
194
204
  development: import("@langchain/langgraph").BaseChannel<import("../graph/state.js").DeveloperRecord | null, import("../graph/state.js").DeveloperRecord | import("@langchain/langgraph").OverwriteValue<import("../graph/state.js").DeveloperRecord | null> | null, unknown>;
195
- verifyResult: import("@langchain/langgraph").BaseChannel<import("../graph/state.js").VerificationRecord | null, import("../graph/state.js").VerificationRecord | import("@langchain/langgraph").OverwriteValue<import("../graph/state.js").VerificationRecord | null> | null, unknown>;
196
- review: import("@langchain/langgraph").BaseChannel<import("../graph/state.js").ReviewRecord | null, import("../graph/state.js").ReviewRecord | import("@langchain/langgraph").OverwriteValue<import("../graph/state.js").ReviewRecord | null> | null, unknown>;
205
+ verifyResult: import("@langchain/langgraph").BaseChannel<import("../graph/state.js").VerificationRecord | null, import("@langchain/langgraph").OverwriteValue<import("../graph/state.js").VerificationRecord | null> | import("../graph/state.js").VerificationRecord | null, unknown>;
206
+ review: import("@langchain/langgraph").BaseChannel<import("../graph/state.js").ReviewRecord | null, import("@langchain/langgraph").OverwriteValue<import("../graph/state.js").ReviewRecord | null> | import("../graph/state.js").ReviewRecord | null, unknown>;
197
207
  answers: import("@langchain/langgraph").BaseChannel<string[], string[] | import("@langchain/langgraph").OverwriteValue<string[]>, unknown>;
198
208
  deepenPasses: import("@langchain/langgraph").BaseChannel<number, number | import("@langchain/langgraph").OverwriteValue<number>, unknown>;
199
209
  archived: import("@langchain/langgraph").BaseChannel<import("../graph/state.js").ArchiveRecord | null, import("../graph/state.js").ArchiveRecord | import("@langchain/langgraph").OverwriteValue<import("../graph/state.js").ArchiveRecord | null> | null, unknown>;
200
210
  verifyHistory: import("@langchain/langgraph").BaseChannel<import("../graph/convergence.js").VerifyOutcome[], import("../graph/convergence.js").VerifyOutcome[] | import("@langchain/langgraph").OverwriteValue<import("../graph/convergence.js").VerifyOutcome[]>, unknown>;
201
211
  }>> | null> | null, unknown>;
202
212
  $commit: EphemeralValue<TerminalCommit>;
203
- plan: import("@langchain/langgraph").BaseChannel<import("../../pipeline/pipeline-state.js").VerificationCommand[], import("../../pipeline/pipeline-state.js").VerificationCommand[] | import("@langchain/langgraph").OverwriteValue<import("../../pipeline/pipeline-state.js").VerificationCommand[]>, unknown>;
204
- unverifiedRepositories: import("@langchain/langgraph").BaseChannel<string[], string[] | import("@langchain/langgraph").OverwriteValue<string[]>, unknown>;
205
- architecture: import("@langchain/langgraph").BaseChannel<import("../graph/state.js").ArchitectureRecord | null, import("../graph/state.js").ArchitectureRecord | import("@langchain/langgraph").OverwriteValue<import("../graph/state.js").ArchitectureRecord | null> | null, unknown>;
206
- development: import("@langchain/langgraph").BaseChannel<import("../graph/state.js").DeveloperRecord | null, import("../graph/state.js").DeveloperRecord | import("@langchain/langgraph").OverwriteValue<import("../graph/state.js").DeveloperRecord | null> | null, unknown>;
207
- verifyResult: import("@langchain/langgraph").BaseChannel<import("../graph/state.js").VerificationRecord | null, import("../graph/state.js").VerificationRecord | import("@langchain/langgraph").OverwriteValue<import("../graph/state.js").VerificationRecord | null> | null, unknown>;
208
- review: import("@langchain/langgraph").BaseChannel<import("../graph/state.js").ReviewRecord | null, import("../graph/state.js").ReviewRecord | import("@langchain/langgraph").OverwriteValue<import("../graph/state.js").ReviewRecord | null> | null, unknown>;
209
- answers: import("@langchain/langgraph").BaseChannel<string[], string[] | import("@langchain/langgraph").OverwriteValue<string[]>, unknown>;
210
- deepenPasses: import("@langchain/langgraph").BaseChannel<number, number | import("@langchain/langgraph").OverwriteValue<number>, unknown>;
211
- archived: import("@langchain/langgraph").BaseChannel<import("../graph/state.js").ArchiveRecord | null, import("../graph/state.js").ArchiveRecord | import("@langchain/langgraph").OverwriteValue<import("../graph/state.js").ArchiveRecord | null> | null, unknown>;
212
- verifyHistory: import("@langchain/langgraph").BaseChannel<import("../graph/convergence.js").VerifyOutcome[], import("../graph/convergence.js").VerifyOutcome[] | import("@langchain/langgraph").OverwriteValue<import("../graph/convergence.js").VerifyOutcome[]>, unknown>;
213
213
  }, import("@langchain/langgraph").StateDefinition, unknown, unknown, unknown, []>;
214
214
  export {};
@@ -1,6 +1,6 @@
1
1
  import { existsSync, mkdirSync } from 'node:fs';
2
2
  import path from 'node:path';
3
- import { fingerprintCandidate, persistCheckEvidence, readCandidateScope, pipelineStateDirectory } from '../../pipeline/pipeline-state.js';
3
+ import { candidateChangedReceipt, candidateManifest, candidateManifestHash, fingerprintCandidate, persistCheckEvidence, readCandidateScope, pipelineStateDirectory } from '../../pipeline/pipeline-state.js';
4
4
  import { resolveRoleDescriptor } from '../config.js';
5
5
  import { prepareOpenSpec, roleOpenSpecContext } from '../openspec.js';
6
6
  import { contentDigest } from './canonical-json.js';
@@ -215,11 +215,11 @@ export class RunPieceDependencies {
215
215
  }));
216
216
  }
217
217
  verification(context) {
218
- const candidateHash = this.fingerprint(), scope = this.candidateScope();
218
+ const scope = this.candidateScope(), manifest = candidateManifest(scope), candidateHash = candidateManifestHash(manifest);
219
219
  const row = this.ledger.db.sqlite.prepare("SELECT receipt_json FROM receipts WHERE run_id=? AND valid=1 AND candidate_hash=? ORDER BY created_at DESC LIMIT 1").get(this.ledger.runId, candidateHash);
220
220
  const previous = row ? JSON.parse(String(row.receipt_json)).evidence : undefined;
221
221
  return {
222
- candidateHash, scopeHash: scope.scopeHash, ...(previous ? { previous } : {}),
222
+ candidateHash, candidateManifest: manifest, currentManifest: () => candidateManifest(this.candidateScope()), scopeHash: scope.scopeHash, ...(previous ? { previous } : {}),
223
223
  isCurrent: () => { this.ledger.lease.assert(this.ledger.token); return this.fingerprint() === candidateHash; },
224
224
  persistCheck: (result, planHash, candidate) => {
225
225
  this.ledger.lease.assert(this.ledger.token);
@@ -231,7 +231,7 @@ export class RunPieceDependencies {
231
231
  },
232
232
  commitReceipt: receipt => {
233
233
  this.ledger.lease.assert(this.ledger.token);
234
- const result = this.fingerprint() === candidateHash ? receipt : { ...receipt, valid: false, reason: 'Candidate changed during verification' };
234
+ const result = this.fingerprint() === candidateHash ? receipt : candidateChangedReceipt(receipt, manifest, () => candidateManifest(this.candidateScope()));
235
235
  this.ledger.writePieceState(context.frame, 'evidence:receipt:' + receipt.id, json(result));
236
236
  return result;
237
237
  },
@@ -1,5 +1,5 @@
1
1
  import { type Piece } from '../contracts.js';
2
2
  import type { PieceDependencyProvider } from './ports.js';
3
3
  /** Outcomes are facts, not destinations. Only the host definition chooses the next node. */
4
- export declare const IMPLEMENTATION_STEP_OUTCOMES: readonly ["next", "incomplete", "rejected", "replan", "reverify", "rereview", "failed"];
4
+ export declare const IMPLEMENTATION_STEP_OUTCOMES: readonly ['next', 'incomplete', 'rejected', 'replan', 'reverify', 'rereview', 'failed'];
5
5
  export declare function implementationStepPiece(bindings: PieceDependencyProvider): Piece;
@@ -58,7 +58,8 @@ export async function executeRoleTurn(deps, params, context, options = {}) {
58
58
  ? saved.notes.value.text.slice(0, 4000) : '';
59
59
  const task = text(params.prompt) + environment + (priorNote ? '\n\n## Prior project review note\nTreat this bounded note as prior evidence to check against the current task; frozen requirements remain authoritative.\n' + JSON.stringify(priorNote) : '');
60
60
  const verification = descriptor.access === 'write' ? hostVerificationPlan(deps, context, params) : undefined;
61
- const full = roleInstructions(descriptor, deps.context, openspec?.[roleId]?.change, { definition: descriptor.prompt, verification }) + '\n## Current workflow task\n' + task;
61
+ const adopted = adoptedVerificationOutputs(context.state.$outputs);
62
+ const full = roleInstructions(descriptor, deps.context, openspec?.[roleId]?.change, { definition: descriptor.prompt, verification, ...(adopted.length ? { adoptedOutputs: adopted } : {}) }) + '\n## Current workflow task\n' + task;
62
63
  const result = await invoke(roleId, deps.stepContext(context), { prompt: previous ? task : full, ...(previous ? { resumeSessionId: previous, fallbackPrompt: full } : {}),
63
64
  structured: schema !== undefined, lenient: options.normalizeStructuredOutput !== undefined, outputSchema: schema, timeoutMs: params.timeoutMs, idleTimeoutMs: params.idleTimeoutMs }, (output, responseText) => {
64
65
  const normalized = options.normalizeStructuredOutput ? options.normalizeStructuredOutput(output, responseText) : output;
@@ -97,6 +98,14 @@ export async function executeRoleTurn(deps, params, context, options = {}) {
97
98
  return { outcome: 'next', output: { candidateHash: deps.executionSnapshot(context).candidate?.hash ?? null, text: boundedText(result.text), ...(result.value ? { structured: json(result.value) } : {}) },
98
99
  history: [historyEntry(context, result.text)], ...(params.sessionContinuity !== 'none' && session ? { session: { sessionId: session.sessionId, identity: session.identity } } : {}) };
99
100
  }
101
+ /** Files any committed `verify` output reports as host-adopted verification output (sticky for the run), so no role is told to revert them. */
102
+ function adoptedVerificationOutputs(outputs) {
103
+ return Object.values(outputs).flatMap(output => {
104
+ const listed = output && typeof output === 'object' && !Array.isArray(output) ? output.adoptedOutputs : undefined;
105
+ return Array.isArray(listed) ? listed.flatMap(item => item && typeof item === 'object' && !Array.isArray(item) && typeof item.path === 'string'
106
+ ? [{ ...(typeof item.repositoryId === 'string' ? { repositoryId: item.repositoryId } : {}), path: item.path }] : []) : [];
107
+ });
108
+ }
100
109
  const REPAIRABLE_BLOCKERS = new Set(['toolchain', 'setup', 'environment']);
101
110
  /** The text of a structured `blocker` the host may be able to install away; undefined for other kinds (credentials, network, scope). */
102
111
  function repairableBlocker(value) {
@@ -14,14 +14,14 @@ export declare const positiveInteger: {
14
14
  };
15
15
  export declare const invocationTimers: {
16
16
  timeoutMs: {
17
- minimum: number;
18
17
  type: string;
19
18
  maximum: number;
19
+ minimum: number;
20
20
  };
21
21
  idleTimeoutMs: {
22
- minimum: number;
23
22
  type: string;
24
23
  maximum: number;
24
+ minimum: number;
25
25
  };
26
26
  };
27
27
  export declare const variableNameSchema: {
@@ -2,13 +2,13 @@ import { admitVerificationProposals } from '../../verification-proposals.js';
2
2
  import { stripVTControlCharacters } from 'node:util';
3
3
  import { contentDigest } from '../canonical-json.js';
4
4
  import { advisoryMemory } from './project-memory.js';
5
- import { executeVerification, validateVerificationRequest } from '../../../pipeline/pipeline-state.js';
5
+ import { describeModifiedFiles, executeVerification, validateVerificationRequest } from '../../../pipeline/pipeline-state.js';
6
6
  import { withScopeDefault } from '../../change-scope.js';
7
7
  import { verificationDiagnosticPriority, verificationFailureSummary } from '../../verification-diagnostics.js';
8
8
  import { boundedText, json, paramsSchema, positiveInteger } from './shared.js';
9
- import { isEnvironmentFailure } from '../../compact/environment.js';
9
+ import { describeDrift } from '../../compact/environment.js';
10
10
  import { guardrailEnabled } from '../../guardrails.js';
11
- import { checkoutRelative, preconditionBlock, repairEnvironment } from '../../verification-repair.js';
11
+ import { NONDETERMINISTIC_OUTPUT_CODE, adoptedOutputNote, checkoutRelative, environmentFailure, nondeterministicOutputBlocker, preconditionBlock, repairEnvironment, selfMutationOnly } from '../../verification-repair.js';
12
12
  /** Keep real subprocess diagnostics in committed outputs for subsequent agents.
13
13
  * The full command evidence remains in the receipt; prioritize failed checks
14
14
  * when the output budget is exhausted. */
@@ -169,10 +169,16 @@ export function verifyPiece(bindings) {
169
169
  // fresh worktree has no node_modules whatever wrote the code. Install
170
170
  // once where the failing command runs and verify again; only the second
171
171
  // receipt becomes feedback.
172
+ // Installed versions outside their declared ranges (a stale warm-linked
173
+ // tree) count as environmental whatever the failing output says.
172
174
  let environmentRepair;
173
- if (!blocker && !receipt.valid && guardrailEnabled(deps.config.guardrails, 'environment-repair') && receipt.commands.some(command => isEnvironmentFailure(command.exitCode, command.output))) {
175
+ const environment = !blocker && !receipt.valid && guardrailEnabled(deps.config.guardrails, 'environment-repair') ? environmentFailure(deps.context, receipt) : undefined;
176
+ if (environment) {
177
+ const drift = environment.drift.flatMap(item => item.drift.map(entry => ({ root: checkoutRelative(deps.context, item.root), ...entry }))).slice(0, 20);
178
+ if (drift.length)
179
+ progress(`[environment] Installed dependencies do not satisfy their declared ranges (${describeDrift(drift)}); the host reinstalls them before judging the failure.`);
174
180
  const repair = repairEnvironment(deps.context, receipt, deps.config.guardrails, progress);
175
- environmentRepair = { attempted: true, reverified: false, installs: repair.installs.map(install => ({ command: install.command, args: install.args, root: checkoutRelative(deps.context, install.root), ok: install.ok, detail: boundedText(install.detail, 1_000) })) };
181
+ environmentRepair = { attempted: true, reverified: false, installs: repair.installs.map(install => ({ command: install.command, args: install.args, root: checkoutRelative(deps.context, install.root), ok: install.ok, detail: boundedText(install.detail, 1_000) })), ...(drift.length ? { drift } : {}) };
176
182
  if (repair.refused)
177
183
  blocker = repair.refused;
178
184
  else if (repair.installs.some(install => install.ok)) {
@@ -182,6 +188,29 @@ export function verifyPiece(bindings) {
182
188
  blocker = receipt.valid ? undefined : preconditionBlock(deps.context, receipt);
183
189
  }
184
190
  }
191
+ // Verification that rewrote candidate files itself (a lint pre-step
192
+ // regenerating a tracked mapping) is not a code failure: reverting the
193
+ // file only makes the next run regenerate it. Keep it in the candidate
194
+ // and verify once more; output that changes again is the repository's
195
+ // or operator's to fix, never a correction round.
196
+ let adopted, nondeterministic;
197
+ if (!blocker && selfMutationOnly(receipt) && !context.signal.aborted && (verificationDeadline(deps, context) ?? Infinity) > Date.now()) {
198
+ const first = receipt.selfMutation;
199
+ if (!guardrailEnabled(deps.config.guardrails, 'verification-output-adoption'))
200
+ nondeterministic = nondeterministicOutputBlocker(deps.context, receipt, false);
201
+ else {
202
+ progress(`[verification] Verification commands modified ${describeModifiedFiles(first)}; keeping them in the candidate and verifying once more.`);
203
+ receipt = await run(request, concurrency);
204
+ if (receipt.valid) {
205
+ adopted = first.files;
206
+ progress(adoptedOutputNote(first));
207
+ }
208
+ else if (selfMutationOnly(receipt))
209
+ nondeterministic = nondeterministicOutputBlocker(deps.context, receipt, true);
210
+ else
211
+ blocker = preconditionBlock(deps.context, receipt);
212
+ }
213
+ }
185
214
  await advisoryMemory(context, () => deps.memory(context).put(['verification', 'known-commands'], memoryKey, {
186
215
  ...identity, observations: Math.min(1_000_000, typeof known?.value.observations === 'number' ? known.value.observations + 1 : 1),
187
216
  lastAttemptId: context.frame.attemptId, lastReceiptId: receipt.id, lastValid: receipt.valid,
@@ -193,12 +222,18 @@ export function verifyPiece(bindings) {
193
222
  const fingerprint = contentDigest(json({ candidateHash: identity.candidateHash,
194
223
  failures: receipt.commands.filter(command => command.exitCode !== 0).map(command => ({ repositoryId: command.repositoryId, command: command.command, args: command.args, cwd: command.cwd, exitCode: command.exitCode })) }));
195
224
  const previous = context.state.$vars[progressKey];
225
+ // Adopted output stays adopted for the rest of the run: a later pass that no longer mutates must not invite its revert.
226
+ const adoptedOutputs = [...new Map([...(Array.isArray(previous?.adopted) ? previous.adopted : []), ...(adopted ?? [])].map(file => [file.repositoryId + '\0' + file.path, file])).values()].slice(0, 200);
196
227
  const count = receipt.valid ? 0 : previous?.fingerprint === fingerprint ? (previous.count ?? 0) + 1 : 1;
197
228
  const stalled = !infrastructure && !receipt.valid && count >= 3;
198
229
  const verified = receipt.valid && receipt.commands.length > 0 && !receipt.unverifiedRepositories?.length;
199
- const output = { receiptId: receipt.id, valid: receipt.valid, candidateHash: identity.candidateHash, noProgressCount: count, ...(receipt.reason ? { reason: receipt.reason } : {}), ...(stalled ? { reason: 'Verification failed three times without candidate changes' } : {}),
200
- ...(setup ? { setup } : {}), ...(environmentRepair ? { environmentRepair } : {}), ...verificationDiagnostics(receipt) };
201
- const vars = { [progressKey]: { fingerprint, count } };
230
+ const output = { receiptId: receipt.id, valid: receipt.valid, candidateHash: adopted ? receipt.candidateHash : identity.candidateHash, noProgressCount: count, ...(receipt.reason ? { reason: receipt.reason } : {}), ...(stalled ? { reason: 'Verification failed three times without candidate changes' } : {}),
231
+ ...(setup ? { setup } : {}), ...(environmentRepair ? { environmentRepair } : {}), ...(receipt.selfMutation ? { selfMutation: json(receipt.selfMutation) } : {}),
232
+ ...(adoptedOutputs.length ? { adoptedOutputs: json(adoptedOutputs) } : {}), ...verificationDiagnostics(receipt) };
233
+ const vars = { [progressKey]: { fingerprint, count, ...(adoptedOutputs.length ? { adopted: json(adoptedOutputs) } : {}) } };
234
+ if (nondeterministic)
235
+ return { outcome: params.hostBlockers === true ? 'blocked' : 'failed', status: params.hostBlockers === true ? 'blocked' : 'failed', vars, receipt: receiptEvidence(receipt), verified: null,
236
+ error: { code: NONDETERMINISTIC_OUTPUT_CODE, message: `${nondeterministic.reason}. ${nondeterministic.requiredAction}` }, output: { ...output, valid: false, blocker: json(nondeterministic) } };
202
237
  // Without the opt-in outcome a blocker still travels in the output, and the no-progress stop keeps bounding the loop.
203
238
  if (blocker && (params.hostBlockers === true || !stalled))
204
239
  return { ...blocked(blocker, output), vars, receipt: receiptEvidence(receipt) };