@pellux/goodvibes-agent 0.1.107 → 0.1.108

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 (79) hide show
  1. package/CHANGELOG.md +38 -13
  2. package/README.md +27 -11
  3. package/docs/README.md +5 -5
  4. package/docs/{runtime-connection.md → connected-services.md} +8 -8
  5. package/docs/getting-started.md +28 -12
  6. package/docs/release-and-publishing.md +4 -4
  7. package/package.json +2 -12
  8. package/src/agent/reminder-schedule-format.ts +75 -0
  9. package/src/agent/reminder-schedule.ts +494 -0
  10. package/src/agent/routine-schedule-format.ts +7 -7
  11. package/src/agent/routine-schedule-promotion.ts +1 -1
  12. package/src/agent/routine-schedule-receipts.ts +1 -1
  13. package/src/agent/skill-discovery.ts +2 -0
  14. package/src/cli/agent-knowledge-args.ts +93 -0
  15. package/src/cli/agent-knowledge-command.ts +200 -369
  16. package/src/cli/agent-knowledge-format.ts +58 -7
  17. package/src/cli/agent-knowledge-methods.ts +84 -0
  18. package/src/cli/agent-knowledge-runtime.ts +240 -0
  19. package/src/cli/completion.ts +0 -2
  20. package/src/cli/config-overrides.ts +2 -2
  21. package/src/cli/help.ts +34 -15
  22. package/src/cli/management-commands.ts +2 -2
  23. package/src/cli/management.ts +8 -8
  24. package/src/cli/package-verification.ts +7 -3
  25. package/src/cli/parser.ts +10 -4
  26. package/src/cli/service-posture.ts +6 -6
  27. package/src/cli/status.ts +32 -32
  28. package/src/input/agent-workspace-activation.ts +24 -13
  29. package/src/input/agent-workspace-basic-command-editors.ts +448 -0
  30. package/src/input/agent-workspace-categories.ts +42 -34
  31. package/src/input/agent-workspace-channels.ts +3 -3
  32. package/src/input/agent-workspace-command-editor.ts +65 -0
  33. package/src/input/agent-workspace-editors.ts +17 -2
  34. package/src/input/agent-workspace-knowledge-query-editor.ts +74 -0
  35. package/src/input/agent-workspace-knowledge-url-editor.ts +95 -0
  36. package/src/input/agent-workspace-reminder-schedule-editor.ts +125 -0
  37. package/src/input/agent-workspace-routine-schedule-editor.ts +127 -0
  38. package/src/input/agent-workspace-setup.ts +2 -2
  39. package/src/input/agent-workspace-types.ts +20 -2
  40. package/src/input/agent-workspace-voice-media.ts +5 -5
  41. package/src/input/agent-workspace.ts +39 -2
  42. package/src/input/commands/agent-runtime-profile-runtime.ts +1 -1
  43. package/src/input/commands/agent-skills-runtime.ts +94 -2
  44. package/src/input/commands/brief-runtime.ts +126 -0
  45. package/src/input/commands/channels-runtime.ts +47 -0
  46. package/src/input/commands/health-runtime.ts +10 -10
  47. package/src/input/commands/knowledge.ts +176 -1
  48. package/src/input/commands/planning-runtime.ts +1 -1
  49. package/src/input/commands/platform-access-runtime.ts +10 -10
  50. package/src/input/commands/policy-dispatch.ts +1 -1
  51. package/src/input/commands/schedule-runtime.ts +42 -5
  52. package/src/input/commands/security-runtime.ts +1 -1
  53. package/src/input/commands/session-content.ts +1 -1
  54. package/src/input/commands/session-workflow.ts +1 -1
  55. package/src/input/commands/shell-core.ts +4 -2
  56. package/src/input/commands/tasks-runtime.ts +3 -3
  57. package/src/input/commands.ts +4 -0
  58. package/src/input/handler-onboarding.ts +4 -4
  59. package/src/input/handler.ts +3 -2
  60. package/src/input/onboarding/onboarding-wizard-helpers.ts +1 -1
  61. package/src/input/onboarding/onboarding-wizard-operator-steps.ts +13 -13
  62. package/src/input/onboarding/onboarding-wizard-steps.ts +8 -8
  63. package/src/input/settings-modal-agent-policy.ts +1 -1
  64. package/src/input/slash-command-parser.ts +60 -0
  65. package/src/panels/builtin/agent.ts +1 -1
  66. package/src/panels/builtin/operations.ts +2 -2
  67. package/src/panels/provider-account-snapshot.ts +1 -1
  68. package/src/panels/provider-health-domains.ts +6 -6
  69. package/src/panels/subscription-panel.ts +1 -1
  70. package/src/panels/tasks-panel.ts +3 -3
  71. package/src/renderer/agent-workspace.ts +43 -30
  72. package/src/renderer/help-overlay.ts +1 -1
  73. package/src/renderer/settings-modal.ts +13 -13
  74. package/src/runtime/bootstrap-hook-bridge.ts +1 -1
  75. package/src/runtime/bootstrap.ts +8 -8
  76. package/src/runtime/index.ts +2 -2
  77. package/src/runtime/onboarding/derivation.ts +6 -6
  78. package/src/shell/service-settings-sync.ts +1 -1
  79. package/src/version.ts +1 -1
