opencode-swarm 7.199.6 → 7.200.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.
- package/binaries/win32-arm64/swarm-sandbox-runner.exe +0 -0
- package/binaries/win32-x64/swarm-sandbox-runner.exe +0 -0
- package/dist/cli/attest-task-sg8b5a5j.js +2209 -0
- package/dist/cli/{auto-checkpoint-gv21fb1h.js → auto-checkpoint-bywgxh27.js} +9 -9
- package/dist/cli/{checkpoint-rd1bt793.js → checkpoint-k2092cbw.js} +20 -18
- package/dist/cli/{coder-settlement-21zd1g3a.js → coder-settlement-y0hkcngn.js} +12 -12
- package/dist/cli/{config-doctor-mxe9nr78.js → config-doctor-0fnrwkga.js} +16 -16
- package/dist/cli/{core-7bd1sd36.js → core-mfyaj8b4.js} +3 -3
- package/dist/cli/{curation-policy-w9y0db1n.js → curation-policy-fth5n93x.js} +6 -6
- package/dist/cli/{curator-7rf98h3k.js → curator-1s64jkc3.js} +44 -44
- package/dist/cli/{curator-drift-21y19fnz.js → curator-drift-famx6p6s.js} +8 -8
- package/dist/cli/curator-llm-factory-vya4epq6.js +82 -0
- package/dist/cli/{doctor-knowledge-receipt-phase-id-6pdjxgfa.js → doctor-knowledge-receipt-phase-id-v4y6pbek.js} +9 -9
- package/dist/cli/{evidence-summary-service-vdcx7fqd.js → evidence-summary-service-rd7y6yjq.js} +20 -20
- package/dist/cli/{gate-evidence-ernx9gck.js → gate-evidence-kama66h5.js} +15 -7
- package/dist/cli/guardrail-explain-8fkhq0cg.js +83 -0
- package/dist/cli/{guardrail-log-jr6b9rt3.js → guardrail-log-gdj19fq5.js} +7 -7
- package/dist/cli/{guardrail-reset-0qyt8vpd.js → guardrail-reset-bmg6czzk.js} +44 -44
- package/dist/cli/{hive-promoter-2qwxrrsc.js → hive-promoter-ychygdgc.js} +44 -44
- package/dist/cli/{index-s4wbe96z.js → index-0ptf66x5.js} +4 -4
- package/dist/cli/{index-cyp3r8ar.js → index-0tygsk8b.js} +10 -10
- package/dist/cli/{index-b9f2j9bx.js → index-12h2rtdj.js} +3 -3
- package/dist/cli/{index-eyq1q1xn.js → index-1v277wxc.js} +2 -2
- package/dist/cli/{index-syaa76vg.js → index-2dm42tgp.js} +48 -46
- package/dist/cli/{index-exj9yb0x.js → index-2hnnkj64.js} +1979 -1945
- package/dist/cli/{index-7m2gcmm7.js → index-2m740hyt.js} +6 -6
- package/dist/cli/{index-cs1d9e03.js → index-2w5grmmj.js} +2 -2
- package/dist/cli/{index-88d5kpjj.js → index-3020n6d9.js} +1 -1
- package/dist/cli/{index-vgb679vr.js → index-3exe6k66.js} +3 -3
- package/dist/cli/{index-gx2vp8gx.js → index-3t46mez1.js} +27 -1
- package/dist/cli/{index-38fgg593.js → index-3zspah3v.js} +2 -2
- package/dist/cli/{index-f02p4yn4.js → index-51dw4bjc.js} +2 -2
- package/dist/cli/{index-hx2f3j9w.js → index-5snwc3dz.js} +2 -2
- package/dist/cli/{index-eqw5vq9r.js → index-b0d8ra32.js} +1 -1
- package/dist/cli/{index-tsg61z0r.js → index-b4kdms7x.js} +2 -2
- package/dist/cli/{index-cwg99gea.js → index-bn3aa5q1.js} +7 -7
- package/dist/cli/{index-dtwj4hsk.js → index-c2k7q723.js} +2 -2
- package/dist/cli/{index-tqtfjzb0.js → index-c9g3hkjz.js} +3 -3
- package/dist/cli/{index-r227g76y.js → index-dgyddtje.js} +6 -6
- package/dist/cli/{index-270zfq1f.js → index-epzadpmm.js} +7 -7
- package/dist/cli/{index-txh6dtnj.js → index-f6nrw8am.js} +44 -44
- package/dist/cli/{index-n1ddn12j.js → index-g57p8p1k.js} +1 -1
- package/dist/cli/{index-9y6yk1n0.js → index-na6ph1fp.js} +1 -1
- package/dist/cli/{index-bef4nhtj.js → index-nawp90n7.js} +4 -4
- package/dist/cli/{index-3mzc5rqc.js → index-nzfq1ms2.js} +3 -3
- package/dist/cli/{index-0bw1jyen.js → index-p6v544jn.js} +1 -1
- package/dist/cli/{index-s5tgnsmh.js → index-parkaa70.js} +6 -6
- package/dist/cli/{index-exr153j1.js → index-pe77h482.js} +5 -5
- package/dist/cli/{index-dz15f98h.js → index-q8vfw61p.js} +1 -1
- package/dist/cli/{index-s9hekeej.js → index-qaqyq25k.js} +7 -7
- package/dist/cli/{index-jhjmf5sn.js → index-qzakbjcg.js} +3 -3
- package/dist/cli/{index-2cb644vj.js → index-rzkmg02a.js} +918 -154
- package/dist/cli/{index-0je0mees.js → index-s3w41p1x.js} +1 -1
- package/dist/cli/{index-zzpy5cx3.js → index-s8eac99p.js} +12 -8
- package/dist/cli/{index-j3rfbs45.js → index-s9y49avf.js} +2 -2
- package/dist/cli/{index-dqkr60bw.js → index-sva5swrs.js} +172 -14
- package/dist/cli/{index-3ct8kgfj.js → index-sz67z90q.js} +4 -4
- package/dist/cli/{index-gdyqdhz1.js → index-th667k1y.js} +4 -4
- package/dist/cli/{index-jmhn6ab5.js → index-traz987v.js} +2 -2
- package/dist/cli/{index-0veqvgny.js → index-v1h70r3y.js} +1 -1
- package/dist/cli/{index-snx2vb1x.js → index-ves1rtqt.js} +1 -1
- package/dist/cli/{index-qbhjey8k.js → index-vtkgg2qn.js} +3 -3
- package/dist/cli/{index-x6rv0e00.js → index-w2bhrp6z.js} +21 -14
- package/dist/cli/{index-4cyc18bc.js → index-wgf1780e.js} +7 -7
- package/dist/cli/{index-b3ws03kp.js → index-xyvsdn07.js} +1 -1
- package/dist/cli/{index-zbygz217.js → index-ypxq0x7r.js} +2 -2
- package/dist/cli/{index-t67n8jhb.js → index-z9mysg5m.js} +2 -2
- package/dist/cli/index.js +45 -45
- package/dist/cli/{knowledge-escalator-rsj9nqqt.js → knowledge-escalator-zxd76jna.js} +15 -15
- package/dist/cli/{knowledge-events-appww5kb.js → knowledge-events-z8h0wmaw.js} +13 -13
- package/dist/cli/{knowledge-link-t0ce3mw7.js → knowledge-link-wfhsfyn2.js} +5 -5
- package/dist/cli/{knowledge-store-n76rzv27.js → knowledge-store-g2gm13s8.js} +6 -6
- package/dist/cli/{knowledge-validator-ycxvjasa.js → knowledge-validator-2sech2sx.js} +8 -8
- package/dist/cli/{mcp-jy0gk3c8.js → mcp-t88363gj.js} +1 -1
- package/dist/cli/{model-preflight-rg0mppzf.js → model-preflight-akj8g1m2.js} +44 -44
- package/dist/cli/{pending-delegations-e6brjxp2.js → pending-delegations-bqp6b6as.js} +13 -13
- package/dist/cli/{pr-subscriptions-vjsb5ydq.js → pr-subscriptions-wxjvkg56.js} +12 -12
- package/dist/cli/{pr-workflow-gate-bj66aa9k.js → pr-workflow-gate-2wcrfa6g.js} +44 -44
- package/dist/cli/{runner-wq954cda.js → runner-s1a73y5h.js} +6 -6
- package/dist/cli/{scan-cursor-kkg94g0t.js → scan-cursor-8br4x41t.js} +7 -7
- package/dist/cli/{schema-d1exxwv8.js → schema-mc419qh8.js} +1 -1
- package/dist/cli/{scope-persistence-3v9hce7b.js → scope-persistence-5gyjt70q.js} +16 -16
- package/dist/cli/{server-jkcwkh8t.js → server-bp247fqe.js} +46 -46
- package/dist/cli/{skill-generator-wg8qfdm8.js → skill-generator-q4afafh3.js} +17 -17
- package/dist/cli/{snapshot-coordination-init-xyffgya9.js → snapshot-coordination-init-b4kmrgh7.js} +44 -44
- package/dist/cli/{speckit-checkoff-61xn2c2v.js → speckit-checkoff-1v02b2dt.js} +4 -4
- package/dist/cli/{telemetry-gena5typ.js → telemetry-cr8q16wk.js} +1 -1
- package/dist/cli/{workspace-snapshot-hzhz0rxw.js → workspace-snapshot-93gzfac2.js} +3 -3
- package/dist/cli/{worktree-collision-ownership-gsv009xc.js → worktree-collision-ownership-84m9f5an.js} +14 -14
- package/dist/cli/{worktree-isolation-3sdvs69a.js → worktree-isolation-xwbszhja.js} +44 -44
- package/dist/commands/attest.d.ts +10 -0
- package/dist/commands/close/internals.d.ts +1 -1
- package/dist/commands/close/orchestrator.d.ts +7 -0
- package/dist/commands/destructive-purge.d.ts +15 -0
- package/dist/commands/git-status-read.d.ts +23 -0
- package/dist/commands/index.d.ts +1 -0
- package/dist/commands/registry.d.ts +9 -1
- package/dist/commands/rollback-gate.d.ts +77 -10
- package/dist/config/plan-schema.d.ts +44 -0
- package/dist/gate-evidence.d.ts +138 -1
- package/dist/git/branch.d.ts +22 -0
- package/dist/index.js +570 -562
- package/dist/session/snapshot-coordination-init.d.ts +34 -0
- package/dist/session/snapshot-writer.d.ts +5 -1
- package/dist/tools/attest-task.d.ts +67 -0
- package/dist/tools/checkpoint.d.ts +17 -0
- package/dist/tools/phase-complete.d.ts +12 -0
- package/dist/tools/save-plan.d.ts +16 -0
- package/dist/tools/update-task-status.d.ts +1 -1
- package/dist/workflow/task-terminal.d.ts +1 -0
- package/dist/workflow/workflow-wal-schema.d.ts +2 -0
- package/package.json +1 -1
- package/dist/cli/curator-llm-factory-ab821je6.js +0 -82
- package/dist/cli/guardrail-explain-7jef0dhs.js +0 -83
package/dist/gate-evidence.d.ts
CHANGED
|
@@ -16,6 +16,7 @@
|
|
|
16
16
|
* authorization against a process with arbitrary same-user workspace access;
|
|
17
17
|
* that requires a protected trust root outside the project workspace.
|
|
18
18
|
*/
|
|
19
|
+
import { z } from 'zod';
|
|
19
20
|
import { appendTaskGateRequirementsReceiptIfNeeded } from './evidence/task-gate-requirements.js';
|
|
20
21
|
import type { ReviewRouteEvidence } from './review/routing-enforcement.js';
|
|
21
22
|
import type { TaskWorkflowState } from './state';
|
|
@@ -28,7 +29,7 @@ export interface GateEvidence {
|
|
|
28
29
|
agent: string;
|
|
29
30
|
}
|
|
30
31
|
export declare const TASK_WORKFLOW_SCHEMA_MARKER: "exact-task-v1";
|
|
31
|
-
declare const TASK_WORKFLOW_OUTCOMES: readonly ["none", "dispatch_attempted", "dispatch_no_mutation", "accepted_mutation", "accepted_mutation_failed", "stage_a_passed", "stage_a_failed", "stage_b_completed", "stage_b_failed", "gate_recorded", "task_completed", "task_blocked", "task_closed", "repair_idle"];
|
|
32
|
+
declare const TASK_WORKFLOW_OUTCOMES: readonly ["none", "dispatch_attempted", "dispatch_no_mutation", "accepted_mutation", "accepted_mutation_failed", "stage_a_passed", "stage_a_failed", "stage_b_completed", "stage_b_failed", "gate_recorded", "task_completed", "task_blocked", "task_closed", "repair_idle", "external_evidence_attested", "external_evidence_revoked"];
|
|
32
33
|
export type TaskWorkflowTransitionOutcome = (typeof TASK_WORKFLOW_OUTCOMES)[number];
|
|
33
34
|
export interface TaskWorkflowMetadata {
|
|
34
35
|
schema: typeof TASK_WORKFLOW_SCHEMA_MARKER;
|
|
@@ -95,6 +96,17 @@ export interface TaskWorkflowMetadata {
|
|
|
95
96
|
transitionId: string;
|
|
96
97
|
declaredFiles: string[];
|
|
97
98
|
};
|
|
99
|
+
/**
|
|
100
|
+
* Pinned external evidence bundle (issue #3422): the read-only git proof
|
|
101
|
+
* for a task declared `evidence_class: 'external_git'`, attested while the
|
|
102
|
+
* workflow is idle and preserved through the terminal task_completed write
|
|
103
|
+
* so a duplicate completion can re-validate the same current proof. Cleared
|
|
104
|
+
* by a new coder attribution window (dispatch_attempted /
|
|
105
|
+
* dispatch_no_mutation / accepted_mutation), by repair_idle's fresh
|
|
106
|
+
* generation, and by the declaration-change revoke; terminal states are
|
|
107
|
+
* never revoked (06-critic-review.md R4F1).
|
|
108
|
+
*/
|
|
109
|
+
externalEvidence?: ExternalEvidenceBundle;
|
|
98
110
|
}
|
|
99
111
|
export interface TaskWorkflowSnapshot extends TaskWorkflowMetadata {
|
|
100
112
|
authoritative: boolean;
|
|
@@ -237,6 +249,13 @@ export type TaskWorkflowTransitionEvent = {
|
|
|
237
249
|
qaExempt?: boolean;
|
|
238
250
|
/** Durable, non-forced completion of a trusted empty-scope settlement. */
|
|
239
251
|
readOnlyNoMutation?: boolean;
|
|
252
|
+
/**
|
|
253
|
+
* Issue #3422: the caller proved the external bundle current via
|
|
254
|
+
* externalProofCurrent / isExternalEvidenceInitialCompletionEligible
|
|
255
|
+
* before forwarding the terminal event; the reducer still requires the
|
|
256
|
+
* durable bundle to exist and fully match before admitting it.
|
|
257
|
+
*/
|
|
258
|
+
externalEvidence?: boolean;
|
|
240
259
|
expectedGeneration: number;
|
|
241
260
|
transitionId?: string;
|
|
242
261
|
} | {
|
|
@@ -251,6 +270,27 @@ export type TaskWorkflowTransitionEvent = {
|
|
|
251
270
|
type: 'repair_idle';
|
|
252
271
|
expectedGeneration: number;
|
|
253
272
|
transitionId?: string;
|
|
273
|
+
} | {
|
|
274
|
+
/**
|
|
275
|
+
* Issue #3422: pin the attest producer's validated read-only git bundle
|
|
276
|
+
* as durable workflow metadata. State-preserving (the gate_recorded
|
|
277
|
+
* precedent) and admitted from idle only — an external task never
|
|
278
|
+
* enters the coder QA lifecycle.
|
|
279
|
+
*/
|
|
280
|
+
type: 'external_evidence_attested';
|
|
281
|
+
bundle: ExternalEvidenceBundle;
|
|
282
|
+
expectedGeneration: number;
|
|
283
|
+
transitionId?: string;
|
|
284
|
+
} | {
|
|
285
|
+
/**
|
|
286
|
+
* Issue #3422: the plan declaration changed under a nonterminal task, so
|
|
287
|
+
* the pinned bundle no longer describes the declared work. Terminal
|
|
288
|
+
* states are never revoked (06-critic-review.md R4F1).
|
|
289
|
+
*/
|
|
290
|
+
type: 'external_evidence_revoked';
|
|
291
|
+
reason: 'declaration_changed';
|
|
292
|
+
expectedGeneration: number;
|
|
293
|
+
transitionId?: string;
|
|
254
294
|
};
|
|
255
295
|
export interface TaskEvidenceTransaction {
|
|
256
296
|
taskId: string;
|
|
@@ -277,6 +317,29 @@ export interface TaskEvidenceTransaction {
|
|
|
277
317
|
*/
|
|
278
318
|
save?(nextEvidence: TaskEvidence): Promise<TaskEvidence>;
|
|
279
319
|
}
|
|
320
|
+
/**
|
|
321
|
+
* Durable external-evidence bundle (issue #3422): the pinned read-only git
|
|
322
|
+
* proof for a task whose deliverable is verified outside the coder QA
|
|
323
|
+
* lifecycle. The attest producer validates the bundle (digest recompute, all
|
|
324
|
+
* anchors matched, bounds) before publishing it through the
|
|
325
|
+
* `external_evidence_attested` transition; this schema is the persistence
|
|
326
|
+
* boundary that refuses anything malformed after the fact.
|
|
327
|
+
*/
|
|
328
|
+
export declare const ExternalEvidenceBundleSchema: z.ZodObject<{
|
|
329
|
+
class: z.ZodLiteral<"external_git">;
|
|
330
|
+
transitionId: z.ZodString;
|
|
331
|
+
declarationDigest: z.ZodString;
|
|
332
|
+
anchors: z.ZodArray<z.ZodObject<{
|
|
333
|
+
command: z.ZodString;
|
|
334
|
+
expect: z.ZodOptional<z.ZodString>;
|
|
335
|
+
expect_prefix: z.ZodOptional<z.ZodString>;
|
|
336
|
+
matched: z.ZodBoolean;
|
|
337
|
+
exit_code: z.ZodNumber;
|
|
338
|
+
stdout: z.ZodString;
|
|
339
|
+
}, z.core.$strip>>;
|
|
340
|
+
attestedAt: z.ZodString;
|
|
341
|
+
}, z.core.$strip>;
|
|
342
|
+
export type ExternalEvidenceBundle = z.infer<typeof ExternalEvidenceBundleSchema>;
|
|
280
343
|
export declare function parseTaskEvidence(raw: string, expectedTaskId: string): TaskEvidence;
|
|
281
344
|
export declare const DEFAULT_REQUIRED_GATES: string[];
|
|
282
345
|
export interface GateDerivationContext {
|
|
@@ -308,6 +371,80 @@ export declare function deriveApplicableGateSet(evidence: TaskEvidence | null |
|
|
|
308
371
|
export declare function isReadOnlyNoMutationEligible(evidence: TaskEvidence | null | undefined, options?: {
|
|
309
372
|
currentDeclaredFiles?: readonly string[] | null;
|
|
310
373
|
}): boolean;
|
|
374
|
+
/**
|
|
375
|
+
* Inputs to the external-evidence declaration digest (issue #3422,
|
|
376
|
+
* 05-fix-plan.md §3): the exact task declaration plus the plan identity and
|
|
377
|
+
* evidence generation the digest binds.
|
|
378
|
+
*/
|
|
379
|
+
export interface ExternalDeclarationInput {
|
|
380
|
+
taskId: string;
|
|
381
|
+
evidence_class: 'external_git';
|
|
382
|
+
evidence_anchors: ReadonlyArray<{
|
|
383
|
+
command: string;
|
|
384
|
+
expect?: string;
|
|
385
|
+
expect_prefix?: string;
|
|
386
|
+
}>;
|
|
387
|
+
plan_title: string;
|
|
388
|
+
plan_swarm: string;
|
|
389
|
+
generation: number;
|
|
390
|
+
}
|
|
391
|
+
/**
|
|
392
|
+
* Compute the declaration digest bound into an external evidence bundle:
|
|
393
|
+
* sha256 hex over the canonical JSON of `{taskId, evidence_class,
|
|
394
|
+
* evidence_anchors (ordered definitions only), plan_title, plan_swarm,
|
|
395
|
+
* generation}`.
|
|
396
|
+
*
|
|
397
|
+
* Deliberately CURSOR-FREE (issue #3422, 05-fix-plan.md §3): the whole-plan
|
|
398
|
+
* structure hash includes `current_phase`, which advances during the terminal
|
|
399
|
+
* plan write. Binding the digest to it would self-invalidate the proof in
|
|
400
|
+
* the crash window after plan.json advances and before the evidence
|
|
401
|
+
* transaction applies. Every revalidation recomputes this digest from the
|
|
402
|
+
* CURRENT plan task and CURRENT generation instead — no whole-plan hash is
|
|
403
|
+
* ever consulted.
|
|
404
|
+
*/
|
|
405
|
+
export declare function computeExternalDeclarationDigest(input: ExternalDeclarationInput): string;
|
|
406
|
+
/** Plan identity inputs to the external declaration digest (issue #3422). */
|
|
407
|
+
export interface ExternalPlanIdentity {
|
|
408
|
+
title: string;
|
|
409
|
+
swarm: string;
|
|
410
|
+
}
|
|
411
|
+
/**
|
|
412
|
+
* The subset of a plan task the external-evidence predicates consult: the
|
|
413
|
+
* declaration fields save_plan validated (issue #3422).
|
|
414
|
+
*/
|
|
415
|
+
export interface ExternalPlanTaskRef {
|
|
416
|
+
id: string;
|
|
417
|
+
evidence_class?: string;
|
|
418
|
+
evidence_anchors?: ReadonlyArray<{
|
|
419
|
+
command: string;
|
|
420
|
+
expect?: string;
|
|
421
|
+
expect_prefix?: string;
|
|
422
|
+
}> | undefined;
|
|
423
|
+
}
|
|
424
|
+
/**
|
|
425
|
+
* Proof-currency predicate (issue #3422, 05-fix-plan.md §4c / R3F1): true iff
|
|
426
|
+
* the task declares `external_git`, a bundle exists with at least one anchor,
|
|
427
|
+
* every anchor matched, and the bundle's declarationDigest equals the digest
|
|
428
|
+
* recomputed from the CURRENT plan declaration + CURRENT generation. There is
|
|
429
|
+
* NO workflow-state condition — this is the "proof is current" predicate
|
|
430
|
+
* usable in ANY state (mirroring isNoMutationSettlementMetadata's
|
|
431
|
+
* idle || complete acceptance), so duplicate completion, committed-WAL
|
|
432
|
+
* idempotent replay, terminal recovery, and check_gate_status on a completed
|
|
433
|
+
* task all re-validate the same way.
|
|
434
|
+
*/
|
|
435
|
+
export declare function externalProofCurrent(plan: ExternalPlanIdentity, planTask: ExternalPlanTaskRef, evidence: TaskEvidence | null | undefined): boolean;
|
|
436
|
+
/**
|
|
437
|
+
* Initial-completion eligibility (issue #3422, 05-fix-plan.md §4c / R3F1):
|
|
438
|
+
* `externalProofCurrent` AND the authoritative workflow state is exactly
|
|
439
|
+
* `idle` (blocked removed — a blocked task reopens via the audited
|
|
440
|
+
* blocked → in_progress plan transition first). This is the R3F1 split's
|
|
441
|
+
* other half: the FIRST completion requires idle, while DUPLICATE
|
|
442
|
+
* completions and terminal recovery use `externalProofCurrent` and accept
|
|
443
|
+
* `complete`. Consults the authoritative snapshot (the
|
|
444
|
+
* isNoMutationSettlementMetadata pattern) so non-authoritative legacy
|
|
445
|
+
* metadata never admits an external completion.
|
|
446
|
+
*/
|
|
447
|
+
export declare function isExternalEvidenceInitialCompletionEligible(plan: ExternalPlanIdentity, planTask: ExternalPlanTaskRef, evidence: TaskEvidence | null | undefined): boolean;
|
|
311
448
|
export declare function reduceTaskWorkflowSnapshot(current: TaskWorkflowSnapshot, event: TaskWorkflowTransitionEvent, context: {
|
|
312
449
|
requiredGates: string[];
|
|
313
450
|
gates: Record<string, GateEvidence>;
|
package/dist/git/branch.d.ts
CHANGED
|
@@ -7,6 +7,13 @@ export type GitRepositoryStatus = {
|
|
|
7
7
|
reason: 'not_git_repo' | 'git_unavailable' | 'git_error';
|
|
8
8
|
message: string;
|
|
9
9
|
};
|
|
10
|
+
/**
|
|
11
|
+
* Repo-detection vocabulary shared with the async detailed reader
|
|
12
|
+
* (`src/commands/git-status-read.ts`, #3427): the same case-folded phrases
|
|
13
|
+
* classify a nonzero `rev-parse` exit as `not_git_repo` on the sync and
|
|
14
|
+
* async probe paths alike, so the two probes cannot drift apart.
|
|
15
|
+
*/
|
|
16
|
+
export declare function isNotGitRepositoryMessage(message: string): boolean;
|
|
10
17
|
/**
|
|
11
18
|
* Seam that calls child_process.spawnSync dynamically.
|
|
12
19
|
* Uses getChildProcessSpawnSync() to resolve at call time, allowing
|
|
@@ -71,6 +78,21 @@ declare const __spawnSyncSeam: {
|
|
|
71
78
|
* looks sufficient but is not — that gap is exactly what #2263 reported.
|
|
72
79
|
*/
|
|
73
80
|
export declare function readLaneEnvFileFromDiskSync(worktreePath: string, laneIndex: number): Record<string, string>;
|
|
81
|
+
/**
|
|
82
|
+
* Issue #2236 F5: builds the *actionable* "git is not available" message.
|
|
83
|
+
*
|
|
84
|
+
* `describeGitResolution()` (src/utils/git-executable.ts) is the production
|
|
85
|
+
* source of truth for what the resolver actually tried — every candidate path,
|
|
86
|
+
* its source (`override`/`platform`/`path`), and why each was rejected. A bare
|
|
87
|
+
* "git executable is not available on PATH" is what sent the original report
|
|
88
|
+
* down a four-day PATH investigation while git was present the whole time, so
|
|
89
|
+
* the thrown message names the candidates and the override escape hatch.
|
|
90
|
+
*
|
|
91
|
+
* `cwd` is named too: reaching this function means the cwd was positively
|
|
92
|
+
* classified as present-and-a-directory, which is the fact that rules the
|
|
93
|
+
* #2236 misdiagnosis out rather than leaving it implied.
|
|
94
|
+
*/
|
|
95
|
+
export declare function gitBinaryMissingMessage(cwd: string): string;
|
|
74
96
|
declare function gitExec(args: string[], cwd: string, laneEnv?: Record<string, string>, laneIndex?: number): string;
|
|
75
97
|
export declare function getGitRepositoryStatus(cwd: string): GitRepositoryStatus;
|
|
76
98
|
/**
|