@pellux/goodvibes-agent 0.1.70 → 0.1.72

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 (78) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/README.md +3 -3
  3. package/docs/README.md +2 -2
  4. package/docs/getting-started.md +1 -1
  5. package/docs/runtime-connection.md +37 -0
  6. package/package.json +43 -2
  7. package/src/agent/skill-discovery.ts +119 -0
  8. package/src/cli/config-overrides.ts +1 -5
  9. package/src/cli/entrypoint.ts +0 -6
  10. package/src/cli/help.ts +0 -43
  11. package/src/cli/index.ts +0 -2
  12. package/src/cli/management-commands.ts +1 -109
  13. package/src/cli/management.ts +1 -32
  14. package/src/cli/package-verification.ts +12 -4
  15. package/src/cli/parser.ts +0 -16
  16. package/src/cli/status.ts +1 -1
  17. package/src/cli/types.ts +0 -8
  18. package/src/input/commands/delegation-runtime.ts +0 -8
  19. package/src/input/commands/experience-runtime.ts +0 -177
  20. package/src/input/commands/guidance-runtime.ts +0 -69
  21. package/src/input/commands/local-runtime.ts +1 -57
  22. package/src/input/commands/local-setup-review.ts +1 -1
  23. package/src/input/commands/operator-runtime.ts +1 -145
  24. package/src/input/commands/platform-access-runtime.ts +2 -195
  25. package/src/input/commands/product-runtime.ts +0 -116
  26. package/src/input/commands/security-runtime.ts +88 -0
  27. package/src/input/commands/session-content.ts +0 -97
  28. package/src/input/commands/shell-core.ts +0 -13
  29. package/src/input/commands.ts +2 -95
  30. package/src/panels/builtin/operations.ts +3 -184
  31. package/src/panels/confirm-state.ts +1 -1
  32. package/src/panels/index.ts +0 -11
  33. package/src/version.ts +1 -1
  34. package/docs/deployment-and-services.md +0 -52
  35. package/src/cli/service-command.ts +0 -26
  36. package/src/cli/surface-command.ts +0 -247
  37. package/src/input/commands/branch-runtime.ts +0 -72
  38. package/src/input/commands/control-room-runtime.ts +0 -234
  39. package/src/input/commands/discovery-runtime.ts +0 -61
  40. package/src/input/commands/hooks-runtime.ts +0 -207
  41. package/src/input/commands/incident-runtime.ts +0 -106
  42. package/src/input/commands/integration-runtime.ts +0 -437
  43. package/src/input/commands/local-setup.ts +0 -288
  44. package/src/input/commands/managed-runtime.ts +0 -240
  45. package/src/input/commands/marketplace-runtime.ts +0 -305
  46. package/src/input/commands/memory-product-runtime.ts +0 -148
  47. package/src/input/commands/operator-panel-runtime.ts +0 -146
  48. package/src/input/commands/platform-services-runtime.ts +0 -271
  49. package/src/input/commands/profile-sync-runtime.ts +0 -110
  50. package/src/input/commands/provider.ts +0 -363
  51. package/src/input/commands/remote-runtime-pool.ts +0 -89
  52. package/src/input/commands/remote-runtime-setup.ts +0 -226
  53. package/src/input/commands/remote-runtime.ts +0 -432
  54. package/src/input/commands/replay-runtime.ts +0 -25
  55. package/src/input/commands/services-runtime.ts +0 -220
  56. package/src/input/commands/settings-sync-runtime.ts +0 -197
  57. package/src/input/commands/share-runtime.ts +0 -127
  58. package/src/input/commands/skills-runtime.ts +0 -226
  59. package/src/input/commands/teleport-runtime.ts +0 -68
  60. package/src/panels/cockpit-panel.ts +0 -183
  61. package/src/panels/communication-panel.ts +0 -153
  62. package/src/panels/control-plane-panel.ts +0 -211
  63. package/src/panels/forensics-panel.ts +0 -364
  64. package/src/panels/hooks-panel.ts +0 -239
  65. package/src/panels/incident-review-panel.ts +0 -197
  66. package/src/panels/marketplace-panel.ts +0 -212
  67. package/src/panels/ops-control-panel.ts +0 -150
  68. package/src/panels/ops-strategy-panel.ts +0 -235
  69. package/src/panels/orchestration-panel.ts +0 -272
  70. package/src/panels/plugins-panel.ts +0 -178
  71. package/src/panels/remote-panel.ts +0 -449
  72. package/src/panels/routes-panel.ts +0 -178
  73. package/src/panels/services-panel.ts +0 -231
  74. package/src/panels/settings-sync-panel.ts +0 -120
  75. package/src/panels/skills-panel.ts +0 -431
  76. package/src/panels/watchers-panel.ts +0 -193
  77. package/src/verification/live-verifier.ts +0 -588
  78. package/src/verification/verification-ledger.ts +0 -239
