@pellux/goodvibes-agent 1.4.4 → 1.5.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.
- package/CHANGELOG.md +14 -0
- package/README.md +7 -7
- package/dist/package/main.js +7424 -12241
- package/docs/README.md +2 -2
- package/docs/channels-remote-and-api.md +1 -1
- package/docs/getting-started.md +2 -2
- package/docs/release-and-publishing.md +1 -1
- package/docs/tools-and-commands.md +5 -5
- package/package.json +4 -2
- package/release/performance-snapshot.json +2 -2
- package/release/release-notes.md +11 -7
- package/release/release-readiness.json +6 -6
- package/src/agent/behavior-discovery-summary.ts +4 -18
- package/src/agent/calendar-registry.ts +322 -0
- package/src/agent/competitive-feature-inventory.ts +268 -130
- package/src/agent/document-registry.ts +5 -1
- package/src/agent/email/email-service.ts +350 -0
- package/src/agent/email/imap-client.ts +596 -0
- package/src/agent/email/smtp-client.ts +453 -0
- package/src/agent/ics-calendar.ts +662 -0
- package/src/agent/ics-timezone.ts +172 -0
- package/src/agent/markdown-frontmatter.ts +31 -0
- package/src/agent/memory-safety.ts +1 -1
- package/src/agent/note-registry.ts +3 -9
- package/src/agent/persona-discovery.ts +3 -15
- package/src/agent/persona-registry.ts +1 -10
- package/src/agent/research-source-registry.ts +5 -1
- package/src/agent/routine-discovery.ts +3 -15
- package/src/agent/runtime-profile.ts +3 -0
- package/src/agent/skill-discovery.ts +3 -15
- package/src/agent/skill-draft-proposer.ts +203 -0
- package/src/agent/skill-draft-runner.ts +201 -0
- package/src/agent/skill-registry.ts +36 -1
- package/src/agent/skill-standard.ts +99 -0
- package/src/agent/vibe-file.ts +7 -22
- package/src/cli/completion.ts +1 -1
- package/src/cli/config-overrides.ts +10 -1
- package/src/cli/redaction.ts +17 -5
- package/src/config/provider-model.ts +2 -1
- package/src/config/secret-config.ts +13 -6
- package/src/core/activity-feed.ts +97 -0
- package/src/core/away-digest.ts +161 -0
- package/src/core/conversation-rendering.ts +7 -3
- package/src/core/conversation.ts +22 -15
- package/src/core/hardware-profile.ts +362 -0
- package/src/core/last-seen-store.ts +78 -0
- package/src/core/plain-language.ts +52 -0
- package/src/core/setup-incomplete-hint.ts +90 -0
- package/src/core/system-message-router.ts +38 -87
- package/src/input/agent-workspace-basic-command-editor-submission.ts +60 -220
- package/src/input/agent-workspace-basic-command-editors.ts +39 -141
- package/src/input/agent-workspace-categories.ts +40 -125
- package/src/input/agent-workspace-command-editor.ts +4 -0
- package/src/input/agent-workspace-host-category.ts +0 -5
- package/src/input/agent-workspace-local-editor-submission.ts +3 -1
- package/src/input/agent-workspace-navigation.ts +10 -3
- package/src/input/agent-workspace-onboarding-actions.ts +132 -0
- package/src/input/agent-workspace-onboarding-categories.ts +29 -26
- package/src/input/agent-workspace-onboarding-finish.ts +11 -4
- package/src/input/agent-workspace-onboarding-state.ts +111 -0
- package/src/input/agent-workspace-profile-editor-submission.ts +260 -0
- package/src/input/agent-workspace-profile-editors.ts +155 -0
- package/src/input/agent-workspace-subscription-editor.ts +7 -0
- package/src/input/agent-workspace-types.ts +5 -1
- package/src/input/agent-workspace.ts +65 -39
- package/src/input/command-registry.ts +18 -5
- package/src/input/commands/agent-runtime-profile-runtime.ts +2 -1
- package/src/input/commands/agent-skills-runtime.ts +60 -3
- package/src/input/commands/calendar-runtime.ts +209 -0
- package/src/input/commands/channels-runtime.ts +1 -0
- package/src/input/commands/command-error.ts +9 -0
- package/src/input/commands/compat-runtime.ts +1 -0
- package/src/input/commands/config.ts +1 -0
- package/src/input/commands/conversation-runtime.ts +1 -1
- package/src/input/commands/delegation-runtime.ts +5 -6
- package/src/input/commands/email-runtime.ts +387 -0
- package/src/input/commands/experience-runtime.ts +17 -4
- package/src/input/commands/guidance-runtime.ts +1 -1
- package/src/input/commands/health-runtime.ts +6 -1
- package/src/input/commands/knowledge-format.ts +73 -0
- package/src/input/commands/knowledge.ts +9 -74
- package/src/input/commands/local-provider-runtime.ts +2 -1
- package/src/input/commands/local-runtime.ts +10 -4
- package/src/input/commands/mcp-runtime.ts +7 -0
- package/src/input/commands/notify-runtime.ts +17 -1
- package/src/input/commands/onboarding-runtime.ts +1 -0
- package/src/input/commands/operator-actions-runtime.ts +1 -0
- package/src/input/commands/operator-runtime.ts +3 -0
- package/src/input/commands/personas-runtime.ts +1 -0
- package/src/input/commands/platform-access-runtime.ts +40 -17
- package/src/input/commands/product-runtime.ts +6 -1
- package/src/input/commands/provider-accounts-runtime.ts +3 -2
- package/src/input/commands/qrcode-runtime.ts +1 -0
- package/src/input/commands/routines-runtime.ts +1 -0
- package/src/input/commands/runtime-services.ts +0 -13
- package/src/input/commands/security-runtime.ts +1 -0
- package/src/input/commands/session-content.ts +1 -0
- package/src/input/commands/shell-core.ts +5 -2
- package/src/input/commands/subscription-runtime.ts +33 -9
- package/src/input/commands/support-bundle-runtime.ts +8 -1
- package/src/input/commands/tasks-runtime.ts +1 -0
- package/src/input/commands/tts-runtime.ts +1 -0
- package/src/input/commands/vibe-runtime.ts +1 -0
- package/src/input/commands.ts +4 -0
- package/src/input/feed-context-factory.ts +3 -12
- package/src/input/handler-command-route.ts +7 -60
- package/src/input/handler-feed-routes.ts +0 -194
- package/src/input/handler-feed.ts +2 -54
- package/src/input/handler-interactions.ts +0 -2
- package/src/input/handler-modal-stack.ts +0 -9
- package/src/input/handler-picker-routes.ts +24 -1
- package/src/input/handler-shortcuts.ts +11 -40
- package/src/input/handler-ui-state.ts +13 -0
- package/src/input/handler.ts +8 -35
- package/src/input/keybindings.ts +40 -17
- package/src/input/model-picker-local-fit.ts +130 -0
- package/src/input/submission-router.ts +0 -5
- package/src/main.ts +111 -89
- package/src/renderer/activity-sidebar.ts +186 -0
- package/src/renderer/agent-workspace-context-lines.ts +5 -48
- package/src/renderer/agent-workspace-style.ts +1 -1
- package/src/renderer/agent-workspace.ts +14 -2
- package/src/renderer/compositor.ts +37 -125
- package/src/renderer/conversation-overlays.ts +3 -3
- package/src/renderer/help-overlay.ts +7 -5
- package/src/renderer/model-workspace.ts +101 -86
- package/src/{panels → renderer}/polish.ts +3 -3
- package/src/renderer/shell-surface.ts +4 -5
- package/src/renderer/status-token.ts +31 -11
- package/src/renderer/tab-strip.ts +1 -1
- package/src/renderer/tool-call.ts +7 -8
- package/src/renderer/tool-labels.ts +92 -0
- package/src/renderer/ui-factory.ts +48 -96
- package/src/runtime/bootstrap-command-context.ts +0 -5
- package/src/runtime/bootstrap-command-parts.ts +6 -15
- package/src/runtime/bootstrap-core.ts +34 -13
- package/src/runtime/bootstrap-hook-bridge.ts +3 -1
- package/src/runtime/bootstrap-shell.ts +3 -50
- package/src/runtime/bootstrap.ts +3 -4
- package/src/runtime/context.ts +1 -1
- package/src/runtime/diagnostics/panels/index.ts +0 -1
- package/src/runtime/diagnostics/panels/policy.ts +1 -1
- package/src/runtime/execution-ledger.ts +16 -1
- package/src/runtime/index.ts +6 -1
- package/src/runtime/onboarding/index.ts +1 -0
- package/src/runtime/onboarding/onboarding-state.ts +200 -0
- package/src/{panels → runtime}/provider-account-snapshot.ts +5 -2
- package/src/runtime/services.ts +16 -4
- package/src/runtime/terminal-output-guard.ts +7 -0
- package/src/runtime/tool-permission-safety.ts +1 -1
- package/src/runtime/ui/model-picker/data-provider.ts +1 -1
- package/src/runtime/ui/model-picker/health-enrichment.ts +2 -2
- package/src/runtime/ui/model-picker/types.ts +2 -2
- package/src/runtime/ui/provider-health/data-provider.ts +3 -3
- package/src/runtime/ui/provider-health/types.ts +2 -2
- package/src/runtime/ui-services.ts +0 -2
- package/src/shell/agent-workspace-fullscreen.ts +0 -1
- package/src/shell/autonomy-surfacing.ts +272 -0
- package/src/shell/session-continuity-hints.ts +0 -6
- package/src/shell/startup-wiring.ts +221 -0
- package/src/shell/ui-openers.ts +18 -29
- package/src/tools/agent-context-policy.ts +1 -1
- package/src/tools/agent-harness-background-processes.ts +4 -4
- package/src/tools/agent-harness-browser-cockpit-route.ts +3 -3
- package/src/tools/agent-harness-command-runner.ts +6 -1
- package/src/tools/agent-harness-document-ops.ts +26 -53
- package/src/tools/agent-harness-execution-history.ts +1 -13
- package/src/tools/agent-harness-execution-posture.ts +0 -15
- package/src/tools/agent-harness-keybinding-metadata.ts +28 -29
- package/src/tools/agent-harness-local-model-cookbook.ts +24 -1
- package/src/tools/agent-harness-metadata.ts +16 -0
- package/src/tools/agent-harness-mode-catalog.ts +2 -9
- package/src/tools/agent-harness-provider-account-metadata.ts +2 -2
- package/src/tools/agent-harness-setup-posture-utils.ts +1 -1
- package/src/tools/agent-harness-tool-schema.ts +13 -14
- package/src/tools/agent-harness-tool.ts +27 -23
- package/src/tools/agent-harness-ui-surface-metadata.ts +10 -20
- package/src/tools/agent-harness-workspace-action-runner.ts +3 -4
- package/src/tools/agent-workspace-tool.ts +2 -33
- package/src/utils/terminal-width.ts +9 -3
- package/src/version.ts +1 -1
- package/src/input/agent-workspace-panel-route.ts +0 -44
- package/src/input/panel-integration-actions.ts +0 -26
- package/src/panels/approval-panel.ts +0 -149
- package/src/panels/automation-control-panel.ts +0 -212
- package/src/panels/base-panel.ts +0 -254
- package/src/panels/builtin/agent.ts +0 -58
- package/src/panels/builtin/knowledge.ts +0 -26
- package/src/panels/builtin/operations.ts +0 -121
- package/src/panels/builtin/session.ts +0 -138
- package/src/panels/builtin/shared.ts +0 -275
- package/src/panels/builtin/usage.ts +0 -21
- package/src/panels/builtin-panels.ts +0 -23
- package/src/panels/confirm-state.ts +0 -61
- package/src/panels/context-visualizer-panel.ts +0 -204
- package/src/panels/cost-tracker-panel.ts +0 -444
- package/src/panels/docs-panel.ts +0 -285
- package/src/panels/index.ts +0 -25
- package/src/panels/knowledge-panel.ts +0 -417
- package/src/panels/memory-panel.ts +0 -226
- package/src/panels/panel-list-panel.ts +0 -464
- package/src/panels/panel-manager.ts +0 -570
- package/src/panels/provider-accounts-panel.ts +0 -233
- package/src/panels/provider-health-domains.ts +0 -208
- package/src/panels/provider-health-panel.ts +0 -720
- package/src/panels/provider-health-tracker.ts +0 -115
- package/src/panels/provider-stats-panel.ts +0 -366
- package/src/panels/qr-panel.ts +0 -207
- package/src/panels/schedule-panel.ts +0 -321
- package/src/panels/scrollable-list-panel.ts +0 -491
- package/src/panels/search-focus.ts +0 -32
- package/src/panels/security-panel.ts +0 -295
- package/src/panels/session-browser-panel.ts +0 -395
- package/src/panels/session-maintenance.ts +0 -125
- package/src/panels/subscription-panel.ts +0 -263
- package/src/panels/system-messages-panel.ts +0 -230
- package/src/panels/tasks-panel.ts +0 -344
- package/src/panels/thinking-panel.ts +0 -304
- package/src/panels/token-budget-panel.ts +0 -475
- package/src/panels/tool-inspector-panel.ts +0 -436
- package/src/panels/types.ts +0 -54
- package/src/renderer/panel-composite.ts +0 -158
- package/src/renderer/panel-tab-bar.ts +0 -69
- package/src/renderer/panel-workspace-bar.ts +0 -42
- package/src/runtime/diagnostics/panels/panel-resources.ts +0 -118
- package/src/tools/agent-harness-panel-metadata.ts +0 -211
- /package/src/runtime/perf/{panel-health-monitor.ts → component-health.ts} +0 -0
package/docs/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# GoodVibes Agent Docs
|
|
2
2
|
|
|
3
|
-
These are the package-facing docs for the GoodVibes Agent `1.
|
|
3
|
+
These are the package-facing docs for the GoodVibes Agent `1.5.x` release line.
|
|
4
4
|
|
|
5
5
|
## Current Docs
|
|
6
6
|
|
|
@@ -32,7 +32,7 @@ Agent-owned model tools expose Agent-controlled product surfaces plus operator/a
|
|
|
32
32
|
- `setup` for the first-run path: status, item lookup, checkpoint inspect/save/clear, connected-host token repair, setup smoke, finish onboarding, and GoodVibes settings import through existing setup gates.
|
|
33
33
|
- `models` for direct provider/model route readiness, exact route/provider inspection, provider and subscription posture, local model cookbook guidance, and confirmed local server smoke checks while lower-level provider/model harness modes remain compatibility/detail routes.
|
|
34
34
|
- `settings` for first-class Agent settings list/get/set/reset and GoodVibes settings import preview/apply through existing redacted confirmation gates.
|
|
35
|
-
- `agent_harness` for the same assistant-first cockpit shown in TUI Home, searchable mode discovery, workspace actions, GoodVibes settings import workspace parity, detailed setup posture, ordered channel setup guide, channel triage, redacted channel delivery receipts, slash commands, settings compatibility modes,
|
|
35
|
+
- `agent_harness` for the same assistant-first cockpit shown in TUI Home, searchable mode discovery, workspace actions, GoodVibes settings import workspace parity, detailed setup posture, ordered channel setup guide, channel triage, redacted channel delivery receipts, slash commands, settings compatibility modes, UI surfaces including the confirmed connected browser cockpit/PWA route with certified category coverage, mobile/PWA controls, and first-run receipt evidence, keybindings, tool schemas, model detail compatibility routes, local-vs-delegated execution posture, process monitor/live tail/tool inspector supervision routes, file edit recovery, ongoing-work intake, visible autonomy queue with live research run, connected-host task, approval, automation run, and schedule records/log tails, service/daemon posture, connected-host capability/status, posture catalogs, and operator/audit release artifact inspection.
|
|
36
36
|
- `computer` for direct browser/PWA readiness, certified browser-native category routes and first-run receipts when the SDK/daemon publishes them, browser/screenshot/desktop-control route planning, setup, MCP, and confirmed visible browser cockpit handoffs; `device` remains the companion/mobile/voice/TTS/provider route while lower-level pairing/media/UI harness modes remain compatibility/detail routes.
|
|
37
37
|
- `agent_knowledge` and `agent_knowledge_ingest` for isolated Agent Knowledge.
|
|
38
38
|
- `vibe` for direct VIBE.md personality status/show, confirmed project or global VIBE.md initialization, and confirmed VIBE.md-to-persona import.
|
|
@@ -18,7 +18,7 @@ Agent channel UX should show:
|
|
|
18
18
|
- the command or workspace action needed to pair companion clients through QR-first setup;
|
|
19
19
|
- the confirmed `Send channel message` action when the user explicitly wants a one-off delivery.
|
|
20
20
|
|
|
21
|
-
VIBE.md, project context files, 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`; channel triage is visible through Agent Workspace -> Channels -> Channel triage or `/channels triage`, and recent receipts are visible through Delivery receipts or `/channels deliveries`.
|
|
21
|
+
VIBE.md, project context files, 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 `/qrcode (alias /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`; channel triage is visible through Agent Workspace -> Channels -> Channel triage or `/channels triage`, and recent receipts are visible through Delivery receipts or `/channels deliveries`.
|
|
22
22
|
|
|
23
23
|
The model can inspect pairing and device posture with `device action:"status"`, and inspect one pairing route with `device action:"capability"` using `capabilityId`, `pairingRouteId`, `target`, or `query`. Lower-level `agent_harness` modes `pairing_posture` and `pairing_route` remain available for detailed compatibility. Those routes return endpoint binding, pairing surface id, route catalog, token fingerprint, and companion device capability posture only; raw tokens and QR payloads are never returned by the read-only posture modes. QR display, manual token display, companion connection, channel delivery, task, approval, provider/model, and attachment actions stay visible user flows.
|
|
24
24
|
|
package/docs/getting-started.md
CHANGED
|
@@ -61,7 +61,7 @@ The main Agent model can use the Agent-controlled harness through Agent-owned to
|
|
|
61
61
|
Default discovery is intentionally compact:
|
|
62
62
|
|
|
63
63
|
- plural modes return ids, labels, counts, safe state, effect class, and route hints;
|
|
64
|
-
- workspace action, slash-command, CLI,
|
|
64
|
+
- workspace action, slash-command, CLI, UI surface, shortcut/keybinding, settings, tool, connected-host posture/status/capability, and operator/audit catalogs include short `modelRoute` or `modelAccess` hints for route choice;
|
|
65
65
|
- singular modes return detailed policy and lookup metadata;
|
|
66
66
|
- `includeParameters:true` adds schemas, editor fields, model routes, parameter hints, release artifact data, redacted log tail, and detail that would be too large for normal discovery.
|
|
67
67
|
|
|
@@ -75,7 +75,7 @@ Common model routes:
|
|
|
75
75
|
| Slash commands | `workspace action:"commands|command|run_command"`; lower-level command harness modes remain available for compatibility/detail |
|
|
76
76
|
| Settings | `settings action:"list|get|set|reset|import"`; lower-level `agent_harness mode:"settings"`, `mode:"get_setting"`, `mode:"set_setting"`, `mode:"reset_setting"` remain available for compatibility/detail |
|
|
77
77
|
| GoodVibes settings import | `settings action:"import"` previews by default; apply with `confirm:true explicitUserRequest:"..."`; `import_goodvibes_settings action:"preview|apply"` remains available |
|
|
78
|
-
| Visible UI and devices | `workspace action:"surfaces|surface|open
|
|
78
|
+
| Visible UI and devices | `workspace action:"surfaces|surface|open"` for visible navigation; `computer action:"status|plan|control|browser|setup|mcp|open_browser"` for browser/PWA readiness, certified browser-native category routes and first-run receipts, browser/screenshot/desktop-control planning, and computer-use UX; `device action:"status|capability|voice|provider|open_tts_provider|open_tts_voice"` for device/voice UX |
|
|
79
79
|
| Keybindings | `workspace action:"shortcuts|keybindings|keybinding|run_keybinding|set_keybinding|reset_keybinding"` |
|
|
80
80
|
| Tool contracts | `agent_harness mode:"tools"`, `mode:"tool"` |
|
|
81
81
|
| Agent Knowledge | `agent_knowledge`, `agent_knowledge_ingest` |
|
|
@@ -70,7 +70,7 @@ Shared release metadata verification requires `architecture:check` to keep the A
|
|
|
70
70
|
|
|
71
71
|
Shared release metadata verification requires `perf:check` to load `release/performance-snapshot.json`, validate its render samples and extra SLO/queue/tool/compaction/integration metrics, run the CI performance-budget evaluation, print the formatted report, and exit from the budget result. The release performance snapshot is staged with release metadata so the tag carries the exact recorded sample used by the branch-CI performance gate.
|
|
72
72
|
|
|
73
|
-
Shared release metadata verification requires `verification:ledger` to keep JSON and Markdown evidence output plus inventory coverage for settings schema, feature flags, slash commands,
|
|
73
|
+
Shared release metadata verification requires `verification:ledger` to keep JSON and Markdown evidence output plus inventory coverage for settings schema, feature flags, slash commands, top-level CLI commands, external surfaces, onboarding capability bundles, the model-visible release evidence bundle, the model-visible service posture surface, the model-visible channel readiness surface, the model-visible notification target surface, the model-visible provider account surface, the model-visible MCP server surface, the model-visible setup/onboarding surface, the model-visible model routing surface, the model-visible pairing surface, the model-visible delegation surface, the model-visible security/support bundle surface, the model-visible voice/media posture surface, the model-visible sessions/bookmarks surface, the model-visible operator method catalog, the model-visible command/CLI/tool catalogs, the model-visible keyboard route catalog, the model-visible harness mode catalog, and the release-quality dimensions from `release/release-readiness.json`, including local-signal, local-behavior, and external-outcome accounting. Package verification also enforces compact model tool registration, wrapped tool definitions, harness catalog defaults, searchable harness mode discovery, command/CLI/tool route metadata, keyboard route metadata, connected-host route hints, operator/audit route hints, and stripped nested schema descriptions so tool metadata stays usable.
|
|
74
74
|
|
|
75
75
|
Shared release metadata verification requires `verification:live` to keep the external-outcome audit for stable releases: compiled CLI checks, connected-host token/URL discovery, connected-host status/health/model routes, isolated Agent Knowledge status/ask/search/source/node/issue/map/connector route checks plus packaged evidence for item inspection, JSON/Markdown report artifacts, strict mode, and Agent Knowledge contamination guards.
|
|
76
76
|
|
|
@@ -80,7 +80,7 @@ Discovery modes:
|
|
|
80
80
|
| `route action:"plan"` plus lower-level `route_decision` | User-task route planning across Agent setup, Personal Ops, research runner/report workflows, autonomy, execution, delegation, computer/browser/PWA, workspace, host, device/voice/TTS, channel, security, support bundles, saved sessions/bookmarks, release/audit evidence, Local Context, external memory-provider setup, and Knowledge surfaces. |
|
|
81
81
|
| `workspace action:"status|actions|action"` plus lower-level `workspace`, `workspace_categories`, `workspace_actions` | Workspace categories and actions. |
|
|
82
82
|
| `workspace action:"commands|command|cli_commands|cli_command"` plus lower-level `commands`, `cli_commands` | Slash commands and top-level package CLI mirrors with compact policy and route hints. |
|
|
83
|
-
| `workspace action:"
|
|
83
|
+
| `workspace action:"surfaces|surface"` plus lower-level `ui_surfaces` | Visible modal/overlay/picker/workspace surfaces. |
|
|
84
84
|
| `workspace action:"shortcuts|keybindings|keybinding"` plus lower-level `shortcuts`, `keybindings` | Fixed shortcuts and configurable keybindings with direct route/access metadata. |
|
|
85
85
|
| `settings` | Compact Agent setting rows with category, prefix, query, hidden, and limit filters. |
|
|
86
86
|
| `tools` | First-class model tool definitions with compact harness inspection routes; schema details require `includeParameters:true` or `tool`. |
|
|
@@ -109,7 +109,7 @@ Single-item inspect modes:
|
|
|
109
109
|
| `mode` | `target` or `query` |
|
|
110
110
|
| `workspace_action` | `actionId`, `command`, `target`, `query` |
|
|
111
111
|
| `command`, `cli_command` | `command`, `commandName`, `cliCommand`, `target`, `query` |
|
|
112
|
-
| `
|
|
112
|
+
| `ui_surface`, `keybinding`, `tool` | Exact id/name or `target`/`query` |
|
|
113
113
|
| `channels action:"channel|setup|triage"`, `notification_target`, `provider_account`, `mcp_server` | Exact id or `target`/`query`; channel triage also accepts `limit` |
|
|
114
114
|
| `project_context_file` | `contextFileId`, `target`, or `query` |
|
|
115
115
|
| `agent_orchestration_agent` | `agentId`, `target`, or `query` |
|
|
@@ -134,7 +134,7 @@ Effect modes:
|
|
|
134
134
|
| `provision_connected_host_token` | Creates or repairs the local canonical connected-host token after confirmation without returning the raw token. |
|
|
135
135
|
| `mark_setup_checkpoint`, `clear_setup_checkpoint` | Saves or clears the Agent-owned setup wizard resume checkpoint after confirmation. |
|
|
136
136
|
| `run_setup_smoke` | Collects redacted first-run setup smoke evidence and can save user-run output as an artifact without implicit shell or host commands; `setup_posture` uses that evidence for setup closeout. |
|
|
137
|
-
| `workspace action:"
|
|
137
|
+
| `workspace action:"open"` | Routes visible shell navigation. |
|
|
138
138
|
| `workspace action:"run_keybinding"` | Runs supported shell-safe keybinding actions only. |
|
|
139
139
|
| `workspace action:"set_keybinding|reset_keybinding"` | Writes the same Agent `keybindings.json` file exposed to the user. |
|
|
140
140
|
| `set_setting`, `reset_setting` | Writes Agent settings through the config/secret managers. |
|
|
@@ -148,8 +148,6 @@ Registered model tool definitions are compact by default. Tool descriptions use
|
|
|
148
148
|
|
|
149
149
|
`workspace action:"actions"` returns compact action rows with short `modelRoute` hints. `workspace action:"action"` inspection returns editor schemas and `modelExecution` detail. Lower-level `workspace_actions` can include the same detail with `includeParameters:true`.
|
|
150
150
|
|
|
151
|
-
`workspace action:"panels"` returns compact built-in panel rows with workspace route metadata and a short `modelRoute` for visible navigation or matching workspace operation. `workspace action:"panel"` inspection adds policy detail and current open/focus state.
|
|
152
|
-
|
|
153
151
|
Use `computer action:"browser"` for the connected browser cockpit/PWA readiness summary and `computer action:"open_browser" confirm:true explicitUserRequest:"..."` for the visible browser handoff. Use `computer action:"plan" query:"take a screenshot"` to choose the safest browser navigation, screenshot/observation, or desktop-control workflow before invoking any live-control tool; it returns setup/review/fallback routes plus exact tool or MCP-server inspection routes when configured. Use `computer action:"control|setup|mcp"` for browser/desktop control posture, repair routes, and trusted tool/server discovery. `workspace action:"surfaces|surface|open"` is the normal visible UI route; lower-level `browser_control_route`, `ui_surfaces`, and `ui_surface` remain detailed compatibility routes. The connected browser cockpit/PWA is `surfaceId:"connected-browser-cockpit"`; it resolves the configured connected-host web URL, opens only through confirmed `computer action:"open_browser"` or `workspace action:"open"`, returns service/web setup routes when disabled, and reports workspace category coverage, mobile/PWA controls, Agent onboarding marker status, and browser/PWA first-run evidence. Certified SDK/daemon browser/PWA category-route read models can make every Agent workspace category `browser-native-ready` only when they include schema/version/publication/publisher/provenance/freshness-cursor/receipt metadata, exact inspect/open routes, and mobile/touch evidence. Certified browser/PWA first-run receipts add manifest, service-worker, install, and offline evidence with redacted URLs and summaries. Start/setup readiness still consumes the receipt from saved durable artifacts or live SDK/daemon setup read models when published, and keeps the receipt gap visible when neither source is present.
|
|
154
152
|
|
|
155
153
|
Execution routes:
|
|
@@ -266,6 +264,7 @@ Routine promotion is an explicit scheduling route. Local routines stay local unt
|
|
|
266
264
|
| `/bookmarks` | List bookmarked transcript blocks. |
|
|
267
265
|
| `/brief` | Show a concise Agent operator briefing and next actions. |
|
|
268
266
|
| `/bundle` | Export, inspect, or import redacted Agent support bundles from the TUI. |
|
|
267
|
+
| `/calendar` | Manage a local calendar: list upcoming events, import or export .ics files, and add or remove events. |
|
|
269
268
|
| `/channels` | Inspect channel readiness, delivery receipts, or send one explicitly confirmed delivery message. |
|
|
270
269
|
| `/clear` | Clear the conversation display while keeping LLM context. |
|
|
271
270
|
| `/collapse` | Collapse rendered blocks by type. |
|
|
@@ -277,6 +276,7 @@ Routine promotion is an explicit scheduling route. Local routines stay local unt
|
|
|
277
276
|
| `/conversation` | Review conversation structure, transcript hotspots, and composer posture. |
|
|
278
277
|
| `/delegate` | Explicitly delegate build/fix/review work to GoodVibes TUI with reason, success criteria, workspace hint, priority, and explicit review intent. |
|
|
279
278
|
| `/effort` | Show or set reasoning effort level. |
|
|
279
|
+
| `/email` | Configure direct email, read inbox summaries read-only, and send a confirmed message. |
|
|
280
280
|
| `/expand` | Expand rendered blocks by type. |
|
|
281
281
|
| `/export` | Export the current conversation to Markdown. |
|
|
282
282
|
| `/health` | Review startup posture, connected-host readiness, provider health, and Agent continuity. |
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pellux/goodvibes-agent",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.5.0",
|
|
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",
|
|
@@ -23,6 +23,7 @@
|
|
|
23
23
|
"README.md",
|
|
24
24
|
"CHANGELOG.md",
|
|
25
25
|
"docs/*.md",
|
|
26
|
+
"!docs/competitive-parity-plan.md",
|
|
26
27
|
"release/release-notes.md",
|
|
27
28
|
"release/performance-snapshot.json",
|
|
28
29
|
"release/release-readiness.json",
|
|
@@ -34,6 +35,7 @@
|
|
|
34
35
|
"tui": "bun run src/main.ts",
|
|
35
36
|
"dev:watch": "bun --watch src/main.ts",
|
|
36
37
|
"typecheck": "bunx tsc --noEmit",
|
|
38
|
+
"typecheck:test": "bunx tsc --noEmit -p tsconfig.test.json",
|
|
37
39
|
"check:types": "bun run typecheck",
|
|
38
40
|
"prebuild": "bun run scripts/prebuild.ts",
|
|
39
41
|
"build": "bun build src/main.ts --compile --outfile dist/goodvibes-agent",
|
|
@@ -52,7 +54,7 @@
|
|
|
52
54
|
"publish:dry-run": "bun run scripts/publish-package.ts --dry-run",
|
|
53
55
|
"publish:check": "bun run scripts/publish-check.ts",
|
|
54
56
|
"package:install-check": "bun run scripts/package-install-check.ts",
|
|
55
|
-
"ci:gate": "bun run typecheck && bun run test && bun run architecture:check && bun run perf:check && bun run build && bun run publish:check && bun run package:install-check && bun run verification:ledger",
|
|
57
|
+
"ci:gate": "bun run typecheck && bun run typecheck:test && bun run test && bun run architecture:check && bun run perf:check && bun run build && bun run publish:check && bun run package:install-check && bun run verification:ledger",
|
|
56
58
|
"build:prod": "bun run scripts/build.ts",
|
|
57
59
|
"build:all": "bun run scripts/build.ts --all",
|
|
58
60
|
"perf:check": "bun run scripts/perf-check.ts",
|
|
@@ -40,8 +40,8 @@
|
|
|
40
40
|
{ "keyEventAt": 1780491600440, "respondedAt": 1780491600456, "latencyMs": 16 },
|
|
41
41
|
{ "keyEventAt": 1780491600460, "respondedAt": 1780491600484, "latencyMs": 24 }
|
|
42
42
|
],
|
|
43
|
-
"heapUsedBytes":
|
|
44
|
-
"rssBytes":
|
|
43
|
+
"heapUsedBytes": 54525952,
|
|
44
|
+
"rssBytes": 93323264
|
|
45
45
|
},
|
|
46
46
|
"extraMetrics": {
|
|
47
47
|
"event.queue.depth": 12,
|
package/release/release-notes.md
CHANGED
|
@@ -1,7 +1,11 @@
|
|
|
1
|
-
- v1.
|
|
2
|
-
-
|
|
3
|
-
-
|
|
4
|
-
-
|
|
5
|
-
-
|
|
6
|
-
-
|
|
7
|
-
-
|
|
1
|
+
- v1.5.0 opens the 1.5 minor line: the fullscreen Agent workspace remains the primary user surface, Agent-local behavior, isolated Agent Knowledge, connected-host operator integration, explicit side-effect boundaries, and release hardening from 1.3.x and 1.4.x all stay in force. This release replaces the split-pane panel system with the Activity sidebar, rebuilds first-run onboarding around readiness, and adds local calendar, direct email, hardware-aware model recommendations, and skill import/export.
|
|
2
|
+
- Replaced the 21-panel split-pane system with a single Activity sidebar. Live activity, process output, and runtime state now surface in one consistent lane instead of stacked panels; the footer was slimmed and tool calls show human-readable labels.
|
|
3
|
+
- Rewrote the workspace Home as plain-language lanes and merged duplicate categories. The slash-command long tail moved behind /commands so the prompt surface stays focused on what users actually run.
|
|
4
|
+
- Added a While you were away digest on return plus a live Coming up sidebar fed by the local calendar, so upcoming commitments stay visible without asking.
|
|
5
|
+
- Rebuilt first-run onboarding around a readiness model: setup steps sequence themselves by what is actually configured, the flow can be resumed midway, and a completion recap shows what was set up. The first screen leads with a working path, the first-run model picker opens with a hardware-fit recommendation, and a plain-language hint appears in conversation while setup is incomplete.
|
|
6
|
+
- Competitive parity wave: local calendar support, direct email send and read over SMTP and IMAP with TLS or STARTTLS, hardware-aware model recommendations, and automatic skill drafts.
|
|
7
|
+
- Skills now import and export in the open skill standard. Exports are lossless, and skills discovered from imports stay disabled until explicitly enabled.
|
|
8
|
+
- Hardened the email and calendar surfaces: SMTP and IMAP commands validate addresses and reject control characters, STARTTLS upgrades verify no data arrives before negotiation completes, and calendar parsing is stricter about malformed input.
|
|
9
|
+
- Reliability fixes across the TUI: closed a text-wrap hang, made wide-character rendering consistent, fixed webhook notifier reuse, routed the benchmark editor to its real action, and made command failures surface user-visible errors everywhere.
|
|
10
|
+
- Release and verification hygiene: the operator token is redacted from release artifacts, the coverage ledger reports honest numbers, release evidence is checked for existence, and operator-facing copy passes a plain-language gate.
|
|
11
|
+
- Test suite: 7931 pass / 0 fail / 2 skip across 554 files.
|
|
@@ -62,7 +62,7 @@
|
|
|
62
62
|
"quality": {
|
|
63
63
|
"capabilityCoverage": "Matches the release expectation that the product opens into the real operator workspace, with visible assistant-first Home lanes for setup, chat/model, connected browser cockpit/PWA handoff, project work, Personal Ops, research/docs, background supervision, and safety/recovery plus deeper setup, runtime posture, local context, channels, media, planning, and delegation categories.",
|
|
64
64
|
"userAccess": "The user can open the workspace by default or through /agent, /home, and /operator, start from the assistant cockpit lanes including the browser cockpit handoff, then browse or search deeper workspace categories and actions directly.",
|
|
65
|
-
"modelAccess": "route action:\"plan|status\" plus lower-level agent_harness mode:\"route_decision\" choose the preferred visible Agent route for a plain user task, including alternatives, missing fields, confirmation boundary, workspace matches, and harness mode matches across setup, settings, Personal Ops, research, autonomy, execution, delegation, computer/browser, workspace, host, device, channel, security, Local Context, and Knowledge surfaces without executing tools; host/daemon health, doctor, readiness, service, and compatibility wording prefers host action:\"status\" before repair or lifecycle effects, normal settings/configuration wording prefers settings action:\"list\" before set/reset/import effects, model provider/local-cookbook/local-server-smoke/route-fit wording prefers models action:\"provider|local|smoke|route\" before credential, smoke, benchmark, or route-change effects, Personal Ops briefing/queue/fresh-read/connector setup wording prefers personal_ops action:\"briefing|queue|intake|lane\" before live provider reads or effects, direct reminder/schedule/cron/lifecycle wording prefers schedule action:\"list\" before confirmed schedule effects, command-shaped background work prefers execution action:\"processes\" plus first-class terminal/process routes, interactive PTY/stdin/sudo wording prefers execution action:\"process_capabilities\" before hidden process starts or credential effects and surfaces certified daemon runtime records when published, external memory-provider/backend/sync/import-export wording prefers memory action:\"provider\" or the certified external provider checklist before provider effects, browser-backed research runner wording prefers research action:\"runner\" readiness, visual research report rendering wording prefers research action:\"plan\" plus report artifacts before browser/PWA rendering is claimed, voice workflow/TTS-provider wording prefers device action:\"voice|provider\" before capture, playback, or picker effects, browser cockpit/PWA wording prefers computer action:\"browser\" before visible open handoffs, channel setup/triage/delivery-receipt/send wording prefers channels action:\"setup|triage|deliveries|channel\" before confirmed external delivery, permission posture/finding/blocked-action wording prefers security action:\"status|finding|explain\" before policy changes or risky work, support-bundle/session/audit evidence wording prefers support action:\"status|bundle\", sessions action:\"list|get\", and audit action:\"readiness|evidence|item|artifact\" before bundle export/import/share, session lifecycle, or audit drill-in effects, broader ongoing or watcher-like background work stays on autonomy intake, file undo/redo/recovery wording prefers execution action:\"recovery\", media generation wording prefers media provider readiness plus confirmed agent_media_generate saved artifacts, and screenshot, browser-navigation/control, screen-observation, and desktop-control wording prefers computer action:\"plan\" before live UI tools are considered; workspace action:\"status|actions|action|run|surfaces|surface|open|
|
|
65
|
+
"modelAccess": "route action:\"plan|status\" plus lower-level agent_harness mode:\"route_decision\" choose the preferred visible Agent route for a plain user task, including alternatives, missing fields, confirmation boundary, workspace matches, and harness mode matches across setup, settings, Personal Ops, research, autonomy, execution, delegation, computer/browser, workspace, host, device, channel, security, Local Context, and Knowledge surfaces without executing tools; host/daemon health, doctor, readiness, service, and compatibility wording prefers host action:\"status\" before repair or lifecycle effects, normal settings/configuration wording prefers settings action:\"list\" before set/reset/import effects, model provider/local-cookbook/local-server-smoke/route-fit wording prefers models action:\"provider|local|smoke|route\" before credential, smoke, benchmark, or route-change effects, Personal Ops briefing/queue/fresh-read/connector setup wording prefers personal_ops action:\"briefing|queue|intake|lane\" before live provider reads or effects, direct reminder/schedule/cron/lifecycle wording prefers schedule action:\"list\" before confirmed schedule effects, command-shaped background work prefers execution action:\"processes\" plus first-class terminal/process routes, interactive PTY/stdin/sudo wording prefers execution action:\"process_capabilities\" before hidden process starts or credential effects and surfaces certified daemon runtime records when published, external memory-provider/backend/sync/import-export wording prefers memory action:\"provider\" or the certified external provider checklist before provider effects, browser-backed research runner wording prefers research action:\"runner\" readiness, visual research report rendering wording prefers research action:\"plan\" plus report artifacts before browser/PWA rendering is claimed, voice workflow/TTS-provider wording prefers device action:\"voice|provider\" before capture, playback, or picker effects, browser cockpit/PWA wording prefers computer action:\"browser\" before visible open handoffs, channel setup/triage/delivery-receipt/send wording prefers channels action:\"setup|triage|deliveries|channel\" before confirmed external delivery, permission posture/finding/blocked-action wording prefers security action:\"status|finding|explain\" before policy changes or risky work, support-bundle/session/audit evidence wording prefers support action:\"status|bundle\", sessions action:\"list|get\", and audit action:\"readiness|evidence|item|artifact\" before bundle export/import/share, session lifecycle, or audit drill-in effects, broader ongoing or watcher-like background work stays on autonomy intake, file undo/redo/recovery wording prefers execution action:\"recovery\", media generation wording prefers media provider readiness plus confirmed agent_media_generate saved artifacts, and screenshot, browser-navigation/control, screen-observation, and desktop-control wording prefers computer action:\"plan\" before live UI tools are considered; workspace action:\"status|actions|action|run|surfaces|surface|open|shortcuts|keybindings|keybinding|run_keybinding|set_keybinding|reset_keybinding|commands|command|run_command|cli_commands|cli_command\" plus autonomy action:\"intake|queue|item|status\" plus computer action:\"status|plan|control|browser|setup|mcp|open_browser\" plus device action:\"status|capability|voice|provider|open_tts_provider|open_tts_voice\" plus models action:\"status|route|local|providers|provider|smoke\" plus personal_ops action:\"briefing|status|queue|intake|lane|read\" plus channels action:\"status|channel|setup|triage|deliveries\" plus schedule action:\"list|create|remind|edit|run|pause|resume|delete\" expose the same assistant-first cockpit, workspace map, connected browser cockpit/PWA route with service/web setup fallback, workspace category coverage, visible autonomy queue live records, model provider/local-cookbook/smoke/route-fit routes, Personal Ops briefing/queue/fresh-read routes, channel setup/triage/delivery history, schedule post-action nextRoutes, mobile/PWA controls, Agent onboarding marker status, browser/PWA receipt reporting that distinguishes satisfied artifact/live read-model evidence from missing publication, visible navigation routes, keyboard route controls, and command/action execution to the model without requiring harness mode memorization; lower-level agent_harness mode:\"summary\", mode:\"route_decision\", mode:\"workspace\", mode:\"workspace_categories\", mode:\"workspace_actions\", mode:\"workspace_action\", mode:\"run_workspace_action\", mode:\"autonomy_intake\", mode:\"autonomy_queue\", mode:\"autonomy_queue_item\", mode:\"agent_orchestration\", mode:\"agent_orchestration_agent\", mode:\"ui_surfaces\", mode:\"ui_surface\", mode:\"open_ui_surface\", mode:\"shortcuts\", mode:\"keybindings\", mode:\"keybinding\", mode:\"run_keybinding\", mode:\"set_keybinding\", and mode:\"reset_keybinding\" remain detailed compatibility routes for route inspection and release verification, including managed multi-agent milestones, work-plan dispatch receipts, task/run diagnostics, bounded redacted output descriptors, automation telemetry, and compact modelRoute hints.",
|
|
66
66
|
"safetyBoundary": "The workspace stays Agent-first and avoids hidden connected-host lifecycle control, coding-first entrypoints, and marketing-only surfaces.",
|
|
67
67
|
"releaseEvidence": "release-readiness inventory plus package-facing README and getting-started docs cite the workspace files and keep this as a required release item."
|
|
68
68
|
}
|
|
@@ -167,7 +167,7 @@
|
|
|
167
167
|
"quality": {
|
|
168
168
|
"capabilityCoverage": "Covers local skills, skill bundles, routines, learned behavior capture, imports, review states, and reusable operator workflows.",
|
|
169
169
|
"userAccess": "The user can manage skills, routines, bundles, and learned behavior through workspace routes and /skills or /routines commands.",
|
|
170
|
-
"modelAccess": "agent_local_registry and memory action:\"curator|candidate\" expose skill/routine actions, editor schemas, selected-record promotion, prompt-active/suppressed/proposal/consolidation planning, local learning review cards, and routine schedule prefill to the model; lower-level agent_harness mode:\"learning_curator\" and mode:\"learning_candidate\" remain available for compatibility/detail coverage.",
|
|
170
|
+
"modelAccess": "agent_local_registry and memory action:\"curator|candidate\" expose skill/routine actions, editor schemas, selected-record promotion, prompt-active/suppressed/proposal/consolidation planning, local learning review cards, and routine schedule prefill to the model; lower-level agent_harness mode:\"learning_curator\" and mode:\"learning_candidate\" remain available for compatibility/detail coverage; agent_harness mode:\"propose_skill_drafts\" exposes a confirmed pass that drafts up to 3 skills from recent learning candidates, requiring confirm:true and explicitUserRequest, and returns proposed/skipped counts with skill ids.",
|
|
171
171
|
"safetyBoundary": "Behavior capture remains local until the user explicitly promotes, exports, schedules, or deletes a reviewed record.",
|
|
172
172
|
"releaseEvidence": "Readiness evidence cites registry and command sources, and release docs describe local behavior library ownership."
|
|
173
173
|
}
|
|
@@ -282,12 +282,12 @@
|
|
|
282
282
|
"capability": "Planning, workplan status, and task visibility support personal operator work without auto-spawning parallel implementation jobs.",
|
|
283
283
|
"owner": "agent",
|
|
284
284
|
"status": "covered",
|
|
285
|
-
"evidence": "src/
|
|
285
|
+
"evidence": "src/tools/agent-work-plan-tool.ts; src/work-plans/work-plan-store.ts; src/input/agent-workspace-workplan-editor-submission.ts; docs/tools-and-commands.md",
|
|
286
286
|
"action": "Keep planning serial and explicit until the user asks for execution.",
|
|
287
287
|
"quality": {
|
|
288
288
|
"capabilityCoverage": "Covers planning interviews, visible work-plan state, confirmed dispatch of approved plan items into visible Agent spawn/batch-spawn jobs with saved linked-agent receipts, closeout surfacing in managed orchestration cards, certified live remote capture/export/closeout outcome records, certified workspace/worktree isolation evidence with schema/version/publication/publisher/provenance/freshness-cursor/receipt metadata, task status, and project planning without implicit parallel execution jobs.",
|
|
289
289
|
"userAccess": "The user can inspect and update planning from /plan, /workplan, workspace planning panels, and task/status surfaces, approved selected plan items can be dispatched to visible agents only through confirmation, and linked dispatch receipts plus certified live remote outcome/workspace evidence with missing certification signals appear in Agent orchestration closeout cards.",
|
|
290
|
-
"modelAccess": "agent_work_plan exposes list/get/create/update/set_status/dispatch_agents/remove/clear_completed for visible Agent-local work plans; dispatch_agents previews selected ids, then calls first-class agent spawn or batch-spawn after confirm:true plus explicitUserRequest, writes linked-agent receipts, and returns next routes for orchestration, work-plan detail, agent inspect/wait/message/cancel, and closeout; agent_harness mode:\"agent_orchestration\" and mode:\"agent_orchestration_agent\" correlate linked work-plan items, dispatch receipt counts, closeout routes, remote artifact review routes, certified daemon/SDK live capture/export/closeout outcome records, and certified workspace/worktree isolation evidence with schema/version/publication/publisher/provenance/freshness-cursor/receipt metadata and missing-signal surfacing; personal_ops action:\"briefing|status|queue|intake|lane\" plus lower-level agent_harness mode:\"personal_ops_briefing\", mode:\"personal_ops_queue\", mode:\"personal_ops_intake\", mode:\"personal_ops\", and mode:\"personal_ops_lane\" expose daily briefing, review queue, request planning, visible work-plan, connected-host task review, and host task operation cards
|
|
290
|
+
"modelAccess": "agent_work_plan exposes list/get/create/update/set_status/dispatch_agents/remove/clear_completed for visible Agent-local work plans; dispatch_agents previews selected ids, then calls first-class agent spawn or batch-spawn after confirm:true plus explicitUserRequest, writes linked-agent receipts, and returns next routes for orchestration, work-plan detail, agent inspect/wait/message/cancel, and closeout; agent_harness mode:\"agent_orchestration\" and mode:\"agent_orchestration_agent\" correlate linked work-plan items, dispatch receipt counts, closeout routes, remote artifact review routes, certified daemon/SDK live capture/export/closeout outcome records, and certified workspace/worktree isolation evidence with schema/version/publication/publisher/provenance/freshness-cursor/receipt metadata and missing-signal surfacing; personal_ops action:\"briefing|status|queue|intake|lane\" plus lower-level agent_harness mode:\"personal_ops_briefing\", mode:\"personal_ops_queue\", mode:\"personal_ops_intake\", mode:\"personal_ops\", and mode:\"personal_ops_lane\" expose daily briefing, review queue, request planning, visible work-plan, connected-host task review, and host task operation cards.",
|
|
291
291
|
"safetyBoundary": "Planning stays serial and explicit until the user asks for execution; agent dispatch requires selected work-plan ids, confirm:true, explicit user request provenance, and first-class visible Agent routes.",
|
|
292
292
|
"releaseEvidence": "Readiness evidence cites planning coordinator and command sources, with verification ledger accounting for onboarding and work-plan surfaces."
|
|
293
293
|
}
|
|
@@ -384,7 +384,7 @@
|
|
|
384
384
|
},
|
|
385
385
|
{
|
|
386
386
|
"id": "release-package-install",
|
|
387
|
-
"capability": "Package metadata, docs, Bun-only install, runtime build, compiled binary smoke,
|
|
387
|
+
"capability": "Package metadata, docs, Bun-only install, runtime build, compiled binary smoke, committed performance snapshot fixture evaluation, publish checks, install checks, and release workflows are guarded by shared release metadata verification.",
|
|
388
388
|
"owner": "release",
|
|
389
389
|
"status": "covered",
|
|
390
390
|
"evidence": "release/performance-snapshot.json; src/cli/package-verification.ts; scripts/release.ts; scripts/perf-check.ts; scripts/publish-check.ts; scripts/package-install-check.ts; .github/workflows/ci.yml",
|
|
@@ -394,7 +394,7 @@
|
|
|
394
394
|
"userAccess": "The user receives one installable package with goodvibes-agent as the executable and package-facing docs included in the tarball.",
|
|
395
395
|
"modelAccess": "agent_harness exposes package-facing slash-command, CLI mirror, keybinding, tool catalog, connected-host, and operator/audit route metadata plus mode:\"modes\" and mode:\"mode\" discovery so the assistant can operate installed surfaces instead of hidden nested processes.",
|
|
396
396
|
"safetyBoundary": "The package excludes tests, private verification internals, connected-host binaries, lifecycle ownership, and forbidden boundary paths.",
|
|
397
|
-
"releaseEvidence": "Shared package verification, compact model tool/harness metadata checks, searchable harness mode catalog ledger, command/CLI/tool route guards, keyboard route guards, connected-host route guards, operator/audit route guards, stripped schema-description checks, release scripts, performance snapshot, and release workflow policy keep the package gate required for every release."
|
|
397
|
+
"releaseEvidence": "Shared package verification, compact model tool/harness metadata checks, searchable harness mode catalog ledger, command/CLI/tool route guards, keyboard route guards, connected-host route guards, operator/audit route guards, stripped schema-description checks, release scripts, committed performance snapshot fixture, and release workflow policy keep the package gate required for every release."
|
|
398
398
|
}
|
|
399
399
|
},
|
|
400
400
|
{
|
|
@@ -2,6 +2,7 @@ import { readdirSync, readFileSync } from 'node:fs';
|
|
|
2
2
|
import { join } from 'node:path';
|
|
3
3
|
import type { ShellPathService } from '@/runtime/index.ts';
|
|
4
4
|
import { GOODVIBES_AGENT_SURFACE_ROOT } from '../config/surface.ts';
|
|
5
|
+
import { parseMarkdownFrontmatter, stripMarkdownFrontmatter } from './markdown-frontmatter.ts';
|
|
5
6
|
|
|
6
7
|
type DiscoveryOrigin = 'project-local' | 'global';
|
|
7
8
|
|
|
@@ -42,22 +43,7 @@ export const EMPTY_AGENT_BEHAVIOR_DISCOVERY_SNAPSHOT: AgentBehaviorDiscoverySnap
|
|
|
42
43
|
routines: EMPTY_SUMMARY,
|
|
43
44
|
};
|
|
44
45
|
|
|
45
|
-
function parseFrontmatter(content: string): Record<string, string> {
|
|
46
|
-
const match = content.match(/^---\n([\s\S]*?)\n---/);
|
|
47
|
-
if (!match) return {};
|
|
48
|
-
const result: Record<string, string> = {};
|
|
49
|
-
for (const line of match[1].split('\n')) {
|
|
50
|
-
const [key, ...rest] = line.split(':');
|
|
51
|
-
if (key && rest.length > 0) {
|
|
52
|
-
result[key.trim()] = rest.join(':').trim();
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
return result;
|
|
56
|
-
}
|
|
57
46
|
|
|
58
|
-
function markdownBody(content: string): string {
|
|
59
|
-
return content.replace(/^---\n[\s\S]*?\n---\n?/, '').trim();
|
|
60
|
-
}
|
|
61
47
|
|
|
62
48
|
function readDiscoveryCandidate(path: string, origin: DiscoveryOrigin, definition: DiscoveryKindDefinition): { readonly name: string; readonly origin: DiscoveryOrigin } | null {
|
|
63
49
|
let content = '';
|
|
@@ -67,10 +53,10 @@ function readDiscoveryCandidate(path: string, origin: DiscoveryOrigin, definitio
|
|
|
67
53
|
return null;
|
|
68
54
|
}
|
|
69
55
|
|
|
70
|
-
const frontmatter =
|
|
56
|
+
const frontmatter = parseMarkdownFrontmatter(content);
|
|
71
57
|
const body = definition.frontmatterBodyKey
|
|
72
|
-
? (frontmatter[definition.frontmatterBodyKey] ??
|
|
73
|
-
:
|
|
58
|
+
? (frontmatter[definition.frontmatterBodyKey] ?? stripMarkdownFrontmatter(content)).trim()
|
|
59
|
+
: stripMarkdownFrontmatter(content);
|
|
74
60
|
if (body.length === 0) return null;
|
|
75
61
|
const name = frontmatter.name ?? path.split(/[\\/]/).pop()?.replace(/\.md$/i, '') ?? '';
|
|
76
62
|
const normalized = name.trim();
|