@groundnuty/macf 0.2.36 → 0.2.38

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 (121) hide show
  1. package/dist/.build-info.json +2 -2
  2. package/dist/cli/claude-sh.d.ts +12 -10
  3. package/dist/cli/claude-sh.d.ts.map +1 -1
  4. package/dist/cli/claude-sh.js +13 -11
  5. package/dist/cli/claude-sh.js.map +1 -1
  6. package/dist/cli/commands/certs.d.ts.map +1 -1
  7. package/dist/cli/commands/certs.js +6 -2
  8. package/dist/cli/commands/certs.js.map +1 -1
  9. package/dist/cli/commands/doctor.d.ts +102 -3
  10. package/dist/cli/commands/doctor.d.ts.map +1 -1
  11. package/dist/cli/commands/doctor.js +349 -55
  12. package/dist/cli/commands/doctor.js.map +1 -1
  13. package/dist/cli/commands/init.d.ts +24 -0
  14. package/dist/cli/commands/init.d.ts.map +1 -1
  15. package/dist/cli/commands/init.js +81 -8
  16. package/dist/cli/commands/init.js.map +1 -1
  17. package/dist/cli/commands/monitor.d.ts +16 -0
  18. package/dist/cli/commands/monitor.d.ts.map +1 -0
  19. package/dist/cli/commands/monitor.js +96 -0
  20. package/dist/cli/commands/monitor.js.map +1 -0
  21. package/dist/cli/commands/propose.d.ts +21 -0
  22. package/dist/cli/commands/propose.d.ts.map +1 -0
  23. package/dist/cli/commands/propose.js +128 -0
  24. package/dist/cli/commands/propose.js.map +1 -0
  25. package/dist/cli/commands/ps.d.ts +17 -0
  26. package/dist/cli/commands/ps.d.ts.map +1 -0
  27. package/dist/cli/commands/ps.js +69 -0
  28. package/dist/cli/commands/ps.js.map +1 -0
  29. package/dist/cli/commands/registry-prune.d.ts +44 -0
  30. package/dist/cli/commands/registry-prune.d.ts.map +1 -0
  31. package/dist/cli/commands/registry-prune.js +124 -0
  32. package/dist/cli/commands/registry-prune.js.map +1 -0
  33. package/dist/cli/commands/rules-refresh.d.ts +1 -0
  34. package/dist/cli/commands/rules-refresh.d.ts.map +1 -1
  35. package/dist/cli/commands/rules-refresh.js +22 -1
  36. package/dist/cli/commands/rules-refresh.js.map +1 -1
  37. package/dist/cli/commands/update.d.ts.map +1 -1
  38. package/dist/cli/commands/update.js +23 -2
  39. package/dist/cli/commands/update.js.map +1 -1
  40. package/dist/cli/config.d.ts +2 -0
  41. package/dist/cli/config.d.ts.map +1 -1
  42. package/dist/cli/config.js +16 -0
  43. package/dist/cli/config.js.map +1 -1
  44. package/dist/cli/env-files-update.d.ts.map +1 -1
  45. package/dist/cli/env-files-update.js +5 -1
  46. package/dist/cli/env-files-update.js.map +1 -1
  47. package/dist/cli/env-files.d.ts +38 -13
  48. package/dist/cli/env-files.d.ts.map +1 -1
  49. package/dist/cli/env-files.js +84 -14
  50. package/dist/cli/env-files.js.map +1 -1
  51. package/dist/cli/index.js +142 -5
  52. package/dist/cli/index.js.map +1 -1
  53. package/dist/cli/monitor/digest.d.ts +89 -0
  54. package/dist/cli/monitor/digest.d.ts.map +1 -0
  55. package/dist/cli/monitor/digest.js +232 -0
  56. package/dist/cli/monitor/digest.js.map +1 -0
  57. package/dist/cli/monitor/github-reader.d.ts +38 -0
  58. package/dist/cli/monitor/github-reader.d.ts.map +1 -0
  59. package/dist/cli/monitor/github-reader.js +65 -0
  60. package/dist/cli/monitor/github-reader.js.map +1 -0
  61. package/dist/cli/monitor/reflections.d.ts +18 -0
  62. package/dist/cli/monitor/reflections.d.ts.map +1 -0
  63. package/dist/cli/monitor/reflections.js +72 -0
  64. package/dist/cli/monitor/reflections.js.map +1 -0
  65. package/dist/cli/monitor/run.d.ts +30 -0
  66. package/dist/cli/monitor/run.d.ts.map +1 -0
  67. package/dist/cli/monitor/run.js +67 -0
  68. package/dist/cli/monitor/run.js.map +1 -0
  69. package/dist/cli/proc-scan.d.ts +81 -0
  70. package/dist/cli/proc-scan.d.ts.map +1 -0
  71. package/dist/cli/proc-scan.js +172 -0
  72. package/dist/cli/proc-scan.js.map +1 -0
  73. package/dist/cli/project-rules.d.ts +105 -0
  74. package/dist/cli/project-rules.d.ts.map +1 -0
  75. package/dist/cli/project-rules.js +305 -0
  76. package/dist/cli/project-rules.js.map +1 -0
  77. package/dist/cli/propose/candidates.d.ts +95 -0
  78. package/dist/cli/propose/candidates.d.ts.map +1 -0
  79. package/dist/cli/propose/candidates.js +117 -0
  80. package/dist/cli/propose/candidates.js.map +1 -0
  81. package/dist/cli/propose/invariants.d.ts +49 -0
  82. package/dist/cli/propose/invariants.d.ts.map +1 -0
  83. package/dist/cli/propose/invariants.js +154 -0
  84. package/dist/cli/propose/invariants.js.map +1 -0
  85. package/dist/cli/propose/proposal-writer.d.ts +33 -0
  86. package/dist/cli/propose/proposal-writer.d.ts.map +1 -0
  87. package/dist/cli/propose/proposal-writer.js +53 -0
  88. package/dist/cli/propose/proposal-writer.js.map +1 -0
  89. package/dist/cli/propose/report.d.ts +49 -0
  90. package/dist/cli/propose/report.d.ts.map +1 -0
  91. package/dist/cli/propose/report.js +227 -0
  92. package/dist/cli/propose/report.js.map +1 -0
  93. package/dist/cli/propose/run.d.ts +41 -0
  94. package/dist/cli/propose/run.d.ts.map +1 -0
  95. package/dist/cli/propose/run.js +62 -0
  96. package/dist/cli/propose/run.js.map +1 -0
  97. package/dist/cli/role-settings-model.d.ts +70 -0
  98. package/dist/cli/role-settings-model.d.ts.map +1 -0
  99. package/dist/cli/role-settings-model.js +90 -0
  100. package/dist/cli/role-settings-model.js.map +1 -0
  101. package/dist/cli/settings-writer.d.ts +103 -6
  102. package/dist/cli/settings-writer.d.ts.map +1 -1
  103. package/dist/cli/settings-writer.js +259 -8
  104. package/dist/cli/settings-writer.js.map +1 -1
  105. package/dist/reconciler/reconcile.d.ts +31 -0
  106. package/dist/reconciler/reconcile.d.ts.map +1 -1
  107. package/dist/reconciler/reconcile.js +47 -3
  108. package/dist/reconciler/reconcile.js.map +1 -1
  109. package/dist/reconciler/run.d.ts +21 -1
  110. package/dist/reconciler/run.d.ts.map +1 -1
  111. package/dist/reconciler/run.js +106 -17
  112. package/dist/reconciler/run.js.map +1 -1
  113. package/package.json +2 -2
  114. package/plugin/rules/gh-token-attribution-traps.md +4 -0
  115. package/plugin/rules/observability-wiring.md +3 -3
  116. package/plugin/rules/reflection-staging.md +65 -0
  117. package/plugin/rules/silent-fallback-hazards.md +21 -4
  118. package/scripts/check-auditor-never-acts.sh +167 -0
  119. package/scripts/check-gh-attribution.sh +254 -0
  120. package/scripts/emit-turn-receipt.sh +1 -1
  121. package/scripts/harvest-reflection.sh +125 -0