@@ -1,46 +1,27 @@
1
1
  import type { CommandRegistry } from './command-registry.ts';
2
2
  import { policyCommand } from './commands/policy.ts';
3
- import { providerCommand } from './commands/provider.ts';
4
3
  import { sessionCommand } from './commands/session.ts';
5
4
  import { recallCommand } from './commands/memory.ts';
6
5
  import { knowledgeCommand } from './commands/knowledge.ts';
7
6
  import { registerShellCoreCommands } from './commands/shell-core.ts';
8
7
  import { registerConfigCommand } from './commands/config.ts';
9
8
  import { registerSessionWorkflowCommands } from './commands/session-workflow.ts';
10
- import { registerDiscoveryRuntimeCommands } from './commands/discovery-runtime.ts';
11
9
  import { registerPlanningRuntimeCommands } from './commands/planning-runtime.ts';
12
10
  import { registerScheduleRuntimeCommands } from './commands/schedule-runtime.ts';
13
- import { registerBranchRuntimeCommands } from './commands/branch-runtime.ts';
14
11
  import { registerOperatorRuntimeCommands } from './commands/operator-runtime.ts';
15
- import { registerIntegrationRuntimeCommands } from './commands/integration-runtime.ts';
16
12
  import { registerNotifyRuntimeCommands } from './commands/notify-runtime.ts';
17
- import { registerReplayRuntimeCommands } from './commands/replay-runtime.ts';
18
- import { registerShareRuntimeCommands } from './commands/share-runtime.ts';
19
- import { registerLocalSetupCommands } from './commands/local-setup.ts';
20
13
  import { registerProductRuntimeCommands } from './commands/product-runtime.ts';
21
- import { registerProfileSyncRuntimeCommands } from './commands/profile-sync-runtime.ts';
22
- import { registerManagedRuntimeCommands } from './commands/managed-runtime.ts';
23
14
  import { registerPlatformAccessRuntimeCommands } from './commands/platform-access-runtime.ts';
24
- import { registerPlatformServicesRuntimeCommands } from './commands/platform-services-runtime.ts';
25
- import { registerMarketplaceRuntimeCommands } from './commands/marketplace-runtime.ts';
26
15
  import { registerGuidanceRuntimeCommands } from './commands/guidance-runtime.ts';
27
- import { registerRemoteRuntimeCommands } from './commands/remote-runtime.ts';
28
- import { registerTeleportRuntimeCommands } from './commands/teleport-runtime.ts';
29
16
  import { registerSubscriptionRuntimeCommands } from './commands/subscription-runtime.ts';
30
- import { registerHooksRuntimeCommands } from './commands/hooks-runtime.ts';
31
- import { registerControlRoomRuntimeCommands } from './commands/control-room-runtime.ts';
17
+ import { registerSecurityRuntimeCommands } from './commands/security-runtime.ts';
32
18
  import { registerMcpRuntimeCommands } from './commands/mcp-runtime.ts';
33
19
  import { registerSessionContentCommands } from './commands/session-content.ts';
34
20
  import { registerLocalRuntimeCommands } from './commands/local-runtime.ts';
35
21
  import { registerExperienceRuntimeCommands } from './commands/experience-runtime.ts';
