@pellux/goodvibes-tui 1.27.1 → 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 (405) hide show
  1. package/CHANGELOG.md +116 -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 +3 -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 +4 -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 -693
  288. package/src/daemon/fatal-boot-report.ts +0 -111
  289. package/src/daemon/handlers/context.ts +0 -29
  290. package/src/daemon/handlers/contracts.ts +0 -77
  291. package/src/daemon/handlers/credentials.ts +0 -139
  292. package/src/daemon/handlers/drafts/draft-store.ts +0 -427
  293. package/src/daemon/handlers/drafts/index.ts +0 -17
  294. package/src/daemon/handlers/drafts/register.ts +0 -331
  295. package/src/daemon/handlers/errors.ts +0 -18
  296. package/src/daemon/handlers/inbox/cursor-store.ts +0 -457
  297. package/src/daemon/handlers/inbox/index.ts +0 -284
  298. package/src/daemon/handlers/inbox/mapping.ts +0 -192
  299. package/src/daemon/handlers/inbox/poller.ts +0 -212
  300. package/src/daemon/handlers/inbox/provider-adapter.ts +0 -156
  301. package/src/daemon/handlers/inbox/providers/discord.ts +0 -252
  302. package/src/daemon/handlers/inbox/providers/email.ts +0 -152
  303. package/src/daemon/handlers/inbox/providers/imap-client.ts +0 -300
  304. package/src/daemon/handlers/inbox/providers/route-util.ts +0 -24
  305. package/src/daemon/handlers/inbox/providers/slack.ts +0 -263
  306. package/src/daemon/handlers/index.ts +0 -117
  307. package/src/daemon/handlers/register.ts +0 -168
  308. package/src/daemon/handlers/remote/backends/cloud-terminal.ts +0 -142
  309. package/src/daemon/handlers/remote/backends/docker.ts +0 -79
  310. package/src/daemon/handlers/remote/backends/index.ts +0 -40
  311. package/src/daemon/handlers/remote/backends/local-process.ts +0 -113
  312. package/src/daemon/handlers/remote/backends/process-runner.ts +0 -127
  313. package/src/daemon/handlers/remote/backends/ssh.ts +0 -125
  314. package/src/daemon/handlers/remote/backends/types.ts +0 -97
  315. package/src/daemon/handlers/remote/dispatcher.ts +0 -181
  316. package/src/daemon/handlers/remote/index.ts +0 -119
  317. package/src/daemon/handlers/remote/peer-registry.ts +0 -357
  318. package/src/daemon/handlers/remote/service.ts +0 -191
  319. package/src/daemon/handlers/routing/inbox-bridge.ts +0 -71
  320. package/src/daemon/handlers/routing/index.ts +0 -261
  321. package/src/daemon/handlers/routing/route-store.ts +0 -319
  322. package/src/daemon/handlers/routing/routing-resolver.ts +0 -75
  323. package/src/daemon/handlers/sqlite-store.ts +0 -278
  324. package/src/daemon/handlers/triage/index.ts +0 -57
  325. package/src/daemon/handlers/triage/integration.ts +0 -213
  326. package/src/daemon/handlers/triage/pipeline.ts +0 -274
  327. package/src/daemon/handlers/triage/scorer.ts +0 -287
  328. package/src/daemon/handlers/triage/tagger/discord.ts +0 -187
  329. package/src/daemon/handlers/triage/tagger/imap.ts +0 -384
  330. package/src/daemon/handlers/triage/tagger/index.ts +0 -184
  331. package/src/daemon/handlers/triage/tagger/shared.ts +0 -70
  332. package/src/daemon/handlers/triage/tagger/slack.ts +0 -69
  333. package/src/daemon/handlers/triage/types.ts +0 -50
  334. package/src/daemon/lifecycle.ts +0 -41
  335. package/src/daemon/provision-wake-model.ts +0 -81
  336. package/src/daemon/safe-serve.ts +0 -61
  337. package/src/daemon/send/channels.ts +0 -200
  338. package/src/daemon/send/command.ts +0 -332
  339. package/src/daemon/send/composition.ts +0 -99
  340. package/src/daemon/send/failure-text.ts +0 -93
  341. package/src/daemon/send/inert-text.ts +0 -225
  342. package/src/daemon/send/stdin.ts +0 -24
  343. package/src/daemon/service-commands.ts +0 -329
  344. package/src/export/cost-utils.ts +0 -319
  345. package/src/input/selection.ts +0 -135
  346. package/src/plugins/loader.ts +0 -15
  347. package/src/renderer/bottom-bar.ts +0 -58
  348. package/src/renderer/conversation-tree.ts +0 -228
  349. package/src/runtime/agent-graph-composition.ts +0 -78
  350. package/src/runtime/channel-composition.ts +0 -46
  351. package/src/runtime/cluster-composition.ts +0 -124
  352. package/src/runtime/cluster-group-composition.ts +0 -284
  353. package/src/runtime/code-index-services.ts +0 -167
  354. package/src/runtime/daemon-handler-composition.ts +0 -76
  355. package/src/runtime/device-posture-composition.ts +0 -110
  356. package/src/runtime/durability-housekeeping.ts +0 -183
  357. package/src/runtime/durability-services.ts +0 -155
  358. package/src/runtime/embedded-service-factories.ts +0 -74
  359. package/src/runtime/feature-settings.ts +0 -154
  360. package/src/runtime/fleet-needs-input-push.ts +0 -70
  361. package/src/runtime/fleet-services.ts +0 -41
  362. package/src/runtime/idle-power-services.ts +0 -85
  363. package/src/runtime/mail-composition.ts +0 -65
  364. package/src/runtime/memory-fold.ts +0 -55
  365. package/src/runtime/operator-token-cleanup.ts +0 -109
  366. package/src/runtime/path-shadow.ts +0 -418
  367. package/src/runtime/perf/panel-health-monitor.ts +0 -18
  368. package/src/runtime/provider-optimizer-wiring.ts +0 -55
  369. package/src/runtime/reachability-notice.ts +0 -100
  370. package/src/runtime/remote-execution-composition.ts +0 -62
  371. package/src/runtime/session-liveness-marker.ts +0 -257
  372. package/src/runtime/session-pointer-surface.ts +0 -22
  373. package/src/runtime/session-storage-services.ts +0 -41
  374. package/src/runtime/surface-feature-flags.ts +0 -96
  375. package/src/runtime/terminal-output-guard.ts +0 -235
  376. package/src/runtime/trust/workspace-registration.ts +0 -192
  377. package/src/runtime/trust/workspace-trust.ts +0 -229
  378. package/src/runtime/ui/index.ts +0 -39
  379. package/src/runtime/ui/model-picker/data-provider.ts +0 -182
  380. package/src/runtime/ui/model-picker/health-enrichment.ts +0 -231
  381. package/src/runtime/ui/model-picker/index.ts +0 -59
  382. package/src/runtime/ui/model-picker/types.ts +0 -153
  383. package/src/runtime/ui/provider-health/data-provider.ts +0 -244
  384. package/src/runtime/ui/provider-health/fallback-visualizer.ts +0 -71
  385. package/src/runtime/ui/provider-health/index.ts +0 -46
  386. package/src/runtime/ui/provider-health/types.ts +0 -146
  387. package/src/runtime/ui-events.ts +0 -1
  388. package/src/runtime/ui-read-model-helpers.ts +0 -1
  389. package/src/runtime/ui-read-models-observability-maintenance.ts +0 -1
  390. package/src/runtime/ui-read-models-observability-options.ts +0 -1
  391. package/src/runtime/ui-read-models-observability-remote.ts +0 -1
  392. package/src/runtime/ui-read-models-observability-security.ts +0 -1
  393. package/src/runtime/ui-read-models-observability-system.ts +0 -1
  394. package/src/runtime/ui-read-models-observability.ts +0 -1
  395. package/src/runtime/ui-service-queries.ts +0 -1
  396. package/src/runtime/voice-setup-services.ts +0 -98
  397. package/src/runtime/workstream-attempts-validation.ts +0 -77
  398. package/src/runtime/workstream-draft-edits.ts +0 -95
  399. package/src/runtime/workstream-draft-store.ts +0 -274
  400. package/src/runtime/workstream-draft-types.ts +0 -42
  401. package/src/runtime/workstream-services.ts +0 -373
  402. package/src/tools/index.ts +0 -1
  403. package/src/types/grid.ts +0 -48
  404. package/src/types/sql-js.d.ts +0 -15
  405. package/src/work-plans/work-plan-store.ts +0 -702