package/CHANGELOG.md CHANGED
@@ -2,11 +2,38 @@
2
2
 
3
3
  All notable changes to GoodVibes Agent will be recorded here.
4
4
 
5
- ## 0.1.107 - Unreleased
5
+ ## 0.1.108 - 2026-06-02
6
+
7
+ - f6b278c Harden Agent install and briefing
8
+ - 46fa071 Split Agent Knowledge CLI helpers
9
+ - ec03fc0 Add Agent Knowledge connector ingest
10
+ - 8c908ca Add Agent Knowledge connector inspection
11
+ - 4dda70e Add Agent Knowledge browser history import
12
+ - 95bbdbd Add Agent Knowledge file ingest
13
+ - 2440959 Add discovered skill import workflow
14
+ - 692c0fa Add confirmed reminder scheduling
15
+ - a392cc0 Use connected services product language
16
+ - 5843cb4 Clean Agent launch and service wording
17
+ - ee31dac Open routine starts through command router
18
+ - c9512e5 Use Agent-first connected service language
19
+ - 2d8d7f4 Focus onboarding on Agent setup
20
+ - 855ed91 Trim unused root package dependencies
21
+ - d74ae6c Add profile starter workspace forms
22
+ - 0f7e834 Add workspace forms for bookmarks media and skill bundles
23
+ - c140c9d Tolerate SDK overflow fail-closed refs
24
+ - 5093419 Add Agent Knowledge workspace query forms
25
+ - c76b249 Add routine schedule workspace form
26
+ - 8615c68 Tighten Agent runtime boundary wording
27
+ - f4cb026 Add Agent Knowledge URL workspace form
28
+ - f523594 Add Agent channel readiness command
29
+ - 65f0bfd Make Agent help TUI first
30
+
31
+ ## 0.1.107 - 2026-06-01
6
32
 
7
- - Add `goodvibes-agent launch` and `goodvibes-agent start` as explicit aliases for starting the Agent TUI.
8
33
  - Open the Agent operator workspace automatically on normal TUI launch after first-run setup has been shown.
9
- - Document the Bun global install path with `goodvibes-agent launch` as the first interactive smoke.
34
+ - Document the Bun global install path with bare `goodvibes-agent` as the interactive smoke.
35
+ - Add an in-TUI `/channels` readiness command and workspace action for read-only channel setup review without sending messages or exposing token values.
36
+ - Add a confirmed in-workspace Agent Knowledge URL ingest form that writes only through the isolated Agent Knowledge route.
10
37
 
11
38
  ## 0.1.106 - 2026-06-01
12
39
 
@@ -17,7 +44,7 @@ All notable changes to GoodVibes Agent will be recorded here.
17
44
  - Remove copied file-edit undo/redo behavior from Agent conversation commands.
18
45
  - Remove stale hidden-share shortcut guidance and keep diff/file operations delegation-oriented.
19
46
  - Make provider onboarding generic across provider routes, subscription sessions, and credential inventory while keeping OpenAI as an optional quick-start path.
20
- - Remove internal audit phrase leakage from source/package-facing guards and neutralize non-Agent knowledge wording.
47
+ - Tighten package-facing language around isolated Agent Knowledge and non-Agent knowledge boundaries.
21
48
  - Shorten release workflow validation by relying on the single branch-CI gate run instead of duplicating release checks.
22
49
 
23
50
  ## 0.1.105 - 2026-06-01
@@ -97,7 +124,7 @@ All notable changes to GoodVibes Agent will be recorded here.
97
124
 
98
125
  ## 0.1.88 - 2026-06-01
99
126
 
100
- - e97d2a2 Fix release test daemon port allocation
127
+ - e97d2a2 Fix release test service port allocation
101
128
 
102
129
  ## 0.1.87 - 2026-06-01
103
130
 
@@ -115,13 +142,11 @@ All notable changes to GoodVibes Agent will be recorded here.
115
142
 
116
143
  - 35dbf3d Show live external runtime status
117
144
 
118
- ## Unreleased
145
+ ## 0.1.83 - 2026-06-01
119
146
 
120
147
  - Foregrounded live external-runtime reachability, SDK compatibility, operator-token state, and isolated Agent Knowledge readiness in `status`/`doctor` output.
121
148
  - Removed the deprecated `actions/cache@v4` setup step so future CI/CD runs avoid Node 20 deprecation annotations from the shared workflow setup action.
122
149
 
