clinkx 1.1.2 → 1.2.0
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/CHANGELOG.md +31 -0
- package/README.md +63 -12
- package/clinkx-workflows/dist/allowed-roots.js +2 -0
- package/clinkx-workflows/dist/allowed-roots.js.map +1 -1
- package/clinkx-workflows/dist/child-env.d.ts +3 -1
- package/clinkx-workflows/dist/child-env.js +6 -2
- package/clinkx-workflows/dist/child-env.js.map +1 -1
- package/clinkx-workflows/dist/config.d.ts +28 -5
- package/clinkx-workflows/dist/config.js +137 -20
- package/clinkx-workflows/dist/config.js.map +1 -1
- package/clinkx-workflows/dist/contained-file.js +9 -0
- package/clinkx-workflows/dist/contained-file.js.map +1 -1
- package/clinkx-workflows/dist/dashboard/session-log-identity.js +2 -1
- package/clinkx-workflows/dist/dashboard/session-log-identity.js.map +1 -1
- package/clinkx-workflows/dist/root-path-validation.d.ts +12 -0
- package/clinkx-workflows/dist/root-path-validation.js +63 -0
- package/clinkx-workflows/dist/root-path-validation.js.map +1 -0
- package/clinkx-workflows/dist/rosters.d.ts +1 -0
- package/clinkx-workflows/dist/rosters.js +16 -6
- package/clinkx-workflows/dist/rosters.js.map +1 -1
- package/clinkx-workflows/dist/server.js +5 -2
- package/clinkx-workflows/dist/server.js.map +1 -1
- package/clinkx-workflows/dist/state-schema.d.ts +13 -0
- package/clinkx-workflows/dist/state.d.ts +7 -1
- package/clinkx-workflows/dist/state.js +74 -13
- package/clinkx-workflows/dist/state.js.map +1 -1
- package/clinkx-workflows/dist/workflow-completion.d.ts +83 -0
- package/clinkx-workflows/dist/workflow-completion.js +250 -0
- package/clinkx-workflows/dist/workflow-completion.js.map +1 -0
- package/clinkx-workflows/dist/workflow-tools.d.ts +4 -3
- package/clinkx-workflows/dist/workflow-tools.js +341 -34
- package/clinkx-workflows/dist/workflow-tools.js.map +1 -1
- package/dist/allowed-roots.d.ts +1 -1
- package/dist/allowed-roots.js +124 -14
- package/dist/allowed-roots.js.map +1 -1
- package/dist/context-builder/config.d.ts +1 -0
- package/dist/context-builder/config.js +21 -9
- package/dist/context-builder/config.js.map +1 -1
- package/dist/context-builder/mutation-lock.d.ts +4 -0
- package/dist/context-builder/mutation-lock.js +7 -1
- package/dist/context-builder/mutation-lock.js.map +1 -1
- package/dist/context-builder/storage.d.ts +10 -2
- package/dist/context-builder/storage.js +213 -16
- package/dist/context-builder/storage.js.map +1 -1
- package/dist/dashboard-cli.d.ts +6 -0
- package/dist/dashboard-cli.js +8 -29
- package/dist/dashboard-cli.js.map +1 -1
- package/dist/registry.d.ts +1 -1
- package/dist/registry.js +5 -1
- package/dist/registry.js.map +1 -1
- package/dist/server.js +12 -5
- package/dist/server.js.map +1 -1
- package/docs/configuration.md +157 -12
- package/docs/security.md +3 -0
- package/package.json +1 -1
- package/scripts/provider-doctor-core.mjs +21 -5
|
@@ -98,9 +98,18 @@ async function readOpenedContained(realTarget, realRoots, options, exactRequeste
|
|
|
98
98
|
if (requireRegular && !stats.isFile()) {
|
|
99
99
|
throw new ContainedFilePolicyError(`Path is not a regular file: ${realTarget}`);
|
|
100
100
|
}
|
|
101
|
+
if (requireRegular && stats.nlink === 0n) {
|
|
102
|
+
throw new ContainedFileChangedError(`File changed while it was being read: ${realTarget}`);
|
|
103
|
+
}
|
|
101
104
|
options.afterOpen?.();
|
|
102
105
|
const openedRealPath = await verifyDescriptorPath(fh.fd, realTarget);
|
|
103
106
|
if (openedRealPath === undefined) {
|
|
107
|
+
// Atomic replacement may retire the opened inode before the first path
|
|
108
|
+
// check. Only a descriptor-proven unlink is a retryable change; unknown
|
|
109
|
+
// containment/path failures keep their original fail-closed policy error.
|
|
110
|
+
if (requireRegular && (await fh.stat()).nlink === 0) {
|
|
111
|
+
throw new ContainedFileChangedError(`File changed while it was being read: ${realTarget}`);
|
|
112
|
+
}
|
|
104
113
|
throw new ContainedFilePolicyError(`Opened file descriptor containment could not be verified: ${realTarget}`);
|
|
105
114
|
}
|
|
106
115
|
if (!realRoots.some((root) => containsPath(root, openedRealPath))) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contained-file.js","sourceRoot":"","sources":["../src/contained-file.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EACL,SAAS,IAAI,WAAW,EACxB,SAAS,EACT,SAAS,EACT,YAAY,GAEb,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AACxC,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AAuCzE;;;;GAIG;AACH,MAAM,OAAO,wBAAyB,SAAQ,KAAK;IACjD,qEAAqE;IACrE,4EAA4E;IAC5E,6CAA6C;IACpC,MAAM,CAAwC;IAEvD,YAAY,OAAe,EAAE,MAAkC;QAC7D,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,0BAA0B,CAAC;QACvC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;CACF;AAED,MAAM,OAAO,yBAA0B,SAAQ,wBAAwB;IACrE,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,2BAA2B,CAAC;IAC1C,CAAC;CACF;AAED,MAAM,OAAO,0BAA2B,SAAQ,wBAAwB;IAC7D,IAAI,CAAqB;IACzB,WAAW,CAAuC;IAE3D,YACE,OAAe,EACf,IAAa,EACb,WAAsC;QAEtC,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,4BAA4B,CAAC;QACzC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;IACjC,CAAC;CACF;AAgDD,SAAS,oBAAoB,CAAC,KAAkB;IAC9C,OAAO;QACL,GAAG,EAAE,KAAK,CAAC,GAAG;QACd,GAAG,EAAE,KAAK,CAAC,GAAG;QACd,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,KAAK,EAAE,KAAK,CAAC,KAAK;KACnB,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,8BAA8B,CAC5C,IAA8B,EAC9B,KAA+B;IAE/B,OAAO,IAAI,CAAC,GAAG,KAAK,KAAK,CAAC,GAAG;QAC3B,IAAI,CAAC,GAAG,KAAK,KAAK,CAAC,GAAG;QACtB,IAAI,CAAC,OAAO,KAAK,KAAK,CAAC,OAAO;QAC9B,IAAI,CAAC,OAAO,KAAK,KAAK,CAAC,OAAO;QAC9B,IAAI,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI;QACxB,IAAI,CAAC,KAAK,KAAK,KAAK,CAAC,KAAK,CAAC;AAC/B,CAAC;AAED;;;GAGG;AACH,KAAK,UAAU,mBAAmB,CAChC,UAAkB,EAClB,SAA4B,EAC5B,OAA6B,EAC7B,kBAA2B;IAE3B,sEAAsE;IACtE,yEAAyE;IACzE,qEAAqE;IACrE,8EAA8E;IAC9E,+EAA+E;IAC/E,2EAA2E;IAC3E,+EAA+E;IAC/E,0EAA0E;IAC1E,8EAA8E;IAC9E,qCAAqC;IACrC,MAAM,cAAc,GAAG,OAAO,CAAC,cAAc,KAAK,IAAI,CAAC;IACvD,MAAM,KAAK,GAAG,WAAW,CAAC,QAAQ;QAChC,CAAC,WAAW,CAAC,UAAU,IAAI,CAAC,CAAC;QAC7B,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,UAAU,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACvD,MAAM,oBAAoB,GAAG,OAAO,CAAC,sBAAsB;QACzD,2BAA2B,CAAC;IAC9B,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC;IACvB,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;IACzC,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;QAC9C,MAAM,WAAW,GAAG,oBAAoB,CAAC,KAAK,CAAC,CAAC;QAChD,4EAA4E;QAC5E,6EAA6E;QAC7E,0EAA0E;QAC1E,6EAA6E;QAC7E,2EAA2E;QAC3E,mBAAmB;QACnB,IAAI,cAAc,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC;YACtC,MAAM,IAAI,wBAAwB,CAChC,+BAA+B,UAAU,EAAE,CAC5C,CAAC;QACJ,CAAC;QACD,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC;QACtB,MAAM,cAAc,GAAG,MAAM,oBAAoB,CAAC,EAAE,CAAC,EAAE,EAAE,UAAU,CAAC,CAAC;QACrE,IAAI,cAAc,KAAK,SAAS,EAAE,CAAC;YACjC,MAAM,IAAI,wBAAwB,CAChC,6DAA6D,UAAU,EAAE,CAC1E,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,YAAY,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC,EAAE,CAAC;YAClE,MAAM,IAAI,wBAAwB,CAChC,4CAA4C,UAAU,EAAE,CACzD,CAAC;QACJ,CAAC;QACD,IACE,kBAAkB,KAAK,SAAS;YAChC,cAAc,KAAK,kBAAkB,EACrC,CAAC;YACD,MAAM,IAAI,wBAAwB,CAChC,iDAAiD,UAAU,EAAE,CAC9D,CAAC;QACJ,CAAC;QACD,MAAM,eAAe,GAAG,OAAO,CAAC,QAAQ,KAAK,SAAS;YACpD,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC;QACxC,4EAA4E;QAC5E,0EAA0E;QAC1E,4EAA4E;QAC5E,oBAAoB;QACpB,IAAI,KAAyB,CAAC;QAC9B,IAAI,aAAa,GAAG,KAAK,CAAC;QAC1B,IAAI,CAAC,eAAe,IAAI,CAAC,OAAO,CAAC,SAAS,KAAK,IAAI,IAAI,OAAO,CAAC,WAAW,KAAK,IAAI,CAAC,EAAE,CAAC;YACrF,KAAK,GAAG,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;YAC/C,IAAI,MAAM,GAAG,CAAC,CAAC;YACf,OAAO,MAAM,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;gBAC7B,MAAM,KAAK,GAAG,MAAM,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,GAAG,MAAM,EAAE,IAAI,CAAC,CAAC;gBACxE,IAAI,KAAK,CAAC,SAAS,KAAK,CAAC;oBAAE,MAAM;gBACjC,MAAM,IAAI,KAAK,CAAC,SAAS,CAAC;YAC5B,CAAC;YACD,MAAM,KAAK,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;YACpC,aAAa,GAAG,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC;YACjE,IAAI,MAAM,CAAC,MAAM,CAAC,KAAK,KAAK,CAAC,IAAI,EAAE,CAAC;gBAClC,KAAK,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;YACpC,CAAC;QACH,CAAC;QACD,MAAM,UAAU,GAAG,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;QACnD,IACE,KAAK,KAAK,SAAS;YACnB,CACE,UAAU,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI;gBAC9B,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,KAAK,CAAC,IAAI;gBACvC,aAAa,CACd,EACD,CAAC;YACD,MAAM,IAAI,yBAAyB,CACjC,yCAAyC,UAAU,EAAE,CACtD,CAAC;QACJ,CAAC;QACD,MAAM,gBAAgB,GAAG,oBAAoB,CAAC,UAAU,CAAC,CAAC;QAC1D,IACE,CAAC,8BAA8B,CAAC,WAAW,EAAE,gBAAgB,CAAC;YAC9D,gBAAgB,CAAC,KAAK,KAAK,EAAE,EAC7B,CAAC;YACD,MAAM,IAAI,yBAAyB,CACjC,yCAAyC,UAAU,EAAE,CACtD,CAAC;QACJ,CAAC;QACD,4EAA4E;QAC5E,6EAA6E;QAC7E,uEAAuE;QACvE,6EAA6E;QAC7E,wEAAwE;QACxE,oDAAoD;QACpD,MAAM,OAAO,CAAC,WAAW,EAAE,CAAC;YAC1B,WAAW,EAAE,gBAAgB;YAC7B,eAAe,EAAE,KAAK,IAAI,EAAE,CAAC,cAAc;SAC5C,CAAC,CAAC;QACH,MAAM,UAAU,GAAG,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;QACnD,MAAM,gBAAgB,GAAG,oBAAoB,CAAC,UAAU,CAAC,CAAC;QAC1D,MAAM,aAAa,GAAG,MAAM,oBAAoB,CAAC,EAAE,CAAC,EAAE,EAAE,UAAU,CAAC,CAAC;QACpE,IACE,CAAC,8BAA8B,CAAC,WAAW,EAAE,gBAAgB,CAAC;YAC9D,gBAAgB,CAAC,KAAK,KAAK,EAAE;YAC7B,aAAa,KAAK,SAAS;YAC3B,aAAa,KAAK,cAAc;YAChC,CACE,kBAAkB,KAAK,SAAS;gBAChC,aAAa,KAAK,kBAAkB,CACrC;YACD,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,YAAY,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC,EAC5D,CAAC;YACD,MAAM,IAAI,yBAAyB,CACjC,yCAAyC,UAAU,EAAE,CACtD,CAAC;QACJ,CAAC;QACD,IAAI,eAAe,EAAE,CAAC;YACpB,MAAM,IAAI,0BAA0B,CAClC,oBAAoB,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,UAAU,EAAE,EACxE,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,EACvB,gBAAgB,CACjB,CAAC;QACJ,CAAC;QACD,MAAM,MAAM,GAAG;YACb,IAAI,EAAE,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC;YAC7B,QAAQ,EAAE,aAAa;YACvB,GAAG,CAAC,OAAO,CAAC,WAAW,KAAK,IAAI;gBAC9B,CAAC,CAAC,EAAE,OAAO,EAAE,KAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE;gBACvC,CAAC,CAAC,EAAE,CAAC;YACP,GAAG,CAAC,OAAO,CAAC,SAAS,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACjD,CAAC;QACF,4EAA4E;QAC5E,uEAAuE;QACvE,sDAAsD;QACtD,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,aAAa,EAAE;YAC3C,YAAY,EAAE,KAAK;YACnB,UAAU,EAAE,KAAK;YACjB,KAAK,EAAE,gBAAgB;YACvB,QAAQ,EAAE,KAAK;SAChB,CAAC,CAAC;QACH,OAAO,MAA6B,CAAC;IACvC,CAAC;YAAS,CAAC;QACT,MAAM,EAAE,CAAC,KAAK,EAAE,CAAC;IACnB,CAAC;AACH,CAAC;AAED;;;;;;;;;GASG;AACH,SAAS,oBAAoB,CAAC,QAAgB,EAAE,UAAkB;IAChE,MAAM,GAAG,GAAG,QAAQ,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;IAC3C,OAAO,CACL,GAAG,KAAK,EAAE;QACV,GAAG,KAAK,IAAI;QACZ,CAAC,GAAG,CAAC,UAAU,CAAC,KAAK,GAAG,EAAE,CAAC;QAC3B,CAAC,UAAU,CAAC,GAAG,CAAC,CACjB,CAAC;AACJ,CAAC;AAED,uEAAuE;AACvE,SAAS,YAAY,CAAC,QAAgB,EAAE,UAAkB;IACxD,OAAO,QAAQ,CAAC,QAAQ,EAAE,UAAU,CAAC,KAAK,EAAE;QAC1C,oBAAoB,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;AAC/C,CAAC;AAED,MAAM,0BAA0B,GAAG,KAAK,CAAC;AACzC,MAAM,4BAA4B,GAAG,KAAK,CAAC;AAE3C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmDG;AACH,MAAM,CAAC,KAAK,UAAU,2BAA2B,CAC/C,EAAU,EACV,YAAqB;IAErB,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;QAC/B,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,IAAI,OAAO,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;YAClE,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,IAAI,CAAC;YACH,MAAM,SAAS,GAAG,YAAY,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;YACpD,MAAM,MAAM,GAAG,SAAS,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;YAC/C,MAAM,KAAK,GAAG,SAAS,CAAC,SAAS,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;YACrD,IAAI,MAAM,CAAC,GAAG,KAAK,KAAK,CAAC,GAAG,IAAI,MAAM,CAAC,GAAG,KAAK,KAAK,CAAC,GAAG;gBAAE,OAAO,SAAS,CAAC;YAC3E,OAAO,SAAS,CAAC;QACnB,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,SAAS,CAAC;QACnB,CAAC;IACH,CAAC;IAED,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;QACjC,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,YAAY,CAAC,iBAAiB,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;YACzD,OAAO,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC;QACxD,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,SAAS,CAAC;QACnB,CAAC;IACH,CAAC;IACD,IAAI,OAAO,CAAC,QAAQ,KAAK,QAAQ;QAAE,OAAO,SAAS,CAAC;IAEpD,OAAO,MAAM,IAAI,OAAO,CAAqB,CAAC,WAAW,EAAE,EAAE;QAC3D,IAAI,KAAK,CAAC;QACV,IAAI,CAAC;YACH,KAAK,GAAG,KAAK,CACX,gBAAgB,EAChB,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,EACvE;gBACE,KAAK,EAAE,KAAK;gBACZ,QAAQ,EAAE,IAAI;gBACd,GAAG,EAAE;oBACH,IAAI,EAAE,+BAA+B;oBACrC,IAAI,EAAE,GAAG;iBACV;gBACD,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC;aAClC,CACF,CAAC;QACJ,CAAC;QAAC,MAAM,CAAC;YACP,WAAW,CAAC,SAAS,CAAC,CAAC;YACvB,OAAO;QACT,CAAC;QACD,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,IAAI,WAAW,GAAG,CAAC,CAAC;QACpB,IAAI,cAAc,GAAG,KAAK,CAAC;QAC3B,IAAI,aAAa,GAAG,KAAK,CAAC;QAC1B,IAAI,OAAO,GAAG,KAAK,CAAC;QACpB,MAAM,SAAS,GAAG,GAAS,EAAE;YAC3B,IAAI,CAAC;gBACH,IAAI,KAAK,CAAC,GAAG,IAAI,IAAI;oBAAE,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;YAC7D,CAAC;YAAC,MAAM,CAAC;gBACP,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACxB,CAAC;QACH,CAAC,CAAC;QACF,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;YAC5B,aAAa,GAAG,IAAI,CAAC;YACrB,SAAS,EAAE,CAAC;QACd,CAAC,EAAE,0BAA0B,CAAC,CAAC;QAC/B,KAAK,CAAC,KAAK,EAAE,CAAC;QACd,MAAM,MAAM,GAAG,CAAC,IAAwB,EAAQ,EAAE;YAChD,IAAI,OAAO;gBAAE,OAAO;YACpB,OAAO,GAAG,IAAI,CAAC;YACf,YAAY,CAAC,KAAK,CAAC,CAAC;YACpB,WAAW,CAAC,IAAI,CAAC,CAAC;QACpB,CAAC,CAAC;QACF,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE;YACzC,IAAI,cAAc;gBAAE,OAAO;YAC3B,IAAI,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC,UAAU,GAAG,4BAA4B,EAAE,CAAC;gBAChF,cAAc,GAAG,IAAI,CAAC;gBACtB,SAAS,EAAE,CAAC;gBACZ,OAAO;YACT,CAAC;YACD,MAAM,IAAI,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QACpC,CAAC,CAAC,CAAC;QACH,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE;YACzC,WAAW,IAAI,KAAK,CAAC,UAAU,CAAC;YAChC,IAAI,WAAW,GAAG,4BAA4B,EAAE,CAAC;gBAC/C,aAAa,GAAG,IAAI,CAAC;gBACrB,SAAS,EAAE,CAAC;YACd,CAAC;QACH,CAAC,CAAC,CAAC;QACH,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC;QAC7C,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,MAAM,EAAE,EAAE;YAC7B,IAAI,MAAM,KAAK,CAAC,IAAI,cAAc,IAAI,aAAa,EAAE,CAAC;gBACpD,MAAM,CAAC,SAAS,CAAC,CAAC;gBAClB,OAAO;YACT,CAAC;YACD,MAAM,KAAK,GAAG,MAAM;iBACjB,KAAK,CAAC,IAAI,CAAC;iBACX,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;iBACzC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;iBACxC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;iBAC9B,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC;YACjE,MAAM,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;QACpD,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,yBAAyB,CAC7C,OAAe,EACf,OAAe,EACf,UAAgC,EAAE;IAElC,MAAM,SAAS,GAAG,OAAO,CAAC,cAAc,IAAI,sBAAsB,CAAC;IACnE,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,MAAM,CAAC;IAC9C,IAAI,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QACxB,MAAM,IAAI,wBAAwB,CAChC,GAAG,SAAS,4BAA4B,SAAS,EAAE,CACpD,CAAC;IACJ,CAAC;IACD,MAAM,QAAQ,GAAG,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;IAChD,MAAM,UAAU,GAAG,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC9C,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,UAAU,CAAC,EAAE,CAAC;QACxC,MAAM,IAAI,wBAAwB,CAAC,GAAG,SAAS,gBAAgB,SAAS,EAAE,CAAC,CAAC;IAC9E,CAAC;IACD,MAAM,IAAI,GAAG,QAAQ,CAAC,UAAU,CAAC,CAAC;IAClC,IAAI,IAAI,KAAK,EAAE,EAAE,CAAC;QAChB,MAAM,IAAI,wBAAwB,CAAC,GAAG,SAAS,wBAAwB,CAAC,CAAC;IAC3E,CAAC;IAED,6EAA6E;IAC7E,mEAAmE;IACnE,MAAM,UAAU,GAAG,YAAY,CAAC,OAAO,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC,CAAC;IAC3D,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;IAC7C,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,UAAU,CAAC,EAAE,CAAC;QACxC,MAAM,IAAI,wBAAwB,CAAC,GAAG,SAAS,gBAAgB,SAAS,EAAE,CAAC,CAAC;IAC9E,CAAC;IACD,IAAI,CAAC;QACH,OAAO,MAAM,mBAAmB,CAC9B,UAAU,EACV,CAAC,QAAQ,CAAC,EACV,OAAO,EACP,OAAO,CAAC,yBAAyB,KAAK,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CACpE,CAAC;IACJ,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAK,GAA6B,EAAE,IAAI,KAAK,OAAO,EAAE,CAAC;YACrD,MAAM,IAAI,wBAAwB,CAChC,GAAG,SAAS,kCAAkC,CAC/C,CAAC;QACJ,CAAC;QACD,MAAM,GAAG,CAAC;IACZ,CAAC;AACH,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,yBAAyB,CAC7C,YAA+B,EAC/B,UAAkB,EAClB,UAAgC,EAAE;IAElC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC5B,MAAM,IAAI,wBAAwB,CAAC,0BAA0B,UAAU,EAAE,CAAC,CAAC;IAC7E,CAAC;IACD,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC9B,MAAM,IAAI,wBAAwB,CAChC,sDAAsD,CACvD,CAAC;IACJ,CAAC;IACD,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IACvC,MAAM,MAAM,GAAG,OAAO,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;IACzC,MAAM,IAAI,GAAG,QAAQ,CAAC,UAAU,CAAC,CAAC;IAClC,IAAI,IAAI,KAAK,EAAE,EAAE,CAAC;QAChB,MAAM,IAAI,wBAAwB,CAAC,+BAA+B,UAAU,EAAE,CAAC,CAAC;IAClF,CAAC;IACD,IAAI,UAAkB,CAAC;IACvB,IAAI,CAAC;QACH,UAAU,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;IACpC,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,wBAAwB,CAChC,yCAAyC,MAAM,EAAE,CAClD,CAAC;IACJ,CAAC;IACD,uEAAuE;IACvE,4EAA4E;IAC5E,+CAA+C;IAC/C,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;IAE7C,MAAM,SAAS,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QAC1C,IAAI,QAAgB,CAAC;QACrB,IAAI,CAAC;YACH,QAAQ,GAAG,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;QACzC,CAAC;QAAC,MAAM,CAAC;YACP,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;QAC3B,CAAC;QACD,OAAO,QAAQ,CAAC;IAClB,CAAC,CAAC,CAAC;IACH,MAAM,OAAO,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAC1C,oBAAoB,CAAC,QAAQ,EAAE,UAAU,CAAC,CAC3C,CAAC;IACF,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,4EAA4E;QAC5E,6EAA6E;QAC7E,0EAA0E;QAC1E,6EAA6E;QAC7E,4EAA4E;QAC5E,uEAAuE;QACvE,MAAM,WAAW,GAAG,SAAS,CAAC,IAAI,CAChC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,UAAU,CAAC,KAAK,EAAE,CACpD,CAAC;QACF,IAAI,WAAW,EAAE,CAAC;YAChB,MAAM,IAAI,wBAAwB,CAChC,SAAS,UAAU,iFAAiF,EACpG,uBAAuB,CACxB,CAAC;QACJ,CAAC;QACD,MAAM,IAAI,wBAAwB,CAChC,SAAS,UAAU,mCAAmC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAChF,uBAAuB,CACxB,CAAC;IACJ,CAAC;IAED,IAAI,CAAC;QACH,OAAO,MAAM,mBAAmB,CAAC,UAAU,EAAE,SAAS,EAAE,OAAO,EAC7D,OAAO,CAAC,yBAAyB,KAAK,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IACzE,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,sEAAsE;QACtE,IAAK,GAA6B,EAAE,IAAI,KAAK,OAAO,EAAE,CAAC;YACrD,MAAM,IAAI,wBAAwB,CAChC,yCAAyC,UAAU,EAAE,CACtD,CAAC;QACJ,CAAC;QACD,MAAM,GAAG,CAAC;IACZ,CAAC;AACH,CAAC"}
|
|
1
|
+
{"version":3,"file":"contained-file.js","sourceRoot":"","sources":["../src/contained-file.ts"],"names":[],"mappings":"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"}
|
|
@@ -50,7 +50,8 @@ export async function readSessionLogGeneration(parentDir) {
|
|
|
50
50
|
const path = join(parentDir, SESSION_LOG_GENERATION_FILENAME);
|
|
51
51
|
let handle;
|
|
52
52
|
try {
|
|
53
|
-
|
|
53
|
+
// Nonblocking open lets the regular-file guard reject a FIFO without waiting for a writer.
|
|
54
|
+
handle = await open(path, fsConstants.O_RDONLY | (fsConstants.O_NOFOLLOW ?? 0) | (fsConstants.O_NONBLOCK ?? 0));
|
|
54
55
|
}
|
|
55
56
|
catch (error) {
|
|
56
57
|
return error.code === "ENOENT"
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session-log-identity.js","sourceRoot":"","sources":["../../src/dashboard/session-log-identity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,SAAS,IAAI,WAAW,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAE7C,MAAM,CAAC,MAAM,+BAA+B,GAAG,yBAAkC,CAAC;AAElF,MAAM,8BAA8B,GAAG,qBAAqB,CAAC;AAC7D,MAAM,4BAA4B,GAAG,EAAE,CAAC;AAOxC;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,0BAA0B,CAC9C,SAAiB,EACjB,WAA2B,GAAG,EAAE,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC;IAEtE,oBAAoB,CAAC,SAAS,CAAC,CAAC;IAChC,MAAM,UAAU,GAAG,QAAQ,EAAE,CAAC;IAC9B,IAAI,CAAC,8BAA8B,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;QACrD,MAAM,IAAI,SAAS,CAAC,mCAAmC,CAAC,CAAC;IAC3D,CAAC;IACD,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,EAAE,+BAA+B,CAAC,CAAC;IAC9D,MAAM,MAAM,GAAG,MAAM,IAAI,CACvB,IAAI,EACJ,WAAW,CAAC,QAAQ;QAClB,WAAW,CAAC,OAAO;QACnB,WAAW,CAAC,MAAM;QAClB,CAAC,WAAW,CAAC,UAAU,IAAI,CAAC,CAAC,EAC/B,KAAK,CACN,CAAC;IACF,IAAI,SAAS,GAAG,KAAK,CAAC;IACtB,IAAI,CAAC;QACH,MAAM,MAAM,CAAC,SAAS,CAAC,GAAG,UAAU,IAAI,EAAE,MAAM,CAAC,CAAC;QAClD,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;QACpB,MAAM,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC1B,SAAS,GAAG,IAAI,CAAC;QACjB,OAAO,UAAU,CAAC;IACpB,CAAC;YAAS,CAAC;QACT,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;QAC5C,IAAI,CAAC,SAAS;YAAE,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;IACzE,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAC5C,SAAiB;IAEjB,IAAI,CAAC;QACH,oBAAoB,CAAC,SAAS,CAAC,CAAC;IAClC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC;IACjC,CAAC;IACD,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,EAAE,+BAA+B,CAAC,CAAC;IAC9D,IAAI,MAAwC,CAAC;IAC7C,IAAI,CAAC;QACH,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,EAAE,WAAW,CAAC,QAAQ,GAAG,CAAC,WAAW,CAAC,UAAU,IAAI,CAAC,CAAC,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"session-log-identity.js","sourceRoot":"","sources":["../../src/dashboard/session-log-identity.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export type DirectoryIdentity = {
|
|
2
|
+
lexical: string;
|
|
3
|
+
canonical: string;
|
|
4
|
+
exists: boolean;
|
|
5
|
+
};
|
|
6
|
+
/** Resolve missing suffixes against the nearest existing directory without creating them. */
|
|
7
|
+
export declare function directoryIdentity(root: string, label: string): DirectoryIdentity;
|
|
8
|
+
export declare function isFilesystemRootIdentity(identity: DirectoryIdentity): boolean;
|
|
9
|
+
/** Component-aware: `/a/b` is an ancestor of `/a/b/c` but not of `/a/bc`. */
|
|
10
|
+
export declare function isStrictAncestorPath(ancestor: string, descendant: string): boolean;
|
|
11
|
+
export declare function assertNoRootDelimiter(root: string, label: string): void;
|
|
12
|
+
export declare function assertRootRepresentable(root: string, label: string): DirectoryIdentity;
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import { lstatSync, realpathSync, statSync } from "node:fs";
|
|
2
|
+
import { basename, dirname, join, parse, resolve, sep } from "node:path";
|
|
3
|
+
/** Resolve missing suffixes against the nearest existing directory without creating them. */
|
|
4
|
+
export function directoryIdentity(root, label) {
|
|
5
|
+
const lexical = resolve(root);
|
|
6
|
+
let ancestor = lexical;
|
|
7
|
+
const suffix = [];
|
|
8
|
+
while (true) {
|
|
9
|
+
try {
|
|
10
|
+
lstatSync(ancestor);
|
|
11
|
+
}
|
|
12
|
+
catch (error) {
|
|
13
|
+
if (error.code === "ENOENT" && dirname(ancestor) !== ancestor) {
|
|
14
|
+
suffix.unshift(basename(ancestor));
|
|
15
|
+
ancestor = dirname(ancestor);
|
|
16
|
+
continue;
|
|
17
|
+
}
|
|
18
|
+
throw directoryError(label, root, error);
|
|
19
|
+
}
|
|
20
|
+
try {
|
|
21
|
+
if (!statSync(ancestor).isDirectory()) {
|
|
22
|
+
throw new Error("not a directory");
|
|
23
|
+
}
|
|
24
|
+
return {
|
|
25
|
+
lexical,
|
|
26
|
+
canonical: join(realpathSync(ancestor), ...suffix),
|
|
27
|
+
exists: suffix.length === 0,
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
catch (error) {
|
|
31
|
+
throw directoryError(label, root, error);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
export function isFilesystemRootIdentity(identity) {
|
|
36
|
+
return identity.lexical === parse(identity.lexical).root || identity.canonical === parse(identity.canonical).root;
|
|
37
|
+
}
|
|
38
|
+
/** Component-aware: `/a/b` is an ancestor of `/a/b/c` but not of `/a/bc`. */
|
|
39
|
+
export function isStrictAncestorPath(ancestor, descendant) {
|
|
40
|
+
if (ancestor === descendant)
|
|
41
|
+
return false;
|
|
42
|
+
const prefix = ancestor.endsWith(sep) ? ancestor : `${ancestor}${sep}`;
|
|
43
|
+
return descendant.startsWith(prefix);
|
|
44
|
+
}
|
|
45
|
+
export function assertNoRootDelimiter(root, label) {
|
|
46
|
+
if (root.includes(",")) {
|
|
47
|
+
throw new Error(`${label} must not contain a comma: CLINKX_ALLOWED_ROOTS uses comma-separated paths; choose a comma-free directory`);
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
export function assertRootRepresentable(root, label) {
|
|
51
|
+
assertNoRootDelimiter(root, label);
|
|
52
|
+
const identity = directoryIdentity(root, label);
|
|
53
|
+
if (identity.canonical.includes(",")) {
|
|
54
|
+
throw new Error(`${label} resolves to a path containing a comma: CLINKX_ALLOWED_ROOTS uses comma-separated paths; choose a comma-free directory`);
|
|
55
|
+
}
|
|
56
|
+
return identity;
|
|
57
|
+
}
|
|
58
|
+
function directoryError(label, root, error) {
|
|
59
|
+
const code = error.code;
|
|
60
|
+
const detail = error instanceof Error ? error.message : String(error);
|
|
61
|
+
return new Error(`${label} must resolve to an accessible directory or a missing path beneath one; got ${JSON.stringify(root)} (${code ?? detail})`, { cause: error });
|
|
62
|
+
}
|
|
63
|
+
//# sourceMappingURL=root-path-validation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"root-path-validation.js","sourceRoot":"","sources":["../src/root-path-validation.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,6 +2,7 @@ import { logger as defaultLogger } from "./logger.js";
|
|
|
2
2
|
import { type AvailableRoster, type RosterPreset } from "./roster-contract.js";
|
|
3
3
|
export interface RosterLoaderOptions {
|
|
4
4
|
envPath?: string | undefined;
|
|
5
|
+
clinkxHomeDir?: string | undefined;
|
|
5
6
|
userDir?: string | undefined;
|
|
6
7
|
builtinDir?: string | undefined;
|
|
7
8
|
logger?: typeof defaultLogger | undefined;
|
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Roster preset discovery. Mirrors adapter-registry discipline in the root
|
|
3
3
|
* package (`src/registry.ts`): env path (file or directory) replaces the
|
|
4
|
-
* default locations; otherwise user
|
|
5
|
-
* First-wins by name. Synchronous. No cache:
|
|
6
|
-
* filesystem each call. Presets are tiny.
|
|
4
|
+
* default locations; otherwise user `~/.clinkx/rosters`, then user XDG, then
|
|
5
|
+
* an injected builtin directory. First-wins by name. Synchronous. No cache:
|
|
6
|
+
* list() and load() re-read the filesystem each call. Presets are tiny.
|
|
7
7
|
*/
|
|
8
8
|
import { lstatSync, readdirSync, readFileSync } from "node:fs";
|
|
9
9
|
import { homedir } from "node:os";
|
|
10
10
|
import { basename, join } from "node:path";
|
|
11
|
+
import { getClinkxHome } from "./config.js";
|
|
11
12
|
import { logger as defaultLogger } from "./logger.js";
|
|
12
13
|
import { ROSTER_NAME_PATTERN, RosterPresetSchema, } from "./roster-contract.js";
|
|
13
14
|
function defaultUserDir(env = process.env) {
|
|
@@ -17,8 +18,14 @@ function defaultUserDir(env = process.env) {
|
|
|
17
18
|
}
|
|
18
19
|
export function resolveRosterLoaderOptionsFromEnv(env = process.env) {
|
|
19
20
|
const envPath = env["CLINKX_ROSTERS_PATH"];
|
|
21
|
+
if (envPath != null && envPath !== "") {
|
|
22
|
+
return {
|
|
23
|
+
envPath,
|
|
24
|
+
userDir: defaultUserDir(env),
|
|
25
|
+
};
|
|
26
|
+
}
|
|
20
27
|
return {
|
|
21
|
-
|
|
28
|
+
clinkxHomeDir: join(getClinkxHome(env), "rosters"),
|
|
22
29
|
userDir: defaultUserDir(env),
|
|
23
30
|
};
|
|
24
31
|
}
|
|
@@ -27,7 +34,7 @@ export function createRosterLoader(options = {}) {
|
|
|
27
34
|
const userDir = options.userDir ?? defaultUserDir();
|
|
28
35
|
const discover = () => {
|
|
29
36
|
const claims = new Map();
|
|
30
|
-
for (const spec of sourceSpecs(options.envPath, userDir, options.builtinDir)) {
|
|
37
|
+
for (const spec of sourceSpecs(options.envPath, options.clinkxHomeDir, userDir, options.builtinDir)) {
|
|
31
38
|
ingestPath(spec, claims, log);
|
|
32
39
|
}
|
|
33
40
|
return claims;
|
|
@@ -52,11 +59,14 @@ export function createRosterLoader(options = {}) {
|
|
|
52
59
|
},
|
|
53
60
|
};
|
|
54
61
|
}
|
|
55
|
-
function sourceSpecs(envPath, userDir, builtinDir) {
|
|
62
|
+
function sourceSpecs(envPath, clinkxHomeDir, userDir, builtinDir) {
|
|
56
63
|
if (envPath != null && envPath !== "") {
|
|
57
64
|
return [{ source: "env", path: envPath, allowFile: true }];
|
|
58
65
|
}
|
|
59
66
|
const specs = [];
|
|
67
|
+
if (clinkxHomeDir != null && clinkxHomeDir !== "") {
|
|
68
|
+
specs.push({ source: "user", path: clinkxHomeDir, allowFile: false });
|
|
69
|
+
}
|
|
60
70
|
if (userDir !== "") {
|
|
61
71
|
specs.push({ source: "user", path: userDir, allowFile: false });
|
|
62
72
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rosters.js","sourceRoot":"","sources":["../src/rosters.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAC/D,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,EAAE,MAAM,IAAI,aAAa,EAAE,MAAM,aAAa,CAAC;AACtD,OAAO,EACL,mBAAmB,EACnB,kBAAkB,GAInB,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"rosters.js","sourceRoot":"","sources":["../src/rosters.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAC/D,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,MAAM,IAAI,aAAa,EAAE,MAAM,aAAa,CAAC;AACtD,OAAO,EACL,mBAAmB,EACnB,kBAAkB,GAInB,MAAM,sBAAsB,CAAC;AAyB9B,SAAS,cAAc,CAAC,MAAyB,OAAO,CAAC,GAAG;IAC1D,MAAM,GAAG,GAAG,GAAG,CAAC,iBAAiB,CAAC,CAAC;IACnC,MAAM,OAAO,GAAG,GAAG,IAAI,IAAI,IAAI,GAAG,KAAK,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,CAAC,CAAC;IAC7E,OAAO,IAAI,CAAC,OAAO,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;AAC5C,CAAC;AAED,MAAM,UAAU,iCAAiC,CAC/C,MAAyB,OAAO,CAAC,GAAG;IAEpC,MAAM,OAAO,GAAG,GAAG,CAAC,qBAAqB,CAAC,CAAC;IAC3C,IAAI,OAAO,IAAI,IAAI,IAAI,OAAO,KAAK,EAAE,EAAE,CAAC;QACtC,OAAO;YACL,OAAO;YACP,OAAO,EAAE,cAAc,CAAC,GAAG,CAAC;SAC7B,CAAC;IACJ,CAAC;IACD,OAAO;QACL,aAAa,EAAE,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE,SAAS,CAAC;QAClD,OAAO,EAAE,cAAc,CAAC,GAAG,CAAC;KAC7B,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,UAA+B,EAAE;IAClE,MAAM,GAAG,GAAG,OAAO,CAAC,MAAM,IAAI,aAAa,CAAC;IAC5C,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,cAAc,EAAE,CAAC;IAEpD,MAAM,QAAQ,GAAG,GAAuB,EAAE;QACxC,MAAM,MAAM,GAAG,IAAI,GAAG,EAAiB,CAAC;QACxC,KAAK,MAAM,IAAI,IAAI,WAAW,CAC5B,OAAO,CAAC,OAAO,EACf,OAAO,CAAC,aAAa,EACrB,OAAO,EACP,OAAO,CAAC,UAAU,CACnB,EAAE,CAAC;YACF,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC;QAChC,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC,CAAC;IAEF,OAAO;QACL,IAAI;YACF,MAAM,SAAS,GAAsB,EAAE,CAAC;YACxC,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,QAAQ,EAAE,EAAE,CAAC;gBACvC,IAAI,KAAK,CAAC,KAAK,KAAK,WAAW,EAAE,CAAC;oBAChC,SAAS,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;gBACjD,CAAC;YACH,CAAC;YACD,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC3E,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,IAAI,CAAC,IAAY;YACf,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;gBACpC,OAAO,SAAS,CAAC;YACnB,CAAC;YACD,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YACnC,OAAO,KAAK,EAAE,KAAK,KAAK,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;QACjE,CAAC;KACF,CAAC;AACJ,CAAC;AAED,SAAS,WAAW,CAClB,OAA2B,EAC3B,aAAiC,EACjC,OAAe,EACf,UAA8B;IAE9B,IAAI,OAAO,IAAI,IAAI,IAAI,OAAO,KAAK,EAAE,EAAE,CAAC;QACtC,OAAO,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC7D,CAAC;IACD,MAAM,KAAK,GAAiB,EAAE,CAAC;IAC/B,IAAI,aAAa,IAAI,IAAI,IAAI,aAAa,KAAK,EAAE,EAAE,CAAC;QAClD,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;IACxE,CAAC;IACD,IAAI,OAAO,KAAK,EAAE,EAAE,CAAC;QACnB,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;IAClE,CAAC;IACD,IAAI,UAAU,IAAI,IAAI,IAAI,UAAU,KAAK,EAAE,EAAE,CAAC;QAC5C,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;IACxE,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,UAAU,CACjB,IAAgB,EAChB,MAA0B,EAC1B,GAAyB;IAEzB,MAAM,KAAK,GAAG,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1C,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,IAAI,IAAI,CAAC,MAAM,KAAK,KAAK,EAAE,CAAC;YAC1B,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,+BAA+B,CAAC,CAAC;QACjE,CAAC;QACD,OAAO;IACT,CAAC;IACD,IAAI,KAAK,CAAC,cAAc,EAAE,EAAE,CAAC;QAC3B,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,gCAAgC,CAAC,CAAC;QAChE,OAAO;IACT,CAAC;IACD,IAAI,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;QACxB,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC;QAC/C,OAAO;IACT,CAAC;IACD,IAAI,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC;QACnB,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YACpB,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,EAAE,oCAAoC,CAAC,CAAC;YACzF,OAAO;QACT,CAAC;QACD,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC;QAChD,OAAO;IACT,CAAC;IACD,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,kCAAkC,CAAC,CAAC;AACpE,CAAC;AAED,SAAS,SAAS,CAChB,OAAe,EACf,MAAoB,EACpB,MAA0B,EAC1B,GAAyB;IAEzB,IAAI,OAAiB,CAAC;IACtB,IAAI,CAAC;QACH,OAAO,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC;IACjC,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE,iCAAiC,CAAC,CAAC;QACpE,OAAO;IACT,CAAC;IACD,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IACxE,KAAK,MAAM,QAAQ,IAAI,KAAK,EAAE,CAAC;QAC7B,UAAU,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC;IAC3D,CAAC;AACH,CAAC;AAED,SAAS,UAAU,CACjB,QAAgB,EAChB,MAAoB,EACpB,MAA0B,EAC1B,GAAyB;IAEzB,MAAM,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACpC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;QAChC,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,2CAA2C,CAAC,CAAC;QAC1E,OAAO;IACT,CAAC;IACD,MAAM,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAChD,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QACpC,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,wCAAwC,CAAC,CAAC;QAC7E,OAAO;IACT,CAAC;IACD,IAAI,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;QACrB,OAAO;IACT,CAAC;IAED,MAAM,KAAK,GAAG,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IACzC,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,uBAAuB,CAAC,CAAC;QAC5D,OAAO;IACT,CAAC;IACD,IAAI,KAAK,CAAC,cAAc,EAAE,EAAE,CAAC;QAC3B,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,gCAAgC,CAAC,CAAC;QACrE,OAAO;IACT,CAAC;IACD,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC;QACpB,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,+BAA+B,CAAC,CAAC;QACpE,OAAO;IACT,CAAC;IAED,IAAI,GAAW,CAAC;IAChB,IAAI,CAAC;QACH,GAAG,GAAG,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IACxC,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,4BAA4B,CAAC,CAAC;QACtE,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC,CAAC;QAC3C,OAAO;IACT,CAAC;IAED,IAAI,IAAa,CAAC;IAClB,IAAI,CAAC;QACH,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAY,CAAC;IACpC,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,kCAAkC,CAAC,CAAC;QAC5E,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC,CAAC;QAC3C,OAAO;IACT,CAAC;IAED,MAAM,MAAM,GAAG,kBAAkB,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IAClD,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACpB,GAAG,CAAC,IAAI,CACN,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,EACnD,gCAAgC,CACjC,CAAC;QACF,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC,CAAC;QAC3C,OAAO;IACT,CAAC;IAED,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;AACxE,CAAC;AAED,SAAS,gBAAgB,CAAC,IAAY;IACpC,IAAI,CAAC;QACH,OAAO,SAAS,CAAC,IAAI,CAAC,CAAC;IACzB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC"}
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
import { readdirSync, readFileSync, statSync } from "node:fs";
|
|
9
9
|
import { join, extname } from "node:path";
|
|
10
10
|
import { Server } from "@modelcontextprotocol/sdk/server/index.js";
|
|
11
|
-
import { getChildConfigPath, getRunsDir, hasExplicitWorkspaceRoot, resolveWorkspaceRoot, } from "./config.js";
|
|
11
|
+
import { getChildConfigPath, getRunsDir, hasExplicitWorkspaceRoot, homeTreeStorageRootWarnings, resolveWorkspaceRoot, } from "./config.js";
|
|
12
12
|
import { logger } from "./logger.js";
|
|
13
13
|
import { reconcileStaleRunDirectories } from "./state.js";
|
|
14
14
|
import { ClinkSession, resolveClinkChildRuntime } from "./transport.js";
|
|
@@ -111,6 +111,10 @@ export function createWorkflowServer(options) {
|
|
|
111
111
|
"This root governs plan_file containment and the workflow child process cwd, so workflow behavior " +
|
|
112
112
|
"depends on the cwd the MCP client spawned this server with. Set CLINKX_WORKFLOWS_WORKSPACE_ROOT explicitly.");
|
|
113
113
|
}
|
|
114
|
+
const childRuntime = resolveClinkChildRuntime();
|
|
115
|
+
for (const warning of homeTreeStorageRootWarnings()) {
|
|
116
|
+
logger.warn({ env_var: warning.envVar, value: warning.value, relation: warning.relation }, warning.message);
|
|
117
|
+
}
|
|
114
118
|
// One-time startup reconcile of runs frozen as running/pending with no live
|
|
115
119
|
// worker (fire-and-forget: bounded, idempotent, never blocks startup).
|
|
116
120
|
try {
|
|
@@ -121,7 +125,6 @@ export function createWorkflowServer(options) {
|
|
|
121
125
|
catch (err) {
|
|
122
126
|
logger.warn({ err: err instanceof Error ? err.message : String(err) }, "startup stale workflow run reconcile could not be scheduled");
|
|
123
127
|
}
|
|
124
|
-
const childRuntime = resolveClinkChildRuntime();
|
|
125
128
|
// Normalize empty arrays to undefined — an empty list would suppress schema
|
|
126
129
|
// hints while still enabling validation (rejecting all adapter names).
|
|
127
130
|
const explicit = options?.availableCliNames;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
|
|
@@ -199,4 +199,17 @@ export interface RunState {
|
|
|
199
199
|
* runs that did not use a roster.
|
|
200
200
|
*/
|
|
201
201
|
readonly rosterName?: string | undefined;
|
|
202
|
+
/**
|
|
203
|
+
* Opaque identity of the execution that last bound this state (create or
|
|
204
|
+
* resume), stamped right after bind and carried by every later publication.
|
|
205
|
+
* Lets a pinned wait/status resolve a terminal run after a restart or
|
|
206
|
+
* registry eviction. Omitted on older state and before the first bind.
|
|
207
|
+
*/
|
|
208
|
+
readonly executionId?: string | undefined;
|
|
209
|
+
/**
|
|
210
|
+
* completedAt of the terminal envelope this build published for executionId.
|
|
211
|
+
* An older build resuming the run carries executionId forward but not a
|
|
212
|
+
* matching witness, so a pinned read cannot settle on its outcome.
|
|
213
|
+
*/
|
|
214
|
+
readonly executionCompletedAt?: string | undefined;
|
|
202
215
|
}
|
|
@@ -109,6 +109,11 @@ export declare class WorkflowStateStore {
|
|
|
109
109
|
* deliberately left unchanged here.
|
|
110
110
|
*/
|
|
111
111
|
beginResumeAttempt(): Promise<void>;
|
|
112
|
+
/**
|
|
113
|
+
* Persist the bound execution identity. Every later write clones this.state,
|
|
114
|
+
* so the id rides each subsequent publication; a resume overwrites it.
|
|
115
|
+
*/
|
|
116
|
+
bindExecution(executionId: string): Promise<void>;
|
|
112
117
|
markCancelled(reason?: string): Promise<void>;
|
|
113
118
|
/**
|
|
114
119
|
* Idempotently mark the run failed. Only applies when the current status is
|
|
@@ -167,9 +172,10 @@ export declare class WorkflowStateStore {
|
|
|
167
172
|
private enqueueWrite;
|
|
168
173
|
private writeState;
|
|
169
174
|
}
|
|
170
|
-
export declare function readRunStateForStatus(runId: string): Promise<{
|
|
175
|
+
export declare function readRunStateForStatus(runId: string, containedRead?: boolean): Promise<{
|
|
171
176
|
state: RunState;
|
|
172
177
|
lock: RunLockStatus;
|
|
178
|
+
stateDigest?: string;
|
|
173
179
|
} | null>;
|
|
174
180
|
/**
|
|
175
181
|
* Reap a run that has no live worker (orphaned/stale/prior-process) by writing a
|
|
@@ -5,7 +5,7 @@ import { lstat, mkdir, open, readFile, readdir, realpath, rename, rm, stat, unli
|
|
|
5
5
|
import { dirname, basename, isAbsolute, join, relative, resolve } from "node:path";
|
|
6
6
|
import { hostname } from "node:os";
|
|
7
7
|
import { fileURLToPath } from "node:url";
|
|
8
|
-
import { readContainedRelativeFile } from "./contained-file.js";
|
|
8
|
+
import { ContainedFileChangedError, readContainedRelativeFile } from "./contained-file.js";
|
|
9
9
|
import { ARCHITECTURE_WORKFLOW, MAX_RECORD_BYTES } from "./architecture-comparison/contract.js";
|
|
10
10
|
import { WorkflowError } from "./errors.js";
|
|
11
11
|
import { computeRunHealth } from "./run-health.js";
|
|
@@ -21,7 +21,7 @@ import { isPlanReviewPublicationEligible, projectPlanReviewRun, } from "./plan-r
|
|
|
21
21
|
import { isPlanReviewRunState } from "./plan-review/admission.js";
|
|
22
22
|
import { restorePlanReviewRun } from "./plan-review/resume.js";
|
|
23
23
|
import { PlanReviewStageError } from "./plan-review/stage-error.js";
|
|
24
|
-
import { DEFAULT_RETAIN_ASYNC_DAYS, DEFAULT_RETAIN_CANCELLED_DAYS, DEFAULT_RETAIN_DEBUG_DAYS, DEFAULT_RETAIN_FAILED_DAYS, DEFAULT_RETAIN_SUCCEEDED_DAYS, deriveAllowedRoots, getArtifactsDir, getChildConfigPath, getChildMaxConcurrent, getChildMaxOutputBytes, getChildMaxPromptBytes, getChildMaxResponseChars, getLogLevel, getRetentionConfig, getRunsDir, getRunStateDir, getStateDir, invocationAuditV2PersistenceEnabled, observedInvocationPersistenceEnabled, resolveWorkspaceRoot, } from "./config.js";
|
|
24
|
+
import { DEFAULT_DASHBOARD_MAX_STATE_BYTES, DEFAULT_RETAIN_ASYNC_DAYS, DEFAULT_RETAIN_CANCELLED_DAYS, DEFAULT_RETAIN_DEBUG_DAYS, DEFAULT_RETAIN_FAILED_DAYS, DEFAULT_RETAIN_SUCCEEDED_DAYS, deriveAllowedRoots, getArtifactsDir, getChildConfigPath, getChildMaxConcurrent, getChildMaxOutputBytes, getChildMaxPromptBytes, getChildMaxResponseChars, getLogLevel, getRetentionConfig, getRunsDir, getRunStateDir, getStateDir, invocationAuditV2PersistenceEnabled, observedInvocationPersistenceEnabled, resolveWorkspaceRoot, } from "./config.js";
|
|
25
25
|
import { logger } from "./logger.js";
|
|
26
26
|
import { resolveOpenedDescriptorPath } from "./contained-file.js";
|
|
27
27
|
import { deriveWorkflowRunGeneration } from "./dashboard/generation.js";
|
|
@@ -151,7 +151,7 @@ const finalizePlanReviewTerminalState = async ({ runDir, previousState, intended
|
|
|
151
151
|
// yet been committed.
|
|
152
152
|
const intermediate = withPlanReviewPublication(previousState, marker);
|
|
153
153
|
validateStrictStateSubtrees(intermediate, join(runDir, STATE_FILENAME));
|
|
154
|
-
await
|
|
154
|
+
await writeRunStateAtomic(join(runDir, STATE_FILENAME), intermediate);
|
|
155
155
|
return { state: withPlanReviewPublication(intendedState, marker) };
|
|
156
156
|
}
|
|
157
157
|
catch (err) {
|
|
@@ -612,7 +612,7 @@ export class WorkflowStateStore {
|
|
|
612
612
|
...(resolvedRoster !== undefined ? { resolvedRoster } : {}),
|
|
613
613
|
...(rosterName !== undefined ? { rosterName } : {}),
|
|
614
614
|
};
|
|
615
|
-
await
|
|
615
|
+
await writeRunStateAtomic(join(runDir, STATE_FILENAME), state);
|
|
616
616
|
if (recycled.recycled) {
|
|
617
617
|
await rm(`${runDir}.recycled`, { recursive: true, force: true }).catch(() => { });
|
|
618
618
|
if (recycled.retiredSessionLogGeneration !== undefined) {
|
|
@@ -733,7 +733,7 @@ export class WorkflowStateStore {
|
|
|
733
733
|
stage.completedAt = deriveStageCompletedAt(stage.calls);
|
|
734
734
|
}
|
|
735
735
|
if (mutated) {
|
|
736
|
-
await
|
|
736
|
+
await writeRunStateAtomic(join(runDir, STATE_FILENAME), recovered);
|
|
737
737
|
}
|
|
738
738
|
const resume = await buildResumeState(definition, recovered, runDir);
|
|
739
739
|
return new WorkflowStateStore({
|
|
@@ -787,6 +787,23 @@ export class WorkflowStateStore {
|
|
|
787
787
|
nextState.completedAt = undefined;
|
|
788
788
|
nextState.error = undefined;
|
|
789
789
|
nextState.failureClass = undefined;
|
|
790
|
+
// The reopened record belongs to no execution until bind stamps the new
|
|
791
|
+
// id; a crash in between must not let reconcile/reap settle the old pin.
|
|
792
|
+
nextState.executionId = undefined;
|
|
793
|
+
this.state = nextState;
|
|
794
|
+
await this.writeState();
|
|
795
|
+
});
|
|
796
|
+
}
|
|
797
|
+
/**
|
|
798
|
+
* Persist the bound execution identity. Every later write clones this.state,
|
|
799
|
+
* so the id rides each subsequent publication; a resume overwrites it.
|
|
800
|
+
*/
|
|
801
|
+
async bindExecution(executionId) {
|
|
802
|
+
await this.enqueueWrite(async () => {
|
|
803
|
+
if (this.state.executionId === executionId)
|
|
804
|
+
return;
|
|
805
|
+
const nextState = structuredClone(this.state);
|
|
806
|
+
nextState.executionId = executionId;
|
|
790
807
|
this.state = nextState;
|
|
791
808
|
await this.writeState();
|
|
792
809
|
});
|
|
@@ -1161,7 +1178,7 @@ export class WorkflowStateStore {
|
|
|
1161
1178
|
await next;
|
|
1162
1179
|
}
|
|
1163
1180
|
async writeState() {
|
|
1164
|
-
await
|
|
1181
|
+
await writeRunStateAtomic(join(this.runDir, STATE_FILENAME), this.state);
|
|
1165
1182
|
}
|
|
1166
1183
|
}
|
|
1167
1184
|
async function prepareRunDirForCreate(runDir, runId) {
|
|
@@ -1509,11 +1526,13 @@ function classifyRunLockSync(lockPath) {
|
|
|
1509
1526
|
return code === "ENOENT" ? "stale_or_absent" : "unknown";
|
|
1510
1527
|
}
|
|
1511
1528
|
}
|
|
1512
|
-
export async function readRunStateForStatus(runId) {
|
|
1529
|
+
export async function readRunStateForStatus(runId, containedRead = false) {
|
|
1513
1530
|
const runDir = getRunStateDir(runId);
|
|
1514
|
-
let
|
|
1531
|
+
let read;
|
|
1515
1532
|
try {
|
|
1516
|
-
|
|
1533
|
+
read = containedRead
|
|
1534
|
+
? await readContainedRunState(runDir)
|
|
1535
|
+
: { state: await readRunState(runDir) };
|
|
1517
1536
|
}
|
|
1518
1537
|
catch (error) {
|
|
1519
1538
|
const code = error.code;
|
|
@@ -1524,8 +1543,10 @@ export async function readRunStateForStatus(runId) {
|
|
|
1524
1543
|
}
|
|
1525
1544
|
const lockStatus = classifyRunLockSync(join(runDir, RUN_LOCK_FILENAME));
|
|
1526
1545
|
return {
|
|
1527
|
-
state,
|
|
1546
|
+
state: read.state,
|
|
1528
1547
|
lock: lockStatus,
|
|
1548
|
+
// Internal execution-fence input only; never projected onto the wire.
|
|
1549
|
+
...(read.digest !== undefined ? { stateDigest: read.digest } : {}),
|
|
1529
1550
|
};
|
|
1530
1551
|
}
|
|
1531
1552
|
/**
|
|
@@ -1599,7 +1620,7 @@ export async function reapRunCancelled(runId) {
|
|
|
1599
1620
|
nextState.completedAt = new Date().toISOString();
|
|
1600
1621
|
nextState.error = "Reaped: no live worker process";
|
|
1601
1622
|
}
|
|
1602
|
-
await
|
|
1623
|
+
await writeRunStateAtomic(join(runDir, STATE_FILENAME), nextState);
|
|
1603
1624
|
await safeUnlink(lockPath);
|
|
1604
1625
|
lockHeld = false;
|
|
1605
1626
|
return "cancelled";
|
|
@@ -1758,7 +1779,7 @@ async function reconcileStaleRun(runDir) {
|
|
|
1758
1779
|
nextState.error = STALE_RUN_RECONCILE_ERROR;
|
|
1759
1780
|
nextState.failureClass = "transient";
|
|
1760
1781
|
}
|
|
1761
|
-
await
|
|
1782
|
+
await writeRunStateAtomic(join(runDir, STATE_FILENAME), nextState);
|
|
1762
1783
|
logger.info({ run_dir: runDir, run_id: state.runId }, "reconciled stale running workflow run to terminal failed");
|
|
1763
1784
|
return "reconciled";
|
|
1764
1785
|
}
|
|
@@ -2210,7 +2231,40 @@ async function listConfigFiles(configPath) {
|
|
|
2210
2231
|
}
|
|
2211
2232
|
async function readRunState(runDir) {
|
|
2212
2233
|
const statePath = join(runDir, STATE_FILENAME);
|
|
2213
|
-
|
|
2234
|
+
return validateRunState(await readJsonFile(statePath), statePath);
|
|
2235
|
+
}
|
|
2236
|
+
/**
|
|
2237
|
+
* One contained read: the digest covers exactly the raw bytes that were parsed,
|
|
2238
|
+
* so a guarded projection is fenced on the state it actually rendered.
|
|
2239
|
+
*/
|
|
2240
|
+
async function readContainedRunState(runDir) {
|
|
2241
|
+
// Atomic publication can retire an opened inode while a status read is in
|
|
2242
|
+
// flight. Retry only the reader's known change discriminator, with a fixed
|
|
2243
|
+
// immediate bound; policy, permission and malformed-state errors propagate.
|
|
2244
|
+
for (let attempt = 0;; attempt += 1) {
|
|
2245
|
+
let bytes;
|
|
2246
|
+
try {
|
|
2247
|
+
const file = await readContainedRelativeFile(runDir, STATE_FILENAME, {
|
|
2248
|
+
wantBytes: true,
|
|
2249
|
+
requireRegular: true,
|
|
2250
|
+
requireExactRequestedPath: true,
|
|
2251
|
+
maxBytes: DEFAULT_DASHBOARD_MAX_STATE_BYTES,
|
|
2252
|
+
});
|
|
2253
|
+
bytes = file.bytes;
|
|
2254
|
+
}
|
|
2255
|
+
catch (error) {
|
|
2256
|
+
if (!(error instanceof ContainedFileChangedError) || attempt >= 2)
|
|
2257
|
+
throw error;
|
|
2258
|
+
continue;
|
|
2259
|
+
}
|
|
2260
|
+
const state = JSON.parse(bytes.toString("utf-8"));
|
|
2261
|
+
return {
|
|
2262
|
+
state: validateRunState(state, join(runDir, STATE_FILENAME)),
|
|
2263
|
+
digest: createHash("sha256").update(bytes).digest("hex"),
|
|
2264
|
+
};
|
|
2265
|
+
}
|
|
2266
|
+
}
|
|
2267
|
+
function validateRunState(state, statePath) {
|
|
2214
2268
|
if (state.state_version !== 1) {
|
|
2215
2269
|
throw new Error(`Unsupported state_version ${String(state.state_version)} in ${statePath}`);
|
|
2216
2270
|
}
|
|
@@ -2232,6 +2286,13 @@ async function writeJsonSnapshot(filePath, value) {
|
|
|
2232
2286
|
await writeTextAtomic(filePath, serialized);
|
|
2233
2287
|
return hashContent(serialized);
|
|
2234
2288
|
}
|
|
2289
|
+
async function writeRunStateAtomic(filePath, state) {
|
|
2290
|
+
const { executionCompletedAt: _stale, ...rest } = state;
|
|
2291
|
+
const witnessed = rest.executionId !== undefined && isTerminalRunStatus(rest.status) && rest.completedAt !== undefined
|
|
2292
|
+
? { ...rest, executionCompletedAt: rest.completedAt }
|
|
2293
|
+
: rest;
|
|
2294
|
+
await writeJsonAtomic(filePath, witnessed);
|
|
2295
|
+
}
|
|
2235
2296
|
async function writeJsonAtomic(filePath, value) {
|
|
2236
2297
|
await writeTextAtomic(filePath, serializeJson(value));
|
|
2237
2298
|
}
|