36
- import { registerIncidentRuntimeCommands } from './commands/incident-runtime.ts';
37
- import { registerMemoryProductRuntimeCommands } from './commands/memory-product-runtime.ts';
38
- import { registerSkillsRuntimeCommands } from './commands/skills-runtime.ts';
39
- import { registerServicesRuntimeCommands } from './commands/services-runtime.ts';
40
22
  import { registerTasksRuntimeCommands } from './commands/tasks-runtime.ts';
41
23
  import { registerLocalProviderRuntimeCommands } from './commands/local-provider-runtime.ts';
42
24
  import { registerHealthRuntimeCommands } from './commands/health-runtime.ts';
43
- import { registerSettingsSyncRuntimeCommands } from './commands/settings-sync-runtime.ts';
44
25
  import { registerProviderAccountsRuntimeCommands } from './commands/provider-accounts-runtime.ts';
45
26
  import { registerLocalAuthRuntimeCommands } from './commands/local-auth-runtime.ts';
46
27
  import { registerConversationRuntimeCommands } from './commands/conversation-runtime.ts';
@@ -55,55 +36,6 @@ import { registerPersonasRuntimeCommands } from './commands/personas-runtime.ts'
55
36
  import { registerAgentSkillsRuntimeCommands } from './commands/agent-skills-runtime.ts';
56
37
  import { registerRoutinesRuntimeCommands } from './commands/routines-runtime.ts';
57
38
 