@@ -58,6 +58,22 @@ export declare const MACF_LGTM_HOOK_COMMAND = "$CLAUDE_PROJECT_DIR/.claude/scrip
58
58
  * `Closes #own` passes); override via MACF_SKIP_CLOSE_CHECK=1.
59
59
  */
60
60
  export declare const MACF_CLOSE_HOOK_COMMAND = "$CLAUDE_PROJECT_DIR/.claude/scripts/check-close-keyword.sh";
61
+ /**
62
+ * Auditor-never-acts hook command (groundnuty/macf#499 — DR-026 F1). Blocks
63
+ * state-mutating `gh` ops (`gh pr merge` / `gh issue close` / `gh pr close`)
64
+ * when the active identity is the auditor (`MACF_AGENT_ROLE=auditor`), while
65
+ * leaving the propose verbs (`gh issue/pr create|comment`) untouched. For every
66
+ * NON-auditor identity the hook is inert (`exit 0` before any parsing), so
67
+ * fleet-wide distribution via `macf init` / `macf update` is a no-op everywhere
68
+ * except the auditor.
69
+ *
70
+ * Why structural and not permission-based: a GitHub App's `pull_requests:write`
71
+ * grants merge+close TOGETHER with open-PR — there is no "open-a-PR-but-not-
72
+ * merge" scope to express the auditor's write-proposals-only boundary, so it
73
+ * must be enforced at tool-call time. Sister to the #140 / #244+#272 / #270 /
74
+ * #431 PreToolUse hooks; override via MACF_SKIP_AUDITOR_ACT_CHECK=1.
75
+ */
76
+ export declare const MACF_AUDITOR_HOOK_COMMAND = "$CLAUDE_PROJECT_DIR/.claude/scripts/check-auditor-never-acts.sh";
61
77
  /**
62
78
  * The UserPromptSubmit turn-ack receipt hook (groundnuty/macf#444 Option D,
63
79
  * piece 2). When the router injects a prompt carrying the correlation marker
@@ -69,6 +85,42 @@ export declare const MACF_CLOSE_HOOK_COMMAND = "$CLAUDE_PROJECT_DIR/.claude/scri
69
85
  * `async: true` so it adds no turn latency. No-op on non-routed prompts.
70
86
  */
71
87
  export declare const MACF_TURN_RECEIPT_HOOK_COMMAND = "$CLAUDE_PROJECT_DIR/.claude/scripts/emit-turn-receipt.sh";
88
+ /**
89
+ * Attribution-result PostToolUse hook command (groundnuty/macf#489). After a
90
+ * `gh`-write Bash op (`gh issue/pr comment`, `gh issue/pr create`,
91
+ * `gh issue/pr close --comment`), this hook reads the just-written resource
92
+ * back from GitHub and warns LOUDLY (PostToolUse `exit 2`) if it was authored
93
+ * by the operator's USER account rather than the bot — the silent-fallback
94
+ * Instance-12 attribution trap. It is the result-invariant backstop to the
95
+ * #140 PreToolUse `check-gh-token.sh`: that one catches the missing-bot-token
96
+ * shape BEFORE the call; this one catches a slipped write AFTER the fact.
97
+ *
98
+ * PostToolUse CANNOT block (the tool already ran), so this is registered on
99
+ * the `PostToolUse` event (matcher `Bash`), NOT `PreToolUse`. Fail-open:
100
+ * every uncertain branch in the script exits 0; only a CONFIRMED
101
+ * user-authored write fires `exit 2`. Override: MACF_SKIP_ATTRIBUTION_CHECK=1.
102
+ */
103
+ export declare const MACF_ATTRIBUTION_HOOK_COMMAND = "$CLAUDE_PROJECT_DIR/.claude/scripts/check-gh-attribution.sh";
104
+ /**
105
+ * Reflection-harvest PreCompact hook command (groundnuty/macf#500 — DR-026 F2).
106
+ * At compaction (auto OR manual `/compact`), this hook harvests the agent's
107
+ * *staged* reflection (`.claude/.macf/reflections/pending.json`, maintained
108
+ * incrementally per `reflection-staging.md`), wraps it in the versioned
109
+ * reflection-schema envelope (`@groundnuty/macf-core` `ReflectionRecordSchema`),
110
+ * appends it as one line to a local per-session JSONL ledger, and clears the
111
+ * stage. F4's Monitor reads the ledger back.
112
+ *
113
+ * It runs on the `PreCompact` event (matcher-less, like SessionStart / Stop /
114
+ * UserPromptSubmit). Per DR-023 §UC-3 it is observational + NON-BLOCKING: the
115
+ * script ALWAYS `exit 0` (even on internal error) so it can never delay/block
116
+ * compaction. Fast + local; no network. Override: MACF_SKIP_REFLECTION_HARVEST=1.
117
+ *
118
+ * Distinct from the plugin's existing PreCompact `checkpoint_to_memory`
119
+ * mcp_tool entry (DR-023 §UC-3 session-checkpoint): that ships via the plugin
120
+ * `hooks.json` mcp_tool path; THIS is a bash command-type hook installed into
121
+ * settings.json — both can coexist on the PreCompact event.
122
+ */
123
+ export declare const MACF_REFLECTION_HOOK_COMMAND = "$CLAUDE_PROJECT_DIR/.claude/scripts/harvest-reflection.sh";
72
124
  /**
73
125
  * Permission patterns pre-approving the `macf-agent` plugin skills.
74
126
  * Without these, every first invocation of a skill (e.g. `/macf-status`
@@ -91,6 +143,22 @@ export declare const MACF_TURN_RECEIPT_HOOK_COMMAND = "$CLAUDE_PROJECT_DIR/.clau
91
143
  * a skill, add its pattern here + bump CLI version. macf#350 added
92
144
  * `macf-notify-peer` (operator-driven cross-agent messaging slash-command).
93
145
  */