@@ -1,96 +1,45 @@
1
1
  /**
2
2
  * memory-spine-transport.ts
3
3
  *
4
- * The TUI memory-spine cutover: the thin wire adapter that lets the TUI's
5
- * bootstrap activate the SDK's
6
- * `@pellux/goodvibes-sdk/platform/runtime/memory-spine` `MemorySpineClient`
7
- * over the daemon's memory.records.* HTTP routes, mirroring
8
- * session-spine-transport.ts's pattern for the session spine.
4
+ * The TUI memory-spine cutover: a thin wrapper over the SDK's own canonical
5
+ * memory-spine REST transport
6
+ * (`createMemorySpineRestTransport` from
7
+ * `@pellux/goodvibes-sdk/platform/runtime/memory-spine`).
9
8
  *
10
- * The SDK does not (yet) ship a typed operator client for these routes (unlike
11
- * `HttpTransport.operator.sessions`), so this adapter builds a small REST
12
- * client directly against the known routes — exactly what the SDK's own
13
- * `MemoryTransport` doc comment describes as the expected consumer shape.
9
+ * ── Hoist provenance (2026-07-30 daemon/TUI split) ──────────────────────────
14
10
  *
15
- * FULL DETACH (SDK 1.2.0). Beyond the five 1.1.0 CORE routes (add, search,
16
- * get, review, delete) this now implements the full 1.2.0 EXTENDED catalog
17
- * (list, search-semantic, update, links.list, links.add, export, import,
18
- * vector, doctor, review-queue) — see
19
- * docs/decisions/2026-07-06-memory-wire-full-detach.md in the SDK repo. This
20
- * is what lets `/recall`'s browse/link/queue/export/import subcommands and
21
- * the per-turn knowledge-injection bulk read fully detach from the local
22
- * store file when a daemon is adopted: every one of those ops now has a wire
23
- * equivalent, so this transport implements every EXTENDED verb rather than
24
- * leaving some optional.
11
+ * This file used to carry a full parallel implementation of the memory wire
12
+ * protocol (285 lines, 16 raw `requestJsonRaw` call sites): the five CORE
13
+ * routes (add, search, get, review, delete) plus the ten 1.2.0 EXTENDED
14
+ * routes (list, search-semantic, update, links.list, links.add, export,
15
+ * import, review-queue, vector, doctor), the 404 discriminator
16
+ * (`classifyMemoryWireError`/`memoryVerbUnavailableError`), and the honesty
17
+ * rule that a transport failure propagates rather than silently falling back
18
+ * to a divergent local copy.
25
19
  *
26
- * HONESTY. Unlike the session mirror (fire-and-forget, folded into a soft
27
- * 'offline' result), memory reads/writes return data the caller depends on —
28
- * a transport failure here is NOT swallowed. It propagates as a rejected
29
- * promise, matching `MemorySpineClient`'s documented contract: a wire client
30
- * must never silently fall back to a divergent local copy in place of a real
31
- * failure.
20
+ * The SDK's `rest-transport.ts` (`platform/runtime/memory-spine`) adopted
21
+ * this file's version as the superset — same routes,
22
+ * same discriminator functions, same honesty contract, same transport-http
23
+ * primitives — so this file now just delegates. `MemorySpineWireOptions`
24
+ * (`{baseUrl, authToken, fetchImpl?}`) is the same shape the SDK's
25
+ * `MemorySpineRestTransportOptions` takes, so there is nothing to adapt: this
26
+ * export is a direct pass-through, kept as this file's own named symbol only
27
+ * because `spine-adoption.ts` and this surface's tests already import it from
28
+ * here.
32
29
  *
33
- * A 404 is disambiguated by its RESPONSE CODE (`classifyMemoryWireError`, from
34
- * the SDK's `platform/runtime/memory-spine` — this transport no longer inlines
35
- * its own copy of the discriminator), never by the bare status. A record-missing
36
- * 404 carries `MEMORY_RECORD_NOT_FOUND`: on a nullable verb
37
- * (`get`/`updateReview`/`update`/`link`) it maps to the documented `null` "not
38
- * found"; on a non-nullable verb (`linksFor` etc.) it is not representable as
39
- * null so it propagates as a thrown error. ANY OTHER 404 — a route-not-found
40
- * from an older daemon that never registered this route, or a bare legacy 404
41
- * with no code — is treated as "this daemon does not serve this verb" and
42
- * rejects with a stated reason on EVERY verb, never a silent `null`. That is
43
- * what lets `/recall` surface an honest degraded message on a version-skewed
44
- * daemon instead of reporting an existing record as gone.
30
+ * Retired in the same hoist: `syncMemorySpineToHostStatus` and
31
+ * `MemorySpineActiveRef`. Memory-spine activation is now folded into the
32
+ * SDK's `createSpineAdoptionSync` (see `src/runtime/client/spine-adoption.ts`)
33
+ * — `spine-adoption.ts` supplies `memoryTransport` in the connect bundle
34
+ * instead of calling a separate sync function on the daemon-status signal.
35
+ * Confirmed zero non-test callers remained (only
36
+ * `src/test/runtime/memory-spine-daemon-integration.test.ts` still exercised
37
+ * them) before deleting both.
45
38
  */
