@pellux/goodvibes-agent 0.1.116 → 1.0.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 (285) hide show
  1. package/CHANGELOG.md +48 -661
  2. package/README.md +64 -57
  3. package/bin/goodvibes-agent.ts +16 -2
  4. package/dist/package/main.js +199180 -192185
  5. package/docs/README.md +15 -8
  6. package/docs/channels-remote-and-api.md +50 -0
  7. package/docs/connected-host.md +59 -0
  8. package/docs/getting-started.md +61 -50
  9. package/docs/knowledge-artifacts-and-multimodal.md +91 -0
  10. package/docs/project-planning.md +79 -0
  11. package/docs/providers-and-routing.md +46 -0
  12. package/docs/release-and-publishing.md +48 -11
  13. package/docs/tools-and-commands.md +123 -0
  14. package/docs/voice-and-live-tts.md +51 -0
  15. package/package.json +3 -6
  16. package/src/agent/behavior-discovery-summary.ts +1 -3
  17. package/src/agent/channel-delivery.ts +201 -0
  18. package/src/agent/media-generation.ts +159 -0
  19. package/src/agent/memory-prompt.ts +0 -1
  20. package/src/agent/note-registry.ts +329 -0
  21. package/src/agent/operator-actions.ts +343 -0
  22. package/src/agent/persona-discovery.ts +1 -3
  23. package/src/agent/persona-registry.ts +19 -16
  24. package/src/agent/record-labels.ts +107 -0
  25. package/src/agent/reminder-schedule-format.ts +33 -24
  26. package/src/agent/reminder-schedule.ts +27 -26
  27. package/src/agent/routine-registry.ts +54 -14
  28. package/src/agent/routine-schedule-args.ts +2 -1
  29. package/src/agent/routine-schedule-format.ts +77 -53
  30. package/src/agent/routine-schedule-promotion.ts +35 -33
  31. package/src/agent/routine-schedule-receipts.ts +29 -27
  32. package/src/agent/runtime-profile-starters.ts +5 -5
  33. package/src/agent/runtime-profile.ts +91 -12
  34. package/src/agent/skill-registry.ts +210 -32
  35. package/src/cli/agent-knowledge-args.ts +5 -1
  36. package/src/cli/agent-knowledge-command.ts +40 -34
  37. package/src/cli/agent-knowledge-format.ts +80 -67
  38. package/src/cli/agent-knowledge-methods.ts +1 -1
  39. package/src/cli/agent-knowledge-runtime.ts +32 -26
  40. package/src/cli/bundle-command.ts +14 -9
  41. package/src/cli/config-overrides.ts +37 -36
  42. package/src/cli/entrypoint.ts +16 -7
  43. package/src/cli/external-runtime.ts +10 -4
  44. package/src/cli/help.ts +54 -29
  45. package/src/cli/local-library-command.ts +203 -83
  46. package/src/cli/management-commands.ts +105 -68
  47. package/src/cli/management.ts +55 -74
  48. package/src/cli/memory-command.ts +66 -32
  49. package/src/cli/parser.ts +37 -3
  50. package/src/cli/profiles-command.ts +166 -31
  51. package/src/cli/provider-auth-routes.ts +2 -1
  52. package/src/cli/routines-command.ts +176 -40
  53. package/src/cli/service-posture.ts +16 -16
  54. package/src/cli/status.ts +56 -135
  55. package/src/core/conversation-message-snapshot.ts +131 -0
  56. package/src/input/agent-workspace-access-command-editor-submission.ts +149 -0
  57. package/src/input/agent-workspace-access-command-editors.ts +170 -0
  58. package/src/input/agent-workspace-activation.ts +35 -8
  59. package/src/input/agent-workspace-basic-command-editor-submission.ts +351 -94
  60. package/src/input/agent-workspace-basic-command-editors.ts +502 -9
  61. package/src/input/agent-workspace-categories.ts +423 -51
  62. package/src/input/agent-workspace-channel-command-editor-submission.ts +83 -0
  63. package/src/input/agent-workspace-channel-command-editors.ts +65 -0
  64. package/src/input/agent-workspace-channels.ts +35 -2
  65. package/src/input/agent-workspace-command-editor.ts +41 -3
  66. package/src/input/agent-workspace-config-reader.ts +16 -0
  67. package/src/input/agent-workspace-delegation-editor-submission.ts +55 -0
  68. package/src/input/agent-workspace-editors.ts +166 -1
  69. package/src/input/agent-workspace-knowledge-command-editor-submission.ts +132 -0
  70. package/src/input/agent-workspace-knowledge-command-editors.ts +110 -0
  71. package/src/input/agent-workspace-knowledge-query-editor.ts +1 -1
  72. package/src/input/agent-workspace-learned-behavior.ts +67 -0
  73. package/src/input/agent-workspace-library-command-editor-submission.ts +50 -0
  74. package/src/input/agent-workspace-library-command-editors.ts +35 -0
  75. package/src/input/agent-workspace-local-operations.ts +218 -0
  76. package/src/input/agent-workspace-local-selection.ts +75 -0
  77. package/src/input/agent-workspace-mcp-command-editor-submission.ts +95 -0
  78. package/src/input/agent-workspace-media-command-editor-submission.ts +62 -0
  79. package/src/input/agent-workspace-media-command-editors.ts +27 -0
  80. package/src/input/agent-workspace-memory-command-editor-submission.ts +232 -0
  81. package/src/input/agent-workspace-memory-command-editors.ts +180 -0
  82. package/src/input/agent-workspace-memory-editor.ts +2 -2
  83. package/src/input/agent-workspace-navigation.ts +81 -0
  84. package/src/input/agent-workspace-notify-editor-submission.ts +121 -0
  85. package/src/input/agent-workspace-operations-command-editor-submission.ts +208 -0
  86. package/src/input/agent-workspace-operations-command-editors.ts +196 -0
  87. package/src/input/agent-workspace-panel-route.ts +43 -0
  88. package/src/input/agent-workspace-provider-command-editor-submission.ts +155 -0
  89. package/src/input/agent-workspace-provider-command-editors.ts +93 -0
  90. package/src/input/agent-workspace-reminder-schedule-editor.ts +1 -1
  91. package/src/input/agent-workspace-requirements.ts +11 -0
  92. package/src/input/agent-workspace-routine-schedule-editor.ts +2 -2
  93. package/src/input/agent-workspace-search.ts +169 -0
  94. package/src/input/agent-workspace-secret-editor-submission.ts +153 -0
  95. package/src/input/agent-workspace-session-command-editor-submission.ts +199 -0
  96. package/src/input/agent-workspace-session-command-editors.ts +249 -0
  97. package/src/input/agent-workspace-setup.ts +37 -16
  98. package/src/input/agent-workspace-skill-bundle-command-editor-submission.ts +101 -0
  99. package/src/input/agent-workspace-skill-bundle-command-editors.ts +110 -0
  100. package/src/input/agent-workspace-snapshot.ts +162 -21
  101. package/src/input/agent-workspace-task-command-editor-submission.ts +61 -0
  102. package/src/input/agent-workspace-task-command-editors.ts +47 -0
  103. package/src/input/agent-workspace-token.ts +18 -2
  104. package/src/input/agent-workspace-types.ts +212 -4
  105. package/src/input/agent-workspace-voice-media.ts +4 -7
  106. package/src/input/agent-workspace-web-research-editor.ts +104 -0
  107. package/src/input/agent-workspace-workplan-editor-submission.ts +153 -0
  108. package/src/input/agent-workspace.ts +178 -240
  109. package/src/input/command-registry.ts +5 -2
  110. package/src/input/commands/agent-runtime-profile-runtime.ts +126 -37
  111. package/src/input/commands/agent-skills-runtime.ts +149 -72
  112. package/src/input/commands/agent-workspace-runtime.ts +23 -6
  113. package/src/input/commands/brief-runtime.ts +55 -25
  114. package/src/input/commands/channels-runtime.ts +147 -33
  115. package/src/input/commands/compat-runtime.ts +32 -0
  116. package/src/input/commands/delegation-runtime.ts +29 -23
  117. package/src/input/commands/experience-runtime.ts +6 -4
  118. package/src/input/commands/guidance-runtime.ts +4 -4
  119. package/src/input/commands/health-runtime.ts +149 -126
  120. package/src/input/commands/knowledge.ts +82 -60
  121. package/src/input/commands/local-provider-runtime.ts +43 -21
  122. package/src/input/commands/local-runtime.ts +138 -16
  123. package/src/input/commands/local-setup-review.ts +10 -20
  124. package/src/input/commands/mcp-runtime.ts +63 -46
  125. package/src/input/commands/notify-runtime.ts +38 -9
  126. package/src/input/commands/operator-actions-runtime.ts +138 -0
  127. package/src/input/commands/operator-runtime.ts +6 -76
  128. package/src/input/commands/personas-runtime.ts +46 -31
  129. package/src/input/commands/planning-runtime.ts +1 -1
  130. package/src/input/commands/platform-access-runtime.ts +35 -98
  131. package/src/input/commands/product-runtime.ts +2 -2
  132. package/src/input/commands/provider-accounts-runtime.ts +60 -39
  133. package/src/input/commands/qrcode-runtime.ts +50 -9
  134. package/src/input/commands/recall-bundle.ts +11 -11
  135. package/src/input/commands/recall-capture.ts +13 -11
  136. package/src/input/commands/recall-query.ts +29 -21
  137. package/src/input/commands/recall-review.ts +2 -1
  138. package/src/input/commands/routines-runtime.ts +99 -45
  139. package/src/input/commands/runtime-services.ts +1 -14
  140. package/src/input/commands/schedule-runtime.ts +33 -20
  141. package/src/input/commands/security-runtime.ts +6 -11
  142. package/src/input/commands/session-content.ts +80 -78
  143. package/src/input/commands/session-workflow.ts +134 -104
  144. package/src/input/commands/session.ts +3 -174
  145. package/src/input/commands/shell-core.ts +38 -17
  146. package/src/input/commands/subscription-runtime.ts +54 -185
  147. package/src/input/commands/support-bundle-runtime.ts +53 -0
  148. package/src/input/commands/tasks-runtime.ts +21 -21
  149. package/src/input/commands/work-plan-runtime.ts +33 -8
  150. package/src/input/commands.ts +6 -2
  151. package/src/input/feed-context-factory.ts +2 -2
  152. package/src/input/file-picker.ts +3 -2
  153. package/src/input/handler-command-route.ts +4 -7
  154. package/src/input/handler-content-actions.ts +89 -26
  155. package/src/input/handler-feed-routes.ts +19 -12
  156. package/src/input/handler-feed.ts +6 -5
  157. package/src/input/handler-interactions.ts +9 -36
  158. package/src/input/handler-modal-stack.ts +3 -3
  159. package/src/input/handler-onboarding.ts +52 -91
  160. package/src/input/handler-shortcuts.ts +16 -7
  161. package/src/input/handler.ts +50 -23
  162. package/src/input/input-history.ts +5 -6
  163. package/src/input/keybindings.ts +27 -16
  164. package/src/input/mcp-workspace.ts +90 -26
  165. package/src/input/onboarding/handler-onboarding-routes.ts +3 -1
  166. package/src/input/onboarding/onboarding-wizard-apply.ts +62 -0
  167. package/src/input/onboarding/onboarding-wizard-constants.ts +1 -0
  168. package/src/input/onboarding/onboarding-wizard-helpers.ts +1 -1
  169. package/src/input/onboarding/onboarding-wizard-operator-steps.ts +223 -55
  170. package/src/input/onboarding/onboarding-wizard-steps.ts +59 -35
  171. package/src/input/onboarding/onboarding-wizard-types.ts +4 -1
  172. package/src/input/onboarding/onboarding-wizard.ts +87 -2
  173. package/src/input/profile-picker-modal.ts +31 -12
  174. package/src/input/session-picker-modal.ts +21 -4
  175. package/src/input/settings-modal-agent-policy.ts +6 -6
  176. package/src/input/settings-modal-behavior.ts +0 -3
  177. package/src/input/settings-modal-subscriptions.ts +3 -3
  178. package/src/input/settings-modal-types.ts +2 -13
  179. package/src/input/settings-modal.ts +20 -66
  180. package/src/input/submission-intent.ts +0 -1
  181. package/src/input/submission-router.ts +3 -3
  182. package/src/main.ts +18 -10
  183. package/src/panels/approval-panel.ts +8 -8
  184. package/src/panels/automation-control-panel.ts +4 -4
  185. package/src/panels/base-panel.ts +1 -1
  186. package/src/panels/builtin/agent.ts +1 -1
  187. package/src/panels/builtin/operations.ts +3 -12
  188. package/src/panels/builtin/session.ts +32 -24
  189. package/src/panels/builtin/shared.ts +7 -7
  190. package/src/panels/cost-tracker-panel.ts +1 -1
  191. package/src/panels/docs-panel.ts +5 -3
  192. package/src/panels/index.ts +0 -1
  193. package/src/panels/knowledge-panel.ts +6 -5
  194. package/src/panels/memory-panel.ts +7 -6
  195. package/src/panels/panel-list-panel.ts +36 -80
  196. package/src/panels/project-planning-panel.ts +19 -12
  197. package/src/panels/provider-account-snapshot.ts +51 -25
  198. package/src/panels/provider-accounts-panel.ts +33 -18
  199. package/src/panels/provider-health-domains.ts +48 -7
  200. package/src/panels/provider-health-panel.ts +5 -4
  201. package/src/panels/qr-panel.ts +44 -20
  202. package/src/panels/schedule-panel.ts +9 -17
  203. package/src/panels/security-panel.ts +8 -8
  204. package/src/panels/session-browser-panel.ts +10 -10
  205. package/src/panels/subscription-panel.ts +6 -6
  206. package/src/panels/system-messages-panel.ts +3 -3
  207. package/src/panels/tasks-panel.ts +21 -14
  208. package/src/panels/tool-inspector-panel.ts +19 -12
  209. package/src/panels/work-plan-panel.ts +5 -5
  210. package/src/planning/project-planning-coordinator.ts +3 -3
  211. package/src/provider-auth-route-display.ts +9 -0
  212. package/src/renderer/agent-workspace-style.ts +34 -0
  213. package/src/renderer/agent-workspace.ts +254 -57
  214. package/src/renderer/autocomplete-overlay.ts +25 -6
  215. package/src/renderer/block-actions.ts +1 -3
  216. package/src/renderer/bookmark-modal.ts +19 -4
  217. package/src/renderer/buffer.ts +4 -2
  218. package/src/renderer/context-inspector.ts +50 -13
  219. package/src/renderer/diff.ts +1 -1
  220. package/src/renderer/file-picker-overlay.ts +19 -6
  221. package/src/renderer/help-overlay.ts +112 -34
  222. package/src/renderer/history-search-overlay.ts +19 -4
  223. package/src/renderer/live-tail-modal.ts +27 -5
  224. package/src/renderer/mcp-workspace.ts +176 -43
  225. package/src/renderer/model-picker-overlay.ts +58 -3
  226. package/src/renderer/model-workspace.ts +104 -22
  227. package/src/renderer/onboarding/onboarding-wizard.ts +20 -4
  228. package/src/renderer/process-modal.ts +27 -6
  229. package/src/renderer/profile-picker-modal.ts +21 -5
  230. package/src/renderer/search-overlay.ts +25 -5
  231. package/src/renderer/selection-modal-overlay.ts +46 -14
  232. package/src/renderer/session-picker-modal.ts +18 -1
  233. package/src/renderer/settings-modal-helpers.ts +2 -40
  234. package/src/renderer/settings-modal.ts +88 -55
  235. package/src/renderer/system-message.ts +1 -1
  236. package/src/renderer/tool-call.ts +20 -11
  237. package/src/runtime/agent-runtime-events.ts +129 -0
  238. package/src/runtime/bootstrap-command-context.ts +7 -1
  239. package/src/runtime/bootstrap-command-parts.ts +11 -8
  240. package/src/runtime/bootstrap-core.ts +23 -65
  241. package/src/runtime/bootstrap-hook-bridge.ts +7 -18
  242. package/src/runtime/bootstrap-shell.ts +46 -8
  243. package/src/runtime/bootstrap.ts +36 -46
  244. package/src/runtime/connected-host-auth.ts +47 -0
  245. package/src/runtime/diagnostics/panels/index.ts +2 -2
  246. package/src/runtime/diagnostics/panels/panel-resources.ts +1 -1
  247. package/src/runtime/diagnostics/panels/policy.ts +7 -7
  248. package/src/runtime/index.ts +2 -5
  249. package/src/runtime/onboarding/apply-file-helpers.ts +66 -0
  250. package/src/runtime/onboarding/apply.ts +288 -74
  251. package/src/runtime/onboarding/derivation.ts +10 -13
  252. package/src/runtime/onboarding/snapshot.ts +2 -17
  253. package/src/runtime/onboarding/types.ts +34 -20
  254. package/src/runtime/onboarding/verify.ts +105 -4
  255. package/src/runtime/operator-token-cleanup.ts +3 -3
  256. package/src/runtime/services.ts +95 -11
  257. package/src/runtime/store/selectors/index.ts +3 -3
  258. package/src/runtime/store/state.ts +1 -4
  259. package/src/runtime/surface-feature-flags.ts +41 -6
  260. package/src/runtime/ui-read-models.ts +3 -4
  261. package/src/runtime/ui-services.ts +6 -6
  262. package/src/shell/blocking-input.ts +2 -1
  263. package/src/shell/service-settings-sync.ts +7 -7
  264. package/src/shell/ui-openers.ts +17 -38
  265. package/src/tools/agent-analysis-registry-policy.ts +0 -1
  266. package/src/tools/agent-channel-send-tool.ts +133 -0
  267. package/src/tools/agent-context-policy.ts +1 -1
  268. package/src/tools/agent-knowledge-ingest-tool.ts +405 -0
  269. package/src/tools/agent-knowledge-tool.ts +170 -0
  270. package/src/tools/agent-local-registry-tool.ts +279 -73
  271. package/src/tools/agent-media-generate-tool.ts +133 -0
  272. package/src/tools/agent-notify-tool.ts +143 -0
  273. package/src/tools/agent-operator-action-tool.ts +137 -0
  274. package/src/tools/agent-operator-briefing-tool.ts +217 -0
  275. package/src/tools/agent-reminder-schedule-tool.ts +237 -0
  276. package/src/tools/agent-tool-policy-guard.ts +13 -15
  277. package/src/tools/agent-work-plan-tool.ts +256 -0
  278. package/src/version.ts +1 -1
  279. package/docs/connected-services.md +0 -51
  280. package/src/cli/package-verification.ts +0 -274
  281. package/src/input/commands/policy-dispatch.ts +0 -339
  282. package/src/input/commands/policy.ts +0 -17
  283. package/src/panels/panel-picker.ts +0 -105
  284. package/src/panels/policy-panel.ts +0 -308
  285. package/src/renderer/panel-picker-overlay.ts +0 -202
