@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,251 @@
|
|
|
1
|
+
import type { RouteCandidateDraft } from './agent-route-planner.ts';
|
|
2
|
+
import { autonomousLike, directScheduleLike, fileRecoveryLike, hasAny, interactiveProcessCapabilityLike, processLifecycleLike, quote, researchRunnerLike, scheduleLike, visualResearchReportLike } from './agent-route-planner-helpers.ts';
|
|
3
|
+
|
|
4
|
+
export function addResearchScheduleExecutionRouteCandidates(
|
|
5
|
+
lower: string,
|
|
6
|
+
request: string,
|
|
7
|
+
add: (candidate: RouteCandidateDraft) => void,
|
|
8
|
+
): void {
|
|
9
|
+
if ((researchRunnerLike(lower) || visualResearchReportLike(lower) || hasAny(lower, ['research', 'deep research', 'investigate', 'sources', 'citations', 'citation', 'source-backed', 'market map', 'literature', 'report'])) && !scheduleLike(lower)) {
|
|
10
|
+
if (researchRunnerLike(lower)) {
|
|
11
|
+
const runnerEffect = hasAny(lower, ['start ', 'start the', 'launch ', 'execute ', 'run ', 'run a ', 'run the ', 'open ']);
|
|
12
|
+
add({
|
|
13
|
+
id: 'research-browser-runner-readiness',
|
|
14
|
+
label: 'Browser-backed research runner readiness',
|
|
15
|
+
score: 96,
|
|
16
|
+
userSurface: 'Research workspace',
|
|
17
|
+
userOutcome: 'Check browser-backed research readiness and fallback routes before pretending live browser research can run.',
|
|
18
|
+
why: 'The request mentions a browser-backed research runner or runner readiness.',
|
|
19
|
+
modelRoute: `research action:"runner" query:${quote(request)} includeParameters:true`,
|
|
20
|
+
inspectRoute: 'research action:"runner" includeParameters:true',
|
|
21
|
+
userRoute: 'Agent Workspace -> Research -> Browser runner readiness',
|
|
22
|
+
requiresConfirmation: runnerEffect,
|
|
23
|
+
missingFields: runnerEffect
|
|
24
|
+
? ['visible research run id or research question', 'published browser-runner ready state', 'confirmation before any live browser execution']
|
|
25
|
+
: undefined,
|
|
26
|
+
supportingRoutes: [
|
|
27
|
+
`research action:"plan" query:${quote(request)} includeParameters:true`,
|
|
28
|
+
'research action:"runs" includeParameters:true',
|
|
29
|
+
'computer action:"browser" includeParameters:true',
|
|
30
|
+
'computer action:"setup" query:"browser research runner" includeParameters:true',
|
|
31
|
+
],
|
|
32
|
+
policy: 'Browser-runner readiness is read-only. Live browser-backed execution remains unavailable until the runner contract reports ready and the user confirms a scoped visible run.',
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
if (visualResearchReportLike(lower)) {
|
|
37
|
+
const renderEffect = hasAny(lower, ['render', 'open ', 'show ', 'save', 'export', 'share', 'publish']);
|
|
38
|
+
add({
|
|
39
|
+
id: 'research-visual-report-workflow',
|
|
40
|
+
label: 'Visual research report workflow',
|
|
41
|
+
score: 95,
|
|
42
|
+
userSurface: 'Research workspace',
|
|
43
|
+
userOutcome: 'Route visual report requests through reviewed source/report artifacts and expose browser-rendering gaps honestly.',
|
|
44
|
+
why: 'The request mentions visual report packets, report rendering, or a browser/PWA research report view.',
|
|
45
|
+
modelRoute: `research action:"plan" query:${quote(request)} includeParameters:true`,
|
|
46
|
+
inspectRoute: 'research action:"reports" query:"visual report" includeParameters:true',
|
|
47
|
+
userRoute: 'Agent Workspace -> Research -> Report artifacts',
|
|
48
|
+
requiresConfirmation: renderEffect,
|
|
49
|
+
missingFields: [
|
|
50
|
+
'reviewed source bundle or saved report artifact id',
|
|
51
|
+
...(hasAny(lower, ['browser', 'pwa', 'render']) ? ['published browser/PWA report-rendering route before live browser rendering is considered ready'] : []),
|
|
52
|
+
...(renderEffect ? ['confirmation before report save, export, share, publish, or visible browser handoff'] : []),
|
|
53
|
+
],
|
|
54
|
+
supportingRoutes: [
|
|
55
|
+
'research action:"reports" query:"visual report"',
|
|
56
|
+
`research action:"plan" query:${quote(request)} includeParameters:true`,
|
|
57
|
+
'research action:"report" question:"..." sources:[...] visualReport:true requireCitationCoverage:true confirm:true explicitUserRequest:"..."',
|
|
58
|
+
'agent_artifacts action:"show" artifactId:"..." includeContent:true',
|
|
59
|
+
'workspace action:"action" actionId:"research-report-artifacts" includeParameters:true',
|
|
60
|
+
],
|
|
61
|
+
policy: 'Visual report planning is read-only. Markdown visual-report packets can be saved after confirmation; browser/PWA rendering is not claimed until a connected-host route publishes concrete readiness evidence.',
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
add({
|
|
66
|
+
id: 'deep-research-workflow',
|
|
67
|
+
label: 'Visible research workflow',
|
|
68
|
+
score: 92,
|
|
69
|
+
userSurface: 'Research workspace',
|
|
70
|
+
userOutcome: 'Turn research into a visible run, reviewed sources, and a sourced report artifact.',
|
|
71
|
+
why: 'The request asks for research, source gathering, citations, or a report.',
|
|
72
|
+
modelRoute: `research action:"plan" query:${quote(request)} includeParameters:true`,
|
|
73
|
+
inspectRoute: 'research action:"briefing"',
|
|
74
|
+
userRoute: 'Agent Workspace -> Research',
|
|
75
|
+
requiresConfirmation: hasAny(lower, ['start', 'run', 'create', 'save', 'report']),
|
|
76
|
+
missingFields: hasAny(lower, ['start', 'run', 'create'])
|
|
77
|
+
? ['research question', 'deliverable or success criteria']
|
|
78
|
+
: undefined,
|
|
79
|
+
supportingRoutes: [
|
|
80
|
+
'research action:"search" query:"..."',
|
|
81
|
+
'research action:"create_run" title:"..." question:"..." confirm:true explicitUserRequest:"..."',
|
|
82
|
+
'research action:"report" runId:"..." confirm:true explicitUserRequest:"..."',
|
|
83
|
+
],
|
|
84
|
+
policy: 'Planning and source search are read-only; visible run creation, source capture, lifecycle controls, and report saves stay confirmed.',
|
|
85
|
+
});
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
if (directScheduleLike(lower)) {
|
|
89
|
+
const reminder = hasAny(lower, ['remind', 'reminder']);
|
|
90
|
+
const lifecycle = hasAny(lower, ['pause', 'resume', 'run schedule', 'edit', 'delete', 'cancel', 'enable', 'disable']);
|
|
91
|
+
add({
|
|
92
|
+
id: 'direct-schedule-route',
|
|
93
|
+
label: reminder ? 'Reminder scheduling route' : 'Schedule management route',
|
|
94
|
+
score: 98,
|
|
95
|
+
userSurface: 'Work and schedules workspace',
|
|
96
|
+
userOutcome: 'Create, inspect, edit, or control schedules through the first-class schedule tool with confirmation boundaries.',
|
|
97
|
+
why: 'The request directly mentions reminders, schedules, cron, or schedule lifecycle controls.',
|
|
98
|
+
modelRoute: `schedule action:"list" query:${quote(request)} limit:5`,
|
|
99
|
+
inspectRoute: 'schedule action:"list"',
|
|
100
|
+
userRoute: 'Agent Workspace -> Work & Approvals',
|
|
101
|
+
requiresConfirmation: reminder || lifecycle || hasAny(lower, ['create', 'schedule ', 'cron']),
|
|
102
|
+
missingFields: reminder
|
|
103
|
+
? ['reminder message', 'time or cadence', 'confirmation']
|
|
104
|
+
: lifecycle
|
|
105
|
+
? ['schedule id', 'exact lifecycle action', 'confirmation']
|
|
106
|
+
: ['task', 'time/cadence', 'success criteria for autonomous work', 'confirmation'],
|
|
107
|
+
supportingRoutes: [
|
|
108
|
+
'schedule action:"remind" message:"..." scheduleKind:"at|every|cron" scheduleValue:"..." confirm:true explicitUserRequest:"..."',
|
|
109
|
+
'schedule action:"create" task:"..." successCriteria:"..." scheduleKind:"at|every|cron" scheduleValue:"..." confirm:true explicitUserRequest:"..."',
|
|
110
|
+
'schedule action:"edit|run|pause|resume|delete" scheduleId:"..." confirm:true explicitUserRequest:"..."',
|
|
111
|
+
'autonomy action:"queue"',
|
|
112
|
+
],
|
|
113
|
+
policy: 'Schedule listing is read-only. Reminder creation, autonomous schedule creation, edits, and lifecycle controls require exact fields plus confirmation.',
|
|
114
|
+
});
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
if (autonomousLike(lower)) {
|
|
118
|
+
add({
|
|
119
|
+
id: 'autonomy-intake',
|
|
120
|
+
label: 'Visible autonomy or schedule intake',
|
|
121
|
+
score: scheduleLike(lower) || hasAny(lower, ['webhook', 'watcher', 'trigger', 'cron', 'schedule', 'remind', 'recurring']) ? 96 : 80,
|
|
122
|
+
userSurface: 'Work and schedules workspace',
|
|
123
|
+
userOutcome: 'Create or supervise ongoing work only through visible, cancellable routes.',
|
|
124
|
+
why: 'The request sounds scheduled, recurring, event-triggered, long-running, or autonomous.',
|
|
125
|
+
modelRoute: `autonomy action:"intake" query:${quote(request)} includeParameters:true`,
|
|
126
|
+
inspectRoute: 'autonomy action:"queue"',
|
|
127
|
+
userRoute: 'Agent Workspace -> Work & Approvals',
|
|
128
|
+
requiresConfirmation: hasAny(lower, ['create', 'start', 'schedule', 'remind', 'run', 'pause', 'resume', 'cancel', 'delete']),
|
|
129
|
+
missingFields: ['exact cadence/event source when applicable', 'task', 'success criteria'],
|
|
130
|
+
supportingRoutes: [
|
|
131
|
+
'schedule action:"create" task:"..." successCriteria:"..." scheduleKind:"at|every|cron" scheduleValue:"..." confirm:true explicitUserRequest:"..."',
|
|
132
|
+
'schedule action:"remind" message:"..." scheduleKind:"at|every|cron" scheduleValue:"..." confirm:true explicitUserRequest:"..."',
|
|
133
|
+
'agent_operator_method methodId:"watchers.create" confirm:true explicitUserRequest:"..."',
|
|
134
|
+
],
|
|
135
|
+
policy: 'Autonomy intake is read-only; schedule, watcher, run-control, and delivery effects stay on the owning confirmed route.',
|
|
136
|
+
});
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
if (fileRecoveryLike(lower)) {
|
|
140
|
+
add({
|
|
141
|
+
id: 'local-file-recovery',
|
|
142
|
+
label: 'Local file edit recovery',
|
|
143
|
+
score: 98,
|
|
144
|
+
userSurface: 'Safety and recovery workspace',
|
|
145
|
+
userOutcome: 'Inspect recent Agent file snapshots and apply exactly one confirmed undo or redo when needed.',
|
|
146
|
+
why: 'The request mentions undo, redo, restore, revert, or recovery for file/edit/write/patch changes.',
|
|
147
|
+
modelRoute: 'execution action:"recovery" includeParameters:true',
|
|
148
|
+
inspectRoute: 'execution action:"history" includeParameters:true',
|
|
149
|
+
userRoute: 'Agent Workspace -> Safety & Recovery',
|
|
150
|
+
requiresConfirmation: hasAny(lower, ['undo', 'redo', 'restore', 'revert', 'roll back', 'rollback']),
|
|
151
|
+
missingFields: ['recovery action when not obvious', 'snapshot target if multiple snapshots are available', 'confirmation before applying undo/redo'],
|
|
152
|
+
supportingRoutes: [
|
|
153
|
+
'execution action:"record" target:"..."',
|
|
154
|
+
'agent_harness mode:"file_recovery" includeParameters:true',
|
|
155
|
+
'agent_harness mode:"run_file_recovery" recoveryAction:"undo|redo" confirm:true explicitUserRequest:"..."',
|
|
156
|
+
],
|
|
157
|
+
policy: 'Recovery inspection is read-only. Applying an undo or redo snapshot is a single confirmed local file mutation with before/after state tracked by FileUndoManager.',
|
|
158
|
+
});
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
if (interactiveProcessCapabilityLike(lower)) {
|
|
162
|
+
const interactiveEffect = hasAny(lower, ['run ', 'start ', 'launch ', 'execute ', 'write ', 'send input', 'type ', 'sudo ']);
|
|
163
|
+
add({
|
|
164
|
+
id: 'interactive-process-capability',
|
|
165
|
+
label: 'Interactive process, PTY, stdin, or sudo capability',
|
|
166
|
+
score: 100,
|
|
167
|
+
userSurface: 'Work and process supervision workspace',
|
|
168
|
+
userOutcome: 'Check whether interactive CLI, stdin, PTY, or sudo mediation is safely available before starting hidden work.',
|
|
169
|
+
why: 'The request mentions interactive terminal behavior, PTY, stdin/process input, sudo, or privilege prompts.',
|
|
170
|
+
modelRoute: 'execution action:"process_capabilities"',
|
|
171
|
+
inspectRoute: 'setup action:"item" setupItemId:"sudo-execution-posture"',
|
|
172
|
+
userRoute: 'Agent Workspace -> Work & Approvals',
|
|
173
|
+
requiresConfirmation: interactiveEffect,
|
|
174
|
+
missingFields: interactiveEffect
|
|
175
|
+
? ['exact command or process id', 'whether foreground supervision is acceptable', 'confirmation before any start/write/credential effect']
|
|
176
|
+
: undefined,
|
|
177
|
+
supportingRoutes: [
|
|
178
|
+
'process action:"capabilities"',
|
|
179
|
+
'execution action:"processes" includeParameters:true',
|
|
180
|
+
'setup action:"item" setupItemId:"sudo-execution-posture"',
|
|
181
|
+
'terminal command:"..." background:true pty:true confirm:true explicitUserRequest:"..."',
|
|
182
|
+
'process action:"write" processId:"..." data:"..." confirm:true explicitUserRequest:"..."',
|
|
183
|
+
],
|
|
184
|
+
policy: 'Capability inspection is read-only. PTY and sudo stay blocked unless the SDK/daemon publishes typed interactive and credential contracts; stdin writes require a discovered safe ProcessManager method plus confirmation.',
|
|
185
|
+
});
|
|
186
|
+
}
|
|
187
|
+
|
|
188
|
+
if (processLifecycleLike(lower)) {
|
|
189
|
+
const starting = hasAny(lower, ['run ', 'start ', 'launch ', 'execute ', 'terminal command', 'background:true', 'run in background', 'start in background']);
|
|
190
|
+
const lifecycle = hasAny(lower, ['poll', 'log', 'wait', 'kill', 'stop', 'write', 'send input', 'stdin']);
|
|
191
|
+
add({
|
|
192
|
+
id: 'local-background-process',
|
|
193
|
+
label: 'Local background process controls',
|
|
194
|
+
score: 99,
|
|
195
|
+
userSurface: 'Work and process supervision workspace',
|
|
196
|
+
userOutcome: 'Start or manage long-running local commands through visible process ids, logs, and cancellation routes.',
|
|
197
|
+
why: 'The request mentions terminal background commands, process lifecycle actions, stdin, PTY, or process supervision.',
|
|
198
|
+
modelRoute: 'execution action:"processes" includeParameters:true',
|
|
199
|
+
inspectRoute: 'execution action:"capabilities"',
|
|
200
|
+
userRoute: 'Agent Workspace -> Work & Approvals',
|
|
201
|
+
requiresConfirmation: starting || hasAny(lower, ['wait', 'kill', 'stop', 'write', 'send input']),
|
|
202
|
+
missingFields: starting
|
|
203
|
+
? ['command', 'working directory when not the current workspace', 'confirmation']
|
|
204
|
+
: lifecycle
|
|
205
|
+
? ['process id or session id']
|
|
206
|
+
: undefined,
|
|
207
|
+
supportingRoutes: [
|
|
208
|
+
'terminal command:"..." background:true confirm:true explicitUserRequest:"..."',
|
|
209
|
+
'process action:"list"',
|
|
210
|
+
'process action:"poll|log|wait|kill|write" session_id:"..."',
|
|
211
|
+
'process action:"capabilities"',
|
|
212
|
+
],
|
|
213
|
+
policy: 'Process planning and listing are read-only. Starting commands, waiting, killing, and stdin writes use the first-class terminal/process confirmation boundaries with bounded redacted logs.',
|
|
214
|
+
});
|
|
215
|
+
}
|
|
216
|
+
|
|
217
|
+
if (hasAny(lower, ['build', 'fix', 'implement', 'refactor', 'patch', 'code', 'test', 'review pr', 'review pull', 'lint', 'run command', 'shell', 'terminal', 'file edit', 'edit files'])) {
|
|
218
|
+
const delegated = hasAny(lower, ['parallel', 'delegate', 'delegated', 'subagent', 'remote', 'worktree', 'background', 'isolated', 'isolation']);
|
|
219
|
+
add({
|
|
220
|
+
id: delegated ? 'delegated-build-work' : 'local-first-execution',
|
|
221
|
+
label: delegated ? 'Delegated or isolated build work' : 'Local-first execution and file work',
|
|
222
|
+
score: delegated ? 98 : 90,
|
|
223
|
+
userSurface: delegated ? 'Work plan and delegation workspace' : 'Main conversation and Work workspace',
|
|
224
|
+
userOutcome: delegated
|
|
225
|
+
? 'Use isolated or parallel execution only when it improves the user result.'
|
|
226
|
+
: 'Use the current workspace directly when local read/edit/exec is sufficient.',
|
|
227
|
+
why: delegated
|
|
228
|
+
? 'The request mentions parallelism, delegation, remote execution, worktrees, or isolation.'
|
|
229
|
+
: 'The request is ordinary coding, shell, test, review, or file work in the current workspace.',
|
|
230
|
+
modelRoute: delegated ? 'delegation action:"status" includeParameters:true' : 'execution action:"status" includeParameters:true',
|
|
231
|
+
inspectRoute: delegated ? 'delegation action:"routes" includeParameters:true' : 'execution action:"route" target:"local"',
|
|
232
|
+
userRoute: 'Agent Workspace -> Work & Approvals',
|
|
233
|
+
requiresConfirmation: delegated,
|
|
234
|
+
missingFields: delegated ? ['task scope', 'workspace or worktree target', 'success criteria', 'review expectation'] : undefined,
|
|
235
|
+
supportingRoutes: delegated
|
|
236
|
+
? [
|
|
237
|
+
'agent_work_plan action:"dispatch_agents" confirm:true explicitUserRequest:"..."',
|
|
238
|
+
'delegation action:"route" target:"tui handoff"',
|
|
239
|
+
'agent_harness mode:"agent_orchestration"',
|
|
240
|
+
]
|
|
241
|
+
: [
|
|
242
|
+
'execution action:"history"',
|
|
243
|
+
'execution action:"processes"',
|
|
244
|
+
'execution action:"recovery"',
|
|
245
|
+
],
|
|
246
|
+
policy: delegated
|
|
247
|
+
? 'Delegation must preserve the original ask and produce visible status, artifacts, recovery, and review evidence.'
|
|
248
|
+
: 'Local work remains serial and visible by default; long-running commands use tracked process routes.',
|
|
249
|
+
});
|
|
250
|
+
}
|
|
251
|
+
}
|