@stigmer/runner 3.1.1 → 3.1.3
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/dist/.build-fingerprint +1 -1
- package/dist/activities/execute-cursor/attachment-resolver.d.ts +49 -8
- package/dist/activities/execute-cursor/attachment-resolver.js +83 -26
- package/dist/activities/execute-cursor/attachment-resolver.js.map +1 -1
- package/dist/activities/execute-cursor/capture-flow.d.ts +18 -0
- package/dist/activities/execute-cursor/capture-flow.js +21 -0
- package/dist/activities/execute-cursor/capture-flow.js.map +1 -1
- package/dist/activities/execute-cursor/cas-observations.d.ts +13 -0
- package/dist/activities/execute-cursor/cas-observations.js +39 -5
- package/dist/activities/execute-cursor/cas-observations.js.map +1 -1
- package/dist/activities/execute-cursor/hook-script.js +19 -1
- package/dist/activities/execute-cursor/hook-script.js.map +1 -1
- package/dist/activities/execute-cursor/index.d.ts +5 -0
- package/dist/activities/execute-cursor/index.js +222 -160
- package/dist/activities/execute-cursor/index.js.map +1 -1
- package/dist/activities/execute-cursor/message-translator.js +10 -1
- package/dist/activities/execute-cursor/message-translator.js.map +1 -1
- package/dist/activities/execute-cursor/prompt-builder.d.ts +32 -7
- package/dist/activities/execute-cursor/prompt-builder.js +38 -20
- package/dist/activities/execute-cursor/prompt-builder.js.map +1 -1
- package/dist/activities/execute-cursor/skill-resolver.d.ts +1 -10
- package/dist/activities/execute-cursor/skill-resolver.js +3 -55
- package/dist/activities/execute-cursor/skill-resolver.js.map +1 -1
- package/dist/activities/execute-cursor/stigmer-link.d.ts +35 -0
- package/dist/activities/execute-cursor/stigmer-link.js +73 -0
- package/dist/activities/execute-cursor/stigmer-link.js.map +1 -0
- package/dist/activities/execute-cursor/turn-boundary.d.ts +108 -0
- package/dist/activities/execute-cursor/turn-boundary.js +163 -0
- package/dist/activities/execute-cursor/turn-boundary.js.map +1 -0
- package/dist/activities/execute-cursor/workspace-provision.d.ts +3 -2
- package/dist/activities/execute-cursor/workspace-provision.js +5 -3
- package/dist/activities/execute-cursor/workspace-provision.js.map +1 -1
- package/dist/activities/execute-deep-agent/index.js +89 -5
- package/dist/activities/execute-deep-agent/index.js.map +1 -1
- package/dist/activities/execute-deep-agent/prompt-builder.d.ts +17 -0
- package/dist/activities/execute-deep-agent/prompt-builder.js +16 -0
- package/dist/activities/execute-deep-agent/prompt-builder.js.map +1 -1
- package/dist/activities/execute-deep-agent/setup.js +22 -16
- package/dist/activities/execute-deep-agent/setup.js.map +1 -1
- package/dist/activities/execute-deep-agent/streaming-v3.js +6 -1
- package/dist/activities/execute-deep-agent/streaming-v3.js.map +1 -1
- package/dist/activities/execute-deep-agent/streaming.d.ts +7 -0
- package/dist/activities/execute-deep-agent/streaming.js +5 -1
- package/dist/activities/execute-deep-agent/streaming.js.map +1 -1
- package/dist/config.d.ts +7 -0
- package/dist/config.js +9 -0
- package/dist/config.js.map +1 -1
- package/dist/middleware/approval-gate.js +36 -6
- package/dist/middleware/approval-gate.js.map +1 -1
- package/dist/runner-manager.d.ts +2 -0
- package/dist/runner-manager.js +2 -1
- package/dist/runner-manager.js.map +1 -1
- package/dist/runner.d.ts +2 -0
- package/dist/runner.js +2 -1
- package/dist/runner.js.map +1 -1
- package/dist/shared/artifact-storage.d.ts +32 -0
- package/dist/shared/artifact-storage.js +74 -1
- package/dist/shared/artifact-storage.js.map +1 -1
- package/dist/shared/filereview/capture.d.ts +18 -1
- package/dist/shared/filereview/capture.js +105 -28
- package/dist/shared/filereview/capture.js.map +1 -1
- package/dist/shared/filereview/cas-substrate.d.ts +9 -0
- package/dist/shared/filereview/cas-substrate.js +9 -1
- package/dist/shared/filereview/cas-substrate.js.map +1 -1
- package/dist/shared/filereview/events.d.ts +16 -0
- package/dist/shared/filereview/events.js +37 -0
- package/dist/shared/filereview/events.js.map +1 -1
- package/dist/shared/filereview/git-substrate.d.ts +42 -0
- package/dist/shared/filereview/git-substrate.js +78 -0
- package/dist/shared/filereview/git-substrate.js.map +1 -1
- package/dist/shared/filereview/index.d.ts +3 -1
- package/dist/shared/filereview/index.js +3 -1
- package/dist/shared/filereview/index.js.map +1 -1
- package/dist/shared/filereview/line-counts.d.ts +48 -0
- package/dist/shared/filereview/line-counts.js +72 -0
- package/dist/shared/filereview/line-counts.js.map +1 -0
- package/dist/shared/filereview/progress.d.ts +96 -0
- package/dist/shared/filereview/progress.js +134 -0
- package/dist/shared/filereview/progress.js.map +1 -0
- package/dist/shared/implement-plan-prompt.d.ts +44 -0
- package/dist/shared/implement-plan-prompt.js +98 -0
- package/dist/shared/implement-plan-prompt.js.map +1 -0
- package/dist/shared/plan-artifact.d.ts +59 -11
- package/dist/shared/plan-artifact.js +144 -16
- package/dist/shared/plan-artifact.js.map +1 -1
- package/dist/shared/plan-mode-prompt.d.ts +32 -0
- package/dist/shared/plan-mode-prompt.js +56 -0
- package/dist/shared/plan-mode-prompt.js.map +1 -0
- package/dist/shared/status.d.ts +11 -0
- package/dist/shared/status.js +12 -2
- package/dist/shared/status.js.map +1 -1
- package/dist/shared/tool-row.d.ts +30 -1
- package/dist/shared/tool-row.js +53 -4
- package/dist/shared/tool-row.js.map +1 -1
- package/dist/shared/workspace/session-root.d.ts +35 -0
- package/dist/shared/workspace/session-root.js +53 -0
- package/dist/shared/workspace/session-root.js.map +1 -0
- package/dist/shared/workspace/workspace-lock.d.ts +86 -0
- package/dist/shared/workspace/workspace-lock.js +187 -0
- package/dist/shared/workspace/workspace-lock.js.map +1 -0
- package/package.json +8 -5
- package/src/__tests__/config.test.ts +8 -0
- package/src/activities/__tests__/classify-tool-approvals.test.ts +1 -0
- package/src/activities/__tests__/discover-mcp-server.test.ts +1 -0
- package/src/activities/execute-cursor/__tests__/attachment-resolver.test.ts +161 -0
- package/src/activities/execute-cursor/__tests__/build-prompt.test.ts +132 -2
- package/src/activities/execute-cursor/__tests__/cas-observations.test.ts +55 -0
- package/src/activities/execute-cursor/__tests__/delta-enricher.test.ts +68 -0
- package/src/activities/execute-cursor/__tests__/hitl-ledger.test.ts +28 -0
- package/src/activities/execute-cursor/__tests__/hook-script.test.ts +63 -4
- package/src/activities/execute-cursor/__tests__/turn-boundary.test.ts +280 -0
- package/src/activities/execute-cursor/__tests__/workspace-provision.test.ts +36 -2
- package/src/activities/execute-cursor/attachment-resolver.ts +116 -34
- package/src/activities/execute-cursor/capture-flow.ts +32 -0
- package/src/activities/execute-cursor/cas-observations.ts +41 -5
- package/src/activities/execute-cursor/hook-script.ts +19 -1
- package/src/activities/execute-cursor/index.ts +243 -178
- package/src/activities/execute-cursor/message-translator.ts +9 -1
- package/src/activities/execute-cursor/prompt-builder.ts +60 -22
- package/src/activities/execute-cursor/skill-resolver.ts +3 -59
- package/src/activities/execute-cursor/stigmer-link.ts +78 -0
- package/src/activities/execute-cursor/turn-boundary.ts +274 -0
- package/src/activities/execute-cursor/workspace-provision.ts +5 -3
- package/src/activities/execute-deep-agent/__tests__/hitl-resume-approve-all.test.ts +7 -2
- package/src/activities/execute-deep-agent/__tests__/hitl-resume-history.test.ts +7 -2
- package/src/activities/execute-deep-agent/__tests__/index.test.ts +4 -1
- package/src/activities/execute-deep-agent/__tests__/prompt-builder.test.ts +99 -0
- package/src/activities/execute-deep-agent/__tests__/sequential-gate-resume.test.ts +7 -2
- package/src/activities/execute-deep-agent/index.ts +104 -5
- package/src/activities/execute-deep-agent/prompt-builder.ts +39 -0
- package/src/activities/execute-deep-agent/setup.ts +25 -17
- package/src/activities/execute-deep-agent/streaming-v3.ts +6 -1
- package/src/activities/execute-deep-agent/streaming.ts +12 -1
- package/src/config.ts +17 -0
- package/src/middleware/__tests__/approval-gate.test.ts +77 -12
- package/src/middleware/approval-gate.ts +39 -7
- package/src/runner-manager.ts +6 -1
- package/src/runner.ts +6 -1
- package/src/shared/__tests__/artifact-storage.test.ts +111 -1
- package/src/shared/__tests__/implement-plan-prompt.test.ts +86 -0
- package/src/shared/__tests__/plan-artifact.test.ts +142 -9
- package/src/shared/__tests__/secret-leak-scan.test.ts +105 -0
- package/src/shared/__tests__/status.test.ts +7 -2
- package/src/shared/__tests__/tool-row.test.ts +136 -1
- package/src/shared/artifact-storage.ts +83 -1
- package/src/shared/filereview/__tests__/capture.test.ts +182 -1
- package/src/shared/filereview/__tests__/cas-substrate.test.ts +34 -0
- package/src/shared/filereview/__tests__/events.test.ts +105 -0
- package/src/shared/filereview/__tests__/line-counts.test.ts +73 -0
- package/src/shared/filereview/__tests__/progress.test.ts +236 -0
- package/src/shared/filereview/capture.ts +134 -30
- package/src/shared/filereview/cas-substrate.ts +17 -1
- package/src/shared/filereview/events.ts +50 -0
- package/src/shared/filereview/git-substrate.ts +108 -0
- package/src/shared/filereview/index.ts +22 -1
- package/src/shared/filereview/line-counts.ts +83 -0
- package/src/shared/filereview/progress.ts +186 -0
- package/src/shared/implement-plan-prompt.ts +104 -0
- package/src/shared/plan-artifact.ts +152 -16
- package/src/shared/plan-mode-prompt.ts +56 -0
- package/src/shared/status.ts +11 -1
- package/src/shared/tool-row.ts +58 -5
- package/src/shared/workspace/__tests__/session-root.test.ts +42 -0
- package/src/shared/workspace/__tests__/workspace-lock.test.ts +200 -0
- package/src/shared/workspace/session-root.ts +60 -0
- package/src/shared/workspace/workspace-lock.ts +241 -0
|
@@ -25,6 +25,7 @@ import { utcTimestamp } from "../status.js";
|
|
|
25
25
|
import { appendFileReviewEvents, buildBaselineCapturedEvent, buildCandidateCapturedEvent, buildCapturedFileChange, buildFailedEvent, buildReconciledEvent, contentSha256, } from "./events.js";
|
|
26
26
|
import { applyApprovedPaths, baselineRef, captureChangeSet, captureRef, dropCaptureRefs, recomputeChangeSet, restoreToBaseline, snapshotApproved, snapshotBaseline, } from "./git-substrate.js";
|
|
27
27
|
import { applyCasApproved, loadCasManifest, restoreCasToBaseline, snapshotCasChangeSet, } from "./cas-substrate.js";
|
|
28
|
+
import { isSecretLikePath } from "./secret-paths.js";
|
|
28
29
|
/**
|
|
29
30
|
* Whether a turn runs in apply-then-review CAPTURE mode (file edits flow and are
|
|
30
31
|
* reviewed post-hoc) rather than the classic pre-write DENY-GATE. Shared by BOTH
|
|
@@ -111,20 +112,38 @@ export async function captureCandidateToLedger(opts) {
|
|
|
111
112
|
casRef = snap.ref;
|
|
112
113
|
}
|
|
113
114
|
const unreviewable = unreviewablePaths ?? [];
|
|
115
|
+
// Secret handling is three-way across the substrates, and this is the last of
|
|
116
|
+
// the three (the other two happen upstream at the harness gate):
|
|
117
|
+
// 1. A gitignored secret WRITE never flows — hard-blocked at the gate /
|
|
118
|
+
// deny-gate (DD-12/DD-30). It arrives here only as a path in
|
|
119
|
+
// `unreviewablePaths` (recorded by the gate), authored content-less below.
|
|
120
|
+
// 2. A gitignored secret that flowed under the global bypass is withheld from
|
|
121
|
+
// CAS by `partitionIgnoredPathsBySecret` (secret-paths.ts), so its bytes
|
|
122
|
+
// never reach `casCaptures`.
|
|
123
|
+
// 3. A git-TRACKED secret DID flow (the capture-mode gate allows tracked
|
|
124
|
+
// mutations with no secret check) and is present in `gitChanges` with real
|
|
125
|
+
// bytes. We split it out here and author it content-less, so its content
|
|
126
|
+
// never reaches the ledger. Unlike a gitignored secret it HAS a reversible
|
|
127
|
+
// substrate (the git refs), so it is withheld-and-reverted rather than
|
|
128
|
+
// never-applied — same never-persisted guarantee, appropriate mechanism.
|
|
129
|
+
const { safe: safeGitChanges, secret: secretGitChanges } = partitionGitChangesBySecret(gitChanges);
|
|
114
130
|
// A turn that changed nothing (no tracked/ignored change and no blocked path)
|
|
115
|
-
// authors no event.
|
|
131
|
+
// authors no event. A secret-only tracked turn is NOT a no-op — its file is in
|
|
132
|
+
// `gitChanges`, so the guard below is false and it authors a blocked entry.
|
|
116
133
|
if (gitChanges.length === 0 && casFiles.length === 0 && unreviewable.length === 0) {
|
|
117
134
|
return gitChanges;
|
|
118
135
|
}
|
|
119
|
-
// One combined change set: git-tracked (inline bodies) +
|
|
120
|
-
// secret-blocked (content-less
|
|
121
|
-
// all (buildCandidateCapturedEvent sorts by file
|
|
122
|
-
// and its identity span every substrate.
|
|
123
|
-
// per-file signals up three ways: any
|
|
124
|
-
// PARTIAL_BLOCKED; a set blocked only by
|
|
125
|
-
// (keepable in one acknowledged action); else
|
|
136
|
+
// One combined change set: git-tracked (inline bodies) + git-tracked-secret
|
|
137
|
+
// (content-less) + CAS (blob refs) + gitignored-secret-blocked (content-less).
|
|
138
|
+
// The aggregate digest folds all (buildCandidateCapturedEvent sorts by file
|
|
139
|
+
// digest), so the reviewed diff and its identity span every substrate.
|
|
140
|
+
// deriveDiffCompleteness then rolls the per-file signals up three ways: any
|
|
141
|
+
// content-less (non-binary) entry forces PARTIAL_BLOCKED; a set blocked only by
|
|
142
|
+
// binaries is BINARY_SUMMARY_ONLY (keepable in one acknowledged action); else
|
|
143
|
+
// COMPLETE.
|
|
126
144
|
const captured = [
|
|
127
|
-
...
|
|
145
|
+
...safeGitChanges.map((c) => buildCapturedFileChange(toCapturedChangeInput(changeSetId, c))),
|
|
146
|
+
...secretGitChanges.map((c) => buildCapturedFileChange(trackedSecretChangeInput(changeSetId, c))),
|
|
128
147
|
...casFiles.map((f) => buildCapturedFileChange(casToCapturedChangeInput(changeSetId, f))),
|
|
129
148
|
...unreviewable.map((p) => buildCapturedFileChange(unreviewableChangeInput(changeSetId, p, unreviewableCaptureClass))),
|
|
130
149
|
];
|
|
@@ -405,7 +424,9 @@ function candidateCasRef(changeSet) {
|
|
|
405
424
|
* after bodies are carried as blob REFS (already offloaded to artifact storage
|
|
406
425
|
* by the CAS substrate), never re-inlined — so the CANDIDATE event stays small
|
|
407
426
|
* and the bytes are stored exactly once. Enforcement digests come from the blob
|
|
408
|
-
* content addresses, identical in form to the git path.
|
|
427
|
+
* content addresses, identical in form to the git path. The display line counts
|
|
428
|
+
* ride along explicitly — a ref side has no inline text for the producer to
|
|
429
|
+
* count, so the substrate's capture-time counts are the only honest source.
|
|
409
430
|
*/
|
|
410
431
|
function casToCapturedChangeInput(changeSetId, file) {
|
|
411
432
|
return {
|
|
@@ -414,6 +435,7 @@ function casToCapturedChangeInput(changeSetId, file) {
|
|
|
414
435
|
pathAfter: file.pathAfter,
|
|
415
436
|
kind: file.kind,
|
|
416
437
|
captureClass: file.captureClass,
|
|
438
|
+
lineCounts: file.lineCounts,
|
|
417
439
|
before: file.before
|
|
418
440
|
? {
|
|
419
441
|
kind: "ref",
|
|
@@ -436,32 +458,87 @@ function casToCapturedChangeInput(changeSetId, file) {
|
|
|
436
458
|
};
|
|
437
459
|
}
|
|
438
460
|
/**
|
|
439
|
-
*
|
|
440
|
-
*
|
|
441
|
-
*
|
|
442
|
-
*
|
|
443
|
-
*
|
|
444
|
-
*
|
|
445
|
-
*
|
|
446
|
-
*
|
|
447
|
-
*
|
|
448
|
-
*
|
|
449
|
-
*
|
|
450
|
-
*
|
|
461
|
+
* The single content-less `SECRET_WITHHELD` producer input — the one shape every
|
|
462
|
+
* secret-blocked change (gitignored OR git-tracked) is authored with, so the two
|
|
463
|
+
* producers can never drift (a divergence in `diffComplete`/`blockedReason` would
|
|
464
|
+
* make the backend gate treat one kind of secret differently from the other).
|
|
465
|
+
*
|
|
466
|
+
* Both sides are absent (empty enforcement digests) and `diffComplete=false`.
|
|
467
|
+
* Being non-binary incomplete with no keepable bytes, it forces the change set to
|
|
468
|
+
* PARTIAL_BLOCKED (never BINARY_SUMMARY_ONLY) — approval is blocked and the path
|
|
469
|
+
* is surfaced honestly, while its CONTENT never enters the ledger or storage.
|
|
470
|
+
* `blockedReason=SECRET_WITHHELD` records the honest cause so the review UI can say
|
|
471
|
+
* *why* rather than a cause-agnostic "unavailable" (doc 15). Callers supply the
|
|
472
|
+
* id / paths / kind / captureClass so each producer keeps its own honest identity.
|
|
451
473
|
*/
|
|
452
|
-
function
|
|
474
|
+
function secretWithheldChangeInput(id, pathBefore, pathAfter, kind, captureClass) {
|
|
453
475
|
return {
|
|
454
|
-
id
|
|
455
|
-
pathBefore
|
|
456
|
-
pathAfter
|
|
457
|
-
kind
|
|
476
|
+
id,
|
|
477
|
+
pathBefore,
|
|
478
|
+
pathAfter,
|
|
479
|
+
kind,
|
|
458
480
|
captureClass,
|
|
459
481
|
diffComplete: false,
|
|
460
482
|
blockedReason: FileReviewBlockReason.SECRET_WITHHELD,
|
|
461
483
|
};
|
|
462
484
|
}
|
|
485
|
+
/**
|
|
486
|
+
* Map a secret-blocked GITIGNORED path (the write never flowed — hard-blocked at
|
|
487
|
+
* the harness gate, design doc 12 / DD-E) to a content-less entry. The write was
|
|
488
|
+
* blocked before it ran, so create-vs-modify is unknown and irrelevant (nothing
|
|
489
|
+
* is ever applied or reconciled for this entry) — kind is MODIFY. `captureClass`
|
|
490
|
+
* is the turn's CAS substrate class (GIT_IGNORED_CAPTURED | NON_GIT_CAS).
|
|
491
|
+
*/
|
|
492
|
+
function unreviewableChangeInput(changeSetId, path, captureClass) {
|
|
493
|
+
return secretWithheldChangeInput(`${changeSetId}:${path}`, path, path, FileChangeKind.MODIFY, captureClass);
|
|
494
|
+
}
|
|
495
|
+
/**
|
|
496
|
+
* Map a secret-like GIT-TRACKED change to a content-less entry (DD-26 follow-up
|
|
497
|
+
* #3). Unlike a gitignored secret, a tracked secret write actually FLOWED (the
|
|
498
|
+
* capture-mode gate allows tracked mutations), so it is present in the git diff
|
|
499
|
+
* with real bytes — which must never be persisted into the ledger. We author it
|
|
500
|
+
* content-less here so its CONTENT never reaches the ledger / Temporal history /
|
|
501
|
+
* storage, while the honest kind + paths (a CREATE/MODIFY/DELETE, mirroring
|
|
502
|
+
* {@link toCapturedChangeInput}'s id/path derivation so the resume reconcile
|
|
503
|
+
* lookup matches) and `GIT_TRACKED` provenance are preserved. It is discard-only
|
|
504
|
+
* (PARTIAL_BLOCKED): on resume it can only be rejected, and the git substrate
|
|
505
|
+
* reverts it byte-exact from the baseline ref (the reversible substrate a
|
|
506
|
+
* gitignored secret lacks — so "withhold + revert" upholds never-persisted here
|
|
507
|
+
* without the gate hard-block). A DELETE is handled here too: the git diff
|
|
508
|
+
* resurrects the deleted file's baseline (secret) bytes as the `before` side, a
|
|
509
|
+
* leak only this seam can withhold (the gate sees no content for a delete).
|
|
510
|
+
*/
|
|
511
|
+
function trackedSecretChangeInput(changeSetId, change) {
|
|
512
|
+
const isCreate = change.changeType === FileChangeType.CREATE;
|
|
513
|
+
const isDelete = change.changeType === FileChangeType.DELETE;
|
|
514
|
+
const pathBefore = isCreate ? "" : change.path;
|
|
515
|
+
const pathAfter = isDelete ? "" : change.path;
|
|
516
|
+
return secretWithheldChangeInput(`${changeSetId}:${pathAfter || pathBefore}`, pathBefore, pathAfter, toFileChangeKind(change.changeType), FileCaptureClass.GIT_TRACKED);
|
|
517
|
+
}
|
|
518
|
+
/**
|
|
519
|
+
* Split a turn's git-tracked changes by the secret gate: a secret-like tracked
|
|
520
|
+
* path (a committed `credentials.json`, `.env.example`, `*.tfvars`, ...) goes to
|
|
521
|
+
* `secret` (authored content-less via {@link trackedSecretChangeInput}); every
|
|
522
|
+
* other tracked change stays in `safe` (its diff is captured normally). Pure and
|
|
523
|
+
* exported for direct unit testing. Keyed on the same {@link isSecretLikePath}
|
|
524
|
+
* classifier the CAS/gitignored path uses ({@link partitionIgnoredPathsBySecret}
|
|
525
|
+
* in secret-paths.ts), so a path is classified identically everywhere. NOTE: the
|
|
526
|
+
* classifier is path-based (DD-12 D2), so a rename to an innocuous name defeats
|
|
527
|
+
* it — an intentional, cross-substrate limitation, not introduced here.
|
|
528
|
+
*/
|
|
529
|
+
export function partitionGitChangesBySecret(changes) {
|
|
530
|
+
const safe = [];
|
|
531
|
+
const secret = [];
|
|
532
|
+
for (const change of changes) {
|
|
533
|
+
if (isSecretLikePath(change.path))
|
|
534
|
+
secret.push(change);
|
|
535
|
+
else
|
|
536
|
+
safe.push(change);
|
|
537
|
+
}
|
|
538
|
+
return { safe, secret };
|
|
539
|
+
}
|
|
463
540
|
/** Map the git capture kind to the file-review {@link FileChangeKind}. */
|
|
464
|
-
function toFileChangeKind(changeType) {
|
|
541
|
+
export function toFileChangeKind(changeType) {
|
|
465
542
|
switch (changeType) {
|
|
466
543
|
case FileChangeType.CREATE:
|
|
467
544
|
return FileChangeKind.ADD;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"capture.js","sourceRoot":"","sources":["../../../src/shared/filereview/capture.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"capture.js","sourceRoot":"","sources":["../../../src/shared/filereview/capture.ts"],"names":[],"mappings":"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"}
|
|
@@ -49,6 +49,7 @@
|
|
|
49
49
|
*/
|
|
50
50
|
import { FileCaptureClass, FileChangeKind } from "@stigmer/protos/ai/stigmer/agentic/agentexecution/v1/enum_pb";
|
|
51
51
|
import type { ArtifactStorage } from "../artifact-storage.js";
|
|
52
|
+
import { type LineChangeCounts } from "./line-counts.js";
|
|
52
53
|
/**
|
|
53
54
|
* Reads an artifact's raw bytes back by storage key. Injected so this module
|
|
54
55
|
* stays free of HTTP/transport concerns and is trivially testable; production
|
|
@@ -80,6 +81,14 @@ export interface CasCapturedFile {
|
|
|
80
81
|
readonly after?: CasBlobRef;
|
|
81
82
|
/** False when a side is binary — the change set cannot be approved as complete. */
|
|
82
83
|
readonly diffComplete: boolean;
|
|
84
|
+
/**
|
|
85
|
+
* Display `+N −M` counted from the in-memory bytes at capture — the only
|
|
86
|
+
* moment a CAS change's text exists outside blob storage. Absent for binary
|
|
87
|
+
* or oversized sides. Carried in memory to the CANDIDATE event only, never
|
|
88
|
+
* persisted in the manifest: the manifest is the reconcile's source of truth,
|
|
89
|
+
* and display decoration does not belong in an enforcement record.
|
|
90
|
+
*/
|
|
91
|
+
readonly lineCounts?: LineChangeCounts;
|
|
83
92
|
}
|
|
84
93
|
/** The durable manifest for one change set — the reconcile's source of truth. */
|
|
85
94
|
export interface CasManifest {
|
|
@@ -52,6 +52,7 @@ import { dirname, join } from "node:path";
|
|
|
52
52
|
import { FileChangeKind, } from "@stigmer/protos/ai/stigmer/agentic/agentexecution/v1/enum_pb";
|
|
53
53
|
import { bytesLookBinary } from "../file-change.js";
|
|
54
54
|
import { sha256Bytes, sha256Hex } from "./digest.js";
|
|
55
|
+
import { countLineChanges } from "./line-counts.js";
|
|
55
56
|
// ---------------------------------------------------------------------------
|
|
56
57
|
// Key namespace (design doc 08: execution-scoped, reuse existing authz)
|
|
57
58
|
// ---------------------------------------------------------------------------
|
|
@@ -123,6 +124,7 @@ async function buildCasCapturedFile(storage, executionId, capture) {
|
|
|
123
124
|
: FileChangeKind.MODIFY;
|
|
124
125
|
const isCreate = kind === FileChangeKind.ADD;
|
|
125
126
|
const isDelete = kind === FileChangeKind.DELETE;
|
|
127
|
+
const isBinary = beforeRef?.isBinary || afterRef?.isBinary;
|
|
126
128
|
return {
|
|
127
129
|
pathBefore: isCreate ? "" : path,
|
|
128
130
|
pathAfter: isDelete ? "" : path,
|
|
@@ -132,7 +134,13 @@ async function buildCasCapturedFile(storage, executionId, capture) {
|
|
|
132
134
|
after: afterRef,
|
|
133
135
|
// Binary on either side means the diff cannot render as text; the change set
|
|
134
136
|
// then cannot be approved as complete (parity with the git substrate).
|
|
135
|
-
diffComplete: !
|
|
137
|
+
diffComplete: !isBinary,
|
|
138
|
+
// Display counts are taken NOW, while the text bytes are still in memory —
|
|
139
|
+
// after this they exist only as offloaded blobs. A binary change has no
|
|
140
|
+
// line diff to count.
|
|
141
|
+
lineCounts: isBinary
|
|
142
|
+
? undefined
|
|
143
|
+
: countLineChanges(beforeBuf?.toString("utf8"), afterBuf?.toString("utf8")),
|
|
136
144
|
};
|
|
137
145
|
}
|
|
138
146
|
/** Upload bytes under their content-address, skipping the write when present. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cas-substrate.js","sourceRoot":"","sources":["../../../src/shared/filereview/cas-substrate.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgDG;AAEH,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAEL,cAAc,GACf,MAAM,8DAA8D,CAAC;AAEtE,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"cas-substrate.js","sourceRoot":"","sources":["../../../src/shared/filereview/cas-substrate.ts"],"names":[],"mappings":"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"}
|
|
@@ -13,6 +13,7 @@
|
|
|
13
13
|
import type { AgentExecutionStatus } from "@stigmer/protos/ai/stigmer/agentic/agentexecution/v1/api_pb";
|
|
14
14
|
import type { CapturedFileChange, FileReviewEvent, SnapshotRef, TurnCommandProvenance } from "@stigmer/protos/ai/stigmer/agentic/agentexecution/v1/filereview_pb";
|
|
15
15
|
import { DiffCompleteness, FileCaptureClass, FileChangeKind, FileReviewBlockReason, FileReviewEventType, FileReviewFailureKind } from "@stigmer/protos/ai/stigmer/agentic/agentexecution/v1/enum_pb";
|
|
16
|
+
import { type LineChangeCounts } from "./line-counts.js";
|
|
16
17
|
/**
|
|
17
18
|
* The deterministic idempotency key for a file-review event:
|
|
18
19
|
* `changeSetId:scopeId:eventTypeName`. Capture/reconcile/failure events are
|
|
@@ -86,6 +87,15 @@ export interface CapturedChangeInput {
|
|
|
86
87
|
* this UNSPECIFIED. See {@link FileReviewBlockReason}.
|
|
87
88
|
*/
|
|
88
89
|
readonly blockedReason?: FileReviewBlockReason;
|
|
90
|
+
/**
|
|
91
|
+
* Display line counts for this change, for producers whose bodies are not
|
|
92
|
+
* inline here (the CAS substrate counts from the in-memory bytes before
|
|
93
|
+
* offloading them as blob refs). Omit for inline content —
|
|
94
|
+
* {@link buildCapturedFileChange} then counts the inline sides itself, with
|
|
95
|
+
* the same shared {@link countLineChanges}. Informational only, never folded
|
|
96
|
+
* into the digests.
|
|
97
|
+
*/
|
|
98
|
+
readonly lineCounts?: LineChangeCounts;
|
|
89
99
|
}
|
|
90
100
|
/**
|
|
91
101
|
* The enforcement digest of one content side. Inline text is hashed as UTF-8
|
|
@@ -101,6 +111,12 @@ export declare function contentSha256(content: CapturedContent): string;
|
|
|
101
111
|
* `file_digest`) over the captured bytes. Content may be inline (git) or a blob
|
|
102
112
|
* ref (CAS) — the digests are identical either way, so the aggregate digest and
|
|
103
113
|
* the reconcile enforcement compose across both substrates.
|
|
114
|
+
*
|
|
115
|
+
* Display line counts are stamped here too — the single seam every substrate
|
|
116
|
+
* flows through — from `input.lineCounts` when the producer counted at its own
|
|
117
|
+
* source (CAS), else counted from the inline sides. Counting happens BEFORE any
|
|
118
|
+
* persist-time offload, so the counts survive a body being elided later. They
|
|
119
|
+
* never enter `fileDigest` (informational, not enforcement).
|
|
104
120
|
*/
|
|
105
121
|
export declare function buildCapturedFileChange(input: CapturedChangeInput): CapturedFileChange;
|
|
106
122
|
/** Coordinates a change set's lifecycle so every event carries one identity. */
|
|
@@ -15,6 +15,7 @@ import { CapturedFileChangeSchema, FileReviewBaselineCapturedSchema, FileReviewC
|
|
|
15
15
|
import { FileContentSchema, ToolCallOutputRefSchema, } from "@stigmer/protos/ai/stigmer/agentic/agentexecution/v1/message_pb";
|
|
16
16
|
import { DiffCompleteness, FileReviewBlockReason, FileReviewEventType, } from "@stigmer/protos/ai/stigmer/agentic/agentexecution/v1/enum_pb";
|
|
17
17
|
import { aggregateDigest, fileDigest, sha256Bytes } from "./digest.js";
|
|
18
|
+
import { countLineChanges } from "./line-counts.js";
|
|
18
19
|
import { looksBinary } from "../file-change.js";
|
|
19
20
|
// The runner is the author of capture/reconcile/failure events. "runner" (not
|
|
20
21
|
// the generic "system") matches the cross-edition corpus fixtures and the
|
|
@@ -67,6 +68,33 @@ export function contentSha256(content) {
|
|
|
67
68
|
return content.sha256;
|
|
68
69
|
}
|
|
69
70
|
}
|
|
71
|
+
/**
|
|
72
|
+
* Count the display `+N −M` from a change's inline sides, or `undefined` when
|
|
73
|
+
* counting is not honest here: a side that exists without inline text (a `ref`
|
|
74
|
+
* whose bytes were already offloaded, or a `binary` side with no body), or
|
|
75
|
+
* inline text that would render as binary (the UI shows "Binary file changed"
|
|
76
|
+
* for it, never a line diff — a count would describe a diff nobody sees).
|
|
77
|
+
* An absent side is fine — it is the empty document of an ADD/DELETE.
|
|
78
|
+
*/
|
|
79
|
+
function countInlineSides(before, after) {
|
|
80
|
+
const beforeText = inlineTextOrNull(before);
|
|
81
|
+
const afterText = inlineTextOrNull(after);
|
|
82
|
+
if (beforeText === null || afterText === null)
|
|
83
|
+
return undefined;
|
|
84
|
+
return countLineChanges(beforeText, afterText);
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* A side's countable inline text: the text for a non-binary inline side,
|
|
88
|
+
* `undefined` for an absent side (countable as the empty document), and `null`
|
|
89
|
+
* when the side exists but cannot be counted (ref / binary / binary-looking).
|
|
90
|
+
*/
|
|
91
|
+
function inlineTextOrNull(content) {
|
|
92
|
+
if (content === undefined)
|
|
93
|
+
return undefined;
|
|
94
|
+
if (content.kind !== "inline" || looksBinary(content.text))
|
|
95
|
+
return null;
|
|
96
|
+
return content.text;
|
|
97
|
+
}
|
|
70
98
|
/** Build the proto {@link FileContent} for one content side (inline, ref, or binary). */
|
|
71
99
|
function toFileContent(content) {
|
|
72
100
|
if (content.kind === "inline") {
|
|
@@ -103,12 +131,19 @@ function toFileContent(content) {
|
|
|
103
131
|
* `file_digest`) over the captured bytes. Content may be inline (git) or a blob
|
|
104
132
|
* ref (CAS) — the digests are identical either way, so the aggregate digest and
|
|
105
133
|
* the reconcile enforcement compose across both substrates.
|
|
134
|
+
*
|
|
135
|
+
* Display line counts are stamped here too — the single seam every substrate
|
|
136
|
+
* flows through — from `input.lineCounts` when the producer counted at its own
|
|
137
|
+
* source (CAS), else counted from the inline sides. Counting happens BEFORE any
|
|
138
|
+
* persist-time offload, so the counts survive a body being elided later. They
|
|
139
|
+
* never enter `fileDigest` (informational, not enforcement).
|
|
106
140
|
*/
|
|
107
141
|
export function buildCapturedFileChange(input) {
|
|
108
142
|
const before = normalizeContent(input.before);
|
|
109
143
|
const after = normalizeContent(input.after);
|
|
110
144
|
const beforeSha256 = before ? contentSha256(before) : "";
|
|
111
145
|
const afterSha256 = after ? contentSha256(after) : "";
|
|
146
|
+
const counts = input.lineCounts ?? countInlineSides(before, after);
|
|
112
147
|
const fc = create(CapturedFileChangeSchema, {
|
|
113
148
|
id: input.id,
|
|
114
149
|
pathBefore: input.pathBefore,
|
|
@@ -119,6 +154,8 @@ export function buildCapturedFileChange(input) {
|
|
|
119
154
|
afterSha256,
|
|
120
155
|
diffComplete: input.diffComplete ?? true,
|
|
121
156
|
blockedReason: input.blockedReason ?? FileReviewBlockReason.UNSPECIFIED,
|
|
157
|
+
linesAdded: counts?.linesAdded ?? 0,
|
|
158
|
+
linesRemoved: counts?.linesRemoved ?? 0,
|
|
122
159
|
fileDigest: fileDigest({
|
|
123
160
|
pathBefore: input.pathBefore,
|
|
124
161
|
pathAfter: input.pathAfter,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"events.js","sourceRoot":"","sources":["../../../src/shared/filereview/events.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAE5C,OAAO,EACL,wBAAwB,EACxB,gCAAgC,EAChC,iCAAiC,EACjC,qBAAqB,EACrB,2BAA2B,EAC3B,uBAAuB,EACvB,0BAA0B,GAC3B,MAAM,oEAAoE,CAAC;AAO5E,OAAO,EACL,iBAAiB,EACjB,uBAAuB,GACxB,MAAM,iEAAiE,CAAC;AAEzE,OAAO,EACL,gBAAgB,EAGhB,qBAAqB,EACrB,mBAAmB,GAEpB,MAAM,8DAA8D,CAAC;AACtE,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AACvE,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,8EAA8E;AAC9E,0EAA0E;AAC1E,uEAAuE;AACvE,+EAA+E;AAC/E,6DAA6D;AAC7D,MAAM,YAAY,GAAG,QAAQ,CAAC;AAE9B;;;;;GAKG;AACH,MAAM,2BAA2B,GAAkD;IACjF,CAAC,mBAAmB,CAAC,WAAW,CAAC,EAAE,oCAAoC;IACvE,CAAC,mBAAmB,CAAC,iBAAiB,CAAC,EAAE,0CAA0C;IACnF,CAAC,mBAAmB,CAAC,kBAAkB,CAAC,EAAE,2CAA2C;IACrF,CAAC,mBAAmB,CAAC,YAAY,CAAC,EAAE,qCAAqC;IACzE,CAAC,mBAAmB,CAAC,UAAU,CAAC,EAAE,mCAAmC;IACrE,CAAC,mBAAmB,CAAC,MAAM,CAAC,EAAE,+BAA+B;CAC9D,CAAC;AAEF;;;;;GAKG;AACH,MAAM,UAAU,OAAO,CACrB,WAAmB,EACnB,OAAe,EACf,IAAyB;IAEzB,OAAO,GAAG,WAAW,IAAI,OAAO,IAAI,2BAA2B,CAAC,IAAI,CAAC,EAAE,CAAC;AAC1E,CAAC;
|
|
1
|
+
{"version":3,"file":"events.js","sourceRoot":"","sources":["../../../src/shared/filereview/events.ts"],"names":[],"mappings":"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"}
|
|
@@ -132,6 +132,48 @@ export declare function snapshotBaseline(gitRoot: string, executionId: string, e
|
|
|
132
132
|
* review model.
|
|
133
133
|
*/
|
|
134
134
|
export declare function captureChangeSet(gitRoot: string, executionId: string, baselineTree: string, excludePaths?: readonly string[]): Promise<CaptureResult>;
|
|
135
|
+
/**
|
|
136
|
+
* One file's slim, content-free progress delta: paths + kind + line counts, NO
|
|
137
|
+
* bytes. The mid-run analogue of {@link GitSubstrateChange} (which carries the
|
|
138
|
+
* before/after {@link CapturedContent}); this deliberately carries neither side,
|
|
139
|
+
* so it can never leak content. `linesAdded`/`linesRemoved` are 0 when
|
|
140
|
+
* uncountable (a binary file — numstat reports `-`).
|
|
141
|
+
*/
|
|
142
|
+
export interface GitProgressEntry {
|
|
143
|
+
/** Path before the change (repo-relative). Empty for a CREATE. */
|
|
144
|
+
readonly pathBefore: string;
|
|
145
|
+
/** Path after the change (repo-relative). Empty for a DELETE. */
|
|
146
|
+
readonly pathAfter: string;
|
|
147
|
+
readonly changeType: FileChangeType;
|
|
148
|
+
readonly linesAdded: number;
|
|
149
|
+
readonly linesRemoved: number;
|
|
150
|
+
}
|
|
151
|
+
/** Result of {@link captureProgressDelta}. */
|
|
152
|
+
export interface ProgressDelta {
|
|
153
|
+
/** The post-diff working-tree sha, for the caller's short-circuit cache. */
|
|
154
|
+
readonly afterTree: string;
|
|
155
|
+
/** One count-only entry per changed file (no content). */
|
|
156
|
+
readonly entries: readonly GitProgressEntry[];
|
|
157
|
+
}
|
|
158
|
+
/**
|
|
159
|
+
* Capture a NON-AUTHORITATIVE, content-free snapshot of the working-tree delta
|
|
160
|
+
* against `baselineTree` — the substrate for the live "N files changed so far"
|
|
161
|
+
* surface (mid-run live capture). Unlike {@link captureChangeSet} this reads NO
|
|
162
|
+
* file bytes: it stages the working tree into a temp index, writes its tree, and
|
|
163
|
+
* asks git for `--numstat` + `--name-status` only. Cheap enough to run on a
|
|
164
|
+
* debounce during the turn.
|
|
165
|
+
*
|
|
166
|
+
* Short-circuit: returns `undefined` when the working tree is unchanged since
|
|
167
|
+
* `lastTreeSha` (the caller passes back the previous result's `afterTree`), so a
|
|
168
|
+
* quiet turn pays only one `write-tree`, never a diff.
|
|
169
|
+
*
|
|
170
|
+
* Uses a dedicated temp-index label ("progress") so it never collides with the
|
|
171
|
+
* `baseline`/`capture`/`approved` indexes. `--no-renames` matches
|
|
172
|
+
* {@link captureChangeSet} (a rename surfaces as delete + create). A torn read of
|
|
173
|
+
* a file being written mid-turn is acceptable — the snapshot is non-authoritative
|
|
174
|
+
* and self-corrects on the next capture.
|
|
175
|
+
*/
|
|
176
|
+
export declare function captureProgressDelta(gitRoot: string, executionId: string, baselineTree: string, excludePaths?: readonly string[], lastTreeSha?: string): Promise<ProgressDelta | undefined>;
|
|
135
177
|
/**
|
|
136
178
|
* Restore the given files to their `baselineTree` (pre-turn) bytes. On resume
|
|
137
179
|
* this reverts the REJECTED/undecided subset so a discarded change snaps back
|
|
@@ -240,6 +240,48 @@ export async function captureChangeSet(gitRoot, executionId, baselineTree, exclu
|
|
|
240
240
|
}
|
|
241
241
|
return { baselineTree, afterTree, changes };
|
|
242
242
|
}
|
|
243
|
+
/**
|
|
244
|
+
* Capture a NON-AUTHORITATIVE, content-free snapshot of the working-tree delta
|
|
245
|
+
* against `baselineTree` — the substrate for the live "N files changed so far"
|
|
246
|
+
* surface (mid-run live capture). Unlike {@link captureChangeSet} this reads NO
|
|
247
|
+
* file bytes: it stages the working tree into a temp index, writes its tree, and
|
|
248
|
+
* asks git for `--numstat` + `--name-status` only. Cheap enough to run on a
|
|
249
|
+
* debounce during the turn.
|
|
250
|
+
*
|
|
251
|
+
* Short-circuit: returns `undefined` when the working tree is unchanged since
|
|
252
|
+
* `lastTreeSha` (the caller passes back the previous result's `afterTree`), so a
|
|
253
|
+
* quiet turn pays only one `write-tree`, never a diff.
|
|
254
|
+
*
|
|
255
|
+
* Uses a dedicated temp-index label ("progress") so it never collides with the
|
|
256
|
+
* `baseline`/`capture`/`approved` indexes. `--no-renames` matches
|
|
257
|
+
* {@link captureChangeSet} (a rename surfaces as delete + create). A torn read of
|
|
258
|
+
* a file being written mid-turn is acceptable — the snapshot is non-authoritative
|
|
259
|
+
* and self-corrects on the next capture.
|
|
260
|
+
*/
|
|
261
|
+
export async function captureProgressDelta(gitRoot, executionId, baselineTree, excludePaths = [], lastTreeSha) {
|
|
262
|
+
const gitDir = await resolveGitDir(gitRoot);
|
|
263
|
+
const afterTree = await writeWorkingTree(gitRoot, gitDir, "progress", executionId, excludePaths);
|
|
264
|
+
if (lastTreeSha !== undefined && afterTree === lastTreeSha)
|
|
265
|
+
return undefined;
|
|
266
|
+
const [nameStatusRaw, numstatRaw] = await Promise.all([
|
|
267
|
+
git(gitRoot, ["diff", "--no-renames", "--name-status", "-z", baselineTree, afterTree]),
|
|
268
|
+
git(gitRoot, ["diff", "--no-renames", "--numstat", "-z", baselineTree, afterTree]),
|
|
269
|
+
]);
|
|
270
|
+
const counts = parseNumstatZ(numstatRaw);
|
|
271
|
+
const entries = [];
|
|
272
|
+
for (const { status, path } of parseNameStatusZ(nameStatusRaw)) {
|
|
273
|
+
const changeType = nameStatusToChangeType(status);
|
|
274
|
+
const count = counts.get(path);
|
|
275
|
+
entries.push({
|
|
276
|
+
pathBefore: changeType === FileChangeType.CREATE ? "" : path,
|
|
277
|
+
pathAfter: changeType === FileChangeType.DELETE ? "" : path,
|
|
278
|
+
changeType,
|
|
279
|
+
linesAdded: count?.added ?? 0,
|
|
280
|
+
linesRemoved: count?.removed ?? 0,
|
|
281
|
+
});
|
|
282
|
+
}
|
|
283
|
+
return { afterTree, entries };
|
|
284
|
+
}
|
|
243
285
|
/**
|
|
244
286
|
* Restore the given files to their `baselineTree` (pre-turn) bytes. On resume
|
|
245
287
|
* this reverts the REJECTED/undecided subset so a discarded change snaps back
|
|
@@ -365,6 +407,42 @@ function parseNameStatusZ(raw) {
|
|
|
365
407
|
}
|
|
366
408
|
return entries;
|
|
367
409
|
}
|
|
410
|
+
/**
|
|
411
|
+
* Parse `git diff --numstat -z` into a path -> {added, removed} map. Each record
|
|
412
|
+
* is a NUL-terminated `<added>\t<removed>\t<path>` triple; a binary file reports
|
|
413
|
+
* `-` for both counts, which we surface as 0 (no count) per the display contract.
|
|
414
|
+
*/
|
|
415
|
+
function parseNumstatZ(raw) {
|
|
416
|
+
const counts = new Map();
|
|
417
|
+
for (const record of raw.split("\u0000")) {
|
|
418
|
+
if (!record)
|
|
419
|
+
continue;
|
|
420
|
+
const tab = record.indexOf("\t");
|
|
421
|
+
const tab2 = record.indexOf("\t", tab + 1);
|
|
422
|
+
if (tab < 0 || tab2 < 0)
|
|
423
|
+
continue;
|
|
424
|
+
const addedStr = record.slice(0, tab);
|
|
425
|
+
const removedStr = record.slice(tab + 1, tab2);
|
|
426
|
+
const path = record.slice(tab2 + 1);
|
|
427
|
+
if (!path)
|
|
428
|
+
continue;
|
|
429
|
+
const added = addedStr === "-" ? 0 : Number.parseInt(addedStr, 10) || 0;
|
|
430
|
+
const removed = removedStr === "-" ? 0 : Number.parseInt(removedStr, 10) || 0;
|
|
431
|
+
counts.set(path, { added, removed });
|
|
432
|
+
}
|
|
433
|
+
return counts;
|
|
434
|
+
}
|
|
435
|
+
/**
|
|
436
|
+
* Map a `--name-status` status letter to a {@link FileChangeType} — the same
|
|
437
|
+
* A -> CREATE, D -> DELETE, else MODIFY rule {@link buildCapturedChange} uses.
|
|
438
|
+
*/
|
|
439
|
+
function nameStatusToChangeType(status) {
|
|
440
|
+
if (status === "A")
|
|
441
|
+
return FileChangeType.CREATE;
|
|
442
|
+
if (status === "D")
|
|
443
|
+
return FileChangeType.DELETE;
|
|
444
|
+
return FileChangeType.MODIFY;
|
|
445
|
+
}
|
|
368
446
|
/** Read a blob's exact BYTES from a tree, or `undefined` when absent. */
|
|
369
447
|
async function readBlobBytes(gitRoot, tree, path) {
|
|
370
448
|
try {
|