package/docs/README.md CHANGED
@@ -5,22 +5,29 @@ These are the package-facing docs for GoodVibes Agent, the personal operator ass
5
5
  Current package docs:
6
6
 
7
7
  - [Getting Started](getting-started.md)
8
- - [Connected Services](connected-services.md)
8
+ - [Connected Host](connected-host.md)
9
+ - [Knowledge, Artifacts, and Multimodal](knowledge-artifacts-and-multimodal.md)
10
+ - [Tools and Commands](tools-and-commands.md)
11
+ - [Channels, Remote Access, and API](channels-remote-and-api.md)
12
+ - [Providers and Routing](providers-and-routing.md)
13
+ - [Voice and Live TTS](voice-and-live-tts.md)
14
+ - [Project Planning](project-planning.md)
9
15
  - [Release And Publishing](release-and-publishing.md)
10
16
 
11
17
  Important baseline constraints:
12
18
 
13
19
  - Agent installs one executable: `goodvibes-agent`.
14
- - Agent uses Bun and TypeScript-authored source.
20
+ - Agent uses Bun `1.3.10` or newer and TypeScript-authored source.
15
21
  - Agent depends on `@pellux/goodvibes-sdk@0.33.35`.
16
- - Agent connects to GoodVibes services owned outside this product.
17
- - Agent does not start, stop, restart, install, uninstall, or own those connected GoodVibes services.
18
- - Agent Knowledge/Wiki uses only `/api/goodvibes-agent/knowledge/*`; there is no default Knowledge/Wiki or non-Agent product fallback.
22
+ - Agent connects to a GoodVibes host owned outside this product.
23
+ - Agent does not start, stop, restart, install, uninstall, or own the connected GoodVibes host.
24
+ - Agent Knowledge uses only `/api/goodvibes-agent/knowledge/*`; there is no default knowledge or non-Agent product fallback.
19
25
  - Agent supports isolated Agent homes with `GOODVIBES_AGENT_HOME=<path>` and named profile homes with `goodvibes-agent profiles create <name> --template <starter> --yes` plus `--agent-profile <name>`.
