@plurnk/plurnk-service 0.21.0 → 0.22.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.
Files changed (88) hide show
  1. package/README.md +6 -6
  2. package/SPEC.md +347 -291
  3. package/dist/Paths.d.ts +4 -0
  4. package/dist/Paths.d.ts.map +1 -1
  5. package/dist/Paths.js +20 -0
  6. package/dist/Paths.js.map +1 -1
  7. package/dist/content/edited-span.js +2 -2
  8. package/dist/content/edited-span.js.map +1 -1
  9. package/dist/content/matcher.js +1 -1
  10. package/dist/content/matcher.js.map +1 -1
  11. package/dist/content/mimetype-binary.js +1 -1
  12. package/dist/content/mimetype-binary.js.map +1 -1
  13. package/dist/core/ChannelWrite.js +2 -2
  14. package/dist/core/ChannelWrite.js.map +1 -1
  15. package/dist/core/Engine.d.ts.map +1 -1
  16. package/dist/core/Engine.js +65 -44
  17. package/dist/core/Engine.js.map +1 -1
  18. package/dist/core/ExecutorRegistry.js +1 -1
  19. package/dist/core/ExecutorRegistry.js.map +1 -1
  20. package/dist/core/PluginLoader.js +1 -1
  21. package/dist/core/PluginLoader.js.map +1 -1
  22. package/dist/core/SchemeRegistry.js +1 -1
  23. package/dist/core/SchemeRegistry.js.map +1 -1
  24. package/dist/core/caps/DbChannelCaps.js +1 -1
  25. package/dist/core/caps/DbChannelCaps.js.map +1 -1
  26. package/dist/core/caps/DbEntryCaps.js +1 -1
  27. package/dist/core/caps/DbEntryCaps.js.map +1 -1
  28. package/dist/core/caps/SchemeCtxImpl.js +1 -1
  29. package/dist/core/caps/SchemeCtxImpl.js.map +1 -1
  30. package/dist/core/fork.d.ts +5 -0
  31. package/dist/core/fork.d.ts.map +1 -0
  32. package/dist/core/fork.js +47 -0
  33. package/dist/core/fork.js.map +1 -0
  34. package/dist/core/git-membership.js +4 -4
  35. package/dist/core/git-membership.js.map +1 -1
  36. package/dist/core/git-state.js +1 -1
  37. package/dist/core/git-state.js.map +1 -1
  38. package/dist/core/packet-wire.js +7 -7
  39. package/dist/core/packet-wire.js.map +1 -1
  40. package/dist/schemes/File.js +6 -6
  41. package/dist/schemes/File.js.map +1 -1
  42. package/dist/schemes/_entry-crud.js +2 -2
  43. package/dist/schemes/_entry-crud.js.map +1 -1
  44. package/dist/schemes/_entry-find.js +1 -1
  45. package/dist/schemes/_entry-find.js.map +1 -1
  46. package/dist/schemes/_entry-graph.js +1 -1
  47. package/dist/schemes/_entry-graph.js.map +1 -1
  48. package/dist/schemes/_entry-manifest.js +1 -1
  49. package/dist/schemes/_entry-manifest.js.map +1 -1
  50. package/dist/schemes/_entry-ops.js +6 -6
  51. package/dist/schemes/_entry-ops.js.map +1 -1
  52. package/dist/schemes/_entry-semantic.js +1 -1
  53. package/dist/schemes/_entry-semantic.js.map +1 -1
  54. package/dist/schemes/_entry-send.js +3 -3
  55. package/dist/schemes/_entry-send.js.map +1 -1
  56. package/dist/server/ClientConnection.js +3 -3
  57. package/dist/server/ClientConnection.js.map +1 -1
  58. package/dist/server/Daemon.d.ts +2 -2
  59. package/dist/server/Daemon.js +4 -4
  60. package/dist/server/Daemon.js.map +1 -1
  61. package/dist/server/MethodRegistry.js +1 -1
  62. package/dist/server/MethodRegistry.js.map +1 -1
  63. package/dist/server/envelope.d.ts +1 -0
  64. package/dist/server/envelope.d.ts.map +1 -1
  65. package/dist/server/envelope.js +19 -6
  66. package/dist/server/envelope.js.map +1 -1
  67. package/dist/server/methods/_dispatchAsPlurnk.d.ts +7 -0
  68. package/dist/server/methods/_dispatchAsPlurnk.d.ts.map +1 -0
  69. package/dist/server/methods/_dispatchAsPlurnk.js +23 -0
  70. package/dist/server/methods/_dispatchAsPlurnk.js.map +1 -0
  71. package/dist/server/methods/entry_read.js +1 -1
  72. package/dist/server/methods/entry_read.js.map +1 -1
  73. package/dist/server/methods/log_read.js +1 -1
  74. package/dist/server/methods/log_read.js.map +1 -1
  75. package/dist/server/methods/loop_cancel.js +1 -1
  76. package/dist/server/methods/loop_cancel.js.map +1 -1
  77. package/dist/server/methods/loop_resolve.js +1 -1
  78. package/dist/server/methods/loop_resolve.js.map +1 -1
  79. package/dist/server/methods/loop_run.d.ts.map +1 -1
  80. package/dist/server/methods/loop_run.js +31 -4
  81. package/dist/server/methods/loop_run.js.map +1 -1
  82. package/dist/server/methods/session_constraints.js +2 -2
  83. package/dist/server/methods/session_constraints.js.map +1 -1
  84. package/dist/server/yolo.js +1 -1
  85. package/dist/server/yolo.js.map +1 -1
  86. package/migrations/0000-00-00.01_schema.sql +7 -7
  87. package/package.json +10 -10
  88. package/requirements.md +1 -1
package/dist/Paths.d.ts CHANGED
@@ -5,5 +5,9 @@ export default class Paths {
5
5
  static grammarGbnf: string;
6
6
  static defaultPersona: string;
7
7
  static defaultRequirements: string;
8
+ static docs(): Array<{
9
+ entryName: string;
10
+ path: string;
11
+ }>;
8
12
  }
