@pellux/goodvibes-tui 0.18.4 → 0.18.9

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 (571) hide show
  1. package/CHANGELOG.md +190 -0
  2. package/README.md +2 -2
  3. package/bin/goodvibes +1 -1
  4. package/bin/goodvibes-daemon +66 -0
  5. package/docs/foundation-artifacts/operator-contract.json +1 -1
  6. package/package.json +14 -7
  7. package/scripts/postinstall.js +220 -0
  8. package/src/acp/connection.ts +5 -5
  9. package/src/acp/index.ts +1 -1
  10. package/src/acp/manager.ts +1 -133
  11. package/src/adapters/bluebubbles/index.ts +1 -1
  12. package/src/adapters/discord/index.ts +2 -2
  13. package/src/adapters/github/index.ts +1 -1
  14. package/src/adapters/google-chat/index.ts +1 -1
  15. package/src/adapters/imessage/index.ts +1 -1
  16. package/src/adapters/index.ts +15 -15
  17. package/src/adapters/matrix/index.ts +1 -1
  18. package/src/adapters/mattermost/index.ts +1 -1
  19. package/src/adapters/msteams/index.ts +2 -2
  20. package/src/adapters/ntfy/index.ts +1 -1
  21. package/src/adapters/signal/index.ts +1 -1
  22. package/src/adapters/slack/index.ts +2 -2
  23. package/src/adapters/telegram/index.ts +1 -1
  24. package/src/adapters/types.ts +4 -4
  25. package/src/adapters/webhook/index.ts +1 -1
  26. package/src/adapters/whatsapp/index.ts +1 -1
  27. package/src/agents/message-bus-core.ts +2 -2
  28. package/src/agents/message-bus.ts +2 -2
  29. package/src/agents/orchestrator-prompts.ts +4 -4
  30. package/src/agents/orchestrator-runner.ts +11 -11
  31. package/src/agents/orchestrator.ts +15 -14
  32. package/src/agents/session.ts +1 -1
  33. package/src/agents/worktree.ts +1 -1
  34. package/src/agents/wrfc-config.ts +2 -2
  35. package/src/agents/wrfc-controller.ts +12 -12
  36. package/src/agents/wrfc-gate-runtime.ts +5 -5
  37. package/src/agents/wrfc-reporting.ts +1 -1
  38. package/src/agents/wrfc-runtime-events.ts +3 -3
  39. package/src/agents/wrfc-types.ts +1 -1
  40. package/src/automation/delivery-manager.ts +4 -4
  41. package/src/automation/index.ts +4 -4
  42. package/src/automation/manager-runtime-delivery.ts +1 -1
  43. package/src/automation/manager-runtime-events.ts +3 -3
  44. package/src/automation/manager-runtime-execution.ts +5 -5
  45. package/src/automation/manager-runtime-helpers.ts +2 -2
  46. package/src/automation/manager-runtime-job-mutations.ts +3 -3
  47. package/src/automation/manager-runtime-reconcile.ts +4 -4
  48. package/src/automation/manager-runtime-scheduling.ts +2 -2
  49. package/src/automation/manager-runtime.ts +18 -18
  50. package/src/automation/manager.ts +2 -2
  51. package/src/automation/service.ts +2 -2
  52. package/src/channels/builtin/account-actions.ts +5 -5
  53. package/src/channels/builtin/accounts.ts +2 -2
  54. package/src/channels/builtin/contracts.ts +3 -3
  55. package/src/channels/builtin/plugins.ts +5 -5
  56. package/src/channels/builtin/rendering.ts +4 -4
  57. package/src/channels/builtin/setup-schema.ts +1 -1
  58. package/src/channels/builtin/shared.ts +7 -7
  59. package/src/channels/builtin/surfaces.ts +2 -2
  60. package/src/channels/builtin/targets.ts +3 -3
  61. package/src/channels/builtin-runtime.ts +11 -11
  62. package/src/channels/delivery/shared.ts +2 -2
  63. package/src/channels/delivery/strategies-bridge.ts +3 -3
  64. package/src/channels/delivery/strategies-core.ts +5 -5
  65. package/src/channels/delivery/strategies-enterprise.ts +3 -3
  66. package/src/channels/delivery/types.ts +2 -2
  67. package/src/channels/delivery-router.ts +9 -9
  68. package/src/channels/index.ts +12 -12
  69. package/src/channels/plugin-registry.ts +1 -1
  70. package/src/channels/provider-runtime.ts +3 -3
  71. package/src/channels/reply-pipeline.ts +3 -3
  72. package/src/channels/route-manager.ts +2 -2
  73. package/src/channels/surface-registry.ts +2 -2
  74. package/src/config/helper-model.ts +1 -233
  75. package/src/config/index.ts +3 -3
  76. package/src/config/manager.ts +8 -404
  77. package/src/config/secrets.ts +21 -542
  78. package/src/config/service-registry.ts +1 -329
  79. package/src/config/tool-llm.ts +3 -3
  80. package/src/control-plane/approval-broker.ts +1 -1
  81. package/src/control-plane/gateway.ts +1 -713
  82. package/src/control-plane/index.ts +7 -7
  83. package/src/control-plane/media-contract-schemas.ts +1 -208
  84. package/src/control-plane/method-catalog-admin.ts +1 -136
  85. package/src/control-plane/method-catalog-channels.ts +1 -591
  86. package/src/control-plane/method-catalog-control-automation.ts +1 -475
  87. package/src/control-plane/method-catalog-control-core.ts +1 -594
  88. package/src/control-plane/method-catalog-control.ts +1 -8
  89. package/src/control-plane/method-catalog-events.ts +1 -74
  90. package/src/control-plane/method-catalog-knowledge.ts +1 -531
  91. package/src/control-plane/method-catalog-media.ts +1 -279
  92. package/src/control-plane/method-catalog-runtime.ts +1 -304
  93. package/src/control-plane/method-catalog-shared.ts +1 -223
  94. package/src/control-plane/method-catalog.ts +1 -242
  95. package/src/control-plane/operator-contract-schemas-admin.ts +1 -639
  96. package/src/control-plane/operator-contract-schemas-channels.ts +1 -375
  97. package/src/control-plane/operator-contract-schemas-control.ts +1 -226
  98. package/src/control-plane/operator-contract-schemas-domains.ts +1 -4
  99. package/src/control-plane/operator-contract-schemas-knowledge.ts +1 -582
  100. package/src/control-plane/operator-contract-schemas-media.ts +1 -297
  101. package/src/control-plane/operator-contract-schemas-permissions.ts +1 -100
  102. package/src/control-plane/operator-contract-schemas-remote.ts +1 -38
  103. package/src/control-plane/operator-contract-schemas-runtime.ts +1 -563
  104. package/src/control-plane/operator-contract-schemas-shared.ts +1 -85
  105. package/src/control-plane/operator-contract-schemas-telemetry.ts +1 -349
  106. package/src/control-plane/operator-contract-schemas.ts +1 -6
  107. package/src/control-plane/operator-contract.ts +5 -3
  108. package/src/control-plane/session-broker.ts +1 -1
  109. package/src/core/compaction-sections.ts +5 -5
  110. package/src/core/compaction-types.ts +3 -3
  111. package/src/core/composer-state.ts +1 -1
  112. package/src/core/context-compaction.ts +7 -7
  113. package/src/core/conversation-compaction.ts +4 -4
  114. package/src/core/conversation-diff.ts +1 -1
  115. package/src/core/conversation-rendering.ts +5 -5
  116. package/src/core/conversation-utils.ts +2 -2
  117. package/src/core/conversation.ts +10 -10
  118. package/src/core/event-replay.ts +1 -1
  119. package/src/core/orchestrator-context-runtime.ts +8 -8
  120. package/src/core/orchestrator-follow-up-runtime.ts +2 -2
  121. package/src/core/orchestrator-runtime.ts +4 -4
  122. package/src/core/orchestrator-tool-runtime.ts +7 -7
  123. package/src/core/orchestrator-turn-helpers.ts +7 -7
  124. package/src/core/orchestrator-turn-loop.ts +10 -10
  125. package/src/core/orchestrator.ts +17 -17
  126. package/src/core/plan-command-handler.ts +2 -2
  127. package/src/core/system-message-router.ts +2 -2
  128. package/src/core/transcript-events/classify.ts +1 -1
  129. package/src/core/transcript-events/index.ts +3 -3
  130. package/src/daemon/cli.ts +6 -6
  131. package/src/daemon/control-plane.ts +7 -7
  132. package/src/daemon/facade-composition.ts +16 -15
  133. package/src/daemon/facade.ts +17 -17
  134. package/src/daemon/helpers.ts +2 -2
  135. package/src/daemon/http/router-route-contexts.ts +11 -11
  136. package/src/daemon/http/router.ts +25 -25
  137. package/src/daemon/http-listener.ts +3 -3
  138. package/src/daemon/index.ts +1 -3
  139. package/src/daemon/service-manager.ts +1 -1
  140. package/src/daemon/surface-actions.ts +8 -8
  141. package/src/daemon/surface-delivery.ts +7 -7
  142. package/src/daemon/surface-policy.ts +1 -1
  143. package/src/daemon/transport-events.ts +4 -4
  144. package/src/daemon/types.ts +24 -24
  145. package/src/export/markdown.ts +1 -1
  146. package/src/export/session-export.ts +1 -633
  147. package/src/git/index.ts +1 -1
  148. package/src/git/service.ts +1 -1
  149. package/src/hooks/chain-engine.ts +1 -1
  150. package/src/hooks/dispatcher.ts +4 -4
  151. package/src/hooks/hook-api.ts +1 -1
  152. package/src/hooks/index.ts +8 -8
  153. package/src/hooks/runners/agent.ts +1 -1
  154. package/src/hooks/runners/prompt.ts +1 -1
  155. package/src/hooks/workbench.ts +2 -2
  156. package/src/input/command-registry.ts +24 -17
  157. package/src/input/commands/config.ts +1 -1
  158. package/src/input/commands/control-room-runtime.ts +2 -2
  159. package/src/input/commands/conversation-runtime.ts +1 -1
  160. package/src/input/commands/discovery-runtime.ts +7 -1
  161. package/src/input/commands/eval.ts +2 -2
  162. package/src/input/commands/git-runtime.ts +1 -1
  163. package/src/input/commands/guidance-runtime.ts +3 -3
  164. package/src/input/commands/health-runtime.ts +7 -7
  165. package/src/input/commands/incident-runtime.ts +1 -1
  166. package/src/input/commands/integration-runtime.ts +3 -3
  167. package/src/input/commands/local-provider-runtime.ts +1 -1
  168. package/src/input/commands/local-runtime.ts +1 -1
  169. package/src/input/commands/local-setup-review.ts +2 -2
  170. package/src/input/commands/local-setup.ts +2 -2
  171. package/src/input/commands/managed-runtime.ts +2 -2
  172. package/src/input/commands/marketplace-runtime.ts +1 -1
  173. package/src/input/commands/platform-access-runtime.ts +1 -1
  174. package/src/input/commands/platform-sandbox-qemu.ts +3 -3
  175. package/src/input/commands/platform-sandbox-runtime.ts +5 -5
  176. package/src/input/commands/platform-sandbox-session.ts +1 -1
  177. package/src/input/commands/policy-dispatch.ts +2 -2
  178. package/src/input/commands/product-runtime.ts +2 -2
  179. package/src/input/commands/profile-sync-runtime.ts +1 -1
  180. package/src/input/commands/provider-accounts-runtime.ts +1 -1
  181. package/src/input/commands/provider.ts +3 -3
  182. package/src/input/commands/quit-shared.ts +1 -1
  183. package/src/input/commands/recall-bundle.ts +1 -1
  184. package/src/input/commands/recall-capture.ts +2 -2
  185. package/src/input/commands/recall-query.ts +2 -2
  186. package/src/input/commands/recall-shared.ts +1 -1
  187. package/src/input/commands/remote-runtime-setup.ts +1 -1
  188. package/src/input/commands/remote-runtime.ts +1 -1
  189. package/src/input/commands/runtime-services.ts +13 -11
  190. package/src/input/commands/schedule-runtime.ts +2 -2
  191. package/src/input/commands/session-content.ts +1 -1
  192. package/src/input/commands/session-workflow.ts +4 -4
  193. package/src/input/commands/settings-sync-runtime.ts +1 -1
  194. package/src/input/commands/share-runtime.ts +9 -4
  195. package/src/input/commands/shell-core.ts +1 -1
  196. package/src/input/commands/skills-runtime.ts +1 -1
  197. package/src/input/commands/subscription-runtime.ts +1 -1
  198. package/src/input/commands/tasks-runtime.ts +1 -1
  199. package/src/input/commands/teamwork-runtime.ts +1 -1
  200. package/src/input/commands/worktree-runtime.ts +1 -1
  201. package/src/input/handler-command-route.ts +1 -1
  202. package/src/input/handler-content-actions.ts +3 -3
  203. package/src/input/handler-feed-routes.ts +2 -2
  204. package/src/input/handler-feed.ts +1 -1
  205. package/src/input/handler-shortcuts.ts +1 -1
  206. package/src/input/handler.ts +1 -1
  207. package/src/input/keybindings.ts +5 -0
  208. package/src/input/model-picker.ts +2 -2
  209. package/src/input/profile-picker-modal.ts +1 -1
  210. package/src/input/session-picker-modal.ts +1 -1
  211. package/src/input/settings-modal.ts +4 -4
  212. package/src/integrations/index.ts +1 -1
  213. package/src/integrations/notifier.ts +1 -1
  214. package/src/integrations/webhooks.ts +1 -177
  215. package/src/knowledge/consolidation.ts +2 -2
  216. package/src/knowledge/graphql.ts +1 -1
  217. package/src/knowledge/index.ts +5 -5
  218. package/src/knowledge/ingest-compile.ts +3 -3
  219. package/src/knowledge/ingest-context.ts +1 -1
  220. package/src/knowledge/ingest-inputs.ts +4 -4
  221. package/src/knowledge/ingest.ts +1 -20
  222. package/src/knowledge/internal.ts +1 -1
  223. package/src/knowledge/knowledge-api.ts +7 -7
  224. package/src/knowledge/lint.ts +3 -3
  225. package/src/knowledge/memory-sync.ts +2 -2
  226. package/src/knowledge/packet.ts +3 -3
  227. package/src/knowledge/scheduling.ts +2 -2
  228. package/src/knowledge/service.ts +10 -10
  229. package/src/main.ts +11 -10
  230. package/src/mcp/index.ts +4 -4
  231. package/src/mcp/mcp-api.ts +1 -1
  232. package/src/mcp/registry.ts +1 -508
  233. package/src/media/builtin-image-understanding.ts +2 -2
  234. package/src/media/builtin-providers.ts +2 -2
  235. package/src/media/index.ts +1 -1
  236. package/src/multimodal/index.ts +1 -1
  237. package/src/multimodal/service.ts +2 -2
  238. package/src/panels/agent-inspector-panel.ts +2 -2
  239. package/src/panels/agent-logs-panel.ts +3 -3
  240. package/src/panels/approval-panel.ts +2 -2
  241. package/src/panels/builtin/operations.ts +3 -1
  242. package/src/panels/builtin/shared.ts +14 -14
  243. package/src/panels/context-visualizer-panel.ts +2 -2
  244. package/src/panels/cost-tracker-panel.ts +2 -2
  245. package/src/panels/debug-panel.ts +3 -3
  246. package/src/panels/git-panel.ts +1 -1
  247. package/src/panels/hooks-panel.ts +4 -4
  248. package/src/panels/knowledge-panel.ts +1 -1
  249. package/src/panels/marketplace-panel.ts +1 -1
  250. package/src/panels/mcp-panel.ts +1 -1
  251. package/src/panels/memory-panel.ts +2 -2
  252. package/src/panels/ops-control-panel.ts +2 -2
  253. package/src/panels/ops-strategy-panel.ts +2 -2
  254. package/src/panels/plugins-panel.ts +1 -1
  255. package/src/panels/policy-panel.ts +1 -1
  256. package/src/panels/provider-health-panel.ts +3 -3
  257. package/src/panels/provider-stats-panel.ts +2 -2
  258. package/src/panels/sandbox-panel.ts +3 -3
  259. package/src/panels/schedule-panel.ts +1 -1
  260. package/src/panels/settings-sync-panel.ts +1 -1
  261. package/src/panels/skills-panel.ts +28 -1
  262. package/src/panels/system-messages-panel.ts +1 -1
  263. package/src/panels/tasks-panel.ts +1 -1
  264. package/src/panels/thinking-panel.ts +2 -2
  265. package/src/panels/token-budget-panel.ts +1 -1
  266. package/src/panels/tool-inspector-panel.ts +2 -2
  267. package/src/panels/worktree-panel.ts +1 -1
  268. package/src/panels/wrfc-panel.ts +4 -4
  269. package/src/permissions/briefs/build.ts +1 -1
  270. package/src/permissions/manager.ts +1 -356
  271. package/src/permissions/prompt.ts +1 -1
  272. package/src/plugins/api.ts +9 -9
  273. package/src/plugins/loader.ts +8 -8
  274. package/src/plugins/manager.ts +5 -5
  275. package/src/providers/amazon-bedrock-mantle.ts +1 -1
  276. package/src/providers/amazon-bedrock.ts +1 -1
  277. package/src/providers/anthropic-compat.ts +4 -4
  278. package/src/providers/anthropic-sdk-provider.ts +5 -5
  279. package/src/providers/anthropic-vertex.ts +1 -1
  280. package/src/providers/anthropic.ts +4 -4
  281. package/src/providers/auto-register.ts +6 -6
  282. package/src/providers/builtin-catalog.ts +2 -2
  283. package/src/providers/builtin-registry.ts +15 -15
  284. package/src/providers/cache-planner.ts +2 -2
  285. package/src/providers/capabilities.ts +1 -601
  286. package/src/providers/custom-loader.ts +6 -6
  287. package/src/providers/discovered-compat.ts +7 -18
  288. package/src/providers/discovered-factory.ts +7 -7
  289. package/src/providers/discovered-traits.ts +1 -1
  290. package/src/providers/gemini.ts +4 -4
  291. package/src/providers/github-copilot.ts +4 -4
  292. package/src/providers/index.ts +1 -47
  293. package/src/providers/interface.ts +1 -1
  294. package/src/providers/llama-cpp.ts +4 -4
  295. package/src/providers/lm-studio-helpers.ts +1 -1
  296. package/src/providers/lm-studio.ts +4 -4
  297. package/src/providers/model-catalog-cache.ts +1 -1
  298. package/src/providers/model-catalog-notifications.ts +1 -1
  299. package/src/providers/model-catalog-synthetic.ts +2 -2
  300. package/src/providers/model-catalog.ts +7 -7
  301. package/src/providers/model-limits.ts +1 -280
  302. package/src/providers/ollama.ts +4 -4
  303. package/src/providers/openai-codex.ts +2 -2
  304. package/src/providers/openai-compat.ts +4 -4
  305. package/src/providers/openai.ts +3 -3
  306. package/src/providers/optimizer.ts +1 -381
  307. package/src/providers/provider-api.ts +1 -553
  308. package/src/providers/registry-helpers.ts +1 -1
  309. package/src/providers/registry-models.ts +2 -2
  310. package/src/providers/registry-types.ts +5 -5
  311. package/src/providers/registry.ts +1 -729
  312. package/src/providers/runtime-metadata.ts +1 -1
  313. package/src/providers/runtime-snapshot.ts +3 -3
  314. package/src/providers/synthetic.ts +3 -3
  315. package/src/providers/tier-prompts.ts +1 -1
  316. package/src/providers/tool-formats.ts +1 -1
  317. package/src/renderer/agent-detail-modal.ts +2 -2
  318. package/src/renderer/block-actions.ts +1 -1
  319. package/src/renderer/context-inspector.ts +1 -1
  320. package/src/renderer/conversation-layout.ts +1 -1
  321. package/src/renderer/conversation-overlays.ts +1 -1
  322. package/src/renderer/git-status.ts +1 -1
  323. package/src/renderer/live-tail-modal.ts +1 -1
  324. package/src/renderer/process-modal.ts +2 -2
  325. package/src/runtime/bootstrap-background.ts +18 -8
  326. package/src/runtime/bootstrap-command-context.ts +24 -24
  327. package/src/runtime/bootstrap-command-parts.ts +24 -24
  328. package/src/runtime/bootstrap-core.ts +12 -10
  329. package/src/runtime/bootstrap-helpers.ts +2 -2
  330. package/src/runtime/bootstrap-hook-bridge.ts +9 -9
  331. package/src/runtime/bootstrap-runtime-events.ts +4 -4
  332. package/src/runtime/bootstrap-services.ts +4 -4
  333. package/src/runtime/bootstrap-shell.ts +11 -11
  334. package/src/runtime/bootstrap.ts +28 -10
  335. package/src/runtime/compaction/index.ts +1 -90
  336. package/src/runtime/compaction/lifecycle.ts +1 -167
  337. package/src/runtime/compaction/manager.ts +11 -11
  338. package/src/runtime/compaction/quality-score.ts +1 -279
  339. package/src/runtime/compaction/resume-repair.ts +1 -183
  340. package/src/runtime/compaction/strategies/autocompact.ts +1 -65
  341. package/src/runtime/compaction/strategies/boundary-commit.ts +1 -106
  342. package/src/runtime/compaction/strategies/collapse.ts +1 -90
  343. package/src/runtime/compaction/strategies/index.ts +1 -23
  344. package/src/runtime/compaction/strategies/microcompact.ts +1 -74
  345. package/src/runtime/compaction/strategies/reactive.ts +1 -89
  346. package/src/runtime/compaction/types.ts +1 -221
  347. package/src/runtime/context.ts +10 -10
  348. package/src/runtime/diagnostics/actions.ts +1 -1
  349. package/src/runtime/diagnostics/index.ts +5 -5
  350. package/src/runtime/diagnostics/panels/agents.ts +2 -2
  351. package/src/runtime/diagnostics/panels/events.ts +2 -2
  352. package/src/runtime/diagnostics/panels/health.ts +2 -2
  353. package/src/runtime/diagnostics/panels/ops.ts +2 -2
  354. package/src/runtime/diagnostics/panels/policy.ts +2 -2
  355. package/src/runtime/diagnostics/panels/tasks.ts +2 -2
  356. package/src/runtime/diagnostics/panels/tool-calls.ts +2 -2
  357. package/src/runtime/diagnostics/provider.ts +1 -1
  358. package/src/runtime/ecosystem/recommendations.ts +1 -1
  359. package/src/runtime/emitters/agents.ts +2 -2
  360. package/src/runtime/emitters/automation.ts +2 -2
  361. package/src/runtime/emitters/communication.ts +2 -2
  362. package/src/runtime/emitters/compaction.ts +2 -2
  363. package/src/runtime/emitters/control-plane.ts +2 -2
  364. package/src/runtime/emitters/deliveries.ts +2 -2
  365. package/src/runtime/emitters/forensics.ts +2 -2
  366. package/src/runtime/emitters/index.ts +27 -27
  367. package/src/runtime/emitters/knowledge.ts +2 -2
  368. package/src/runtime/emitters/mcp.ts +2 -2
  369. package/src/runtime/emitters/ops.ts +2 -2
  370. package/src/runtime/emitters/orchestration.ts +2 -2
  371. package/src/runtime/emitters/permissions.ts +2 -2
  372. package/src/runtime/emitters/planner.ts +2 -2
  373. package/src/runtime/emitters/plugins.ts +2 -2
  374. package/src/runtime/emitters/providers.ts +2 -2
  375. package/src/runtime/emitters/routes.ts +2 -2
  376. package/src/runtime/emitters/security.ts +2 -2
  377. package/src/runtime/emitters/session.ts +2 -2
  378. package/src/runtime/emitters/surfaces.ts +2 -2
  379. package/src/runtime/emitters/tasks.ts +2 -2
  380. package/src/runtime/emitters/tools.ts +2 -2
  381. package/src/runtime/emitters/transport.ts +2 -2
  382. package/src/runtime/emitters/turn.ts +3 -3
  383. package/src/runtime/emitters/ui.ts +2 -2
  384. package/src/runtime/emitters/watchers.ts +2 -2
  385. package/src/runtime/emitters/workflows.ts +3 -3
  386. package/src/runtime/eval/index.ts +3 -3
  387. package/src/runtime/eval/runner.ts +1 -1
  388. package/src/runtime/eval/suites.ts +1 -1
  389. package/src/runtime/events/domain-map.ts +2 -2
  390. package/src/runtime/events/index.ts +1 -194
  391. package/src/runtime/events/turn.ts +1 -60
  392. package/src/runtime/events/workflows.ts +1 -17
  393. package/src/runtime/forensics/collector.ts +4 -4
  394. package/src/runtime/forensics/index.ts +1 -1
  395. package/src/runtime/foundation-clients.ts +14 -14
  396. package/src/runtime/foundation-services.ts +8 -8
  397. package/src/runtime/guidance.ts +3 -3
  398. package/src/runtime/health/effect-handlers.ts +3 -3
  399. package/src/runtime/health/index.ts +4 -4
  400. package/src/runtime/health/wiring.ts +2 -2
  401. package/src/runtime/index.ts +29 -29
  402. package/src/runtime/integration/helpers.ts +12 -12
  403. package/src/runtime/lifecycle.ts +4 -4
  404. package/src/runtime/mcp/index.ts +3 -3
  405. package/src/runtime/mcp/manager.ts +1 -1
  406. package/src/runtime/network/inbound.ts +2 -2
  407. package/src/runtime/network/index.ts +5 -5
  408. package/src/runtime/network/outbound.ts +2 -2
  409. package/src/runtime/network/shared.ts +1 -1
  410. package/src/runtime/operator-client.ts +9 -9
  411. package/src/runtime/ops/control-plane.ts +2 -2
  412. package/src/runtime/ops/index.ts +3 -3
  413. package/src/runtime/ops/playbooks/index.ts +2 -2
  414. package/src/runtime/ops/playbooks/session-unrecoverable.ts +2 -2
  415. package/src/runtime/ops/playbooks/stuck-turn.ts +1 -1
  416. package/src/runtime/ops/runtime-context.ts +1 -1
  417. package/src/runtime/orchestration/spawn-policy.ts +1 -1
  418. package/src/runtime/peer-client.ts +3 -3
  419. package/src/runtime/perf/index.ts +1 -1
  420. package/src/runtime/perf/slo-collector.ts +1 -1
  421. package/src/runtime/permissions/index.ts +5 -5
  422. package/src/runtime/permissions/policy-runtime.ts +1 -175
  423. package/src/runtime/permissions/rule-suggestions.ts +1 -1
  424. package/src/runtime/plugins/hot-reload.ts +4 -4
  425. package/src/runtime/plugins/index.ts +13 -13
  426. package/src/runtime/plugins/lifecycle.ts +1 -1
  427. package/src/runtime/plugins/manager.ts +10 -10
  428. package/src/runtime/plugins/manifest.ts +2 -2
  429. package/src/runtime/plugins/quarantine.ts +2 -2
  430. package/src/runtime/plugins/trust.ts +2 -2
  431. package/src/runtime/plugins/types.ts +1 -1
  432. package/src/runtime/provider-accounts/registry.ts +2 -2
  433. package/src/runtime/remote/distributed-runtime-contract-schemas.ts +3 -3
  434. package/src/runtime/remote/index.ts +3 -3
  435. package/src/runtime/remote/runner-registry.ts +2 -2
  436. package/src/runtime/remote/supervisor.ts +1 -1
  437. package/src/runtime/runtime-hook-api.ts +1 -1
  438. package/src/runtime/runtime-knowledge-api.ts +1 -1
  439. package/src/runtime/runtime-mcp-api.ts +1 -1
  440. package/src/runtime/runtime-ops-api.ts +2 -2
  441. package/src/runtime/runtime-provider-api.ts +1 -1
  442. package/src/runtime/services.ts +42 -35
  443. package/src/runtime/session-maintenance.ts +1 -1
  444. package/src/runtime/session-persistence.ts +2 -2
  445. package/src/runtime/session-return-context.ts +3 -3
  446. package/src/runtime/settings/control-plane-store.ts +1 -1
  447. package/src/runtime/settings/control-plane.ts +2 -2
  448. package/src/runtime/shell-command-extensions.ts +7 -7
  449. package/src/runtime/shell-command-ops.ts +6 -6
  450. package/src/runtime/shell-command-platform.ts +1 -1
  451. package/src/runtime/shell-command-services.ts +18 -18
  452. package/src/runtime/shell-command-workspace.ts +2 -2
  453. package/src/runtime/store/domains/conversation.ts +1 -1
  454. package/src/runtime/store/domains/index.ts +4 -4
  455. package/src/runtime/store/domains/permissions.ts +1 -1
  456. package/src/runtime/store/helpers/reducers/conversation.ts +3 -3
  457. package/src/runtime/store/helpers/reducers/lifecycle.ts +3 -3
  458. package/src/runtime/store/helpers/reducers/shared.ts +2 -2
  459. package/src/runtime/store/helpers/reducers/sync.ts +1 -1
  460. package/src/runtime/store/helpers/reducers.ts +4 -4
  461. package/src/runtime/store/index.ts +4 -4
  462. package/src/runtime/store/selectors/index.ts +2 -2
  463. package/src/runtime/store/state.ts +4 -4
  464. package/src/runtime/tasks/adapters/acp-adapter.ts +1 -1
  465. package/src/runtime/tasks/adapters/index.ts +6 -6
  466. package/src/runtime/tasks/index.ts +3 -3
  467. package/src/runtime/tasks/manager.ts +3 -3
  468. package/src/runtime/telemetry/api-helpers.ts +2 -2
  469. package/src/runtime/telemetry/api.ts +2 -2
  470. package/src/runtime/telemetry/index.ts +5 -5
  471. package/src/runtime/telemetry/instrumentation/domain-bridge-agent-session.ts +1 -1
  472. package/src/runtime/telemetry/instrumentation/domain-bridge-plugin-mcp.ts +1 -1
  473. package/src/runtime/telemetry/instrumentation/domain-bridge-shared.ts +1 -1
  474. package/src/runtime/telemetry/instrumentation/domain-bridge-transport-task.ts +1 -1
  475. package/src/runtime/telemetry/instrumentation/domain-bridge.ts +5 -5
  476. package/src/runtime/telemetry/instrumentation/index.ts +3 -3
  477. package/src/runtime/tools/context.ts +3 -3
  478. package/src/runtime/tools/index.ts +4 -4
  479. package/src/runtime/tools/phased-executor.ts +3 -3
  480. package/src/runtime/tools/phases/budget.ts +1 -1
  481. package/src/runtime/tools/phases/execute.ts +1 -1
  482. package/src/runtime/tools/phases/index.ts +7 -7
  483. package/src/runtime/tools/phases/map-output.ts +1 -1
  484. package/src/runtime/tools/phases/permission.ts +2 -2
  485. package/src/runtime/tools/phases/posthook.ts +1 -1
  486. package/src/runtime/tools/phases/prehook.ts +1 -1
  487. package/src/runtime/tools/phases/validate.ts +1 -1
  488. package/src/runtime/transports/direct.ts +4 -4
  489. package/src/runtime/transports/http-helpers.ts +3 -3
  490. package/src/runtime/transports/http-types.ts +6 -6
  491. package/src/runtime/transports/http.ts +8 -8
  492. package/src/runtime/transports/realtime.ts +4 -4
  493. package/src/runtime/transports/remote-events.ts +1 -1
  494. package/src/runtime/transports/shared.ts +2 -2
  495. package/src/runtime/transports/ui-runtime-events.ts +2 -2
  496. package/src/runtime/ui/index.ts +7 -7
  497. package/src/runtime/ui/model-picker/data-provider.ts +4 -4
  498. package/src/runtime/ui/model-picker/health-enrichment.ts +3 -3
  499. package/src/runtime/ui/model-picker/index.ts +8 -8
  500. package/src/runtime/ui/provider-health/data-provider.ts +2 -2
  501. package/src/runtime/ui/provider-health/fallback-visualizer.ts +1 -1
  502. package/src/runtime/ui/provider-health/index.ts +5 -5
  503. package/src/runtime/ui-events.ts +1 -1
  504. package/src/runtime/ui-read-models-core.ts +2 -2
  505. package/src/runtime/ui-read-models-observability-maintenance.ts +4 -4
  506. package/src/runtime/ui-read-models-observability-options.ts +1 -1
  507. package/src/runtime/ui-read-models-observability-remote.ts +2 -2
  508. package/src/runtime/ui-read-models-observability-security.ts +3 -3
  509. package/src/runtime/ui-read-models-observability-system.ts +6 -6
  510. package/src/runtime/ui-read-models-observability.ts +10 -10
  511. package/src/runtime/ui-read-models-operations.ts +2 -2
  512. package/src/runtime/ui-read-models.ts +7 -7
  513. package/src/runtime/ui-service-queries.ts +2 -2
  514. package/src/runtime/ui-services.ts +7 -7
  515. package/src/runtime/worktree/registry.ts +1 -1
  516. package/src/scripts/process-messages.ts +1 -1
  517. package/src/sessions/manager.ts +9 -383
  518. package/src/shell/blocking-input.ts +3 -3
  519. package/src/shell/ui-openers.ts +3 -3
  520. package/src/state/file-watcher.ts +1 -1
  521. package/src/state/index.ts +10 -10
  522. package/src/state/knowledge-injection.ts +2 -2
  523. package/src/state/memory-embedding-http.ts +2 -2
  524. package/src/state/memory-embeddings.ts +1 -1
  525. package/src/state/memory-ingest.ts +3 -3
  526. package/src/state/memory-registry.ts +3 -3
  527. package/src/state/memory-store-helpers.ts +1 -1
  528. package/src/state/memory-store.ts +4 -4
  529. package/src/state/memory-vector-store.ts +3 -3
  530. package/src/tools/agent/index.ts +7 -7
  531. package/src/tools/agent/manager.ts +8 -8
  532. package/src/tools/analyze/git-modes.ts +2 -2
  533. package/src/tools/analyze/index.ts +2 -2
  534. package/src/tools/channel/agent-tools.ts +1 -1
  535. package/src/tools/channel/index.ts +2 -2
  536. package/src/tools/control/index.ts +1 -1
  537. package/src/tools/edit/core.ts +3 -3
  538. package/src/tools/edit/index.ts +2 -2
  539. package/src/tools/edit/phased.ts +2 -2
  540. package/src/tools/fetch/index.ts +2 -2
  541. package/src/tools/fetch/phased.ts +1 -1
  542. package/src/tools/index.ts +28 -28
  543. package/src/tools/mcp/index.ts +1 -1
  544. package/src/tools/remote-trigger/index.ts +1 -1
  545. package/src/tools/shared/auto-heal.ts +2 -2
  546. package/src/tools/state/index.ts +1 -1
  547. package/src/tools/web-search/index.ts +1 -1
  548. package/src/tools/write/index.ts +3 -3
  549. package/src/tools/write/phased.ts +1 -1
  550. package/src/version.ts +1 -1
  551. package/src/watchers/index.ts +2 -2
  552. package/src/watchers/registry.ts +2 -2
  553. package/src/web-search/index.ts +10 -10
  554. package/src/web-search/provider-registry.ts +8 -8
  555. package/src/web-search/providers/brave.ts +1 -1
  556. package/src/web-search/providers/duckduckgo.ts +1 -1
  557. package/src/web-search/providers/exa.ts +1 -1
  558. package/src/web-search/providers/firecrawl.ts +1 -1
  559. package/src/web-search/providers/perplexity.ts +1 -1
  560. package/src/web-search/providers/searxng.ts +1 -1
  561. package/src/web-search/providers/shared.ts +1 -1
  562. package/src/web-search/providers/tavily.ts +1 -1
  563. package/src/web-search/service.ts +2 -2
  564. package/docs/README.md +0 -32
  565. package/scripts/postinstall.mjs +0 -203
  566. package/src/runtime/ecosystem/catalog.ts +0 -606
  567. package/src/runtime/sandbox/backend.ts +0 -291
  568. package/src/runtime/sandbox/manager.ts +0 -364
  569. package/src/runtime/sandbox/provisioning.ts +0 -422
  570. package/src/runtime/sandbox/session-registry.ts +0 -289
  571. package/src/tools/repl/index.ts +0 -318