123
- ## 0.1.83 - 2026-06-01
124
-
125
150
  - f5099c1 Hide runtime-owned settings from Agent workspace
126
151
 
127
152
  ## 0.1.82 - 2026-06-01
@@ -132,8 +157,8 @@ All notable changes to GoodVibes Agent will be recorded here.
132
157
 
133
158
  - Added local Agent skill bundles so users can group related local skills, enable or disable the bundle, and inject the bundle's member procedures into the same serial assistant conversation.
134
159
  - Added `/agent-skills bundle ...` commands plus Agent workspace visibility for skill bundle counts, enabled bundle state, active skill count, and bundle membership.
135
- - Restored the GitHub CI eval gate script and replaced the copied TUI/daemon release workflow with an Agent package release workflow that validates Bun global install, package contents, compiled binary launch, and optional npm publish.
136
- - Kept bundles Agent-local and reviewable with no daemon lifecycle behavior, hidden background agents, or non-Agent knowledge fallback.
160
+ - Restored the GitHub CI eval gate script and replaced the copied release workflow with an Agent package release workflow that validates Bun global install, package contents, compiled binary launch, and optional registry publish.
161
+ - Kept bundles Agent-local and reviewable with no connected-service lifecycle behavior, hidden background agents, or non-Agent knowledge fallback.
137
162
 
138
163
  ## 0.1.80 - 2026-06-01
139
164
 
@@ -226,7 +251,7 @@ All notable changes to GoodVibes Agent will be recorded here.
226
251
 
227
252
  - Made the operator workspace more product-facing by replacing foundation/setup jargon with Agent profile, runtime status, voice/media, and browser-tool language.
228
253
  - Removed the remote-runner item from the first-run voice/media workspace so day-one setup stays focused on user-facing assistant capabilities.
229
- - Reworded settings, status panels, profile commands, and docs away from control-plane/runtime-profile terminology while preserving the same underlying contracts.
254
+ - Reworded settings, status panels, profile commands, and docs away from internal runtime terminology while preserving the same underlying contracts.
230
255
 
231
256
  ## 0.1.64 - 2026-05-31
232
257
 
@@ -283,7 +308,7 @@ All notable changes to GoodVibes Agent will be recorded here.
283
308
 
284
309
  ## 0.1.55 - 2026-05-31
285
310
 
286
- - d8f4eee Remove copied developer audit surfaces
311
+ - d8f4eee Remove developer-only setup surfaces
287
312
 
288
313
  ## 0.1.54 - 2026-05-31
289
314
 
@@ -316,7 +341,7 @@ All notable changes to GoodVibes Agent will be recorded here.
316
341
 
317
342
  ## 0.1.48 - 2026-05-31
318
343
 
319
- - 67f8ce0 Remove audit remnants and surface setup checklist
344
+ - 67f8ce0 Surface the Agent setup checklist
320
345
  - 34c3d0b Remove internal development-only surfaces
321
346
 
322
347
  ## 0.1.47 - 2026-05-31
package/README.md CHANGED
@@ -5,7 +5,9 @@
5
5
 
6
6
  GoodVibes Agent is the personal operator assistant TUI for GoodVibes. It is built for day-to-day operator work: chat, setup, local profiles, routines, skills, personas, isolated Agent Knowledge, status review, approvals, automation visibility, and explicit build delegation.
7
7
 
8
- The Agent product connects to an already-running GoodVibes runtime. It does not install, start, stop, restart, or own runtime hosting.
8
+ The Agent product connects to GoodVibes services owned outside this package. It does not install, start, stop, restart, or own those services.
9
+
10
+ Most work happens in the interactive TUI. The installed CLI exists to launch that TUI, inspect setup, and script local Agent libraries when that is useful.
9
11
 
10
12
  ## Install
11
13
 
@@ -14,7 +16,7 @@ Install the public alpha package with Bun:
14
16
  ```sh
15
17
  bun add -g --trust @pellux/goodvibes-agent
16
18
  goodvibes-agent --help
17
- goodvibes-agent launch
19
+ goodvibes-agent
18
20
  goodvibes-agent status
19
21
  goodvibes-agent profiles templates
20
22
  goodvibes-agent personas list
@@ -25,6 +27,15 @@ goodvibes-agent knowledge list --kind sources
25
27
  goodvibes-agent knowledge import-urls ./agent-sources.txt --yes
26
28
  ```
27
29
 
30
+ The bare Bun global install path is also supported:
31
+
32
+ ```sh
33
+ bun add -g @pellux/goodvibes-agent
34
+ goodvibes-agent
35
+ ```
36
+
37
+ If Bun reports blocked lifecycle scripts, the command should still install, but provider parsers and SDK helper dependencies may not be fully prepared until the package is trusted. Run the trust check and targeted trust command below.
38
+
28
39
  If `goodvibes-agent` is not found after installation, add Bun's global bin directory to `PATH`:
