@north-light/crouter 0.3.318 → 0.3.319

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 (1303) hide show
  1. package/README.md +0 -3
  2. package/dist/api/client.js +2 -912
  3. package/dist/api/dto/attach.js +0 -13
  4. package/dist/api/dto/bash-jobs.js +1 -9
  5. package/dist/api/dto/broker-ops.js +0 -6
  6. package/dist/api/dto/broker.js +0 -20
  7. package/dist/api/dto/canvas.js +0 -2
  8. package/dist/api/dto/chat-inventory.js +0 -11
  9. package/dist/api/dto/common.js +1 -15
  10. package/dist/api/dto/config.js +0 -3
  11. package/dist/api/dto/crons.js +1 -10
  12. package/dist/api/dto/files.js +0 -7
  13. package/dist/api/dto/focus.js +0 -10
  14. package/dist/api/dto/health.js +0 -2
  15. package/dist/api/dto/human-requests.js +0 -4
  16. package/dist/api/dto/human.js +0 -4
  17. package/dist/api/dto/inbox.js +0 -4
  18. package/dist/api/dto/lifecycle.js +0 -3
  19. package/dist/api/dto/mail.js +0 -1
  20. package/dist/api/dto/memory.js +0 -6
  21. package/dist/api/dto/messages.js +0 -2
  22. package/dist/api/dto/model-config.js +0 -1
  23. package/dist/api/dto/modelauth.js +0 -4
  24. package/dist/api/dto/node-outcomes.js +0 -2
  25. package/dist/api/dto/nodes.js +0 -3
  26. package/dist/api/dto/profiles.js +1 -4
  27. package/dist/api/dto/recovery.js +0 -1
  28. package/dist/api/dto/reports.js +0 -2
  29. package/dist/api/dto/review-comments.js +0 -5
  30. package/dist/api/dto/reviews.js +0 -5
  31. package/dist/api/dto/subscriptions.js +0 -2
  32. package/dist/api/dto/worktree.js +0 -6
  33. package/dist/api/errors.js +1 -40
  34. package/dist/api/index.js +1 -33
  35. package/dist/api/plugin-manifest-schema.js +0 -23
  36. package/dist/api/routes.js +1 -147
  37. package/dist/build-root.js +1 -198
  38. package/dist/cli.js +3 -99
  39. package/dist/clients/attach/ansi-cells.js +1 -137
  40. package/dist/clients/attach/chrome/bash-jobs.js +1 -31
  41. package/dist/clients/attach/chrome/canvas-panels.js +1 -194
  42. package/dist/clients/attach/chrome/completion-bell.js +1 -89
  43. package/dist/clients/attach/chrome/cron-wait.js +1 -34
  44. package/dist/clients/attach/chrome/git-info.js +2 -44
  45. package/dist/clients/attach/chrome/header.js +1 -30
  46. package/dist/clients/attach/chrome/inbox-strip.js +1 -199
  47. package/dist/clients/attach/chrome/recap.js +1 -19
  48. package/dist/clients/attach/chrome/review-wait.js +1 -22
  49. package/dist/clients/attach/chrome/roster.js +4 -275
  50. package/dist/clients/attach/chrome/status-line.js +1 -117
  51. package/dist/clients/attach/chrome/ticket-panel.js +1 -280
  52. package/dist/clients/attach/chrome/widgets.js +1 -51
  53. package/dist/clients/attach/command.js +1 -107
  54. package/dist/clients/attach/config.js +1 -274
  55. package/dist/clients/attach/input/capabilities.js +1 -104
  56. package/dist/clients/attach/input/clipboard-image.js +3 -220
  57. package/dist/clients/attach/input/completion-frecency.js +1 -141
  58. package/dist/clients/attach/input/controller.js +7 -377
  59. package/dist/clients/attach/input/overlay-owner.js +1 -199
  60. package/dist/clients/attach/input/ref-autocomplete.js +2 -176
  61. package/dist/clients/attach/input/titled-editor.js +4 -859
  62. package/dist/clients/attach/overlays/auth.js +2 -271
  63. package/dist/clients/attach/overlays/dialogs.js +2 -102
  64. package/dist/clients/attach/overlays/file-review.js +2 -128
  65. package/dist/clients/attach/overlays/graph.js +1 -661
  66. package/dist/clients/attach/overlays/help.js +1 -211
  67. package/dist/clients/attach/overlays/mcp.js +1 -302
  68. package/dist/clients/attach/overlays/pickers.js +1 -163
  69. package/dist/clients/attach/render/activity-slot.js +1 -13
  70. package/dist/clients/attach/render/assistant-message.js +1 -56
  71. package/dist/clients/attach/render/card-presentation.js +5 -218
  72. package/dist/clients/attach/render/chat-view.js +5 -1708
  73. package/dist/clients/attach/render/condensed-history.js +1 -60
  74. package/dist/clients/attach/render/context-message.js +1 -63
  75. package/dist/clients/attach/render/crtr-output.js +17 -905
  76. package/dist/clients/attach/render/diagram.js +7 -111
  77. package/dist/clients/attach/render/edit-diff.js +5 -304
  78. package/dist/clients/attach/render/glyph-codepoints.js +1 -42
  79. package/dist/clients/attach/render/group-activity.js +2 -263
  80. package/dist/clients/attach/render/group-recap.js +1 -152
  81. package/dist/clients/attach/render/markdown-source.js +5 -266
  82. package/dist/clients/attach/render/measured-container.js +1 -322
  83. package/dist/clients/attach/render/page-block.js +1 -183
  84. package/dist/clients/attach/render/scroll-animation.js +1 -80
  85. package/dist/clients/attach/render/tool-calls.js +3 -361
  86. package/dist/clients/attach/render/transcript-copy.js +2 -81
  87. package/dist/clients/attach/render/transcript-search.js +1 -152
  88. package/dist/clients/attach/render/viewport.js +1 -184
  89. package/dist/clients/attach/session/banner.js +1 -29
  90. package/dist/clients/attach/session/bindings.js +1 -71
  91. package/dist/clients/attach/session/chrome-refresh.js +1 -94
  92. package/dist/clients/attach/session/connection.js +1 -186
  93. package/dist/clients/attach/session/context.js +0 -16
  94. package/dist/clients/attach/session/editor-frame.js +1 -142
  95. package/dist/clients/attach/session/editor-inventory.js +6 -160
  96. package/dist/clients/attach/session/file-links.js +1 -68
  97. package/dist/clients/attach/session/focus-events.js +1 -12
  98. package/dist/clients/attach/session/frame.js +1 -214
  99. package/dist/clients/attach/session/frames.js +1 -188
  100. package/dist/clients/attach/session/identity.js +1 -26
  101. package/dist/clients/attach/session/input-wiring.js +1 -140
  102. package/dist/clients/attach/session/invariant.js +1 -15
  103. package/dist/clients/attach/session/keys.js +1 -77
  104. package/dist/clients/attach/session/layout.js +1 -59
  105. package/dist/clients/attach/session/mouse.js +1 -78
  106. package/dist/clients/attach/session/pane-focus.js +1 -42
  107. package/dist/clients/attach/session/pane-tag.js +1 -112
  108. package/dist/clients/attach/session/pi-assets.js +1 -24
  109. package/dist/clients/attach/session/pi-oauth-flows.js +1 -21
  110. package/dist/clients/attach/session/profile-files.js +1 -228
  111. package/dist/clients/attach/session/reconnect.js +1 -175
  112. package/dist/clients/attach/session/selection.js +3 -108
  113. package/dist/clients/attach/session/state-sync.js +1 -67
  114. package/dist/clients/attach/session/surface-frame.js +1 -73
  115. package/dist/clients/attach/session/surface-host.js +1 -255
  116. package/dist/clients/attach/session/teardown.js +5 -94
  117. package/dist/clients/attach/session/transcript-search.js +3 -151
  118. package/dist/clients/attach/session/whip-achievements.js +2 -145
  119. package/dist/clients/attach/session/whip.js +1 -362
  120. package/dist/clients/attach/slash/dispatch.js +1 -706
  121. package/dist/clients/attach/slash/prompt-preview.js +1 -121
  122. package/dist/clients/attach/viewer.js +441 -441
  123. package/dist/clients/conversation/projection.js +1 -324
  124. package/dist/clients/conversation/submit.js +1 -51
  125. package/dist/clients/inbox/controller.js +1 -701
  126. package/dist/clients/inbox/dto-adapt.js +1 -93
  127. package/dist/clients/inbox/layout.js +1 -9
  128. package/dist/clients/inbox/page-adapter.js +1 -55
  129. package/dist/clients/inbox/resolve.js +1 -35
  130. package/dist/clients/inbox/review/anchors.js +1 -89
  131. package/dist/clients/inbox/review/comments-client.js +1 -98
  132. package/dist/clients/inbox/review/companion-pane.js +1 -82
  133. package/dist/clients/inbox/review/document-surface.js +2 -1188
  134. package/dist/clients/inbox/review/frame.js +1 -216
  135. package/dist/clients/inbox/review/keys.js +1 -123
  136. package/dist/clients/inbox/review/launch.js +1 -151
  137. package/dist/clients/inbox/review/live-source.js +1 -160
  138. package/dist/clients/inbox/review/nvim.js +1 -44
  139. package/dist/clients/inbox/review/remap.js +1 -157
  140. package/dist/clients/inbox/review/review-client.js +1 -123
  141. package/dist/clients/inbox/review/roundtrip.js +3 -36
  142. package/dist/clients/inbox/review/state.js +4 -315
  143. package/dist/clients/inbox/review-adapter.js +1 -43
  144. package/dist/clients/inbox/surface.js +1 -152
  145. package/dist/clients/inbox/tui/ansi.js +3 -321
  146. package/dist/clients/inbox/tui/input.js +5 -392
  147. package/dist/clients/inbox/tui/keys.js +1 -104
  148. package/dist/clients/inbox/tui/page-body.js +1 -66
  149. package/dist/clients/inbox/tui/panel.js +1 -84
  150. package/dist/clients/inbox/tui/render.js +2 -368
  151. package/dist/clients/inbox/tui/slots.js +3 -134
  152. package/dist/clients/inbox/tui/types.js +0 -1
  153. package/dist/clients/inbox/tui.js +1 -86
  154. package/dist/clients/surfaces/host.js +0 -1
  155. package/dist/commands/api-client.js +4 -290
  156. package/dist/commands/attention.js +1 -215
  157. package/dist/commands/canvas-browse.js +1 -70
  158. package/dist/commands/canvas-config.js +2 -192
  159. package/dist/commands/canvas-history/grep.js +7 -85
  160. package/dist/commands/canvas-history/read.js +3 -50
  161. package/dist/commands/canvas-history/search.js +10 -99
  162. package/dist/commands/canvas-history/shared.js +1 -139
  163. package/dist/commands/canvas-history/stats.js +6 -68
  164. package/dist/commands/canvas-history.js +1 -32
  165. package/dist/commands/canvas-issue.js +14 -149
  166. package/dist/commands/canvas-prune.js +1 -108
  167. package/dist/commands/canvas-roster.js +1 -69
  168. package/dist/commands/canvas-snapshot.js +1 -34
  169. package/dist/commands/canvas-use.js +1 -61
  170. package/dist/commands/canvas.js +1 -49
  171. package/dist/commands/chord.js +1 -241
  172. package/dist/commands/cron.js +11 -534
  173. package/dist/commands/dashboard.js +1 -85
  174. package/dist/commands/human/components.js +3 -77
  175. package/dist/commands/human/feedback.js +1 -112
  176. package/dist/commands/human/prompts.js +1 -331
  177. package/dist/commands/human/queue.js +1 -191
  178. package/dist/commands/human/request.js +1 -266
  179. package/dist/commands/human/review.js +1 -288
  180. package/dist/commands/human/shared.js +1 -67
  181. package/dist/commands/human.js +4 -60
  182. package/dist/commands/memory/delete.js +1 -100
  183. package/dist/commands/memory/edit.js +21 -219
  184. package/dist/commands/memory/find.js +2 -244
  185. package/dist/commands/memory/history.js +5 -199
  186. package/dist/commands/memory/lint.js +1 -107
  187. package/dist/commands/memory/list.js +1 -142
  188. package/dist/commands/memory/move.js +1 -223
  189. package/dist/commands/memory/origin.js +1 -130
  190. package/dist/commands/memory/read.js +6 -232
  191. package/dist/commands/memory/shared.js +12 -802
  192. package/dist/commands/memory/write.js +13 -235
  193. package/dist/commands/memory.js +1 -30
  194. package/dist/commands/node/bash.js +5 -245
  195. package/dist/commands/node/create.js +3 -332
  196. package/dist/commands/node/inspect.js +12 -300
  197. package/dist/commands/node/lifecycle.js +2 -453
  198. package/dist/commands/node/message.js +1 -161
  199. package/dist/commands/node/outcome.js +4 -134
  200. package/dist/commands/node/pyramid.js +2 -79
  201. package/dist/commands/node/subscription.js +1 -78
  202. package/dist/commands/node/wait.js +7 -163
  203. package/dist/commands/node-context.js +2 -159
  204. package/dist/commands/node-inspect-artifacts.js +8 -109
  205. package/dist/commands/node-lifecycle-revive.js +1 -217
  206. package/dist/commands/node-snapshot.js +1 -37
  207. package/dist/commands/node-transcript.js +1 -62
  208. package/dist/commands/node-worktree.js +1 -138
  209. package/dist/commands/node.js +1 -29
  210. package/dist/commands/pkg/browse/actions.js +1 -198
  211. package/dist/commands/pkg/browse/catalog.js +1 -466
  212. package/dist/commands/pkg/browse/command-view.js +1 -191
  213. package/dist/commands/pkg/browse/detail-panel.js +1 -402
  214. package/dist/commands/pkg/browse/doc-view.js +1 -89
  215. package/dist/commands/pkg/browse/list-panel.js +2 -168
  216. package/dist/commands/pkg/browse/model.js +1 -36
  217. package/dist/commands/pkg/browse/shell.js +1 -640
  218. package/dist/commands/pkg/browse.js +1 -27
  219. package/dist/commands/pkg/market-inspect.js +1 -141
  220. package/dist/commands/pkg/market-manage.js +1 -327
  221. package/dist/commands/pkg/market.js +1 -14
  222. package/dist/commands/pkg/plugin-inspect.js +1 -168
  223. package/dist/commands/pkg/plugin-manage.js +17 -1109
  224. package/dist/commands/pkg/plugin.js +1 -14
  225. package/dist/commands/pkg/shared.js +1 -62
  226. package/dist/commands/pkg.js +1 -21
  227. package/dist/commands/profile/default.js +1 -139
  228. package/dist/commands/profile/delete.js +1 -66
  229. package/dist/commands/profile/env.js +3 -188
  230. package/dist/commands/profile/kind.js +2 -35
  231. package/dist/commands/profile/list.js +1 -43
  232. package/dist/commands/profile/meta.js +1 -67
  233. package/dist/commands/profile/new.js +1 -115
  234. package/dist/commands/profile/pause.js +1 -59
  235. package/dist/commands/profile/project.js +1 -113
  236. package/dist/commands/profile/rename.js +1 -38
  237. package/dist/commands/profile/show.js +1 -52
  238. package/dist/commands/profile.js +1 -35
  239. package/dist/commands/push.js +9 -265
  240. package/dist/commands/revive.js +10 -181
  241. package/dist/commands/surface/node/cycle.js +1 -83
  242. package/dist/commands/surface/node/focus.js +1 -81
  243. package/dist/commands/surface/node/id.js +1 -38
  244. package/dist/commands/surface/node/pin.js +1 -42
  245. package/dist/commands/surface/node/placement.js +1 -134
  246. package/dist/commands/surface-edit.js +1 -157
  247. package/dist/commands/surface-inbox.js +1 -98
  248. package/dist/commands/surface-inspect.js +1 -39
  249. package/dist/commands/surface-node.js +1 -19
  250. package/dist/commands/surface-reload.js +2 -134
  251. package/dist/commands/surface-tmux-spread.js +1 -214
  252. package/dist/commands/surface.js +1 -28
  253. package/dist/commands/sys/branch.js +1 -19
  254. package/dist/commands/sys/config.js +1 -353
  255. package/dist/commands/sys/context/admin/actions.js +2 -246
  256. package/dist/commands/sys/context/admin/detail-panel.js +1 -247
  257. package/dist/commands/sys/context/admin/docs-panel.js +1 -191
  258. package/dist/commands/sys/context/admin/list-view.js +1 -183
  259. package/dist/commands/sys/context/admin/model.js +1 -229
  260. package/dist/commands/sys/context/admin/rail-panel.js +1 -227
  261. package/dist/commands/sys/context/admin/read-view.js +2 -194
  262. package/dist/commands/sys/context/admin/shell.js +1 -910
  263. package/dist/commands/sys/context/admin.js +2 -126
  264. package/dist/commands/sys/context/doc.js +3 -197
  265. package/dist/commands/sys/context/prompt-review.js +11 -291
  266. package/dist/commands/sys/context/resolve.js +10 -489
  267. package/dist/commands/sys/context/sysprompt.js +5 -96
  268. package/dist/commands/sys/context.js +1 -20
  269. package/dist/commands/sys/daemon.js +1 -313
  270. package/dist/commands/sys/doctor.js +1 -617
  271. package/dist/commands/sys/feedback.js +7 -228
  272. package/dist/commands/sys/logs.js +3 -129
  273. package/dist/commands/sys/migrate.js +1 -94
  274. package/dist/commands/sys/panels/broker-limits-panel.js +2 -110
  275. package/dist/commands/sys/panels/dependencies-panel.js +1 -80
  276. package/dist/commands/sys/panels/keybindings-panel.js +1 -703
  277. package/dist/commands/sys/panels/models-panel.js +1 -1133
  278. package/dist/commands/sys/panels/plugins-panel.js +1 -80
  279. package/dist/commands/sys/panels/prefs-panel.js +1 -85
  280. package/dist/commands/sys/panels/profiles-panel.js +1 -601
  281. package/dist/commands/sys/panels/provider-panel.js +1 -538
  282. package/dist/commands/sys/settings-shell.js +1 -400
  283. package/dist/commands/sys/settings.js +1 -46
  284. package/dist/commands/sys/setup-core.js +6 -579
  285. package/dist/commands/sys/setup-settings-runner.js +1 -16
  286. package/dist/commands/sys/setup-wizard.js +1 -279
  287. package/dist/commands/sys/setup.js +1 -34
  288. package/dist/commands/sys/shared.js +1 -81
  289. package/dist/commands/sys/support/prepare.js +3 -239
  290. package/dist/commands/sys/support/submit.js +6 -524
  291. package/dist/commands/sys/support.js +1 -18
  292. package/dist/commands/sys/sync-deps.js +15 -498
  293. package/dist/commands/sys/sync-project-guidance.js +4 -481
  294. package/dist/commands/sys/sync-shared.js +1 -49
  295. package/dist/commands/sys/sync-skills.js +2 -311
  296. package/dist/commands/sys/sync.js +1 -18
  297. package/dist/commands/sys/update.js +1 -147
  298. package/dist/commands/sys/worktrees.js +5 -53
  299. package/dist/commands/sys.js +1 -18
  300. package/dist/core/activity-signal.js +2 -38
  301. package/dist/core/asset-root.js +1 -18
  302. package/dist/core/auth-file.js +2 -179
  303. package/dist/core/auth-interaction.js +3 -94
  304. package/dist/core/auto-update.js +4 -94
  305. package/dist/core/bash-guard.js +11 -393
  306. package/dist/core/bash-jobs.js +7 -411
  307. package/dist/core/bootstrap.js +2 -53
  308. package/dist/core/broker-client/client.js +1 -184
  309. package/dist/core/broker-client/index.js +1 -13
  310. package/dist/core/broker-client/transport-relay.js +1 -157
  311. package/dist/core/broker-client/transport-socket.js +1 -179
  312. package/dist/core/broker-client/transport.js +1 -26
  313. package/dist/core/canvas/attention.js +1 -47
  314. package/dist/core/canvas/boot-id.js +1 -26
  315. package/dist/core/canvas/boot.js +1 -186
  316. package/dist/core/canvas/browse/app.js +3 -919
  317. package/dist/core/canvas/browse/model.js +1 -477
  318. package/dist/core/canvas/browse/pins.js +1 -29
  319. package/dist/core/canvas/browse/render.js +3 -1055
  320. package/dist/core/canvas/canvas.js +15 -922
  321. package/dist/core/canvas/crons.js +11 -481
  322. package/dist/core/canvas/daemon-owner.js +2 -146
  323. package/dist/core/canvas/db.js +2 -100
  324. package/dist/core/canvas/deliveries.js +22 -283
  325. package/dist/core/canvas/delivery-contract.js +1 -8
  326. package/dist/core/canvas/executions.js +1 -68
  327. package/dist/core/canvas/extensions.js +1 -83
  328. package/dist/core/canvas/focuses.js +1 -77
  329. package/dist/core/canvas/history.js +24 -860
  330. package/dist/core/canvas/index.js +1 -15
  331. package/dist/core/canvas/install-id.js +1 -84
  332. package/dist/core/canvas/labels.js +1 -43
  333. package/dist/core/canvas/meta-file.js +1 -89
  334. package/dist/core/canvas/migrations.js +41 -1150
  335. package/dist/core/canvas/nav-model.js +1 -231
  336. package/dist/core/canvas/nav-render.js +1 -260
  337. package/dist/core/canvas/node-order.js +1 -37
  338. package/dist/core/canvas/node-recap.js +2 -67
  339. package/dist/core/canvas/node-sql-migration.js +2 -209
  340. package/dist/core/canvas/paths.js +1 -153
  341. package/dist/core/canvas/pid.js +4 -683
  342. package/dist/core/canvas/recovery.js +3 -565
  343. package/dist/core/canvas/remote-canvas-source.js +1 -288
  344. package/dist/core/canvas/remote-transport.js +1 -57
  345. package/dist/core/canvas/render-source.js +10 -635
  346. package/dist/core/canvas/sessions.js +1 -78
  347. package/dist/core/canvas/source.js +1 -47
  348. package/dist/core/canvas/status-glyph.js +1 -132
  349. package/dist/core/canvas/telemetry.js +1 -35
  350. package/dist/core/canvas/types.js +1 -6
  351. package/dist/core/canvas/waits.js +4 -68
  352. package/dist/core/canvas/worktrees.js +1 -93
  353. package/dist/core/clipboard-text.js +1 -57
  354. package/dist/core/command-hooks/artifact.js +1 -145
  355. package/dist/core/command-hooks/catalog.js +1 -38
  356. package/dist/core/command-hooks/compose.js +1 -99
  357. package/dist/core/command-hooks/discovery.js +1 -228
  358. package/dist/core/command-hooks/help.js +1 -18
  359. package/dist/core/command-hooks/index.js +1 -7
  360. package/dist/core/command-hooks/lifecycle-catalog.js +1 -9
  361. package/dist/core/command-hooks/lifecycle-create.js +1 -51
  362. package/dist/core/command-hooks/report.js +1 -28
  363. package/dist/core/command-hooks/schema.js +1 -157
  364. package/dist/core/command-hooks/transport/exec-invoke.js +1 -276
  365. package/dist/core/command-hooks/transport/exec-lifecycle.js +1 -211
  366. package/dist/core/command-manifests/manifest.js +1 -324
  367. package/dist/core/command-manifests/registry.js +1 -118
  368. package/dist/core/command-manifests/schema.js +1 -736
  369. package/dist/core/command-plugins/bundle.js +1 -261
  370. package/dist/core/command-plugins/compose.js +1 -65
  371. package/dist/core/command-plugins/discovery.js +1 -245
  372. package/dist/core/command-plugins/endpoint.js +1 -48
  373. package/dist/core/command-plugins/extensions.js +1 -166
  374. package/dist/core/command-plugins/help-addenda.js +1 -44
  375. package/dist/core/command-plugins/presence.js +1 -17
  376. package/dist/core/command-plugins/revalidate.js +2 -152
  377. package/dist/core/command-plugins/transport/exec-invoke.js +1 -215
  378. package/dist/core/command-plugins/transport/http-fetch.js +1 -68
  379. package/dist/core/command-plugins/transport/http-invoke.js +3 -546
  380. package/dist/core/command.js +10 -739
  381. package/dist/core/config.js +1 -1059
  382. package/dist/core/document-lines.js +3 -6
  383. package/dist/core/env-name.js +1 -9
  384. package/dist/core/errors.js +1 -52
  385. package/dist/core/events/emit.js +1 -17
  386. package/dist/core/events/envelope.js +1 -84
  387. package/dist/core/events/errors.js +1 -69
  388. package/dist/core/events/index.js +1 -4
  389. package/dist/core/events/operation-id.js +1 -24
  390. package/dist/core/events/read.js +1 -623
  391. package/dist/core/events/serialize.js +1 -199
  392. package/dist/core/events/source.js +1 -31
  393. package/dist/core/events/types.js +1 -11
  394. package/dist/core/exclusive-lock.js +1 -197
  395. package/dist/core/fault-classifier.js +1 -96
  396. package/dist/core/feed/feed.js +7 -202
  397. package/dist/core/feed/inbox-migrate.js +3 -135
  398. package/dist/core/feed/inbox.js +10 -122
  399. package/dist/core/feed/messages.js +6 -212
  400. package/dist/core/frontmatter.js +1 -35
  401. package/dist/core/fs-utils.js +3 -202
  402. package/dist/core/git.js +2 -103
  403. package/dist/core/help.js +9 -310
  404. package/dist/core/host-exports/builtins.js +9 -68
  405. package/dist/core/host-exports/export.js +3 -124
  406. package/dist/core/human/action-binding.js +1 -40
  407. package/dist/core/human/answer-text.js +5 -100
  408. package/dist/core/human/answer.js +1 -119
  409. package/dist/core/human/claim.js +3 -67
  410. package/dist/core/human/completion.js +1 -27
  411. package/dist/core/human/component-docs.js +78 -272
  412. package/dist/core/human/convention.js +2 -82
  413. package/dist/core/human/feedback-companion.js +1 -106
  414. package/dist/core/human/feedback.js +1 -88
  415. package/dist/core/human/page-authoring.js +1 -19
  416. package/dist/core/human/page-catalog.js +1 -172
  417. package/dist/core/human/page-errors.js +1 -7
  418. package/dist/core/human/page-eval.js +1 -125
  419. package/dist/core/human/page-html-markdown.js +8 -260
  420. package/dist/core/human/page-markdown.js +17 -295
  421. package/dist/core/human/page-schema.js +1 -373
  422. package/dist/core/human/page-synth.js +8 -27
  423. package/dist/core/human/page.js +1 -198
  424. package/dist/core/human/requests.js +15 -466
  425. package/dist/core/human/review-schema.js +1 -34
  426. package/dist/core/human/root.js +1 -11
  427. package/dist/core/human/scan.js +1 -69
  428. package/dist/core/human/summary.js +1 -5
  429. package/dist/core/human/tickets.js +1 -171
  430. package/dist/core/human/types.js +0 -1
  431. package/dist/core/human/visible-paths.js +1 -77
  432. package/dist/core/human-actions.js +1 -101
  433. package/dist/core/inspector/chrome.js +1 -14
  434. package/dist/core/inspector/contract.js +0 -1
  435. package/dist/core/inspector/core.js +2 -295
  436. package/dist/core/inspector/host.js +4 -538
  437. package/dist/core/inspector/model.js +2 -226
  438. package/dist/core/inspector/text.js +6 -45
  439. package/dist/core/inspector/transport.js +1 -36
  440. package/dist/core/inspector/tui.js +2 -295
  441. package/dist/core/installed-plugins.js +1 -78
  442. package/dist/core/io.js +7 -356
  443. package/dist/core/keybindings/attach-control.js +1 -42
  444. package/dist/core/keybindings/background-bash.js +1 -33
  445. package/dist/core/keybindings/catalog.js +1 -256
  446. package/dist/core/keybindings/inbox.js +1 -25
  447. package/dist/core/keybindings/index.js +1 -7
  448. package/dist/core/keybindings/match.js +1 -127
  449. package/dist/core/keybindings/persistence.js +1 -49
  450. package/dist/core/keybindings/resolve.js +1 -348
  451. package/dist/core/keybindings/types.js +0 -1
  452. package/dist/core/locked-file.js +1 -118
  453. package/dist/core/log.js +3 -27
  454. package/dist/core/manifest-recovery.js +1 -72
  455. package/dist/core/manifest-stale.js +1 -39
  456. package/dist/core/manifest.js +1 -20
  457. package/dist/core/memory/doc-link-grammar.js +2 -109
  458. package/dist/core/memory/extensions.js +1 -221
  459. package/dist/core/memory/history.js +6 -268
  460. package/dist/core/memory/identity.js +1 -181
  461. package/dist/core/memory/inline-ref-grammar.js +1 -98
  462. package/dist/core/memory/inline-ref-guidance.js +2 -35
  463. package/dist/core/memory/inline-ref-inventory.js +1 -59
  464. package/dist/core/memory/lint.js +2 -671
  465. package/dist/core/memory/project-namespace.js +2 -85
  466. package/dist/core/memory/repository-association.js +1 -129
  467. package/dist/core/memory/tree.js +1 -93
  468. package/dist/core/memory-resolver.js +2 -611
  469. package/dist/core/model-config.js +1 -107
  470. package/dist/core/model-routes.js +1 -201
  471. package/dist/core/nested-stores.js +2 -166
  472. package/dist/core/output.js +7 -99
  473. package/dist/core/pagination.js +1 -88
  474. package/dist/core/plugin-swap-lock.js +1 -31
  475. package/dist/core/pool-credential-store.js +1 -116
  476. package/dist/core/predicate.js +1 -191
  477. package/dist/core/preview-registry.js +2 -411
  478. package/dist/core/preview-result-path.js +1 -26
  479. package/dist/core/profiles/default-binding.js +1 -24
  480. package/dist/core/profiles/deletion-reservation.js +1 -42
  481. package/dist/core/profiles/env-store.js +2 -162
  482. package/dist/core/profiles/fuzzy-match.js +1 -92
  483. package/dist/core/profiles/manifest.js +1 -574
  484. package/dist/core/profiles/select.js +35 -741
  485. package/dist/core/profiles/state-block.js +3 -17
  486. package/dist/core/provider-error-recognition.js +1 -74
  487. package/dist/core/provider-failure.js +1 -86
  488. package/dist/core/provider-management.js +1 -22
  489. package/dist/core/remote-canvas-target.js +1 -30
  490. package/dist/core/render.js +18 -138
  491. package/dist/core/resolver.js +1 -111
  492. package/dist/core/review/birth.js +1 -52
  493. package/dist/core/review/comments.js +5 -279
  494. package/dist/core/review/companion.js +1 -215
  495. package/dist/core/review/document.js +2 -138
  496. package/dist/core/review/project.js +1 -36
  497. package/dist/core/review/realize.js +1 -71
  498. package/dist/core/review/remap.js +4 -141
  499. package/dist/core/review/signal.js +1 -12
  500. package/dist/core/review/stage.js +1 -184
  501. package/dist/core/review/store.js +1 -168
  502. package/dist/core/review/types.js +1 -23
  503. package/dist/core/runtime/advertised-command-invocation.js +1 -233
  504. package/dist/core/runtime/auth-reload.js +1 -67
  505. package/dist/core/runtime/banner.js +1 -51
  506. package/dist/core/runtime/bearings-render.js +18 -250
  507. package/dist/core/runtime/bearings.js +7 -194
  508. package/dist/core/runtime/bin-contributions.js +2 -186
  509. package/dist/core/runtime/boot-root.js +1 -107
  510. package/dist/core/runtime/branded-host.js +2 -264
  511. package/dist/core/runtime/broker/auth-reload.js +1 -157
  512. package/dist/core/runtime/broker/client-registry.js +1 -179
  513. package/dist/core/runtime/broker/daemon-ops.js +1 -88
  514. package/dist/core/runtime/broker/engine-drive.js +1 -354
  515. package/dist/core/runtime/broker/engine-routing.js +1 -211
  516. package/dist/core/runtime/broker/event-projection.js +1 -193
  517. package/dist/core/runtime/broker/extension-abort.js +1 -36
  518. package/dist/core/runtime/broker/fault-retry.js +1 -588
  519. package/dist/core/runtime/broker/frame-client.js +1 -132
  520. package/dist/core/runtime/broker/frame-dispatch.js +1 -183
  521. package/dist/core/runtime/broker/frame-engine-control.js +1 -231
  522. package/dist/core/runtime/broker/frame-memory-refs.js +1 -41
  523. package/dist/core/runtime/broker/frame-model-query.js +1 -69
  524. package/dist/core/runtime/broker/frame-read.js +1 -116
  525. package/dist/core/runtime/broker/frame-replies.js +1 -64
  526. package/dist/core/runtime/broker/frame-session.js +4 -203
  527. package/dist/core/runtime/broker/held-deferred-inbox.js +1 -13
  528. package/dist/core/runtime/broker/inbox.js +13 -163
  529. package/dist/core/runtime/broker/node-named.js +1 -27
  530. package/dist/core/runtime/broker/read-ops.js +1 -171
  531. package/dist/core/runtime/broker/rebind.js +1 -318
  532. package/dist/core/runtime/broker/tool-groups.js +1 -246
  533. package/dist/core/runtime/broker/turn-admission.js +1 -31
  534. package/dist/core/runtime/broker/turn-ignition.js +1 -84
  535. package/dist/core/runtime/broker-cli.js +3 -81
  536. package/dist/core/runtime/broker-extension-render.js +5 -135
  537. package/dist/core/runtime/broker-inventory.js +1 -116
  538. package/dist/core/runtime/broker-persona-guidance.js +4 -154
  539. package/dist/core/runtime/broker-protocol.js +3 -152
  540. package/dist/core/runtime/broker-request.js +1 -85
  541. package/dist/core/runtime/broker-sdk.js +1 -129
  542. package/dist/core/runtime/broker.js +1 -1214
  543. package/dist/core/runtime/canvas-extensions.js +1 -96
  544. package/dist/core/runtime/chat-inventory-rows.js +1 -105
  545. package/dist/core/runtime/close.js +1 -265
  546. package/dist/core/runtime/command-expansion.js +9 -104
  547. package/dist/core/runtime/command-surface.js +1 -117
  548. package/dist/core/runtime/connectivity.js +1 -73
  549. package/dist/core/runtime/deliver-live.js +1 -88
  550. package/dist/core/runtime/fault-recovery.js +1 -83
  551. package/dist/core/runtime/fault.js +1 -17
  552. package/dist/core/runtime/fleet.js +1 -58
  553. package/dist/core/runtime/front-door-env.js +1 -16
  554. package/dist/core/runtime/front-door.js +7 -183
  555. package/dist/core/runtime/headless-pi.js +1 -161
  556. package/dist/core/runtime/host.js +1 -457
  557. package/dist/core/runtime/interactive-deliver.js +1 -51
  558. package/dist/core/runtime/invocation.js +0 -10
  559. package/dist/core/runtime/kickoff.js +30 -327
  560. package/dist/core/runtime/launch-config-worker.js +1 -12
  561. package/dist/core/runtime/launch-prompt.js +4 -13
  562. package/dist/core/runtime/launch-target.js +1 -55
  563. package/dist/core/runtime/launch.js +1 -483
  564. package/dist/core/runtime/lifecycle.js +2 -213
  565. package/dist/core/runtime/managed-provider-cooling.js +1 -62
  566. package/dist/core/runtime/memory.js +1 -17
  567. package/dist/core/runtime/model-registry.js +1 -13
  568. package/dist/core/runtime/model-selection.js +1 -135
  569. package/dist/core/runtime/model-swap.js +1 -86
  570. package/dist/core/runtime/naming.js +14 -298
  571. package/dist/core/runtime/nerd-font.js +2 -127
  572. package/dist/core/runtime/node-read.js +2 -386
  573. package/dist/core/runtime/nodes.js +1 -331
  574. package/dist/core/runtime/outcome-document.js +1 -97
  575. package/dist/core/runtime/package-health.js +4 -99
  576. package/dist/core/runtime/persona.js +2 -55
  577. package/dist/core/runtime/pi-cli.js +1 -65
  578. package/dist/core/runtime/pi-vendored.js +1 -66
  579. package/dist/core/runtime/placement-tmux.js +1 -81
  580. package/dist/core/runtime/placement.js +1 -386
  581. package/dist/core/runtime/promote.js +1 -174
  582. package/dist/core/runtime/prospective-inventory-cli.js +3 -61
  583. package/dist/core/runtime/prospective-inventory.js +2 -88
  584. package/dist/core/runtime/recap.js +27 -103
  585. package/dist/core/runtime/recycle.js +1 -190
  586. package/dist/core/runtime/reopen.js +1 -138
  587. package/dist/core/runtime/reset.js +1 -245
  588. package/dist/core/runtime/resume-root.js +10 -290
  589. package/dist/core/runtime/revive-all.js +1 -107
  590. package/dist/core/runtime/revive.js +4 -544
  591. package/dist/core/runtime/roadmap.js +4 -38
  592. package/dist/core/runtime/session-branch.js +1 -46
  593. package/dist/core/runtime/session-cycles.js +1 -110
  594. package/dist/core/runtime/session-list-cache.js +1 -406
  595. package/dist/core/runtime/session-visibility.js +1 -99
  596. package/dist/core/runtime/shell-expansion.js +9 -100
  597. package/dist/core/runtime/situational-context.js +2 -67
  598. package/dist/core/runtime/situational-live.js +1 -41
  599. package/dist/core/runtime/spawn-env.js +1 -255
  600. package/dist/core/runtime/spawn.js +3 -577
  601. package/dist/core/runtime/stamp/channel.js +1 -76
  602. package/dist/core/runtime/stamp/protocol.js +1 -113
  603. package/dist/core/runtime/stop-guard.js +7 -116
  604. package/dist/core/runtime/stop-signals.js +1 -46
  605. package/dist/core/runtime/stream-watchdog.js +1 -134
  606. package/dist/core/runtime/structured-output.js +4 -156
  607. package/dist/core/runtime/surface-bg.js +1 -85
  608. package/dist/core/runtime/tmux-bindings.js +4 -730
  609. package/dist/core/runtime/tmux-chrome.js +1 -5
  610. package/dist/core/runtime/tmux-driver.js +7 -637
  611. package/dist/core/runtime/tool-group-summary.js +6 -85
  612. package/dist/core/runtime/turn-visibility.js +1 -31
  613. package/dist/core/runtime/view-socket.js +1 -83
  614. package/dist/core/runtime/warm-pool.js +1 -395
  615. package/dist/core/scope.js +1 -254
  616. package/dist/core/scoped-state/db.js +1 -135
  617. package/dist/core/scoped-state/migrate.js +3 -181
  618. package/dist/core/scoped-state/paths.js +1 -27
  619. package/dist/core/scoped-state/profiles.js +1 -62
  620. package/dist/core/scoped-state/providers.js +1 -8
  621. package/dist/core/scoped-state/schema.js +3 -16
  622. package/dist/core/scoped-state/settings.js +1 -82
  623. package/dist/core/secrets.js +2 -55
  624. package/dist/core/self-update.js +1 -71
  625. package/dist/core/session-model/session-state.js +1 -180
  626. package/dist/core/shell-segments.js +4 -169
  627. package/dist/core/spawn.js +1 -26
  628. package/dist/core/stdout-errors.js +1 -14
  629. package/dist/core/subscription-state.js +3 -193
  630. package/dist/core/substrate/frontmatter-validation.js +1 -105
  631. package/dist/core/substrate/gate-explain.js +1 -424
  632. package/dist/core/substrate/gate.js +1 -26
  633. package/dist/core/substrate/index.js +1 -30
  634. package/dist/core/substrate/injected-store.js +1 -249
  635. package/dist/core/substrate/listings.js +1 -115
  636. package/dist/core/substrate/on-read-node.js +1 -36
  637. package/dist/core/substrate/on-read.js +9 -315
  638. package/dist/core/substrate/plan.js +1 -266
  639. package/dist/core/substrate/render-node.js +1 -30
  640. package/dist/core/substrate/render.js +65 -689
  641. package/dist/core/substrate/schema.js +1 -186
  642. package/dist/core/substrate/session-cache.js +1 -83
  643. package/dist/core/substrate/subject-fields.js +1 -35
  644. package/dist/core/substrate/subject.js +1 -47
  645. package/dist/core/substrate/surface-match.js +1 -242
  646. package/dist/core/termrender/code-doc.js +5 -92
  647. package/dist/core/termrender/display.js +2 -56
  648. package/dist/core/termrender/termrender.js +14 -719
  649. package/dist/core/termrender/version.js +1 -1
  650. package/dist/core/timing.js +2 -94
  651. package/dist/core/tui/draw.js +2 -378
  652. package/dist/core/tui/fuzzy.js +1 -38
  653. package/dist/core/tui/markdown.js +3 -407
  654. package/dist/core/tui/page-host.js +1 -74
  655. package/dist/core/tui/panel.js +1 -137
  656. package/dist/core/tui/terminal.js +2 -100
  657. package/dist/core/user-settings.js +1 -454
  658. package/dist/core/wake.js +1 -296
  659. package/dist/core/worktree-close.js +6 -228
  660. package/dist/core/worktree-containment.js +3 -48
  661. package/dist/core/worktree-landing.js +4 -56
  662. package/dist/core/worktree-mutation-async.js +10 -280
  663. package/dist/core/worktree-quarantine.js +1 -54
  664. package/dist/core/worktree-sweep.js +6 -453
  665. package/dist/core/worktree.js +18 -899
  666. package/dist/daemon/api/bridge.js +8 -418
  667. package/dist/daemon/api/handlers/attach.js +1 -65
  668. package/dist/daemon/api/handlers/bash-jobs.js +2 -91
  669. package/dist/daemon/api/handlers/broker-ops.js +1 -447
  670. package/dist/daemon/api/handlers/broker-recovery.js +1 -251
  671. package/dist/daemon/api/handlers/canvas.js +6 -490
  672. package/dist/daemon/api/handlers/chat-inventory.js +1 -25
  673. package/dist/daemon/api/handlers/crons.js +1 -373
  674. package/dist/daemon/api/handlers/daemon.js +1 -76
  675. package/dist/daemon/api/handlers/feedback-comments.js +3 -199
  676. package/dist/daemon/api/handlers/files.js +1 -63
  677. package/dist/daemon/api/handlers/focus.js +1 -92
  678. package/dist/daemon/api/handlers/health.js +1 -76
  679. package/dist/daemon/api/handlers/human-requests.js +1 -379
  680. package/dist/daemon/api/handlers/human.js +1 -3
  681. package/dist/daemon/api/handlers/inbox-page.js +1 -89
  682. package/dist/daemon/api/handlers/inbox.js +1 -301
  683. package/dist/daemon/api/handlers/memory.js +1 -50
  684. package/dist/daemon/api/handlers/messages.js +2 -506
  685. package/dist/daemon/api/handlers/model-config.js +1 -44
  686. package/dist/daemon/api/handlers/modelauth.js +1 -165
  687. package/dist/daemon/api/handlers/node-outcomes.js +1 -181
  688. package/dist/daemon/api/handlers/nodes.js +1 -939
  689. package/dist/daemon/api/handlers/profiles.js +1 -140
  690. package/dist/daemon/api/handlers/prospective-chat-inventory.js +1 -59
  691. package/dist/daemon/api/handlers/reports.js +16 -332
  692. package/dist/daemon/api/handlers/review-comments.js +1 -465
  693. package/dist/daemon/api/handlers/reviews.js +1 -200
  694. package/dist/daemon/api/handlers/subscriptions.js +1 -53
  695. package/dist/daemon/api/handlers/validate.js +1 -58
  696. package/dist/daemon/api/handlers/worktree.js +1 -39
  697. package/dist/daemon/api/map.js +2 -735
  698. package/dist/daemon/api/router.js +1 -190
  699. package/dist/daemon/api/server.js +11 -408
  700. package/dist/daemon/boot-migrations.js +1 -31
  701. package/dist/daemon/companion-retire.js +1 -34
  702. package/dist/daemon/control.js +1 -22
  703. package/dist/daemon/cron/armed-context.js +1 -100
  704. package/dist/daemon/cron/capture.js +2 -45
  705. package/dist/daemon/cron/disposition.js +1 -55
  706. package/dist/daemon/cron/escalation.js +3 -124
  707. package/dist/daemon/cron/held.js +1 -20
  708. package/dist/daemon/cron/lease-recovery.js +1 -119
  709. package/dist/daemon/cron/live-runs.js +1 -23
  710. package/dist/daemon/cron/passes.js +1 -58
  711. package/dist/daemon/cron/settle.js +1 -61
  712. package/dist/daemon/cron/sinks.js +2 -59
  713. package/dist/daemon/cron-run.js +1 -405
  714. package/dist/daemon/crtrd-cli.js +1 -23
  715. package/dist/daemon/crtrd.js +8 -854
  716. package/dist/daemon/delivery/run-delivery.js +1 -164
  717. package/dist/daemon/fleet.js +17 -475
  718. package/dist/daemon/human/finish.js +10 -179
  719. package/dist/daemon/human/settle.js +1 -89
  720. package/dist/daemon/human/sweep.js +1 -66
  721. package/dist/daemon/manage.js +2 -595
  722. package/dist/daemon/messaging/node-message.js +1 -99
  723. package/dist/daemon/park-activity.js +1 -30
  724. package/dist/daemon/park-pending.js +1 -52
  725. package/dist/daemon/pidfile.js +1 -37
  726. package/dist/daemon/profile-delete.js +1 -306
  727. package/dist/daemon/reconcilers/bash-deadline.js +1 -80
  728. package/dist/daemon/reconcilers/broker-supervision.js +4 -761
  729. package/dist/daemon/reconcilers/controller-death.js +1 -14
  730. package/dist/daemon/reconcilers/cron-lane.js +1 -29
  731. package/dist/daemon/reconcilers/delivery-lane.js +1 -130
  732. package/dist/daemon/reconcilers/live-obligation.js +1 -87
  733. package/dist/daemon/reconcilers/managed-worktree-sweep.js +1 -202
  734. package/dist/daemon/reconcilers/node-deadline.js +1 -82
  735. package/dist/daemon/reconcilers/node-lifecycle/freeze-lane.js +1 -172
  736. package/dist/daemon/reconcilers/node-lifecycle/respawn-policy.js +1 -59
  737. package/dist/daemon/reconcilers/node-lifecycle/terminating.js +1 -12
  738. package/dist/daemon/reconcilers/node-lifecycle/tick.js +1 -146
  739. package/dist/daemon/reconcilers/node-lifecycle/wants-execution.js +1 -11
  740. package/dist/daemon/reconcilers/pending-review-submit.js +1 -36
  741. package/dist/daemon/reconcilers/storage-maintenance.js +1 -207
  742. package/dist/daemon/review/comment-notify.js +2 -109
  743. package/dist/daemon/review/companion.js +1 -29
  744. package/dist/daemon/review/deliver.js +3 -8
  745. package/dist/daemon/review/finish.js +1 -122
  746. package/dist/daemon/review/sweep.js +1 -18
  747. package/dist/daemon/startup-policy.js +1 -1
  748. package/dist/daemon/supervise-cadence.js +1 -6
  749. package/dist/hook-authoring.js +5 -447
  750. package/dist/hook-process.js +1 -34
  751. package/dist/index.js +1 -52
  752. package/dist/migrations/001-surfaces-frontmatter.js +1 -161
  753. package/dist/migrations/002-profile-project-memory.js +1 -72
  754. package/dist/migrations/003-repository-root-memory-identity/front-door.js +11 -231
  755. package/dist/migrations/003-repository-root-memory-identity/index.js +5 -513
  756. package/dist/migrations/003-repository-root-memory-identity/references.js +5 -469
  757. package/dist/migrations/003-repository-root-memory-identity/repository-facts.js +3 -349
  758. package/dist/migrations/activation.js +2 -89
  759. package/dist/migrations/convergent.js +2 -82
  760. package/dist/migrations/corpus.js +3 -483
  761. package/dist/migrations/frontmatter-splice.js +8 -176
  762. package/dist/migrations/profile-manifests.js +2 -70
  763. package/dist/migrations/registry.js +1 -42
  764. package/dist/migrations/runner.js +1 -85
  765. package/dist/migrations/types.js +0 -24
  766. package/dist/pi-extensions/broker-local.js +2 -106
  767. package/dist/pi-extensions/canvas-bash-valve.js +7 -461
  768. package/dist/pi-extensions/canvas-context-intro.js +2 -113
  769. package/dist/pi-extensions/canvas-doc-substrate.js +9 -178
  770. package/dist/pi-extensions/canvas-goal-capture.js +1 -83
  771. package/dist/pi-extensions/canvas-inbox-watcher.js +1 -1010
  772. package/dist/pi-extensions/canvas-passive-context.js +14 -203
  773. package/dist/pi-extensions/canvas-preview-result.js +2 -72
  774. package/dist/pi-extensions/canvas-prompt-scrub.js +2 -54
  775. package/dist/pi-extensions/canvas-recap.js +11 -405
  776. package/dist/pi-extensions/canvas-review-boundary.js +3 -63
  777. package/dist/pi-extensions/canvas-stamp.js +2 -77
  778. package/dist/pi-extensions/canvas-stophook.js +1 -643
  779. package/dist/pi-extensions/canvas-structured-output.js +13 -35
  780. package/dist/pi-extensions/canvas-tool-guide.js +9 -78
  781. package/dist/pi-extensions/envelope-merge.js +8 -29
  782. package/dist/prompts/review.js +20 -42
  783. package/dist/shared/birth-announcement.js +1 -25
  784. package/dist/shared/crtr-version.js +1 -18
  785. package/dist/shared/env.js +1 -214
  786. package/dist/shared/generated-context.js +11 -226
  787. package/dist/shared/predicates.js +1 -4
  788. package/dist/shared/shell-quote.js +1 -5
  789. package/dist/shared/tool-groups.js +1 -64
  790. package/dist/shared/working-activity.js +1 -27
  791. package/dist/suppress-experimental-warnings.js +1 -15
  792. package/dist/types.js +1 -185
  793. package/docs/public-api.md +10 -9
  794. package/package.json +5 -4
  795. package/runtime.lock.json +5 -5
  796. package/dist/api/__tests__/integration/client.test.d.ts +0 -1
  797. package/dist/api/__tests__/integration/client.test.js +0 -163
  798. package/dist/builtin-pi-packages/pi-crtr-extensions/__tests__/insights-active-init.test.ts +0 -98
  799. package/dist/builtin-pi-packages/pi-crtr-extensions/extensions/__tests__/crtr-commands.test.ts +0 -93
  800. package/dist/builtin-pi-packages/pi-crtr-extensions/extensions/__tests__/integration/provider-rotation.test.ts +0 -2530
  801. package/dist/clients/__tests__/helpers/human-daemon.d.ts +0 -11
  802. package/dist/clients/__tests__/helpers/human-daemon.js +0 -60
  803. package/dist/clients/attach/__tests__/attach-remote-readonly.test.d.ts +0 -1
  804. package/dist/clients/attach/__tests__/attach-remote-readonly.test.js +0 -97
  805. package/dist/clients/attach/__tests__/bash-call-width.test.d.ts +0 -1
  806. package/dist/clients/attach/__tests__/bash-call-width.test.js +0 -38
  807. package/dist/clients/attach/__tests__/chat-view-snapshot-ordering.test.d.ts +0 -1
  808. package/dist/clients/attach/__tests__/chat-view-snapshot-ordering.test.js +0 -175
  809. package/dist/clients/attach/__tests__/completion-frecency.test.d.ts +0 -1
  810. package/dist/clients/attach/__tests__/completion-frecency.test.js +0 -35
  811. package/dist/clients/attach/__tests__/context-message.test.d.ts +0 -1
  812. package/dist/clients/attach/__tests__/context-message.test.js +0 -130
  813. package/dist/clients/attach/__tests__/crtr-output.test.d.ts +0 -1
  814. package/dist/clients/attach/__tests__/crtr-output.test.js +0 -68
  815. package/dist/clients/attach/__tests__/diagram.test.d.ts +0 -1
  816. package/dist/clients/attach/__tests__/diagram.test.js +0 -42
  817. package/dist/clients/attach/__tests__/edit-diff.test.d.ts +0 -1
  818. package/dist/clients/attach/__tests__/edit-diff.test.js +0 -31
  819. package/dist/clients/attach/__tests__/frame-selection.test.d.ts +0 -1
  820. package/dist/clients/attach/__tests__/frame-selection.test.js +0 -84
  821. package/dist/clients/attach/__tests__/group-activity.test.d.ts +0 -1
  822. package/dist/clients/attach/__tests__/group-activity.test.js +0 -165
  823. package/dist/clients/attach/__tests__/oauth-dialog-lifecycle.test.d.ts +0 -1
  824. package/dist/clients/attach/__tests__/oauth-dialog-lifecycle.test.js +0 -83
  825. package/dist/clients/attach/__tests__/pane-tag-successor.test.d.ts +0 -1
  826. package/dist/clients/attach/__tests__/pane-tag-successor.test.js +0 -56
  827. package/dist/clients/attach/__tests__/profile-files.test.d.ts +0 -1
  828. package/dist/clients/attach/__tests__/profile-files.test.js +0 -21
  829. package/dist/clients/attach/__tests__/prompt-preview.test.d.ts +0 -1
  830. package/dist/clients/attach/__tests__/prompt-preview.test.js +0 -21
  831. package/dist/clients/attach/__tests__/ref-autocomplete.test.d.ts +0 -1
  832. package/dist/clients/attach/__tests__/ref-autocomplete.test.js +0 -64
  833. package/dist/clients/attach/__tests__/titled-editor-paste.test.d.ts +0 -1
  834. package/dist/clients/attach/__tests__/titled-editor-paste.test.js +0 -114
  835. package/dist/clients/attach/__tests__/titled-editor-preview.test.d.ts +0 -1
  836. package/dist/clients/attach/__tests__/titled-editor-preview.test.js +0 -83
  837. package/dist/clients/inbox/__tests__/integration/inbox-controller.test.d.ts +0 -1
  838. package/dist/clients/inbox/__tests__/integration/inbox-controller.test.js +0 -81
  839. package/dist/clients/inbox/__tests__/integration/mount-panel.test.d.ts +0 -1
  840. package/dist/clients/inbox/__tests__/integration/mount-panel.test.js +0 -135
  841. package/dist/clients/inbox/__tests__/integration/stale-row-activation.test.d.ts +0 -1
  842. package/dist/clients/inbox/__tests__/integration/stale-row-activation.test.js +0 -66
  843. package/dist/clients/inbox/review/__tests__/editor-roundtrip.test.d.ts +0 -1
  844. package/dist/clients/inbox/review/__tests__/editor-roundtrip.test.js +0 -35
  845. package/dist/clients/inbox/review/__tests__/review-core.test.d.ts +0 -1
  846. package/dist/clients/inbox/review/__tests__/review-core.test.js +0 -52
  847. package/dist/clients/inbox/review/__tests__/teardown-notice.test.d.ts +0 -1
  848. package/dist/clients/inbox/review/__tests__/teardown-notice.test.js +0 -100
  849. package/dist/commands/__tests__/api-client-cold-start-diagnostic.test.d.ts +0 -1
  850. package/dist/commands/__tests__/api-client-cold-start-diagnostic.test.js +0 -69
  851. package/dist/commands/__tests__/human.test.d.ts +0 -1
  852. package/dist/commands/__tests__/human.test.js +0 -172
  853. package/dist/commands/__tests__/integration/dashboard-snapshot.test.d.ts +0 -1
  854. package/dist/commands/__tests__/integration/dashboard-snapshot.test.js +0 -237
  855. package/dist/commands/__tests__/integration/migrate.test.d.ts +0 -1
  856. package/dist/commands/__tests__/integration/migrate.test.js +0 -1330
  857. package/dist/commands/__tests__/node-message.test.d.ts +0 -1
  858. package/dist/commands/__tests__/node-message.test.js +0 -112
  859. package/dist/commands/__tests__/node-new.test.d.ts +0 -1
  860. package/dist/commands/__tests__/node-new.test.js +0 -58
  861. package/dist/commands/__tests__/revive-now-gate.test.d.ts +0 -1
  862. package/dist/commands/__tests__/revive-now-gate.test.js +0 -62
  863. package/dist/commands/__tests__/seam/daemon-status.test.d.ts +0 -1
  864. package/dist/commands/__tests__/seam/daemon-status.test.js +0 -29
  865. package/dist/commands/__tests__/surface-reload-target.test.d.ts +0 -1
  866. package/dist/commands/__tests__/surface-reload-target.test.js +0 -21
  867. package/dist/commands/memory/__tests__/command-selector-and-mutation-guards.test.d.ts +0 -1
  868. package/dist/commands/memory/__tests__/command-selector-and-mutation-guards.test.js +0 -379
  869. package/dist/commands/memory/__tests__/memory-list-and-lint-ignore.test.d.ts +0 -1
  870. package/dist/commands/memory/__tests__/memory-list-and-lint-ignore.test.js +0 -124
  871. package/dist/commands/memory/__tests__/repository-root-lint.test.d.ts +0 -1
  872. package/dist/commands/memory/__tests__/repository-root-lint.test.js +0 -148
  873. package/dist/commands/sys/__tests__/config-model-ladders.test.d.ts +0 -1
  874. package/dist/commands/sys/__tests__/config-model-ladders.test.js +0 -114
  875. package/dist/commands/sys/__tests__/setup-core.test.d.ts +0 -1
  876. package/dist/commands/sys/__tests__/setup-core.test.js +0 -45
  877. package/dist/commands/sys/__tests__/sync-project-guidance.test.d.ts +0 -1
  878. package/dist/commands/sys/__tests__/sync-project-guidance.test.js +0 -244
  879. package/dist/core/__tests__/bash-guard.test.d.ts +0 -1
  880. package/dist/core/__tests__/bash-guard.test.js +0 -190
  881. package/dist/core/__tests__/boot-fault-attempt.test.d.ts +0 -1
  882. package/dist/core/__tests__/boot-fault-attempt.test.js +0 -105
  883. package/dist/core/__tests__/boot.test.d.ts +0 -1
  884. package/dist/core/__tests__/boot.test.js +0 -274
  885. package/dist/core/__tests__/branded-host-concurrency.test.d.ts +0 -1
  886. package/dist/core/__tests__/branded-host-concurrency.test.js +0 -72
  887. package/dist/core/__tests__/broker-extension-canvas-db-boundary.test.d.ts +0 -1
  888. package/dist/core/__tests__/broker-extension-canvas-db-boundary.test.js +0 -75
  889. package/dist/core/__tests__/broker-launch-candidates.test.d.ts +0 -1
  890. package/dist/core/__tests__/broker-launch-candidates.test.js +0 -311
  891. package/dist/core/__tests__/broker-preflight.test.d.ts +0 -1
  892. package/dist/core/__tests__/broker-preflight.test.js +0 -95
  893. package/dist/core/__tests__/broker-stream-watchdog-floor.test.d.ts +0 -1
  894. package/dist/core/__tests__/broker-stream-watchdog-floor.test.js +0 -82
  895. package/dist/core/__tests__/broker-turn-admission.test.d.ts +0 -1
  896. package/dist/core/__tests__/broker-turn-admission.test.js +0 -44
  897. package/dist/core/__tests__/canvas-db-boundary.test.d.ts +0 -1
  898. package/dist/core/__tests__/canvas-db-boundary.test.js +0 -46
  899. package/dist/core/__tests__/canvas-inbox-watcher-hold.test.d.ts +0 -1
  900. package/dist/core/__tests__/canvas-inbox-watcher-hold.test.js +0 -710
  901. package/dist/core/__tests__/canvas-inbox-watcher-naming.test.d.ts +0 -1
  902. package/dist/core/__tests__/canvas-inbox-watcher-naming.test.js +0 -310
  903. package/dist/core/__tests__/canvas-inbox-watcher.test.d.ts +0 -1
  904. package/dist/core/__tests__/canvas-inbox-watcher.test.js +0 -397
  905. package/dist/core/__tests__/canvas.test.d.ts +0 -1
  906. package/dist/core/__tests__/canvas.test.js +0 -138
  907. package/dist/core/__tests__/child-death-wake.test.d.ts +0 -1
  908. package/dist/core/__tests__/child-death-wake.test.js +0 -153
  909. package/dist/core/__tests__/cli-help-contract.test.d.ts +0 -1
  910. package/dist/core/__tests__/cli-help-contract.test.js +0 -152
  911. package/dist/core/__tests__/close.test.d.ts +0 -1
  912. package/dist/core/__tests__/close.test.js +0 -284
  913. package/dist/core/__tests__/collectible.test.d.ts +0 -1
  914. package/dist/core/__tests__/collectible.test.js +0 -89
  915. package/dist/core/__tests__/config-change-delta.test.d.ts +0 -1
  916. package/dist/core/__tests__/config-change-delta.test.js +0 -108
  917. package/dist/core/__tests__/context-intro.test.d.ts +0 -1
  918. package/dist/core/__tests__/context-intro.test.js +0 -123
  919. package/dist/core/__tests__/cron-armed-context-failure.test.d.ts +0 -1
  920. package/dist/core/__tests__/cron-armed-context-failure.test.js +0 -150
  921. package/dist/core/__tests__/cron-held-settlement.test.d.ts +0 -1
  922. package/dist/core/__tests__/cron-held-settlement.test.js +0 -240
  923. package/dist/core/__tests__/cron-node-sink-parked-root.test.d.ts +0 -1
  924. package/dist/core/__tests__/cron-node-sink-parked-root.test.js +0 -166
  925. package/dist/core/__tests__/cron-self-cancel-delivery.test.d.ts +0 -1
  926. package/dist/core/__tests__/cron-self-cancel-delivery.test.js +0 -84
  927. package/dist/core/__tests__/cron-timeout-descendants.test.d.ts +0 -1
  928. package/dist/core/__tests__/cron-timeout-descendants.test.js +0 -114
  929. package/dist/core/__tests__/daemon-boot.test.d.ts +0 -1
  930. package/dist/core/__tests__/daemon-boot.test.js +0 -422
  931. package/dist/core/__tests__/daemon-wedge.test.d.ts +0 -1
  932. package/dist/core/__tests__/daemon-wedge.test.js +0 -106
  933. package/dist/core/__tests__/dead-node-policy-table.test.d.ts +0 -1
  934. package/dist/core/__tests__/dead-node-policy-table.test.js +0 -77
  935. package/dist/core/__tests__/events-contract.test.d.ts +0 -1
  936. package/dist/core/__tests__/events-contract.test.js +0 -76
  937. package/dist/core/__tests__/extension-abort.test.d.ts +0 -1
  938. package/dist/core/__tests__/extension-abort.test.js +0 -21
  939. package/dist/core/__tests__/fault-classifier.test.d.ts +0 -1
  940. package/dist/core/__tests__/fault-classifier.test.js +0 -138
  941. package/dist/core/__tests__/fixtures/api-server-host.d.ts +0 -1
  942. package/dist/core/__tests__/fixtures/api-server-host.js +0 -47
  943. package/dist/core/__tests__/fixtures/c3-custom-provider-ext.d.ts +0 -2
  944. package/dist/core/__tests__/fixtures/c3-custom-provider-ext.js +0 -34
  945. package/dist/core/__tests__/fixtures/c5-command-boundary-ext.d.ts +0 -2
  946. package/dist/core/__tests__/fixtures/c5-command-boundary-ext.js +0 -32
  947. package/dist/core/__tests__/fixtures/fake-engine.d.ts +0 -347
  948. package/dist/core/__tests__/fixtures/fake-engine.js +0 -1509
  949. package/dist/core/__tests__/fixtures/fake-pi-host.d.ts +0 -2
  950. package/dist/core/__tests__/fixtures/fake-pi-host.js +0 -311
  951. package/dist/core/__tests__/fixtures/memory-slash-live-probe.d.ts +0 -1
  952. package/dist/core/__tests__/fixtures/memory-slash-live-probe.js +0 -75
  953. package/dist/core/__tests__/fixtures/metadata-migration-race.d.ts +0 -1
  954. package/dist/core/__tests__/fixtures/metadata-migration-race.js +0 -49
  955. package/dist/core/__tests__/focuses.test.d.ts +0 -1
  956. package/dist/core/__tests__/focuses.test.js +0 -113
  957. package/dist/core/__tests__/fs-utils.test.d.ts +0 -1
  958. package/dist/core/__tests__/fs-utils.test.js +0 -50
  959. package/dist/core/__tests__/helpers/broker-clients.d.ts +0 -43
  960. package/dist/core/__tests__/helpers/broker-clients.js +0 -174
  961. package/dist/core/__tests__/helpers/fleet.d.ts +0 -12
  962. package/dist/core/__tests__/helpers/fleet.js +0 -50
  963. package/dist/core/__tests__/helpers/harness.d.ts +0 -124
  964. package/dist/core/__tests__/helpers/harness.js +0 -806
  965. package/dist/core/__tests__/helpers/viewer-panes.d.ts +0 -12
  966. package/dist/core/__tests__/helpers/viewer-panes.js +0 -133
  967. package/dist/core/__tests__/history-inbox.test.d.ts +0 -1
  968. package/dist/core/__tests__/history-inbox.test.js +0 -121
  969. package/dist/core/__tests__/human-action-delivery.test.d.ts +0 -1
  970. package/dist/core/__tests__/human-action-delivery.test.js +0 -162
  971. package/dist/core/__tests__/human-actions.test.d.ts +0 -1
  972. package/dist/core/__tests__/human-actions.test.js +0 -120
  973. package/dist/core/__tests__/inline-memory-refs.test.d.ts +0 -1
  974. package/dist/core/__tests__/inline-memory-refs.test.js +0 -225
  975. package/dist/core/__tests__/integration/broker-fork-seam.test.d.ts +0 -1
  976. package/dist/core/__tests__/integration/broker-fork-seam.test.js +0 -193
  977. package/dist/core/__tests__/integration/broker-sdk-wiring.test.d.ts +0 -1
  978. package/dist/core/__tests__/integration/broker-sdk-wiring.test.js +0 -750
  979. package/dist/core/__tests__/integration/broker-snapshot-history.test.d.ts +0 -1
  980. package/dist/core/__tests__/integration/broker-snapshot-history.test.js +0 -288
  981. package/dist/core/__tests__/integration/broker-wedge-supervision.test.d.ts +0 -1
  982. package/dist/core/__tests__/integration/broker-wedge-supervision.test.js +0 -103
  983. package/dist/core/__tests__/integration/command-plugins.test.d.ts +0 -1
  984. package/dist/core/__tests__/integration/command-plugins.test.js +0 -1200
  985. package/dist/core/__tests__/integration/deferred-no-wake.test.d.ts +0 -1
  986. package/dist/core/__tests__/integration/deferred-no-wake.test.js +0 -610
  987. package/dist/core/__tests__/integration/flagship-lifecycle.test.d.ts +0 -1
  988. package/dist/core/__tests__/integration/flagship-lifecycle.test.js +0 -264
  989. package/dist/core/__tests__/integration/fresh-home-commands.test.d.ts +0 -1
  990. package/dist/core/__tests__/integration/fresh-home-commands.test.js +0 -49
  991. package/dist/core/__tests__/integration/git-optional-locks.test.d.ts +0 -1
  992. package/dist/core/__tests__/integration/git-optional-locks.test.js +0 -81
  993. package/dist/core/__tests__/integration/host-teardown-process-group.test.d.ts +0 -1
  994. package/dist/core/__tests__/integration/host-teardown-process-group.test.js +0 -480
  995. package/dist/core/__tests__/integration/lifecycle-hooks.test.d.ts +0 -1
  996. package/dist/core/__tests__/integration/lifecycle-hooks.test.js +0 -498
  997. package/dist/core/__tests__/integration/live-mutation-verbs.test.d.ts +0 -1
  998. package/dist/core/__tests__/integration/live-mutation-verbs.test.js +0 -180
  999. package/dist/core/__tests__/integration/live-mutation.test.d.ts +0 -1
  1000. package/dist/core/__tests__/integration/live-mutation.test.js +0 -173
  1001. package/dist/core/__tests__/integration/plugin-revalidate.test.d.ts +0 -1
  1002. package/dist/core/__tests__/integration/plugin-revalidate.test.js +0 -359
  1003. package/dist/core/__tests__/integration/profile-pause.test.d.ts +0 -1
  1004. package/dist/core/__tests__/integration/profile-pause.test.js +0 -115
  1005. package/dist/core/__tests__/integration/refresh-stall-recycle.test.d.ts +0 -1
  1006. package/dist/core/__tests__/integration/refresh-stall-recycle.test.js +0 -151
  1007. package/dist/core/__tests__/integration/revive.test.d.ts +0 -1
  1008. package/dist/core/__tests__/integration/revive.test.js +0 -615
  1009. package/dist/core/__tests__/integration/spawn-root.test.d.ts +0 -1
  1010. package/dist/core/__tests__/integration/spawn-root.test.js +0 -536
  1011. package/dist/core/__tests__/integration/subscription-delivery.test.d.ts +0 -1
  1012. package/dist/core/__tests__/integration/subscription-delivery.test.js +0 -132
  1013. package/dist/core/__tests__/integration/tmux-surface.test.d.ts +0 -1
  1014. package/dist/core/__tests__/integration/tmux-surface.test.js +0 -330
  1015. package/dist/core/__tests__/integration/worktree-land.test.d.ts +0 -1
  1016. package/dist/core/__tests__/integration/worktree-land.test.js +0 -607
  1017. package/dist/core/__tests__/integration/worktree-reap.test.d.ts +0 -1
  1018. package/dist/core/__tests__/integration/worktree-reap.test.js +0 -842
  1019. package/dist/core/__tests__/kickoff.test.d.ts +0 -1
  1020. package/dist/core/__tests__/kickoff.test.js +0 -196
  1021. package/dist/core/__tests__/lifecycle-terminal-reasons.test.d.ts +0 -1
  1022. package/dist/core/__tests__/lifecycle-terminal-reasons.test.js +0 -62
  1023. package/dist/core/__tests__/lifecycle.test.d.ts +0 -1
  1024. package/dist/core/__tests__/lifecycle.test.js +0 -176
  1025. package/dist/core/__tests__/live-lifecycle-prompt.test.d.ts +0 -1
  1026. package/dist/core/__tests__/live-lifecycle-prompt.test.js +0 -63
  1027. package/dist/core/__tests__/memory-resolver-precedence.test.d.ts +0 -1
  1028. package/dist/core/__tests__/memory-resolver-precedence.test.js +0 -228
  1029. package/dist/core/__tests__/migration.test.d.ts +0 -1
  1030. package/dist/core/__tests__/migration.test.js +0 -946
  1031. package/dist/core/__tests__/model-pin-durability.test.d.ts +0 -1
  1032. package/dist/core/__tests__/model-pin-durability.test.js +0 -195
  1033. package/dist/core/__tests__/model-routes-config.test.d.ts +0 -1
  1034. package/dist/core/__tests__/model-routes-config.test.js +0 -150
  1035. package/dist/core/__tests__/nested-store-discovery.test.d.ts +0 -1
  1036. package/dist/core/__tests__/nested-store-discovery.test.js +0 -89
  1037. package/dist/core/__tests__/node-outcome.test.d.ts +0 -1
  1038. package/dist/core/__tests__/node-outcome.test.js +0 -246
  1039. package/dist/core/__tests__/on-read-crouter-home-fence.test.d.ts +0 -1
  1040. package/dist/core/__tests__/on-read-crouter-home-fence.test.js +0 -66
  1041. package/dist/core/__tests__/on-read-dedup-resume.test.d.ts +0 -1
  1042. package/dist/core/__tests__/on-read-dedup-resume.test.js +0 -132
  1043. package/dist/core/__tests__/on-read-nested-store.test.d.ts +0 -1
  1044. package/dist/core/__tests__/on-read-nested-store.test.js +0 -135
  1045. package/dist/core/__tests__/parse-argv-stdin-secret.test.d.ts +0 -1
  1046. package/dist/core/__tests__/parse-argv-stdin-secret.test.js +0 -68
  1047. package/dist/core/__tests__/passive-subscription.test.d.ts +0 -1
  1048. package/dist/core/__tests__/passive-subscription.test.js +0 -120
  1049. package/dist/core/__tests__/pid-identity-match.test.d.ts +0 -1
  1050. package/dist/core/__tests__/pid-identity-match.test.js +0 -145
  1051. package/dist/core/__tests__/pid-zombie.test.d.ts +0 -1
  1052. package/dist/core/__tests__/pid-zombie.test.js +0 -42
  1053. package/dist/core/__tests__/plugin-kinds.test.d.ts +0 -1
  1054. package/dist/core/__tests__/plugin-kinds.test.js +0 -182
  1055. package/dist/core/__tests__/plugin-link-symlinked-scope-root.test.d.ts +0 -1
  1056. package/dist/core/__tests__/plugin-link-symlinked-scope-root.test.js +0 -43
  1057. package/dist/core/__tests__/plugin-page-components.test.d.ts +0 -1
  1058. package/dist/core/__tests__/plugin-page-components.test.js +0 -159
  1059. package/dist/core/__tests__/preview-mirror-cap.test.d.ts +0 -1
  1060. package/dist/core/__tests__/preview-mirror-cap.test.js +0 -53
  1061. package/dist/core/__tests__/preview-registry-sync.test.d.ts +0 -1
  1062. package/dist/core/__tests__/preview-registry-sync.test.js +0 -107
  1063. package/dist/core/__tests__/profile-project-memory-delivery.test.d.ts +0 -1
  1064. package/dist/core/__tests__/profile-project-memory-delivery.test.js +0 -644
  1065. package/dist/core/__tests__/prospective-inventory-capability-parity.test.d.ts +0 -1
  1066. package/dist/core/__tests__/prospective-inventory-capability-parity.test.js +0 -91
  1067. package/dist/core/__tests__/prune.test.d.ts +0 -1
  1068. package/dist/core/__tests__/prune.test.js +0 -243
  1069. package/dist/core/__tests__/push-final-guard.test.d.ts +0 -1
  1070. package/dist/core/__tests__/push-final-guard.test.js +0 -191
  1071. package/dist/core/__tests__/relaunch-root.test.d.ts +0 -1
  1072. package/dist/core/__tests__/relaunch-root.test.js +0 -249
  1073. package/dist/core/__tests__/remote-canvas-target.test.d.ts +0 -1
  1074. package/dist/core/__tests__/remote-canvas-target.test.js +0 -93
  1075. package/dist/core/__tests__/repository-association.test.d.ts +0 -1
  1076. package/dist/core/__tests__/repository-association.test.js +0 -153
  1077. package/dist/core/__tests__/repository-root-identity.test.d.ts +0 -1
  1078. package/dist/core/__tests__/repository-root-identity.test.js +0 -223
  1079. package/dist/core/__tests__/respawn-throttle.test.d.ts +0 -1
  1080. package/dist/core/__tests__/respawn-throttle.test.js +0 -20
  1081. package/dist/core/__tests__/review-model-floor.test.d.ts +0 -1
  1082. package/dist/core/__tests__/review-model-floor.test.js +0 -83
  1083. package/dist/core/__tests__/revive-all.test.d.ts +0 -1
  1084. package/dist/core/__tests__/revive-all.test.js +0 -157
  1085. package/dist/core/__tests__/revive-capacity.test.d.ts +0 -1
  1086. package/dist/core/__tests__/revive-capacity.test.js +0 -184
  1087. package/dist/core/__tests__/revive-parked-fresh.test.d.ts +0 -1
  1088. package/dist/core/__tests__/revive-parked-fresh.test.js +0 -176
  1089. package/dist/core/__tests__/scope-crouter-home-fence.test.d.ts +0 -1
  1090. package/dist/core/__tests__/scope-crouter-home-fence.test.js +0 -55
  1091. package/dist/core/__tests__/seam/broker-attach-multiclient.test.d.ts +0 -1
  1092. package/dist/core/__tests__/seam/broker-attach-multiclient.test.js +0 -262
  1093. package/dist/core/__tests__/seam/broker-attach-stream.test.d.ts +0 -1
  1094. package/dist/core/__tests__/seam/broker-attach-stream.test.js +0 -176
  1095. package/dist/core/__tests__/seam/broker-cap-freeze.test.d.ts +0 -1
  1096. package/dist/core/__tests__/seam/broker-cap-freeze.test.js +0 -155
  1097. package/dist/core/__tests__/seam/broker-crash-teardown.test.d.ts +0 -1
  1098. package/dist/core/__tests__/seam/broker-crash-teardown.test.js +0 -131
  1099. package/dist/core/__tests__/seam/broker-pane-resolution.test.d.ts +0 -1
  1100. package/dist/core/__tests__/seam/broker-pane-resolution.test.js +0 -204
  1101. package/dist/core/__tests__/seam/broker-provider-retry.test.d.ts +0 -1
  1102. package/dist/core/__tests__/seam/broker-provider-retry.test.js +0 -686
  1103. package/dist/core/__tests__/seam/broker-startup-diagnostics.test.d.ts +0 -1
  1104. package/dist/core/__tests__/seam/broker-startup-diagnostics.test.js +0 -82
  1105. package/dist/core/__tests__/seam/broker-whip-interrupt.test.d.ts +0 -1
  1106. package/dist/core/__tests__/seam/broker-whip-interrupt.test.js +0 -50
  1107. package/dist/core/__tests__/seam/deadline-wake-delivery.test.d.ts +0 -1
  1108. package/dist/core/__tests__/seam/deadline-wake-delivery.test.js +0 -138
  1109. package/dist/core/__tests__/seam/dormancy-release.test.d.ts +0 -1
  1110. package/dist/core/__tests__/seam/dormancy-release.test.js +0 -516
  1111. package/dist/core/__tests__/seam/held-deferred-human-prompt.test.d.ts +0 -1
  1112. package/dist/core/__tests__/seam/held-deferred-human-prompt.test.js +0 -65
  1113. package/dist/core/__tests__/seam/inbox-reference-guidance.test.d.ts +0 -1
  1114. package/dist/core/__tests__/seam/inbox-reference-guidance.test.js +0 -84
  1115. package/dist/core/__tests__/seam/memory-slash-node-relative-inventory.test.d.ts +0 -1
  1116. package/dist/core/__tests__/seam/memory-slash-node-relative-inventory.test.js +0 -160
  1117. package/dist/core/__tests__/seam/node-outcome-delivery.test.d.ts +0 -1
  1118. package/dist/core/__tests__/seam/node-outcome-delivery.test.js +0 -177
  1119. package/dist/core/__tests__/seam/prospective-inventory-stdout.test.d.ts +0 -1
  1120. package/dist/core/__tests__/seam/prospective-inventory-stdout.test.js +0 -31
  1121. package/dist/core/__tests__/seam/reopen-invalidated-worktree.test.d.ts +0 -1
  1122. package/dist/core/__tests__/seam/reopen-invalidated-worktree.test.js +0 -60
  1123. package/dist/core/__tests__/seam/self-close-teardown.test.d.ts +0 -1
  1124. package/dist/core/__tests__/seam/self-close-teardown.test.js +0 -49
  1125. package/dist/core/__tests__/seam/yield-refresh-transaction.test.d.ts +0 -1
  1126. package/dist/core/__tests__/seam/yield-refresh-transaction.test.js +0 -100
  1127. package/dist/core/__tests__/secrets.test.d.ts +0 -1
  1128. package/dist/core/__tests__/secrets.test.js +0 -49
  1129. package/dist/core/__tests__/self-update.test.d.ts +0 -1
  1130. package/dist/core/__tests__/self-update.test.js +0 -46
  1131. package/dist/core/__tests__/session-branch.test.d.ts +0 -1
  1132. package/dist/core/__tests__/session-branch.test.js +0 -61
  1133. package/dist/core/__tests__/session-cycles.test.d.ts +0 -1
  1134. package/dist/core/__tests__/session-cycles.test.js +0 -133
  1135. package/dist/core/__tests__/session-model.test.d.ts +0 -1
  1136. package/dist/core/__tests__/session-model.test.js +0 -111
  1137. package/dist/core/__tests__/spawn-worktree-id-conflict.test.d.ts +0 -1
  1138. package/dist/core/__tests__/spawn-worktree-id-conflict.test.js +0 -71
  1139. package/dist/core/__tests__/stdin-body-no-discard.test.d.ts +0 -1
  1140. package/dist/core/__tests__/stdin-body-no-discard.test.js +0 -33
  1141. package/dist/core/__tests__/stdout-errors.test.d.ts +0 -1
  1142. package/dist/core/__tests__/stdout-errors.test.js +0 -16
  1143. package/dist/core/__tests__/stop-guard.test.d.ts +0 -1
  1144. package/dist/core/__tests__/stop-guard.test.js +0 -237
  1145. package/dist/core/__tests__/stream-watchdog.test.d.ts +0 -1
  1146. package/dist/core/__tests__/stream-watchdog.test.js +0 -154
  1147. package/dist/core/__tests__/subscription-pool-credential-guard.test.d.ts +0 -1
  1148. package/dist/core/__tests__/subscription-pool-credential-guard.test.js +0 -95
  1149. package/dist/core/__tests__/tmux-driver-boundary.test.d.ts +0 -1
  1150. package/dist/core/__tests__/tmux-driver-boundary.test.js +0 -50
  1151. package/dist/core/__tests__/warm-claim-preference-snapshot.test.d.ts +0 -1
  1152. package/dist/core/__tests__/warm-claim-preference-snapshot.test.js +0 -54
  1153. package/dist/core/__tests__/worktree-landing.test.d.ts +0 -1
  1154. package/dist/core/__tests__/worktree-landing.test.js +0 -11
  1155. package/dist/core/__tests__/yield-ensures-daemon.test.d.ts +0 -1
  1156. package/dist/core/__tests__/yield-ensures-daemon.test.js +0 -55
  1157. package/dist/core/broker-client/__tests__/transport-relay.test.d.ts +0 -1
  1158. package/dist/core/broker-client/__tests__/transport-relay.test.js +0 -214
  1159. package/dist/core/broker-client/__tests__/transport-socket.test.d.ts +0 -1
  1160. package/dist/core/broker-client/__tests__/transport-socket.test.js +0 -73
  1161. package/dist/core/canvas/__tests__/attention.test.d.ts +0 -1
  1162. package/dist/core/canvas/__tests__/attention.test.js +0 -83
  1163. package/dist/core/canvas/__tests__/history-transcript.test.d.ts +0 -1
  1164. package/dist/core/canvas/__tests__/history-transcript.test.js +0 -102
  1165. package/dist/core/canvas/__tests__/remote-canvas-source.test.d.ts +0 -1
  1166. package/dist/core/canvas/__tests__/remote-canvas-source.test.js +0 -328
  1167. package/dist/core/canvas/__tests__/remote-transport.test.d.ts +0 -1
  1168. package/dist/core/canvas/__tests__/remote-transport.test.js +0 -97
  1169. package/dist/core/canvas/__tests__/render-remote.test.d.ts +0 -1
  1170. package/dist/core/canvas/__tests__/render-remote.test.js +0 -243
  1171. package/dist/core/canvas/__tests__/session-window.test.d.ts +0 -1
  1172. package/dist/core/canvas/__tests__/session-window.test.js +0 -70
  1173. package/dist/core/feed/__tests__/inbox-migrate.test.d.ts +0 -1
  1174. package/dist/core/feed/__tests__/inbox-migrate.test.js +0 -49
  1175. package/dist/core/human/__tests__/page-catalog.test.d.ts +0 -1
  1176. package/dist/core/human/__tests__/page-catalog.test.js +0 -20
  1177. package/dist/core/human/__tests__/page-html-markdown.test.d.ts +0 -1
  1178. package/dist/core/human/__tests__/page-html-markdown.test.js +0 -48
  1179. package/dist/core/human/__tests__/page.test.d.ts +0 -1
  1180. package/dist/core/human/__tests__/page.test.js +0 -92
  1181. package/dist/core/keybindings/__tests__/resolve.test.d.ts +0 -1
  1182. package/dist/core/keybindings/__tests__/resolve.test.js +0 -171
  1183. package/dist/core/profiles/__tests__/env-store.test.d.ts +0 -1
  1184. package/dist/core/profiles/__tests__/env-store.test.js +0 -99
  1185. package/dist/core/profiles/__tests__/fuzzy-match.test.d.ts +0 -1
  1186. package/dist/core/profiles/__tests__/fuzzy-match.test.js +0 -51
  1187. package/dist/core/profiles/__tests__/root-profile.test.d.ts +0 -1
  1188. package/dist/core/profiles/__tests__/root-profile.test.js +0 -59
  1189. package/dist/core/review/__tests__/capture-origin.test.d.ts +0 -1
  1190. package/dist/core/review/__tests__/capture-origin.test.js +0 -150
  1191. package/dist/core/review/__tests__/comments.test.d.ts +0 -1
  1192. package/dist/core/review/__tests__/comments.test.js +0 -116
  1193. package/dist/core/review/__tests__/remap.test.d.ts +0 -1
  1194. package/dist/core/review/__tests__/remap.test.js +0 -177
  1195. package/dist/core/review/__tests__/stage-identity.test.d.ts +0 -1
  1196. package/dist/core/review/__tests__/stage-identity.test.js +0 -150
  1197. package/dist/core/runtime/__tests__/engine-route.test.d.ts +0 -1
  1198. package/dist/core/runtime/__tests__/engine-route.test.js +0 -36
  1199. package/dist/core/runtime/__tests__/install-id-cache-scoping.test.d.ts +0 -1
  1200. package/dist/core/runtime/__tests__/install-id-cache-scoping.test.js +0 -45
  1201. package/dist/core/runtime/__tests__/node-env.test.d.ts +0 -1
  1202. package/dist/core/runtime/__tests__/node-env.test.js +0 -73
  1203. package/dist/core/runtime/__tests__/spawn-env.test.d.ts +0 -1
  1204. package/dist/core/runtime/__tests__/spawn-env.test.js +0 -259
  1205. package/dist/core/substrate/__tests__/surface-match-command.test.d.ts +0 -1
  1206. package/dist/core/substrate/__tests__/surface-match-command.test.js +0 -89
  1207. package/dist/core/substrate/__tests__/surface-match-memory-read.test.d.ts +0 -1
  1208. package/dist/core/substrate/__tests__/surface-match-memory-read.test.js +0 -28
  1209. package/dist/core/substrate/__tests__/surface-match-pre-command.test.d.ts +0 -1
  1210. package/dist/core/substrate/__tests__/surface-match-pre-command.test.js +0 -92
  1211. package/dist/daemon/__tests__/autostart-storm.test.d.ts +0 -1
  1212. package/dist/daemon/__tests__/autostart-storm.test.js +0 -128
  1213. package/dist/daemon/__tests__/broker-ownership.test.d.ts +0 -1
  1214. package/dist/daemon/__tests__/broker-ownership.test.js +0 -25
  1215. package/dist/daemon/__tests__/daemon-ownership.test.d.ts +0 -1
  1216. package/dist/daemon/__tests__/daemon-ownership.test.js +0 -27
  1217. package/dist/daemon/__tests__/helpers/source-daemon.d.ts +0 -30
  1218. package/dist/daemon/__tests__/helpers/source-daemon.js +0 -176
  1219. package/dist/daemon/__tests__/integration/api-startup-readiness.test.d.ts +0 -1
  1220. package/dist/daemon/__tests__/integration/api-startup-readiness.test.js +0 -83
  1221. package/dist/daemon/__tests__/integration/migration-startup.test.d.ts +0 -1
  1222. package/dist/daemon/__tests__/integration/migration-startup.test.js +0 -127
  1223. package/dist/daemon/__tests__/node-deadline-lane.test.d.ts +0 -1
  1224. package/dist/daemon/__tests__/node-deadline-lane.test.js +0 -77
  1225. package/dist/daemon/__tests__/node-outcome-birth-invariants.test.d.ts +0 -1
  1226. package/dist/daemon/__tests__/node-outcome-birth-invariants.test.js +0 -146
  1227. package/dist/daemon/__tests__/node-outcome-delivery.test.d.ts +0 -1
  1228. package/dist/daemon/__tests__/node-outcome-delivery.test.js +0 -116
  1229. package/dist/daemon/__tests__/reconciler-signature.test.d.ts +0 -1
  1230. package/dist/daemon/__tests__/reconciler-signature.test.js +0 -37
  1231. package/dist/daemon/__tests__/subtree-filter-freshness.test.d.ts +0 -1
  1232. package/dist/daemon/__tests__/subtree-filter-freshness.test.js +0 -63
  1233. package/dist/daemon/__tests__/thaw-order.test.d.ts +0 -1
  1234. package/dist/daemon/__tests__/thaw-order.test.js +0 -55
  1235. package/dist/daemon/api/__tests__/bridge-heartbeat.test.d.ts +0 -1
  1236. package/dist/daemon/api/__tests__/bridge-heartbeat.test.js +0 -58
  1237. package/dist/daemon/api/__tests__/broker-settle-park.test.d.ts +0 -1
  1238. package/dist/daemon/api/__tests__/broker-settle-park.test.js +0 -175
  1239. package/dist/daemon/api/__tests__/canvas-snapshot-fields.test.d.ts +0 -1
  1240. package/dist/daemon/api/__tests__/canvas-snapshot-fields.test.js +0 -216
  1241. package/dist/daemon/api/__tests__/error-seam.test.d.ts +0 -1
  1242. package/dist/daemon/api/__tests__/error-seam.test.js +0 -83
  1243. package/dist/daemon/api/__tests__/model-config.test.d.ts +0 -1
  1244. package/dist/daemon/api/__tests__/model-config.test.js +0 -73
  1245. package/dist/daemon/api/__tests__/node-create-description.test.d.ts +0 -1
  1246. package/dist/daemon/api/__tests__/node-create-description.test.js +0 -127
  1247. package/dist/daemon/api/__tests__/node-model-validation.test.d.ts +0 -1
  1248. package/dist/daemon/api/__tests__/node-model-validation.test.js +0 -183
  1249. package/dist/daemon/api/__tests__/nodes-activity-query.test.d.ts +0 -1
  1250. package/dist/daemon/api/__tests__/nodes-activity-query.test.js +0 -99
  1251. package/dist/daemon/api/__tests__/profile-launch-gates.test.d.ts +0 -1
  1252. package/dist/daemon/api/__tests__/profile-launch-gates.test.js +0 -172
  1253. package/dist/daemon/api/__tests__/profile-metadata-route.test.d.ts +0 -1
  1254. package/dist/daemon/api/__tests__/profile-metadata-route.test.js +0 -95
  1255. package/dist/daemon/api/__tests__/reopen-delivery.test.d.ts +0 -1
  1256. package/dist/daemon/api/__tests__/reopen-delivery.test.js +0 -260
  1257. package/dist/daemon/api/__tests__/seam/api-server.test.d.ts +0 -1
  1258. package/dist/daemon/api/__tests__/seam/api-server.test.js +0 -442
  1259. package/dist/daemon/api/__tests__/seam/b10-attach-modelauth.test.d.ts +0 -1
  1260. package/dist/daemon/api/__tests__/seam/b10-attach-modelauth.test.js +0 -310
  1261. package/dist/daemon/api/__tests__/seam/leaf-api-parity.test.d.ts +0 -1
  1262. package/dist/daemon/api/__tests__/seam/leaf-api-parity.test.js +0 -351
  1263. package/dist/daemon/api/__tests__/seam/node-outcome-api.test.d.ts +0 -1
  1264. package/dist/daemon/api/__tests__/seam/node-outcome-api.test.js +0 -159
  1265. package/dist/daemon/api/__tests__/seam/profile-delete.test.d.ts +0 -1
  1266. package/dist/daemon/api/__tests__/seam/profile-delete.test.js +0 -372
  1267. package/dist/daemon/api/__tests__/submit-result.test.d.ts +0 -1
  1268. package/dist/daemon/api/__tests__/submit-result.test.js +0 -215
  1269. package/dist/migrations/__tests__/activation-concurrency.test.d.ts +0 -1
  1270. package/dist/migrations/__tests__/activation-concurrency.test.js +0 -146
  1271. package/dist/migrations/__tests__/activation.test.d.ts +0 -1
  1272. package/dist/migrations/__tests__/activation.test.js +0 -152
  1273. package/dist/migrations/__tests__/deletion-and-root-declaration.test.d.ts +0 -1
  1274. package/dist/migrations/__tests__/deletion-and-root-declaration.test.js +0 -149
  1275. package/dist/pi-extensions/__tests__/canvas-bash-valve.test.d.ts +0 -1
  1276. package/dist/pi-extensions/__tests__/canvas-bash-valve.test.js +0 -86
  1277. package/dist/pi-extensions/__tests__/canvas-context-intro.test.d.ts +0 -1
  1278. package/dist/pi-extensions/__tests__/canvas-context-intro.test.js +0 -364
  1279. package/dist/pi-extensions/__tests__/canvas-goal-capture-envelope.test.d.ts +0 -1
  1280. package/dist/pi-extensions/__tests__/canvas-goal-capture-envelope.test.js +0 -106
  1281. package/dist/pi-extensions/__tests__/canvas-recap.test.d.ts +0 -1
  1282. package/dist/pi-extensions/__tests__/canvas-recap.test.js +0 -62
  1283. package/dist/pi-extensions/__tests__/canvas-stophook-agentend.test.d.ts +0 -1
  1284. package/dist/pi-extensions/__tests__/canvas-stophook-agentend.test.js +0 -432
  1285. package/dist/pi-extensions/__tests__/canvas-stophook-context-nudge.test.d.ts +0 -1
  1286. package/dist/pi-extensions/__tests__/canvas-stophook-context-nudge.test.js +0 -152
  1287. package/dist/pi-extensions/__tests__/canvas-structured-output.test.d.ts +0 -1
  1288. package/dist/pi-extensions/__tests__/canvas-structured-output.test.js +0 -88
  1289. package/dist/pi-extensions/__tests__/canvas-tool-guide.test.d.ts +0 -1
  1290. package/dist/pi-extensions/__tests__/canvas-tool-guide.test.js +0 -96
  1291. package/dist/pi-extensions/__tests__/integration/canvas-bash-valve.test.d.ts +0 -1
  1292. package/dist/pi-extensions/__tests__/integration/canvas-bash-valve.test.js +0 -133
  1293. package/dist/pi-extensions/__tests__/pre-command-gate.test.d.ts +0 -1
  1294. package/dist/pi-extensions/__tests__/pre-command-gate.test.js +0 -232
  1295. package/dist/shared/__tests__/env-boundary.test.d.ts +0 -1
  1296. package/dist/shared/__tests__/env-boundary.test.js +0 -95
  1297. package/dist/shared/__tests__/generated-context-grammar.test.d.ts +0 -1
  1298. package/dist/shared/__tests__/generated-context-grammar.test.js +0 -80
  1299. package/docs/compat/hearth-crtr-v1.md +0 -179
  1300. package/docs/compat/hearth-crtr-v2.md +0 -177
  1301. package/docs/compat/hearth-crtr-v3.md +0 -176
  1302. package/docs/compat/hearth-crtr-v4.md +0 -182
  1303. package/docs/compat/hearth-crtr-v5.md +0 -169