package/CHANGELOG.md CHANGED
@@ -4,8 +4,192 @@ All notable changes to GoodVibes TUI.
4
4
 
5
5
  ---
6
6
 
7
+ ## [0.18.9] — 2026-04-15
8
+
9
+ ### SDK `0.18.24` Host-Boundary Cutover
10
+
11
+ - Updated `goodvibes-tui` to consume the published canonical SDK line at `@pellux/goodvibes-sdk@0.18.24`
12
+ - Fixed the TUI host/runtime boundary so SDK-owned services receive explicit TUI configuration instead of inheriting shared defaults
13
+ - Passed TUI-owned ecosystem catalog roots into SDK marketplace, skills, integration, and product surfaces so curated catalogs and receipts stay under `.goodvibes/tui/ecosystem/...`
14
+ - Passed `surfaceRoot: 'tui'` into the daemon service manager and `defaultSurfaceKind: 'tui'` into automation runtime setup so service files and automation target semantics stay product-owned
15
+ - Allowed the TUI runtime host to inject its own `localUserAuthManager` instead of letting the SDK bootstrap local auth storage implicitly
16
+
17
+ ### Removed Remaining Local Ecosystem Duplication
18
+
19
+ - Removed the dead local `src/runtime/ecosystem/catalog.ts` implementation from the TUI
20
+ - Kept the TUI on package imports for ecosystem catalog/recommendation behavior instead of carrying a second local implementation beside the SDK
21
+ - Fixed the marketplace panel test and the built-in marketplace panel factory so they both use the same explicit TUI catalog-root wiring as the command/runtime host
22
+
23
+ ### Foundation And Release-Path Corrections
24
+
25
+ - Regenerated checked-in foundation artifacts after the SDK `0.18.24` control-plane and contract updates so the TUI release gates stay aligned with the canonical runtime builders
26
+ - Cleared the remaining temp-root failure in the marketplace panel test by moving it onto the repo-local `.tmp-tests` path
27
+ - Revalidated the TUI end to end after the SDK boundary fixes instead of shipping on targeted checks alone
28
+
29
+ ### Verification
30
+
31
+ - Full typecheck passes: `bun x tsc --noEmit --pretty false`
32
+ - Full test runner passes: `bun run test`
33
+ - Architecture gate passes: `bun run architecture:check`
34
+ - Performance gate passes: `bun run perf:check`
35
+ - Eval gate passes: `bun run eval:gate`
36
+ - Foundation artifacts export passes: `bun run foundation:artifacts`
37
+ - Build passes: `bun run build`
38
+ - Publish packaging check passes: `bun run publish:check`
39
+ - Staged npm package rehearsal passes: `bun run publish:dry-run`
40
+ - Staged GitHub Packages rehearsal passes: `bun run publish:dry-run:github`
41
+ - Diff hygiene passes: `git diff --check`
42
+
43
+ ## [0.18.8] — 2026-04-15
44
+
45
+ ### Canonical SDK Cutover Completion
46
+
47
+ - Switched the TUI to the canonical published SDK line at `@pellux/goodvibes-sdk@0.18.21`
48
+ - Removed the remaining local REPL and sandbox runtime implementations from the TUI and routed those flows through SDK-owned package imports instead
49
+ - Rewired command, MCP, panel, and runtime call sites that were still holding local platform copies so the TUI now consumes the shared SDK surface instead of carrying duplicate implementations
50
+
51
+ ### TUI-Owned Configuration Boundary Fixes
52
+
53
+ - Kept product-owned storage and runtime identity at `.goodvibes/tui/...` by making the TUI pass explicit host configuration into SDK-owned services instead of inheriting SDK defaults
54
+ - Wired cross-session task graphs to the TUI-owned path under `.goodvibes/tui/sessions/task-graph.json`
55
+ - Instantiated the team and worklist tools with explicit `surfaceRoot: 'tui'` host configuration instead of relying on SDK defaults
56
+ - Aligned language-override and secret-store tests with the real TUI-owned configuration boundary
57
+
58
+ ### Release-Path And Test Hardening
59
+
60
+ - Added per-file repo-local temp roots in `scripts/run-tests.ts` so the full TUI test suite no longer collides on shared temp filesystems
61
+ - Reworked tests that still wrote to `/tmp` or shared temp roots so they now use the active temp root or an explicit external directory when validating escape behavior
62
+ - Fixed the intelligence test helper to lazily initialize its runtime singletons, eliminating the module-init cycle that surfaced after the SDK cutover
63
+ - Improved the Skills panel detail path rendering so long skill origins keep the useful suffix visible instead of clipping away the selected file
64
+
65
+ ### Verification
66
+
67
+ - Full typecheck passes: `bun x tsc --noEmit --pretty false`
68
+ - Full test runner passes locally: `bun run test`
69
+ - Architecture gate passes: `bun run architecture:check`
70
+ - Performance gate passes: `bun run perf:check`
71
+ - Eval gate passes: `bun run eval:gate`
72
+ - Foundation artifacts export passes: `bun run foundation:artifacts`
73
+ - Build passes: `bun run build`
74
+ - Publish packaging check passes: `bun run publish:check`
75
+ - Staged npm package rehearsal passes: `bun run publish:dry-run`
76
+ - Staged GitHub Packages rehearsal passes: `bun run publish:dry-run:github`
77
+ - Local package install smoke passes through `postinstall` with staged release artifacts
78
+ - Diff hygiene passes: `git diff --check`
79
+
80
+ ## [0.18.7] — 2026-04-14
81
+
82
+ Superseded before successful public registry release. The release workflow got past the package-install fix, but the REPL tool and REPL test harness were still allocating temp state under constrained temp filesystems, which failed the test phase before publish. The corrected release shipped in `0.18.8`.
83
+
84
+ ### Release Workflow Install Fix
85
+
86
+ - Fixed the TUI package postinstall path so source checkouts no longer try to download release binaries during `bun install`
87
+ - This unblocks CI and release validation jobs, which install repo dependencies before the GitHub Release assets exist
88
+ - Kept the actual packaged install behavior unchanged: published npm and GitHub Packages installs still download the matching TUI and standalone daemon binaries during `postinstall`
89
+
90
+ ### Verification
91
+
92
+ - Full typecheck passes: `bun x tsc --noEmit --pretty false`
93
+ - Publish packaging check passes: `bun run publish:check`
94
+ - Staged npm package rehearsal passes: `bun run publish:dry-run`
95
+ - Staged GitHub Packages rehearsal passes: `bun run publish:dry-run:github`
96
+ - Local package install smoke passes through `postinstall` with staged release artifacts
97
+ - Diff hygiene passes: `git diff --check`
98
+
99
+ ## [0.18.6] — 2026-04-14
100
+
101
+ Superseded before successful public registry release. The repo checkout still ran the binary-download `postinstall` during CI `bun install`, which blocked the tagged release before publish. The corrected release shipped in `0.18.7`.
102
+
103
+ ### Public Package Delivery Fix
104
+
105
+ - Replaced the oversized bundled-binary npm package model with a smaller package that installs the matching TUI and standalone daemon binaries during `postinstall`
106
+ - Kept the package identities as `@pellux/goodvibes-tui` on npmjs and `@mgd34msu/goodvibes-tui` on GitHub Packages while keeping the installed CLI surface as `goodvibes` and `goodvibes-daemon`
107
+ - Kept the runtime fallback path so installs can still run from Bun + source if a platform binary is unavailable, but made the intended install path the version-matched release binaries
108
+
109
+ ### Release Workflow Correction
110
+
111
+ - Reordered the release workflow so the GitHub Release and binary assets are created before npmjs and GitHub Packages publishing, ensuring package installs can fetch release assets immediately after publish
112
+ - Reworked install-smoke validation so the packed npm tarball is tested through the real `postinstall` path that installs both the TUI and daemon binaries for the current platform
113
+ - Hardened publish validation so registry tarballs fail if they accidentally include vendored binaries again or exceed the package-size guardrail
114
+
115
+ ### Verification
116
+
117
+ - Full typecheck passes: `bun x tsc --noEmit --pretty false`
118
+ - Publish packaging check passes: `bun run publish:check`
119
+ - Staged npm package rehearsal passes: `bun run publish:dry-run`
120
+ - Staged GitHub Packages rehearsal passes: `bun run publish:dry-run:github`
121
+ - Local package install smoke passes through `postinstall` with staged release artifacts
122
+ - Diff hygiene passes: `git diff --check`
123
+
124
+ ## [0.18.5] — 2026-04-14
125
+
126
+ Superseded before successful public registry release. The bundled-binary tarball for this version exceeded npmjs and GitHub Packages size limits, and the corrected public package model shipped in `0.18.6`.
127
+
128
+ ### Public Package And Release Correction
129
+
130
+ - Corrected the public packaged release path after the initial `0.18.4` cutover so the shipped npm distribution now matches the actual intended install model
131
+ - Published the TUI on npm as `@pellux/goodvibes-tui` and mirrored the same release to GitHub Packages as `@mgd34msu/goodvibes-tui`
132
+ - Kept the installed CLI surface as `goodvibes` and `goodvibes-daemon` while moving the package identity to the scoped release names
133
+ - Added both launcher bins to the packaged distribution so global installs expose the interactive TUI and the standalone daemon directly on the user path
134
+
135
+ ### Bundled Binary Delivery
136
+
137
+ - Bundled the compiled TUI binaries directly into the npm package for:
138
+ - Linux x64
139
+ - Linux arm64
140
+ - macOS x64
141
+ - macOS arm64
142
+ - Bundled the standalone daemon binaries directly into the npm package for:
143
+ - Linux x64
144
+ - Linux arm64
145
+ - macOS x64
146
+ - macOS arm64
147
+ - Removed the prior install-time binary download behavior so npm installs now use the packaged binaries already present in `vendor/`
148
+ - Added packaged release checksums through `vendor/SHA256SUMS.txt` and release-asset `SHA256SUMS.txt`
149
+
150
+ ### Release Automation And Publish Path Hardening
151
+
152
+ - Added staged vendor-binary packaging so npm and GitHub Packages publishes are built from the same explicit bundled-binary package shape
153
+ - Added a dedicated publish-packaging path for registry release publishing instead of depending on raw repo copies during publish
154
+ - Added a GitHub Packages publish job alongside the npmjs publish job in the release workflow
155
+ - Fixed staged publish rehearsal so local dry-runs validate the real publishable package shape without tripping registry version conflicts or temporary-filesystem quota failures
156
+ - Extended release validation and install smoke coverage to require both launcher bins and both bundled binary families
157
+
158
+ ### Verification
159
+
160
+ - Full typecheck passes: `bun x tsc --noEmit --pretty false`
161
+ - Architecture gate passes: `bun run architecture:check`
162
+ - Performance gate passes: `bun run perf:check`
163
+ - Eval gate passes: `bun run eval:gate`
164
+ - Full test runner passes: `bun run test`
165
+ - Build passes: `bun run build`
166
+ - Foundation artifact export passes: `bun run foundation:artifacts`
167
+ - Vendored binary staging passes: `bun run vendor:stage --clean`
168
+ - Publish packaging check passes: `bun run publish:check`
169
+ - Staged npm package rehearsal passes: `bun run publish:dry-run`
170
+ - Staged GitHub Packages rehearsal passes: `bun run publish:dry-run:github`
171
+ - Diff hygiene passes: `git diff --check`
172
+
7
173
  ## [0.18.4] — 2026-04-14
