@pellux/goodvibes-agent 0.1.0

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 (398) hide show
  1. package/.goodvibes/GOODVIBES.md +35 -0
  2. package/.goodvibes/agents/reviewer.md +48 -0
  3. package/.goodvibes/skills/add-provider/SKILL.md +199 -0
  4. package/CHANGELOG.md +25 -0
  5. package/README.md +74 -0
  6. package/bin/goodvibes-agent.ts +2 -0
  7. package/docs/README.md +23 -0
  8. package/docs/deployment-and-services.md +57 -0
  9. package/docs/getting-started.md +53 -0
  10. package/docs/release-and-publishing.md +46 -0
  11. package/package.json +134 -0
  12. package/scripts/check-bun.sh +20 -0
  13. package/src/audio/player.ts +156 -0
  14. package/src/audio/spoken-turn-controller.ts +203 -0
  15. package/src/audio/spoken-turn-model-routing.ts +117 -0
  16. package/src/audio/spoken-turn-wiring.ts +44 -0
  17. package/src/audio/text-chunker.ts +110 -0
  18. package/src/cli/bundle-command.ts +227 -0
  19. package/src/cli/completion.ts +90 -0
  20. package/src/cli/config-overrides.ts +159 -0
  21. package/src/cli/endpoints.ts +63 -0
  22. package/src/cli/entrypoint.ts +172 -0
  23. package/src/cli/help.ts +299 -0
  24. package/src/cli/index.ts +11 -0
  25. package/src/cli/management-commands.ts +426 -0
  26. package/src/cli/management.ts +744 -0
  27. package/src/cli/network-posture.ts +46 -0
  28. package/src/cli/package-verification.ts +123 -0
  29. package/src/cli/parser.ts +369 -0
  30. package/src/cli/provider-auth-routes.ts +22 -0
  31. package/src/cli/provider-classification.ts +107 -0
  32. package/src/cli/redaction.ts +105 -0
  33. package/src/cli/service-command.ts +26 -0
  34. package/src/cli/service-posture.ts +482 -0
  35. package/src/cli/status.ts +383 -0
  36. package/src/cli/surface-command.ts +247 -0
  37. package/src/cli/tui-startup.ts +32 -0
  38. package/src/cli/types.ts +69 -0
  39. package/src/cli-flags.ts +21 -0
  40. package/src/config/goodvibes-home-audit.ts +465 -0
  41. package/src/config/index.ts +57 -0
  42. package/src/config/provider-model.ts +23 -0
  43. package/src/config/secret-config.ts +119 -0
  44. package/src/config/secrets.ts +71 -0
  45. package/src/config/surface.ts +1 -0
  46. package/src/core/composer-state.ts +61 -0
  47. package/src/core/conversation-rendering.ts +359 -0
  48. package/src/core/conversation.ts +551 -0
  49. package/src/core/history.ts +45 -0
  50. package/src/core/orchestrator.ts +7 -0
  51. package/src/core/system-message-router.ts +171 -0
  52. package/src/daemon/cli.ts +55 -0
  53. package/src/daemon/safe-serve.ts +61 -0
  54. package/src/input/agent-workspace.ts +428 -0
  55. package/src/input/autocomplete.ts +96 -0
  56. package/src/input/bookmark-modal.ts +115 -0
  57. package/src/input/command-args-hint.ts +36 -0
  58. package/src/input/command-registry.ts +329 -0
  59. package/src/input/commands/agent-externalized-tui.ts +73 -0
  60. package/src/input/commands/agent-workspace-runtime.ts +17 -0
  61. package/src/input/commands/branch-runtime.ts +72 -0
  62. package/src/input/commands/cloudflare-runtime.ts +370 -0
  63. package/src/input/commands/config.ts +18 -0
  64. package/src/input/commands/control-room-runtime.ts +255 -0
  65. package/src/input/commands/conversation-runtime.ts +207 -0
  66. package/src/input/commands/discovery-runtime.ts +52 -0
  67. package/src/input/commands/eval.ts +204 -0
  68. package/src/input/commands/experience-runtime.ts +278 -0
  69. package/src/input/commands/guidance-runtime.ts +106 -0
  70. package/src/input/commands/health-runtime.ts +434 -0
  71. package/src/input/commands/hooks-runtime.ts +148 -0
  72. package/src/input/commands/incident-runtime.ts +95 -0
  73. package/src/input/commands/integration-runtime.ts +394 -0
  74. package/src/input/commands/intelligence-runtime.ts +223 -0
  75. package/src/input/commands/knowledge.ts +531 -0
  76. package/src/input/commands/local-auth-runtime.ts +105 -0
  77. package/src/input/commands/local-provider-runtime.ts +170 -0
  78. package/src/input/commands/local-runtime.ts +392 -0
  79. package/src/input/commands/local-setup-review.ts +199 -0
  80. package/src/input/commands/local-setup-transfer.ts +135 -0
  81. package/src/input/commands/local-setup.ts +282 -0
  82. package/src/input/commands/managed-runtime.ts +209 -0
  83. package/src/input/commands/marketplace-runtime.ts +290 -0
  84. package/src/input/commands/mcp-runtime.ts +432 -0
  85. package/src/input/commands/memory-product-runtime.ts +111 -0
  86. package/src/input/commands/memory.ts +151 -0
  87. package/src/input/commands/notify-runtime.ts +83 -0
  88. package/src/input/commands/onboarding-runtime.ts +14 -0
  89. package/src/input/commands/operator-panel-runtime.ts +146 -0
  90. package/src/input/commands/operator-runtime.ts +392 -0
  91. package/src/input/commands/planning-runtime.ts +205 -0
  92. package/src/input/commands/platform-access-runtime.ts +422 -0
  93. package/src/input/commands/platform-services-runtime.ts +246 -0
  94. package/src/input/commands/policy-dispatch.ts +339 -0
  95. package/src/input/commands/policy.ts +17 -0
  96. package/src/input/commands/product-runtime.ts +351 -0
  97. package/src/input/commands/profile-sync-runtime.ts +99 -0
  98. package/src/input/commands/provider-accounts-runtime.ts +113 -0
  99. package/src/input/commands/provider.ts +363 -0
  100. package/src/input/commands/qrcode-runtime.ts +20 -0
  101. package/src/input/commands/quit-shared.ts +162 -0
  102. package/src/input/commands/recall-bundle.ts +132 -0
  103. package/src/input/commands/recall-capture.ts +152 -0
  104. package/src/input/commands/recall-query.ts +229 -0
  105. package/src/input/commands/recall-review.ts +98 -0
  106. package/src/input/commands/recall-shared.ts +22 -0
  107. package/src/input/commands/remote-runtime-pool.ts +106 -0
  108. package/src/input/commands/remote-runtime-setup.ts +199 -0
  109. package/src/input/commands/remote-runtime.ts +431 -0
  110. package/src/input/commands/replay-runtime.ts +18 -0
  111. package/src/input/commands/runtime-services.ts +291 -0
  112. package/src/input/commands/schedule-runtime.ts +91 -0
  113. package/src/input/commands/services-runtime.ts +209 -0
  114. package/src/input/commands/session-content.ts +408 -0
  115. package/src/input/commands/session-workflow.ts +464 -0
  116. package/src/input/commands/session.ts +375 -0
  117. package/src/input/commands/settings-sync-runtime.ts +174 -0
  118. package/src/input/commands/share-runtime.ts +119 -0
  119. package/src/input/commands/shell-core.ts +307 -0
  120. package/src/input/commands/skills-runtime.ts +221 -0
  121. package/src/input/commands/subscription-runtime.ts +434 -0
  122. package/src/input/commands/tasks-runtime.ts +230 -0
  123. package/src/input/commands/teamwork-runtime.ts +339 -0
  124. package/src/input/commands/teleport-runtime.ts +57 -0
  125. package/src/input/commands/tts-runtime.ts +29 -0
  126. package/src/input/commands/work-plan-runtime.ts +169 -0
  127. package/src/input/commands.ts +131 -0
  128. package/src/input/feed-context-factory.ts +254 -0
  129. package/src/input/file-picker.ts +192 -0
  130. package/src/input/handler-command-route.ts +180 -0
  131. package/src/input/handler-content-actions.ts +497 -0
  132. package/src/input/handler-feed-routes.ts +648 -0
  133. package/src/input/handler-feed.ts +452 -0
  134. package/src/input/handler-interactions.ts +281 -0
  135. package/src/input/handler-modal-routes.ts +418 -0
  136. package/src/input/handler-modal-stack.ts +263 -0
  137. package/src/input/handler-modal-token-routes.ts +329 -0
  138. package/src/input/handler-onboarding-cloudflare.ts +391 -0
  139. package/src/input/handler-onboarding.ts +620 -0
  140. package/src/input/handler-picker-routes.ts +472 -0
  141. package/src/input/handler-prompt-buffer.ts +320 -0
  142. package/src/input/handler-shortcuts.ts +213 -0
  143. package/src/input/handler-ui-state.ts +372 -0
  144. package/src/input/handler.ts +729 -0
  145. package/src/input/input-history.ts +297 -0
  146. package/src/input/keybindings.ts +292 -0
  147. package/src/input/mcp-workspace.ts +554 -0
  148. package/src/input/model-picker-provider-filter.ts +28 -0
  149. package/src/input/model-picker-types.ts +137 -0
  150. package/src/input/model-picker.ts +797 -0
  151. package/src/input/onboarding/handler-onboarding-routes.ts +125 -0
  152. package/src/input/onboarding/onboarding-runtime-status.ts +87 -0
  153. package/src/input/onboarding/onboarding-wizard-apply.ts +277 -0
  154. package/src/input/onboarding/onboarding-wizard-cloudflare-step.ts +494 -0
  155. package/src/input/onboarding/onboarding-wizard-cloudflare.ts +204 -0
  156. package/src/input/onboarding/onboarding-wizard-constants.ts +158 -0
  157. package/src/input/onboarding/onboarding-wizard-external-surface-extra-specs.ts +130 -0
  158. package/src/input/onboarding/onboarding-wizard-external-surfaces.ts +762 -0
  159. package/src/input/onboarding/onboarding-wizard-helpers.ts +167 -0
  160. package/src/input/onboarding/onboarding-wizard-rules.ts +256 -0
  161. package/src/input/onboarding/onboarding-wizard-state.ts +365 -0
  162. package/src/input/onboarding/onboarding-wizard-steps.ts +798 -0
  163. package/src/input/onboarding/onboarding-wizard-types.ts +195 -0
  164. package/src/input/onboarding/onboarding-wizard.ts +711 -0
  165. package/src/input/panel-integration-actions.ts +78 -0
  166. package/src/input/profile-picker-modal.ts +222 -0
  167. package/src/input/search.ts +100 -0
  168. package/src/input/selection-modal.ts +163 -0
  169. package/src/input/selection.ts +135 -0
  170. package/src/input/session-picker-modal.ts +136 -0
  171. package/src/input/settings-modal-behavior.ts +37 -0
  172. package/src/input/settings-modal-secrets.ts +41 -0
  173. package/src/input/settings-modal-subscriptions.ts +95 -0
  174. package/src/input/settings-modal-types.ts +91 -0
  175. package/src/input/settings-modal.ts +793 -0
  176. package/src/input/submission-intent.ts +17 -0
  177. package/src/input/submission-router.ts +59 -0
  178. package/src/input/tts-settings-actions.ts +100 -0
  179. package/src/main.ts +792 -0
  180. package/src/mcp/runtime-reload.ts +81 -0
  181. package/src/panels/agent-inspector-panel.ts +521 -0
  182. package/src/panels/agent-inspector-shared.ts +94 -0
  183. package/src/panels/agent-logs-panel.ts +559 -0
  184. package/src/panels/agent-logs-shared.ts +129 -0
  185. package/src/panels/approval-panel.ts +150 -0
  186. package/src/panels/automation-control-panel.ts +212 -0
  187. package/src/panels/base-panel.ts +254 -0
  188. package/src/panels/builtin/agent.ts +117 -0
  189. package/src/panels/builtin/development.ts +31 -0
  190. package/src/panels/builtin/knowledge.ts +26 -0
  191. package/src/panels/builtin/operations.ts +349 -0
  192. package/src/panels/builtin/session.ts +129 -0
  193. package/src/panels/builtin/shared.ts +274 -0
  194. package/src/panels/builtin-panels.ts +23 -0
  195. package/src/panels/cockpit-panel.ts +183 -0
  196. package/src/panels/communication-panel.ts +153 -0
  197. package/src/panels/confirm-state.ts +61 -0
  198. package/src/panels/context-visualizer-panel.ts +204 -0
  199. package/src/panels/control-plane-panel.ts +211 -0
  200. package/src/panels/cost-tracker-panel.ts +444 -0
  201. package/src/panels/debug-panel.ts +432 -0
  202. package/src/panels/diff-panel.ts +520 -0
  203. package/src/panels/docs-panel.ts +283 -0
  204. package/src/panels/eval-panel.ts +399 -0
  205. package/src/panels/file-explorer-panel.ts +584 -0
  206. package/src/panels/file-preview-panel.ts +434 -0
  207. package/src/panels/forensics-panel.ts +364 -0
  208. package/src/panels/git-panel.ts +638 -0
  209. package/src/panels/hooks-panel.ts +239 -0
  210. package/src/panels/incident-review-panel.ts +197 -0
  211. package/src/panels/index.ts +46 -0
  212. package/src/panels/intelligence-panel.ts +176 -0
  213. package/src/panels/knowledge-panel.ts +345 -0
  214. package/src/panels/local-auth-panel.ts +130 -0
  215. package/src/panels/marketplace-panel.ts +212 -0
  216. package/src/panels/memory-panel.ts +225 -0
  217. package/src/panels/ops-control-panel.ts +150 -0
  218. package/src/panels/ops-strategy-panel.ts +235 -0
  219. package/src/panels/orchestration-panel.ts +273 -0
  220. package/src/panels/panel-list-panel.ts +509 -0
  221. package/src/panels/panel-manager.ts +570 -0
  222. package/src/panels/panel-picker.ts +106 -0
  223. package/src/panels/plan-dashboard-panel.ts +274 -0
  224. package/src/panels/plugins-panel.ts +178 -0
  225. package/src/panels/policy-panel.ts +308 -0
  226. package/src/panels/polish.ts +717 -0
  227. package/src/panels/project-planning-panel.ts +711 -0
  228. package/src/panels/provider-account-snapshot.ts +259 -0
  229. package/src/panels/provider-accounts-panel.ts +218 -0
  230. package/src/panels/provider-health-domains.ts +215 -0
  231. package/src/panels/provider-health-panel.ts +727 -0
  232. package/src/panels/provider-health-tracker.ts +115 -0
  233. package/src/panels/provider-stats-panel.ts +366 -0
  234. package/src/panels/qr-panel.ts +182 -0
  235. package/src/panels/remote-panel.ts +449 -0
  236. package/src/panels/routes-panel.ts +178 -0
  237. package/src/panels/sandbox-panel.ts +283 -0
  238. package/src/panels/schedule-panel.ts +329 -0
  239. package/src/panels/scrollable-list-panel.ts +491 -0
  240. package/src/panels/search-focus.ts +32 -0
  241. package/src/panels/security-panel.ts +295 -0
  242. package/src/panels/services-panel.ts +231 -0
  243. package/src/panels/session-browser-panel.ts +400 -0
  244. package/src/panels/session-maintenance.ts +125 -0
  245. package/src/panels/settings-sync-panel.ts +120 -0
  246. package/src/panels/skills-panel.ts +431 -0
  247. package/src/panels/subscription-panel.ts +263 -0
  248. package/src/panels/symbol-outline-panel.ts +486 -0
  249. package/src/panels/system-messages-panel.ts +230 -0
  250. package/src/panels/tasks-panel.ts +399 -0
  251. package/src/panels/thinking-panel.ts +304 -0
  252. package/src/panels/token-budget-panel.ts +475 -0
  253. package/src/panels/tool-inspector-panel.ts +429 -0
  254. package/src/panels/types.ts +54 -0
  255. package/src/panels/watchers-panel.ts +193 -0
  256. package/src/panels/work-plan-panel.ts +175 -0
  257. package/src/panels/worktree-panel.ts +182 -0
  258. package/src/panels/wrfc-panel.ts +609 -0
  259. package/src/permissions/prompt.ts +165 -0
  260. package/src/planning/project-planning-coordinator.ts +543 -0
  261. package/src/plugins/loader.ts +15 -0
  262. package/src/renderer/agent-detail-modal.ts +331 -0
  263. package/src/renderer/agent-workspace.ts +238 -0
  264. package/src/renderer/ansi-sanitize.ts +76 -0
  265. package/src/renderer/autocomplete-overlay.ts +154 -0
  266. package/src/renderer/block-actions.ts +76 -0
  267. package/src/renderer/bookmark-modal.ts +101 -0
  268. package/src/renderer/bottom-bar.ts +58 -0
  269. package/src/renderer/buffer.ts +113 -0
  270. package/src/renderer/code-block.ts +373 -0
  271. package/src/renderer/compositor.ts +283 -0
  272. package/src/renderer/context-inspector.ts +219 -0
  273. package/src/renderer/conversation-layout.ts +67 -0
  274. package/src/renderer/conversation-overlays.ts +140 -0
  275. package/src/renderer/conversation-surface.ts +260 -0
  276. package/src/renderer/diff-view.ts +132 -0
  277. package/src/renderer/diff.ts +130 -0
  278. package/src/renderer/file-picker-overlay.ts +101 -0
  279. package/src/renderer/file-tree.ts +153 -0
  280. package/src/renderer/fullscreen-primitives.ts +130 -0
  281. package/src/renderer/fullscreen-workspace.ts +199 -0
  282. package/src/renderer/git-status.ts +89 -0
  283. package/src/renderer/help-overlay.ts +267 -0
  284. package/src/renderer/history-search-overlay.ts +73 -0
  285. package/src/renderer/layout-engine.ts +97 -0
  286. package/src/renderer/layout.ts +32 -0
  287. package/src/renderer/live-tail-modal.ts +156 -0
  288. package/src/renderer/markdown.ts +635 -0
  289. package/src/renderer/mcp-workspace.ts +237 -0
  290. package/src/renderer/modal-factory.ts +467 -0
  291. package/src/renderer/modal-utils.ts +24 -0
  292. package/src/renderer/model-picker-overlay.ts +473 -0
  293. package/src/renderer/model-workspace.ts +488 -0
  294. package/src/renderer/onboarding/onboarding-wizard.ts +615 -0
  295. package/src/renderer/overlay-box.ts +146 -0
  296. package/src/renderer/overlay-viewport.ts +104 -0
  297. package/src/renderer/panel-composite.ts +158 -0
  298. package/src/renderer/panel-picker-overlay.ts +202 -0
  299. package/src/renderer/panel-tab-bar.ts +69 -0
  300. package/src/renderer/panel-workspace-bar.ts +42 -0
  301. package/src/renderer/process-indicator.ts +96 -0
  302. package/src/renderer/process-modal.ts +656 -0
  303. package/src/renderer/process-summary.ts +67 -0
  304. package/src/renderer/profile-picker-modal.ts +129 -0
  305. package/src/renderer/progress.ts +98 -0
  306. package/src/renderer/qr-renderer.ts +120 -0
  307. package/src/renderer/search-overlay.ts +54 -0
  308. package/src/renderer/selection-modal-overlay.ts +214 -0
  309. package/src/renderer/semantic-diff.ts +369 -0
  310. package/src/renderer/session-picker-modal.ts +127 -0
  311. package/src/renderer/settings-modal-helpers.ts +193 -0
  312. package/src/renderer/settings-modal.ts +537 -0
  313. package/src/renderer/shell-surface.ts +88 -0
  314. package/src/renderer/status-glyphs.ts +21 -0
  315. package/src/renderer/status-token.ts +67 -0
  316. package/src/renderer/surface-layout.ts +101 -0
  317. package/src/renderer/syntax-highlighter.ts +542 -0
  318. package/src/renderer/system-message.ts +83 -0
  319. package/src/renderer/tab-strip.ts +108 -0
  320. package/src/renderer/text-layout.ts +31 -0
  321. package/src/renderer/thinking.ts +17 -0
  322. package/src/renderer/tool-call.ts +234 -0
  323. package/src/renderer/ui-factory.ts +524 -0
  324. package/src/renderer/ui-primitives.ts +96 -0
  325. package/src/runtime/bootstrap-command-context.ts +278 -0
  326. package/src/runtime/bootstrap-command-parts.ts +386 -0
  327. package/src/runtime/bootstrap-core.ts +540 -0
  328. package/src/runtime/bootstrap-hook-bridge.ts +112 -0
  329. package/src/runtime/bootstrap-shell.ts +283 -0
  330. package/src/runtime/bootstrap.ts +575 -0
  331. package/src/runtime/cloudflare-control-plane.ts +349 -0
  332. package/src/runtime/context.ts +142 -0
  333. package/src/runtime/diagnostics/panels/index.ts +24 -0
  334. package/src/runtime/diagnostics/panels/ops.ts +156 -0
  335. package/src/runtime/diagnostics/panels/panel-resources.ts +118 -0
  336. package/src/runtime/diagnostics/panels/policy.ts +177 -0
  337. package/src/runtime/index.ts +662 -0
  338. package/src/runtime/onboarding/apply.ts +642 -0
  339. package/src/runtime/onboarding/derivation.ts +534 -0
  340. package/src/runtime/onboarding/index.ts +7 -0
  341. package/src/runtime/onboarding/markers.ts +148 -0
  342. package/src/runtime/onboarding/snapshot.ts +406 -0
  343. package/src/runtime/onboarding/state.ts +141 -0
  344. package/src/runtime/onboarding/types.ts +404 -0
  345. package/src/runtime/onboarding/verify.ts +171 -0
  346. package/src/runtime/operator-token-cleanup.ts +27 -0
  347. package/src/runtime/perf/panel-contracts.ts +32 -0
  348. package/src/runtime/perf/panel-health-monitor.ts +18 -0
  349. package/src/runtime/sandbox-public-gaps.ts +358 -0
  350. package/src/runtime/services.ts +670 -0
  351. package/src/runtime/store/domains/domain-read-matrix.ts +15 -0
  352. package/src/runtime/store/domains/index.ts +222 -0
  353. package/src/runtime/store/domains/panels.ts +117 -0
  354. package/src/runtime/store/domains/ui-perf.ts +103 -0
  355. package/src/runtime/store/index.ts +305 -0
  356. package/src/runtime/store/selectors/index.ts +359 -0
  357. package/src/runtime/store/state.ts +145 -0
  358. package/src/runtime/surface-feature-flags.ts +65 -0
  359. package/src/runtime/terminal-output-guard.ts +228 -0
  360. package/src/runtime/ui/index.ts +39 -0
  361. package/src/runtime/ui/model-picker/data-provider.ts +182 -0
  362. package/src/runtime/ui/model-picker/health-enrichment.ts +228 -0
  363. package/src/runtime/ui/model-picker/index.ts +59 -0
  364. package/src/runtime/ui/model-picker/types.ts +149 -0
  365. package/src/runtime/ui/provider-health/data-provider.ts +244 -0
  366. package/src/runtime/ui/provider-health/fallback-visualizer.ts +71 -0
  367. package/src/runtime/ui/provider-health/index.ts +46 -0
  368. package/src/runtime/ui/provider-health/types.ts +146 -0
  369. package/src/runtime/ui-events.ts +1 -0
  370. package/src/runtime/ui-read-model-helpers.ts +1 -0
  371. package/src/runtime/ui-read-models-observability-maintenance.ts +1 -0
  372. package/src/runtime/ui-read-models-observability-options.ts +1 -0
  373. package/src/runtime/ui-read-models-observability-remote.ts +1 -0
  374. package/src/runtime/ui-read-models-observability-security.ts +1 -0
  375. package/src/runtime/ui-read-models-observability-system.ts +1 -0
  376. package/src/runtime/ui-read-models-observability.ts +1 -0
  377. package/src/runtime/ui-read-models.ts +61 -0
  378. package/src/runtime/ui-service-queries.ts +1 -0
  379. package/src/runtime/ui-services.ts +190 -0
  380. package/src/scripts/process-messages.ts +42 -0
  381. package/src/shell/blocking-input.ts +98 -0
  382. package/src/shell/service-settings-sync.ts +273 -0
  383. package/src/shell/ui-openers.ts +352 -0
  384. package/src/tools/index.ts +1 -0
  385. package/src/tools/wrfc-agent-guard.ts +49 -0
  386. package/src/types/grid.ts +48 -0
  387. package/src/types/sql-js.d.ts +15 -0
  388. package/src/utils/clipboard.ts +22 -0
  389. package/src/utils/splash-lines.ts +46 -0
  390. package/src/utils/terminal-width.ts +185 -0
  391. package/src/verification/live-verifier.ts +430 -0
  392. package/src/verification/verification-ledger.ts +242 -0
  393. package/src/version.ts +17 -0
  394. package/src/widget/index.ts +2 -0
  395. package/src/widget/types.ts +9 -0
  396. package/src/widget/widget.ts +8 -0
  397. package/src/work-plans/work-plan-store.ts +374 -0
  398. package/tsconfig.json +18 -0