@@ -1,186 +1 @@
1
- // schema.ts — the typed shape of a substrate document's frontmatter, the
2
- // visibility ladder, and the parse/validate function that turns a resolved
3
- // MemoryDoc into a fully-typed SubstrateDoc. This is the keystone every
4
- // downstream track (CLI verbs, boot render, on-read render, migrator) builds
5
- // against — pure and side-effect free. See design-substrate.md §4 (schema).
6
- //
7
- // The runtime parser is tolerant by contract (it maps over many docs and must
8
- // never throw): invalid `surfaces` entries are dropped rather than crashing a
9
- // render, and `crtr memory lint` owns strict authoring-time enforcement.
10
- import { PROFILE_PROJECT_MEMORY_VALUES } from '../../api/dto/profiles.js';
11
- // Kinds — the two semantic kinds (design §3): `knowledge` (consult — procedural
12
- // playbooks + factual references merged) vs `preference` (behave — standing
13
- // directives). `kind` is a load-bearing binary, not a content taxonomy.
14
- export const KINDS = ['knowledge', 'preference'];
15
- /** Is `v` one of the two valid document kinds? */
16
- export function isDocKind(v) {
17
- return typeof v === 'string' && KINDS.includes(v);
18
- }
19
- // The 4-rung visibility ladder (design §4). A strict, monotone ordering where
20
- // each rung is a superset of disclosure over the one before:
21
- // none < name < preview < content
22
- // The ladder is ONE union, owned by the public API DTO (`ProfileProjectMemory`)
23
- // so a profile relationship's cap and a doc's authored rung are the same values
24
- // and clamp against each other without a conversion.
25
- export const RUNGS = PROFILE_PROJECT_MEMORY_VALUES;
26
- /** Ordinal of a rung on the ladder (none=0 … content=3). */
27
- export function rungRank(r) {
28
- return RUNGS.indexOf(r);
29
- }
30
- /** Does rung `r` disclose at least as much as `min`? */
31
- export function rungAtLeast(r, min) {
32
- return rungRank(r) >= rungRank(min);
33
- }
34
- /** The lower of two rungs — the clamp automatic delivery applies to an
35
- * authored rung against its project relationship's cap. */
36
- export function minRung(a, b) {
37
- return rungRank(a) <= rungRank(b) ? a : b;
38
- }
39
- // Identity — owned entirely by core/memory/identity.ts (ordering-prefix
40
- // normalization, INDEX collapse, explicit-name-then-path local identity,
41
- // namespace composition). Re-exported here so document parsing and identity
42
- // derivation stay one rule with one implementation.
43
- export { normalizeNameSegment, normalizeDocName, resolveLocalName as resolveDocName } from '../memory/identity.js';
44
- // Surfaces — explicit event routing (design: surfaces-design.md). A doc
45
- // declares WHEN it delivers as (event, match, rung) entries; matches are
46
- // always globs, always absolute in the event's namespace, with `./` as the
47
- // one relative spelling (anchoring to the doc's own container). A doc with
48
- // no `surfaces` at all does exactly one thing: appears in its directory's
49
- // listing.
50
- export const SURFACE_EVENTS = ['boot', 'workspace-open', 'read', 'memory-read', 'command', 'pre-command'];
51
- /** The rungs an entry may deliver at. There is no `none` — silence is the
52
- * absence of an entry. (`Rung`'s `none` survives only as the internal
53
- * ranking floor — the planner's verdict for a doc that delivers nothing.) */
54
- export const SURFACE_RUNGS = ['name', 'preview', 'content'];
55
- // Parse / validate.
56
- /** Parse a raw frontmatter record (from `parseFrontmatterGeneric`, via the
57
- * resolver) into a typed schema with defaults applied. Returns `null` when the
58
- * record is absent or carries no valid `kind` — i.e. it is not a substrate
59
- * document and cannot be classified. Tolerant of every other imperfection (a
60
- * missing `when-and-why-to-read` defaults to '', a missing/bad rung falls back
61
- * to the neutral floor `none`), so a renderer mapping over many docs never
62
- * throws. Authoring-time enforcement of these fields lives in `crtr memory
63
- * write` (on create) and `crtr memory lint`. */
64
- export function parseSubstrateFrontmatter(fm) {
65
- if (fm === null)
66
- return null;
67
- if (!isDocKind(fm.kind))
68
- return null;
69
- const kind = fm.kind;
70
- return {
71
- kind,
72
- whenAndWhyToRead: strField(fm['when-and-why-to-read']),
73
- shortForm: strField(fm['short-form']),
74
- unlisted: fm['unlisted'] === true,
75
- surfaces: parseSurfaces(fm['surfaces']),
76
- gate: parseGate(fm.gate),
77
- slash: fm.slash === true,
78
- rationale: parseRationale(fm['rationale']),
79
- };
80
- }
81
- /** Parse a resolved MemoryDoc into a fully-typed SubstrateDoc (schema + the
82
- * resolver's name/scope/path/body). Returns `null` for a non-substrate doc
83
- * (no valid `kind`), so callers can `docs.map(parseSubstrateDoc).filter(...)`. */
84
- export function parseSubstrateDoc(doc) {
85
- const schema = parseSubstrateFrontmatter(doc.frontmatter);
86
- if (schema === null)
87
- return null;
88
- return { ...schema, name: doc.name, scope: doc.scope, plugin: doc.plugin, path: doc.path, body: doc.body, projectMemory: doc.projectMemory };
89
- }
90
- /** The kind a doc resolves to for `--kind` filtering/matching: the substrate
91
- * kind when the frontmatter parses as a valid substrate doc, else the raw
92
- * frontmatter `kind` string when present (even if not one of the two valid
93
- * kinds — an authoring error, not grounds to silently reclassify it), else
94
- * the legacy default `knowledge` for a frontmatter-less/kindless doc. The
95
- * single coercion `memory read`'s resolution and result display share, so a
96
- * `--kind` filter and the displayed `kind` field never disagree. */
97
- export function effectiveDocKind(doc) {
98
- const sub = parseSubstrateDoc(doc);
99
- if (sub !== null)
100
- return sub.kind;
101
- const raw = doc.frontmatter?.['kind'];
102
- return typeof raw === 'string' ? raw : 'knowledge';
103
- }
104
- /** The `preview`-rung routing line (design §4): the `when-and-why-to-read`
105
- * field rendered essentially verbatim — it is already authored as the complete
106
- * routing sentence ("When …, this <kind> should be read …"), so there is no
107
- * template to compose. Both boot and on-read render this identical line, so it
108
- * lives once here to prevent drift. Light cleanup normalizes the trailing
109
- * period. */
110
- export function previewLine(doc) {
111
- const line = doc.whenAndWhyToRead.trim().replace(/\.+$/, '');
112
- return line === '' ? '' : `${line}.`;
113
- }
114
- // Field coercion helpers (private).
115
- function strField(v) {
116
- return typeof v === 'string' ? v : '';
117
- }
118
- /** Resolve an optional `rationale` field: a non-empty string is carried as-is
119
- * (multi-line YAML block scalars parse to a plain string, so no special
120
- * handling is needed); anything else (absent, blank, non-string) yields
121
- * `undefined` — the doc simply carries no rationale. */
122
- function parseRationale(v) {
123
- return typeof v === 'string' && v.trim() !== '' ? v : undefined;
124
- }
125
- /** A gate is engaged only when frontmatter carries a non-null, non-array object
126
- * (the predicate vocabulary's field→matcher map). Anything else (absent, null,
127
- * scalar, array) ⇒ no gate ⇒ always eligible — the safe default that never
128
- * silently hides a doc. An empty `{}` IS carried (and is inert per design §4). */
129
- function parseGate(v) {
130
- return v !== null && typeof v === 'object' && !Array.isArray(v)
131
- ? v
132
- : undefined;
133
- }
134
- /** Tolerant `surfaces` parse: a non-array yields `[]`; invalid entries are
135
- * dropped (bad `on`, bad `at`, a read/memory-read/command/pre-command entry
136
- * left with neither `match` nor — read only — `match-frontmatter`). `match-frontmatter`
137
- * on a non-read event is dropped from the entry, which survives iff it still
138
- * carries a `match`; an invalid entry `gate` is dropped. Lint owns strict
139
- * enforcement; the runtime parser maps over many docs and must never throw. */
140
- export function parseSurfaces(v) {
141
- if (!Array.isArray(v))
142
- return [];
143
- const out = [];
144
- for (const raw of v) {
145
- if (raw === null || typeof raw !== 'object' || Array.isArray(raw))
146
- continue;
147
- const rec = raw;
148
- const on = rec['on'];
149
- if (typeof on !== 'string' || !SURFACE_EVENTS.includes(on))
150
- continue;
151
- const at = rec['at'];
152
- if (typeof at !== 'string' || !SURFACE_RUNGS.includes(at))
153
- continue;
154
- const match = parseMatchGlobs(rec['match']);
155
- const matchFrontmatter = on === 'read' ? parseGate(rec['match-frontmatter']) : undefined;
156
- const gate = parseGate(rec['gate']);
157
- if ((on === 'read' || on === 'memory-read' || on === 'command' || on === 'pre-command') &&
158
- match === undefined &&
159
- matchFrontmatter === undefined) {
160
- continue;
161
- }
162
- out.push({
163
- on: on,
164
- at: at,
165
- ...(match !== undefined ? { match } : {}),
166
- ...(matchFrontmatter !== undefined ? { matchFrontmatter } : {}),
167
- ...(gate !== undefined ? { gate } : {}),
168
- });
169
- }
170
- return out;
171
- }
172
- /** Normalize an entry's `match` to a non-empty glob list, or undefined.
173
- * Accepts a string or an array of strings; blanks are dropped. */
174
- function parseMatchGlobs(v) {
175
- if (typeof v === 'string') {
176
- const t = v.trim();
177
- return t === '' ? undefined : [t];
178
- }
179
- if (Array.isArray(v)) {
180
- const globs = v
181
- .filter((g) => typeof g === 'string' && g.trim() !== '')
182
- .map((g) => g.trim());
183
- return globs.length > 0 ? globs : undefined;
184
- }
185
- return undefined;
186
- }
1
+ var l=Object.defineProperty;var t=(e,n)=>l(e,"name",{value:n,configurable:!0});import{PROFILE_PROJECT_MEMORY_VALUES as m}from"../../api/dto/profiles.js";const y=["knowledge","preference"];function g(e){return typeof e=="string"&&y.includes(e)}t(g,"isDocKind");const h=m;function a(e){return h.indexOf(e)}t(a,"rungRank");function F(e,n){return a(e)>=a(n)}t(F,"rungAtLeast");function D(e,n){return a(e)<=a(n)?e:n}t(D,"minRung");import{normalizeNameSegment as j,normalizeDocName as G,resolveLocalName as O}from"../memory/identity.js";const x=["boot","workspace-open","read","memory-read","command","pre-command"],A=["name","preview","content"];function R(e){return e===null||!g(e.kind)?null:{kind:e.kind,whenAndWhyToRead:p(e["when-and-why-to-read"]),shortForm:p(e["short-form"]),unlisted:e.unlisted===!0,surfaces:k(e.surfaces),gate:f(e.gate),slash:e.slash===!0,rationale:S(e.rationale)}}t(R,"parseSubstrateFrontmatter");function w(e){const n=R(e.frontmatter);return n===null?null:{...n,name:e.name,scope:e.scope,plugin:e.plugin,path:e.path,body:e.body,projectMemory:e.projectMemory}}t(w,"parseSubstrateDoc");function L(e){const n=w(e);if(n!==null)return n.kind;const r=e.frontmatter?.kind;return typeof r=="string"?r:"knowledge"}t(L,"effectiveDocKind");function M(e){const n=e.whenAndWhyToRead.trim().replace(/\.+$/,"");return n===""?"":`${n}.`}t(M,"previewLine");function p(e){return typeof e=="string"?e:""}t(p,"strField");function S(e){return typeof e=="string"&&e.trim()!==""?e:void 0}t(S,"parseRationale");function f(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)?e:void 0}t(f,"parseGate");function k(e){if(!Array.isArray(e))return[];const n=[];for(const r of e){if(r===null||typeof r!="object"||Array.isArray(r))continue;const i=r,o=i.on;if(typeof o!="string"||!x.includes(o))continue;const u=i.at;if(typeof u!="string"||!A.includes(u))continue;const s=b(i.match),c=o==="read"?f(i["match-frontmatter"]):void 0,d=f(i.gate);(o==="read"||o==="memory-read"||o==="command"||o==="pre-command")&&s===void 0&&c===void 0||n.push({on:o,at:u,...s!==void 0?{match:s}:{},...c!==void 0?{matchFrontmatter:c}:{},...d!==void 0?{gate:d}:{}})}return n}t(k,"parseSurfaces");function b(e){if(typeof e=="string"){const n=e.trim();return n===""?void 0:[n]}if(Array.isArray(e)){const n=e.filter(r=>typeof r=="string"&&r.trim()!=="").map(r=>r.trim());return n.length>0?n:void 0}}t(b,"parseMatchGlobs");export{y as KINDS,h as RUNGS,x as SURFACE_EVENTS,A as SURFACE_RUNGS,L as effectiveDocKind,g as isDocKind,D as minRung,G as normalizeDocName,j as normalizeNameSegment,w as parseSubstrateDoc,R as parseSubstrateFrontmatter,k as parseSurfaces,M as previewLine,O as resolveDocName,F as rungAtLeast,a as rungRank};
@@ -1,83 +1 @@
1
- // session-cache.ts — a per-session parse cache for the document substrate.
2
- //
3
- // Both substrate hooks (boot render in render.ts, on-read in on-read.ts) re-walk
4
- // and re-YAML-parse the full corpus on every invocation without memoization. At
5
- // the two highest-frequency hook sites this is O(reads × corpus) and O(turns ×
6
- // corpus) respectively. This module provides a single session-scoped cache that
7
- // the hooks read from, so the corpus is scanned and parsed AT MOST ONCE per
8
- // session turn/read burst.
9
- //
10
- // Lifecycle:
11
- // • clearSessionCache() — called on every `session_start` by canvas-doc-
12
- // substrate.ts. It does NOT need to be called before the first use: a
13
- // cold cache (null) triggers a fresh scan on the next read.
14
- // • All getters lazily populate on first call after a clear.
15
- // • The cache is a module-level singleton (one JS module instance per pi
16
- // process, and each pi process hosts exactly one canvas node session).
17
- //
18
- // Cached entries:
19
- // • allMemoryDocsInclusive — the full listAllMemoryDocs() corpus, UNFILTERED
20
- // (includes node scope). This is the ONE underlying
21
- // filesystem scan the whole module performs per session;
22
- // every other entry below derives from it by
23
- // filtering/mapping, never by calling listFn() again.
24
- // • eventCorpusInclusive — allMemoryDocsInclusive parsed once, each surviving
25
- // SubstrateDoc paired with the resolver descriptor it
26
- // parsed from. The ONE parse pass every delivery plan
27
- // reads from. The pairs matter: `./` memory-read globs
28
- // anchor on the descriptor's canonical routing anchor,
29
- // and the boot tree orders by its physical path. Boot
30
- // filters node scope out of it and loads the node's own
31
- // store separately (render.ts), so a node doc never
32
- // double-surfaces there.
33
- // • substrateDocsInclusive — the parsed docs alone, still including node
34
- // scope. Consumers that need every referenceable doc
35
- // (e.g. the inline memory-reference inventory) use this
36
- // pair with allMemoryDocsInclusive.
37
- // Node subjects are deliberately NOT cached: lifecycle, mode, kind, and other
38
- // gate inputs can change while a resident broker/session remains live. Rendering
39
- // must always gate against the current persisted node metadata.
40
- const _cache = {
41
- allMemoryDocsInclusive: null,
42
- eventCorpusInclusive: null,
43
- substrateDocsInclusive: null,
44
- };
45
- /** Called by canvas-doc-substrate.ts on every `session_start`.
46
- * Resets all cached values so the next access triggers a fresh scan. */
47
- export function clearSessionCache() {
48
- _cache.allMemoryDocsInclusive = null;
49
- _cache.eventCorpusInclusive = null;
50
- _cache.substrateDocsInclusive = null;
51
- }
52
- /** The FULL corpus (listAllMemoryDocs()), INCLUDING node scope, scanned at
53
- * most once per session. `listFn` is injected by the caller to avoid
54
- * circular imports at module init. This is the single filesystem walk the
55
- * whole module performs — every other entry derives from this result rather
56
- * than re-scanning. */
57
- export function cachedAllMemoryDocsInclusive(listFn) {
58
- if (_cache.allMemoryDocsInclusive === null) {
59
- _cache.allMemoryDocsInclusive = listFn();
60
- }
61
- return _cache.allMemoryDocsInclusive;
62
- }
63
- /** allMemoryDocsInclusive parsed and paired with its descriptors, INCLUDING
64
- * node scope — the event corpus, and the module's only parse pass. */
65
- export function cachedEventCorpusInclusive(listFn, parseFn) {
66
- if (_cache.eventCorpusInclusive === null) {
67
- const out = [];
68
- for (const source of cachedAllMemoryDocsInclusive(listFn)) {
69
- const doc = parseFn(source);
70
- if (doc !== null)
71
- out.push({ doc, source });
72
- }
73
- _cache.eventCorpusInclusive = out;
74
- }
75
- return _cache.eventCorpusInclusive;
76
- }
77
- /** The parsed docs of the inclusive event corpus, without their descriptors. */
78
- export function cachedSubstrateDocsInclusive(listFn, parseFn) {
79
- if (_cache.substrateDocsInclusive === null) {
80
- _cache.substrateDocsInclusive = cachedEventCorpusInclusive(listFn, parseFn).map((e) => e.doc);
81
- }
82
- return _cache.substrateDocsInclusive;
83
- }
1
+ var t=Object.defineProperty;var l=(s,c)=>t(s,"name",{value:c,configurable:!0});const e={allMemoryDocsInclusive:null,eventCorpusInclusive:null,substrateDocsInclusive:null};function a(){e.allMemoryDocsInclusive=null,e.eventCorpusInclusive=null,e.substrateDocsInclusive=null}l(a,"clearSessionCache");function r(s){return e.allMemoryDocsInclusive===null&&(e.allMemoryDocsInclusive=s()),e.allMemoryDocsInclusive}l(r,"cachedAllMemoryDocsInclusive");function i(s,c){if(e.eventCorpusInclusive===null){const n=[];for(const u of r(s)){const o=c(u);o!==null&&n.push({doc:o,source:u})}e.eventCorpusInclusive=n}return e.eventCorpusInclusive}l(i,"cachedEventCorpusInclusive");function I(s,c){return e.substrateDocsInclusive===null&&(e.substrateDocsInclusive=i(s,c).map(n=>n.doc)),e.substrateDocsInclusive}l(I,"cachedSubstrateDocsInclusive");export{r as cachedAllMemoryDocsInclusive,i as cachedEventCorpusInclusive,I as cachedSubstrateDocsInclusive,a as clearSessionCache};
@@ -1,35 +1 @@
1
- // subject-fields.ts — the PURE half of subject assembly: the NodeConfigSubject
2
- // shape plus the two derived-field resolvers (`scopeForCwd`, `profileNameFor`)
3
- // that read scope/profile config but NEVER the canvas-db. Split out of
4
- // subject.ts so CLI consumers (`sys context prompt-review`) can build a subject from an
5
- // API-fetched node without pulling subject.ts's canvas-db reach (getNode/getRow).
6
- // The canvas-db assembler (`assembleNodeSubject`, `spineDepth`) stays in
7
- // subject.ts for broker/daemon-side callers.
8
- import { projectScopeRoot } from '../scope.js';
9
- import { loadProfileManifest } from '../profiles/manifest.js';
10
- import { CrtrError } from '../errors.js';
11
- /** The scope a cwd resolves into: `project` when scope.ts finds a
12
- * nearest-ancestor `.crouter/` at/above it, else `user`. Reuses the existing
13
- * resolver (`projectScopeRoot`). */
14
- export function scopeForCwd(cwd) {
15
- return projectScopeRoot(cwd) !== null ? 'project' : 'user';
16
- }
17
- /** Resolve `profile_id` to the manifest's mutable `name` for the gate subject.
18
- * NEVER throws: a missing/deleted profile resolves to `null` silently (the
19
- * ordinary lifecycle of a node whose profile was deleted out from under it);
20
- * any OTHER failure (e.g. an unreadable/corrupt manifest slipping past
21
- * `loadProfileManifest`'s own tolerance) is logged and still resolves to
22
- * `null` rather than throwing — this runs on every gated-doc render. */
23
- export function profileNameFor(profileId) {
24
- if (profileId === undefined || profileId === null || profileId === '')
25
- return null;
26
- try {
27
- return loadProfileManifest(profileId).manifest.name;
28
- }
29
- catch (err) {
30
- if (err instanceof CrtrError && err.code === 'not_found')
31
- return null;
32
- console.warn(`[subject] profile "${profileId}" failed to resolve for node subject assembly: ${err.message}`);
33
- return null;
34
- }
35
- }
1
+ var n=Object.defineProperty;var o=(r,e)=>n(r,"name",{value:e,configurable:!0});import{projectScopeRoot as t}from"../scope.js";import{loadProfileManifest as u}from"../profiles/manifest.js";import{CrtrError as l}from"../errors.js";function i(r){return t(r)!==null?"project":"user"}o(i,"scopeForCwd");function m(r){if(r==null||r==="")return null;try{return u(r).manifest.name}catch(e){return e instanceof l&&e.code==="not_found"||console.warn(`[subject] profile "${r}" failed to resolve for node subject assembly: ${e.message}`),null}}o(m,"profileNameFor");export{m as profileNameFor,i as scopeForCwd};
@@ -1,47 +1 @@
1
- // subject.ts — the CANVAS-DB half of subject assembly: `assembleNodeSubject`
2
- // (reads NodeMeta rows) and `spineDepth` (walks the parent chain). The PURE
3
- // derived-field resolvers and the NodeConfigSubject shape live in
4
- // subject-fields.ts (re-exported here); a CLI consumer that must stay off the
5
- // canvas-db imports those from subject-fields.ts directly. See design-substrate.md
6
- // §4 + plan-substrate.md §2.
7
- import { getNode, getRow } from '../canvas/index.js';
8
- import { scopeForCwd, profileNameFor } from './subject-fields.js';
9
- export { scopeForCwd, profileNameFor } from './subject-fields.js';
10
- /** Spine distance from `nodeId` up to its root orchestrator: count the hops
11
- * walking the `parent` chain (canvas-db rows) until a row with no parent (the
12
- * root). The root is depth 0. Cycle-guarded (parents must not cycle, but never
13
- * loop forever) — mirrors `rootOfSpine` in runtime/placement.ts. */
14
- export function spineDepth(nodeId) {
15
- let cur = nodeId;
16
- const seen = new Set();
17
- let hops = 0;
18
- for (;;) {
19
- if (seen.has(cur))
20
- break;
21
- seen.add(cur);
22
- const row = getRow(cur);
23
- if (row === null || row.parent == null)
24
- break;
25
- cur = row.parent;
26
- hops++;
27
- }
28
- return hops;
29
- }
30
- /** Assemble the node-config subject for `nodeId` from its `NodeMeta` + the
31
- * derived fields. Returns `null` when the node has no canvas-db row (an
32
- * unknown id). Pure aside from the canvas-db + profile-manifest reads. */
33
- export function assembleNodeSubject(nodeId) {
34
- const meta = getNode(nodeId);
35
- if (meta === null)
36
- return null;
37
- return {
38
- kind: meta.kind,
39
- mode: meta.mode,
40
- lifecycle: meta.lifecycle,
41
- hasManager: (meta.parent ?? null) !== null,
42
- cwd: meta.cwd,
43
- scope: scopeForCwd(meta.cwd),
44
- orchestration: { depth: spineDepth(nodeId) },
45
- profile: profileNameFor(meta.profile_id),
46
- };
47
- }
1
+ var p=Object.defineProperty;var t=(o,e)=>p(o,"name",{value:e,configurable:!0});import{getNode as c,getRow as i}from"../canvas/index.js";import{scopeForCwd as a,profileNameFor as f}from"./subject-fields.js";import{scopeForCwd as k,profileNameFor as F}from"./subject-fields.js";function s(o){let e=o;const n=new Set;let l=0;for(;!n.has(e);){n.add(e);const r=i(e);if(r===null||r.parent==null)break;e=r.parent,l++}return l}t(s,"spineDepth");function w(o){const e=c(o);return e===null?null:{kind:e.kind,mode:e.mode,lifecycle:e.lifecycle,hasManager:(e.parent??null)!==null,cwd:e.cwd,scope:a(e.cwd),orchestration:{depth:s(o)},profile:f(e.profile_id)}}t(w,"assembleNodeSubject");export{w as assembleNodeSubject,F as profileNameFor,k as scopeForCwd,s as spineDepth};
@@ -1,242 +1 @@
1
- // surface-match.ts — the per-event matchers for `surfaces` entries, plus the
2
- // owning-root helpers they anchor on. Pure: every function takes its subject
3
- // explicitly (the read file, the resolved doc name, the command string) and
4
- // touches no store discovery.
5
- //
6
- // Match semantics (design: surfaces-design.md): constraints within one entry
7
- // AND together — each present constraint must fit, a `match` list is satisfied
8
- // by any one glob — and multiple entries per event OR together. The `./`
9
- // prefix is the one relative spelling: it anchors a glob to the doc's own
10
- // container (its owning repo dir for `read`, its canonical routing anchor for
11
- // `memory-read`).
12
- import { basename, isAbsolute, matchesGlob, relative, sep } from 'node:path';
13
- import { commandSegments, stripHeredocs } from '../shell-segments.js';
14
- import { CRTR_DIR_NAME } from '../../types.js';
15
- import { realpathOrSelf } from '../fs-utils.js';
16
- import { evalCondition } from '../predicate.js';
17
- import { surfaceEntryGatePasses } from './gate.js';
18
- import { rungRank } from './schema.js';
19
- /** The project directory owning a doc's store: the path segment stack above
20
- * the doc's `.crouter` dir. `null` when the doc's path carries no `.crouter`
21
- * segment (builtin docs). */
22
- export function owningRootOf(doc) {
23
- const parts = doc.path.split(sep);
24
- const idx = parts.lastIndexOf(CRTR_DIR_NAME);
25
- if (idx <= 0)
26
- return null;
27
- return parts.slice(0, idx).join(sep) || sep;
28
- }
29
- /** True when the (already-realpathed) file sits beneath the doc's store's
30
- * owning directory. Callers additionally guard on `doc.scope === 'project'`:
31
- * a profile store's path computes an owning root of `~`, and user/builtin/
32
- * node docs likewise have no project-owning dir, so a `./`-anchored glob
33
- * outside a project store must never match. */
34
- export function underOwningRoot(doc, absFile) {
35
- const root = owningRootOf(doc);
36
- if (root === null)
37
- return false;
38
- const rel = relative(realpathOrSelf(root), absFile);
39
- return rel !== '' && !rel.startsWith('..') && !isAbsolute(rel);
40
- }
41
- function safeGlob(target, glob) {
42
- try {
43
- return matchesGlob(target, glob);
44
- }
45
- catch {
46
- return false;
47
- }
48
- }
49
- /** One read-event glob vs the read file: plain globs match the absolute path
50
- * and the basename; a `./`-anchored glob matches the path relative to the
51
- * doc's store's owning repo dir (project-store docs only). */
52
- function readGlobMatches(glob, doc, absReadFile) {
53
- if (glob.startsWith('./')) {
54
- if (doc.scope !== 'project' || !underOwningRoot(doc, absReadFile))
55
- return false;
56
- const root = owningRootOf(doc);
57
- if (root === null)
58
- return false;
59
- return safeGlob(relative(realpathOrSelf(root), absReadFile), glob.slice(2));
60
- }
61
- return safeGlob(absReadFile, glob) || safeGlob(basename(absReadFile), glob);
62
- }
63
- /** Does a `read` entry fit the read file? `absReadFile` must already be
64
- * realpathed. `readFrontmatter` is the read file's own parsed YAML (empty
65
- * for non-markdown files); an empty record never satisfies
66
- * `matchFrontmatter`. */
67
- export function matchesReadEntry(entry, doc, subject, absReadFile, readFrontmatter) {
68
- if (entry.on !== 'read' || !surfaceEntryGatePasses(entry, subject))
69
- return false;
70
- if (entry.match !== undefined && !entry.match.some((g) => readGlobMatches(g, doc, absReadFile))) {
71
- return false;
72
- }
73
- if (entry.matchFrontmatter !== undefined) {
74
- if (Object.keys(readFrontmatter).length === 0)
75
- return false;
76
- if (!evalCondition(entry.matchFrontmatter, readFrontmatter))
77
- return false;
78
- }
79
- return entry.match !== undefined || entry.matchFrontmatter !== undefined;
80
- }
81
- /** One memory-read glob vs the resolved doc's exact canonical name: plain
82
- * globs match that name only — no mount-stripped or other alias, per the
83
- * hard-cut canonical-only routing contract; a `./`-anchored glob matches
84
- * the name relative to the CARRIER's routing anchor — its own canonical
85
- * name when the carrier fronts a directory, its canonical parent when it is
86
- * an ordinary leaf. Names are slash-separated, so path globbing applies
87
- * segment-wise. */
88
- function memoryReadGlobMatches(glob, routingAnchor, name) {
89
- if (glob.startsWith('./')) {
90
- const stripped = glob.slice(2);
91
- if (routingAnchor === '')
92
- return safeGlob(name, stripped);
93
- if (!name.startsWith(routingAnchor + '/'))
94
- return false;
95
- return safeGlob(name.slice(routingAnchor.length + 1), stripped);
96
- }
97
- return safeGlob(name, glob);
98
- }
99
- /** Does a `memory-read` entry on a carrier anchored at `routingAnchor` fit a
100
- * resolved read of the doc known by its exact canonical `name`? */
101
- export function matchesMemoryReadEntry(entry, routingAnchor, subject, name) {
102
- if (entry.on !== 'memory-read' || entry.match === undefined || !surfaceEntryGatePasses(entry, subject))
103
- return false;
104
- return entry.match.some((g) => memoryReadGlobMatches(g, routingAnchor, name));
105
- }
106
- function commandGlobPattern(glob) {
107
- const words = glob.trim().split(/\s+/);
108
- if (words.length === 1 && words[0] === '')
109
- return null;
110
- const pattern = [];
111
- for (const word of words) {
112
- const parts = word.split('*');
113
- for (let i = 0; i < parts.length; i += 1) {
114
- if (parts[i] !== '')
115
- pattern.push({ kind: 'literal', text: parts[i] });
116
- if (i < parts.length - 1)
117
- pattern.push({ kind: 'any' });
118
- }
119
- }
120
- return pattern;
121
- }
122
- function tokenMatches(pattern, token) {
123
- const rx = pattern
124
- .split('')
125
- .map((ch) => (ch === '?' ? '[\\s\\S]' : ch.replace(/[.+^${}()|[\]\\]/g, '\\$&')))
126
- .join('');
127
- return new RegExp(`^${rx}$`).test(token);
128
- }
129
- function segmentMatches(pattern, tokens) {
130
- const memo = new Map();
131
- const match = (patternIndex, tokenIndex) => {
132
- const key = `${patternIndex}:${tokenIndex}`;
133
- const cached = memo.get(key);
134
- if (cached !== undefined)
135
- return cached;
136
- let result;
137
- if (patternIndex === pattern.length) {
138
- result = tokenIndex === tokens.length;
139
- }
140
- else if (pattern[patternIndex].kind === 'any') {
141
- result = match(patternIndex + 1, tokenIndex) || (tokenIndex < tokens.length && match(patternIndex, tokenIndex + 1));
142
- }
143
- else {
144
- const token = tokens[tokenIndex];
145
- result = token !== undefined && !token.opaque && tokenMatches(pattern[patternIndex].text, token.text) && match(patternIndex + 1, tokenIndex + 1);
146
- }
147
- memo.set(key, result);
148
- return result;
149
- };
150
- return match(0, 0);
151
- }
152
- function commandGlobMatches(glob, command) {
153
- const pattern = commandGlobPattern(glob);
154
- if (pattern === null)
155
- return false;
156
- return commandSegments(command)
157
- .filter(({ tokens }) => tokens.length > 0)
158
- .some(({ tokens }) => segmentMatches(pattern, tokens));
159
- }
160
- /** Does a `command` entry's parsed command pattern fit, without evaluating its
161
- * node-config gate? Callers use this only to determine whether resolving a
162
- * subject could be necessary; delivery must still use `matchesCommandEntry`. */
163
- export function commandEntryMatches(entry, command) {
164
- return entry.on === 'command' && entry.match !== undefined && entry.match.some((g) => commandGlobMatches(g, command));
165
- }
166
- /** Does a `command` entry fit the executed command string? */
167
- export function matchesCommandEntry(entry, subject, command) {
168
- return commandEntryMatches(entry, command) && surfaceEntryGatePasses(entry, subject);
169
- }
170
- /** Does a `pre-command` entry's parsed command pattern fit, without evaluating
171
- * its node-config gate? Callers use this only to determine whether resolving a
172
- * subject could be necessary; delivery must still use `matchesPreCommandEntry`. */
173
- export function preCommandEntryMatches(entry, command) {
174
- if (entry.on !== 'pre-command' || entry.match === undefined)
175
- return false;
176
- return entry.match.some((g) => commandGlobMatches(g, stripHeredocs(command)));
177
- }
178
- /** Does a `pre-command` entry fit a command that is ABOUT to run? The same
179
- * glob machinery `command` uses — one matcher, one semantics — applied to the
180
- * command with its heredoc bodies stripped. Subshell parentheses, backticks,
181
- * and path-prefixed binaries stay unhandled: this is a guardrail against the
182
- * faithful-but-uninformed action, not an enforcement boundary. */
183
- export function matchesPreCommandEntry(entry, subject, command) {
184
- return preCommandEntryMatches(entry, command) && surfaceEntryGatePasses(entry, subject);
185
- }
186
- /** Does ONE entry of `event` fit this occurrence — constraints and the entry's
187
- * own gate together? */
188
- export function surfaceEntryParticipates(entry, doc, subject, event, payload) {
189
- if (entry.on !== event)
190
- return false;
191
- switch (event) {
192
- // Presence of the entry is the match; callers scope the corpus.
193
- case 'boot':
194
- case 'workspace-open':
195
- return surfaceEntryGatePasses(entry, subject);
196
- case 'read':
197
- if (payload.absoluteFile === undefined || doc.path === undefined || doc.scope === undefined)
198
- return false;
199
- return matchesReadEntry(entry, { path: doc.path, scope: doc.scope }, subject, payload.absoluteFile, payload.readFrontmatter ?? {});
200
- case 'memory-read':
201
- if (payload.resolvedCanonicalName === undefined)
202
- return false;
203
- return matchesMemoryReadEntry(entry, payload.routingAnchor ?? '', subject, payload.resolvedCanonicalName);
204
- case 'command':
205
- return payload.command !== undefined && matchesCommandEntry(entry, subject, payload.command);
206
- case 'pre-command':
207
- return payload.command !== undefined && matchesPreCommandEntry(entry, subject, payload.command);
208
- }
209
- }
210
- /** The entry that decides this doc's delivery for one event occurrence: the
211
- * highest-rung participating entry, or null when none participates. */
212
- export function matchingSurfaceEntry(doc, subject, event, payload) {
213
- let best = null;
214
- for (const entry of doc.surfaces) {
215
- if (!surfaceEntryParticipates(entry, doc, subject, event, payload))
216
- continue;
217
- if (best === null || rungRank(entry.at) > rungRank(best.at))
218
- best = entry;
219
- }
220
- return best;
221
- }
222
- /** The doc's delivery rung for a read of `absReadFile` (already realpathed). */
223
- export function readDeliveryRung(doc, subject, absReadFile, readFrontmatter) {
224
- return matchingSurfaceEntry(doc, subject, 'read', { absoluteFile: absReadFile, readFrontmatter })?.at ?? 'none';
225
- }
226
- /** The doc's workspace-open rung. */
227
- export function workspaceOpenRung(doc, subject) {
228
- return matchingSurfaceEntry(doc, subject, 'workspace-open', {})?.at ?? 'none';
229
- }
230
- /** The doc's delivery rung for a `crtr memory read` that resolved a doc known
231
- * by its exact canonical `name` — no mount-stripped or other alias. */
232
- export function memoryReadDeliveryRung(doc, routingAnchor, subject, name) {
233
- return matchingSurfaceEntry(doc, subject, 'memory-read', { routingAnchor, resolvedCanonicalName: name })?.at ?? 'none';
234
- }
235
- /** The doc's delivery rung for an executed command string. */
236
- export function commandDeliveryRung(doc, subject, command) {
237
- return matchingSurfaceEntry(doc, subject, 'command', { command })?.at ?? 'none';
238
- }
239
- /** The doc's delivery rung for a command about to run. */
240
- export function preCommandDeliveryRung(doc, subject, command) {
241
- return matchingSurfaceEntry(doc, subject, 'pre-command', { command })?.at ?? 'none';
242
- }
1
+ var x=Object.defineProperty;var i=(e,t)=>x(e,"name",{value:t,configurable:!0});import{basename as M,isAbsolute as C,matchesGlob as v,relative as p,sep as l}from"node:path";import{commandSegments as G,stripHeredocs as O}from"../shell-segments.js";import{CRTR_DIR_NAME as $}from"../../types.js";import{realpathOrSelf as g}from"../fs-utils.js";import{evalCondition as D}from"../predicate.js";import{surfaceEntryGatePasses as c}from"./gate.js";import{rungRank as R}from"./schema.js";function E(e){const t=e.path.split(l),n=t.lastIndexOf($);return n<=0?null:t.slice(0,n).join(l)||l}i(E,"owningRootOf");function N(e,t){const n=E(e);if(n===null)return!1;const r=p(g(n),t);return r!==""&&!r.startsWith("..")&&!C(r)}i(N,"underOwningRoot");function a(e,t){try{return v(e,t)}catch{return!1}}i(a,"safeGlob");function P(e,t,n){if(e.startsWith("./")){if(t.scope!=="project"||!N(t,n))return!1;const r=E(t);return r===null?!1:a(p(g(r),n),e.slice(2))}return a(n,e)||a(M(n),e)}i(P,"readGlobMatches");function S(e,t,n,r,o){return e.on!=="read"||!c(e,n)||e.match!==void 0&&!e.match.some(s=>P(s,t,r))||e.matchFrontmatter!==void 0&&(Object.keys(o).length===0||!D(e.matchFrontmatter,o))?!1:e.match!==void 0||e.matchFrontmatter!==void 0}i(S,"matchesReadEntry");function W(e,t,n){if(e.startsWith("./")){const r=e.slice(2);return t===""?a(n,r):n.startsWith(t+"/")?a(n.slice(t.length+1),r):!1}return a(n,e)}i(W,"memoryReadGlobMatches");function k(e,t,n,r){return e.on!=="memory-read"||e.match===void 0||!c(e,n)?!1:e.match.some(o=>W(o,t,r))}i(k,"matchesMemoryReadEntry");function F(e){const t=e.trim().split(/\s+/);if(t.length===1&&t[0]==="")return null;const n=[];for(const r of t){const o=r.split("*");for(let s=0;s<o.length;s+=1)o[s]!==""&&n.push({kind:"literal",text:o[s]}),s<o.length-1&&n.push({kind:"any"})}return n}i(F,"commandGlobPattern");function b(e,t){const n=e.split("").map(r=>r==="?"?"[\\s\\S]":r.replace(/[.+^${}()|[\]\\]/g,"\\$&")).join("");return new RegExp(`^${n}$`).test(t)}i(b,"tokenMatches");function _(e,t){const n=new Map,r=i((o,s)=>{const h=`${o}:${s}`,d=n.get(h);if(d!==void 0)return d;let u;if(o===e.length)u=s===t.length;else if(e[o].kind==="any")u=r(o+1,s)||s<t.length&&r(o,s+1);else{const m=t[s];u=m!==void 0&&!m.opaque&&b(e[o].text,m.text)&&r(o+1,s+1)}return n.set(h,u),u},"match");return r(0,0)}i(_,"segmentMatches");function w(e,t){const n=F(e);return n===null?!1:G(t).filter(({tokens:r})=>r.length>0).some(({tokens:r})=>_(n,r))}i(w,"commandGlobMatches");function q(e,t){return e.on==="command"&&e.match!==void 0&&e.match.some(n=>w(n,t))}i(q,"commandEntryMatches");function A(e,t,n){return q(e,n)&&c(e,t)}i(A,"matchesCommandEntry");function H(e,t){return e.on!=="pre-command"||e.match===void 0?!1:e.match.some(n=>w(n,O(t)))}i(H,"preCommandEntryMatches");function T(e,t,n){return H(e,n)&&c(e,t)}i(T,"matchesPreCommandEntry");function j(e,t,n,r,o){if(e.on!==r)return!1;switch(r){case"boot":case"workspace-open":return c(e,n);case"read":return o.absoluteFile===void 0||t.path===void 0||t.scope===void 0?!1:S(e,{path:t.path,scope:t.scope},n,o.absoluteFile,o.readFrontmatter??{});case"memory-read":return o.resolvedCanonicalName===void 0?!1:k(e,o.routingAnchor??"",n,o.resolvedCanonicalName);case"command":return o.command!==void 0&&A(e,n,o.command);case"pre-command":return o.command!==void 0&&T(e,n,o.command)}}i(j,"surfaceEntryParticipates");function f(e,t,n,r){let o=null;for(const s of e.surfaces)j(s,e,t,n,r)&&(o===null||R(s.at)>R(o.at))&&(o=s);return o}i(f,"matchingSurfaceEntry");function X(e,t,n,r){return f(e,t,"read",{absoluteFile:n,readFrontmatter:r})?.at??"none"}i(X,"readDeliveryRung");function Y(e,t){return f(e,t,"workspace-open",{})?.at??"none"}i(Y,"workspaceOpenRung");function Z(e,t,n,r){return f(e,n,"memory-read",{routingAnchor:t,resolvedCanonicalName:r})?.at??"none"}i(Z,"memoryReadDeliveryRung");function y(e,t,n){return f(e,t,"command",{command:n})?.at??"none"}i(y,"commandDeliveryRung");function I(e,t,n){return f(e,t,"pre-command",{command:n})?.at??"none"}i(I,"preCommandDeliveryRung");export{y as commandDeliveryRung,q as commandEntryMatches,A as matchesCommandEntry,k as matchesMemoryReadEntry,T as matchesPreCommandEntry,S as matchesReadEntry,f as matchingSurfaceEntry,Z as memoryReadDeliveryRung,E as owningRootOf,I as preCommandDeliveryRung,H as preCommandEntryMatches,X as readDeliveryRung,j as surfaceEntryParticipates,N as underOwningRoot,Y as workspaceOpenRung};