9
13
  //# sourceMappingURL=Paths.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Paths.d.ts","sourceRoot":"","sources":["../src/Paths.ts"],"names":[],"mappings":"AAaA,MAAM,CAAC,OAAO,OAAO,KAAK;;IAItB,MAAM,CAAC,UAAU,SAA8C;IAC/D,MAAM,CAAC,kBAAkB,SAA6C;IAKtE,MAAM,CAAC,WAAW,SAAoD;IAKtE,MAAM,CAAC,cAAc,SAAkC;IAIvD,MAAM,CAAC,mBAAmB,SAAuC;CAuBpE"}
1
+ {"version":3,"file":"Paths.d.ts","sourceRoot":"","sources":["../src/Paths.ts"],"names":[],"mappings":"AAcA,MAAM,CAAC,OAAO,OAAO,KAAK;;IAItB,MAAM,CAAC,UAAU,SAA8C;IAC/D,MAAM,CAAC,kBAAkB,SAA6C;IAKtE,MAAM,CAAC,WAAW,SAAoD;IAKtE,MAAM,CAAC,cAAc,SAAkC;IAIvD,MAAM,CAAC,mBAAmB,SAAuC;IA8BjE,MAAM,CAAC,IAAI,IAAI,KAAK,CAAC;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;CAW5D"}
package/dist/Paths.js CHANGED
@@ -9,6 +9,7 @@
9
9
  // re-exports it) so `..` resolves to PACKAGE_ROOT.
10
10
  import { fileURLToPath } from "node:url";
11
11
  import { dirname, resolve } from "node:path";