@@ -0,0 +1,35 @@
1
+ ## GoodVibes Agent Operating Policy
2
+
3
+ GoodVibes Agent is a proactive personal operator assistant built on the GoodVibes TUI shell foundation. Its default work happens serially in the main conversation.
4
+
5
+ ## Default Behavior
6
+
7
+ - Work in the main conversation by default.
8
+ - Take safe, non-destructive actions proactively when the user asks for an outcome.
9
+ - Use read-only daemon/operator routes, local Agent memory, local skills, local personas, and Agent knowledge when they help the task.
10
+ - Ask before destructive, externally visible, costly, privacy-sensitive, service-changing, package-installing, or broad filesystem/network actions unless the user explicitly commanded that exact action.
11
+ - Keep normal assistant chat separate from shared build/delegation sessions.
12
+
13
+ ## Background Agents And WRFC
14
+
15
+ - Do not use background agents as a default execution strategy.
16
+ - Do not fan out Engineer, Reviewer, Tester, Verifier, or similar local roots from Agent.
17
+ - WRFC is never the default reasoning path.
18
+ - Request WRFC only when the user explicitly asks to build, implement, fix, patch, or review code, or explicitly says to use WRFC/agent review.
19
+ - For explicit build/fix/review work, delegate one request to GoodVibes TUI through the public shared-session/build-delegation contract with the full original user ask.
20
+ - If no stable public delegation route is available, report the missing route instead of pretending to implement locally.
21
+
22
+ ## Product Boundaries
23
+
24
+ - Agent connects to an already-running GoodVibes daemon. It does not start, restart, install, or own daemon/listener services.
25
+ - GoodVibes TUI owns coding execution, file edits, git/worktree lifecycle, sandbox/QEMU UX, and WRFC owner chains.
26
+ - Agent owns personal operator flow, setup/config surfaces, local memory, local skills, local personas, Agent knowledge, status/approval/automation observability, and explicit delegation receipts.
27
+
28
+ ## Engineering Rules
29
+
30
+ - Use Bun.
31
+ - Author code in TypeScript only.
32
+ - Do not add explicit `any`.
33
+ - Do not add runtime imports from `goodvibes-tui/src/*`.
34
+ - Prefer public `@pellux/goodvibes-sdk` contracts and daemon routes.
35
+ - Keep copied TUI bones deliberate and document promotion candidates for shared packages.
@@ -0,0 +1,48 @@
1
+ ---
2
+ name: reviewer
3
+ description: Serial review of GoodVibes Agent changes against product policy, release gates, and TypeScript quality
4
+ tools: [read, find, analyze]
5
+ ---
6
+
7
+ You review GoodVibes Agent work. Your job is to identify concrete defects, product-boundary violations, and release risks. You verify claims by inspecting files and cite exact paths.
8
+
9
+ ## Review Priorities
10
+
11
+ 1. Agent policy: main-conversation serial behavior by default; no hidden local agent fanout; no default WRFC.
12
+ 2. Product boundary: Agent connects to the external daemon; it does not start, restart, install, or own daemon/listener services.
13
+ 3. Delegation boundary: build/fix/review code work is explicitly delegated to GoodVibes TUI through public contracts.
14
+ 4. TypeScript quality: Bun-first TypeScript only, no explicit `any`, no authored JavaScript variants.
15
+ 5. SDK boundary: public `@pellux/goodvibes-sdk` imports and daemon/operator routes only; no runtime imports from `goodvibes-tui/src/*`.
16
+ 6. Packaging: `goodvibes-agent` bin, Agent package identity, Agent docs, and no copied TUI-only package-facing guidance.
17
+
18
+ ## Review Process
19
+
20
+ 1. Read the completion report or changed-file list.
21
+ 2. Inspect the files that define the behavior under review.
22
+ 3. Check tests and release gates that should cover the change.
23
+ 4. Report findings first, ordered by severity.
24
+ 5. Keep summaries brief and secondary.
25
+
26
+ ## Output Format
27
+
28
+ Use this structure:
29
+
30
+ ```text
31
+ Findings
32
+ - severity: file:line - issue and impact
33
+
34
+ Open Questions
35
+ - question or assumption, if any
36
+
37
+ Validation Notes
38
+ - tests/gates reviewed or missing
39
+ ```
40
+
41
+ If there are no findings, say so clearly and list residual risk or missing validation.
42
+
43
+ ## What You Do Not Do
44
+
45
+ - Do not modify code.
46
+ - Do not spawn other agents.
47
+ - Do not broaden scope beyond the reviewed slice.
48
+ - Do not treat copied coding-TUI behavior as acceptable unless it is blocked, externalized, or explicitly delegated.
@@ -0,0 +1,199 @@
1
+ ---
2
+ name: add-provider
3
+ description: Adds custom LLM providers and models to GoodVibes Agent. Use when the user wants to add a provider, add a model, configure Ollama, Together AI, OpenRouter, Groq, LM Studio, Fireworks, vLLM, or any OpenAI-compatible endpoint.
4
+ version: 1.0.0
5
+ triggers:
6
+ - /add-provider
7
+ - add provider
8
+ - add a provider
9
+ - new provider
10
+ - custom provider
11
+ - add model
12
+ - add a model
13
+ author: goodvibes
14
+ ---
15
+
16
+ # Add Custom Provider
17
+
18
+ Interactively collect provider and model details from the user, then write a JSON config to `~/.goodvibes/agent/providers/{name}.json`.
19
+
20
+ ## Workflow
21
+
22
+ ### Step 1: Check for Existing Provider
23
+
24
+ Before collecting info, check if `~/.goodvibes/agent/providers/` already has JSON files. If the user names a provider that already exists, ask:
25
+ - **Add models** to the existing provider, or
26
+ - **Overwrite** it entirely
27
+
28
+ If adding models, read the existing JSON, append new models, and write back.
29
+
30
+ ### Step 2: Collect Provider Details
31
+
32
+ Ask the user for each field. Apply smart defaults when the provider name matches a known service.
33
+
34
+ #### Required Fields
35
+
36
+ | Field | Description | Validation |
37
+ |-------|-------------|------------|
38
+ | `name` | Internal ID | Lowercase alphanumeric + hyphens only, 1-64 chars |
39
+ | `displayName` | Human-readable name | Non-empty string |
40
+ | `type` | API compatibility | `openai-compat` (recommended) or `anthropic-compat` (not yet supported — use `openai-compat`) |
41
+ | `baseURL` | API endpoint | Must start with `http://` or `https://` |
42
+
43
+ > **Note:** `anthropic-compat` is accepted in the JSON schema for forward compatibility but is not yet functional at runtime. The loader will skip configs with this type and emit a warning. Use `openai-compat` for now — most Anthropic-compatible proxies (e.g., via LiteLLM) expose an OpenAI-compatible endpoint.
44
+
45
+ #### Optional Fields
46
+
47
+ | Field | Description | Default |
48
+ |-------|-------------|---------|
49
+ | `apiKeyEnv` | Environment variable for API key | None |
50
+ | `apiKey` | Explicit API key (not recommended) | None |
51
+ | `defaultHeaders` | Custom HTTP headers sent with every API request (e.g., for proxy authentication or routing) | None |
52
+
53
+ ### Smart Defaults
54
+
55
+ When the user mentions a known provider, pre-fill these values and confirm:
56
+
57
+ ```yaml
58
+ ollama:
59
+ displayName: Ollama
60
+ type: openai-compat
61
+ baseURL: http://localhost:11434/v1
62
+ apiKeyEnv: null
63
+
64
+ together:
65
+ displayName: Together AI
66
+ type: openai-compat
67
+ baseURL: https://api.together.xyz/v1
68
+ apiKeyEnv: TOGETHER_API_KEY
69
+
70
+ openrouter:
71
+ displayName: OpenRouter
72
+ type: openai-compat
73
+ baseURL: https://openrouter.ai/api/v1
74
+ apiKeyEnv: OPENROUTER_API_KEY
75
+
76
+ groq:
77
+ displayName: Groq
78
+ type: openai-compat
79
+ baseURL: https://api.groq.com/openai/v1
80
+ apiKeyEnv: GROQ_API_KEY
81
+
82
+ lm-studio:
83
+ displayName: LM Studio
84
+ type: openai-compat
85
+ baseURL: http://localhost:1234/v1
86
+ apiKeyEnv: null
87
+
88
+ fireworks:
89
+ displayName: Fireworks AI
90
+ type: openai-compat
91
+ baseURL: https://api.fireworks.ai/inference/v1
92
+ apiKeyEnv: FIREWORKS_API_KEY
93
+
94
+ vllm:
95
+ displayName: vLLM
96
+ type: openai-compat
97
+ baseURL: http://localhost:8000/v1
98
+ apiKeyEnv: null
99
+ ```
100
+
101
+ If the name does not match a known provider, ask for all fields individually.
102
+
103
+ ### Step 3: Collect Model Details
104
+
105
+ Collect at least one model. For each model:
106
+
107
+ | Field | Description | Validation |
108
+ |-------|-------------|------------|
109
+ | `id` | Model identifier sent to the API | Non-empty string |
110
+ | `displayName` | Human-readable name | Non-empty string |
111
+ | `description` | Short description | Optional, auto-generate if blank |
112
+ | `contextWindow` | Max tokens in context | Positive integer |
113
+ | `capabilities.toolCalling` | Supports function/tool calling | Boolean, default `true` |
114
+ | `capabilities.codeEditing` | Good at code editing tasks | Boolean, default `true` |
115
+ | `capabilities.reasoning` | Extended reasoning/chain-of-thought | Boolean, default `false` |
116
+ | `capabilities.multimodal` | Supports image input | Boolean, default `false` |
117
+ | `reasoningEffort` | Supported reasoning effort levels | Optional, e.g., `["low", "medium", "high"]` |
118
+
119
+ After each model, ask: "Add another model?" Loop until done.
120
+
121
+ ### Step 4: Preview and Confirm
122
+
123
+ Show the complete JSON to the user and ask for confirmation before writing.
124
+
125
+ Example output:
126
+
127
+ ```json
128
+ {
129
+ "name": "ollama",
130
+ "displayName": "Ollama",
131
+ "type": "openai-compat",
132
+ "baseURL": "http://localhost:11434/v1",
133
+ "models": [
134
+ {
135
+ "id": "llama3.3-70b",
136
+ "displayName": "Llama 3.3 70B",
137
+ "description": "Meta's Llama 3.3 70B parameter model",
138
+ "contextWindow": 131072,
139
+ "capabilities": {
140
+ "toolCalling": true,
141
+ "codeEditing": true,
142
+ "reasoning": true,
143
+ "multimodal": false
144
+ },
145
+ "reasoningEffort": ["low", "medium", "high"]
146
+ }
147
+ ]
148
+ }
149
+ ```
150
+
151
+ ### Step 5: Write the File
152
+
153
+ Write to `~/.goodvibes/agent/providers/{name}.json`. Create the directory if it does not exist.
154
+
155
+ Use `precision_write` with `mode: "fail_if_exists"` for new providers. Use `mode: "overwrite"` when the user chose to overwrite an existing provider or when merging models into an existing file.
156
+
157
+ If the `apiKeyEnv` field is set, include it in the JSON. If the user provided an explicit `apiKey`, include it but warn that storing keys in plain text is not recommended -- suggest using an environment variable instead.
158
+
159
+ If `defaultHeaders` were provided, include them.
160
+
161
+ ### Step 6: Confirm
162
+
163
+ Tell the user:
164
+ - The file was written to `~/.goodvibes/agent/providers/{name}.json`
165
+ - The provider should be available to the Agent runtime after provider reload or next Agent startup
166
+ - If an API key is needed, remind them to set the environment variable
167
+
168
+ ## Validation Rules
169
+
170
+ Before writing, verify:
171
+ 1. `name` matches `/^[a-z0-9]([a-z0-9-]*[a-z0-9])?$/` and is 1-64 characters (no trailing hyphens)
172
+ 2. `baseURL` starts with `http://` or `https://`
173
+ 3. `contextWindow` is a positive integer for every model
174
+ 4. At least one model is defined
175
+ 5. Every model has a non-empty `id` and `displayName`
176
+
177
+ If validation fails, tell the user which field is invalid and ask for correction.
178
+
179
+ ## JSON Schema Reference
180
+
181
+ The provider JSON maps to the codebase types:
182
+
183
+ - Provider registration uses `OpenAICompatProvider` for `openai-compat` type. The `anthropic-compat` type is parsed and accepted in the JSON but is **not yet supported at runtime** — the loader skips it with a warning. Recommend `openai-compat` for all custom providers.
184
+ - `OpenAICompatOptions`: `{ name, baseURL, apiKey, defaultModel, models }`
185
+ - Model entries map to `ModelDefinition`: `{ id, provider, displayName, description, contextWindow, capabilities, reasoningEffort?, selectable }`
186
+ - `reasoningEffort?: string[]` — optional array of supported effort levels, e.g., `["low", "medium", "high"]`
187
+ - The `selectable` field defaults to `true` for custom models
188
+ - The `provider` field in `ModelDefinition` is auto-set to the provider `name`
189
+
190
+ ## Conversational Style
191
+
192
+ Be natural and helpful. Guide users step-by-step but do not be overly verbose. If the user provides multiple details at once (e.g., "add ollama with llama3.3-70b"), extract what you can and only ask for missing fields.
193
+
194
+ ## Edge Cases
195
+
196
+ - **Unknown context window**: Suggest 4096 as a safe default, note the user can update later
197
+ - **No API key needed**: Omit `apiKeyEnv` and `apiKey` from the JSON entirely
198
+ - **User provides a full JSON blob**: Validate it against the schema and write directly
199
+ - **Multiple providers in one session**: After completing one, ask if they want to add another
package/CHANGELOG.md ADDED
@@ -0,0 +1,25 @@
1
+ # Changelog
2
+
3
+ All notable changes to GoodVibes Agent will be recorded here.
4
+
5
+ ## 0.1.0 - 2026-05-28
6
+
7
+ - Published the first public alpha package for `@pellux/goodvibes-agent`.
8
+ - Kept the near-fork GoodVibes TUI shell, renderer, input, fullscreen workspace, command registry, and release foundation.
9
+ - Preserved Agent product policy: serial/proactive main conversation by default, no local Agent-owned WRFC/spawn fanout, and explicit GoodVibes TUI delegation for build/fix/review work.
10
+ - Moved Agent-owned runtime state to `.goodvibes/agent` surface roots.
11
+ - Updated packaged Agent guidance, reviewer persona, and provider skill to avoid copied TUI WRFC/multi-agent defaults.
12
+ - Kept daemon lifecycle external: Agent connects to an already-running GoodVibes daemon and blocks daemon/service ownership commands.
13
+ - Pinned `@pellux/goodvibes-sdk` to `0.33.35`.
14
+
15
+ ## 0.0.0 - Private Baseline
16
+
17
+ - Copied the GoodVibes terminal foundation as a near-fork starting point for the Agent product.
18
+ - Renamed package identity to `@pellux/goodvibes-agent` and exposed one executable, `goodvibes-agent`.
19
+ - Pinned `@pellux/goodvibes-sdk` to `0.33.35`.
20
+ - Removed packaged daemon binaries and blocked Agent-owned daemon/service lifecycle commands.
21
+ - Limited package-facing docs to Agent install, external-daemon deployment, and release guidance.
22
+ - Replaced copied coding-first orchestration policy with Agent serial/proactive policy and explicit GoodVibes TUI build delegation.
23
+ - Added the first Agent operator workspace on the copied fullscreen workspace foundation, exposed through `/agent`, `/home`, and `/operator`.
24
+
25
+ The private baseline intentionally kept broad TUI foundation code so the Agent could inherit the renderer, input, fullscreen workspace, command registry, and release bones before Agent-specific policy was applied.
package/README.md ADDED
@@ -0,0 +1,74 @@
1
+ # GoodVibes Agent
2
+
3
+ [![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](https://opensource.org/licenses/MIT)
4
+ [![Status: alpha](https://img.shields.io/badge/status-alpha-orange.svg)](#install)
5
+
6
+ GoodVibes Agent is the personal operator assistant built on the GoodVibes terminal UI foundation. This repository is intentionally in a near-fork baseline phase: the shell, renderer, input, fullscreen workspace, command, and release bones are copied from the terminal product first, then the coding-specific behavior is removed or reshaped deliberately.
7
+
8
+ The Agent product connects to an already-running GoodVibes daemon. It does not install, start, stop, restart, or own the daemon, HTTP listener, web surface, or service lifecycle.
9
+
10
+ ## Install
11
+
12
+ Install the public alpha package with Bun:
13
+
14
+ ```sh
15
+ bun add -g @pellux/goodvibes-agent
16
+ goodvibes-agent --help
17
+ goodvibes-agent status
18
+ ```
19
+
20
+ If Bun reports untrusted lifecycle dependencies, trust only the package and dependencies required by this package:
21
+
22
+ ```sh
23
+ bun pm trust -g @pellux/goodvibes-agent @pellux/goodvibes-sdk core-js tree-sitter-css tree-sitter-javascript tree-sitter-json tree-sitter-python tree-sitter-typescript
24
+ ```
25
+
26
+ ## Source Usage
27
+
28
+ ```sh
29
+ git clone https://github.com/mgd34msu/goodvibes-agent.git
30
+ cd goodvibes-agent
31
+ bun install
32
+ bun run dev
33
+ ```
34
+
35
+ Useful checks:
36
+
37
+ ```sh
38
+ bunx tsc --noEmit
39
+ bun run build
40
+ bun run package:install-check
41
+ bun run publish:check
42
+ ```
43
+
44
+ Inside the Agent TUI, use `/agent`, `/home`, or `/operator` to open the operator workspace. It is the Agent-first fullscreen surface for setup, status, knowledge, local memory/skills, work-plan/approval review, automation observability, and explicit build delegation to GoodVibes TUI.
45
+
46
+ ## Daemon Prerequisite
47
+
48
+ Start or restart the daemon from GoodVibes TUI or the daemon host before launching Agent. Agent status and companion/knowledge routes connect to that external daemon, normally on `http://127.0.0.1:3421`.
49
+
50
+ Agent intentionally blocks daemon lifecycle commands:
51
+
52
+ ```sh
53
+ goodvibes-agent serve
54
+ goodvibes-agent service start
55
+ goodvibes-agent surfaces enable web
56
+ ```
57
+
58
+ Those commands should return explicit external-daemon guidance instead of mutating local service posture.
59
+
60
+ ## Product Boundary
61
+
62
+ GoodVibes Agent owns the operator assistant surface: serial assistant flow, proactive safe actions, local memory/skills/personas until stable shared registries exist, Agent knowledge routes, companion chat, approvals/automation observability, and explicit build delegation.
63
+
64
+ GoodVibes TUI owns coding execution: file edits, git/worktree workflows, coding panels, sandbox/QEMU UX, and WRFC execution. Agent may delegate explicit build/fix/review work to TUI through public daemon/session contracts; normal assistant chat must not use shared coding sessions.
65
+
66
+ ## Package Docs
67
+
68
+ Package-facing docs are intentionally narrow during the near-fork baseline:
69
+
70
+ - [Getting Started](docs/getting-started.md)
71
+ - [Deployment And Services](docs/deployment-and-services.md)
72
+ - [Release And Publishing](docs/release-and-publishing.md)
73
+
74
+ Broader TUI-derived reference docs may exist in the source tree while the near-fork foundation is being completed, but the package-facing Agent documentation is limited to the docs listed above.
@@ -0,0 +1,2 @@
1
+ #!/usr/bin/env bun
2
+ import '../src/main.ts';
package/docs/README.md ADDED
@@ -0,0 +1,23 @@
1
+ # GoodVibes Agent Docs
2
+
3
+ These are the package-facing docs for GoodVibes Agent.
4
+
5
+ GoodVibes Agent is a near-fork of the GoodVibes terminal foundation with a different product brain. It uses the copied terminal shell, renderer, input, fullscreen workspace, command, and release bones while the Agent-specific assistant behavior is being rebuilt.
6
+
7
+ Current package docs:
8
+
9
+ - [Getting Started](getting-started.md)
10
+ - [Deployment And Services](deployment-and-services.md)
11
+ - [Release And Publishing](release-and-publishing.md)
12
+
13
+ Important baseline constraints:
14
+
15
+ - Agent installs one executable: `goodvibes-agent`.
16
+ - Agent uses Bun and TypeScript-authored source.
17
+ - Agent depends on `@pellux/goodvibes-sdk@0.33.35`.
18
+ - Agent connects to an externally managed daemon.
19
+ - Agent does not start, stop, restart, install, uninstall, or own daemon/listener/web/service lifecycle.
20
+ - Normal assistant chat is not coding-session delegation.
21
+ - Build/fix/review delegation to GoodVibes TUI must be explicit; WRFC is not the default Agent behavior.
22
+
23
+ TUI-derived docs that remain outside this package-facing set are reference material during the near-fork foundation work. The Agent docs above define the supported alpha behavior.
@@ -0,0 +1,57 @@
1
+ # Deployment And Services
2
+
3
+ GoodVibes Agent is a client/operator surface. It does not own daemon or listener deployment.
4
+
5
+ ## Service Ownership
6
+
7
+ Agent must not:
8
+
9
+ - start an embedded daemon
10
+ - start an embedded HTTP listener
11
+ - install or uninstall OS services
12
+ - start, stop, or restart daemon services
13
+ - enable web, listener, control-plane, or channel surface posture
14
+
15
+ Those operations belong to GoodVibes TUI or the daemon host.
16
+
17
+ ## Agent Runtime
18
+
19
+ The installed package exposes one executable:
20
+
21
+ ```sh
22
+ goodvibes-agent
23
+ ```
24
+
25
+ The executable is backed by TypeScript-authored source with a Bun shebang. Package install smoke must verify:
26
+
27
+ - `goodvibes-agent --help`
28
+ - `goodvibes-agent --version`
29
+ - `goodvibes-agent status --json`
30
+ - `goodvibes-agent smoke --json` when that command is available in the baseline being tested
31
+
32
+ ## External Daemon Connection
33
+
34
+ Agent reads configuration and tokens, then connects to an already-running daemon. The default local control-plane URL is normally:
35
+
36
+ ```text
37
+ http://127.0.0.1:3421
38
+ ```
39
+
40
+ If the daemon is unavailable, unauthenticated, or on an incompatible SDK version, Agent commands should report actionable diagnostics without printing token values.
41
+
42
+ ## Surface Commands
43
+
44
+ `goodvibes-agent surfaces`, `surfaces check`, and `surfaces show <surfaceId>` are read-only diagnostics.
45
+
46
+ `surfaces enable` and `surfaces disable` are intentionally blocked in Agent because they can mutate daemon/listener/web/channel posture.
47
+
48
+ ## Release Rule
49
+
50
+ Only publish Agent releases that preserve the Agent product policy:
51
+
52
+ - serial/proactive assistant by default
53
+ - local memory/skills/personas until shared registries are stable
54
+ - Agent knowledge routes only for Agent wiki calls
55
+ - companion chat for normal assistant chat
56
+ - explicit delegation to GoodVibes TUI for build/fix/review work
57
+ - WRFC only when explicitly requested for delegated build/fix/review work
@@ -0,0 +1,53 @@
1
+ # Getting Started
2
+
3
+ GoodVibes Agent `0.1.0` is the first public alpha of the personal operator assistant built on the GoodVibes TUI foundation.
4
+
5
+ ## Requirements
6
+
7
+ - Bun `1.3.10` or newer
8
+ - An already-running GoodVibes daemon compatible with `@pellux/goodvibes-sdk@0.33.35`
9
+ - A daemon token/config path accepted by the external daemon
10
+
11
+ Agent does not launch the daemon for you.
12
+
13
+ ## Install From Package
14
+
15
+ ```sh
16
+ bun add -g @pellux/goodvibes-agent
17
+ goodvibes-agent --help
18
+ goodvibes-agent status
19
+ ```
20
+
21
+ If Bun requires lifecycle trust:
22
+
23
+ ```sh
24
+ bun pm trust -g @pellux/goodvibes-agent @pellux/goodvibes-sdk core-js tree-sitter-css tree-sitter-javascript tree-sitter-json tree-sitter-python tree-sitter-typescript
25
+ ```
26
+
27
+ ## Run From Source
28
+
29
+ ```sh
30
+ git clone https://github.com/mgd34msu/goodvibes-agent.git
31
+ cd goodvibes-agent
32
+ bun install
33
+ bun run dev
34
+ ```
35
+
36
+ `bun run dev` starts the Agent TUI. The same entrypoint backs the installed `goodvibes-agent` command.
37
+
38
+ Once the TUI opens, run `/agent`, `/home`, or `/operator` to open the Agent operator workspace. That fullscreen workspace is the current front door for setup/config, knowledge status, local memory and skills, read-only work/approval/automation views, and explicit GoodVibes TUI build delegation.
39
+
40
+ ## External Daemon
41
+
42
+ Start the daemon from GoodVibes TUI or the daemon host before using daemon-backed Agent features. Agent expects the daemon to expose the public operator/Agent routes, including:
43
+
44
+ - `/status`
45
+ - `/api/goodvibes-agent/knowledge/status`
46
+ - `/api/goodvibes-agent/knowledge/ask`
47
+ - `/api/goodvibes-agent/knowledge/search`
48
+
49
+ Agent lifecycle commands that would start or mutate daemon posture are blocked intentionally. Use `goodvibes-agent status`, `goodvibes-agent doctor`, and read-only surface checks for diagnostics.
50
+
51
+ ## Current Baseline Notes
52
+
53
+ This repository keeps broad TUI-derived foundation code intentionally so Agent can use the mature terminal shell, renderer, input, fullscreen workspace, command registry, and release bones. The active Agent policy is serial/proactive by default, blocks local Agent-owned WRFC/spawn fanout, and delegates explicit build/fix/review work to GoodVibes TUI instead of turning the Agent into a coding TUI.
@@ -0,0 +1,46 @@
1
+ # Release And Publishing
2
+
3
+ GoodVibes Agent `0.1.0` is the first public alpha release.
4
+
5
+ ## Package Identity
6
+
7
+ - npm package: `@pellux/goodvibes-agent`
8
+ - executable: `goodvibes-agent`
9
+ - SDK dependency: exact pin to `@pellux/goodvibes-sdk@0.33.35`
10
+ - runtime: Bun
11
+ - source language: TypeScript
12
+ - daemon ownership: external only
13
+
14
+ ## Required Gates
15
+
16
+ Before any release candidate:
17
+
18
+ ```sh
19
+ bun install
20
+ bunx tsc --noEmit
21
+ bun run build
22
+ bun run package:install-check
23
+ bun run publish:check
24
+ npm pack --dry-run
25
+ git diff --check
26
+ ```
27
+
28
+ Also run the package install smoke from a packed artifact. It must prove:
29
+
30
+ - the installed command is on `PATH`
31
+ - the bin target is `bin/goodvibes-agent.ts`
32
+ - the Bun shebang survives pack/install
33
+ - `goodvibes-agent --help` works
34
+ - `goodvibes-agent --version` reports the package version
35
+ - daemon-backed commands fail clearly when the external daemon is unavailable or unauthenticated
36
+ - no token value is printed
37
+
38
+ ## Do Not Ship
39
+
40
+ Do not publish if package-facing docs or install commands refer to another package name, another executable, or Agent-owned daemon lifecycle.
41
+
42
+ Do not ship daemon binaries from this package. If Agent later gets compiled artifacts, they must use Agent artifact names and remain separate from daemon ownership.
43
+
44
+ ## Near-Fork Baseline Rule
45
+
46
+ The public alpha can include copied TUI foundation code, but package-facing behavior must follow Agent product policy. Follow-up work should continue pruning or reshaping copied coding-first surfaces while preserving the TUI-derived renderer, input, fullscreen workspace, command registry, and release bones.