146
+ /**
147
+ * DR-028 universal floor `allow` tools (every role). Broad `Bash(*)` — narrow
148
+ * patterns are defeated by `$GH_TOKEN`/`$MACF_WORKSPACE_DIR` "simple_expansion";
149
+ * the real defense is the `deny` floor + the PreToolUse hooks, NOT
150
+ * allow-narrowing. `Write`/`Edit` close the memory-edit prompt. Defined here
151
+ * (zero deps) so `role-settings-model.ts` re-exports it without an import cycle
152
+ * (that module imports the hook constants FROM here). See
153
+ * `design/decisions/DR-028-expected-settings-per-role.md`.
154
+ */
155
+ export declare const ROLE_FLOOR_ALLOW: readonly string[];
156
+ /**
157
+ * DR-028 universal floor `deny` — the real guardrail (seeded from devops's set,
158
+ * the most complete of the three working agents): credential/secret reads +
159
+ * config/dotfile writes + dangerous commands.
160
+ */
161
+ export declare const ROLE_FLOOR_DENY: readonly string[];
94
162
  export declare const PLUGIN_SKILL_PERMISSIONS: readonly string[];
95
163
  /**
96
164
  * Permission patterns pre-approving the MCP tools that
@@ -187,6 +255,17 @@ export declare function getPermissionsAllow(workspaceDir: string): readonly stri
187
255
  * INFO-severity classification fires on the union.
188
256
  */
189
257
  export declare function getPermissionsDeny(workspaceDir: string): readonly string[];
258
+ /**
259
+ * Read the workspace-effective set of hook command strings — the union of
260
+ * `.claude/settings.json` + `.claude/settings.local.json` across EVERY hook
261
+ * event (PreToolUse / PostToolUse / UserPromptSubmit / PreCompact / …). The
262
+ * order-/event-agnostic command list is what `macf doctor` (DR-028) validates
263
+ * against the role model: the model identifies a wired hook by its command
264
+ * string (the same identity `installGhTokenHook` writes), not by which event
265
+ * array it lives in, so a flat deduped command set is the right comparison
266
+ * surface. Throws on malformed JSON in either file (via `readSettings`).
267
+ */
268
+ export declare function getHookCommands(workspaceDir: string): readonly string[];
190
269
  /**
191
270
  * Install (or refresh) the `/proc/self/fd` entry in
192
271
  * `.claude/settings.json`'s `sandbox.filesystem.allowRead` array.
@@ -307,16 +386,34 @@ export declare function installPluginSkillPermissions(workspaceDir: string): voi
307
386
  * - `check-close-keyword.sh` (groundnuty/macf#431 — blocks `gh pr
308
387
  * create`/`edit` that would auto-close another agent's issue via a
309
388
  * close-keyword adjacent to its ref)
389
+ * - `check-auditor-never-acts.sh` (groundnuty/macf#499 — DR-026 F1; when
390
+ * `MACF_AGENT_ROLE=auditor`, blocks state-mutating `gh pr merge` /
391
+ * `gh issue close` / `gh pr close`; inert for every non-auditor identity)
392
+ *
393
+ * Plus, on the PostToolUse event:
394
+ * - `check-gh-attribution.sh` (groundnuty/macf#489 — after a `gh`-write
395
+ * op, reads the resource back from GitHub and warns (`exit 2`) if it
396
+ * was authored by the operator's user account instead of the bot;
397
+ * the result-invariant backstop to the #140 PreToolUse token check)
398
+ *
399
+ * And, on the UserPromptSubmit event:
400
+ * - `emit-turn-receipt.sh` (groundnuty/macf#444 — async turn-ack span)
401
+ *
402
+ * And, on the PreCompact event:
403
+ * - `harvest-reflection.sh` (groundnuty/macf#500 — DR-026 F2; at compaction,
404
+ * harvests the agent's staged reflection into a local JSONL ledger. Matcher-
405
+ * less + NON-BLOCKING; operator-authored PreCompact hooks are preserved)
310
406
  *
311
407
  * Creates the `.claude/` directory and the file if either is missing.
312
408
  * Idempotent: repeated calls don't duplicate entries.
313
409
  *
314
- * All hooks share `matcher: "Bash"` because Claude Code's matcher field
315
- * gates which tool fires the hook; the wrapped-command detection (gh vs
316
- * git-push for token, gh issue/pr comment for routing, gh pr merge for
317
- * LGTM) happens INSIDE each script. Distinct entries per script keep
318
- * them independently upgradeable + diagnosable in `gh issue list` style
319
- * settings audits.
410
+ * The PreToolUse + PostToolUse hooks share `matcher: "Bash"` because Claude
411
+ * Code's matcher field gates which tool fires the hook; the wrapped-command
412
+ * detection (gh vs git-push for token, gh issue/pr comment for routing,
413
+ * gh pr merge for LGTM, close-keyword for auto-close, the auditor-role
414
+ * acting-verb gate, gh-write for attribution) happens INSIDE each script.
415
+ * Distinct entries per script keep them independently upgradeable +
416
+ * diagnosable in `gh issue list` style settings audits.
320
417
  */
321
418
  export declare function installGhTokenHook(workspaceDir: string): void;
