@squadrules/mcp 5.16.0 → 5.17.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (69) hide show
  1. package/README.md +16 -0
  2. package/dist/.tsbuildinfo +1 -1
  3. package/dist/cli/commands/cli-train.d.ts.map +1 -1
  4. package/dist/cli/commands/cli-train.js +2 -1
  5. package/dist/cli/commands/cli-train.js.map +1 -1
  6. package/dist/cli/index.js +5 -1
  7. package/dist/cli/index.js.map +1 -1
  8. package/dist/cli/keyring.d.ts +2 -2
  9. package/dist/cli/keyring.js +2 -2
  10. package/dist/embed-docs/mem/adapter-migration.md +1 -1
  11. package/dist/embed-docs/mem/author-adapter.md +2 -2
  12. package/dist/embed-docs/mem/bulk-insert-adapters-via-cli.md +1 -1
  13. package/dist/embed-docs/mem/challenge-type-guide.md +9 -8
  14. package/dist/embed-docs/mem/critic-loop-guide.md +1 -1
  15. package/dist/embed-docs/mem/critic-loop.md +1 -1
  16. package/dist/embed-docs/mem/protocol-linking-guide.md +1 -1
  17. package/dist/embed-docs/mem/refine-search.md +1 -1
  18. package/dist/resources/embedded-mcp-resources.js +11 -11
  19. package/dist/resources/embedded-mcp-resources.js.map +1 -1
  20. package/dist/runtime/boot-local-runtime.d.ts.map +1 -1
  21. package/dist/runtime/boot-local-runtime.js +2 -0
  22. package/dist/runtime/boot-local-runtime.js.map +1 -1
  23. package/dist/runtime-lock.json +2 -2
  24. package/dist/tools/activate-artifacts.d.ts +7 -0
  25. package/dist/tools/activate-artifacts.d.ts.map +1 -1
  26. package/dist/tools/activate-artifacts.js +97 -28
  27. package/dist/tools/activate-artifacts.js.map +1 -1
  28. package/dist/tools/activate_schema.d.ts +4 -12
  29. package/dist/tools/activate_schema.d.ts.map +1 -1
  30. package/dist/tools/activate_schema.js +10 -17
  31. package/dist/tools/activate_schema.js.map +1 -1
  32. package/dist/tools/artifact-local-cache-support.d.ts +62 -0
  33. package/dist/tools/artifact-local-cache-support.d.ts.map +1 -0
  34. package/dist/tools/artifact-local-cache-support.js +61 -0
  35. package/dist/tools/artifact-local-cache-support.js.map +1 -0
  36. package/dist/tools/artifact-local-cache.d.ts +55 -0
  37. package/dist/tools/artifact-local-cache.d.ts.map +1 -0
  38. package/dist/tools/artifact-local-cache.js +315 -0
  39. package/dist/tools/artifact-local-cache.js.map +1 -0
  40. package/dist/tools/artifact-materialize-command.d.ts +27 -21
  41. package/dist/tools/artifact-materialize-command.d.ts.map +1 -1
  42. package/dist/tools/artifact-materialize-command.js +72 -21
  43. package/dist/tools/artifact-materialize-command.js.map +1 -1
  44. package/dist/tools/artifact-relative-path.d.ts +16 -0
  45. package/dist/tools/artifact-relative-path.d.ts.map +1 -1
  46. package/dist/tools/artifact-relative-path.js +51 -0
  47. package/dist/tools/artifact-relative-path.js.map +1 -1
  48. package/dist/tools/export_schema.d.ts +5 -5
  49. package/dist/tools/next_schema.js +1 -1
  50. package/dist/tools/shell-failure-diagnostics.d.ts.map +1 -1
  51. package/dist/tools/shell-failure-diagnostics.js +3 -2
  52. package/dist/tools/shell-failure-diagnostics.js.map +1 -1
  53. package/dist/tools/tool-registry.d.ts +7 -15
  54. package/dist/tools/tool-registry.d.ts.map +1 -1
  55. package/dist/ui/assets/{AccountPage-CVjbtp9b.js → AccountPage-ClyQAIyJ.js} +1 -1
  56. package/dist/ui/assets/{index-BA7BPpk2.js → index-D9tPhi-y.js} +2 -2
  57. package/dist/ui/index.html +1 -1
  58. package/dist/utils/directory-access.d.ts.map +1 -1
  59. package/dist/utils/directory-access.js +2 -8
  60. package/dist/utils/directory-access.js.map +1 -1
  61. package/dist/utils/squadrules-local-artifact-dirs.d.ts +1 -1
  62. package/dist/utils/squadrules-local-artifact-dirs.d.ts.map +1 -1
  63. package/dist/utils/squadrules-local-artifact-dirs.js +1 -1
  64. package/dist/utils/squadrules-local-artifact-dirs.js.map +1 -1
  65. package/dist/utils/squadrules-user-dirs.d.ts +12 -14
  66. package/dist/utils/squadrules-user-dirs.d.ts.map +1 -1
  67. package/dist/utils/squadrules-user-dirs.js +79 -38
  68. package/dist/utils/squadrules-user-dirs.js.map +1 -1
  69. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"embedded-mcp-resources.js","sourceRoot":"","sources":["../../src/resources/embedded-mcp-resources.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"embedded-mcp-resources.js","sourceRoot":"","sources":["../../src/resources/embedded-mcp-resources.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"boot-local-runtime.d.ts","sourceRoot":"","sources":["../../src/runtime/boot-local-runtime.ts"],"names":[],"mappings":"AAYA,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAEhE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAmBnE;;;;;GAKG;AACH,MAAM,MAAM,QAAQ,GAAG,QAAQ,GAAG,MAAM,GAAG,OAAO,CAAC;AAEnD,MAAM,WAAW,uBAAuB;IACtC,0DAA0D;IAC1D,YAAY,CAAC,EAAE,QAAQ,CAAC;IACxB,yIAAyI;IACzI,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,4HAA4H;IAC5H,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,oGAAoG;IACpG,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,MAAM,WAAW,kBAAkB;IACjC,WAAW,EAAE,iBAAiB,CAAC;IAC/B,aAAa,EAAE,aAAa,CAAC;CAC9B;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,IAAI,OAAO,CAG/C;AA+BD;;;;;GAKG;AACH,wBAAsB,gBAAgB,CAAC,IAAI,GAAE,uBAA4B,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAgFtG"}
