@north-light/crouter 0.3.317 → 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 (1305) hide show
  1. package/README.md +0 -3
  2. package/dist/api/client.d.ts +1 -1
  3. package/dist/api/client.js +2 -912
  4. package/dist/api/dto/attach.js +0 -13
  5. package/dist/api/dto/bash-jobs.js +1 -9
  6. package/dist/api/dto/broker-ops.js +0 -6
  7. package/dist/api/dto/broker.js +0 -20
  8. package/dist/api/dto/canvas.js +0 -2
  9. package/dist/api/dto/chat-inventory.js +0 -11
  10. package/dist/api/dto/common.js +1 -15
  11. package/dist/api/dto/config.js +0 -3
  12. package/dist/api/dto/crons.js +1 -10
  13. package/dist/api/dto/files.js +0 -7
  14. package/dist/api/dto/focus.js +0 -10
  15. package/dist/api/dto/health.js +0 -2
  16. package/dist/api/dto/human-requests.js +0 -4
  17. package/dist/api/dto/human.js +0 -4
  18. package/dist/api/dto/inbox.js +0 -4
  19. package/dist/api/dto/lifecycle.js +0 -3
  20. package/dist/api/dto/mail.js +0 -1
  21. package/dist/api/dto/memory.js +0 -6
  22. package/dist/api/dto/messages.js +0 -2
  23. package/dist/api/dto/model-config.js +0 -1
  24. package/dist/api/dto/modelauth.js +0 -4
  25. package/dist/api/dto/node-outcomes.js +0 -2
  26. package/dist/api/dto/nodes.js +0 -3
  27. package/dist/api/dto/profiles.js +1 -4
  28. package/dist/api/dto/recovery.js +0 -1
  29. package/dist/api/dto/reports.js +0 -2
  30. package/dist/api/dto/review-comments.js +0 -5
  31. package/dist/api/dto/reviews.js +0 -5
  32. package/dist/api/dto/subscriptions.js +0 -2
  33. package/dist/api/dto/worktree.js +0 -6
  34. package/dist/api/errors.js +1 -40
  35. package/dist/api/index.js +1 -33
  36. package/dist/api/plugin-manifest-schema.js +0 -23
  37. package/dist/api/routes.js +1 -147
  38. package/dist/build-root.js +1 -198
  39. package/dist/cli.js +3 -99
  40. package/dist/clients/attach/ansi-cells.js +1 -137
  41. package/dist/clients/attach/chrome/bash-jobs.js +1 -31
  42. package/dist/clients/attach/chrome/canvas-panels.js +1 -194
  43. package/dist/clients/attach/chrome/completion-bell.js +1 -89
  44. package/dist/clients/attach/chrome/cron-wait.js +1 -34
  45. package/dist/clients/attach/chrome/git-info.js +2 -44
  46. package/dist/clients/attach/chrome/header.js +1 -30
  47. package/dist/clients/attach/chrome/inbox-strip.js +1 -199
  48. package/dist/clients/attach/chrome/recap.js +1 -19
  49. package/dist/clients/attach/chrome/review-wait.js +1 -22
  50. package/dist/clients/attach/chrome/roster.js +4 -275
  51. package/dist/clients/attach/chrome/status-line.js +1 -117
  52. package/dist/clients/attach/chrome/ticket-panel.js +1 -280
  53. package/dist/clients/attach/chrome/widgets.js +1 -51
  54. package/dist/clients/attach/command.js +1 -107
  55. package/dist/clients/attach/config.js +1 -274
  56. package/dist/clients/attach/input/capabilities.js +1 -104
  57. package/dist/clients/attach/input/clipboard-image.js +3 -220
  58. package/dist/clients/attach/input/completion-frecency.js +1 -141
  59. package/dist/clients/attach/input/controller.js +7 -377
  60. package/dist/clients/attach/input/overlay-owner.js +1 -199
  61. package/dist/clients/attach/input/ref-autocomplete.js +2 -176
  62. package/dist/clients/attach/input/titled-editor.js +4 -859
  63. package/dist/clients/attach/overlays/auth.js +2 -271
  64. package/dist/clients/attach/overlays/dialogs.js +2 -102
  65. package/dist/clients/attach/overlays/file-review.js +2 -128
  66. package/dist/clients/attach/overlays/graph.js +1 -661
  67. package/dist/clients/attach/overlays/help.js +1 -211
  68. package/dist/clients/attach/overlays/mcp.js +1 -302
  69. package/dist/clients/attach/overlays/pickers.js +1 -163
  70. package/dist/clients/attach/render/activity-slot.js +1 -13
  71. package/dist/clients/attach/render/assistant-message.js +1 -56
  72. package/dist/clients/attach/render/card-presentation.js +5 -218
  73. package/dist/clients/attach/render/chat-view.js +5 -1708
  74. package/dist/clients/attach/render/condensed-history.js +1 -60
  75. package/dist/clients/attach/render/context-message.js +1 -63
  76. package/dist/clients/attach/render/crtr-output.js +17 -905
  77. package/dist/clients/attach/render/diagram.js +7 -111
  78. package/dist/clients/attach/render/edit-diff.js +5 -304
  79. package/dist/clients/attach/render/glyph-codepoints.js +1 -42
  80. package/dist/clients/attach/render/group-activity.js +2 -263
  81. package/dist/clients/attach/render/group-recap.js +1 -152
  82. package/dist/clients/attach/render/markdown-source.js +5 -266
  83. package/dist/clients/attach/render/measured-container.js +1 -322
  84. package/dist/clients/attach/render/page-block.js +1 -183
  85. package/dist/clients/attach/render/scroll-animation.js +1 -80
  86. package/dist/clients/attach/render/tool-calls.js +3 -361
  87. package/dist/clients/attach/render/transcript-copy.js +2 -81
  88. package/dist/clients/attach/render/transcript-search.js +1 -152
  89. package/dist/clients/attach/render/viewport.js +1 -184
  90. package/dist/clients/attach/session/banner.js +1 -29
  91. package/dist/clients/attach/session/bindings.js +1 -71
  92. package/dist/clients/attach/session/chrome-refresh.js +1 -94
  93. package/dist/clients/attach/session/connection.js +1 -186
  94. package/dist/clients/attach/session/context.js +0 -16
  95. package/dist/clients/attach/session/editor-frame.js +1 -142
  96. package/dist/clients/attach/session/editor-inventory.js +6 -160
  97. package/dist/clients/attach/session/file-links.js +1 -68
  98. package/dist/clients/attach/session/focus-events.js +1 -12
  99. package/dist/clients/attach/session/frame.js +1 -214
  100. package/dist/clients/attach/session/frames.js +1 -188
  101. package/dist/clients/attach/session/identity.js +1 -26
  102. package/dist/clients/attach/session/input-wiring.js +1 -140
  103. package/dist/clients/attach/session/invariant.js +1 -15
  104. package/dist/clients/attach/session/keys.js +1 -77
  105. package/dist/clients/attach/session/layout.js +1 -59
  106. package/dist/clients/attach/session/mouse.js +1 -78
  107. package/dist/clients/attach/session/pane-focus.js +1 -42
  108. package/dist/clients/attach/session/pane-tag.js +1 -112
  109. package/dist/clients/attach/session/pi-assets.js +1 -24
  110. package/dist/clients/attach/session/pi-oauth-flows.js +1 -21
  111. package/dist/clients/attach/session/profile-files.js +1 -228
  112. package/dist/clients/attach/session/reconnect.js +1 -175
  113. package/dist/clients/attach/session/selection.js +3 -108
  114. package/dist/clients/attach/session/state-sync.js +1 -67
  115. package/dist/clients/attach/session/surface-frame.js +1 -73
  116. package/dist/clients/attach/session/surface-host.js +1 -255
  117. package/dist/clients/attach/session/teardown.js +5 -94
  118. package/dist/clients/attach/session/transcript-search.js +3 -151
  119. package/dist/clients/attach/session/whip-achievements.js +2 -145
  120. package/dist/clients/attach/session/whip.js +1 -362
  121. package/dist/clients/attach/slash/dispatch.js +1 -706
  122. package/dist/clients/attach/slash/prompt-preview.js +1 -121
  123. package/dist/clients/attach/viewer.js +1 -1
  124. package/dist/clients/conversation/projection.js +1 -324
  125. package/dist/clients/conversation/submit.js +1 -51
  126. package/dist/clients/inbox/controller.js +1 -701
  127. package/dist/clients/inbox/dto-adapt.js +1 -93
  128. package/dist/clients/inbox/layout.js +1 -9
  129. package/dist/clients/inbox/page-adapter.js +1 -55
  130. package/dist/clients/inbox/resolve.js +1 -35
  131. package/dist/clients/inbox/review/anchors.js +1 -89
  132. package/dist/clients/inbox/review/comments-client.js +1 -98
  133. package/dist/clients/inbox/review/companion-pane.js +1 -82
  134. package/dist/clients/inbox/review/document-surface.js +2 -1188
  135. package/dist/clients/inbox/review/frame.js +1 -216
  136. package/dist/clients/inbox/review/keys.js +1 -123
  137. package/dist/clients/inbox/review/launch.js +1 -151
  138. package/dist/clients/inbox/review/live-source.js +1 -160
  139. package/dist/clients/inbox/review/nvim.js +1 -44
  140. package/dist/clients/inbox/review/remap.js +1 -157
  141. package/dist/clients/inbox/review/review-client.js +1 -123
  142. package/dist/clients/inbox/review/roundtrip.js +3 -36
  143. package/dist/clients/inbox/review/state.js +4 -315
  144. package/dist/clients/inbox/review-adapter.js +1 -43
  145. package/dist/clients/inbox/surface.js +1 -152
  146. package/dist/clients/inbox/tui/ansi.js +3 -321
  147. package/dist/clients/inbox/tui/input.js +5 -392
  148. package/dist/clients/inbox/tui/keys.js +1 -104
  149. package/dist/clients/inbox/tui/page-body.js +1 -66
  150. package/dist/clients/inbox/tui/panel.js +1 -84
  151. package/dist/clients/inbox/tui/render.js +2 -368
  152. package/dist/clients/inbox/tui/slots.js +3 -134
  153. package/dist/clients/inbox/tui/types.js +0 -1
  154. package/dist/clients/inbox/tui.js +1 -86
  155. package/dist/clients/surfaces/host.js +0 -1
  156. package/dist/commands/api-client.js +4 -290
  157. package/dist/commands/attention.js +1 -215
  158. package/dist/commands/canvas-browse.js +1 -70
  159. package/dist/commands/canvas-config.js +2 -192
  160. package/dist/commands/canvas-history/grep.js +7 -85
  161. package/dist/commands/canvas-history/read.js +3 -50
  162. package/dist/commands/canvas-history/search.js +10 -99
  163. package/dist/commands/canvas-history/shared.js +1 -139
  164. package/dist/commands/canvas-history/stats.js +6 -68
  165. package/dist/commands/canvas-history.js +1 -32
  166. package/dist/commands/canvas-issue.js +14 -149
  167. package/dist/commands/canvas-prune.js +1 -108
  168. package/dist/commands/canvas-roster.js +1 -69
  169. package/dist/commands/canvas-snapshot.js +1 -34
  170. package/dist/commands/canvas-use.js +1 -61
  171. package/dist/commands/canvas.js +1 -49
  172. package/dist/commands/chord.js +1 -241
  173. package/dist/commands/cron.js +11 -534
  174. package/dist/commands/dashboard.js +1 -85
  175. package/dist/commands/human/components.js +3 -77
  176. package/dist/commands/human/feedback.js +1 -112
  177. package/dist/commands/human/prompts.js +1 -331
  178. package/dist/commands/human/queue.js +1 -191
  179. package/dist/commands/human/request.js +1 -266
  180. package/dist/commands/human/review.js +1 -288
  181. package/dist/commands/human/shared.js +1 -67
  182. package/dist/commands/human.js +4 -60
  183. package/dist/commands/memory/delete.js +1 -100
  184. package/dist/commands/memory/edit.js +21 -219
  185. package/dist/commands/memory/find.js +2 -244
  186. package/dist/commands/memory/history.js +5 -199
  187. package/dist/commands/memory/lint.js +1 -107
  188. package/dist/commands/memory/list.js +1 -142
  189. package/dist/commands/memory/move.js +1 -223
  190. package/dist/commands/memory/origin.js +1 -130
  191. package/dist/commands/memory/read.js +6 -232
  192. package/dist/commands/memory/shared.js +12 -802
  193. package/dist/commands/memory/write.js +13 -235
  194. package/dist/commands/memory.js +1 -30
  195. package/dist/commands/node/bash.js +5 -245
  196. package/dist/commands/node/create.js +3 -332
  197. package/dist/commands/node/inspect.js +12 -300
  198. package/dist/commands/node/lifecycle.js +2 -453
  199. package/dist/commands/node/message.js +1 -161
  200. package/dist/commands/node/outcome.js +4 -134
  201. package/dist/commands/node/pyramid.js +2 -79
  202. package/dist/commands/node/subscription.js +1 -78
  203. package/dist/commands/node/wait.js +7 -163
  204. package/dist/commands/node-context.js +2 -159
  205. package/dist/commands/node-inspect-artifacts.js +8 -109
  206. package/dist/commands/node-lifecycle-revive.js +1 -217
  207. package/dist/commands/node-snapshot.js +1 -37
  208. package/dist/commands/node-transcript.js +1 -62
  209. package/dist/commands/node-worktree.js +1 -138
  210. package/dist/commands/node.js +1 -29
  211. package/dist/commands/pkg/browse/actions.js +1 -198
  212. package/dist/commands/pkg/browse/catalog.js +1 -466
  213. package/dist/commands/pkg/browse/command-view.js +1 -191
  214. package/dist/commands/pkg/browse/detail-panel.js +1 -402
  215. package/dist/commands/pkg/browse/doc-view.js +1 -89
  216. package/dist/commands/pkg/browse/list-panel.js +2 -168
  217. package/dist/commands/pkg/browse/model.js +1 -36
  218. package/dist/commands/pkg/browse/shell.js +1 -640
  219. package/dist/commands/pkg/browse.js +1 -27
  220. package/dist/commands/pkg/market-inspect.js +1 -141
  221. package/dist/commands/pkg/market-manage.js +1 -327
  222. package/dist/commands/pkg/market.js +1 -14
  223. package/dist/commands/pkg/plugin-inspect.js +1 -168
  224. package/dist/commands/pkg/plugin-manage.js +17 -1109
  225. package/dist/commands/pkg/plugin.js +1 -14
  226. package/dist/commands/pkg/shared.js +1 -62
  227. package/dist/commands/pkg.js +1 -21
  228. package/dist/commands/profile/default.js +1 -139
  229. package/dist/commands/profile/delete.js +1 -66
  230. package/dist/commands/profile/env.js +3 -188
  231. package/dist/commands/profile/kind.js +2 -35
  232. package/dist/commands/profile/list.js +1 -43
  233. package/dist/commands/profile/meta.js +1 -67
  234. package/dist/commands/profile/new.js +1 -115
  235. package/dist/commands/profile/pause.js +1 -59
  236. package/dist/commands/profile/project.js +1 -113
  237. package/dist/commands/profile/rename.js +1 -38
  238. package/dist/commands/profile/show.js +1 -52
  239. package/dist/commands/profile.js +1 -35
  240. package/dist/commands/push.js +9 -265
  241. package/dist/commands/revive.js +10 -181
  242. package/dist/commands/surface/node/cycle.js +1 -83
  243. package/dist/commands/surface/node/focus.js +1 -81
  244. package/dist/commands/surface/node/id.js +1 -38
  245. package/dist/commands/surface/node/pin.js +1 -42
  246. package/dist/commands/surface/node/placement.js +1 -134
  247. package/dist/commands/surface-edit.js +1 -157
  248. package/dist/commands/surface-inbox.js +1 -98
  249. package/dist/commands/surface-inspect.js +1 -39
  250. package/dist/commands/surface-node.js +1 -19
  251. package/dist/commands/surface-reload.js +2 -134
  252. package/dist/commands/surface-tmux-spread.js +1 -214
  253. package/dist/commands/surface.js +1 -28
  254. package/dist/commands/sys/branch.js +1 -19
  255. package/dist/commands/sys/config.js +1 -353
  256. package/dist/commands/sys/context/admin/actions.js +2 -246
  257. package/dist/commands/sys/context/admin/detail-panel.js +1 -247
  258. package/dist/commands/sys/context/admin/docs-panel.js +1 -191
  259. package/dist/commands/sys/context/admin/list-view.js +1 -183
  260. package/dist/commands/sys/context/admin/model.js +1 -229
  261. package/dist/commands/sys/context/admin/rail-panel.js +1 -227
  262. package/dist/commands/sys/context/admin/read-view.js +2 -194
  263. package/dist/commands/sys/context/admin/shell.js +1 -910
  264. package/dist/commands/sys/context/admin.js +2 -126
  265. package/dist/commands/sys/context/doc.js +3 -197
  266. package/dist/commands/sys/context/prompt-review.js +11 -291
  267. package/dist/commands/sys/context/resolve.js +10 -489
  268. package/dist/commands/sys/context/sysprompt.js +5 -96
  269. package/dist/commands/sys/context.js +1 -20
  270. package/dist/commands/sys/daemon.js +1 -313
  271. package/dist/commands/sys/doctor.js +1 -617
  272. package/dist/commands/sys/feedback.js +7 -228
  273. package/dist/commands/sys/logs.js +3 -129
  274. package/dist/commands/sys/migrate.js +1 -94
  275. package/dist/commands/sys/panels/broker-limits-panel.js +2 -110
  276. package/dist/commands/sys/panels/dependencies-panel.js +1 -80
  277. package/dist/commands/sys/panels/keybindings-panel.js +1 -703
  278. package/dist/commands/sys/panels/models-panel.js +1 -1133
  279. package/dist/commands/sys/panels/plugins-panel.js +1 -80
  280. package/dist/commands/sys/panels/prefs-panel.js +1 -85
  281. package/dist/commands/sys/panels/profiles-panel.js +1 -601
  282. package/dist/commands/sys/panels/provider-panel.js +1 -538
  283. package/dist/commands/sys/settings-shell.js +1 -400
  284. package/dist/commands/sys/settings.js +1 -46
  285. package/dist/commands/sys/setup-core.js +6 -579
  286. package/dist/commands/sys/setup-settings-runner.js +1 -16
  287. package/dist/commands/sys/setup-wizard.js +1 -279
  288. package/dist/commands/sys/setup.js +1 -34
  289. package/dist/commands/sys/shared.js +1 -81
  290. package/dist/commands/sys/support/prepare.js +3 -239
  291. package/dist/commands/sys/support/submit.js +6 -524
  292. package/dist/commands/sys/support.js +1 -18
  293. package/dist/commands/sys/sync-deps.js +15 -498
  294. package/dist/commands/sys/sync-project-guidance.js +4 -481
  295. package/dist/commands/sys/sync-shared.js +1 -49
  296. package/dist/commands/sys/sync-skills.js +2 -311
  297. package/dist/commands/sys/sync.js +1 -18
  298. package/dist/commands/sys/update.js +1 -147
  299. package/dist/commands/sys/worktrees.js +5 -53
  300. package/dist/commands/sys.js +1 -18
  301. package/dist/core/activity-signal.js +2 -38
  302. package/dist/core/asset-root.js +1 -18
  303. package/dist/core/auth-file.js +2 -179
  304. package/dist/core/auth-interaction.js +3 -94
  305. package/dist/core/auto-update.js +4 -94
  306. package/dist/core/bash-guard.js +11 -393
  307. package/dist/core/bash-jobs.js +7 -411
  308. package/dist/core/bootstrap.js +2 -53
  309. package/dist/core/broker-client/client.js +1 -184
  310. package/dist/core/broker-client/index.js +1 -13
  311. package/dist/core/broker-client/transport-relay.js +1 -157
  312. package/dist/core/broker-client/transport-socket.js +1 -179
  313. package/dist/core/broker-client/transport.js +1 -26
  314. package/dist/core/canvas/attention.js +1 -47
  315. package/dist/core/canvas/boot-id.js +1 -26
  316. package/dist/core/canvas/boot.js +1 -186
  317. package/dist/core/canvas/browse/app.js +3 -919
  318. package/dist/core/canvas/browse/model.js +1 -477
  319. package/dist/core/canvas/browse/pins.js +1 -29
  320. package/dist/core/canvas/browse/render.js +3 -1055
  321. package/dist/core/canvas/canvas.js +15 -922
  322. package/dist/core/canvas/crons.js +11 -481
  323. package/dist/core/canvas/daemon-owner.js +2 -146
  324. package/dist/core/canvas/db.js +2 -100
  325. package/dist/core/canvas/deliveries.js +22 -283
  326. package/dist/core/canvas/delivery-contract.js +1 -8
  327. package/dist/core/canvas/executions.js +1 -68
  328. package/dist/core/canvas/extensions.js +1 -83
  329. package/dist/core/canvas/focuses.js +1 -77
  330. package/dist/core/canvas/history.js +24 -860
  331. package/dist/core/canvas/index.js +1 -15
  332. package/dist/core/canvas/install-id.js +1 -84
  333. package/dist/core/canvas/labels.js +1 -43
  334. package/dist/core/canvas/meta-file.js +1 -89
  335. package/dist/core/canvas/migrations.js +41 -1150
  336. package/dist/core/canvas/nav-model.js +1 -231
  337. package/dist/core/canvas/nav-render.js +1 -260
  338. package/dist/core/canvas/node-order.js +1 -37
  339. package/dist/core/canvas/node-recap.js +2 -67
  340. package/dist/core/canvas/node-sql-migration.js +2 -209
  341. package/dist/core/canvas/paths.js +1 -153
  342. package/dist/core/canvas/pid.js +4 -683
  343. package/dist/core/canvas/recovery.js +3 -565
  344. package/dist/core/canvas/remote-canvas-source.js +1 -288
  345. package/dist/core/canvas/remote-transport.js +1 -57
  346. package/dist/core/canvas/render-source.js +10 -635
  347. package/dist/core/canvas/sessions.js +1 -78
  348. package/dist/core/canvas/source.js +1 -47
  349. package/dist/core/canvas/status-glyph.js +1 -132
  350. package/dist/core/canvas/telemetry.js +1 -35
  351. package/dist/core/canvas/types.js +1 -6
  352. package/dist/core/canvas/waits.js +4 -68
  353. package/dist/core/canvas/worktrees.js +1 -93
  354. package/dist/core/clipboard-text.js +1 -57
  355. package/dist/core/command-hooks/artifact.js +1 -145
  356. package/dist/core/command-hooks/catalog.js +1 -38
  357. package/dist/core/command-hooks/compose.js +1 -99
  358. package/dist/core/command-hooks/discovery.js +1 -228
  359. package/dist/core/command-hooks/help.js +1 -18
  360. package/dist/core/command-hooks/index.js +1 -7
  361. package/dist/core/command-hooks/lifecycle-catalog.js +1 -9
  362. package/dist/core/command-hooks/lifecycle-create.js +1 -51
  363. package/dist/core/command-hooks/report.js +1 -28
  364. package/dist/core/command-hooks/schema.js +1 -157
  365. package/dist/core/command-hooks/transport/exec-invoke.js +1 -276
  366. package/dist/core/command-hooks/transport/exec-lifecycle.js +1 -211
  367. package/dist/core/command-manifests/manifest.js +1 -324
  368. package/dist/core/command-manifests/registry.js +1 -118
  369. package/dist/core/command-manifests/schema.js +1 -736
  370. package/dist/core/command-plugins/bundle.js +1 -261
  371. package/dist/core/command-plugins/compose.js +1 -65
  372. package/dist/core/command-plugins/discovery.js +1 -245
  373. package/dist/core/command-plugins/endpoint.js +1 -48
  374. package/dist/core/command-plugins/extensions.js +1 -166
  375. package/dist/core/command-plugins/help-addenda.js +1 -44
  376. package/dist/core/command-plugins/presence.js +1 -17
  377. package/dist/core/command-plugins/revalidate.js +2 -152
  378. package/dist/core/command-plugins/transport/exec-invoke.js +1 -215
  379. package/dist/core/command-plugins/transport/http-fetch.js +1 -68
  380. package/dist/core/command-plugins/transport/http-invoke.js +3 -546
  381. package/dist/core/command.js +10 -739
  382. package/dist/core/config.js +1 -1059
  383. package/dist/core/document-lines.js +3 -6
  384. package/dist/core/env-name.js +1 -9
  385. package/dist/core/errors.js +1 -52
  386. package/dist/core/events/emit.js +1 -17
  387. package/dist/core/events/envelope.js +1 -84
  388. package/dist/core/events/errors.js +1 -69
  389. package/dist/core/events/index.js +1 -4
  390. package/dist/core/events/operation-id.js +1 -24
  391. package/dist/core/events/read.js +1 -623
  392. package/dist/core/events/serialize.js +1 -199
  393. package/dist/core/events/source.js +1 -31
  394. package/dist/core/events/types.js +1 -11
  395. package/dist/core/exclusive-lock.js +1 -197
  396. package/dist/core/fault-classifier.js +1 -96
  397. package/dist/core/feed/feed.js +7 -202
  398. package/dist/core/feed/inbox-migrate.js +3 -135
  399. package/dist/core/feed/inbox.js +10 -122
  400. package/dist/core/feed/messages.js +6 -212
  401. package/dist/core/frontmatter.js +1 -35
  402. package/dist/core/fs-utils.js +3 -202
  403. package/dist/core/git.js +2 -103
  404. package/dist/core/help.js +9 -310
  405. package/dist/core/host-exports/builtins.js +9 -68
  406. package/dist/core/host-exports/export.js +3 -124
  407. package/dist/core/human/action-binding.js +1 -40
  408. package/dist/core/human/answer-text.js +5 -100
  409. package/dist/core/human/answer.js +1 -119
  410. package/dist/core/human/claim.js +3 -67
  411. package/dist/core/human/completion.js +1 -27
  412. package/dist/core/human/component-docs.js +78 -272
  413. package/dist/core/human/convention.js +2 -82
  414. package/dist/core/human/feedback-companion.js +1 -106
  415. package/dist/core/human/feedback.js +1 -88
  416. package/dist/core/human/page-authoring.js +1 -19
  417. package/dist/core/human/page-catalog.js +1 -172
  418. package/dist/core/human/page-errors.js +1 -7
  419. package/dist/core/human/page-eval.js +1 -125
  420. package/dist/core/human/page-html-markdown.js +8 -260
  421. package/dist/core/human/page-markdown.js +17 -295
  422. package/dist/core/human/page-schema.js +1 -373
  423. package/dist/core/human/page-synth.js +8 -27
  424. package/dist/core/human/page.js +1 -198
  425. package/dist/core/human/requests.js +15 -466
  426. package/dist/core/human/review-schema.js +1 -34
  427. package/dist/core/human/root.js +1 -11
  428. package/dist/core/human/scan.js +1 -69
  429. package/dist/core/human/summary.js +1 -5
  430. package/dist/core/human/tickets.js +1 -171
  431. package/dist/core/human/types.js +0 -1
  432. package/dist/core/human/visible-paths.js +1 -77
  433. package/dist/core/human-actions.js +1 -101
  434. package/dist/core/inspector/chrome.js +1 -14
  435. package/dist/core/inspector/contract.js +0 -1
  436. package/dist/core/inspector/core.js +2 -295
  437. package/dist/core/inspector/host.js +4 -538
  438. package/dist/core/inspector/model.js +2 -226
  439. package/dist/core/inspector/text.js +6 -45
  440. package/dist/core/inspector/transport.js +1 -36
  441. package/dist/core/inspector/tui.js +2 -295
  442. package/dist/core/installed-plugins.js +1 -78
  443. package/dist/core/io.js +7 -356
  444. package/dist/core/keybindings/attach-control.js +1 -42
  445. package/dist/core/keybindings/background-bash.js +1 -33
  446. package/dist/core/keybindings/catalog.js +1 -256
  447. package/dist/core/keybindings/inbox.js +1 -25
  448. package/dist/core/keybindings/index.js +1 -7
  449. package/dist/core/keybindings/match.js +1 -127
  450. package/dist/core/keybindings/persistence.js +1 -49
  451. package/dist/core/keybindings/resolve.js +1 -348
  452. package/dist/core/keybindings/types.js +0 -1
  453. package/dist/core/locked-file.js +1 -118
  454. package/dist/core/log.js +3 -27
  455. package/dist/core/manifest-recovery.js +1 -72
  456. package/dist/core/manifest-stale.js +1 -39
  457. package/dist/core/manifest.js +1 -20
  458. package/dist/core/memory/doc-link-grammar.js +2 -109
  459. package/dist/core/memory/extensions.js +1 -221
  460. package/dist/core/memory/history.js +6 -268
  461. package/dist/core/memory/identity.js +1 -181
  462. package/dist/core/memory/inline-ref-grammar.js +1 -98
  463. package/dist/core/memory/inline-ref-guidance.js +2 -35
  464. package/dist/core/memory/inline-ref-inventory.js +1 -59
  465. package/dist/core/memory/lint.js +2 -671
  466. package/dist/core/memory/project-namespace.js +2 -85
  467. package/dist/core/memory/repository-association.js +1 -129
  468. package/dist/core/memory/tree.js +1 -93
  469. package/dist/core/memory-resolver.js +2 -611
  470. package/dist/core/model-config.js +1 -107
  471. package/dist/core/model-routes.js +1 -201
  472. package/dist/core/nested-stores.js +2 -166
  473. package/dist/core/output.js +7 -99
  474. package/dist/core/pagination.js +1 -88
  475. package/dist/core/plugin-swap-lock.js +1 -31
  476. package/dist/core/pool-credential-store.js +1 -116
  477. package/dist/core/predicate.js +1 -191
  478. package/dist/core/preview-registry.js +2 -411
  479. package/dist/core/preview-result-path.js +1 -26
  480. package/dist/core/profiles/default-binding.js +1 -24
  481. package/dist/core/profiles/deletion-reservation.js +1 -42
  482. package/dist/core/profiles/env-store.js +2 -162
  483. package/dist/core/profiles/fuzzy-match.js +1 -92
  484. package/dist/core/profiles/manifest.js +1 -574
  485. package/dist/core/profiles/select.js +35 -741
  486. package/dist/core/profiles/state-block.js +3 -17
  487. package/dist/core/provider-error-recognition.js +1 -74
  488. package/dist/core/provider-failure.js +1 -86
  489. package/dist/core/provider-management.js +1 -22
  490. package/dist/core/remote-canvas-target.js +1 -30
  491. package/dist/core/render.js +18 -138
  492. package/dist/core/resolver.js +1 -111
  493. package/dist/core/review/birth.js +1 -52
  494. package/dist/core/review/comments.js +5 -279
  495. package/dist/core/review/companion.js +1 -215
  496. package/dist/core/review/document.js +2 -138
  497. package/dist/core/review/project.js +1 -36
  498. package/dist/core/review/realize.js +1 -71
  499. package/dist/core/review/remap.js +4 -141
  500. package/dist/core/review/signal.js +1 -12
  501. package/dist/core/review/stage.js +1 -184
  502. package/dist/core/review/store.js +1 -168
  503. package/dist/core/review/types.js +1 -23
  504. package/dist/core/runtime/advertised-command-invocation.js +1 -233
  505. package/dist/core/runtime/auth-reload.js +1 -67
  506. package/dist/core/runtime/banner.js +1 -51
  507. package/dist/core/runtime/bearings-render.js +18 -250
  508. package/dist/core/runtime/bearings.js +7 -194
  509. package/dist/core/runtime/bin-contributions.js +2 -186
  510. package/dist/core/runtime/boot-root.js +1 -107
  511. package/dist/core/runtime/branded-host.js +2 -264
  512. package/dist/core/runtime/broker/auth-reload.js +1 -157
  513. package/dist/core/runtime/broker/client-registry.js +1 -179
  514. package/dist/core/runtime/broker/daemon-ops.js +1 -88
  515. package/dist/core/runtime/broker/engine-drive.js +1 -354
  516. package/dist/core/runtime/broker/engine-routing.js +1 -211
  517. package/dist/core/runtime/broker/event-projection.js +1 -193
  518. package/dist/core/runtime/broker/extension-abort.js +1 -36
  519. package/dist/core/runtime/broker/fault-retry.js +1 -588
  520. package/dist/core/runtime/broker/frame-client.js +1 -132
  521. package/dist/core/runtime/broker/frame-dispatch.js +1 -183
  522. package/dist/core/runtime/broker/frame-engine-control.js +1 -231
  523. package/dist/core/runtime/broker/frame-memory-refs.js +1 -41
  524. package/dist/core/runtime/broker/frame-model-query.js +1 -69
  525. package/dist/core/runtime/broker/frame-read.js +1 -116
  526. package/dist/core/runtime/broker/frame-replies.js +1 -64
  527. package/dist/core/runtime/broker/frame-session.js +4 -203
  528. package/dist/core/runtime/broker/held-deferred-inbox.js +1 -13
  529. package/dist/core/runtime/broker/inbox.js +13 -163
  530. package/dist/core/runtime/broker/node-named.js +1 -27
  531. package/dist/core/runtime/broker/read-ops.js +1 -171
  532. package/dist/core/runtime/broker/rebind.js +1 -318
  533. package/dist/core/runtime/broker/tool-groups.js +1 -246
  534. package/dist/core/runtime/broker/turn-admission.js +1 -31
  535. package/dist/core/runtime/broker/turn-ignition.js +1 -84
  536. package/dist/core/runtime/broker-cli.js +3 -81
  537. package/dist/core/runtime/broker-extension-render.js +5 -135
  538. package/dist/core/runtime/broker-inventory.js +1 -116
  539. package/dist/core/runtime/broker-persona-guidance.js +4 -154
  540. package/dist/core/runtime/broker-protocol.js +3 -152
  541. package/dist/core/runtime/broker-request.js +1 -85
  542. package/dist/core/runtime/broker-sdk.js +1 -129
  543. package/dist/core/runtime/broker.js +1 -1214
  544. package/dist/core/runtime/canvas-extensions.js +1 -96
  545. package/dist/core/runtime/chat-inventory-rows.js +1 -105
  546. package/dist/core/runtime/close.js +1 -265
  547. package/dist/core/runtime/command-expansion.js +9 -104
  548. package/dist/core/runtime/command-surface.js +1 -117
  549. package/dist/core/runtime/connectivity.js +1 -73
  550. package/dist/core/runtime/deliver-live.js +1 -88
  551. package/dist/core/runtime/fault-recovery.js +1 -83
  552. package/dist/core/runtime/fault.js +1 -17
  553. package/dist/core/runtime/fleet.js +1 -58
  554. package/dist/core/runtime/front-door-env.js +1 -16
  555. package/dist/core/runtime/front-door.js +7 -183
  556. package/dist/core/runtime/headless-pi.js +1 -161
  557. package/dist/core/runtime/host.js +1 -457
  558. package/dist/core/runtime/interactive-deliver.js +1 -51
  559. package/dist/core/runtime/invocation.js +0 -10
  560. package/dist/core/runtime/kickoff.js +30 -327
  561. package/dist/core/runtime/launch-config-worker.js +1 -12
  562. package/dist/core/runtime/launch-prompt.js +4 -13
  563. package/dist/core/runtime/launch-target.js +1 -55
  564. package/dist/core/runtime/launch.js +1 -483
  565. package/dist/core/runtime/lifecycle.js +2 -213
  566. package/dist/core/runtime/managed-provider-cooling.js +1 -62
  567. package/dist/core/runtime/memory.js +1 -17
  568. package/dist/core/runtime/model-registry.js +1 -13
  569. package/dist/core/runtime/model-selection.js +1 -135
  570. package/dist/core/runtime/model-swap.js +1 -86
  571. package/dist/core/runtime/naming.js +14 -298
  572. package/dist/core/runtime/nerd-font.js +2 -127
  573. package/dist/core/runtime/node-read.js +2 -386
  574. package/dist/core/runtime/nodes.js +1 -331
  575. package/dist/core/runtime/outcome-document.js +1 -97
  576. package/dist/core/runtime/package-health.js +4 -99
  577. package/dist/core/runtime/persona.js +2 -55
  578. package/dist/core/runtime/pi-cli.js +1 -65
  579. package/dist/core/runtime/pi-vendored.js +1 -66
  580. package/dist/core/runtime/placement-tmux.js +1 -81
  581. package/dist/core/runtime/placement.js +1 -386
  582. package/dist/core/runtime/promote.js +1 -174
  583. package/dist/core/runtime/prospective-inventory-cli.js +3 -61
  584. package/dist/core/runtime/prospective-inventory.js +2 -88
  585. package/dist/core/runtime/recap.js +27 -103
  586. package/dist/core/runtime/recycle.js +1 -190
  587. package/dist/core/runtime/reopen.js +1 -138
  588. package/dist/core/runtime/reset.js +1 -245
  589. package/dist/core/runtime/resume-root.js +10 -290
  590. package/dist/core/runtime/revive-all.js +1 -107
  591. package/dist/core/runtime/revive.js +4 -544
  592. package/dist/core/runtime/roadmap.js +4 -38
  593. package/dist/core/runtime/session-branch.js +1 -46
  594. package/dist/core/runtime/session-cycles.js +1 -110
  595. package/dist/core/runtime/session-list-cache.js +1 -406
  596. package/dist/core/runtime/session-visibility.js +1 -99
  597. package/dist/core/runtime/shell-expansion.js +9 -100
  598. package/dist/core/runtime/situational-context.js +2 -67
  599. package/dist/core/runtime/situational-live.js +1 -41
  600. package/dist/core/runtime/spawn-env.js +1 -255
  601. package/dist/core/runtime/spawn.js +3 -577
  602. package/dist/core/runtime/stamp/channel.js +1 -76
  603. package/dist/core/runtime/stamp/protocol.js +1 -113
  604. package/dist/core/runtime/stop-guard.js +7 -116
  605. package/dist/core/runtime/stop-signals.js +1 -46
  606. package/dist/core/runtime/stream-watchdog.js +1 -134
  607. package/dist/core/runtime/structured-output.js +4 -156
  608. package/dist/core/runtime/surface-bg.js +1 -85
  609. package/dist/core/runtime/tmux-bindings.js +4 -730
  610. package/dist/core/runtime/tmux-chrome.js +1 -5
  611. package/dist/core/runtime/tmux-driver.js +7 -637
  612. package/dist/core/runtime/tool-group-summary.js +6 -85
  613. package/dist/core/runtime/turn-visibility.js +1 -31
  614. package/dist/core/runtime/view-socket.js +1 -83
  615. package/dist/core/runtime/warm-pool.d.ts +3 -2
  616. package/dist/core/runtime/warm-pool.js +1 -385
  617. package/dist/core/scope.js +1 -254
  618. package/dist/core/scoped-state/db.js +1 -135
  619. package/dist/core/scoped-state/migrate.js +3 -181
  620. package/dist/core/scoped-state/paths.js +1 -27
  621. package/dist/core/scoped-state/profiles.js +1 -62
  622. package/dist/core/scoped-state/providers.js +1 -8
  623. package/dist/core/scoped-state/schema.js +3 -16
  624. package/dist/core/scoped-state/settings.js +1 -82
  625. package/dist/core/secrets.js +2 -55
  626. package/dist/core/self-update.js +1 -71
  627. package/dist/core/session-model/session-state.js +1 -180
  628. package/dist/core/shell-segments.js +4 -169
  629. package/dist/core/spawn.js +1 -26
  630. package/dist/core/stdout-errors.js +1 -14
  631. package/dist/core/subscription-state.js +3 -193
  632. package/dist/core/substrate/frontmatter-validation.js +1 -105
  633. package/dist/core/substrate/gate-explain.js +1 -424
  634. package/dist/core/substrate/gate.js +1 -26
  635. package/dist/core/substrate/index.js +1 -30
  636. package/dist/core/substrate/injected-store.js +1 -249
  637. package/dist/core/substrate/listings.js +1 -115
  638. package/dist/core/substrate/on-read-node.js +1 -36
  639. package/dist/core/substrate/on-read.js +9 -315
  640. package/dist/core/substrate/plan.js +1 -266
  641. package/dist/core/substrate/render-node.js +1 -30
  642. package/dist/core/substrate/render.js +65 -689
  643. package/dist/core/substrate/schema.js +1 -186
  644. package/dist/core/substrate/session-cache.js +1 -83
  645. package/dist/core/substrate/subject-fields.js +1 -35
  646. package/dist/core/substrate/subject.js +1 -47
  647. package/dist/core/substrate/surface-match.js +1 -242
  648. package/dist/core/termrender/code-doc.js +5 -92
  649. package/dist/core/termrender/display.js +2 -56
  650. package/dist/core/termrender/termrender.js +14 -719
  651. package/dist/core/termrender/version.js +1 -1
  652. package/dist/core/timing.js +2 -94
  653. package/dist/core/tui/draw.js +2 -378
  654. package/dist/core/tui/fuzzy.js +1 -38
  655. package/dist/core/tui/markdown.js +3 -407
  656. package/dist/core/tui/page-host.js +1 -74
  657. package/dist/core/tui/panel.js +1 -137
  658. package/dist/core/tui/terminal.js +2 -100
  659. package/dist/core/user-settings.js +1 -454
  660. package/dist/core/wake.js +1 -296
  661. package/dist/core/worktree-close.js +6 -228
  662. package/dist/core/worktree-containment.js +3 -48
  663. package/dist/core/worktree-landing.js +4 -56
  664. package/dist/core/worktree-mutation-async.js +10 -280
  665. package/dist/core/worktree-quarantine.js +1 -54
  666. package/dist/core/worktree-sweep.js +6 -453
  667. package/dist/core/worktree.js +18 -899
  668. package/dist/daemon/api/bridge.js +8 -418
  669. package/dist/daemon/api/handlers/attach.js +1 -65
  670. package/dist/daemon/api/handlers/bash-jobs.js +2 -91
  671. package/dist/daemon/api/handlers/broker-ops.js +1 -447
  672. package/dist/daemon/api/handlers/broker-recovery.js +1 -251
  673. package/dist/daemon/api/handlers/canvas.js +6 -490
  674. package/dist/daemon/api/handlers/chat-inventory.js +1 -25
  675. package/dist/daemon/api/handlers/crons.js +1 -373
  676. package/dist/daemon/api/handlers/daemon.js +1 -76
  677. package/dist/daemon/api/handlers/feedback-comments.js +3 -199
  678. package/dist/daemon/api/handlers/files.js +1 -63
  679. package/dist/daemon/api/handlers/focus.js +1 -92
  680. package/dist/daemon/api/handlers/health.js +1 -76
  681. package/dist/daemon/api/handlers/human-requests.js +1 -379
  682. package/dist/daemon/api/handlers/human.js +1 -3
  683. package/dist/daemon/api/handlers/inbox-page.js +1 -89
  684. package/dist/daemon/api/handlers/inbox.js +1 -301
  685. package/dist/daemon/api/handlers/memory.js +1 -50
  686. package/dist/daemon/api/handlers/messages.js +2 -506
  687. package/dist/daemon/api/handlers/model-config.js +1 -44
  688. package/dist/daemon/api/handlers/modelauth.js +1 -165
  689. package/dist/daemon/api/handlers/node-outcomes.js +1 -181
  690. package/dist/daemon/api/handlers/nodes.js +1 -943
  691. package/dist/daemon/api/handlers/profiles.js +1 -140
  692. package/dist/daemon/api/handlers/prospective-chat-inventory.js +1 -59
  693. package/dist/daemon/api/handlers/reports.js +16 -332
  694. package/dist/daemon/api/handlers/review-comments.js +1 -465
  695. package/dist/daemon/api/handlers/reviews.js +1 -200
  696. package/dist/daemon/api/handlers/subscriptions.js +1 -53
  697. package/dist/daemon/api/handlers/validate.js +1 -58
  698. package/dist/daemon/api/handlers/worktree.js +1 -39
  699. package/dist/daemon/api/map.js +2 -735
  700. package/dist/daemon/api/router.js +1 -190
  701. package/dist/daemon/api/server.js +11 -408
  702. package/dist/daemon/boot-migrations.js +1 -31
  703. package/dist/daemon/companion-retire.js +1 -34
  704. package/dist/daemon/control.js +1 -22
  705. package/dist/daemon/cron/armed-context.js +1 -100
  706. package/dist/daemon/cron/capture.js +2 -45
  707. package/dist/daemon/cron/disposition.js +1 -55
  708. package/dist/daemon/cron/escalation.js +3 -124
  709. package/dist/daemon/cron/held.js +1 -20
  710. package/dist/daemon/cron/lease-recovery.js +1 -119
  711. package/dist/daemon/cron/live-runs.js +1 -23
  712. package/dist/daemon/cron/passes.js +1 -58
  713. package/dist/daemon/cron/settle.js +1 -61
  714. package/dist/daemon/cron/sinks.js +2 -59
  715. package/dist/daemon/cron-run.js +1 -405
  716. package/dist/daemon/crtrd-cli.js +1 -23
  717. package/dist/daemon/crtrd.js +8 -854
  718. package/dist/daemon/delivery/run-delivery.js +1 -164
  719. package/dist/daemon/fleet.js +17 -475
  720. package/dist/daemon/human/finish.js +10 -179
  721. package/dist/daemon/human/settle.js +1 -89
  722. package/dist/daemon/human/sweep.js +1 -66
  723. package/dist/daemon/manage.js +2 -595
  724. package/dist/daemon/messaging/node-message.js +1 -99
  725. package/dist/daemon/park-activity.js +1 -30
  726. package/dist/daemon/park-pending.js +1 -52
  727. package/dist/daemon/pidfile.js +1 -37
  728. package/dist/daemon/profile-delete.js +1 -306
  729. package/dist/daemon/reconcilers/bash-deadline.js +1 -80
  730. package/dist/daemon/reconcilers/broker-supervision.js +4 -761
  731. package/dist/daemon/reconcilers/controller-death.js +1 -14
  732. package/dist/daemon/reconcilers/cron-lane.js +1 -29
  733. package/dist/daemon/reconcilers/delivery-lane.js +1 -130
  734. package/dist/daemon/reconcilers/live-obligation.js +1 -87
  735. package/dist/daemon/reconcilers/managed-worktree-sweep.js +1 -202
  736. package/dist/daemon/reconcilers/node-deadline.js +1 -82
  737. package/dist/daemon/reconcilers/node-lifecycle/freeze-lane.js +1 -172
  738. package/dist/daemon/reconcilers/node-lifecycle/respawn-policy.js +1 -59
  739. package/dist/daemon/reconcilers/node-lifecycle/terminating.js +1 -12
  740. package/dist/daemon/reconcilers/node-lifecycle/tick.js +1 -146
  741. package/dist/daemon/reconcilers/node-lifecycle/wants-execution.js +1 -11
  742. package/dist/daemon/reconcilers/pending-review-submit.js +1 -36
  743. package/dist/daemon/reconcilers/storage-maintenance.js +1 -207
  744. package/dist/daemon/review/comment-notify.js +2 -109
  745. package/dist/daemon/review/companion.js +1 -29
  746. package/dist/daemon/review/deliver.js +3 -8
  747. package/dist/daemon/review/finish.js +1 -122
  748. package/dist/daemon/review/sweep.js +1 -18
  749. package/dist/daemon/startup-policy.js +1 -1
  750. package/dist/daemon/supervise-cadence.js +1 -6
  751. package/dist/hook-authoring.js +5 -447
  752. package/dist/hook-process.js +1 -34
  753. package/dist/index.js +1 -52
  754. package/dist/migrations/001-surfaces-frontmatter.js +1 -161
  755. package/dist/migrations/002-profile-project-memory.js +1 -72
  756. package/dist/migrations/003-repository-root-memory-identity/front-door.js +11 -231
  757. package/dist/migrations/003-repository-root-memory-identity/index.js +5 -513
  758. package/dist/migrations/003-repository-root-memory-identity/references.js +5 -469
  759. package/dist/migrations/003-repository-root-memory-identity/repository-facts.js +3 -349
  760. package/dist/migrations/activation.js +2 -89
  761. package/dist/migrations/convergent.js +2 -82
  762. package/dist/migrations/corpus.js +3 -483
  763. package/dist/migrations/frontmatter-splice.js +8 -176
  764. package/dist/migrations/profile-manifests.js +2 -70
  765. package/dist/migrations/registry.js +1 -42
  766. package/dist/migrations/runner.js +1 -85
  767. package/dist/migrations/types.js +0 -24
  768. package/dist/pi-extensions/broker-local.js +2 -106
  769. package/dist/pi-extensions/canvas-bash-valve.js +7 -461
  770. package/dist/pi-extensions/canvas-context-intro.js +2 -113
  771. package/dist/pi-extensions/canvas-doc-substrate.js +9 -178
  772. package/dist/pi-extensions/canvas-goal-capture.js +1 -83
  773. package/dist/pi-extensions/canvas-inbox-watcher.js +1 -1010
  774. package/dist/pi-extensions/canvas-passive-context.js +14 -203
  775. package/dist/pi-extensions/canvas-preview-result.js +2 -72
  776. package/dist/pi-extensions/canvas-prompt-scrub.js +2 -54
  777. package/dist/pi-extensions/canvas-recap.js +11 -405
  778. package/dist/pi-extensions/canvas-review-boundary.js +3 -63
  779. package/dist/pi-extensions/canvas-stamp.js +2 -77
  780. package/dist/pi-extensions/canvas-stophook.js +1 -643
  781. package/dist/pi-extensions/canvas-structured-output.js +13 -35
  782. package/dist/pi-extensions/canvas-tool-guide.js +9 -78
  783. package/dist/pi-extensions/envelope-merge.js +8 -29
  784. package/dist/prompts/review.js +20 -42
  785. package/dist/shared/birth-announcement.js +1 -25
  786. package/dist/shared/crtr-version.js +1 -18
  787. package/dist/shared/env.js +1 -214
  788. package/dist/shared/generated-context.js +11 -226
  789. package/dist/shared/predicates.js +1 -4
  790. package/dist/shared/shell-quote.js +1 -5
  791. package/dist/shared/tool-groups.js +1 -64
  792. package/dist/shared/working-activity.js +1 -27
  793. package/dist/suppress-experimental-warnings.js +1 -15
  794. package/dist/types.js +1 -185
  795. package/docs/public-api.md +10 -9
  796. package/package.json +6 -5
  797. package/runtime.lock.json +5 -5
  798. package/dist/api/__tests__/integration/client.test.d.ts +0 -1
  799. package/dist/api/__tests__/integration/client.test.js +0 -163
  800. package/dist/builtin-pi-packages/pi-crtr-extensions/__tests__/insights-active-init.test.ts +0 -98
  801. package/dist/builtin-pi-packages/pi-crtr-extensions/extensions/__tests__/crtr-commands.test.ts +0 -93
  802. package/dist/builtin-pi-packages/pi-crtr-extensions/extensions/__tests__/integration/provider-rotation.test.ts +0 -2530
  803. package/dist/clients/__tests__/helpers/human-daemon.d.ts +0 -11
  804. package/dist/clients/__tests__/helpers/human-daemon.js +0 -60
  805. package/dist/clients/attach/__tests__/attach-remote-readonly.test.d.ts +0 -1
  806. package/dist/clients/attach/__tests__/attach-remote-readonly.test.js +0 -97
  807. package/dist/clients/attach/__tests__/bash-call-width.test.d.ts +0 -1
  808. package/dist/clients/attach/__tests__/bash-call-width.test.js +0 -38
  809. package/dist/clients/attach/__tests__/chat-view-snapshot-ordering.test.d.ts +0 -1
  810. package/dist/clients/attach/__tests__/chat-view-snapshot-ordering.test.js +0 -175
  811. package/dist/clients/attach/__tests__/completion-frecency.test.d.ts +0 -1
  812. package/dist/clients/attach/__tests__/completion-frecency.test.js +0 -35
  813. package/dist/clients/attach/__tests__/context-message.test.d.ts +0 -1
  814. package/dist/clients/attach/__tests__/context-message.test.js +0 -130
  815. package/dist/clients/attach/__tests__/crtr-output.test.d.ts +0 -1
  816. package/dist/clients/attach/__tests__/crtr-output.test.js +0 -68
  817. package/dist/clients/attach/__tests__/diagram.test.d.ts +0 -1
  818. package/dist/clients/attach/__tests__/diagram.test.js +0 -42
  819. package/dist/clients/attach/__tests__/edit-diff.test.d.ts +0 -1
  820. package/dist/clients/attach/__tests__/edit-diff.test.js +0 -31
  821. package/dist/clients/attach/__tests__/frame-selection.test.d.ts +0 -1
  822. package/dist/clients/attach/__tests__/frame-selection.test.js +0 -84
  823. package/dist/clients/attach/__tests__/group-activity.test.d.ts +0 -1
  824. package/dist/clients/attach/__tests__/group-activity.test.js +0 -165
  825. package/dist/clients/attach/__tests__/oauth-dialog-lifecycle.test.d.ts +0 -1
  826. package/dist/clients/attach/__tests__/oauth-dialog-lifecycle.test.js +0 -83
  827. package/dist/clients/attach/__tests__/pane-tag-successor.test.d.ts +0 -1
  828. package/dist/clients/attach/__tests__/pane-tag-successor.test.js +0 -56
  829. package/dist/clients/attach/__tests__/profile-files.test.d.ts +0 -1
  830. package/dist/clients/attach/__tests__/profile-files.test.js +0 -21
  831. package/dist/clients/attach/__tests__/prompt-preview.test.d.ts +0 -1
  832. package/dist/clients/attach/__tests__/prompt-preview.test.js +0 -21
  833. package/dist/clients/attach/__tests__/ref-autocomplete.test.d.ts +0 -1
  834. package/dist/clients/attach/__tests__/ref-autocomplete.test.js +0 -64
  835. package/dist/clients/attach/__tests__/titled-editor-paste.test.d.ts +0 -1
  836. package/dist/clients/attach/__tests__/titled-editor-paste.test.js +0 -114
  837. package/dist/clients/attach/__tests__/titled-editor-preview.test.d.ts +0 -1
  838. package/dist/clients/attach/__tests__/titled-editor-preview.test.js +0 -83
  839. package/dist/clients/inbox/__tests__/integration/inbox-controller.test.d.ts +0 -1
  840. package/dist/clients/inbox/__tests__/integration/inbox-controller.test.js +0 -81
  841. package/dist/clients/inbox/__tests__/integration/mount-panel.test.d.ts +0 -1
  842. package/dist/clients/inbox/__tests__/integration/mount-panel.test.js +0 -135
  843. package/dist/clients/inbox/__tests__/integration/stale-row-activation.test.d.ts +0 -1
  844. package/dist/clients/inbox/__tests__/integration/stale-row-activation.test.js +0 -66
  845. package/dist/clients/inbox/review/__tests__/editor-roundtrip.test.d.ts +0 -1
  846. package/dist/clients/inbox/review/__tests__/editor-roundtrip.test.js +0 -35
  847. package/dist/clients/inbox/review/__tests__/review-core.test.d.ts +0 -1
  848. package/dist/clients/inbox/review/__tests__/review-core.test.js +0 -52
  849. package/dist/clients/inbox/review/__tests__/teardown-notice.test.d.ts +0 -1
  850. package/dist/clients/inbox/review/__tests__/teardown-notice.test.js +0 -100
  851. package/dist/commands/__tests__/api-client-cold-start-diagnostic.test.d.ts +0 -1
  852. package/dist/commands/__tests__/api-client-cold-start-diagnostic.test.js +0 -69
  853. package/dist/commands/__tests__/human.test.d.ts +0 -1
  854. package/dist/commands/__tests__/human.test.js +0 -172
  855. package/dist/commands/__tests__/integration/dashboard-snapshot.test.d.ts +0 -1
  856. package/dist/commands/__tests__/integration/dashboard-snapshot.test.js +0 -237
  857. package/dist/commands/__tests__/integration/migrate.test.d.ts +0 -1
  858. package/dist/commands/__tests__/integration/migrate.test.js +0 -1330
  859. package/dist/commands/__tests__/node-message.test.d.ts +0 -1
  860. package/dist/commands/__tests__/node-message.test.js +0 -112
  861. package/dist/commands/__tests__/node-new.test.d.ts +0 -1
  862. package/dist/commands/__tests__/node-new.test.js +0 -58
  863. package/dist/commands/__tests__/revive-now-gate.test.d.ts +0 -1
  864. package/dist/commands/__tests__/revive-now-gate.test.js +0 -62
  865. package/dist/commands/__tests__/seam/daemon-status.test.d.ts +0 -1
  866. package/dist/commands/__tests__/seam/daemon-status.test.js +0 -29
  867. package/dist/commands/__tests__/surface-reload-target.test.d.ts +0 -1
  868. package/dist/commands/__tests__/surface-reload-target.test.js +0 -21
  869. package/dist/commands/memory/__tests__/command-selector-and-mutation-guards.test.d.ts +0 -1
  870. package/dist/commands/memory/__tests__/command-selector-and-mutation-guards.test.js +0 -379
  871. package/dist/commands/memory/__tests__/memory-list-and-lint-ignore.test.d.ts +0 -1
  872. package/dist/commands/memory/__tests__/memory-list-and-lint-ignore.test.js +0 -124
  873. package/dist/commands/memory/__tests__/repository-root-lint.test.d.ts +0 -1
  874. package/dist/commands/memory/__tests__/repository-root-lint.test.js +0 -148
  875. package/dist/commands/sys/__tests__/config-model-ladders.test.d.ts +0 -1
  876. package/dist/commands/sys/__tests__/config-model-ladders.test.js +0 -114
  877. package/dist/commands/sys/__tests__/setup-core.test.d.ts +0 -1
  878. package/dist/commands/sys/__tests__/setup-core.test.js +0 -45
  879. package/dist/commands/sys/__tests__/sync-project-guidance.test.d.ts +0 -1
  880. package/dist/commands/sys/__tests__/sync-project-guidance.test.js +0 -244
  881. package/dist/core/__tests__/bash-guard.test.d.ts +0 -1
  882. package/dist/core/__tests__/bash-guard.test.js +0 -190
  883. package/dist/core/__tests__/boot-fault-attempt.test.d.ts +0 -1
  884. package/dist/core/__tests__/boot-fault-attempt.test.js +0 -105
  885. package/dist/core/__tests__/boot.test.d.ts +0 -1
  886. package/dist/core/__tests__/boot.test.js +0 -274
  887. package/dist/core/__tests__/branded-host-concurrency.test.d.ts +0 -1
  888. package/dist/core/__tests__/branded-host-concurrency.test.js +0 -72
  889. package/dist/core/__tests__/broker-extension-canvas-db-boundary.test.d.ts +0 -1
  890. package/dist/core/__tests__/broker-extension-canvas-db-boundary.test.js +0 -75
  891. package/dist/core/__tests__/broker-launch-candidates.test.d.ts +0 -1
  892. package/dist/core/__tests__/broker-launch-candidates.test.js +0 -311
  893. package/dist/core/__tests__/broker-preflight.test.d.ts +0 -1
  894. package/dist/core/__tests__/broker-preflight.test.js +0 -95
  895. package/dist/core/__tests__/broker-stream-watchdog-floor.test.d.ts +0 -1
  896. package/dist/core/__tests__/broker-stream-watchdog-floor.test.js +0 -82
  897. package/dist/core/__tests__/broker-turn-admission.test.d.ts +0 -1
  898. package/dist/core/__tests__/broker-turn-admission.test.js +0 -44
  899. package/dist/core/__tests__/canvas-db-boundary.test.d.ts +0 -1
  900. package/dist/core/__tests__/canvas-db-boundary.test.js +0 -46
  901. package/dist/core/__tests__/canvas-inbox-watcher-hold.test.d.ts +0 -1
  902. package/dist/core/__tests__/canvas-inbox-watcher-hold.test.js +0 -710
  903. package/dist/core/__tests__/canvas-inbox-watcher-naming.test.d.ts +0 -1
  904. package/dist/core/__tests__/canvas-inbox-watcher-naming.test.js +0 -310
  905. package/dist/core/__tests__/canvas-inbox-watcher.test.d.ts +0 -1
  906. package/dist/core/__tests__/canvas-inbox-watcher.test.js +0 -397
  907. package/dist/core/__tests__/canvas.test.d.ts +0 -1
  908. package/dist/core/__tests__/canvas.test.js +0 -138
  909. package/dist/core/__tests__/child-death-wake.test.d.ts +0 -1
  910. package/dist/core/__tests__/child-death-wake.test.js +0 -153
  911. package/dist/core/__tests__/cli-help-contract.test.d.ts +0 -1
  912. package/dist/core/__tests__/cli-help-contract.test.js +0 -152
  913. package/dist/core/__tests__/close.test.d.ts +0 -1
  914. package/dist/core/__tests__/close.test.js +0 -284
  915. package/dist/core/__tests__/collectible.test.d.ts +0 -1
  916. package/dist/core/__tests__/collectible.test.js +0 -89
  917. package/dist/core/__tests__/config-change-delta.test.d.ts +0 -1
  918. package/dist/core/__tests__/config-change-delta.test.js +0 -108
  919. package/dist/core/__tests__/context-intro.test.d.ts +0 -1
  920. package/dist/core/__tests__/context-intro.test.js +0 -123
  921. package/dist/core/__tests__/cron-armed-context-failure.test.d.ts +0 -1
  922. package/dist/core/__tests__/cron-armed-context-failure.test.js +0 -150
  923. package/dist/core/__tests__/cron-held-settlement.test.d.ts +0 -1
  924. package/dist/core/__tests__/cron-held-settlement.test.js +0 -240
  925. package/dist/core/__tests__/cron-node-sink-parked-root.test.d.ts +0 -1
  926. package/dist/core/__tests__/cron-node-sink-parked-root.test.js +0 -166
  927. package/dist/core/__tests__/cron-self-cancel-delivery.test.d.ts +0 -1
  928. package/dist/core/__tests__/cron-self-cancel-delivery.test.js +0 -84
  929. package/dist/core/__tests__/cron-timeout-descendants.test.d.ts +0 -1
  930. package/dist/core/__tests__/cron-timeout-descendants.test.js +0 -114
  931. package/dist/core/__tests__/daemon-boot.test.d.ts +0 -1
  932. package/dist/core/__tests__/daemon-boot.test.js +0 -422
  933. package/dist/core/__tests__/daemon-wedge.test.d.ts +0 -1
  934. package/dist/core/__tests__/daemon-wedge.test.js +0 -106
  935. package/dist/core/__tests__/dead-node-policy-table.test.d.ts +0 -1
  936. package/dist/core/__tests__/dead-node-policy-table.test.js +0 -77
  937. package/dist/core/__tests__/events-contract.test.d.ts +0 -1
  938. package/dist/core/__tests__/events-contract.test.js +0 -76
  939. package/dist/core/__tests__/extension-abort.test.d.ts +0 -1
  940. package/dist/core/__tests__/extension-abort.test.js +0 -21
  941. package/dist/core/__tests__/fault-classifier.test.d.ts +0 -1
  942. package/dist/core/__tests__/fault-classifier.test.js +0 -138
  943. package/dist/core/__tests__/fixtures/api-server-host.d.ts +0 -1
  944. package/dist/core/__tests__/fixtures/api-server-host.js +0 -47
  945. package/dist/core/__tests__/fixtures/c3-custom-provider-ext.d.ts +0 -2
  946. package/dist/core/__tests__/fixtures/c3-custom-provider-ext.js +0 -34
  947. package/dist/core/__tests__/fixtures/c5-command-boundary-ext.d.ts +0 -2
  948. package/dist/core/__tests__/fixtures/c5-command-boundary-ext.js +0 -32
  949. package/dist/core/__tests__/fixtures/fake-engine.d.ts +0 -347
  950. package/dist/core/__tests__/fixtures/fake-engine.js +0 -1509
  951. package/dist/core/__tests__/fixtures/fake-pi-host.d.ts +0 -2
  952. package/dist/core/__tests__/fixtures/fake-pi-host.js +0 -311
  953. package/dist/core/__tests__/fixtures/memory-slash-live-probe.d.ts +0 -1
  954. package/dist/core/__tests__/fixtures/memory-slash-live-probe.js +0 -75
  955. package/dist/core/__tests__/fixtures/metadata-migration-race.d.ts +0 -1
  956. package/dist/core/__tests__/fixtures/metadata-migration-race.js +0 -49
  957. package/dist/core/__tests__/focuses.test.d.ts +0 -1
  958. package/dist/core/__tests__/focuses.test.js +0 -113
  959. package/dist/core/__tests__/fs-utils.test.d.ts +0 -1
  960. package/dist/core/__tests__/fs-utils.test.js +0 -50
  961. package/dist/core/__tests__/helpers/broker-clients.d.ts +0 -43
  962. package/dist/core/__tests__/helpers/broker-clients.js +0 -174
  963. package/dist/core/__tests__/helpers/fleet.d.ts +0 -12
  964. package/dist/core/__tests__/helpers/fleet.js +0 -50
  965. package/dist/core/__tests__/helpers/harness.d.ts +0 -124
  966. package/dist/core/__tests__/helpers/harness.js +0 -806
  967. package/dist/core/__tests__/helpers/viewer-panes.d.ts +0 -12
  968. package/dist/core/__tests__/helpers/viewer-panes.js +0 -133
  969. package/dist/core/__tests__/history-inbox.test.d.ts +0 -1
  970. package/dist/core/__tests__/history-inbox.test.js +0 -121
  971. package/dist/core/__tests__/human-action-delivery.test.d.ts +0 -1
  972. package/dist/core/__tests__/human-action-delivery.test.js +0 -162
  973. package/dist/core/__tests__/human-actions.test.d.ts +0 -1
  974. package/dist/core/__tests__/human-actions.test.js +0 -120
  975. package/dist/core/__tests__/inline-memory-refs.test.d.ts +0 -1
  976. package/dist/core/__tests__/inline-memory-refs.test.js +0 -225
  977. package/dist/core/__tests__/integration/broker-fork-seam.test.d.ts +0 -1
  978. package/dist/core/__tests__/integration/broker-fork-seam.test.js +0 -193
  979. package/dist/core/__tests__/integration/broker-sdk-wiring.test.d.ts +0 -1
  980. package/dist/core/__tests__/integration/broker-sdk-wiring.test.js +0 -750
  981. package/dist/core/__tests__/integration/broker-snapshot-history.test.d.ts +0 -1
  982. package/dist/core/__tests__/integration/broker-snapshot-history.test.js +0 -288
  983. package/dist/core/__tests__/integration/broker-wedge-supervision.test.d.ts +0 -1
  984. package/dist/core/__tests__/integration/broker-wedge-supervision.test.js +0 -103
  985. package/dist/core/__tests__/integration/command-plugins.test.d.ts +0 -1
  986. package/dist/core/__tests__/integration/command-plugins.test.js +0 -1200
  987. package/dist/core/__tests__/integration/deferred-no-wake.test.d.ts +0 -1
  988. package/dist/core/__tests__/integration/deferred-no-wake.test.js +0 -610
  989. package/dist/core/__tests__/integration/flagship-lifecycle.test.d.ts +0 -1
  990. package/dist/core/__tests__/integration/flagship-lifecycle.test.js +0 -264
  991. package/dist/core/__tests__/integration/fresh-home-commands.test.d.ts +0 -1
  992. package/dist/core/__tests__/integration/fresh-home-commands.test.js +0 -49
  993. package/dist/core/__tests__/integration/git-optional-locks.test.d.ts +0 -1
  994. package/dist/core/__tests__/integration/git-optional-locks.test.js +0 -81
  995. package/dist/core/__tests__/integration/host-teardown-process-group.test.d.ts +0 -1
  996. package/dist/core/__tests__/integration/host-teardown-process-group.test.js +0 -480
  997. package/dist/core/__tests__/integration/lifecycle-hooks.test.d.ts +0 -1
  998. package/dist/core/__tests__/integration/lifecycle-hooks.test.js +0 -498
  999. package/dist/core/__tests__/integration/live-mutation-verbs.test.d.ts +0 -1
  1000. package/dist/core/__tests__/integration/live-mutation-verbs.test.js +0 -180
  1001. package/dist/core/__tests__/integration/live-mutation.test.d.ts +0 -1
  1002. package/dist/core/__tests__/integration/live-mutation.test.js +0 -173
  1003. package/dist/core/__tests__/integration/plugin-revalidate.test.d.ts +0 -1
  1004. package/dist/core/__tests__/integration/plugin-revalidate.test.js +0 -359
  1005. package/dist/core/__tests__/integration/profile-pause.test.d.ts +0 -1
  1006. package/dist/core/__tests__/integration/profile-pause.test.js +0 -115
  1007. package/dist/core/__tests__/integration/refresh-stall-recycle.test.d.ts +0 -1
  1008. package/dist/core/__tests__/integration/refresh-stall-recycle.test.js +0 -151
  1009. package/dist/core/__tests__/integration/revive.test.d.ts +0 -1
  1010. package/dist/core/__tests__/integration/revive.test.js +0 -615
  1011. package/dist/core/__tests__/integration/spawn-root.test.d.ts +0 -1
  1012. package/dist/core/__tests__/integration/spawn-root.test.js +0 -536
  1013. package/dist/core/__tests__/integration/subscription-delivery.test.d.ts +0 -1
  1014. package/dist/core/__tests__/integration/subscription-delivery.test.js +0 -132
  1015. package/dist/core/__tests__/integration/tmux-surface.test.d.ts +0 -1
  1016. package/dist/core/__tests__/integration/tmux-surface.test.js +0 -330
  1017. package/dist/core/__tests__/integration/worktree-land.test.d.ts +0 -1
  1018. package/dist/core/__tests__/integration/worktree-land.test.js +0 -607
  1019. package/dist/core/__tests__/integration/worktree-reap.test.d.ts +0 -1
  1020. package/dist/core/__tests__/integration/worktree-reap.test.js +0 -842
  1021. package/dist/core/__tests__/kickoff.test.d.ts +0 -1
  1022. package/dist/core/__tests__/kickoff.test.js +0 -196
  1023. package/dist/core/__tests__/lifecycle-terminal-reasons.test.d.ts +0 -1
  1024. package/dist/core/__tests__/lifecycle-terminal-reasons.test.js +0 -62
  1025. package/dist/core/__tests__/lifecycle.test.d.ts +0 -1
  1026. package/dist/core/__tests__/lifecycle.test.js +0 -176
  1027. package/dist/core/__tests__/live-lifecycle-prompt.test.d.ts +0 -1
  1028. package/dist/core/__tests__/live-lifecycle-prompt.test.js +0 -63
  1029. package/dist/core/__tests__/memory-resolver-precedence.test.d.ts +0 -1
  1030. package/dist/core/__tests__/memory-resolver-precedence.test.js +0 -228
  1031. package/dist/core/__tests__/migration.test.d.ts +0 -1
  1032. package/dist/core/__tests__/migration.test.js +0 -946
  1033. package/dist/core/__tests__/model-pin-durability.test.d.ts +0 -1
  1034. package/dist/core/__tests__/model-pin-durability.test.js +0 -195
  1035. package/dist/core/__tests__/model-routes-config.test.d.ts +0 -1
  1036. package/dist/core/__tests__/model-routes-config.test.js +0 -150
  1037. package/dist/core/__tests__/nested-store-discovery.test.d.ts +0 -1
  1038. package/dist/core/__tests__/nested-store-discovery.test.js +0 -89
  1039. package/dist/core/__tests__/node-outcome.test.d.ts +0 -1
  1040. package/dist/core/__tests__/node-outcome.test.js +0 -246
  1041. package/dist/core/__tests__/on-read-crouter-home-fence.test.d.ts +0 -1
  1042. package/dist/core/__tests__/on-read-crouter-home-fence.test.js +0 -66
  1043. package/dist/core/__tests__/on-read-dedup-resume.test.d.ts +0 -1
  1044. package/dist/core/__tests__/on-read-dedup-resume.test.js +0 -132
  1045. package/dist/core/__tests__/on-read-nested-store.test.d.ts +0 -1
  1046. package/dist/core/__tests__/on-read-nested-store.test.js +0 -135
  1047. package/dist/core/__tests__/parse-argv-stdin-secret.test.d.ts +0 -1
  1048. package/dist/core/__tests__/parse-argv-stdin-secret.test.js +0 -68
  1049. package/dist/core/__tests__/passive-subscription.test.d.ts +0 -1
  1050. package/dist/core/__tests__/passive-subscription.test.js +0 -120
  1051. package/dist/core/__tests__/pid-identity-match.test.d.ts +0 -1
  1052. package/dist/core/__tests__/pid-identity-match.test.js +0 -145
  1053. package/dist/core/__tests__/pid-zombie.test.d.ts +0 -1
  1054. package/dist/core/__tests__/pid-zombie.test.js +0 -42
  1055. package/dist/core/__tests__/plugin-kinds.test.d.ts +0 -1
  1056. package/dist/core/__tests__/plugin-kinds.test.js +0 -182
  1057. package/dist/core/__tests__/plugin-link-symlinked-scope-root.test.d.ts +0 -1
  1058. package/dist/core/__tests__/plugin-link-symlinked-scope-root.test.js +0 -43
  1059. package/dist/core/__tests__/plugin-page-components.test.d.ts +0 -1
  1060. package/dist/core/__tests__/plugin-page-components.test.js +0 -159
  1061. package/dist/core/__tests__/preview-mirror-cap.test.d.ts +0 -1
  1062. package/dist/core/__tests__/preview-mirror-cap.test.js +0 -53
  1063. package/dist/core/__tests__/preview-registry-sync.test.d.ts +0 -1
  1064. package/dist/core/__tests__/preview-registry-sync.test.js +0 -107
  1065. package/dist/core/__tests__/profile-project-memory-delivery.test.d.ts +0 -1
  1066. package/dist/core/__tests__/profile-project-memory-delivery.test.js +0 -644
  1067. package/dist/core/__tests__/prospective-inventory-capability-parity.test.d.ts +0 -1
  1068. package/dist/core/__tests__/prospective-inventory-capability-parity.test.js +0 -91
  1069. package/dist/core/__tests__/prune.test.d.ts +0 -1
  1070. package/dist/core/__tests__/prune.test.js +0 -243
  1071. package/dist/core/__tests__/push-final-guard.test.d.ts +0 -1
  1072. package/dist/core/__tests__/push-final-guard.test.js +0 -191
  1073. package/dist/core/__tests__/relaunch-root.test.d.ts +0 -1
  1074. package/dist/core/__tests__/relaunch-root.test.js +0 -249
  1075. package/dist/core/__tests__/remote-canvas-target.test.d.ts +0 -1
  1076. package/dist/core/__tests__/remote-canvas-target.test.js +0 -93
  1077. package/dist/core/__tests__/repository-association.test.d.ts +0 -1
  1078. package/dist/core/__tests__/repository-association.test.js +0 -153
  1079. package/dist/core/__tests__/repository-root-identity.test.d.ts +0 -1
  1080. package/dist/core/__tests__/repository-root-identity.test.js +0 -223
  1081. package/dist/core/__tests__/respawn-throttle.test.d.ts +0 -1
  1082. package/dist/core/__tests__/respawn-throttle.test.js +0 -20
  1083. package/dist/core/__tests__/review-model-floor.test.d.ts +0 -1
  1084. package/dist/core/__tests__/review-model-floor.test.js +0 -83
  1085. package/dist/core/__tests__/revive-all.test.d.ts +0 -1
  1086. package/dist/core/__tests__/revive-all.test.js +0 -157
  1087. package/dist/core/__tests__/revive-capacity.test.d.ts +0 -1
  1088. package/dist/core/__tests__/revive-capacity.test.js +0 -184
  1089. package/dist/core/__tests__/revive-parked-fresh.test.d.ts +0 -1
  1090. package/dist/core/__tests__/revive-parked-fresh.test.js +0 -176
  1091. package/dist/core/__tests__/scope-crouter-home-fence.test.d.ts +0 -1
  1092. package/dist/core/__tests__/scope-crouter-home-fence.test.js +0 -55
  1093. package/dist/core/__tests__/seam/broker-attach-multiclient.test.d.ts +0 -1
  1094. package/dist/core/__tests__/seam/broker-attach-multiclient.test.js +0 -262
  1095. package/dist/core/__tests__/seam/broker-attach-stream.test.d.ts +0 -1
  1096. package/dist/core/__tests__/seam/broker-attach-stream.test.js +0 -176
  1097. package/dist/core/__tests__/seam/broker-cap-freeze.test.d.ts +0 -1
  1098. package/dist/core/__tests__/seam/broker-cap-freeze.test.js +0 -155
  1099. package/dist/core/__tests__/seam/broker-crash-teardown.test.d.ts +0 -1
  1100. package/dist/core/__tests__/seam/broker-crash-teardown.test.js +0 -131
  1101. package/dist/core/__tests__/seam/broker-pane-resolution.test.d.ts +0 -1
  1102. package/dist/core/__tests__/seam/broker-pane-resolution.test.js +0 -204
  1103. package/dist/core/__tests__/seam/broker-provider-retry.test.d.ts +0 -1
  1104. package/dist/core/__tests__/seam/broker-provider-retry.test.js +0 -686
  1105. package/dist/core/__tests__/seam/broker-startup-diagnostics.test.d.ts +0 -1
  1106. package/dist/core/__tests__/seam/broker-startup-diagnostics.test.js +0 -82
  1107. package/dist/core/__tests__/seam/broker-whip-interrupt.test.d.ts +0 -1
  1108. package/dist/core/__tests__/seam/broker-whip-interrupt.test.js +0 -50
  1109. package/dist/core/__tests__/seam/deadline-wake-delivery.test.d.ts +0 -1
  1110. package/dist/core/__tests__/seam/deadline-wake-delivery.test.js +0 -138
  1111. package/dist/core/__tests__/seam/dormancy-release.test.d.ts +0 -1
  1112. package/dist/core/__tests__/seam/dormancy-release.test.js +0 -516
  1113. package/dist/core/__tests__/seam/held-deferred-human-prompt.test.d.ts +0 -1
  1114. package/dist/core/__tests__/seam/held-deferred-human-prompt.test.js +0 -65
  1115. package/dist/core/__tests__/seam/inbox-reference-guidance.test.d.ts +0 -1
  1116. package/dist/core/__tests__/seam/inbox-reference-guidance.test.js +0 -84
  1117. package/dist/core/__tests__/seam/memory-slash-node-relative-inventory.test.d.ts +0 -1
  1118. package/dist/core/__tests__/seam/memory-slash-node-relative-inventory.test.js +0 -160
  1119. package/dist/core/__tests__/seam/node-outcome-delivery.test.d.ts +0 -1
  1120. package/dist/core/__tests__/seam/node-outcome-delivery.test.js +0 -177
  1121. package/dist/core/__tests__/seam/prospective-inventory-stdout.test.d.ts +0 -1
  1122. package/dist/core/__tests__/seam/prospective-inventory-stdout.test.js +0 -31
  1123. package/dist/core/__tests__/seam/reopen-invalidated-worktree.test.d.ts +0 -1
  1124. package/dist/core/__tests__/seam/reopen-invalidated-worktree.test.js +0 -60
  1125. package/dist/core/__tests__/seam/self-close-teardown.test.d.ts +0 -1
  1126. package/dist/core/__tests__/seam/self-close-teardown.test.js +0 -49
  1127. package/dist/core/__tests__/seam/yield-refresh-transaction.test.d.ts +0 -1
  1128. package/dist/core/__tests__/seam/yield-refresh-transaction.test.js +0 -100
  1129. package/dist/core/__tests__/secrets.test.d.ts +0 -1
  1130. package/dist/core/__tests__/secrets.test.js +0 -49
  1131. package/dist/core/__tests__/self-update.test.d.ts +0 -1
  1132. package/dist/core/__tests__/self-update.test.js +0 -46
  1133. package/dist/core/__tests__/session-branch.test.d.ts +0 -1
  1134. package/dist/core/__tests__/session-branch.test.js +0 -61
  1135. package/dist/core/__tests__/session-cycles.test.d.ts +0 -1
  1136. package/dist/core/__tests__/session-cycles.test.js +0 -133
  1137. package/dist/core/__tests__/session-model.test.d.ts +0 -1
  1138. package/dist/core/__tests__/session-model.test.js +0 -111
  1139. package/dist/core/__tests__/spawn-worktree-id-conflict.test.d.ts +0 -1
  1140. package/dist/core/__tests__/spawn-worktree-id-conflict.test.js +0 -71
  1141. package/dist/core/__tests__/stdin-body-no-discard.test.d.ts +0 -1
  1142. package/dist/core/__tests__/stdin-body-no-discard.test.js +0 -33
  1143. package/dist/core/__tests__/stdout-errors.test.d.ts +0 -1
  1144. package/dist/core/__tests__/stdout-errors.test.js +0 -16
  1145. package/dist/core/__tests__/stop-guard.test.d.ts +0 -1
  1146. package/dist/core/__tests__/stop-guard.test.js +0 -237
  1147. package/dist/core/__tests__/stream-watchdog.test.d.ts +0 -1
  1148. package/dist/core/__tests__/stream-watchdog.test.js +0 -154
  1149. package/dist/core/__tests__/subscription-pool-credential-guard.test.d.ts +0 -1
  1150. package/dist/core/__tests__/subscription-pool-credential-guard.test.js +0 -95
  1151. package/dist/core/__tests__/tmux-driver-boundary.test.d.ts +0 -1
  1152. package/dist/core/__tests__/tmux-driver-boundary.test.js +0 -50
  1153. package/dist/core/__tests__/warm-claim-preference-snapshot.test.d.ts +0 -1
  1154. package/dist/core/__tests__/warm-claim-preference-snapshot.test.js +0 -54
  1155. package/dist/core/__tests__/worktree-landing.test.d.ts +0 -1
  1156. package/dist/core/__tests__/worktree-landing.test.js +0 -11
  1157. package/dist/core/__tests__/yield-ensures-daemon.test.d.ts +0 -1
  1158. package/dist/core/__tests__/yield-ensures-daemon.test.js +0 -55
  1159. package/dist/core/broker-client/__tests__/transport-relay.test.d.ts +0 -1
  1160. package/dist/core/broker-client/__tests__/transport-relay.test.js +0 -214
  1161. package/dist/core/broker-client/__tests__/transport-socket.test.d.ts +0 -1
  1162. package/dist/core/broker-client/__tests__/transport-socket.test.js +0 -73
  1163. package/dist/core/canvas/__tests__/attention.test.d.ts +0 -1
  1164. package/dist/core/canvas/__tests__/attention.test.js +0 -83
  1165. package/dist/core/canvas/__tests__/history-transcript.test.d.ts +0 -1
  1166. package/dist/core/canvas/__tests__/history-transcript.test.js +0 -102
  1167. package/dist/core/canvas/__tests__/remote-canvas-source.test.d.ts +0 -1
  1168. package/dist/core/canvas/__tests__/remote-canvas-source.test.js +0 -328
  1169. package/dist/core/canvas/__tests__/remote-transport.test.d.ts +0 -1
  1170. package/dist/core/canvas/__tests__/remote-transport.test.js +0 -97
  1171. package/dist/core/canvas/__tests__/render-remote.test.d.ts +0 -1
  1172. package/dist/core/canvas/__tests__/render-remote.test.js +0 -243
  1173. package/dist/core/canvas/__tests__/session-window.test.d.ts +0 -1
  1174. package/dist/core/canvas/__tests__/session-window.test.js +0 -70
  1175. package/dist/core/feed/__tests__/inbox-migrate.test.d.ts +0 -1
  1176. package/dist/core/feed/__tests__/inbox-migrate.test.js +0 -49
  1177. package/dist/core/human/__tests__/page-catalog.test.d.ts +0 -1
  1178. package/dist/core/human/__tests__/page-catalog.test.js +0 -20
  1179. package/dist/core/human/__tests__/page-html-markdown.test.d.ts +0 -1
  1180. package/dist/core/human/__tests__/page-html-markdown.test.js +0 -48
  1181. package/dist/core/human/__tests__/page.test.d.ts +0 -1
  1182. package/dist/core/human/__tests__/page.test.js +0 -92
  1183. package/dist/core/keybindings/__tests__/resolve.test.d.ts +0 -1
  1184. package/dist/core/keybindings/__tests__/resolve.test.js +0 -171
  1185. package/dist/core/profiles/__tests__/env-store.test.d.ts +0 -1
  1186. package/dist/core/profiles/__tests__/env-store.test.js +0 -99
  1187. package/dist/core/profiles/__tests__/fuzzy-match.test.d.ts +0 -1
  1188. package/dist/core/profiles/__tests__/fuzzy-match.test.js +0 -51
  1189. package/dist/core/profiles/__tests__/root-profile.test.d.ts +0 -1
  1190. package/dist/core/profiles/__tests__/root-profile.test.js +0 -59
  1191. package/dist/core/review/__tests__/capture-origin.test.d.ts +0 -1
  1192. package/dist/core/review/__tests__/capture-origin.test.js +0 -150
  1193. package/dist/core/review/__tests__/comments.test.d.ts +0 -1
  1194. package/dist/core/review/__tests__/comments.test.js +0 -116
  1195. package/dist/core/review/__tests__/remap.test.d.ts +0 -1
  1196. package/dist/core/review/__tests__/remap.test.js +0 -177
  1197. package/dist/core/review/__tests__/stage-identity.test.d.ts +0 -1
  1198. package/dist/core/review/__tests__/stage-identity.test.js +0 -150
  1199. package/dist/core/runtime/__tests__/engine-route.test.d.ts +0 -1
  1200. package/dist/core/runtime/__tests__/engine-route.test.js +0 -36
  1201. package/dist/core/runtime/__tests__/install-id-cache-scoping.test.d.ts +0 -1
  1202. package/dist/core/runtime/__tests__/install-id-cache-scoping.test.js +0 -45
  1203. package/dist/core/runtime/__tests__/node-env.test.d.ts +0 -1
  1204. package/dist/core/runtime/__tests__/node-env.test.js +0 -73
  1205. package/dist/core/runtime/__tests__/spawn-env.test.d.ts +0 -1
  1206. package/dist/core/runtime/__tests__/spawn-env.test.js +0 -259
  1207. package/dist/core/substrate/__tests__/surface-match-command.test.d.ts +0 -1
  1208. package/dist/core/substrate/__tests__/surface-match-command.test.js +0 -89
  1209. package/dist/core/substrate/__tests__/surface-match-memory-read.test.d.ts +0 -1
  1210. package/dist/core/substrate/__tests__/surface-match-memory-read.test.js +0 -28
  1211. package/dist/core/substrate/__tests__/surface-match-pre-command.test.d.ts +0 -1
  1212. package/dist/core/substrate/__tests__/surface-match-pre-command.test.js +0 -92
  1213. package/dist/daemon/__tests__/autostart-storm.test.d.ts +0 -1
  1214. package/dist/daemon/__tests__/autostart-storm.test.js +0 -128
  1215. package/dist/daemon/__tests__/broker-ownership.test.d.ts +0 -1
  1216. package/dist/daemon/__tests__/broker-ownership.test.js +0 -25
  1217. package/dist/daemon/__tests__/daemon-ownership.test.d.ts +0 -1
  1218. package/dist/daemon/__tests__/daemon-ownership.test.js +0 -27
  1219. package/dist/daemon/__tests__/helpers/source-daemon.d.ts +0 -30
  1220. package/dist/daemon/__tests__/helpers/source-daemon.js +0 -176
  1221. package/dist/daemon/__tests__/integration/api-startup-readiness.test.d.ts +0 -1
  1222. package/dist/daemon/__tests__/integration/api-startup-readiness.test.js +0 -83
  1223. package/dist/daemon/__tests__/integration/migration-startup.test.d.ts +0 -1
  1224. package/dist/daemon/__tests__/integration/migration-startup.test.js +0 -127
  1225. package/dist/daemon/__tests__/node-deadline-lane.test.d.ts +0 -1
  1226. package/dist/daemon/__tests__/node-deadline-lane.test.js +0 -77
  1227. package/dist/daemon/__tests__/node-outcome-birth-invariants.test.d.ts +0 -1
  1228. package/dist/daemon/__tests__/node-outcome-birth-invariants.test.js +0 -146
  1229. package/dist/daemon/__tests__/node-outcome-delivery.test.d.ts +0 -1
  1230. package/dist/daemon/__tests__/node-outcome-delivery.test.js +0 -116
  1231. package/dist/daemon/__tests__/reconciler-signature.test.d.ts +0 -1
  1232. package/dist/daemon/__tests__/reconciler-signature.test.js +0 -37
  1233. package/dist/daemon/__tests__/subtree-filter-freshness.test.d.ts +0 -1
  1234. package/dist/daemon/__tests__/subtree-filter-freshness.test.js +0 -63
  1235. package/dist/daemon/__tests__/thaw-order.test.d.ts +0 -1
  1236. package/dist/daemon/__tests__/thaw-order.test.js +0 -55
  1237. package/dist/daemon/api/__tests__/bridge-heartbeat.test.d.ts +0 -1
  1238. package/dist/daemon/api/__tests__/bridge-heartbeat.test.js +0 -58
  1239. package/dist/daemon/api/__tests__/broker-settle-park.test.d.ts +0 -1
  1240. package/dist/daemon/api/__tests__/broker-settle-park.test.js +0 -175
  1241. package/dist/daemon/api/__tests__/canvas-snapshot-fields.test.d.ts +0 -1
  1242. package/dist/daemon/api/__tests__/canvas-snapshot-fields.test.js +0 -216
  1243. package/dist/daemon/api/__tests__/error-seam.test.d.ts +0 -1
  1244. package/dist/daemon/api/__tests__/error-seam.test.js +0 -83
  1245. package/dist/daemon/api/__tests__/model-config.test.d.ts +0 -1
  1246. package/dist/daemon/api/__tests__/model-config.test.js +0 -73
  1247. package/dist/daemon/api/__tests__/node-create-description.test.d.ts +0 -1
  1248. package/dist/daemon/api/__tests__/node-create-description.test.js +0 -107
  1249. package/dist/daemon/api/__tests__/node-model-validation.test.d.ts +0 -1
  1250. package/dist/daemon/api/__tests__/node-model-validation.test.js +0 -183
  1251. package/dist/daemon/api/__tests__/nodes-activity-query.test.d.ts +0 -1
  1252. package/dist/daemon/api/__tests__/nodes-activity-query.test.js +0 -99
  1253. package/dist/daemon/api/__tests__/profile-launch-gates.test.d.ts +0 -1
  1254. package/dist/daemon/api/__tests__/profile-launch-gates.test.js +0 -172
  1255. package/dist/daemon/api/__tests__/profile-metadata-route.test.d.ts +0 -1
  1256. package/dist/daemon/api/__tests__/profile-metadata-route.test.js +0 -95
  1257. package/dist/daemon/api/__tests__/reopen-delivery.test.d.ts +0 -1
  1258. package/dist/daemon/api/__tests__/reopen-delivery.test.js +0 -260
  1259. package/dist/daemon/api/__tests__/seam/api-server.test.d.ts +0 -1
  1260. package/dist/daemon/api/__tests__/seam/api-server.test.js +0 -442
  1261. package/dist/daemon/api/__tests__/seam/b10-attach-modelauth.test.d.ts +0 -1
  1262. package/dist/daemon/api/__tests__/seam/b10-attach-modelauth.test.js +0 -310
  1263. package/dist/daemon/api/__tests__/seam/leaf-api-parity.test.d.ts +0 -1
  1264. package/dist/daemon/api/__tests__/seam/leaf-api-parity.test.js +0 -351
  1265. package/dist/daemon/api/__tests__/seam/node-outcome-api.test.d.ts +0 -1
  1266. package/dist/daemon/api/__tests__/seam/node-outcome-api.test.js +0 -159
  1267. package/dist/daemon/api/__tests__/seam/profile-delete.test.d.ts +0 -1
  1268. package/dist/daemon/api/__tests__/seam/profile-delete.test.js +0 -372
  1269. package/dist/daemon/api/__tests__/submit-result.test.d.ts +0 -1
  1270. package/dist/daemon/api/__tests__/submit-result.test.js +0 -215
  1271. package/dist/migrations/__tests__/activation-concurrency.test.d.ts +0 -1
  1272. package/dist/migrations/__tests__/activation-concurrency.test.js +0 -146
  1273. package/dist/migrations/__tests__/activation.test.d.ts +0 -1
  1274. package/dist/migrations/__tests__/activation.test.js +0 -152
  1275. package/dist/migrations/__tests__/deletion-and-root-declaration.test.d.ts +0 -1
  1276. package/dist/migrations/__tests__/deletion-and-root-declaration.test.js +0 -149
  1277. package/dist/pi-extensions/__tests__/canvas-bash-valve.test.d.ts +0 -1
  1278. package/dist/pi-extensions/__tests__/canvas-bash-valve.test.js +0 -86
  1279. package/dist/pi-extensions/__tests__/canvas-context-intro.test.d.ts +0 -1
  1280. package/dist/pi-extensions/__tests__/canvas-context-intro.test.js +0 -364
  1281. package/dist/pi-extensions/__tests__/canvas-goal-capture-envelope.test.d.ts +0 -1
  1282. package/dist/pi-extensions/__tests__/canvas-goal-capture-envelope.test.js +0 -106
  1283. package/dist/pi-extensions/__tests__/canvas-recap.test.d.ts +0 -1
  1284. package/dist/pi-extensions/__tests__/canvas-recap.test.js +0 -62
  1285. package/dist/pi-extensions/__tests__/canvas-stophook-agentend.test.d.ts +0 -1
  1286. package/dist/pi-extensions/__tests__/canvas-stophook-agentend.test.js +0 -432
  1287. package/dist/pi-extensions/__tests__/canvas-stophook-context-nudge.test.d.ts +0 -1
  1288. package/dist/pi-extensions/__tests__/canvas-stophook-context-nudge.test.js +0 -152
  1289. package/dist/pi-extensions/__tests__/canvas-structured-output.test.d.ts +0 -1
  1290. package/dist/pi-extensions/__tests__/canvas-structured-output.test.js +0 -88
  1291. package/dist/pi-extensions/__tests__/canvas-tool-guide.test.d.ts +0 -1
  1292. package/dist/pi-extensions/__tests__/canvas-tool-guide.test.js +0 -96
  1293. package/dist/pi-extensions/__tests__/integration/canvas-bash-valve.test.d.ts +0 -1
  1294. package/dist/pi-extensions/__tests__/integration/canvas-bash-valve.test.js +0 -133
  1295. package/dist/pi-extensions/__tests__/pre-command-gate.test.d.ts +0 -1
  1296. package/dist/pi-extensions/__tests__/pre-command-gate.test.js +0 -232
  1297. package/dist/shared/__tests__/env-boundary.test.d.ts +0 -1
  1298. package/dist/shared/__tests__/env-boundary.test.js +0 -95
  1299. package/dist/shared/__tests__/generated-context-grammar.test.d.ts +0 -1
  1300. package/dist/shared/__tests__/generated-context-grammar.test.js +0 -80
  1301. package/docs/compat/hearth-crtr-v1.md +0 -179
  1302. package/docs/compat/hearth-crtr-v2.md +0 -177
  1303. package/docs/compat/hearth-crtr-v3.md +0 -176
  1304. package/docs/compat/hearth-crtr-v4.md +0 -182
  1305. 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};