@north-light/crouter 0.3.318 → 0.3.319
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +0 -3
- package/dist/api/client.js +2 -912
- package/dist/api/dto/attach.js +0 -13
- package/dist/api/dto/bash-jobs.js +1 -9
- package/dist/api/dto/broker-ops.js +0 -6
- package/dist/api/dto/broker.js +0 -20
- package/dist/api/dto/canvas.js +0 -2
- package/dist/api/dto/chat-inventory.js +0 -11
- package/dist/api/dto/common.js +1 -15
- package/dist/api/dto/config.js +0 -3
- package/dist/api/dto/crons.js +1 -10
- package/dist/api/dto/files.js +0 -7
- package/dist/api/dto/focus.js +0 -10
- package/dist/api/dto/health.js +0 -2
- package/dist/api/dto/human-requests.js +0 -4
- package/dist/api/dto/human.js +0 -4
- package/dist/api/dto/inbox.js +0 -4
- package/dist/api/dto/lifecycle.js +0 -3
- package/dist/api/dto/mail.js +0 -1
- package/dist/api/dto/memory.js +0 -6
- package/dist/api/dto/messages.js +0 -2
- package/dist/api/dto/model-config.js +0 -1
- package/dist/api/dto/modelauth.js +0 -4
- package/dist/api/dto/node-outcomes.js +0 -2
- package/dist/api/dto/nodes.js +0 -3
- package/dist/api/dto/profiles.js +1 -4
- package/dist/api/dto/recovery.js +0 -1
- package/dist/api/dto/reports.js +0 -2
- package/dist/api/dto/review-comments.js +0 -5
- package/dist/api/dto/reviews.js +0 -5
- package/dist/api/dto/subscriptions.js +0 -2
- package/dist/api/dto/worktree.js +0 -6
- package/dist/api/errors.js +1 -40
- package/dist/api/index.js +1 -33
- package/dist/api/plugin-manifest-schema.js +0 -23
- package/dist/api/routes.js +1 -147
- package/dist/build-root.js +1 -198
- package/dist/cli.js +3 -99
- package/dist/clients/attach/ansi-cells.js +1 -137
- package/dist/clients/attach/chrome/bash-jobs.js +1 -31
- package/dist/clients/attach/chrome/canvas-panels.js +1 -194
- package/dist/clients/attach/chrome/completion-bell.js +1 -89
- package/dist/clients/attach/chrome/cron-wait.js +1 -34
- package/dist/clients/attach/chrome/git-info.js +2 -44
- package/dist/clients/attach/chrome/header.js +1 -30
- package/dist/clients/attach/chrome/inbox-strip.js +1 -199
- package/dist/clients/attach/chrome/recap.js +1 -19
- package/dist/clients/attach/chrome/review-wait.js +1 -22
- package/dist/clients/attach/chrome/roster.js +4 -275
- package/dist/clients/attach/chrome/status-line.js +1 -117
- package/dist/clients/attach/chrome/ticket-panel.js +1 -280
- package/dist/clients/attach/chrome/widgets.js +1 -51
- package/dist/clients/attach/command.js +1 -107
- package/dist/clients/attach/config.js +1 -274
- package/dist/clients/attach/input/capabilities.js +1 -104
- package/dist/clients/attach/input/clipboard-image.js +3 -220
- package/dist/clients/attach/input/completion-frecency.js +1 -141
- package/dist/clients/attach/input/controller.js +7 -377
- package/dist/clients/attach/input/overlay-owner.js +1 -199
- package/dist/clients/attach/input/ref-autocomplete.js +2 -176
- package/dist/clients/attach/input/titled-editor.js +4 -859
- package/dist/clients/attach/overlays/auth.js +2 -271
- package/dist/clients/attach/overlays/dialogs.js +2 -102
- package/dist/clients/attach/overlays/file-review.js +2 -128
- package/dist/clients/attach/overlays/graph.js +1 -661
- package/dist/clients/attach/overlays/help.js +1 -211
- package/dist/clients/attach/overlays/mcp.js +1 -302
- package/dist/clients/attach/overlays/pickers.js +1 -163
- package/dist/clients/attach/render/activity-slot.js +1 -13
- package/dist/clients/attach/render/assistant-message.js +1 -56
- package/dist/clients/attach/render/card-presentation.js +5 -218
- package/dist/clients/attach/render/chat-view.js +5 -1708
- package/dist/clients/attach/render/condensed-history.js +1 -60
- package/dist/clients/attach/render/context-message.js +1 -63
- package/dist/clients/attach/render/crtr-output.js +17 -905
- package/dist/clients/attach/render/diagram.js +7 -111
- package/dist/clients/attach/render/edit-diff.js +5 -304
- package/dist/clients/attach/render/glyph-codepoints.js +1 -42
- package/dist/clients/attach/render/group-activity.js +2 -263
- package/dist/clients/attach/render/group-recap.js +1 -152
- package/dist/clients/attach/render/markdown-source.js +5 -266
- package/dist/clients/attach/render/measured-container.js +1 -322
- package/dist/clients/attach/render/page-block.js +1 -183
- package/dist/clients/attach/render/scroll-animation.js +1 -80
- package/dist/clients/attach/render/tool-calls.js +3 -361
- package/dist/clients/attach/render/transcript-copy.js +2 -81
- package/dist/clients/attach/render/transcript-search.js +1 -152
- package/dist/clients/attach/render/viewport.js +1 -184
- package/dist/clients/attach/session/banner.js +1 -29
- package/dist/clients/attach/session/bindings.js +1 -71
- package/dist/clients/attach/session/chrome-refresh.js +1 -94
- package/dist/clients/attach/session/connection.js +1 -186
- package/dist/clients/attach/session/context.js +0 -16
- package/dist/clients/attach/session/editor-frame.js +1 -142
- package/dist/clients/attach/session/editor-inventory.js +6 -160
- package/dist/clients/attach/session/file-links.js +1 -68
- package/dist/clients/attach/session/focus-events.js +1 -12
- package/dist/clients/attach/session/frame.js +1 -214
- package/dist/clients/attach/session/frames.js +1 -188
- package/dist/clients/attach/session/identity.js +1 -26
- package/dist/clients/attach/session/input-wiring.js +1 -140
- package/dist/clients/attach/session/invariant.js +1 -15
- package/dist/clients/attach/session/keys.js +1 -77
- package/dist/clients/attach/session/layout.js +1 -59
- package/dist/clients/attach/session/mouse.js +1 -78
- package/dist/clients/attach/session/pane-focus.js +1 -42
- package/dist/clients/attach/session/pane-tag.js +1 -112
- package/dist/clients/attach/session/pi-assets.js +1 -24
- package/dist/clients/attach/session/pi-oauth-flows.js +1 -21
- package/dist/clients/attach/session/profile-files.js +1 -228
- package/dist/clients/attach/session/reconnect.js +1 -175
- package/dist/clients/attach/session/selection.js +3 -108
- package/dist/clients/attach/session/state-sync.js +1 -67
- package/dist/clients/attach/session/surface-frame.js +1 -73
- package/dist/clients/attach/session/surface-host.js +1 -255
- package/dist/clients/attach/session/teardown.js +5 -94
- package/dist/clients/attach/session/transcript-search.js +3 -151
- package/dist/clients/attach/session/whip-achievements.js +2 -145
- package/dist/clients/attach/session/whip.js +1 -362
- package/dist/clients/attach/slash/dispatch.js +1 -706
- package/dist/clients/attach/slash/prompt-preview.js +1 -121
- package/dist/clients/attach/viewer.js +441 -441
- package/dist/clients/conversation/projection.js +1 -324
- package/dist/clients/conversation/submit.js +1 -51
- package/dist/clients/inbox/controller.js +1 -701
- package/dist/clients/inbox/dto-adapt.js +1 -93
- package/dist/clients/inbox/layout.js +1 -9
- package/dist/clients/inbox/page-adapter.js +1 -55
- package/dist/clients/inbox/resolve.js +1 -35
- package/dist/clients/inbox/review/anchors.js +1 -89
- package/dist/clients/inbox/review/comments-client.js +1 -98
- package/dist/clients/inbox/review/companion-pane.js +1 -82
- package/dist/clients/inbox/review/document-surface.js +2 -1188
- package/dist/clients/inbox/review/frame.js +1 -216
- package/dist/clients/inbox/review/keys.js +1 -123
- package/dist/clients/inbox/review/launch.js +1 -151
- package/dist/clients/inbox/review/live-source.js +1 -160
- package/dist/clients/inbox/review/nvim.js +1 -44
- package/dist/clients/inbox/review/remap.js +1 -157
- package/dist/clients/inbox/review/review-client.js +1 -123
- package/dist/clients/inbox/review/roundtrip.js +3 -36
- package/dist/clients/inbox/review/state.js +4 -315
- package/dist/clients/inbox/review-adapter.js +1 -43
- package/dist/clients/inbox/surface.js +1 -152
- package/dist/clients/inbox/tui/ansi.js +3 -321
- package/dist/clients/inbox/tui/input.js +5 -392
- package/dist/clients/inbox/tui/keys.js +1 -104
- package/dist/clients/inbox/tui/page-body.js +1 -66
- package/dist/clients/inbox/tui/panel.js +1 -84
- package/dist/clients/inbox/tui/render.js +2 -368
- package/dist/clients/inbox/tui/slots.js +3 -134
- package/dist/clients/inbox/tui/types.js +0 -1
- package/dist/clients/inbox/tui.js +1 -86
- package/dist/clients/surfaces/host.js +0 -1
- package/dist/commands/api-client.js +4 -290
- package/dist/commands/attention.js +1 -215
- package/dist/commands/canvas-browse.js +1 -70
- package/dist/commands/canvas-config.js +2 -192
- package/dist/commands/canvas-history/grep.js +7 -85
- package/dist/commands/canvas-history/read.js +3 -50
- package/dist/commands/canvas-history/search.js +10 -99
- package/dist/commands/canvas-history/shared.js +1 -139
- package/dist/commands/canvas-history/stats.js +6 -68
- package/dist/commands/canvas-history.js +1 -32
- package/dist/commands/canvas-issue.js +14 -149
- package/dist/commands/canvas-prune.js +1 -108
- package/dist/commands/canvas-roster.js +1 -69
- package/dist/commands/canvas-snapshot.js +1 -34
- package/dist/commands/canvas-use.js +1 -61
- package/dist/commands/canvas.js +1 -49
- package/dist/commands/chord.js +1 -241
- package/dist/commands/cron.js +11 -534
- package/dist/commands/dashboard.js +1 -85
- package/dist/commands/human/components.js +3 -77
- package/dist/commands/human/feedback.js +1 -112
- package/dist/commands/human/prompts.js +1 -331
- package/dist/commands/human/queue.js +1 -191
- package/dist/commands/human/request.js +1 -266
- package/dist/commands/human/review.js +1 -288
- package/dist/commands/human/shared.js +1 -67
- package/dist/commands/human.js +4 -60
- package/dist/commands/memory/delete.js +1 -100
- package/dist/commands/memory/edit.js +21 -219
- package/dist/commands/memory/find.js +2 -244
- package/dist/commands/memory/history.js +5 -199
- package/dist/commands/memory/lint.js +1 -107
- package/dist/commands/memory/list.js +1 -142
- package/dist/commands/memory/move.js +1 -223
- package/dist/commands/memory/origin.js +1 -130
- package/dist/commands/memory/read.js +6 -232
- package/dist/commands/memory/shared.js +12 -802
- package/dist/commands/memory/write.js +13 -235
- package/dist/commands/memory.js +1 -30
- package/dist/commands/node/bash.js +5 -245
- package/dist/commands/node/create.js +3 -332
- package/dist/commands/node/inspect.js +12 -300
- package/dist/commands/node/lifecycle.js +2 -453
- package/dist/commands/node/message.js +1 -161
- package/dist/commands/node/outcome.js +4 -134
- package/dist/commands/node/pyramid.js +2 -79
- package/dist/commands/node/subscription.js +1 -78
- package/dist/commands/node/wait.js +7 -163
- package/dist/commands/node-context.js +2 -159
- package/dist/commands/node-inspect-artifacts.js +8 -109
- package/dist/commands/node-lifecycle-revive.js +1 -217
- package/dist/commands/node-snapshot.js +1 -37
- package/dist/commands/node-transcript.js +1 -62
- package/dist/commands/node-worktree.js +1 -138
- package/dist/commands/node.js +1 -29
- package/dist/commands/pkg/browse/actions.js +1 -198
- package/dist/commands/pkg/browse/catalog.js +1 -466
- package/dist/commands/pkg/browse/command-view.js +1 -191
- package/dist/commands/pkg/browse/detail-panel.js +1 -402
- package/dist/commands/pkg/browse/doc-view.js +1 -89
- package/dist/commands/pkg/browse/list-panel.js +2 -168
- package/dist/commands/pkg/browse/model.js +1 -36
- package/dist/commands/pkg/browse/shell.js +1 -640
- package/dist/commands/pkg/browse.js +1 -27
- package/dist/commands/pkg/market-inspect.js +1 -141
- package/dist/commands/pkg/market-manage.js +1 -327
- package/dist/commands/pkg/market.js +1 -14
- package/dist/commands/pkg/plugin-inspect.js +1 -168
- package/dist/commands/pkg/plugin-manage.js +17 -1109
- package/dist/commands/pkg/plugin.js +1 -14
- package/dist/commands/pkg/shared.js +1 -62
- package/dist/commands/pkg.js +1 -21
- package/dist/commands/profile/default.js +1 -139
- package/dist/commands/profile/delete.js +1 -66
- package/dist/commands/profile/env.js +3 -188
- package/dist/commands/profile/kind.js +2 -35
- package/dist/commands/profile/list.js +1 -43
- package/dist/commands/profile/meta.js +1 -67
- package/dist/commands/profile/new.js +1 -115
- package/dist/commands/profile/pause.js +1 -59
- package/dist/commands/profile/project.js +1 -113
- package/dist/commands/profile/rename.js +1 -38
- package/dist/commands/profile/show.js +1 -52
- package/dist/commands/profile.js +1 -35
- package/dist/commands/push.js +9 -265
- package/dist/commands/revive.js +10 -181
- package/dist/commands/surface/node/cycle.js +1 -83
- package/dist/commands/surface/node/focus.js +1 -81
- package/dist/commands/surface/node/id.js +1 -38
- package/dist/commands/surface/node/pin.js +1 -42
- package/dist/commands/surface/node/placement.js +1 -134
- package/dist/commands/surface-edit.js +1 -157
- package/dist/commands/surface-inbox.js +1 -98
- package/dist/commands/surface-inspect.js +1 -39
- package/dist/commands/surface-node.js +1 -19
- package/dist/commands/surface-reload.js +2 -134
- package/dist/commands/surface-tmux-spread.js +1 -214
- package/dist/commands/surface.js +1 -28
- package/dist/commands/sys/branch.js +1 -19
- package/dist/commands/sys/config.js +1 -353
- package/dist/commands/sys/context/admin/actions.js +2 -246
- package/dist/commands/sys/context/admin/detail-panel.js +1 -247
- package/dist/commands/sys/context/admin/docs-panel.js +1 -191
- package/dist/commands/sys/context/admin/list-view.js +1 -183
- package/dist/commands/sys/context/admin/model.js +1 -229
- package/dist/commands/sys/context/admin/rail-panel.js +1 -227
- package/dist/commands/sys/context/admin/read-view.js +2 -194
- package/dist/commands/sys/context/admin/shell.js +1 -910
- package/dist/commands/sys/context/admin.js +2 -126
- package/dist/commands/sys/context/doc.js +3 -197
- package/dist/commands/sys/context/prompt-review.js +11 -291
- package/dist/commands/sys/context/resolve.js +10 -489
- package/dist/commands/sys/context/sysprompt.js +5 -96
- package/dist/commands/sys/context.js +1 -20
- package/dist/commands/sys/daemon.js +1 -313
- package/dist/commands/sys/doctor.js +1 -617
- package/dist/commands/sys/feedback.js +7 -228
- package/dist/commands/sys/logs.js +3 -129
- package/dist/commands/sys/migrate.js +1 -94
- package/dist/commands/sys/panels/broker-limits-panel.js +2 -110
- package/dist/commands/sys/panels/dependencies-panel.js +1 -80
- package/dist/commands/sys/panels/keybindings-panel.js +1 -703
- package/dist/commands/sys/panels/models-panel.js +1 -1133
- package/dist/commands/sys/panels/plugins-panel.js +1 -80
- package/dist/commands/sys/panels/prefs-panel.js +1 -85
- package/dist/commands/sys/panels/profiles-panel.js +1 -601
- package/dist/commands/sys/panels/provider-panel.js +1 -538
- package/dist/commands/sys/settings-shell.js +1 -400
- package/dist/commands/sys/settings.js +1 -46
- package/dist/commands/sys/setup-core.js +6 -579
- package/dist/commands/sys/setup-settings-runner.js +1 -16
- package/dist/commands/sys/setup-wizard.js +1 -279
- package/dist/commands/sys/setup.js +1 -34
- package/dist/commands/sys/shared.js +1 -81
- package/dist/commands/sys/support/prepare.js +3 -239
- package/dist/commands/sys/support/submit.js +6 -524
- package/dist/commands/sys/support.js +1 -18
- package/dist/commands/sys/sync-deps.js +15 -498
- package/dist/commands/sys/sync-project-guidance.js +4 -481
- package/dist/commands/sys/sync-shared.js +1 -49
- package/dist/commands/sys/sync-skills.js +2 -311
- package/dist/commands/sys/sync.js +1 -18
- package/dist/commands/sys/update.js +1 -147
- package/dist/commands/sys/worktrees.js +5 -53
- package/dist/commands/sys.js +1 -18
- package/dist/core/activity-signal.js +2 -38
- package/dist/core/asset-root.js +1 -18
- package/dist/core/auth-file.js +2 -179
- package/dist/core/auth-interaction.js +3 -94
- package/dist/core/auto-update.js +4 -94
- package/dist/core/bash-guard.js +11 -393
- package/dist/core/bash-jobs.js +7 -411
- package/dist/core/bootstrap.js +2 -53
- package/dist/core/broker-client/client.js +1 -184
- package/dist/core/broker-client/index.js +1 -13
- package/dist/core/broker-client/transport-relay.js +1 -157
- package/dist/core/broker-client/transport-socket.js +1 -179
- package/dist/core/broker-client/transport.js +1 -26
- package/dist/core/canvas/attention.js +1 -47
- package/dist/core/canvas/boot-id.js +1 -26
- package/dist/core/canvas/boot.js +1 -186
- package/dist/core/canvas/browse/app.js +3 -919
- package/dist/core/canvas/browse/model.js +1 -477
- package/dist/core/canvas/browse/pins.js +1 -29
- package/dist/core/canvas/browse/render.js +3 -1055
- package/dist/core/canvas/canvas.js +15 -922
- package/dist/core/canvas/crons.js +11 -481
- package/dist/core/canvas/daemon-owner.js +2 -146
- package/dist/core/canvas/db.js +2 -100
- package/dist/core/canvas/deliveries.js +22 -283
- package/dist/core/canvas/delivery-contract.js +1 -8
- package/dist/core/canvas/executions.js +1 -68
- package/dist/core/canvas/extensions.js +1 -83
- package/dist/core/canvas/focuses.js +1 -77
- package/dist/core/canvas/history.js +24 -860
- package/dist/core/canvas/index.js +1 -15
- package/dist/core/canvas/install-id.js +1 -84
- package/dist/core/canvas/labels.js +1 -43
- package/dist/core/canvas/meta-file.js +1 -89
- package/dist/core/canvas/migrations.js +41 -1150
- package/dist/core/canvas/nav-model.js +1 -231
- package/dist/core/canvas/nav-render.js +1 -260
- package/dist/core/canvas/node-order.js +1 -37
- package/dist/core/canvas/node-recap.js +2 -67
- package/dist/core/canvas/node-sql-migration.js +2 -209
- package/dist/core/canvas/paths.js +1 -153
- package/dist/core/canvas/pid.js +4 -683
- package/dist/core/canvas/recovery.js +3 -565
- package/dist/core/canvas/remote-canvas-source.js +1 -288
- package/dist/core/canvas/remote-transport.js +1 -57
- package/dist/core/canvas/render-source.js +10 -635
- package/dist/core/canvas/sessions.js +1 -78
- package/dist/core/canvas/source.js +1 -47
- package/dist/core/canvas/status-glyph.js +1 -132
- package/dist/core/canvas/telemetry.js +1 -35
- package/dist/core/canvas/types.js +1 -6
- package/dist/core/canvas/waits.js +4 -68
- package/dist/core/canvas/worktrees.js +1 -93
- package/dist/core/clipboard-text.js +1 -57
- package/dist/core/command-hooks/artifact.js +1 -145
- package/dist/core/command-hooks/catalog.js +1 -38
- package/dist/core/command-hooks/compose.js +1 -99
- package/dist/core/command-hooks/discovery.js +1 -228
- package/dist/core/command-hooks/help.js +1 -18
- package/dist/core/command-hooks/index.js +1 -7
- package/dist/core/command-hooks/lifecycle-catalog.js +1 -9
- package/dist/core/command-hooks/lifecycle-create.js +1 -51
- package/dist/core/command-hooks/report.js +1 -28
- package/dist/core/command-hooks/schema.js +1 -157
- package/dist/core/command-hooks/transport/exec-invoke.js +1 -276
- package/dist/core/command-hooks/transport/exec-lifecycle.js +1 -211
- package/dist/core/command-manifests/manifest.js +1 -324
- package/dist/core/command-manifests/registry.js +1 -118
- package/dist/core/command-manifests/schema.js +1 -736
- package/dist/core/command-plugins/bundle.js +1 -261
- package/dist/core/command-plugins/compose.js +1 -65
- package/dist/core/command-plugins/discovery.js +1 -245
- package/dist/core/command-plugins/endpoint.js +1 -48
- package/dist/core/command-plugins/extensions.js +1 -166
- package/dist/core/command-plugins/help-addenda.js +1 -44
- package/dist/core/command-plugins/presence.js +1 -17
- package/dist/core/command-plugins/revalidate.js +2 -152
- package/dist/core/command-plugins/transport/exec-invoke.js +1 -215
- package/dist/core/command-plugins/transport/http-fetch.js +1 -68
- package/dist/core/command-plugins/transport/http-invoke.js +3 -546
- package/dist/core/command.js +10 -739
- package/dist/core/config.js +1 -1059
- package/dist/core/document-lines.js +3 -6
- package/dist/core/env-name.js +1 -9
- package/dist/core/errors.js +1 -52
- package/dist/core/events/emit.js +1 -17
- package/dist/core/events/envelope.js +1 -84
- package/dist/core/events/errors.js +1 -69
- package/dist/core/events/index.js +1 -4
- package/dist/core/events/operation-id.js +1 -24
- package/dist/core/events/read.js +1 -623
- package/dist/core/events/serialize.js +1 -199
- package/dist/core/events/source.js +1 -31
- package/dist/core/events/types.js +1 -11
- package/dist/core/exclusive-lock.js +1 -197
- package/dist/core/fault-classifier.js +1 -96
- package/dist/core/feed/feed.js +7 -202
- package/dist/core/feed/inbox-migrate.js +3 -135
- package/dist/core/feed/inbox.js +10 -122
- package/dist/core/feed/messages.js +6 -212
- package/dist/core/frontmatter.js +1 -35
- package/dist/core/fs-utils.js +3 -202
- package/dist/core/git.js +2 -103
- package/dist/core/help.js +9 -310
- package/dist/core/host-exports/builtins.js +9 -68
- package/dist/core/host-exports/export.js +3 -124
- package/dist/core/human/action-binding.js +1 -40
- package/dist/core/human/answer-text.js +5 -100
- package/dist/core/human/answer.js +1 -119
- package/dist/core/human/claim.js +3 -67
- package/dist/core/human/completion.js +1 -27
- package/dist/core/human/component-docs.js +78 -272
- package/dist/core/human/convention.js +2 -82
- package/dist/core/human/feedback-companion.js +1 -106
- package/dist/core/human/feedback.js +1 -88
- package/dist/core/human/page-authoring.js +1 -19
- package/dist/core/human/page-catalog.js +1 -172
- package/dist/core/human/page-errors.js +1 -7
- package/dist/core/human/page-eval.js +1 -125
- package/dist/core/human/page-html-markdown.js +8 -260
- package/dist/core/human/page-markdown.js +17 -295
- package/dist/core/human/page-schema.js +1 -373
- package/dist/core/human/page-synth.js +8 -27
- package/dist/core/human/page.js +1 -198
- package/dist/core/human/requests.js +15 -466
- package/dist/core/human/review-schema.js +1 -34
- package/dist/core/human/root.js +1 -11
- package/dist/core/human/scan.js +1 -69
- package/dist/core/human/summary.js +1 -5
- package/dist/core/human/tickets.js +1 -171
- package/dist/core/human/types.js +0 -1
- package/dist/core/human/visible-paths.js +1 -77
- package/dist/core/human-actions.js +1 -101
- package/dist/core/inspector/chrome.js +1 -14
- package/dist/core/inspector/contract.js +0 -1
- package/dist/core/inspector/core.js +2 -295
- package/dist/core/inspector/host.js +4 -538
- package/dist/core/inspector/model.js +2 -226
- package/dist/core/inspector/text.js +6 -45
- package/dist/core/inspector/transport.js +1 -36
- package/dist/core/inspector/tui.js +2 -295
- package/dist/core/installed-plugins.js +1 -78
- package/dist/core/io.js +7 -356
- package/dist/core/keybindings/attach-control.js +1 -42
- package/dist/core/keybindings/background-bash.js +1 -33
- package/dist/core/keybindings/catalog.js +1 -256
- package/dist/core/keybindings/inbox.js +1 -25
- package/dist/core/keybindings/index.js +1 -7
- package/dist/core/keybindings/match.js +1 -127
- package/dist/core/keybindings/persistence.js +1 -49
- package/dist/core/keybindings/resolve.js +1 -348
- package/dist/core/keybindings/types.js +0 -1
- package/dist/core/locked-file.js +1 -118
- package/dist/core/log.js +3 -27
- package/dist/core/manifest-recovery.js +1 -72
- package/dist/core/manifest-stale.js +1 -39
- package/dist/core/manifest.js +1 -20
- package/dist/core/memory/doc-link-grammar.js +2 -109
- package/dist/core/memory/extensions.js +1 -221
- package/dist/core/memory/history.js +6 -268
- package/dist/core/memory/identity.js +1 -181
- package/dist/core/memory/inline-ref-grammar.js +1 -98
- package/dist/core/memory/inline-ref-guidance.js +2 -35
- package/dist/core/memory/inline-ref-inventory.js +1 -59
- package/dist/core/memory/lint.js +2 -671
- package/dist/core/memory/project-namespace.js +2 -85
- package/dist/core/memory/repository-association.js +1 -129
- package/dist/core/memory/tree.js +1 -93
- package/dist/core/memory-resolver.js +2 -611
- package/dist/core/model-config.js +1 -107
- package/dist/core/model-routes.js +1 -201
- package/dist/core/nested-stores.js +2 -166
- package/dist/core/output.js +7 -99
- package/dist/core/pagination.js +1 -88
- package/dist/core/plugin-swap-lock.js +1 -31
- package/dist/core/pool-credential-store.js +1 -116
- package/dist/core/predicate.js +1 -191
- package/dist/core/preview-registry.js +2 -411
- package/dist/core/preview-result-path.js +1 -26
- package/dist/core/profiles/default-binding.js +1 -24
- package/dist/core/profiles/deletion-reservation.js +1 -42
- package/dist/core/profiles/env-store.js +2 -162
- package/dist/core/profiles/fuzzy-match.js +1 -92
- package/dist/core/profiles/manifest.js +1 -574
- package/dist/core/profiles/select.js +35 -741
- package/dist/core/profiles/state-block.js +3 -17
- package/dist/core/provider-error-recognition.js +1 -74
- package/dist/core/provider-failure.js +1 -86
- package/dist/core/provider-management.js +1 -22
- package/dist/core/remote-canvas-target.js +1 -30
- package/dist/core/render.js +18 -138
- package/dist/core/resolver.js +1 -111
- package/dist/core/review/birth.js +1 -52
- package/dist/core/review/comments.js +5 -279
- package/dist/core/review/companion.js +1 -215
- package/dist/core/review/document.js +2 -138
- package/dist/core/review/project.js +1 -36
- package/dist/core/review/realize.js +1 -71
- package/dist/core/review/remap.js +4 -141
- package/dist/core/review/signal.js +1 -12
- package/dist/core/review/stage.js +1 -184
- package/dist/core/review/store.js +1 -168
- package/dist/core/review/types.js +1 -23
- package/dist/core/runtime/advertised-command-invocation.js +1 -233
- package/dist/core/runtime/auth-reload.js +1 -67
- package/dist/core/runtime/banner.js +1 -51
- package/dist/core/runtime/bearings-render.js +18 -250
- package/dist/core/runtime/bearings.js +7 -194
- package/dist/core/runtime/bin-contributions.js +2 -186
- package/dist/core/runtime/boot-root.js +1 -107
- package/dist/core/runtime/branded-host.js +2 -264
- package/dist/core/runtime/broker/auth-reload.js +1 -157
- package/dist/core/runtime/broker/client-registry.js +1 -179
- package/dist/core/runtime/broker/daemon-ops.js +1 -88
- package/dist/core/runtime/broker/engine-drive.js +1 -354
- package/dist/core/runtime/broker/engine-routing.js +1 -211
- package/dist/core/runtime/broker/event-projection.js +1 -193
- package/dist/core/runtime/broker/extension-abort.js +1 -36
- package/dist/core/runtime/broker/fault-retry.js +1 -588
- package/dist/core/runtime/broker/frame-client.js +1 -132
- package/dist/core/runtime/broker/frame-dispatch.js +1 -183
- package/dist/core/runtime/broker/frame-engine-control.js +1 -231
- package/dist/core/runtime/broker/frame-memory-refs.js +1 -41
- package/dist/core/runtime/broker/frame-model-query.js +1 -69
- package/dist/core/runtime/broker/frame-read.js +1 -116
- package/dist/core/runtime/broker/frame-replies.js +1 -64
- package/dist/core/runtime/broker/frame-session.js +4 -203
- package/dist/core/runtime/broker/held-deferred-inbox.js +1 -13
- package/dist/core/runtime/broker/inbox.js +13 -163
- package/dist/core/runtime/broker/node-named.js +1 -27
- package/dist/core/runtime/broker/read-ops.js +1 -171
- package/dist/core/runtime/broker/rebind.js +1 -318
- package/dist/core/runtime/broker/tool-groups.js +1 -246
- package/dist/core/runtime/broker/turn-admission.js +1 -31
- package/dist/core/runtime/broker/turn-ignition.js +1 -84
- package/dist/core/runtime/broker-cli.js +3 -81
- package/dist/core/runtime/broker-extension-render.js +5 -135
- package/dist/core/runtime/broker-inventory.js +1 -116
- package/dist/core/runtime/broker-persona-guidance.js +4 -154
- package/dist/core/runtime/broker-protocol.js +3 -152
- package/dist/core/runtime/broker-request.js +1 -85
- package/dist/core/runtime/broker-sdk.js +1 -129
- package/dist/core/runtime/broker.js +1 -1214
- package/dist/core/runtime/canvas-extensions.js +1 -96
- package/dist/core/runtime/chat-inventory-rows.js +1 -105
- package/dist/core/runtime/close.js +1 -265
- package/dist/core/runtime/command-expansion.js +9 -104
- package/dist/core/runtime/command-surface.js +1 -117
- package/dist/core/runtime/connectivity.js +1 -73
- package/dist/core/runtime/deliver-live.js +1 -88
- package/dist/core/runtime/fault-recovery.js +1 -83
- package/dist/core/runtime/fault.js +1 -17
- package/dist/core/runtime/fleet.js +1 -58
- package/dist/core/runtime/front-door-env.js +1 -16
- package/dist/core/runtime/front-door.js +7 -183
- package/dist/core/runtime/headless-pi.js +1 -161
- package/dist/core/runtime/host.js +1 -457
- package/dist/core/runtime/interactive-deliver.js +1 -51
- package/dist/core/runtime/invocation.js +0 -10
- package/dist/core/runtime/kickoff.js +30 -327
- package/dist/core/runtime/launch-config-worker.js +1 -12
- package/dist/core/runtime/launch-prompt.js +4 -13
- package/dist/core/runtime/launch-target.js +1 -55
- package/dist/core/runtime/launch.js +1 -483
- package/dist/core/runtime/lifecycle.js +2 -213
- package/dist/core/runtime/managed-provider-cooling.js +1 -62
- package/dist/core/runtime/memory.js +1 -17
- package/dist/core/runtime/model-registry.js +1 -13
- package/dist/core/runtime/model-selection.js +1 -135
- package/dist/core/runtime/model-swap.js +1 -86
- package/dist/core/runtime/naming.js +14 -298
- package/dist/core/runtime/nerd-font.js +2 -127
- package/dist/core/runtime/node-read.js +2 -386
- package/dist/core/runtime/nodes.js +1 -331
- package/dist/core/runtime/outcome-document.js +1 -97
- package/dist/core/runtime/package-health.js +4 -99
- package/dist/core/runtime/persona.js +2 -55
- package/dist/core/runtime/pi-cli.js +1 -65
- package/dist/core/runtime/pi-vendored.js +1 -66
- package/dist/core/runtime/placement-tmux.js +1 -81
- package/dist/core/runtime/placement.js +1 -386
- package/dist/core/runtime/promote.js +1 -174
- package/dist/core/runtime/prospective-inventory-cli.js +3 -61
- package/dist/core/runtime/prospective-inventory.js +2 -88
- package/dist/core/runtime/recap.js +27 -103
- package/dist/core/runtime/recycle.js +1 -190
- package/dist/core/runtime/reopen.js +1 -138
- package/dist/core/runtime/reset.js +1 -245
- package/dist/core/runtime/resume-root.js +10 -290
- package/dist/core/runtime/revive-all.js +1 -107
- package/dist/core/runtime/revive.js +4 -544
- package/dist/core/runtime/roadmap.js +4 -38
- package/dist/core/runtime/session-branch.js +1 -46
- package/dist/core/runtime/session-cycles.js +1 -110
- package/dist/core/runtime/session-list-cache.js +1 -406
- package/dist/core/runtime/session-visibility.js +1 -99
- package/dist/core/runtime/shell-expansion.js +9 -100
- package/dist/core/runtime/situational-context.js +2 -67
- package/dist/core/runtime/situational-live.js +1 -41
- package/dist/core/runtime/spawn-env.js +1 -255
- package/dist/core/runtime/spawn.js +3 -577
- package/dist/core/runtime/stamp/channel.js +1 -76
- package/dist/core/runtime/stamp/protocol.js +1 -113
- package/dist/core/runtime/stop-guard.js +7 -116
- package/dist/core/runtime/stop-signals.js +1 -46
- package/dist/core/runtime/stream-watchdog.js +1 -134
- package/dist/core/runtime/structured-output.js +4 -156
- package/dist/core/runtime/surface-bg.js +1 -85
- package/dist/core/runtime/tmux-bindings.js +4 -730
- package/dist/core/runtime/tmux-chrome.js +1 -5
- package/dist/core/runtime/tmux-driver.js +7 -637
- package/dist/core/runtime/tool-group-summary.js +6 -85
- package/dist/core/runtime/turn-visibility.js +1 -31
- package/dist/core/runtime/view-socket.js +1 -83
- package/dist/core/runtime/warm-pool.js +1 -395
- package/dist/core/scope.js +1 -254
- package/dist/core/scoped-state/db.js +1 -135
- package/dist/core/scoped-state/migrate.js +3 -181
- package/dist/core/scoped-state/paths.js +1 -27
- package/dist/core/scoped-state/profiles.js +1 -62
- package/dist/core/scoped-state/providers.js +1 -8
- package/dist/core/scoped-state/schema.js +3 -16
- package/dist/core/scoped-state/settings.js +1 -82
- package/dist/core/secrets.js +2 -55
- package/dist/core/self-update.js +1 -71
- package/dist/core/session-model/session-state.js +1 -180
- package/dist/core/shell-segments.js +4 -169
- package/dist/core/spawn.js +1 -26
- package/dist/core/stdout-errors.js +1 -14
- package/dist/core/subscription-state.js +3 -193
- package/dist/core/substrate/frontmatter-validation.js +1 -105
- package/dist/core/substrate/gate-explain.js +1 -424
- package/dist/core/substrate/gate.js +1 -26
- package/dist/core/substrate/index.js +1 -30
- package/dist/core/substrate/injected-store.js +1 -249
- package/dist/core/substrate/listings.js +1 -115
- package/dist/core/substrate/on-read-node.js +1 -36
- package/dist/core/substrate/on-read.js +9 -315
- package/dist/core/substrate/plan.js +1 -266
- package/dist/core/substrate/render-node.js +1 -30
- package/dist/core/substrate/render.js +65 -689
- package/dist/core/substrate/schema.js +1 -186
- package/dist/core/substrate/session-cache.js +1 -83
- package/dist/core/substrate/subject-fields.js +1 -35
- package/dist/core/substrate/subject.js +1 -47
- package/dist/core/substrate/surface-match.js +1 -242
- package/dist/core/termrender/code-doc.js +5 -92
- package/dist/core/termrender/display.js +2 -56
- package/dist/core/termrender/termrender.js +14 -719
- package/dist/core/termrender/version.js +1 -1
- package/dist/core/timing.js +2 -94
- package/dist/core/tui/draw.js +2 -378
- package/dist/core/tui/fuzzy.js +1 -38
- package/dist/core/tui/markdown.js +3 -407
- package/dist/core/tui/page-host.js +1 -74
- package/dist/core/tui/panel.js +1 -137
- package/dist/core/tui/terminal.js +2 -100
- package/dist/core/user-settings.js +1 -454
- package/dist/core/wake.js +1 -296
- package/dist/core/worktree-close.js +6 -228
- package/dist/core/worktree-containment.js +3 -48
- package/dist/core/worktree-landing.js +4 -56
- package/dist/core/worktree-mutation-async.js +10 -280
- package/dist/core/worktree-quarantine.js +1 -54
- package/dist/core/worktree-sweep.js +6 -453
- package/dist/core/worktree.js +18 -899
- package/dist/daemon/api/bridge.js +8 -418
- package/dist/daemon/api/handlers/attach.js +1 -65
- package/dist/daemon/api/handlers/bash-jobs.js +2 -91
- package/dist/daemon/api/handlers/broker-ops.js +1 -447
- package/dist/daemon/api/handlers/broker-recovery.js +1 -251
- package/dist/daemon/api/handlers/canvas.js +6 -490
- package/dist/daemon/api/handlers/chat-inventory.js +1 -25
- package/dist/daemon/api/handlers/crons.js +1 -373
- package/dist/daemon/api/handlers/daemon.js +1 -76
- package/dist/daemon/api/handlers/feedback-comments.js +3 -199
- package/dist/daemon/api/handlers/files.js +1 -63
- package/dist/daemon/api/handlers/focus.js +1 -92
- package/dist/daemon/api/handlers/health.js +1 -76
- package/dist/daemon/api/handlers/human-requests.js +1 -379
- package/dist/daemon/api/handlers/human.js +1 -3
- package/dist/daemon/api/handlers/inbox-page.js +1 -89
- package/dist/daemon/api/handlers/inbox.js +1 -301
- package/dist/daemon/api/handlers/memory.js +1 -50
- package/dist/daemon/api/handlers/messages.js +2 -506
- package/dist/daemon/api/handlers/model-config.js +1 -44
- package/dist/daemon/api/handlers/modelauth.js +1 -165
- package/dist/daemon/api/handlers/node-outcomes.js +1 -181
- package/dist/daemon/api/handlers/nodes.js +1 -939
- package/dist/daemon/api/handlers/profiles.js +1 -140
- package/dist/daemon/api/handlers/prospective-chat-inventory.js +1 -59
- package/dist/daemon/api/handlers/reports.js +16 -332
- package/dist/daemon/api/handlers/review-comments.js +1 -465
- package/dist/daemon/api/handlers/reviews.js +1 -200
- package/dist/daemon/api/handlers/subscriptions.js +1 -53
- package/dist/daemon/api/handlers/validate.js +1 -58
- package/dist/daemon/api/handlers/worktree.js +1 -39
- package/dist/daemon/api/map.js +2 -735
- package/dist/daemon/api/router.js +1 -190
- package/dist/daemon/api/server.js +11 -408
- package/dist/daemon/boot-migrations.js +1 -31
- package/dist/daemon/companion-retire.js +1 -34
- package/dist/daemon/control.js +1 -22
- package/dist/daemon/cron/armed-context.js +1 -100
- package/dist/daemon/cron/capture.js +2 -45
- package/dist/daemon/cron/disposition.js +1 -55
- package/dist/daemon/cron/escalation.js +3 -124
- package/dist/daemon/cron/held.js +1 -20
- package/dist/daemon/cron/lease-recovery.js +1 -119
- package/dist/daemon/cron/live-runs.js +1 -23
- package/dist/daemon/cron/passes.js +1 -58
- package/dist/daemon/cron/settle.js +1 -61
- package/dist/daemon/cron/sinks.js +2 -59
- package/dist/daemon/cron-run.js +1 -405
- package/dist/daemon/crtrd-cli.js +1 -23
- package/dist/daemon/crtrd.js +8 -854
- package/dist/daemon/delivery/run-delivery.js +1 -164
- package/dist/daemon/fleet.js +17 -475
- package/dist/daemon/human/finish.js +10 -179
- package/dist/daemon/human/settle.js +1 -89
- package/dist/daemon/human/sweep.js +1 -66
- package/dist/daemon/manage.js +2 -595
- package/dist/daemon/messaging/node-message.js +1 -99
- package/dist/daemon/park-activity.js +1 -30
- package/dist/daemon/park-pending.js +1 -52
- package/dist/daemon/pidfile.js +1 -37
- package/dist/daemon/profile-delete.js +1 -306
- package/dist/daemon/reconcilers/bash-deadline.js +1 -80
- package/dist/daemon/reconcilers/broker-supervision.js +4 -761
- package/dist/daemon/reconcilers/controller-death.js +1 -14
- package/dist/daemon/reconcilers/cron-lane.js +1 -29
- package/dist/daemon/reconcilers/delivery-lane.js +1 -130
- package/dist/daemon/reconcilers/live-obligation.js +1 -87
- package/dist/daemon/reconcilers/managed-worktree-sweep.js +1 -202
- package/dist/daemon/reconcilers/node-deadline.js +1 -82
- package/dist/daemon/reconcilers/node-lifecycle/freeze-lane.js +1 -172
- package/dist/daemon/reconcilers/node-lifecycle/respawn-policy.js +1 -59
- package/dist/daemon/reconcilers/node-lifecycle/terminating.js +1 -12
- package/dist/daemon/reconcilers/node-lifecycle/tick.js +1 -146
- package/dist/daemon/reconcilers/node-lifecycle/wants-execution.js +1 -11
- package/dist/daemon/reconcilers/pending-review-submit.js +1 -36
- package/dist/daemon/reconcilers/storage-maintenance.js +1 -207
- package/dist/daemon/review/comment-notify.js +2 -109
- package/dist/daemon/review/companion.js +1 -29
- package/dist/daemon/review/deliver.js +3 -8
- package/dist/daemon/review/finish.js +1 -122
- package/dist/daemon/review/sweep.js +1 -18
- package/dist/daemon/startup-policy.js +1 -1
- package/dist/daemon/supervise-cadence.js +1 -6
- package/dist/hook-authoring.js +5 -447
- package/dist/hook-process.js +1 -34
- package/dist/index.js +1 -52
- package/dist/migrations/001-surfaces-frontmatter.js +1 -161
- package/dist/migrations/002-profile-project-memory.js +1 -72
- package/dist/migrations/003-repository-root-memory-identity/front-door.js +11 -231
- package/dist/migrations/003-repository-root-memory-identity/index.js +5 -513
- package/dist/migrations/003-repository-root-memory-identity/references.js +5 -469
- package/dist/migrations/003-repository-root-memory-identity/repository-facts.js +3 -349
- package/dist/migrations/activation.js +2 -89
- package/dist/migrations/convergent.js +2 -82
- package/dist/migrations/corpus.js +3 -483
- package/dist/migrations/frontmatter-splice.js +8 -176
- package/dist/migrations/profile-manifests.js +2 -70
- package/dist/migrations/registry.js +1 -42
- package/dist/migrations/runner.js +1 -85
- package/dist/migrations/types.js +0 -24
- package/dist/pi-extensions/broker-local.js +2 -106
- package/dist/pi-extensions/canvas-bash-valve.js +7 -461
- package/dist/pi-extensions/canvas-context-intro.js +2 -113
- package/dist/pi-extensions/canvas-doc-substrate.js +9 -178
- package/dist/pi-extensions/canvas-goal-capture.js +1 -83
- package/dist/pi-extensions/canvas-inbox-watcher.js +1 -1010
- package/dist/pi-extensions/canvas-passive-context.js +14 -203
- package/dist/pi-extensions/canvas-preview-result.js +2 -72
- package/dist/pi-extensions/canvas-prompt-scrub.js +2 -54
- package/dist/pi-extensions/canvas-recap.js +11 -405
- package/dist/pi-extensions/canvas-review-boundary.js +3 -63
- package/dist/pi-extensions/canvas-stamp.js +2 -77
- package/dist/pi-extensions/canvas-stophook.js +1 -643
- package/dist/pi-extensions/canvas-structured-output.js +13 -35
- package/dist/pi-extensions/canvas-tool-guide.js +9 -78
- package/dist/pi-extensions/envelope-merge.js +8 -29
- package/dist/prompts/review.js +20 -42
- package/dist/shared/birth-announcement.js +1 -25
- package/dist/shared/crtr-version.js +1 -18
- package/dist/shared/env.js +1 -214
- package/dist/shared/generated-context.js +11 -226
- package/dist/shared/predicates.js +1 -4
- package/dist/shared/shell-quote.js +1 -5
- package/dist/shared/tool-groups.js +1 -64
- package/dist/shared/working-activity.js +1 -27
- package/dist/suppress-experimental-warnings.js +1 -15
- package/dist/types.js +1 -185
- package/docs/public-api.md +10 -9
- package/package.json +5 -4
- package/runtime.lock.json +5 -5
- package/dist/api/__tests__/integration/client.test.d.ts +0 -1
- package/dist/api/__tests__/integration/client.test.js +0 -163
- package/dist/builtin-pi-packages/pi-crtr-extensions/__tests__/insights-active-init.test.ts +0 -98
- package/dist/builtin-pi-packages/pi-crtr-extensions/extensions/__tests__/crtr-commands.test.ts +0 -93
- package/dist/builtin-pi-packages/pi-crtr-extensions/extensions/__tests__/integration/provider-rotation.test.ts +0 -2530
- package/dist/clients/__tests__/helpers/human-daemon.d.ts +0 -11
- package/dist/clients/__tests__/helpers/human-daemon.js +0 -60
- package/dist/clients/attach/__tests__/attach-remote-readonly.test.d.ts +0 -1
- package/dist/clients/attach/__tests__/attach-remote-readonly.test.js +0 -97
- package/dist/clients/attach/__tests__/bash-call-width.test.d.ts +0 -1
- package/dist/clients/attach/__tests__/bash-call-width.test.js +0 -38
- package/dist/clients/attach/__tests__/chat-view-snapshot-ordering.test.d.ts +0 -1
- package/dist/clients/attach/__tests__/chat-view-snapshot-ordering.test.js +0 -175
- package/dist/clients/attach/__tests__/completion-frecency.test.d.ts +0 -1
- package/dist/clients/attach/__tests__/completion-frecency.test.js +0 -35
- package/dist/clients/attach/__tests__/context-message.test.d.ts +0 -1
- package/dist/clients/attach/__tests__/context-message.test.js +0 -130
- package/dist/clients/attach/__tests__/crtr-output.test.d.ts +0 -1
- package/dist/clients/attach/__tests__/crtr-output.test.js +0 -68
- package/dist/clients/attach/__tests__/diagram.test.d.ts +0 -1
- package/dist/clients/attach/__tests__/diagram.test.js +0 -42
- package/dist/clients/attach/__tests__/edit-diff.test.d.ts +0 -1
- package/dist/clients/attach/__tests__/edit-diff.test.js +0 -31
- package/dist/clients/attach/__tests__/frame-selection.test.d.ts +0 -1
- package/dist/clients/attach/__tests__/frame-selection.test.js +0 -84
- package/dist/clients/attach/__tests__/group-activity.test.d.ts +0 -1
- package/dist/clients/attach/__tests__/group-activity.test.js +0 -165
- package/dist/clients/attach/__tests__/oauth-dialog-lifecycle.test.d.ts +0 -1
- package/dist/clients/attach/__tests__/oauth-dialog-lifecycle.test.js +0 -83
- package/dist/clients/attach/__tests__/pane-tag-successor.test.d.ts +0 -1
- package/dist/clients/attach/__tests__/pane-tag-successor.test.js +0 -56
- package/dist/clients/attach/__tests__/profile-files.test.d.ts +0 -1
- package/dist/clients/attach/__tests__/profile-files.test.js +0 -21
- package/dist/clients/attach/__tests__/prompt-preview.test.d.ts +0 -1
- package/dist/clients/attach/__tests__/prompt-preview.test.js +0 -21
- package/dist/clients/attach/__tests__/ref-autocomplete.test.d.ts +0 -1
- package/dist/clients/attach/__tests__/ref-autocomplete.test.js +0 -64
- package/dist/clients/attach/__tests__/titled-editor-paste.test.d.ts +0 -1
- package/dist/clients/attach/__tests__/titled-editor-paste.test.js +0 -114
- package/dist/clients/attach/__tests__/titled-editor-preview.test.d.ts +0 -1
- package/dist/clients/attach/__tests__/titled-editor-preview.test.js +0 -83
- package/dist/clients/inbox/__tests__/integration/inbox-controller.test.d.ts +0 -1
- package/dist/clients/inbox/__tests__/integration/inbox-controller.test.js +0 -81
- package/dist/clients/inbox/__tests__/integration/mount-panel.test.d.ts +0 -1
- package/dist/clients/inbox/__tests__/integration/mount-panel.test.js +0 -135
- package/dist/clients/inbox/__tests__/integration/stale-row-activation.test.d.ts +0 -1
- package/dist/clients/inbox/__tests__/integration/stale-row-activation.test.js +0 -66
- package/dist/clients/inbox/review/__tests__/editor-roundtrip.test.d.ts +0 -1
- package/dist/clients/inbox/review/__tests__/editor-roundtrip.test.js +0 -35
- package/dist/clients/inbox/review/__tests__/review-core.test.d.ts +0 -1
- package/dist/clients/inbox/review/__tests__/review-core.test.js +0 -52
- package/dist/clients/inbox/review/__tests__/teardown-notice.test.d.ts +0 -1
- package/dist/clients/inbox/review/__tests__/teardown-notice.test.js +0 -100
- package/dist/commands/__tests__/api-client-cold-start-diagnostic.test.d.ts +0 -1
- package/dist/commands/__tests__/api-client-cold-start-diagnostic.test.js +0 -69
- package/dist/commands/__tests__/human.test.d.ts +0 -1
- package/dist/commands/__tests__/human.test.js +0 -172
- package/dist/commands/__tests__/integration/dashboard-snapshot.test.d.ts +0 -1
- package/dist/commands/__tests__/integration/dashboard-snapshot.test.js +0 -237
- package/dist/commands/__tests__/integration/migrate.test.d.ts +0 -1
- package/dist/commands/__tests__/integration/migrate.test.js +0 -1330
- package/dist/commands/__tests__/node-message.test.d.ts +0 -1
- package/dist/commands/__tests__/node-message.test.js +0 -112
- package/dist/commands/__tests__/node-new.test.d.ts +0 -1
- package/dist/commands/__tests__/node-new.test.js +0 -58
- package/dist/commands/__tests__/revive-now-gate.test.d.ts +0 -1
- package/dist/commands/__tests__/revive-now-gate.test.js +0 -62
- package/dist/commands/__tests__/seam/daemon-status.test.d.ts +0 -1
- package/dist/commands/__tests__/seam/daemon-status.test.js +0 -29
- package/dist/commands/__tests__/surface-reload-target.test.d.ts +0 -1
- package/dist/commands/__tests__/surface-reload-target.test.js +0 -21
- package/dist/commands/memory/__tests__/command-selector-and-mutation-guards.test.d.ts +0 -1
- package/dist/commands/memory/__tests__/command-selector-and-mutation-guards.test.js +0 -379
- package/dist/commands/memory/__tests__/memory-list-and-lint-ignore.test.d.ts +0 -1
- package/dist/commands/memory/__tests__/memory-list-and-lint-ignore.test.js +0 -124
- package/dist/commands/memory/__tests__/repository-root-lint.test.d.ts +0 -1
- package/dist/commands/memory/__tests__/repository-root-lint.test.js +0 -148
- package/dist/commands/sys/__tests__/config-model-ladders.test.d.ts +0 -1
- package/dist/commands/sys/__tests__/config-model-ladders.test.js +0 -114
- package/dist/commands/sys/__tests__/setup-core.test.d.ts +0 -1
- package/dist/commands/sys/__tests__/setup-core.test.js +0 -45
- package/dist/commands/sys/__tests__/sync-project-guidance.test.d.ts +0 -1
- package/dist/commands/sys/__tests__/sync-project-guidance.test.js +0 -244
- package/dist/core/__tests__/bash-guard.test.d.ts +0 -1
- package/dist/core/__tests__/bash-guard.test.js +0 -190
- package/dist/core/__tests__/boot-fault-attempt.test.d.ts +0 -1
- package/dist/core/__tests__/boot-fault-attempt.test.js +0 -105
- package/dist/core/__tests__/boot.test.d.ts +0 -1
- package/dist/core/__tests__/boot.test.js +0 -274
- package/dist/core/__tests__/branded-host-concurrency.test.d.ts +0 -1
- package/dist/core/__tests__/branded-host-concurrency.test.js +0 -72
- package/dist/core/__tests__/broker-extension-canvas-db-boundary.test.d.ts +0 -1
- package/dist/core/__tests__/broker-extension-canvas-db-boundary.test.js +0 -75
- package/dist/core/__tests__/broker-launch-candidates.test.d.ts +0 -1
- package/dist/core/__tests__/broker-launch-candidates.test.js +0 -311
- package/dist/core/__tests__/broker-preflight.test.d.ts +0 -1
- package/dist/core/__tests__/broker-preflight.test.js +0 -95
- package/dist/core/__tests__/broker-stream-watchdog-floor.test.d.ts +0 -1
- package/dist/core/__tests__/broker-stream-watchdog-floor.test.js +0 -82
- package/dist/core/__tests__/broker-turn-admission.test.d.ts +0 -1
- package/dist/core/__tests__/broker-turn-admission.test.js +0 -44
- package/dist/core/__tests__/canvas-db-boundary.test.d.ts +0 -1
- package/dist/core/__tests__/canvas-db-boundary.test.js +0 -46
- package/dist/core/__tests__/canvas-inbox-watcher-hold.test.d.ts +0 -1
- package/dist/core/__tests__/canvas-inbox-watcher-hold.test.js +0 -710
- package/dist/core/__tests__/canvas-inbox-watcher-naming.test.d.ts +0 -1
- package/dist/core/__tests__/canvas-inbox-watcher-naming.test.js +0 -310
- package/dist/core/__tests__/canvas-inbox-watcher.test.d.ts +0 -1
- package/dist/core/__tests__/canvas-inbox-watcher.test.js +0 -397
- package/dist/core/__tests__/canvas.test.d.ts +0 -1
- package/dist/core/__tests__/canvas.test.js +0 -138
- package/dist/core/__tests__/child-death-wake.test.d.ts +0 -1
- package/dist/core/__tests__/child-death-wake.test.js +0 -153
- package/dist/core/__tests__/cli-help-contract.test.d.ts +0 -1
- package/dist/core/__tests__/cli-help-contract.test.js +0 -152
- package/dist/core/__tests__/close.test.d.ts +0 -1
- package/dist/core/__tests__/close.test.js +0 -284
- package/dist/core/__tests__/collectible.test.d.ts +0 -1
- package/dist/core/__tests__/collectible.test.js +0 -89
- package/dist/core/__tests__/config-change-delta.test.d.ts +0 -1
- package/dist/core/__tests__/config-change-delta.test.js +0 -108
- package/dist/core/__tests__/context-intro.test.d.ts +0 -1
- package/dist/core/__tests__/context-intro.test.js +0 -123
- package/dist/core/__tests__/cron-armed-context-failure.test.d.ts +0 -1
- package/dist/core/__tests__/cron-armed-context-failure.test.js +0 -150
- package/dist/core/__tests__/cron-held-settlement.test.d.ts +0 -1
- package/dist/core/__tests__/cron-held-settlement.test.js +0 -240
- package/dist/core/__tests__/cron-node-sink-parked-root.test.d.ts +0 -1
- package/dist/core/__tests__/cron-node-sink-parked-root.test.js +0 -166
- package/dist/core/__tests__/cron-self-cancel-delivery.test.d.ts +0 -1
- package/dist/core/__tests__/cron-self-cancel-delivery.test.js +0 -84
- package/dist/core/__tests__/cron-timeout-descendants.test.d.ts +0 -1
- package/dist/core/__tests__/cron-timeout-descendants.test.js +0 -114
- package/dist/core/__tests__/daemon-boot.test.d.ts +0 -1
- package/dist/core/__tests__/daemon-boot.test.js +0 -422
- package/dist/core/__tests__/daemon-wedge.test.d.ts +0 -1
- package/dist/core/__tests__/daemon-wedge.test.js +0 -106
- package/dist/core/__tests__/dead-node-policy-table.test.d.ts +0 -1
- package/dist/core/__tests__/dead-node-policy-table.test.js +0 -77
- package/dist/core/__tests__/events-contract.test.d.ts +0 -1
- package/dist/core/__tests__/events-contract.test.js +0 -76
- package/dist/core/__tests__/extension-abort.test.d.ts +0 -1
- package/dist/core/__tests__/extension-abort.test.js +0 -21
- package/dist/core/__tests__/fault-classifier.test.d.ts +0 -1
- package/dist/core/__tests__/fault-classifier.test.js +0 -138
- package/dist/core/__tests__/fixtures/api-server-host.d.ts +0 -1
- package/dist/core/__tests__/fixtures/api-server-host.js +0 -47
- package/dist/core/__tests__/fixtures/c3-custom-provider-ext.d.ts +0 -2
- package/dist/core/__tests__/fixtures/c3-custom-provider-ext.js +0 -34
- package/dist/core/__tests__/fixtures/c5-command-boundary-ext.d.ts +0 -2
- package/dist/core/__tests__/fixtures/c5-command-boundary-ext.js +0 -32
- package/dist/core/__tests__/fixtures/fake-engine.d.ts +0 -347
- package/dist/core/__tests__/fixtures/fake-engine.js +0 -1509
- package/dist/core/__tests__/fixtures/fake-pi-host.d.ts +0 -2
- package/dist/core/__tests__/fixtures/fake-pi-host.js +0 -311
- package/dist/core/__tests__/fixtures/memory-slash-live-probe.d.ts +0 -1
- package/dist/core/__tests__/fixtures/memory-slash-live-probe.js +0 -75
- package/dist/core/__tests__/fixtures/metadata-migration-race.d.ts +0 -1
- package/dist/core/__tests__/fixtures/metadata-migration-race.js +0 -49
- package/dist/core/__tests__/focuses.test.d.ts +0 -1
- package/dist/core/__tests__/focuses.test.js +0 -113
- package/dist/core/__tests__/fs-utils.test.d.ts +0 -1
- package/dist/core/__tests__/fs-utils.test.js +0 -50
- package/dist/core/__tests__/helpers/broker-clients.d.ts +0 -43
- package/dist/core/__tests__/helpers/broker-clients.js +0 -174
- package/dist/core/__tests__/helpers/fleet.d.ts +0 -12
- package/dist/core/__tests__/helpers/fleet.js +0 -50
- package/dist/core/__tests__/helpers/harness.d.ts +0 -124
- package/dist/core/__tests__/helpers/harness.js +0 -806
- package/dist/core/__tests__/helpers/viewer-panes.d.ts +0 -12
- package/dist/core/__tests__/helpers/viewer-panes.js +0 -133
- package/dist/core/__tests__/history-inbox.test.d.ts +0 -1
- package/dist/core/__tests__/history-inbox.test.js +0 -121
- package/dist/core/__tests__/human-action-delivery.test.d.ts +0 -1
- package/dist/core/__tests__/human-action-delivery.test.js +0 -162
- package/dist/core/__tests__/human-actions.test.d.ts +0 -1
- package/dist/core/__tests__/human-actions.test.js +0 -120
- package/dist/core/__tests__/inline-memory-refs.test.d.ts +0 -1
- package/dist/core/__tests__/inline-memory-refs.test.js +0 -225
- package/dist/core/__tests__/integration/broker-fork-seam.test.d.ts +0 -1
- package/dist/core/__tests__/integration/broker-fork-seam.test.js +0 -193
- package/dist/core/__tests__/integration/broker-sdk-wiring.test.d.ts +0 -1
- package/dist/core/__tests__/integration/broker-sdk-wiring.test.js +0 -750
- package/dist/core/__tests__/integration/broker-snapshot-history.test.d.ts +0 -1
- package/dist/core/__tests__/integration/broker-snapshot-history.test.js +0 -288
- package/dist/core/__tests__/integration/broker-wedge-supervision.test.d.ts +0 -1
- package/dist/core/__tests__/integration/broker-wedge-supervision.test.js +0 -103
- package/dist/core/__tests__/integration/command-plugins.test.d.ts +0 -1
- package/dist/core/__tests__/integration/command-plugins.test.js +0 -1200
- package/dist/core/__tests__/integration/deferred-no-wake.test.d.ts +0 -1
- package/dist/core/__tests__/integration/deferred-no-wake.test.js +0 -610
- package/dist/core/__tests__/integration/flagship-lifecycle.test.d.ts +0 -1
- package/dist/core/__tests__/integration/flagship-lifecycle.test.js +0 -264
- package/dist/core/__tests__/integration/fresh-home-commands.test.d.ts +0 -1
- package/dist/core/__tests__/integration/fresh-home-commands.test.js +0 -49
- package/dist/core/__tests__/integration/git-optional-locks.test.d.ts +0 -1
- package/dist/core/__tests__/integration/git-optional-locks.test.js +0 -81
- package/dist/core/__tests__/integration/host-teardown-process-group.test.d.ts +0 -1
- package/dist/core/__tests__/integration/host-teardown-process-group.test.js +0 -480
- package/dist/core/__tests__/integration/lifecycle-hooks.test.d.ts +0 -1
- package/dist/core/__tests__/integration/lifecycle-hooks.test.js +0 -498
- package/dist/core/__tests__/integration/live-mutation-verbs.test.d.ts +0 -1
- package/dist/core/__tests__/integration/live-mutation-verbs.test.js +0 -180
- package/dist/core/__tests__/integration/live-mutation.test.d.ts +0 -1
- package/dist/core/__tests__/integration/live-mutation.test.js +0 -173
- package/dist/core/__tests__/integration/plugin-revalidate.test.d.ts +0 -1
- package/dist/core/__tests__/integration/plugin-revalidate.test.js +0 -359
- package/dist/core/__tests__/integration/profile-pause.test.d.ts +0 -1
- package/dist/core/__tests__/integration/profile-pause.test.js +0 -115
- package/dist/core/__tests__/integration/refresh-stall-recycle.test.d.ts +0 -1
- package/dist/core/__tests__/integration/refresh-stall-recycle.test.js +0 -151
- package/dist/core/__tests__/integration/revive.test.d.ts +0 -1
- package/dist/core/__tests__/integration/revive.test.js +0 -615
- package/dist/core/__tests__/integration/spawn-root.test.d.ts +0 -1
- package/dist/core/__tests__/integration/spawn-root.test.js +0 -536
- package/dist/core/__tests__/integration/subscription-delivery.test.d.ts +0 -1
- package/dist/core/__tests__/integration/subscription-delivery.test.js +0 -132
- package/dist/core/__tests__/integration/tmux-surface.test.d.ts +0 -1
- package/dist/core/__tests__/integration/tmux-surface.test.js +0 -330
- package/dist/core/__tests__/integration/worktree-land.test.d.ts +0 -1
- package/dist/core/__tests__/integration/worktree-land.test.js +0 -607
- package/dist/core/__tests__/integration/worktree-reap.test.d.ts +0 -1
- package/dist/core/__tests__/integration/worktree-reap.test.js +0 -842
- package/dist/core/__tests__/kickoff.test.d.ts +0 -1
- package/dist/core/__tests__/kickoff.test.js +0 -196
- package/dist/core/__tests__/lifecycle-terminal-reasons.test.d.ts +0 -1
- package/dist/core/__tests__/lifecycle-terminal-reasons.test.js +0 -62
- package/dist/core/__tests__/lifecycle.test.d.ts +0 -1
- package/dist/core/__tests__/lifecycle.test.js +0 -176
- package/dist/core/__tests__/live-lifecycle-prompt.test.d.ts +0 -1
- package/dist/core/__tests__/live-lifecycle-prompt.test.js +0 -63
- package/dist/core/__tests__/memory-resolver-precedence.test.d.ts +0 -1
- package/dist/core/__tests__/memory-resolver-precedence.test.js +0 -228
- package/dist/core/__tests__/migration.test.d.ts +0 -1
- package/dist/core/__tests__/migration.test.js +0 -946
- package/dist/core/__tests__/model-pin-durability.test.d.ts +0 -1
- package/dist/core/__tests__/model-pin-durability.test.js +0 -195
- package/dist/core/__tests__/model-routes-config.test.d.ts +0 -1
- package/dist/core/__tests__/model-routes-config.test.js +0 -150
- package/dist/core/__tests__/nested-store-discovery.test.d.ts +0 -1
- package/dist/core/__tests__/nested-store-discovery.test.js +0 -89
- package/dist/core/__tests__/node-outcome.test.d.ts +0 -1
- package/dist/core/__tests__/node-outcome.test.js +0 -246
- package/dist/core/__tests__/on-read-crouter-home-fence.test.d.ts +0 -1
- package/dist/core/__tests__/on-read-crouter-home-fence.test.js +0 -66
- package/dist/core/__tests__/on-read-dedup-resume.test.d.ts +0 -1
- package/dist/core/__tests__/on-read-dedup-resume.test.js +0 -132
- package/dist/core/__tests__/on-read-nested-store.test.d.ts +0 -1
- package/dist/core/__tests__/on-read-nested-store.test.js +0 -135
- package/dist/core/__tests__/parse-argv-stdin-secret.test.d.ts +0 -1
- package/dist/core/__tests__/parse-argv-stdin-secret.test.js +0 -68
- package/dist/core/__tests__/passive-subscription.test.d.ts +0 -1
- package/dist/core/__tests__/passive-subscription.test.js +0 -120
- package/dist/core/__tests__/pid-identity-match.test.d.ts +0 -1
- package/dist/core/__tests__/pid-identity-match.test.js +0 -145
- package/dist/core/__tests__/pid-zombie.test.d.ts +0 -1
- package/dist/core/__tests__/pid-zombie.test.js +0 -42
- package/dist/core/__tests__/plugin-kinds.test.d.ts +0 -1
- package/dist/core/__tests__/plugin-kinds.test.js +0 -182
- package/dist/core/__tests__/plugin-link-symlinked-scope-root.test.d.ts +0 -1
- package/dist/core/__tests__/plugin-link-symlinked-scope-root.test.js +0 -43
- package/dist/core/__tests__/plugin-page-components.test.d.ts +0 -1
- package/dist/core/__tests__/plugin-page-components.test.js +0 -159
- package/dist/core/__tests__/preview-mirror-cap.test.d.ts +0 -1
- package/dist/core/__tests__/preview-mirror-cap.test.js +0 -53
- package/dist/core/__tests__/preview-registry-sync.test.d.ts +0 -1
- package/dist/core/__tests__/preview-registry-sync.test.js +0 -107
- package/dist/core/__tests__/profile-project-memory-delivery.test.d.ts +0 -1
- package/dist/core/__tests__/profile-project-memory-delivery.test.js +0 -644
- package/dist/core/__tests__/prospective-inventory-capability-parity.test.d.ts +0 -1
- package/dist/core/__tests__/prospective-inventory-capability-parity.test.js +0 -91
- package/dist/core/__tests__/prune.test.d.ts +0 -1
- package/dist/core/__tests__/prune.test.js +0 -243
- package/dist/core/__tests__/push-final-guard.test.d.ts +0 -1
- package/dist/core/__tests__/push-final-guard.test.js +0 -191
- package/dist/core/__tests__/relaunch-root.test.d.ts +0 -1
- package/dist/core/__tests__/relaunch-root.test.js +0 -249
- package/dist/core/__tests__/remote-canvas-target.test.d.ts +0 -1
- package/dist/core/__tests__/remote-canvas-target.test.js +0 -93
- package/dist/core/__tests__/repository-association.test.d.ts +0 -1
- package/dist/core/__tests__/repository-association.test.js +0 -153
- package/dist/core/__tests__/repository-root-identity.test.d.ts +0 -1
- package/dist/core/__tests__/repository-root-identity.test.js +0 -223
- package/dist/core/__tests__/respawn-throttle.test.d.ts +0 -1
- package/dist/core/__tests__/respawn-throttle.test.js +0 -20
- package/dist/core/__tests__/review-model-floor.test.d.ts +0 -1
- package/dist/core/__tests__/review-model-floor.test.js +0 -83
- package/dist/core/__tests__/revive-all.test.d.ts +0 -1
- package/dist/core/__tests__/revive-all.test.js +0 -157
- package/dist/core/__tests__/revive-capacity.test.d.ts +0 -1
- package/dist/core/__tests__/revive-capacity.test.js +0 -184
- package/dist/core/__tests__/revive-parked-fresh.test.d.ts +0 -1
- package/dist/core/__tests__/revive-parked-fresh.test.js +0 -176
- package/dist/core/__tests__/scope-crouter-home-fence.test.d.ts +0 -1
- package/dist/core/__tests__/scope-crouter-home-fence.test.js +0 -55
- package/dist/core/__tests__/seam/broker-attach-multiclient.test.d.ts +0 -1
- package/dist/core/__tests__/seam/broker-attach-multiclient.test.js +0 -262
- package/dist/core/__tests__/seam/broker-attach-stream.test.d.ts +0 -1
- package/dist/core/__tests__/seam/broker-attach-stream.test.js +0 -176
- package/dist/core/__tests__/seam/broker-cap-freeze.test.d.ts +0 -1
- package/dist/core/__tests__/seam/broker-cap-freeze.test.js +0 -155
- package/dist/core/__tests__/seam/broker-crash-teardown.test.d.ts +0 -1
- package/dist/core/__tests__/seam/broker-crash-teardown.test.js +0 -131
- package/dist/core/__tests__/seam/broker-pane-resolution.test.d.ts +0 -1
- package/dist/core/__tests__/seam/broker-pane-resolution.test.js +0 -204
- package/dist/core/__tests__/seam/broker-provider-retry.test.d.ts +0 -1
- package/dist/core/__tests__/seam/broker-provider-retry.test.js +0 -686
- package/dist/core/__tests__/seam/broker-startup-diagnostics.test.d.ts +0 -1
- package/dist/core/__tests__/seam/broker-startup-diagnostics.test.js +0 -82
- package/dist/core/__tests__/seam/broker-whip-interrupt.test.d.ts +0 -1
- package/dist/core/__tests__/seam/broker-whip-interrupt.test.js +0 -50
- package/dist/core/__tests__/seam/deadline-wake-delivery.test.d.ts +0 -1
- package/dist/core/__tests__/seam/deadline-wake-delivery.test.js +0 -138
- package/dist/core/__tests__/seam/dormancy-release.test.d.ts +0 -1
- package/dist/core/__tests__/seam/dormancy-release.test.js +0 -516
- package/dist/core/__tests__/seam/held-deferred-human-prompt.test.d.ts +0 -1
- package/dist/core/__tests__/seam/held-deferred-human-prompt.test.js +0 -65
- package/dist/core/__tests__/seam/inbox-reference-guidance.test.d.ts +0 -1
- package/dist/core/__tests__/seam/inbox-reference-guidance.test.js +0 -84
- package/dist/core/__tests__/seam/memory-slash-node-relative-inventory.test.d.ts +0 -1
- package/dist/core/__tests__/seam/memory-slash-node-relative-inventory.test.js +0 -160
- package/dist/core/__tests__/seam/node-outcome-delivery.test.d.ts +0 -1
- package/dist/core/__tests__/seam/node-outcome-delivery.test.js +0 -177
- package/dist/core/__tests__/seam/prospective-inventory-stdout.test.d.ts +0 -1
- package/dist/core/__tests__/seam/prospective-inventory-stdout.test.js +0 -31
- package/dist/core/__tests__/seam/reopen-invalidated-worktree.test.d.ts +0 -1
- package/dist/core/__tests__/seam/reopen-invalidated-worktree.test.js +0 -60
- package/dist/core/__tests__/seam/self-close-teardown.test.d.ts +0 -1
- package/dist/core/__tests__/seam/self-close-teardown.test.js +0 -49
- package/dist/core/__tests__/seam/yield-refresh-transaction.test.d.ts +0 -1
- package/dist/core/__tests__/seam/yield-refresh-transaction.test.js +0 -100
- package/dist/core/__tests__/secrets.test.d.ts +0 -1
- package/dist/core/__tests__/secrets.test.js +0 -49
- package/dist/core/__tests__/self-update.test.d.ts +0 -1
- package/dist/core/__tests__/self-update.test.js +0 -46
- package/dist/core/__tests__/session-branch.test.d.ts +0 -1
- package/dist/core/__tests__/session-branch.test.js +0 -61
- package/dist/core/__tests__/session-cycles.test.d.ts +0 -1
- package/dist/core/__tests__/session-cycles.test.js +0 -133
- package/dist/core/__tests__/session-model.test.d.ts +0 -1
- package/dist/core/__tests__/session-model.test.js +0 -111
- package/dist/core/__tests__/spawn-worktree-id-conflict.test.d.ts +0 -1
- package/dist/core/__tests__/spawn-worktree-id-conflict.test.js +0 -71
- package/dist/core/__tests__/stdin-body-no-discard.test.d.ts +0 -1
- package/dist/core/__tests__/stdin-body-no-discard.test.js +0 -33
- package/dist/core/__tests__/stdout-errors.test.d.ts +0 -1
- package/dist/core/__tests__/stdout-errors.test.js +0 -16
- package/dist/core/__tests__/stop-guard.test.d.ts +0 -1
- package/dist/core/__tests__/stop-guard.test.js +0 -237
- package/dist/core/__tests__/stream-watchdog.test.d.ts +0 -1
- package/dist/core/__tests__/stream-watchdog.test.js +0 -154
- package/dist/core/__tests__/subscription-pool-credential-guard.test.d.ts +0 -1
- package/dist/core/__tests__/subscription-pool-credential-guard.test.js +0 -95
- package/dist/core/__tests__/tmux-driver-boundary.test.d.ts +0 -1
- package/dist/core/__tests__/tmux-driver-boundary.test.js +0 -50
- package/dist/core/__tests__/warm-claim-preference-snapshot.test.d.ts +0 -1
- package/dist/core/__tests__/warm-claim-preference-snapshot.test.js +0 -54
- package/dist/core/__tests__/worktree-landing.test.d.ts +0 -1
- package/dist/core/__tests__/worktree-landing.test.js +0 -11
- package/dist/core/__tests__/yield-ensures-daemon.test.d.ts +0 -1
- package/dist/core/__tests__/yield-ensures-daemon.test.js +0 -55
- package/dist/core/broker-client/__tests__/transport-relay.test.d.ts +0 -1
- package/dist/core/broker-client/__tests__/transport-relay.test.js +0 -214
- package/dist/core/broker-client/__tests__/transport-socket.test.d.ts +0 -1
- package/dist/core/broker-client/__tests__/transport-socket.test.js +0 -73
- package/dist/core/canvas/__tests__/attention.test.d.ts +0 -1
- package/dist/core/canvas/__tests__/attention.test.js +0 -83
- package/dist/core/canvas/__tests__/history-transcript.test.d.ts +0 -1
- package/dist/core/canvas/__tests__/history-transcript.test.js +0 -102
- package/dist/core/canvas/__tests__/remote-canvas-source.test.d.ts +0 -1
- package/dist/core/canvas/__tests__/remote-canvas-source.test.js +0 -328
- package/dist/core/canvas/__tests__/remote-transport.test.d.ts +0 -1
- package/dist/core/canvas/__tests__/remote-transport.test.js +0 -97
- package/dist/core/canvas/__tests__/render-remote.test.d.ts +0 -1
- package/dist/core/canvas/__tests__/render-remote.test.js +0 -243
- package/dist/core/canvas/__tests__/session-window.test.d.ts +0 -1
- package/dist/core/canvas/__tests__/session-window.test.js +0 -70
- package/dist/core/feed/__tests__/inbox-migrate.test.d.ts +0 -1
- package/dist/core/feed/__tests__/inbox-migrate.test.js +0 -49
- package/dist/core/human/__tests__/page-catalog.test.d.ts +0 -1
- package/dist/core/human/__tests__/page-catalog.test.js +0 -20
- package/dist/core/human/__tests__/page-html-markdown.test.d.ts +0 -1
- package/dist/core/human/__tests__/page-html-markdown.test.js +0 -48
- package/dist/core/human/__tests__/page.test.d.ts +0 -1
- package/dist/core/human/__tests__/page.test.js +0 -92
- package/dist/core/keybindings/__tests__/resolve.test.d.ts +0 -1
- package/dist/core/keybindings/__tests__/resolve.test.js +0 -171
- package/dist/core/profiles/__tests__/env-store.test.d.ts +0 -1
- package/dist/core/profiles/__tests__/env-store.test.js +0 -99
- package/dist/core/profiles/__tests__/fuzzy-match.test.d.ts +0 -1
- package/dist/core/profiles/__tests__/fuzzy-match.test.js +0 -51
- package/dist/core/profiles/__tests__/root-profile.test.d.ts +0 -1
- package/dist/core/profiles/__tests__/root-profile.test.js +0 -59
- package/dist/core/review/__tests__/capture-origin.test.d.ts +0 -1
- package/dist/core/review/__tests__/capture-origin.test.js +0 -150
- package/dist/core/review/__tests__/comments.test.d.ts +0 -1
- package/dist/core/review/__tests__/comments.test.js +0 -116
- package/dist/core/review/__tests__/remap.test.d.ts +0 -1
- package/dist/core/review/__tests__/remap.test.js +0 -177
- package/dist/core/review/__tests__/stage-identity.test.d.ts +0 -1
- package/dist/core/review/__tests__/stage-identity.test.js +0 -150
- package/dist/core/runtime/__tests__/engine-route.test.d.ts +0 -1
- package/dist/core/runtime/__tests__/engine-route.test.js +0 -36
- package/dist/core/runtime/__tests__/install-id-cache-scoping.test.d.ts +0 -1
- package/dist/core/runtime/__tests__/install-id-cache-scoping.test.js +0 -45
- package/dist/core/runtime/__tests__/node-env.test.d.ts +0 -1
- package/dist/core/runtime/__tests__/node-env.test.js +0 -73
- package/dist/core/runtime/__tests__/spawn-env.test.d.ts +0 -1
- package/dist/core/runtime/__tests__/spawn-env.test.js +0 -259
- package/dist/core/substrate/__tests__/surface-match-command.test.d.ts +0 -1
- package/dist/core/substrate/__tests__/surface-match-command.test.js +0 -89
- package/dist/core/substrate/__tests__/surface-match-memory-read.test.d.ts +0 -1
- package/dist/core/substrate/__tests__/surface-match-memory-read.test.js +0 -28
- package/dist/core/substrate/__tests__/surface-match-pre-command.test.d.ts +0 -1
- package/dist/core/substrate/__tests__/surface-match-pre-command.test.js +0 -92
- package/dist/daemon/__tests__/autostart-storm.test.d.ts +0 -1
- package/dist/daemon/__tests__/autostart-storm.test.js +0 -128
- package/dist/daemon/__tests__/broker-ownership.test.d.ts +0 -1
- package/dist/daemon/__tests__/broker-ownership.test.js +0 -25
- package/dist/daemon/__tests__/daemon-ownership.test.d.ts +0 -1
- package/dist/daemon/__tests__/daemon-ownership.test.js +0 -27
- package/dist/daemon/__tests__/helpers/source-daemon.d.ts +0 -30
- package/dist/daemon/__tests__/helpers/source-daemon.js +0 -176
- package/dist/daemon/__tests__/integration/api-startup-readiness.test.d.ts +0 -1
- package/dist/daemon/__tests__/integration/api-startup-readiness.test.js +0 -83
- package/dist/daemon/__tests__/integration/migration-startup.test.d.ts +0 -1
- package/dist/daemon/__tests__/integration/migration-startup.test.js +0 -127
- package/dist/daemon/__tests__/node-deadline-lane.test.d.ts +0 -1
- package/dist/daemon/__tests__/node-deadline-lane.test.js +0 -77
- package/dist/daemon/__tests__/node-outcome-birth-invariants.test.d.ts +0 -1
- package/dist/daemon/__tests__/node-outcome-birth-invariants.test.js +0 -146
- package/dist/daemon/__tests__/node-outcome-delivery.test.d.ts +0 -1
- package/dist/daemon/__tests__/node-outcome-delivery.test.js +0 -116
- package/dist/daemon/__tests__/reconciler-signature.test.d.ts +0 -1
- package/dist/daemon/__tests__/reconciler-signature.test.js +0 -37
- package/dist/daemon/__tests__/subtree-filter-freshness.test.d.ts +0 -1
- package/dist/daemon/__tests__/subtree-filter-freshness.test.js +0 -63
- package/dist/daemon/__tests__/thaw-order.test.d.ts +0 -1
- package/dist/daemon/__tests__/thaw-order.test.js +0 -55
- package/dist/daemon/api/__tests__/bridge-heartbeat.test.d.ts +0 -1
- package/dist/daemon/api/__tests__/bridge-heartbeat.test.js +0 -58
- package/dist/daemon/api/__tests__/broker-settle-park.test.d.ts +0 -1
- package/dist/daemon/api/__tests__/broker-settle-park.test.js +0 -175
- package/dist/daemon/api/__tests__/canvas-snapshot-fields.test.d.ts +0 -1
- package/dist/daemon/api/__tests__/canvas-snapshot-fields.test.js +0 -216
- package/dist/daemon/api/__tests__/error-seam.test.d.ts +0 -1
- package/dist/daemon/api/__tests__/error-seam.test.js +0 -83
- package/dist/daemon/api/__tests__/model-config.test.d.ts +0 -1
- package/dist/daemon/api/__tests__/model-config.test.js +0 -73
- package/dist/daemon/api/__tests__/node-create-description.test.d.ts +0 -1
- package/dist/daemon/api/__tests__/node-create-description.test.js +0 -127
- package/dist/daemon/api/__tests__/node-model-validation.test.d.ts +0 -1
- package/dist/daemon/api/__tests__/node-model-validation.test.js +0 -183
- package/dist/daemon/api/__tests__/nodes-activity-query.test.d.ts +0 -1
- package/dist/daemon/api/__tests__/nodes-activity-query.test.js +0 -99
- package/dist/daemon/api/__tests__/profile-launch-gates.test.d.ts +0 -1
- package/dist/daemon/api/__tests__/profile-launch-gates.test.js +0 -172
- package/dist/daemon/api/__tests__/profile-metadata-route.test.d.ts +0 -1
- package/dist/daemon/api/__tests__/profile-metadata-route.test.js +0 -95
- package/dist/daemon/api/__tests__/reopen-delivery.test.d.ts +0 -1
- package/dist/daemon/api/__tests__/reopen-delivery.test.js +0 -260
- package/dist/daemon/api/__tests__/seam/api-server.test.d.ts +0 -1
- package/dist/daemon/api/__tests__/seam/api-server.test.js +0 -442
- package/dist/daemon/api/__tests__/seam/b10-attach-modelauth.test.d.ts +0 -1
- package/dist/daemon/api/__tests__/seam/b10-attach-modelauth.test.js +0 -310
- package/dist/daemon/api/__tests__/seam/leaf-api-parity.test.d.ts +0 -1
- package/dist/daemon/api/__tests__/seam/leaf-api-parity.test.js +0 -351
- package/dist/daemon/api/__tests__/seam/node-outcome-api.test.d.ts +0 -1
- package/dist/daemon/api/__tests__/seam/node-outcome-api.test.js +0 -159
- package/dist/daemon/api/__tests__/seam/profile-delete.test.d.ts +0 -1
- package/dist/daemon/api/__tests__/seam/profile-delete.test.js +0 -372
- package/dist/daemon/api/__tests__/submit-result.test.d.ts +0 -1
- package/dist/daemon/api/__tests__/submit-result.test.js +0 -215
- package/dist/migrations/__tests__/activation-concurrency.test.d.ts +0 -1
- package/dist/migrations/__tests__/activation-concurrency.test.js +0 -146
- package/dist/migrations/__tests__/activation.test.d.ts +0 -1
- package/dist/migrations/__tests__/activation.test.js +0 -152
- package/dist/migrations/__tests__/deletion-and-root-declaration.test.d.ts +0 -1
- package/dist/migrations/__tests__/deletion-and-root-declaration.test.js +0 -149
- package/dist/pi-extensions/__tests__/canvas-bash-valve.test.d.ts +0 -1
- package/dist/pi-extensions/__tests__/canvas-bash-valve.test.js +0 -86
- package/dist/pi-extensions/__tests__/canvas-context-intro.test.d.ts +0 -1
- package/dist/pi-extensions/__tests__/canvas-context-intro.test.js +0 -364
- package/dist/pi-extensions/__tests__/canvas-goal-capture-envelope.test.d.ts +0 -1
- package/dist/pi-extensions/__tests__/canvas-goal-capture-envelope.test.js +0 -106
- package/dist/pi-extensions/__tests__/canvas-recap.test.d.ts +0 -1
- package/dist/pi-extensions/__tests__/canvas-recap.test.js +0 -62
- package/dist/pi-extensions/__tests__/canvas-stophook-agentend.test.d.ts +0 -1
- package/dist/pi-extensions/__tests__/canvas-stophook-agentend.test.js +0 -432
- package/dist/pi-extensions/__tests__/canvas-stophook-context-nudge.test.d.ts +0 -1
- package/dist/pi-extensions/__tests__/canvas-stophook-context-nudge.test.js +0 -152
- package/dist/pi-extensions/__tests__/canvas-structured-output.test.d.ts +0 -1
- package/dist/pi-extensions/__tests__/canvas-structured-output.test.js +0 -88
- package/dist/pi-extensions/__tests__/canvas-tool-guide.test.d.ts +0 -1
- package/dist/pi-extensions/__tests__/canvas-tool-guide.test.js +0 -96
- package/dist/pi-extensions/__tests__/integration/canvas-bash-valve.test.d.ts +0 -1
- package/dist/pi-extensions/__tests__/integration/canvas-bash-valve.test.js +0 -133
- package/dist/pi-extensions/__tests__/pre-command-gate.test.d.ts +0 -1
- package/dist/pi-extensions/__tests__/pre-command-gate.test.js +0 -232
- package/dist/shared/__tests__/env-boundary.test.d.ts +0 -1
- package/dist/shared/__tests__/env-boundary.test.js +0 -95
- package/dist/shared/__tests__/generated-context-grammar.test.d.ts +0 -1
- package/dist/shared/__tests__/generated-context-grammar.test.js +0 -80
- package/docs/compat/hearth-crtr-v1.md +0 -179
- package/docs/compat/hearth-crtr-v2.md +0 -177
- package/docs/compat/hearth-crtr-v3.md +0 -176
- package/docs/compat/hearth-crtr-v4.md +0 -182
- package/docs/compat/hearth-crtr-v5.md +0 -169
|
@@ -1,140 +1 @@
|
|
|
1
|
-
|
|
2
|
-
// profile filesystem store. Deletion crosses canvas, cron, inbox, review, and
|
|
3
|
-
// broker state, so it is one daemon-owned lifecycle operation.
|
|
4
|
-
//
|
|
5
|
-
// PUT /v1/profiles/:name idempotent ensure (create-or-return)
|
|
6
|
-
// GET /v1/profiles list all profiles
|
|
7
|
-
// GET /v1/profiles/:name resolve one profile by name or id
|
|
8
|
-
// DELETE /v1/profiles/:name required-force cascade or detach
|
|
9
|
-
import { assertInstalledKind } from '../../../core/config.js';
|
|
10
|
-
import { listNodesByProfile, shiftProfileNodeDeadlines } from '../../../core/canvas/canvas.js';
|
|
11
|
-
import { shiftAutoBackgroundBashDeadlines } from '../../../core/bash-jobs.js';
|
|
12
|
-
import { contextDir } from '../../../core/canvas/paths.js';
|
|
13
|
-
import { boundFleet } from '../../../core/runtime/fleet.js';
|
|
14
|
-
import { recordedPidLiveness } from '../../../core/canvas/pid.js';
|
|
15
|
-
import { usage } from '../../../core/errors.js';
|
|
16
|
-
import { assertProfileProjects, createProfile, ensureRootProfile, listProfiles, loadProfileManifest, pauseProfile, resumeProfile, updateProfileMetadata, } from '../../../core/profiles/manifest.js';
|
|
17
|
-
import { requestProfileDeletion } from '../../profile-delete.js';
|
|
18
|
-
import { toProfileDTO } from '../map.js';
|
|
19
|
-
const ROOT_PROFILE_NAME = 'root';
|
|
20
|
-
/** `PUT /v1/profiles/:name` — idempotent ensure. `root` maps to the singleton
|
|
21
|
-
* root profile; any other name returns the existing same-named profile if one
|
|
22
|
-
* exists (so a re-PUT yields the same id), else creates it. `default_kind`
|
|
23
|
-
* and `metadata` apply only at create — an existing profile is returned
|
|
24
|
-
* untouched; mutation stays on `crtr profile kind` / `crtr profile meta`. */
|
|
25
|
-
function handleEnsure(ctx) {
|
|
26
|
-
const name = ctx.params['name'];
|
|
27
|
-
const req = (ctx.body ?? {});
|
|
28
|
-
// Shape check runs before the idempotent returns, so a legacy string array
|
|
29
|
-
// cannot slip through an ensure of root or an existing profile. Existence
|
|
30
|
-
// and realpath normalization stay create-only, so a valid entry naming a
|
|
31
|
-
// since-deleted directory still returns the existing profile.
|
|
32
|
-
if (req.projects !== undefined)
|
|
33
|
-
assertProfileProjects(req.projects);
|
|
34
|
-
if (name === ROOT_PROFILE_NAME) {
|
|
35
|
-
return { status: 200, body: toProfileDTO(ensureRootProfile()) };
|
|
36
|
-
}
|
|
37
|
-
const existing = listProfiles().find((p) => p.manifest.name === name);
|
|
38
|
-
if (existing !== undefined) {
|
|
39
|
-
return { status: 200, body: toProfileDTO(existing) };
|
|
40
|
-
}
|
|
41
|
-
// Same gate as `profile new`/`profile kind`: a persisted unknown kind would
|
|
42
|
-
// poison every future omitted-kind create under this profile.
|
|
43
|
-
if (req.default_kind !== undefined)
|
|
44
|
-
assertInstalledKind(req.default_kind);
|
|
45
|
-
const created = createProfile(name, req.projects ?? [], {
|
|
46
|
-
defaultKind: req.default_kind,
|
|
47
|
-
metadata: req.metadata,
|
|
48
|
-
});
|
|
49
|
-
return { status: 200, body: toProfileDTO(created) };
|
|
50
|
-
}
|
|
51
|
-
/** `PATCH /v1/profiles/:name/metadata` — merge and remove metadata entries
|
|
52
|
-
* on an existing profile. Resolution accepts the profile id or unique name,
|
|
53
|
-
* matching the read and delete routes; this is deliberately separate from the
|
|
54
|
-
* create-only ensure route. */
|
|
55
|
-
function handleSetMetadata(ctx) {
|
|
56
|
-
const profile = loadProfileManifest(ctx.params['name']);
|
|
57
|
-
const raw = ctx.body ?? {};
|
|
58
|
-
if (typeof raw !== 'object' || raw === null || Array.isArray(raw)) {
|
|
59
|
-
throw usage('profile metadata body must be an object', { field: 'body' });
|
|
60
|
-
}
|
|
61
|
-
const req = raw;
|
|
62
|
-
const unset = req.unset === undefined ? [] : req.unset;
|
|
63
|
-
if (!Array.isArray(unset) || unset.some((key) => typeof key !== 'string')) {
|
|
64
|
-
throw usage('profile metadata `unset` must be an array of strings', { field: 'unset' });
|
|
65
|
-
}
|
|
66
|
-
const set = req.set === undefined ? {} : req.set;
|
|
67
|
-
const updated = updateProfileMetadata(profile.profileId, set, unset);
|
|
68
|
-
return { status: 200, body: toProfileDTO(updated) };
|
|
69
|
-
}
|
|
70
|
-
/** `POST /v1/profiles/:name/pause` — make the profile inert, then directly
|
|
71
|
-
* SIGTERM its live brokers. This deliberately avoids host teardown: the
|
|
72
|
-
* broker's SIGTERM path hands foreground bash jobs to their detached
|
|
73
|
-
* supervisors, while shutdown would abort and remove them. */
|
|
74
|
-
function handlePause(ctx) {
|
|
75
|
-
const profile = loadProfileManifest(ctx.params['name']);
|
|
76
|
-
const paused = pauseProfile(profile.profileId);
|
|
77
|
-
const nodes = listNodesByProfile(profile.profileId).filter((node) => node.status === 'active' || node.status === 'idle');
|
|
78
|
-
if (nodes.length === 0)
|
|
79
|
-
return { status: 200, body: { profile_id: profile.profileId, paused_at: paused.manifest.paused_at } };
|
|
80
|
-
const fleet = boundFleet();
|
|
81
|
-
for (const node of nodes) {
|
|
82
|
-
const live = fleet.get(node.node_id);
|
|
83
|
-
if (live !== undefined) {
|
|
84
|
-
fleet.interruptForProfilePause(node.node_id, live.pid);
|
|
85
|
-
continue;
|
|
86
|
-
}
|
|
87
|
-
if (node.pi_pid != null && recordedPidLiveness(node.pi_pid, node.pi_pid_identity) === 'alive') {
|
|
88
|
-
fleet.interruptForProfilePause(node.node_id, node.pi_pid);
|
|
89
|
-
}
|
|
90
|
-
}
|
|
91
|
-
return { status: 200, body: { profile_id: profile.profileId, paused_at: paused.manifest.paused_at } };
|
|
92
|
-
}
|
|
93
|
-
/** `POST /v1/profiles/:name/resume` — restore admission and credit active
|
|
94
|
-
* profile deadlines for the interval during which the profile was inert. The
|
|
95
|
-
* lifecycle tick owns broker recovery after the pause interruption settles. */
|
|
96
|
-
function handleResume(ctx) {
|
|
97
|
-
const profile = loadProfileManifest(ctx.params['name']);
|
|
98
|
-
const resumed = resumeProfile(profile.profileId);
|
|
99
|
-
if (resumed.pausedAt !== null) {
|
|
100
|
-
const pausedAt = Date.parse(resumed.pausedAt);
|
|
101
|
-
if (!Number.isNaN(pausedAt)) {
|
|
102
|
-
const pausedMs = Math.max(0, Date.now() - pausedAt);
|
|
103
|
-
shiftProfileNodeDeadlines(profile.profileId, pausedMs);
|
|
104
|
-
// Background bash claim windows are the same kind of budget as a node
|
|
105
|
-
// deadline: time the node was allowed to act, not wall-clock time.
|
|
106
|
-
for (const node of listNodesByProfile(profile.profileId)) {
|
|
107
|
-
if (node.status === 'dead')
|
|
108
|
-
continue;
|
|
109
|
-
shiftAutoBackgroundBashDeadlines(contextDir(node.node_id), pausedMs);
|
|
110
|
-
}
|
|
111
|
-
}
|
|
112
|
-
}
|
|
113
|
-
return { status: 200, body: { profile_id: profile.profileId, paused_at: resumed.manifest.paused_at } };
|
|
114
|
-
}
|
|
115
|
-
/** `GET /v1/profiles` — every profile with a readable manifest. */
|
|
116
|
-
function handleList() {
|
|
117
|
-
return { status: 200, body: listProfiles().map(toProfileDTO) };
|
|
118
|
-
}
|
|
119
|
-
/** `GET /v1/profiles/:name` — resolve one profile by exact id or unique name.
|
|
120
|
-
* A miss throws `notFound` (→ 404); an ambiguous name throws `ambiguous`
|
|
121
|
-
* (→ 400) — both from the manifest resolver, mapped by `errorToStatus`. */
|
|
122
|
-
function handleGet(ctx) {
|
|
123
|
-
const name = ctx.params['name'];
|
|
124
|
-
return { status: 200, body: toProfileDTO(loadProfileManifest(name)) };
|
|
125
|
-
}
|
|
126
|
-
/** `DELETE /v1/profiles/:name` — forced cascade by default, or forced
|
|
127
|
-
* identity detach when requested. Exact resolution, blockers, counts, broker
|
|
128
|
-
* teardown, and final manifest removal all live in the daemon lifecycle. */
|
|
129
|
-
async function handleDelete(ctx) {
|
|
130
|
-
return requestProfileDeletion(ctx.params['name'], ctx.body);
|
|
131
|
-
}
|
|
132
|
-
export const profileRoutes = [
|
|
133
|
-
{ method: 'PUT', pattern: '/v1/profiles/:name', handler: handleEnsure },
|
|
134
|
-
{ method: 'POST', pattern: '/v1/profiles/:name/pause', handler: handlePause },
|
|
135
|
-
{ method: 'POST', pattern: '/v1/profiles/:name/resume', handler: handleResume },
|
|
136
|
-
{ method: 'PATCH', pattern: '/v1/profiles/:name/metadata', handler: handleSetMetadata },
|
|
137
|
-
{ method: 'DELETE', pattern: '/v1/profiles/:name', handler: handleDelete },
|
|
138
|
-
{ method: 'GET', pattern: '/v1/profiles', handler: handleList },
|
|
139
|
-
{ method: 'GET', pattern: '/v1/profiles/:name', handler: handleGet },
|
|
140
|
-
];
|
|
1
|
+
var c=Object.defineProperty;var s=(r,e)=>c(r,"name",{value:e,configurable:!0});import{assertInstalledKind as h}from"../../../core/config.js";import{listNodesByProfile as u,shiftProfileNodeDeadlines as y}from"../../../core/canvas/canvas.js";import{shiftAutoBackgroundBashDeadlines as P}from"../../../core/bash-jobs.js";import{contextDir as _}from"../../../core/canvas/paths.js";import{boundFleet as b}from"../../../core/runtime/fleet.js";import{recordedPidLiveness as v}from"../../../core/canvas/pid.js";import{usage as p}from"../../../core/errors.js";import{assertProfileProjects as I,createProfile as A,ensureRootProfile as D,listProfiles as l,loadProfileManifest as f,pauseProfile as T,resumeProfile as E,updateProfileMetadata as g}from"../../../core/profiles/manifest.js";import{requestProfileDeletion as j}from"../../profile-delete.js";import{toProfileDTO as i}from"../map.js";const M="root";function N(r){const e=r.params.name,t=r.body??{};if(t.projects!==void 0&&I(t.projects),e===M)return{status:200,body:i(D())};const n=l().find(o=>o.manifest.name===e);if(n!==void 0)return{status:200,body:i(n)};t.default_kind!==void 0&&h(t.default_kind);const a=A(e,t.projects??[],{defaultKind:t.default_kind,metadata:t.metadata});return{status:200,body:i(a)}}s(N,"handleEnsure");function O(r){const e=f(r.params.name),t=r.body??{};if(typeof t!="object"||t===null||Array.isArray(t))throw p("profile metadata body must be an object",{field:"body"});const n=t,a=n.unset===void 0?[]:n.unset;if(!Array.isArray(a)||a.some(m=>typeof m!="string"))throw p("profile metadata `unset` must be an array of strings",{field:"unset"});const o=n.set===void 0?{}:n.set,d=g(e.profileId,o,a);return{status:200,body:i(d)}}s(O,"handleSetMetadata");function R(r){const e=f(r.params.name),t=T(e.profileId),n=u(e.profileId).filter(o=>o.status==="active"||o.status==="idle");if(n.length===0)return{status:200,body:{profile_id:e.profileId,paused_at:t.manifest.paused_at}};const a=b();for(const o of n){const d=a.get(o.node_id);if(d!==void 0){a.interruptForProfilePause(o.node_id,d.pid);continue}o.pi_pid!=null&&v(o.pi_pid,o.pi_pid_identity)==="alive"&&a.interruptForProfilePause(o.node_id,o.pi_pid)}return{status:200,body:{profile_id:e.profileId,paused_at:t.manifest.paused_at}}}s(R,"handlePause");function k(r){const e=f(r.params.name),t=E(e.profileId);if(t.pausedAt!==null){const n=Date.parse(t.pausedAt);if(!Number.isNaN(n)){const a=Math.max(0,Date.now()-n);y(e.profileId,a);for(const o of u(e.profileId))o.status!=="dead"&&P(_(o.node_id),a)}}return{status:200,body:{profile_id:e.profileId,paused_at:t.manifest.paused_at}}}s(k,"handleResume");function w(){return{status:200,body:l().map(i)}}s(w,"handleList");function F(r){const e=r.params.name;return{status:200,body:i(f(e))}}s(F,"handleGet");async function L(r){return j(r.params.name,r.body)}s(L,"handleDelete");const Q=[{method:"PUT",pattern:"/v1/profiles/:name",handler:N},{method:"POST",pattern:"/v1/profiles/:name/pause",handler:R},{method:"POST",pattern:"/v1/profiles/:name/resume",handler:k},{method:"PATCH",pattern:"/v1/profiles/:name/metadata",handler:O},{method:"DELETE",pattern:"/v1/profiles/:name",handler:L},{method:"GET",pattern:"/v1/profiles",handler:w},{method:"GET",pattern:"/v1/profiles/:name",handler:F}];export{Q as profileRoutes};
|
|
@@ -1,59 +1 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { usage } from '../../../core/errors.js';
|
|
3
|
-
import { resolveLaunchTarget } from '../../../core/runtime/launch-target.js';
|
|
4
|
-
import { runProspectiveInventory } from '../../../core/runtime/prospective-inventory.js';
|
|
5
|
-
const inFlight = new Map();
|
|
6
|
-
function singleQueryValue(ctx, name) {
|
|
7
|
-
const values = ctx.query.getAll(name);
|
|
8
|
-
if (values.length > 1)
|
|
9
|
-
throw usage(`${name} must appear at most once`);
|
|
10
|
-
return values[0];
|
|
11
|
-
}
|
|
12
|
-
async function handleGet(ctx) {
|
|
13
|
-
for (const [name] of ctx.query) {
|
|
14
|
-
if (name !== 'profile' && name !== 'cwd' && name !== 'kind')
|
|
15
|
-
throw usage(`unknown prospective inventory query parameter: ${name}`);
|
|
16
|
-
}
|
|
17
|
-
const profile = singleQueryValue(ctx, 'profile');
|
|
18
|
-
const cwd = singleQueryValue(ctx, 'cwd');
|
|
19
|
-
const kind = singleQueryValue(ctx, 'kind');
|
|
20
|
-
if (kind !== undefined && kind.trim() === '')
|
|
21
|
-
throw usage('kind must be a non-empty string when provided');
|
|
22
|
-
const target = await resolveLaunchTarget({
|
|
23
|
-
root: true,
|
|
24
|
-
...(profile !== undefined ? { profile } : {}),
|
|
25
|
-
...(cwd !== undefined ? { cwd } : {}),
|
|
26
|
-
...(kind !== undefined ? { kind } : {}),
|
|
27
|
-
}, { readOnlyProfileSelection: true });
|
|
28
|
-
const key = JSON.stringify([target.profileId, target.cwd, target.kind]);
|
|
29
|
-
let pending = inFlight.get(key);
|
|
30
|
-
if (pending === undefined) {
|
|
31
|
-
pending = runProspectiveInventory({
|
|
32
|
-
cwd: target.cwd,
|
|
33
|
-
profileId: target.profileId,
|
|
34
|
-
extensions: target.launch.extensions,
|
|
35
|
-
});
|
|
36
|
-
inFlight.set(key, pending);
|
|
37
|
-
void pending.finally(() => {
|
|
38
|
-
if (inFlight.get(key) === pending)
|
|
39
|
-
inFlight.delete(key);
|
|
40
|
-
}).catch(() => { });
|
|
41
|
-
}
|
|
42
|
-
let rows;
|
|
43
|
-
try {
|
|
44
|
-
rows = await pending;
|
|
45
|
-
}
|
|
46
|
-
catch {
|
|
47
|
-
throw new ApiError(503, 'preflight_failed', 'prospective chat inventory preflight failed');
|
|
48
|
-
}
|
|
49
|
-
const body = {
|
|
50
|
-
profile_id: target.profileId,
|
|
51
|
-
cwd: target.cwd,
|
|
52
|
-
commands: rows.commands,
|
|
53
|
-
memory_refs: rows.memory_refs,
|
|
54
|
-
};
|
|
55
|
-
return { status: 200, body };
|
|
56
|
-
}
|
|
57
|
-
export const prospectiveChatInventoryRoutes = [
|
|
58
|
-
{ method: 'GET', pattern: '/v1/prospective-chat-inventory', handler: handleGet },
|
|
59
|
-
];
|
|
1
|
+
var u=Object.defineProperty;var a=(e,n)=>u(e,"name",{value:n,configurable:!0});import{ApiError as m}from"../../../api/errors.js";import{usage as p}from"../../../core/errors.js";import{resolveLaunchTarget as y}from"../../../core/runtime/launch-target.js";import{runProspectiveInventory as h}from"../../../core/runtime/prospective-inventory.js";const c=new Map;function l(e,n){const o=e.query.getAll(n);if(o.length>1)throw p(`${n} must appear at most once`);return o[0]}a(l,"singleQueryValue");async function w(e){for(const[s]of e.query)if(s!=="profile"&&s!=="cwd"&&s!=="kind")throw p(`unknown prospective inventory query parameter: ${s}`);const n=l(e,"profile"),o=l(e,"cwd"),i=l(e,"kind");if(i!==void 0&&i.trim()==="")throw p("kind must be a non-empty string when provided");const t=await y({root:!0,...n!==void 0?{profile:n}:{},...o!==void 0?{cwd:o}:{},...i!==void 0?{kind:i}:{}},{readOnlyProfileSelection:!0}),d=JSON.stringify([t.profileId,t.cwd,t.kind]);let r=c.get(d);r===void 0&&(r=h({cwd:t.cwd,profileId:t.profileId,extensions:t.launch.extensions}),c.set(d,r),r.finally(()=>{c.get(d)===r&&c.delete(d)}).catch(()=>{}));let f;try{f=await r}catch{throw new m(503,"preflight_failed","prospective chat inventory preflight failed")}return{status:200,body:{profile_id:t.profileId,cwd:t.cwd,commands:f.commands,memory_refs:f.memory_refs}}}a(w,"handleGet");const q=[{method:"GET",pattern:"/v1/prospective-chat-inventory",handler:w}];export{q as prospectiveChatInventoryRoutes};
|
|
@@ -1,332 +1,16 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
import { push, FinalizationError } from '../../../core/feed/feed.js';
|
|
18
|
-
import { branchIsPushedAtCurrentTip, hasOpenManagedWorktree, missingWorktreeRecoveryHint } from '../../../core/worktree.js';
|
|
19
|
-
import { autoDropCleanManagedWorktreeAsync } from '../../../core/worktree-mutation-async.js';
|
|
20
|
-
import { reportsDir } from '../../../core/canvas/paths.js';
|
|
21
|
-
import { notFound, usage } from '../../../core/errors.js';
|
|
22
|
-
import { InputError } from '../../../core/io.js';
|
|
23
|
-
import { parseFrontmatterGeneric } from '../../../core/frontmatter.js';
|
|
24
|
-
import { toReportResultDTO } from '../map.js';
|
|
25
|
-
import { outputSchemaPath, readOutputRequest, removeOutputSchema, validateStructuredResult, writeOutputDeclined, writeOutputResult, } from '../../../core/runtime/structured-output.js';
|
|
26
|
-
function requireNode(id) {
|
|
27
|
-
if (getNode(id) === null)
|
|
28
|
-
throw notFound(`unknown node: ${id}`, { received: id });
|
|
29
|
-
}
|
|
30
|
-
/** Validate + narrow the push body (spec §7.4). */
|
|
31
|
-
function parsePushBody(body) {
|
|
32
|
-
if (typeof body !== 'object' || body === null) {
|
|
33
|
-
throw usage('a push report requires a JSON body { tier, body }');
|
|
34
|
-
}
|
|
35
|
-
const tier = body.tier;
|
|
36
|
-
const deliveryTier = body.delivery_tier;
|
|
37
|
-
const text = body.body;
|
|
38
|
-
if (tier !== 'update' && tier !== 'urgent' && tier !== 'final') {
|
|
39
|
-
throw usage(`invalid report tier: ${String(tier)} (expected update|urgent|final)`);
|
|
40
|
-
}
|
|
41
|
-
if (deliveryTier !== undefined && deliveryTier !== 'deferred' && deliveryTier !== 'normal' && deliveryTier !== 'urgent') {
|
|
42
|
-
throw usage(`invalid delivery_tier: ${String(deliveryTier)} (expected deferred|normal|urgent)`);
|
|
43
|
-
}
|
|
44
|
-
if (tier !== 'update' && deliveryTier !== undefined) {
|
|
45
|
-
throw usage('delivery_tier is only valid for update reports');
|
|
46
|
-
}
|
|
47
|
-
if (typeof text !== 'string' || text.trim() === '') {
|
|
48
|
-
throw usage('a push report requires a non-empty body');
|
|
49
|
-
}
|
|
50
|
-
return { tier, ...(deliveryTier === undefined ? {} : { delivery_tier: deliveryTier }), body: text };
|
|
51
|
-
}
|
|
52
|
-
async function handlePush(ctx) {
|
|
53
|
-
const id = ctx.params['id'];
|
|
54
|
-
requireNode(id);
|
|
55
|
-
const req = parsePushBody(ctx.body);
|
|
56
|
-
// A valid pending structured-output request means this node owes a
|
|
57
|
-
// schema-checked result — a plain `push final` would finish it with
|
|
58
|
-
// context/result.json never written (the stop guard honors `pushedFinal`
|
|
59
|
-
// before its structured-output check, so it cannot catch this). An INVALID
|
|
60
|
-
// request file deliberately does NOT block: the stop guard's prescribed
|
|
61
|
-
// manual-cleanup escape (`push final` after removing the corrupt file, or
|
|
62
|
-
// despite it) must stay reachable.
|
|
63
|
-
if (req.tier === 'final' && readOutputRequest(id).state === 'valid') {
|
|
64
|
-
throw new InputError({
|
|
65
|
-
error: 'structured_result_pending',
|
|
66
|
-
message: 'This node owes a structured result — a plain `push final` would finish it without recording one.',
|
|
67
|
-
next: 'Submit the result with `crtr push result` instead; it validates against the pending schema, records it, and pushes the final report for you. If the schema cannot be honestly satisfied, `crtr push result --decline "<reason>" --code <token>` records the decline and finishes the node.',
|
|
68
|
-
});
|
|
69
|
-
}
|
|
70
|
-
// `final` flips the node to done inside push() (commitCanonicalFinal). Capture
|
|
71
|
-
// the pre-push status so the DTO can report the transition (spec §7.4).
|
|
72
|
-
const before = req.tier === 'final' ? getNode(id)?.status : undefined;
|
|
73
|
-
const autoDroppedPath = req.tier === 'final' ? await guardFinalWorktree(id) : undefined;
|
|
74
|
-
const result = await pushOrRethrow(id, req);
|
|
75
|
-
const transitioned = req.tier === 'final' && before !== undefined
|
|
76
|
-
? { from: before, to: getNode(id)?.status ?? 'done' }
|
|
77
|
-
: undefined;
|
|
78
|
-
return { status: 200, body: toReportResultDTO(result, transitioned, autoDroppedPath) };
|
|
79
|
-
}
|
|
80
|
-
/** The `final`-path managed-worktree guard, BEFORE the push/transition (spec
|
|
81
|
-
* §6.2 — worktree fs ops are server-side). A provably-clean, zero-commit
|
|
82
|
-
* worktree is auto-dropped so a read-only or already-landed node
|
|
83
|
-
* can finish without an explicit `node worktree close`; a clean worktree
|
|
84
|
-
* whose exact tip is already on origin can also finish while retaining its
|
|
85
|
-
* branch and checkout. Any work that is neither locally landed nor remotely
|
|
86
|
-
* retained instead blocks with the parity `open_managed_worktree` error,
|
|
87
|
-
* round-tripped via CrtrError.details so the CLI renders the same InputError
|
|
88
|
-
* (next-hint included) it surfaced before B-5 re-homed this to the server.
|
|
89
|
-
* Returns the auto-dropped checkout path, or undefined when nothing dropped. */
|
|
90
|
-
async function guardFinalWorktree(id) {
|
|
91
|
-
if (!hasOpenManagedWorktree(getNode(id)))
|
|
92
|
-
return undefined;
|
|
93
|
-
const dropped = await autoDropCleanManagedWorktreeAsync(id);
|
|
94
|
-
if (dropped !== null)
|
|
95
|
-
return dropped.worktree_path;
|
|
96
|
-
if (await branchIsPushedAtCurrentTip(getNode(id).managed_worktree))
|
|
97
|
-
return undefined;
|
|
98
|
-
// Thrown as InputError so `toErrorBody` round-trips the FULL structured
|
|
99
|
-
// payload (code + message + next) into `ApiError.details`, and the CLI's
|
|
100
|
-
// shared `apiErrorToCliError` reconstructs it byte-for-byte — no
|
|
101
|
-
// command-local mapper needed (plan C-5).
|
|
102
|
-
throw new InputError({
|
|
103
|
-
error: 'open_managed_worktree',
|
|
104
|
-
message: 'This node still owns an open managed worktree that is neither clean and locally landed nor clean with its exact tip on origin — `push final` cannot finish.',
|
|
105
|
-
next: (() => {
|
|
106
|
-
const wt = getNode(id)?.managed_worktree;
|
|
107
|
-
return wt !== null && wt !== undefined && wt.state === 'open' && !existsSync(wt.path)
|
|
108
|
-
? missingWorktreeRecoveryHint(wt)
|
|
109
|
-
: 'Commit the remaining work in the worktree, push its branch to origin at its current tip, then rerun `crtr push final`; or run `crtr node worktree close` to land it locally.';
|
|
110
|
-
})(),
|
|
111
|
-
});
|
|
112
|
-
}
|
|
113
|
-
/** Cap on the fenced-JSON echo inside the submit report body. The full result
|
|
114
|
-
* is always on disk at result_path; the report only needs enough to orient. */
|
|
115
|
-
const REPORT_JSON_ECHO_LIMIT = 2000;
|
|
116
|
-
function submitReportBody(resultPath, value) {
|
|
117
|
-
const json = JSON.stringify(value, null, 2);
|
|
118
|
-
const fenced = json.length > REPORT_JSON_ECHO_LIMIT
|
|
119
|
-
? `${json.slice(0, REPORT_JSON_ECHO_LIMIT)}\n… (truncated — the full result is at the result path above)`
|
|
120
|
-
: json;
|
|
121
|
-
return `Structured output submitted.\n\nResult path: ${resultPath}\n\n\`\`\`json\n${fenced}\n\`\`\`\n`;
|
|
122
|
-
}
|
|
123
|
-
function declineReportBody(declinedPath, declined) {
|
|
124
|
-
return `Structured result declined.\n\nReason: ${declined.reason}\nCode: ${declined.code}\nRetryable: ${declined.retryable ? 'yes' : 'no'}\n\nDeclined marker: ${declinedPath}\n`;
|
|
125
|
-
}
|
|
126
|
-
/** A decline reason is one sentence for a human or a consumer to read, not a payload. */
|
|
127
|
-
const DECLINE_REASON_MAX_CHARS = 1024;
|
|
128
|
-
/** A decline code is one token the requester classifies on, not a message. */
|
|
129
|
-
const DECLINE_CODE_MAX_CHARS = 64;
|
|
130
|
-
/** Narrow the submit body to exactly one of `{ value }` or `{ decline, code, retryable }`. */
|
|
131
|
-
function parseSubmitBody(body) {
|
|
132
|
-
if (typeof body !== 'object' || body === null) {
|
|
133
|
-
throw usage('a result submission requires a JSON body { value } or { decline, code, retryable }');
|
|
134
|
-
}
|
|
135
|
-
const hasValue = Object.hasOwn(body, 'value');
|
|
136
|
-
const hasDecline = Object.hasOwn(body, 'decline');
|
|
137
|
-
if (hasValue && hasDecline)
|
|
138
|
-
throw usage('a result submission carries either { value } or { decline, code, retryable }, not both');
|
|
139
|
-
if (hasDecline) {
|
|
140
|
-
const { decline, code, retryable } = body;
|
|
141
|
-
if (typeof decline !== 'string' || decline.trim() === '') {
|
|
142
|
-
throw new InputError({
|
|
143
|
-
error: 'missing_decline_reason',
|
|
144
|
-
message: 'A decline needs a reason.',
|
|
145
|
-
next: 'Rerun with `--decline "<one sentence on why the schema cannot be honestly satisfied>" --code <token>`.',
|
|
146
|
-
});
|
|
147
|
-
}
|
|
148
|
-
if (decline.length > DECLINE_REASON_MAX_CHARS) {
|
|
149
|
-
throw new InputError({
|
|
150
|
-
error: 'decline_reason_too_long',
|
|
151
|
-
message: `A decline reason is at most ${DECLINE_REASON_MAX_CHARS} characters (got ${decline.length}).`,
|
|
152
|
-
next: 'Keep the reason to one plain sentence; put any detail in an artifact and name its path.',
|
|
153
|
-
});
|
|
154
|
-
}
|
|
155
|
-
if (typeof code !== 'string' || code.trim() === '' || /\s/.test(code.trim()) || code.trim().length > DECLINE_CODE_MAX_CHARS) {
|
|
156
|
-
throw new InputError({
|
|
157
|
-
error: 'invalid_decline_code',
|
|
158
|
-
message: `A decline needs a code: one whitespace-free token of at most ${DECLINE_CODE_MAX_CHARS} characters naming the decline class.`,
|
|
159
|
-
next: 'Rerun with `--code <token>` — the token your requester documented for this case.',
|
|
160
|
-
});
|
|
161
|
-
}
|
|
162
|
-
if (typeof retryable !== 'boolean') {
|
|
163
|
-
throw usage('a decline carries `retryable` as a boolean');
|
|
164
|
-
}
|
|
165
|
-
return { declined: { reason: decline.trim(), code: code.trim(), retryable } };
|
|
166
|
-
}
|
|
167
|
-
if (!hasValue) {
|
|
168
|
-
// `value` must be PRESENT — but any JSON value, including null, is a legal
|
|
169
|
-
// result to validate, so presence is checked rather than truthiness.
|
|
170
|
-
throw usage('a result submission requires a JSON body { value } or { decline, code, retryable }');
|
|
171
|
-
}
|
|
172
|
-
return { value: body.value };
|
|
173
|
-
}
|
|
174
|
-
/** `POST /v1/nodes/{id}/result` — submit a structured result (`crtr push
|
|
175
|
-
* result`). Validate against the pending schema, write context/result.json
|
|
176
|
-
* atomically, push the mode-matched report (final for terminal, update for
|
|
177
|
-
* oneoff), then clear the schema. Any failure before the schema removal leaves
|
|
178
|
-
* the request in place, so the submit stays retryable. */
|
|
179
|
-
async function handleSubmitResult(ctx) {
|
|
180
|
-
const id = ctx.params['id'];
|
|
181
|
-
requireNode(id);
|
|
182
|
-
const submitted = parseSubmitBody(ctx.body);
|
|
183
|
-
const state = readOutputRequest(id);
|
|
184
|
-
if (state.state === 'absent') {
|
|
185
|
-
throw new InputError({
|
|
186
|
-
error: 'no_output_request',
|
|
187
|
-
message: 'No structured output is currently requested of this node.',
|
|
188
|
-
next: 'Nothing to submit here — continue working, or finish with `crtr push final`.',
|
|
189
|
-
});
|
|
190
|
-
}
|
|
191
|
-
if (state.state === 'invalid') {
|
|
192
|
-
throw new InputError({
|
|
193
|
-
error: 'invalid_output_request',
|
|
194
|
-
message: `The structured-output request file is invalid: ${state.error}`,
|
|
195
|
-
next: `Have the requester re-issue the request, or remove ${outputSchemaPath(id)} and finish with \`crtr push final\`.`,
|
|
196
|
-
});
|
|
197
|
-
}
|
|
198
|
-
const { mode, schema } = state.request;
|
|
199
|
-
let validated;
|
|
200
|
-
if ('value' in submitted) {
|
|
201
|
-
try {
|
|
202
|
-
validated = await validateStructuredResult(schema, submitted.value);
|
|
203
|
-
}
|
|
204
|
-
catch (err) {
|
|
205
|
-
// Schema retained — the node fixes the listed fields and resubmits.
|
|
206
|
-
throw new InputError({
|
|
207
|
-
error: 'result_schema_mismatch',
|
|
208
|
-
message: `the submitted result does not match the requested schema: ${err.message}`,
|
|
209
|
-
next: 'Fix the listed fields and rerun `crtr push result`; if the schema cannot be honestly satisfied, rerun with `--decline "<reason>" --code <token>`.',
|
|
210
|
-
});
|
|
211
|
-
}
|
|
212
|
-
}
|
|
213
|
-
const before = mode === 'terminal' ? getNode(id)?.status : undefined;
|
|
214
|
-
const autoDroppedPath = mode === 'terminal' ? await guardFinalWorktree(id) : undefined;
|
|
215
|
-
let resultPath;
|
|
216
|
-
let reportBody;
|
|
217
|
-
let outcome;
|
|
218
|
-
if ('declined' in submitted) {
|
|
219
|
-
const { declined } = submitted;
|
|
220
|
-
resultPath = writeOutputDeclined(id, { mode, ...declined, at: new Date().toISOString() });
|
|
221
|
-
reportBody = declineReportBody(resultPath, declined);
|
|
222
|
-
// A one-off decline is an update report, not the canonical final: no outcome to record.
|
|
223
|
-
if (mode === 'terminal') {
|
|
224
|
-
const detail = { schema: 'crtr.node-outcome-detail/v1', message: declined.reason, declined };
|
|
225
|
-
outcome = { kind: 'failure', reason: 'declined', detailJson: JSON.stringify(detail) };
|
|
226
|
-
}
|
|
227
|
-
}
|
|
228
|
-
else {
|
|
229
|
-
resultPath = writeOutputResult(id, validated);
|
|
230
|
-
reportBody = submitReportBody(resultPath, validated);
|
|
231
|
-
}
|
|
232
|
-
const pushed = await pushOrRethrow(id, {
|
|
233
|
-
tier: mode === 'terminal' ? 'final' : 'update',
|
|
234
|
-
body: reportBody,
|
|
235
|
-
}, outcome);
|
|
236
|
-
removeOutputSchema(id);
|
|
237
|
-
const transitioned = mode === 'terminal' && before !== undefined
|
|
238
|
-
? { from: before, to: getNode(id)?.status ?? 'done' }
|
|
239
|
-
: undefined;
|
|
240
|
-
const body = {
|
|
241
|
-
mode,
|
|
242
|
-
result_path: resultPath,
|
|
243
|
-
report_path: pushed.reportPath,
|
|
244
|
-
notified: [...pushed.deliveredTo],
|
|
245
|
-
...('declined' in submitted ? { declined: submitted.declined } : {}),
|
|
246
|
-
...(transitioned === undefined ? {} : { transitioned }),
|
|
247
|
-
...(autoDroppedPath === undefined
|
|
248
|
-
? {}
|
|
249
|
-
: { worktree_auto_dropped: true, worktree_auto_dropped_path: autoDroppedPath }),
|
|
250
|
-
};
|
|
251
|
-
return { status: 200, body };
|
|
252
|
-
}
|
|
253
|
-
/** `push()` but with the finalization guards translated to the same structured
|
|
254
|
-
* `InputError` the pre-API `crtr push` verb surfaced. Feed throws a bare
|
|
255
|
-
* `FinalizationError` (its `.message` is just the code); rethrowing as
|
|
256
|
-
* `InputError` round-trips the SPECIFIC code + a clean message + next through
|
|
257
|
-
* `ApiError.details`, so the shared CLI mapper reconstructs it verbatim and
|
|
258
|
-
* the agent-facing `already_finalized`/`finalization_forbidden` contract
|
|
259
|
-
* survives (a bare 409 would otherwise collapse to the generic `conflict`
|
|
260
|
-
* code). `unknown_node` is unreachable here (`requireNode` guards above), so
|
|
261
|
-
* it falls through as the generic 404. */
|
|
262
|
-
async function pushOrRethrow(id, req, outcome) {
|
|
263
|
-
try {
|
|
264
|
-
return await push(id, { kind: req.tier, body: req.body, ...(req.delivery_tier === undefined ? {} : { deliveryTier: req.delivery_tier }), ...(outcome === undefined ? {} : { outcome }) });
|
|
265
|
-
}
|
|
266
|
-
catch (err) {
|
|
267
|
-
if (err instanceof FinalizationError && err.code === 'already_finalized') {
|
|
268
|
-
throw new InputError({
|
|
269
|
-
error: 'already_finalized',
|
|
270
|
-
message: 'This node already submitted its canonical final result.',
|
|
271
|
-
next: 'Push an update with the new information, then stop.',
|
|
272
|
-
});
|
|
273
|
-
}
|
|
274
|
-
if (err instanceof FinalizationError && err.code === 'finalization_forbidden') {
|
|
275
|
-
throw new InputError({
|
|
276
|
-
error: 'finalization_forbidden',
|
|
277
|
-
message: 'A canceled or dead node cannot submit a canonical final result.',
|
|
278
|
-
next: 'Do not push final from this node.',
|
|
279
|
-
});
|
|
280
|
-
}
|
|
281
|
-
throw err;
|
|
282
|
-
}
|
|
283
|
-
}
|
|
284
|
-
/** Compact report stamp `20260607T075536` → ISO `2026-06-07T07:55:36`. */
|
|
285
|
-
function compactToIso(stamp) {
|
|
286
|
-
const m = stamp.match(/^(\d{4})(\d{2})(\d{2})T(\d{2})(\d{2})(\d{2})$/);
|
|
287
|
-
return m === null ? stamp : `${m[1]}-${m[2]}-${m[3]}T${m[4]}:${m[5]}:${m[6]}`;
|
|
288
|
-
}
|
|
289
|
-
/** Read one node's pushed reports, newest first. This stays in the daemon so
|
|
290
|
-
* collection projections can include report activity without client-side N+1s. */
|
|
291
|
-
export function reportsForNode(id) {
|
|
292
|
-
const dir = reportsDir(id);
|
|
293
|
-
let files;
|
|
294
|
-
try {
|
|
295
|
-
files = readdirSync(dir).filter((f) => f.endsWith('.md'));
|
|
296
|
-
}
|
|
297
|
-
catch {
|
|
298
|
-
files = [];
|
|
299
|
-
}
|
|
300
|
-
const reports = [];
|
|
301
|
-
for (const f of files) {
|
|
302
|
-
const abs = join(dir, f);
|
|
303
|
-
const raw = readFileSync(abs, 'utf8');
|
|
304
|
-
const { data, body } = parseFrontmatterGeneric(raw);
|
|
305
|
-
const m = f.match(/^([0-9]{8}T[0-9]{6})-(\w+)\.md$/);
|
|
306
|
-
const tier = ((typeof data?.['kind'] === 'string' ? data['kind'] : undefined) ??
|
|
307
|
-
(m ? m[2] : 'update'));
|
|
308
|
-
const created = (typeof data?.['ts'] === 'string' ? data['ts'] : undefined) ??
|
|
309
|
-
(m ? compactToIso(m[1]) : new Date(statSync(abs).mtimeMs).toISOString());
|
|
310
|
-
reports.push({ path: abs, tier, body: body.trim(), created });
|
|
311
|
-
}
|
|
312
|
-
reports.sort((a, b) => (a.created < b.created ? 1 : a.created > b.created ? -1 : 0));
|
|
313
|
-
return reports;
|
|
314
|
-
}
|
|
315
|
-
function handleList(ctx) {
|
|
316
|
-
const id = ctx.params['id'];
|
|
317
|
-
requireNode(id);
|
|
318
|
-
const tierFilter = ctx.query.get('tier');
|
|
319
|
-
const limitRaw = ctx.query.get('limit');
|
|
320
|
-
const limit = limitRaw !== null ? Number(limitRaw) : undefined;
|
|
321
|
-
let out = reportsForNode(id);
|
|
322
|
-
if (tierFilter !== null)
|
|
323
|
-
out = out.filter((report) => report.tier === tierFilter);
|
|
324
|
-
if (limit !== undefined && Number.isFinite(limit) && limit >= 0)
|
|
325
|
-
out = out.slice(0, limit);
|
|
326
|
-
return { status: 200, body: out };
|
|
327
|
-
}
|
|
328
|
-
export const reportRoutes = [
|
|
329
|
-
{ method: 'POST', pattern: '/v1/nodes/:id/reports', handler: handlePush },
|
|
330
|
-
{ method: 'GET', pattern: '/v1/nodes/:id/reports', handler: handleList },
|
|
331
|
-
{ method: 'POST', pattern: '/v1/nodes/:id/result', handler: handleSubmitResult },
|
|
332
|
-
];
|
|
1
|
+
var N=Object.defineProperty;var s=(t,e)=>N(t,"name",{value:e,configurable:!0});import{existsSync as q,readdirSync as x,readFileSync as D,statSync as P}from"node:fs";import{join as A}from"node:path";import{getNode as c}from"../../../core/canvas/canvas.js";import{push as E,FinalizationError as _}from"../../../core/feed/feed.js";import{branchIsPushedAtCurrentTip as C,hasOpenManagedWorktree as I,missingWorktreeRecoveryHint as F}from"../../../core/worktree.js";import{autoDropCleanManagedWorktreeAsync as j}from"../../../core/worktree-mutation-async.js";import{reportsDir as J}from"../../../core/canvas/paths.js";import{notFound as M,usage as l}from"../../../core/errors.js";import{InputError as d}from"../../../core/io.js";import{parseFrontmatterGeneric as z}from"../../../core/frontmatter.js";import{toReportResultDTO as B}from"../map.js";import{outputSchemaPath as H,readOutputRequest as v,removeOutputSchema as W,validateStructuredResult as L,writeOutputDeclined as G,writeOutputResult as X}from"../../../core/runtime/structured-output.js";function y(t){if(c(t)===null)throw M(`unknown node: ${t}`,{received:t})}s(y,"requireNode");function K(t){if(typeof t!="object"||t===null)throw l("a push report requires a JSON body { tier, body }");const e=t.tier,n=t.delivery_tier,r=t.body;if(e!=="update"&&e!=="urgent"&&e!=="final")throw l(`invalid report tier: ${String(e)} (expected update|urgent|final)`);if(n!==void 0&&n!=="deferred"&&n!=="normal"&&n!=="urgent")throw l(`invalid delivery_tier: ${String(n)} (expected deferred|normal|urgent)`);if(e!=="update"&&n!==void 0)throw l("delivery_tier is only valid for update reports");if(typeof r!="string"||r.trim()==="")throw l("a push report requires a non-empty body");return{tier:e,...n===void 0?{}:{delivery_tier:n},body:r}}s(K,"parsePushBody");async function V(t){const e=t.params.id;y(e);const n=K(t.body);if(n.tier==="final"&&v(e).state==="valid")throw new d({error:"structured_result_pending",message:"This node owes a structured result \u2014 a plain `push final` would finish it without recording one.",next:'Submit the result with `crtr push result` instead; it validates against the pending schema, records it, and pushes the final report for you. If the schema cannot be honestly satisfied, `crtr push result --decline "<reason>" --code <token>` records the decline and finishes the node.'});const r=n.tier==="final"?c(e)?.status:void 0,i=n.tier==="final"?await S(e):void 0,o=await R(e,n),u=n.tier==="final"&&r!==void 0?{from:r,to:c(e)?.status??"done"}:void 0;return{status:200,body:B(o,u,i)}}s(V,"handlePush");async function S(t){if(!I(c(t)))return;const e=await j(t);if(e!==null)return e.worktree_path;if(!await C(c(t).managed_worktree))throw new d({error:"open_managed_worktree",message:"This node still owns an open managed worktree that is neither clean and locally landed nor clean with its exact tip on origin \u2014 `push final` cannot finish.",next:(()=>{const n=c(t)?.managed_worktree;return n!=null&&n.state==="open"&&!q(n.path)?F(n):"Commit the remaining work in the worktree, push its branch to origin at its current tip, then rerun `crtr push final`; or run `crtr node worktree close` to land it locally."})()})}s(S,"guardFinalWorktree");const k=2e3;function Q(t,e){const n=JSON.stringify(e,null,2),r=n.length>k?`${n.slice(0,k)}
|
|
2
|
+
\u2026 (truncated \u2014 the full result is at the result path above)`:n;return`Structured output submitted.
|
|
3
|
+
|
|
4
|
+
Result path: ${t}
|
|
5
|
+
|
|
6
|
+
\`\`\`json
|
|
7
|
+
${r}
|
|
8
|
+
\`\`\`
|
|
9
|
+
`}s(Q,"submitReportBody");function U(t,e){return`Structured result declined.
|
|
10
|
+
|
|
11
|
+
Reason: ${e.reason}
|
|
12
|
+
Code: ${e.code}
|
|
13
|
+
Retryable: ${e.retryable?"yes":"no"}
|
|
14
|
+
|
|
15
|
+
Declined marker: ${t}
|
|
16
|
+
`}s(U,"declineReportBody");const O=1024,$=64;function Y(t){if(typeof t!="object"||t===null)throw l("a result submission requires a JSON body { value } or { decline, code, retryable }");const e=Object.hasOwn(t,"value"),n=Object.hasOwn(t,"decline");if(e&&n)throw l("a result submission carries either { value } or { decline, code, retryable }, not both");if(n){const{decline:r,code:i,retryable:o}=t;if(typeof r!="string"||r.trim()==="")throw new d({error:"missing_decline_reason",message:"A decline needs a reason.",next:'Rerun with `--decline "<one sentence on why the schema cannot be honestly satisfied>" --code <token>`.'});if(r.length>O)throw new d({error:"decline_reason_too_long",message:`A decline reason is at most ${O} characters (got ${r.length}).`,next:"Keep the reason to one plain sentence; put any detail in an artifact and name its path."});if(typeof i!="string"||i.trim()===""||/\s/.test(i.trim())||i.trim().length>$)throw new d({error:"invalid_decline_code",message:`A decline needs a code: one whitespace-free token of at most ${$} characters naming the decline class.`,next:"Rerun with `--code <token>` \u2014 the token your requester documented for this case."});if(typeof o!="boolean")throw l("a decline carries `retryable` as a boolean");return{declined:{reason:r.trim(),code:i.trim(),retryable:o}}}if(!e)throw l("a result submission requires a JSON body { value } or { decline, code, retryable }");return{value:t.value}}s(Y,"parseSubmitBody");async function Z(t){const e=t.params.id;y(e);const n=Y(t.body),r=v(e);if(r.state==="absent")throw new d({error:"no_output_request",message:"No structured output is currently requested of this node.",next:"Nothing to submit here \u2014 continue working, or finish with `crtr push final`."});if(r.state==="invalid")throw new d({error:"invalid_output_request",message:`The structured-output request file is invalid: ${r.error}`,next:`Have the requester re-issue the request, or remove ${H(e)} and finish with \`crtr push final\`.`});const{mode:i,schema:o}=r.request;let u;if("value"in n)try{u=await L(o,n.value)}catch(f){throw new d({error:"result_schema_mismatch",message:`the submitted result does not match the requested schema: ${f.message}`,next:'Fix the listed fields and rerun `crtr push result`; if the schema cannot be honestly satisfied, rerun with `--decline "<reason>" --code <token>`.'})}const h=i==="terminal"?c(e)?.status:void 0,p=i==="terminal"?await S(e):void 0;let a,m,w;if("declined"in n){const{declined:f}=n;if(a=G(e,{mode:i,...f,at:new Date().toISOString()}),m=U(a,f),i==="terminal"){const T={schema:"crtr.node-outcome-detail/v1",message:f.reason,declined:f};w={kind:"failure",reason:"declined",detailJson:JSON.stringify(T)}}}else a=X(e,u),m=Q(a,u);const g=await R(e,{tier:i==="terminal"?"final":"update",body:m},w);W(e);const b=i==="terminal"&&h!==void 0?{from:h,to:c(e)?.status??"done"}:void 0;return{status:200,body:{mode:i,result_path:a,report_path:g.reportPath,notified:[...g.deliveredTo],..."declined"in n?{declined:n.declined}:{},...b===void 0?{}:{transitioned:b},...p===void 0?{}:{worktree_auto_dropped:!0,worktree_auto_dropped_path:p}}}}s(Z,"handleSubmitResult");async function R(t,e,n){try{return await E(t,{kind:e.tier,body:e.body,...e.delivery_tier===void 0?{}:{deliveryTier:e.delivery_tier},...n===void 0?{}:{outcome:n}})}catch(r){throw r instanceof _&&r.code==="already_finalized"?new d({error:"already_finalized",message:"This node already submitted its canonical final result.",next:"Push an update with the new information, then stop."}):r instanceof _&&r.code==="finalization_forbidden"?new d({error:"finalization_forbidden",message:"A canceled or dead node cannot submit a canonical final result.",next:"Do not push final from this node."}):r}}s(R,"pushOrRethrow");function ee(t){const e=t.match(/^(\d{4})(\d{2})(\d{2})T(\d{2})(\d{2})(\d{2})$/);return e===null?t:`${e[1]}-${e[2]}-${e[3]}T${e[4]}:${e[5]}:${e[6]}`}s(ee,"compactToIso");function te(t){const e=J(t);let n;try{n=x(e).filter(i=>i.endsWith(".md"))}catch{n=[]}const r=[];for(const i of n){const o=A(e,i),u=D(o,"utf8"),{data:h,body:p}=z(u),a=i.match(/^([0-9]{8}T[0-9]{6})-(\w+)\.md$/),m=(typeof h?.kind=="string"?h.kind:void 0)??(a?a[2]:"update"),w=(typeof h?.ts=="string"?h.ts:void 0)??(a?ee(a[1]):new Date(P(o).mtimeMs).toISOString());r.push({path:o,tier:m,body:p.trim(),created:w})}return r.sort((i,o)=>i.created<o.created?1:i.created>o.created?-1:0),r}s(te,"reportsForNode");function ne(t){const e=t.params.id;y(e);const n=t.query.get("tier"),r=t.query.get("limit"),i=r!==null?Number(r):void 0;let o=te(e);return n!==null&&(o=o.filter(u=>u.tier===n)),i!==void 0&&Number.isFinite(i)&&i>=0&&(o=o.slice(0,i)),{status:200,body:o}}s(ne,"handleList");const ye=[{method:"POST",pattern:"/v1/nodes/:id/reports",handler:V},{method:"GET",pattern:"/v1/nodes/:id/reports",handler:ne},{method:"POST",pattern:"/v1/nodes/:id/result",handler:Z}];export{ye as reportRoutes,te as reportsForNode};
|