20
- - Agent supports connected-service URL overrides with `--runtime-url http://host:port` or `GOODVIBES_AGENT_RUNTIME_URL=http://host:port`; these only change the Agent connection target.
26
+ - Agent supports connected-host URL overrides with `--runtime-url http://host:port` or `GOODVIBES_AGENT_RUNTIME_URL=http://host:port`; these only change the Agent connection target.
21
27
  - Agent ships starter profile templates for household, research, travel, operations, and personal productivity local state; `profiles templates export/import` and `/agent-profile guide` support local custom starters.
22
- - Local memory, personas, routines, and Agent skills are stored under the Agent home and are injected only into the serial Agent conversation.
28
+ - First-run setup can seed an initial scratchpad note, local persona, skill, and routine without writing to connected-host knowledge or non-Agent segments.
29
+ - Local memory, notes, personas, routines, and Agent skills are stored under the Agent home. Notes are scratchpad records; reviewed memory, personas, routines, and skills are injected only into the serial Agent conversation.
23
30
  - Normal assistant chat is not coding-session delegation.
24
- - Build/fix/review delegation to GoodVibes TUI must be explicit; WRFC is not the default Agent behavior.
31
+ - Build/fix/review delegation to GoodVibes TUI must be explicit; delegated review is not the default Agent behavior.
25
32
 
