@loucompanion/forge-bridge 0.1.3-dev.b6be5e7f9668 → 0.1.3-dev.bca7d0ccee53

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 (150) hide show
  1. package/README.md +78 -0
  2. package/dist/bridge/bridge.base.d.ts +6 -1
  3. package/dist/bridge/bridge.service.d.ts +60 -3
  4. package/dist/bridge/bridge.service.js +970 -24
  5. package/dist/bridge/bridge.types.d.ts +172 -1
  6. package/dist/cleanup/cleanup.service.d.ts +13 -2
  7. package/dist/cleanup/cleanup.service.js +435 -3
  8. package/dist/cleanup/cleanup.types.d.ts +10 -0
  9. package/dist/cleanup/index.d.ts +1 -1
  10. package/dist/cleanup/index.js +1 -1
  11. package/dist/cleanup/internals.d.ts +2 -2
  12. package/dist/cleanup/internals.js +1 -1
  13. package/dist/cli/cli.help.d.ts +2 -0
  14. package/dist/cli/cli.help.js +217 -0
  15. package/dist/cli/cli.service.d.ts +42 -2
  16. package/dist/cli/cli.service.js +357 -206
  17. package/dist/cli/local-config.d.ts +6 -0
  18. package/dist/cli/local-config.js +47 -3
  19. package/dist/runtime/attempt-node-runtime-launcher.d.ts +17 -0
  20. package/dist/runtime/attempt-node-runtime-launcher.js +101 -0
  21. package/dist/runtime/attempt-process-supervisor-registry.d.ts +20 -0
  22. package/dist/runtime/attempt-process-supervisor-registry.js +64 -0
  23. package/dist/runtime/attempt-process-supervisor.d.ts +86 -0
  24. package/dist/runtime/attempt-process-supervisor.js +350 -0
  25. package/dist/runtime/generated-output-reset.d.ts +10 -0
  26. package/dist/runtime/generated-output-reset.js +103 -0
  27. package/dist/runtime/host-listener-inspector.d.ts +44 -0
  28. package/dist/runtime/host-listener-inspector.js +324 -0
  29. package/dist/runtime/host-port-broker.d.ts +76 -0
  30. package/dist/runtime/host-port-broker.js +333 -0
  31. package/dist/runtime/host-runtime-contract.d.ts +47 -0
  32. package/dist/runtime/host-runtime-contract.js +700 -0
  33. package/dist/runtime/host-runtime-lease.d.ts +133 -0
  34. package/dist/runtime/host-runtime-lease.js +1462 -0
  35. package/dist/runtime/host-runtime-promotion.d.ts +23 -0
  36. package/dist/runtime/host-runtime-promotion.js +159 -0
  37. package/dist/runtime/node-host-runtime-adapter.d.ts +51 -0
  38. package/dist/runtime/node-host-runtime-adapter.js +268 -0
  39. package/dist/runtime/playwright-host-runtime-adapter.d.ts +20 -0
  40. package/dist/runtime/playwright-host-runtime-adapter.js +220 -0
  41. package/dist/runtime/runtime-isolation-lease.d.ts +67 -0
  42. package/dist/runtime/runtime-isolation-lease.js +158 -0
  43. package/dist/sandbox/command-runner.d.ts +4 -0
  44. package/dist/sandbox/command-runner.js +47 -0
  45. package/dist/sandbox/contract.d.ts +5 -0
  46. package/dist/sandbox/contract.js +276 -0
  47. package/dist/sandbox/event-budget.d.ts +11 -0
  48. package/dist/sandbox/event-budget.js +27 -0
  49. package/dist/sandbox/image-policy.d.ts +35 -0
  50. package/dist/sandbox/image-policy.js +247 -0
  51. package/dist/sandbox/index.d.ts +5 -0
  52. package/dist/sandbox/index.js +5 -0
  53. package/dist/sandbox/lease-watchdog.d.ts +18 -0
  54. package/dist/sandbox/lease-watchdog.js +67 -0
  55. package/dist/sandbox/preflight.d.ts +54 -0
  56. package/dist/sandbox/preflight.js +335 -0
  57. package/dist/sandbox/process.d.ts +20 -0
  58. package/dist/sandbox/process.js +209 -0
  59. package/dist/sandbox/provider-auth/codex.d.ts +26 -0
  60. package/dist/sandbox/provider-auth/codex.js +212 -0
  61. package/dist/sandbox/repository-lock.d.ts +5 -0
  62. package/dist/sandbox/repository-lock.js +119 -0
  63. package/dist/sandbox/runtime.d.ts +297 -0
  64. package/dist/sandbox/runtime.js +2338 -0
  65. package/dist/sandbox/sandbox.types.d.ts +86 -0
  66. package/dist/sandbox/sandbox.types.js +1 -0
  67. package/dist/sandbox/smoke.d.ts +76 -0
  68. package/dist/sandbox/smoke.js +380 -0
  69. package/dist/sandbox/worker-supervisor.d.ts +13 -0
  70. package/dist/sandbox/worker-supervisor.js +36 -0
  71. package/dist/sandbox/worker.d.ts +1 -0
  72. package/dist/sandbox/worker.js +225 -0
  73. package/dist/sandbox/workspace.service.d.ts +13 -0
  74. package/dist/sandbox/workspace.service.js +72 -0
  75. package/dist/session/managed-attempt-tools.d.ts +17 -0
  76. package/dist/session/managed-attempt-tools.js +712 -0
  77. package/dist/session/phase-completion.artifacts.d.ts +10 -0
  78. package/dist/session/phase-completion.artifacts.js +627 -0
  79. package/dist/session/phase-completion.d.ts +43 -46
  80. package/dist/session/phase-completion.helpers.d.ts +117 -0
  81. package/dist/session/phase-completion.helpers.js +701 -0
  82. package/dist/session/phase-completion.js +40 -3488
  83. package/dist/session/phase-completion.prompts.d.ts +14 -0
  84. package/dist/session/phase-completion.prompts.js +235 -0
  85. package/dist/session/phase-completion.runtime.d.ts +48 -0
  86. package/dist/session/phase-completion.runtime.js +786 -0
  87. package/dist/session/phase-completion.schemas.d.ts +3 -0
  88. package/dist/session/phase-completion.schemas.js +812 -0
  89. package/dist/session/phase-completion.validation.d.ts +37 -0
  90. package/dist/session/phase-completion.validation.js +850 -0
  91. package/dist/session/provider-cli/ci-repair-readiness.d.ts +8 -0
  92. package/dist/session/provider-cli/ci-repair-readiness.js +95 -0
  93. package/dist/session/provider-cli/provider-cli.artifacts.d.ts +93 -0
  94. package/dist/session/provider-cli/provider-cli.artifacts.js +778 -0
  95. package/dist/session/provider-cli/provider-cli.base.d.ts +1 -0
  96. package/dist/session/provider-cli/provider-cli.deterministic-payloads.d.ts +12 -0
  97. package/dist/session/provider-cli/provider-cli.deterministic-payloads.js +279 -0
  98. package/dist/session/provider-cli/provider-cli.deterministic.d.ts +14 -0
  99. package/dist/session/provider-cli/provider-cli.deterministic.js +375 -0
  100. package/dist/session/provider-cli/provider-cli.process.d.ts +48 -0
  101. package/dist/session/provider-cli/provider-cli.process.js +474 -0
  102. package/dist/session/provider-cli/provider-cli.prompts.d.ts +47 -0
  103. package/dist/session/provider-cli/provider-cli.prompts.js +595 -0
  104. package/dist/session/provider-cli/provider-cli.qa-sidecars.d.ts +11 -0
  105. package/dist/session/provider-cli/provider-cli.qa-sidecars.js +66 -0
  106. package/dist/session/provider-cli/provider-cli.runtime.d.ts +9 -0
  107. package/dist/session/provider-cli/provider-cli.runtime.js +41 -0
  108. package/dist/session/provider-cli/provider-cli.service.d.ts +26 -53
  109. package/dist/session/provider-cli/provider-cli.service.js +524 -2571
  110. package/dist/session/provider-cli/provider-cli.types.d.ts +6 -0
  111. package/dist/session/provider-cli/provider-output-state.d.ts +22 -0
  112. package/dist/session/provider-cli/provider-output-state.js +473 -0
  113. package/dist/session/session-redaction.d.ts +3 -0
  114. package/dist/session/session-redaction.js +23 -0
  115. package/dist/session/session.base.d.ts +6 -1
  116. package/dist/session/session.service.d.ts +8 -2
  117. package/dist/session/session.service.js +480 -58
  118. package/dist/session/session.types.d.ts +161 -1
  119. package/dist/session/session.types.js +318 -3
  120. package/dist/shared/path/path.js +3 -1
  121. package/dist/shared/process/host-process-recovery.d.ts +12 -0
  122. package/dist/shared/process/host-process-recovery.js +78 -0
  123. package/dist/shared/process/host-process-supervisor.d.ts +57 -0
  124. package/dist/shared/process/host-process-supervisor.js +282 -0
  125. package/dist/shared/process/process.d.ts +1 -0
  126. package/dist/shared/process/process.js +1 -0
  127. package/dist/shared/process/windows-launch.d.ts +8 -0
  128. package/dist/shared/process/windows-launch.js +41 -0
  129. package/dist/shared/provider-capabilities.d.ts +1 -0
  130. package/dist/shared/provider-capabilities.js +3 -0
  131. package/dist/shared/redaction/redaction.js +10 -3
  132. package/dist/version.d.ts +1 -1
  133. package/dist/version.js +1 -1
  134. package/dist/worktree/artifact-injector.d.ts +3 -2
  135. package/dist/worktree/artifact-injector.js +82 -10
  136. package/dist/worktree/dependency-warmer.d.ts +21 -1
  137. package/dist/worktree/dependency-warmer.js +138 -5
  138. package/dist/worktree/index.d.ts +1 -0
  139. package/dist/worktree/index.js +1 -0
  140. package/dist/worktree/prior-phase-artifact-hydrator.d.ts +2 -0
  141. package/dist/worktree/prior-phase-artifact-hydrator.js +136 -0
  142. package/dist/worktree/worktree-paths.d.ts +4 -0
  143. package/dist/worktree/worktree-paths.js +30 -0
  144. package/dist/worktree/worktree.base.d.ts +3 -0
  145. package/dist/worktree/worktree.service.d.ts +9 -3
  146. package/dist/worktree/worktree.service.js +100 -52
  147. package/dist/worktree/worktree.types.d.ts +3 -1
  148. package/package.json +6 -3
  149. package/runtime/windows-job-supervisor.ps1 +356 -0
  150. package/runtime/windows-listener-owner.ps1 +33 -0