322
419
  //# sourceMappingURL=settings-writer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"settings-writer.d.ts","sourceRoot":"","sources":["../../src/cli/settings-writer.ts"],"names":[],"mappings":"AAuBA;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,eAAO,MAAM,iBAAiB,0DAA0D,CAAC;AAEzF;;;;;;;;GAQG;AACH,eAAO,MAAM,yBAAyB,iEAAiE,CAAC;AAExG;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,sBAAsB,2DAA2D,CAAC;AAE/F;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,uBAAuB,+DAA+D,CAAC;AAEpG;;;;;;;;;GASG;AACH,eAAO,MAAM,8BAA8B,6DAA6D,CAAC;AAmEzG;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,eAAO,MAAM,wBAAwB,EAAE,SAAS,MAAM,EAMrD,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,eAAO,MAAM,2BAA2B,EAAE,SAAS,MAAM,EAGxD,CAAC;AAEF;;;;;;;;;;;;;;;;;GAiBG;AACH,eAAO,MAAM,uBAAuB,kBAAkB,CAAC;AAEvD;;;;;;;;;;;GAWG;AACH,wBAAgB,mBAAmB,CAAC,YAAY,EAAE,MAAM,GAAG,SAAS,MAAM,EAAE,CAS3E;AAmBD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,mBAAmB,CAAC,YAAY,EAAE,MAAM,GAAG,SAAS,MAAM,EAAE,CAM3E;AAED;;;;;;;;;GASG;AACH,wBAAgB,kBAAkB,CAAC,YAAY,EAAE,MAAM,GAAG,SAAS,MAAM,EAAE,CAM1E;AAaD;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,yBAAyB,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI,CA+CpE;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,eAAO,MAAM,yBAAyB,EAAE,SAAS,MAAM,EA0CtD,CAAC;AAWF;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,8BAA8B,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI,CA8CzE;AAED;;;;;;GAMG;AACH,wBAAgB,0BAA0B,CAAC,YAAY,EAAE,MAAM,GAAG,SAAS,MAAM,EAAE,CAQlF;AAmBD;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAgB,6BAA6B,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI,CAsCxE;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,kBAAkB,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI,CAmE7D"}
1
+ {"version":3,"file":"settings-writer.d.ts","sourceRoot":"","sources":["../../src/cli/settings-writer.ts"],"names":[],"mappings":"AAuBA;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,eAAO,MAAM,iBAAiB,0DAA0D,CAAC;AAEzF;;;;;;;;GAQG;AACH,eAAO,MAAM,yBAAyB,iEAAiE,CAAC;AAExG;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,sBAAsB,2DAA2D,CAAC;AAE/F;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,uBAAuB,+DAA+D,CAAC;AAEpG;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,yBAAyB,oEAAoE,CAAC;AAE3G;;;;;;;;;GASG;AACH,eAAO,MAAM,8BAA8B,6DAA6D,CAAC;AAEzG;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,6BAA6B,gEAAgE,CAAC;AAE3G;;;;;;;;;;;;;;;;;;GAkBG;AACH,eAAO,MAAM,4BAA4B,8DAA8D,CAAC;AAwExG;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH;;;;;;;;GAQG;AACH,eAAO,MAAM,gBAAgB,EAAE,SAAS,MAAM,EAU7C,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,eAAe,EAAE,SAAS,MAAM,EA8D5C,CAAC;AAEF,eAAO,MAAM,wBAAwB,EAAE,SAAS,MAAM,EAMrD,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,eAAO,MAAM,2BAA2B,EAAE,SAAS,MAAM,EAGxD,CAAC;AAEF;;;;;;;;;;;;;;;;;GAiBG;AACH,eAAO,MAAM,uBAAuB,kBAAkB,CAAC;AAEvD;;;;;;;;;;;GAWG;AACH,wBAAgB,mBAAmB,CAAC,YAAY,EAAE,MAAM,GAAG,SAAS,MAAM,EAAE,CAS3E;AAmBD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,mBAAmB,CAAC,YAAY,EAAE,MAAM,GAAG,SAAS,MAAM,EAAE,CAM3E;AAED;;;;;;;;;GASG;AACH,wBAAgB,kBAAkB,CAAC,YAAY,EAAE,MAAM,GAAG,SAAS,MAAM,EAAE,CAM1E;AAED;;;;;;;;;GASG;AACH,wBAAgB,eAAe,CAAC,YAAY,EAAE,MAAM,GAAG,SAAS,MAAM,EAAE,CAkBvE;AAaD;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,yBAAyB,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI,CA+CpE;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,eAAO,MAAM,yBAAyB,EAAE,SAAS,MAAM,EA0CtD,CAAC;AAWF;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,8BAA8B,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI,CA8CzE;AAED;;;;;;GAMG;AACH,wBAAgB,0BAA0B,CAAC,YAAY,EAAE,MAAM,GAAG,SAAS,MAAM,EAAE,CAQlF;AAmBD;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAgB,6BAA6B,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI,CAgExE;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AACH,wBAAgB,kBAAkB,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI,CA6G7D"}
@@ -80,6 +80,22 @@ export const MACF_LGTM_HOOK_COMMAND = '$CLAUDE_PROJECT_DIR/.claude/scripts/check
80
80
  * `Closes #own` passes); override via MACF_SKIP_CLOSE_CHECK=1.
81
81
  */
82
82
  export const MACF_CLOSE_HOOK_COMMAND = '$CLAUDE_PROJECT_DIR/.claude/scripts/check-close-keyword.sh';
83
+ /**
84
+ * Auditor-never-acts hook command (groundnuty/macf#499 — DR-026 F1). Blocks
85
+ * state-mutating `gh` ops (`gh pr merge` / `gh issue close` / `gh pr close`)
86
+ * when the active identity is the auditor (`MACF_AGENT_ROLE=auditor`), while
87
+ * leaving the propose verbs (`gh issue/pr create|comment`) untouched. For every
88
+ * NON-auditor identity the hook is inert (`exit 0` before any parsing), so
89
+ * fleet-wide distribution via `macf init` / `macf update` is a no-op everywhere
90
+ * except the auditor.
91
+ *
92
+ * Why structural and not permission-based: a GitHub App's `pull_requests:write`
93
+ * grants merge+close TOGETHER with open-PR — there is no "open-a-PR-but-not-
94
+ * merge" scope to express the auditor's write-proposals-only boundary, so it
95
+ * must be enforced at tool-call time. Sister to the #140 / #244+#272 / #270 /
96
+ * #431 PreToolUse hooks; override via MACF_SKIP_AUDITOR_ACT_CHECK=1.
97
+ */
98
+ export const MACF_AUDITOR_HOOK_COMMAND = '$CLAUDE_PROJECT_DIR/.claude/scripts/check-auditor-never-acts.sh';
83
99
  /**
84
100
  * The UserPromptSubmit turn-ack receipt hook (groundnuty/macf#444 Option D,
85
101
  * piece 2). When the router injects a prompt carrying the correlation marker
@@ -91,6 +107,42 @@ export const MACF_CLOSE_HOOK_COMMAND = '$CLAUDE_PROJECT_DIR/.claude/scripts/chec
91
107
  * `async: true` so it adds no turn latency. No-op on non-routed prompts.
92
108
  */