26
33
  The Agent docs above define the supported alpha behavior.
@@ -0,0 +1,50 @@
1
+ # Channels, Remote Access, and API
2
+
3
+ GoodVibes Agent can be reached from terminal-first and companion surfaces, but the Agent product does not own transport hosting. It connects to a GoodVibes host owned outside this package and uses public operator routes for status, sessions, artifacts, approvals, automation, and Agent Knowledge.
4
+
5
+ ## Channel Posture
6
+
7
+ Channel setup is explicit. Agent can inspect channel readiness, guide pairing, and send one confirmed delivery message through configured strategies, including connected-host telephony targets, but it must not silently expose a new public surface or send messages to people without a user action.
8
+
9
+ Agent channel UX should show:
10
+
11
+ - which channels are enabled by the owning GoodVibes host;
12
+ - whether account/token setup is present without printing secret values;
13
+ - the default target, if configured;
14
+ - delivery risk and public exposure warnings;
15
+ - the command or workspace action needed to pair companion clients through QR-first setup;
16
+ - the confirmed `Send channel message` action when the user explicitly wants a one-off delivery.
17
+
18
+ Agent-local memory, routines, skills, and personas are not automatically broadcast to channels. External delivery is an effect and requires an exact command, an explicit routine promotion, or a user-approved connected-host request. Companion pairing uses `/pair` without printing the raw token; manual token display requires `/pair --show-token --yes`. One-off delivery uses Agent Workspace -> Channels -> Send channel message or `/channels send ... --yes`.
19
+
20
+ ## Companion And Session Routes
21
+
22
+ Normal assistant chat uses companion chat routes. Build/fix/review delegation uses shared-session or task routes only when the user explicitly asks for implementation work.
23
+
24
+ Do not use shared coding sessions for ordinary chat. Do not start background automation for routine assistant work.
25
+
26
+ ## Remote Access
27
+
28
+ Remote-node and peer capability is owned by the connected GoodVibes host. In Agent, remote commands are read-only unless the user explicitly delegates build/fix/review work to GoodVibes TUI. The current Agent behavior should guide the user toward:
29
+
30
+ - inspecting remote support state;
31
+ - checking routes and peer readiness;
32
+ - delegating explicit build/fix/review work to GoodVibes TUI when remote execution is actually needed.
33
+
34
+ Agent should not start remote build hosts, manage peer lifecycle, or fan out separate Agent jobs from the main conversation.
35
+
36
+ ## Public API Use
37
+
38
+ Use public SDK/operator routes only. For Agent Knowledge, the only valid family is:
39
+
40
+ ```text
41
+ /api/goodvibes-agent/knowledge/*
42
+ ```
43
+
44
+ If an Agent-specific route is missing, fail closed or show guidance. Do not substitute the default knowledge, another product segment, or private connected-host files.
45
+
46
+ ## Related Docs
47
+
48
+ - [Getting started](getting-started.md)
49
+ - [Knowledge, artifacts, and multimodal](knowledge-artifacts-and-multimodal.md)
50
+ - [Tools and commands](tools-and-commands.md)
@@ -0,0 +1,59 @@
1
+ # Connected Host
2
+
3
+ GoodVibes Agent is a TUI client for a connected GoodVibes host owned outside this package. The package exposes one executable:
4
+
5
+ ```sh
6
+ goodvibes-agent
7
+ ```
8
+
9
+ The installed command is backed by TypeScript-authored source with a Bun shebang. Package install smoke verifies the executable path:
10
+
11
+ - `goodvibes-agent --help`
12
+ - `goodvibes-agent --version`
13
+ - `goodvibes-agent status --json`
14
+ - `goodvibes-agent` launches the TUI in a real PTY
15
+
16
+ ## Host Prerequisite
17
+
18
+ Start the owning GoodVibes host before launching Agent. Agent expects that host to expose public operator routes and the isolated Agent Knowledge routes:
19
+
20
+ ```text
21
+ http://127.0.0.1:3421
22
+ /api/goodvibes-agent/knowledge/status
23
+ /api/goodvibes-agent/knowledge/ask
24
+ /api/goodvibes-agent/knowledge/search
25
+ ```
26
+
27
+ If the GoodVibes API is on a different host or port, use a one-off override when launching the TUI:
28
+
29
+ ```sh
30
+ goodvibes-agent --runtime-url http://127.0.0.1:3421
31
+ ```
32
+
33
+ For a persistent shell/session override, set:
34
+
35
+ ```sh
36
+ export GOODVIBES_AGENT_RUNTIME_URL=http://127.0.0.1:3421
37
+ ```
38
+
39
+ `GOODVIBES_AGENT_BASE_URL` is accepted as a legacy alias. These values only select the connected GoodVibes API root; they do not make Agent own host processes.
40
+
41
+ If the connected host is unavailable, unauthenticated, or on an incompatible SDK version, the Agent TUI reports actionable diagnostics without printing token values.
42
+
43
+ Use the TUI first for those checks:
44
+
45
+ - Agent Workspace -> Home -> Host compatibility
46
+ - Agent Workspace -> Home -> Doctor diagnostics
47
+ - Agent Workspace -> Home -> Review health
48
+
49
+ `goodvibes-agent status --json`, `goodvibes-agent doctor`, and `goodvibes-agent compat` are scriptable equivalents for install checks and automation.
50
+
51
+ ## Product Boundary
52
+
53
+ Agent owns the operator assistant TUI, local profiles, local memory/notes/routines/skills/personas, isolated Agent Knowledge calls, companion chat, approvals/automation visibility, and explicit build delegation.
54
+
55
+ Agent does not own connected-host lifecycle. It does not provide commands to install, expose, start, stop, restart, or mutate the connected GoodVibes host.
56
+
57
+ Agent Knowledge is its own product segment. Agent uses `/api/goodvibes-agent/knowledge/*` only and must not fall back to default knowledge or other product-specific knowledge routes.
58
+
59
+ Normal assistant chat uses companion chat. Build/fix/review work is delegated explicitly to GoodVibes TUI through public runtime/session contracts, and delegated review is requested only when explicitly asked for build/fix/review work.
@@ -5,12 +5,12 @@ GoodVibes Agent is the installable public alpha of the personal operator assista
5
5
  ## Requirements
