@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
|
@@ -282,7 +282,7 @@ export async function handleAgentKnowledgeCommand(runtime: CliCommandRuntime): P
|
|
|
282
282
|
};
|
|
283
283
|
}
|
|
284
284
|
|
|
285
|
-
if (normalized === 'ingest-file'
|
|
285
|
+
if (normalized === 'ingest-file') {
|
|
286
286
|
const values = commandValues(rest);
|
|
287
287
|
const path = values[0];
|
|
288
288
|
if (!path) return { output: 'Usage: goodvibes-agent knowledge ingest-file <path> [--title <title>] [--tags a,b] [--folder <path>] --yes', exitCode: 2 };
|
|
@@ -326,6 +326,49 @@ export async function handleAgentKnowledgeCommand(runtime: CliCommandRuntime): P
|
|
|
326
326
|
};
|
|
327
327
|
}
|
|
328
328
|
|
|
329
|
+
if (normalized === 'ingest-artifact') {
|
|
330
|
+
const values = commandValues(rest);
|
|
331
|
+
const artifactId = values[0];
|
|
332
|
+
if (!artifactId) return { output: 'Usage: goodvibes-agent knowledge ingest-artifact <artifactId> [--title <title>] [--tags a,b] [--folder <path>] --yes', exitCode: 2 };
|
|
333
|
+
if (!confirmation.present) {
|
|
334
|
+
const failure = {
|
|
335
|
+
ok: false,
|
|
336
|
+
kind: 'confirmation_required',
|
|
337
|
+
error: `Refusing to ingest artifact into Agent Knowledge ${artifactId} without --yes.`,
|
|
338
|
+
route: AGENT_KNOWLEDGE_METHODS.ingestArtifact.route,
|
|
339
|
+
};
|
|
340
|
+
return {
|
|
341
|
+
output: json ? JSON.stringify(failure, null, 2) : `${failure.error}\nUsage: goodvibes-agent knowledge ingest-artifact <artifactId> [--title <title>] [--tags a,b] [--folder <path>] --yes`,
|
|
342
|
+
exitCode: 2,
|
|
343
|
+
};
|
|
344
|
+
}
|
|
345
|
+
const title = readOptionValue(rest, '--title');
|
|
346
|
+
const tags = readStringList(rest, '--tags');
|
|
347
|
+
const folderPath = readOptionValue(rest, '--folder');
|
|
348
|
+
const connectorId = readOptionValue(rest, '--connector') ?? 'goodvibes-agent-artifact-browser';
|
|
349
|
+
const result = await runKnowledgeCall(runtime, AGENT_KNOWLEDGE_METHODS.ingestArtifact, async (connection) => (
|
|
350
|
+
await postAgentKnowledgeJson(connection, AGENT_KNOWLEDGE_METHODS.ingestArtifact.route, {
|
|
351
|
+
artifactId,
|
|
352
|
+
title,
|
|
353
|
+
tags,
|
|
354
|
+
folderPath,
|
|
355
|
+
connectorId,
|
|
356
|
+
metadata: { originSurface: 'goodvibes-agent-cli' },
|
|
357
|
+
})
|
|
358
|
+
));
|
|
359
|
+
if (!result.ok) return { output: formatFailure(result, json), exitCode: 1 };
|
|
360
|
+
return {
|
|
361
|
+
output: formatJsonOrText(runtime.cli)(result, formatIngest(
|
|
362
|
+
result.data,
|
|
363
|
+
artifactId,
|
|
364
|
+
'ingest-artifact',
|
|
365
|
+
'/api/goodvibes-agent/knowledge/ingest/artifact',
|
|
366
|
+
'artifact',
|
|
367
|
+
)),
|
|
368
|
+
exitCode: 0,
|
|
369
|
+
};
|
|
370
|
+
}
|
|
371
|
+
|
|
329
372
|
if (normalized === 'import-urls' || normalized === 'import-bookmarks') {
|
|
330
373
|
const values = commandValues(rest);
|
|
331
374
|
const path = values[0];
|
|
@@ -460,7 +503,7 @@ export async function handleAgentKnowledgeCommand(runtime: CliCommandRuntime): P
|
|
|
460
503
|
}
|
|
461
504
|
|
|
462
505
|
return {
|
|
463
|
-
output: 'Usage: goodvibes-agent knowledge [status|ask <question>|search <query>|list|sources|nodes|issues|get <id>|map|connectors|ingest-url <url> --yes|ingest-file <path> --yes|ingest-connector <id> --yes|import-urls <path> --yes|import-bookmarks <path> --yes|import-browser-history --yes|reindex --yes]',
|
|
506
|
+
output: 'Usage: goodvibes-agent knowledge [status|ask <question>|search <query>|list|sources|nodes|issues|get <id>|map|connectors|ingest-url <url> --yes|ingest-file <path> --yes|ingest-artifact <artifactId> --yes|ingest-connector <id> --yes|import-urls <path> --yes|import-bookmarks <path> --yes|import-browser-history --yes|reindex --yes]',
|
|
464
507
|
exitCode: 2,
|
|
465
508
|
};
|
|
466
509
|
}
|
package/src/cli/help.ts
CHANGED
|
@@ -38,6 +38,7 @@ export function renderGoodVibesHelp(binary = 'goodvibes-agent'): string {
|
|
|
38
38
|
' /model Choose provider and model',
|
|
39
39
|
' /knowledge Use isolated Agent Knowledge',
|
|
40
40
|
' /notes Open Agent-local scratchpad notes',
|
|
41
|
+
' /vibe Inspect or create VIBE.md personality',
|
|
41
42
|
' /personas, /skills Tune Agent-local behavior',
|
|
42
43
|
' /routines Run local routines in the main conversation',
|
|
43
44
|
' /schedule remind Create confirmed reminders or inspect schedules',
|
|
@@ -309,6 +310,7 @@ const COMMAND_HELP: Record<string, CommandHelp> = {
|
|
|
309
310
|
'knowledge connectors [connectorId|doctor <connectorId>]',
|
|
310
311
|
'knowledge ingest-url <url> [--title <title>] [--tags a,b] --yes',
|
|
311
312
|
'knowledge ingest-file <path> [--title <title>] [--tags a,b] --yes',
|
|
313
|
+
'knowledge ingest-artifact <artifactId> [--title <title>] [--tags a,b] --yes',
|
|
312
314
|
'knowledge ingest-connector <connectorId> [--input <json-or-text>|--path <path>|--content <text>] --yes',
|
|
313
315
|
'knowledge import-urls <path> --yes',
|
|
314
316
|
'knowledge import-bookmarks <path> --yes',
|
|
@@ -325,6 +327,7 @@ const COMMAND_HELP: Record<string, CommandHelp> = {
|
|
|
325
327
|
'knowledge connectors doctor url',
|
|
326
328
|
'knowledge ingest-url https://example.com/page --title "Reference" --yes',
|
|
327
329
|
'knowledge ingest-file ./docs/guide.md --title "Guide" --yes',
|
|
330
|
+
'knowledge ingest-artifact artifact-123 --title "Reviewed Export" --yes',
|
|
328
331
|
'knowledge ingest-connector url --input https://example.com/reference --yes',
|
|
329
332
|
'knowledge import-urls ~/agent-links.txt --yes',
|
|
330
333
|
'knowledge import-browser-history --browsers chrome,firefox --sources history,bookmark --yes',
|
|
@@ -97,25 +97,28 @@ function renderProfilesResult(result: AgentRuntimeProfileCommandResult): string
|
|
|
97
97
|
` persona ${template.personaName}`,
|
|
98
98
|
` skills ${template.skillNames.join(', ')}`,
|
|
99
99
|
` routines ${template.routineNames.join(', ')}`,
|
|
100
|
-
|
|
100
|
+
template.vibeIncluded ? ' vibe included' : '',
|
|
101
|
+
].filter(Boolean).join('\n')),
|
|
101
102
|
'Use goodvibes-agent profiles create <name> --template <id> --yes',
|
|
102
|
-
'Export/edit/import with goodvibes-agent profiles templates export <id> <path> --yes',
|
|
103
|
+
'Export/edit/import with goodvibes-agent profiles templates export <id> <path> [--include-vibe] --yes',
|
|
103
104
|
].join('\n');
|
|
104
105
|
}
|
|
105
106
|
if (result.kind === 'agent.profiles.template.export' && result.data?.template && result.data.path) {
|
|
106
107
|
return [
|
|
107
108
|
`Agent starter template exported: ${result.data.template.id}`,
|
|
108
109
|
` path ${result.data.path}`,
|
|
110
|
+
result.data.template.vibeIncluded ? ' vibe included' : '',
|
|
109
111
|
' edit the JSON, then import it with goodvibes-agent profiles templates import <path> --yes',
|
|
110
|
-
].join('\n');
|
|
112
|
+
].filter(Boolean).join('\n');
|
|
111
113
|
}
|
|
112
114
|
if (result.kind === 'agent.profiles.template.import' && result.data?.template) {
|
|
113
115
|
return [
|
|
114
116
|
`Agent starter template imported: ${result.data.template.id}`,
|
|
115
117
|
` name ${result.data.template.name}`,
|
|
116
118
|
` origin ${formatAgentRecordSource(result.data.template.source)}`,
|
|
119
|
+
result.data.template.vibeIncluded ? ' vibe included' : '',
|
|
117
120
|
` use goodvibes-agent profiles create <name> --template ${result.data.template.id} --yes`,
|
|
118
|
-
].join('\n');
|
|
121
|
+
].filter(Boolean).join('\n');
|
|
119
122
|
}
|
|
120
123
|
if (result.kind === 'agent.profiles.template.from_discovered' && result.data?.template) {
|
|
121
124
|
return [
|
|
@@ -124,8 +127,9 @@ function renderProfilesResult(result: AgentRuntimeProfileCommandResult): string
|
|
|
124
127
|
` persona ${result.data.template.personaName}`,
|
|
125
128
|
` skills ${result.data.template.skillNames.join(', ')}`,
|
|
126
129
|
` routines ${result.data.template.routineNames.join(', ')}`,
|
|
130
|
+
result.data.template.vibeIncluded ? ' vibe included' : '',
|
|
127
131
|
` use goodvibes-agent profiles create <name> --template ${result.data.template.id} --yes`,
|
|
128
|
-
].join('\n');
|
|
132
|
+
].filter(Boolean).join('\n');
|
|
129
133
|
}
|
|
130
134
|
if (result.kind === 'agent.profiles.default') {
|
|
131
135
|
const selected = result.data?.selectedProfile;
|
|
@@ -157,8 +161,9 @@ function renderProfilesResult(result: AgentRuntimeProfileCommandResult): string
|
|
|
157
161
|
` persona ${result.data.template.personaName}`,
|
|
158
162
|
` skills ${result.data.template.skillNames.join(', ')}`,
|
|
159
163
|
` routines ${result.data.template.routineNames.join(', ')}`,
|
|
164
|
+
result.data.template.vibeIncluded ? ' vibe included' : '',
|
|
160
165
|
` launch: ${result.data.nextCommand ?? `goodvibes-agent --agent-profile ${result.data.profile.id}`}`,
|
|
161
|
-
].join('\n');
|
|
166
|
+
].filter(Boolean).join('\n');
|
|
162
167
|
}
|
|
163
168
|
const profile = result.data?.profile;
|
|
164
169
|
if (result.kind === 'agent.profiles.create' && profile) {
|
|
@@ -169,9 +174,10 @@ function renderProfilesResult(result: AgentRuntimeProfileCommandResult): string
|
|
|
169
174
|
...(template ? [
|
|
170
175
|
` starter: ${template.id} (${template.name})`,
|
|
171
176
|
` seeded: ${template.personaIds.length} persona, ${template.skillIds.length} skills, ${template.routineIds.length} routine`,
|
|
177
|
+
template.vibePath ? ` vibe ${template.vibePath}` : '',
|
|
172
178
|
] : []),
|
|
173
179
|
` use ${result.data?.nextCommand ?? `goodvibes-agent --agent-profile ${profile.id}`}`,
|
|
174
|
-
].join('\n');
|
|
180
|
+
].filter(Boolean).join('\n');
|
|
175
181
|
}
|
|
176
182
|
if (result.kind === 'agent.profiles.delete' && profile) {
|
|
177
183
|
return [
|
|
@@ -211,7 +217,7 @@ export async function handleProfilesCommand(runtime: ProfilesCommandRuntime): Pr
|
|
|
211
217
|
const result: AgentRuntimeProfileCommandResult = {
|
|
212
218
|
ok: false,
|
|
213
219
|
kind: 'agent.profiles.error',
|
|
214
|
-
error: 'Usage: goodvibes-agent profiles templates from-discovered <id> [--name <name>] [--description <summary>] [--persona <name>] [--skills all|name,name] [--routines all|name,name] [--replace] --yes',
|
|
220
|
+
error: 'Usage: goodvibes-agent profiles templates from-discovered <id> [--name <name>] [--description <summary>] [--persona <name>] [--skills all|name,name] [--routines all|name,name] [--include-vibe] [--replace] --yes',
|
|
215
221
|
};
|
|
216
222
|
return {
|
|
217
223
|
output: renderProfilesOutput(result, runtime.cli.flags.outputFormat),
|
|
@@ -239,6 +245,7 @@ export async function handleProfilesCommand(runtime: ProfilesCommandRuntime): Pr
|
|
|
239
245
|
persona: flagValue(rawRest, ['--persona']) ?? undefined,
|
|
240
246
|
skills: parseCsvFlag(rawRest, ['--skills']),
|
|
241
247
|
routines: parseCsvFlag(rawRest, ['--routines']),
|
|
248
|
+
includeVibe: rawRest.includes('--include-vibe'),
|
|
242
249
|
replace: hasYes(rawRest) && rawRest.includes('--replace'),
|
|
243
250
|
});
|
|
244
251
|
const result: AgentRuntimeProfileCommandResult = {
|
|
@@ -256,7 +263,7 @@ export async function handleProfilesCommand(runtime: ProfilesCommandRuntime): Pr
|
|
|
256
263
|
const result: AgentRuntimeProfileCommandResult = {
|
|
257
264
|
ok: false,
|
|
258
265
|
kind: 'agent.profiles.error',
|
|
259
|
-
error: 'Usage: goodvibes-agent profiles templates export <id> <path> --yes',
|
|
266
|
+
error: 'Usage: goodvibes-agent profiles templates export <id> <path> [--include-vibe] --yes',
|
|
260
267
|
};
|
|
261
268
|
return {
|
|
262
269
|
output: renderProfilesOutput(result, runtime.cli.flags.outputFormat),
|
|
@@ -274,7 +281,13 @@ export async function handleProfilesCommand(runtime: ProfilesCommandRuntime): Pr
|
|
|
274
281
|
exitCode: 2,
|
|
275
282
|
};
|
|
276
283
|
}
|
|
277
|
-
const template = exportAgentRuntimeProfileTemplate(runtime.homeDirectory, templateId, templatePath
|
|
284
|
+
const template = exportAgentRuntimeProfileTemplate(runtime.homeDirectory, templateId, templatePath, {
|
|
285
|
+
includeVibe: rawRest.includes('--include-vibe'),
|
|
286
|
+
shellPaths: {
|
|
287
|
+
homeDirectory: runtime.homeDirectory,
|
|
288
|
+
workingDirectory: runtime.workingDirectory,
|
|
289
|
+
},
|
|
290
|
+
});
|
|
278
291
|
const result: AgentRuntimeProfileCommandResult = {
|
|
279
292
|
ok: true,
|
|
280
293
|
kind: 'agent.profiles.template.export',
|
|
@@ -506,7 +519,7 @@ export async function handleProfilesCommand(runtime: ProfilesCommandRuntime): Pr
|
|
|
506
519
|
const result: AgentRuntimeProfileCommandResult = {
|
|
507
520
|
ok: false,
|
|
508
521
|
kind: 'agent.profiles.error',
|
|
509
|
-
error: 'Usage: goodvibes-agent profiles create-from-discovered <name> [--template-id <id>] [--profile-name <display>] [--description <summary>] [--persona <name>] [--skills all|name,name] [--routines all|name,name] [--replace] --yes',
|
|
522
|
+
error: 'Usage: goodvibes-agent profiles create-from-discovered <name> [--template-id <id>] [--profile-name <display>] [--description <summary>] [--persona <name>] [--skills all|name,name] [--routines all|name,name] [--include-vibe] [--replace] --yes',
|
|
510
523
|
};
|
|
511
524
|
return {
|
|
512
525
|
output: renderProfilesOutput(result, runtime.cli.flags.outputFormat),
|
|
@@ -535,6 +548,7 @@ export async function handleProfilesCommand(runtime: ProfilesCommandRuntime): Pr
|
|
|
535
548
|
persona: flagValue(rawRest, ['--persona']) ?? undefined,
|
|
536
549
|
skills: parseCsvFlag(rawRest, ['--skills']),
|
|
537
550
|
routines: parseCsvFlag(rawRest, ['--routines']),
|
|
551
|
+
includeVibe: rawRest.includes('--include-vibe'),
|
|
538
552
|
replace: rawRest.includes('--replace'),
|
|
539
553
|
});
|
|
540
554
|
const result: AgentRuntimeProfileCommandResult = {
|
|
@@ -1,20 +1,7 @@
|
|
|
1
|
-
export const AGENT_EXTERNAL_HOST_SETTING_LOCK_REASON = '
|
|
1
|
+
export const AGENT_EXTERNAL_HOST_SETTING_LOCK_REASON = 'This raw daemon/listener danger toggle is protected. Use an explicit confirmed operator action or setup command for lifecycle changes.';
|
|
2
2
|
|
|
3
3
|
const AGENT_HIDDEN_SETTING_PREFIXES = [
|
|
4
|
-
['cloud', 'flare.'].join(''),
|
|
5
|
-
['surfaces.', 'home', 'assistant.'].join(''),
|
|
6
|
-
'batch.',
|
|
7
|
-
'controlPlane.',
|
|
8
4
|
'danger.',
|
|
9
|
-
'httpListener.',
|
|
10
|
-
'network.',
|
|
11
|
-
'orchestration.',
|
|
12
|
-
'runtime.',
|
|
13
|
-
'service.',
|
|
14
|
-
'sandbox.',
|
|
15
|
-
'web.',
|
|
16
|
-
'watchers.',
|
|
17
|
-
'wrfc.',
|
|
18
5
|
] as const;
|
|
19
6
|
|
|
20
7
|
const AGENT_HIDDEN_SETTING_KEYS = new Set<string>([
|
|
@@ -22,10 +9,6 @@ const AGENT_HIDDEN_SETTING_KEYS = new Set<string>([
|
|
|
22
9
|
]);
|
|
23
10
|
|
|
24
11
|
const EXTERNAL_HOST_SETTING_PREFIXES = [
|
|
25
|
-
'service.',
|
|
26
|
-
'controlPlane.',
|
|
27
|
-
'httpListener.',
|
|
28
|
-
'web.',
|
|
29
12
|
] as const;
|
|
30
13
|
|
|
31
14
|
const EXTERNAL_HOST_SETTING_KEYS = new Set<string>([
|
|
@@ -1,6 +1,13 @@
|
|
|
1
1
|
import { createLearnedBehaviorEditor, createLocalEditor, createProfileEditor } from './agent-workspace-editors.ts';
|
|
2
|
+
import { createAgentArtifactBrowserEditor, createAgentArtifactExportEditor, createAgentArtifactPackageEditor, createAgentArtifactPromoteKnowledgeEditor, createAgentArtifactShowEditor } from './agent-workspace-artifact-browser-editor.ts';
|
|
3
|
+
import { createAgentDocumentAcceptSuggestionEditor, createAgentDocumentAttachArtifactEditor, createAgentDocumentBrowseEditor, createAgentDocumentCommentEditor, createAgentDocumentCreateEditor, createAgentDocumentExportEditor, createAgentDocumentInsertArtifactEditor, createAgentDocumentRejectSuggestionEditor, createAgentDocumentResolveCommentEditor, createAgentDocumentReviewEditor, createAgentDocumentShowEditor, createAgentDocumentSuggestEditor, createAgentDocumentUpdateEditor } from './agent-workspace-document-editor.ts';
|
|
4
|
+
import { createAgentDocumentReviewerReadinessEditor, createAgentDocumentReviewPacketPresetEditor, createAgentDocumentReviewPacketPresetRefreshEditor, createAgentDocumentReviewPacketShareEditor, createAgentDocumentReviewPacketWizardEditor } from './agent-workspace-document-ops-editor.ts';
|
|
2
5
|
import { createAgentWorkspaceBasicCommandEditor, isAgentWorkspaceBasicCommandEditorKind } from './agent-workspace-basic-command-editors.ts';
|
|
3
6
|
import { createAgentKnowledgeQueryEditor } from './agent-workspace-knowledge-query-editor.ts';
|
|
7
|
+
import { createAgentLocalModelBenchmarkEditor, createAgentModelCompareAnalyticsEditor, createAgentModelCompareApplyEditor, createAgentModelCompareEditor, createAgentModelCompareExportEditor, createAgentModelCompareHandoffDiffEditor, createAgentModelCompareJudgmentEditor, createAgentModelCompareReviewEditor, createAgentModelCompareRouteDecisionEditor } from './agent-workspace-model-compare-editor.ts';
|
|
8
|
+
import { createAgentResearchReportEditor } from './agent-workspace-research-report-editor.ts';
|
|
9
|
+
import { createAgentResearchRunEditor } from './agent-workspace-research-run-editor.ts';
|
|
10
|
+
import { createAgentResearchSourceEditor } from './agent-workspace-research-source-editor.ts';
|
|
4
11
|
import { createReminderScheduleEditor } from './agent-workspace-reminder-schedule-editor.ts';
|
|
5
12
|
import { createRoutineScheduleEditor } from './agent-workspace-routine-schedule-editor.ts';
|
|
6
13
|
import { createAgentWorkspaceWebResearchEditor } from './agent-workspace-web-research-editor.ts';
|
|
@@ -15,6 +22,8 @@ import type {
|
|
|
15
22
|
AgentWorkspaceLocalEditorKind,
|
|
16
23
|
AgentWorkspaceLocalLibraryItem,
|
|
17
24
|
AgentWorkspaceLocalOperation,
|
|
25
|
+
AgentWorkspaceRecentReviewerHandoffArtifact,
|
|
26
|
+
AgentWorkspaceReviewPacketDefaults,
|
|
18
27
|
AgentWorkspaceRuntimeSnapshot,
|
|
19
28
|
AgentWorkspaceRuntimeStarterTemplateItem,
|
|
20
29
|
} from './agent-workspace-types.ts';
|
|
@@ -38,6 +47,7 @@ interface AgentWorkspaceActivationHost {
|
|
|
38
47
|
applyLocalLibraryOperation(operation: AgentWorkspaceLocalOperation): void;
|
|
39
48
|
applySettingAction(action: AgentWorkspaceCategory['actions'][number], requestRender?: () => void): void;
|
|
40
49
|
importTuiSettings(requestRender?: () => void): void;
|
|
50
|
+
applySetupCheckpointAction(action: AgentWorkspaceCategory['actions'][number], requestRender?: () => void): void;
|
|
41
51
|
openModelPickerAction(action: AgentWorkspaceCategory['actions'][number], requestRender?: () => void): void;
|
|
42
52
|
openSettingsModalAction(action: AgentWorkspaceCategory['actions'][number], requestRender?: () => void): void;
|
|
43
53
|
completeOnboarding(): void;
|
|
@@ -69,6 +79,10 @@ export function activateAgentWorkspaceSelection(
|
|
|
69
79
|
workspace.importTuiSettings(requestRender);
|
|
70
80
|
return;
|
|
71
81
|
}
|
|
82
|
+
if (action.kind === 'setup-checkpoint') {
|
|
83
|
+
workspace.applySetupCheckpointAction(action, requestRender);
|
|
84
|
+
return;
|
|
85
|
+
}
|
|
72
86
|
if (action.kind === 'model-picker') {
|
|
73
87
|
workspace.openModelPickerAction(action, requestRender);
|
|
74
88
|
return;
|
|
@@ -81,6 +95,8 @@ export function activateAgentWorkspaceSelection(
|
|
|
81
95
|
const editor = createAgentWorkspaceEditor(action.editorKind, {
|
|
82
96
|
runtimeStarterTemplates: workspace.runtimeSnapshot?.runtimeStarterTemplates ?? [],
|
|
83
97
|
selectedRoutine: workspace.selectedLocalLibraryItem('routine'),
|
|
98
|
+
recentReviewerHandoffArtifacts: workspace.runtimeSnapshot?.recentReviewerHandoffArtifacts ?? [],
|
|
99
|
+
reviewPacketDefaults: workspace.runtimeSnapshot?.reviewPacketDefaults ?? null,
|
|
84
100
|
});
|
|
85
101
|
if (!editor) {
|
|
86
102
|
workspace.status = `Editor unavailable: ${action.editorKind}.`;
|
|
@@ -178,12 +194,49 @@ export function createAgentWorkspaceEditor(
|
|
|
178
194
|
options: {
|
|
179
195
|
readonly runtimeStarterTemplates?: readonly AgentWorkspaceRuntimeStarterTemplateItem[];
|
|
180
196
|
readonly selectedRoutine?: AgentWorkspaceLocalLibraryItem | null;
|
|
197
|
+
readonly recentReviewerHandoffArtifacts?: readonly AgentWorkspaceRecentReviewerHandoffArtifact[];
|
|
198
|
+
readonly reviewPacketDefaults?: AgentWorkspaceReviewPacketDefaults | null;
|
|
181
199
|
} = {},
|
|
182
200
|
): AgentWorkspaceLocalEditor | null {
|
|
183
201
|
if (editorKind === 'profile') return createProfileEditor(options.runtimeStarterTemplates ?? []);
|
|
184
202
|
if (editorKind === 'learned-behavior') return createLearnedBehaviorEditor();
|
|
185
203
|
if (editorKind === 'web-research') return createAgentWorkspaceWebResearchEditor('research');
|
|
186
204
|
if (editorKind === 'web-fetch') return createAgentWorkspaceWebResearchEditor('fetch');
|
|
205
|
+
if (editorKind === 'research-run') return createAgentResearchRunEditor();
|
|
206
|
+
if (editorKind === 'research-source') return createAgentResearchSourceEditor();
|
|
207
|
+
if (editorKind === 'research-report') return createAgentResearchReportEditor();
|
|
208
|
+
if (editorKind === 'artifact-browser') return createAgentArtifactBrowserEditor();
|
|
209
|
+
if (editorKind === 'artifact-show') return createAgentArtifactShowEditor();
|
|
210
|
+
if (editorKind === 'artifact-export-file') return createAgentArtifactExportEditor();
|
|
211
|
+
if (editorKind === 'artifact-export-package') return createAgentArtifactPackageEditor();
|
|
212
|
+
if (editorKind === 'artifact-promote-knowledge') return createAgentArtifactPromoteKnowledgeEditor();
|
|
213
|
+
if (editorKind === 'document-browse') return createAgentDocumentBrowseEditor();
|
|
214
|
+
if (editorKind === 'document-show') return createAgentDocumentShowEditor();
|
|
215
|
+
if (editorKind === 'document-create') return createAgentDocumentCreateEditor();
|
|
216
|
+
if (editorKind === 'document-update') return createAgentDocumentUpdateEditor();
|
|
217
|
+
if (editorKind === 'document-review') return createAgentDocumentReviewEditor();
|
|
218
|
+
if (editorKind === 'document-comment') return createAgentDocumentCommentEditor();
|
|
219
|
+
if (editorKind === 'document-resolve-comment') return createAgentDocumentResolveCommentEditor();
|
|
220
|
+
if (editorKind === 'document-suggest') return createAgentDocumentSuggestEditor();
|
|
221
|
+
if (editorKind === 'document-accept-suggestion') return createAgentDocumentAcceptSuggestionEditor();
|
|
222
|
+
if (editorKind === 'document-reject-suggestion') return createAgentDocumentRejectSuggestionEditor();
|
|
223
|
+
if (editorKind === 'document-insert-artifact') return createAgentDocumentInsertArtifactEditor();
|
|
224
|
+
if (editorKind === 'document-attach-artifact') return createAgentDocumentAttachArtifactEditor();
|
|
225
|
+
if (editorKind === 'document-export') return createAgentDocumentExportEditor(options.reviewPacketDefaults ?? null);
|
|
226
|
+
if (editorKind === 'document-reviewer-readiness') return createAgentDocumentReviewerReadinessEditor();
|
|
227
|
+
if (editorKind === 'document-review-packet-wizard') return createAgentDocumentReviewPacketWizardEditor();
|
|
228
|
+
if (editorKind === 'document-review-packet-preset') return createAgentDocumentReviewPacketPresetEditor(options.reviewPacketDefaults ?? null);
|
|
229
|
+
if (editorKind === 'document-review-packet-preset-refresh') return createAgentDocumentReviewPacketPresetRefreshEditor();
|
|
230
|
+
if (editorKind === 'document-review-packet-share') return createAgentDocumentReviewPacketShareEditor(options.reviewPacketDefaults ?? null);
|
|
231
|
+
if (editorKind === 'model-compare') return createAgentModelCompareEditor();
|
|
232
|
+
if (editorKind === 'local-model-benchmark') return createAgentLocalModelBenchmarkEditor();
|
|
233
|
+
if (editorKind === 'model-compare-review') return createAgentModelCompareReviewEditor();
|
|
234
|
+
if (editorKind === 'model-compare-handoff-diff') return createAgentModelCompareHandoffDiffEditor(options.recentReviewerHandoffArtifacts ?? []);
|
|
235
|
+
if (editorKind === 'model-compare-judge') return createAgentModelCompareJudgmentEditor();
|
|
236
|
+
if (editorKind === 'model-compare-apply') return createAgentModelCompareApplyEditor(options.reviewPacketDefaults ?? null);
|
|
237
|
+
if (editorKind === 'model-compare-route-decision') return createAgentModelCompareRouteDecisionEditor(options.reviewPacketDefaults ?? null);
|
|
238
|
+
if (editorKind === 'model-compare-export') return createAgentModelCompareExportEditor(options.reviewPacketDefaults ?? null);
|
|
239
|
+
if (editorKind === 'model-compare-analytics') return createAgentModelCompareAnalyticsEditor();
|
|
187
240
|
if (editorKind && isAgentWorkspaceBasicCommandEditorKind(editorKind)) return createAgentWorkspaceBasicCommandEditor(editorKind);
|
|
188
241
|
if (editorKind === 'knowledge-ask') return createAgentKnowledgeQueryEditor('ask');
|
|
189
242
|
if (editorKind === 'knowledge-search') return createAgentKnowledgeQueryEditor('search');
|