@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
|
@@ -0,0 +1,167 @@
|
|
|
1
|
+
import type { AgentWorkspaceActionResult, AgentWorkspaceLocalEditor } from './agent-workspace-types.ts';
|
|
2
|
+
|
|
3
|
+
type AgentWorkspaceFieldReader = (fieldId: string) => string;
|
|
4
|
+
|
|
5
|
+
export interface AgentResearchSourceWorkspaceToolArgs {
|
|
6
|
+
readonly mode: 'add';
|
|
7
|
+
readonly question: string;
|
|
8
|
+
readonly title: string;
|
|
9
|
+
readonly url?: string;
|
|
10
|
+
readonly publisher?: string;
|
|
11
|
+
readonly publishedAt?: string;
|
|
12
|
+
readonly accessedAt?: string;
|
|
13
|
+
readonly summary: string;
|
|
14
|
+
readonly evidence?: string;
|
|
15
|
+
readonly credibility?: string;
|
|
16
|
+
readonly score?: number;
|
|
17
|
+
readonly tags?: readonly string[];
|
|
18
|
+
readonly note?: string;
|
|
19
|
+
readonly confirm: true;
|
|
20
|
+
readonly explicitUserRequest: string;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
function splitTags(value: string): readonly string[] {
|
|
24
|
+
return value.split(/[,\n]/).map((entry) => entry.trim()).filter(Boolean);
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
function readOptionalNumber(value: string): number | undefined {
|
|
28
|
+
if (!value.trim()) return undefined;
|
|
29
|
+
const parsed = Number(value);
|
|
30
|
+
return Number.isFinite(parsed) ? Math.max(0, Math.min(100, Math.round(parsed))) : undefined;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
function isAffirmative(value: string): boolean {
|
|
34
|
+
const normalized = value.trim().toLowerCase();
|
|
35
|
+
return normalized === 'yes' || normalized === 'true';
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
export function createAgentResearchSourceEditor(): AgentWorkspaceLocalEditor {
|
|
39
|
+
return {
|
|
40
|
+
kind: 'research-source',
|
|
41
|
+
mode: 'create',
|
|
42
|
+
title: 'Add Research Source',
|
|
43
|
+
selectedFieldIndex: 0,
|
|
44
|
+
message: 'Capture one source in the project-local research queue. This does not save a report or ingest Agent Knowledge.',
|
|
45
|
+
fields: [
|
|
46
|
+
{ id: 'question', label: 'Question', value: '', required: true, multiline: true, hint: 'Research question or topic this source supports.' },
|
|
47
|
+
{ id: 'title', label: 'Source title', value: '', required: true, multiline: false, hint: 'Readable source title.' },
|
|
48
|
+
{ id: 'url', label: 'URL', value: '', required: false, multiline: false, hint: 'Optional HTTP or HTTPS URL. Secret-like query values are redacted.' },
|
|
49
|
+
{ id: 'publisher', label: 'Publisher', value: '', required: false, multiline: false, hint: 'Optional source owner, publication, repo, or docs site.' },
|
|
50
|
+
{ id: 'publishedAt', label: 'Published', value: '', required: false, multiline: false, hint: 'Optional source date if known.' },
|
|
51
|
+
{ id: 'summary', label: 'Summary', value: '', required: true, multiline: true, hint: 'Short source summary. Ctrl-J inserts a new line.' },
|
|
52
|
+
{ id: 'evidence', label: 'Evidence notes', value: '', required: false, multiline: true, hint: 'Useful quoted-or-paraphrased evidence notes within copyright limits.' },
|
|
53
|
+
{ id: 'credibility', label: 'Credibility', value: 'unreviewed', required: false, multiline: false, hint: 'unreviewed, low, medium, high, or mixed.' },
|
|
54
|
+
{ id: 'score', label: 'Score', value: '', required: false, multiline: false, hint: 'Optional 0-100 usefulness/credibility score.' },
|
|
55
|
+
{ id: 'tags', label: 'Tags', value: 'research', required: false, multiline: false, hint: 'Comma-separated source tags.' },
|
|
56
|
+
{ id: 'note', label: 'Review note', value: '', required: false, multiline: true, hint: 'Why this source is useful, risky, primary, outdated, or disputed.' },
|
|
57
|
+
{ id: 'confirm', label: 'Confirm', value: '', required: true, multiline: false, hint: 'Type yes to add this source to the local queue.' },
|
|
58
|
+
],
|
|
59
|
+
};
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
export function buildAgentResearchSourceToolArgs(
|
|
63
|
+
readField: AgentWorkspaceFieldReader,
|
|
64
|
+
explicitUserRequest: string,
|
|
65
|
+
): AgentResearchSourceWorkspaceToolArgs {
|
|
66
|
+
const url = readField('url').trim();
|
|
67
|
+
const publisher = readField('publisher').trim();
|
|
68
|
+
const publishedAt = readField('publishedAt').trim();
|
|
69
|
+
const evidence = readField('evidence').trim();
|
|
70
|
+
const credibility = readField('credibility').trim();
|
|
71
|
+
const score = readOptionalNumber(readField('score'));
|
|
72
|
+
const tags = splitTags(readField('tags'));
|
|
73
|
+
const note = readField('note').trim();
|
|
74
|
+
return {
|
|
75
|
+
mode: 'add',
|
|
76
|
+
question: readField('question').trim(),
|
|
77
|
+
title: readField('title').trim(),
|
|
78
|
+
...(url ? { url } : {}),
|
|
79
|
+
...(publisher ? { publisher } : {}),
|
|
80
|
+
...(publishedAt ? { publishedAt } : {}),
|
|
81
|
+
summary: readField('summary').trim(),
|
|
82
|
+
...(evidence ? { evidence } : {}),
|
|
83
|
+
...(credibility ? { credibility } : {}),
|
|
84
|
+
...(score === undefined ? {} : { score }),
|
|
85
|
+
...(tags.length > 0 ? { tags } : {}),
|
|
86
|
+
...(note ? { note } : {}),
|
|
87
|
+
confirm: true,
|
|
88
|
+
explicitUserRequest,
|
|
89
|
+
};
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
export function buildAgentResearchSourcePromptSubmission(
|
|
93
|
+
editor: AgentWorkspaceLocalEditor,
|
|
94
|
+
readField: AgentWorkspaceFieldReader,
|
|
95
|
+
promptDispatchAvailable: boolean,
|
|
96
|
+
): {
|
|
97
|
+
readonly kind: 'editor';
|
|
98
|
+
readonly editor: AgentWorkspaceLocalEditor;
|
|
99
|
+
readonly status: string;
|
|
100
|
+
readonly actionResult?: AgentWorkspaceActionResult;
|
|
101
|
+
} | {
|
|
102
|
+
readonly kind: 'prompt';
|
|
103
|
+
readonly prompt: string;
|
|
104
|
+
readonly status: string;
|
|
105
|
+
readonly actionResult: AgentWorkspaceActionResult;
|
|
106
|
+
} {
|
|
107
|
+
if (!isAffirmative(readField('confirm'))) {
|
|
108
|
+
return {
|
|
109
|
+
kind: 'editor',
|
|
110
|
+
editor: { ...editor, message: 'Type yes to add this source to the local research queue.' },
|
|
111
|
+
status: 'Research source capture not confirmed.',
|
|
112
|
+
};
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
if (!promptDispatchAvailable) {
|
|
116
|
+
return {
|
|
117
|
+
kind: 'editor',
|
|
118
|
+
editor: {
|
|
119
|
+
...editor,
|
|
120
|
+
message: 'Prompt dispatch is unavailable in this runtime. Use research action:"add_source" with these fields.',
|
|
121
|
+
},
|
|
122
|
+
status: 'Prompt dispatch unavailable.',
|
|
123
|
+
actionResult: {
|
|
124
|
+
kind: 'error',
|
|
125
|
+
title: 'Prompt dispatch unavailable',
|
|
126
|
+
detail: 'This runtime cannot submit source capture from the workspace form.',
|
|
127
|
+
safety: 'safe',
|
|
128
|
+
},
|
|
129
|
+
};
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
const args = buildAgentResearchSourceToolArgs(
|
|
133
|
+
readField,
|
|
134
|
+
'Add one reviewed or candidate source to the project-local research queue.',
|
|
135
|
+
);
|
|
136
|
+
const prompt = [
|
|
137
|
+
'Add this source to the project-local research source queue.',
|
|
138
|
+
'Use the `research` tool with these arguments:',
|
|
139
|
+
'action: "add_source"',
|
|
140
|
+
`question: ${JSON.stringify(args.question)}`,
|
|
141
|
+
`title: ${JSON.stringify(args.title)}`,
|
|
142
|
+
args.url ? `url: ${JSON.stringify(args.url)}` : 'url: none',
|
|
143
|
+
args.publisher ? `publisher: ${JSON.stringify(args.publisher)}` : 'publisher: none',
|
|
144
|
+
args.publishedAt ? `publishedAt: ${JSON.stringify(args.publishedAt)}` : 'publishedAt: none',
|
|
145
|
+
`summary: ${JSON.stringify(args.summary)}`,
|
|
146
|
+
args.evidence ? `evidence: ${JSON.stringify(args.evidence)}` : 'evidence: none',
|
|
147
|
+
args.credibility ? `credibility: ${JSON.stringify(args.credibility)}` : 'credibility: none',
|
|
148
|
+
args.score === undefined ? 'score: none' : `score: ${JSON.stringify(args.score)}`,
|
|
149
|
+
args.tags ? `tags: ${JSON.stringify(args.tags)}` : 'tags: none',
|
|
150
|
+
args.note ? `note: ${JSON.stringify(args.note)}` : 'note: none',
|
|
151
|
+
'confirm: true',
|
|
152
|
+
`explicitUserRequest: ${JSON.stringify(args.explicitUserRequest)}`,
|
|
153
|
+
'Policy: local source queue only; do not save a report, ingest Knowledge, or send external messages.',
|
|
154
|
+
].join('\n');
|
|
155
|
+
|
|
156
|
+
return {
|
|
157
|
+
kind: 'prompt',
|
|
158
|
+
prompt,
|
|
159
|
+
status: 'Submitting source capture request.',
|
|
160
|
+
actionResult: {
|
|
161
|
+
kind: 'guidance',
|
|
162
|
+
title: 'Research source queue',
|
|
163
|
+
detail: 'Submitted a request to add one source to the local research queue.',
|
|
164
|
+
safety: 'safe',
|
|
165
|
+
},
|
|
166
|
+
};
|
|
167
|
+
}
|