8
174
 
175
+ ### First Public Distribution And Delivery
176
+
177
+ - Published the TUI under the Pellux scope as `@pellux/goodvibes-tui` while keeping the installed CLI commands as `goodvibes` and `goodvibes-daemon`
178
+ - Added a GitHub Packages mirror as `@mgd34msu/goodvibes-tui`
179
+ - Bundled the compiled TUI and standalone daemon binaries directly into the npm package instead of relying on install-time downloads
180
+ - Added both `goodvibes` and `goodvibes-daemon` launcher bins to the package so global npm installs expose both commands on the user path
181
+ - Expanded the release asset set to ship compiled binaries for:
182
+ - Linux x64
183
+ - Linux arm64
184
+ - macOS x64
185
+ - macOS arm64
186
+ - Expanded the release asset set to ship standalone daemon binaries for:
187
+ - Linux x64
188
+ - Linux arm64
189
+ - macOS x64
190
+ - macOS arm64
191
+ - Added `SHA256SUMS.txt` checksums for the published release binaries
192
+
9
193
  ### Canonical SDK Cutover
10
194
 
11
195
  - Switched `goodvibes-tui` from the temporary beta line to the canonical `@pellux/goodvibes-sdk@0.18.14` package and rewired imports to the canonical SDK entrypoints
