@lesliechan721/aw 0.1.0-beta.63 → 0.1.0-beta.65
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/dist/authoring/assets/aw-runtime-config.mjs +3 -3
- package/dist/authoring/assets/aw-runtime-config.mjs.map +1 -1
- package/dist/authoring/scripts/add-skill.mjs +3 -17
- package/dist/authoring/scripts/add-skill.mjs.map +1 -1
- package/dist/authoring/scripts/init-plugin.mjs +1 -0
- package/dist/authoring/scripts/init-plugin.mjs.map +1 -1
- package/dist/authoring/scripts/lib/plugin-version-check.mjs +1 -1
- package/dist/authoring/scripts/lib/skill-scaffold.d.mts +2 -0
- package/dist/authoring/scripts/lib/skill-scaffold.mjs +2 -0
- package/dist/authoring/scripts/lib/skill-scaffold.mjs.map +1 -1
- package/dist/authoring/scripts/validate-plugin.mjs +95 -698
- package/dist/authoring/scripts/validate-plugin.mjs.map +1 -1
- package/dist/scripts/aw-skill-eval-materializer.d.ts +2 -0
- package/dist/scripts/aw-skill-eval-materializer.js +74 -44
- package/dist/scripts/aw-skill-eval-materializer.js.map +1 -1
- package/dist/scripts/bundle-plugins.js +10 -2
- package/dist/scripts/bundle-plugins.js.map +1 -1
- package/dist/scripts/plugin-staging.d.ts +1 -1
- package/dist/scripts/plugin-staging.js +1 -1
- package/dist/scripts/plugin-staging.js.map +1 -1
- package/dist/scripts/test-plugin-scripts.js +31 -31
- package/dist/scripts/test-plugin-scripts.js.map +1 -1
- package/dist/src/commands/aw-capabilities.d.ts +1 -1
- package/dist/src/commands/aw-capabilities.js +2 -0
- package/dist/src/commands/aw-capabilities.js.map +1 -1
- package/dist/src/commands/console.js +4 -3
- package/dist/src/commands/console.js.map +1 -1
- package/dist/src/commands/intent-command.d.ts +30 -0
- package/dist/src/commands/intent-command.js +164 -0
- package/dist/src/commands/intent-command.js.map +1 -0
- package/dist/src/commands/operation-plan.d.ts +2 -0
- package/dist/src/commands/operation-plan.js +2 -1
- package/dist/src/commands/operation-plan.js.map +1 -1
- package/dist/src/commands/options.d.ts +3 -11
- package/dist/src/commands/options.js +11 -17
- package/dist/src/commands/options.js.map +1 -1
- package/dist/src/commands/plugin-capabilities.js +27 -33
- package/dist/src/commands/plugin-capabilities.js.map +1 -1
- package/dist/src/commands/rebuild-command.d.ts +108 -6
- package/dist/src/commands/rebuild-command.js +617 -1549
- package/dist/src/commands/rebuild-command.js.map +1 -1
- package/dist/src/commands/rebuild-integration.d.ts +19 -3
- package/dist/src/commands/rebuild-integration.js +500 -459
- package/dist/src/commands/rebuild-integration.js.map +1 -1
- package/dist/src/commands/rebuild-operations.js +1 -2
- package/dist/src/commands/rebuild-operations.js.map +1 -1
- package/dist/src/commands/review-inspection.d.ts +2 -2
- package/dist/src/commands/review-inspection.js +30 -86
- package/dist/src/commands/review-inspection.js.map +1 -1
- package/dist/src/commands/review-preparation.js +16 -7
- package/dist/src/commands/review-preparation.js.map +1 -1
- package/dist/src/commands/skill-eval.d.ts +2 -0
- package/dist/src/commands/skill-eval.js +15 -9
- package/dist/src/commands/skill-eval.js.map +1 -1
- package/dist/src/commands/status-v6.d.ts +38 -5
- package/dist/src/commands/status-v6.js +269 -102
- package/dist/src/commands/status-v6.js.map +1 -1
- package/dist/src/commands/targets-command.d.ts +27 -0
- package/dist/src/commands/targets-command.js +77 -0
- package/dist/src/commands/targets-command.js.map +1 -0
- package/dist/src/commands/write-commands.js +5 -5
- package/dist/src/commands/write-commands.js.map +1 -1
- package/dist/src/eval/manifest-v1.d.ts +2 -0
- package/dist/src/eval/manifest-v1.js +7 -2
- package/dist/src/eval/manifest-v1.js.map +1 -1
- package/dist/src/generators/local-plugin.d.ts +2 -1
- package/dist/src/generators/local-plugin.js +111 -108
- package/dist/src/generators/local-plugin.js.map +1 -1
- package/dist/src/index.d.ts +10 -17
- package/dist/src/index.js +585 -1349
- package/dist/src/index.js.map +1 -1
- package/dist/src/intent/deployment-preferences.d.ts +63 -0
- package/dist/src/intent/deployment-preferences.js +170 -0
- package/dist/src/intent/deployment-preferences.js.map +1 -0
- package/dist/src/intent/diagnostics.d.ts +11 -0
- package/dist/src/intent/diagnostics.js +14 -0
- package/dist/src/intent/diagnostics.js.map +1 -0
- package/dist/src/intent/intent-codec.d.ts +19 -0
- package/dist/src/intent/intent-codec.js +117 -0
- package/dist/src/intent/intent-codec.js.map +1 -0
- package/dist/src/intent/intent-store.d.ts +43 -0
- package/dist/src/intent/intent-store.js +118 -0
- package/dist/src/intent/intent-store.js.map +1 -0
- package/dist/src/intent/scope-context.d.ts +33 -0
- package/dist/src/intent/scope-context.js +145 -0
- package/dist/src/intent/scope-context.js.map +1 -0
- package/dist/src/intent/work-context.d.ts +13 -0
- package/dist/src/intent/work-context.js +22 -0
- package/dist/src/intent/work-context.js.map +1 -0
- package/dist/src/output/command-receipt.js +16 -9
- package/dist/src/output/command-receipt.js.map +1 -1
- package/dist/src/portable/commands.d.ts +18 -8
- package/dist/src/portable/commands.js +46 -562
- package/dist/src/portable/commands.js.map +1 -1
- package/dist/src/portable/historical-materialization.d.ts +22 -0
- package/dist/src/portable/historical-materialization.js +124 -0
- package/dist/src/portable/historical-materialization.js.map +1 -0
- package/dist/src/portable/materializer.d.ts +8 -0
- package/dist/src/portable/materializer.js +75 -44
- package/dist/src/portable/materializer.js.map +1 -1
- package/dist/src/portable/recovery-layout.d.ts +17 -0
- package/dist/src/portable/recovery-layout.js +55 -0
- package/dist/src/portable/recovery-layout.js.map +1 -0
- package/dist/src/portable/recovery.d.ts +143 -0
- package/dist/src/portable/recovery.js +339 -0
- package/dist/src/portable/recovery.js.map +1 -0
- package/dist/src/portable/writer.d.ts +64 -0
- package/dist/src/portable/writer.js +316 -0
- package/dist/src/portable/writer.js.map +1 -0
- package/dist/src/recovery/coordinator.d.ts +137 -0
- package/dist/src/recovery/coordinator.js +1198 -0
- package/dist/src/recovery/coordinator.js.map +1 -0
- package/dist/src/recovery/demand.d.ts +44 -0
- package/dist/src/recovery/demand.js +178 -0
- package/dist/src/recovery/demand.js.map +1 -0
- package/dist/src/recovery/joint-coordinator.d.ts +24 -0
- package/dist/src/recovery/joint-coordinator.js +770 -0
- package/dist/src/recovery/joint-coordinator.js.map +1 -0
- package/dist/src/recovery/joint-demand.d.ts +68 -0
- package/dist/src/recovery/joint-demand.js +166 -0
- package/dist/src/recovery/joint-demand.js.map +1 -0
- package/dist/src/recovery/receipt.d.ts +81 -0
- package/dist/src/recovery/receipt.js +2 -0
- package/dist/src/recovery/receipt.js.map +1 -0
- package/dist/src/recovery/retirement.d.ts +45 -0
- package/dist/src/recovery/retirement.js +366 -0
- package/dist/src/recovery/retirement.js.map +1 -0
- package/dist/src/recovery/status.d.ts +108 -0
- package/dist/src/recovery/status.js +417 -0
- package/dist/src/recovery/status.js.map +1 -0
- package/dist/src/recovery/types.d.ts +86 -0
- package/dist/src/recovery/types.js +2 -0
- package/dist/src/recovery/types.js.map +1 -0
- package/dist/src/review/review-profile.d.ts +2 -1
- package/dist/src/review/review-profile.js +15 -15
- package/dist/src/review/review-profile.js.map +1 -1
- package/dist/src/review/review-selection.d.ts +1 -2
- package/dist/src/review/review-selection.js +40 -114
- package/dist/src/review/review-selection.js.map +1 -1
- package/dist/src/review/review-types.d.ts +4 -4
- package/dist/src/review/review-types.js.map +1 -1
- package/dist/src/review/skill-materialization.js +15 -6
- package/dist/src/review/skill-materialization.js.map +1 -1
- package/dist/src/review/source-binding.d.ts +14 -4
- package/dist/src/review/source-binding.js +62 -117
- package/dist/src/review/source-binding.js.map +1 -1
- package/dist/src/tui/agent-management.d.ts +23 -0
- package/dist/src/tui/agent-management.js +217 -0
- package/dist/src/tui/agent-management.js.map +1 -0
- package/dist/src/tui/agent-settings.d.ts +44 -0
- package/dist/src/tui/agent-settings.js +98 -0
- package/dist/src/tui/agent-settings.js.map +1 -0
- package/dist/src/tui/components.d.ts +3 -0
- package/dist/src/tui/components.js +10 -1
- package/dist/src/tui/components.js.map +1 -1
- package/dist/src/tui/config-references.d.ts +6 -3
- package/dist/src/tui/config-references.js +17 -12
- package/dist/src/tui/config-references.js.map +1 -1
- package/dist/src/tui/console-app-v4.d.ts +1 -2
- package/dist/src/tui/console-app-v4.js +1533 -1047
- package/dist/src/tui/console-app-v4.js.map +1 -1
- package/dist/src/tui/controller-runtime.d.ts +2 -1
- package/dist/src/tui/controller-runtime.js +457 -1634
- package/dist/src/tui/controller-runtime.js.map +1 -1
- package/dist/src/tui/controller.d.ts +131 -81
- package/dist/src/tui/controller.js +307 -227
- package/dist/src/tui/controller.js.map +1 -1
- package/dist/src/tui/entity-cards.d.ts +2 -2
- package/dist/src/tui/entity-cards.js +98 -20
- package/dist/src/tui/entity-cards.js.map +1 -1
- package/dist/src/tui/glossary.d.ts +2 -0
- package/dist/src/tui/glossary.js +20 -0
- package/dist/src/tui/glossary.js.map +1 -1
- package/dist/src/tui/model.d.ts +28 -10
- package/dist/src/tui/model.js +41 -41
- package/dist/src/tui/model.js.map +1 -1
- package/dist/src/tui/operation-review-planner.d.ts +2 -0
- package/dist/src/tui/operation-review-planner.js +58 -122
- package/dist/src/tui/operation-review-planner.js.map +1 -1
- package/dist/src/tui/plugin-content.js +7 -4
- package/dist/src/tui/plugin-content.js.map +1 -1
- package/dist/src/tui/plugin-detail.d.ts +22 -3
- package/dist/src/tui/plugin-detail.js +113 -26
- package/dist/src/tui/plugin-detail.js.map +1 -1
- package/dist/src/tui/reader.d.ts +1 -0
- package/dist/src/tui/reader.js +3 -1
- package/dist/src/tui/reader.js.map +1 -1
- package/dist/src/tui/router.d.ts +23 -33
- package/dist/src/tui/router.js.map +1 -1
- package/dist/src/tui/scoped-flow.d.ts +45 -0
- package/dist/src/tui/scoped-flow.js +96 -0
- package/dist/src/tui/scoped-flow.js.map +1 -0
- package/dist/src/tui/scoped-inventory.d.ts +122 -0
- package/dist/src/tui/scoped-inventory.js +225 -0
- package/dist/src/tui/scoped-inventory.js.map +1 -0
- package/dist/src/tui/screen-registry.d.ts +25 -25
- package/dist/src/tui/screen-registry.js +3 -7
- package/dist/src/tui/screen-registry.js.map +1 -1
- package/dist/src/tui/session-console-app.js +1 -1
- package/dist/src/tui/session-console-app.js.map +1 -1
- package/dist/src/tui/session-host.js +12 -2
- package/dist/src/tui/session-host.js.map +1 -1
- package/dist/src/types.d.ts +15 -12
- package/dist/src/types.js.map +1 -1
- package/dist/src/utils/agent-version.js +2 -0
- package/dist/src/utils/agent-version.js.map +1 -1
- package/dist/src/utils/artifact-plan.js +13 -6
- package/dist/src/utils/artifact-plan.js.map +1 -1
- package/dist/src/utils/artifact-renderer.d.ts +6 -3
- package/dist/src/utils/artifact-renderer.js +27 -32
- package/dist/src/utils/artifact-renderer.js.map +1 -1
- package/dist/src/utils/artifact-request.d.ts +1 -0
- package/dist/src/utils/artifact-request.js +22 -12
- package/dist/src/utils/artifact-request.js.map +1 -1
- package/dist/src/utils/artifact-sources.d.ts +2 -2
- package/dist/src/utils/bundle-layout.js +18 -16
- package/dist/src/utils/bundle-layout.js.map +1 -1
- package/dist/src/utils/catalog-digests.js +2 -0
- package/dist/src/utils/catalog-digests.js.map +1 -1
- package/dist/src/utils/catalog-runtime-projection.d.ts +4 -3
- package/dist/src/utils/catalog-runtime-projection.js.map +1 -1
- package/dist/src/utils/catalog-source-references.d.ts +5 -0
- package/dist/src/utils/catalog-source-references.js +42 -57
- package/dist/src/utils/catalog-source-references.js.map +1 -1
- package/dist/src/utils/claude-native-render-receipt.d.ts +14 -0
- package/dist/src/utils/claude-native-render-receipt.js +26 -0
- package/dist/src/utils/claude-native-render-receipt.js.map +1 -0
- package/dist/src/utils/claude-skills-root.js +14 -3
- package/dist/src/utils/claude-skills-root.js.map +1 -1
- package/dist/src/utils/codex-manager.js +6 -12
- package/dist/src/utils/codex-manager.js.map +1 -1
- package/dist/src/utils/codex-native-observation.js +29 -13
- package/dist/src/utils/codex-native-observation.js.map +1 -1
- package/dist/src/utils/codex-reconciler.d.ts +2 -5
- package/dist/src/utils/codex-reconciler.js +25 -1
- package/dist/src/utils/codex-reconciler.js.map +1 -1
- package/dist/src/utils/codex-surface-analysis.js +5 -3
- package/dist/src/utils/codex-surface-analysis.js.map +1 -1
- package/dist/src/utils/local-marketplace.d.ts +14 -2
- package/dist/src/utils/local-marketplace.js +209 -42
- package/dist/src/utils/local-marketplace.js.map +1 -1
- package/dist/src/utils/managed-command-evidence.js +1 -1
- package/dist/src/utils/managed-command-evidence.js.map +1 -1
- package/dist/src/utils/managed-command-materialization.d.ts +4 -0
- package/dist/src/utils/managed-command-materialization.js +15 -6
- package/dist/src/utils/managed-command-materialization.js.map +1 -1
- package/dist/src/utils/managed-command-store.d.ts +15 -0
- package/dist/src/utils/managed-command-store.js +73 -8
- package/dist/src/utils/managed-command-store.js.map +1 -1
- package/dist/src/utils/native-cli.d.ts +2 -0
- package/dist/src/utils/native-cli.js +22 -0
- package/dist/src/utils/native-cli.js.map +1 -1
- package/dist/src/utils/native-demand.d.ts +10 -0
- package/dist/src/utils/native-demand.js +4 -0
- package/dist/src/utils/native-demand.js.map +1 -0
- package/dist/src/utils/ownership.js +2 -0
- package/dist/src/utils/ownership.js.map +1 -1
- package/dist/src/utils/paths.js +1 -1
- package/dist/src/utils/paths.js.map +1 -1
- package/dist/src/utils/platform-support.d.ts +1 -1
- package/dist/src/utils/platform-support.js +1 -1
- package/dist/src/utils/platform-support.js.map +1 -1
- package/dist/src/utils/plugin-config-impact.d.ts +3 -0
- package/dist/src/utils/plugin-config-impact.js +115 -273
- package/dist/src/utils/plugin-config-impact.js.map +1 -1
- package/dist/src/utils/plugin-config-references.d.ts +11 -2
- package/dist/src/utils/plugin-config-references.js +85 -90
- package/dist/src/utils/plugin-config-references.js.map +1 -1
- package/dist/src/utils/plugin-config-write.d.ts +58 -1
- package/dist/src/utils/plugin-config-write.js +756 -809
- package/dist/src/utils/plugin-config-write.js.map +1 -1
- package/dist/src/utils/plugin-config.d.ts +47 -46
- package/dist/src/utils/plugin-config.js +292 -833
- package/dist/src/utils/plugin-config.js.map +1 -1
- package/dist/src/utils/plugin-scripts.d.ts +11 -6
- package/dist/src/utils/plugin-scripts.js +52 -35
- package/dist/src/utils/plugin-scripts.js.map +1 -1
- package/dist/src/utils/runtime-config.js +5 -4
- package/dist/src/utils/runtime-config.js.map +1 -1
- package/dist/src/utils/runtime-skill-closure.d.ts +2 -2
- package/dist/src/utils/runtime-skill-closure.js.map +1 -1
- package/dist/src/utils/state-paths.d.ts +8 -3
- package/dist/src/utils/state-paths.js +53 -16
- package/dist/src/utils/state-paths.js.map +1 -1
- package/dist/src/utils/windows-npm-shim.d.ts +2 -0
- package/dist/src/utils/windows-npm-shim.js +5 -7
- package/dist/src/utils/windows-npm-shim.js.map +1 -1
- package/dist/vitest.config.js +1 -0
- package/dist/vitest.config.js.map +1 -1
- package/package.json +3 -3
- package/dist/src/commands/sync-command.d.ts +0 -40
- package/dist/src/commands/sync-command.js +0 -254
- package/dist/src/commands/sync-command.js.map +0 -1
- package/dist/src/portable/skills-cli.d.ts +0 -51
- package/dist/src/portable/skills-cli.js +0 -202
- package/dist/src/portable/skills-cli.js.map +0 -1
- package/dist/src/tui/project-inventory.d.ts +0 -68
- package/dist/src/tui/project-inventory.js +0 -203
- package/dist/src/tui/project-inventory.js.map +0 -1
- package/dist/src/utils/plugin-intent-state.d.ts +0 -49
- package/dist/src/utils/plugin-intent-state.js +0 -320
- package/dist/src/utils/plugin-intent-state.js.map +0 -1
|
@@ -0,0 +1,366 @@
|
|
|
1
|
+
import { describeNativeToolClosure } from '../utils/native-tool-review.js';
|
|
2
|
+
import { executeRemovedPluginOutputCleanup, inspectRemovedPluginCleanup, } from '../commands/rebuild-command.js';
|
|
3
|
+
import { bindNativeCliRunnerSignal, getDefaultNativeCliRunner } from '../utils/native-cli.js';
|
|
4
|
+
import { inventoryCatalogSourceReferences } from '../utils/catalog-source-references.js';
|
|
5
|
+
import { withAwHomeMutationLock } from '../utils/aw-home-mutation-lock.js';
|
|
6
|
+
import { parsePluginId } from '../utils/multi-source-catalog.js';
|
|
7
|
+
import { deletePluginConfigStore } from '../utils/plugin-config.js';
|
|
8
|
+
import { observeIntent, removeRoot } from '../intent/intent-store.js';
|
|
9
|
+
import { observePreferences, writePreferences, selectAgents } from '../intent/deployment-preferences.js';
|
|
10
|
+
import { assertNeutralAncestorChain, createScopeContext } from '../intent/scope-context.js';
|
|
11
|
+
import { inspectPortableResidue } from '../portable/recovery.js';
|
|
12
|
+
function evidence(value) {
|
|
13
|
+
return `${value.state}:${value.rawDigest ?? ''}`;
|
|
14
|
+
}
|
|
15
|
+
function diagnostic(code, message = `停用受阻:${code}。`) { return { code, message }; }
|
|
16
|
+
function safeRemovedEvidence(entry) {
|
|
17
|
+
return entry && { platform: entry.platform, scope: entry.scope,
|
|
18
|
+
plannedActions: entry.plan.actions.map(({ action, kind }) => ({ action, kind })) };
|
|
19
|
+
}
|
|
20
|
+
function codeOf(error, fallback) {
|
|
21
|
+
const code = error?.code;
|
|
22
|
+
if (typeof code === 'string')
|
|
23
|
+
return code;
|
|
24
|
+
const removedCode = error instanceof Error ? /\bremovedPlugin[A-Za-z0-9-]+/u.exec(error.message)?.[0] : undefined;
|
|
25
|
+
if (removedCode)
|
|
26
|
+
return removedCode;
|
|
27
|
+
const first = error instanceof Error ? error.message.split(':')[0] : '';
|
|
28
|
+
return /^[A-Za-z][A-Za-z0-9-]*$/u.test(first) ? first : fallback;
|
|
29
|
+
}
|
|
30
|
+
function blocksStrongRetirement(code, deleteConfig) {
|
|
31
|
+
return ['pluginIntentStateInvalid', 'deploymentPreferencesInvalid', 'removedPluginActiveUnavailable',
|
|
32
|
+
'removedPluginIntentSourceMismatch',
|
|
33
|
+
'removedPluginOwnershipConflict', 'removedPluginConfigIdentityConflict',
|
|
34
|
+
'removedPluginMarketplaceIdentityConflict'].includes(code)
|
|
35
|
+
|| deleteConfig && (code === 'removedPluginConfigTargetUnsupported' || code === 'removedPluginConfigTargetUnsafe');
|
|
36
|
+
}
|
|
37
|
+
function finish(receipt, options, portable, configDeletionCompleted = false) {
|
|
38
|
+
receipt.requestedTargets = receipt.targetResults.map(({ pluginId, agent, scope, delivery }) => ({ pluginId, agent, scope, delivery }));
|
|
39
|
+
receipt.remainingTargets = receipt.targetResults.filter((target) => target.blockers.length
|
|
40
|
+
|| !['applied', 'no-op'].includes(target.execution)).map(({ pluginId, agent, scope, delivery }) => ({ pluginId, agent, scope, delivery }));
|
|
41
|
+
const commandFailures = (receipt.commandResults ?? []).filter((result) => result.state !== 'completed');
|
|
42
|
+
receipt.errors = [...receipt.blockers, ...commandFailures.flatMap((result) => result.errors.length ? result.errors.map((error) => ({ ...error,
|
|
43
|
+
pluginId: `${result.producer.sourceId}/${result.producer.pluginName}` }))
|
|
44
|
+
: [diagnostic('managedCommandRecoveryFailed')])];
|
|
45
|
+
receipt.ok = !receipt.blockers.length && !receipt.remainingTargets.length && !commandFailures.length;
|
|
46
|
+
const agents = [...new Set(receipt.requestedTargets.map((target) => target.agent))];
|
|
47
|
+
const retry = `aw plugin intent retire ${options.selector} --scope ${options.scope}`
|
|
48
|
+
+ agents.map((agent) => ` --target ${agent}`).join('')
|
|
49
|
+
+ (options.deleteConfig && !configDeletionCompleted ? ' --delete-config' : '');
|
|
50
|
+
receipt.recoveryActions = [...new Set([
|
|
51
|
+
...(receipt.commandResults ?? []).flatMap((result) => result.recoveryActions),
|
|
52
|
+
...(!receipt.ok ? [...portable.targets.map((entry) => `请检查并备份 Portable 目录 ${entry.physicalPath};核验共享读取和归属后自行移开,AW 不自动删除。`),
|
|
53
|
+
retry] : []),
|
|
54
|
+
])];
|
|
55
|
+
return receipt;
|
|
56
|
+
}
|
|
57
|
+
export async function prepareRetire(options, runtime = {}) {
|
|
58
|
+
options.signal?.throwIfAborted();
|
|
59
|
+
const context = await createScopeContext({ scope: options.scope, cwd: options.cwd, env: options.env });
|
|
60
|
+
try {
|
|
61
|
+
options.signal?.throwIfAborted();
|
|
62
|
+
const parsed = parsePluginId(options.selector);
|
|
63
|
+
if (!parsed.sourceId || `${parsed.sourceId}/${parsed.pluginName}` !== options.selector)
|
|
64
|
+
throw new Error('invalidArguments');
|
|
65
|
+
const [intent, preferences] = await Promise.all([
|
|
66
|
+
observeIntent({ ...options, cwd: context.executionCwd, env: context.env }),
|
|
67
|
+
observePreferences({ ...options, cwd: context.executionCwd, env: context.env }),
|
|
68
|
+
]);
|
|
69
|
+
const blockers = [];
|
|
70
|
+
if (intent.state !== 'valid' && intent.state !== 'absent')
|
|
71
|
+
blockers.push(diagnostic('pluginIntentStateInvalid'));
|
|
72
|
+
if (preferences.state === 'invalid' || preferences.state === 'unreadable') {
|
|
73
|
+
blockers.push(diagnostic('deploymentPreferencesInvalid'));
|
|
74
|
+
}
|
|
75
|
+
const inventory = await (runtime.inventoryCatalogSourceReferences ?? inventoryCatalogSourceReferences)({
|
|
76
|
+
cwd: context.executionCwd, env: context.env, scope: options.scope, includeProjectAgentSkills: true,
|
|
77
|
+
});
|
|
78
|
+
options.signal?.throwIfAborted();
|
|
79
|
+
const removed = await inspectRemovedPluginCleanup({ pluginId: options.selector, scope: options.scope,
|
|
80
|
+
inventory, cwd: context.executionCwd, env: context.env,
|
|
81
|
+
nativeCliRunner: bindNativeCliRunnerSignal(runtime.nativeCliRunner ?? getDefaultNativeCliRunner(), options.signal),
|
|
82
|
+
codexManager: runtime.codexManager });
|
|
83
|
+
options.signal?.throwIfAborted();
|
|
84
|
+
if (!removed)
|
|
85
|
+
blockers.push(diagnostic('removedPluginActiveUnavailable', '需要健康的本地 Active 和插件缺席证据,才能停用已移除插件。'));
|
|
86
|
+
else
|
|
87
|
+
blockers.push(...removed.blockers.map((message) => diagnostic(codeOf(new Error(message), 'removedPluginBlocked'))));
|
|
88
|
+
if (removed && intent.state === 'valid'
|
|
89
|
+
&& intent.value.roots.some((root) => root.pluginId === options.selector)
|
|
90
|
+
&& intent.value.sources[parsed.sourceId]?.logicalIdentity !== removed.logicalIdentity) {
|
|
91
|
+
blockers.push(diagnostic('removedPluginIntentSourceMismatch'));
|
|
92
|
+
}
|
|
93
|
+
const requestedAgents = options.targets === undefined ? undefined : selectAgents({ preferences, targets: options.targets }).agents;
|
|
94
|
+
const portable = await inspectPortableResidue({ scope: options.scope, context, selector: options.selector,
|
|
95
|
+
env: context.env, agents: requestedAgents?.filter((agent) => agent !== 'codex' && agent !== 'claude'), signal: options.signal });
|
|
96
|
+
options.signal?.throwIfAborted();
|
|
97
|
+
const agents = requestedAgents ?? [...new Set([
|
|
98
|
+
...(removed?.evidence.filter((entry) => entry.plan.actions.length).map((entry) => entry.platform === 'claude'
|
|
99
|
+
? 'claude' : 'codex') ?? []),
|
|
100
|
+
...(removed && (removed.nativeState === 'installed' || removed.nativeState === 'unknown'
|
|
101
|
+
|| removed.projectionPresent || removed.activationScopes.length > 0) ? ['codex'] : []),
|
|
102
|
+
...portable.targets.map((entry) => entry.agent),
|
|
103
|
+
...(portable.unknownAgents ?? []),
|
|
104
|
+
])];
|
|
105
|
+
const targetResults = agents.map((agent) => {
|
|
106
|
+
const delivery = agent !== 'codex' && agent !== 'claude' ? { kind: 'agent-skills', provider: 'aw', agentId: agent }
|
|
107
|
+
: { kind: 'native', platform: agent === 'claude' ? 'claude' : 'codex' };
|
|
108
|
+
const portableUnknown = portable.unknownAgents?.some((item) => item === agent) ?? portable.state === 'unknown';
|
|
109
|
+
const hasPortable = portableUnknown || portable.targets.some((target) => target.agent === agent);
|
|
110
|
+
const hasNative = delivery.kind === 'native' && (removed?.evidence.some((entry) => entry.platform === (delivery.kind === 'native' ? delivery.platform : undefined))
|
|
111
|
+
|| removed?.nativeState === 'installed' || removed?.nativeState === 'unknown'
|
|
112
|
+
|| removed?.projectionPresent || (removed?.activationScopes.length ?? 0) > 0);
|
|
113
|
+
return { pluginId: options.selector, agent, scope: options.scope, delivery,
|
|
114
|
+
execution: 'not-run', observation: 'unknown', content: hasPortable || hasNative ? 'unknown' : 'absent',
|
|
115
|
+
blockers: hasPortable ? [diagnostic(portableUnknown
|
|
116
|
+
? 'portableObservationFailed' : 'backend-action-unsupported')] : [], requiredBy: [options.selector],
|
|
117
|
+
relation: 'residue', backend: { native: safeRemovedEvidence(removed?.evidence.find((entry) => entry.platform === (delivery.kind === 'native' ? delivery.platform : undefined))),
|
|
118
|
+
portable: portable.targets.filter((entry) => entry.agent === agent) } };
|
|
119
|
+
});
|
|
120
|
+
const roots = intent.state === 'valid' ? intent.value.roots.map((root) => root.pluginId)
|
|
121
|
+
: intent.state === 'absent' ? [] : null;
|
|
122
|
+
const selection = preferences.state === 'valid' || preferences.state === 'absent'
|
|
123
|
+
? selectAgents({ preferences, targets: options.targets })
|
|
124
|
+
: { agents: [], origin: 'none', preferences: preferences.state };
|
|
125
|
+
const receipt = { schemaVersion: 1, kind: 'aw-recovery', scope: options.scope,
|
|
126
|
+
command: 'intent:retire', ok: false, intent: { state: intent.state,
|
|
127
|
+
...('digest' in intent ? { digest: intent.digest } : {}), roots }, requestedRoots: [options.selector],
|
|
128
|
+
requestedTargets: [], selection, blockers, errors: [], targetResults, remainingTargets: [], recoveryActions: [],
|
|
129
|
+
declarationChanged: false, preferencesChanged: false, configChanged: false, outputsMayHaveChanged: false };
|
|
130
|
+
const plannedImpact = {
|
|
131
|
+
declaration: roots?.includes(options.selector) === true,
|
|
132
|
+
preferences: preferences.state === 'valid' && preferences.value.exclusions.some((entry) => entry.plugin === options.selector),
|
|
133
|
+
config: options.deleteConfig === true && removed?.configTargets.some((entry) => entry.scope === options.scope && entry.kind !== 'absent') === true,
|
|
134
|
+
outputs: removed?.evidence.some((entry) => entry.plan.actions.length > 0
|
|
135
|
+
&& agents.includes(entry.platform === 'claude' ? 'claude' : 'codex')) === true,
|
|
136
|
+
};
|
|
137
|
+
const changes = [
|
|
138
|
+
...(plannedImpact.declaration ? [`删除 ${options.scope} 声明 ${options.selector}。`] : []),
|
|
139
|
+
...(plannedImpact.preferences ? [`删除此插件的本机平台排除。`] : []),
|
|
140
|
+
...(plannedImpact.config ? [`删除 ${options.scope} 已保存配置。`] : []),
|
|
141
|
+
...agents.filter((agent) => agent !== 'cursor').map((agent) => `检查并清理 ${options.scope}/${agent} 已验证原生输出。`),
|
|
142
|
+
];
|
|
143
|
+
const preview = removed ? await executeRemovedPluginOutputCleanup({ target: removed,
|
|
144
|
+
selectedTargets: targetResults.flatMap((target) => target.delivery?.kind === 'native'
|
|
145
|
+
? [{ pluginId: target.pluginId, platform: target.delivery.platform, scope: target.scope }] : []),
|
|
146
|
+
context, runtime: { ...runtime, previewOperationPlan: true,
|
|
147
|
+
nativeCliRunner: bindNativeCliRunnerSignal(runtime.nativeCliRunner ?? getDefaultNativeCliRunner(), options.signal) },
|
|
148
|
+
}) : undefined;
|
|
149
|
+
options.signal?.throwIfAborted();
|
|
150
|
+
const nativeToolChanges = preview?.operationPlan?.actions.flatMap((action) => action.nativeToolChanges ?? []) ?? [];
|
|
151
|
+
if (nativeToolChanges.length)
|
|
152
|
+
receipt.nativeToolChanges = nativeToolChanges;
|
|
153
|
+
for (const action of preview?.operationPlan?.actions ?? []) {
|
|
154
|
+
for (const change of action.nativeToolChanges ?? []) {
|
|
155
|
+
if (change.before)
|
|
156
|
+
changes.push(...describeNativeToolClosure(change.before).map((description) => `撤销原生工具 · ${change.producer.sourceId}/${change.producer.pluginName} · ${change.producer.key} · ${description}`));
|
|
157
|
+
}
|
|
158
|
+
if (action.kind !== 'retainManagedCommandPackage')
|
|
159
|
+
continue;
|
|
160
|
+
changes.push(`保留命令包 ${action.producer.key}:${action.producer.sourceId}/${action.producer.pluginName}`
|
|
161
|
+
+ ` · ${action.producer.scope === 'user' ? '所有项目共用' : '当前项目内共用'}`
|
|
162
|
+
+ ` · ${action.commandIds.length} 个命令 · ${action.availability} · ${action.recoveryAction}`);
|
|
163
|
+
}
|
|
164
|
+
const { signal: _signal, ...executionOptions } = options;
|
|
165
|
+
return { options: executionOptions, context, evidence: removed, portable, receipt: finish(receipt, options, portable),
|
|
166
|
+
intentEvidence: evidence(intent), preferenceEvidence: evidence(preferences), plannedImpact, changes,
|
|
167
|
+
...(preview?.operationPlan ? { operationPlan: preview.operationPlan } : {}),
|
|
168
|
+
warnings: portable.state === 'present' ? ['Portable 输出需人工核验,AW 不自动删除。'] : [], runtime };
|
|
169
|
+
}
|
|
170
|
+
catch (error) {
|
|
171
|
+
await context.dispose();
|
|
172
|
+
throw error;
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
export async function executeRetire(plan, execution = {}) {
|
|
176
|
+
const receipt = structuredClone(plan.receipt);
|
|
177
|
+
const runtime = { ...plan.runtime, ...execution.runtime };
|
|
178
|
+
let configDeletionCompleted = false;
|
|
179
|
+
try {
|
|
180
|
+
for (const target of receipt.targetResults) {
|
|
181
|
+
if (target.delivery?.kind === 'agent-skills' && plan.portable.state === 'absent'
|
|
182
|
+
&& target.content === 'absent' && target.blockers.length === 0) {
|
|
183
|
+
target.execution = 'no-op';
|
|
184
|
+
target.observation = 'missing';
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
if (plan.changes.length === 0 && plan.portable.state === 'absent'
|
|
188
|
+
&& plan.receipt.blockers.length === 0)
|
|
189
|
+
return finish(receipt, plan.options, plan.portable);
|
|
190
|
+
if (execution.yes !== true && plan.options.yes !== true) {
|
|
191
|
+
receipt.blockers.push(diagnostic('operationReviewRequired'));
|
|
192
|
+
return finish(receipt, plan.options, plan.portable);
|
|
193
|
+
}
|
|
194
|
+
const freshContext = await createScopeContext({ scope: plan.options.scope,
|
|
195
|
+
cwd: plan.context.callerCwd, env: plan.context.env });
|
|
196
|
+
const environmentStable = freshContext.awHome === plan.context.awHome
|
|
197
|
+
&& freshContext.generationRoot === plan.context.generationRoot
|
|
198
|
+
&& freshContext.projectKey === plan.context.projectKey
|
|
199
|
+
&& JSON.stringify(freshContext.targetHomes) === JSON.stringify(plan.context.targetHomes);
|
|
200
|
+
await freshContext.dispose();
|
|
201
|
+
const executionCwdStable = plan.options.scope !== 'user'
|
|
202
|
+
|| await assertNeutralAncestorChain(plan.context.executionCwd)
|
|
203
|
+
.then((value) => value === plan.context.executionCwd, () => false);
|
|
204
|
+
if (!environmentStable || !executionCwdStable) {
|
|
205
|
+
receipt.blockers.push(diagnostic('operationReviewStale'));
|
|
206
|
+
return finish(receipt, plan.options, plan.portable);
|
|
207
|
+
}
|
|
208
|
+
return await withAwHomeMutationLock({ env: plan.context.env, token: runtime.awHomeMutationToken,
|
|
209
|
+
action: async (token) => {
|
|
210
|
+
if (receipt.blockers.some((entry) => blocksStrongRetirement(entry.code, plan.options.deleteConfig === true))) {
|
|
211
|
+
return finish(receipt, plan.options, plan.portable);
|
|
212
|
+
}
|
|
213
|
+
const location = { scope: plan.options.scope, cwd: plan.context.executionCwd, env: plan.context.env, token };
|
|
214
|
+
const [intent, preferences] = await Promise.all([observeIntent(location), observePreferences(location)]);
|
|
215
|
+
if (evidence(intent) !== plan.intentEvidence || evidence(preferences) !== plan.preferenceEvidence) {
|
|
216
|
+
receipt.blockers.push(diagnostic('operationReviewStale'));
|
|
217
|
+
return finish(receipt, plan.options, plan.portable);
|
|
218
|
+
}
|
|
219
|
+
const inventory = await (runtime.inventoryCatalogSourceReferences ?? inventoryCatalogSourceReferences)({
|
|
220
|
+
cwd: plan.context.executionCwd, env: plan.context.env, scope: plan.options.scope,
|
|
221
|
+
includeProjectAgentSkills: true,
|
|
222
|
+
});
|
|
223
|
+
const current = await inspectRemovedPluginCleanup({ pluginId: plan.options.selector, scope: plan.options.scope,
|
|
224
|
+
inventory, cwd: plan.context.executionCwd, env: plan.context.env,
|
|
225
|
+
nativeCliRunner: runtime.nativeCliRunner ?? getDefaultNativeCliRunner(), codexManager: runtime.codexManager });
|
|
226
|
+
if (!current || !plan.evidence || current.sourceIdentity !== plan.evidence.sourceIdentity
|
|
227
|
+
|| current.logicalIdentity !== plan.evidence.logicalIdentity
|
|
228
|
+
|| current.snapshotDigest !== plan.evidence.snapshotDigest
|
|
229
|
+
|| current.projectionFingerprint !== plan.evidence.projectionFingerprint
|
|
230
|
+
|| current.marketplaceEvidenceFingerprint !== plan.evidence.marketplaceEvidenceFingerprint
|
|
231
|
+
|| current.nativeObservationFingerprint !== plan.evidence.nativeObservationFingerprint
|
|
232
|
+
|| JSON.stringify(current.configTargets) !== JSON.stringify(plan.evidence.configTargets)
|
|
233
|
+
|| JSON.stringify(current.evidence) !== JSON.stringify(plan.evidence.evidence)) {
|
|
234
|
+
receipt.blockers.push(diagnostic('operationReviewStale'));
|
|
235
|
+
return finish(receipt, plan.options, plan.portable);
|
|
236
|
+
}
|
|
237
|
+
const portable = await inspectPortableResidue({ scope: plan.options.scope, context: plan.context,
|
|
238
|
+
selector: plan.options.selector, env: plan.context.env, agents: plan.options.targets === undefined
|
|
239
|
+
? undefined : plan.receipt.selection.agents.filter((agent) => agent !== 'codex' && agent !== 'claude') }).catch(() => undefined);
|
|
240
|
+
if (!portable || JSON.stringify(portable) !== JSON.stringify(plan.portable)) {
|
|
241
|
+
receipt.blockers.push(diagnostic('operationReviewStale'));
|
|
242
|
+
return finish(receipt, plan.options, plan.portable);
|
|
243
|
+
}
|
|
244
|
+
if (plan.operationPlan) {
|
|
245
|
+
await executeRemovedPluginOutputCleanup({ target: current,
|
|
246
|
+
selectedTargets: receipt.targetResults.flatMap((target) => target.delivery?.kind === 'native'
|
|
247
|
+
? [{ pluginId: target.pluginId, platform: target.delivery.platform, scope: target.scope }] : []),
|
|
248
|
+
context: plan.context, runtime: { ...runtime, awHomeMutationToken: token,
|
|
249
|
+
previewOperationPlan: true, expectedPlanFingerprint: plan.operationPlan.planFingerprint } });
|
|
250
|
+
}
|
|
251
|
+
const refreshIntent = async () => {
|
|
252
|
+
const refreshed = await observeIntent(location);
|
|
253
|
+
receipt.intent = { state: refreshed.state, ...('digest' in refreshed ? { digest: refreshed.digest } : {}),
|
|
254
|
+
roots: refreshed.state === 'valid' ? refreshed.value.roots.map((root) => root.pluginId)
|
|
255
|
+
: refreshed.state === 'absent' ? [] : null };
|
|
256
|
+
};
|
|
257
|
+
try {
|
|
258
|
+
if (intent.state === 'valid' && intent.value.roots.some((root) => root.pluginId === plan.options.selector)) {
|
|
259
|
+
const result = await removeRoot(location, plan.options.selector);
|
|
260
|
+
receipt.declarationChanged = result.changed;
|
|
261
|
+
}
|
|
262
|
+
if (preferences.state === 'valid') {
|
|
263
|
+
const next = preferences.value.exclusions.filter((entry) => entry.plugin !== plan.options.selector);
|
|
264
|
+
if (next.length !== preferences.value.exclusions.length) {
|
|
265
|
+
const result = await writePreferences(location, { ...preferences.value, exclusions: next });
|
|
266
|
+
receipt.preferencesChanged = result.changed;
|
|
267
|
+
}
|
|
268
|
+
}
|
|
269
|
+
if (plan.options.deleteConfig && plan.evidence) {
|
|
270
|
+
const result = await deletePluginConfigStore({ sourceId: plan.evidence.sourceId,
|
|
271
|
+
sourceIdentity: plan.evidence.sourceIdentity, pluginName: plan.evidence.pluginName,
|
|
272
|
+
scope: plan.options.scope, cwd: plan.context.executionCwd, env: plan.context.env });
|
|
273
|
+
receipt.configChanged = result.deleted;
|
|
274
|
+
configDeletionCompleted = true;
|
|
275
|
+
}
|
|
276
|
+
}
|
|
277
|
+
catch (error) {
|
|
278
|
+
receipt.blockers.push(diagnostic(codeOf(error, 'retireConfigurationFailed')));
|
|
279
|
+
await refreshIntent();
|
|
280
|
+
return finish(receipt, plan.options, plan.portable);
|
|
281
|
+
}
|
|
282
|
+
await refreshIntent();
|
|
283
|
+
if (plan.evidence) {
|
|
284
|
+
const selectedTargets = receipt.targetResults.flatMap((target) => target.delivery?.kind === 'native'
|
|
285
|
+
? [{ pluginId: target.pluginId, platform: target.delivery.platform, scope: target.scope }] : []);
|
|
286
|
+
if (selectedTargets.length || plan.operationPlan?.actions.some((action) => action.kind === 'retainManagedCommandPackage')) {
|
|
287
|
+
try {
|
|
288
|
+
const result = await executeRemovedPluginOutputCleanup({ target: plan.evidence, selectedTargets,
|
|
289
|
+
context: plan.context, runtime: { ...runtime, awHomeMutationToken: token,
|
|
290
|
+
expectedPlanFingerprint: plan.operationPlan?.planFingerprint } });
|
|
291
|
+
if (result.commandResults?.length)
|
|
292
|
+
receipt.commandResults = result.commandResults;
|
|
293
|
+
receipt.outputsMayHaveChanged = result.rebuildResults.some((entry) => entry.actions.length > 0);
|
|
294
|
+
let partialAttributed = result.commandResults?.some((entry) => entry.state !== 'completed') === true;
|
|
295
|
+
for (const target of receipt.targetResults.filter((entry) => entry.delivery?.kind === 'native')) {
|
|
296
|
+
const platform = target.delivery?.kind === 'native' ? target.delivery.platform : undefined;
|
|
297
|
+
const backendTargets = result.targetResults.filter((entry) => entry.target.pluginId === target.pluginId
|
|
298
|
+
&& entry.target.scope === target.scope && entry.target.platform === platform);
|
|
299
|
+
const rebuildTargets = result.rebuildResults.filter((entry) => entry.target.pluginId === target.pluginId
|
|
300
|
+
&& entry.target.scope === target.scope && entry.target.platform === platform);
|
|
301
|
+
const failed = backendTargets.some((entry) => entry.state === 'failed');
|
|
302
|
+
const commandFailures = (result.commandResults ?? []).filter((entry) => entry.state !== 'completed'
|
|
303
|
+
&& entry.producer.sourceId === plan.evidence.sourceId
|
|
304
|
+
&& entry.producer.sourceIdentity === plan.evidence.sourceIdentity
|
|
305
|
+
&& entry.producer.pluginName === plan.evidence.pluginName
|
|
306
|
+
&& entry.producer.platform === platform);
|
|
307
|
+
const sharedNativePreserved = platform === 'codex'
|
|
308
|
+
&& result.warnings.some((warning) => warning.startsWith('sharedNativePreserved:'));
|
|
309
|
+
const preserved = backendTargets.some((entry) => entry.action === 'keep')
|
|
310
|
+
|| rebuildTargets.some((entry) => entry.residual.length > 0 || entry.quarantined.length > 0)
|
|
311
|
+
|| sharedNativePreserved;
|
|
312
|
+
target.execution = failed ? 'failed' : commandFailures.length
|
|
313
|
+
? backendTargets.length ? 'partial' : 'failed' : backendTargets.length ? 'applied' : 'no-op';
|
|
314
|
+
target.observation = failed || commandFailures.length ? 'unknown'
|
|
315
|
+
: target.content === 'absent' ? 'missing' : 'unknown';
|
|
316
|
+
target.backend = backendTargets.map((entry) => ({
|
|
317
|
+
target: { pluginId: entry.target.pluginId, platform: entry.target.platform,
|
|
318
|
+
scope: entry.target.scope }, action: entry.action, state: entry.state,
|
|
319
|
+
...(entry.errorCode ? { errorCode: entry.errorCode } : {}),
|
|
320
|
+
}));
|
|
321
|
+
if (failed)
|
|
322
|
+
target.blockers.push(diagnostic('nativeRetireFailed'));
|
|
323
|
+
else if (preserved)
|
|
324
|
+
target.blockers.push(diagnostic('sharedNativePreserved'));
|
|
325
|
+
for (const producer of commandFailures) {
|
|
326
|
+
target.blockers.push(...(producer.errors.length ? producer.errors.map((error) => diagnostic(error.code, error.message)) : [diagnostic('managedCommandRecoveryFailed')]));
|
|
327
|
+
}
|
|
328
|
+
partialAttributed ||= failed || preserved || commandFailures.length > 0;
|
|
329
|
+
}
|
|
330
|
+
if (result.overallState === 'partial' && !partialAttributed) {
|
|
331
|
+
receipt.blockers.push(diagnostic('nativeRetirePartial'));
|
|
332
|
+
}
|
|
333
|
+
}
|
|
334
|
+
catch (error) {
|
|
335
|
+
for (const target of receipt.targetResults.filter((entry) => entry.delivery?.kind === 'native')) {
|
|
336
|
+
target.execution = 'failed';
|
|
337
|
+
target.blockers.push(diagnostic(codeOf(error, 'nativeRetireFailed')));
|
|
338
|
+
}
|
|
339
|
+
}
|
|
340
|
+
}
|
|
341
|
+
}
|
|
342
|
+
if (portable.state === 'unknown' && !receipt.targetResults.some((target) => target.blockers.some((entry) => entry.code === 'portableObservationFailed'))) {
|
|
343
|
+
receipt.blockers.push(diagnostic('portableObservationFailed'));
|
|
344
|
+
}
|
|
345
|
+
return finish(receipt, plan.options, plan.portable, configDeletionCompleted);
|
|
346
|
+
} });
|
|
347
|
+
}
|
|
348
|
+
finally {
|
|
349
|
+
await plan.context.dispose();
|
|
350
|
+
}
|
|
351
|
+
}
|
|
352
|
+
export async function runRetire(options, runtime = {}) {
|
|
353
|
+
const plan = await prepareRetire(options, runtime);
|
|
354
|
+
if (options.interactive && options.yes !== true && options.prompt?.confirm && plan.changes.length) {
|
|
355
|
+
const response = await options.prompt.confirm({ defaultValue: false,
|
|
356
|
+
message: [...plan.changes, ...plan.warnings, '是否执行以上停用步骤?'].join('\n') });
|
|
357
|
+
if (response.cancelled || response.value !== true) {
|
|
358
|
+
plan.receipt.blockers.push(diagnostic('operationCancelled'));
|
|
359
|
+
await plan.context.dispose();
|
|
360
|
+
return finish(plan.receipt, plan.options, plan.portable);
|
|
361
|
+
}
|
|
362
|
+
return executeRetire(plan, { yes: true });
|
|
363
|
+
}
|
|
364
|
+
return executeRetire(plan);
|
|
365
|
+
}
|
|
366
|
+
//# sourceMappingURL=retirement.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"retirement.js","sourceRoot":"","sources":["../../../src/recovery/retirement.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
import type { PlatformName, Scope } from '../types.js';
|
|
2
|
+
import { type AgentId } from '../intent/deployment-preferences.js';
|
|
3
|
+
import { type ScopeContext } from '../intent/scope-context.js';
|
|
4
|
+
import { statusCommandV8 } from '../commands/status-v6.js';
|
|
5
|
+
import { type DemandSnapshot } from './demand.js';
|
|
6
|
+
import type { RecoveryDiagnostic, RecoveryReceipt, RecoveryTarget } from './receipt.js';
|
|
7
|
+
import type { CatalogOperationContext } from '../utils/catalog-operation-context.js';
|
|
8
|
+
import type { NativeCliRunner } from '../utils/native-cli.js';
|
|
9
|
+
import type { CodexNativeObservationSession } from '../utils/codex-native-observation.js';
|
|
10
|
+
export interface NativeObservation {
|
|
11
|
+
pluginId: string;
|
|
12
|
+
platform: PlatformName;
|
|
13
|
+
content: NonNullable<RecoveryTarget['content']>;
|
|
14
|
+
blockers: RecoveryDiagnostic[];
|
|
15
|
+
assumedActivation?: boolean;
|
|
16
|
+
backend?: unknown;
|
|
17
|
+
}
|
|
18
|
+
export interface RecoveryStatus {
|
|
19
|
+
schemaVersion: 1;
|
|
20
|
+
kind: 'aw-recovery-status';
|
|
21
|
+
scope: Scope;
|
|
22
|
+
ok: boolean;
|
|
23
|
+
intent: {
|
|
24
|
+
state: DemandSnapshot['intent']['state'];
|
|
25
|
+
digest?: string;
|
|
26
|
+
};
|
|
27
|
+
selection: {
|
|
28
|
+
agents: AgentId[];
|
|
29
|
+
origin: 'argument' | 'preference' | 'none';
|
|
30
|
+
preferences: string;
|
|
31
|
+
};
|
|
32
|
+
inventory: Array<{
|
|
33
|
+
pluginId: string;
|
|
34
|
+
source: string;
|
|
35
|
+
sourceState: string;
|
|
36
|
+
blockers: RecoveryDiagnostic[];
|
|
37
|
+
targetResults: RecoveryTarget[];
|
|
38
|
+
}> | null;
|
|
39
|
+
observedTargets?: RecoveryTarget[];
|
|
40
|
+
existingTargets?: Array<{
|
|
41
|
+
pluginId: string;
|
|
42
|
+
agent: AgentId;
|
|
43
|
+
scope: Scope;
|
|
44
|
+
}>;
|
|
45
|
+
ownedTargets?: Array<{
|
|
46
|
+
pluginId: string;
|
|
47
|
+
agent: AgentId;
|
|
48
|
+
scope: Scope;
|
|
49
|
+
}>;
|
|
50
|
+
extraObserved: Array<Omit<Pick<RecoveryTarget, 'pluginId' | 'agent' | 'scope' | 'delivery' | 'observation' | 'content' | 'backend'>, 'agent'> & {
|
|
51
|
+
agent: AgentId | null;
|
|
52
|
+
}>;
|
|
53
|
+
coverage: {
|
|
54
|
+
native: boolean;
|
|
55
|
+
portable: boolean;
|
|
56
|
+
scopes?: Scope[];
|
|
57
|
+
projectRoot?: string;
|
|
58
|
+
};
|
|
59
|
+
inSync: boolean | null;
|
|
60
|
+
counts: {
|
|
61
|
+
blocked: number;
|
|
62
|
+
unconfirmed: number;
|
|
63
|
+
pending: number;
|
|
64
|
+
ready: number;
|
|
65
|
+
};
|
|
66
|
+
allSatisfied: boolean | null;
|
|
67
|
+
errors: RecoveryDiagnostic[];
|
|
68
|
+
}
|
|
69
|
+
export interface ReadRecoveryStatusOptions {
|
|
70
|
+
nativeCliRunner?: NativeCliRunner;
|
|
71
|
+
codexObservationSession?: CodexNativeObservationSession;
|
|
72
|
+
catalogOperationContext?: CatalogOperationContext;
|
|
73
|
+
scope?: Scope;
|
|
74
|
+
context?: Scope;
|
|
75
|
+
demandOverride?: DemandSnapshot;
|
|
76
|
+
cwd: string;
|
|
77
|
+
env?: NodeJS.ProcessEnv;
|
|
78
|
+
cliVersion?: string;
|
|
79
|
+
signal?: AbortSignal;
|
|
80
|
+
targets?: readonly string[];
|
|
81
|
+
nativeObservations?: NativeObservation[];
|
|
82
|
+
}
|
|
83
|
+
export declare function statusFromObservations(options: Omit<ReadRecoveryStatusOptions, 'context'> & {
|
|
84
|
+
scope: Scope;
|
|
85
|
+
demand: DemandSnapshot;
|
|
86
|
+
context: ScopeContext;
|
|
87
|
+
nativeObservations: NativeObservation[];
|
|
88
|
+
extraObserved?: RecoveryStatus['extraObserved'];
|
|
89
|
+
nativeReadErrors?: RecoveryDiagnostic[];
|
|
90
|
+
portableCoverage?: boolean;
|
|
91
|
+
portableInstalled?: Array<{
|
|
92
|
+
pluginId: string;
|
|
93
|
+
agent: AgentId;
|
|
94
|
+
}>;
|
|
95
|
+
}): Promise<RecoveryStatus>;
|
|
96
|
+
export declare function readScopedRecoveryStatus(options: ReadRecoveryStatusOptions & {
|
|
97
|
+
scope: Scope;
|
|
98
|
+
onDemand?: (demand: DemandSnapshot) => string[] | undefined;
|
|
99
|
+
onNativeStatus?: (native: Awaited<ReturnType<typeof statusCommandV8>>, demand: DemandSnapshot) => void | Promise<void>;
|
|
100
|
+
}): Promise<RecoveryStatus>;
|
|
101
|
+
export declare function checkRecovery(selectors: readonly string[], options: ReadRecoveryStatusOptions & {
|
|
102
|
+
all?: boolean;
|
|
103
|
+
}): Promise<RecoveryReceipt>;
|
|
104
|
+
export declare function aggregateConvergence(allSatisfied: boolean | null, residue: 'present' | 'absent' | 'unknown'): boolean | null;
|
|
105
|
+
export declare function readRecoveryStatus(options: ReadRecoveryStatusOptions & {
|
|
106
|
+
onDemand?: (demand: DemandSnapshot) => string[] | undefined;
|
|
107
|
+
onNativeStatus?: (native: Awaited<ReturnType<typeof statusCommandV8>>, demand: DemandSnapshot) => void | Promise<void>;
|
|
108
|
+
}): Promise<RecoveryStatus>;
|