@pellux/goodvibes-agent 0.1.116 → 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +48 -661
- package/README.md +64 -57
- package/bin/goodvibes-agent.ts +16 -2
- package/dist/package/main.js +199180 -192185
- package/docs/README.md +15 -8
- package/docs/channels-remote-and-api.md +50 -0
- package/docs/connected-host.md +59 -0
- package/docs/getting-started.md +61 -50
- package/docs/knowledge-artifacts-and-multimodal.md +91 -0
- package/docs/project-planning.md +79 -0
- package/docs/providers-and-routing.md +46 -0
- package/docs/release-and-publishing.md +48 -11
- package/docs/tools-and-commands.md +123 -0
- package/docs/voice-and-live-tts.md +51 -0
- package/package.json +3 -6
- package/src/agent/behavior-discovery-summary.ts +1 -3
- package/src/agent/channel-delivery.ts +201 -0
- package/src/agent/media-generation.ts +159 -0
- package/src/agent/memory-prompt.ts +0 -1
- package/src/agent/note-registry.ts +329 -0
- package/src/agent/operator-actions.ts +343 -0
- package/src/agent/persona-discovery.ts +1 -3
- package/src/agent/persona-registry.ts +19 -16
- package/src/agent/record-labels.ts +107 -0
- package/src/agent/reminder-schedule-format.ts +33 -24
- package/src/agent/reminder-schedule.ts +27 -26
- package/src/agent/routine-registry.ts +54 -14
- package/src/agent/routine-schedule-args.ts +2 -1
- package/src/agent/routine-schedule-format.ts +77 -53
- package/src/agent/routine-schedule-promotion.ts +35 -33
- package/src/agent/routine-schedule-receipts.ts +29 -27
- package/src/agent/runtime-profile-starters.ts +5 -5
- package/src/agent/runtime-profile.ts +91 -12
- package/src/agent/skill-registry.ts +210 -32
- package/src/cli/agent-knowledge-args.ts +5 -1
- package/src/cli/agent-knowledge-command.ts +40 -34
- package/src/cli/agent-knowledge-format.ts +80 -67
- package/src/cli/agent-knowledge-methods.ts +1 -1
- package/src/cli/agent-knowledge-runtime.ts +32 -26
- package/src/cli/bundle-command.ts +14 -9
- package/src/cli/config-overrides.ts +37 -36
- package/src/cli/entrypoint.ts +16 -7
- package/src/cli/external-runtime.ts +10 -4
- package/src/cli/help.ts +54 -29
- package/src/cli/local-library-command.ts +203 -83
- package/src/cli/management-commands.ts +105 -68
- package/src/cli/management.ts +55 -74
- package/src/cli/memory-command.ts +66 -32
- package/src/cli/parser.ts +37 -3
- package/src/cli/profiles-command.ts +166 -31
- package/src/cli/provider-auth-routes.ts +2 -1
- package/src/cli/routines-command.ts +176 -40
- package/src/cli/service-posture.ts +16 -16
- package/src/cli/status.ts +56 -135
- package/src/core/conversation-message-snapshot.ts +131 -0
- package/src/input/agent-workspace-access-command-editor-submission.ts +149 -0
- package/src/input/agent-workspace-access-command-editors.ts +170 -0
- package/src/input/agent-workspace-activation.ts +35 -8
- package/src/input/agent-workspace-basic-command-editor-submission.ts +351 -94
- package/src/input/agent-workspace-basic-command-editors.ts +502 -9
- package/src/input/agent-workspace-categories.ts +423 -51
- package/src/input/agent-workspace-channel-command-editor-submission.ts +83 -0
- package/src/input/agent-workspace-channel-command-editors.ts +65 -0
- package/src/input/agent-workspace-channels.ts +35 -2
- package/src/input/agent-workspace-command-editor.ts +41 -3
- package/src/input/agent-workspace-config-reader.ts +16 -0
- package/src/input/agent-workspace-delegation-editor-submission.ts +55 -0
- package/src/input/agent-workspace-editors.ts +166 -1
- package/src/input/agent-workspace-knowledge-command-editor-submission.ts +132 -0
- package/src/input/agent-workspace-knowledge-command-editors.ts +110 -0
- package/src/input/agent-workspace-knowledge-query-editor.ts +1 -1
- package/src/input/agent-workspace-learned-behavior.ts +67 -0
- package/src/input/agent-workspace-library-command-editor-submission.ts +50 -0
- package/src/input/agent-workspace-library-command-editors.ts +35 -0
- package/src/input/agent-workspace-local-operations.ts +218 -0
- package/src/input/agent-workspace-local-selection.ts +75 -0
- package/src/input/agent-workspace-mcp-command-editor-submission.ts +95 -0
- package/src/input/agent-workspace-media-command-editor-submission.ts +62 -0
- package/src/input/agent-workspace-media-command-editors.ts +27 -0
- package/src/input/agent-workspace-memory-command-editor-submission.ts +232 -0
- package/src/input/agent-workspace-memory-command-editors.ts +180 -0
- package/src/input/agent-workspace-memory-editor.ts +2 -2
- package/src/input/agent-workspace-navigation.ts +81 -0
- package/src/input/agent-workspace-notify-editor-submission.ts +121 -0
- package/src/input/agent-workspace-operations-command-editor-submission.ts +208 -0
- package/src/input/agent-workspace-operations-command-editors.ts +196 -0
- package/src/input/agent-workspace-panel-route.ts +43 -0
- package/src/input/agent-workspace-provider-command-editor-submission.ts +155 -0
- package/src/input/agent-workspace-provider-command-editors.ts +93 -0
- package/src/input/agent-workspace-reminder-schedule-editor.ts +1 -1
- package/src/input/agent-workspace-requirements.ts +11 -0
- package/src/input/agent-workspace-routine-schedule-editor.ts +2 -2
- package/src/input/agent-workspace-search.ts +169 -0
- package/src/input/agent-workspace-secret-editor-submission.ts +153 -0
- package/src/input/agent-workspace-session-command-editor-submission.ts +199 -0
- package/src/input/agent-workspace-session-command-editors.ts +249 -0
- package/src/input/agent-workspace-setup.ts +37 -16
- package/src/input/agent-workspace-skill-bundle-command-editor-submission.ts +101 -0
- package/src/input/agent-workspace-skill-bundle-command-editors.ts +110 -0
- package/src/input/agent-workspace-snapshot.ts +162 -21
- package/src/input/agent-workspace-task-command-editor-submission.ts +61 -0
- package/src/input/agent-workspace-task-command-editors.ts +47 -0
- package/src/input/agent-workspace-token.ts +18 -2
- package/src/input/agent-workspace-types.ts +212 -4
- package/src/input/agent-workspace-voice-media.ts +4 -7
- package/src/input/agent-workspace-web-research-editor.ts +104 -0
- package/src/input/agent-workspace-workplan-editor-submission.ts +153 -0
- package/src/input/agent-workspace.ts +178 -240
- package/src/input/command-registry.ts +5 -2
- package/src/input/commands/agent-runtime-profile-runtime.ts +126 -37
- package/src/input/commands/agent-skills-runtime.ts +149 -72
- package/src/input/commands/agent-workspace-runtime.ts +23 -6
- package/src/input/commands/brief-runtime.ts +55 -25
- package/src/input/commands/channels-runtime.ts +147 -33
- package/src/input/commands/compat-runtime.ts +32 -0
- package/src/input/commands/delegation-runtime.ts +29 -23
- package/src/input/commands/experience-runtime.ts +6 -4
- package/src/input/commands/guidance-runtime.ts +4 -4
- package/src/input/commands/health-runtime.ts +149 -126
- package/src/input/commands/knowledge.ts +82 -60
- package/src/input/commands/local-provider-runtime.ts +43 -21
- package/src/input/commands/local-runtime.ts +138 -16
- package/src/input/commands/local-setup-review.ts +10 -20
- package/src/input/commands/mcp-runtime.ts +63 -46
- package/src/input/commands/notify-runtime.ts +38 -9
- package/src/input/commands/operator-actions-runtime.ts +138 -0
- package/src/input/commands/operator-runtime.ts +6 -76
- package/src/input/commands/personas-runtime.ts +46 -31
- package/src/input/commands/planning-runtime.ts +1 -1
- package/src/input/commands/platform-access-runtime.ts +35 -98
- package/src/input/commands/product-runtime.ts +2 -2
- package/src/input/commands/provider-accounts-runtime.ts +60 -39
- package/src/input/commands/qrcode-runtime.ts +50 -9
- package/src/input/commands/recall-bundle.ts +11 -11
- package/src/input/commands/recall-capture.ts +13 -11
- package/src/input/commands/recall-query.ts +29 -21
- package/src/input/commands/recall-review.ts +2 -1
- package/src/input/commands/routines-runtime.ts +99 -45
- package/src/input/commands/runtime-services.ts +1 -14
- package/src/input/commands/schedule-runtime.ts +33 -20
- package/src/input/commands/security-runtime.ts +6 -11
- package/src/input/commands/session-content.ts +80 -78
- package/src/input/commands/session-workflow.ts +134 -104
- package/src/input/commands/session.ts +3 -174
- package/src/input/commands/shell-core.ts +38 -17
- package/src/input/commands/subscription-runtime.ts +54 -185
- package/src/input/commands/support-bundle-runtime.ts +53 -0
- package/src/input/commands/tasks-runtime.ts +21 -21
- package/src/input/commands/work-plan-runtime.ts +33 -8
- package/src/input/commands.ts +6 -2
- package/src/input/feed-context-factory.ts +2 -2
- package/src/input/file-picker.ts +3 -2
- package/src/input/handler-command-route.ts +4 -7
- package/src/input/handler-content-actions.ts +89 -26
- package/src/input/handler-feed-routes.ts +19 -12
- package/src/input/handler-feed.ts +6 -5
- package/src/input/handler-interactions.ts +9 -36
- package/src/input/handler-modal-stack.ts +3 -3
- package/src/input/handler-onboarding.ts +52 -91
- package/src/input/handler-shortcuts.ts +16 -7
- package/src/input/handler.ts +50 -23
- package/src/input/input-history.ts +5 -6
- package/src/input/keybindings.ts +27 -16
- package/src/input/mcp-workspace.ts +90 -26
- package/src/input/onboarding/handler-onboarding-routes.ts +3 -1
- package/src/input/onboarding/onboarding-wizard-apply.ts +62 -0
- package/src/input/onboarding/onboarding-wizard-constants.ts +1 -0
- package/src/input/onboarding/onboarding-wizard-helpers.ts +1 -1
- package/src/input/onboarding/onboarding-wizard-operator-steps.ts +223 -55
- package/src/input/onboarding/onboarding-wizard-steps.ts +59 -35
- package/src/input/onboarding/onboarding-wizard-types.ts +4 -1
- package/src/input/onboarding/onboarding-wizard.ts +87 -2
- package/src/input/profile-picker-modal.ts +31 -12
- package/src/input/session-picker-modal.ts +21 -4
- package/src/input/settings-modal-agent-policy.ts +6 -6
- package/src/input/settings-modal-behavior.ts +0 -3
- package/src/input/settings-modal-subscriptions.ts +3 -3
- package/src/input/settings-modal-types.ts +2 -13
- package/src/input/settings-modal.ts +20 -66
- package/src/input/submission-intent.ts +0 -1
- package/src/input/submission-router.ts +3 -3
- package/src/main.ts +18 -10
- package/src/panels/approval-panel.ts +8 -8
- package/src/panels/automation-control-panel.ts +4 -4
- package/src/panels/base-panel.ts +1 -1
- package/src/panels/builtin/agent.ts +1 -1
- package/src/panels/builtin/operations.ts +3 -12
- package/src/panels/builtin/session.ts +32 -24
- package/src/panels/builtin/shared.ts +7 -7
- package/src/panels/cost-tracker-panel.ts +1 -1
- package/src/panels/docs-panel.ts +5 -3
- package/src/panels/index.ts +0 -1
- package/src/panels/knowledge-panel.ts +6 -5
- package/src/panels/memory-panel.ts +7 -6
- package/src/panels/panel-list-panel.ts +36 -80
- package/src/panels/project-planning-panel.ts +19 -12
- package/src/panels/provider-account-snapshot.ts +51 -25
- package/src/panels/provider-accounts-panel.ts +33 -18
- package/src/panels/provider-health-domains.ts +48 -7
- package/src/panels/provider-health-panel.ts +5 -4
- package/src/panels/qr-panel.ts +44 -20
- package/src/panels/schedule-panel.ts +9 -17
- package/src/panels/security-panel.ts +8 -8
- package/src/panels/session-browser-panel.ts +10 -10
- package/src/panels/subscription-panel.ts +6 -6
- package/src/panels/system-messages-panel.ts +3 -3
- package/src/panels/tasks-panel.ts +21 -14
- package/src/panels/tool-inspector-panel.ts +19 -12
- package/src/panels/work-plan-panel.ts +5 -5
- package/src/planning/project-planning-coordinator.ts +3 -3
- package/src/provider-auth-route-display.ts +9 -0
- package/src/renderer/agent-workspace-style.ts +34 -0
- package/src/renderer/agent-workspace.ts +254 -57
- package/src/renderer/autocomplete-overlay.ts +25 -6
- package/src/renderer/block-actions.ts +1 -3
- package/src/renderer/bookmark-modal.ts +19 -4
- package/src/renderer/buffer.ts +4 -2
- package/src/renderer/context-inspector.ts +50 -13
- package/src/renderer/diff.ts +1 -1
- package/src/renderer/file-picker-overlay.ts +19 -6
- package/src/renderer/help-overlay.ts +112 -34
- package/src/renderer/history-search-overlay.ts +19 -4
- package/src/renderer/live-tail-modal.ts +27 -5
- package/src/renderer/mcp-workspace.ts +176 -43
- package/src/renderer/model-picker-overlay.ts +58 -3
- package/src/renderer/model-workspace.ts +104 -22
- package/src/renderer/onboarding/onboarding-wizard.ts +20 -4
- package/src/renderer/process-modal.ts +27 -6
- package/src/renderer/profile-picker-modal.ts +21 -5
- package/src/renderer/search-overlay.ts +25 -5
- package/src/renderer/selection-modal-overlay.ts +46 -14
- package/src/renderer/session-picker-modal.ts +18 -1
- package/src/renderer/settings-modal-helpers.ts +2 -40
- package/src/renderer/settings-modal.ts +88 -55
- package/src/renderer/system-message.ts +1 -1
- package/src/renderer/tool-call.ts +20 -11
- package/src/runtime/agent-runtime-events.ts +129 -0
- package/src/runtime/bootstrap-command-context.ts +7 -1
- package/src/runtime/bootstrap-command-parts.ts +11 -8
- package/src/runtime/bootstrap-core.ts +23 -65
- package/src/runtime/bootstrap-hook-bridge.ts +7 -18
- package/src/runtime/bootstrap-shell.ts +46 -8
- package/src/runtime/bootstrap.ts +36 -46
- package/src/runtime/connected-host-auth.ts +47 -0
- package/src/runtime/diagnostics/panels/index.ts +2 -2
- package/src/runtime/diagnostics/panels/panel-resources.ts +1 -1
- package/src/runtime/diagnostics/panels/policy.ts +7 -7
- package/src/runtime/index.ts +2 -5
- package/src/runtime/onboarding/apply-file-helpers.ts +66 -0
- package/src/runtime/onboarding/apply.ts +288 -74
- package/src/runtime/onboarding/derivation.ts +10 -13
- package/src/runtime/onboarding/snapshot.ts +2 -17
- package/src/runtime/onboarding/types.ts +34 -20
- package/src/runtime/onboarding/verify.ts +105 -4
- package/src/runtime/operator-token-cleanup.ts +3 -3
- package/src/runtime/services.ts +95 -11
- package/src/runtime/store/selectors/index.ts +3 -3
- package/src/runtime/store/state.ts +1 -4
- package/src/runtime/surface-feature-flags.ts +41 -6
- package/src/runtime/ui-read-models.ts +3 -4
- package/src/runtime/ui-services.ts +6 -6
- package/src/shell/blocking-input.ts +2 -1
- package/src/shell/service-settings-sync.ts +7 -7
- package/src/shell/ui-openers.ts +17 -38
- package/src/tools/agent-analysis-registry-policy.ts +0 -1
- package/src/tools/agent-channel-send-tool.ts +133 -0
- package/src/tools/agent-context-policy.ts +1 -1
- package/src/tools/agent-knowledge-ingest-tool.ts +405 -0
- package/src/tools/agent-knowledge-tool.ts +170 -0
- package/src/tools/agent-local-registry-tool.ts +279 -73
- package/src/tools/agent-media-generate-tool.ts +133 -0
- package/src/tools/agent-notify-tool.ts +143 -0
- package/src/tools/agent-operator-action-tool.ts +137 -0
- package/src/tools/agent-operator-briefing-tool.ts +217 -0
- package/src/tools/agent-reminder-schedule-tool.ts +237 -0
- package/src/tools/agent-tool-policy-guard.ts +13 -15
- package/src/tools/agent-work-plan-tool.ts +256 -0
- package/src/version.ts +1 -1
- package/docs/connected-services.md +0 -51
- package/src/cli/package-verification.ts +0 -274
- package/src/input/commands/policy-dispatch.ts +0 -339
- package/src/input/commands/policy.ts +0 -17
- package/src/panels/panel-picker.ts +0 -105
- package/src/panels/policy-panel.ts +0 -308
- package/src/renderer/panel-picker-overlay.ts +0 -202
|
@@ -1,5 +1,21 @@
|
|
|
1
1
|
import type { AgentWorkspaceActionResult, AgentWorkspaceLocalEditor } from './agent-workspace-types.ts';
|
|
2
|
-
import {
|
|
2
|
+
import { buildAgentWorkspaceAccessCommandEditorSubmission, isAgentWorkspaceAccessCommandSubmissionKind } from './agent-workspace-access-command-editor-submission.ts';
|
|
3
|
+
import { buildAgentWorkspaceChannelCommandEditorSubmission, isAgentWorkspaceChannelCommandSubmissionKind } from './agent-workspace-channel-command-editor-submission.ts';
|
|
4
|
+
import { buildAgentWorkspaceDelegationEditorSubmission, isAgentWorkspaceDelegationEditorKind } from './agent-workspace-delegation-editor-submission.ts';
|
|
5
|
+
import { buildAgentWorkspaceKnowledgeCommandEditorSubmission, isAgentWorkspaceKnowledgeCommandSubmissionKind } from './agent-workspace-knowledge-command-editor-submission.ts';
|
|
6
|
+
import { buildAgentWorkspaceLibraryCommandEditorSubmission, isAgentWorkspaceLibraryCommandSubmissionKind } from './agent-workspace-library-command-editor-submission.ts';
|
|
7
|
+
import { buildAgentWorkspaceMemoryCommandEditorSubmission, isAgentWorkspaceMemoryCommandSubmissionKind } from './agent-workspace-memory-command-editor-submission.ts';
|
|
8
|
+
import { buildAgentWorkspaceMediaCommandEditorSubmission, isAgentWorkspaceMediaCommandSubmissionKind } from './agent-workspace-media-command-editor-submission.ts';
|
|
9
|
+
import { buildAgentWorkspaceMcpCommandEditorSubmission, isAgentWorkspaceMcpCommandSubmissionKind } from './agent-workspace-mcp-command-editor-submission.ts';
|
|
10
|
+
import { buildAgentWorkspaceNotifyEditorSubmission, isAgentWorkspaceNotifyEditorKind } from './agent-workspace-notify-editor-submission.ts';
|
|
11
|
+
import { buildAgentWorkspaceOperationsCommandEditorSubmission, isAgentWorkspaceOperationsCommandSubmissionKind } from './agent-workspace-operations-command-editor-submission.ts';
|
|
12
|
+
import { buildAgentWorkspaceProviderCommandEditorSubmission, isAgentWorkspaceProviderCommandSubmissionKind } from './agent-workspace-provider-command-editor-submission.ts';
|
|
13
|
+
import { buildAgentWorkspaceSecretEditorSubmission, isAgentWorkspaceSecretEditorKind } from './agent-workspace-secret-editor-submission.ts';
|
|
14
|
+
import { buildAgentWorkspaceSessionCommandEditorSubmission, isAgentWorkspaceSessionCommandSubmissionKind } from './agent-workspace-session-command-editor-submission.ts';
|
|
15
|
+
import { buildAgentWorkspaceSkillBundleCommandEditorSubmission, isAgentWorkspaceSkillBundleCommandSubmissionKind } from './agent-workspace-skill-bundle-command-editor-submission.ts';
|
|
16
|
+
import { buildAgentWorkspaceTaskCommandEditorSubmission, isAgentWorkspaceTaskCommandSubmissionKind } from './agent-workspace-task-command-editor-submission.ts';
|
|
17
|
+
import { buildAgentWorkspaceWorkPlanEditorSubmission, isAgentWorkspaceWorkPlanEditorKind } from './agent-workspace-workplan-editor-submission.ts';
|
|
18
|
+
import { quoteSlashCommandArg } from './slash-command-parser.ts';
|
|
3
19
|
|
|
4
20
|
type AgentWorkspaceFieldReader = (fieldId: string) => string;
|
|
5
21
|
|
|
@@ -21,10 +37,6 @@ function isAffirmative(value: string): boolean {
|
|
|
21
37
|
return /^(y|yes|true)$/i.test(value.trim());
|
|
22
38
|
}
|
|
23
39
|
|
|
24
|
-
function splitCommaList(value: string): readonly string[] {
|
|
25
|
-
return value.split(',').map((entry) => entry.trim()).filter(Boolean);
|
|
26
|
-
}
|
|
27
|
-
|
|
28
40
|
export function buildAgentWorkspaceBasicCommandEditorSubmission(
|
|
29
41
|
editor: AgentWorkspaceLocalEditor,
|
|
30
42
|
readField: AgentWorkspaceFieldReader,
|
|
@@ -94,6 +106,31 @@ export function buildAgentWorkspaceBasicCommandEditorSubmission(
|
|
|
94
106
|
},
|
|
95
107
|
};
|
|
96
108
|
}
|
|
109
|
+
if (editor.kind === 'knowledge-urls') {
|
|
110
|
+
if (!isAffirmative(readField('confirm'))) {
|
|
111
|
+
return {
|
|
112
|
+
kind: 'editor',
|
|
113
|
+
editor: { ...editor, message: 'URL list import not confirmed. Type yes, then press Enter.' },
|
|
114
|
+
status: 'Agent Knowledge URL list import not confirmed.',
|
|
115
|
+
};
|
|
116
|
+
}
|
|
117
|
+
const parts = ['/knowledge', 'import-urls', quoteSlashCommandArg(readField('path'))];
|
|
118
|
+
if (isAffirmative(readField('allowPrivateHosts'))) parts.push('--allow-private-hosts');
|
|
119
|
+
parts.push('--yes');
|
|
120
|
+
const command = parts.join(' ');
|
|
121
|
+
return {
|
|
122
|
+
kind: 'dispatch',
|
|
123
|
+
command,
|
|
124
|
+
status: 'Opening Agent Knowledge URL list import.',
|
|
125
|
+
actionResult: {
|
|
126
|
+
kind: 'dispatched',
|
|
127
|
+
title: 'Opening Agent Knowledge URL list import',
|
|
128
|
+
detail: 'The workspace handed a confirmed URL list import command to the shell-owned command router.',
|
|
129
|
+
command,
|
|
130
|
+
safety: 'safe',
|
|
131
|
+
},
|
|
132
|
+
};
|
|
133
|
+
}
|
|
97
134
|
if (editor.kind === 'knowledge-browser-history') {
|
|
98
135
|
if (!isAffirmative(readField('confirm'))) {
|
|
99
136
|
return {
|
|
@@ -158,110 +195,67 @@ export function buildAgentWorkspaceBasicCommandEditorSubmission(
|
|
|
158
195
|
},
|
|
159
196
|
};
|
|
160
197
|
}
|
|
161
|
-
if (editor.kind === '
|
|
198
|
+
if (editor.kind === 'knowledge-reindex') {
|
|
162
199
|
if (!isAffirmative(readField('confirm'))) {
|
|
163
200
|
return {
|
|
164
201
|
kind: 'editor',
|
|
165
|
-
editor: { ...editor, message: '
|
|
166
|
-
status: '
|
|
202
|
+
editor: { ...editor, message: 'Agent Knowledge reindex not confirmed. Type yes, then press Enter.' },
|
|
203
|
+
status: 'Agent Knowledge reindex not confirmed.',
|
|
167
204
|
};
|
|
168
205
|
}
|
|
169
|
-
const
|
|
170
|
-
'/mcp',
|
|
171
|
-
'add',
|
|
172
|
-
quoteSlashCommandArg(readField('name')),
|
|
173
|
-
quoteSlashCommandArg(readField('command')),
|
|
174
|
-
...tokenizeSlashCommand(readField('args')).map(quoteSlashCommandArg),
|
|
175
|
-
];
|
|
176
|
-
const scope = readField('scope');
|
|
177
|
-
const role = readField('role');
|
|
178
|
-
const trust = readField('trust');
|
|
179
|
-
if (scope.length > 0) parts.push('--scope', quoteSlashCommandArg(scope));
|
|
180
|
-
if (role.length > 0) parts.push('--role', quoteSlashCommandArg(role));
|
|
181
|
-
if (trust.length > 0) parts.push('--trust', quoteSlashCommandArg(trust));
|
|
182
|
-
for (const env of splitCommaList(readField('env'))) parts.push('--env', quoteSlashCommandArg(env));
|
|
183
|
-
for (const path of splitCommaList(readField('paths'))) parts.push('--path', quoteSlashCommandArg(path));
|
|
184
|
-
for (const host of splitCommaList(readField('hosts'))) parts.push('--host', quoteSlashCommandArg(host));
|
|
185
|
-
parts.push('--yes');
|
|
186
|
-
const command = parts.join(' ');
|
|
206
|
+
const command = '/knowledge reindex --yes';
|
|
187
207
|
return {
|
|
188
208
|
kind: 'dispatch',
|
|
189
209
|
command,
|
|
190
|
-
status: 'Opening
|
|
210
|
+
status: 'Opening Agent Knowledge reindex.',
|
|
191
211
|
actionResult: {
|
|
192
212
|
kind: 'dispatched',
|
|
193
|
-
title: 'Opening
|
|
194
|
-
detail: 'The workspace handed a confirmed
|
|
213
|
+
title: 'Opening Agent Knowledge reindex',
|
|
214
|
+
detail: 'The workspace handed a confirmed reindex command to the shell-owned command router.',
|
|
195
215
|
command,
|
|
196
216
|
safety: 'safe',
|
|
197
217
|
},
|
|
198
218
|
};
|
|
199
219
|
}
|
|
200
|
-
if (editor.kind
|
|
201
|
-
|
|
202
|
-
return {
|
|
203
|
-
kind: 'editor',
|
|
204
|
-
editor: { ...editor, message: 'Notification webhook add not confirmed. Type yes, then press Enter.' },
|
|
205
|
-
status: 'Notification webhook add not confirmed.',
|
|
206
|
-
};
|
|
207
|
-
}
|
|
208
|
-
const command = `/notify add ${quoteSlashCommandArg(readField('url'))} --yes`;
|
|
209
|
-
return {
|
|
210
|
-
kind: 'dispatch',
|
|
211
|
-
command,
|
|
212
|
-
status: 'Opening notification webhook add.',
|
|
213
|
-
actionResult: {
|
|
214
|
-
kind: 'dispatched',
|
|
215
|
-
title: 'Opening notification webhook add',
|
|
216
|
-
detail: 'The workspace handed a confirmed notification target command to the shell-owned command router.',
|
|
217
|
-
command,
|
|
218
|
-
safety: 'safe',
|
|
219
|
-
},
|
|
220
|
-
};
|
|
220
|
+
if (isAgentWorkspaceAccessCommandSubmissionKind(editor.kind)) {
|
|
221
|
+
return buildAgentWorkspaceAccessCommandEditorSubmission(editor, readField);
|
|
221
222
|
}
|
|
222
|
-
if (editor.kind
|
|
223
|
-
|
|
224
|
-
return {
|
|
225
|
-
kind: 'editor',
|
|
226
|
-
editor: { ...editor, message: 'Notification webhook remove not confirmed. Type yes, then press Enter.' },
|
|
227
|
-
status: 'Notification webhook remove not confirmed.',
|
|
228
|
-
};
|
|
229
|
-
}
|
|
230
|
-
const command = `/notify remove ${quoteSlashCommandArg(readField('url'))} --yes`;
|
|
231
|
-
return {
|
|
232
|
-
kind: 'dispatch',
|
|
233
|
-
command,
|
|
234
|
-
status: 'Opening notification webhook remove.',
|
|
235
|
-
actionResult: {
|
|
236
|
-
kind: 'dispatched',
|
|
237
|
-
title: 'Opening notification webhook remove',
|
|
238
|
-
detail: 'The workspace handed a confirmed notification target remove command to the shell-owned command router.',
|
|
239
|
-
command,
|
|
240
|
-
safety: 'safe',
|
|
241
|
-
},
|
|
242
|
-
};
|
|
223
|
+
if (isAgentWorkspaceChannelCommandSubmissionKind(editor.kind)) {
|
|
224
|
+
return buildAgentWorkspaceChannelCommandEditorSubmission(editor, readField);
|
|
243
225
|
}
|
|
244
|
-
if (editor.kind
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
226
|
+
if (isAgentWorkspaceKnowledgeCommandSubmissionKind(editor.kind)) {
|
|
227
|
+
return buildAgentWorkspaceKnowledgeCommandEditorSubmission(editor, readField);
|
|
228
|
+
}
|
|
229
|
+
if (isAgentWorkspaceLibraryCommandSubmissionKind(editor.kind)) {
|
|
230
|
+
return buildAgentWorkspaceLibraryCommandEditorSubmission(editor, readField);
|
|
231
|
+
}
|
|
232
|
+
if (isAgentWorkspaceMemoryCommandSubmissionKind(editor.kind)) {
|
|
233
|
+
return buildAgentWorkspaceMemoryCommandEditorSubmission(editor, readField);
|
|
234
|
+
}
|
|
235
|
+
if (isAgentWorkspaceMediaCommandSubmissionKind(editor.kind)) {
|
|
236
|
+
return buildAgentWorkspaceMediaCommandEditorSubmission(editor, readField);
|
|
237
|
+
}
|
|
238
|
+
if (isAgentWorkspaceProviderCommandSubmissionKind(editor.kind)) {
|
|
239
|
+
return buildAgentWorkspaceProviderCommandEditorSubmission(editor, readField);
|
|
240
|
+
}
|
|
241
|
+
if (isAgentWorkspaceSessionCommandSubmissionKind(editor.kind)) {
|
|
242
|
+
return buildAgentWorkspaceSessionCommandEditorSubmission(editor, readField);
|
|
243
|
+
}
|
|
244
|
+
if (isAgentWorkspaceSkillBundleCommandSubmissionKind(editor.kind)) {
|
|
245
|
+
return buildAgentWorkspaceSkillBundleCommandEditorSubmission(editor, readField);
|
|
246
|
+
}
|
|
247
|
+
if (isAgentWorkspaceTaskCommandSubmissionKind(editor.kind)) {
|
|
248
|
+
return buildAgentWorkspaceTaskCommandEditorSubmission(editor, readField);
|
|
249
|
+
}
|
|
250
|
+
if (isAgentWorkspaceMcpCommandSubmissionKind(editor.kind)) {
|
|
251
|
+
return buildAgentWorkspaceMcpCommandEditorSubmission(editor, readField);
|
|
252
|
+
}
|
|
253
|
+
if (isAgentWorkspaceOperationsCommandSubmissionKind(editor.kind)) {
|
|
254
|
+
return buildAgentWorkspaceOperationsCommandEditorSubmission(editor, readField);
|
|
255
|
+
}
|
|
256
|
+
if (isAgentWorkspaceNotifyEditorKind(editor.kind)) return buildAgentWorkspaceNotifyEditorSubmission(editor, readField);
|
|
257
|
+
if (isAgentWorkspaceSecretEditorKind(editor.kind)) {
|
|
258
|
+
return buildAgentWorkspaceSecretEditorSubmission(editor, readField);
|
|
265
259
|
}
|
|
266
260
|
if (editor.kind === 'tts-prompt') {
|
|
267
261
|
const command = `/tts ${quoteSlashCommandArg(readField('prompt'))}`;
|
|
@@ -296,6 +290,22 @@ export function buildAgentWorkspaceBasicCommandEditorSubmission(
|
|
|
296
290
|
},
|
|
297
291
|
};
|
|
298
292
|
}
|
|
293
|
+
if (editor.kind === 'model-pin' || editor.kind === 'model-unpin') {
|
|
294
|
+
const pinning = editor.kind === 'model-pin';
|
|
295
|
+
const command = `/${pinning ? 'pin' : 'unpin'} ${quoteSlashCommandArg(readField('model'))}`;
|
|
296
|
+
return {
|
|
297
|
+
kind: 'dispatch',
|
|
298
|
+
command,
|
|
299
|
+
status: pinning ? 'Opening model pin action.' : 'Opening model unpin action.',
|
|
300
|
+
actionResult: {
|
|
301
|
+
kind: 'dispatched',
|
|
302
|
+
title: pinning ? 'Opening model pin action' : 'Opening model unpin action',
|
|
303
|
+
detail: 'The workspace handed model favorites maintenance to the shell-owned command router.',
|
|
304
|
+
command,
|
|
305
|
+
safety: 'safe',
|
|
306
|
+
},
|
|
307
|
+
};
|
|
308
|
+
}
|
|
299
309
|
if (editor.kind === 'profile-template-export') {
|
|
300
310
|
if (!isAffirmative(readField('confirm'))) {
|
|
301
311
|
return {
|
|
@@ -340,6 +350,36 @@ export function buildAgentWorkspaceBasicCommandEditorSubmission(
|
|
|
340
350
|
},
|
|
341
351
|
};
|
|
342
352
|
}
|
|
353
|
+
if (editor.kind === 'profile-template-show') {
|
|
354
|
+
const command = `/agent-profile template show ${quoteSlashCommandArg(readField('id'))}`;
|
|
355
|
+
return {
|
|
356
|
+
kind: 'dispatch',
|
|
357
|
+
command,
|
|
358
|
+
status: 'Opening Agent starter template preview.',
|
|
359
|
+
actionResult: {
|
|
360
|
+
kind: 'dispatched',
|
|
361
|
+
title: 'Opening Agent starter template preview',
|
|
362
|
+
detail: 'The workspace handed a read-only starter template preview command to the shell-owned command router.',
|
|
363
|
+
command,
|
|
364
|
+
safety: 'read-only',
|
|
365
|
+
},
|
|
366
|
+
};
|
|
367
|
+
}
|
|
368
|
+
if (editor.kind === 'profile-show') {
|
|
369
|
+
const command = `/agent-profile show ${quoteSlashCommandArg(readField('profile'))}`;
|
|
370
|
+
return {
|
|
371
|
+
kind: 'dispatch',
|
|
372
|
+
command,
|
|
373
|
+
status: 'Opening Agent profile detail.',
|
|
374
|
+
actionResult: {
|
|
375
|
+
kind: 'dispatched',
|
|
376
|
+
title: 'Opening Agent profile detail',
|
|
377
|
+
detail: 'The workspace handed a read-only Agent profile inspection command to the shell-owned command router.',
|
|
378
|
+
command,
|
|
379
|
+
safety: 'read-only',
|
|
380
|
+
},
|
|
381
|
+
};
|
|
382
|
+
}
|
|
343
383
|
if (editor.kind === 'profile-template-from-discovered') {
|
|
344
384
|
if (!isAffirmative(readField('confirm'))) {
|
|
345
385
|
return {
|
|
@@ -421,6 +461,223 @@ export function buildAgentWorkspaceBasicCommandEditorSubmission(
|
|
|
421
461
|
},
|
|
422
462
|
};
|
|
423
463
|
}
|
|
464
|
+
if (editor.kind === 'profile-default') {
|
|
465
|
+
if (!isAffirmative(readField('confirm'))) {
|
|
466
|
+
return {
|
|
467
|
+
kind: 'editor',
|
|
468
|
+
editor: { ...editor, message: 'Default Agent profile selection not confirmed. Type yes, then press Enter.' },
|
|
469
|
+
status: 'Default Agent profile selection not confirmed.',
|
|
470
|
+
};
|
|
471
|
+
}
|
|
472
|
+
const command = `/agent-profile use ${quoteSlashCommandArg(readField('profile'))} --yes`;
|
|
473
|
+
return {
|
|
474
|
+
kind: 'dispatch',
|
|
475
|
+
command,
|
|
476
|
+
status: 'Opening default Agent profile selection.',
|
|
477
|
+
actionResult: {
|
|
478
|
+
kind: 'dispatched',
|
|
479
|
+
title: 'Opening default Agent profile selection',
|
|
480
|
+
detail: 'The workspace handed a confirmed default profile selection command to the shell-owned command router.',
|
|
481
|
+
command,
|
|
482
|
+
safety: 'safe',
|
|
483
|
+
},
|
|
484
|
+
};
|
|
485
|
+
}
|
|
486
|
+
if (editor.kind === 'profile-default-clear') {
|
|
487
|
+
if (!isAffirmative(readField('confirm'))) {
|
|
488
|
+
return {
|
|
489
|
+
kind: 'editor',
|
|
490
|
+
editor: { ...editor, message: 'Default Agent profile clear not confirmed. Type yes, then press Enter.' },
|
|
491
|
+
status: 'Default Agent profile clear not confirmed.',
|
|
492
|
+
};
|
|
493
|
+
}
|
|
494
|
+
const command = '/agent-profile default clear --yes';
|
|
495
|
+
return {
|
|
496
|
+
kind: 'dispatch',
|
|
497
|
+
command,
|
|
498
|
+
status: 'Opening default Agent profile clear.',
|
|
499
|
+
actionResult: {
|
|
500
|
+
kind: 'dispatched',
|
|
501
|
+
title: 'Opening default Agent profile clear',
|
|
502
|
+
detail: 'The workspace handed a confirmed default profile clear command to the shell-owned command router.',
|
|
503
|
+
command,
|
|
504
|
+
safety: 'safe',
|
|
505
|
+
},
|
|
506
|
+
};
|
|
507
|
+
}
|
|
508
|
+
if (editor.kind === 'profile-delete') {
|
|
509
|
+
if (!isAffirmative(readField('confirm'))) {
|
|
510
|
+
return {
|
|
511
|
+
kind: 'editor',
|
|
512
|
+
editor: { ...editor, message: 'Agent profile delete not confirmed. Type yes, then press Enter.' },
|
|
513
|
+
status: 'Agent profile delete not confirmed.',
|
|
514
|
+
};
|
|
515
|
+
}
|
|
516
|
+
const command = `/agent-profile delete ${quoteSlashCommandArg(readField('profile'))} --yes`;
|
|
517
|
+
return {
|
|
518
|
+
kind: 'dispatch',
|
|
519
|
+
command,
|
|
520
|
+
status: 'Opening Agent profile deletion.',
|
|
521
|
+
actionResult: {
|
|
522
|
+
kind: 'dispatched',
|
|
523
|
+
title: 'Opening Agent profile deletion',
|
|
524
|
+
detail: 'The workspace handed a confirmed profile deletion command to the shell-owned command router.',
|
|
525
|
+
command,
|
|
526
|
+
safety: 'safe',
|
|
527
|
+
},
|
|
528
|
+
};
|
|
529
|
+
}
|
|
530
|
+
if (editor.kind === 'support-bundle-export') {
|
|
531
|
+
if (!isAffirmative(readField('confirm'))) {
|
|
532
|
+
return {
|
|
533
|
+
kind: 'editor',
|
|
534
|
+
editor: { ...editor, message: 'Agent support bundle export not confirmed. Type yes, then press Enter.' },
|
|
535
|
+
status: 'Agent support bundle export not confirmed.',
|
|
536
|
+
};
|
|
537
|
+
}
|
|
538
|
+
const command = `/bundle export ${quoteSlashCommandArg(readField('path'))} --yes`;
|
|
539
|
+
return {
|
|
540
|
+
kind: 'dispatch',
|
|
541
|
+
command,
|
|
542
|
+
status: 'Opening Agent support bundle export.',
|
|
543
|
+
actionResult: {
|
|
544
|
+
kind: 'dispatched',
|
|
545
|
+
title: 'Opening Agent support bundle export',
|
|
546
|
+
detail: 'The workspace handed a confirmed support bundle export command to the shell-owned command router.',
|
|
547
|
+
command,
|
|
548
|
+
safety: 'safe',
|
|
549
|
+
},
|
|
550
|
+
};
|
|
551
|
+
}
|
|
552
|
+
if (editor.kind === 'support-bundle-inspect') {
|
|
553
|
+
const command = `/bundle inspect ${quoteSlashCommandArg(readField('path'))}`;
|
|
554
|
+
return {
|
|
555
|
+
kind: 'dispatch',
|
|
556
|
+
command,
|
|
557
|
+
status: 'Opening Agent support bundle inspection.',
|
|
558
|
+
actionResult: {
|
|
559
|
+
kind: 'dispatched',
|
|
560
|
+
title: 'Opening Agent support bundle inspection',
|
|
561
|
+
detail: 'The workspace handed a support bundle inspect command to the shell-owned command router.',
|
|
562
|
+
command,
|
|
563
|
+
safety: 'read-only',
|
|
564
|
+
},
|
|
565
|
+
};
|
|
566
|
+
}
|
|
567
|
+
if (editor.kind === 'support-bundle-import') {
|
|
568
|
+
if (!isAffirmative(readField('confirm'))) {
|
|
569
|
+
return {
|
|
570
|
+
kind: 'editor',
|
|
571
|
+
editor: { ...editor, message: 'Agent support bundle import not confirmed. Type yes, then press Enter.' },
|
|
572
|
+
status: 'Agent support bundle import not confirmed.',
|
|
573
|
+
};
|
|
574
|
+
}
|
|
575
|
+
const command = `/bundle import ${quoteSlashCommandArg(readField('path'))} --yes`;
|
|
576
|
+
return {
|
|
577
|
+
kind: 'dispatch',
|
|
578
|
+
command,
|
|
579
|
+
status: 'Opening Agent support bundle import.',
|
|
580
|
+
actionResult: {
|
|
581
|
+
kind: 'dispatched',
|
|
582
|
+
title: 'Opening Agent support bundle import',
|
|
583
|
+
detail: 'The workspace handed a confirmed support bundle import command to the shell-owned command router.',
|
|
584
|
+
command,
|
|
585
|
+
safety: 'safe',
|
|
586
|
+
},
|
|
587
|
+
};
|
|
588
|
+
}
|
|
589
|
+
if (editor.kind === 'subscription-inspect') {
|
|
590
|
+
const command = `/subscription inspect ${quoteSlashCommandArg(readField('provider'))}`;
|
|
591
|
+
return {
|
|
592
|
+
kind: 'dispatch',
|
|
593
|
+
command,
|
|
594
|
+
status: 'Opening provider subscription inspection.',
|
|
595
|
+
actionResult: {
|
|
596
|
+
kind: 'dispatched',
|
|
597
|
+
title: 'Opening provider subscription inspection',
|
|
598
|
+
detail: 'The workspace handed a read-only provider subscription inspection command to the shell-owned command router.',
|
|
599
|
+
command,
|
|
600
|
+
safety: 'read-only',
|
|
601
|
+
},
|
|
602
|
+
};
|
|
603
|
+
}
|
|
604
|
+
if (editor.kind === 'subscription-login-start') {
|
|
605
|
+
if (!isAffirmative(readField('confirm'))) {
|
|
606
|
+
return {
|
|
607
|
+
kind: 'editor',
|
|
608
|
+
editor: { ...editor, message: 'Provider subscription login start not confirmed. Type yes, then press Enter.' },
|
|
609
|
+
status: 'Provider subscription login start not confirmed.',
|
|
610
|
+
};
|
|
611
|
+
}
|
|
612
|
+
const parts = [
|
|
613
|
+
'/subscription',
|
|
614
|
+
'login',
|
|
615
|
+
quoteSlashCommandArg(readField('provider')),
|
|
616
|
+
'start',
|
|
617
|
+
];
|
|
618
|
+
if (!isAffirmative(readField('openBrowser'))) parts.push('--no-browser');
|
|
619
|
+
parts.push('--manual');
|
|
620
|
+
parts.push('--yes');
|
|
621
|
+
const command = parts.join(' ');
|
|
622
|
+
return {
|
|
623
|
+
kind: 'dispatch',
|
|
624
|
+
command,
|
|
625
|
+
status: 'Opening provider subscription login start.',
|
|
626
|
+
actionResult: {
|
|
627
|
+
kind: 'dispatched',
|
|
628
|
+
title: 'Opening provider subscription login start',
|
|
629
|
+
detail: 'The workspace handed a confirmed subscription-login start command to the shell-owned command router.',
|
|
630
|
+
command,
|
|
631
|
+
safety: 'safe',
|
|
632
|
+
},
|
|
633
|
+
};
|
|
634
|
+
}
|
|
635
|
+
if (editor.kind === 'subscription-login-finish') {
|
|
636
|
+
if (!isAffirmative(readField('confirm'))) {
|
|
637
|
+
return {
|
|
638
|
+
kind: 'editor',
|
|
639
|
+
editor: { ...editor, message: 'Provider subscription login finish not confirmed. Type yes, then press Enter.' },
|
|
640
|
+
status: 'Provider subscription login finish not confirmed.',
|
|
641
|
+
};
|
|
642
|
+
}
|
|
643
|
+
const command = `/subscription login ${quoteSlashCommandArg(readField('provider'))} finish ${quoteSlashCommandArg(readField('code'))} --yes`;
|
|
644
|
+
return {
|
|
645
|
+
kind: 'dispatch',
|
|
646
|
+
command,
|
|
647
|
+
status: 'Opening provider subscription login finish.',
|
|
648
|
+
actionResult: {
|
|
649
|
+
kind: 'dispatched',
|
|
650
|
+
title: 'Opening provider subscription login finish',
|
|
651
|
+
detail: 'The workspace handed a confirmed subscription-login finish command to the shell-owned command router.',
|
|
652
|
+
command,
|
|
653
|
+
safety: 'safe',
|
|
654
|
+
},
|
|
655
|
+
};
|
|
656
|
+
}
|
|
657
|
+
if (editor.kind === 'subscription-logout') {
|
|
658
|
+
if (!isAffirmative(readField('confirm'))) {
|
|
659
|
+
return {
|
|
660
|
+
kind: 'editor',
|
|
661
|
+
editor: { ...editor, message: 'Provider subscription logout not confirmed. Type yes, then press Enter.' },
|
|
662
|
+
status: 'Provider subscription logout not confirmed.',
|
|
663
|
+
};
|
|
664
|
+
}
|
|
665
|
+
const command = `/subscription logout ${quoteSlashCommandArg(readField('provider'))} --yes`;
|
|
666
|
+
return {
|
|
667
|
+
kind: 'dispatch',
|
|
668
|
+
command,
|
|
669
|
+
status: 'Opening provider subscription logout.',
|
|
670
|
+
actionResult: {
|
|
671
|
+
kind: 'dispatched',
|
|
672
|
+
title: 'Opening provider subscription logout',
|
|
673
|
+
detail: 'The workspace handed a confirmed provider subscription logout command to the shell-owned command router.',
|
|
674
|
+
command,
|
|
675
|
+
safety: 'safe',
|
|
676
|
+
},
|
|
677
|
+
};
|
|
678
|
+
}
|
|
679
|
+
if (isAgentWorkspaceDelegationEditorKind(editor.kind)) return buildAgentWorkspaceDelegationEditorSubmission(editor, readField);
|
|
680
|
+
if (isAgentWorkspaceWorkPlanEditorKind(editor.kind)) return buildAgentWorkspaceWorkPlanEditorSubmission(editor, readField);
|
|
424
681
|
if (editor.kind === 'skill-discovery-import') {
|
|
425
682
|
if (!isAffirmative(readField('confirm'))) {
|
|
426
683
|
return {
|
|
@@ -430,7 +687,7 @@ export function buildAgentWorkspaceBasicCommandEditorSubmission(
|
|
|
430
687
|
};
|
|
431
688
|
}
|
|
432
689
|
const parts = [
|
|
433
|
-
'/
|
|
690
|
+
'/skills',
|
|
434
691
|
'import-discovered',
|
|
435
692
|
quoteSlashCommandArg(readField('name')),
|
|
436
693
|
];
|
|
@@ -509,7 +766,7 @@ export function buildAgentWorkspaceBasicCommandEditorSubmission(
|
|
|
509
766
|
};
|
|
510
767
|
}
|
|
511
768
|
const commandParts = [
|
|
512
|
-
'/
|
|
769
|
+
'/skills bundle create',
|
|
513
770
|
'--name',
|
|
514
771
|
quoteSlashCommandArg(readField('name')),
|
|
515
772
|
'--description',
|