29
40
 
30
41
  ```sh
@@ -32,7 +43,7 @@ export PATH="$(bun pm bin -g):$PATH"
32
43
  goodvibes-agent --help
33
44
  ```
34
45
 
35
- `goodvibes-agent` and `goodvibes-agent launch` both start the interactive Agent TUI. On a fresh Agent home, the TUI opens Agent setup first.
46
+ `goodvibes-agent` starts the interactive Agent TUI. On a fresh Agent home, the TUI opens Agent setup first.
36
47
 
37
48
  `--trust` lets Bun run the package lifecycle scripts required by the shipped SDK and parser dependencies during global install. A healthy install should report no pending lifecycle scripts:
38
49
 
@@ -65,10 +76,12 @@ bun run package:install-check
65
76
  bun run publish:check
66
77
  ```
67
78
 
68
- After setup has been shown once, the Agent TUI opens directly into the operator workspace. You can also reopen it with `/agent`, `/home`, or `/operator`. It is the Agent-first fullscreen workspace for setup, status, knowledge, local memory/skills, work-plan/approval review, automation observability, and explicit build delegation to GoodVibes TUI.
79
+ After setup has been shown once, the Agent TUI opens directly into the operator workspace. You can also reopen it with `/agent`, `/home`, or `/operator`. It is the Agent-first fullscreen workspace for setup, model/provider selection, isolated Agent Knowledge, local memory/skills/routines/personas, channel readiness, voice/media setup, work-plan/approval review, automation observability, and explicit build delegation to GoodVibes TUI.
69
80
 
70
81
  Inside the workspace, use `/agent-profile guide` to author custom profile starters without leaving the Agent TUI. The guided flow lists starters, exports starter JSON, imports edited local starters, and creates isolated Agent profiles from them.
71
82
 
83
+ The Knowledge area includes an in-workspace URL ingest form. It writes only to Agent Knowledge, requires typed confirmation, and dispatches the existing isolated `/knowledge ingest-url ... --yes` route.
84
+
72
85
  Use isolated Agent profiles when one machine needs separate operator identities or local state:
73
86
 
74
87
  ```sh
@@ -83,7 +96,7 @@ goodvibes-agent --agent-profile household status
83
96
  GOODVIBES_AGENT_HOME=/path/to/agent-home goodvibes-agent status
84
97
  ```
85
98
 
86
- Profiles isolate Agent-local config, sessions, local memory, personas, skills, routines, and setup state. 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. The GoodVibes runtime is still external and shared unless the owning host is separately configured otherwise.
99
+ Profiles isolate Agent-local config, sessions, local memory, personas, skills, routines, and setup state. 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. Connected GoodVibes services remain shared unless the owning host is separately configured otherwise.
87
100
 
88
101
  The same local behavior libraries are available without opening the TUI: `goodvibes-agent personas ...`, `goodvibes-agent skills ...`, `goodvibes-agent memory ...`, and `goodvibes-agent routines ...` list, create, review, enable, stale, export/import where relevant, and delete local Agent records with explicit confirmation for destructive actions.
89
102
 
@@ -97,21 +110,24 @@ Local Agent behavior is editable from the TUI:
97
110
  /schedule promote-routine evening-review --cron "0 17 * * 1-5" --timezone America/Chicago --delivery-channel slack --yes
98
111
  /schedule receipts
99
112
  /schedule reconcile
113
+ /channels
100
114
  /agent-skills create --name "Morning Brief" --description "Daily briefing flow" --procedure "Check tasks, approvals, calendar, and unread state before summarizing." --enabled true
101
115
  /skills local list
102
116
  /recall add fact Prefers concise morning briefings --scope project --tags preference
103
117
  /recall search morning
104
118
  ```
105
119
 
106
- Starting a routine records local usage and prints its steps; it does not spawn background agents or automation jobs. Promotion to an external schedule is separate and explicit: it calls the public `schedules.create` route only after `--yes`, can include explicit delivery targets such as `--delivery-channel slack`, records a redacted local receipt, and the generated scheduled prompt keeps Agent Knowledge isolated from default Knowledge/Wiki and non-Agent knowledge segments. Use `/schedule reconcile` to compare those local receipts against live external schedules through public `schedules.list`.
120
+ Starting a routine records local usage and prints its steps; it does not spawn background agents or automation jobs. Promotion to a connected schedule is separate and explicit: it calls the public `schedules.create` route only after `--yes`, can include explicit delivery targets such as `--delivery-channel slack`, records a redacted local receipt, and the generated scheduled prompt keeps Agent Knowledge isolated from default Knowledge/Wiki and non-Agent knowledge segments. Use `/schedule reconcile` to compare those local receipts against live connected schedules through public `schedules.list`.
121
+
122
+ 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.
107
123
 
108
- ## Runtime Prerequisite
124
+ ## Connected Services
109
125
 