46
- import { buildUrl, createJsonRequestInit, requestJsonRaw } from '@pellux/goodvibes-sdk/transport-http';
47
39
  import {
48
- classifyMemoryWireError,
49
- memoryVerbUnavailableError,
50
- type MemoryAccess,
40
+ createMemorySpineRestTransport as createSdkMemorySpineRestTransport,
51
41
  type MemoryTransport,
52
- type MemoryUpdatePatch,
53
42
  } from '@pellux/goodvibes-sdk/platform/runtime/memory-spine';
54
- import type {
55
- HonestMemorySearchOptions,
56
- HonestMemorySearchResult,
57
- MemoryAddOptions,
58
- MemoryBundle,
59
- MemoryDoctorReport,
60
- MemoryLink,
61
- MemoryRecord,
62
- MemoryScope,
63
- MemorySearchFilter,
64
- MemorySemanticSearchResult,
65
- } from '@pellux/goodvibes-sdk/platform/state';
66
- import type { MemoryVectorStats } from '@pellux/goodvibes-sdk/platform/state';
67
-
68
- /** Derived from `MemoryAccess` itself rather than imported by name — `MemoryReviewPatch` is not re-exported from the SDK's public `platform/state` entry point. */
69
- type MemoryReviewPatch = Parameters<MemoryAccess['updateReview']>[1];
70
- /** Same reasoning — `MemoryImportResult` is not re-exported from a public SDK entry point. */
71
- type MemoryImportResult = Awaited<ReturnType<MemoryAccess['importBundle']>>;
72
-
73
- /**
74
- * The 404 discriminator and the "daemon does not serve this verb" rejection are
75
- * now the SDK's own `classifyMemoryWireError` / `memoryVerbUnavailableError`
76
- * (`@pellux/goodvibes-sdk/platform/runtime/memory-spine`) rather than a copy
77
- * inlined in this transport — this surface's SDK pin now ships them as a
78
- * shared constant/discriminator, so the two thin folds below just delegate.
79
- */
80
-
81
- /** Fold for a NULLABLE record-scoped verb: record-miss → null; version-skew → honest reject; else rethrow. */
82
- function foldNullableMemoryWire404(verb: string, error: unknown): null {
83
- const kind = classifyMemoryWireError(error);
84
- if (kind === 'record-missing') return null;
85
- if (kind === 'method-unavailable') throw memoryVerbUnavailableError(verb, error);
86
- throw error;
87
- }
88
-
89
- /** Fold for a NON-NULLABLE (collection or record-required) verb: version-skew → honest reject; else rethrow. */
90
- function rethrowMemoryWire404(verb: string, error: unknown): never {
91
- if (classifyMemoryWireError(error) === 'method-unavailable') throw memoryVerbUnavailableError(verb, error);
92
- throw error;
93
- }
94
43
 