1
+ {"version":3,"file":"boot-local-runtime.d.ts","sourceRoot":"","sources":["../../src/runtime/boot-local-runtime.ts"],"names":[],"mappings":"AAYA,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAEhE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAoBnE;;;;;GAKG;AACH,MAAM,MAAM,QAAQ,GAAG,QAAQ,GAAG,MAAM,GAAG,OAAO,CAAC;AAEnD,MAAM,WAAW,uBAAuB;IACtC,0DAA0D;IAC1D,YAAY,CAAC,EAAE,QAAQ,CAAC;IACxB,yIAAyI;IACzI,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,4HAA4H;IAC5H,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,oGAAoG;IACpG,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,MAAM,WAAW,kBAAkB;IACjC,WAAW,EAAE,iBAAiB,CAAC;IAC/B,aAAa,EAAE,aAAa,CAAC;CAC9B;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,IAAI,OAAO,CAG/C;AA+BD;;;;;GAKG;AACH,wBAAsB,gBAAgB,CAAC,IAAI,GAAE,uBAA4B,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAiFtG"}
@@ -13,6 +13,7 @@ import { structuredLogger } from '../utils/structured-logger.js';
13
13
  import { MemoryQdrantStore } from '../services/memory/store.js';
14
14
  import { qdrantService } from '../services/qdrant/index.js';
15
15
  import { getEmbeddedRecordStore } from '../services/vector-store/embedded-store-singleton.js';
16
+ import { migrateOldSquadrulesConfigDir } from '../utils/squadrules-user-dirs.js';
16
17
  import { resolveLanceDbDir } from '../services/vector-store/lancedb-connection.js';
17
18
  import { ensureEmbeddingDimension } from '../services/embedding/lazy-probe.js';
18
19
  import { getSuccessfulProvider } from '../services/embedding/provider-resolver.js';
