@plurnk/plurnk-service 4.0.0 → 4.2.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 (92) hide show
  1. package/.env.defaults +6 -3
  2. package/SPEC.md +87 -33
  3. package/dist/build-info.json +1 -1
  4. package/dist/completions/_plurnk-service +1 -1
  5. package/dist/completions/plurnk-service.bash +1 -1
  6. package/dist/completions/plurnk-service.fish +1 -0
  7. package/dist/core/AdmittedTurnExecutor.d.ts +3 -1
  8. package/dist/core/AdmittedTurnExecutor.d.ts.map +1 -1
  9. package/dist/core/AdmittedTurnExecutor.js +4 -0
  10. package/dist/core/AdmittedTurnExecutor.js.map +1 -1
  11. package/dist/core/AmbientMembers.d.ts +18 -0
  12. package/dist/core/AmbientMembers.d.ts.map +1 -0
  13. package/dist/core/AmbientMembers.js +81 -0
  14. package/dist/core/AmbientMembers.js.map +1 -0
  15. package/dist/core/CoreSchemeServices.d.ts.map +1 -1
  16. package/dist/core/CoreSchemeServices.js +2 -0
  17. package/dist/core/CoreSchemeServices.js.map +1 -1
  18. package/dist/core/DataStatementRunner.d.ts.map +1 -1
  19. package/dist/core/DataStatementRunner.js +9 -0
  20. package/dist/core/DataStatementRunner.js.map +1 -1
  21. package/dist/core/Dispatcher.d.ts +1 -0
  22. package/dist/core/Dispatcher.d.ts.map +1 -1
  23. package/dist/core/Dispatcher.js +36 -4
  24. package/dist/core/Dispatcher.js.map +1 -1
  25. package/dist/core/FileAddress.d.ts +1 -0
  26. package/dist/core/FileAddress.d.ts.map +1 -1
  27. package/dist/core/FileAddress.js +8 -1
  28. package/dist/core/FileAddress.js.map +1 -1
  29. package/dist/core/LogWriter.d.ts +4 -2
  30. package/dist/core/LogWriter.d.ts.map +1 -1
  31. package/dist/core/LogWriter.js +7 -3
  32. package/dist/core/LogWriter.js.map +1 -1
  33. package/dist/core/OperationHistory.d.ts +18 -0
  34. package/dist/core/OperationHistory.d.ts.map +1 -0
  35. package/dist/core/OperationHistory.js +55 -0
  36. package/dist/core/OperationHistory.js.map +1 -0
  37. package/dist/core/PacketBuilder.d.ts.map +1 -1
  38. package/dist/core/PacketBuilder.js +16 -50
  39. package/dist/core/PacketBuilder.js.map +1 -1
  40. package/dist/core/TurnOps.d.ts +0 -3
  41. package/dist/core/TurnOps.d.ts.map +1 -1
  42. package/dist/core/TurnOps.js +0 -27
  43. package/dist/core/TurnOps.js.map +1 -1
  44. package/dist/core/TurnRunner.d.ts.map +1 -1
  45. package/dist/core/TurnRunner.js +14 -12
  46. package/dist/core/TurnRunner.js.map +1 -1
  47. package/dist/core/caps/SchemeCtxImpl.d.ts +1 -0
  48. package/dist/core/caps/SchemeCtxImpl.d.ts.map +1 -1
  49. package/dist/core/caps/SchemeCtxImpl.js +6 -0
  50. package/dist/core/caps/SchemeCtxImpl.js.map +1 -1
  51. package/dist/core/git-membership.d.ts +3 -0
  52. package/dist/core/git-membership.d.ts.map +1 -1
  53. package/dist/core/git-membership.js +52 -0
  54. package/dist/core/git-membership.js.map +1 -1
  55. package/dist/core/notifications.d.ts +5 -0
  56. package/dist/core/notifications.d.ts.map +1 -1
  57. package/dist/core/packet-wire.d.ts +6 -4
  58. package/dist/core/packet-wire.d.ts.map +1 -1
  59. package/dist/core/packet-wire.js +19 -6
  60. package/dist/core/packet-wire.js.map +1 -1
  61. package/dist/core/plurnk-uri.d.ts +1 -1
  62. package/dist/core/plurnk-uri.d.ts.map +1 -1
  63. package/dist/core/plurnk-uri.js +6 -5
  64. package/dist/core/plurnk-uri.js.map +1 -1
  65. package/dist/core/scheme-types.d.ts +20 -0
  66. package/dist/core/scheme-types.d.ts.map +1 -1
  67. package/dist/man/plurnk-service.1 +10 -4
  68. package/dist/schemes/File.d.ts.map +1 -1
  69. package/dist/schemes/File.js +12 -5
  70. package/dist/schemes/File.js.map +1 -1
  71. package/dist/schemes/Log.d.ts.map +1 -1
  72. package/dist/schemes/Log.js +2 -32
  73. package/dist/schemes/Log.js.map +1 -1
  74. package/dist/schemes/Log.sql +0 -9
  75. package/dist/schemes/_entry-find.d.ts +2 -1
  76. package/dist/schemes/_entry-find.d.ts.map +1 -1
  77. package/dist/schemes/_entry-find.js +72 -9
  78. package/dist/schemes/_entry-find.js.map +1 -1
  79. package/dist/server/Daemon.d.ts.map +1 -1
  80. package/dist/server/Daemon.js +13 -0
  81. package/dist/server/Daemon.js.map +1 -1
  82. package/dist/server/EnvFunctionality.d.ts.map +1 -1
  83. package/dist/server/EnvFunctionality.js +1 -0
  84. package/dist/server/EnvFunctionality.js.map +1 -1
  85. package/dist/server/Functionality.d.ts.map +1 -1
  86. package/dist/server/Functionality.js +5 -0
  87. package/dist/server/Functionality.js.map +1 -1
  88. package/dist/server/MembersFunctionality.d.ts.map +1 -1
  89. package/dist/server/MembersFunctionality.js +7 -1
  90. package/dist/server/MembersFunctionality.js.map +1 -1
  91. package/docs/members.md +21 -13
  92. package/package.json +19 -19
package/.env.defaults CHANGED
@@ -49,6 +49,9 @@ PLURNK_SERVICE_FILE_CREATE_SCOPE=root
49
49
  PLURNK_SERVICE_MEMBERS_MODEL_SCOPE=namespace
50
50
  # Enable declared membership rules by default; per-alias _ENABLED overrides this.
51
51
  PLURNK_MEMBERS_ENABLED=1
52
+ # Admit an untracked, unignored, unexcluded project file the model READs, or whose content its FIND
53
+ # pattern matches, as the model's own member definition, with a member_added notice; 0 refuses as before.
54
+ PLURNK_MEMBERS_AUTO_ADD=1
52
55
  # Lowercase aliases use _ for -. A leading ! in the glob excludes.
53
56
  # PLURNK_MEMBERS_docs=docs/**
54
57
  # PLURNK_MEMBERS_no_locks=!**/*.lock
@@ -166,9 +169,9 @@ PLURNK_SERVICE_BUDGET_LARGEST_ITEMS=5
166
169
  PLURNK_SERVICE_PREVIEW_LINES=100
167
170
  # Independent bound on the same page, Unicode code points; CRLF counts as one separator.
168
171
  PLURNK_SERVICE_PREVIEW_CHARS=16000
169
- # Assistant replay ({§emission-history}): none, latest, or all eligible turns from this loop, each as the
170
- # NOTEs it wrote, in the model's voice; every other operation is omitted. The context wall may omit
171
- # the whole section; source evidence never changes.
172
+ # Assistant replay ({§emission-history}): none, latest, or all eligible turns from this loop, each
173
+ # turn's complete operations together, immediately before that turn's receipts. The context wall may omit
174
+ # the whole history; source evidence never changes.
172
175
  PLURNK_SERVICE_EMISSION_HISTORY=all
173
176
  # Optional reasoning memory ({§reasoning-row}): 1 adds the turn's preview before its emission or results,
174
177
  # only when room remains after all requested results and diagnostics. Otherwise omit it silently. 0 disables it.
package/SPEC.md CHANGED
@@ -484,7 +484,7 @@ direct-entry-plus-directory count; `-1` enables the ordinary markerless page;
484
484
  unset / `0` disables previews. `log://` is absent because the current worker's
485
485
  log already renders in present mode.
486
486
 
487
- §worker-initialization-entry **Model-worker initialization is a real `_plurnk` operation turn.** A model worker's first loop begins with one packetless `{ producer="_plurnk", kind="initialization" }` turn submitted through {§turn-ops-admission-path}. Its program — the READ/FIND surveys, opened by one NOTE and closed by another when the surveys run — is recorded as the turn's `ops://` source and executed through {§op-execution-order} exactly as a model's program is; it authors no reasoning and reads none back. The two NOTEs show the card's NOTE practice in the example turn: the opening one carries the aside of the card's first NOTE example, `<!-- plan -->`, and is the worker's plan in numbered steps, each with its purpose: survey what exists, read the Open Message and restate what it asks for and what will show it is done, then do the work recording each finding, decision and next action in a NOTE; the closing one carries the aside of the card's last NOTE example, `<!-- next -->`, and reads `Read and resolve the Open Message.` No emission row is fabricated ({§emission-row}): the first request sees the NOTEs and the surveys' ordinary results, never an assistant-content copy of the program. The initial message arrives as an inbound SEND in the first model turn ({§message-arrival}); initialization never READs it, and neither initialization nor later turns manufacture a task inventory. Every orienting row is structurally classified `_plurnk` and `init`. The namespace surveys and their asides follow {§actor-boundary-catalog-preview}.
487
+ §worker-initialization-entry **Model-worker initialization is a real `_plurnk` operation turn.** A model worker's first loop begins with one packetless `{ producer="_plurnk", kind="initialization" }` turn submitted through {§turn-ops-admission-path}. Its program — the READ/FIND surveys, opened by one NOTE and closed by another when the surveys run — is recorded as the turn's `ops://` source and executed through {§op-execution-order} exactly as a model's program is; it authors no reasoning and reads none back. The two NOTEs show the card's NOTE practice in the example turn, both carrying the aside of the card's plan example, `<!-- plan -->`: the opening one is the worker's plan in numbered steps, each with its purpose: survey what exists, read the Open Message and restate what it asks for and what will show it is done, then do the work saving all new facts, ideas and plans in NOTEs for later turns; the closing one names the next step and reads `Read and resolve the Open Message.` No emission row is fabricated ({§emission-row}): the first request sees the NOTEs and the surveys' ordinary results, never an assistant-content copy of the program. The initial message arrives as an inbound SEND in the first model turn ({§message-arrival}); initialization never READs it, and neither initialization nor later turns manufacture a task inventory. Every orienting row is structurally classified `_plurnk` and `init`. The namespace surveys and their asides follow {§actor-boundary-catalog-preview}.
488
488
 