95
44
  export interface MemorySpineWireOptions {
96
45
  readonly baseUrl: string;
@@ -99,191 +48,12 @@ export interface MemorySpineWireOptions {
99
48
  }
100
49
 
101
50
  /**
102
- * Build the `MemorySpineClient` wire transport: a thin REST adapter over the
103
- * adopted daemon's full memory.records.* route catalog (five CORE routes plus
104
- * the ten 1.2.0 EXTENDED routes). `bootstrap.ts` activates a client built from
105
- * this the same way it adopts the session spine.
51
+ * Build the `MemorySpineClient` wire transport: a direct delegate to the
52
+ * SDK's canonical `createMemorySpineRestTransport`, which implements the full
53
+ * memory.records.* route catalog (five CORE routes plus the ten 1.2.0
54
+ * EXTENDED routes). `spine-adoption.ts` builds a client from this the same
55
+ * way it adopts the session spine.
106
56
  */
107
57
  export function createTuiMemorySpineTransport(options: MemorySpineWireOptions): MemoryTransport {
108
- const fetchImpl = options.fetchImpl ?? fetch;
109
- const token = options.authToken;
110
- const url = (path: string): string => buildUrl(options.baseUrl, path);
111
- return {
112
- add: async (opts: MemoryAddOptions): Promise<MemoryRecord> => {
113
- const response = await requestJsonRaw<{ record: MemoryRecord }>(
114
- fetchImpl, url('/api/memory/records'), createJsonRequestInit(token, opts, 'POST'),
115
- );
116
- return response.record;
117
- },
118
- honestSearch: async (filter?: MemorySearchFilter, searchOptions?: HonestMemorySearchOptions): Promise<HonestMemorySearchResult> => {
119
- const body = { ...(filter ?? {}), ...(searchOptions?.recall !== undefined ? { recall: searchOptions.recall } : {}) };
120
- return await requestJsonRaw<HonestMemorySearchResult>(
121
- fetchImpl, url('/api/memory/records/search'), createJsonRequestInit(token, body, 'POST'),
122
- );
123
- },
124
- get: async (id: string): Promise<MemoryRecord | null> => {
125
- try {
126
- const response = await requestJsonRaw<{ record: MemoryRecord }>(
127
- fetchImpl, url(`/api/memory/records/${encodeURIComponent(id)}`), createJsonRequestInit(token),
128
- );
129
- return response.record;
130
- } catch (error) {
131
- return foldNullableMemoryWire404('get', error);
132
- }
133
- },
134
- updateReview: async (id: string, patch: MemoryReviewPatch): Promise<MemoryRecord | null> => {
135
- try {
136
- const response = await requestJsonRaw<{ record: MemoryRecord }>(
137
- fetchImpl, url(`/api/memory/records/${encodeURIComponent(id)}/review`), createJsonRequestInit(token, patch, 'POST'),
138
- );
139
- return response.record;
140
- } catch (error) {
141
- return foldNullableMemoryWire404('updateReview', error);
142
- }
143
- },
144
- delete: async (id: string): Promise<boolean> => {
145
- const response = await requestJsonRaw<{ id: string; deleted: boolean }>(
146
- fetchImpl, url(`/api/memory/records/${encodeURIComponent(id)}`), createJsonRequestInit(token, undefined, 'DELETE'),
147
- );
148
- return response.deleted;
149
- },
150
-
151
- // ── Extended verbs (1.2.0 full-detach) ──────────────────────────────────
152
-
153
- list: async (filter?: MemorySearchFilter): Promise<readonly MemoryRecord[]> => {
154
- try {
155
- const response = await requestJsonRaw<{ records: readonly MemoryRecord[] }>(
156
- fetchImpl, url('/api/memory/records/list'), createJsonRequestInit(token, filter ?? {}, 'POST'),
157
- );
158
- return response.records;
159
- } catch (error) {
160
- return rethrowMemoryWire404('list', error);
161
- }
162
- },
163
- searchSemantic: async (filter?: MemorySearchFilter): Promise<readonly MemorySemanticSearchResult[]> => {
164
- try {
165
- const response = await requestJsonRaw<{ results: readonly MemorySemanticSearchResult[] }>(
166
- fetchImpl, url('/api/memory/records/search-semantic'), createJsonRequestInit(token, filter ?? {}, 'POST'),
167
- );
168
- return response.results;
169
- } catch (error) {
170
- return rethrowMemoryWire404('searchSemantic', error);
171
- }
172
- },
173
- update: async (id: string, patch: MemoryUpdatePatch): Promise<MemoryRecord | null> => {
174
- try {
175
- const response = await requestJsonRaw<{ record: MemoryRecord }>(
176
- fetchImpl, url(`/api/memory/records/${encodeURIComponent(id)}/update`), createJsonRequestInit(token, patch, 'POST'),
177
- );
178
- return response.record;
179
- } catch (error) {
180
- return foldNullableMemoryWire404('update', error);
181
- }
182
- },
183
- link: async (fromId: string, toId: string, relation: string): Promise<MemoryLink | null> => {
184
- try {
185
- const response = await requestJsonRaw<{ link: MemoryLink }>(
186
- fetchImpl, url(`/api/memory/records/${encodeURIComponent(fromId)}/links`), createJsonRequestInit(token, { toId, relation }, 'POST'),
187
- );
188
- return response.link;
189
- } catch (error) {
190
- return foldNullableMemoryWire404('link', error);
191
- }
192
- },
193
- linksFor: async (id: string): Promise<readonly MemoryLink[]> => {
194
- try {
195
- const response = await requestJsonRaw<{ links: readonly MemoryLink[] }>(
196
- fetchImpl, url(`/api/memory/records/${encodeURIComponent(id)}/links`), createJsonRequestInit(token),
197
- );
198
- return response.links;
199
- } catch (error) {
200
- return rethrowMemoryWire404('linksFor', error);
201
- }
202
- },
203
- reviewQueue: async (limit?: number, scope?: MemoryScope): Promise<readonly MemoryRecord[]> => {
204
- const params = new URLSearchParams();
205
- if (limit !== undefined) params.set('limit', String(limit));
206
- if (scope !== undefined) params.set('scope', scope);
207
- const query = params.toString();
208
- try {
209
- const response = await requestJsonRaw<{ records: readonly MemoryRecord[] }>(
210
- fetchImpl, url(`/api/memory/review-queue${query ? `?${query}` : ''}`), createJsonRequestInit(token),
211
- );
212
- return response.records;
213
- } catch (error) {
214
- return rethrowMemoryWire404('reviewQueue', error);
215
- }
216
- },
217
- exportBundle: async (filter?: MemorySearchFilter): Promise<MemoryBundle> => {
218
- try {
219
- const response = await requestJsonRaw<{ bundle: MemoryBundle }>(
220
- fetchImpl, url('/api/memory/records/export'), createJsonRequestInit(token, filter ?? {}, 'POST'),
221
- );
222
- return response.bundle;
223
- } catch (error) {
224
- return rethrowMemoryWire404('exportBundle', error);
225
- }
226
- },
227
- importBundle: async (bundle: MemoryBundle): Promise<MemoryImportResult> => {
228
- try {
229
- const response = await requestJsonRaw<{ result: MemoryImportResult }>(
230
- fetchImpl, url('/api/memory/records/import'), createJsonRequestInit(token, { bundle }, 'POST'),
231
- );
232
- return response.result;
233
- } catch (error) {
234
- return rethrowMemoryWire404('importBundle', error);
235
- }
236
- },
237
- vectorStats: async (): Promise<MemoryVectorStats> => {
238
- try {
239
- const response = await requestJsonRaw<{ vector: MemoryVectorStats }>(
240
- fetchImpl, url('/api/memory/vector'), createJsonRequestInit(token),
241
- );
242
- return response.vector;
243
- } catch (error) {
244
- return rethrowMemoryWire404('vectorStats', error);
245
- }
246
- },
247
- doctor: async (): Promise<MemoryDoctorReport> => {
248
- try {
249
- return await requestJsonRaw<MemoryDoctorReport>(
250
- fetchImpl, url('/api/memory/doctor'), createJsonRequestInit(token),
251
- );
252
- } catch (error) {
253
- return rethrowMemoryWire404('doctor', error);
254
- }
255
- },
256
- };
257
- }
258
-
259
- /** Mutable one-slot ref tracking which adopted daemon's baseUrl the memory spine is currently wired to (mirrors bootstrap.ts's `spineActiveForBaseUrl`). */
260
- export interface MemorySpineActiveRef { value: string | null }
261
-
262
- /**
263
- * Sync the memory spine to the current daemon-adoption status — the SAME
264
- * signal bootstrap.ts's `syncSessionSpineToHostStatus` uses. 'external' (an
265
- * adopted, separately-running daemon) activates the wire transport; every
266
- * other mode ('embedded' — this process IS the daemon host, so its own store
267
- * is already canonical — plus 'disabled'/'blocked'/'incompatible'/'unavailable')
268
- * deactivates back to local access.
269
- */
270
- export function syncMemorySpineToHostStatus(
271
- memorySpine: { activate: (transport: MemoryTransport) => void; deactivate: (reason: string) => void },
272
- daemonMode: string,
273
- daemonBaseUrl: string,
274
- sharedDaemonToken: string,
275
- activeRef: MemorySpineActiveRef,
276
- log: { info: (message: string) => void },
277
- ): void {
278
- if (daemonMode !== 'external') {
279
- if (activeRef.value !== null) {
280
- memorySpine.deactivate(`daemon mode changed to '${daemonMode}'`);
281
- activeRef.value = null;
282
- }
283
- return;
284
- }
285
- if (activeRef.value === daemonBaseUrl) return; // already wired to this exact adopted daemon
286
- memorySpine.activate(createTuiMemorySpineTransport({ baseUrl: daemonBaseUrl, authToken: sharedDaemonToken }));
287
- activeRef.value = daemonBaseUrl;
288
- log.info(`[bootstrap] memory spine: adopted external daemon at ${daemonBaseUrl} — routing memory ops over the wire`);
58
+ return createSdkMemorySpineRestTransport(options);
289
59
  }
@@ -13,9 +13,9 @@
13
13
 
14
14
  import { createNotificationRouter, type NotificationRouter } from '@pellux/goodvibes-sdk/platform/runtime/ui';
15
15
  import type { Notification, RoutingDecision, RuntimeEventBus, RuntimeEventDomain } from '@/runtime/index.ts';
16
- import type { ConfigManager } from '../config/index.ts';
16
+ import type { ConfigManager } from '@pellux/goodvibes-sdk/platform/config';
17
17
  import { getSharedNotificationFeed, type PanelNotificationFeed } from '../panels/notifications-feed.ts';
18
- import { memoryPressureLine, memoryPressureLevel, type MemoryPressurePayload } from '../core/memory-status.ts';
18
+ import { memoryPressureLine, memoryPressureLevel, type MemoryPressurePayload } from '@pellux/goodvibes-sdk/platform/runtime/memory';
19
19
 
20
20
  export interface NotificationDispatcher {
21
21
  /** Route a notification; a panel_only (or burst-collapsed) decision lands in the feed. Returns the decision. */
@@ -1,7 +1,7 @@
1
1
  import { existsSync, readFileSync, unlinkSync } from 'node:fs';
2
- import { atomicWriteFileSync } from '../../config/atomic-write.ts';
2
+ import { atomicWriteFileSync } from '@pellux/goodvibes-sdk/platform/config';
3
3
  import { isSecretRefInput } from '@pellux/goodvibes-sdk/platform/config';
4
- import { CONFIG_SCHEMA, DEFAULT_CONFIG } from '../../config/index.ts';
4
+ import { CONFIG_SCHEMA, DEFAULT_CONFIG } from '@pellux/goodvibes-sdk/platform/config';
5
5
  import {
6
6
  getOnboardingRuntimeStatePath,
7
7
  readOnboardingRuntimeState,
@@ -1,5 +1,5 @@
1
- import { DEFAULT_CONFIG } from '../../config/index.ts';
2
- import { getProviderIdFromModel } from '../../config/provider-model.ts';
1
+ import { DEFAULT_CONFIG } from '@pellux/goodvibes-sdk/platform/config';
2
+ import { getProviderIdFromModel } from '@pellux/goodvibes-sdk/platform/providers';
3
3
  import type {
4
4
  OnboardingAcknowledgementState,
5
5
  OnboardingAcknowledgementTarget,
@@ -1,6 +1,6 @@
1
1
  import { existsSync } from 'node:fs';
2
- import { atomicWriteFileSync } from '@/config/atomic-write.ts';
3
- import { readVersioned } from '@/config/read-versioned.ts';
2
+ import { atomicWriteFileSync } from '@pellux/goodvibes-sdk/platform/config';
3
+ import { readVersioned } from '@pellux/goodvibes-sdk/platform/config';
4
4
 
5
5
  import type { ShellPathService } from '@/runtime/index.ts';
6
6
  import type {
@@ -1,6 +1,6 @@
1
1
  import { existsSync, unlinkSync } from 'node:fs';
2
- import { atomicWriteFileSync } from '@/config/atomic-write.ts';
3
- import { readVersioned } from '@/config/read-versioned.ts';
2
+ import { atomicWriteFileSync } from '@pellux/goodvibes-sdk/platform/config';
3
+ import { readVersioned } from '@pellux/goodvibes-sdk/platform/config';
4
4
 
5
5
  import type {
6
6
  OnboardingMode,
@@ -1,5 +1,5 @@
1
1
  import type { SecretStorageReview } from '../../config/secrets.ts';
2
- import { getProviderIdFromModel } from '../../config/provider-model.ts';
2
+ import { getProviderIdFromModel } from '@pellux/goodvibes-sdk/platform/providers';
3
3
  import type { LocalAuthSnapshot } from '@pellux/goodvibes-sdk/platform/security';
4
4
  import { readOnboardingRuntimeState } from './state.ts';
5
5
  import type {
@@ -1,7 +1,7 @@
1
1
  import { closeSync, existsSync, mkdirSync, openSync, statSync, unlinkSync } from 'node:fs';
2
2
  import { dirname } from 'node:path';
3
- import { atomicWriteFileSync } from '@/config/atomic-write.ts';
4
- import { readVersioned } from '@/config/read-versioned.ts';
3
+ import { atomicWriteFileSync } from '@pellux/goodvibes-sdk/platform/config';
4
+ import { readVersioned } from '@pellux/goodvibes-sdk/platform/config';
5
5
 
6
6
  import type {
7
7
  OnboardingAcknowledgementRuntimeState,
@@ -1,4 +1,4 @@
1
- import type { ConfigManager, ConfigKey, GoodVibesConfig } from '../../config/index.ts';
1
+ import type { ConfigManager, ConfigKey, GoodVibesConfig } from '@pellux/goodvibes-sdk/platform/config';
2
2
  import type { SecretsManager, SecretRecord, SecretStorageReview } from '../../config/secrets.ts';
3
3
  import type { LocalAuthSnapshot, UserAuthManager } from '@pellux/goodvibes-sdk/platform/security';
4
4
  import type { ShellPathService } from '@/runtime/index.ts';
@@ -6,7 +6,7 @@ import type {
6
6
  LocalAuthInspectionQuery,
7
7
  ServiceInspectionQuery,
8
8
  SubscriptionAccessQuery,
9
- } from '../ui-service-queries.ts';
9
+ } from '@/runtime/index.ts';
10
10
 
11
11
  export type OnboardingMode = 'new' | 'edit' | 'reopen';
12
12
 
@@ -2,7 +2,7 @@ import type { OrchestratorCoreServices } from '@pellux/goodvibes-sdk/platform/co
2
2
  import type { ConfigManager } from '@pellux/goodvibes-sdk/platform/config';
3
3
  import type { ProviderRegistry } from '@pellux/goodvibes-sdk/platform/providers';
4
4
  import type { RuntimeServices } from './services.ts';
5
- import { isCodeInjectionSettingEnabled } from './code-index-services.ts';
5
+ import { isCodeInjectionSettingEnabled } from '@pellux/goodvibes-sdk/platform/runtime/operations';
6
6
 
7
7
  /** The slice of the runtime services bag the shared orchestrator payload draws from. */
8
8
  export type OrchestratorCoreServicesSource = Pick<