@pellux/goodvibes-agent 1.1.7 → 1.3.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 +329 -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 +138903 -91477
- 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 +58 -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 +116 -45
- package/docs/voice-and-live-tts.md +3 -1
- package/package.json +3 -2
- package/release/release-notes.md +142 -5
- package/release/release-readiness.json +124 -94
- 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 +294 -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-artifact-receipts.ts +366 -0
- package/src/agent/setup-wizard-checkpoint.ts +140 -0
- package/src/agent/setup-wizard.ts +683 -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 +313 -30
- package/src/input/agent-workspace-setup-checkpoint-action.ts +127 -0
- package/src/input/agent-workspace-setup-snapshot.ts +217 -0
- package/src/input/agent-workspace-setup.ts +61 -1
- package/src/input/agent-workspace-snapshot.ts +184 -149
- package/src/input/agent-workspace-types.ts +287 -2
- package/src/input/agent-workspace.ts +23 -1
- 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/input/setup-wizard-live-receipts.ts +76 -0
- package/src/main.ts +15 -15
- package/src/panels/qr-panel.ts +2 -2
- package/src/renderer/agent-workspace-context-lines.ts +701 -0
- package/src/renderer/agent-workspace.ts +68 -421
- 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-policy.ts +75 -0
- package/src/tools/agent-harness-agent-orchestration.ts +791 -0
- package/src/tools/agent-harness-autonomy-intake.ts +785 -0
- package/src/tools/agent-harness-autonomy-live-records.ts +742 -0
- package/src/tools/agent-harness-autonomy-queue-types.ts +88 -0
- package/src/tools/agent-harness-autonomy-queue.ts +571 -0
- package/src/tools/agent-harness-autonomy-watcher-read-models.ts +509 -0
- package/src/tools/agent-harness-background-processes-types.ts +35 -0
- package/src/tools/agent-harness-background-processes.ts +798 -0
- package/src/tools/agent-harness-browser-cockpit-route.ts +373 -0
- package/src/tools/agent-harness-browser-control.ts +346 -0
- package/src/tools/agent-harness-browser-pwa-read-models.ts +622 -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-device-live-read-models.ts +366 -0
- 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 +385 -0
- package/src/tools/agent-harness-file-recovery.ts +135 -0
- package/src/tools/agent-harness-interactive-runtime-records.ts +421 -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 +269 -0
- package/src/tools/agent-harness-local-model-cookbook.ts +238 -0
- package/src/tools/agent-harness-local-model-endpoints.ts +788 -0
- package/src/tools/agent-harness-local-model-smoke.ts +277 -0
- package/src/tools/agent-harness-local-model-url.ts +78 -0
- package/src/tools/agent-harness-media-posture.ts +223 -2
- package/src/tools/agent-harness-memory-external-providers.ts +796 -0
- package/src/tools/agent-harness-memory-posture.ts +672 -0
- package/src/tools/agent-harness-memory-provider-certification.ts +219 -0
- package/src/tools/agent-harness-memory-refinement.ts +340 -0
- package/src/tools/agent-harness-metadata.ts +100 -168
- package/src/tools/agent-harness-mode-catalog.ts +86 -33
- package/src/tools/agent-harness-model-catalog.ts +162 -0
- package/src/tools/agent-harness-model-provider-health.ts +283 -0
- package/src/tools/agent-harness-model-readiness.ts +432 -0
- package/src/tools/agent-harness-model-routing-types.ts +327 -0
- package/src/tools/agent-harness-model-routing-utils.ts +30 -0
- package/src/tools/agent-harness-model-routing.ts +165 -193
- package/src/tools/agent-harness-operator-methods.ts +115 -133
- package/src/tools/agent-harness-pairing-posture.ts +452 -18
- package/src/tools/agent-harness-personal-ops-certification.ts +116 -0
- 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 +270 -0
- package/src/tools/agent-harness-personal-ops-operations.ts +225 -0
- package/src/tools/agent-harness-personal-ops-provider-records.ts +358 -0
- package/src/tools/agent-harness-personal-ops-provider-task-records.ts +321 -0
- package/src/tools/agent-harness-personal-ops-records.ts +684 -0
- package/src/tools/agent-harness-personal-ops-runner.ts +637 -0
- package/src/tools/agent-harness-personal-ops-types.ts +240 -0
- package/src/tools/agent-harness-personal-ops.ts +613 -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-remote-read-models.ts +541 -0
- package/src/tools/agent-harness-research-briefing.ts +446 -0
- package/src/tools/agent-harness-research-live-read-models.ts +500 -0
- package/src/tools/agent-harness-research-queue.ts +250 -0
- package/src/tools/agent-harness-research-runs.ts +307 -0
- package/src/tools/agent-harness-research-workflow.ts +395 -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 +102 -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 +533 -0
- package/src/tools/agent-harness-sudo-posture.ts +114 -0
- package/src/tools/agent-harness-tool-schema.ts +142 -7
- package/src/tools/agent-harness-tool-types.ts +83 -0
- package/src/tools/agent-harness-tool-utils.ts +43 -0
- package/src/tools/agent-harness-tool.ts +319 -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 +253 -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 +735 -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-runner.ts +367 -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 +515 -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
|
@@ -20,6 +20,58 @@ export interface AgentWorkspaceChannelStatus {
|
|
|
20
20
|
readonly nextStep: string;
|
|
21
21
|
}
|
|
22
22
|
|
|
23
|
+
export type AgentWorkspaceChannelSetupGuideStatus = 'ready' | 'attention' | 'setup-needed';
|
|
24
|
+
export type AgentWorkspaceChannelSetupGuideStepStatus = 'complete' | 'current' | 'pending';
|
|
25
|
+
export type AgentWorkspaceChannelSetupGuideStepSafety = 'read-only' | 'settings' | 'confirmed';
|
|
26
|
+
|
|
27
|
+
export interface AgentWorkspaceChannelSetupGuideStep {
|
|
28
|
+
readonly id: string;
|
|
29
|
+
readonly label: string;
|
|
30
|
+
readonly status: AgentWorkspaceChannelSetupGuideStepStatus;
|
|
31
|
+
readonly detail: string;
|
|
32
|
+
readonly userRoute: string;
|
|
33
|
+
readonly modelRoute: string;
|
|
34
|
+
readonly safety: AgentWorkspaceChannelSetupGuideStepSafety;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
export interface AgentWorkspaceChannelSetupGuideChannel {
|
|
38
|
+
readonly channelId: string;
|
|
39
|
+
readonly label: string;
|
|
40
|
+
readonly setupState: AgentWorkspaceChannelStatus['setupState'];
|
|
41
|
+
readonly enabled: boolean;
|
|
42
|
+
readonly ready: boolean;
|
|
43
|
+
readonly delivery: AgentWorkspaceChannelStatus['delivery'];
|
|
44
|
+
readonly riskLabel: string;
|
|
45
|
+
readonly summary: string;
|
|
46
|
+
readonly guideRoute: string;
|
|
47
|
+
readonly modelRoute: string;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
export interface AgentWorkspaceChannelSetupGuide {
|
|
51
|
+
readonly status: AgentWorkspaceChannelSetupGuideStatus;
|
|
52
|
+
readonly summary: string;
|
|
53
|
+
readonly progressLabel: string;
|
|
54
|
+
readonly totalChannels: number;
|
|
55
|
+
readonly enabledChannels: number;
|
|
56
|
+
readonly readyChannels: number;
|
|
57
|
+
readonly attentionChannels: number;
|
|
58
|
+
readonly configuredTargets: number;
|
|
59
|
+
readonly currentChannelId: string | null;
|
|
60
|
+
readonly currentChannelLabel: string | null;
|
|
61
|
+
readonly currentStepId: string | null;
|
|
62
|
+
readonly currentStepLabel: string | null;
|
|
63
|
+
readonly channels: readonly AgentWorkspaceChannelSetupGuideChannel[];
|
|
64
|
+
readonly steps: readonly AgentWorkspaceChannelSetupGuideStep[];
|
|
65
|
+
readonly routes: {
|
|
66
|
+
readonly readiness: string;
|
|
67
|
+
readonly attention: string;
|
|
68
|
+
readonly accounts: string;
|
|
69
|
+
readonly policies: string;
|
|
70
|
+
readonly status: string;
|
|
71
|
+
};
|
|
72
|
+
readonly policy: string;
|
|
73
|
+
}
|
|
74
|
+
|
|
23
75
|
interface AgentWorkspaceConfigReader {
|
|
24
76
|
get(key: string): unknown;
|
|
25
77
|
}
|
|
@@ -273,3 +325,214 @@ function buildChannelStatus(context: CommandContext, spec: AgentWorkspaceChannel
|
|
|
273
325
|
export function buildAgentWorkspaceChannels(context: CommandContext): readonly AgentWorkspaceChannelStatus[] {
|
|
274
326
|
return AGENT_WORKSPACE_CHANNEL_SPECS.map((spec) => buildChannelStatus(context, spec));
|
|
275
327
|
}
|
|
328
|
+
|
|
329
|
+
function channelGuideModelRoute(channelId?: string): string {
|
|
330
|
+
return channelId
|
|
331
|
+
? `channels action:"setup" channelId:"${channelId}"`
|
|
332
|
+
: 'channels action:"setup"';
|
|
333
|
+
}
|
|
334
|
+
|
|
335
|
+
function summarizeGuideChannel(channel: AgentWorkspaceChannelStatus): string {
|
|
336
|
+
if (!channel.enabled) return `Enable ${channel.label} only if the user wants this surface.`;
|
|
337
|
+
if (channel.setupState === 'needs-config') return `Missing ${channel.missingRequiredKeys.length} required config key(s).`;
|
|
338
|
+
if (channel.setupState === 'needs-target') return 'Ready for explicit targets; default target is not configured.';
|
|
339
|
+
return `${channel.label} is ready; delivery still requires explicit user action.`;
|
|
340
|
+
}
|
|
341
|
+
|
|
342
|
+
function rankedChannelGuideChannels(channels: readonly AgentWorkspaceChannelStatus[]): readonly AgentWorkspaceChannelStatus[] {
|
|
343
|
+
const rank = (channel: AgentWorkspaceChannelStatus): number => {
|
|
344
|
+
if (channel.setupState === 'needs-config') return 0;
|
|
345
|
+
if (channel.setupState === 'needs-target') return 1;
|
|
346
|
+
if (channel.setupState === 'disabled') return 2;
|
|
347
|
+
return 3;
|
|
348
|
+
};
|
|
349
|
+
return [...channels].sort((left, right) => rank(left) - rank(right) || left.label.localeCompare(right.label));
|
|
350
|
+
}
|
|
351
|
+
|
|
352
|
+
function currentGuideChannel(channels: readonly AgentWorkspaceChannelStatus[]): AgentWorkspaceChannelStatus | null {
|
|
353
|
+
const ranked = rankedChannelGuideChannels(channels);
|
|
354
|
+
return ranked[0] ?? null;
|
|
355
|
+
}
|
|
356
|
+
|
|
357
|
+
function currentGuideStepId(channel: AgentWorkspaceChannelStatus | null): string {
|
|
358
|
+
if (!channel) return 'choose-channel';
|
|
359
|
+
if (!channel.enabled) return 'enable-channel';
|
|
360
|
+
if (channel.setupState === 'needs-config') return 'inspect-setup-schema';
|
|
361
|
+
if (channel.setupState === 'needs-target') return 'choose-delivery-target';
|
|
362
|
+
return 'review-policy';
|
|
363
|
+
}
|
|
364
|
+
|
|
365
|
+
function guideStepStatus(stepId: string, currentStepId: string, order: readonly string[]): AgentWorkspaceChannelSetupGuideStepStatus {
|
|
366
|
+
const stepIndex = order.indexOf(stepId);
|
|
367
|
+
const currentIndex = order.indexOf(currentStepId);
|
|
368
|
+
if (stepIndex < currentIndex) return 'complete';
|
|
369
|
+
if (stepIndex === currentIndex) return 'current';
|
|
370
|
+
return 'pending';
|
|
371
|
+
}
|
|
372
|
+
|
|
373
|
+
function buildGuideSteps(channel: AgentWorkspaceChannelStatus | null): readonly AgentWorkspaceChannelSetupGuideStep[] {
|
|
374
|
+
const channelId = channel?.id ?? '<channel-id>';
|
|
375
|
+
const channelLabel = channel?.label ?? 'a channel';
|
|
376
|
+
const currentStepId = currentGuideStepId(channel);
|
|
377
|
+
const order = [
|
|
378
|
+
'choose-channel',
|
|
379
|
+
'enable-channel',
|
|
380
|
+
'inspect-setup-schema',
|
|
381
|
+
'configure-secrets',
|
|
382
|
+
'choose-delivery-target',
|
|
383
|
+
'review-policy',
|
|
384
|
+
'run-live-checks',
|
|
385
|
+
'send-explicit-test',
|
|
386
|
+
] as const;
|
|
387
|
+
const missingConfig = channel && channel.missingRequiredKeys.length > 0
|
|
388
|
+
? channel.missingRequiredKeys.join(', ')
|
|
389
|
+
: 'the required secret refs or host-owned settings';
|
|
390
|
+
const targetKeys = channel && channel.defaultTargetKeys.length > 0
|
|
391
|
+
? channel.defaultTargetKeys.join(', ')
|
|
392
|
+
: 'an explicit delivery target';
|
|
393
|
+
const makeStep = (
|
|
394
|
+
id: typeof order[number],
|
|
395
|
+
label: string,
|
|
396
|
+
detail: string,
|
|
397
|
+
userRoute: string,
|
|
398
|
+
modelRoute: string,
|
|
399
|
+
safety: AgentWorkspaceChannelSetupGuideStepSafety,
|
|
400
|
+
): AgentWorkspaceChannelSetupGuideStep => ({
|
|
401
|
+
id,
|
|
402
|
+
label,
|
|
403
|
+
status: guideStepStatus(id, currentStepId, order),
|
|
404
|
+
detail,
|
|
405
|
+
userRoute,
|
|
406
|
+
modelRoute,
|
|
407
|
+
safety,
|
|
408
|
+
});
|
|
409
|
+
return [
|
|
410
|
+
makeStep(
|
|
411
|
+
'choose-channel',
|
|
412
|
+
'Choose channel',
|
|
413
|
+
'Pick the channel the user actually wants before collecting credentials or exposing delivery routes.',
|
|
414
|
+
'/channels',
|
|
415
|
+
'channels action:"status"',
|
|
416
|
+
'read-only',
|
|
417
|
+
),
|
|
418
|
+
makeStep(
|
|
419
|
+
'enable-channel',
|
|
420
|
+
'Enable surface',
|
|
421
|
+
`Enable ${channelLabel} in the owning GoodVibes host or Agent settings only after the user chooses it.`,
|
|
422
|
+
`/settings surfaces.${channelId}.enabled`,
|
|
423
|
+
`settings action:"get" query:"surfaces.${channelId}.enabled" includeParameters:true`,
|
|
424
|
+
'settings',
|
|
425
|
+
),
|
|
426
|
+
makeStep(
|
|
427
|
+
'inspect-setup-schema',
|
|
428
|
+
'Inspect setup schema',
|
|
429
|
+
`Open the read-only ${channelLabel} setup schema before asking for credentials.`,
|
|
430
|
+
`/channels setup ${channelId}`,
|
|
431
|
+
`channels action:"channel" channelId:"${channelId}" includeParameters:true`,
|
|
432
|
+
'read-only',
|
|
433
|
+
),
|
|
434
|
+
makeStep(
|
|
435
|
+
'configure-secrets',
|
|
436
|
+
'Configure secrets',
|
|
437
|
+
`Configure ${missingConfig}; secret values must stay in the secret manager or owning host.`,
|
|
438
|
+
`/settings surfaces.${channelId}`,
|
|
439
|
+
`settings action:"list" query:"surfaces.${channelId}" includeParameters:true`,
|
|
440
|
+
'settings',
|
|
441
|
+
),
|
|
442
|
+
makeStep(
|
|
443
|
+
'choose-delivery-target',
|
|
444
|
+
'Choose target',
|
|
445
|
+
`Configure ${targetKeys}, or require the user to provide an explicit target on every send.`,
|
|
446
|
+
`/channels show ${channelId}`,
|
|
447
|
+
`channels action:"channel" channelId:"${channelId}" includeParameters:true`,
|
|
448
|
+
'read-only',
|
|
449
|
+
),
|
|
450
|
+
makeStep(
|
|
451
|
+
'review-policy',
|
|
452
|
+
'Review allowlist',
|
|
453
|
+
`Review ${channelLabel} account and allowlist policy before any delivery test.`,
|
|
454
|
+
'/channels policies',
|
|
455
|
+
'channels action:"status" includeParameters:true',
|
|
456
|
+
'read-only',
|
|
457
|
+
),
|
|
458
|
+
makeStep(
|
|
459
|
+
'run-live-checks',
|
|
460
|
+
'Run live checks',
|
|
461
|
+
`Inspect connected-host status and doctor output for ${channelLabel}; do not run repair actions from the guide.`,
|
|
462
|
+
`/channels doctor ${channelId}`,
|
|
463
|
+
`channels action:"channel" channelId:"${channelId}" includeParameters:true`,
|
|
464
|
+
'read-only',
|
|
465
|
+
),
|
|
466
|
+
makeStep(
|
|
467
|
+
'send-explicit-test',
|
|
468
|
+
'Send explicit test',
|
|
469
|
+
'Send one test message only after the user asks for that exact target and confirms the send.',
|
|
470
|
+
`/channels send --channel ${channelId}:route:Label --message "Test from GoodVibes Agent" --yes`,
|
|
471
|
+
'agent_channel_send confirm:true explicitUserRequest:"..."',
|
|
472
|
+
'confirmed',
|
|
473
|
+
),
|
|
474
|
+
];
|
|
475
|
+
}
|
|
476
|
+
|
|
477
|
+
export function buildAgentWorkspaceChannelSetupGuide(
|
|
478
|
+
channels: readonly AgentWorkspaceChannelStatus[],
|
|
479
|
+
options: { readonly channelId?: string } = {},
|
|
480
|
+
): AgentWorkspaceChannelSetupGuide {
|
|
481
|
+
const lookup = options.channelId?.trim().toLowerCase();
|
|
482
|
+
const requested = lookup
|
|
483
|
+
? channels.find((channel) => channel.id.toLowerCase() === lookup || channel.label.toLowerCase() === lookup) ?? null
|
|
484
|
+
: null;
|
|
485
|
+
const ranked = rankedChannelGuideChannels(channels);
|
|
486
|
+
const current = requested ?? currentGuideChannel(channels);
|
|
487
|
+
const enabledChannels = channels.filter((channel) => channel.enabled).length;
|
|
488
|
+
const readyChannels = channels.filter((channel) => channel.ready).length;
|
|
489
|
+
const attentionChannels = channels.filter((channel) => channel.enabled && channel.setupState !== 'ready').length;
|
|
490
|
+
const configuredTargets = channels.filter((channel) => channel.defaultTarget === 'configured').length;
|
|
491
|
+
const status: AgentWorkspaceChannelSetupGuideStatus = attentionChannels > 0
|
|
492
|
+
? 'attention'
|
|
493
|
+
: readyChannels > 0
|
|
494
|
+
? 'ready'
|
|
495
|
+
: 'setup-needed';
|
|
496
|
+
const steps = buildGuideSteps(current);
|
|
497
|
+
const currentStep = steps.find((step) => step.status === 'current') ?? null;
|
|
498
|
+
const summary = status === 'attention'
|
|
499
|
+
? `${attentionChannels} enabled channel(s) need setup. Start with ${current?.label ?? 'the first attention channel'}.`
|
|
500
|
+
: status === 'ready'
|
|
501
|
+
? `${readyChannels}/${channels.length} channel(s) ready. Review allowlists and use explicit delivery tests only on request.`
|
|
502
|
+
: 'No channel is ready yet. Choose one channel, enable it intentionally, then configure only that surface.';
|
|
503
|
+
return {
|
|
504
|
+
status,
|
|
505
|
+
summary,
|
|
506
|
+
progressLabel: currentStep ? `${steps.findIndex((step) => step.id === currentStep.id) + 1}/${steps.length} ${currentStep.label}` : `0/${steps.length}`,
|
|
507
|
+
totalChannels: channels.length,
|
|
508
|
+
enabledChannels,
|
|
509
|
+
readyChannels,
|
|
510
|
+
attentionChannels,
|
|
511
|
+
configuredTargets,
|
|
512
|
+
currentChannelId: current?.id ?? null,
|
|
513
|
+
currentChannelLabel: current?.label ?? null,
|
|
514
|
+
currentStepId: currentStep?.id ?? null,
|
|
515
|
+
currentStepLabel: currentStep?.label ?? null,
|
|
516
|
+
channels: ranked.map((channel) => ({
|
|
517
|
+
channelId: channel.id,
|
|
518
|
+
label: channel.label,
|
|
519
|
+
setupState: channel.setupState,
|
|
520
|
+
enabled: channel.enabled,
|
|
521
|
+
ready: channel.ready,
|
|
522
|
+
delivery: channel.delivery,
|
|
523
|
+
riskLabel: channel.riskLabel,
|
|
524
|
+
summary: summarizeGuideChannel(channel),
|
|
525
|
+
guideRoute: `/channels guide ${channel.id}`,
|
|
526
|
+
modelRoute: channelGuideModelRoute(channel.id),
|
|
527
|
+
})),
|
|
528
|
+
steps,
|
|
529
|
+
routes: {
|
|
530
|
+
readiness: '/channels',
|
|
531
|
+
attention: '/channels attention',
|
|
532
|
+
accounts: '/channels accounts',
|
|
533
|
+
policies: '/channels policies',
|
|
534
|
+
status: '/channels status',
|
|
535
|
+
},
|
|
536
|
+
policy: 'Read-only channel setup guide. Credentials stay in secret-backed settings or the owning GoodVibes host, and delivery tests require explicit confirmed user action.',
|
|
537
|
+
};
|
|
538
|
+
}
|
|
@@ -1,7 +1,14 @@
|
|
|
1
1
|
import type { AgentWorkspaceBasicCommandEditorKind } from './agent-workspace-basic-command-editors.ts';
|
|
2
|
+
import { buildAgentArtifactBrowserPromptSubmission, buildAgentArtifactExportPromptSubmission, buildAgentArtifactPackagePromptSubmission, buildAgentArtifactPromoteKnowledgePromptSubmission } from './agent-workspace-artifact-browser-editor.ts';
|
|
2
3
|
import { buildAgentWorkspaceBasicCommandEditorSubmission, isAgentWorkspaceBasicCommandEditorKind } from './agent-workspace-basic-command-editors.ts';
|
|
4
|
+
import { buildAgentDocumentReviewerReadinessPromptSubmission, buildAgentDocumentReviewPacketPresetPromptSubmission, buildAgentDocumentReviewPacketPresetRefreshPromptSubmission, buildAgentDocumentReviewPacketSharePromptSubmission, buildAgentDocumentReviewPacketWizardPromptSubmission } from './agent-workspace-document-ops-editor.ts';
|
|
5
|
+
import { buildAgentDocumentPromptSubmission } from './agent-workspace-document-editor.ts';
|
|
3
6
|
import { buildAgentKnowledgeUrlEditorSubmission } from './agent-workspace-knowledge-url-editor.ts';
|
|
4
7
|
import { buildAgentKnowledgeQueryEditorSubmission } from './agent-workspace-knowledge-query-editor.ts';
|
|
8
|
+
import { buildAgentModelCompareAnalyticsPromptSubmission, buildAgentModelCompareApplyPromptSubmission, buildAgentModelCompareExportPromptSubmission, buildAgentModelCompareHandoffDiffPromptSubmission, buildAgentModelCompareJudgmentPromptSubmission, buildAgentModelComparePromptSubmission, buildAgentModelCompareReviewPromptSubmission, buildAgentModelCompareRouteDecisionPromptSubmission } from './agent-workspace-model-compare-editor.ts';
|
|
9
|
+
import { buildAgentResearchReportPromptSubmission } from './agent-workspace-research-report-editor.ts';
|
|
10
|
+
import { buildAgentResearchRunPromptSubmission } from './agent-workspace-research-run-editor.ts';
|
|
11
|
+
import { buildAgentResearchSourcePromptSubmission } from './agent-workspace-research-source-editor.ts';
|
|
5
12
|
import { buildAgentReminderScheduleEditorSubmission } from './agent-workspace-reminder-schedule-editor.ts';
|
|
6
13
|
import { buildAgentRoutineScheduleEditorSubmission } from './agent-workspace-routine-schedule-editor.ts';
|
|
7
14
|
import { buildAgentWorkspaceWebResearchSubmission } from './agent-workspace-web-research-editor.ts';
|
|
@@ -12,6 +19,9 @@ type AgentWorkspaceCommandEditorKind = AgentWorkspaceBasicCommandEditorKind | Ex
|
|
|
12
19
|
AgentWorkspaceEditorKind,
|
|
13
20
|
'web-research'
|
|
14
21
|
| 'web-fetch'
|
|
22
|
+
| 'research-run'
|
|
23
|
+
| 'research-source'
|
|
24
|
+
| 'research-report'
|
|
15
25
|
| 'knowledge-url'
|
|
16
26
|
| 'knowledge-urls'
|
|
17
27
|
| 'knowledge-file'
|
|
@@ -20,6 +30,32 @@ type AgentWorkspaceCommandEditorKind = AgentWorkspaceBasicCommandEditorKind | Ex
|
|
|
20
30
|
| 'knowledge-reindex'
|
|
21
31
|
| 'knowledge-search'
|
|
22
32
|
| 'knowledge-ask'
|
|
33
|
+
| 'model-compare'
|
|
34
|
+
| 'document-browse'
|
|
35
|
+
| 'document-show'
|
|
36
|
+
| 'document-create'
|
|
37
|
+
| 'document-update'
|
|
38
|
+
| 'document-review'
|
|
39
|
+
| 'document-comment'
|
|
40
|
+
| 'document-resolve-comment'
|
|
41
|
+
| 'document-suggest'
|
|
42
|
+
| 'document-accept-suggestion'
|
|
43
|
+
| 'document-reject-suggestion'
|
|
44
|
+
| 'document-insert-artifact'
|
|
45
|
+
| 'document-attach-artifact'
|
|
46
|
+
| 'document-export'
|
|
47
|
+
| 'document-reviewer-readiness'
|
|
48
|
+
| 'document-review-packet-wizard'
|
|
49
|
+
| 'document-review-packet-preset'
|
|
50
|
+
| 'document-review-packet-preset-refresh'
|
|
51
|
+
| 'document-review-packet-share'
|
|
52
|
+
| 'model-compare-review'
|
|
53
|
+
| 'model-compare-handoff-diff'
|
|
54
|
+
| 'model-compare-judge'
|
|
55
|
+
| 'model-compare-apply'
|
|
56
|
+
| 'model-compare-route-decision'
|
|
57
|
+
| 'model-compare-export'
|
|
58
|
+
| 'model-compare-analytics'
|
|
23
59
|
| 'mcp-server'
|
|
24
60
|
| 'notify-webhook'
|
|
25
61
|
| 'notify-webhook-remove'
|
|
@@ -35,6 +71,11 @@ type AgentWorkspaceCommandEditorKind = AgentWorkspaceBasicCommandEditorKind | Ex
|
|
|
35
71
|
| 'knowledge-bookmarks'
|
|
36
72
|
| 'tts-prompt'
|
|
37
73
|
| 'image-input'
|
|
74
|
+
| 'artifact-browser'
|
|
75
|
+
| 'artifact-show'
|
|
76
|
+
| 'artifact-export-file'
|
|
77
|
+
| 'artifact-export-package'
|
|
78
|
+
| 'artifact-promote-knowledge'
|
|
38
79
|
| 'skill-bundle'
|
|
39
80
|
| 'persona-discovery-import'
|
|
40
81
|
| 'routine-discovery-import'
|
|
@@ -82,9 +123,43 @@ type AgentWorkspaceCommandEditorSubmission =
|
|
|
82
123
|
export function isAgentWorkspaceCommandEditorKind(kind: AgentWorkspaceEditorKind): kind is AgentWorkspaceCommandEditorKind {
|
|
83
124
|
return kind === 'web-research'
|
|
84
125
|
|| kind === 'web-fetch'
|
|
126
|
+
|| kind === 'research-run'
|
|
127
|
+
|| kind === 'research-source'
|
|
128
|
+
|| kind === 'research-report'
|
|
85
129
|
|| kind === 'knowledge-url'
|
|
86
130
|
|| kind === 'knowledge-search'
|
|
87
131
|
|| kind === 'knowledge-ask'
|
|
132
|
+
|| kind === 'artifact-browser'
|
|
133
|
+
|| kind === 'artifact-show'
|
|
134
|
+
|| kind === 'artifact-export-file'
|
|
135
|
+
|| kind === 'artifact-export-package'
|
|
136
|
+
|| kind === 'artifact-promote-knowledge'
|
|
137
|
+
|| kind === 'model-compare'
|
|
138
|
+
|| kind === 'document-browse'
|
|
139
|
+
|| kind === 'document-show'
|
|
140
|
+
|| kind === 'document-create'
|
|
141
|
+
|| kind === 'document-update'
|
|
142
|
+
|| kind === 'document-review'
|
|
143
|
+
|| kind === 'document-comment'
|
|
144
|
+
|| kind === 'document-resolve-comment'
|
|
145
|
+
|| kind === 'document-suggest'
|
|
146
|
+
|| kind === 'document-accept-suggestion'
|
|
147
|
+
|| kind === 'document-reject-suggestion'
|
|
148
|
+
|| kind === 'document-insert-artifact'
|
|
149
|
+
|| kind === 'document-attach-artifact'
|
|
150
|
+
|| kind === 'document-export'
|
|
151
|
+
|| kind === 'document-reviewer-readiness'
|
|
152
|
+
|| kind === 'document-review-packet-wizard'
|
|
153
|
+
|| kind === 'document-review-packet-preset'
|
|
154
|
+
|| kind === 'document-review-packet-preset-refresh'
|
|
155
|
+
|| kind === 'document-review-packet-share'
|
|
156
|
+
|| kind === 'model-compare-review'
|
|
157
|
+
|| kind === 'model-compare-handoff-diff'
|
|
158
|
+
|| kind === 'model-compare-judge'
|
|
159
|
+
|| kind === 'model-compare-apply'
|
|
160
|
+
|| kind === 'model-compare-route-decision'
|
|
161
|
+
|| kind === 'model-compare-export'
|
|
162
|
+
|| kind === 'model-compare-analytics'
|
|
88
163
|
|| kind === 'routine-schedule'
|
|
89
164
|
|| kind === 'reminder-schedule'
|
|
90
165
|
|| isAgentWorkspaceBasicCommandEditorKind(kind);
|
|
@@ -99,10 +174,87 @@ export function buildAgentWorkspaceCommandEditorSubmission(
|
|
|
99
174
|
if (editor.kind === 'web-research' || editor.kind === 'web-fetch') {
|
|
100
175
|
return buildAgentWorkspaceWebResearchSubmission(editor, readField, promptDispatchAvailable);
|
|
101
176
|
}
|
|
177
|
+
if (editor.kind === 'research-report') {
|
|
178
|
+
return buildAgentResearchReportPromptSubmission(editor, readField, promptDispatchAvailable);
|
|
179
|
+
}
|
|
180
|
+
if (editor.kind === 'research-run') {
|
|
181
|
+
return buildAgentResearchRunPromptSubmission(editor, readField, promptDispatchAvailable);
|
|
182
|
+
}
|
|
183
|
+
if (editor.kind === 'research-source') {
|
|
184
|
+
return buildAgentResearchSourcePromptSubmission(editor, readField, promptDispatchAvailable);
|
|
185
|
+
}
|
|
102
186
|
if (editor.kind === 'knowledge-url') return buildAgentKnowledgeUrlEditorSubmission(editor, readField, commandDispatchAvailable);
|
|
103
187
|
if (editor.kind === 'knowledge-search' || editor.kind === 'knowledge-ask') {
|
|
104
188
|
return buildAgentKnowledgeQueryEditorSubmission(editor, readField, commandDispatchAvailable);
|
|
105
189
|
}
|
|
190
|
+
if (editor.kind === 'artifact-browser' || editor.kind === 'artifact-show') {
|
|
191
|
+
return buildAgentArtifactBrowserPromptSubmission(editor, readField, promptDispatchAvailable);
|
|
192
|
+
}
|
|
193
|
+
if (editor.kind === 'artifact-export-file') {
|
|
194
|
+
return buildAgentArtifactExportPromptSubmission(editor, readField, promptDispatchAvailable);
|
|
195
|
+
}
|
|
196
|
+
if (editor.kind === 'artifact-export-package') {
|
|
197
|
+
return buildAgentArtifactPackagePromptSubmission(editor, readField, promptDispatchAvailable);
|
|
198
|
+
}
|
|
199
|
+
if (editor.kind === 'artifact-promote-knowledge') {
|
|
200
|
+
return buildAgentArtifactPromoteKnowledgePromptSubmission(editor, readField, promptDispatchAvailable);
|
|
201
|
+
}
|
|
202
|
+
if (
|
|
203
|
+
editor.kind === 'document-browse'
|
|
204
|
+
|| editor.kind === 'document-show'
|
|
205
|
+
|| editor.kind === 'document-create'
|
|
206
|
+
|| editor.kind === 'document-update'
|
|
207
|
+
|| editor.kind === 'document-review'
|
|
208
|
+
|| editor.kind === 'document-comment'
|
|
209
|
+
|| editor.kind === 'document-resolve-comment'
|
|
210
|
+
|| editor.kind === 'document-suggest'
|
|
211
|
+
|| editor.kind === 'document-accept-suggestion'
|
|
212
|
+
|| editor.kind === 'document-reject-suggestion'
|
|
213
|
+
|| editor.kind === 'document-insert-artifact'
|
|
214
|
+
|| editor.kind === 'document-attach-artifact'
|
|
215
|
+
|| editor.kind === 'document-export'
|
|
216
|
+
) {
|
|
217
|
+
return buildAgentDocumentPromptSubmission(editor, readField, promptDispatchAvailable);
|
|
218
|
+
}
|
|
219
|
+
if (editor.kind === 'document-reviewer-readiness') {
|
|
220
|
+
return buildAgentDocumentReviewerReadinessPromptSubmission(editor, readField, promptDispatchAvailable);
|
|
221
|
+
}
|
|
222
|
+
if (editor.kind === 'document-review-packet-wizard') {
|
|
223
|
+
return buildAgentDocumentReviewPacketWizardPromptSubmission(editor, readField, promptDispatchAvailable);
|
|
224
|
+
}
|
|
225
|
+
if (editor.kind === 'document-review-packet-preset') {
|
|
226
|
+
return buildAgentDocumentReviewPacketPresetPromptSubmission(editor, readField, promptDispatchAvailable);
|
|
227
|
+
}
|
|
228
|
+
if (editor.kind === 'document-review-packet-preset-refresh') {
|
|
229
|
+
return buildAgentDocumentReviewPacketPresetRefreshPromptSubmission(editor, readField, promptDispatchAvailable);
|
|
230
|
+
}
|
|
231
|
+
if (editor.kind === 'document-review-packet-share') {
|
|
232
|
+
return buildAgentDocumentReviewPacketSharePromptSubmission(editor, readField, promptDispatchAvailable);
|
|
233
|
+
}
|
|
234
|
+
if (editor.kind === 'model-compare' || editor.kind === 'local-model-benchmark') {
|
|
235
|
+
return buildAgentModelComparePromptSubmission(editor, readField, promptDispatchAvailable);
|
|
236
|
+
}
|
|
237
|
+
if (editor.kind === 'model-compare-review') {
|
|
238
|
+
return buildAgentModelCompareReviewPromptSubmission(editor, readField, promptDispatchAvailable);
|
|
239
|
+
}
|
|
240
|
+
if (editor.kind === 'model-compare-handoff-diff') {
|
|
241
|
+
return buildAgentModelCompareHandoffDiffPromptSubmission(editor, readField, promptDispatchAvailable);
|
|
242
|
+
}
|
|
243
|
+
if (editor.kind === 'model-compare-judge') {
|
|
244
|
+
return buildAgentModelCompareJudgmentPromptSubmission(editor, readField, promptDispatchAvailable);
|
|
245
|
+
}
|
|
246
|
+
if (editor.kind === 'model-compare-apply') {
|
|
247
|
+
return buildAgentModelCompareApplyPromptSubmission(editor, readField, promptDispatchAvailable);
|
|
248
|
+
}
|
|
249
|
+
if (editor.kind === 'model-compare-route-decision') {
|
|
250
|
+
return buildAgentModelCompareRouteDecisionPromptSubmission(editor, readField, promptDispatchAvailable);
|
|
251
|
+
}
|
|
252
|
+
if (editor.kind === 'model-compare-export') {
|
|
253
|
+
return buildAgentModelCompareExportPromptSubmission(editor, readField, promptDispatchAvailable);
|
|
254
|
+
}
|
|
255
|
+
if (editor.kind === 'model-compare-analytics') {
|
|
256
|
+
return buildAgentModelCompareAnalyticsPromptSubmission(editor, readField, promptDispatchAvailable);
|
|
257
|
+
}
|
|
106
258
|
if (isAgentWorkspaceBasicCommandEditorKind(editor.kind)) {
|
|
107
259
|
return buildAgentWorkspaceBasicCommandEditorSubmission(editor, readField, commandDispatchAvailable);
|
|
108
260
|
}
|