@@ -17,6 +201,9 @@ All notable changes to GoodVibes TUI.
17
201
  - Fixed the TUI eval gate to use the SDK-backed eval baseline, formatting, and scorecard exports after the platform extraction removed the old local files
18
202
  - Fixed the TUI performance gate to build CI snapshots against the SDK-backed `surfacePerf` domain shape instead of the pre-extraction local `uiPerf` shape
19
203
  - Fixed the architecture check so it tolerates removed migration targets on clean checkouts instead of crashing when extracted directories no longer exist
204
+ - Fixed the package publish path so release packaging stages vendored binaries deterministically instead of depending on install-time binary download behavior
205
+ - Fixed the release workflow to publish both npmjs and GitHub Packages distributions from the same bundled-binary package shape
206
+ - Fixed the staged publish rehearsal so it packs the final publishable package locally without tripping registry version conflicts or `/tmp` quota issues
20
207
 
21
208
  ### Verification
22
209
 
@@ -27,7 +214,10 @@ All notable changes to GoodVibes TUI.
27
214
  - Full test runner passes: `bun run test`
28
215
  - Build passes: `bun run build`
29
216
  - Foundation artifact export passes: `bun run foundation:artifacts`
217
+ - Vendored binary staging passes: `bun run vendor:stage --clean`
30
218
  - Publish packaging check passes: `bun run publish:check`