489
489
  Incoming messages publish once as inbound SEND rows in the first model turn
490
490
  ({§message-arrival}); initialization neither READs nor archives them. The turn
@@ -782,7 +782,9 @@ and never re-fetch a match.
782
782
  in a home directory or a monorepo exposes exactly what was committed or added (the
783
783
  non-member rule, {§fs-write-nonmember}: no read, no leak, no overwrite). Every
784
784
  exception is a named clause in the register ({§membership-model-universe}), admits
785
- files by an exact creation record with recorded provenance, and never by `git add`.
785
+ files by an exact record with recorded provenance, and never by `git add`; the one
786
+ exception that admits on a read is the operator's own ruling, `PLURNK_MEMBERS_AUTO_ADD`
787
+ ({§membership-auto-add}, #1154), and its knob is the guard.
786
788
  Changing this clause, the register, or the composition is an operator ruling recorded
787
789
  on the issue that lands it — never an implementation convenience, never a side effect
788
790
  of making a file visible to solve the problem at hand.
@@ -799,8 +801,10 @@ and never re-fetch a match.
799
801
  is not projected. (4) A definition the model proposes through the `members`
800
802
  family ({§members-functionality}), admitted only under the operator's ceiling
801
803
  `PLURNK_SERVICE_MEMBERS_MODEL_SCOPE` ({§members-model-scope}), projected with source
802
- `model`, and never admitted past the repository's ignore rules or an exclusion.
803
- Nothing else.
804
+ `model`, and never admitted past the repository's ignore rules or an exclusion. (5) Under
805
+ `PLURNK_MEMBERS_AUTO_ADD=1`, the file a model's READ reaches for, or whose text its FIND
806
+ pattern matches, admitted as that same model definition of the exact path once the read's
807
+ admission proposal is accepted ({§membership-auto-add}). Nothing else.
804
808
  - §membership-git-membership The workspace owns the Git repository containing
805
809
  `project_root`. Its tracked files (`git ls-files` semantics) are members with
806
810
  no explicit overlay; when the root is a package inside a monorepo, the
@@ -832,7 +836,40 @@ and never re-fetch a match.
832
836
 
833
837
  **The overlay — `include | exclude`.** `workspace_constraints` holds the `members` family's projected definitions and the engine's creation records ({§members-projection}). Resolved membership is `(project repository files ∪ include) − exclude`.
834
838
 
835
- - §membership-auto-add **Auto-add** — the project repository's ambient membership is its tracked `ls-files`, with `git` origin; an untracked file is never an ambient member ({§membership-baseline}). An accepted creation is incorporated by an exact creation record, never by `git add` ({§membership-model-universe}); a record that cannot be written fails the creation transaction, never an orphan ({§file-create-no-orphans}).
839
+ - §membership-auto-add **Auto-add: the model's reads propose the admission of what they reach.** With
840
+ `PLURNK_MEMBERS_AUTO_ADD=1` (the shipped default), a model dispatch's READ and FIND see one
841
+ universe beyond membership: the files inside the root that the governing repository neither
842
+ tracks nor ignores (`git ls-files --others --exclude-standard`; every file under the root when no
843
+ repository governs it), minus every exclusion. Nothing in it is a member or is materialized
844
+ until an admission is accepted. A read of content proposes that admission as a 202 the proposal
845
+ lifecycle settles ({§proposal-202-pauses}): its review body is the definition, `{"files": [...]}`,
846
+ and its effect is `host`, so policy accepts it where nobody reviews (`PLURNK_SERVICE_EFFECT_HOST=auto`
847
+ or `PLURNK_SERVICE_PROPOSALS=accept`) and the reviewer decides otherwise. Acceptance admits the files as
848
+ the Worker's own `members (add)` of each exact path, under the model's scope, with one `member_added`
849
+ notice each, and runs the operation again; its result settles the row ({§proposal-accept-applies}).
850
+ Rejection settles 400 `rejected` and admits nothing ({§proposal-reject-fails}). A path the scope refuses
851
+ is proposed no further within the operation, which then misses it as a non-member.
852
+
853
+ | Operation | Effect on a universe file |
854
+ |---|---|
855
+ | READ of its exact path, or a READ glob that selects it | Proposes its admission; accepted, it is admitted and read in the same operation |
856
+ | FIND listing it, by exact path or glob | Listed with the catalog row read from disk, marked `untracked`; not admitted |
857
+ | FIND whose text pattern matches inside it | Proposes the admission of every candidate matched; accepted, the selection runs again over members, so only an admitted match shows its evidence |
858
+ | FIND by an indexed dialect (`~`, `&`) | Members only: nothing unadmitted is indexed |
859
+ | A binary or oversized candidate | Listed; matched from disk by no dialect; admitted by READ |
860
+
861
+ Tracked files are ambient members with `git` origin; an untracked file is never an ambient member — it enters
862
+ membership only by this admission, with `constraint` origin and `model` source. An accepted creation is incorporated by an exact creation record, never by `git add` ({§membership-model-universe}); a record that cannot be written fails the creation transaction, never an orphan ({§file-create-no-orphans}).
863
+ Admission is the Worker's own `members (add)` of the exact path — provenance `model-proposal`,
864
+ under `PLURNK_SERVICE_MEMBERS_MODEL_SCOPE` narrowed by the workspace ({§members-model-scope}), so
865
+ scope `none` admits nothing and the read is refused as it is with the knob off — published before
866
+ the operation runs again ({§functionality-model-mutation}), and announced by one `member_added`
867
+ notice per file ({§notice-directive}). The admission proposal is settled as every host effect is
868
+ ({§proposal-disposition}): by policy where nobody reviews, by the reviewer under `review`; `reject`
869
+ refuses every admission. A path the repository ignores, a path an exclusion matches, a
870
+ directory and anything beyond the root are not in the universe: their refusals are unchanged
871
+ ({§membership-read-refusal}, {§file-directory-target}). A person's client operation reads
872
+ members only. `PLURNK_MEMBERS_AUTO_ADD=0` restores the baseline exactly.
836
873
  - §membership-overlay-include **`include`** — admit a file Git misses through a targeted pattern scan (files only), with `constraint` origin. `source: "members"` is a projected human definition, `source: "model"` a projected model definition, `source: "create"` the exact durable record of an accepted creation. Only `members` inclusions override active Git ignore. In a Git-absent root, inclusions are the sole file-membership source.
837
874
  - §membership-overlay-exclude **`exclude`** — a `!glob` definition removes a tracked or included file: resolution drops matches ({§path-glob-matching}) and reconciles so the entry set *equals* the member set. The lever to exclude a committed-but-oversized or sensitive tracked file; exclusions mask creation records without deleting their provenance ({§fs-create-masked}).
838
875
  - §membership-reconcile-sets **Reconciliation is two set statements.** Once the desired set is composed — `(git ls-files ∪ include) − exclude`, glob evaluation and Git shell-outs being the process's own — it lands as one `INSERT … SELECT FROM json_each` with the same idempotent provenance update as a single registration, and every overlay-owned member outside it leaves in one `DELETE … WHERE pathname NOT IN (json_each) RETURNING`, its prior body riding out of the statement. A path that also left disk truth (no longer a candidate at all) becomes a divergence from that prior content; an exclusion is silent. No per-path statement, no set difference outside the database.
@@ -1360,7 +1397,7 @@ The contracts, and the violation of each that strikes:
1360
1397
  | review contract | none: an eligible final response joins live obligations ({§completion-joins-live-work}) or continues to observe results ({§completion-defers-to-results}) |
1361
1398
  | progress contract | a detected operation cycle (`MIN_CYCLES` × period), or an admitted turn with no operation ({§empty-turn}) |
1362
1399
  | frame contract | emission attempts exhausted with no admissible turn |
1363
- | provider response contract | the provider returned an invalid response |
1400
+ | provider response contract | the provider returned an invalid response, or ended generation with an error ({§provider-generation-failed}) |
1364
1401
 
1365
1402
  Errors and issues are NOT contract violations. Each keeps its own disposition
1366
1403
  and never strikes: exploration misses (404, 416) and unsupported capability
@@ -1664,9 +1701,9 @@ At `project_root=/`, `/src/x.md` and `src/x.md` resolve to the same key. Without
1664
1701
 
1665
1702
  Folders and globs select members in those same filesystem coordinates. Parent-directory selectors may include in-root and outside-root members; they never scan or admit unrelated disk contents. Catalog paths and grouped subtree selectors use the reusable spelling in {§file-url}.
1666
1703
 
1667
- §file-path-normalization An authored model file operation using an absolute or home-relative path receives a `scheme:file/path_normalized` warning Notice naming its project-relative address. COPY/MOVE cover each such operand. The Notice neither changes the operation result nor causes a strike, and does not repeat for automatic observations or already-relative paths. Root-mounted workspaces and spellings that must remain file URLs ({§file-url}) need no such notice. It never suggests that an unadmitted path has become a member.
1704
+ §file-path-normalization **A path inside the root is spelled relative; a path beyond it is spelled absolute.** A key inside the project root renders as the key; a key beyond the root renders as the absolute path it names, never as a `../` climb, and either spelling resolves to the same key. An authored model file operation whose spelling is not its path's canonical address — an absolute or home-relative spelling of a path inside the root, or a home-relative spelling of one beyond it — receives a `scheme:file/path_normalized` warning Notice naming that address; an absolute spelling of a path beyond the root is already canonical and earns none. COPY/MOVE cover each such operand. The Notice neither changes the operation result nor causes a strike, and does not repeat for automatic observations or spellings already canonical. Root-mounted workspaces and spellings that must remain file URLs ({§file-url}) need no such notice. It never suggests that an unadmitted path has become a member.
1668
1705
 
1669
- §fs-canonical-name **One canonical identity: the literal Git-relative key.** Member keys follow gitformat-index(5) verbatim (reference edition: git 2.47.3): relative to the workspace `project_root`, without leading slash, `/`-separated, no trailing slash or NUL. Directories are never entries and the root needs no name. When `project_root` is below the containing repository's top level, Git members above it naturally use the same `../`-prefixed CWD-relative names that `git ls-files` emits without `--full-name`; these are not outside-repository mounts. The database stores that root-relative key directly because workspace identity is rooted at the access point. Authored spellings resolve before storage or comparison; stored keys are lexical fixpoints, never reinterpreted as authored input. Rendering quotes target-slot syntax ({§path-parentheses}) and home-like literal names ({§fs-home}), using a file URL where necessary ({§file-url}); resolving the rendered spelling returns the same key.
1706
+ §fs-canonical-name **One canonical identity: the literal Git-relative key.** Member keys follow gitformat-index(5) verbatim (reference edition: git 2.47.3): relative to the workspace `project_root`, without leading slash, `/`-separated, no trailing slash or NUL. Directories are never entries and the root needs no name. When `project_root` is below the containing repository's top level, Git members above it naturally use the same `../`-prefixed CWD-relative names that `git ls-files` emits without `--full-name`; these are not outside-repository mounts. The database stores that root-relative key directly because workspace identity is rooted at the access point. Authored spellings resolve before storage or comparison; stored keys are lexical fixpoints, never reinterpreted as authored input. Rendering quotes target-slot syntax ({§path-parentheses}) and home-like literal names ({§fs-home}), spells a key beyond the root as the absolute path it names ({§file-path-normalization}), and uses a file URL where necessary ({§file-url}); resolving the rendered spelling returns the same key.
1670
1707
 
1671
1708
  §fs-visibility-grantors **File visibility has two represented grantors; Plurnk never invents a private third one.** A file member is admitted by the active Git substrate or by an ordinary `include` row of the overlay. An `include` is either a projected `members` definition ({§members-projection}) or the exact, inspectable record of an accepted creation ({§fs-create-record}); both resolve to `constraint` membership. AGENTS.md remains auto-pulled as POLICY ({§policy-sections}), deliberately not a file member. A physically existing path that neither Git nor an `include` admits does not exist for the model and cannot be overwritten.
1672
1709
 
@@ -1727,7 +1764,7 @@ Every fact names the canonical key, never the host root or an echo of the
1727
1764
  model's spelling. These classes let a caller distinguish a wrong address, an
1728
1765
  invalid range, read-only authority, and occupied hidden state without guessing.
1729
1766
 
1730
- §membership-read-refusal **A file miss speaks of membership, never of the disk.** A file is read only as a member, so every `file` miss — READ, FIND of an exact path, KILL, a pattern EDIT's source, a COPY or MOVE source — is 404 `entry-not-found`, `No member of this workspace is at '<key>'.`, its target rendered as the reusable member address ({§fs-answer-in-canon}, {§file-url}). Recovery offers listing with FIND, creation with EDIT, and admission with `members (add)` as alternatives and presumes none ({§diagnostic-observation}): `` FIND lists paths. EDIT creates files; `members (add)` admits existing files with a `{"files": ["<path>"]}` body. `` The sentence is about the address and is true whether or not a file is there: it neither claims absence nor hints at presence. Beyond the root the engine does not look at the disk at all, so two reads of `../` paths differ only in the name they echo, and their recovery speaks of the address too, true under every members scope: `'<key>' is outside the project root: only a members definition under the operator's namespace scope admits it.` Inside the root occupancy is not secret ({§fs-write-nonmember}), so an exact-path READ of a path that exists on disk but is not a member says so instead — 404 `entry-not-member`, `'<key>' exists on disk but is not a member of this workspace.`, with admission-only recovery; a path the repository ignores, which no model definition admits, carries the members discovery verdict instead: `The repository ignores it: a client or operator members definition can include it, a model definition cannot.` Occupancy may surface there; content never does ({§membership}).
1767
+ §membership-read-refusal **A file miss speaks of membership, never of the disk.** A file is read only as a member, so every `file` miss — READ, FIND of an exact path, KILL, a pattern EDIT's source, a COPY or MOVE source — is 404 `entry-not-found`, `No member of this workspace is at '<key>'.` — a key beyond the root named by the absolute path it renders as ({§file-path-normalization}) — its target rendered as the reusable member address ({§fs-answer-in-canon}, {§file-url}). Recovery offers listing with FIND, creation with EDIT, and admission with `members (add)` as alternatives and presumes none ({§diagnostic-observation}): `` FIND lists paths. EDIT creates files; `members (add)` admits existing files with a `{"files": ["<path>"]}` body. `` The sentence is about the address and is true whether or not a file is there: it neither claims absence nor hints at presence. Beyond the root the engine does not look at the disk at all, so two reads there differ only in the address they echo — the absolute path ({§file-path-normalization}) — and their recovery speaks of the address too, true under every members scope: `'<address>' is outside the project root: only a members definition under the operator's namespace scope admits it.` Inside the root occupancy is not secret ({§fs-write-nonmember}), so an exact-path READ of a path that exists on disk but is not a member says so instead — 404 `entry-not-member`, `'<key>' exists on disk but is not a member of this workspace.`, with admission-only recovery — unless the model's read admits it first ({§membership-auto-add}); a path the repository ignores, which no model definition admits, carries the members discovery verdict instead: `The repository ignores it: a client or operator members definition can include it, a model definition cannot.` Occupancy may surface there; content never does ({§membership}).
1731
1768
 
1732
1769
  §file-directory-target **A directory is named as a directory.** Inside the root, a READ (or other exact-path read), KILL or EDIT whose target is a directory on disk — with or without a trailing slash — is refused `path-is-directory`, never as a missing or non-member file: READ and KILL answer 404, EDIT 403. The detail is `'<key>' is a directory, not a file; <OP> reads/removes/writes one file.`; a READ or KILL carries the listing as its recovery, `` `FIND (<key>/)` lists its files. ``, and an EDIT carries none. Beyond the root the disk stays dark and {§membership-read-refusal} holds unchanged.
1733
1770
 
@@ -2409,7 +2446,7 @@ AST: `{ op: "KILL", target, matcher: MatcherBody | null, lineMarker: TextLineMar
2409
2446
 
2410
2447
  §log-kill-distillation **A log KILL may say what it keeps.** A body on a `log:///` KILL is the model's distillation of what the KILL retires. Whatever the kill's outcome, the body lands as the model's own NOTE row at the next sequence of the same turn — written after the kill's receipt, so it never falls inside the kill's own selection — carrying `attrs.distilled` with the KILL's target as written, so a distillation is distinguishable from a free NOTE while it renders, weighs and curates exactly as one; the dispatch reports two rows written. A kill that misses keeps its distillation beside its visible receipt: what the model wrote about its environment is recorded for the model to possess and retire, never dropped for where the kill aimed. A whitespace-only body is a plain KILL. The kill's own receipt stays hidden as any successful log KILL's does ({§context-verbs}).
2411
2448
 
2412
- KILL deletes context from the **log** (`log:///`, {§packet}). Without a scope it retires the selected rows from the active projection ({§log-history-projection}). With a one-line or inclusive two-line scope it removes only that body's intersecting body-relative physical lines from the readable projection, and the row stays active. An anchor may be one published on that body or one returned by READing its `log:///` coordinate ({§line-anchors}); an anchor absent from the current body selects no line, as with an out-of-bounds numeric line. Scoped KILL is one-way: intervals accumulate, the durable body is untouched, and subsequent access follows {§log-readable-projection}. A scoped KILL on a bodyless row is a friendly 200 no-op with `matched` reported. An emission row is curated whole ({§emission-row}): the unscoped KILL retires it; a line scope on its exact coordinate addresses its legend and retires the NOTEs on the lines it selects, the row staying; on a row with no legend lines the scope is 422 `emission-curated-whole`, whose recovery names the unscoped KILL; a sweep leaves it intact. A KILL that addresses no row is 404 on an exact coordinate and 204 on a sweep ({§log-curation-folder-idiom}). Selection composes target/glob with an optional heading pattern ({§log-curation-set-selection}).
2449
+ KILL deletes context from the **log** (`log:///`, {§packet}). Without a scope it retires the selected rows from the active projection ({§log-history-projection}). With a one-line or inclusive two-line scope it removes only that body's intersecting body-relative physical lines from the readable projection, and the row stays active. An anchor may be one published on that body or one returned by READing its `log:///` coordinate ({§line-anchors}); an anchor absent from the current body selects no line, as with an out-of-bounds numeric line. Scoped KILL is one-way: intervals accumulate, the durable body is untouched, and subsequent access follows {§log-readable-projection}. A scoped KILL on a bodyless row is a friendly 200 no-op with `matched` reported. An emission row is curated whole ({§emission-row}): the unscoped KILL retires it; a line scope on its exact coordinate is 422 `emission-curated-whole`, whose recovery names the unscoped KILL; a sweep leaves it intact. A KILL that addresses no row is 404 on an exact coordinate and 204 on a sweep ({§log-curation-folder-idiom}). Selection composes target/glob with an optional heading pattern ({§log-curation-set-selection}).
2413
2450
 
2414
2451
  §log-target-tolerances **The log target reader accepts four near-misses of the taught form and reads each as the one target it can only have meant.** The card teaches `KILL (log:///1/[1-7]/*/{READ,emission})`; none of the following is taught, and no diagnostic text accompanies any of them. A `|` between complete KILL targets, each a coordinate, prefix or glob ({§log-coordinate-hierarchy}) written bare or as a full `log:///` address, is their union: `log:///1/25/2/EDIT|log:///1/24/3/EDIT` retires both rows; a piece that is none of those refuses the whole target, 400 `kill-failed`, naming the piece; a list that selects nothing is the sweep's 204 unless every piece is an exact coordinate, when it is the exact miss's 404. `|` is not a character of a coordinate, and file paths, where it is one, are untouched. For KILL and FIND alike: a bracketed comma list in a numeric slot is a set, `log:///1/[19,24]/**/sh` reading as `log:///1/{19,24}/**/sh`, since a character class can never match a turn number; a non-numeric literal in a numeric slot, after at least one numeric slot, is the leaf with the missing slots `*`, `log:///1/*/READ` reading as `log:///1/*/*/READ`; and `*` segments between the sequence and the leaf are dropped, `log:///1/3/3/*/READ` reading as `log:///1/3/3/READ`, since no coordinate holds a segment there.
2415
2452
 
@@ -2461,7 +2498,7 @@ The `## Log` section is a sequence of ordinary Markdown records separated by one
2461
2498
  | facts | One strict JSON object in stable alphabetical order. | Present only when a fact exists. Asides, scopes, opaque invocation metadata and result facts belong here, not on the H3. |
2462
2499
  | body | Coordinate-prefixed lines. | Present when the row is visible. |
2463
2500
 
2464
- An emission row's body is not in its record ({§emission-row}); its eligible program follows it as a separate assistant message ({§emission-history}). Patterns retain their literal spelling; a pattern containing a line break is JSON-quoted to keep the H3 on one physical line. Receipts are descriptive records, not reconstructed operation headings. Absent fields are not invented. Every physical body line retains its canonical numeric `N:` or anchored `@hash N:` coordinate, so source text cannot create a record boundary. The section contains records only, with no leading prose or enclosing fence.
2501
+ An emission row's body is not in its record ({§emission-row}); its eligible operations precede their receipts as assistant messages ({§emission-history}). Paired receipts omit duplicated request information under {§paired-receipt}. Patterns retain their literal spelling; a pattern containing a line break is JSON-quoted to keep the H3 on one physical line. Receipts are descriptive records, not reconstructed operation headings. Absent fields are not invented. Every physical body line retains its canonical numeric `N:` or anchored `@hash N:` coordinate, so source text cannot create a record boundary. The section contains records only, with no leading prose or enclosing fence.
2465
2502
 
2466
2503
  §log-mutation-patch **A settled file mutation's row keeps what it did.** When an accepted EDIT,
2467
2504
  COPY, MOVE or KILL writes or removes a text member, the file scheme appends the unified diff of
@@ -2574,7 +2611,7 @@ Authored `metadata` retains its opaque ordered block strings under {§scheme-met
2574
2611
  records the exact READ coordinates sent without controlling retention. Missing immutable bytes are an
2575
2612
  internal integrity failure, never silently dropped content. No ejection message or permanent teaching is
2576
2613
  added. These stable curation weights are not provider-token measurements ({§tokenomics-render-weight-budget}).
2577
- - §packet-token-accounting Every row reports one `tokens` charge on its H3 ({§log-wire-format}): its complete materialized H3, facts, visible body and selected native attachment. The emission-history section is charged separately as assistant-message text ({§emission-history}). The completed record is measured to a fixed point, including the accounting field itself. Hidden text is not charged; metadata-only rows still have a reclaimable charge. Source/FIND-item `tokens` measure source content, not the observation's context footprint. A FIND's nonzero `itemsTokenTotal` weighs the complete matched set; a nonzero `returnedItemsTokenTotal` appears only when the returned page differs. All use stable curation weights, not provider tokens or dollars. Native component accounting follows {§packet-attachment-parts}; ordinary addressability and truthful errors follow {§log-wire-format}.
2614
+ - §packet-token-accounting Every row reports one `tokens` charge on its H3 ({§log-wire-format}): its complete materialized H3, facts, visible body, selected native attachment and any assistant operation owned by that receipt ({§paired-receipt}). Packet accounting measures each actual message once. The completed record is measured to a fixed point, including the accounting field itself. Hidden text is not charged; metadata-only rows still have a reclaimable charge. Source/FIND-item `tokens` measure source content, not the observation's context footprint. A FIND's nonzero `itemsTokenTotal` weighs the complete matched set; a nonzero `returnedItemsTokenTotal` appears only when the returned page differs. All use stable curation weights, not provider tokens or dollars. Native component accounting follows {§packet-attachment-parts}; ordinary addressability and truthful errors follow {§log-wire-format}.
2578
2615
 
2579
2616
  ### §retrieval-packet-metadata READ/FIND packet metadata
2580
2617
 
@@ -2635,9 +2672,9 @@ Eligible programs supply {§emission-history}; every source remains readable reg
2635
2672
  | Body | Frozen at announcement: the canonical rendering ({§statement-rendering}) of the admitted content statements, each whole in a closed fence, text beside them as the NOTEs it became ({§outside-text}). All heading operands, scopes, metadata, patterns and asides remain. Unadmitted forms are absent; a recovered native call ({§native-tool-calls}) appears as the operation it was read as; an operation whose receipt failed stays. Reasoning operations retain their own source and normal receipts, never an assistant-content copy. No body text is inspected for nested operations. |
2636
2673
  | Wire | The record appears in the log; its complete program supplies the readback projection in {§emission-history}. The frozen body and immutable `ops://` source keep every operation and body ({§turn-source-resources}); an explicit READ returns them. |
2637
2674
  | Stability | The projection is fixed from its first appearance, never aged or resized under budget pressure. Already frozen announcements and historical request captures are not rewritten. |
2638
- | Presentation | Born folded: the log record shows its header, never an assistant message. When its turn is replayed ({§emission-history}), the record's lines are the legend of that turn's NOTEs, one numbered line per NOTE with its `log:///` path and weight, and those NOTE rows render nowhere else. |
2639
- | Accounting | The row's `tokens` charges only its rendered record, legend included. The optional emission-history section is measured once as assistant-message text ({§packet-token-accounting}); replacing it never changes older row weights. An explicit source READ has its own ordinary charge. |
2640
- | Curation | Curated whole ({§log-kill-scope}): the unscoped KILL retires it. A line scope on its exact coordinate addresses the legend: the NOTEs on the selected lines retire and the row stays; on a row with no legend lines the scope is 422 `emission-curated-whole`, whose recovery names the unscoped KILL; a sweep whose scope would only trim it leaves it intact. |
2675
+ | Presentation | Born folded: its log record shows its header. Its operations replay together before their receipts under {§emission-history}; NOTE has its ordinary receipt coordinate, not a legend entry. |
2676
+ | Accounting | The row's `tokens` charges only its own record. Each operation's first surviving receipt owns its replay charge ({§paired-receipt}). An explicit source READ has its own ordinary charge. |
2677
+ | Curation | Curated whole ({§log-kill-scope}): an unscoped KILL retires it. A line scope on its exact coordinate is 422 `emission-curated-whole`, whose recovery names the unscoped KILL; a sweep whose scope would only trim it leaves it intact. |
2641
2678
  | Schema | Migration 12 admits `kind="emission"` only on this shape: one per turn, the turn's newest row when written, frozen, and curated whole; it backfills no announcement for earlier turns. FORK copies it with the inherited turns, still naming its writer. |
2642
2679
  | Echoes | A worker that repeats the heading in its own text is tolerated ({§fabricated-log-entry}); the digest counts the echoes. |
2643
2680
 
@@ -4986,6 +5023,9 @@ adapter prepared ({§module-workspace-residency-facet}).
4986
5023
  Admission, tools, documents, Turn 0, and client status consume that publication.
4987
5024
  The coordinator's synchronous `publish` participates in the registry commit;
4988
5025
  its returned undo restores the previous view before rollback reconciles documents.
5026
+ The adapter's `publish` runs inside that same callback, so the family view, the
5027
+ registry and the adapter's live candidate change in one instant, and its undo
5028
+ composes with the view's; the adapter's `commit` follows a committed publication.
4989
5029
  Neither callback performs fallible I/O. Publication failure restores the preceding
4990
5030
  configuration/runtime snapshot; it cannot roll back an external effect of preparation,
4991
5031
  such as a fetched skill source. A failed external effect retains its cause and must not be
@@ -5483,12 +5523,12 @@ adjacent nonempty sections of the same remaining role form one message. With an
5483
5523
  | Message | Role | Content |
5484
5524
  |:--|:--|:--|
5485
5525
  | 1 | `system` | the system slot, as rendered |
5486
- | 2 | `user` | initial retained log records through the first selected emission record |
5487
- | 3… | alternating `assistant`, `user` | each selected complete content program, then the following log records through the next selected emission record; native parts remain beside their READ records ({§packet-attachment-parts}) |
5526
+ | 2 | `user` | initial retained log records, up to the first replayed turn's first surviving receipt |
5527
+ | 3… | alternating `assistant`, `user` | a replayed turn's operations, then that turn's receipts and the records that follow, up to the next replayed turn; native parts remain beside their READ records ({§packet-attachment-parts}) |
5488
5528
  | last | `user` | remaining log records and the current-status footer, from Worker through Open Messages and optional Recap |
5489
5529
 
5490
5530
  Without selected programs, the log and footer coalesce into one user message: system + user.
5491
- Each program follows its own emission record and precedes its subsequent results.
5531
+ Each turn's operations precede its first surviving receipt.
5492
5532
  Log records retain their order; interpolation never groups or relocates their bodies.
5493
5533
  Stored sections retain their original roles and order: reading evidence
5494
5534
  never converts an earlier request into a different envelope.
@@ -5496,7 +5536,7 @@ never converts an earlier request into a different envelope.
5496
5536
  The digest's packet artifacts record the sections, and `.wire.json` reconstructs their text-message
5497
5537
  envelope ({§share-packet-names}); it is not a serialized HTTP capture.
5498
5538
 
5499
- ### §emission-history The turn's NOTEs, in the model's voice
5539
+ ### §emission-history A turn's operations, then its results
5500
5540
 
5501
5541
  | Concern | Contract |
5502
5542
  |---|---|
@@ -5504,15 +5544,27 @@ envelope ({§share-packet-names}); it is not a serialized HTTP capture.
5504
5544
  | Selection | `latest` considers only the immediately preceding completed model inference turn in this loop, never falling back to an older eligible program. `all` considers every completed model inference turn in this loop, in ascending turn order. |
5505
5545
  | Eligibility | An admitted content program with no syntax errors and an active emission row. Rejected attempts, syntactically partial emissions, empty or reasoning-only turns, initialization and other loops supply none. Runtime failures do not disqualify an admitted program. |
5506
5546
  | Vocabulary | Executor identities come from that turn's admitted operation evidence ({§packet-stored-shape}), not the current registry. Disabling or removing a runtime never changes its admitted history. |
5507
- | Content | A replayed turn is its NOTEs: every content NOTE the program admitted, whole and in program order, as the model wrote it, including a NOTE that stood outside its fence ({§outside-text}). Every other operation is omitted; its receipt in the log is its record, and the program stays readable at `ops://`. A NOTE whose log row has been retired is omitted from the replay from the next packet on, so one KILL retires the memory everywhere it shows. Selection uses parsed operations, never text inside their bodies. Join retained NOTEs within each program with one blank line. No placeholders, body redaction or preview. Reasoning operations remain in their own source and receipts. |
5508
- | Legend | The emission row of a replayed turn carries no program preview: its body is the legend of that turn's replayed NOTEs, one numbered line per NOTE, `N:log:///<loop>/<turn>/<sequence>/NOTE · <weight>`, in log order ({§emission-row}). Those NOTE rows render nowhere else in the packet; their text is read in the replay and their handle in the legend. A line scope on the emission row retires the NOTEs on those lines; the unscoped KILL retires the row ({§log-kill-scope}). A NOTE of a turn that is not replayed — an earlier loop, a program omitted at the wall, a reasoning NOTE — renders as an ordinary row with its body. |
5509
- | Placement | Interpolate each selected program immediately after its durable emission record, as an assistant message without a heading or wrapper. Split the user log at that record; following observations stay after the program. No history is collected at the end. With `none` or no retained NOTEs, no assistant section is added; filtering does not make `latest` fall back to an older turn. |
5510
- | Authority | Core assembles the chronological sections before the trusted whole-list transform ({§packet-extension-transform}). Each active emission row owns its program's curation lifetime; retiring it removes only that program, never its immutable source. |
5511
- | Capacity | At the hard context wall, omit the selected history whole before suppressing any result body or native part ({§context-own-rows-fit}). A turn whose replay is omitted is not replayed: its NOTE rows stand in the log as ordinary bodied rows, and the wall's shedding then treats them as any other. A NOTE's text is in the packet once, as replay or as row, never both. Omission lasts through rebuilds of that request; the next request decides afresh. No source, receipt, or stored historical packet is changed. |
5512
- | Accounting | Each program is charged once as its assistant message; the emission row charges only its record, legend included. |
5547
+ | Association | Each dispatched content operation records its ordinal in the turn's frozen canonical program. Resource fan-out retains that ordinal on every concrete receipt. Reasoning operations, arrivals and runtime observations have no content ordinal. Never infer association from matching bodies, paths, or row proximity; older rows without this provenance remain self-describing. |
5548
+ | Content | Replay each associated canonical operation, including its complete body, in its own closed fence; a turn's fences are separated by one blank line. No placeholders, body redaction, preview, or inspection of body text for nested operations. A log-curation KILL's distilled body belongs to its independent NOTE, not to its replay. Reasoning operations remain in their own source and receipts. |
5549
+ | Placement | Put one assistant message holding the turn's surviving operations, in program order, immediately before the turn's first surviving receipt; that turn's receipts, fan-out included, and the records between them follow together in the user role, so the model sees each past response as the batch it wrote. Preserve receipt chronology and concrete fan-out targets. No history is collected at the end. `none` adds no assistant section; filtering never makes `latest` fall back. |
5550
+ | Curation | A retired operation row loses its replay; retiring one fan-out receipt leaves the operation with its surviving receipts. A body-trimmed authored row is not replayed: its ordinary receipt shows the remaining body. Retiring the emission row removes that turn's replay, not its operation results or immutable source. No legend or separate NOTE-curation path exists. |
5551
+ | Authority | Core assembles these chronological sections before the trusted whole-list transform ({§packet-extension-transform}); this is presentation of admitted work, not additional execution or inference. |
5552
+ | Capacity | At the hard context wall, omit the selected history whole before suppressing result bodies or native parts ({§context-own-rows-fit}). Unpaired receipts regain their ordinary request facts and authored bodies. Omission lasts through rebuilds of that request; the next request decides afresh. No source, receipt, or stored historical packet changes. |
5553
+ | Accounting | The first paired receipt's displayed curation weight includes its assistant operation once. Packet accounting measures each actual message once. The emission row charges only its own record. |
5554
+
5555
+ §paired-receipt A paired receipt reports execution information, not a second copy of its request.
5556
+
5557
+ | Information | Paired receipt | Unpaired receipt / explicit log READ |
5558
+ |---|---|---|
5559
+ | Authored body | Lives in the complete assistant operation only | Ordinary body projection |
5560
+ | Authored aside, scope, metadata, pattern and addressed path | Supplied by the operation | Self-describing request facts |
5561
+ | Resolved targets that differ from the request, including fan-out and COPY/MOVE glob operands | Retained on each concrete receipt | Retained |
5562
+ | Retrieval and tool output, landed edit windows, errors, result extents, stream/resource identities and statuses | Retained | Retained |
5563
+
5564
+ Suppression is packet-local. Durable requests, results, exact source and recorded historical packets remain complete.
5513
5565
 
5514
5566
  The initial user segment is `log`; later segments are `log/<first-record-coordinate>`.
5515
- Programs are `emission-history/<emission-record-coordinate>`. These are durable, unique section
5567
+ Operations are `emission-history/<first-surviving-receipt-coordinate>`. These are durable, unique section
5516
5568
  names, not model-facing headings. Only the initial segment has the `Log` header. Section-family
5517
5569
  inspection joins segments in recorded order; wire projection uses their individual roles and
5518
5570
  positions. Stored packets retain the sections actually sent, including older packet layouts.
@@ -5526,7 +5578,7 @@ Conditional absence never reorders the surviving default sections.
5526
5578
  | 1 | system | `definition` | Framework definition; leads the most stable prefix. |
5527
5579
  | 2 | system | `system-policy` | Operator policy; empty content is omitted on the wire. |
5528
5580
  | 3 | system | `inject` | Present only when operator notes are configured. |
5529
- | 4–5 | user / assistant | `log` and `emission-history` segments | Append-mostly chronological history: each selected program follows its emission record and precedes its results ({§emission-history}). |
5581
+ | 4–5 | user / assistant | `log` and `emission-history` segments | Append-mostly chronological history: each replayed turn's operations immediately precede that turn's results ({§emission-history}). |
5530
5582
  | 6 | user | `git` | Per-turn workspace status; empty content is omitted. |
5531
5583
  | 7 | user | `budget` | `Context Curation`; omitted when capacity is unknown. |
5532
5584
  | 8 | user | `worker` | `Worker`: `{"path": "worker://alice", "parent": <address or null>, "loop": L, "turn": T}`, the actor and the coordinate this packet's response becomes ({§packet-current-turn}). |
@@ -5960,21 +6012,22 @@ retain distinct contracts and lifetimes.
5960
6012
  | `parse_advisory` | grammar parser — recoverable near-miss which did not invalidate the parsed statements | YOU SHOULD write the canonical form. | content-offset into the model's emission |
5961
6013
  | `search_progress` | repository materialization/indexing lifecycle ({§persistent-search-index}); structured phase, count, and percent; `level: info`, `warn` when a completed pass carries failed members ({§derivation-member-failure}), `error` on terminal failure | none | none |
5962
6014
  | `git_inspection_refused` | engine membership — automatic Git inspection refused a supplied repository whose config declares a `filter.*` program ({§membership-git-hermetic}); names the key; `level: warn`, once per workspace until the key changes or clears | none | none |
5963
- | `continued_without_note` | engine turn — a continuing or parked model turn that admitted no NOTE ({§continued-without-note}); `level: warn` | YOU MUST emit at least one NOTE in every turn. | none |
6015
+ | `continued_without_note` | engine turn — a continuing or parked model turn that admitted no NOTE ({§continued-without-note}); `level: warn` | YOU MUST persist all new facts, ideas, and plans in NOTEs on every turn. | none |
5964
6016
  | `outside_text` | engine turn — text the emission carried outside its operations, discarded ({§outside-text}); `level: warn` | YOU MUST NOT emit anything except whitespace between fenced operations. | none |
5965
- | `invalid_emission` | engine grammar — a response rejected before dispatch; `level: error` | YOU MUST ONLY emit fenced operations; with the parameters, pattern, and terse aside on the fenced operation line. | content-offset of the parser diagnostic, when it has one |
6017
+ | `invalid_emission` | engine grammar — a response rejected before dispatch; `level: error` | YOU MUST ONLY emit fenced operation batches; with the parameters, pattern, and terse aside on the fenced operation line. | content-offset of the parser diagnostic, when it has one |
5966
6018
  | `output_truncated` | engine capacity or turn — an emission cut at the output allowance ({§output-allowance-notice}); `level: error` when the cut response was rejected, otherwise `warn` | YOU SHOULD emit fewer or shorter operations per turn. | none |
5967
6019
  | `provider_warning` | a provider warning: an SDK compatibility note, or native tool calls in a response that declared none; `level: warn` | YOU MUST NOT emit native tool calls. on the native tool calls; none on a compatibility note | none |
5968
6020
  | `provider_retry` | a provider stream that failed after output began and was answered by a complete retry; `level: warn` | none | none |
5969
6021
  | `provider_unavailable` | engine provider — a provider failure retried within its recovery budget | none | none |
5970
6022
  | `path_normalized` | file scheme — a path resolved to its canonical spelling; `level: warn` | YOU SHOULD address the resolved path. | none |
6023
+ | `member_added` | file scheme — an untracked file the model's READ or FIND reached was admitted as its own member definition ({§membership-auto-add}); `level: warn` | none | none |
5971
6024
  | `read_fanout_bounded` | engine dispatcher — a READ whose glob matched more paths than its resource page selected; `level: warn` | YOU SHOULD narrow the glob, or FIND first. | none |
5972
6025
  | `parse_issues_unavailable` | engine mimetype — parser recovery evidence unavailable for a mimetype; `level: warn` | none | none |
5973
6026
  | `metadata_ignored` | engine dispatcher — `[metadata]` on an operation whose scheme takes none, run without it; `level: warn` | YOU SHOULD NOT write [metadata] on an operation that takes none. | none |
5974
6027
  | `scope_normalized` | engine slicer — a scope normalized to its canonical form; `level: warn` | YOU SHOULD write the normalized scope. | none |
5975
6028
  | `edit_merged` | engine slicer — an EDIT resolution rule applied to a batch ({§edit-batch-merges}); `level: warn` | YOU SHOULD verify the merged EDIT before building on it. | none |
5976
6029
 
5977
- §continued-without-note **A continuing turn that carried no NOTE is told so.** The card teaches NOTE as the register of every plan, finding, decision and next action; the notice's directive is the command `YOU MUST emit at least one NOTE in every turn.` When a model turn settles at 102 or 202, so the loop continues past it or parks on it, and it admitted no NOTE in its program or from its reasoning ({§reasoning-operations}), the next packet carries one `engine:turn` notice, `continued_without_note`, `level: warn`, with that directive and the message `The turn continued without a NOTE.` It is a notice, never a failure: it mints no row, never counts toward the strike rail, and never ends or alters a loop. A turn that concludes its loop, an empty turn, which carries its own no-operation row, and every non-model turn take none.
6030
+ §continued-without-note **A continuing turn that carried no NOTE is told so, in the card's own words.** The card states its rule as one important callout, `YOU MUST persist all new facts, ideas, and plans in NOTEs on every turn.`, and that command is the notice's directive. When a model turn settles at 102 or 202, so the loop continues past it or parks on it, and it admitted no NOTE in its program or from its reasoning ({§reasoning-operations}), the next packet carries one `engine:turn` notice, `continued_without_note`, `level: warn`, with that directive and the message `The turn continued without a NOTE.` It is a notice, never a failure: it mints no row, never counts toward the strike rail, and never ends or alters a loop. A turn that concludes its loop, an empty turn, which carries its own no-operation row, and every non-model turn take none.
5978
6031
 
5979
6032
  §notice-callout **A notice speaks in the card's callout form.** Each renders as one alert callout, its level choosing the callout: `> [!CAUTION]` for `error`, `> [!WARNING]` for `warn`, and `> [!NOTE]` for `info`, which no model packet carries. Inside it stand the directive ({§notice-directive}), then the message, any typed position as `@ line:column`, and the kind in brackets; a blank line separates consecutive callouts:
5980
6033
 
@@ -6141,7 +6194,8 @@ members/functionality/model-scope`, naming `git add` and the operator's `/member
6141
6194
  the paths that remain; `root` admits patterns inside the root; `namespace` admits `../` too.
6142
6195
  `auto` loops self-approve proposals, so the ceiling — not the proposal — is the guard
6143
6196
  ({§membership-baseline}). The coordinator hands `admit` the caller (`action` | `operation`)
6144
- so the family bounds the model without a second grammar.
6197
+ so the family bounds the model without a second grammar; an admission a read earns
6198
+ ({§membership-auto-add}) is that same `operation` add and meets the same ceiling.
6145
6199
 
6146
6200
  §members-projection *One overlay.* Definitions are desired state per workspace
6147
6201
  ({§functionality-state}); the workspace overlay (`workspace_constraints`) combines its
@@ -6755,7 +6809,7 @@ lists the schemes the workspace registers, and rebuilds the address into nothing
6755
6809
  | `scope-unsupported` | 400 | A worker SEND takes no scope. |
6756
6810
  | `control-address-invalid` | 400 | The operation requires an authority-only worker control address. |
6757
6811
  | `named-worker-required` | 400 | A worker deliverable READ requires a named worker. |
6758
- | `emission-curated-whole` | 422 | An emission has no legend lines, so a line scope selects nothing on it. |
6812
+ | `emission-curated-whole` | 422 | An emission source announcement must be curated whole, without a line scope. |
6759
6813
  | `entry-exists` | 409 | An entry already exists at the addressed resource. |
6760
6814
  | `invalid-expression` | 400 | The full-text or graph matcher expression is invalid. |
6761
6815
  | `delete-target-required` | 400 | KILL requires a target path. |
@@ -6821,7 +6875,7 @@ lists the schemes the workspace registers, and rebuilds the address into nothing
6821
6875
  | Nothing is in flight. Continuing. | a WAIT (or a premature terminal) with no live work ({§wait-obligation-matrix}) |
6822
6876
  | All Open Messages resolved. Review new results; emit no OPs if finished. | resolved messages with unobserved results ({§loop-completion}) |
6823
6877
  | Context exceeds budget. YOU MUST ONLY KILL, MOVE or NOTE this turn. | the over-budget row ({§context-over-budget-row}) |
6824
- | YOU MUST emit at least one NOTE in every turn. The turn continued without a NOTE. | a continuing or parked model turn without a NOTE ({§continued-without-note}) |
6878
+ | YOU MUST persist all new facts, ideas, and plans in NOTEs on every turn. The turn continued without a NOTE. | a continuing or parked model turn without a NOTE ({§continued-without-note}) |
6825
6879
  | Each directive in the notice table | a notice of the model's own output ({§notice-directive}) |
6826
6880
  | Context window overflow: the packet cannot fit the model's window even as receipts. | the wall ({§context-wall}) |
6827
6881
  | No recipient implements the requested interaction. | The worker's owner is not interactive or does not declare the required client tool ({§client-interaction-routing}). |
@@ -1 +1 @@
1
- {"package":"@plurnk/plurnk-service","version":"4.0.0","revision":"9f92ceac0af7bdb64e57ebc73c0288bb0f36b720","dirty":false}
1
+ {"package":"@plurnk/plurnk-service","version":"4.2.1","revision":"c75c4bc760db609905a8a0932bd1f50bb4d8886c","dirty":false}
@@ -1,7 +1,7 @@
1
1
  #compdef plurnk-service
2
2
  # Zsh completion generated from executable help.
3
3
  local -a flags subs
4
- flags=(--service-db-path --service-state-root --service-share-folder --service-sqlite-synchronous --service-sqlite-readers --service-capabilities --service-proposals --service-file-create-scope --service-members-model-scope --members-enabled --service-members-sample --service-git-allowed --service-git-auto --service-git-output-max-bytes --service-file-materialize-max-bytes --service-max-turns --service-max-commands --service-workspace-workers-max-active --service-loop-timeout --service-live-timeout --service-stop-timeout-ms --service-provider-recovery --service-provider-recovery-backoff --service-provider-recovery-backoff-max --service-max-strikes --service-emission-attempts --service-min-cycles --service-max-cycle-period --service-error-detail-limit --service-workspace-warm-ms --service-workspace-warm-max --service-proposal-timeout-ms --service-exec-hold --service-exec-hold-ms --service-exec-concurrency --service-exec-input-timeout-ms --service-exec-probe-timeout-ms --service-exec-scratch --service-effect-host --service-effect-read --service-effect-pure --service-optimistic-wait-ms --service-wait-sec --service-exec-env-inherit --service-exec-env-exclude --service-exec-kill-grace-ms --service-line-anchor-context-lines --service-edit-receipt-context-lines --service-edit-receipt-removed-lines --service-git-status-paths --service-budget-pressure --service-budget-largest-items --service-preview-lines --service-preview-chars --service-emission-history --service-reasoning-rows --service-catalog-summary-chars --service-log-read-page --service-log-read-max --service-prompts-page --service-model-catalog-page --service-files-items --service-docs-exclude --service-roots --service-search-exclude --service-search-max-bytes --service-derive-concurrency --service-derive-store-batch --service-derive-progress-heartbeat-ms --service-retain-packet-turns --service-retain-packet-ms --service-retain-response-turns --service-retain-response-ms --service-collect-packet-items --service-collect-derivations --service-collect-contents --service-retention-interval-ms --service-auto-vacuum --service-reclaim-min-free-bytes --host --port --auth --pass --env-file --env-file-if-exists --config --workspace --requiem --version --help)
4
+ flags=(--service-db-path --service-state-root --service-share-folder --service-sqlite-synchronous --service-sqlite-readers --service-capabilities --service-proposals --service-file-create-scope --service-members-model-scope --members-enabled --members-auto-add --service-members-sample --service-git-allowed --service-git-auto --service-git-output-max-bytes --service-file-materialize-max-bytes --service-max-turns --service-max-commands --service-workspace-workers-max-active --service-loop-timeout --service-live-timeout --service-stop-timeout-ms --service-provider-recovery --service-provider-recovery-backoff --service-provider-recovery-backoff-max --service-max-strikes --service-emission-attempts --service-min-cycles --service-max-cycle-period --service-error-detail-limit --service-workspace-warm-ms --service-workspace-warm-max --service-proposal-timeout-ms --service-exec-hold --service-exec-hold-ms --service-exec-concurrency --service-exec-input-timeout-ms --service-exec-probe-timeout-ms --service-exec-scratch --service-effect-host --service-effect-read --service-effect-pure --service-optimistic-wait-ms --service-wait-sec --service-exec-env-inherit --service-exec-env-exclude --service-exec-kill-grace-ms --service-line-anchor-context-lines --service-edit-receipt-context-lines --service-edit-receipt-removed-lines --service-git-status-paths --service-budget-pressure --service-budget-largest-items --service-preview-lines --service-preview-chars --service-emission-history --service-reasoning-rows --service-catalog-summary-chars --service-log-read-page --service-log-read-max --service-prompts-page --service-model-catalog-page --service-files-items --service-docs-exclude --service-roots --service-search-exclude --service-search-max-bytes --service-derive-concurrency --service-derive-store-batch --service-derive-progress-heartbeat-ms --service-retain-packet-turns --service-retain-packet-ms --service-retain-response-turns --service-retain-response-ms --service-collect-packet-items --service-collect-derivations --service-collect-contents --service-retention-interval-ms --service-auto-vacuum --service-reclaim-min-free-bytes --host --port --auth --pass --env-file --env-file-if-exists --config --workspace --requiem --version --help)
5
5
  subs=(start migrate config share requiem)
6
6
  if [[ $words[CURRENT] == -* ]]; then
7
7
  compadd -- $flags
@@ -7,7 +7,7 @@ _plurnk_service() {
7
7
  COMPREPLY+=("$candidate")
8
8
  done < <(
9
9
  if [[ $cur == -* ]]; then
10
- compgen -W "--service-db-path --service-state-root --service-share-folder --service-sqlite-synchronous --service-sqlite-readers --service-capabilities --service-proposals --service-file-create-scope --service-members-model-scope --members-enabled --service-members-sample --service-git-allowed --service-git-auto --service-git-output-max-bytes --service-file-materialize-max-bytes --service-max-turns --service-max-commands --service-workspace-workers-max-active --service-loop-timeout --service-live-timeout --service-stop-timeout-ms --service-provider-recovery --service-provider-recovery-backoff --service-provider-recovery-backoff-max --service-max-strikes --service-emission-attempts --service-min-cycles --service-max-cycle-period --service-error-detail-limit --service-workspace-warm-ms --service-workspace-warm-max --service-proposal-timeout-ms --service-exec-hold --service-exec-hold-ms --service-exec-concurrency --service-exec-input-timeout-ms --service-exec-probe-timeout-ms --service-exec-scratch --service-effect-host --service-effect-read --service-effect-pure --service-optimistic-wait-ms --service-wait-sec --service-exec-env-inherit --service-exec-env-exclude --service-exec-kill-grace-ms --service-line-anchor-context-lines --service-edit-receipt-context-lines --service-edit-receipt-removed-lines --service-git-status-paths --service-budget-pressure --service-budget-largest-items --service-preview-lines --service-preview-chars --service-emission-history --service-reasoning-rows --service-catalog-summary-chars --service-log-read-page --service-log-read-max --service-prompts-page --service-model-catalog-page --service-files-items --service-docs-exclude --service-roots --service-search-exclude --service-search-max-bytes --service-derive-concurrency --service-derive-store-batch --service-derive-progress-heartbeat-ms --service-retain-packet-turns --service-retain-packet-ms --service-retain-response-turns --service-retain-response-ms --service-collect-packet-items --service-collect-derivations --service-collect-contents --service-retention-interval-ms --service-auto-vacuum --service-reclaim-min-free-bytes --host --port --auth --pass --env-file --env-file-if-exists --config --workspace --requiem --version --help" -- "$cur"
10
+ compgen -W "--service-db-path --service-state-root --service-share-folder --service-sqlite-synchronous --service-sqlite-readers --service-capabilities --service-proposals --service-file-create-scope --service-members-model-scope --members-enabled --members-auto-add --service-members-sample --service-git-allowed --service-git-auto --service-git-output-max-bytes --service-file-materialize-max-bytes --service-max-turns --service-max-commands --service-workspace-workers-max-active --service-loop-timeout --service-live-timeout --service-stop-timeout-ms --service-provider-recovery --service-provider-recovery-backoff --service-provider-recovery-backoff-max --service-max-strikes --service-emission-attempts --service-min-cycles --service-max-cycle-period --service-error-detail-limit --service-workspace-warm-ms --service-workspace-warm-max --service-proposal-timeout-ms --service-exec-hold --service-exec-hold-ms --service-exec-concurrency --service-exec-input-timeout-ms --service-exec-probe-timeout-ms --service-exec-scratch --service-effect-host --service-effect-read --service-effect-pure --service-optimistic-wait-ms --service-wait-sec --service-exec-env-inherit --service-exec-env-exclude --service-exec-kill-grace-ms --service-line-anchor-context-lines --service-edit-receipt-context-lines --service-edit-receipt-removed-lines --service-git-status-paths --service-budget-pressure --service-budget-largest-items --service-preview-lines --service-preview-chars --service-emission-history --service-reasoning-rows --service-catalog-summary-chars --service-log-read-page --service-log-read-max --service-prompts-page --service-model-catalog-page --service-files-items --service-docs-exclude --service-roots --service-search-exclude --service-search-max-bytes --service-derive-concurrency --service-derive-store-batch --service-derive-progress-heartbeat-ms --service-retain-packet-turns --service-retain-packet-ms --service-retain-response-turns --service-retain-response-ms --service-collect-packet-items --service-collect-derivations --service-collect-contents --service-retention-interval-ms --service-auto-vacuum --service-reclaim-min-free-bytes --host --port --auth --pass --env-file --env-file-if-exists --config --workspace --requiem --version --help" -- "$cur"
11
11
  elif [[ $COMP_CWORD -eq 1 ]]; then
12
12
  compgen -W "start migrate config share requiem" -- "$cur"
13
13
  compgen -f -- "$cur"
@@ -14,6 +14,7 @@ complete -c plurnk-service -l service-proposals
14
14
  complete -c plurnk-service -l service-file-create-scope
15
15
  complete -c plurnk-service -l service-members-model-scope
16
16
  complete -c plurnk-service -l members-enabled
17
+ complete -c plurnk-service -l members-auto-add
17
18
  complete -c plurnk-service -l service-members-sample
18
19
  complete -c plurnk-service -l service-git-allowed
19
20
  complete -c plurnk-service -l service-git-auto
@@ -21,7 +21,9 @@ export default class AdmittedTurnExecutor {
21
21
  executeAdmittedTurn({ statements, source, emission, reasoning, sourceModelCallId, origin, workspaceId, workerId, loopId, turnId, fromSequence, maxCommands, failOnOperationError, recoverableParseErrors, emptyTurn, completionAllowed, bare, fit, signal, onDispatch, onSettled, }: {
22
22
  statements: readonly PlurnkStatement[];
23
23
  source: string | null;
24
- emission: AdmittedTextSource | null;
24
+ emission: (AdmittedTextSource & {
25
+ statements: readonly PlurnkStatement[];
26
+ }) | null;
25
27
  reasoning?: AdmittedTextSource | null;
26
28
  sourceModelCallId?: number | null;
27
29
  origin: WriterTier;
@@ -1 +1 @@
1
- {"version":3,"file":"AdmittedTurnExecutor.d.ts","sourceRoot":"","sources":["../../src/core/AdmittedTurnExecutor.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAuC,eAAe,EAAE,MAAM,0BAA0B,CAAC;AACrG,OAAO,KAAK,cAAc,MAAM,qBAAqB,CAAC;AACtD,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAGpD,OAAO,aAAa,MAAM,oBAAoB,CAAC;AAC/C,OAAO,UAAU,MAAM,iBAAiB,CAAC;AAEzC,OAAO,UAAU,MAAM,iBAAiB,CAAC;AAMzC,OAAO,eAAe,MAAM,sBAAsB,CAAC;AAEnD,OAAO,EAA8B,KAAK,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAG9E,OAAO,KAAK,EAAE,cAAc,EAAsC,aAAa,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAOjJ,MAAM,CAAC,OAAO,OAAO,oBAAoB;;IAQrC,YAAY,EAAE,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,SAAS,EAAE,EAAE;QACnE,EAAE,EAAE,EAAE,CAAC;QACP,OAAO,EAAE,cAAc,CAAC;QACxB,OAAO,EAAE,aAAa,CAAC;QACvB,QAAQ,EAAE,UAAU,CAAC;QACrB,UAAU,EAAE,UAAU,CAAC;QACvB,SAAS,EAAE,eAAe,CAAC;KAC9B,EAOA;IAMK,mBAAmB,CAAC,EACtB,UAAU,EACV,MAAM,EACN,QAAQ,EACR,SAAgB,EAChB,iBAAwB,EACxB,MAAM,EACN,WAAW,EACX,QAAQ,EACR,MAAM,EACN,MAAM,EACN,YAAY,EACZ,WAAsC,EACtC,oBAA4B,EAC5B,sBAA2B,EAC3B,SAAiB,EACjB,iBAAwB,EACxB,IAAI,EACJ,GAAG,EACH,MAAM,EACN,UAAU,EACV,SAAS,GACZ,EAAE;QACC,UAAU,EAAE,SAAS,eAAe,EAAE,CAAC;QACvC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;QAGtB,QAAQ,EAAE,kBAAkB,GAAG,IAAI,CAAC;QACpC,SAAS,CAAC,EAAE,kBAAkB,GAAG,IAAI,CAAC;QACtC,iBAAiB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAClC,MAAM,EAAE,UAAU,CAAC;QACnB,WAAW,EAAE,MAAM,CAAC;QACpB,QAAQ,EAAE,MAAM,CAAC;QACjB,MAAM,EAAE,MAAM,CAAC;QACf,MAAM,EAAE,MAAM,CAAC;QACf,YAAY,EAAE,MAAM,CAAC;QACrB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,oBAAoB,CAAC,EAAE,OAAO,CAAC;QAC/B,sBAAsB,CAAC,EAAE,SAAS,cAAc,EAAE,CAAC;QACnD,SAAS,CAAC,EAAE,OAAO,CAAC;QACpB,iBAAiB,CAAC,EAAE,OAAO,CAAC;QAC5B,IAAI,CAAC,EAAE,aAAa,CAAC;QAErB,GAAG,CAAC,EAAE,UAAU,CAAC;QACjB,MAAM,CAAC,EAAE,WAAW,CAAC;QACrB,UAAU,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,IAAI,CAAC;QAC1C,SAAS,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;KAC5D,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAyR9B;CAGJ"}
1
+ {"version":3,"file":"AdmittedTurnExecutor.d.ts","sourceRoot":"","sources":["../../src/core/AdmittedTurnExecutor.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAuC,eAAe,EAAE,MAAM,0BAA0B,CAAC;AACrG,OAAO,KAAK,cAAc,MAAM,qBAAqB,CAAC;AACtD,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAGpD,OAAO,aAAa,MAAM,oBAAoB,CAAC;AAC/C,OAAO,UAAU,MAAM,iBAAiB,CAAC;AAEzC,OAAO,UAAU,MAAM,iBAAiB,CAAC;AAMzC,OAAO,eAAe,MAAM,sBAAsB,CAAC;AAEnD,OAAO,EAA8B,KAAK,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAG9E,OAAO,KAAK,EAAE,cAAc,EAAsC,aAAa,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAOjJ,MAAM,CAAC,OAAO,OAAO,oBAAoB;;IAQrC,YAAY,EAAE,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,SAAS,EAAE,EAAE;QACnE,EAAE,EAAE,EAAE,CAAC;QACP,OAAO,EAAE,cAAc,CAAC;QACxB,OAAO,EAAE,aAAa,CAAC;QACvB,QAAQ,EAAE,UAAU,CAAC;QACrB,UAAU,EAAE,UAAU,CAAC;QACvB,SAAS,EAAE,eAAe,CAAC;KAC9B,EAOA;IAMK,mBAAmB,CAAC,EACtB,UAAU,EACV,MAAM,EACN,QAAQ,EACR,SAAgB,EAChB,iBAAwB,EACxB,MAAM,EACN,WAAW,EACX,QAAQ,EACR,MAAM,EACN,MAAM,EACN,YAAY,EACZ,WAAsC,EACtC,oBAA4B,EAC5B,sBAA2B,EAC3B,SAAiB,EACjB,iBAAwB,EACxB,IAAI,EACJ,GAAG,EACH,MAAM,EACN,UAAU,EACV,SAAS,GACZ,EAAE;QACC,UAAU,EAAE,SAAS,eAAe,EAAE,CAAC;QACvC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;QAGtB,QAAQ,EAAE,CAAC,kBAAkB,GAAG;YAAE,UAAU,EAAE,SAAS,eAAe,EAAE,CAAA;SAAE,CAAC,GAAG,IAAI,CAAC;QACnF,SAAS,CAAC,EAAE,kBAAkB,GAAG,IAAI,CAAC;QACtC,iBAAiB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAClC,MAAM,EAAE,UAAU,CAAC;QACnB,WAAW,EAAE,MAAM,CAAC;QACpB,QAAQ,EAAE,MAAM,CAAC;QACjB,MAAM,EAAE,MAAM,CAAC;QACf,MAAM,EAAE,MAAM,CAAC;QACf,YAAY,EAAE,MAAM,CAAC;QACrB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,oBAAoB,CAAC,EAAE,OAAO,CAAC;QAC/B,sBAAsB,CAAC,EAAE,SAAS,cAAc,EAAE,CAAC;QACnD,SAAS,CAAC,EAAE,OAAO,CAAC;QACpB,iBAAiB,CAAC,EAAE,OAAO,CAAC;QAC5B,IAAI,CAAC,EAAE,aAAa,CAAC;QAErB,GAAG,CAAC,EAAE,UAAU,CAAC;QACjB,MAAM,CAAC,EAAE,WAAW,CAAC;QACrB,UAAU,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,IAAI,CAAC;QAC1C,SAAS,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;KAC5D,GAAG,OAAO,CAAC,kBAAkB,CAAC,CA6R9B;CAGJ"}
@@ -145,7 +145,9 @@ export default class AdmittedTurnExecutor {
145
145
  const execHandler = this.#schemes.get("exec");
146
146
  await execHandler?.settleTurnSpawns?.(workerId, turnId, readOptimisticSettlementMs(), signal);
147
147
  };
148
+ const emissionIndices = new Map(emission?.statements.map((statement, index) => [statement, index]));
148
149
  for (const [index, scheduledStatement] of scheduled.entries()) {
150
+ const emissionIndex = emissionIndices.get(scheduledStatement);
149
151
  signal?.throwIfAborted();
150
152
  if (!TurnDisposition.is(scheduledStatement) && realCommands >= maxCommands) {
151
153
  droppedCount++;
@@ -211,6 +213,7 @@ export default class AdmittedTurnExecutor {
211
213
  }
212
214
  dispatchResult = await this.#dispatcher.recordBareResult({
213
215
  statement,
216
+ emissionIndex,
214
217
  workspaceId,
215
218
  workerId,
216
219
  loopId,
@@ -224,6 +227,7 @@ export default class AdmittedTurnExecutor {
224
227
  else {
225
228
  const execution = await this.#dispatcher.dispatch({
226
229
  statement,
230
+ emissionIndex,
227
231
  workspaceId,
228
232
  workerId,
229
233
  loopId,
@@ -1 +1 @@
1
- {"version":3,"file":"AdmittedTurnExecutor.js","sourceRoot":"","sources":["../../src/core/AdmittedTurnExecutor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AdmittedTurnExecutor.js","sourceRoot":"","sources":["../../src/core/AdmittedTurnExecutor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ import type { Mimetypes } from "@plurnk/plurnk-mimetypes";
2
+ import type { Notice } from "@plurnk/plurnk-contracts";
3
+ import type { Db } from "./Db.ts";
4
+ import type { AmbientMembers as Seam } from "./scheme-types.ts";
5
+ export declare const AUTO_ADD_KEY = "PLURNK_MEMBERS_AUTO_ADD";
6
+ export default class AmbientMembers {
7
+ static enabled(environ?: NodeJS.ProcessEnv): boolean;
8
+ static admissionOf(result: unknown): readonly string[] | null;
9
+ static seam(args: {
10
+ db: Db;
11
+ workspaceId: number;
12
+ signal: AbortSignal | undefined;
13
+ mimetypes: Mimetypes | undefined;
14
+ admit: (files: readonly string[]) => Promise<readonly string[]>;
15
+ notice: (notice: Notice) => void;
16
+ }): Seam;
17
+ }
18
+ //# sourceMappingURL=AmbientMembers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AmbientMembers.d.ts","sourceRoot":"","sources":["../../src/core/AmbientMembers.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAEvD,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,SAAS,CAAC;AAElC,OAAO,KAAK,EAAqB,cAAc,IAAI,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAEnF,eAAO,MAAM,YAAY,4BAA4B,CAAC;AAQtD,MAAM,CAAC,OAAO,OAAO,cAAc;IAC/B,MAAM,CAAC,OAAO,CAAC,OAAO,GAAE,MAAM,CAAC,UAAwB,GAAG,OAAO,CAEhE;IAGD,MAAM,CAAC,WAAW,CAAC,MAAM,EAAE,OAAO,GAAG,SAAS,MAAM,EAAE,GAAG,IAAI,CAG5D;IAED,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE;QACd,EAAE,EAAE,EAAE,CAAC;QACP,WAAW,EAAE,MAAM,CAAC;QACpB,MAAM,EAAE,WAAW,GAAG,SAAS,CAAC;QAChC,SAAS,EAAE,SAAS,GAAG,SAAS,CAAC;QACjC,KAAK,EAAE,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,KAAK,OAAO,CAAC,SAAS,MAAM,EAAE,CAAC,CAAC;QAChE,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;KACpC,GAAG,IAAI,CAyCP;CACJ"}