@pellux/goodvibes-agent 1.1.7 → 1.2.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 +170 -0
- package/README.md +46 -30
- package/dist/package/{ast-grep-napi.linux-x64-gnu-mkk8xwww.node → ast-grep-napi.linux-x64-gnu-swtppvy9.node} +0 -0
- package/dist/package/{ast-grep-napi.linux-x64-musl-ryqtgdv6.node → ast-grep-napi.linux-x64-musl-ttfcdtap.node} +0 -0
- package/dist/package/main.js +132577 -91483
- package/docs/README.md +14 -7
- package/docs/channels-remote-and-api.md +8 -5
- package/docs/connected-host.md +14 -12
- package/docs/getting-started.md +56 -30
- package/docs/knowledge-artifacts-and-multimodal.md +7 -5
- package/docs/project-planning.md +2 -2
- package/docs/providers-and-routing.md +11 -3
- package/docs/tools-and-commands.md +114 -45
- package/docs/voice-and-live-tts.md +3 -1
- package/package.json +3 -2
- package/release/release-notes.md +130 -5
- package/release/release-readiness.json +120 -90
- package/src/agent/assistant-cockpit.ts +247 -0
- package/src/agent/autonomy-schedule-format.ts +96 -0
- package/src/agent/autonomy-schedule.ts +514 -0
- package/src/agent/channel-delivery-receipts.ts +292 -0
- package/src/agent/competitive-feature-inventory.ts +296 -0
- package/src/agent/document-registry-types.ts +106 -0
- package/src/agent/document-registry.ts +734 -0
- package/src/agent/harness-control.ts +2 -2
- package/src/agent/memory-prompt.ts +2 -2
- package/src/agent/operator-actions.ts +50 -6
- package/src/agent/persona-registry.ts +8 -0
- package/src/agent/project-context-files.ts +273 -0
- package/src/agent/prompt-context-receipts.ts +502 -0
- package/src/agent/reminder-schedule-format.ts +16 -2
- package/src/agent/research-run-registry.ts +582 -0
- package/src/agent/research-source-registry.ts +441 -0
- package/src/agent/routine-registry.ts +19 -3
- package/src/agent/routine-schedule-format.ts +27 -2
- package/src/agent/runtime-profile-starters.ts +7 -0
- package/src/agent/runtime-profile.ts +106 -4
- package/src/agent/schedule-edit-format.ts +129 -0
- package/src/agent/schedule-edit.ts +496 -0
- package/src/agent/schedule-next-routes.ts +42 -0
- package/src/agent/setup-wizard-checkpoint.ts +140 -0
- package/src/agent/setup-wizard.ts +447 -0
- package/src/agent/skill-registry-types.ts +102 -0
- package/src/agent/skill-registry.ts +81 -107
- package/src/agent/vibe-confirmation-routes.ts +62 -0
- package/src/agent/vibe-file.ts +285 -0
- package/src/cli/agent-knowledge-command.ts +45 -2
- package/src/cli/help.ts +3 -0
- package/src/cli/profiles-command.ts +25 -11
- package/src/config/agent-settings-policy.ts +1 -18
- package/src/input/agent-workspace-activation.ts +53 -0
- package/src/input/agent-workspace-artifact-browser-editor.ts +494 -0
- package/src/input/agent-workspace-artifact-metadata.ts +17 -0
- package/src/input/agent-workspace-basic-command-editors.ts +5 -1
- package/src/input/agent-workspace-categories.ts +153 -155
- package/src/input/agent-workspace-channel-triage.ts +481 -0
- package/src/input/agent-workspace-channels.ts +263 -0
- package/src/input/agent-workspace-command-editor.ts +152 -0
- package/src/input/agent-workspace-context-snapshot.ts +349 -0
- package/src/input/agent-workspace-delegation-editor-submission.ts +8 -0
- package/src/input/agent-workspace-document-editor.ts +502 -0
- package/src/input/agent-workspace-document-ops-editor.ts +523 -0
- package/src/input/agent-workspace-host-category.ts +1 -1
- package/src/input/agent-workspace-local-library-snapshot.ts +167 -0
- package/src/input/agent-workspace-model-compare-editor.ts +376 -0
- package/src/input/agent-workspace-model-compare-prompt-submission.ts +552 -0
- package/src/input/agent-workspace-model-compare-types.ts +82 -0
- package/src/input/agent-workspace-model-compare-utils.ts +35 -0
- package/src/input/agent-workspace-onboarding-categories.ts +141 -0
- package/src/input/agent-workspace-operations-command-editor-submission.ts +53 -0
- package/src/input/agent-workspace-operations-command-editors.ts +22 -0
- package/src/input/agent-workspace-research-report-editor.ts +212 -0
- package/src/input/agent-workspace-research-run-editor.ts +144 -0
- package/src/input/agent-workspace-research-source-editor.ts +167 -0
- package/src/input/agent-workspace-review-packet-snapshot.ts +593 -0
- package/src/input/agent-workspace-review-packet-utils.ts +265 -0
- package/src/input/agent-workspace-settings.ts +262 -30
- package/src/input/agent-workspace-setup-checkpoint-action.ts +127 -0
- package/src/input/agent-workspace-setup-snapshot.ts +198 -0
- package/src/input/agent-workspace-setup.ts +34 -1
- package/src/input/agent-workspace-snapshot.ts +162 -147
- package/src/input/agent-workspace-types.ts +287 -2
- package/src/input/agent-workspace.ts +18 -0
- package/src/input/command-registry.ts +9 -2
- package/src/input/commands/agent-runtime-profile-runtime.ts +28 -13
- package/src/input/commands/channels-runtime.ts +102 -114
- package/src/input/commands/delegation-runtime.ts +87 -24
- package/src/input/commands/knowledge-browser-flags.ts +12 -0
- package/src/input/commands/knowledge.ts +28 -14
- package/src/input/commands/operator-actions-runtime.ts +6 -3
- package/src/input/commands/schedule-runtime.ts +71 -14
- package/src/input/commands/session-content.ts +2 -2
- package/src/input/commands/shell-core.ts +2 -0
- package/src/input/commands/vibe-runtime.ts +140 -0
- package/src/input/commands.ts +2 -0
- package/src/input/connected-host-routes.ts +123 -0
- package/src/input/settings-modal-types.ts +14 -0
- package/src/main.ts +15 -15
- package/src/panels/qr-panel.ts +2 -2
- package/src/renderer/agent-workspace-context-lines.ts +686 -0
- package/src/renderer/agent-workspace.ts +30 -419
- package/src/renderer/settings-modal-helpers.ts +12 -0
- package/src/renderer/settings-modal.ts +12 -0
- package/src/runtime/bootstrap-command-context.ts +11 -1
- package/src/runtime/bootstrap-command-parts.ts +14 -3
- package/src/runtime/bootstrap-core.ts +39 -1
- package/src/runtime/bootstrap-shell.ts +6 -0
- package/src/runtime/bootstrap.ts +113 -30
- package/src/runtime/connected-host-auth.ts +3 -2
- package/src/runtime/execution-ledger.ts +231 -0
- package/src/runtime/services.ts +88 -10
- package/src/runtime/tool-permission-safety.ts +199 -5
- package/src/shell/session-continuity-hints.ts +39 -0
- package/src/tools/agent-artifacts-tool.ts +606 -0
- package/src/tools/agent-audit-tool.ts +155 -0
- package/src/tools/agent-autonomy-schedule-tool.ts +238 -0
- package/src/tools/agent-autonomy-tool.ts +140 -0
- package/src/tools/agent-channel-send-tool.ts +24 -2
- package/src/tools/agent-channels-tool.ts +140 -0
- package/src/tools/agent-computer-tool.ts +168 -0
- package/src/tools/agent-context-policy.ts +137 -7
- package/src/tools/agent-context-tool.ts +143 -0
- package/src/tools/agent-delegation-tool.ts +128 -0
- package/src/tools/agent-device-tool.ts +240 -0
- package/src/tools/agent-documents-tool.ts +684 -0
- package/src/tools/agent-execution-tool.ts +230 -0
- package/src/tools/agent-harness-agent-orchestration.ts +703 -0
- package/src/tools/agent-harness-autonomy-intake.ts +785 -0
- package/src/tools/agent-harness-autonomy-live-records.ts +588 -0
- package/src/tools/agent-harness-autonomy-queue-types.ts +88 -0
- package/src/tools/agent-harness-autonomy-queue.ts +560 -0
- package/src/tools/agent-harness-background-processes-types.ts +35 -0
- package/src/tools/agent-harness-background-processes.ts +794 -0
- package/src/tools/agent-harness-browser-cockpit-route.ts +219 -0
- package/src/tools/agent-harness-browser-control.ts +338 -0
- package/src/tools/agent-harness-channel-metadata.ts +168 -10
- package/src/tools/agent-harness-cli-command-policy.ts +110 -0
- package/src/tools/agent-harness-command-catalog.ts +4 -2
- package/src/tools/agent-harness-command-runner.ts +42 -0
- package/src/tools/agent-harness-connected-host-status.ts +7 -4
- package/src/tools/agent-harness-delegation-posture.ts +234 -19
- package/src/tools/agent-harness-document-ops-reviewer-readiness.ts +234 -0
- package/src/tools/agent-harness-document-ops-types.ts +72 -0
- package/src/tools/agent-harness-document-ops.ts +671 -0
- package/src/tools/agent-harness-execution-history.ts +489 -0
- package/src/tools/agent-harness-execution-posture.ts +382 -0
- package/src/tools/agent-harness-file-recovery.ts +135 -0
- package/src/tools/agent-harness-keybinding-metadata.ts +16 -12
- package/src/tools/agent-harness-learning-curator-common.ts +102 -0
- package/src/tools/agent-harness-learning-curator-consolidation.ts +295 -0
- package/src/tools/agent-harness-learning-curator-proposals.ts +606 -0
- package/src/tools/agent-harness-learning-curator-types.ts +151 -0
- package/src/tools/agent-harness-learning-curator.ts +417 -0
- package/src/tools/agent-harness-local-model-benchmarks.ts +199 -0
- package/src/tools/agent-harness-local-model-cookbook.ts +238 -0
- package/src/tools/agent-harness-local-model-endpoints.ts +673 -0
- package/src/tools/agent-harness-media-posture.ts +208 -2
- package/src/tools/agent-harness-memory-posture.ts +556 -0
- package/src/tools/agent-harness-metadata.ts +100 -168
- package/src/tools/agent-harness-mode-catalog.ts +84 -33
- package/src/tools/agent-harness-model-catalog.ts +162 -0
- package/src/tools/agent-harness-model-provider-health.ts +186 -0
- package/src/tools/agent-harness-model-readiness.ts +406 -0
- package/src/tools/agent-harness-model-routing-types.ts +266 -0
- package/src/tools/agent-harness-model-routing-utils.ts +30 -0
- package/src/tools/agent-harness-model-routing.ts +137 -190
- package/src/tools/agent-harness-operator-methods.ts +115 -133
- package/src/tools/agent-harness-pairing-posture.ts +431 -18
- package/src/tools/agent-harness-personal-ops-discovery.ts +533 -0
- package/src/tools/agent-harness-personal-ops-intake.ts +385 -0
- package/src/tools/agent-harness-personal-ops-lanes.ts +204 -0
- package/src/tools/agent-harness-personal-ops-records.ts +732 -0
- package/src/tools/agent-harness-personal-ops-runner.ts +637 -0
- package/src/tools/agent-harness-personal-ops-types.ts +222 -0
- package/src/tools/agent-harness-personal-ops.ts +606 -0
- package/src/tools/agent-harness-project-context.ts +144 -0
- package/src/tools/agent-harness-prompt-context.ts +589 -0
- package/src/tools/agent-harness-provider-account-metadata.ts +2 -2
- package/src/tools/agent-harness-release-evidence.ts +9 -7
- package/src/tools/agent-harness-release-readiness.ts +9 -7
- package/src/tools/agent-harness-research-briefing.ts +427 -0
- package/src/tools/agent-harness-research-queue.ts +250 -0
- package/src/tools/agent-harness-research-runs.ts +295 -0
- package/src/tools/agent-harness-research-workflow.ts +322 -0
- package/src/tools/agent-harness-security-posture.ts +2 -2
- package/src/tools/agent-harness-service-posture.ts +9 -9
- package/src/tools/agent-harness-session-metadata.ts +3 -3
- package/src/tools/agent-harness-setup-connected-host.ts +501 -0
- package/src/tools/agent-harness-setup-describe.ts +557 -0
- package/src/tools/agent-harness-setup-handoffs.ts +502 -0
- package/src/tools/agent-harness-setup-model-helpers.ts +101 -0
- package/src/tools/agent-harness-setup-plan.ts +253 -0
- package/src/tools/agent-harness-setup-posture-types.ts +218 -0
- package/src/tools/agent-harness-setup-posture-utils.ts +173 -0
- package/src/tools/agent-harness-setup-posture.ts +449 -221
- package/src/tools/agent-harness-setup-smoke.ts +508 -0
- package/src/tools/agent-harness-sudo-posture.ts +114 -0
- package/src/tools/agent-harness-tool-schema.ts +120 -7
- package/src/tools/agent-harness-tool-types.ts +78 -0
- package/src/tools/agent-harness-tool-utils.ts +43 -0
- package/src/tools/agent-harness-tool.ts +311 -370
- package/src/tools/agent-harness-ui-surface-metadata.ts +76 -69
- package/src/tools/agent-harness-ui-surface-types.ts +46 -0
- package/src/tools/agent-harness-vibe-health.ts +105 -0
- package/src/tools/agent-harness-workspace-action-runner.ts +149 -0
- package/src/tools/agent-harness-workspace-actions.ts +114 -8
- package/src/tools/agent-harness-workspace-editor-execution.ts +214 -0
- package/src/tools/agent-harness-workspace-editor-runner.ts +755 -0
- package/src/tools/agent-host-tool.ts +159 -0
- package/src/tools/agent-knowledge-ingest-tool.ts +34 -1
- package/src/tools/agent-learning-consolidation-core.ts +327 -0
- package/src/tools/agent-learning-consolidation-tool.ts +758 -0
- package/src/tools/agent-memory-tool.ts +214 -0
- package/src/tools/agent-model-compare-export.ts +315 -0
- package/src/tools/agent-model-compare-handoff.ts +592 -0
- package/src/tools/agent-model-compare-judgment.ts +633 -0
- package/src/tools/agent-model-compare-run.ts +722 -0
- package/src/tools/agent-model-compare-tool.ts +698 -0
- package/src/tools/agent-model-compare-types.ts +191 -0
- package/src/tools/agent-model-compare-utils.ts +93 -0
- package/src/tools/agent-models-tool.ts +208 -0
- package/src/tools/agent-operator-action-tool.ts +1 -1
- package/src/tools/agent-operator-method-tool.ts +643 -0
- package/src/tools/agent-personal-ops-tool.ts +197 -0
- package/src/tools/agent-policy-explanation.ts +415 -0
- package/src/tools/agent-research-report-tool.ts +608 -0
- package/src/tools/agent-research-runs-tool.ts +434 -0
- package/src/tools/agent-research-sources-tool.ts +443 -0
- package/src/tools/agent-research-tool.ts +687 -0
- package/src/tools/agent-review-packet-presets-core.ts +757 -0
- package/src/tools/agent-review-packet-presets-tool.ts +466 -0
- package/src/tools/agent-review-packet-share-tool.ts +305 -0
- package/src/tools/agent-route-planner-candidates-setup.ts +411 -0
- package/src/tools/agent-route-planner-candidates-surfaces.ts +432 -0
- package/src/tools/agent-route-planner-candidates-work.ts +251 -0
- package/src/tools/agent-route-planner-helpers.ts +667 -0
- package/src/tools/agent-route-planner.ts +185 -0
- package/src/tools/agent-route-tool.ts +105 -0
- package/src/tools/agent-schedule-edit-tool.ts +210 -0
- package/src/tools/agent-schedule-tool.ts +282 -0
- package/src/tools/agent-security-tool.ts +145 -0
- package/src/tools/agent-sessions-tool.ts +122 -0
- package/src/tools/agent-settings-import-tool.ts +104 -0
- package/src/tools/agent-settings-tool.ts +176 -0
- package/src/tools/agent-setup-tool.ts +226 -0
- package/src/tools/agent-support-tool.ts +122 -0
- package/src/tools/agent-terminal-process-tools.ts +167 -0
- package/src/tools/agent-tool-policy-guard-types.ts +77 -0
- package/src/tools/agent-tool-policy-guard.ts +106 -85
- package/src/tools/agent-vibe-tool.ts +297 -0
- package/src/tools/agent-work-plan-tool.ts +265 -6
- package/src/tools/agent-workspace-tool.ts +305 -0
- package/src/tools/artifact-archive.ts +169 -0
- package/src/tools/tool-definition-compaction.ts +36 -0
- package/src/version.ts +1 -1
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import type { ModelPickerTarget } from './model-picker.ts';
|
|
2
|
-
import type { AgentWorkspaceChannelStatus } from './agent-workspace-channels.ts';
|
|
2
|
+
import type { AgentWorkspaceChannelSetupGuide, AgentWorkspaceChannelStatus } from './agent-workspace-channels.ts';
|
|
3
3
|
import type { AgentWorkspaceSetupChecklistItem } from './agent-workspace-setup.ts';
|
|
4
4
|
import type { AgentWorkspaceVoiceMediaReadiness } from './agent-workspace-voice-media.ts';
|
|
5
5
|
import type { AgentBehaviorDiscoverySnapshot } from '../agent/behavior-discovery-summary.ts';
|
|
6
|
+
import type { AgentSetupWizard } from '../agent/setup-wizard.ts';
|
|
6
7
|
|
|
7
8
|
export const AGENT_WORKSPACE_MODAL_NAME = 'agentWorkspace';
|
|
8
9
|
|
|
@@ -19,7 +20,9 @@ export const AGENT_WORKSPACE_CATEGORY_IDS = [
|
|
|
19
20
|
'onboarding-voice-media',
|
|
20
21
|
'onboarding-context',
|
|
21
22
|
'onboarding-automation',
|
|
23
|
+
'personal-ops',
|
|
22
24
|
'research',
|
|
25
|
+
'documents',
|
|
23
26
|
'artifacts',
|
|
24
27
|
'conversation',
|
|
25
28
|
'channels',
|
|
@@ -41,7 +44,8 @@ export const AGENT_WORKSPACE_CATEGORY_IDS = [
|
|
|
41
44
|
|
|
42
45
|
export type AgentWorkspaceCategoryId = (typeof AGENT_WORKSPACE_CATEGORY_IDS)[number];
|
|
43
46
|
|
|
44
|
-
export type AgentWorkspaceActionKind = 'command' | 'guidance' | 'workspace' | 'editor' | 'setting' | 'settings-import' | 'model-picker' | 'settings-modal' | 'local-selection' | 'local-operation' | 'onboarding-complete';
|
|
47
|
+
export type AgentWorkspaceActionKind = 'command' | 'guidance' | 'workspace' | 'editor' | 'setting' | 'settings-import' | 'setup-checkpoint' | 'model-picker' | 'settings-modal' | 'local-selection' | 'local-operation' | 'onboarding-complete';
|
|
48
|
+
export type AgentWorkspaceSetupCheckpointOperation = 'show' | 'mark-current' | 'clear';
|
|
45
49
|
|
|
46
50
|
export type AgentWorkspaceLocalEditorKind = 'memory' | 'note' | 'persona' | 'skill' | 'routine' | 'profile';
|
|
47
51
|
|
|
@@ -49,6 +53,9 @@ export type AgentWorkspaceEditorKind =
|
|
|
49
53
|
| AgentWorkspaceLocalEditorKind
|
|
50
54
|
| 'web-research'
|
|
51
55
|
| 'web-fetch'
|
|
56
|
+
| 'research-run'
|
|
57
|
+
| 'research-source'
|
|
58
|
+
| 'research-report'
|
|
52
59
|
| 'knowledge-url'
|
|
53
60
|
| 'knowledge-urls'
|
|
54
61
|
| 'knowledge-file'
|
|
@@ -66,6 +73,23 @@ export type AgentWorkspaceEditorKind =
|
|
|
66
73
|
| 'knowledge-consolidate'
|
|
67
74
|
| 'knowledge-packet'
|
|
68
75
|
| 'knowledge-explain'
|
|
76
|
+
| 'document-browse'
|
|
77
|
+
| 'document-show'
|
|
78
|
+
| 'document-create'
|
|
79
|
+
| 'document-update'
|
|
80
|
+
| 'document-review'
|
|
81
|
+
| 'document-comment'
|
|
82
|
+
| 'document-resolve-comment'
|
|
83
|
+
| 'document-suggest'
|
|
84
|
+
| 'document-accept-suggestion'
|
|
85
|
+
| 'document-reject-suggestion'
|
|
86
|
+
| 'document-insert-artifact'
|
|
87
|
+
| 'document-attach-artifact'
|
|
88
|
+
| 'document-export'
|
|
89
|
+
| 'document-reviewer-readiness'
|
|
90
|
+
| 'document-review-packet-wizard'
|
|
91
|
+
| 'document-review-packet-preset'
|
|
92
|
+
| 'document-review-packet-preset-refresh'
|
|
69
93
|
| 'memory-search'
|
|
70
94
|
| 'memory-get'
|
|
71
95
|
| 'memory-explain'
|
|
@@ -98,7 +122,21 @@ export type AgentWorkspaceEditorKind =
|
|
|
98
122
|
| 'secret-delete'
|
|
99
123
|
| 'tts-prompt'
|
|
100
124
|
| 'image-input'
|
|
125
|
+
| 'artifact-browser'
|
|
126
|
+
| 'artifact-show'
|
|
127
|
+
| 'artifact-export-file'
|
|
128
|
+
| 'artifact-export-package'
|
|
129
|
+
| 'artifact-promote-knowledge'
|
|
101
130
|
| 'media-generate'
|
|
131
|
+
| 'model-compare'
|
|
132
|
+
| 'local-model-benchmark'
|
|
133
|
+
| 'model-compare-review'
|
|
134
|
+
| 'model-compare-handoff-diff'
|
|
135
|
+
| 'model-compare-judge'
|
|
136
|
+
| 'model-compare-apply'
|
|
137
|
+
| 'model-compare-route-decision'
|
|
138
|
+
| 'model-compare-export'
|
|
139
|
+
| 'model-compare-analytics'
|
|
102
140
|
| 'skill-bundle'
|
|
103
141
|
| 'skill-bundle-search'
|
|
104
142
|
| 'skill-bundle-show'
|
|
@@ -155,6 +193,7 @@ export type AgentWorkspaceEditorKind =
|
|
|
155
193
|
| 'channel-doctor'
|
|
156
194
|
| 'channel-setup'
|
|
157
195
|
| 'channel-send'
|
|
196
|
+
| 'document-review-packet-share'
|
|
158
197
|
| 'session-save'
|
|
159
198
|
| 'session-load'
|
|
160
199
|
| 'session-rename'
|
|
@@ -183,6 +222,7 @@ export type AgentWorkspaceEditorKind =
|
|
|
183
222
|
| 'automation-run-cancel'
|
|
184
223
|
| 'automation-run-retry'
|
|
185
224
|
| 'schedule-run'
|
|
225
|
+
| 'schedule-edit'
|
|
186
226
|
| 'routine-receipt'
|
|
187
227
|
| 'schedule-receipt'
|
|
188
228
|
| 'mode-preset'
|
|
@@ -262,6 +302,7 @@ export interface AgentWorkspaceAction {
|
|
|
262
302
|
readonly modelPickerTarget?: ModelPickerTarget;
|
|
263
303
|
readonly modelPickerFlow?: 'providerModel' | 'model';
|
|
264
304
|
readonly settingsTarget?: string;
|
|
305
|
+
readonly setupCheckpointOperation?: AgentWorkspaceSetupCheckpointOperation;
|
|
265
306
|
readonly visibleWhenSettingKey?: string;
|
|
266
307
|
readonly visibleWhenSettingValue?: string | boolean | number;
|
|
267
308
|
readonly localKind?: AgentWorkspaceLocalEditorKind;
|
|
@@ -319,6 +360,121 @@ export interface AgentWorkspaceLocalLibraryItem {
|
|
|
319
360
|
readonly startCount?: number;
|
|
320
361
|
}
|
|
321
362
|
|
|
363
|
+
export interface AgentWorkspaceRecentReviewerHandoffArtifact {
|
|
364
|
+
readonly id: string;
|
|
365
|
+
readonly filename: string;
|
|
366
|
+
readonly createdAt: number;
|
|
367
|
+
readonly handoffId: string;
|
|
368
|
+
readonly comparisonId: string;
|
|
369
|
+
readonly sourceArtifactId: string;
|
|
370
|
+
readonly sourceKind: string;
|
|
371
|
+
readonly relatedArtifactCount: number;
|
|
372
|
+
}
|
|
373
|
+
|
|
374
|
+
export interface AgentWorkspaceReviewerReadinessBadge {
|
|
375
|
+
readonly status: 'ready' | 'attention' | 'needs-setup';
|
|
376
|
+
readonly summary: string;
|
|
377
|
+
readonly next: string;
|
|
378
|
+
readonly issueCount: number;
|
|
379
|
+
readonly openComments: number;
|
|
380
|
+
readonly proposedSuggestions: number;
|
|
381
|
+
readonly missingSourceArtifacts: number;
|
|
382
|
+
readonly unrevealedComparisons: number;
|
|
383
|
+
readonly hiddenJudgments: number;
|
|
384
|
+
readonly revealedJudgments: number;
|
|
385
|
+
readonly handoffsMissingRelatedArtifacts: number;
|
|
386
|
+
}
|
|
387
|
+
|
|
388
|
+
export type AgentWorkspaceReviewPacketTimelineEventKind =
|
|
389
|
+
| 'document'
|
|
390
|
+
| 'comment'
|
|
391
|
+
| 'suggestion'
|
|
392
|
+
| 'attachment'
|
|
393
|
+
| 'document-export'
|
|
394
|
+
| 'compare'
|
|
395
|
+
| 'compare-export'
|
|
396
|
+
| 'judgment'
|
|
397
|
+
| 'route-decision'
|
|
398
|
+
| 'packet-preset'
|
|
399
|
+
| 'handoff'
|
|
400
|
+
| 'handoff-archive';
|
|
401
|
+
|
|
402
|
+
export interface AgentWorkspaceReviewPacketTimelineEvent {
|
|
403
|
+
readonly id: string;
|
|
404
|
+
readonly kind: AgentWorkspaceReviewPacketTimelineEventKind;
|
|
405
|
+
readonly at: number;
|
|
406
|
+
readonly label: string;
|
|
407
|
+
readonly detail: string;
|
|
408
|
+
readonly status: 'ready' | 'attention' | 'complete' | 'info';
|
|
409
|
+
readonly route: string;
|
|
410
|
+
readonly sourceId: string;
|
|
411
|
+
}
|
|
412
|
+
|
|
413
|
+
export interface AgentWorkspaceReviewPacketTimeline {
|
|
414
|
+
readonly available: boolean;
|
|
415
|
+
readonly count: number;
|
|
416
|
+
readonly next: string;
|
|
417
|
+
readonly items: readonly AgentWorkspaceReviewPacketTimelineEvent[];
|
|
418
|
+
}
|
|
419
|
+
|
|
420
|
+
export interface AgentWorkspaceReviewPacketPresetLineage {
|
|
421
|
+
readonly artifactId: string;
|
|
422
|
+
readonly presetId: string | null;
|
|
423
|
+
readonly name: string | null;
|
|
424
|
+
readonly refreshed: boolean;
|
|
425
|
+
readonly refreshedFromArtifactId: string | null;
|
|
426
|
+
readonly refreshedFromPresetId: string | null;
|
|
427
|
+
readonly freshnessMissingCount: number | null;
|
|
428
|
+
readonly freshnessSupersededCount: number | null;
|
|
429
|
+
readonly freshnessUnresolvedCount: number | null;
|
|
430
|
+
readonly summary: string;
|
|
431
|
+
readonly inspectRoute: string;
|
|
432
|
+
}
|
|
433
|
+
|
|
434
|
+
export interface AgentWorkspaceReviewPacketDefaults {
|
|
435
|
+
readonly documentId: string | null;
|
|
436
|
+
readonly documentTitle: string | null;
|
|
437
|
+
readonly documentExportArtifactId: string | null;
|
|
438
|
+
readonly comparisonArtifactId: string | null;
|
|
439
|
+
readonly judgmentArtifactId: string | null;
|
|
440
|
+
readonly revealedJudgmentArtifactId: string | null;
|
|
441
|
+
readonly routeDecisionArtifactId: string | null;
|
|
442
|
+
readonly routeDecision: string | null;
|
|
443
|
+
readonly handoffArtifactId: string | null;
|
|
444
|
+
readonly handoffArchiveArtifactId: string | null;
|
|
445
|
+
readonly reviewPacketPresetArtifactId: string | null;
|
|
446
|
+
readonly reviewPacketPresetName: string | null;
|
|
447
|
+
readonly reviewPacketPresetLineage: AgentWorkspaceReviewPacketPresetLineage | null;
|
|
448
|
+
readonly relatedArtifactIds: readonly string[];
|
|
449
|
+
readonly summary: string;
|
|
450
|
+
}
|
|
451
|
+
|
|
452
|
+
export type AgentWorkspaceReviewPacketWizardStepStatus = 'done' | 'current' | 'pending' | 'blocked';
|
|
453
|
+
|
|
454
|
+
export interface AgentWorkspaceReviewPacketWizardStep {
|
|
455
|
+
readonly id: string;
|
|
456
|
+
readonly label: string;
|
|
457
|
+
readonly status: AgentWorkspaceReviewPacketWizardStepStatus;
|
|
458
|
+
readonly detail: string;
|
|
459
|
+
readonly userRoute: string;
|
|
460
|
+
readonly modelRoute: string;
|
|
461
|
+
readonly actionId: string;
|
|
462
|
+
readonly backtrackRoute: string | null;
|
|
463
|
+
}
|
|
464
|
+
|
|
465
|
+
export interface AgentWorkspaceReviewPacketWizard {
|
|
466
|
+
readonly available: boolean;
|
|
467
|
+
readonly status: 'complete' | 'active' | 'blocked' | 'empty';
|
|
468
|
+
readonly completedSteps: number;
|
|
469
|
+
readonly totalSteps: number;
|
|
470
|
+
readonly currentStepId: string | null;
|
|
471
|
+
readonly currentStepLabel: string | null;
|
|
472
|
+
readonly next: string;
|
|
473
|
+
readonly finalReview: string;
|
|
474
|
+
readonly presetLineage: AgentWorkspaceReviewPacketPresetLineage | null;
|
|
475
|
+
readonly steps: readonly AgentWorkspaceReviewPacketWizardStep[];
|
|
476
|
+
}
|
|
477
|
+
|
|
322
478
|
export interface AgentWorkspaceRuntimeProfileItem {
|
|
323
479
|
readonly id: string;
|
|
324
480
|
readonly homeDirectory: string;
|
|
@@ -348,6 +504,109 @@ export interface AgentWorkspaceRoutineScheduleReceiptSummary {
|
|
|
348
504
|
readonly createdAt: string;
|
|
349
505
|
}
|
|
350
506
|
|
|
507
|
+
export interface AgentWorkspaceResearchRunSummary {
|
|
508
|
+
readonly id: string;
|
|
509
|
+
readonly title: string;
|
|
510
|
+
readonly status: string;
|
|
511
|
+
readonly phase: string;
|
|
512
|
+
readonly progress: number;
|
|
513
|
+
readonly sourceIds: readonly string[];
|
|
514
|
+
readonly nextSteps: readonly string[];
|
|
515
|
+
readonly checkpointCount: number;
|
|
516
|
+
readonly logTail: readonly string[];
|
|
517
|
+
readonly updatedAt: string;
|
|
518
|
+
readonly note?: string;
|
|
519
|
+
readonly reportArtifactId?: string;
|
|
520
|
+
}
|
|
521
|
+
|
|
522
|
+
export interface AgentWorkspaceResearchContractSummary {
|
|
523
|
+
readonly status: string;
|
|
524
|
+
readonly label: string;
|
|
525
|
+
readonly next: string;
|
|
526
|
+
readonly route: string;
|
|
527
|
+
readonly details: readonly string[];
|
|
528
|
+
}
|
|
529
|
+
|
|
530
|
+
export interface AgentWorkspaceVibeSummary {
|
|
531
|
+
readonly status: 'ready' | 'attention' | 'needs-setup' | 'unavailable';
|
|
532
|
+
readonly applied: number;
|
|
533
|
+
readonly blocked: number;
|
|
534
|
+
readonly truncated: number;
|
|
535
|
+
readonly projectInitPath: string | null;
|
|
536
|
+
readonly globalInitPath: string | null;
|
|
537
|
+
readonly statusRoute: '/vibe status';
|
|
538
|
+
readonly initProjectRoute: '/vibe init';
|
|
539
|
+
readonly initGlobalRoute: '/vibe init --global';
|
|
540
|
+
readonly next: string;
|
|
541
|
+
}
|
|
542
|
+
|
|
543
|
+
export interface AgentWorkspaceProjectContextSummary {
|
|
544
|
+
readonly status: 'ready' | 'attention' | 'needs-setup' | 'unavailable';
|
|
545
|
+
readonly loaded: number;
|
|
546
|
+
readonly blocked: number;
|
|
547
|
+
readonly truncated: number;
|
|
548
|
+
readonly supportedSources: readonly string[];
|
|
549
|
+
readonly targetAware: boolean;
|
|
550
|
+
readonly catalogRoute: 'context action:"files"';
|
|
551
|
+
readonly inspectRoute: 'context action:"file"';
|
|
552
|
+
readonly next: string;
|
|
553
|
+
}
|
|
554
|
+
|
|
555
|
+
export interface AgentWorkspacePromptContextReceiptSummary {
|
|
556
|
+
readonly receiptId: string;
|
|
557
|
+
readonly turnId: string | null;
|
|
558
|
+
readonly source: string;
|
|
559
|
+
readonly provider: string;
|
|
560
|
+
readonly model: string;
|
|
561
|
+
readonly createdAt: number;
|
|
562
|
+
readonly activeRecords: number;
|
|
563
|
+
readonly suppressedRecords: number;
|
|
564
|
+
readonly segmentCount: number;
|
|
565
|
+
readonly approxPromptTokens: number;
|
|
566
|
+
readonly outcomeStatus: 'completed' | 'error' | 'cancelled' | 'pending';
|
|
567
|
+
readonly stopReason: string | null;
|
|
568
|
+
readonly completedAt: number | null;
|
|
569
|
+
readonly detail: string | null;
|
|
570
|
+
readonly inspectRoute: string;
|
|
571
|
+
readonly outcomeFilterRoute: string;
|
|
572
|
+
}
|
|
573
|
+
|
|
574
|
+
export interface AgentWorkspacePromptContextReceiptTimeline {
|
|
575
|
+
readonly status: 'ready' | 'empty' | 'unavailable';
|
|
576
|
+
readonly count: number;
|
|
577
|
+
readonly latestReceiptId: string | null;
|
|
578
|
+
readonly latestTurnId: string | null;
|
|
579
|
+
readonly completedCount: number;
|
|
580
|
+
readonly errorCount: number;
|
|
581
|
+
readonly cancelledCount: number;
|
|
582
|
+
readonly pendingCount: number;
|
|
583
|
+
readonly inspectRoute: 'context action:"prompt" includeParameters:true';
|
|
584
|
+
readonly filterRoutes: {
|
|
585
|
+
readonly completed: string;
|
|
586
|
+
readonly error: string;
|
|
587
|
+
readonly cancelled: string;
|
|
588
|
+
readonly pending: string;
|
|
589
|
+
};
|
|
590
|
+
readonly next: string;
|
|
591
|
+
readonly items: readonly AgentWorkspacePromptContextReceiptSummary[];
|
|
592
|
+
}
|
|
593
|
+
|
|
594
|
+
export interface AgentWorkspaceProcessSupervisionSummary {
|
|
595
|
+
readonly status: 'available' | 'unavailable';
|
|
596
|
+
readonly tracked: number;
|
|
597
|
+
readonly running: number;
|
|
598
|
+
readonly completed: number;
|
|
599
|
+
readonly stdinWriteStatus: 'supported-with-confirmation' | 'not-yet-supported';
|
|
600
|
+
readonly stdinMethod: string | null;
|
|
601
|
+
readonly ptyStatus: 'contract-discovered' | 'not-yet-supported';
|
|
602
|
+
readonly ptyMethod: string | null;
|
|
603
|
+
readonly sudoStatus: 'foreground-only';
|
|
604
|
+
readonly processRoute: string;
|
|
605
|
+
readonly capabilitiesRoute: string;
|
|
606
|
+
readonly visibleMonitorRoute: string;
|
|
607
|
+
readonly liveTailRoute: string;
|
|
608
|
+
}
|
|
609
|
+
|
|
351
610
|
export interface AgentWorkspaceCompanionAccessSummary {
|
|
352
611
|
readonly surface: 'goodvibes-agent';
|
|
353
612
|
readonly hostUrl: string;
|
|
@@ -417,6 +676,30 @@ export interface AgentWorkspaceRuntimeSnapshot {
|
|
|
417
676
|
readonly localNoteCount: number;
|
|
418
677
|
readonly localNoteReviewQueueCount: number;
|
|
419
678
|
readonly localNotes: readonly AgentWorkspaceLocalLibraryItem[];
|
|
679
|
+
readonly researchSourceCount: number;
|
|
680
|
+
readonly researchSourceCandidateCount: number;
|
|
681
|
+
readonly researchSourceReviewedCount: number;
|
|
682
|
+
readonly researchSourceRejectedCount: number;
|
|
683
|
+
readonly researchSourceUsedCount: number;
|
|
684
|
+
readonly researchRunCount: number;
|
|
685
|
+
readonly researchRunPlannedCount: number;
|
|
686
|
+
readonly researchRunRunningCount: number;
|
|
687
|
+
readonly researchRunPausedCount: number;
|
|
688
|
+
readonly researchRunBlockedCount: number;
|
|
689
|
+
readonly researchRunTerminalCount: number;
|
|
690
|
+
readonly researchRuns: readonly AgentWorkspaceResearchRunSummary[];
|
|
691
|
+
readonly researchBrowserRunnerContract: AgentWorkspaceResearchContractSummary;
|
|
692
|
+
readonly researchVisualReportContract: AgentWorkspaceResearchContractSummary;
|
|
693
|
+
readonly vibe: AgentWorkspaceVibeSummary;
|
|
694
|
+
readonly projectContext: AgentWorkspaceProjectContextSummary;
|
|
695
|
+
readonly promptContextReceipts: AgentWorkspacePromptContextReceiptTimeline;
|
|
696
|
+
readonly processSupervision: AgentWorkspaceProcessSupervisionSummary;
|
|
697
|
+
readonly recentReviewerHandoffArtifactCount: number;
|
|
698
|
+
readonly recentReviewerHandoffArtifacts: readonly AgentWorkspaceRecentReviewerHandoffArtifact[];
|
|
699
|
+
readonly reviewerReadinessBadge: AgentWorkspaceReviewerReadinessBadge;
|
|
700
|
+
readonly reviewPacketTimeline: AgentWorkspaceReviewPacketTimeline;
|
|
701
|
+
readonly reviewPacketDefaults: AgentWorkspaceReviewPacketDefaults;
|
|
702
|
+
readonly reviewPacketWizard: AgentWorkspaceReviewPacketWizard;
|
|
420
703
|
readonly localRoutineCount: number;
|
|
421
704
|
readonly enabledRoutineCount: number;
|
|
422
705
|
readonly localRoutines: readonly AgentWorkspaceLocalLibraryItem[];
|
|
@@ -441,6 +724,7 @@ export interface AgentWorkspaceRuntimeSnapshot {
|
|
|
441
724
|
readonly delegatedReviewPolicy: 'explicit-build-delegation-only';
|
|
442
725
|
readonly companionAccess: AgentWorkspaceCompanionAccessSummary;
|
|
443
726
|
readonly channels: readonly AgentWorkspaceChannelStatus[];
|
|
727
|
+
readonly channelSetupGuide: AgentWorkspaceChannelSetupGuide;
|
|
444
728
|
readonly voiceProviderCount: number;
|
|
445
729
|
readonly voiceStreamingProviderCount: number;
|
|
446
730
|
readonly voiceSttProviderCount: number;
|
|
@@ -470,5 +754,6 @@ export interface AgentWorkspaceRuntimeSnapshot {
|
|
|
470
754
|
readonly localStarterTemplateCount: number;
|
|
471
755
|
readonly runtimeStarterTemplates: readonly AgentWorkspaceRuntimeStarterTemplateItem[];
|
|
472
756
|
readonly setupChecklist: readonly AgentWorkspaceSetupChecklistItem[];
|
|
757
|
+
readonly setupWizard: AgentSetupWizard;
|
|
473
758
|
readonly warnings: readonly string[];
|
|
474
759
|
}
|
|
@@ -18,6 +18,7 @@ import { applyAgentWorkspaceLocalLibraryOperation } from './agent-workspace-loca
|
|
|
18
18
|
import { deleteAgentWorkspaceMemoryEditor, submitAgentWorkspaceMemoryEditor } from './agent-workspace-memory-editor.ts';
|
|
19
19
|
import { jumpAgentWorkspaceSelection, moveAgentWorkspaceSelection, selectAgentWorkspaceCategory } from './agent-workspace-navigation.ts';
|
|
20
20
|
import { appendAgentWorkspaceActionSearchText, backspaceAgentWorkspaceActionSearch, beginAgentWorkspaceActionSearch, clearAgentWorkspaceActionSearch, commitAgentWorkspaceActionSearchSelection, searchAgentWorkspaceActions } from './agent-workspace-search.ts';
|
|
21
|
+
import { applyAgentWorkspaceSetupCheckpointAction } from './agent-workspace-setup-checkpoint-action.ts';
|
|
21
22
|
import { agentWorkspaceSettingSchema, applyAgentWorkspaceSettingValue, buildAgentWorkspaceSettingActionEffect, importAgentWorkspaceTuiSettings, isAgentWorkspaceActionVisible } from './agent-workspace-settings.ts';
|
|
22
23
|
import { buildAgentWorkspaceRuntimeSnapshot } from './agent-workspace-snapshot.ts';
|
|
23
24
|
import { submitAgentWorkspaceSubscriptionLoginFinishEditor, submitAgentWorkspaceSubscriptionLoginStartEditor, submitAgentWorkspaceSubscriptionLogoutEditor } from './agent-workspace-subscription-editor.ts';
|
|
@@ -402,6 +403,23 @@ export class AgentWorkspace {
|
|
|
402
403
|
void this.importTuiSettingsAsync(requestRender);
|
|
403
404
|
}
|
|
404
405
|
|
|
406
|
+
applySetupCheckpointAction(action: AgentWorkspaceAction, requestRender?: () => void): void {
|
|
407
|
+
applyAgentWorkspaceSetupCheckpointAction({
|
|
408
|
+
context: this.context,
|
|
409
|
+
runtimeSnapshot: this.runtimeSnapshot,
|
|
410
|
+
setRuntimeSnapshot: (snapshot) => {
|
|
411
|
+
this.runtimeSnapshot = snapshot;
|
|
412
|
+
},
|
|
413
|
+
setStatus: (status) => {
|
|
414
|
+
this.status = status;
|
|
415
|
+
},
|
|
416
|
+
setLastActionResult: (result) => {
|
|
417
|
+
this.lastActionResult = result;
|
|
418
|
+
},
|
|
419
|
+
clampSelection: () => this.clampSelection(),
|
|
420
|
+
}, action, requestRender);
|
|
421
|
+
}
|
|
422
|
+
|
|
405
423
|
private selectedItemForOperation(operation: AgentWorkspaceLocalOperation): AgentWorkspaceLocalLibraryItem | null {
|
|
406
424
|
if (operation.startsWith('memory-')) return this.selectedLocalLibraryItem('memory');
|
|
407
425
|
if (operation.startsWith('note-')) return this.selectedLocalLibraryItem('note');
|
|
@@ -4,6 +4,7 @@ import type { ConversationManager } from '../core/conversation';
|
|
|
4
4
|
import type { ConfigManager } from '../config/index.ts';
|
|
5
5
|
import type { DeepReadonly, GoodVibesConfig } from '../config/index.ts';
|
|
6
6
|
import type { ToolRegistry } from '@pellux/goodvibes-sdk/platform/tools';
|
|
7
|
+
import type { ProcessManager } from '@pellux/goodvibes-sdk/platform/tools';
|
|
7
8
|
import type { PermissionRequestHandler } from '@pellux/goodvibes-sdk/platform/permissions';
|
|
8
9
|
import type { SelectionItem, SelectionResult, SelectionAction } from './selection-modal.ts';
|
|
9
10
|
import type { FileUndoManager } from '@pellux/goodvibes-sdk/platform/state';
|
|
@@ -17,10 +18,12 @@ import type { OpsApi } from '@/runtime/index.ts';
|
|
|
17
18
|
import type { OperatorClient } from '@/runtime/index.ts';
|
|
18
19
|
import type { PeerClient } from '@/runtime/index.ts';
|
|
19
20
|
import type { DirectTransport } from '@/runtime/index.ts';
|
|
21
|
+
import type { AgentPromptContextReceiptStore } from '../agent/prompt-context-receipts.ts';
|
|
20
22
|
import type { VoiceProviderRegistry, VoiceService } from '@pellux/goodvibes-sdk/platform/voice';
|
|
21
23
|
import type { MediaProviderRegistry } from '@pellux/goodvibes-sdk/platform/media';
|
|
22
24
|
import type { ArtifactStore } from '@pellux/goodvibes-sdk/platform/artifacts';
|
|
23
25
|
import type { ChannelDeliveryRouter } from '@pellux/goodvibes-sdk/platform/channels';
|
|
26
|
+
import type { AgentExecutionLedger } from '../runtime/execution-ledger.ts';
|
|
24
27
|
import type {
|
|
25
28
|
CommandWorkspaceShellServices,
|
|
26
29
|
} from '@/runtime/index.ts';
|
|
@@ -157,6 +160,7 @@ export interface CommandWorkspaceUiServices {
|
|
|
157
160
|
keybindingsManager?: KeybindingsManager;
|
|
158
161
|
fileUndoManager?: FileUndoManager;
|
|
159
162
|
panelManager?: PanelManager;
|
|
163
|
+
processManager?: ProcessManager;
|
|
160
164
|
profileManager?: import('@pellux/goodvibes-sdk/platform/profiles').ProfileManager;
|
|
161
165
|
bookmarkManager?: import('@pellux/goodvibes-sdk/platform/bookmarks').BookmarkManager;
|
|
162
166
|
projectPlanningService?: import('@pellux/goodvibes-sdk/platform/knowledge').ProjectPlanningService;
|
|
@@ -174,7 +178,7 @@ export interface CommandPlatformConfigServices {
|
|
|
174
178
|
readonly voiceProviderRegistry?: VoiceProviderRegistry;
|
|
175
179
|
readonly voiceService?: VoiceService;
|
|
176
180
|
readonly mediaProviderRegistry?: MediaProviderRegistry;
|
|
177
|
-
readonly artifactStore?: Pick<ArtifactStore, 'create'
|
|
181
|
+
readonly artifactStore?: Pick<ArtifactStore, 'create'> & Partial<Pick<ArtifactStore, 'get' | 'list' | 'readContent'>>;
|
|
178
182
|
readonly channelDeliveryRouter?: Pick<ChannelDeliveryRouter, 'deliver' | 'listStrategies'>;
|
|
179
183
|
}
|
|
180
184
|
|
|
@@ -183,7 +187,9 @@ export interface CommandPlatformServices
|
|
|
183
187
|
CommandPlatformShellServices {}
|
|
184
188
|
|
|
185
189
|
export interface CommandOpsServices
|
|
186
|
-
extends CommandOpsShellServices {
|
|
190
|
+
extends CommandOpsShellServices {
|
|
191
|
+
readonly executionLedger?: AgentExecutionLedger;
|
|
192
|
+
}
|
|
187
193
|
|
|
188
194
|
export interface CommandExtensionRegistryServices {
|
|
189
195
|
readonly toolRegistry: ToolRegistry;
|
|
@@ -215,6 +221,7 @@ export interface CommandContext
|
|
|
215
221
|
readonly peer?: PeerClient;
|
|
216
222
|
readonly providerApi?: ProviderApi;
|
|
217
223
|
readonly agentKnowledgeApi?: KnowledgeApi;
|
|
224
|
+
readonly promptContextReceipts?: AgentPromptContextReceiptStore;
|
|
218
225
|
readonly hookApi?: HookApi;
|
|
219
226
|
readonly mcpApi?: McpApi;
|
|
220
227
|
readonly opsApi?: OpsApi;
|
|
@@ -49,7 +49,8 @@ function templateLine(template: AgentRuntimeProfileTemplateSummary): string {
|
|
|
49
49
|
` persona ${template.personaName}`,
|
|
50
50
|
` skills ${template.skillNames.join(', ')}`,
|
|
51
51
|
` routines ${template.routineNames.join(', ')}`,
|
|
52
|
-
|
|
52
|
+
template.vibeIncluded ? ' vibe included' : '',
|
|
53
|
+
].filter(Boolean).join('\n');
|
|
53
54
|
}
|
|
54
55
|
|
|
55
56
|
function renderProfiles(homeDirectory: string): string {
|
|
@@ -106,7 +107,7 @@ function renderGuide(homeDirectory: string): string {
|
|
|
106
107
|
' /agent-profile templates',
|
|
107
108
|
'2. Export a starter JSON file:',
|
|
108
109
|
' /agent-profile template export research ./agent-starter.json --yes',
|
|
109
|
-
'3. Edit id, name, description, persona, skills, and
|
|
110
|
+
'3. Edit id, name, description, persona, skills, routines, and optional vibe in that JSON file.',
|
|
110
111
|
'4. Import it into this Agent home:',
|
|
111
112
|
' /agent-profile template import ./agent-starter.json --yes',
|
|
112
113
|
'5. Create an Agent profile from the imported starter:',
|
|
@@ -126,9 +127,10 @@ function renderTemplatePreview(homeDirectory: string, templateId: string): strin
|
|
|
126
127
|
` persona ${file.template.persona.name}`,
|
|
127
128
|
` skills ${file.template.skills.map((skill) => skill.name).join(', ')}`,
|
|
128
129
|
` routines ${file.template.routines.map((routine) => routine.name).join(', ')}`,
|
|
130
|
+
file.template.vibe ? ' vibe included' : '',
|
|
129
131
|
'',
|
|
130
132
|
'Export/edit/import to customize this starter:',
|
|
131
|
-
` /agent-profile template export ${file.template.id} ./agent-starter.json --yes`,
|
|
133
|
+
` /agent-profile template export ${file.template.id} ./agent-starter.json --include-vibe --yes`,
|
|
132
134
|
].join('\n');
|
|
133
135
|
}
|
|
134
136
|
|
|
@@ -242,17 +244,25 @@ export function registerAgentRuntimeProfileRuntimeCommands(registry: CommandRegi
|
|
|
242
244
|
const templateId = commandArgs[2];
|
|
243
245
|
const pathArg = commandArgs[3];
|
|
244
246
|
if (!templateId || !pathArg) {
|
|
245
|
-
|
|
247
|
+
ctx.print('Usage: /agent-profile template export <id> <path> [--include-vibe] --yes');
|
|
246
248
|
return;
|
|
247
249
|
}
|
|
248
250
|
if (!parsed.yes) {
|
|
249
|
-
requireYesFlag(ctx, `export Agent starter template ${templateId}`, '/agent-profile template export <id> <path> --yes');
|
|
251
|
+
requireYesFlag(ctx, `export Agent starter template ${templateId}`, '/agent-profile template export <id> <path> [--include-vibe] --yes');
|
|
250
252
|
return;
|
|
251
253
|
}
|
|
252
254
|
const targetPath = shellPaths.resolveWorkspacePath(pathArg);
|
|
253
255
|
mkdirSync(dirname(targetPath), { recursive: true });
|
|
254
|
-
const template = exportAgentRuntimeProfileTemplate(homeDirectory, templateId, targetPath
|
|
255
|
-
|
|
256
|
+
const template = exportAgentRuntimeProfileTemplate(homeDirectory, templateId, targetPath, {
|
|
257
|
+
includeVibe: commandArgs.includes('--include-vibe'),
|
|
258
|
+
shellPaths,
|
|
259
|
+
});
|
|
260
|
+
ctx.print([
|
|
261
|
+
`Agent starter template exported: ${template.id}`,
|
|
262
|
+
` path ${template.path ?? targetPath}`,
|
|
263
|
+
template.vibeIncluded ? ' vibe included' : '',
|
|
264
|
+
' edit it, then import it with /agent-profile template import <path> --yes',
|
|
265
|
+
].filter(Boolean).join('\n'));
|
|
256
266
|
return;
|
|
257
267
|
}
|
|
258
268
|
if (mode === 'import') {
|
|
@@ -273,7 +283,7 @@ export function registerAgentRuntimeProfileRuntimeCommands(registry: CommandRegi
|
|
|
273
283
|
if (mode === 'from-discovered' || mode === 'import-discovered') {
|
|
274
284
|
const templateId = commandArgs[2];
|
|
275
285
|
if (!templateId) {
|
|
276
|
-
ctx.print('Usage: /agent-profile template from-discovered <id> [--name <name>] [--description <summary>] [--persona <name>] [--skills all|name,name] [--routines all|name,name] [--replace] --yes');
|
|
286
|
+
ctx.print('Usage: /agent-profile template from-discovered <id> [--name <name>] [--description <summary>] [--persona <name>] [--skills all|name,name] [--routines all|name,name] [--include-vibe] [--replace] --yes');
|
|
277
287
|
return;
|
|
278
288
|
}
|
|
279
289
|
if (!parsed.yes) {
|
|
@@ -287,6 +297,7 @@ export function registerAgentRuntimeProfileRuntimeCommands(registry: CommandRegi
|
|
|
287
297
|
persona: parseFlag(commandArgs, '--persona'),
|
|
288
298
|
skills: parseCsvFlag(commandArgs, '--skills'),
|
|
289
299
|
routines: parseCsvFlag(commandArgs, '--routines'),
|
|
300
|
+
includeVibe: commandArgs.includes('--include-vibe'),
|
|
290
301
|
replace: commandArgs.includes('--replace'),
|
|
291
302
|
});
|
|
292
303
|
ctx.print([
|
|
@@ -294,11 +305,12 @@ export function registerAgentRuntimeProfileRuntimeCommands(registry: CommandRegi
|
|
|
294
305
|
` persona ${template.personaName}`,
|
|
295
306
|
` skills ${template.skillNames.join(', ')}`,
|
|
296
307
|
` routines ${template.routineNames.join(', ')}`,
|
|
308
|
+
template.vibeIncluded ? ' vibe included' : '',
|
|
297
309
|
` use /agent-profile create <name> --template ${template.id} --yes`,
|
|
298
|
-
].join('\n'));
|
|
310
|
+
].filter(Boolean).join('\n'));
|
|
299
311
|
return;
|
|
300
312
|
}
|
|
301
|
-
ctx.print('Usage: /agent-profile template [show <id>|export <id> <path> --yes|import <path> --yes|from-discovered <id> --yes]');
|
|
313
|
+
ctx.print('Usage: /agent-profile template [show <id>|export <id> <path> [--include-vibe] --yes|import <path> --yes|from-discovered <id> --yes]');
|
|
302
314
|
return;
|
|
303
315
|
}
|
|
304
316
|
|
|
@@ -318,6 +330,7 @@ export function registerAgentRuntimeProfileRuntimeCommands(registry: CommandRegi
|
|
|
318
330
|
`Agent profile created: ${profile.id}`,
|
|
319
331
|
` home ${profile.homeDirectory}`,
|
|
320
332
|
profile.starterTemplateId ? ` starter: ${profile.starterTemplateId}` : '',
|
|
333
|
+
profile.starterTemplateApplication?.vibePath ? ` vibe ${profile.starterTemplateApplication.vibePath}` : '',
|
|
321
334
|
` launch goodvibes-agent --agent-profile ${profile.id}`,
|
|
322
335
|
].filter(Boolean).join('\n'));
|
|
323
336
|
return;
|
|
@@ -326,7 +339,7 @@ export function registerAgentRuntimeProfileRuntimeCommands(registry: CommandRegi
|
|
|
326
339
|
if (sub === 'create-from-discovered' || sub === 'create-discovered') {
|
|
327
340
|
const profileName = commandArgs[1];
|
|
328
341
|
if (!profileName) {
|
|
329
|
-
ctx.print('Usage: /agent-profile create-from-discovered <name> [--template-id <id>] [--profile-name <display>] [--description <summary>] [--persona <name>] [--skills all|name,name] [--routines all|name,name] [--replace] --yes');
|
|
342
|
+
ctx.print('Usage: /agent-profile create-from-discovered <name> [--template-id <id>] [--profile-name <display>] [--description <summary>] [--persona <name>] [--skills all|name,name] [--routines all|name,name] [--include-vibe] [--replace] --yes');
|
|
330
343
|
return;
|
|
331
344
|
}
|
|
332
345
|
if (!parsed.yes) {
|
|
@@ -341,6 +354,7 @@ export function registerAgentRuntimeProfileRuntimeCommands(registry: CommandRegi
|
|
|
341
354
|
persona: parseFlag(commandArgs, '--persona'),
|
|
342
355
|
skills: parseCsvFlag(commandArgs, '--skills'),
|
|
343
356
|
routines: parseCsvFlag(commandArgs, '--routines'),
|
|
357
|
+
includeVibe: commandArgs.includes('--include-vibe'),
|
|
344
358
|
replace: commandArgs.includes('--replace'),
|
|
345
359
|
});
|
|
346
360
|
ctx.print([
|
|
@@ -350,8 +364,9 @@ export function registerAgentRuntimeProfileRuntimeCommands(registry: CommandRegi
|
|
|
350
364
|
` persona ${created.template.personaName}`,
|
|
351
365
|
` skills ${created.template.skillNames.join(', ')}`,
|
|
352
366
|
` routines ${created.template.routineNames.join(', ')}`,
|
|
367
|
+
created.template.vibeIncluded ? ' vibe included' : '',
|
|
353
368
|
` launch goodvibes-agent --agent-profile ${created.profile.id}`,
|
|
354
|
-
].join('\n'));
|
|
369
|
+
].filter(Boolean).join('\n'));
|
|
355
370
|
return;
|
|
356
371
|
}
|
|
357
372
|
|
|
@@ -369,7 +384,7 @@ export function registerAgentRuntimeProfileRuntimeCommands(registry: CommandRegi
|
|
|
369
384
|
return;
|
|
370
385
|
}
|
|
371
386
|
|
|
372
|
-
ctx.print('Usage: /agent-profile [list|show <name>|default [<name>|clear] --yes|use <name> --yes|templates|guide|template show <id>|template export <id> <path> --yes|template import <path> --yes|create <name> [--template <id>] --yes|create-from-discovered <name> --yes|delete <name> --yes]');
|
|
387
|
+
ctx.print('Usage: /agent-profile [list|show <name>|default [<name>|clear] --yes|use <name> --yes|templates|guide|template show <id>|template export <id> <path> [--include-vibe] --yes|template import <path> --yes|create <name> [--template <id>] --yes|create-from-discovered <name> [--include-vibe] --yes|delete <name> --yes]');
|
|
373
388
|
} catch (error) {
|
|
374
389
|
ctx.print([
|
|
375
390
|
'Error',
|