219
+ - Staged npm package rehearsal passes: `bun run publish:dry-run`
220
+ - Staged GitHub Packages rehearsal passes: `bun run publish:dry-run:github`
31
221
  - Diff hygiene passes: `git diff --check`
32
222
 
33
223
  ## [0.18.3] — 2026-04-14
package/README.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  [![CI](https://github.com/mgd34msu/goodvibes-tui/actions/workflows/ci.yml/badge.svg)](https://github.com/mgd34msu/goodvibes-tui/actions/workflows/ci.yml)
4
4
  [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
5
- [![Version](https://img.shields.io/badge/version-0.18.4-blue.svg)](https://github.com/mgd34msu/goodvibes-tui)
5
+ [![Version](https://img.shields.io/badge/version-0.18.9-blue.svg)](https://github.com/mgd34msu/goodvibes-tui)
6
6
 
7
7
  A terminal-native AI coding, operations, automation, knowledge, and integration console with a typed runtime, omnichannel surfaces, structured memory/knowledge, and a raw ANSI renderer.
8
8
 
@@ -39,7 +39,7 @@ Common entrypoints:
39
39
  Release distribution:
40
40
 
41
41
  - GitHub Releases are the primary distribution path for compiled binaries
42
- - `npm install -g @pellux/goodvibes-tui` is supported on Linux, macOS, and WSL by downloading the matching prebuilt release binary during install
42
+ - `npm install -g @pellux/goodvibes-tui` is supported on Linux, macOS, and WSL; the install script downloads the matching TUI and daemon binaries for the current platform
43
43
  - native Windows is not supported; use WSL on Windows
44
44
 
45
45
  Common paths:
package/bin/goodvibes CHANGED
@@ -62,5 +62,5 @@ console.error(`platform: ${process.platform}-${process.arch}`);
62
62
  console.error(`supported prebuilt targets: ${supported}`);
63
63
  console.error('Either:');
64
64
  console.error(' 1. install Bun and re-run the command, or');
65
- console.error(' 2. reinstall after a matching GitHub release asset exists for this version.');
65
+ console.error(' 2. rerun the package postinstall step so the matching release binary is downloaded.');
66
66
  process.exit(1);
@@ -0,0 +1,66 @@
1
+ #!/usr/bin/env node
2
+ import { accessSync, constants } from 'node:fs';
3
+ import { dirname, join } from 'node:path';
4
+ import { fileURLToPath } from 'node:url';
5
+ import { spawnSync } from 'node:child_process';
6
+
7
+ const __dirname = dirname(fileURLToPath(import.meta.url));
8
+ const packageRoot = join(__dirname, '..');
9
+
10
+ if (process.platform === 'win32') {
11
+ console.error('goodvibes-daemon: native Windows is not supported.');
12
+ console.error('Use WSL so the Linux release binary path applies.');
13
+ process.exit(1);
14
+ }
15
+
16
+ function resolveArtifactName(platform, arch) {
17
+ if (platform === 'linux' && arch === 'x64') return 'goodvibes-daemon-linux-x64';
18
+ if (platform === 'linux' && arch === 'arm64') return 'goodvibes-daemon-linux-arm64';
19
+ if (platform === 'darwin' && arch === 'x64') return 'goodvibes-daemon-macos-x64';
20
+ if (platform === 'darwin' && arch === 'arm64') return 'goodvibes-daemon-macos-arm64';
21
+ return null;
22
+ }
23
+
24
+ function isExecutable(path) {
25
+ try {
26
+ accessSync(path, constants.X_OK);
27
+ return true;
28
+ } catch {
29
+ return false;
30
+ }
31
+ }
32
+
33
+ function run(command, args) {
34
+ const child = spawnSync(command, args, { stdio: 'inherit' });
35
+ if (child.error) {
36
+ throw child.error;
37
+ }
38
+ process.exit(child.status ?? 1);
39
+ }
40
+
41
+ const artifactName = resolveArtifactName(process.platform, process.arch);
42
+ const vendoredBinary = artifactName ? join(packageRoot, 'vendor', artifactName) : null;
43
+
44
+ if (vendoredBinary && isExecutable(vendoredBinary)) {
45
+ run(vendoredBinary, process.argv.slice(2));
46
+ }
47
+
48
+ const bunProbe = spawnSync('bun', ['--version'], { stdio: 'ignore' });
49
+ if (bunProbe.status === 0) {
50
+ run('bun', [join(packageRoot, 'src', 'daemon', 'cli.ts'), ...process.argv.slice(2)]);
51
+ }
52
+
53
+ const supported = [
54
+ 'linux-x64',
55
+ 'linux-arm64',
56
+ 'darwin-x64',
57
+ 'darwin-arm64',
58
+ ].join(', ');
59
+
60
+ console.error('goodvibes-daemon: no runnable binary is available.');
61
+ console.error(`platform: ${process.platform}-${process.arch}`);
62
+ console.error(`supported prebuilt targets: ${supported}`);
63
+ console.error('Either:');
64
+ console.error(' 1. install Bun and re-run the command, or');
65
+ console.error(' 2. rerun the package postinstall step so the matching daemon binary is downloaded.');
66
+ process.exit(1);
@@ -3,7 +3,7 @@
3
3
  "product": {
4
4
  "id": "goodvibes",
5
5
  "surface": "operator",
6
- "version": "0.18.4"
6
+ "version": "0.18.14"
7
7
  },
8
8
  "auth": {
9
9
  "modes": [
package/package.json CHANGED
@@ -1,11 +1,12 @@
1
1
  {
2
2
  "name": "@pellux/goodvibes-tui",
3
- "version": "0.18.4",
3
+ "version": "0.18.9",
4
4
  "description": "Terminal-native GoodVibes product for coding, operations, automation, knowledge, channels, and daemon-backed control-plane workflows.",
5
5
  "type": "module",
6
6
  "main": "src/main.ts",
7
7
  "bin": {
8
- "goodvibes": "./bin/goodvibes"
8
+ "goodvibes": "bin/goodvibes",
9
+ "goodvibes-daemon": "bin/goodvibes-daemon"
9
10
  },
10
11
  "files": [
11
12
  "bin",
@@ -15,7 +16,7 @@
15
16
  "src",
16
17
  "!src/test",
17
18
  "!src/**/*.test.ts",
18
- "scripts/postinstall.mjs",
19
+ "scripts/postinstall.js",
19
20
  "README.md",
20
21
  "CHANGELOG.md",
21
22
  "docs/foundation-artifacts"
@@ -30,15 +31,21 @@
30
31
  "build:linux-arm64": "bun build src/main.ts --compile --target=bun-linux-arm64 --outfile dist/goodvibes-linux-arm64",
31
32
  "build:macos-x64": "bun build src/main.ts --compile --target=bun-darwin-x64 --outfile dist/goodvibes-macos-x64",
32
33
  "build:macos-arm64": "bun build src/main.ts --compile --target=bun-darwin-arm64 --outfile dist/goodvibes-macos-arm64",
34
+ "build:daemon:linux-x64": "bun build src/daemon/cli.ts --compile --target=bun-linux-x64 --outfile dist/goodvibes-daemon-linux-x64",
35
+ "build:daemon:linux-arm64": "bun build src/daemon/cli.ts --compile --target=bun-linux-arm64 --outfile dist/goodvibes-daemon-linux-arm64",
36
+ "build:daemon:macos-x64": "bun build src/daemon/cli.ts --compile --target=bun-darwin-x64 --outfile dist/goodvibes-daemon-macos-x64",
37
+ "build:daemon:macos-arm64": "bun build src/daemon/cli.ts --compile --target=bun-darwin-arm64 --outfile dist/goodvibes-daemon-macos-arm64",
33
38
  "build:windows": "bun build src/main.ts --compile --target=bun-windows-x64 --outfile dist/goodvibes-windows.exe",
34
39
  "build:all-shell": "bun run build:linux-x64 && bun run build:linux-arm64 && bun run build:macos-x64 && bun run build:macos-arm64 && bun run build:windows",
35
40
  "test": "bun run scripts/run-tests.ts",
36
41
  "version": "bun run scripts/prebuild.ts",
37
- "postinstall": "node scripts/postinstall.mjs",
38
- "postbuild": "node scripts/postinstall.mjs --no-download",
42
+ "postinstall": "node scripts/postinstall.js",
43
+ "postbuild": "node scripts/postinstall.js --no-download",
39
44
  "release": "bun run scripts/release.ts",
40
45
  "release:dry": "bun run scripts/release.ts --dry-run",
41
- "publish:dry-run": "npm pack --dry-run",
46
+ "publish:package": "bun run scripts/publish-package.ts",
47
+ "publish:dry-run": "bun run scripts/publish-package.ts --dry-run",
48
+ "publish:dry-run:github": "GOODVIBES_PUBLIC_PACKAGE_NAME=@mgd34msu/goodvibes-tui GOODVIBES_PUBLISH_REGISTRY=https://npm.pkg.github.com bun run scripts/publish-package.ts --dry-run",
42
49
  "publish:check": "bun run scripts/publish-check.ts",
43
50
  "build:prod": "bun run scripts/build.ts",
44
51
  "build:all": "bun run scripts/build.ts --all",
@@ -81,7 +88,7 @@
81
88
  "@anthropic-ai/vertex-sdk": "^0.16.0",
82
89
  "@ast-grep/napi": "^0.42.0",
83
90
  "@aws/bedrock-token-generator": "^1.1.0",
84
- "@pellux/goodvibes-sdk": "0.18.14",
91
+ "@pellux/goodvibes-sdk": "0.18.24",
85
92
  "bash-language-server": "^5.6.0",
86
93
  "fuse.js": "^7.1.0",
87
94
  "graphql": "^16.13.2",
@@ -0,0 +1,220 @@
1
+ #!/usr/bin/env node
2
+ import { chmodSync, copyFileSync, cpSync, existsSync, mkdirSync, readdirSync, readFileSync, rmSync, writeFileSync } from 'node:fs';
3
+ import { createHash } from 'node:crypto';
4
+ import { homedir } from 'node:os';
5
+ import { basename, dirname, join } from 'node:path';
6
+ import { fileURLToPath } from 'node:url';
7
+
8
+ const __dirname = dirname(fileURLToPath(import.meta.url));
9
+ const projectRoot = join(__dirname, '..');
10
+ const home = homedir();
11
+ const pkg = JSON.parse(readFileSync(join(projectRoot, 'package.json'), 'utf8'));
12
+ const noDownload = process.argv.includes('--no-download') || process.env.GOODVIBES_SKIP_BINARY_DOWNLOAD === '1';
13
+
14
+ function isSourceCheckout() {
15
+ return existsSync(join(projectRoot, '.git')) || existsSync(join(projectRoot, 'bun.lock'));
16
+ }
17
+
18
+ function resolveArtifactNames(platform, arch) {
19
+ if (platform === 'linux' && arch === 'x64') {
20
+ return {
21
+ app: 'goodvibes-linux-x64',
22
+ daemon: 'goodvibes-daemon-linux-x64',
23
+ };
24
+ }
25
+ if (platform === 'linux' && arch === 'arm64') {
26
+ return {
27
+ app: 'goodvibes-linux-arm64',
28
+ daemon: 'goodvibes-daemon-linux-arm64',
29
+ };
30
+ }
31
+ if (platform === 'darwin' && arch === 'x64') {
32
+ return {
33
+ app: 'goodvibes-macos-x64',
34
+ daemon: 'goodvibes-daemon-macos-x64',
35
+ };
36
+ }
37
+ if (platform === 'darwin' && arch === 'arm64') {
38
+ return {
39
+ app: 'goodvibes-macos-arm64',
40
+ daemon: 'goodvibes-daemon-macos-arm64',
41
+ };
42
+ }
43
+ return null;
44
+ }
45
+
46
+ function prepareBinary(path) {
47
+ if (process.platform !== 'win32') {
48
+ chmodSync(path, 0o755);
49
+ }
50
+ }
51
+
52
+ function sha256(buffer) {
53
+ return createHash('sha256').update(buffer).digest('hex');
54
+ }
55
+
56
+ function parseChecksumFile(contents) {
57
+ const checksums = new Map();
58
+ for (const rawLine of contents.split(/\r?\n/)) {
59
+ const line = rawLine.trim();
60
+ if (!line) continue;
61
+ const match = line.match(/^([a-f0-9]{64})\s+\*?(.+)$/i);
62
+ if (!match) continue;
63
+ checksums.set(match[2], match[1].toLowerCase());
64
+ }
65
+ return checksums;
66
+ }
67
+
68
+ function resolveRepositoryBaseUrl() {
69
+ const repositoryUrl = typeof pkg.repository?.url === 'string' ? pkg.repository.url : '';
70
+ const normalized = repositoryUrl
71
+ .replace(/^git\+/, '')
72
+ .replace(/\.git$/, '')
73
+ .replace(/^git@github\.com:/, 'https://github.com/');
74
+ if (!normalized.startsWith('https://github.com/')) {
75
+ throw new Error(`unsupported repository URL for binary downloads: ${repositoryUrl || '(missing)'}`);
76
+ }
77
+ return normalized;
78
+ }
79
+
80
+ async function downloadFile(url, destination) {
81
+ const response = await fetch(url);
82
+ if (!response.ok) {
83
+ throw new Error(`download failed (${response.status}) for ${url}`);
84
+ }
85
+ writeFileSync(destination, Buffer.from(await response.arrayBuffer()));
86
+ }
87
+
88
+ async function downloadText(url) {
89
+ const response = await fetch(url);
90
+ if (!response.ok) {
91
+ throw new Error(`download failed (${response.status}) for ${url}`);
92
+ }
93
+ return await response.text();
94
+ }
95
+
96
+ async function installPlatformBinaries() {
97
+ const artifacts = resolveArtifactNames(process.platform, process.arch);
98
+ if (!artifacts) {
99
+ console.log(`postinstall: no prebuilt binaries for ${process.platform}-${process.arch}; skipping binary install`);
100
+ return;
101
+ }
102
+
103
+ if (noDownload) {
104
+ console.log('postinstall: skipping binary install (--no-download)');
105
+ return;
106
+ }
107
+
108
+ if (isSourceCheckout()) {
109
+ console.log('postinstall: source checkout detected; skipping release-binary install');
110
+ return;
111
+ }
112
+
113
+ const vendorDir = join(projectRoot, 'vendor');
114
+ mkdirSync(vendorDir, { recursive: true });
115
+
116
+ const localSourceDir = process.env.GOODVIBES_ASSET_SOURCE_DIR?.trim();
117
+ if (localSourceDir) {
118
+ for (const artifactName of [artifacts.app, artifacts.daemon]) {
119
+ const sourcePath = join(localSourceDir, artifactName);
120
+ if (!existsSync(sourcePath)) {
121
+ throw new Error(`missing local release artifact for postinstall smoke: ${sourcePath}`);
122
+ }
123
+ const destination = join(vendorDir, artifactName);
124
+ copyFileSync(sourcePath, destination);
125
+ prepareBinary(destination);
126
+ }
127
+ console.log(`postinstall: installed local smoke-test binaries for ${process.platform}-${process.arch}`);
128
+ return;
129
+ }
130
+
131
+ const releaseBaseUrl =
132
+ process.env.GOODVIBES_RELEASE_BASE_URL?.trim() ||
133
+ `${resolveRepositoryBaseUrl()}/releases/download/v${pkg.version}`;
134
+
135
+ const checksumUrl = `${releaseBaseUrl}/SHA256SUMS.txt`;
136
+ const checksumText = await downloadText(checksumUrl);
137
+ writeFileSync(join(vendorDir, 'SHA256SUMS.txt'), checksumText);
138
+ const checksums = parseChecksumFile(checksumText);
139
+
140
+ for (const artifactName of [artifacts.app, artifacts.daemon]) {
141
+ const destination = join(vendorDir, artifactName);
142
+ const tempDestination = `${destination}.download`;
143
+ rmSync(tempDestination, { force: true });
144
+ await downloadFile(`${releaseBaseUrl}/${artifactName}`, tempDestination);
145
+ const actual = sha256(readFileSync(tempDestination));
146
+ const expected = checksums.get(artifactName);
147
+ if (expected && expected !== actual) {
148
+ rmSync(tempDestination, { force: true });
149
+ throw new Error(`checksum mismatch for ${artifactName}: expected ${expected}, got ${actual}`);
150
+ }
151
+ rmSync(destination, { force: true });
152
+ copyFileSync(tempDestination, destination);
153
+ rmSync(tempDestination, { force: true });
154
+ prepareBinary(destination);
155
+ }
156
+
157
+ console.log(`postinstall: installed release binaries for ${process.platform}-${process.arch}`);
158
+ }
159
+
160
+ function deployBundledFiles() {
161
+ const targets = [
162
+ { src: join(projectRoot, '.goodvibes', 'skills'), dest: join(home, '.goodvibes', 'tui', 'skills') },
163
+ { src: join(projectRoot, '.goodvibes', 'agents'), dest: join(home, '.goodvibes', 'tui', 'agents') },
164
+ ];
165
+
166
+ let installed = 0;
167
+ let skipped = 0;
168
+
169
+ for (const { src, dest } of targets) {
170
+ if (!existsSync(src)) continue;
171
+
172
+ const entries = readdirSync(src, { withFileTypes: true });
173
+
174
+ for (const entry of entries) {
175
+ const srcPath = join(src, entry.name);
176
+ const destPath = join(dest, entry.name);
177
+
178
+ if (existsSync(destPath)) {
179
+ skipped++;
180
+ continue;
181
+ }
182
+
183
+ mkdirSync(dest, { recursive: true });
184
+
185
+ if (entry.isDirectory()) {
186
+ cpSync(srcPath, destPath, { recursive: true });
187
+ console.log(` installed: ${entry.name}/`);
188
+ installed++;
189
+ } else if (entry.name.endsWith('.md')) {
190
+ cpSync(srcPath, destPath);
191
+ console.log(` installed: ${entry.name}`);
192
+ installed++;
193
+ }
194
+ }
195
+ }
196
+
197
+ const goodvibesSrc = join(projectRoot, '.goodvibes', 'GOODVIBES.md');
198
+ const goodvibesDest = join(home, '.goodvibes', 'GOODVIBES.md');
199
+ if (existsSync(goodvibesSrc) && !existsSync(goodvibesDest)) {
200
+ mkdirSync(join(home, '.goodvibes'), { recursive: true });
201
+ copyFileSync(goodvibesSrc, goodvibesDest);
202
+ console.log(` installed: ${basename(goodvibesDest)}`);
203
+ installed++;
204
+ } else if (existsSync(goodvibesDest)) {
205
+ skipped++;
206
+ }
207
+
208
+ if (installed > 0 || skipped > 0) {
209
+ console.log(`postinstall: ${installed} installed, ${skipped} already exist (skipped)`);
210
+ } else {
211
+ console.log('postinstall: nothing to deploy');
212
+ }
213
+ }
214
+
215
+ async function main() {
216
+ await installPlatformBinaries();
217
+ deployBundledFiles();
218
+ }
219
+
220
+ await main();
@@ -15,13 +15,13 @@ import type {
15
15
  RequestPermissionResponse,
16
16
  } from '@pellux/goodvibes-sdk/platform/acp/protocol';
17
17
  import type { SubagentInfo, SubagentResult, SubagentTask } from '@pellux/goodvibes-sdk/platform/acp/protocol';
18
- import type { PermissionCategory } from '../permissions/manager.ts';
19
- import type { PermissionRequestHandler } from '../permissions/prompt.ts';
18
+ import type { PermissionCategory } from '@pellux/goodvibes-sdk/platform/permissions/manager';
19
+ import type { PermissionRequestHandler } from '@pellux/goodvibes-sdk/platform/permissions/prompt';
20
20
  import { logger } from '@pellux/goodvibes-sdk/platform/utils/logger';
21
21
  import { analyzePermissionRequest } from '@pellux/goodvibes-sdk/platform/permissions/analysis';
22
22
  import { AcpError } from '@pellux/goodvibes-sdk/platform/types/errors';
23
23
  import { VERSION } from '../version.ts';
24
- import type { RuntimeEventBus } from '../runtime/events/index.ts';
24
+ import type { RuntimeEventBus } from '@pellux/goodvibes-sdk/platform/runtime/events/index';
25
25
  import {
26
26
  emitAgentCancelled,
27
27
  emitAgentCompleted,
@@ -33,8 +33,8 @@ import {
33
33
  emitTransportInitializing,
34
34
  emitTransportSyncing,
35
35
  emitTransportTerminalFailure,
36
- } from '../runtime/emitters/index.ts';
37
- import type { HookDispatcher } from '../hooks/index.ts';
36
+ } from '@pellux/goodvibes-sdk/platform/runtime/emitters/index';
37
+ import type { HookDispatcher } from '@pellux/goodvibes-sdk/platform/hooks/index';
38
38
  import type { HookCategory, HookEventPath, HookPhase } from '@pellux/goodvibes-sdk/platform/hooks/types';
39
39
  import { summarizeError } from '@pellux/goodvibes-sdk/platform/utils/error-display';
40
40
 
package/src/acp/index.ts CHANGED
@@ -4,4 +4,4 @@ export type {
4
4
  SubagentTask,
5
5
  SubagentStatus,
6
6
  } from '@pellux/goodvibes-sdk/platform/acp/protocol';
7
- export { AcpManager } from './manager.ts';
7
+ export { AcpManager } from '@pellux/goodvibes-sdk/platform/acp/manager';