12
+ import { homedir } from "node:os";
12
13
  export default class Paths {
13
14
  static #PACKAGE_ROOT = resolve(dirname(fileURLToPath(import.meta.url)), "..");
14
15
  static #GRAMMAR_ROOT = dirname(fileURLToPath(import.meta.resolve("@plurnk/plurnk-grammar/package.json")));
@@ -48,5 +49,24 @@ export default class Paths {
48
49
  }
49
50
  return resolve(Paths.#PACKAGE_ROOT, "requirements.md");
50
51
  }
52
+ // Operator reference docs auto-READ into every model run at turn 0.
53
+ // `PLURNK_MD_<ALIAS>=<path>` materializes <path>'s markdown as a
54
+ // `plurnk://<ALIAS>.md` entry the model READs — an idiomatic, userland way
55
+ // to inject standing context (an ordinary entry + READ op, not a bespoke
56
+ // packet section like persona). `~` expands to home; relative paths resolve
57
+ // against the package root. Resolved fresh each call so it tracks the env.
58
+ static docs() {
59
+ const out = [];
60
+ for (const [key, value] of Object.entries(process.env)) {
61
+ if (!key.startsWith("PLURNK_MD_") || typeof value !== "string" || value.length === 0)
62
+ continue;
63
+ const alias = key.slice("PLURNK_MD_".length);
64
+ if (alias.length === 0)
65
+ continue;
66
+ const expanded = value.startsWith("~/") ? resolve(homedir(), value.slice(2)) : value === "~" ? homedir() : value;
67
+ out.push({ entryName: `${alias}.md`, path: resolve(Paths.#PACKAGE_ROOT, expanded) });
68
+ }
69
+ return out;
70
+ }
51
71
  }
52
72
  //# sourceMappingURL=Paths.js.map
package/dist/Paths.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"Paths.js","sourceRoot":"","sources":["../src/Paths.ts"],"names":[],"mappings":"AAAA,gDAAgD;AAChD,EAAE;AACF,gDAAgD;AAChD,+EAA+E;AAC/E,6EAA6E;AAC7E,oCAAoC;AACpC,EAAE;AACF,8EAA8E;AAC9E,mDAAmD;AAEnD,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAE7C,MAAM,CAAC,OAAO,OAAO,KAAK;IACtB,MAAM,CAAC,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;IAC9E,MAAM,CAAC,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,qCAAqC,CAAC,CAAC,CAAC,CAAC;IAE1G,MAAM,CAAC,UAAU,GAAG,OAAO,CAAC,KAAK,CAAC,aAAa,EAAE,YAAY,CAAC,CAAC;IAC/D,MAAM,CAAC,kBAAkB,GAAG,OAAO,CAAC,KAAK,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC;IACtE,qEAAqE;IACrE,wEAAwE;IACxE,uEAAuE;IACvE,mEAAmE;IACnE,MAAM,CAAC,WAAW,GAAG,OAAO,CAAC,KAAK,CAAC,aAAa,EAAE,kBAAkB,CAAC,CAAC;IACtE,iEAAiE;IACjE,gEAAgE;IAChE,uEAAuE;IACvE,iEAAiE;IACjE,MAAM,CAAC,cAAc,GAAG,KAAK,CAAC,sBAAsB,EAAE,CAAC;IACvD,uEAAuE;IACvE,uEAAuE;IACvE,0EAA0E;IAC1E,MAAM,CAAC,mBAAmB,GAAG,KAAK,CAAC,2BAA2B,EAAE,CAAC;IAEjE,yEAAyE;IACzE,kEAAkE;IAClE,mEAAmE;IACnE,oDAAoD;IACpD,MAAM,CAAC,sBAAsB;QACzB,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC;QACvC,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC5C,OAAO,OAAO,CAAC,KAAK,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC;QAC7C,CAAC;QACD,OAAO,OAAO,CAAC,KAAK,CAAC,aAAa,EAAE,YAAY,CAAC,CAAC;IACtD,CAAC;IAED,4EAA4E;IAC5E,2EAA2E;IAC3E,MAAM,CAAC,2BAA2B;QAC9B,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC;QAC5C,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC5C,OAAO,OAAO,CAAC,KAAK,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC;QAC7C,CAAC;QACD,OAAO,OAAO,CAAC,KAAK,CAAC,aAAa,EAAE,iBAAiB,CAAC,CAAC;IAC3D,CAAC"}
1
+ {"version":3,"file":"Paths.js","sourceRoot":"","sources":["../src/Paths.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,9 @@
1
1
  import { diffLines } from "diff";
2
- // §14.6 — the resulting span: the changed region of `updated` (relative to
2
+ // §edit-result-render — the resulting span: the changed region of `updated` (relative to
3
3
  // `original`), line-numbered (1-indexed), with `context` lines of padding above
4
4
  // and below. Diff to find the changed lines, render their post-edit state.
5
5
  // Shared by EDIT result rendering (`_entry-ops`) and the environment-delta
6
- // materialization (`Engine`, §14.5) — both show "the edited area as it is now."
6
+ // materialization (`Engine`, §env-delta) — both show "the edited area as it is now."
7
7
  export const editedSpan = (original, updated, context = 2) => {
8
8
  const rows = [];
9
9
  for (const part of diffLines(original, updated)) {
@@ -1 +1 @@
1
- {"version":3,"file":"edited-span.js","sourceRoot":"","sources":["../../src/content/edited-span.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,MAAM,CAAC;AAEjC,2EAA2E;AAC3E,gFAAgF;AAChF,2EAA2E;AAC3E,2EAA2E;AAC3E,gFAAgF;AAChF,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,QAAgB,EAAE,OAAe,EAAE,OAAO,GAAG,CAAC,EAAU,EAAE;IACjF,MAAM,IAAI,GAAyC,EAAE,CAAC;IACtD,KAAK,MAAM,IAAI,IAAI,SAAS,CAAC,QAAQ,EAAE,OAAO,CAAC,EAAE,CAAC;QAC9C,IAAI,IAAI,CAAC,OAAO;YAAE,SAAS,CAAE,0CAA0C;QACvE,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAClC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,EAAE;YAAE,EAAE,CAAC,GAAG,EAAE,CAAC,CAAE,iCAAiC;QAC3F,KAAK,MAAM,CAAC,IAAI,EAAE;YAAE,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,KAAK,KAAK,IAAI,EAAE,CAAC,CAAC;IAC7E,CAAC;IACD,IAAI,EAAE,GAAG,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC;IACrB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE;QAAE,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;YAAC,IAAI,EAAE,GAAG,CAAC;gBAAE,EAAE,GAAG,CAAC,CAAC;YAAC,EAAE,GAAG,CAAC,CAAC;QAAC,CAAC;IAC1F,IAAI,EAAE,GAAG,CAAC,EAAE,CAAC;QAAC,EAAE,GAAG,CAAC,CAAC;QAAC,EAAE,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;IAAC,CAAC,CAAE,oCAAoC;IACnF,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,GAAG,OAAO,CAAC,CAAC;IACxC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,EAAE,GAAG,OAAO,CAAC,CAAC;IACpD,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,KAAK,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC/F,CAAC,CAAC"}
1
+ {"version":3,"file":"edited-span.js","sourceRoot":"","sources":["../../src/content/edited-span.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,MAAM,CAAC;AAEjC,yFAAyF;AACzF,gFAAgF;AAChF,2EAA2E;AAC3E,2EAA2E;AAC3E,qFAAqF;AACrF,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,QAAgB,EAAE,OAAe,EAAE,OAAO,GAAG,CAAC,EAAU,EAAE;IACjF,MAAM,IAAI,GAAyC,EAAE,CAAC;IACtD,KAAK,MAAM,IAAI,IAAI,SAAS,CAAC,QAAQ,EAAE,OAAO,CAAC,EAAE,CAAC;QAC9C,IAAI,IAAI,CAAC,OAAO;YAAE,SAAS,CAAE,0CAA0C;QACvE,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAClC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,EAAE;YAAE,EAAE,CAAC,GAAG,EAAE,CAAC,CAAE,iCAAiC;QAC3F,KAAK,MAAM,CAAC,IAAI,EAAE;YAAE,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,KAAK,KAAK,IAAI,EAAE,CAAC,CAAC;IAC7E,CAAC;IACD,IAAI,EAAE,GAAG,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC;IACrB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE;QAAE,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;YAAC,IAAI,EAAE,GAAG,CAAC;gBAAE,EAAE,GAAG,CAAC,CAAC;YAAC,EAAE,GAAG,CAAC,CAAC;QAAC,CAAC;IAC1F,IAAI,EAAE,GAAG,CAAC,EAAE,CAAC;QAAC,EAAE,GAAG,CAAC,CAAC;QAAC,EAAE,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;IAAC,CAAC,CAAE,oCAAoC;IACnF,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,GAAG,OAAO,CAAC,CAAC;IACxC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,EAAE,GAAG,OAAO,CAAC,CAAC;IACpD,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,KAAK,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC/F,CAAC,CAAC"}
@@ -14,7 +14,7 @@
14
14
  //
15
15
  // Status: 200 = matches; 204 = matcher applied, zero results; 400 = malformed
16
16
  // matcher expression; 203 = source unparseable for its mimetype → raw bytes as
17
- // text so the model can fall back to regex/visual parsing (SPEC §16.1).
17
+ // text so the model can fall back to regex/visual parsing (SPEC §matcher-dispatch).
18
18
  import { queryGlob, queryRegex, queryJsonpathObject, queryXpathString } from "@plurnk/plurnk-mimetypes";
19
19
  import MimetypeBinary from "./mimetype-binary.js";
20
20
  export default class Matcher {
@@ -1 +1 @@
1
- {"version":3,"file":"matcher.js","sourceRoot":"","sources":["../../src/content/matcher.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"matcher.js","sourceRoot":"","sources":["../../src/content/matcher.ts"],"names":[],"mappings":"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"}
@@ -3,7 +3,7 @@
3
3
  // daughter's functions (mandate: static-method class); call sites stay
4
4
  // `MimetypeBinary.isBinaryMimetype(...)`.
5
5
  //
6
- // isBinaryMimetype — enforces 415 on binary entries (SPEC §16.9)
6
+ // isBinaryMimetype — enforces 415 on binary entries (SPEC §op-invariants)
7
7
  // isLineNavigableMimetype — decides the render layer's `N:\t` line prefixes
8
8
  // TEXT_PRIMITIVE_MIMETYPE — text/markdown, the auto-derived text default
9
9
  import { MimetypeClassifier, TEXT_PRIMITIVE_MIMETYPE as _TEXT_PRIMITIVE_MIMETYPE } from "@plurnk/plurnk-schemes";
@@ -1 +1 @@
1
- {"version":3,"file":"mimetype-binary.js","sourceRoot":"","sources":["../../src/content/mimetype-binary.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,sEAAsE;AACtE,uEAAuE;AACvE,0CAA0C;AAC1C,EAAE;AACF,yEAAyE;AACzE,8EAA8E;AAC9E,2EAA2E;AAC3E,OAAO,EAAE,kBAAkB,EAAE,uBAAuB,IAAI,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAEjH,MAAM,CAAC,OAAO,OAAO,cAAc;IAC/B,MAAM,CAAC,uBAAuB,GAAG,wBAAwB,CAAC;IAC1D,MAAM,CAAC,gBAAgB,CAAC,QAAgB,IAAa,OAAO,kBAAkB,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IACpG,MAAM,CAAC,cAAc,CAAC,QAAgB,IAAa,OAAO,kBAAkB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IAChG,MAAM,CAAC,uBAAuB,CAAC,QAAgB,IAAa,OAAO,kBAAkB,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IAClH,MAAM,CAAC,yBAAyB,CAAC,QAAmC,IAAY,OAAO,kBAAkB,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"mimetype-binary.js","sourceRoot":"","sources":["../../src/content/mimetype-binary.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,sEAAsE;AACtE,uEAAuE;AACvE,0CAA0C;AAC1C,EAAE;AACF,kFAAkF;AAClF,8EAA8E;AAC9E,2EAA2E;AAC3E,OAAO,EAAE,kBAAkB,EAAE,uBAAuB,IAAI,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAEjH,MAAM,CAAC,OAAO,OAAO,cAAc;IAC/B,MAAM,CAAC,uBAAuB,GAAG,wBAAwB,CAAC;IAC1D,MAAM,CAAC,gBAAgB,CAAC,QAAgB,IAAa,OAAO,kBAAkB,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IACpG,MAAM,CAAC,cAAc,CAAC,QAAgB,IAAa,OAAO,kBAAkB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IAChG,MAAM,CAAC,uBAAuB,CAAC,QAAgB,IAAa,OAAO,kBAAkB,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IAClH,MAAM,CAAC,yBAAyB,CAAC,QAAmC,IAAY,OAAO,kBAAkB,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC"}
@@ -1,5 +1,5 @@
1
- // Channel-write helpers for streaming schemes. SPEC §5.6 (channel state),
2
- // §7.1 (subscription registry), §13.6 (stream/event notification).
1
+ // Channel-write helpers for streaming schemes. SPEC §channel-state (channel state),
2
+ // §subscriptions (subscription registry), §notifications (stream/event notification).
3
3
  //
4
4
  // Schemes import these and call them as their connection lifecycle progresses.
5
5
  // Helpers update entry_channels (content / state) and subscriptions, and emit
@@ -1 +1 @@
1
- {"version":3,"file":"ChannelWrite.js","sourceRoot":"","sources":["../../src/core/ChannelWrite.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ChannelWrite.js","sourceRoot":"","sources":["../../src/core/ChannelWrite.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"Engine.d.ts","sourceRoot":"","sources":["../../src/core/Engine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Engine.d.ts","sourceRoot":"","sources":["../../src/core/Engine.ts"],"names":[],"mappings":"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"}
@@ -14,7 +14,7 @@ import SchemeCtxImpl from "./caps/SchemeCtxImpl.js";
14
14
  // projection and digest projection are structurally one function — no
15
15
  // drift between wire and digest possible.
16
16
  import PacketWire from "./packet-wire.js";
17
- // SPEC §3.6: writer must be in target scheme's manifest.writableBy.
17
+ // SPEC §scheme-surface: writer must be in target scheme's manifest.writableBy.
18
18
  // OPEN/FOLD/READ/FIND are not gated — they curate the log or read, never mutating an entry.
19
19
  const MUTATING_OPS = new Set(["EDIT", "SEND", "COPY", "MOVE", "EXEC", "KILL"]);
20
20
  const DEFAULT_MAX_STRIKES = 3;
@@ -56,7 +56,7 @@ const readMaxCommands = () => {
56
56
  return n;
57
57
  };
58
58
  // Resolution timeout — proposed entries auto-cancel if nothing arrives
59
- // within this window. SPEC.md §0.5 (proposal lifecycle) + §13.5 (loop.resolve).
59
+ // within this window. SPEC.md §engine-rails (proposal lifecycle) + §methods (loop.resolve).
60
60
  const PROPOSAL_TIMEOUT_DEFAULT_MS = 300000;
61
61
  const readProposalTimeoutMs = () => {
62
62
  const raw = process.env.PLURNK_PROPOSAL_TIMEOUT_MS;
@@ -77,7 +77,7 @@ const pathnameFromPath = (path) => {
77
77
  // loop terminal). No strike, no telemetry.
78
78
  const TURN_STATUS_IMPLICIT_CONTINUE = 102;
79
79
  // Status assigned to a turn that emitted NO ops at all. Strike-worthy; the
80
- // action routes through telemetry.errors[] (§15.1).
80
+ // action routes through telemetry.errors[] (§telemetry).
81
81
  const TURN_STATUS_NO_OPS = 422;
82
82
  // Rail #38: action-entry statuses that DON'T accumulate strikes. Model adapted
83
83
  // to a finding (not_found, op_not_supported); no penalty. Rummy parallel:
@@ -189,18 +189,18 @@ class Engine {
189
189
  #schemes;
190
190
  #mimetypes;
191
191
  #budgetCeiling;
192
- // Write-time tokenizer (SPEC §14.2). Synchronous per the provider
193
- // contract (§2.1). Populated from the active provider's countTokens via
192
+ // Write-time tokenizer (SPEC §tokenomics). Synchronous per the provider
193
+ // contract (§provider-surface). Populated from the active provider's countTokens via
194
194
  // the Daemon; a divisor tripwire stands in only for bare/standalone
195
195
  // construction before a provider is wired (same boot affordance as
196
- // Mimetypes, §4.5). Real counts come from provider.countTokens.
196
+ // Mimetypes, §mimetype-surface). Real counts come from provider.countTokens.
197
197
  #tokenize;
198
198
  // Boot-discovered runtime executors. Daemon builds + sets via
199
199
  // setExecutors at start(); undefined until then (and in bare tests).
200
200
  #executors;
201
201
  // Per-loop transient buffer of actionless failures pending surface in the
202
202
  // NEXT packet's user.telemetry.errors[]. Drained by #buildTelemetryErrors.
203
- // Map<loopId, TelemetryError[]>. SPEC §15.1.
203
+ // Map<loopId, TelemetryError[]>. SPEC §telemetry.
204
204
  #telemetryBuffer = new Map();
205
205
  // Rail #38 strike state per loop. `streak` = consecutive struck turns;
206
206
  // resets on a clean turn. `turnErrors` is bumped externally by per-turn
@@ -210,7 +210,7 @@ class Engine {
210
210
  // Proposal lifecycle: pending dispatch pauses waiting for resolution.
211
211
  // Engine.runTurn awaits the promise when a scheme returns status 202;
212
212
  // Engine.resolveProposal feeds the resolution back in. Map is per-log-
213
- // entry-id; entries clear on resolution. SPEC.md §0.5 + §13.5 (loop.resolve).
213
+ // entry-id; entries clear on resolution. SPEC.md §engine-rails + §methods (loop.resolve).
214
214
  #pendingProposals = new Map();
215
215
  // External observers of proposal lifecycle events. Daemon subscribes
216
216
  // here to push `loop/proposal` notifications when an entry enters
@@ -230,7 +230,7 @@ class Engine {
230
230
  // buffer is also broadcast live to the connected client(s) on the
231
231
  // session. Without this, the client sees `loop/terminated` with a
232
232
  // status code but has no way to surface why the loop degraded.
233
- // Per-grammar 0.17.0 protocol — see SPEC §15.1.
233
+ // Per-grammar 0.17.0 protocol — see SPEC §telemetry.
234
234
  #telemetryEventNotify;
235
235
  // Cached plurnk GBNF — read once on the first constrained generate (#189).
236
236
  #gbnfCache = null;
@@ -248,7 +248,7 @@ class Engine {
248
248
  discovery: { registry: emptyRegistry(), handlers: new Map() },
249
249
  });
250
250
  this.#budgetCeiling = readCeiling();
251
- // Tripwire default matches the Mimetypes boot affordance (SPEC §4.5):
251
+ // Tripwire default matches the Mimetypes boot affordance (SPEC §mimetype-surface):
252
252
  // the divisor stands in only until the provider-backed tokenizer is
253
253
  // wired by the Daemon. Real counts come from provider.countTokens.
254
254
  this.#tokenize = tokenize ?? ((text) => Math.ceil(text.length / 4));
@@ -270,7 +270,7 @@ class Engine {
270
270
  return this.#gbnfCache;
271
271
  }
272
272
  // Per-loop usage totals (#197): SUM the loop's turns (usage is stored per
273
- // turn, §14.2). Surfaced on loop.run + loop/terminated so clients render real
273
+ // turn, §tokenomics). Surfaced on loop.run + loop/terminated so clients render real
274
274
  // token/cost numbers. costPico is the stored pico-dollar unit.
275
275
  async loopUsage(loopId) {
276
276
  const row = await this.#db.engine_loop_usage.get({ loop_id: loopId });
@@ -360,7 +360,7 @@ class Engine {
360
360
  cleanup(row.status < 400 ? "graceful" : "forceful", `loop_terminal_${row.status}`);
361
361
  return { turnIds, finalStatus: row.status, hitMaxTurns: false, reason: "external" };
362
362
  }
363
- if (turnIds.length >= maxTurns) {
363
+ if (maxTurns >= 0 && turnIds.length >= maxTurns) {
364
364
  await this.#db.engine_loop_cancel.run({ loop_id: loopId });
365
365
  cleanup("forceful", "max_turns");
366
366
  return { turnIds, finalStatus: 499, hitMaxTurns: true, reason: "max_turns" };
@@ -370,7 +370,7 @@ class Engine {
370
370
  turnNumber: turnIds.length + 1, maxTurns,
371
371
  });
372
372
  turnIds.push(turn.turnId);
373
- // SPEC §14.4: budget hard-stop — packet won't fit even collapsed → abandon.
373
+ // SPEC §grinder: budget hard-stop — packet won't fit even collapsed → abandon.
374
374
  if (turn.budgetHardStop) {
375
375
  await this.#db.engine_loop_cancel.run({ loop_id: loopId });
376
376
  cleanup("forceful", "budget_overflow");
@@ -389,7 +389,7 @@ class Engine {
389
389
  const cycle = _a.detectCycle(state.history, minCycles, maxCyclePeriod);
390
390
  if (cycle.detected)
391
391
  state.turnErrors++;
392
- // SPEC §14.4: a non-soft grinder fire counts toward the strike streak.
392
+ // SPEC §grinder: a non-soft grinder fire counts toward the strike streak.
393
393
  if (turn.budgetStruck)
394
394
  state.turnErrors++;
395
395
  this.#strikeState.set(loopId, state);
@@ -400,7 +400,7 @@ class Engine {
400
400
  // 3. turnErrors — externally bumped by per-turn rails (#39 cycle).
401
401
  // Struck → streak++; clean → streak = 0. Threshold → abandon.
402
402
  // Strike accounting is engine-internal bookkeeping. Per rummy
403
- // precedent (plugins/error/error.js#verdict) and SPEC §15.1
403
+ // precedent (plugins/error/error.js#verdict) and SPEC §telemetry
404
404
  // policy: model sees errors that happened (parse_error,
405
405
  // action_failure), never the engine's accounting about them
406
406
  // (strike counts, cycle detection, sudden-death threshold).
@@ -463,6 +463,27 @@ class Engine {
463
463
  // otherwise.
464
464
  let nextActionIndex = 1;
465
465
  if (seq === 1) {
466
+ // Operator doc READs (PLURNK_MD_<ALIAS>). The docs were materialized
467
+ // as plurnk://<entry> entries by the plurnk run (loop_run, via the
468
+ // §actor-boundary keystone); foist a READ of each into THIS turn-0 so the model
469
+ // reads them inline. It sees only the READ — the materializing EDIT
470
+ // lives in the plurnk run's log, never the model's.
471
+ for (const doc of Paths.docs()) {
472
+ const docTarget = {
473
+ kind: "url", raw: `plurnk://${doc.entryName}`, scheme: "plurnk",
474
+ username: null, password: null, hostname: null, port: null,
475
+ pathname: doc.entryName, params: {}, fragment: null,
476
+ };
477
+ const docRead = {
478
+ op: "READ", suffix: "", signal: null, target: docTarget,
479
+ lineMarker: null, body: null, position: { line: 1, column: 1 },
480
+ };
481
+ await this.dispatch({
482
+ statement: docRead, sessionId, runId, loopId, turnId,
483
+ sequence: nextActionIndex, origin: "plurnk", onDispatch,
484
+ });
485
+ nextActionIndex++;
486
+ }
466
487
  const promptRow = await this.#db.engine_get_loop_prompt.get({ loop_id: loopId });
467
488
  if (promptRow !== undefined && typeof promptRow.prompt === "string" && promptRow.prompt.length > 0) {
468
489
  const promptPath = {
@@ -499,7 +520,7 @@ class Engine {
499
520
  mimetypes: this.#mimetypes,
500
521
  pushTelemetry: (event) => this.#pushTelemetry(sessionId, loopId, event),
501
522
  };
502
- // SPEC §14.3 D4/D5 — git-ls-files workspace membership, resolved at
523
+ // SPEC §membership D4/D5 — git-ls-files workspace membership, resolved at
503
524
  // prompt-composition (EMI is eager + exhaustive — git is the only bound). When the
504
525
  // session's project_root is a git working tree, tracked files are
505
526
  // members without a client `add`; active members are materialized
@@ -511,11 +532,11 @@ class Engine {
511
532
  channels: { body: { content: await EntryManifest.buildManifestBody(systemCtx), mimetype: "application/json" } },
512
533
  tags: [],
513
534
  }, systemCtx, "plurnk");
514
- // §14.5 — pre-seed environment deltas (changes since this run last
535
+ // §env-delta — pre-seed environment deltas (changes since this run last
515
536
  // reconciled) as system EDIT rows, before the packet composes; advance
516
537
  // the action index past them so model ops continue after.
517
538
  nextActionIndex += await this.#materializeEnvironmentDeltas({ sessionId, runId, loopId, turnId, fromSequence: nextActionIndex });
518
- // SPEC §15.1 — git working-tree state for the telemetry section, read once
539
+ // SPEC §telemetry — git working-tree state for the telemetry section, read once
519
540
  // (a service-side `git status` shell-out) and threaded into the budget
520
541
  // rebuild too so it isn't re-shelled on overflow.
521
542
  const gitStatus = await GitState.status(this.#db, sessionId, this.#loopAborts.get(loopId)?.signal);
@@ -526,7 +547,7 @@ class Engine {
526
547
  initialMessages: messages, persona, requirements, runId, loopId,
527
548
  currentTurnSeq: seq, provider, gitStatus,
528
549
  });
529
- // SPEC §14.4 — budget grinder, pre-LLM: reclaim window on actual overflow.
550
+ // SPEC §grinder — budget grinder, pre-LLM: reclaim window on actual overflow.
530
551
  const enforced = await this.#enforceBudget({
531
552
  packet: requestPacket, provider, runId, loopId, turnId, sessionId, turnNumber,
532
553
  rebuild: (telemetryErrors) => this.#buildRequestPacket({
@@ -641,13 +662,13 @@ class Engine {
641
662
  // Zero ops is NOT an error to report — the model knows it emitted
642
663
  // nothing. Strike accounting (engine-internal) treats it as a
643
664
  // struck turn; the model just sees an empty packet next turn.
644
- // Per SPEC §15.1 gamification policy.
665
+ // Per SPEC §telemetry gamification policy.
645
666
  return { turnId, status: turnStatus, statuses, fingerprint: _a.fingerprintTurn(packetAssistant.ops), budgetStruck: enforced.struck, budgetHardStop: false };
646
667
  }
647
668
  // Split the wire-level ProviderResponse into the two destinations:
648
669
  // packet.assistant gets the model's emission (content, ops, reasoning);
649
670
  // Turn columns get the call-metadata (usage, finishReason, model).
650
- // SPEC §2.1 / plurnk-providers#1: text-fragment scraping policy lives
671
+ // SPEC §provider-surface / plurnk-providers#1: text-fragment scraping policy lives
651
672
  // here — engine owns the parse and the scraping rule, providers stay
652
673
  // grammar-unaware.
653
674
  //
@@ -739,7 +760,7 @@ class Engine {
739
760
  // template scaffolding adds bytes, but the subtotal tracks "what
740
761
  // the model has to process" closely enough for budget diagnostics.
741
762
  const countTokens = (t) => provider.countTokens(t);
742
- // Budget readout (SPEC.md §14.2). Two-pass: measure the wire-rendered
763
+ // Budget readout (SPEC.md §tokenomics). Two-pass: measure the wire-rendered
743
764
  // index/log sections (budget-independent), install the readout with a
744
765
  // tokensFree placeholder, measure the assembled total, resolve free,
745
766
  // substitute. Subtotals come from the real render — meta and fences
@@ -786,7 +807,7 @@ class Engine {
786
807
  }
787
808
  return lines.join("\n");
788
809
  }
789
- // SPEC §14.4 — the budget grinder. Runs pre-LLM (in runTurn, after the packet
810
+ // SPEC §grinder — the budget grinder. Runs pre-LLM (in runTurn, after the packet
790
811
  // is built, before provider.generate); fires only on actual overflow. Two
791
812
  // passes, re-measuring between. Hides (never deletes) — the prior turn's logs,
792
813
  // then the catalog except the manifest lifeline. The strike it raises and the
@@ -817,7 +838,7 @@ class Engine {
817
838
  this.#emitBudgetOverflow(sessionId, loopId, folded);
818
839
  return { packet: current, fit: measure(current) <= ceiling, struck: turnNumber > 1 };
819
840
  }
820
- // The model-facing budget event (SPEC §14.4, §15.1): which entries left the
841
+ // The model-facing budget event (SPEC §grinder, §telemetry): which entries left the
821
842
  // window, by scheme — the model's own terms, no mechanism vocabulary. The
822
843
  // strike this overflow triggers stays engine-internal (gamification policy).
823
844
  #emitBudgetOverflow(sessionId, loopId, folded) {
@@ -848,12 +869,12 @@ class Engine {
848
869
  assistantRaw,
849
870
  };
850
871
  }
851
- // Render-time mimetype invocation (SPEC §44-handlers-fire-render-time},
852
- // §5.15.1-preview-is-handler-output}). For each (run, entry, channel)
872
+ // Render-time mimetype invocation (SPEC §mimetypemimetype-handlers-fire-render-time},
873
+ // §per-entry-channelsper-entry-channels-preview-is-handler-output}). For each (run, entry, channel)
853
874
  // with indexed=1, pass the channel's current content through
854
875
  // mimetype.preview(content, budget). State is included verbatim — engine
855
- // does NOT branch on it (§5.65.6-engine-does-not-branch-on-state}).
856
- // SPEC §15.1: model-facing alert surface.
876
+ // does NOT branch on it (§channel-statechannel-state-engine-does-not-branch-on-state}).
877
+ // SPEC §telemetry: model-facing alert surface.
857
878
  // Two sources, merged on each packet build:
858
879
  // 1. Previous-turn action-bound failures (status_rx >= 400 on log_entries).
859
880
  // 2. Engine-buffered actionless failures (no_send, parse, watchdog, rails).
@@ -878,12 +899,12 @@ class Engine {
878
899
  });
879
900
  return [...this.#drainTelemetry(loopId), ...actionFailures];
880
901
  }
881
- // SPEC §15 packet.system.log — chronological action-entries for the loop.
902
+ // SPEC §packet packet.system.log — chronological action-entries for the loop.
882
903
  // Snapshot is taken at packet build (pre-dispatch this turn), so it
883
904
  // reflects "what has happened before this turn." Each row carries a
884
905
  // log://<loop_seq>/<turn_seq>/<sequence> coordinate the model can READ.
885
906
  async #buildLog(runId) {
886
- // SPEC §0.6: runs own log entries — log is the run's history,
907
+ // SPEC §packet-terms: runs own log entries — log is the run's history,
887
908
  // not the loop's. Span all loops in the run so the model sees
888
909
  // earlier loops' work as conversational memory.
889
910
  //
@@ -915,9 +936,9 @@ class Engine {
915
936
  source: r.source,
916
937
  }));
917
938
  }
918
- // §14.5 — at pre-turn build, reconcile each session entry against this run's
939
+ // §env-delta — at pre-turn build, reconcile each session entry against this run's
919
940
  // watermark. First sight sets it silently; a content change materializes a
920
- // delta-EDIT (origin=plurnk, the §14.6 result span) at the next sequence and
941
+ // delta-EDIT (origin=plurnk, the §edit-result-render result span) at the next sequence and
921
942
  // advances the mark. Excludes plurnk:// (manifest/prompt) and bare/file
922
943
  // entries (scheme NULL — the EMI's territory). Returns the count so the
923
944
  // caller advances nextActionIndex past the pre-seeded deltas.
@@ -928,7 +949,7 @@ class Engine {
928
949
  for (const r of rows) {
929
950
  // plurnk:// is engine-derived (manifest/prompt) — skip. File entries
930
951
  // (scheme=null) ARE included: an out-of-band disk divergence, re-read by
931
- // git membership, surfaces here as the §14.3 EMI signal (source="file").
952
+ // git membership, surfaces here as the §membership EMI signal (source="file").
932
953
  if (r.scheme === "plurnk")
933
954
  continue;
934
955
  const wm = await this.#db.engine_get_watermark.get({
@@ -978,7 +999,7 @@ class Engine {
978
999
  result = denial;
979
1000
  }
980
1001
  else {
981
- // SPEC §3.6 + plurnk-schemes#1: action-entry-as-outcome. Scheme-handler
1002
+ // SPEC §scheme-surface + plurnk-schemes#1: action-entry-as-outcome. Scheme-handler
982
1003
  // exceptions become the action-entry's outcome (status 500), not a
983
1004
  // thrown bubble. The log_entry is the durable record; engine never
984
1005
  // skips it. Logging failures (#writeLog throws) are NOT caught —
@@ -1019,7 +1040,7 @@ class Engine {
1019
1040
  }
1020
1041
  const logEntryId = await this.#writeLog({ statement, result, runId, loopId, turnId, sequence, origin });
1021
1042
  onDispatch?.(logEntryId);
1022
- // Proposal lifecycle (SPEC.md §0.5 + §13.5 loop.resolve). When a
1043
+ // Proposal lifecycle (SPEC.md §engine-rails + §methods loop.resolve). When a
1023
1044
  // scheme returns status 202, the entry is written as state='proposed';
1024
1045
  // dispatch then PAUSES on a per-entry waiter until resolution
1025
1046
  // arrives via Engine.resolveProposal (from the loop/resolve RPC,
@@ -1281,7 +1302,7 @@ class Engine {
1281
1302
  });
1282
1303
  return { status, outcome, body: resolution.body };
1283
1304
  }
1284
- // SPEC §3.6: engine rejects writes whose origin is outside the target
1305
+ // SPEC §scheme-surface: engine rejects writes whose origin is outside the target
1285
1306
  // scheme's manifest.writableBy.
1286
1307
  // - Read-side ops (READ, FIND, OPEN, FOLD) are not gated.
1287
1308
  // - SEND broadcast (path=null) has no target scheme; not gated.
@@ -1374,7 +1395,7 @@ class Engine {
1374
1395
  const dstPath = statement.body;
1375
1396
  if (srcPath === null)
1376
1397
  return { status: 400, error: "MOVE requires source path" };
1377
- // MOVE is relocation only — deletion is KILL's job (§6.5). The /dev/null
1398
+ // MOVE is relocation only — deletion is KILL's job (§move). The /dev/null
1378
1399
  // and null-body delete-by-MOVE back-compat is retired: no silent debt.
1379
1400
  if (dstPath === null)
1380
1401
  return { status: 400, error: "MOVE requires a destination; use KILL to delete" };
@@ -1389,7 +1410,7 @@ class Engine {
1389
1410
  if (copyResult.status >= 400)
1390
1411
  return copyResult;
1391
1412
  const srcPathname = pathnameFromPath(srcPath);
1392
- // If the dest write is a pending proposal (file dest → §14.3 review), the
1413
+ // If the dest write is a pending proposal (file dest → §membership review), the
1393
1414
  // source-delete MUST wait until the dest actually lands — a rejected
1394
1415
  // proposal would otherwise lose the source. Thread it into the resolution:
1395
1416
  // dispatch deletes the source AFTER the dest applies on accept.
@@ -1478,7 +1499,7 @@ class Engine {
1478
1499
  return { status: 415, error: `mimetype mismatch on channel '${channelName}': ${channelData.mimetype} vs ${expectedMimetype}` };
1479
1500
  }
1480
1501
  }
1481
- // `<L>` source range slicing per SPEC.md §16.9 (symmetric with READ
1502
+ // `<L>` source range slicing per SPEC.md §op-invariants (symmetric with READ
1482
1503
  // `<L>` — source range, no line-number prefix).
1483
1504
  // Applied to every channel of the source entry. Binary channels return
1484
1505
  // 415 since line semantics don't apply.
@@ -1501,9 +1522,9 @@ class Engine {
1501
1522
  const tags = (Array.isArray(statement.signal) && statement.signal.length > 0)
1502
1523
  ? statement.signal
1503
1524
  : entry.tags;
1504
- // 304/409 on an existing destination (SPEC §6.4): a re-copy that would write
1525
+ // 304/409 on an existing destination (SPEC §copy): a re-copy that would write
1505
1526
  // exactly what's already there — same channel contents, same tags — is a no-op
1506
- // (304), mirroring EDIT's 304-on-noop (§6.1). A divergent destination is a real
1527
+ // (304), mirroring EDIT's 304-on-noop (§edit). A divergent destination is a real
1507
1528
  // collision (409); COPY/MOVE never clobbers.
1508
1529
  if (dstExisting !== null && dstExisting.status === 200 && dstExisting.entry !== null) {
1509
1530
  const dstChannels = dstExisting.entry.channels;
@@ -1517,7 +1538,7 @@ class Engine {
1517
1538
  return { status: 409, error: `COPY/MOVE destination exists: ${dstSchemeName}://${dstPathname}` };
1518
1539
  }
1519
1540
  const writeResult = await dstHandler.writeEntry(dstPathname, { channels, tags }, ctx);
1520
- // A file dest returns 202 (disk write → §14.3 review): propagate the
1541
+ // A file dest returns 202 (disk write → §membership review): propagate the
1521
1542
  // proposal so dispatch runs the gate + routes applyResolution to the dest.
1522
1543
  if (writeResult.status === 202)
1523
1544
  return { status: 202, attrs: writeResult.attrs, body: writeResult.body };
@@ -1545,7 +1566,7 @@ class Engine {
1545
1566
  if (typeof method !== "function")
1546
1567
  return { status: 501 };
1547
1568
  // External @plurnk/plurnk-schemes-* siblings receive the DB-free SchemeCtx
1548
- // (caps), never the raw PlurnkSchemeContext (schemes SPEC §5). The dynamic
1569
+ // (caps), never the raw PlurnkSchemeContext (schemes SPEC §channels). The dynamic
1549
1570
  // dispatch is typed for in-tree schemes; the cast bridges the ctx shapes —
1550
1571
  // the sibling reads caps, the in-tree handler reads db.
1551
1572
  if (this.#schemes.isExternal(schemeName)) {
@@ -1617,7 +1638,7 @@ class Engine {
1617
1638
  turn_id: turnId,
1618
1639
  sequence: sequence,
1619
1640
  origin,
1620
- source: null, // dispatch entries are self-authored; §14.5 deltas set this
1641
+ source: null, // dispatch entries are self-authored; §env-delta deltas set this
1621
1642
  op: statement.op,
1622
1643
  suffix: statement.suffix,
1623
1644
  signal: this.#signalToJson(statement.signal),