@@ -66,6 +67,7 @@ async function waitForQdrant(memoryStore, maxRetries = 30, intervalMs = 1000) {
66
67
  * (the same embedded instance on the LanceDB path) for callers to execute tools against.
67
68
  */
68
69
  export async function bootLocalRuntime(opts = {}) {
70
+ migrateOldSquadrulesConfigDir();
69
71
  const seedAdapters = opts.seedAdapters ?? 'always';
70
72
  const loadEmbeddings = opts.loadEmbeddings ?? true;
71
73
  const healthProbe = opts.healthProbe ?? true;
@@ -1 +1 @@
1
- {"version":3,"file":"boot-local-runtime.js","sourceRoot":"","sources":["../../src/runtime/boot-local-runtime.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"boot-local-runtime.js","sourceRoot":"","sources":["../../src/runtime/boot-local-runtime.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAE5D,OAAO,EAAE,sBAAsB,EAAE,MAAM,sDAAsD,CAAC;AAC9F,OAAO,EAAE,6BAA6B,EAAE,MAAM,kCAAkC,CAAC;AACjF,OAAO,EAAE,iBAAiB,EAAE,MAAM,gDAAgD,CAAC;AACnF,OAAO,EAAE,wBAAwB,EAAE,MAAM,qCAAqC,CAAC;AAC/E,OAAO,EAAE,qBAAqB,EAAE,MAAM,4CAA4C,CAAC;AACnF,OAAO,EAAE,wBAAwB,EAAE,MAAM,oCAAoC,CAAC;AAC9E,OAAO,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAC;AACxE,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAAE,qBAAqB,EAAE,MAAM,0DAA0D,CAAC;AACjG,OAAO,EACL,kBAAkB,EAClB,kBAAkB,EAClB,wBAAwB,EACxB,mBAAmB,EACpB,MAAM,cAAc,CAAC;AAEtB,+FAA+F;AAC/F,MAAM,aAAa,GAAG,gBAAgB,CAAC;AA0BvC;;;;GAIG;AACH,MAAM,UAAU,qBAAqB;IACnC,IAAI,kBAAkB;QAAE,OAAO,KAAK,CAAC;IACrC,OAAO,UAAU,CAAC,IAAI,CAAC,iBAAiB,EAAE,EAAE,GAAG,aAAa,QAAQ,CAAC,CAAC,CAAC;AACzE,CAAC;AAED;;;GAGG;AACH,KAAK,UAAU,aAAa,CAAC,WAA8B,EAAE,UAAU,GAAG,EAAE,EAAE,UAAU,GAAG,IAAI;IAC7F,gBAAgB,CAAC,IAAI,CAAC,uCAAuC,CAAC,CAAC;IAE/D,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,IAAI,UAAU,EAAE,OAAO,EAAE,EAAE,CAAC;QACvD,IAAI,CAAC;YACH,MAAM,SAAS,GAAG,MAAM,WAAW,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,6BAA6B;YACpF,IAAI,SAAS,EAAE,CAAC;gBACd,gBAAgB,CAAC,IAAI,CAAC,6BAA6B,OAAO,aAAa,CAAC,CAAC;gBACzE,OAAO;YACT,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,YAAY,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACtE,gBAAgB,CAAC,KAAK,CAAC,wCAAwC,OAAO,KAAK,YAAY,EAAE,CAAC,CAAC;YAC3F,kCAAkC;QACpC,CAAC;QAED,IAAI,OAAO,GAAG,UAAU,EAAE,CAAC;YACzB,gBAAgB,CAAC,IAAI,CAAC,iCAAiC,OAAO,IAAI,UAAU,kBAAkB,UAAU,OAAO,CAAC,CAAC;YACjH,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC;QAClE,CAAC;IACH,CAAC;IAED,MAAM,IAAI,KAAK,CAAC,yCAAyC,UAAU,cAAc,CAAC,UAAU,GAAG,UAAU,CAAC,GAAG,IAAI,IAAI,CAAC,CAAC;AACzH,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,OAAgC,EAAE;IACvE,6BAA6B,EAAE,CAAC;IAChC,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,IAAI,QAAQ,CAAC;IACnD,MAAM,cAAc,GAAG,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC;IACnD,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC;IAC7C,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,IAAI,qBAAqB,CAAC;IAE1D,gFAAgF;IAChF,kFAAkF;IAClF,sFAAsF;IACtF,MAAM,WAAW,GAAG,kBAAkB;QACpC,CAAC,CAAC,IAAI,iBAAiB,EAAE;QACzB,CAAC,CAAE,sBAAsB,EAAmC,CAAC;IAE/D,6FAA6F;IAC7F,IAAI,kBAAkB,IAAI,WAAW,EAAE,CAAC;QACtC,MAAM,aAAa,CAAC,WAAW,CAAC,CAAC;IACnC,CAAC;IAED,IAAI,cAAc,EAAE,CAAC;QACnB,MAAM,YAAY,GAAG,MAAM,wBAAwB,EAAE,CAAC;QACtD,gBAAgB,CAAC,KAAK,CAAC,wBAAwB,YAAY,EAAE,CAAC,CAAC;IACjE,CAAC;IAED,gBAAgB,CAAC,KAAK,CAAC,iBAAiB,kBAAkB,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,oBAAoB,EAAE,CAAC,CAAC;IAEhG,uEAAuE;IACvE,MAAM,kBAAkB,GAAG,qBAAqB,EAAE,CAAC;IACnD,IAAI,kBAAkB,EAAE,CAAC;QACvB,gBAAgB,CAAC,KAAK,CAAC,cAAc,kBAAkB,CAAC,QAAQ,KAAK,kBAAkB,CAAC,KAAK,KAAK,kBAAkB,CAAC,SAAS,IAAI,CAAC,CAAC;IACtI,CAAC;SAAM,CAAC;QACN,gBAAgB,CAAC,KAAK,CAAC,cAAc,kBAAkB,4BAA4B,CAAC,CAAC;IACvF,CAAC;IAED,+EAA+E;IAC/E,IAAI,CAAC,kBAAkB,IAAI,kBAAkB,EAAE,CAAC;QAC9C,MAAM,UAAU,GAAG,iBAAiB,EAAE,CAAC;QACvC,MAAM,KAAK,GAAG,qBAAqB,CAAC,UAAU,EAAE,kBAAkB,CAAC,QAAQ,EAAE,kBAAkB,CAAC,KAAK,EAAE,kBAAkB,CAAC,SAAS,CAAC,CAAC;QACrI,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC;YACtB,gBAAgB,CAAC,IAAI,CAAC,0BAA0B,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;QAClE,CAAC;IACH,CAAC;IAED,MAAM,WAAW,CAAC,IAAI,EAAE,CAAC;IACzB,gBAAgB,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC;IAE9C,IAAI,kBAAkB,IAAI,wBAAwB,EAAE,CAAC;QACnD,MAAM,cAAc,GAAG,MAAM,qBAAqB,CAAC,aAAa,EAAE;YAChE,OAAO,EAAE,IAAI;YACb,SAAS,EAAE,mBAAmB;YAC9B,MAAM,EAAE,SAAS;SAClB,CAAC,CAAC;QAEH,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,CAAC;YAC5B,gBAAgB,CAAC,IAAI,CAAC,4BAA4B,cAAc,CAAC,OAAO,IAAI,eAAe,EAAE,CAAC,CAAC;QACjG,CAAC;IACH,CAAC;SAAM,CAAC;QACN,gBAAgB,CAAC,KAAK,CAAC,4CAA4C,CAAC,CAAC;IACvE,CAAC;IAED,kFAAkF;IAClF,oFAAoF;IACpF,+EAA+E;IAC/E,0DAA0D;IAC1D,MAAM,UAAU,GACd,YAAY,KAAK,QAAQ;QACzB,CAAC,YAAY,KAAK,MAAM,IAAI,CAAC,SAAS,IAAI,CAAC,qBAAqB,EAAE,CAAC,CAAC,CAAC;IAEvE,IAAI,UAAU,EAAE,CAAC;QACf,gFAAgF;QAChF,8EAA8E;QAC9E,IAAI,CAAC,cAAc,EAAE,CAAC;YACpB,MAAM,YAAY,GAAG,MAAM,wBAAwB,EAAE,CAAC;YACtD,gBAAgB,CAAC,KAAK,CAAC,wBAAwB,YAAY,EAAE,CAAC,CAAC;QACjE,CAAC;QACD,MAAM,wBAAwB,CAAC,WAAW,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;IACpE,CAAC;SAAM,CAAC;QACN,gBAAgB,CAAC,KAAK,CAAC,yDAAyD,CAAC,CAAC;IACpF,CAAC;IAED,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,CAAC;AACxC,CAAC"}
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@squadrules/mcp",
3
- "version": "5.16.0",
3
+ "version": "5.17.1",
4
4
  "lockfileVersion": 3,
5
5
  "requires": true,
6
6
  "packages": {
7
7
  "": {
8
8
  "name": "@squadrules/mcp",
9
- "version": "5.16.0",
9
+ "version": "5.17.1",
10
10
  "license": "MIT",
11
11
  "dependencies": {
12
12
  "@exodus/bytes": "^1.16.0",
@@ -4,6 +4,13 @@
4
4
  * A choice that ships scripts must tell the agent how to obtain them, and a
5
5
  * failed lookup must never look like "this adapter has no artifacts" — the
6
6
  * caller would then run a script path it can never obtain (SquadRules/mcp#216).
7
+ *
8
+ * Materialization is transport-neutral (ADR 0040): every artifact is fetched by a
9
+ * `curl`-to-staging command from a source URL. On stdio the running server writes
10
+ * the verified bytes to its private local cache and hands back a `file://` URL; on
11
+ * HTTP it mints a short-lived capability URL. Destination paths are validated and
12
+ * checked for collisions *before* any cache write or capability mint, so an unsafe
13
+ * path or a collision fails the whole load without leaving side effects behind.
7
14
  */
8
15
  import type { MemoryQdrantStore } from '../services/memory/store.js';
9
16
  import type { QdrantService } from '../services/qdrant/service.js';
@@ -1 +1 @@
1
- {"version":3,"file":"activate-artifacts.d.ts","sourceRoot":"","sources":["../../src/tools/activate-artifacts.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AACrE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAQnE,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,OAAO,mCAAmC,EAAE,sBAAsB,CAAC;CACjF;AAED,MAAM,WAAW,qBAAqB;IACpC,eAAe,EAAE,iBAAiB,EAAE,CAAC;IACrC,gGAAgG;IAChG,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;CAClC;AAUD,wBAAsB,mBAAmB,CACvC,WAAW,EAAE,iBAAiB,EAC9B,aAAa,EAAE,aAAa,GAAG,SAAS,EACxC,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,OAAO,GACf,OAAO,CAAC,qBAAqB,CAAC,CAgDhC"}
1
+ {"version":3,"file":"activate-artifacts.d.ts","sourceRoot":"","sources":["../../src/tools/activate-artifacts.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AACrE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AASnE,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,OAAO,mCAAmC,EAAE,sBAAsB,CAAC;CACjF;AAED,MAAM,WAAW,qBAAqB;IACpC,eAAe,EAAE,iBAAiB,EAAE,CAAC;IACrC,gGAAgG;IAChG,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;CAClC;AAyGD,wBAAsB,mBAAmB,CACvC,WAAW,EAAE,iBAAiB,EAC9B,aAAa,EAAE,aAAa,GAAG,SAAS,EACxC,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,OAAO,GACf,OAAO,CAAC,qBAAqB,CAAC,CA0ChC"}
@@ -2,51 +2,120 @@ import { structuredLogger } from '../utils/structured-logger.js';
2
2
  import { listAdapterArtifacts } from './artifact-catalog.js';
3
3
  import { mintExportArtifactDownloadCapability } from '../services/export-artifact-download-capability.js';
4
4
  import { resolveExportAdapter } from './export-resolve-adapter.js';
5
- import { normalizeArtifactRelativePath } from './artifact-relative-path.js';
5
+ import { normalizeMaterializeRelativePath, sanitizeArtifactFileName } from './artifact-relative-path.js';
6
6
  import { buildArtifactMaterializeInstruction } from './artifact-materialize-command.js';
7
- function safeArtifactFileName(value) {
8
- return value.replace(/[/\\]/g, '_');
7
+ import { getArtifactLocalCache } from './artifact-local-cache.js';
8
+ /**
9
+ * Resolve the destination path for one artifact. An explicit `relative_path` that
10
+ * fails validation fails the load — it is never silently replaced with a default.
11
+ * Only an absent path is synthesized as `artifacts/<safe filename>`, and the
12
+ * synthesized value passes through the same validator before it is used.
13
+ */
14
+ function resolveMaterializePath(artifact) {
15
+ const stored = artifact.relative_path?.trim() ?? '';
16
+ if (stored.length > 0) {
17
+ const normalized = normalizeMaterializeRelativePath(stored);
18
+ if (normalized === null) {
19
+ throw new Error(`artifact ${artifact.artifact_uuid} ("${artifact.name}") has an unsafe relative_path ` +
20
+ `${JSON.stringify(artifact.relative_path)}; refusing to materialize it — ` +
21
+ 're-train the artifact with a safe skill-root-relative path');
22
+ }
23
+ return normalized;
24
+ }
25
+ const safeName = sanitizeArtifactFileName(artifact.name);
26
+ if (safeName === null) {
27
+ throw new Error(`artifact ${artifact.artifact_uuid} has no relative_path and its name ${JSON.stringify(artifact.name)} ` +
28
+ 'cannot be reduced to a safe filename; refusing to materialize it');
29
+ }
30
+ const synthesized = normalizeMaterializeRelativePath(`artifacts/${safeName}`);
31
+ if (synthesized === null) {
32
+ throw new Error(`artifact ${artifact.artifact_uuid} synthesized an unsafe destination path from its name; refusing to materialize it`);
33
+ }
34
+ return synthesized;
35
+ }
36
+ /** Case-folded, Unicode-normalized key so filesystem aliases count as one destination. */
37
+ function collisionKey(relativePath) {
38
+ return relativePath.normalize('NFC').toLowerCase();
39
+ }
40
+ /**
41
+ * Fail the whole load when two distinct artifact UUIDs target the same canonical
42
+ * destination. UUID + SHA source identity does not resolve a destination collision
43
+ * and there is no safe last writer, so this rejects rather than picks one — even
44
+ * when the two digests match, and even for Unicode/case aliases of the same path.
45
+ */
46
+ function assertNoDestinationCollisions(resolved) {
47
+ const seen = new Map();
48
+ for (const { artifact, relativePath } of resolved) {
49
+ const key = collisionKey(relativePath);
50
+ const priorUuid = seen.get(key);
51
+ if (priorUuid !== undefined && priorUuid !== artifact.artifact_uuid) {
52
+ throw new Error(`two linked artifacts target the same destination path ${JSON.stringify(relativePath)}: ` +
53
+ `${priorUuid} and ${artifact.artifact_uuid}; refusing to pick a last writer ` +
54
+ '(give them distinct relative_path values and re-train)');
55
+ }
56
+ seen.set(key, artifact.artifact_uuid);
57
+ }
9
58
  }
10
- function defaultArtifactRelativePath(fileName) {
11
- return `artifacts/${safeArtifactFileName(fileName)}`;
59
+ /** stdio: publish the whole verified batch to this process's local cache; return `file://` URLs by UUID. */
60
+ async function publishStdioCacheUrls(resolved) {
61
+ const published = await getArtifactLocalCache().publishBatch(resolved.map(({ artifact, relativePath }) => ({
62
+ artifactUuid: artifact.artifact_uuid,
63
+ sha256: artifact.sha256,
64
+ text: artifact.text,
65
+ relativePath,
66
+ contentType: artifact.content_type
67
+ })));
68
+ const urls = new Map();
69
+ for (const [uuid, cached] of published) {
70
+ urls.set(uuid, cached.url);
71
+ }
72
+ return urls;
73
+ }
74
+ /** HTTP: mint a short-lived capability URL per artifact; return the URLs by UUID. */
75
+ async function mintHttpCapabilityUrls(resolved) {
76
+ const minted = await Promise.all(resolved.map(async ({ artifact, relativePath }) => {
77
+ const capability = await mintExportArtifactDownloadCapability({
78
+ artifactUuid: artifact.artifact_uuid,
79
+ filename: artifact.name,
80
+ contentType: artifact.content_type,
81
+ sha256: artifact.sha256,
82
+ relativePath
83
+ });
84
+ return [artifact.artifact_uuid, capability.url];
85
+ }));
86
+ return new Map(minted);
12
87
  }
13
88
  export async function loadLinkedArtifacts(memoryStore, qdrantService, adapterUri, isStdio) {
14
89
  try {
15
90
  const { adapterId } = await resolveExportAdapter(memoryStore, qdrantService, adapterUri);
16
- const linkedArtifactsRaw = await listAdapterArtifacts(memoryStore, adapterId);
17
- const linkedArtifacts = await Promise.all(linkedArtifactsRaw.map(async (artifact) => {
18
- const normalizedRelativePath = artifact.relative_path && artifact.relative_path.trim().length > 0
19
- ? normalizeArtifactRelativePath(artifact.relative_path.trim())
20
- : null;
21
- const relativePath = normalizedRelativePath ?? defaultArtifactRelativePath(artifact.name);
22
- const capability = await mintExportArtifactDownloadCapability({
23
- artifactUuid: artifact.artifact_uuid,
24
- filename: artifact.name,
25
- contentType: artifact.content_type,
26
- sha256: artifact.sha256,
27
- relativePath
28
- });
29
- const artifactUri = `squadrules://artifact/${artifact.slug}`;
30
- // stdio transport: no HTTP listener available, so there is nothing to
31
- // download and `download_url` carries the artifact URI instead. The bytes
32
- // then arrive through the `export` tool as base64.
33
- const downloadUrl = isStdio ? artifactUri : capability.url;
91
+ const artifacts = await listAdapterArtifacts(memoryStore, adapterId);
92
+ // Preflight before any side effect: resolve + validate every destination and
93
+ // reject collisions, so a bad path or a clash leaves no cache write or mint.
94
+ const resolved = artifacts.map((artifact) => ({
95
+ artifact,
96
+ relativePath: resolveMaterializePath(artifact)
97
+ }));
98
+ assertNoDestinationCollisions(resolved);
99
+ const urlByUuid = isStdio ? await publishStdioCacheUrls(resolved) : await mintHttpCapabilityUrls(resolved);
100
+ const linkedArtifacts = resolved.map(({ artifact, relativePath }) => {
101
+ const url = urlByUuid.get(artifact.artifact_uuid);
102
+ if (url === undefined) {
103
+ throw new Error(`no materialize URL was prepared for artifact ${artifact.artifact_uuid}`);
104
+ }
34
105
  return {
35
106
  slug: artifact.slug,
36
107
  filename: artifact.name,
37
108
  relative_path: relativePath,
38
- download_url: downloadUrl,
109
+ download_url: url,
39
110
  sha256: artifact.sha256,
40
111
  content_type: artifact.content_type,
41
112
  materialize: buildArtifactMaterializeInstruction({
42
- transport: isStdio ? 'stdio' : 'http',
43
- artifactUri,
44
- downloadUrl,
113
+ url,
45
114
  relativePath,
46
115
  sha256: artifact.sha256
47
116
  })
48
117
  };
49
- }));
118
+ });
50
119
  return { linkedArtifacts, artifactLoadError: null };
51
120
  }
52
121
  catch (error) {
@@ -1 +1 @@
1
- {"version":3,"file":"activate-artifacts.js","sourceRoot":"","sources":["../../src/tools/activate-artifacts.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"activate-artifacts.js","sourceRoot":"","sources":["../../src/tools/activate-artifacts.ts"],"names":[],"mappings":"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"}
@@ -53,12 +53,8 @@ export declare const activateOutputSchema: z.ZodObject<{
53
53
  sha256: z.ZodString;
54
54
  content_type: z.ZodString;
55
55
  materialize: z.ZodObject<{
56
- tool: z.ZodLiteral<"export">;
57
- arguments: z.ZodObject<{
58
- uri: z.ZodString;
59
- format: z.ZodLiteral<"source">;
60
- delivery: z.ZodOptional<z.ZodLiteral<"inline_base64">>;
61
- }, z.core.$strict>;
56
+ method: z.ZodLiteral<"url">;
57
+ url: z.ZodString;
62
58
  out: z.ZodString;
63
59
  sha256: z.ZodString;
64
60
  chmod: z.ZodLiteral<"700">;
@@ -97,12 +93,8 @@ export declare const activateOutputSchema: z.ZodObject<{
97
93
  sha256: z.ZodString;
98
94
  content_type: z.ZodString;
99
95
  materialize: z.ZodObject<{
100
- tool: z.ZodLiteral<"export">;
101
- arguments: z.ZodObject<{
102
- uri: z.ZodString;
103
- format: z.ZodLiteral<"source">;
104
- delivery: z.ZodOptional<z.ZodLiteral<"inline_base64">>;
105
- }, z.core.$strict>;
96
+ method: z.ZodLiteral<"url">;
97
+ url: z.ZodString;
106
98
  out: z.ZodString;
107
99
  sha256: z.ZodString;
108
100
  chmod: z.ZodLiteral<"700">;
@@ -1 +1 @@
1
- {"version":3,"file":"activate_schema.d.ts","sourceRoot":"","sources":["../../src/tools/activate_schema.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AA2FxB,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;iBAoB9B,CAAC;AAEH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBA2BtB,CAAC;AAEZ,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAChE,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC"}
1
+ {"version":3,"file":"activate_schema.d.ts","sourceRoot":"","sources":["../../src/tools/activate_schema.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAoFxB,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;iBAoB9B,CAAC;AAEH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBA2BtB,CAAC;AAEZ,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAChE,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC"}
@@ -18,23 +18,16 @@ const executionIdSchema = z
18
18
  .regex(/^[0-9a-f-]{36}$/i, 'must be a UUID');
19
19
  const materializeInstructionSchema = z
20
20
  .object({
21
- tool: z.literal('export').describe('MCP tool that returns the artifact bytes (required on stdio)'),
22
- arguments: z
23
- .object({
24
- uri: z.string().describe('Artifact URI to export: squadrules://artifact/{slug|uuid}'),
25
- format: z.literal('source').describe('Export format for artifact content'),
26
- delivery: z
27
- .literal('inline_base64')
28
- .optional()
29
- .describe('Set on stdio transport: base64 so the bytes survive the write')
30
- })
31
- .strict(),
21
+ method: z.literal('url').describe('Always `url`: `cmd` downloads the bytes from `url` on every transport'),
22
+ url: z
23
+ .string()
24
+ .describe('Source URL `cmd` downloads: a file:// cache path on stdio, an http(s) capability URL on HTTP'),
32
25
  out: z.string().describe('Path where the bytes land (uses $SQUADRULES_LOCAL_ARTIFACT_DIR)'),
33
26
  sha256: z.string().describe('SHA-256 hex of the artifact bytes; `cmd` verifies it'),
34
- chmod: z.literal('700').describe('File permissions the agent must set after verification'),
27
+ chmod: z.literal('700').describe('File permissions `cmd` sets on the verified bytes before publishing'),
35
28
  cmd: z
36
29
  .string()
37
- .describe('Exact POSIX shell line that writes the file, verifies the digest, and sets permissions. Run it verbatim.')
30
+ .describe('Exact POSIX shell line that downloads, verifies the digest, chmods, and atomically publishes. Run it verbatim.')
38
31
  })
39
32
  .strict();
40
33
  const linkedArtifactSchema = z
@@ -42,10 +35,10 @@ const linkedArtifactSchema = z
42
35
  slug: z.string(),
43
36
  filename: z.string(),
44
37
  relative_path: z.string().nullable(),
45
- download_url: z.string(),
38
+ download_url: z.string().describe('Source URL for the artifact bytes: a file:// cache path on stdio, a short-lived capability URL on HTTP. Prefer running materialize.cmd over fetching it yourself.'),
46
39
  sha256: z.string(),
47
40
  content_type: z.string(),
48
- materialize: materializeInstructionSchema.describe('Run `cmd` verbatim to materialize the artifact; on stdio, call the `export` tool first and put its `content` into $B64')
41
+ materialize: materializeInstructionSchema.describe('Run `cmd` verbatim to materialize the artifact: it curls `url`, verifies the sha256 digest, and publishes atomically — no export call and no $B64')
49
42
  })
50
43
  .strict();
51
44
  const activateChoiceCommonSchema = z.object({
@@ -115,12 +108,12 @@ export const activateOutputSchema = z.object({
115
108
  ])),
116
109
  /**
117
110
  * Ordered URI hints (preferred first) for the run's local handoff dir. Resolve **on the client**:
118
- * `project://<rel>` → `<client project root>/<rel>`; `user://<rel>` → `<client home or $XDG_CONFIG_HOME>/<rel>`.
111
+ * `project://<rel>` → `<client project root>/<rel>`; `user://<rel>` → `<client home>/<rel>`.
119
112
  * Use `project://` when you have exactly one project context; fall through to `user://` when your session
120
113
  * spans multiple projects. Export the resolved absolute path as `SQUADRULES_LOCAL_ARTIFACT_DIR` for shell
121
114
  * challenges. The server never resolves these to a path on its own filesystem.
122
115
  */
123
116
  squadrules_local_artifact_dir: z.array(z.string()).optional(),
124
- transport: z.enum(['stdio', 'http']).optional().describe('MCP transport mode. When "stdio", no HTTP listener is available; use squadrules:// artifact URIs and `squadrules export` instead of curl.')
117
+ transport: z.enum(['stdio', 'http']).optional().describe('MCP transport mode. When "stdio", no HTTP listener is available; linked-artifact materialize URLs are file:// paths from the server\'s local cache, and materialize.cmd curls them like any other URL.')
125
118
  }).strict();
126
119
  //# sourceMappingURL=activate_schema.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"activate_schema.js","sourceRoot":"","sources":["../../src/tools/activate_schema.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"activate_schema.js","sourceRoot":"","sources":["../../src/tools/activate_schema.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,62 @@
1
+ export declare const UUID_RE: RegExp;
2
+ export declare const SHA256_RE: RegExp;
3
+ export declare const NAMESPACE_PREFIX = "sqns-";
4
+ export declare const LEASE_SUFFIX = ".lease";
5
+ export declare const DEFAULT_MAX_ENTRIES = 256;
6
+ export declare const DEFAULT_MAX_BYTES: number;
7
+ export declare const DEFAULT_ORPHAN_GRACE_SEC = 3600;
8
+ export declare const MAINTENANCE_INTERVAL_MS = 60000;
9
+ export declare function envInt(key: string, fallback: number): number;
10
+ export declare function ownerUid(): number | undefined;
11
+ export declare function defaultRootDir(): string;
12
+ /** A shell-safe, path-safe file extension derived from the artifact path or type. */
13
+ export declare function extensionFor(relativePath: string | null, contentType: string): string;
14
+ /** A PID is treated as live unless the OS reports it definitively gone (ESRCH). */
15
+ export declare function processMayBeAlive(pid: number): boolean;
16
+ export declare class ArtifactCacheError extends Error {
17
+ constructor(message: string);
18
+ }
19
+ /** The stored bytes do not hash to the stored digest; the load must fail closed. */
20
+ export declare class ArtifactCacheDigestError extends ArtifactCacheError {
21
+ }
22
+ /** The batch cannot be admitted without evicting a still-leased entry. */
23
+ export declare class ArtifactCacheQuotaError extends ArtifactCacheError {
24
+ }
25
+ export interface CacheArtifactInput {
26
+ artifactUuid: string;
27
+ sha256: string;
28
+ /** Authoritative UTF-8 bytes; `sha256` is the digest over exactly these. */
29
+ text: string;
30
+ relativePath: string | null;
31
+ contentType: string;
32
+ }
33
+ export interface CachedArtifact {
34
+ /** Absolute `file://` URL the materialize command curls. */
35
+ url: string;
36
+ /** Absolute path of the published file inside this process's namespace. */
37
+ path: string;
38
+ bytes: number;
39
+ }
40
+ export interface ArtifactLocalCacheOptions {
41
+ rootDir?: string;
42
+ ttlSec?: number;
43
+ maxEntries?: number;
44
+ maxBytes?: number;
45
+ orphanGraceSec?: number;
46
+ now?: () => number;
47
+ }
48
+ export interface PreparedArtifact {
49
+ uuid: string;
50
+ name: string;
51
+ buf: Buffer;
52
+ bytes: number;
53
+ }
54
+ export interface LeaseRecord {
55
+ v: 1;
56
+ name: string;
57
+ bytes: number;
58
+ createdSec: number;
59
+ lastIssuedSec: number;
60
+ expiresSec: number;
61
+ }
62
+ //# sourceMappingURL=artifact-local-cache-support.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"artifact-local-cache-support.d.ts","sourceRoot":"","sources":["../../src/tools/artifact-local-cache-support.ts"],"names":[],"mappings":"AASA,eAAO,MAAM,OAAO,QAAoE,CAAC;AACzF,eAAO,MAAM,SAAS,QAAoB,CAAC;AAC3C,eAAO,MAAM,gBAAgB,UAAU,CAAC;AACxC,eAAO,MAAM,YAAY,WAAW,CAAC;AACrC,eAAO,MAAM,mBAAmB,MAAM,CAAC;AACvC,eAAO,MAAM,iBAAiB,QAAmB,CAAC;AAClD,eAAO,MAAM,wBAAwB,OAAO,CAAC;AAC7C,eAAO,MAAM,uBAAuB,QAAS,CAAC;AAE9C,wBAAgB,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAK5D;AAED,wBAAgB,QAAQ,IAAI,MAAM,GAAG,SAAS,CAE7C;AAED,wBAAgB,cAAc,IAAI,MAAM,CAGvC;AAED,qFAAqF;AACrF,wBAAgB,YAAY,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,CAMrF;AAED,mFAAmF;AACnF,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAOtD;AAED,qBAAa,kBAAmB,SAAQ,KAAK;gBAC/B,OAAO,EAAE,MAAM;CAI5B;AAED,oFAAoF;AACpF,qBAAa,wBAAyB,SAAQ,kBAAkB;CAAG;AAEnE,0EAA0E;AAC1E,qBAAa,uBAAwB,SAAQ,kBAAkB;CAAG;AAElE,MAAM,WAAW,kBAAkB;IACjC,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,4EAA4E;IAC5E,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,cAAc;IAC7B,4DAA4D;IAC5D,GAAG,EAAE,MAAM,CAAC;IACZ,2EAA2E;IAC3E,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,yBAAyB;IACxC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,WAAW;IAC1B,CAAC,EAAE,CAAC,CAAC;IACL,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;CACpB"}
@@ -0,0 +1,61 @@
1
+ /**
2
+ * Support for the STDIO local artifact cache (ADR 0040): identity and path
3
+ * helpers, tunable quotas, lease records, and the fail-closed error types. Kept
4
+ * separate from `artifact-local-cache.ts` so the cache class stays within the
5
+ * file-size gate. Nothing here touches the filesystem.
6
+ */
7
+ import os from 'node:os';
8
+ import path from 'node:path';
9
+ export const UUID_RE = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;
10
+ export const SHA256_RE = /^[a-f0-9]{64}$/i;
11
+ export const NAMESPACE_PREFIX = 'sqns-';
12
+ export const LEASE_SUFFIX = '.lease';
13
+ export const DEFAULT_MAX_ENTRIES = 256;
14
+ export const DEFAULT_MAX_BYTES = 64 * 1024 * 1024;
15
+ export const DEFAULT_ORPHAN_GRACE_SEC = 3600;
16
+ export const MAINTENANCE_INTERVAL_MS = 60_000;
17
+ export function envInt(key, fallback) {
18
+ const raw = process.env[key];
19
+ if (raw === undefined || raw.trim() === '')
20
+ return fallback;
21
+ const parsed = Number.parseInt(raw.trim(), 10);
22
+ return Number.isFinite(parsed) && parsed > 0 ? parsed : fallback;
23
+ }
24
+ export function ownerUid() {
25
+ return typeof process.getuid === 'function' ? process.getuid() : undefined;
26
+ }
27
+ export function defaultRootDir() {
28
+ const uid = ownerUid();
29
+ return path.join(os.tmpdir(), `squadrules-artifact-cache-${uid === undefined ? 'na' : String(uid)}`);
30
+ }
31
+ /** A shell-safe, path-safe file extension derived from the artifact path or type. */
32
+ export function extensionFor(relativePath, contentType) {
33
+ const fromPath = relativePath ? path.extname(relativePath).replace(/^\./, '') : '';
34
+ const subtype = contentType.split('/')[1] ?? '';
35
+ const candidate = fromPath || subtype.replace(/^x-/, '');
36
+ const sanitized = candidate.replace(/[^A-Za-z0-9]/g, '').slice(0, 8);
37
+ return sanitized.length > 0 ? sanitized : 'bin';
38
+ }
39
+ /** A PID is treated as live unless the OS reports it definitively gone (ESRCH). */
40
+ export function processMayBeAlive(pid) {
41
+ try {
42
+ process.kill(pid, 0);
43
+ return true;
44
+ }
45
+ catch (err) {
46
+ return err.code !== 'ESRCH';
47
+ }
48
+ }
49
+ export class ArtifactCacheError extends Error {
50
+ constructor(message) {
51
+ super(message);
52
+ this.name = 'ArtifactCacheError';
53
+ }
54
+ }
55
+ /** The stored bytes do not hash to the stored digest; the load must fail closed. */
56
+ export class ArtifactCacheDigestError extends ArtifactCacheError {
57
+ }
58
+ /** The batch cannot be admitted without evicting a still-leased entry. */
59
+ export class ArtifactCacheQuotaError extends ArtifactCacheError {
60
+ }
61
+ //# sourceMappingURL=artifact-local-cache-support.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"artifact-local-cache-support.js","sourceRoot":"","sources":["../../src/tools/artifact-local-cache-support.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,55 @@
1
+ import { ArtifactCacheDigestError, ArtifactCacheError, ArtifactCacheQuotaError, type ArtifactLocalCacheOptions, type CacheArtifactInput, type CachedArtifact } from './artifact-local-cache-support.js';
2
+ export { ArtifactCacheDigestError, ArtifactCacheError, ArtifactCacheQuotaError };
3
+ export type { ArtifactLocalCacheOptions, CacheArtifactInput, CachedArtifact };
4
+ export declare class ArtifactLocalCache {
5
+ private readonly rootDir;
6
+ private readonly ttlSec;
7
+ private readonly maxEntries;
8
+ private readonly maxBytes;
9
+ private readonly orphanGraceSec;
10
+ private readonly now;
11
+ private namespace;
12
+ private lock;
13
+ private maintenance;
14
+ constructor(options?: ArtifactLocalCacheOptions);
15
+ /**
16
+ * Verify and publish a whole activation batch, or fail it entirely. Digest
17
+ * verification and quota preflight run before any write, so a bad artifact or
18
+ * an over-quota batch never leaves a partially usable cache behind.
19
+ */
20
+ publishBatch(entries: readonly CacheArtifactInput[]): Promise<Map<string, CachedArtifact>>;
21
+ /** Remove entries whose lease has expired. Returns the number pruned. */
22
+ pruneExpired(): Promise<number>;
23
+ /**
24
+ * Scavenge namespaces whose owner PID is dead, whose newest lease has expired,
25
+ * and whose grace period has passed. Never touches a live process's namespace,
26
+ * including this one; ambiguous liveness is treated as live.
27
+ */
28
+ scavengeOrphans(): Promise<number>;
29
+ startPeriodicMaintenance(intervalMs?: number): void;
30
+ stopPeriodicMaintenance(): void;
31
+ private runMaintenance;
32
+ private prepare;
33
+ private preflightQuota;
34
+ private publishOne;
35
+ /**
36
+ * True only when `finalPath` is an existing regular file whose bytes match the
37
+ * digest. The path is resolved exactly once: it is opened read-only with
38
+ * `O_NOFOLLOW` (so a symlink fails the open with `ELOOP` instead of being
39
+ * followed), and both the type check and the read run through that single
40
+ * descriptor. Operating on the opened fd instead of re-resolving the path after
41
+ * a stat removes the check-then-read race on `finalPath`.
42
+ */
43
+ private matchesDigest;
44
+ private ensureNamespace;
45
+ private ensureRoot;
46
+ private writeFileAtomic;
47
+ private readLease;
48
+ private listLeases;
49
+ private pruneExpiredIn;
50
+ private newestLeaseExpiry;
51
+ private withLock;
52
+ }
53
+ /** The process-wide stdio cache; created on first use with periodic maintenance. */
54
+ export declare function getArtifactLocalCache(): ArtifactLocalCache;
55
+ //# sourceMappingURL=artifact-local-cache.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"artifact-local-cache.d.ts","sourceRoot":"","sources":["../../src/tools/artifact-local-cache.ts"],"names":[],"mappings":"AAyBA,OAAO,EACL,wBAAwB,EACxB,kBAAkB,EAClB,uBAAuB,EAcvB,KAAK,yBAAyB,EAC9B,KAAK,kBAAkB,EACvB,KAAK,cAAc,EAGpB,MAAM,mCAAmC,CAAC;AAE3C,OAAO,EAAE,wBAAwB,EAAE,kBAAkB,EAAE,uBAAuB,EAAE,CAAC;AACjF,YAAY,EAAE,yBAAyB,EAAE,kBAAkB,EAAE,cAAc,EAAE,CAAC;AAU9E,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IACpC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAClC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAS;IACxC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAe;IACnC,OAAO,CAAC,SAAS,CAAuB;IACxC,OAAO,CAAC,IAAI,CAAuC;IACnD,OAAO,CAAC,WAAW,CAA+C;gBAEtD,OAAO,GAAE,yBAA8B;IAUnD;;;;OAIG;IACG,YAAY,CAAC,OAAO,EAAE,SAAS,kBAAkB,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IAehG,yEAAyE;IACnE,YAAY,IAAI,OAAO,CAAC,MAAM,CAAC;IAOrC;;;;OAIG;IACG,eAAe,IAAI,OAAO,CAAC,MAAM,CAAC;IAqBxC,wBAAwB,CAAC,UAAU,SAA0B,GAAG,IAAI;IASpE,uBAAuB,IAAI,IAAI;YAOjB,cAAc;IAS5B,OAAO,CAAC,OAAO;IAkBf,OAAO,CAAC,cAAc;YAuBR,UAAU;IAkBxB;;;;;;;OAOG;YACW,aAAa;YAiBb,eAAe;YAUf,UAAU;YAYV,eAAe;YAaf,SAAS;YAST,UAAU;YAgBV,cAAc;YAYd,iBAAiB;YAQjB,QAAQ;CAQvB;AAID,oFAAoF;AACpF,wBAAgB,qBAAqB,IAAI,kBAAkB,CAM1D"}