@pellux/goodvibes-agent 1.1.6 → 1.2.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 +176 -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 +132662 -91399
- 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 +56 -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 +114 -45
- package/docs/voice-and-live-tts.md +3 -1
- package/package.json +3 -2
- package/release/release-notes.md +130 -5
- package/release/release-readiness.json +120 -90
- 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 +296 -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-checkpoint.ts +140 -0
- package/src/agent/setup-wizard.ts +447 -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 +262 -30
- package/src/input/agent-workspace-setup-checkpoint-action.ts +127 -0
- package/src/input/agent-workspace-setup-snapshot.ts +198 -0
- package/src/input/agent-workspace-setup.ts +34 -1
- package/src/input/agent-workspace-snapshot.ts +162 -147
- package/src/input/agent-workspace-types.ts +287 -2
- package/src/input/agent-workspace.ts +18 -0
- 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/main.ts +15 -15
- package/src/panels/qr-panel.ts +2 -2
- package/src/renderer/agent-workspace-context-lines.ts +686 -0
- package/src/renderer/agent-workspace.ts +30 -419
- 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 +43 -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 +287 -0
- 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 +267 -10
- 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.ts +703 -0
- package/src/tools/agent-harness-autonomy-intake.ts +785 -0
- package/src/tools/agent-harness-autonomy-live-records.ts +588 -0
- package/src/tools/agent-harness-autonomy-queue-types.ts +88 -0
- package/src/tools/agent-harness-autonomy-queue.ts +560 -0
- package/src/tools/agent-harness-background-processes-types.ts +35 -0
- package/src/tools/agent-harness-background-processes.ts +794 -0
- package/src/tools/agent-harness-browser-cockpit-route.ts +219 -0
- package/src/tools/agent-harness-browser-control.ts +338 -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-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 +382 -0
- package/src/tools/agent-harness-file-recovery.ts +135 -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 +199 -0
- package/src/tools/agent-harness-local-model-cookbook.ts +238 -0
- package/src/tools/agent-harness-local-model-endpoints.ts +673 -0
- package/src/tools/agent-harness-media-posture.ts +208 -2
- package/src/tools/agent-harness-memory-posture.ts +556 -0
- package/src/tools/agent-harness-metadata.ts +100 -168
- package/src/tools/agent-harness-mode-catalog.ts +84 -33
- package/src/tools/agent-harness-model-catalog.ts +162 -0
- package/src/tools/agent-harness-model-provider-health.ts +186 -0
- package/src/tools/agent-harness-model-readiness.ts +406 -0
- package/src/tools/agent-harness-model-routing-types.ts +266 -0
- package/src/tools/agent-harness-model-routing-utils.ts +30 -0
- package/src/tools/agent-harness-model-routing.ts +137 -190
- package/src/tools/agent-harness-operator-methods.ts +115 -133
- package/src/tools/agent-harness-pairing-posture.ts +431 -18
- 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 +204 -0
- package/src/tools/agent-harness-personal-ops-records.ts +732 -0
- package/src/tools/agent-harness-personal-ops-runner.ts +637 -0
- package/src/tools/agent-harness-personal-ops-types.ts +222 -0
- package/src/tools/agent-harness-personal-ops.ts +606 -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-research-briefing.ts +427 -0
- package/src/tools/agent-harness-research-queue.ts +250 -0
- package/src/tools/agent-harness-research-runs.ts +295 -0
- package/src/tools/agent-harness-research-workflow.ts +322 -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 +101 -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 +508 -0
- package/src/tools/agent-harness-sudo-posture.ts +114 -0
- package/src/tools/agent-harness-tool-schema.ts +120 -7
- package/src/tools/agent-harness-tool-types.ts +78 -0
- package/src/tools/agent-harness-tool-utils.ts +43 -0
- package/src/tools/agent-harness-tool.ts +311 -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 +214 -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 +722 -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-runs-tool.ts +434 -0
- package/src/tools/agent-research-sources-tool.ts +443 -0
- package/src/tools/agent-research-tool.ts +687 -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 +110 -89
- 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/tools/tool-execution-safety.ts +41 -0
- package/src/version.ts +1 -1
|
@@ -0,0 +1,447 @@
|
|
|
1
|
+
export type AgentSetupWizardSourceStatus = 'ready' | 'blocked' | 'recommended' | 'optional' | 'check';
|
|
2
|
+
export type AgentSetupWizardStatus = 'complete' | 'active' | 'blocked';
|
|
3
|
+
export type AgentSetupWizardStepStatus = 'done' | 'current' | 'pending' | 'blocked';
|
|
4
|
+
export type AgentSetupWizardCheckpointStatus = 'available' | 'none' | 'stale' | 'unavailable';
|
|
5
|
+
export type AgentSetupWizardCloseoutStatus = 'complete' | 'ready-to-finish' | 'needs-smoke-evidence' | 'blocked';
|
|
6
|
+
|
|
7
|
+
export interface AgentSetupWizardSourceItem {
|
|
8
|
+
readonly id: string;
|
|
9
|
+
readonly label: string;
|
|
10
|
+
readonly status: AgentSetupWizardSourceStatus;
|
|
11
|
+
readonly detail: string;
|
|
12
|
+
readonly userRoute: string;
|
|
13
|
+
readonly modelRoute: string;
|
|
14
|
+
readonly actionId?: string;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
export interface AgentSetupWizardBlockedCheckFrequency {
|
|
18
|
+
readonly checkId: string;
|
|
19
|
+
readonly count: number;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
export interface AgentSetupWizardSmokeHistory {
|
|
23
|
+
readonly status: 'available' | 'none' | 'unavailable';
|
|
24
|
+
readonly total: number;
|
|
25
|
+
readonly trend: string;
|
|
26
|
+
readonly latestResult: string | null;
|
|
27
|
+
readonly previousResult: string | null;
|
|
28
|
+
readonly resultCounts: Readonly<Record<string, number>>;
|
|
29
|
+
readonly blockedCheckFrequency: readonly AgentSetupWizardBlockedCheckFrequency[];
|
|
30
|
+
readonly inspectLatestRoute: string | null;
|
|
31
|
+
readonly rerunRoute: string;
|
|
32
|
+
readonly saveRoute: string;
|
|
33
|
+
readonly reason?: string;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
export interface AgentSetupWizardRepeatedBlocker {
|
|
37
|
+
readonly setupItemId: string;
|
|
38
|
+
readonly checkId: string;
|
|
39
|
+
readonly count: number;
|
|
40
|
+
readonly summary: string;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
export interface AgentSetupWizardStep {
|
|
44
|
+
readonly id: string;
|
|
45
|
+
readonly label: string;
|
|
46
|
+
readonly status: AgentSetupWizardStepStatus;
|
|
47
|
+
readonly sourceStatus: AgentSetupWizardSourceStatus;
|
|
48
|
+
readonly detail: string;
|
|
49
|
+
readonly userRoute: string;
|
|
50
|
+
readonly modelRoute: string;
|
|
51
|
+
readonly actionId: string;
|
|
52
|
+
readonly backtrackRoute: string | null;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
export interface AgentSetupWizardCloseout {
|
|
56
|
+
readonly status: AgentSetupWizardCloseoutStatus;
|
|
57
|
+
readonly label: string;
|
|
58
|
+
readonly summary: string;
|
|
59
|
+
readonly nextAction: string;
|
|
60
|
+
readonly primaryStepId: string | null;
|
|
61
|
+
readonly primaryStepLabel: string | null;
|
|
62
|
+
readonly userRoute: string;
|
|
63
|
+
readonly modelRoute: string;
|
|
64
|
+
readonly requiresConfirmation: boolean;
|
|
65
|
+
readonly evidence: readonly string[];
|
|
66
|
+
readonly policy: string;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
export interface AgentSetupWizardCheckpoint {
|
|
70
|
+
readonly status: AgentSetupWizardCheckpointStatus;
|
|
71
|
+
readonly currentStepId: string | null;
|
|
72
|
+
readonly currentStepLabel: string | null;
|
|
73
|
+
readonly savedAt: string | null;
|
|
74
|
+
readonly source: string | null;
|
|
75
|
+
readonly resumed: boolean;
|
|
76
|
+
readonly summary: string;
|
|
77
|
+
readonly path: string | null;
|
|
78
|
+
readonly note?: string;
|
|
79
|
+
readonly parseError?: string;
|
|
80
|
+
readonly autoAdvance?: AgentSetupWizardCheckpointAutoAdvance;
|
|
81
|
+
readonly markCurrentRoute: string;
|
|
82
|
+
readonly clearRoute: string;
|
|
83
|
+
readonly inspectRoute: string;
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
export interface AgentSetupWizardCheckpointAutoAdvance {
|
|
87
|
+
readonly status: 'advanced' | 'live-priority';
|
|
88
|
+
readonly fromStepId: string | null;
|
|
89
|
+
readonly fromStepLabel: string | null;
|
|
90
|
+
readonly toStepId: string | null;
|
|
91
|
+
readonly toStepLabel: string | null;
|
|
92
|
+
readonly reason: string;
|
|
93
|
+
readonly evidence: string;
|
|
94
|
+
readonly clearRoute: string;
|
|
95
|
+
readonly inspectRoute: string;
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
export interface AgentSetupWizard {
|
|
99
|
+
readonly available: true;
|
|
100
|
+
readonly status: AgentSetupWizardStatus;
|
|
101
|
+
readonly completedSteps: number;
|
|
102
|
+
readonly totalSteps: number;
|
|
103
|
+
readonly currentStepId: string | null;
|
|
104
|
+
readonly currentStepLabel: string | null;
|
|
105
|
+
readonly progressLabel: string;
|
|
106
|
+
readonly next: string;
|
|
107
|
+
readonly reviewRoute: string;
|
|
108
|
+
readonly repeatedBlocker: AgentSetupWizardRepeatedBlocker | null;
|
|
109
|
+
readonly smokeHistory: AgentSetupWizardSmokeHistory;
|
|
110
|
+
readonly closeout: AgentSetupWizardCloseout;
|
|
111
|
+
readonly checkpoint: AgentSetupWizardCheckpoint;
|
|
112
|
+
readonly steps: readonly AgentSetupWizardStep[];
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
export interface BuildAgentSetupWizardInput {
|
|
116
|
+
readonly items: readonly AgentSetupWizardSourceItem[];
|
|
117
|
+
readonly smokeHistory?: AgentSetupWizardSmokeHistory;
|
|
118
|
+
readonly checkpoint?: AgentSetupWizardCheckpoint;
|
|
119
|
+
readonly closeoutCriticalStepIds?: readonly string[];
|
|
120
|
+
readonly setupMarkerExists?: boolean;
|
|
121
|
+
readonly finishRoute?: string;
|
|
122
|
+
readonly finishUserRoute?: string;
|
|
123
|
+
readonly repeatedBlockerAliases?: Readonly<Record<string, readonly string[]>>;
|
|
124
|
+
readonly reviewRoute?: string;
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
export const DEFAULT_AGENT_SETUP_WIZARD_REVIEW_ROUTE = 'setup action:"status" includeParameters:true';
|
|
128
|
+
export const DEFAULT_AGENT_SETUP_WIZARD_RERUN_SMOKE_ROUTE = 'setup action:"smoke" setupItemId:"install-smoke" confirm:true explicitUserRequest:"..."';
|
|
129
|
+
export const DEFAULT_AGENT_SETUP_WIZARD_SAVE_SMOKE_ROUTE = 'setup action:"smoke" setupItemId:"install-smoke" fields:{...} confirm:true explicitUserRequest:"..."';
|
|
130
|
+
export const DEFAULT_AGENT_SETUP_WIZARD_MARK_CHECKPOINT_ROUTE = 'setup action:"save_checkpoint" confirm:true explicitUserRequest:"..."';
|
|
131
|
+
export const DEFAULT_AGENT_SETUP_WIZARD_CLEAR_CHECKPOINT_ROUTE = 'setup action:"clear_checkpoint" confirm:true explicitUserRequest:"..."';
|
|
132
|
+
export const DEFAULT_AGENT_SETUP_WIZARD_INSPECT_CHECKPOINT_ROUTE = 'setup action:"checkpoint"';
|
|
133
|
+
export const DEFAULT_AGENT_SETUP_WIZARD_FINISH_ROUTE = 'setup action:"finish" confirm:true explicitUserRequest:"Finish Agent onboarding after setup smoke evidence is ready."';
|
|
134
|
+
export const DEFAULT_AGENT_SETUP_WIZARD_FINISH_USER_ROUTE = 'Agent Workspace -> Finish -> Apply & close';
|
|
135
|
+
|
|
136
|
+
export function emptyAgentSetupSmokeHistory(reason = 'No saved setup smoke evidence artifact found.'): AgentSetupWizardSmokeHistory {
|
|
137
|
+
return {
|
|
138
|
+
status: 'none',
|
|
139
|
+
total: 0,
|
|
140
|
+
trend: 'none',
|
|
141
|
+
latestResult: null,
|
|
142
|
+
previousResult: null,
|
|
143
|
+
resultCounts: {},
|
|
144
|
+
blockedCheckFrequency: [],
|
|
145
|
+
inspectLatestRoute: null,
|
|
146
|
+
rerunRoute: DEFAULT_AGENT_SETUP_WIZARD_RERUN_SMOKE_ROUTE,
|
|
147
|
+
saveRoute: DEFAULT_AGENT_SETUP_WIZARD_SAVE_SMOKE_ROUTE,
|
|
148
|
+
reason,
|
|
149
|
+
};
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
export function emptyAgentSetupWizardCheckpoint(reason = 'No saved setup wizard checkpoint.'): AgentSetupWizardCheckpoint {
|
|
153
|
+
return {
|
|
154
|
+
status: 'none',
|
|
155
|
+
currentStepId: null,
|
|
156
|
+
currentStepLabel: null,
|
|
157
|
+
savedAt: null,
|
|
158
|
+
source: null,
|
|
159
|
+
resumed: false,
|
|
160
|
+
summary: reason,
|
|
161
|
+
path: null,
|
|
162
|
+
markCurrentRoute: DEFAULT_AGENT_SETUP_WIZARD_MARK_CHECKPOINT_ROUTE,
|
|
163
|
+
clearRoute: DEFAULT_AGENT_SETUP_WIZARD_CLEAR_CHECKPOINT_ROUTE,
|
|
164
|
+
inspectRoute: DEFAULT_AGENT_SETUP_WIZARD_INSPECT_CHECKPOINT_ROUTE,
|
|
165
|
+
};
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
function firstAttentionItem(items: readonly AgentSetupWizardSourceItem[]): AgentSetupWizardSourceItem | null {
|
|
169
|
+
return items.find((item) => item.status === 'blocked')
|
|
170
|
+
?? items.find((item) => item.status === 'check')
|
|
171
|
+
?? items.find((item) => item.status === 'recommended')
|
|
172
|
+
?? items.find((item) => item.status === 'optional')
|
|
173
|
+
?? null;
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
function firstBlockingItem(items: readonly AgentSetupWizardSourceItem[]): AgentSetupWizardSourceItem | null {
|
|
177
|
+
return items.find((item) => item.status === 'blocked')
|
|
178
|
+
?? items.find((item) => item.status === 'check')
|
|
179
|
+
?? null;
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
function itemFromRepeatedBlockers(
|
|
183
|
+
items: readonly AgentSetupWizardSourceItem[],
|
|
184
|
+
smokeHistory: AgentSetupWizardSmokeHistory,
|
|
185
|
+
aliases: Readonly<Record<string, readonly string[]>>,
|
|
186
|
+
): { readonly item: AgentSetupWizardSourceItem; readonly blocker: AgentSetupWizardRepeatedBlocker } | null {
|
|
187
|
+
const byId = new Map(items.map((item) => [item.id, item]));
|
|
188
|
+
for (const frequency of smokeHistory.blockedCheckFrequency) {
|
|
189
|
+
const candidates = aliases[frequency.checkId] ?? [frequency.checkId];
|
|
190
|
+
for (const candidate of candidates) {
|
|
191
|
+
const item = byId.get(candidate);
|
|
192
|
+
if (!item || item.status === 'ready') continue;
|
|
193
|
+
return {
|
|
194
|
+
item,
|
|
195
|
+
blocker: {
|
|
196
|
+
setupItemId: item.id,
|
|
197
|
+
checkId: frequency.checkId,
|
|
198
|
+
count: frequency.count,
|
|
199
|
+
summary: `${item.label} repeated in ${frequency.count} saved setup smoke run(s) as ${frequency.checkId}.`,
|
|
200
|
+
},
|
|
201
|
+
};
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
return null;
|
|
205
|
+
}
|
|
206
|
+
|
|
207
|
+
function itemFromCheckpoint(
|
|
208
|
+
items: readonly AgentSetupWizardSourceItem[],
|
|
209
|
+
checkpoint: AgentSetupWizardCheckpoint,
|
|
210
|
+
): AgentSetupWizardSourceItem | null {
|
|
211
|
+
if (checkpoint.status !== 'available' || !checkpoint.currentStepId) return null;
|
|
212
|
+
const item = items.find((candidate) => candidate.id === checkpoint.currentStepId);
|
|
213
|
+
if (!item || item.status === 'ready') return null;
|
|
214
|
+
return item;
|
|
215
|
+
}
|
|
216
|
+
|
|
217
|
+
function buildCheckpoint(
|
|
218
|
+
checkpoint: AgentSetupWizardCheckpoint,
|
|
219
|
+
items: readonly AgentSetupWizardSourceItem[],
|
|
220
|
+
resumedItem: AgentSetupWizardSourceItem | null,
|
|
221
|
+
blockingItem: AgentSetupWizardSourceItem | null,
|
|
222
|
+
): AgentSetupWizardCheckpoint {
|
|
223
|
+
const withRoutes: AgentSetupWizardCheckpoint = {
|
|
224
|
+
...checkpoint,
|
|
225
|
+
markCurrentRoute: checkpoint.markCurrentRoute || DEFAULT_AGENT_SETUP_WIZARD_MARK_CHECKPOINT_ROUTE,
|
|
226
|
+
clearRoute: checkpoint.clearRoute || DEFAULT_AGENT_SETUP_WIZARD_CLEAR_CHECKPOINT_ROUTE,
|
|
227
|
+
inspectRoute: checkpoint.inspectRoute || DEFAULT_AGENT_SETUP_WIZARD_INSPECT_CHECKPOINT_ROUTE,
|
|
228
|
+
};
|
|
229
|
+
if (checkpoint.status !== 'available') return withRoutes;
|
|
230
|
+
if (resumedItem) {
|
|
231
|
+
return {
|
|
232
|
+
...withRoutes,
|
|
233
|
+
currentStepLabel: checkpoint.currentStepLabel ?? resumedItem.label,
|
|
234
|
+
resumed: true,
|
|
235
|
+
summary: `Resuming ${resumedItem.label} from saved setup checkpoint.`,
|
|
236
|
+
};
|
|
237
|
+
}
|
|
238
|
+
const savedItem = checkpoint.currentStepId
|
|
239
|
+
? items.find((item) => item.id === checkpoint.currentStepId)
|
|
240
|
+
: null;
|
|
241
|
+
if (savedItem && savedItem.status !== 'ready' && blockingItem) {
|
|
242
|
+
return {
|
|
243
|
+
...withRoutes,
|
|
244
|
+
currentStepLabel: checkpoint.currentStepLabel ?? savedItem.label,
|
|
245
|
+
resumed: false,
|
|
246
|
+
summary: `Saved setup checkpoint for ${savedItem.label}; live blocker ${blockingItem.label} is taking priority.`,
|
|
247
|
+
autoAdvance: {
|
|
248
|
+
status: 'live-priority',
|
|
249
|
+
fromStepId: savedItem.id,
|
|
250
|
+
fromStepLabel: savedItem.label,
|
|
251
|
+
toStepId: blockingItem.id,
|
|
252
|
+
toStepLabel: blockingItem.label,
|
|
253
|
+
reason: 'A live blocking setup item takes priority over the saved checkpoint.',
|
|
254
|
+
evidence: `${blockingItem.label} is currently ${blockingItem.status}.`,
|
|
255
|
+
clearRoute: withRoutes.clearRoute,
|
|
256
|
+
inspectRoute: withRoutes.inspectRoute,
|
|
257
|
+
},
|
|
258
|
+
};
|
|
259
|
+
}
|
|
260
|
+
const nextItem = firstAttentionItem(items);
|
|
261
|
+
return {
|
|
262
|
+
...withRoutes,
|
|
263
|
+
status: 'stale',
|
|
264
|
+
resumed: false,
|
|
265
|
+
summary: savedItem?.status === 'ready'
|
|
266
|
+
? `Saved checkpoint ${savedItem.label} is already ready; live setup posture is taking over.`
|
|
267
|
+
: 'Saved checkpoint no longer matches a current setup step; live setup posture is taking over.',
|
|
268
|
+
autoAdvance: {
|
|
269
|
+
status: 'advanced',
|
|
270
|
+
fromStepId: savedItem?.id ?? checkpoint.currentStepId,
|
|
271
|
+
fromStepLabel: savedItem?.label ?? checkpoint.currentStepLabel,
|
|
272
|
+
toStepId: nextItem?.id ?? null,
|
|
273
|
+
toStepLabel: nextItem?.label ?? null,
|
|
274
|
+
reason: savedItem?.status === 'ready'
|
|
275
|
+
? 'The saved checkpoint step is ready, so the wizard advanced to live setup posture.'
|
|
276
|
+
: 'The saved checkpoint step is no longer in the live setup plan, so the wizard advanced to live setup posture.',
|
|
277
|
+
evidence: savedItem?.status === 'ready'
|
|
278
|
+
? `${savedItem.label} source status is ready.`
|
|
279
|
+
: 'No matching live setup item exists for the saved checkpoint id.',
|
|
280
|
+
clearRoute: withRoutes.clearRoute,
|
|
281
|
+
inspectRoute: withRoutes.inspectRoute,
|
|
282
|
+
},
|
|
283
|
+
};
|
|
284
|
+
}
|
|
285
|
+
|
|
286
|
+
function stepStatus(item: AgentSetupWizardSourceItem, currentId: string | null): AgentSetupWizardStepStatus {
|
|
287
|
+
if (item.status === 'ready') return 'done';
|
|
288
|
+
if (item.id === currentId) return 'current';
|
|
289
|
+
if (item.status === 'blocked' || item.status === 'check') return 'blocked';
|
|
290
|
+
return 'pending';
|
|
291
|
+
}
|
|
292
|
+
|
|
293
|
+
function buildStep(item: AgentSetupWizardSourceItem, currentId: string | null): AgentSetupWizardStep {
|
|
294
|
+
const status = stepStatus(item, currentId);
|
|
295
|
+
return {
|
|
296
|
+
id: item.id,
|
|
297
|
+
label: item.label,
|
|
298
|
+
status,
|
|
299
|
+
sourceStatus: item.status,
|
|
300
|
+
detail: item.detail,
|
|
301
|
+
userRoute: item.userRoute,
|
|
302
|
+
modelRoute: item.modelRoute,
|
|
303
|
+
actionId: item.actionId ?? item.id,
|
|
304
|
+
backtrackRoute: status === 'done' || status === 'current' ? item.modelRoute : null,
|
|
305
|
+
};
|
|
306
|
+
}
|
|
307
|
+
|
|
308
|
+
function buildCloseout(input: {
|
|
309
|
+
readonly items: readonly AgentSetupWizardSourceItem[];
|
|
310
|
+
readonly smokeHistory: AgentSetupWizardSmokeHistory;
|
|
311
|
+
readonly criticalStepIds: readonly string[];
|
|
312
|
+
readonly setupMarkerExists: boolean;
|
|
313
|
+
readonly reviewRoute: string;
|
|
314
|
+
readonly finishRoute: string;
|
|
315
|
+
readonly finishUserRoute: string;
|
|
316
|
+
}): AgentSetupWizardCloseout {
|
|
317
|
+
const critical = new Set(input.criticalStepIds);
|
|
318
|
+
const primaryBlocker = input.items.find((item) => (
|
|
319
|
+
critical.has(item.id) && item.status === 'blocked'
|
|
320
|
+
)) ?? null;
|
|
321
|
+
const smokeReady = input.smokeHistory.status === 'available' && input.smokeHistory.latestResult === 'ready-for-user-run';
|
|
322
|
+
const latestSmoke = input.smokeHistory.status === 'available'
|
|
323
|
+
? input.smokeHistory.latestResult ?? 'unknown'
|
|
324
|
+
: input.smokeHistory.status;
|
|
325
|
+
const evidence = [
|
|
326
|
+
`critical setup blockers: ${primaryBlocker ? `${primaryBlocker.label} (${primaryBlocker.status})` : 'none'}`,
|
|
327
|
+
`setup marker: ${input.setupMarkerExists ? 'present' : 'missing'}`,
|
|
328
|
+
`latest setup smoke: ${latestSmoke}`,
|
|
329
|
+
`setup smoke history: ${input.smokeHistory.status}; total ${input.smokeHistory.total}; trend ${input.smokeHistory.trend}`,
|
|
330
|
+
];
|
|
331
|
+
const policy = 'Setup closeout is advisory until a confirmed finish route writes the local onboarding marker. Optional setup recommendations do not block closeout, but unresolved critical blockers or missing ready setup smoke evidence do.';
|
|
332
|
+
|
|
333
|
+
if (primaryBlocker) {
|
|
334
|
+
return {
|
|
335
|
+
status: 'blocked',
|
|
336
|
+
label: 'Fix setup blocker',
|
|
337
|
+
summary: `${primaryBlocker.label} is blocking normal Agent use.`,
|
|
338
|
+
nextAction: primaryBlocker.detail,
|
|
339
|
+
primaryStepId: primaryBlocker.id,
|
|
340
|
+
primaryStepLabel: primaryBlocker.label,
|
|
341
|
+
userRoute: primaryBlocker.userRoute,
|
|
342
|
+
modelRoute: primaryBlocker.modelRoute,
|
|
343
|
+
requiresConfirmation: false,
|
|
344
|
+
evidence,
|
|
345
|
+
policy,
|
|
346
|
+
};
|
|
347
|
+
}
|
|
348
|
+
|
|
349
|
+
if (!smokeReady) {
|
|
350
|
+
const prior = input.smokeHistory.latestResult === 'blocked'
|
|
351
|
+
? 'The latest saved setup smoke was blocked; rerun it now that critical setup is ready.'
|
|
352
|
+
: input.smokeHistory.status === 'unavailable'
|
|
353
|
+
? 'Critical setup is ready, but this runtime cannot prove a saved setup smoke artifact.'
|
|
354
|
+
: 'Critical setup is ready, but no ready setup smoke evidence is saved yet.';
|
|
355
|
+
return {
|
|
356
|
+
status: 'needs-smoke-evidence',
|
|
357
|
+
label: 'Run final setup smoke',
|
|
358
|
+
summary: prior,
|
|
359
|
+
nextAction: 'Run the confirmed setup smoke route, capture user-visible package/status and first-turn output, then save the redacted evidence.',
|
|
360
|
+
primaryStepId: 'install-smoke',
|
|
361
|
+
primaryStepLabel: 'Install smoke',
|
|
362
|
+
userRoute: 'Agent Workspace -> Start -> Install smoke',
|
|
363
|
+
modelRoute: input.smokeHistory.saveRoute,
|
|
364
|
+
requiresConfirmation: true,
|
|
365
|
+
evidence,
|
|
366
|
+
policy,
|
|
367
|
+
};
|
|
368
|
+
}
|
|
369
|
+
|
|
370
|
+
if (!input.setupMarkerExists) {
|
|
371
|
+
return {
|
|
372
|
+
status: 'ready-to-finish',
|
|
373
|
+
label: 'Finish setup',
|
|
374
|
+
summary: 'Critical setup is ready and the latest saved setup smoke evidence is ready for user-run closeout.',
|
|
375
|
+
nextAction: 'Write the onboarding completion marker so future launches start in the main conversation instead of first-run setup.',
|
|
376
|
+
primaryStepId: 'finish-onboarding',
|
|
377
|
+
primaryStepLabel: 'Finish onboarding state',
|
|
378
|
+
userRoute: input.finishUserRoute,
|
|
379
|
+
modelRoute: input.finishRoute,
|
|
380
|
+
requiresConfirmation: true,
|
|
381
|
+
evidence,
|
|
382
|
+
policy,
|
|
383
|
+
};
|
|
384
|
+
}
|
|
385
|
+
|
|
386
|
+
return {
|
|
387
|
+
status: 'complete',
|
|
388
|
+
label: 'Setup complete',
|
|
389
|
+
summary: 'Critical setup, setup smoke evidence, and the onboarding completion marker are all present.',
|
|
390
|
+
nextAction: 'Use setup only when provider, host, channel, automation, local behavior, or runtime-profile decisions change.',
|
|
391
|
+
primaryStepId: null,
|
|
392
|
+
primaryStepLabel: null,
|
|
393
|
+
userRoute: 'Agent Workspace -> Home',
|
|
394
|
+
modelRoute: input.reviewRoute,
|
|
395
|
+
requiresConfirmation: false,
|
|
396
|
+
evidence,
|
|
397
|
+
policy,
|
|
398
|
+
};
|
|
399
|
+
}
|
|
400
|
+
|
|
401
|
+
export function buildAgentSetupWizard(input: BuildAgentSetupWizardInput): AgentSetupWizard {
|
|
402
|
+
const smokeHistory = input.smokeHistory ?? emptyAgentSetupSmokeHistory();
|
|
403
|
+
const inputCheckpoint = input.checkpoint ?? emptyAgentSetupWizardCheckpoint();
|
|
404
|
+
const repeated = itemFromRepeatedBlockers(input.items, smokeHistory, input.repeatedBlockerAliases ?? {});
|
|
405
|
+
const blocking = firstBlockingItem(input.items);
|
|
406
|
+
const rawCheckpointItem = itemFromCheckpoint(input.items, inputCheckpoint);
|
|
407
|
+
const checkpointItem = blocking && rawCheckpointItem?.id !== blocking.id ? null : rawCheckpointItem;
|
|
408
|
+
const checkpoint = buildCheckpoint(inputCheckpoint, input.items, checkpointItem, blocking);
|
|
409
|
+
const current = repeated?.item ?? blocking ?? checkpointItem ?? firstAttentionItem(input.items);
|
|
410
|
+
const currentId = current?.id ?? null;
|
|
411
|
+
const steps = input.items.map((item) => buildStep(item, currentId));
|
|
412
|
+
const completedSteps = steps.filter((step) => step.status === 'done').length;
|
|
413
|
+
const status: AgentSetupWizardStatus = completedSteps === steps.length
|
|
414
|
+
? 'complete'
|
|
415
|
+
: current?.status === 'blocked' || current?.status === 'check'
|
|
416
|
+
? 'blocked'
|
|
417
|
+
: 'active';
|
|
418
|
+
const next = current
|
|
419
|
+
? repeated
|
|
420
|
+
? `${current.label}: ${repeated.blocker.summary} ${current.detail}`
|
|
421
|
+
: `${current.label}: ${current.detail}`
|
|
422
|
+
: 'Setup wizard is complete; rerun setup smoke if this machine was upgraded or moved.';
|
|
423
|
+
return {
|
|
424
|
+
available: true,
|
|
425
|
+
status,
|
|
426
|
+
completedSteps,
|
|
427
|
+
totalSteps: steps.length,
|
|
428
|
+
currentStepId: currentId,
|
|
429
|
+
currentStepLabel: current?.label ?? null,
|
|
430
|
+
progressLabel: `${completedSteps}/${steps.length} setup step(s) ready`,
|
|
431
|
+
next,
|
|
432
|
+
reviewRoute: input.reviewRoute ?? DEFAULT_AGENT_SETUP_WIZARD_REVIEW_ROUTE,
|
|
433
|
+
repeatedBlocker: repeated?.blocker ?? null,
|
|
434
|
+
smokeHistory,
|
|
435
|
+
closeout: buildCloseout({
|
|
436
|
+
items: input.items,
|
|
437
|
+
smokeHistory,
|
|
438
|
+
criticalStepIds: input.closeoutCriticalStepIds ?? [],
|
|
439
|
+
setupMarkerExists: input.setupMarkerExists === true,
|
|
440
|
+
reviewRoute: input.reviewRoute ?? DEFAULT_AGENT_SETUP_WIZARD_REVIEW_ROUTE,
|
|
441
|
+
finishRoute: input.finishRoute ?? DEFAULT_AGENT_SETUP_WIZARD_FINISH_ROUTE,
|
|
442
|
+
finishUserRoute: input.finishUserRoute ?? DEFAULT_AGENT_SETUP_WIZARD_FINISH_USER_ROUTE,
|
|
443
|
+
}),
|
|
444
|
+
checkpoint,
|
|
445
|
+
steps,
|
|
446
|
+
};
|
|
447
|
+
}
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
export type AgentSkillSource = 'user' | 'agent' | 'imported' | 'system';
|
|
2
|
+
export type AgentSkillReviewState = 'fresh' | 'reviewed' | 'stale';
|
|
3
|
+
export type AgentSkillRequirementKind = 'env' | 'command';
|
|
4
|
+
|
|
5
|
+
export interface AgentSkillRequirement {
|
|
6
|
+
readonly kind: AgentSkillRequirementKind;
|
|
7
|
+
readonly name: string;
|
|
8
|
+
readonly description?: string;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
export interface AgentSkillReadiness {
|
|
12
|
+
readonly ready: boolean;
|
|
13
|
+
readonly met: readonly AgentSkillRequirement[];
|
|
14
|
+
readonly missing: readonly AgentSkillRequirement[];
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
export interface AgentSkillBundleReadiness {
|
|
18
|
+
readonly ready: boolean;
|
|
19
|
+
readonly includedSkills: readonly AgentSkillRecord[];
|
|
20
|
+
readonly missingSkillIds: readonly string[];
|
|
21
|
+
readonly missingRequirements: readonly AgentSkillRequirement[];
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
export interface AgentSkillRecord {
|
|
25
|
+
readonly id: string;
|
|
26
|
+
readonly name: string;
|
|
27
|
+
readonly description: string;
|
|
28
|
+
readonly procedure: string;
|
|
29
|
+
readonly triggers: readonly string[];
|
|
30
|
+
readonly tags: readonly string[];
|
|
31
|
+
readonly requirements: readonly AgentSkillRequirement[];
|
|
32
|
+
readonly enabled: boolean;
|
|
33
|
+
readonly source: AgentSkillSource;
|
|
34
|
+
readonly provenance: string;
|
|
35
|
+
readonly reviewState: AgentSkillReviewState;
|
|
36
|
+
readonly staleReason?: string;
|
|
37
|
+
readonly createdAt: string;
|
|
38
|
+
readonly updatedAt: string;
|
|
39
|
+
readonly reviewedAt?: string;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
export interface AgentSkillBundleRecord {
|
|
43
|
+
readonly id: string;
|
|
44
|
+
readonly name: string;
|
|
45
|
+
readonly description: string;
|
|
46
|
+
readonly skillIds: readonly string[];
|
|
47
|
+
readonly enabled: boolean;
|
|
48
|
+
readonly source: AgentSkillSource;
|
|
49
|
+
readonly provenance: string;
|
|
50
|
+
readonly reviewState: AgentSkillReviewState;
|
|
51
|
+
readonly staleReason?: string;
|
|
52
|
+
readonly createdAt: string;
|
|
53
|
+
readonly updatedAt: string;
|
|
54
|
+
readonly reviewedAt?: string;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
export interface AgentSkillCreateInput {
|
|
58
|
+
readonly name: string;
|
|
59
|
+
readonly description: string;
|
|
60
|
+
readonly procedure: string;
|
|
61
|
+
readonly triggers?: readonly string[];
|
|
62
|
+
readonly tags?: readonly string[];
|
|
63
|
+
readonly requirements?: readonly AgentSkillRequirement[];
|
|
64
|
+
readonly enabled?: boolean;
|
|
65
|
+
readonly source?: AgentSkillSource;
|
|
66
|
+
readonly provenance?: string;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
export interface AgentSkillBundleCreateInput {
|
|
70
|
+
readonly name: string;
|
|
71
|
+
readonly description: string;
|
|
72
|
+
readonly skillIds: readonly string[];
|
|
73
|
+
readonly enabled?: boolean;
|
|
74
|
+
readonly source?: AgentSkillSource;
|
|
75
|
+
readonly provenance?: string;
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
export interface AgentSkillUpdateInput {
|
|
79
|
+
readonly name?: string;
|
|
80
|
+
readonly description?: string;
|
|
81
|
+
readonly procedure?: string;
|
|
82
|
+
readonly triggers?: readonly string[];
|
|
83
|
+
readonly tags?: readonly string[];
|
|
84
|
+
readonly requirements?: readonly AgentSkillRequirement[];
|
|
85
|
+
readonly provenance?: string;
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
export interface AgentSkillBundleUpdateInput {
|
|
89
|
+
readonly name?: string;
|
|
90
|
+
readonly description?: string;
|
|
91
|
+
readonly skillIds?: readonly string[];
|
|
92
|
+
readonly provenance?: string;
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
export interface AgentSkillSnapshot {
|
|
96
|
+
readonly path: string;
|
|
97
|
+
readonly skills: readonly AgentSkillRecord[];
|
|
98
|
+
readonly enabledSkills: readonly AgentSkillRecord[];
|
|
99
|
+
readonly bundles: readonly AgentSkillBundleRecord[];
|
|
100
|
+
readonly enabledBundles: readonly AgentSkillBundleRecord[];
|
|
101
|
+
readonly activeSkills: readonly AgentSkillRecord[];
|
|
102
|
+
}
|