93
109
  export const MACF_TURN_RECEIPT_HOOK_COMMAND = '$CLAUDE_PROJECT_DIR/.claude/scripts/emit-turn-receipt.sh';
110
+ /**
111
+ * Attribution-result PostToolUse hook command (groundnuty/macf#489). After a
112
+ * `gh`-write Bash op (`gh issue/pr comment`, `gh issue/pr create`,
113
+ * `gh issue/pr close --comment`), this hook reads the just-written resource
114
+ * back from GitHub and warns LOUDLY (PostToolUse `exit 2`) if it was authored
115
+ * by the operator's USER account rather than the bot — the silent-fallback
116
+ * Instance-12 attribution trap. It is the result-invariant backstop to the
117
+ * #140 PreToolUse `check-gh-token.sh`: that one catches the missing-bot-token
118
+ * shape BEFORE the call; this one catches a slipped write AFTER the fact.
119
+ *
120
+ * PostToolUse CANNOT block (the tool already ran), so this is registered on
121
+ * the `PostToolUse` event (matcher `Bash`), NOT `PreToolUse`. Fail-open:
122
+ * every uncertain branch in the script exits 0; only a CONFIRMED
123
+ * user-authored write fires `exit 2`. Override: MACF_SKIP_ATTRIBUTION_CHECK=1.
124
+ */
125
+ export const MACF_ATTRIBUTION_HOOK_COMMAND = '$CLAUDE_PROJECT_DIR/.claude/scripts/check-gh-attribution.sh';
126
+ /**
127
+ * Reflection-harvest PreCompact hook command (groundnuty/macf#500 — DR-026 F2).
128
+ * At compaction (auto OR manual `/compact`), this hook harvests the agent's
129
+ * *staged* reflection (`.claude/.macf/reflections/pending.json`, maintained
130
+ * incrementally per `reflection-staging.md`), wraps it in the versioned
131
+ * reflection-schema envelope (`@groundnuty/macf-core` `ReflectionRecordSchema`),
132
+ * appends it as one line to a local per-session JSONL ledger, and clears the
133
+ * stage. F4's Monitor reads the ledger back.
134
+ *
135
+ * It runs on the `PreCompact` event (matcher-less, like SessionStart / Stop /
136
+ * UserPromptSubmit). Per DR-023 §UC-3 it is observational + NON-BLOCKING: the
137
+ * script ALWAYS `exit 0` (even on internal error) so it can never delay/block
138
+ * compaction. Fast + local; no network. Override: MACF_SKIP_REFLECTION_HARVEST=1.
139
+ *
140
+ * Distinct from the plugin's existing PreCompact `checkpoint_to_memory`
141
+ * mcp_tool entry (DR-023 §UC-3 session-checkpoint): that ships via the plugin
142
+ * `hooks.json` mcp_tool path; THIS is a bash command-type hook installed into
143
+ * settings.json — both can coexist on the PreCompact event.
144
+ */
145
+ export const MACF_REFLECTION_HOOK_COMMAND = '$CLAUDE_PROJECT_DIR/.claude/scripts/harvest-reflection.sh';
94
146
  /**
95
147
  * The hook filenames used to identify MACF-managed entries on refresh.
96
148
  * Matched by path-end equality (see isMacfManagedCommand) so operator
@@ -101,7 +153,10 @@ const MACF_HOOK_FILENAMES = [
101
153
  'check-mention-routing.sh',
102
154
  'check-lgtm-gate.sh',
103
155
  'check-close-keyword.sh',
156
+ 'check-auditor-never-acts.sh',
104
157
  'emit-turn-receipt.sh',
158
+ 'check-gh-attribution.sh',
159
+ 'harvest-reflection.sh',
105
160
  ];
106
161
  /**
107
162
  * True iff the command string represents one of our managed hooks — i.e.
@@ -152,6 +207,94 @@ function readSettings(path) {
152
207
  * a skill, add its pattern here + bump CLI version. macf#350 added
153
208
  * `macf-notify-peer` (operator-driven cross-agent messaging slash-command).
154
209
  */