110
- Start or restart the GoodVibes runtime from GoodVibes TUI or the owning host before launching Agent. Agent status and companion/knowledge routes connect to that external runtime, normally on `http://127.0.0.1:3421`.
126
+ Start connected GoodVibes services from GoodVibes TUI or the owning host before launching Agent. Agent status and companion/knowledge routes normally connect on `http://127.0.0.1:3421`.
111
127
 
112
- Use `--runtime-url http://host:port` for a one-off launch, or set `GOODVIBES_AGENT_RUNTIME_URL=http://host:port` when the runtime API is not on the default local port. The legacy `GOODVIBES_AGENT_BASE_URL` env var is also accepted as an alias. These only change the external runtime connection target; Agent still does not host or start the runtime.
128
+ Use `--runtime-url http://host:port` for a one-off launch, or set `GOODVIBES_AGENT_RUNTIME_URL=http://host:port` when connected GoodVibes services are not on the default local port. The legacy `GOODVIBES_AGENT_BASE_URL` env var is also accepted as an alias. These only change the connection target; Agent still does not host or start services.
113
129
 
114
- Agent reports unavailable, unauthenticated, or incompatible runtime state through `goodvibes-agent status`, `goodvibes-agent doctor`, and the TUI status views. It does not provide runtime hosting commands.
130
+ Agent reports unavailable, unauthenticated, or incompatible connected-service state through `goodvibes-agent status`, `goodvibes-agent doctor`, and the TUI status views. Service lifecycle commands remain outside the Agent product.
115
131
 
116
132
  ## Product Boundary
117
133
 
@@ -128,7 +144,7 @@ GoodVibes TUI owns coding execution: file edits, git/worktree workflows, coding
128
144
  Package-facing docs:
129
145
 
130
146
  - [Getting Started](docs/getting-started.md)
131
- - [Runtime Connection](docs/runtime-connection.md)
147
+ - [Connected Services](docs/connected-services.md)
132
148
  - [Release And Publishing](docs/release-and-publishing.md)
133
149
 
134
150
  The package-facing Agent documentation is limited to the docs listed above.
package/docs/README.md CHANGED
@@ -5,7 +5,7 @@ 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
- - [Runtime Connection](runtime-connection.md)
8
+ - [Connected Services](connected-services.md)
9
9
  - [Release And Publishing](release-and-publishing.md)
10
10
 
11
11
  Important baseline constraints:
@@ -13,11 +13,11 @@ Important baseline constraints:
13
13
  - Agent installs one executable: `goodvibes-agent`.
14
14
  - Agent uses Bun and TypeScript-authored source.
15
15
  - Agent depends on `@pellux/goodvibes-sdk@0.33.35`.
16
- - Agent connects to an externally managed GoodVibes runtime.
17
- - Agent does not start, stop, restart, install, uninstall, or own runtime hosting.
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
18
  - Agent Knowledge/Wiki uses only `/api/goodvibes-agent/knowledge/*`; there is no default Knowledge/Wiki or non-Agent product fallback.
19
- - Agent supports isolated runtime 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 external runtime URL overrides with `--runtime-url http://host:port` or `GOODVIBES_AGENT_RUNTIME_URL=http://host:port`; these do not make Agent own runtime hosting.
19
+ - 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.
21
21
  - 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
22
  - Local memory, personas, routines, and Agent skills are stored under the Agent home and are injected only into the serial Agent conversation.
23
23
  - Normal assistant chat is not coding-session delegation.
@@ -1,6 +1,6 @@
1
- # Runtime Connection
1
+ # Connected Services
2
2
 
3
- GoodVibes Agent is a TUI client for an already-running GoodVibes runtime. The package exposes one executable:
3
+ GoodVibes Agent is a TUI client for connected GoodVibes services owned outside this package. The package exposes one executable:
4
4
 
5
5
  ```sh
6
6
  goodvibes-agent
@@ -13,9 +13,9 @@ The installed command is backed by TypeScript-authored source with a Bun shebang
13
13
  - `goodvibes-agent status --json`
14
14
  - `goodvibes-agent` launches the TUI in a real PTY
15
15
 
16
- ## Runtime Prerequisite
16
+ ## Service Prerequisite
17
17
 
18
- Start the GoodVibes runtime from the owning GoodVibes host before launching Agent. Agent expects the runtime to expose public operator routes and the isolated Agent Knowledge routes:
18
+ Start connected GoodVibes services from GoodVibes TUI or the owning host before launching Agent. Agent expects those services to expose public operator routes and the isolated Agent Knowledge routes:
19
19
 
20
20
  ```text
21
21
  http://127.0.0.1:3421
@@ -24,7 +24,7 @@ http://127.0.0.1:3421
24
24
  /api/goodvibes-agent/knowledge/search
25
25
  ```
26
26
 
27
- If the runtime API is on a different host or port, use a one-off override:
27
+ If the GoodVibes API is on a different host or port, use a one-off override:
28
28
 
29
29
  ```sh