6
6
 
7
7
  - Bun `1.3.10` or newer
8
- - Connected GoodVibes services compatible with `@pellux/goodvibes-sdk@0.33.35`
9
- - A token/config path accepted by connected GoodVibes services
8
+ - A connected GoodVibes host compatible with `@pellux/goodvibes-sdk@0.33.35`
9
+ - A token/config path accepted by the connected host
10
10
 
11
- Agent does not launch connected GoodVibes services for you.
11
+ Agent does not launch the connected host for you.
12
12
 
13
- Use the interactive TUI first. CLI subcommands are secondary support paths for install checks, setup inspection, and scriptable local Agent libraries.
13
+ Use the interactive TUI first. CLI subcommands are secondary support paths for install checks, setup inspection, and scriptable mirrors of workflows that are already reachable from the workspace.
14
14
 
15
15
  ## Install From Package
16
16
 
@@ -18,10 +18,6 @@ Use the interactive TUI first. CLI subcommands are secondary support paths for i
18
18
  bun add -g @pellux/goodvibes-agent
19
19
  goodvibes-agent --help
20
20
  goodvibes-agent
21
- goodvibes-agent status
22
- goodvibes-agent personas list
23
- goodvibes-agent skills list
24
- goodvibes-agent memory list
25
21
  ```
26
22
 
27
23
  If the installed command is not found, add Bun's global bin directory to `PATH`:
@@ -44,87 +40,102 @@ bun run dev
44
40
 
45
41
  `goodvibes-agent` starts the interactive Agent TUI. On a fresh Agent home, the TUI opens Agent setup first.
46
42
 
47
- After setup has been shown once, the TUI opens directly into the Agent operator workspace. You can also reopen it with `/agent`, `/home`, or `/operator`. That fullscreen workspace is the current front door for setup/config, provider/model selection, Agent Knowledge, local memory/skills/routines/personas, channel readiness, voice/media setup, read-only work/approval/automation views, and explicit GoodVibes TUI build delegation.
43
+ After setup has been applied once, the TUI opens directly into the Agent operator workspace. You can also reopen it with `/agent`, `/home`, or `/operator`. That fullscreen workspace is the current front door for setup/config, conversation/session controls, provider/model selection, read-only web research, Agent Knowledge, local memory/notes/skills/routines/personas, channel readiness, voice/media setup, read-only work/approval/automation views, and explicit GoodVibes TUI build delegation.
48
44
 
49
- The setup workspace scans local Agent behavior folders and shows importable persona, skill, and routine files before asking you to create blank records. Use `/personas discover`, `/agent-skills discover`, and `/routines discover` to preview files, then use the matching import action in the workspace after review.
45
+ Press `/` inside the Agent workspace to search every workspace action by name, category, command, or detail. Use that finder before reaching for shell commands; CLI subcommands are scriptable mirrors of these TUI workflows.
50
46
 
51
- Use `/agent-profile guide` inside that workspace to walk through starter-profile authoring. It lists built-in and local starters, exports a JSON starter for editing, imports the edited starter back into this Agent home, and creates isolated profiles from the result.
47
+ Use the Artifacts area for concrete files and generated output: attach images to prompts, export conversations or saved sessions, ingest local source files and URL lists into Agent Knowledge, import bookmarks or browser history, inspect source records, and generate media artifacts from confirmed prompts.
52
48
 
53
- Use `goodvibes-agent profiles create-from-discovered research-desk --yes` or the Profiles workspace form to assemble a local starter template and isolated Agent profile from reviewed discovered persona, skill, and routine files. Use `profiles templates from-discovered <id> --yes` only when you want to save the starter before creating a profile.
49
+ The setup workspace scans Agent-local behavior folders and shows importable persona, skill, and routine files before asking you to create blank records. It can also create one initial scratchpad note, local persona, skill, and routine from the setup form. Use the workspace action finder to search for local behavior discovery/import actions, preview files, then import reviewed records from the matching workspace.
54
50
 
55
- Use the Knowledge area in that workspace to ingest a source URL without leaving the TUI. The form requires typed confirmation and writes only to the isolated Agent Knowledge segment.
51
+ Use the Profiles workspace Starter authoring guide to walk through starter-profile authoring. It lists built-in and local starters, exports a JSON starter for editing, imports the edited starter back into this Agent home, and creates isolated profiles from the result.
56
52
 
57
- Use `/schedule receipts` to review redacted local routine promotion history and `/schedule reconcile` to compare those receipts with live connected schedules through public `schedules.list`.
53
+ Use the Profiles workspace form to assemble a local starter template and isolated Agent profile from reviewed discovered persona, skill, and routine files. Scriptable profile commands mirror the same flow for automation; use them only when you intentionally want a shell-driven setup path.
58
54
 
59
- The local behavior libraries are also available from the installed CLI:
55
+ Use the Knowledge area in that workspace to ingest source URLs, local files, URL-list files, bookmarks, browser history, and connector input without leaving the TUI. Every ingest path requires typed confirmation and writes only to the isolated Agent Knowledge segment.
60
56
 
61
- ```sh
62
- goodvibes-agent personas create --name "Research Analyst" --description "Source-backed research" --body "Check sources and call out uncertainty" --use
63
- goodvibes-agent skills create --name "Morning Brief" --description "Daily briefing flow" --procedure "Check tasks, approvals, routines, and Agent Knowledge before summarizing" --enabled
64
- goodvibes-agent memory add fact "Prefers concise morning briefings" --scope project --tags preference
65
- goodvibes-agent routines list
66
- ```
57
+ Use the Voice & Media area to review media provider readiness, attach images to conversation prompts, and generate image/video artifacts from a confirmed form. Generated media stays in GoodVibes artifact storage and returns artifact ids for follow-up conversation or delegation; it is not written into default knowledge or non-Agent knowledge segments.
58
+
59
+ Use the Routines workspace receipt actions to review redacted local routine promotion history and reconcile those receipts with live connected schedules through public `schedules.list`. The `/schedule receipts` and `/schedule reconcile` commands are the power-user equivalents inside the TUI.
60
+
61
+ The local behavior libraries are configured in the TUI first:
62
+
63
+ - Memory & Skills -> Create memory, Create note, or Capture learned behavior.
64
+ - Notes -> Create note for source triage, temporary decisions, or operator handoff without writing memory or Agent Knowledge.
65
+ - Personas -> Create persona, Use selected, Review selected, or Delete selected.
66
+ - Skills -> Create skill, Create bundle, Enable selected, Review selected, or Delete selected.
67
+ - Routines -> Create routine, Start selected, Enable selected, Promote to schedule, review receipts, or run a confirmed connected schedule.
68
+ - Work -> Add work item, Review work plan, or Update work item status.
69
+
70
+ The installed CLI mirrors these libraries for scripts, but it is not the primary user workflow.
67
71
 
68
72
  ## Isolated Agent Profiles
69
73
 
70
- Use a separate Agent home when you want isolated local state:
74
+ Use a separate Agent home when you want isolated local state. The normal launch still opens the TUI:
71
75
 
72
76
  ```sh