210
+ /**
211
+ * DR-028 universal floor `allow` tools (every role). Broad `Bash(*)` — narrow
212
+ * patterns are defeated by `$GH_TOKEN`/`$MACF_WORKSPACE_DIR` "simple_expansion";
213
+ * the real defense is the `deny` floor + the PreToolUse hooks, NOT
214
+ * allow-narrowing. `Write`/`Edit` close the memory-edit prompt. Defined here
215
+ * (zero deps) so `role-settings-model.ts` re-exports it without an import cycle
216
+ * (that module imports the hook constants FROM here). See
217
+ * `design/decisions/DR-028-expected-settings-per-role.md`.
218
+ */
219
+ export const ROLE_FLOOR_ALLOW = [
220
+ 'Bash(*)',
221
+ 'Read',
222
+ 'Write',
223
+ 'Edit',
224
+ 'Glob',
225
+ 'Grep',
226
+ 'WebFetch',
227
+ 'WebSearch',
228
+ 'Agent',
229
+ ];
230
+ /**
231
+ * DR-028 universal floor `deny` — the real guardrail (seeded from devops's set,
232
+ * the most complete of the three working agents): credential/secret reads +
233
+ * config/dotfile writes + dangerous commands.
234
+ */
235
+ export const ROLE_FLOOR_DENY = [
236
+ // credential / secret reads
237
+ 'Read(~/.ssh/id_*)',
238
+ 'Read(~/.ssh/*.pem)',
239
+ 'Read(~/.aws/**)',
240
+ 'Read(~/.gnupg/**)',
241
+ 'Read(~/.kube/**)',
242
+ 'Read(~/.config/gcloud/**)',
243
+ 'Read(~/.netrc)',
244
+ 'Read(~/.config/gh/**)',
245
+ 'Read(~/.bash_history)',
246
+ 'Read(~/.zsh_history)',
247
+ // config / dotfile writes
248
+ 'Write(~/.claude/settings.json)',
249
+ 'Edit(~/.claude/settings.json)',
250
+ 'Write(~/.claude.json)',
251
+ 'Edit(~/.claude.json)',
252
+ 'Write(~/.ssh/**)',
253
+ 'Edit(~/.ssh/**)',
254
+ 'Write(~/.aws/**)',
255
+ 'Edit(~/.aws/**)',
256
+ 'Write(~/.gnupg/**)',
257
+ 'Edit(~/.gnupg/**)',
258
+ 'Write(~/.kube/**)',
259
+ 'Edit(~/.kube/**)',
260
+ 'Write(~/.config/gcloud/**)',
261
+ 'Edit(~/.config/gcloud/**)',
262
+ 'Write(~/.gitconfig)',
263
+ 'Edit(~/.gitconfig)',
264
+ 'Write(~/.npmrc)',
265
+ 'Edit(~/.npmrc)',
266
+ 'Write(~/.pypirc)',
267
+ 'Edit(~/.pypirc)',
268
+ 'Write(~/.docker/config.json)',
269
+ 'Edit(~/.docker/config.json)',
270
+ 'Write(~/.netrc)',
271
+ 'Edit(~/.netrc)',
272
+ 'Write(~/.config/gh/**)',
273
+ 'Edit(~/.config/gh/**)',
274
+ 'Write(~/.bashrc)',
275
+ 'Edit(~/.bashrc)',
276
+ 'Write(~/.zshrc)',
277
+ 'Edit(~/.zshrc)',
278
+ 'Write(~/.profile)',
279
+ 'Edit(~/.profile)',
280
+ 'Write(~/.bash_profile)',
281
+ 'Edit(~/.bash_profile)',
282
+ 'Write(~/.zprofile)',
283
+ 'Edit(~/.zprofile)',
284
+ 'Write(~/.zshenv)',
285
+ 'Edit(~/.zshenv)',
286
+ // dangerous commands
287
+ 'Bash(sudo *)',
288
+ 'Bash(rm -rf /)',
289
+ 'Bash(git push --force*)',
290
+ 'Bash(git push * --force*)',
291
+ 'Bash(git push -f)',
292
+ 'Bash(git push -f *)',
293
+ 'Bash(git push * -f)',
294
+ 'Bash(git push * -f *)',
295
+ 'Bash(git commit --no-verify *)',
296
+ 'Bash(git commit -n *)',
297
+ ];
155
298
  export const PLUGIN_SKILL_PERMISSIONS = [
156
299
  'Skill(macf-agent:macf-status)',
157
300
  'Skill(macf-agent:macf-issues)',
@@ -296,6 +439,37 @@ export function getPermissionsDeny(workspaceDir) {
296
439
  const local = readPermissionsArray(join(claudeDir, 'settings.local.json'), 'deny');
297
440
  return Array.from(new Set([...main, ...local]));
298
441
  }
442
+ /**
443
+ * Read the workspace-effective set of hook command strings — the union of
444
+ * `.claude/settings.json` + `.claude/settings.local.json` across EVERY hook
445
+ * event (PreToolUse / PostToolUse / UserPromptSubmit / PreCompact / …). The
446
+ * order-/event-agnostic command list is what `macf doctor` (DR-028) validates
447
+ * against the role model: the model identifies a wired hook by its command
448
+ * string (the same identity `installGhTokenHook` writes), not by which event
449
+ * array it lives in, so a flat deduped command set is the right comparison
450
+ * surface. Throws on malformed JSON in either file (via `readSettings`).
451
+ */
452
+ export function getHookCommands(workspaceDir) {
453
+ const absDir = resolve(workspaceDir);
454
+ const claudeDir = join(absDir, '.claude');
455
+ const commands = [];
456
+ for (const file of ['settings.json', 'settings.local.json']) {
457
+ const settings = readSettings(join(claudeDir, file));
458
+ const hooks = settings.hooks ?? {};
459
+ for (const event of Object.keys(hooks)) {
460
+ const entries = hooks[event];
461
+ if (!Array.isArray(entries))
462
+ continue;
463
+ for (const entry of entries) {
464
+ for (const h of entry.hooks ?? []) {
465
+ if (typeof h.command === 'string')
466
+ commands.push(h.command);
467
+ }
468
+ }
469
+ }
470
+ }
471
+ return Array.from(new Set(commands));
472
+ }
299
473
  /**
300
474
  * Legacy MACF-managed patterns that earlier CLI versions wrote to
301
475
  * `allowRead`. Dropped from the array before installing the current
@@ -586,17 +760,40 @@ export function installPluginSkillPermissions(workspaceDir) {
586
760
  return false;
587
761
  return true;
588
762
  });
589
- const allow = [
590
- ...preserved,
763
+ // DR-028 (macf#534): emit the role-aware floor — not just skill/mcp perms.
764
+ // `Bash(*)` + Read/Write/Edit/etc close the "pure-init agent prompts on every
765
+ // command" + the memory-edit gaps; `deny` is the real guardrail. Dedup so a
766
+ // workspace whose hand-wired settings already carry the floor (the substrate)
767
+ // doesn't double entries. Floor + plugin perms FIRST, then preserved operator
768
+ // extras (minus the stale macf-managed skill/mcp entries dropped above + any
769
+ // floor entry already present, to avoid duplicates).
770
+ const floorAndPlugin = [
771
+ ...ROLE_FLOOR_ALLOW,
591
772
  ...PLUGIN_SKILL_PERMISSIONS,
592
773
  ...PLUGIN_MCP_TOOL_PERMISSIONS,
593
774
  ];
775
+ const floorSet = new Set(floorAndPlugin);
776
+ const allow = [
777
+ ...floorAndPlugin,
778
+ ...preserved.filter((e) => !(typeof e === 'string' && floorSet.has(e))),
779
+ ];
780
+ // DR-028 deny floor — union with operator-authored deny entries (preserve
781
+ // extras, dedup, idempotent on re-run).
782
+ const existingDeny = Array.isArray(settings['permissions'] && settings['permissions']['deny'])
783
+ ? settings['permissions'].deny
784
+ : [];
785
+ const denySet = new Set(ROLE_FLOOR_DENY);
786
+ const deny = [
787
+ ...ROLE_FLOOR_DENY,
788
+ ...existingDeny.filter((e) => !(typeof e === 'string' && denySet.has(e))),
789
+ ];
594
790
  const existingPermissions = settings['permissions'] ?? {};
595
791
  const updated = {
596
792
  ...settings,
597
793
  permissions: {
598
794
  ...existingPermissions,
599
795
  allow,
796
+ deny,
600
797
  },
601
798
  };
602
799
  writeFileSync(path, JSON.stringify(updated, null, 2) + '\n');
@@ -612,16 +809,34 @@ export function installPluginSkillPermissions(workspaceDir) {
612
809
  * - `check-close-keyword.sh` (groundnuty/macf#431 — blocks `gh pr
613
810
  * create`/`edit` that would auto-close another agent's issue via a
614
811
  * close-keyword adjacent to its ref)
812
+ * - `check-auditor-never-acts.sh` (groundnuty/macf#499 — DR-026 F1; when
813
+ * `MACF_AGENT_ROLE=auditor`, blocks state-mutating `gh pr merge` /
814
+ * `gh issue close` / `gh pr close`; inert for every non-auditor identity)
815
+ *
816
+ * Plus, on the PostToolUse event:
817
+ * - `check-gh-attribution.sh` (groundnuty/macf#489 — after a `gh`-write
818
+ * op, reads the resource back from GitHub and warns (`exit 2`) if it
819
+ * was authored by the operator's user account instead of the bot;
820
+ * the result-invariant backstop to the #140 PreToolUse token check)
821
+ *
822
+ * And, on the UserPromptSubmit event:
823
+ * - `emit-turn-receipt.sh` (groundnuty/macf#444 — async turn-ack span)
824
+ *
825
+ * And, on the PreCompact event:
826
+ * - `harvest-reflection.sh` (groundnuty/macf#500 — DR-026 F2; at compaction,
827
+ * harvests the agent's staged reflection into a local JSONL ledger. Matcher-
828
+ * less + NON-BLOCKING; operator-authored PreCompact hooks are preserved)
615
829
  *
616
830
  * Creates the `.claude/` directory and the file if either is missing.
617
831
  * Idempotent: repeated calls don't duplicate entries.
618
832
  *
619
- * All hooks share `matcher: "Bash"` because Claude Code's matcher field
620
- * gates which tool fires the hook; the wrapped-command detection (gh vs
621
- * git-push for token, gh issue/pr comment for routing, gh pr merge for
622
- * LGTM) happens INSIDE each script. Distinct entries per script keep
623
- * them independently upgradeable + diagnosable in `gh issue list` style
624
- * settings audits.
833
+ * The PreToolUse + PostToolUse hooks share `matcher: "Bash"` because Claude
834
+ * Code's matcher field gates which tool fires the hook; the wrapped-command
835
+ * detection (gh vs git-push for token, gh issue/pr comment for routing,
836
+ * gh pr merge for LGTM, close-keyword for auto-close, the auditor-role
837
+ * acting-verb gate, gh-write for attribution) happens INSIDE each script.
838
+ * Distinct entries per script keep them independently upgradeable +
839
+ * diagnosable in `gh issue list` style settings audits.
625
840
  */
626
841
  export function installGhTokenHook(workspaceDir) {
627
842
  const absDir = resolve(workspaceDir);
@@ -631,7 +846,9 @@ export function installGhTokenHook(workspaceDir) {
631
846
  const settings = readSettings(path);
632
847
  const hooks = settings.hooks ?? {};
633
848
  const preToolUse = hooks.PreToolUse ?? [];
849
+ const postToolUse = hooks.PostToolUse ?? [];
634
850
  const userPromptSubmit = hooks.UserPromptSubmit ?? [];
851
+ const preCompact = hooks.PreCompact ?? [];
635
852
  // Drop any prior MACF-managed entries (any hook file in
636
853
  // MACF_HOOK_FILENAMES) so we can replace them cleanly — guards against
637
854
  // stale flags from older CLI versions + handles renames/additions to
@@ -657,6 +874,24 @@ export function installGhTokenHook(workspaceDir) {
657
874
  matcher: 'Bash',
658
875
  hooks: [{ type: 'command', command: MACF_CLOSE_HOOK_COMMAND }],
659
876
  },
877
+ {
878
+ matcher: 'Bash',
879
+ hooks: [{ type: 'command', command: MACF_AUDITOR_HOOK_COMMAND }],
880
+ },
881
+ ];
882
+ // PostToolUse: the attribution-result hook (groundnuty/macf#489). Same
883
+ // preserve-then-replace discipline as PreToolUse above — drop any prior
884
+ // MACF-managed PostToolUse entry (by MACF_HOOK_FILENAMES basename) and
885
+ // re-add ours, leaving operator-authored PostToolUse hooks intact. It runs
886
+ // on the `PostToolUse` event (NOT PreToolUse) because it inspects the tool's
887
+ // OUTPUT — the resource is already written; the hook reads it back from
888
+ // GitHub and warns (`exit 2`) on a user-attributed write.
889
+ const preservedPost = postToolUse.filter((entry) => !entry.hooks.some((h) => isMacfManagedCommand(h.command)));
890
+ const macfPostEntries = [
891
+ {
892
+ matcher: 'Bash',
893
+ hooks: [{ type: 'command', command: MACF_ATTRIBUTION_HOOK_COMMAND }],
894
+ },
660
895
  ];
661
896
  // UserPromptSubmit: the turn-ack receipt hook (groundnuty/macf#444). Same
662
897
  // preserve-then-replace discipline as PreToolUse above — drop any prior
@@ -670,12 +905,28 @@ export function installGhTokenHook(workspaceDir) {
670
905
  hooks: [{ type: 'command', command: MACF_TURN_RECEIPT_HOOK_COMMAND, async: true }],
671
906
  },
672
907
  ];
908
+ // PreCompact: the reflection-harvest hook (groundnuty/macf#500, DR-026 F2).
909
+ // Same preserve-then-replace discipline — drop any prior MACF-managed
910
+ // PreCompact entry (by MACF_HOOK_FILENAMES basename) and re-add ours, leaving
911
+ // operator-authored PreCompact hooks intact (e.g. the plugin's
912
+ // checkpoint_to_memory mcp_tool entry lives in the plugin hooks.json, not
913
+ // here; an operator's own settings.json PreCompact bash hook is preserved).
914
+ // Matcher-less (PreCompact isn't tool-gated). NON-BLOCKING by script contract
915
+ // (always exit 0) — so no `async` flag is needed; it can't delay compaction.
916
+ const preservedCompact = preCompact.filter((entry) => !entry.hooks.some((h) => isMacfManagedCommand(h.command)));
917
+ const macfCompactEntries = [
918
+ {
919
+ hooks: [{ type: 'command', command: MACF_REFLECTION_HOOK_COMMAND }],
920
+ },
921
+ ];
673
922
  const updated = {
674
923
  ...settings,
675
924
  hooks: {
676
925
  ...hooks,
677
926
  PreToolUse: [...preserved, ...macfEntries],
927
+ PostToolUse: [...preservedPost, ...macfPostEntries],
678
928
  UserPromptSubmit: [...preservedUps, ...macfUpsEntries],
929
+ PreCompact: [...preservedCompact, ...macfCompactEntries],
679
930
  },
680
931
  };
681
932
  writeFileSync(path, JSON.stringify(updated, null, 2) + '\n');
@@ -1 +1 @@
1
- {"version":3,"file":"settings-writer.js","sourceRoot":"","sources":["../../src/cli/settings-writer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"settings-writer.js","sourceRoot":"","sources":["../../src/cli/settings-writer.ts"],"names":[],"mappings":"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"}
@@ -67,6 +67,31 @@ export interface ReconcileOptions {
67
67
  * drop (groundnuty/macf#444). Undefined / 0 ⇒ no cutoff (judge all routes).
68
68
  */
69
69
  readonly sinceMs?: number;
70
+ /**
71
+ * Coalesced-turn proximity window (epoch ms) for the macf#479 precision-floor
72
+ * gate. A would-be drop is SUPPRESSED (benign coalesce) when a *different*
73
+ * delivery to the same agent within ±this is receipted — proof the agent was
74
+ * alive and processing routed turns then, so this one coalesced/clobbered into
75
+ * a sibling's turn. Must be > the turn-batching window (~couple min) and <
76
+ * `openThresholdMs` (so a real lone/offline/RC-bound drop, which has no
77
+ * receipted sibling, still flags). Undefined / 0 ⇒ no suppression (pre-#479).
78
+ */
79
+ readonly proximityMs?: number;
80
+ }
81
+ /**
82
+ * A would-be drop suppressed by the macf#479 coalesced-turn gate: a sibling
83
+ * delivery to the same agent was receipted within the proximity window, so the
84
+ * agent demonstrably processed routed turns around this delivery. Reported
85
+ * separately (not in `drops`) so the caller can emit a LOUD, counted signal —
86
+ * the suppression is observable (never a silent mask), keeping the clobber rate
87
+ * visible for the source-side `C-u`-clobber follow-up.
88
+ */
89
+ export interface SuppressedCoalesce {
90
+ readonly route: DeliveredRoute;
91
+ /** The receipted sibling delivery's run id that proves the agent was active. */
92
+ readonly siblingRunId: string;
93
+ /** `sibling.deliveredAtMs − route.deliveredAtMs` (signed), for the log. */
94
+ readonly deltaMs: number;
70
95
  }
71
96
  export interface ReconcileResult {
72
97
  /**
@@ -84,6 +109,12 @@ export interface ReconcileResult {
84
109
  * "in flight", reported for visibility but NOT alerted on.
85
110
  */
86
111
  readonly inFlight: readonly DeliveredRoute[];
112
+ /**
113
+ * Would-be drops suppressed by the macf#479 coalesced-turn gate (a receipted
114
+ * sibling delivery to the same agent within the proximity window). NOT alerted
115
+ * on, but the caller logs + counts each so the suppression stays observable.
116
+ */
117
+ readonly suppressed: readonly SuppressedCoalesce[];
87
118
  }
88
119
  /** Canonical join key for a `(runId, agent)` pair. */
89
120
  export declare function receiptKey(p: {
@@ -1 +1 @@
1
- {"version":3,"file":"reconcile.d.ts","sourceRoot":"","sources":["../../src/reconciler/reconcile.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AAEH,iFAAiF;AACjF,MAAM,WAAW,cAAc;IAC7B,wEAAwE;IACxE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,2EAA2E;IAC3E,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,0EAA0E;IAC1E,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;CAChC;AAED,qEAAqE;AACrE,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,gBAAgB;IAC/B,iEAAiE;IACjE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB;;;;OAIG;IACH,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC;;;;;;;;OAQG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,eAAe;IAC9B;;;;OAIG;IACH,QAAQ,CAAC,KAAK,EAAE,SAAS,cAAc,EAAE,CAAC;IAC1C,yDAAyD;IACzD,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,8DAA8D;IAC9D,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC;;;OAGG;IACH,QAAQ,CAAC,QAAQ,EAAE,SAAS,cAAc,EAAE,CAAC;CAC9C;AAED,sDAAsD;AACtD,wBAAgB,UAAU,CAAC,CAAC,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAAG,MAAM,CAEtE;AAED;;;;GAIG;AACH,wBAAgB,SAAS,CACvB,SAAS,EAAE,SAAS,cAAc,EAAE,EACpC,SAAS,EAAE,SAAS,gBAAgB,EAAE,EACtC,IAAI,EAAE,gBAAgB,GACrB,eAAe,CA8BjB"}
1
+ {"version":3,"file":"reconcile.d.ts","sourceRoot":"","sources":["../../src/reconciler/reconcile.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AAEH,iFAAiF;AACjF,MAAM,WAAW,cAAc;IAC7B,wEAAwE;IACxE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,2EAA2E;IAC3E,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,0EAA0E;IAC1E,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;CAChC;AAED,qEAAqE;AACrE,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,gBAAgB;IAC/B,iEAAiE;IACjE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB;;;;OAIG;IACH,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC;;;;;;;;OAQG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B;;;;;;;;OAQG;IACH,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;CAC/B;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,KAAK,EAAE,cAAc,CAAC;IAC/B,gFAAgF;IAChF,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,2EAA2E;IAC3E,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,eAAe;IAC9B;;;;OAIG;IACH,QAAQ,CAAC,KAAK,EAAE,SAAS,cAAc,EAAE,CAAC;IAC1C,yDAAyD;IACzD,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,8DAA8D;IAC9D,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC;;;OAGG;IACH,QAAQ,CAAC,QAAQ,EAAE,SAAS,cAAc,EAAE,CAAC;IAC7C;;;;OAIG;IACH,QAAQ,CAAC,UAAU,EAAE,SAAS,kBAAkB,EAAE,CAAC;CACpD;AAED,sDAAsD;AACtD,wBAAgB,UAAU,CAAC,CAAC,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAAG,MAAM,CAEtE;AAkCD;;;;GAIG;AACH,wBAAgB,SAAS,CACvB,SAAS,EAAE,SAAS,cAAc,EAAE,EACpC,SAAS,EAAE,SAAS,gBAAgB,EAAE,EACtC,IAAI,EAAE,gBAAgB,GACrB,eAAe,CA4CjB"}