@pellux/goodvibes-tui 1.27.0 → 2.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (404) hide show
  1. package/CHANGELOG.md +125 -2
  2. package/README.md +7 -9
  3. package/bin/goodvibes +2 -2
  4. package/bin/launcher-support.js +8 -4
  5. package/docs/README.md +11 -2
  6. package/docs/foundation-artifacts/operator-contract.json +6403 -2347
  7. package/package.json +14 -25
  8. package/scripts/postinstall.js +35 -35
  9. package/src/audio/spoken-turn-model-routing.ts +1 -1
  10. package/src/cli/bundle-command.ts +5 -5
  11. package/src/cli/completions/generate.ts +1 -1
  12. package/src/cli/doctor.ts +3 -3
  13. package/src/cli/entrypoint.ts +12 -7
  14. package/src/cli/help.ts +4 -5
  15. package/src/cli/hooks-command.ts +1 -1
  16. package/src/cli/index.ts +1 -4
  17. package/src/cli/launch-auto-update.ts +59 -7
  18. package/src/cli/management-commands.ts +6 -6
  19. package/src/cli/management-utils.ts +5 -5
  20. package/src/cli/management.ts +7 -7
  21. package/src/cli/network-posture.ts +1 -1
  22. package/src/cli/package-verification.ts +7 -6
  23. package/src/cli/plugin-bundles-command.ts +1 -1
  24. package/src/cli/plugin-command.ts +2 -2
  25. package/src/cli/service-command.ts +2 -2
  26. package/src/cli/service-posture.ts +4 -4
  27. package/src/cli/status.ts +9 -8
  28. package/src/cli/surface-command.ts +4 -4
  29. package/src/cli/tui-startup.ts +12 -3
  30. package/src/cli-flags.ts +3 -3
  31. package/src/config/goodvibes-home-audit.ts +0 -2
  32. package/src/config/secret-config.ts +37 -5
  33. package/src/config/tui-extension-settings.ts +1 -1
  34. package/src/core/approval-alert.ts +2 -2
  35. package/src/core/budget-breach-notifier.ts +3 -3
  36. package/src/core/conversation-compaction-render.ts +1 -1
  37. package/src/core/conversation-line-cache.ts +1 -1
  38. package/src/core/conversation-render-context.ts +1 -1
  39. package/src/core/conversation-rendering.ts +2 -2
  40. package/src/core/conversation.ts +10 -10
  41. package/src/core/long-task-notifier.ts +2 -2
  42. package/src/core/memory-diagnostics-gateway.ts +1 -1
  43. package/src/core/scriptable-statusline.ts +1 -1
  44. package/src/core/session-auto-titler.ts +1 -1
  45. package/src/core/session-resume-core.ts +2 -2
  46. package/src/core/stream-event-wiring.ts +24 -44
  47. package/src/core/terminal-notifier.ts +3 -3
  48. package/src/core/turn-cancellation.ts +1 -1
  49. package/src/core/turn-event-wiring.ts +5 -5
  50. package/src/input/command-registry.ts +6 -6
  51. package/src/input/commands/channel-pairing.ts +1 -1
  52. package/src/input/commands/cluster-runtime.ts +1 -1
  53. package/src/input/commands/codebase-runtime.ts +1 -1
  54. package/src/input/commands/devices-runtime.ts +1 -1
  55. package/src/input/commands/hosted-runtime.ts +330 -0
  56. package/src/input/commands/local-setup-review.ts +1 -1
  57. package/src/input/commands/local-setup-transfer.ts +2 -2
  58. package/src/input/commands/local-setup.ts +3 -3
  59. package/src/input/commands/managed-runtime.ts +2 -2
  60. package/src/input/commands/operator-rpc.ts +24 -110
  61. package/src/input/commands/payment-card-intake.ts +1 -1
  62. package/src/input/commands/permissions-provenance.ts +2 -2
  63. package/src/input/commands/plugin-runtime.ts +1 -1
  64. package/src/input/commands/provider.ts +1 -1
  65. package/src/input/commands/relay-runtime.ts +18 -9
  66. package/src/input/commands/rewind-runtime.ts +1 -1
  67. package/src/input/commands/runtime-services.ts +1 -1
  68. package/src/input/commands/services-runtime.ts +1 -1
  69. package/src/input/commands/session-workflow.ts +1 -1
  70. package/src/input/commands/settings-sync-runtime.ts +2 -2
  71. package/src/input/commands/share-runtime.ts +1 -1
  72. package/src/input/commands/tasks-runtime.ts +145 -55
  73. package/src/input/commands/update-runtime.ts +31 -28
  74. package/src/input/commands/work-plan-runtime.ts +2 -2
  75. package/src/input/commands/workstream-attempts.ts +1 -1
  76. package/src/input/commands/workstream-runtime.ts +2 -2
  77. package/src/input/commands.ts +2 -0
  78. package/src/input/feature-unit-layout.ts +1 -1
  79. package/src/input/feed-context-factory.ts +3 -3
  80. package/src/input/handler-content-actions.ts +2 -2
  81. package/src/input/handler-feed-routes.ts +1 -1
  82. package/src/input/handler-feed.ts +3 -3
  83. package/src/input/handler-modal-token-routes.ts +1 -1
  84. package/src/input/handler-onboarding-daemon-adopt.ts +3 -2
  85. package/src/input/handler-onboarding.ts +1 -1
  86. package/src/input/handler-types.ts +2 -2
  87. package/src/input/handler-ui-state.ts +1 -1
  88. package/src/input/handler.ts +4 -4
  89. package/src/input/input-history.ts +1 -1
  90. package/src/input/onboarding/onboarding-feature-units.ts +2 -2
  91. package/src/input/onboarding/onboarding-runtime-status.ts +15 -1
  92. package/src/input/onboarding/onboarding-wizard-apply.ts +17 -8
  93. package/src/input/onboarding/onboarding-wizard-cloudflare-step.ts +5 -3
  94. package/src/input/onboarding/onboarding-wizard-external-surfaces.ts +1 -1
  95. package/src/input/onboarding/onboarding-wizard-types.ts +1 -1
  96. package/src/input/payments-config.ts +6 -6
  97. package/src/input/search.ts +1 -1
  98. package/src/input/session-picker-modal.ts +46 -0
  99. package/src/input/settings-modal-activation.ts +1 -1
  100. package/src/input/settings-modal-behavior.ts +4 -4
  101. package/src/input/settings-modal-commit.ts +11 -0
  102. package/src/input/settings-modal-data.ts +13 -80
  103. package/src/input/settings-modal-mutations.ts +33 -0
  104. package/src/input/settings-modal-secrets.ts +34 -0
  105. package/src/input/settings-modal-subscriptions.ts +1 -1
  106. package/src/input/settings-modal-types.ts +15 -1
  107. package/src/input/settings-modal.ts +28 -3
  108. package/src/input/worktree-setup-config.ts +1 -1
  109. package/src/main.ts +11 -9
  110. package/src/panels/agent-inspector-shared.ts +2 -2
  111. package/src/panels/base-panel.ts +2 -2
  112. package/src/panels/builtin/operations.ts +6 -8
  113. package/src/panels/builtin/session.ts +17 -0
  114. package/src/panels/builtin/shared.ts +5 -5
  115. package/src/panels/builtin-modals.ts +3 -3
  116. package/src/panels/confirm-state.ts +1 -1
  117. package/src/panels/cost-tracker-panel.ts +4 -4
  118. package/src/panels/diff-panel.ts +2 -2
  119. package/src/panels/diff-review-panel.ts +2 -2
  120. package/src/panels/expandable-list-panel.ts +2 -2
  121. package/src/panels/fleet-acts.ts +1 -1
  122. package/src/panels/fleet-observed-render.ts +1 -1
  123. package/src/panels/fleet-panel-format.ts +1 -1
  124. package/src/panels/fleet-panel.ts +1 -1
  125. package/src/panels/fleet-spawn.ts +1 -1
  126. package/src/panels/fleet-steer.ts +1 -1
  127. package/src/panels/fleet-transcript.ts +1 -1
  128. package/src/panels/git-panel.ts +1 -1
  129. package/src/panels/hosted-session-feed.ts +352 -0
  130. package/src/panels/hosted-session-panel.ts +221 -0
  131. package/src/panels/local-auth-panel.ts +3 -3
  132. package/src/panels/modals/devices-modal.ts +1 -1
  133. package/src/panels/modals/local-auth-modal.ts +1 -1
  134. package/src/panels/modals/pairing-modal.ts +1 -1
  135. package/src/panels/modals/services-modal.ts +1 -1
  136. package/src/panels/modals/settings-sync-modal.ts +1 -1
  137. package/src/panels/modals/subscription-modal.ts +1 -1
  138. package/src/panels/modals/work-plan-modal.ts +1 -1
  139. package/src/panels/notifications-panel.ts +1 -1
  140. package/src/panels/panel-confirm-overlay.ts +1 -1
  141. package/src/panels/plugins-panel.ts +2 -2
  142. package/src/panels/polish-core.ts +2 -2
  143. package/src/panels/polish-tables.ts +1 -1
  144. package/src/panels/polish.ts +2 -2
  145. package/src/panels/scrollable-list-panel.ts +3 -3
  146. package/src/panels/skills-panel.ts +3 -3
  147. package/src/panels/token-budget-panel.ts +5 -5
  148. package/src/panels/types.ts +1 -2
  149. package/src/permissions/prompt.ts +1 -1
  150. package/src/renderer/autocomplete-overlay.ts +1 -1
  151. package/src/renderer/block-actions-overlay.ts +1 -1
  152. package/src/renderer/bookmark-modal.ts +1 -1
  153. package/src/renderer/buffer.ts +1 -1
  154. package/src/renderer/code-block.ts +1 -1
  155. package/src/renderer/composer-fragments.ts +1 -1
  156. package/src/renderer/compositor.ts +2 -2
  157. package/src/renderer/config-modal.ts +1 -1
  158. package/src/renderer/context-inspector.ts +1 -1
  159. package/src/renderer/conversation-layout.ts +2 -2
  160. package/src/renderer/conversation-overlays.ts +1 -1
  161. package/src/renderer/conversation-surface.ts +2 -2
  162. package/src/renderer/diff-view.ts +1 -1
  163. package/src/renderer/diff.ts +1 -1
  164. package/src/renderer/file-picker-overlay.ts +1 -1
  165. package/src/renderer/fleet-tab-strip.ts +1 -1
  166. package/src/renderer/fullscreen-primitives.ts +2 -2
  167. package/src/renderer/fullscreen-workspace.ts +1 -1
  168. package/src/renderer/header-line.ts +1 -1
  169. package/src/renderer/help-overlay.ts +1 -1
  170. package/src/renderer/history-search-overlay.ts +2 -2
  171. package/src/renderer/layout.ts +5 -8
  172. package/src/renderer/markdown-inline.ts +1 -1
  173. package/src/renderer/markdown-table.ts +1 -1
  174. package/src/renderer/markdown.ts +1 -1
  175. package/src/renderer/mcp-workspace.ts +1 -1
  176. package/src/renderer/modal-factory.ts +2 -2
  177. package/src/renderer/model-workspace.ts +2 -2
  178. package/src/renderer/onboarding/onboarding-wizard.ts +1 -1
  179. package/src/renderer/overlay-box.ts +1 -1
  180. package/src/renderer/panel-composite.ts +1 -1
  181. package/src/renderer/panel-workspace-bar.ts +1 -1
  182. package/src/renderer/process-indicator.ts +1 -1
  183. package/src/renderer/profile-picker-modal.ts +1 -1
  184. package/src/renderer/search-overlay.ts +2 -2
  185. package/src/renderer/selection-modal-overlay.ts +1 -1
  186. package/src/renderer/session-picker-modal.ts +124 -3
  187. package/src/renderer/settings-modal-helpers.ts +2 -0
  188. package/src/renderer/settings-modal.ts +2 -2
  189. package/src/renderer/shell-surface.ts +2 -2
  190. package/src/renderer/system-message.ts +1 -1
  191. package/src/renderer/tab-strip.ts +1 -1
  192. package/src/renderer/theme-mode-config.ts +1 -1
  193. package/src/renderer/theme.ts +11 -12
  194. package/src/renderer/thinking.ts +1 -1
  195. package/src/renderer/tool-call.ts +2 -2
  196. package/src/renderer/tool-result-expanded-lines.ts +1 -1
  197. package/src/renderer/turn-injection.ts +7 -8
  198. package/src/renderer/ui-factory.ts +3 -3
  199. package/src/runtime/bootstrap-command-context.ts +4 -4
  200. package/src/runtime/bootstrap-command-parts.ts +5 -5
  201. package/src/runtime/bootstrap-core.ts +30 -30
  202. package/src/runtime/bootstrap-shell.ts +4 -4
  203. package/src/runtime/bootstrap.ts +128 -157
  204. package/src/runtime/client/approval-updates.ts +82 -0
  205. package/src/runtime/client/build-floors.ts +167 -0
  206. package/src/runtime/client/daemon-attach-handshake.ts +115 -0
  207. package/src/runtime/client/fleet-union.ts +147 -0
  208. package/src/runtime/client/host-service-status.ts +71 -0
  209. package/src/runtime/client/hosted-exit.ts +86 -0
  210. package/src/runtime/client/hosted-roster.ts +110 -0
  211. package/src/runtime/client/hosted-session-stream.ts +178 -0
  212. package/src/runtime/client/hosted-sessions.ts +187 -0
  213. package/src/runtime/client/operator-endpoint.ts +213 -0
  214. package/src/runtime/client/spine-adoption.ts +99 -0
  215. package/src/runtime/cloudflare-control-plane.ts +1 -1
  216. package/src/runtime/context-accounting-source.ts +1 -1
  217. package/src/runtime/context.ts +2 -2
  218. package/src/runtime/conversation-rewind-port.ts +42 -14
  219. package/src/runtime/daemon-attach-notices.ts +55 -19
  220. package/src/runtime/diagnostics/panels/ops.ts +1 -1
  221. package/src/runtime/disposal-wiring.ts +4 -24
  222. package/src/runtime/index.ts +119 -105
  223. package/src/runtime/install-self-check-startup.ts +2 -2
  224. package/src/runtime/interaction-seams.ts +1 -1
  225. package/src/runtime/knowledge-services.ts +8 -2
  226. package/src/runtime/legacy-daemon-migration.ts +15 -3
  227. package/src/runtime/legacy-daemon-reconcile.ts +3 -2
  228. package/src/runtime/memory-spine-transport.ts +37 -267
  229. package/src/runtime/notification-dispatch.ts +2 -2
  230. package/src/runtime/onboarding/apply.ts +2 -2
  231. package/src/runtime/onboarding/derivation.ts +2 -2
  232. package/src/runtime/onboarding/markers.ts +2 -2
  233. package/src/runtime/onboarding/progress.ts +2 -2
  234. package/src/runtime/onboarding/snapshot.ts +1 -1
  235. package/src/runtime/onboarding/state.ts +2 -2
  236. package/src/runtime/onboarding/types.ts +2 -2
  237. package/src/runtime/orchestrator-core-services.ts +1 -1
  238. package/src/runtime/path-shadow-startup.ts +28 -221
  239. package/src/runtime/power-keepawake-remote.ts +3 -2
  240. package/src/runtime/process-lifecycle.ts +2 -2
  241. package/src/runtime/provider-fallback.ts +10 -66
  242. package/src/runtime/recovery-autosave.ts +1 -1
  243. package/src/runtime/recovery-offer-wiring.ts +39 -23
  244. package/src/runtime/recovery-prompt.ts +31 -17
  245. package/src/runtime/relay-reachability-bridge.ts +53 -42
  246. package/src/runtime/release-artifacts.ts +2 -1
  247. package/src/runtime/runtime-services-types.ts +82 -35
  248. package/src/runtime/services.ts +305 -300
  249. package/src/runtime/session-resume-liveness-confirm.ts +1 -1
  250. package/src/runtime/ui-services.ts +7 -6
  251. package/src/runtime/update-check.ts +23 -43
  252. package/src/runtime/workspace-checkpointing.ts +1 -1
  253. package/src/runtime/wrfc-persistence.ts +2 -2
  254. package/src/shell/ui-openers.ts +30 -7
  255. package/src/utils/clipboard.ts +1 -1
  256. package/src/verification/verification-ledger.ts +10 -8
  257. package/src/version.ts +1 -1
  258. package/bin/goodvibes-daemon +0 -90
  259. package/src/cli/config-overrides.ts +0 -267
  260. package/src/cli/endpoints.ts +0 -109
  261. package/src/cli/parser.ts +0 -395
  262. package/src/cli/redaction.ts +0 -170
  263. package/src/cli/types.ts +0 -84
  264. package/src/cluster/commands.ts +0 -382
  265. package/src/cluster/remote-daemon-target.ts +0 -225
  266. package/src/cluster/render.ts +0 -268
  267. package/src/config/atomic-write.ts +0 -70
  268. package/src/config/credential-availability.ts +0 -122
  269. package/src/config/goodvibes-home.ts +0 -149
  270. package/src/config/index.ts +0 -88
  271. package/src/config/provider-model.ts +0 -23
  272. package/src/config/read-versioned.ts +0 -228
  273. package/src/core/alert-gating.ts +0 -67
  274. package/src/core/consolidation-receipt.ts +0 -41
  275. package/src/core/focus-tracker.ts +0 -41
  276. package/src/core/history.ts +0 -45
  277. package/src/core/memory-status.ts +0 -118
  278. package/src/core/orchestrator.ts +0 -7
  279. package/src/core/pairing-devices.ts +0 -49
  280. package/src/core/pairing-handoff.ts +0 -101
  281. package/src/core/pairing-offers.ts +0 -83
  282. package/src/core/pairing-origin.ts +0 -78
  283. package/src/core/rewind-turn-anchors.ts +0 -311
  284. package/src/core/session-recovery.ts +0 -210
  285. package/src/core/stable-host.ts +0 -171
  286. package/src/core/transcript-journal.ts +0 -503
  287. package/src/daemon/cli.ts +0 -641
  288. package/src/daemon/handlers/context.ts +0 -29
  289. package/src/daemon/handlers/contracts.ts +0 -77
  290. package/src/daemon/handlers/credentials.ts +0 -139
  291. package/src/daemon/handlers/drafts/draft-store.ts +0 -427
  292. package/src/daemon/handlers/drafts/index.ts +0 -17
  293. package/src/daemon/handlers/drafts/register.ts +0 -331
  294. package/src/daemon/handlers/errors.ts +0 -18
  295. package/src/daemon/handlers/inbox/cursor-store.ts +0 -457
  296. package/src/daemon/handlers/inbox/index.ts +0 -284
  297. package/src/daemon/handlers/inbox/mapping.ts +0 -192
  298. package/src/daemon/handlers/inbox/poller.ts +0 -212
  299. package/src/daemon/handlers/inbox/provider-adapter.ts +0 -156
  300. package/src/daemon/handlers/inbox/providers/discord.ts +0 -252
  301. package/src/daemon/handlers/inbox/providers/email.ts +0 -152
  302. package/src/daemon/handlers/inbox/providers/imap-client.ts +0 -300
  303. package/src/daemon/handlers/inbox/providers/route-util.ts +0 -24
  304. package/src/daemon/handlers/inbox/providers/slack.ts +0 -263
  305. package/src/daemon/handlers/index.ts +0 -117
  306. package/src/daemon/handlers/register.ts +0 -168
  307. package/src/daemon/handlers/remote/backends/cloud-terminal.ts +0 -142
  308. package/src/daemon/handlers/remote/backends/docker.ts +0 -79
  309. package/src/daemon/handlers/remote/backends/index.ts +0 -40
  310. package/src/daemon/handlers/remote/backends/local-process.ts +0 -113
  311. package/src/daemon/handlers/remote/backends/process-runner.ts +0 -127
  312. package/src/daemon/handlers/remote/backends/ssh.ts +0 -125
  313. package/src/daemon/handlers/remote/backends/types.ts +0 -97
  314. package/src/daemon/handlers/remote/dispatcher.ts +0 -181
  315. package/src/daemon/handlers/remote/index.ts +0 -119
  316. package/src/daemon/handlers/remote/peer-registry.ts +0 -357
  317. package/src/daemon/handlers/remote/service.ts +0 -191
  318. package/src/daemon/handlers/routing/inbox-bridge.ts +0 -71
  319. package/src/daemon/handlers/routing/index.ts +0 -261
  320. package/src/daemon/handlers/routing/route-store.ts +0 -319
  321. package/src/daemon/handlers/routing/routing-resolver.ts +0 -75
  322. package/src/daemon/handlers/sqlite-store.ts +0 -278
  323. package/src/daemon/handlers/triage/index.ts +0 -57
  324. package/src/daemon/handlers/triage/integration.ts +0 -213
  325. package/src/daemon/handlers/triage/pipeline.ts +0 -274
  326. package/src/daemon/handlers/triage/scorer.ts +0 -287
  327. package/src/daemon/handlers/triage/tagger/discord.ts +0 -187
  328. package/src/daemon/handlers/triage/tagger/imap.ts +0 -384
  329. package/src/daemon/handlers/triage/tagger/index.ts +0 -184
  330. package/src/daemon/handlers/triage/tagger/shared.ts +0 -70
  331. package/src/daemon/handlers/triage/tagger/slack.ts +0 -69
  332. package/src/daemon/handlers/triage/types.ts +0 -50
  333. package/src/daemon/lifecycle.ts +0 -41
  334. package/src/daemon/provision-wake-model.ts +0 -81
  335. package/src/daemon/safe-serve.ts +0 -61
  336. package/src/daemon/send/channels.ts +0 -200
  337. package/src/daemon/send/command.ts +0 -332
  338. package/src/daemon/send/composition.ts +0 -99
  339. package/src/daemon/send/failure-text.ts +0 -93
  340. package/src/daemon/send/inert-text.ts +0 -225
  341. package/src/daemon/send/stdin.ts +0 -24
  342. package/src/daemon/service-commands.ts +0 -329
  343. package/src/export/cost-utils.ts +0 -319
  344. package/src/input/selection.ts +0 -135
  345. package/src/plugins/loader.ts +0 -15
  346. package/src/renderer/bottom-bar.ts +0 -58
  347. package/src/renderer/conversation-tree.ts +0 -228
  348. package/src/runtime/agent-graph-composition.ts +0 -78
  349. package/src/runtime/channel-composition.ts +0 -46
  350. package/src/runtime/cluster-composition.ts +0 -124
  351. package/src/runtime/cluster-group-composition.ts +0 -284
  352. package/src/runtime/code-index-services.ts +0 -167
  353. package/src/runtime/daemon-handler-composition.ts +0 -76
  354. package/src/runtime/device-posture-composition.ts +0 -110
  355. package/src/runtime/durability-housekeeping.ts +0 -183
  356. package/src/runtime/durability-services.ts +0 -155
  357. package/src/runtime/embedded-service-factories.ts +0 -58
  358. package/src/runtime/feature-settings.ts +0 -154
  359. package/src/runtime/fleet-needs-input-push.ts +0 -70
  360. package/src/runtime/fleet-services.ts +0 -41
  361. package/src/runtime/idle-power-services.ts +0 -85
  362. package/src/runtime/mail-composition.ts +0 -65
  363. package/src/runtime/memory-fold.ts +0 -55
  364. package/src/runtime/operator-token-cleanup.ts +0 -109
  365. package/src/runtime/path-shadow.ts +0 -418
  366. package/src/runtime/perf/panel-health-monitor.ts +0 -18
  367. package/src/runtime/provider-optimizer-wiring.ts +0 -55
  368. package/src/runtime/reachability-notice.ts +0 -100
  369. package/src/runtime/remote-execution-composition.ts +0 -62
  370. package/src/runtime/session-liveness-marker.ts +0 -257
  371. package/src/runtime/session-pointer-surface.ts +0 -22
  372. package/src/runtime/session-storage-services.ts +0 -41
  373. package/src/runtime/surface-feature-flags.ts +0 -96
  374. package/src/runtime/terminal-output-guard.ts +0 -235
  375. package/src/runtime/trust/workspace-registration.ts +0 -192
  376. package/src/runtime/trust/workspace-trust.ts +0 -229
  377. package/src/runtime/ui/index.ts +0 -39
  378. package/src/runtime/ui/model-picker/data-provider.ts +0 -182
  379. package/src/runtime/ui/model-picker/health-enrichment.ts +0 -231
  380. package/src/runtime/ui/model-picker/index.ts +0 -59
  381. package/src/runtime/ui/model-picker/types.ts +0 -153
  382. package/src/runtime/ui/provider-health/data-provider.ts +0 -244
  383. package/src/runtime/ui/provider-health/fallback-visualizer.ts +0 -71
  384. package/src/runtime/ui/provider-health/index.ts +0 -46
  385. package/src/runtime/ui/provider-health/types.ts +0 -146
  386. package/src/runtime/ui-events.ts +0 -1
  387. package/src/runtime/ui-read-model-helpers.ts +0 -1
  388. package/src/runtime/ui-read-models-observability-maintenance.ts +0 -1
  389. package/src/runtime/ui-read-models-observability-options.ts +0 -1
  390. package/src/runtime/ui-read-models-observability-remote.ts +0 -1
  391. package/src/runtime/ui-read-models-observability-security.ts +0 -1
  392. package/src/runtime/ui-read-models-observability-system.ts +0 -1
  393. package/src/runtime/ui-read-models-observability.ts +0 -1
  394. package/src/runtime/ui-service-queries.ts +0 -1
  395. package/src/runtime/voice-setup-services.ts +0 -98
  396. package/src/runtime/workstream-attempts-validation.ts +0 -77
  397. package/src/runtime/workstream-draft-edits.ts +0 -95
  398. package/src/runtime/workstream-draft-store.ts +0 -274
  399. package/src/runtime/workstream-draft-types.ts +0 -42
  400. package/src/runtime/workstream-services.ts +0 -373
  401. package/src/tools/index.ts +0 -1
  402. package/src/types/grid.ts +0 -48
  403. package/src/types/sql-js.d.ts +0 -15
  404. package/src/work-plans/work-plan-store.ts +0 -702