73
- GOODVIBES_AGENT_HOME=/path/to/agent-home goodvibes-agent status
77
+ GOODVIBES_AGENT_HOME=/path/to/agent-home goodvibes-agent
74
78
  ```
75
79
 
76
- Use named Agent profiles for repeatable local identities:
80
+ Use named Agent profiles for repeatable local identities from Agent Workspace -> Profiles. The workspace can browse starter templates, create isolated Agent profiles, set or clear the default profile for the next launch, and export/import starter JSON.
81
+
82
+ Scriptable equivalents for automation and setup scripts:
77
83
 
78
84
  ```sh
79
85
  goodvibes-agent profiles templates
80
86
  goodvibes-agent profiles create household --template household --yes
87
+ goodvibes-agent profiles use household --yes
88
+ goodvibes-agent
81
89
  goodvibes-agent profiles templates export research ./research-starter.json --yes
82
90
  goodvibes-agent profiles templates import ./research-starter.json --yes
83
91
  goodvibes-agent --agent-profile household status
84
92
  goodvibes-agent --agent-profile household
85
93
  ```
86
94
 
87
- Named profiles isolate Agent-local config, sessions, memory, personas, skills, routines, and setup state under a profile-specific home. Starter templates seed local personas, skills, and routines for household, research, travel, operations, and personal productivity profiles; exported starter JSON can be edited and re-imported as a local starter. They do not start or isolate connected GoodVibes services by themselves.
95
+ Named profiles isolate Agent-local config, sessions, memory, notes, personas, skills, routines, and setup state under a profile-specific home. `profiles use <name> --yes` makes one profile the default for the next plain `goodvibes-agent` launch; `--agent-profile <name>` still overrides it for one launch, and `profiles default clear --yes` returns plain launches to the base Agent home. First-run setup seeds new profiles from a built-in starter by default unless you explicitly choose `No profile`. Starter templates seed local personas, skills, and routines for household, research, travel, operations, and personal productivity profiles; exported starter JSON can be edited and re-imported as a local starter. They do not start or isolate the connected host by themselves.
88
96
 
89
97
  ## Local Memory, Personas, Routines, And Skills
90
98
 
91
- Memory, personas, routines, and reusable Agent skills are local to GoodVibes Agent. They do not write into default Knowledge/Wiki or non-Agent knowledge segments.
92
-
93
- ```text
94
- /personas list
95
- /personas create --name Research --description "Source-backed research" --body "Check sources, call out uncertainty, keep answers concise."
96
- /personas use research
97
- /routines create --name "Evening Review" --description "Review open work before shutdown" --steps "Check work plan, approvals, and Agent Knowledge status before summarizing." --enabled true
98
- /routines start evening-review
99
- /schedule promote-routine evening-review --cron "0 17 * * 1-5" --timezone America/Chicago --yes
100
- /channels
101
- /agent-skills create --name "Morning Brief" --description "Daily briefing flow" --procedure "Check tasks, approvals, calendar, and unread state before summarizing." --enabled true
102
- /agent-skills enabled
103
- /skills list
104
- /memory add fact "Prefers concise morning briefings" --scope project --tags preference
105
- /memory search morning
106
- ```
99
+ Memory, notes, personas, routines, and reusable Agent skills are local to GoodVibes Agent. First-run setup, TUI workspace forms, and CLI commands all write them to Agent-local registries. They do not write into default knowledge or non-Agent knowledge segments.
100
+
101
+ Use `Capture learned behavior` in the Agent workspace after reviewing a repeated workflow, lesson, or operating style. It saves one local skill, routine, or persona from the TUI and does not call connected-host mutation routes.
102
+
103
+ Use Agent Workspace -> Research for web research and URL inspection. Research requests run in the normal main conversation, can use connected read-only web tools when you ask, and do not ingest sources. Use confirmed Agent Knowledge ingest actions only when a reviewed source should become durable Agent-owned knowledge.
104
+
105
+ Use Agent Workspace -> Notes for source triage and temporary context. Notes are a scratchpad: they are reviewable local records, but they do not become durable memory or Agent Knowledge unless you explicitly promote them into memory/skills/routines/personas or run a confirmed Agent Knowledge ingest action. A reviewed note with a source URL can prefill the Agent Knowledge URL ingest form so you do not have to copy the URL by hand.
106
+
107
+ Day-one local behavior setup should stay in the fullscreen workspace:
108
+
109
+ - Personas -> Create persona, then Use selected.
110
+ - Routines -> Create routine, Start selected, or Promote to schedule after entering real timing and confirmation.
111
+ - Skills -> Create skill, Enable selected, and review setup requirements.
112
+ - Memory & Skills -> Create memory, Create note, or Search memory.
113
+ - Channels -> inspect readiness, send one explicit channel delivery message, add notification targets, and send notification messages only through confirmed actions.
114
+
115
+ Typed slash commands are available for repeat users, but they are not required for the first-run workflow.
116
+
117
+ The active persona plus enabled Agent routines, reviewed memory, and skills are injected into the main serial assistant conversation. Starting a routine records local usage and prints its steps in the main conversation; it does not start background automation. Promoting a routine to a schedule is an explicit `schedules.create` call, requires `--yes`, writes a local redacted promotion receipt, and preserves the rule that Agent Knowledge never falls back to default knowledge or non-Agent knowledge segments.
107
118
 
108
- The active persona plus enabled Agent routines, reviewed memory, and skills are injected into the main serial assistant conversation. Starting a routine records local usage and prints its steps; it does not spawn background agents or automation jobs. Promoting a routine to a schedule is an explicit `schedules.create` call, requires `--yes`, writes a local redacted promotion receipt, and preserves the rule that Agent Knowledge never falls back to default Knowledge/Wiki or non-Agent knowledge segments.
119
+ Use `/channels` inside the TUI for channel readiness and exact confirmed sends. Readiness views show enabled channels, missing config key names, delivery posture, and risk labels without sending messages or rendering token values. Companion pairing is QR-first; `/pair` hides the raw token in text, and manual token display requires `/pair --show-token --yes`. `/channels send --channel <surface[:route[:label]]> --message <text> --yes` sends one explicit delivery through configured strategies.
109
120
 
110
- Use `/channels` inside the TUI for a read-only channel readiness matrix. It shows enabled channels, missing config key names, delivery posture, and risk labels without sending messages or rendering token values.
121
+ The main assistant conversation can perform narrow confirmed operator actions when the user explicitly asks for a specific target: approve/deny/cancel one approval, run/pause/resume one automation job, cancel/retry one automation run, or run one schedule. Those calls use only public connected-host routes, require confirmation, and do not create, edit, or delete automation definitions.
111
122
 
112
- ## Connected GoodVibes Services
123
+ ## Connected GoodVibes Host
113
124
 
114
- Start connected GoodVibes services from GoodVibes TUI or the owning host before using service-backed Agent features. Agent expects those services to expose the public operator/Agent routes, including:
125
+ Start the owning GoodVibes host before using connected Agent features. Agent expects that host to expose the public operator/Agent routes, including:
115
126
 
116
- - `/status`
127
+ - `GET /status`
117
128
  - `/api/goodvibes-agent/knowledge/status`
118
129
  - `/api/goodvibes-agent/knowledge/ask`
119
130
  - `/api/goodvibes-agent/knowledge/search`
120
131
  - `/api/goodvibes-agent/knowledge/ingest/url`
121
132
 
122
- If the GoodVibes API is not on `http://127.0.0.1:3421`, use `goodvibes-agent --runtime-url http://host:port status` for a one-off check or set `GOODVIBES_AGENT_RUNTIME_URL=http://host:port` before launching the TUI.
133
+ If the GoodVibes API is not on `http://127.0.0.1:3421`, pass `--runtime-url http://host:port` for a one-off TUI launch or set `GOODVIBES_AGENT_RUNTIME_URL=http://host:port` before launching the TUI.
123
134
 