58
- const HIDDEN_COPIED_TUI_COMMANDS = [
59
- 'bootstrap',
60
- 'branch',
61
- 'bridge',
62
- 'cockpit',
63
- 'communication',
64
- 'deeplink',
65
- 'forensics',
66
- 'fork',
67
- 'guidance',
68
- 'handoff',
69
- 'helpers',
70
- 'hooks',
71
- 'incident',
72
- 'incident-review',
73
- 'install',
74
- 'managed',
75
- 'marketplace',
76
- 'merge',
77
- 'memory-review',
78
- 'memory-sync',
79
- 'ops',
80
- 'orchestration',
81
- 'panel',
82
- 'plugin',
83
- 'profilesync',
84
- 'provider-opt',
85
- 'remote',
86
- 'remote-env',
87
- 'remote-setup',
88
- 'replay',
89
- 'scan',
90
- 'services',
91
- 'setup',
92
- 'settingssync',
93
- 'share',
94
- 'skills',
95
- 'storage',
96
- 'team-memory',
97
- 'teleport',
98
- 'template',
99
- 'tools',
100
- 'tunnel',
101
- 'update',
102
- 'worker-pool',
103
- 'wrfc',
104
- 'wq',
105
- ] as const;
106
-
107
39
  /**
108
40
  * registerBuiltinCommands - Register all built-in slash commands into the registry.
109
41
  * Call once during application startup.
@@ -118,33 +50,17 @@ export function registerBuiltinCommands(registry: CommandRegistry): void {
118
50
  registerDelegationRuntimeCommands(registry);
119
51
  registerConfigCommand(registry);
120
52
  registerOperatorRuntimeCommands(registry);
121
- registerIntegrationRuntimeCommands(registry);
122
53
  registerNotifyRuntimeCommands(registry);
123
- registerReplayRuntimeCommands(registry);
124
- registerShareRuntimeCommands(registry);
125
- registerLocalSetupCommands(registry);
126
54
  registerProductRuntimeCommands(registry);
127
- registerProfileSyncRuntimeCommands(registry);
128
- registerManagedRuntimeCommands(registry);
129
55
  registerPlatformAccessRuntimeCommands(registry);
130
- registerPlatformServicesRuntimeCommands(registry);
131
- registerMarketplaceRuntimeCommands(registry);
132
56
  registerGuidanceRuntimeCommands(registry);
133
- registerRemoteRuntimeCommands(registry);
134
- registerTeleportRuntimeCommands(registry);
135
57
  registerSubscriptionRuntimeCommands(registry);
136
- registerHooksRuntimeCommands(registry);
137
- registerControlRoomRuntimeCommands(registry);
58
+ registerSecurityRuntimeCommands(registry);
138
59
  registerMcpRuntimeCommands(registry);
139
- registerIncidentRuntimeCommands(registry);
140
- registerMemoryProductRuntimeCommands(registry);
141
- registerSkillsRuntimeCommands(registry);
142
60
  registerExperienceRuntimeCommands(registry);
143
- registerServicesRuntimeCommands(registry);
144
61
  registerTasksRuntimeCommands(registry);
145
62
  registerLocalProviderRuntimeCommands(registry);
146
63
  registerHealthRuntimeCommands(registry);
147
- registerSettingsSyncRuntimeCommands(registry);
148
64
  registerProviderAccountsRuntimeCommands(registry);
149
65
  registerLocalAuthRuntimeCommands(registry);
150
66
  registerConversationRuntimeCommands(registry);
@@ -154,18 +70,13 @@ export function registerBuiltinCommands(registry: CommandRegistry): void {
154
70
  registerWorkPlanRuntimeCommands(registry);
155
71
  registerLocalRuntimeCommands(registry);
156
72
  registerSessionWorkflowCommands(registry);
157
- registerDiscoveryRuntimeCommands(registry);
158
73
  registerPlanningRuntimeCommands(registry);
159
74
  registerScheduleRuntimeCommands(registry);
160
- registerBranchRuntimeCommands(registry);
161
75
  registerSessionContentCommands(registry);
162
76
 
163
77
  // ── /policy ───────────────────────────────────────────────────────────────
164
78
  registry.register(policyCommand);
165
79
 
166
- // ── /provider ─────────────────────────────────────────────────────────────
167
- registry.register(providerCommand);
168
-
169
80
  // ── /session ─────────────────────────────────────────────────────────────
170
81
  registry.register(sessionCommand);
171
82
 
@@ -174,8 +85,4 @@ export function registerBuiltinCommands(registry: CommandRegistry): void {
174
85
 
175
86
  // ── /knowledge ───────────────────────────────────────────────────────────
176
87
  registry.register(knowledgeCommand);
177
-
178
- for (const commandName of HIDDEN_COPIED_TUI_COMMANDS) {
179
- registry.unregister(commandName);
180
- }
181
88
  }
@@ -1,30 +1,13 @@
1
1
  import type { PanelManager } from '../panel-manager.ts';
2
- import { CockpitPanel } from '../cockpit-panel.ts';
3
2
  import { ApprovalPanel } from '../approval-panel.ts';
4
- import { PluginsPanel } from '../plugins-panel.ts';
5
- import { SkillsPanel } from '../skills-panel.ts';
6
- import { ServicesPanel } from '../services-panel.ts';
7
3
  import { AutomationControlPanel } from '../automation-control-panel.ts';
8
- import { RoutesPanel } from '../routes-panel.ts';
9
- import { WatchersPanel } from '../watchers-panel.ts';
10
- import { ControlPlanePanel } from '../control-plane-panel.ts';
11
4
  import { SubscriptionPanel } from '../subscription-panel.ts';
12
5
  import { LocalAuthPanel } from '../local-auth-panel.ts';
13
6
  import { ProviderAccountsPanel } from '../provider-accounts-panel.ts';
14
- import { SettingsSyncPanel } from '../settings-sync-panel.ts';
15
- import { HooksPanel } from '../hooks-panel.ts';
16
7
  import { SecurityPanel } from '../security-panel.ts';
17
- import { MarketplacePanel } from '../marketplace-panel.ts';
18
8
  import { TasksPanel } from '../tasks-panel.ts';
19
- import { OrchestrationPanel } from '../orchestration-panel.ts';
20
- import { OpsStrategyPanel } from '../ops-strategy-panel.ts';
21
- import { CommunicationPanel } from '../communication-panel.ts';
22
- import { RemotePanel } from '../remote-panel.ts';
23
9
  import { ProviderStatsPanel } from '../provider-stats-panel.ts';
24
10
  import { ProviderHealthPanel } from '../provider-health-panel.ts';
25
- import { GOODVIBES_AGENT_SURFACE_ROOT } from '../../config/surface.ts';
26
- import { IncidentReviewPanel } from '../incident-review-panel.ts';
27
- import { ForensicsPanel } from '../forensics-panel.ts';
28
11
  import { PolicyPanel } from '../policy-panel.ts';
29
12
  import { createProviderAccountSnapshotQuery } from '../provider-account-snapshot.ts';
30
13
  import {
@@ -33,7 +16,7 @@ import {
33
16
  } from '../../runtime/ui-service-queries.ts';
34
17
  import { createRuntimeProviderApi } from '@/runtime/index.ts';
35
18
  import type { ResolvedBuiltinPanelDeps } from './shared.ts';
36
- import { requireAutomationManager, requireControlPlanePanelDeps, requireHookPanelDeps, requirePluginManager, requireUiServices } from './shared.ts';
19
+ import { requireUiServices } from './shared.ts';
37
20
 
38
21
  export function registerOperationsPanels(manager: PanelManager, deps: ResolvedBuiltinPanelDeps): void {
39
22
  const ui = requireUiServices(deps);
@@ -49,15 +32,6 @@ export function registerOperationsPanels(manager: PanelManager, deps: ResolvedBu
49
32
  environment: createEnvironmentVariableQuery(process.env),
50
33
  });
51
34
 
52
- manager.registerType({
53
- id: 'cockpit',
54
- name: 'Cockpit',
55
- icon: 'O',
56
- category: 'monitoring',
57
- description: 'Unified operator summary for orchestration, permissions, communication, MCP, plugins, and integrations',
58
- factory: () => new CockpitPanel(ui.readModels.cockpit),
59
- });
60
-
61
35
  manager.registerType({
62
36
  id: 'approval',
63
37
  name: 'Approval',
@@ -67,75 +41,15 @@ export function registerOperationsPanels(manager: PanelManager, deps: ResolvedBu
67
41
  factory: () => new ApprovalPanel(deps.policyRuntimeState),
68
42
  });
69
43
 
70
- manager.registerType({
71
- id: 'plugins',
72
- name: 'Plugins',
73
- icon: 'P',
74
- category: 'monitoring',
75
- description: 'Plugin trust, quarantine, capability, and activation status',
76
- factory: () => new PluginsPanel(requirePluginManager(deps)),
77
- });
78
-
79
- manager.registerType({
80
- id: 'skills',
81
- name: 'Skills',
82
- icon: 'K',
83
- category: 'monitoring',
84
- description: 'Project-local and global skill discovery with origin and dependency details',
85
- factory: () => new SkillsPanel({
86
- componentHealthMonitor: deps.componentHealthMonitor,
87
- shellPaths: ui.environment.shellPaths,
88
- }),
89
- });
90
-
91
- manager.registerType({
92
- id: 'services',
93
- name: 'Services',
94
- icon: 'V',
95
- category: 'monitoring',
96
- description: 'Configured external services, credential presence, and connection health tests',
97
- factory: () => new ServicesPanel(deps.serviceRegistry, deps.subscriptionManager),
98
- });
99
-
100
44
  manager.registerType({
101
45
  id: 'automation',
102
46
  name: 'Automation',
103
47
  icon: 'M',
104
48
  category: 'monitoring',
105
- description: 'Automation jobs, runs, deliveries, and failure posture across the shared runtime',
49
+ description: 'Read-only automation jobs, runs, deliveries, and failure posture from the external runtime',
106
50
  factory: () => new AutomationControlPanel(ui.readModels.automation),
107
51
  });
108
52
 
109
- manager.registerType({
110
- id: 'routes',
111
- name: 'Routes',
112
- icon: 'R',
113
- category: 'monitoring',
114
- description: 'Cross-surface route bindings and shared session attachment state',
115
- factory: () => new RoutesPanel(ui.readModels.routes),
116
- });
117
-
118
- manager.registerType({
119
- id: 'watchers',
120
- name: 'Watchers',
121
- icon: 'W',
122
- category: 'monitoring',
123
- description: 'Watcher health, lag, and degraded source state for automation inputs',
124
- factory: () => new WatchersPanel(ui.readModels.watchers),
125
- });
126
-
127
- manager.registerType({
128
- id: 'control-plane',
129
- name: 'Runtime Status',
130
- icon: 'C',
131
- category: 'monitoring',
132
- description: 'Runtime state, clients, approvals, and recent operator activity',
133
- factory: () => {
134
- requireControlPlanePanelDeps(deps);
135
- return new ControlPlanePanel(ui.readModels.controlPlane);
136
- },
137
- });
138
-
139
53
  manager.registerType({
140
54
  id: 'subscription',
141
55
  name: 'Subscriptions',
@@ -163,27 +77,6 @@ export function registerOperationsPanels(manager: PanelManager, deps: ResolvedBu
163
77
  factory: () => new ProviderAccountsPanel({ providerAccounts }),
164
78
  });
165
79
 
166
- manager.registerType({
167
- id: 'settings-sync',
168
- name: 'Settings Sync',
169
- icon: 'Y',
170
- category: 'monitoring',
171
- description: 'Local, synced, and managed settings posture with recent sync events and active locks',
172
- factory: () => new SettingsSyncPanel(deps.configManager),
173
- });
174
-
175
- manager.registerType({
176
- id: 'hooks',
177
- name: 'Hooks',
178
- icon: 'H',
179
- category: 'monitoring',
180
- description: 'Registered hooks, chains, contracts, and execution policy details',
181
- factory: () => {
182
- const hookDeps = requireHookPanelDeps(deps);
183
- return new HooksPanel(hookDeps.hookDispatcher, hookDeps.hookWorkbench, hookDeps.hookActivityTracker);
184
- },
185
- });
186
-
187
80
  manager.registerType({
188
81
  id: 'security',
189
82
  name: 'Security',
@@ -193,68 +86,15 @@ export function registerOperationsPanels(manager: PanelManager, deps: ResolvedBu
193
86
  factory: () => new SecurityPanel(ui.readModels.security),
194
87
  });
195
88
 
196
- manager.registerType({
197
- id: 'marketplace',
198
- name: 'Marketplace',
199
- icon: 'M',
200
- category: 'monitoring',
201
- description: 'Curated plugin and skill marketplace with provenance, compatibility, and install posture',
202
- factory: () => {
203
- return new MarketplacePanel(ui.readModels.marketplace, {
204
- cwd: ui.environment.shellPaths.workingDirectory,
205
- homeDir: ui.environment.shellPaths.homeDirectory,
206
- projectCatalogRoot: ui.environment.shellPaths.resolveProjectPath(GOODVIBES_AGENT_SURFACE_ROOT, 'ecosystem'),
207
- userCatalogRoot: ui.environment.shellPaths.resolveUserPath(GOODVIBES_AGENT_SURFACE_ROOT, 'ecosystem'),
208
- });
209
- },
210
- });
211
-
212
89
  manager.registerType({
213
90
  id: 'tasks',
214
91
  name: 'Tasks',
215
92
  icon: 'J',
216
93
  category: 'monitoring',
217
- description: 'Queued, running, blocked, failed, and completed task summaries from the runtime store',
94
+ description: 'Queued, running, blocked, failed, and completed task summaries from the external runtime',
218
95
  factory: () => new TasksPanel(ui.readModels.tasks),
219
96
  });
220
97
 
221
- manager.registerType({
222
- id: 'orchestration',
223
- name: 'Orchestration',
224
- icon: 'Q',
225
- category: 'monitoring',
226
- description: 'Task-graph status, node roles, and bounded recursion guard activity',
227
- factory: () => new OrchestrationPanel(ui.readModels.orchestration),
228
- });
229
-
230
- manager.registerType({
231
- id: 'ops',
232
- name: 'Ops',
233
- icon: 'O',
234
- category: 'monitoring',
235
- description: 'Adaptive planner strategy timeline, override posture, and recent execution-mode decisions',
236
- factory: () => new OpsStrategyPanel(ui.events.planner, deps.adaptivePlanner),
237
- });
238
-
239
- manager.registerType({
240
- id: 'communication',
241
- name: 'Communication',
242
- icon: 'Y',
243
- category: 'monitoring',
244
- description: 'Structured agent communication, blocked routes, and delivery status',
245
- preload: true,
246
- factory: () => new CommunicationPanel(ui.readModels.communication),
247
- });
248
-
249
- manager.registerType({
250
- id: 'remote',
251
- name: 'Remote',
252
- icon: 'R',
253
- category: 'monitoring',
254
- description: 'Runtime transport state with active remote connections',
255
- factory: () => new RemotePanel(ui.readModels.remote),
256
- });
257
-
258
98
  manager.registerType({
259
99
  id: 'providers',
260
100
  name: 'Providers',
@@ -289,26 +129,6 @@ export function registerOperationsPanels(manager: PanelManager, deps: ResolvedBu
289
129
  ),
290
130
  });
291
131
 
292
- if (deps.forensicsRegistry) {
293
- const { forensicsRegistry } = deps;
294
- manager.registerType({
295
- id: 'incident',
296
- name: 'Incident',
297
- icon: 'N',
298
- category: 'monitoring',
299
- description: 'Incident workspace with root cause, permission, budget, and replay evidence',
300
- factory: () => new IncidentReviewPanel(forensicsRegistry),
301
- });
302
- manager.registerType({
303
- id: 'forensics',
304
- name: 'Forensics',
305
- icon: 'F',
306
- category: 'monitoring',
307
- description: 'Failure Forensics: auto-classified failure reports with causal chains, phase timings, and jump links',
308
- factory: () => new ForensicsPanel(forensicsRegistry),
309
- });
310
- }
311
-
312
132
  manager.registerType({
313
133
  id: 'policy',
314
134
  name: 'Policy',
@@ -317,5 +137,4 @@ export function registerOperationsPanels(manager: PanelManager, deps: ResolvedBu
317
137
  description: 'Policy governance: active/candidate bundles, divergence gate, rollout history, and simulation evidence',
318
138
  factory: () => new PolicyPanel(deps.policyRuntimeState),
319
139
  });
320
-
321
140
  }
@@ -2,7 +2,7 @@
2
2
  // useConfirmState<T> — reusable inline y/n confirmation helper
3
3
  //
4
4
  // Pattern (chosen over ConfirmableListPanel base class):
5
- // - Composable: any panel holds a ConfirmState field, not a new base class
5
+ // - Composable: each panel holds a ConfirmState field, not a new base class
6
6
  // - Identical y/n UX everywhere: y confirms, n/Esc cancels, any other key
7
7
  // is absorbed (does nothing) while confirm is active
8
8
  // - Render: caller calls renderConfirmLines(width, state) to get the two
@@ -17,21 +17,10 @@ export { ToolInspectorPanel } from './tool-inspector-panel.ts';
17
17
  export { ContextVisualizerPanel } from './context-visualizer-panel.ts';
18
18
  export { registerBuiltinPanels } from './builtin-panels.ts';
19
19
  export type { BuiltinPanelDeps } from './builtin-panels.ts';
20
- export { ForensicsPanel } from './forensics-panel.ts';
21
- export { IncidentReviewPanel } from './incident-review-panel.ts';
22
20
  export { PolicyPanel } from './policy-panel.ts';
23
- export { PluginsPanel } from './plugins-panel.ts';
24
- export { SkillsPanel } from './skills-panel.ts';
25
21
  export { TasksPanel } from './tasks-panel.ts';
26
- export { OrchestrationPanel } from './orchestration-panel.ts';
27
- export { CommunicationPanel } from './communication-panel.ts';
28
- export { CockpitPanel } from './cockpit-panel.ts';
29
- export { RemotePanel } from './remote-panel.ts';
30
- export { ServicesPanel } from './services-panel.ts';
31
22
  export { SubscriptionPanel } from './subscription-panel.ts';
32
- export { HooksPanel } from './hooks-panel.ts';
33
23
  export { SecurityPanel } from './security-panel.ts';
34
- export { MarketplacePanel } from './marketplace-panel.ts';
35
24
  export { ApprovalPanel } from './approval-panel.ts';
36
25
  export { KnowledgePanel } from './knowledge-panel.ts';
37
26
  export { SystemMessagesPanel } from './system-messages-panel.ts';
package/src/version.ts CHANGED
@@ -6,7 +6,7 @@ import { join } from 'node:path';
6
6
  // The prebuild script updates the fallback value before compilation.
7
7
  // Uses import.meta.dir (Bun) to locate package.json relative to this file,
8
8
  // which is correct regardless of the process working directory.
9
- let _version = '0.1.70';
9
+ let _version = '0.1.72';
10
10
  let _sdkVersion = '0.33.35';
11
11
  try {
12
12
  const pkg = JSON.parse(readFileSync(join(import.meta.dir, '..', 'package.json'), 'utf-8')) as {
@@ -1,52 +0,0 @@
1
- # Deployment And Services
2
-
3
- GoodVibes Agent is a client/operator TUI. It connects to an already-running GoodVibes runtime and does not own runtime or listener deployment.
4
-
5
- ## Runtime Ownership
6
-
7
- Agent must not:
8
-
9
- - start an embedded runtime
10
- - start an embedded HTTP listener
11
- - install or uninstall OS services
12
- - start, stop, or restart runtime services
13
- - enable web, listener, control-plane, or channel surface posture
14
-
15
- Those operations belong to GoodVibes TUI or the owning runtime host. Agent reports external runtime readiness but does not configure that host.
16
-
17
- ## Agent Runtime
18
-
19
- The installed package exposes one executable:
20
-
21
- ```sh
22
- goodvibes-agent
23
- ```
24
-
25
- The executable is backed by TypeScript-authored source with a Bun shebang. Package install smoke must verify:
26
-
27
- - `goodvibes-agent --help`
28
- - `goodvibes-agent --version`
29
- - `goodvibes-agent status --json`
30
- - `goodvibes-agent` launches the TUI in a real PTY
31
- - `goodvibes-agent smoke --json` when that command is available in the baseline being tested
32
-
33
- ## External Runtime Connection
34
-
35
- Agent reads configuration and tokens, then connects to an already-running GoodVibes runtime. The default local control-plane URL is normally:
36
-
37
- ```text
38
- http://127.0.0.1:3421
39
- ```
40
-
41
- If the runtime is unavailable, unauthenticated, or on an incompatible SDK version, Agent commands should report actionable diagnostics without printing token values.
42
-
43
- ## Release Rule
44
-
45
- Only publish Agent releases that preserve the Agent product policy:
46
-
47
- - serial/proactive assistant by default
48
- - local memory/routines/skills/personas until shared registries are stable
49
- - Agent knowledge routes only for Agent wiki calls
50
- - companion chat for normal assistant chat
51
- - explicit delegation to GoodVibes TUI for build/fix/review work
52
- - WRFC only when explicitly requested for delegated build/fix/review work
@@ -1,26 +0,0 @@
1
- import type { CliCommandRuntime } from './management.ts';
2
- import { buildCliServicePosture, formatCliServicePosture } from './service-posture.ts';
3
- import type { CliCommandOutput } from './types.ts';
4
-
5
- export async function handleServiceCommand(runtime: CliCommandRuntime): Promise<CliCommandOutput> {
6
- const [sub = 'status'] = runtime.cli.commandArgs;
7
- const json = runtime.cli.flags.outputFormat === 'json';
8
- if (sub === 'status' || sub === 'check') {
9
- const posture = await buildCliServicePosture(runtime, { probe: sub === 'check' });
10
- return {
11
- output: formatCliServicePosture(posture, json),
12
- exitCode: sub === 'check' && posture.issues.length > 0 ? 1 : 0,
13
- };
14
- }
15
- if (sub === 'install' || sub === 'start' || sub === 'restart' || sub === 'stop' || sub === 'uninstall') {
16
- const text = 'GoodVibes Agent connects to an existing GoodVibes runtime and does not manage runtime lifecycle. Use GoodVibes TUI or host tooling for service mutations.';
17
- return {
18
- output: json ? JSON.stringify({ ok: false, kind: 'daemon_lifecycle_external', action: sub, error: text }, null, 2) : text,
19
- exitCode: 2,
20
- };
21
- }
22
- return {
23
- output: `Usage: ${runtime.cli.binary} service [status|check]`,
24
- exitCode: 2,
25
- };
26
- }