@@ -1,85 +0,0 @@
1
- // ---------------------------------------------------------------------------
2
- // idle-power-services.ts — the idle-time / sleep-ownership / live-turn slice of
3
- // the runtime composition, extracted from services.ts (file-size hygiene).
4
- //
5
- // Mirrors the SDK's own createRuntimeServices wiring: idle-time memory
6
- // consolidation (learning.consolidation.*), host sleep ownership (power.*), and
7
- // the per-session live-turn control holder that backs the
8
- // sessions.toolCalls.cancel / sessions.queuedMessages.* wire verbs. Consolidation
9
- // receipts ride the SAME attach-time queue every other receipt uses — a run that
10
- // changed something records a one-line notice into the file-backed
11
- // feature-announcement store, drained on the next surface attach; a quiet run
12
- // records nothing.
13
- // ---------------------------------------------------------------------------
14
-
15
- import type { ConfigManager } from '@pellux/goodvibes-sdk/platform/config';
16
- import type { MemoryRegistry } from '@pellux/goodvibes-sdk/platform/state';
17
- import { MemoryConsolidationScheduler } from '@pellux/goodvibes-sdk/platform/state';
18
- import { SessionLiveTurnControlsHolder } from '@pellux/goodvibes-sdk/platform/control-plane';
19
- import { PowerManager, wireRuntimePower, createUnavailablePowerSeam } from '@pellux/goodvibes-sdk/platform/power';
20
- import { FeatureAnnouncementStore, featureAnnouncementsPath } from '@pellux/goodvibes-sdk/platform/runtime/feature-announcements';
21
- import type { RuntimeEventBus } from '@pellux/goodvibes-sdk/platform/runtime/state';
22
- import { formatConsolidationReceipt } from '../core/consolidation-receipt.ts';
23
-
24
- export interface IdlePowerServicesDeps {
25
- readonly configManager: ConfigManager;
26
- readonly memoryRegistry: MemoryRegistry;
27
- readonly runtimeBus: RuntimeEventBus;
28
- /** True when no session is busy — the consolidation scheduler's idle gate. */
29
- readonly isIdle: () => boolean;
30
- /** Sleep-edge checkpoint + a wake catch-up tick (store snapshots). */
31
- readonly snapshotTick: () => void;
32
- /** Wake catch-up: fire the automation heartbeat. */
33
- readonly heartbeat: () => Promise<void>;
34
- /**
35
- * Host power seam. SDK 1.9.0 makes wireRuntimePower default an absent seam to
36
- * the REAL host seam (createHostPowerSeam — which spawns systemd-inhibit and a
37
- * dbus-monitor sleep-edge watcher). That spawn is a host-level side effect, so
38
- * this fork mirrors the SDK's own createRuntimeServices: when no seam is passed
39
- * we default to the NON-spawning unavailable seam, keeping test-constructed
40
- * runtimes deterministic. Only the real long-lived compositions (the standalone
41
- * daemon and the embedded interactive runtime, which itself IS the daemon) pass
42
- * createHostPowerSeam() to opt into live OS keep-awake/idle-inhibit.
43
- */
44
- readonly powerSeam?: Parameters<typeof wireRuntimePower>[0]['seam'];
45
- }
46
-
47
- export interface IdlePowerServices {
48
- readonly memoryConsolidationScheduler: MemoryConsolidationScheduler;
49
- readonly powerManager: PowerManager;
50
- readonly sessionLiveTurnControls: SessionLiveTurnControlsHolder;
51
- }
52
-
53
- /** Construct (and start) the idle-consolidation scheduler, power manager, and live-turn holder. */
54
- export function wireIdlePowerAndLiveTurn(deps: IdlePowerServicesDeps): IdlePowerServices {
55
- const consolidationReceiptStore = new FeatureAnnouncementStore(featureAnnouncementsPath(deps.configManager));
56
- const memoryConsolidationScheduler = new MemoryConsolidationScheduler({
57
- memoryRegistry: deps.memoryRegistry,
58
- configSource: deps.configManager,
59
- isIdle: deps.isIdle,
60
- onReceipt: (receipt) => {
61
- const text = formatConsolidationReceipt(receipt);
62
- if (text) consolidationReceiptStore.record(receipt.runId, text);
63
- },
64
- });
65
- memoryConsolidationScheduler.start();
66
- const sessionLiveTurnControls = new SessionLiveTurnControlsHolder();
67
- const powerManager = wireRuntimePower({
68
- readConfig: (key) => deps.configManager.get(key as Parameters<typeof deps.configManager.get>[0]),
69
- writeConfig: (key, value) => deps.configManager.setDynamic(key as Parameters<typeof deps.configManager.setDynamic>[0], value),
70
- // Live config subscription: an external edit to power.keepAwake (a settings-
71
- // modal toggle, a hand-edited settings file) applies LIVE to the in-process
72
- // manager — acquires/releases the inhibitor and lights the chip with no
73
- // restart. This is the config-apply path for the EMBEDDED topology + the
74
- // local chip; the external daemon is reached separately over the verb.
75
- subscribeConfig: (key, cb) => (deps.configManager.subscribe as unknown as (k: string, c: (v: unknown) => void) => () => void)(key, (newValue) => cb(newValue)),
76
- runtimeBus: deps.runtimeBus,
77
- sleepCheckpoint: deps.snapshotTick,
78
- wakeCatchUp: [() => memoryConsolidationScheduler.tick(), deps.snapshotTick, deps.heartbeat],
79
- // Non-spawning default (see powerSeam doc above): without an explicit opt-in
80
- // the seam is the honest unavailable one, NOT the spawning host seam that
81
- // wireRuntimePower would otherwise pick for an undefined seam.
82
- seam: deps.powerSeam ?? createUnavailablePowerSeam('runtime services constructed without a host power seam'),
83
- });
84
- return { memoryConsolidationScheduler, powerManager, sessionLiveTurnControls };
85
- }
@@ -1,65 +0,0 @@
1
- /**
2
- * mail-composition.ts
3
- *
4
- * The deps that let the platform register this daemon's `email.*` verbs.
5
- *
6
- * `calendar.*` and `email.*` are served by the platform now, not by handlers in
7
- * this repository — those were deleted when the platform gained an
8
- * implementation the daemon could call. What is left for a product to supply is
9
- * the wiring, and it is not optional: without `homeDirectory` the calendar
10
- * composition returns null, without these deps the mail one does, and either way
11
- * the verbs stay cataloged-but-unhandled while every surface reports the daemon
12
- * unreachable on a daemon that is working perfectly.
13
- *
14
- * Extracted from services.ts rather than living there, because that file sits at
15
- * the 800-line architecture cap and a composition step is exactly the kind of
16
- * thing the cap exists to push into a module of its own.
17
- */
18
-
19
- import {
20
- withSurfaceEmailConfig,
21
- describeSurfaceEmailConfigProblem,
22
- describeSenderClaimNeutrally,
23
- type EmailServiceDeps,
24
- type SurfaceEmailConfigProblem,
25
- } from '@pellux/goodvibes-sdk/platform/email';
26
- import { nodeEmailTransport } from '@pellux/goodvibes-sdk/platform/email/node';
27
-
28
- /** The narrow slices this composition needs; the real managers satisfy them. */
29
- interface MailCompositionInput {
30
- readonly configManager: { get(key: never): unknown };
31
- readonly secretsManager: { get(key: string): Promise<string | null> };
32
- }
33
-
34
- /**
35
- * Build the mail deps and the not-configured describer that go to
36
- * `registerGatewayVerbGroups`.
37
- *
38
- * The settings come from the daemon's own `surfaces.email.*` keys through
39
- * `withSurfaceEmailConfig`, so the keys an operator has already set — and that
40
- * the settings modal now shows — keep working unchanged, and a not-configured
41
- * answer names the keys THIS operator actually has rather than the ones the
42
- * service validates internally.
43
- */
44
- export function composeMailDeps(input: MailCompositionInput): {
45
- readonly emailServiceDeps: EmailServiceDeps;
46
- readonly describeEmailConfigProblem: () => Promise<SurfaceEmailConfigProblem | null>;
47
- } {
48
- const getConfig = (key: string): unknown => input.configManager.get(key as never);
49
- const emailServiceDeps = withSurfaceEmailConfig({
50
- getConfig,
51
- secretsManager: input.secretsManager,
52
- transport: nodeEmailTransport,
53
- // The daemon has no wording of its own for a sender line, so it takes the
54
- // platform's rather than growing a second implementation of a rule that is
55
- // security-relevant: a From: header is a claim, sender authentication
56
- // raises display confidence only, and commandAuthority is the literal
57
- // 'none'.
58
- describeSenderClaim: describeSenderClaimNeutrally,
59
- } as never);
60
- return {
61
- emailServiceDeps,
62
- describeEmailConfigProblem: () =>
63
- describeSurfaceEmailConfigProblem(getConfig, input.secretsManager),
64
- };
65
- }
@@ -1,55 +0,0 @@
1
- import { join } from 'node:path';
2
- import {
3
- foldMemoryStores,
4
- formatMemoryFoldReport,
5
- type LegacyMemorySource,
6
- type MemoryEmbeddingProviderRegistry,
7
- type MemoryFoldReport,
8
- type MemoryStore,
9
- } from '@pellux/goodvibes-sdk/platform/state';
10
-
11
- /**
12
- * Fold the TUI's legacy per-project memory store into the canonical
13
- * cross-surface store. Called once at boot AFTER `memoryStore.init()` so records written
14
- * before unification survive. Id-keyed and idempotent — a re-run imports nothing new and
15
- * never deletes the legacy file. Returns the report so boot can log what moved.
16
- */
17
- export async function foldTuiLegacyMemory(
18
- memoryStore: MemoryStore,
19
- memoryEmbeddingRegistry: MemoryEmbeddingProviderRegistry,
20
- workingDirectory: string,
21
- ): Promise<MemoryFoldReport> {
22
- const legacyTuiProject = join(workingDirectory, '.goodvibes', 'tui', 'memory.sqlite');
23
- const sources: LegacyMemorySource[] = [
24
- { label: `tui:${workingDirectory} (legacy per-project store)`, dbPath: legacyTuiProject },
25
- ];
26
- return foldMemoryStores(memoryStore, sources, { embeddingRegistry: memoryEmbeddingRegistry });
27
- }
28
-
29
- /** A minimal boot logger seam (matches the SDK logger's info/warn shape). */
30
- export interface BootFoldLogger {
31
- info(message: string, meta?: unknown): void;
32
- warn(message: string, meta?: unknown): void;
33
- }
34
-
35
- /**
36
- * Run the legacy TUI memory fold at boot and surface the report. Never blocks or
37
- * fails boot: a fold error degrades to a warn and the canonical store serves on.
38
- * Only logs the report when something actually moved (or a source failed), so a
39
- * clean boot stays quiet.
40
- */
41
- export async function runBootMemoryFold(
42
- memoryStore: MemoryStore,
43
- memoryEmbeddingRegistry: MemoryEmbeddingProviderRegistry,
44
- workingDirectory: string,
45
- log: BootFoldLogger,
46
- ): Promise<void> {
47
- try {
48
- const report = await foldTuiLegacyMemory(memoryStore, memoryEmbeddingRegistry, workingDirectory);
49
- if (report.totalImported > 0 || report.failedSources.length > 0) {
50
- log.info(`[bootstrap] memory fold: ${formatMemoryFoldReport(report)}`);
51
- }
52
- } catch (err) {
53
- log.warn('memory fold at bootstrap failed (non-fatal; canonical store unaffected)', { err });
54
- }
55
- }
@@ -1,109 +0,0 @@
1
- /**
2
- * operator-token-cleanup.ts
3
- *
4
- * Shared helper that enumerates the legacy workspace-scoped `operator-tokens.json`
5
- * locations the TUI has written at various pre-0.21.28 versions. Used by both the
6
- * in-process bootstrap path (`src/runtime/bootstrap.ts`) and the standalone daemon
7
- * CLI (`src/daemon/cli.ts`) so stale-token pruning has a single source of
8
- * truth for where to look.
9
- *
10
- * Adding a new legacy location: append to `workspaceOperatorTokenCandidates` and
11
- * the new path will be inspected on the next daemon boot.
12
- */
13
-
14
- import { chmodSync, existsSync, mkdirSync, readFileSync, writeFileSync } from 'node:fs';
15
- import { randomBytes } from 'node:crypto';
16
- import { dirname, join } from 'node:path';
17
- import { getOrCreateCompanionToken } from '@pellux/goodvibes-sdk/platform/pairing';
18
- import type { CompanionPairingResult } from '@pellux/goodvibes-sdk/platform/pairing';
19
-
20
- /**
21
- * Return the list of absolute operator-tokens.json paths the TUI may have written
22
- * at legacy (pre-0.21.28) workspace-scoped locations under `workingDirectory`.
23
- *
24
- * The canonical, current-SDK location is `<daemonHomeDir>/operator-tokens.json`;
25
- * this helper is strictly for legacy-cleanup candidates.
26
- */
27
- export function workspaceOperatorTokenCandidates(workingDirectory: string): readonly string[] {
28
- return [
29
- join(workingDirectory, '.goodvibes', 'operator-tokens.json'),
30
- join(workingDirectory, '.goodvibes', 'tui', 'operator-tokens.json'),
31
- ];
32
- }
33
-
34
- /**
35
- * External-daemon adoption: resolve the operator/companion
36
- * token this TUI process uses to authenticate with its daemon, honoring
37
- * `GOODVIBES_DAEMON_TOKEN` as a non-interactive override.
38
- *
39
- * Without this override, the only way to make a TUI instance adopt an
40
- * already-running external daemon that used an out-of-band or explicit token
41
- * (rather than one derived from `getOrCreateCompanionToken` under a *shared*
42
- * home directory) was to hand-write `<daemonHomeDir>/operator-tokens.json`
43
- * before startup — there was no env var or CLI flag equivalent.
44
- *
45
- * `GOODVIBES_DAEMON_TOKEN` is already the documented env var `bin/goodvibes-daemon`
46
- * honors for its own bearer token (see `src/daemon/cli.ts`'s `readDaemonCliTokens`)
47
- * and the one `src/verification/live-verifier.ts`'s `readDaemonToken` already falls
48
- * back to when probing a daemon's HTTP surface from the outside. Reusing the same
49
- * name here means one env var configures both sides of an adopted-daemon setup —
50
- * start the daemon with `GOODVIBES_DAEMON_TOKEN=<token>` and point the TUI at it
51
- * with the same `GOODVIBES_DAEMON_TOKEN=<token>` plus
52
- * `--config controlPlane.host=<host> --config controlPlane.port=<port>` — instead
53
- * of introducing a second, TUI-only flag.
54
- *
55
- * When the override is set and does not already match the on-disk record, the
56
- * file is rewritten so the override becomes durable for this home directory
57
- * (an existing peerId is kept when present, so companion-pairing identity does
58
- * not needlessly churn). Falls back to the existing `getOrCreateCompanionToken`
59
- * behavior — read the existing file, or mint a fresh random token — when the
60
- * override is unset.
61
- *
62
- * @param explicitToken - Takes precedence over `GOODVIBES_DAEMON_TOKEN` when
63
- * provided. Used by the onboarding wizard's "connect to an existing daemon"
64
- * action (a pasted token) so it shares this exact persistence logic with the
65
- * env-var path instead of duplicating it.
66
- */
67
- export function resolveDaemonCompanionToken(daemonHomeDir: string, explicitToken?: string): CompanionPairingResult {
68
- const override = explicitToken?.trim() || process.env.GOODVIBES_DAEMON_TOKEN?.trim();
69
- if (!override) return getOrCreateCompanionToken('tui', { daemonHomeDir });
70
-
71
- const tokenPath = join(daemonHomeDir, 'operator-tokens.json');
72
- let existingPeerId: string | undefined;
73
- let existingCreatedAt: number | undefined;
74
- if (existsSync(tokenPath)) {
75
- try {
76
- const record = JSON.parse(readFileSync(tokenPath, 'utf-8')) as {
77
- token?: unknown;
78
- peerId?: unknown;
79
- createdAt?: unknown;
80
- };
81
- if (typeof record.token === 'string' && record.token === override) {
82
- return {
83
- token: override,
84
- peerId: typeof record.peerId === 'string' ? record.peerId : randomBytes(12).toString('hex'),
85
- createdAt: typeof record.createdAt === 'number' ? record.createdAt : Date.now(),
86
- };
87
- }
88
- if (typeof record.peerId === 'string') existingPeerId = record.peerId;
89
- if (typeof record.createdAt === 'number') existingCreatedAt = record.createdAt;
90
- } catch {
91
- // Malformed on-disk record — fall through and rewrite it with the override.
92
- }
93
- }
94
-
95
- const record: CompanionPairingResult = {
96
- token: override,
97
- peerId: existingPeerId ?? randomBytes(12).toString('hex'),
98
- createdAt: existingCreatedAt ?? Date.now(),
99
- };
100
- try {
101
- mkdirSync(dirname(tokenPath), { recursive: true });
102
- writeFileSync(tokenPath, JSON.stringify(record, null, 2), { encoding: 'utf-8', mode: 0o600 });
103
- chmodSync(tokenPath, 0o600);
104
- } catch {
105
- // Best-effort persistence — the override still applies for this process
106
- // even if the file could not be written (e.g. a read-only home directory).
107
- }
108
- return record;
109
- }