124
- Agent Knowledge/Wiki is an Agent-owned product segment. Agent commands must not fall back to default Knowledge/Wiki or other product-specific knowledge spaces.
135
+ Agent Knowledge is an Agent-owned product segment. Agent commands must not fall back to default knowledge or other product-specific knowledge spaces.
125
136
 
126
- Service-hosting commands are not part of GoodVibes Agent. Use `goodvibes-agent status`, `goodvibes-agent doctor`, and the Agent TUI status views for diagnostics.
137
+ Host lifecycle commands are not part of GoodVibes Agent. Use Agent Workspace -> Home -> Host compatibility, Doctor diagnostics, and Review health for diagnostics. CLI status/doctor/compat commands are scriptable mirrors for install checks.
127
138
 
128
139
  ## Current Product Notes
129
140
 
130
- Agent uses the mature GoodVibes terminal shell, renderer, input, fullscreen workspace, command registry, and release foundation. 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.
141
+ Agent uses the mature GoodVibes terminal shell, renderer, input, fullscreen workspace, command registry, and release foundation. The active Agent policy is serial/proactive by default, blocks Agent-owned review/job fanout, and delegates explicit build/fix/review work to GoodVibes TUI instead of turning the Agent into a coding TUI.
@@ -0,0 +1,91 @@
1
+ # Knowledge, Artifacts, and Multimodal
2
+
3
+ GoodVibes Agent has its own Knowledge segment. It must not query or ingest through default knowledge or other product-specific knowledge spaces.
4
+
5
+ ## Context Layers
6
+
7
+ GoodVibes Agent uses these context layers:
8
+
9
+ - current conversation context for the active turn;
10
+ - Agent-local memory records for durable but private assistant facts and preferences;
11
+ - Agent-local routines, skills, and personas for reusable behavior profiles;
12
+ - isolated Agent Knowledge for source-backed documents, search, and semantic answers;
13
+ - artifacts for uploaded/generated files that can be referenced by chat, delegation, or explicit Agent Knowledge ingestion.
14
+
15
+ These layers are intentionally separate. Local memory/routines/skills/personas are not automatically promoted into Agent Knowledge. Agent Knowledge records are not copied into default knowledge. Secrets are rejected or represented only by explicit secret references.
16
+
17
+ ## Agent Knowledge Boundary
18
+
19
+ Agent Knowledge uses only the Agent route family:
20
+
21
+ ```text
22
+ GET /api/goodvibes-agent/knowledge/status
23
+ POST /api/goodvibes-agent/knowledge/ask
24
+ POST /api/goodvibes-agent/knowledge/search
25
+ GET /api/goodvibes-agent/knowledge/sources
26
+ GET /api/goodvibes-agent/knowledge/nodes
27
+ GET /api/goodvibes-agent/knowledge/issues
28
+ GET /api/goodvibes-agent/knowledge/items/{id}
29
+ GET /api/goodvibes-agent/knowledge/connectors
30
+ POST /api/goodvibes-agent/knowledge/ingest/url
31
+ POST /api/goodvibes-agent/knowledge/ingest/urls
32
+ POST /api/goodvibes-agent/knowledge/ingest/bookmarks
33
+ POST /api/goodvibes-agent/knowledge/reindex
34
+ ```
35
+
36
+ If those routes are unavailable, Agent commands fail closed with a structured error. They do not retry against the default knowledge routes or arbitrary knowledge-space selectors.
37
+
38
+ The CLI and slash-command layers reject route-selection flags such as `--space`, `--knowledge-space`, `--knowledge-space-id`, and `--include-all-spaces` because those would violate the Agent product boundary.
39
+
40
+ Agent Knowledge writes are explicit-user-action paths. Slash commands that ingest, import, review issues, reindex, or run consolidation require `--yes`; ask/search/status/list paths remain read-only.
41
+
42
+ ## Ask And Search
43
+
44
+ Use Agent Workspace -> Knowledge -> Ask Agent knowledge for source-backed Agent Knowledge answers. `/knowledge ask <query>` and `goodvibes-agent ask <query>` are scriptable equivalents over the same route. Default output is concise:
45
+
46
+ - answer text or a clear no-match state;
47
+ - confidence when present;
48
+ - sources, titles, and URLs when returned;
49
+ - facts, gaps, and refinement task ids only when the Agent Knowledge route returns them.
50
+
51
+ `--json` preserves the raw structured Agent route response for tooling.
52
+
53
+ The command layer does not turn search results into an answer locally and does not apply client-side filters to hide contamination. Isolation must come from the Agent Knowledge route itself.
54
+
55
+ Use Agent Workspace -> Knowledge -> Search Agent knowledge for interactive search. `/knowledge search <query>` and `goodvibes-agent search <query>` query the isolated Agent Knowledge search route and render bounded results with title, id, type, score, source, URL, and snippets when available. Empty Agent stores return an explicit empty state.
56
+
57
+ Read-only inspection is available from the TUI Knowledge workspace first, with CLI equivalents for scripts:
58
+
59
+ - Source library and review queue in Agent Workspace -> Knowledge.
60
+ - `/knowledge list --kind sources|nodes|issues`
61
+ - `/knowledge get <id>`
62
+ - `/knowledge connectors`
63
+ - `/knowledge map`
64
+
65
+ ## Ingest
66
+
67
+ Use Agent Workspace -> Knowledge for URL, URL-list, file, bookmark, browser-history, connector ingest, and reindex forms. The main assistant conversation can also call the confirmed `agent_knowledge_ingest` tool for the same isolated source families. `/knowledge ingest-url <url> --yes` and `goodvibes-agent knowledge ingest-url <url> --yes` ingest URL sources into Agent Knowledge only.
68
+
69
+ The TUI workspace exposes the common confirmed ingest and reindex flows. The CLI also exposes Agent-specific batch routes for scripts:
70
+
71
+ - `goodvibes-agent knowledge import-urls <path> --yes`
72
+ - `goodvibes-agent knowledge import-bookmarks <path> --yes`
73
+ - `goodvibes-agent knowledge reindex --yes`
74
+
75
+ All of these commands target `/api/goodvibes-agent/knowledge/*`; none of them call default knowledge.
76
+
77
+ Do not map local memory, notes, routines, skills, personas, or default knowledge documents into Agent Knowledge automatically. Durable source-backed facts can be ingested deliberately through Agent routes when the user or an explicit Agent workflow asks for it.
78
+
79
+ ## Artifacts And Multimodal
80
+
81
+ Artifacts are first-class runtime objects for files, images, audio, video, generated outputs, and delegation results. Agent Knowledge use of artifacts must still go through Agent-specific ingest routes when those are available.
82
+
83
+ Agent Workspace -> Voice & Media -> Generate media creates image/video artifacts through configured media providers after typed confirmation. The main conversation can perform the same confirmed action with the `agent_media_generate` tool when the user explicitly asks for generated media. Generated media output is summarized as artifact ids, MIME types, filenames, and source URLs when present; inline base64 is not printed into the transcript.
84
+
85
+ Until dedicated Agent artifact-ingest route coverage exists, multimodal outputs should stay in the conversation, artifacts, local notes or memory, or explicit delegation results rather than being inserted into default knowledge.
86
+
87
+ ## Related Docs
88
+
89
+ - [Tools and commands](tools-and-commands.md)
90
+ - [Getting started](getting-started.md)
91
+ - [Release and publishing](release-and-publishing.md)
@@ -0,0 +1,79 @@
1
+ # Project Planning
2
+
3
+ GoodVibes Agent owns the active planning loop for operator work. Planning is part of the Agent main conversation, not a hidden execution flow and not a default knowledge query.
4
+
5
+ ## Boundary
6
+
7
+ The Agent owns:
8
+
9
+ - natural-language planning intent detection in the main terminal conversation;
10
+ - one-question-at-a-time clarification;
11
+ - the Agent-owned planning loop;
12
+ - transcript-first planning summaries and the Agent operator workspace planning state;
13
+ - explicit execution approval;
14
+ - delegation metadata when work needs GoodVibes TUI.
15
+
16
+ The SDK/runtime owns durable storage and route contracts:
17
+
18
+ - planning namespaces such as `project:<projectId>`;
19
+ - readiness evaluation and next-question hints;
20
+ - decision records;
21
+ - task, dependency, verification, and assignment metadata;
22
+ - passive operator methods.
23
+
24
+ Other surfaces can store or inspect planning artifacts, but conversation control stays in Agent. Agent planning state is not default knowledge, another product segment, or arbitrary knowledge data.
25
+
26
+ ## Agent Behavior
27
+
28
+ The Agent derives a stable `projectId` from the workspace path and passes it to the SDK planning service. Planning artifacts are stored under the matching planning namespace so unrelated workspaces do not share state.
29
+
30
+ Normal conversation can start planning when the user asks for an execution strategy, dependency graph, verification gates, or delegation handoff. The Agent then:
31
+
32
+ - prints a concise planning summary in the main transcript;
33
+ - persists the current planning state through public SDK/runtime seams;
34
+ - records active open questions and user answers;
35
+ - calls readiness evaluation for gaps and the suggested next question;
36
+ - asks one focused question instead of executing prematurely.
37
+
38
+ The planning loop can be paused with natural language such as "stop planning" or "pause planning".
39
+
40
+ ## Planning View
41
+
42
+ The planning view is transcript-first today. It shows:
43
+
44
+ - workspace project id and planning namespace;
45
+ - readiness and approval state;
46
+ - goal, scope, known context, and current next question;
47
+ - blocking or advisory readiness gaps;
48
+ - task graph and verification gates;
49
+ - delegation candidates;
50
+ - durable decisions;
51
+ - project language and ambiguity resolutions.
52
+
53
+ Keyboard behavior stays in the main Agent TUI: predictable prompt editing, scroll, submit, dismiss, and return-to-chat behavior.
54
+
55
+ ## `/plan`
56
+
57
+ `/plan` remains a command workspace for inspection and seeding:
58
+
59
+ - `/plan` prints current planning readiness and the next planning question;
60
+ - `/plan panel` is guidance-only in Agent and points back to `/plan status` or `/plan list`;
61
+ - `/plan approve` records explicit execution approval;
62
+ - `/plan <goal>` seeds Agent workspace planning state;
63
+ - `/plan list` and `/plan show <id>` inspect older execution-plan records.
64
+
65
+ Use natural language such as "pause planning" or "stop planning" when planning should pause and normal chat should continue.
66
+
67
+ ## Work Plan
68
+
69
+ The work-plan tracker is for concrete, durable task state after work becomes actionable. It is separate from the planning interview loop.
70
+
71
+ Use `/workplan` when the work already has tasks and needs status tracking. Use `/delegate` when explicit build/fix/review work should go to GoodVibes TUI.
72
+
73
+ ## Agent Knowledge Boundary
74
+
75
+ Planning may link to Agent Knowledge evidence, but it must not query or ingest through default knowledge. Source-backed facts for Agent belong under:
76
+
77
+ ```text
78
+ /api/goodvibes-agent/knowledge/*
79
+ ```
@@ -0,0 +1,46 @@
1
+ # Providers and Routing
2
+
3
+ GoodVibes Agent uses the provider/model configuration exposed by the connected GoodVibes host. The Agent TUI should make the active route easy to see and easy to change, but it should not duplicate provider hosting logic.
4
+
5
+ ## Agent Expectations
6
+
7
+ Provider and model state should be visible in:
8
+
9
+ - the shell footer/status rows;
10
+ - `/health` in the TUI and `goodvibes-agent status` in the CLI;
11
+ - `/model` and `/provider`;
12
+ - the Agent operator workspace setup checklist;
13
+ - the TTS configuration workspace when spoken turns are used.
14
+
15
+ When a selected model is provider-qualified, Agent keeps the runtime provider row and raw model id separate. For example, `openai-subscriber` plus `openai:gpt-5.5` should route as provider `openai-subscriber` and model `gpt-5.5` where the public route expects provider/model fields.
16
+
17
+ ## Local Provider Definitions
18
+
19
+ Agent-owned provider definitions live under the Agent profile root when supported by the shared GoodVibes provider registry:
20
+
21
+ ```text
22
+ ~/.goodvibes/agent/providers/*.json
23
+ ```
24
+
25
+ These files are local configuration. They are not Agent Knowledge records and should not be copied into knowledge search state.
26
+
27
+ ## Discovery And Health
28
+
29
+ Provider discovery and health are owned by the connected GoodVibes host. Agent can display discovered provider status, model context information, and route failures. It should not hide provider failures behind fallback wording that makes a failed chat or knowledge request look successful.
30
+
31
+ ## Search, Voice, And Media Providers
32
+
33
+ Search, voice, media, and multimodal providers are valid Agent features when they are presented as assistant workflows:
34
+
35
+ - research and source lookup;
36
+ - live spoken turns;
37
+ - image/document analysis;
38
+ - artifact creation and review.
39
+
40
+ Outputs that should become durable knowledge must go through Agent Knowledge routes. No provider output should be inserted into default knowledge or another product segment by Agent.
41
+
42
+ ## Related Docs
43
+
44
+ - [Getting started](getting-started.md)
45
+ - [Knowledge, artifacts, and multimodal](knowledge-artifacts-and-multimodal.md)
46
+ - [Voice and live TTS](voice-and-live-tts.md)