@@ -2,6 +2,7 @@ import type { ProviderCliDraftContext, ProviderCliRunContext, ProviderCliRunResu
2
2
  export interface ProviderCliService {
3
3
  runImplementation(context: ProviderCliRunContext): Promise<ProviderCliRunResult>;
4
4
  runArchitect(context: ProviderCliRunContext): Promise<ProviderCliRunResult>;
5
+ runCiRepair(context: ProviderCliRunContext): Promise<ProviderCliRunResult>;
5
6
  runConflictResolve(context: ProviderCliRunContext): Promise<ProviderCliRunResult>;
6
7
  runQa(context: ProviderCliRunContext): Promise<ProviderCliRunResult>;
7
8
  runDraft(context: ProviderCliDraftContext): Promise<ProviderCliRunResult>;
@@ -0,0 +1,12 @@
1
+ import type { RunOnceDispatchPacket } from "../session.types.js";
2
+ import type { CompletionPhase, QaCompletionGate } from "../phase-completion.js";
3
+ export declare function deterministicCompletionPayload(phase: CompletionPhase, dispatch: RunOnceDispatchPacket, changesetBody: string): Record<string, unknown>;
4
+ export declare function deterministicArchitectPayload(dispatch: RunOnceDispatchPacket): Record<string, unknown>;
5
+ export declare function deterministicQaGatePayload(options: {
6
+ readonly gate: QaCompletionGate;
7
+ readonly criterion: string;
8
+ readonly summary: string;
9
+ readonly missingLaunchTarget: boolean;
10
+ readonly browserChecks: readonly Record<string, unknown>[];
11
+ readonly sidecars: readonly Record<string, unknown>[];
12
+ }): Record<string, unknown>;
@@ -0,0 +1,279 @@
1
+ import crypto from "node:crypto";
2
+ export function deterministicCompletionPayload(phase, dispatch, changesetBody) {
3
+ const changesetHash = sha256(changesetBody);
4
+ const criterion = dispatch.workItem.acceptanceCriteria || "Deterministic bridge changeset exists";
5
+ if (phase === "implementation") {
6
+ return {
7
+ status: "pass",
8
+ summary: "forge-bridge produced a deterministic implementation changeset.",
9
+ plan: [{ step: "Create deterministic changeset", status: "done" }],
10
+ changed_files: [{ path: "FORGE_PHASE5_CHANGESET.md", summary: "Recorded deterministic bridge evidence." }],
11
+ tests_added_or_updated: [{ path: "FORGE_PHASE5_CHANGESET.md", summary: "The deterministic bridge committed FORGE_PHASE5_CHANGESET.md as implementation evidence." }],
12
+ docs_added_or_updated: [{ path: "FORGE_PHASE5_CHANGESET.md", summary: "Deterministic evidence document created for the run." }],
13
+ acceptance_criteria: [
14
+ {
15
+ criterion,
16
+ evidence: `FORGE_PHASE5_CHANGESET.md was committed with content hash ${changesetHash}.`,
17
+ status: "satisfied"
18
+ }
19
+ ],
20
+ known_gaps: [],
21
+ next_phase_context: "Review FORGE_PHASE5_CHANGESET.md and the bridge commit before validation."
22
+ };
23
+ }
24
+ if (phase === "debug_repro") {
25
+ return {
26
+ status: "pass",
27
+ summary: "forge-bridge reproduced the bug deterministically.",
28
+ repro_steps: ["Run the deterministic fake-worker debug reproduction."],
29
+ observed: "The configured bug scenario is reproducible in deterministic bridge mode.",
30
+ expected: "The bug scenario should be fixed before QA handoff.",
31
+ evidence: [{ kind: "changeset", path: "FORGE_PHASE5_CHANGESET.md", content_hash: changesetHash }]
32
+ };
33
+ }
34
+ if (phase === "debug_root_cause") {
35
+ return {
36
+ status: "pass",
37
+ summary: "forge-bridge isolated a deterministic root cause.",
38
+ root_cause: "The deterministic fake-worker bug is represented by the generated changeset evidence.",
39
+ evidence: [{ kind: "changeset", path: "FORGE_PHASE5_CHANGESET.md", content_hash: changesetHash }],
40
+ eliminated_alternatives: [{ summary: "No alternate deterministic fake-worker path was implicated." }],
41
+ risk_area: "forge-bridge deterministic debug lane"
42
+ };
43
+ }
44
+ if (phase === "debug_fix") {
45
+ return {
46
+ status: "pass",
47
+ summary: "forge-bridge applied a deterministic debug fix.",
48
+ changed_files: [{ path: "FORGE_PHASE5_CHANGESET.md", summary: "Recorded deterministic debug fix evidence." }],
49
+ tests_added_or_updated: [{ path: "FORGE_PHASE5_CHANGESET.md", summary: "Deterministic debug evidence doubles as fake-worker regression coverage." }],
50
+ remaining_risks: [],
51
+ resolved_findings: (dispatch.qaRework?.findingIds ?? []).map((qaId) => ({
52
+ qa_id: qaId,
53
+ status: "resolved",
54
+ summary: `Resolved deterministic QA finding ${qaId}.`,
55
+ evidence: { path: "FORGE_PHASE5_CHANGESET.md", content_hash: changesetHash },
56
+ changed_files: [{ path: "FORGE_PHASE5_CHANGESET.md", summary: "Recorded deterministic debug fix evidence." }],
57
+ tests_added_or_updated: [{ path: "FORGE_PHASE5_CHANGESET.md", summary: "Deterministic fake-worker regression evidence." }],
58
+ regression_evidence: [{ command: "forge-bridge deterministic debug regression", status: "pass" }]
59
+ }))
60
+ };
61
+ }
62
+ if (phase === "debug_regression") {
63
+ return {
64
+ status: "pass",
65
+ summary: "forge-bridge proved the deterministic debug regression is QA-ready.",
66
+ commands: [{ command: "forge-bridge deterministic debug regression", exit_code: 0, status: "pass", summary: "Deterministic debug regression completed." }],
67
+ required_regressions: ["Original deterministic repro no longer fails."],
68
+ build_status: "not_applicable",
69
+ test_status: "pass",
70
+ repro_negative: true,
71
+ qa_ready: true
72
+ };
73
+ }
74
+ if (phase === "self_review") {
75
+ return {
76
+ status: "pass",
77
+ summary: "forge-bridge fake worker completed deterministic self-review.",
78
+ reviewed_diff: true,
79
+ findings: [],
80
+ security_review: {
81
+ status: "pass",
82
+ notes: "No secret handling, auth, or destructive behavior changes were introduced by the deterministic changeset."
83
+ },
84
+ edge_case_review: {
85
+ status: "pass",
86
+ notes: "The deterministic fake-worker changeset is intentionally narrow and repeatable."
87
+ },
88
+ design_review: {
89
+ status: "not_applicable",
90
+ screenshots: [],
91
+ notes: "No UI changes."
92
+ },
93
+ deterministic_comparison: {
94
+ status: "pass",
95
+ command_or_tool: "git diff --stat HEAD~1..HEAD",
96
+ notes: `Reviewed deterministic changeset with content hash ${changesetHash}.`
97
+ },
98
+ fixes_applied: [],
99
+ remaining_risks: []
100
+ };
101
+ }
102
+ return {
103
+ status: "pass",
104
+ summary: "forge-bridge fake worker completed deterministic validation.",
105
+ commands: [
106
+ {
107
+ command: "git status --short && git diff --check",
108
+ exit_code: 0,
109
+ status: "pass",
110
+ summary: "Deterministic validation command completed for the fake-worker changeset."
111
+ }
112
+ ],
113
+ acceptance_criteria: [
114
+ {
115
+ criterion,
116
+ evidence: `FORGE_PHASE5_CHANGESET.md exists with content hash ${changesetHash}.`,
117
+ status: "satisfied"
118
+ }
119
+ ],
120
+ build_status: "pass",
121
+ test_status: "pass",
122
+ lint_status: "not_applicable",
123
+ design_status: "not_applicable",
124
+ drift_checks: [
125
+ {
126
+ command_or_tool: "git diff --check",
127
+ status: "pass",
128
+ summary: "No deterministic drift or whitespace errors were reported for the fake-worker changeset."
129
+ }
130
+ ],
131
+ ready_for_dev_test: true
132
+ };
133
+ }
134
+ export function deterministicArchitectPayload(dispatch) {
135
+ const planId = `architect-${dispatch.workItem.id.replace(/-/g, "")}`;
136
+ return {
137
+ status: "pass",
138
+ summary: "forge-bridge produced a deterministic Architect plan.",
139
+ implementation_plan: {
140
+ schema_version: 1,
141
+ plan_id: planId,
142
+ story_id: dispatch.workItem.id,
143
+ phases: [
144
+ { id: "phase-1", name: "Foundation", tasks: ["task-1"], gate: "phase-1-gate" }
145
+ ],
146
+ tasks: [
147
+ {
148
+ id: "task-1",
149
+ title: `Implement ${dispatch.workItem.title}`,
150
+ phase: "phase-1",
151
+ summary: "Deterministic bridge Architect task proving MCP artifact contract persistence.",
152
+ acceptance_criteria: [dispatch.workItem.acceptanceCriteria || `Preserve story intent for ${dispatch.workItem.title}`],
153
+ tests: [
154
+ { command: "dotnet test Forge.sln --filter Architect", purpose: "Architect bridge contract regression" }
155
+ ]
156
+ }
157
+ ],
158
+ dependencies: [],
159
+ phase_gates: [
160
+ { id: "phase-1-gate", phase: "phase-1", checks: ["Task tests pass", "Artifacts validate"] }
161
+ ]
162
+ },
163
+ qa_plan: {
164
+ schema_version: 1,
165
+ plan_id: planId,
166
+ final_qa: [
167
+ { id: "qa-1", coverage: `Verify Architect plan artifacts and pending approval status for ${dispatch.workItem.title}` }
168
+ ]
169
+ },
170
+ report_markdown: `# Architect Report\n\nWork item: ${dispatch.workItem.id}\nTitle: ${dispatch.workItem.title}\n\nVerdict: pass\n\nDeterministic bridge Architect plan produced for pending approval.\n`
171
+ };
172
+ }
173
+ export function deterministicQaGatePayload(options) {
174
+ const blocked = options.missingLaunchTarget;
175
+ const skippedBecauseBlocked = blocked
176
+ ? {
177
+ status: "skipped",
178
+ summary: "Skipped because browser QA was blocked by missing launch target.",
179
+ reason: "Upstream browser QA blocker prevents meaningful downstream evidence."
180
+ }
181
+ : null;
182
+ switch (options.gate) {
183
+ case "qa_plan":
184
+ return {
185
+ status: "pass",
186
+ summary: "Deterministic QA plan recorded.",
187
+ checklist: [
188
+ "Review the validated work item against acceptance criteria.",
189
+ "Run deterministic regression evidence.",
190
+ "Confirm no in-scope QA findings remain."
191
+ ],
192
+ acceptance_criteria: [options.criterion]
193
+ };
194
+ case "qa_regression":
195
+ return {
196
+ status: "pass",
197
+ summary: "Deterministic regression QA completed.",
198
+ commands: [
199
+ {
200
+ command: "forge-bridge deterministic QA",
201
+ exit_code: 0,
202
+ status: "pass",
203
+ summary: "Deterministic regression evidence completed."
204
+ }
205
+ ],
206
+ notes: "Regression gate passed in deterministic fake-worker mode."
207
+ };
208
+ case "qa_api":
209
+ return {
210
+ status: "skipped",
211
+ summary: "No API/backend surface was identified for deterministic QA.",
212
+ reason: "The deterministic fake-worker changeset does not exercise API/backend behavior."
213
+ };
214
+ case "qa_manual_web":
215
+ return blocked
216
+ ? {
217
+ status: "blocked",
218
+ summary: "Browser QA could not run because no app launch target was provided.",
219
+ blocker_reason: "missing_app_launch_target"
220
+ }
221
+ : options.browserChecks.length > 0
222
+ ? {
223
+ status: "pass",
224
+ summary: "Deterministic browser QA exercised the configured launch target.",
225
+ browser_checks: options.browserChecks,
226
+ sidecars: options.sidecars,
227
+ notes: "Browser sidecar evidence recorded."
228
+ }
229
+ : {
230
+ status: "skipped",
231
+ summary: "Manual web QA was not required for this deterministic run.",
232
+ reason: "Forge did not require browser QA and no launch target was necessary."
233
+ };
234
+ case "qa_bug_repro":
235
+ return skippedBecauseBlocked ?? {
236
+ status: "skipped",
237
+ summary: "No failed QA observation required bug reproduction.",
238
+ reason: "No defects or candidate bugs were observed."
239
+ };
240
+ case "qa_findings":
241
+ return skippedBecauseBlocked ?? {
242
+ status: "pass",
243
+ summary: "No QA findings or candidate bugs were identified.",
244
+ findings: [],
245
+ candidate_bugs: []
246
+ };
247
+ case "qa_verdict":
248
+ return {
249
+ status: blocked ? "blocked" : "pass",
250
+ summary: options.summary,
251
+ checklist: [
252
+ "Review the validated work item against acceptance criteria.",
253
+ "Run deterministic regression evidence.",
254
+ blocked ? "Record missing browser launch target blocker." : "Confirm no in-scope QA findings remain."
255
+ ],
256
+ tested_acceptance_criteria: blocked ? [] : [options.criterion],
257
+ commands: blocked
258
+ ? []
259
+ : [
260
+ {
261
+ command: "forge-bridge deterministic QA",
262
+ exit_code: 0,
263
+ status: "pass",
264
+ summary: "Deterministic QA command completed."
265
+ }
266
+ ],
267
+ browser_checks: blocked ? [] : options.browserChecks,
268
+ sidecars: blocked ? [] : options.sidecars,
269
+ notes: options.summary,
270
+ findings: [],
271
+ candidate_bugs: [],
272
+ blocker_reason: blocked ? "missing_app_launch_target" : null,
273
+ report_markdown: `# QA report\n\n${options.summary}\n`
274
+ };
275
+ }
276
+ }
277
+ function sha256(content) {
278
+ return crypto.createHash("sha256").update(content).digest("hex");
279
+ }
@@ -0,0 +1,14 @@
1
+ import { GitClient } from "../../shared/git/git.js";
2
+ import type { ProviderCliService } from "./provider-cli.base.js";
3
+ import type { ProviderCliDraftContext, ProviderCliRunContext, ProviderCliRunResult } from "./provider-cli.types.js";
4
+ export declare class DeterministicProviderCliService implements ProviderCliService {
5
+ private readonly git;
6
+ constructor(git?: GitClient);
7
+ runDraft(context: ProviderCliDraftContext): Promise<ProviderCliRunResult>;
8
+ runImplementation(context: ProviderCliRunContext): Promise<ProviderCliRunResult>;
9
+ runArchitect(context: ProviderCliRunContext): Promise<ProviderCliRunResult>;
10
+ runQa(context: ProviderCliRunContext): Promise<ProviderCliRunResult>;
11
+ runCiRepair(context: ProviderCliRunContext): Promise<ProviderCliRunResult>;
12
+ runConflictResolve(context: ProviderCliRunContext): Promise<ProviderCliRunResult>;
13
+ private runPullRequestRepair;
14
+ }