30
30
  goodvibes-agent --runtime-url http://127.0.0.1:3421 status
@@ -36,15 +36,15 @@ For a persistent shell/session override, set:
36
36
  export GOODVIBES_AGENT_RUNTIME_URL=http://127.0.0.1:3421
37
37
  ```
38
38
 
39
- `GOODVIBES_AGENT_BASE_URL` is accepted as a legacy alias. These values only select the external runtime API root; they do not enable runtime hosting inside Agent.
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 services.
40
40
 
41
- If the runtime is unavailable, unauthenticated, or on an incompatible SDK version, Agent commands report actionable diagnostics without printing token values.
41
+ If connected GoodVibes services are unavailable, unauthenticated, or on an incompatible SDK version, Agent commands report actionable diagnostics without printing token values.
42
42
 
43
43
  ## Product Boundary
44
44
 
45
45
  Agent owns the operator assistant TUI, local profiles, local memory/routines/skills/personas, isolated Agent Knowledge calls, companion chat, approvals/automation visibility, and explicit build delegation.
46
46
 
47
- Agent does not host runtime connectivity. It does not provide commands to install, expose, start, stop, restart, or mutate the runtime host.
47
+ Agent does not own connected-service lifecycle. It does not provide commands to install, expose, start, stop, restart, or mutate connected GoodVibes services.
48
48
 
49
49
  Agent Knowledge/Wiki is its own product segment. Agent uses `/api/goodvibes-agent/knowledge/*` only and must not fall back to default Knowledge/Wiki or other product-specific knowledge routes.
50
50
 
@@ -5,23 +5,34 @@ 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
- - An already-running GoodVibes runtime compatible with `@pellux/goodvibes-sdk@0.33.35`
9
- - A runtime token/config path accepted by that external runtime
8
+ - Connected GoodVibes services compatible with `@pellux/goodvibes-sdk@0.33.35`
9
+ - A token/config path accepted by connected GoodVibes services
10
10
 
11
- Agent does not launch the runtime for you.
11
+ Agent does not launch connected GoodVibes services for you.
12
+
13
+ Use the interactive TUI first. CLI subcommands are secondary support paths for install checks, setup inspection, and scriptable local Agent libraries.
12
14
 
13
15
  ## Install From Package
14
16
 
15
17
  ```sh
16
18
  bun add -g --trust @pellux/goodvibes-agent
17
19
  goodvibes-agent --help
18
- goodvibes-agent launch
20
+ goodvibes-agent
19
21
  goodvibes-agent status
20
22
  goodvibes-agent personas list
21
23
  goodvibes-agent skills list
22
24
  goodvibes-agent memory list
23
25
  ```
24
26
 
27
+ The exact bare Bun command is supported too:
28
+
29
+ ```sh
30
+ bun add -g @pellux/goodvibes-agent
31
+ goodvibes-agent
32
+ ```
33
+
34
+ If Bun blocks lifecycle scripts during the bare install, the executable should still be present. Run `bun pm -g untrusted` and trust the listed GoodVibes/parser dependencies before relying on provider parsing, native parser helpers, or SDK postinstall setup.
35
+
25
36
  If the installed command is not found, add Bun's global bin directory to `PATH`:
26
37
 
27
38
  ```sh
@@ -53,13 +64,15 @@ bun run dev
53
64
 
54
65
  `bun run dev` starts the Agent TUI. The same entrypoint backs the installed `goodvibes-agent` command.
55
66
 
56
- `goodvibes-agent` and `goodvibes-agent launch` both start the interactive Agent TUI. On a fresh Agent home, the TUI opens Agent setup first.
67
+ `goodvibes-agent` starts the interactive Agent TUI. On a fresh Agent home, the TUI opens Agent setup first.
57
68
 
58
- 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, knowledge status, local memory and skills, read-only work/approval/automation views, and explicit GoodVibes TUI build delegation.
69
+ 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.
59
70
 
60
71
  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.
61
72
 
62
- Use `/schedule receipts` to review redacted local routine promotion history and `/schedule reconcile` to compare those receipts with live external schedules through public `schedules.list`.
73
+ 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.
74
+
75
+ 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`.
63
76
 
64
77
  The local behavior libraries are also available from the installed CLI:
65
78
 
@@ -89,7 +102,7 @@ goodvibes-agent --agent-profile household status
89
102
  goodvibes-agent --agent-profile household
90
103
  ```
91
104
 
92
- 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 the external GoodVibes runtime by themselves.
105
+ 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.
93
106
 
94
107
  ## Local Memory, Personas, Routines, And Skills
95
108
 
@@ -102,6 +115,7 @@ Memory, personas, routines, and reusable Agent skills are local to GoodVibes Age
102
115
  /routines create --name "Evening Review" --description "Review open work before shutdown" --steps "Check work plan, approvals, and Agent Knowledge status before summarizing." --enabled true
103
116
  /routines start evening-review
104
117
  /schedule promote-routine evening-review --cron "0 17 * * 1-5" --timezone America/Chicago --yes
118
+ /channels
105
119
  /agent-skills create --name "Morning Brief" --description "Daily briefing flow" --procedure "Check tasks, approvals, calendar, and unread state before summarizing." --enabled true
106
120
  /agent-skills enabled
107
121
  /skills local list
@@ -111,9 +125,11 @@ Memory, personas, routines, and reusable Agent skills are local to GoodVibes Age
111
125
 
112
126
  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.
113
127
 
114
- ## External Runtime
128
+ 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.
129
+
130
+ ## Connected GoodVibes Services
115
131
 
116
- Start the runtime from GoodVibes TUI or the owning host before using runtime-backed Agent features. Agent expects the runtime to expose the public operator/Agent routes, including:
132
+ 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:
117
133
 
118
134
  - `/status`
119
135
  - `/api/goodvibes-agent/knowledge/status`
@@ -121,11 +137,11 @@ Start the runtime from GoodVibes TUI or the owning host before using runtime-bac
121
137
  - `/api/goodvibes-agent/knowledge/search`
122
138
  - `/api/goodvibes-agent/knowledge/ingest/url`
123
139
 
124
- If the runtime 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.
140
+ 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.
125
141
 
126
142
  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.
127
143
 
128
- Runtime-hosting commands are not part of GoodVibes Agent. Use `goodvibes-agent status`, `goodvibes-agent doctor`, and the Agent TUI status views for diagnostics.
144
+ Service-hosting commands are not part of GoodVibes Agent. Use `goodvibes-agent status`, `goodvibes-agent doctor`, and the Agent TUI status views for diagnostics.
129
145
 
130
146
  ## Current Product Notes
131
147
 
@@ -9,7 +9,7 @@ GoodVibes Agent's current installable public alpha version is recorded in `packa
9
9
  - SDK dependency: exact pin to `@pellux/goodvibes-sdk@0.33.35`
10
10
  - runtime: Bun
11
11
  - source language: TypeScript
12
- - runtime ownership: external only
12
+ - connected services ownership: outside Agent
13
13
 
14
14
  End users install and run GoodVibes Agent with Bun:
15
15
 
@@ -52,16 +52,16 @@ Also run the package install smoke from a packed artifact. It must prove:
52
52
  - `goodvibes-agent --help` works
53
53
  - `goodvibes-agent --version` reports the package version
54
54
  - the installed TUI launches in a PTY and does not exit immediately
55
- - runtime-backed commands fail clearly when the external GoodVibes runtime is unavailable or unauthenticated
55
+ - connected-service commands fail clearly when GoodVibes services are unavailable or unauthenticated
56
56
  - no token value is printed
57
57
 
58
58
  ## Do Not Ship
59
59
 
60
- Do not publish if package-facing docs or install commands refer to another package name, another executable, or Agent-owned runtime lifecycle.
60
+ Do not publish if package-facing docs or install commands refer to another package name, another executable, or Agent-owned connected-service lifecycle.
61
61
 
62
62
  Do not publish if Agent Knowledge commands can fall back to default Knowledge/Wiki or another product-specific knowledge route. Agent Knowledge must use the isolated `/api/goodvibes-agent/knowledge/*` segment.
63
63
 
64
- Do not ship runtime host binaries from this package. If Agent later gets compiled artifacts, they must use Agent artifact names and remain separate from runtime ownership.
64
+ Do not ship GoodVibes service binaries from this package. If Agent later gets compiled artifacts, they must use Agent artifact names and remain separate from connected-service ownership.
65
65
 
66
66
  ## Product Rule
67
67
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pellux/goodvibes-agent",
3
- "version": "0.1.107",
3
+ "version": "0.1.108",
4
4
  "private": false,
5
5
  "description": "GoodVibes personal operator assistant TUI with a proactive Agent product brain, isolated Agent Knowledge, local profiles, routines, skills, personas, and explicit build delegation.",
6
6
  "type": "module",
@@ -22,7 +22,7 @@
22
22
  "CHANGELOG.md",
23
23
  "docs/README.md",
24
24
  "docs/getting-started.md",
25
- "docs/runtime-connection.md",
25
+ "docs/connected-services.md",
26
26
  "docs/release-and-publishing.md"
27
27
  ],
28
28
  "scripts": {
@@ -82,17 +82,7 @@
82
82
  "bun": ">=1.3.10"
83
83
  },
84
84
  "dependencies": {
85
- "@agentclientprotocol/sdk": "^0.16.1",
86
- "@anthropic-ai/bedrock-sdk": "^0.28.1",
87
- "@anthropic-ai/sdk": "^0.82.0",
88
- "@anthropic-ai/vertex-sdk": "^0.16.0",
89
- "@aws/bedrock-token-generator": "^1.1.0",
90
85
  "@pellux/goodvibes-sdk": "0.33.35",
91
- "fuse.js": "^7.1.0",
92
- "graphql": "^16.13.2",
93
- "jszip": "^3.10.1",
94
- "node-edge-tts": "^1.2.10",
95
- "openai": "^6.29.0",
96
86
  "sql.js": "^1.14.1",
97
87
  "sqlite-vec": "^0.1.9",
98
88
  "zustand": "^5.0.12"
@@ -0,0 +1,75 @@
1
+ import {
2
+ REMINDER_SCHEDULE_METHOD,
3
+ type ReminderScheduleFailure,
4
+ type ReminderSchedulePreview,
5
+ type ReminderScheduleSuccess,
6
+ } from './reminder-schedule.ts';
7
+
8
+ function isRecord(value: unknown): value is Record<string, unknown> {
9
+ return Boolean(value) && typeof value === 'object' && !Array.isArray(value);
10
+ }
11
+
12
+ function readString(record: Record<string, unknown>, key: string): string | null {
13
+ const value = record[key];
14
+ return typeof value === 'string' ? value : null;
15
+ }
16
+
17
+ function scheduleValue(preview: ReminderSchedulePreview): string {
18
+ if (preview.payload.kind === 'cron') {
19
+ return `${preview.payload.cron}${preview.payload.timezone ? ` [${preview.payload.timezone}]` : ''}`;
20
+ }
21
+ if (preview.payload.kind === 'every') return String(preview.payload.every);
22
+ return String(preview.payload.at);
23
+ }
24
+
25
+ export function formatReminderSchedulePreview(preview: ReminderSchedulePreview): string {
26
+ const delivery = preview.payload.delivery;
27
+ const deliveryTargetCount = delivery?.targets.length ?? 0;
28
+ return [
29
+ 'GoodVibes schedule preview for Agent reminder',
30
+ ` route: ${preview.method} ${preview.route}`,
31
+ ` name: ${String(preview.payload.name ?? '(service default)')}`,
32
+ ` reminder: ${preview.message}`,
33
+ ` schedule: ${preview.payload.kind} ${scheduleValue(preview)}`,
34
+ ` enabled: ${preview.payload.enabled === false ? 'no' : 'yes'}`,
35
+ ` delivery: ${delivery?.mode ?? 'none'}${deliveryTargetCount > 0 ? ` (${deliveryTargetCount} target${deliveryTargetCount === 1 ? '' : 's'})` : ''}`,
36
+ ' target: connected GoodVibes services/main conversation route',
37
+ ' policy: reminder delivery only; isolated Agent Knowledge only; no default wiki/non-Agent fallback',
38
+ ' next: rerun with --yes to create this connected reminder schedule',
39
+ ].join('\n');
40
+ }
41
+
42
+ export function formatReminderScheduleSuccess(result: ReminderScheduleSuccess): string {
43
+ const record: Record<string, unknown> = isRecord(result.schedule) ? result.schedule : {};
44
+ const id = readString(record, 'id') ?? '(unknown)';
45
+ const status = readString(record, 'status') ?? (record.enabled === false ? 'paused' : 'enabled');
46
+ return [
47
+ 'Created GoodVibes schedule for Agent reminder',
48
+ ` schedule: ${id}`,
49
+ ` status: ${status}`,
50
+ ` route: ${result.kind} ${result.route}`,
51
+ ` reminder: ${result.message}`,
52
+ ' next: inspect with /schedule list',
53
+ ].join('\n');
54
+ }
55
+
56
+ export function formatReminderScheduleFailure(failure: ReminderScheduleFailure): string {
57
+ return [
58
+ `GoodVibes reminder schedule error: ${failure.kind}`,
59
+ ` ${failure.error}`,
60
+ failure.baseUrl ? ` service: ${failure.baseUrl}` : null,
61
+ ` route: ${REMINDER_SCHEDULE_METHOD} ${failure.route}`,
62
+ failure.kind === 'version_mismatch' && failure.daemonVersion && failure.expectedSdkVersion
63
+ ? ` versions: service=${failure.daemonVersion} expected=${failure.expectedSdkVersion}`
64
+ : null,
65
+ failure.kind === 'auth_required'
66
+ ? ' next: pair/authenticate with connected GoodVibes services, then retry with --yes.'
67
+ : null,
68
+ failure.kind === 'daemon_unavailable'
69
+ ? ' next: make connected GoodVibes services available outside Agent, then retry.'
70
+ : null,
71
+ failure.kind === 'version_mismatch' || failure.kind === 'daemon_route_unavailable'
72
+ ? ' next: update connected GoodVibes services so public schedules.create is available.'
73
+ : null,
74
+ ].filter((line): line is string => Boolean(line)).join('\n');
75
+ }