@bevel-software/platform-core-backend 0.24.0 → 0.25.2
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/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -1
- package/dist/index.js.map +1 -1
- package/dist/modules/database/migrate.d.ts +87 -1
- package/dist/modules/database/migrate.d.ts.map +1 -1
- package/dist/modules/database/migrate.js +166 -48
- package/dist/modules/database/migrate.js.map +1 -1
- package/dist/modules/kb-fs/locking-filesystem.d.ts +17 -0
- package/dist/modules/kb-fs/locking-filesystem.d.ts.map +1 -1
- package/dist/modules/kb-fs/locking-filesystem.js +29 -0
- package/dist/modules/kb-fs/locking-filesystem.js.map +1 -1
- package/dist/modules/tool-manuals/tool-manuals.service.d.ts.map +1 -1
- package/dist/modules/tool-manuals/tool-manuals.service.js +30 -0
- package/dist/modules/tool-manuals/tool-manuals.service.js.map +1 -1
- package/dist/modules/workspace/startup/kb-startup-runner.d.ts +70 -0
- package/dist/modules/workspace/startup/kb-startup-runner.d.ts.map +1 -1
- package/dist/modules/workspace/startup/kb-startup-runner.js +213 -20
- package/dist/modules/workspace/startup/kb-startup-runner.js.map +1 -1
- package/dist/modules/workspace/workspace.tools.d.ts.map +1 -1
- package/dist/modules/workspace/workspace.tools.js +58 -21
- package/dist/modules/workspace/workspace.tools.js.map +1 -1
- package/kb-template/AGENTS.md +40 -0
- package/package.json +3 -3
- package/src/index.ts +7 -0
- package/src/modules/database/__tests__/pii-backfill.pg.test.ts +223 -4
- package/src/modules/database/migrate.ts +238 -52
- package/src/modules/kb-fs/__tests__/locking-filesystem.test.ts +93 -0
- package/src/modules/kb-fs/locking-filesystem.ts +37 -0
- package/src/modules/tool-manuals/__tests__/tool-manuals.service.test.ts +151 -0
- package/src/modules/tool-manuals/tool-manuals.service.ts +37 -0
- package/src/modules/workspace/__tests__/workspace.tools.test.ts +112 -1
- package/src/modules/workspace/startup/__tests__/kb-startup-runner.test.ts +231 -1
- package/src/modules/workspace/startup/kb-startup-runner.ts +216 -19
- package/src/modules/workspace/workspace.tools.ts +59 -21
|
@@ -12,6 +12,38 @@ import { ClassifiedFailure, classifyGitFailure, failureOf, gitFailure, } from '.
|
|
|
12
12
|
import { redactSecret, urlQuerySecrets } from '../../../shared/redact-secret.js';
|
|
13
13
|
import { normalizeRepositoryAddress, sameRepository } from '../../kb-fs/remote-url.js';
|
|
14
14
|
import { setAsideClone, setAsideRootFor, setAsideStamp } from '../set-aside-clone.js';
|
|
15
|
+
const UNFINISHED_CLONE_QUIET_MS = 60_000;
|
|
16
|
+
/** The floor `kb-git.ts` gives a startup git command, a clone included. */
|
|
17
|
+
const LONGEST_CLONE_MS = 600_000;
|
|
18
|
+
/**
|
|
19
|
+
* How many times one working copy is read before the start gives up on it.
|
|
20
|
+
* A pass ends by acting or by finding the path changed; a path that changes
|
|
21
|
+
* on every one of these is being worked on by something that will not stop.
|
|
22
|
+
*/
|
|
23
|
+
const PASSES_OVER_ONE_WORKING_COPY = 4;
|
|
24
|
+
/** Whether `git clone` failed because its destination already held something, having written nothing. */
|
|
25
|
+
function refusedAnOccupiedFolder(err) {
|
|
26
|
+
return err instanceof Error && /already exists and is not an empty directory/.test(err.message);
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* When anything under `dir` was last written, as a time in milliseconds. Now,
|
|
30
|
+
* for a folder that cannot be read: "could not tell" counts as still in use.
|
|
31
|
+
*/
|
|
32
|
+
async function newestChangeUnder(dir) {
|
|
33
|
+
let newest = 0;
|
|
34
|
+
try {
|
|
35
|
+
newest = (await fs.stat(dir)).mtimeMs;
|
|
36
|
+
for (const entry of await fs.readdir(dir, { recursive: true, withFileTypes: true })) {
|
|
37
|
+
const stat = await fs.stat(path.join(entry.parentPath, entry.name)).catch(() => null);
|
|
38
|
+
if (stat && stat.mtimeMs > newest)
|
|
39
|
+
newest = stat.mtimeMs;
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
catch {
|
|
43
|
+
return Date.now();
|
|
44
|
+
}
|
|
45
|
+
return newest;
|
|
46
|
+
}
|
|
15
47
|
/**
|
|
16
48
|
* The remote could not be reached or refused us: a host that is down, a DNS
|
|
17
49
|
* name that does not resolve, a token that was rotated. Told apart from every
|
|
@@ -530,14 +562,7 @@ export class KbStartupRunner {
|
|
|
530
562
|
// Setting it aside already removed it from the workspaces root, so the
|
|
531
563
|
// cached handle the workspace service holds for it now points at
|
|
532
564
|
// nothing.
|
|
533
|
-
|
|
534
|
-
await this.opts.onCloneDiscarded?.(entry.name);
|
|
535
|
-
}
|
|
536
|
-
catch (err) {
|
|
537
|
-
startupLog.warn(`could not finish setting the working copy "${entry.name}" aside:`, {
|
|
538
|
-
detail: this.redact(err instanceof Error ? err.message : String(err)),
|
|
539
|
-
});
|
|
540
|
-
}
|
|
565
|
+
await this.announceDiscarded(entry.name);
|
|
541
566
|
}
|
|
542
567
|
}
|
|
543
568
|
/**
|
|
@@ -594,28 +619,173 @@ export class KbStartupRunner {
|
|
|
594
619
|
* commit recovery owns that work, not this phase.
|
|
595
620
|
*/
|
|
596
621
|
async ensureClone(branch) {
|
|
622
|
+
try {
|
|
623
|
+
return await this.cloneOrUpdate(branch);
|
|
624
|
+
}
|
|
625
|
+
catch (err) {
|
|
626
|
+
// One branch's working copy is what failed, and every boot visits all
|
|
627
|
+
// of them: said here, so the log names the one to look at. The kind of
|
|
628
|
+
// failure git's words were read as is kept, since the setup screen and
|
|
629
|
+
// the degraded start decide by it.
|
|
630
|
+
const message = `the working copy of branch "${branch}" could not be prepared: ${err instanceof Error ? err.message : String(err)}`;
|
|
631
|
+
throw new ClassifiedFailure(message, failureOf(err), { cause: err });
|
|
632
|
+
}
|
|
633
|
+
}
|
|
634
|
+
/**
|
|
635
|
+
* Decided from what is at the path NOW, and decided again after anything
|
|
636
|
+
* that waited. This phase is not the only thing that touches a working
|
|
637
|
+
* copy: on a running server a branch being opened clones into the same
|
|
638
|
+
* path, and on a redeploy two processes share the volume for a few seconds.
|
|
639
|
+
* So nothing here acts on an answer it read before a wait. Each pass reads
|
|
640
|
+
* the path once and does one thing about it; a pass that found the path
|
|
641
|
+
* changed under it does nothing and lets the next one read it again.
|
|
642
|
+
*/
|
|
643
|
+
async cloneOrUpdate(branch) {
|
|
597
644
|
const workspaceDir = path.join(this.opts.workspacesRoot, workspaceIdForBranch(branch));
|
|
598
645
|
const repoDir = path.join(workspaceDir, this.opts.kbDirName);
|
|
646
|
+
for (let pass = 1;; pass++) {
|
|
647
|
+
const hasGit = await fs.access(path.join(repoDir, '.git')).then(() => true, () => false);
|
|
648
|
+
if (hasGit && (await this.hasCommit(repoDir)))
|
|
649
|
+
return this.updateClone(branch, repoDir);
|
|
650
|
+
if (pass > PASSES_OVER_ONE_WORKING_COPY) {
|
|
651
|
+
throw new Error('it kept changing while this start was preparing it; something else is working on it');
|
|
652
|
+
}
|
|
653
|
+
if (hasGit) {
|
|
654
|
+
await this.setAsideUnfinishedClone(workspaceIdForBranch(branch), repoDir);
|
|
655
|
+
continue;
|
|
656
|
+
}
|
|
657
|
+
try {
|
|
658
|
+
return await this.cloneFresh(branch, workspaceDir, repoDir);
|
|
659
|
+
}
|
|
660
|
+
catch (err) {
|
|
661
|
+
// Git refuses to clone into a folder that already holds something,
|
|
662
|
+
// and writes nothing when it does. If that is what happened, somebody
|
|
663
|
+
// else put a clone here between the look above and this one: theirs
|
|
664
|
+
// is read on the next pass. Any other failure is this clone's own.
|
|
665
|
+
if (!refusedAnOccupiedFolder(err))
|
|
666
|
+
throw err;
|
|
667
|
+
}
|
|
668
|
+
}
|
|
669
|
+
}
|
|
670
|
+
/**
|
|
671
|
+
* A `.git` WITH NO COMMIT IS NOT A CLONE. It is what a clone leaves when it
|
|
672
|
+
* is cut short (the process stopped, the disk filled), and it is found
|
|
673
|
+
* again on every start: nothing can fast-forward a branch that has no
|
|
674
|
+
* commit, so the boot failed on it for good, and one such folder kept the
|
|
675
|
+
* whole deployment from starting.
|
|
676
|
+
*
|
|
677
|
+
* It holds no commit, so no committed work of anyone's. It may still hold
|
|
678
|
+
* files somebody put there, so it is MOVED, never deleted, to where every
|
|
679
|
+
* other set-aside working copy goes. The caller clones again.
|
|
680
|
+
*
|
|
681
|
+
* It is also exactly what a clone that is STILL RUNNING looks like: git
|
|
682
|
+
* makes `.git` first and a commit appears only at the end. So it is left
|
|
683
|
+
* alone until nothing has been written to it for a while, and read once
|
|
684
|
+
* more after every wait. Returns having moved it, or having found nothing
|
|
685
|
+
* of the kind left to move.
|
|
686
|
+
*/
|
|
687
|
+
async setAsideUnfinishedClone(id, repoDir) {
|
|
688
|
+
if (!(await this.waitUntilNothingWritesTo(repoDir)))
|
|
689
|
+
return;
|
|
690
|
+
await this.opts.beforeCloneSetAside?.(id);
|
|
691
|
+
// The hook above may have waited. What is here now decides.
|
|
692
|
+
if (!(await this.isUnfinishedClone(repoDir)))
|
|
693
|
+
return;
|
|
694
|
+
const kept = path.join(setAsideRootFor(this.opts.workspacesRoot, this.opts.setAsideRoot), setAsideStamp(), id);
|
|
695
|
+
try {
|
|
696
|
+
await setAsideClone(repoDir, kept);
|
|
697
|
+
}
|
|
698
|
+
catch (err) {
|
|
699
|
+
// Taken away by somebody else in the instant since it was read: there
|
|
700
|
+
// is nothing left to move, which is not a reason to stop the start.
|
|
701
|
+
// Only a move this call made is logged and announced.
|
|
702
|
+
if (await fs.access(repoDir).then(() => true, () => false))
|
|
703
|
+
throw err;
|
|
704
|
+
await fs.rmdir(path.dirname(kept)).catch(() => undefined);
|
|
705
|
+
return;
|
|
706
|
+
}
|
|
707
|
+
startupLog.warn(`working copy "${id}" has a git folder and no commit: a clone that was never finished. ` +
|
|
708
|
+
`Set aside at ${kept}; nothing was deleted, and it is cloned again now.`);
|
|
709
|
+
await this.announceDiscarded(id);
|
|
710
|
+
}
|
|
711
|
+
async isUnfinishedClone(repoDir) {
|
|
599
712
|
const hasGit = await fs.access(path.join(repoDir, '.git')).then(() => true, () => false);
|
|
600
|
-
|
|
601
|
-
|
|
602
|
-
|
|
603
|
-
|
|
604
|
-
|
|
605
|
-
|
|
606
|
-
|
|
713
|
+
return hasGit && !(await this.hasCommit(repoDir));
|
|
714
|
+
}
|
|
715
|
+
/**
|
|
716
|
+
* Wait until nothing under the unfinished clone's `.git` has been written
|
|
717
|
+
* for {@link KbStartupRunnerOptions.unfinishedCloneQuietMs}. True when it is
|
|
718
|
+
* then still an unfinished clone; false when it finished or went away
|
|
719
|
+
* meanwhile, so there is nothing to set aside.
|
|
720
|
+
*
|
|
721
|
+
* A running clone that has written nothing for that long (a remote still
|
|
722
|
+
* counting objects on a very large repository) is not told apart from an
|
|
723
|
+
* abandoned one. Bounded by the longest a clone may run plus the quiet
|
|
724
|
+
* time: past that, whatever is writing is not a clone.
|
|
725
|
+
*/
|
|
726
|
+
async waitUntilNothingWritesTo(repoDir) {
|
|
727
|
+
const quietMs = this.opts.unfinishedCloneQuietMs ?? UNFINISHED_CLONE_QUIET_MS;
|
|
728
|
+
const giveUpAt = Date.now() + Math.max(this.opts.gitRunner.defaultTimeoutMs, LONGEST_CLONE_MS) + quietMs;
|
|
729
|
+
for (;;) {
|
|
730
|
+
if (!(await this.isUnfinishedClone(repoDir)))
|
|
731
|
+
return false;
|
|
732
|
+
const lastWrite = await newestChangeUnder(path.join(repoDir, '.git'));
|
|
733
|
+
const quietFor = Date.now() - lastWrite;
|
|
734
|
+
if (quietFor >= quietMs)
|
|
735
|
+
return true;
|
|
736
|
+
if (Date.now() > giveUpAt)
|
|
737
|
+
throw new Error('an unfinished clone at its path is still being written to');
|
|
738
|
+
await new Promise((resolve) => setTimeout(resolve, Math.min(Math.max(quietMs - quietFor, 25), 1_000)));
|
|
739
|
+
}
|
|
740
|
+
}
|
|
741
|
+
/**
|
|
742
|
+
* Tell the rest of the process a working copy was set aside. The listener
|
|
743
|
+
* releases, a second time, the work queued against the copy that went;
|
|
744
|
+
* skipped, those rows would be committed into the clone that replaces it.
|
|
745
|
+
* So it is tried twice before the failure is only logged. Never throws
|
|
746
|
+
* into the phase: a listener that fails must not stop a boot.
|
|
747
|
+
*/
|
|
748
|
+
async announceDiscarded(id) {
|
|
749
|
+
for (let attempt = 1;; attempt++) {
|
|
607
750
|
try {
|
|
608
|
-
this.opts.
|
|
751
|
+
await this.opts.onCloneDiscarded?.(id);
|
|
752
|
+
return;
|
|
609
753
|
}
|
|
610
754
|
catch (err) {
|
|
611
|
-
|
|
755
|
+
if (attempt < 2)
|
|
756
|
+
continue;
|
|
757
|
+
startupLog.warn(`could not finish setting the working copy "${id}" aside:`, {
|
|
612
758
|
detail: this.redact(err instanceof Error ? err.message : String(err)),
|
|
613
759
|
});
|
|
760
|
+
return;
|
|
614
761
|
}
|
|
615
|
-
await git(this.opts.gitRunner, repoDir, ['config', 'core.longpaths', 'true']);
|
|
616
|
-
await stampIdentity(this.opts.gitRunner, repoDir);
|
|
617
|
-
return repoDir;
|
|
618
762
|
}
|
|
763
|
+
}
|
|
764
|
+
async cloneFresh(branch, workspaceDir, repoDir) {
|
|
765
|
+
await fs.mkdir(workspaceDir, { recursive: true });
|
|
766
|
+
// Only what cannot be a clone is cleared out of the way: a folder that
|
|
767
|
+
// gained a `.git` since the caller looked is somebody's clone, and git
|
|
768
|
+
// refuses it below rather than this removing it.
|
|
769
|
+
if (!(await fs.access(path.join(repoDir, '.git')).then(() => true, () => false))) {
|
|
770
|
+
await fs.rm(repoDir, { recursive: true, force: true });
|
|
771
|
+
}
|
|
772
|
+
await git(this.opts.gitRunner, workspaceDir, ['clone', '-b', branch, this.opts.kbRepoUrl(), repoDir]);
|
|
773
|
+
// Said as soon as the clone is there, before its configuration: if a
|
|
774
|
+
// command below fails, the clone stays on disk, and the retry finds it
|
|
775
|
+
// and never comes back through here.
|
|
776
|
+
try {
|
|
777
|
+
this.opts.onCloneCreated?.(workspaceIdForBranch(branch));
|
|
778
|
+
}
|
|
779
|
+
catch (err) {
|
|
780
|
+
startupLog.warn(`could not announce the fresh working copy for "${branch}":`, {
|
|
781
|
+
detail: this.redact(err instanceof Error ? err.message : String(err)),
|
|
782
|
+
});
|
|
783
|
+
}
|
|
784
|
+
await git(this.opts.gitRunner, repoDir, ['config', 'core.longpaths', 'true']);
|
|
785
|
+
await stampIdentity(this.opts.gitRunner, repoDir);
|
|
786
|
+
return repoDir;
|
|
787
|
+
}
|
|
788
|
+
async updateClone(branch, repoDir) {
|
|
619
789
|
await git(this.opts.gitRunner, repoDir, ['fetch', 'origin', branch]);
|
|
620
790
|
const local = (await git(this.opts.gitRunner, repoDir, ['rev-parse', 'HEAD'])).trim();
|
|
621
791
|
const remote = (await git(this.opts.gitRunner, repoDir, ['rev-parse', `origin/${branch}`])).trim();
|
|
@@ -628,6 +798,29 @@ export class KbStartupRunner {
|
|
|
628
798
|
}
|
|
629
799
|
return repoDir;
|
|
630
800
|
}
|
|
801
|
+
/**
|
|
802
|
+
* Whether the repository at `repoDir` has a commit checked out. False for a
|
|
803
|
+
* clone that was cut short.
|
|
804
|
+
*
|
|
805
|
+
* False ONLY when git itself answered that there is none: with `--quiet
|
|
806
|
+
* --verify` that is exit status 1 and nothing else. A git that timed out,
|
|
807
|
+
* could not be started, or could not read the repository has not said the
|
|
808
|
+
* working copy is empty, and "could not tell" is no reason to move
|
|
809
|
+
* someone's work: that failure is thrown, and stops the start with the
|
|
810
|
+
* branch named.
|
|
811
|
+
*/
|
|
812
|
+
async hasCommit(repoDir) {
|
|
813
|
+
try {
|
|
814
|
+
await git(this.opts.gitRunner, repoDir, ['rev-parse', '--quiet', '--verify', 'HEAD^{commit}']);
|
|
815
|
+
return true;
|
|
816
|
+
}
|
|
817
|
+
catch (err) {
|
|
818
|
+
const ran = err instanceof Error ? err.cause : undefined;
|
|
819
|
+
if (ran instanceof GitRunError && !ran.timedOut && ran.exitCode === 1)
|
|
820
|
+
return false;
|
|
821
|
+
throw err;
|
|
822
|
+
}
|
|
823
|
+
}
|
|
631
824
|
/** One commit per dirty branch; push; the replica carve-out on rejection. */
|
|
632
825
|
async finalize(h) {
|
|
633
826
|
if (!h.dirty)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"kb-startup-runner.js","sourceRoot":"","sources":["../../../../src/modules/workspace/startup/kb-startup-runner.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"kb-startup-runner.js","sourceRoot":"","sources":["../../../../src/modules/workspace/startup/kb-startup-runner.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workspace.tools.d.ts","sourceRoot":"","sources":["../../../src/modules/workspace/workspace.tools.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAEtD,OAAO,KAAK,EAAE,aAAa,EAAc,MAAM,mCAAmC,CAAC;AAGnF,OAAO,EAIL,KAAK,eAAe,EACrB,MAAM,wBAAwB,CAAC;AAChC,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AACrE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AAiB1E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEtD,OAAO,KAAK,EAA0C,cAAc,EAAE,MAAM,uCAAuC,CAAC;AAIpH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uCAAuC,CAAC;AAkB/E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAK5D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AAKtE,OAAO,EAAE,gBAAgB,EAAsB,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"workspace.tools.d.ts","sourceRoot":"","sources":["../../../src/modules/workspace/workspace.tools.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAEtD,OAAO,KAAK,EAAE,aAAa,EAAc,MAAM,mCAAmC,CAAC;AAGnF,OAAO,EAIL,KAAK,eAAe,EACrB,MAAM,wBAAwB,CAAC;AAChC,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AACrE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AAiB1E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEtD,OAAO,KAAK,EAA0C,cAAc,EAAE,MAAM,uCAAuC,CAAC;AAIpH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uCAAuC,CAAC;AAkB/E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAK5D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AAKtE,OAAO,EAAE,gBAAgB,EAAsB,MAAM,yBAAyB,CAAC;AAmU/E,mFAAmF;AACnF,MAAM,MAAM,SAAS,GAAG,QAAQ,GAAG,WAAW,GAAG,QAAQ,CAAC;AAE1D,2EAA2E;AAC3E,MAAM,MAAM,YAAY,GAAG,SAAS,GAAG,UAAU,GAAG,SAAS,CAAC;AAmX9D,qFAAqF;AACrF,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,kHAAkH;AAClH,MAAM,WAAW,cAAc;IAC7B,SAAS,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAAC;IACzF,mFAAmF;IACnF,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,EAAE,GAAG,OAAO,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAC;CACnH;AAsCD;;;;;;;;GAQG;AACH,wBAAgB,sBAAsB,CACpC,QAAQ,EAAE,aAAa,EACvB,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,cAAc,EACxB,WAAW,EAAE,kBAAkB,EAC/B,UAAU,EAAE,UAAU,EACtB,UAAU,EAAE,iBAAiB,EAC7B,aAAa,EAAE,cAAc,EAC7B,EAAE,EAAE,SAAS,EACb,eAAe,EAAE,eAAe,EAChC,WAAW,EAAE,mBAAmB,EAChC,WAAW,EAAE,YAAY;AACzB;;;;GAIG;AACH,cAAc,CAAC,EAAE,cAAc;AAC/B;;;;;GAKG;AACH,UAAU,CAAC,EAAE,eAAe;AAC5B;;;;;;;GAOG;AACH,OAAO,CAAC,EAAE,gBAAgB,GACzB,IAAI,CAmmFN"}
|
|
@@ -243,14 +243,14 @@ function assertNotDocumentEdit(readers, path) {
|
|
|
243
243
|
*
|
|
244
244
|
* Costs one read of the existing file, and only for readers that ask the
|
|
245
245
|
* question. A path with nothing at it is a CREATE: there is nothing to destroy.
|
|
246
|
-
*
|
|
247
|
-
* `edit_file`
|
|
248
|
-
*
|
|
246
|
+
* For the tools that REPLACE a file without needing what it held (`write_file`,
|
|
247
|
+
* `write_files`); `edit_file` holds the bytes already and asks
|
|
248
|
+
* `assertBytesTextEditable` of each reading it takes.
|
|
249
249
|
*/
|
|
250
250
|
async function assertNotBinaryOverwrite(readers, path, fs) {
|
|
251
251
|
const reader = readers.readerFor(path);
|
|
252
252
|
if (reader.editRefusalForExisting === undefined)
|
|
253
|
-
return
|
|
253
|
+
return;
|
|
254
254
|
let existing;
|
|
255
255
|
try {
|
|
256
256
|
existing = asBytes(await fs.readFile(path));
|
|
@@ -261,13 +261,21 @@ async function assertNotBinaryOverwrite(readers, path, fs) {
|
|
|
261
261
|
// permissions, I/O — means the existing content could not be inspected:
|
|
262
262
|
// propagate it rather than let the write destroy bytes the gate never saw.
|
|
263
263
|
if (isAbsence(err))
|
|
264
|
-
return
|
|
264
|
+
return; // nothing there yet
|
|
265
265
|
throw err;
|
|
266
266
|
}
|
|
267
|
-
|
|
267
|
+
assertBytesTextEditable(readers, path, existing);
|
|
268
|
+
}
|
|
269
|
+
/**
|
|
270
|
+
* The same refusal, over bytes the caller already holds. Split out so a tool
|
|
271
|
+
* that reads the file more than once — `edit_file`, before the lock and again
|
|
272
|
+
* under it — judges EVERY reading with the one rule, and the bytes it replaces
|
|
273
|
+
* are always bytes this gate has seen.
|
|
274
|
+
*/
|
|
275
|
+
function assertBytesTextEditable(readers, path, existing) {
|
|
276
|
+
const refusal = readers.readerFor(path).editRefusalForExisting?.(existing, path) ?? null;
|
|
268
277
|
if (refusal !== null)
|
|
269
278
|
throw binaryNotWritable('binary', refusal);
|
|
270
|
-
return existing;
|
|
271
279
|
}
|
|
272
280
|
/**
|
|
273
281
|
* The `mode` input, on both write tools. Stated on the input itself and not
|
|
@@ -2020,21 +2028,50 @@ uploads) {
|
|
|
2020
2028
|
const path = a.path;
|
|
2021
2029
|
const oldStr = a.old_string;
|
|
2022
2030
|
const newStr = a.new_string;
|
|
2023
|
-
//
|
|
2024
|
-
//
|
|
2025
|
-
|
|
2026
|
-
|
|
2027
|
-
|
|
2028
|
-
|
|
2029
|
-
|
|
2030
|
-
|
|
2031
|
-
|
|
2032
|
-
|
|
2033
|
-
|
|
2031
|
+
// Everything the tool decides about ONE reading of the file: may these
|
|
2032
|
+
// bytes be edited as text at all, is `old_string` there, is it unique,
|
|
2033
|
+
// and what the file becomes. One function, because the file is read
|
|
2034
|
+
// twice — before the lock and under it — and a reading that skipped any
|
|
2035
|
+
// of these questions would let bytes land that were never judged.
|
|
2036
|
+
// `split`/`join`, not `String.replace`, which reads `$&`, `$'`, `` $` ``
|
|
2037
|
+
// and `$$` in `new_string` as patterns and writes something the caller
|
|
2038
|
+
// never sent.
|
|
2039
|
+
const edit = (existing) => {
|
|
2040
|
+
assertBytesTextEditable(readers, path, existing);
|
|
2041
|
+
const text = asText(existing);
|
|
2042
|
+
const pieces = oldStr ? text.split(oldStr) : [text];
|
|
2043
|
+
const count = pieces.length - 1;
|
|
2044
|
+
if (count === 0)
|
|
2045
|
+
throw new ToolError('old_string not found in the file.', 400);
|
|
2046
|
+
if (count > 1 && a.replace_all !== true) {
|
|
2047
|
+
throw new ToolError(`old_string appears ${count} times — add more context to make it unique, or set replace_all.`, 400);
|
|
2048
|
+
}
|
|
2049
|
+
return { updated: pieces.join(newStr), replaced: count };
|
|
2050
|
+
};
|
|
2051
|
+
// A first verdict before any lock is taken, so an ordinary refusal costs
|
|
2052
|
+
// no lock cycle. It is a verdict about a file anyone may still change.
|
|
2053
|
+
let result = edit(await orNotFound(path, async () => asBytes(await fs.readFile(path))));
|
|
2054
|
+
// The one the answer carries is taken again with the path's lock HELD,
|
|
2055
|
+
// over the bytes read there (`write: true` guarantees the locking
|
|
2056
|
+
// filesystem): read, verdict and write are one step nobody can get
|
|
2057
|
+
// between. Taken before the lock only, two callers replacing the same
|
|
2058
|
+
// text — two runners claiming a work item by filling its empty owner
|
|
2059
|
+
// field — were BOTH told their edit landed, and the second silently
|
|
2060
|
+
// overwrote the first. A filesystem without the method has no lock to
|
|
2061
|
+
// read under, so the first verdict stands.
|
|
2062
|
+
const locking = fs;
|
|
2063
|
+
if (typeof locking.rewriteFile === 'function') {
|
|
2064
|
+
await locking.rewriteFile(path, (current) => {
|
|
2065
|
+
if (current === null)
|
|
2066
|
+
throw notFound(path);
|
|
2067
|
+
result = edit(current);
|
|
2068
|
+
return result.updated;
|
|
2069
|
+
});
|
|
2070
|
+
}
|
|
2071
|
+
else {
|
|
2072
|
+
await fs.writeFile(path, result.updated);
|
|
2034
2073
|
}
|
|
2035
|
-
|
|
2036
|
-
await fs.writeFile(path, updated);
|
|
2037
|
-
return { path, replaced: a.replace_all === true ? count : 1, ...(await saveWarnings(ctx, path, updated)) };
|
|
2074
|
+
return { path, replaced: result.replaced, ...(await saveWarnings(ctx, path, result.updated)) };
|
|
2038
2075
|
},
|
|
2039
2076
|
});
|
|
2040
2077
|
mount({
|