@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.
Files changed (302) hide show
  1. package/dist/authoring/assets/aw-runtime-config.mjs +3 -3
  2. package/dist/authoring/assets/aw-runtime-config.mjs.map +1 -1
  3. package/dist/authoring/scripts/add-skill.mjs +3 -17
  4. package/dist/authoring/scripts/add-skill.mjs.map +1 -1
  5. package/dist/authoring/scripts/init-plugin.mjs +1 -0
  6. package/dist/authoring/scripts/init-plugin.mjs.map +1 -1
  7. package/dist/authoring/scripts/lib/plugin-version-check.mjs +1 -1
  8. package/dist/authoring/scripts/lib/skill-scaffold.d.mts +2 -0
  9. package/dist/authoring/scripts/lib/skill-scaffold.mjs +2 -0
  10. package/dist/authoring/scripts/lib/skill-scaffold.mjs.map +1 -1
  11. package/dist/authoring/scripts/validate-plugin.mjs +95 -698
  12. package/dist/authoring/scripts/validate-plugin.mjs.map +1 -1
  13. package/dist/scripts/aw-skill-eval-materializer.d.ts +2 -0
  14. package/dist/scripts/aw-skill-eval-materializer.js +74 -44
  15. package/dist/scripts/aw-skill-eval-materializer.js.map +1 -1
  16. package/dist/scripts/bundle-plugins.js +10 -2
  17. package/dist/scripts/bundle-plugins.js.map +1 -1
  18. package/dist/scripts/plugin-staging.d.ts +1 -1
  19. package/dist/scripts/plugin-staging.js +1 -1
  20. package/dist/scripts/plugin-staging.js.map +1 -1
  21. package/dist/scripts/test-plugin-scripts.js +31 -31
  22. package/dist/scripts/test-plugin-scripts.js.map +1 -1
  23. package/dist/src/commands/aw-capabilities.d.ts +1 -1
  24. package/dist/src/commands/aw-capabilities.js +2 -0
  25. package/dist/src/commands/aw-capabilities.js.map +1 -1
  26. package/dist/src/commands/console.js +4 -3
  27. package/dist/src/commands/console.js.map +1 -1
  28. package/dist/src/commands/intent-command.d.ts +30 -0
  29. package/dist/src/commands/intent-command.js +164 -0
  30. package/dist/src/commands/intent-command.js.map +1 -0
  31. package/dist/src/commands/operation-plan.d.ts +2 -0
  32. package/dist/src/commands/operation-plan.js +2 -1
  33. package/dist/src/commands/operation-plan.js.map +1 -1
  34. package/dist/src/commands/options.d.ts +3 -11
  35. package/dist/src/commands/options.js +11 -17
  36. package/dist/src/commands/options.js.map +1 -1
  37. package/dist/src/commands/plugin-capabilities.js +27 -33
  38. package/dist/src/commands/plugin-capabilities.js.map +1 -1
  39. package/dist/src/commands/rebuild-command.d.ts +108 -6
  40. package/dist/src/commands/rebuild-command.js +617 -1549
  41. package/dist/src/commands/rebuild-command.js.map +1 -1
  42. package/dist/src/commands/rebuild-integration.d.ts +19 -3
  43. package/dist/src/commands/rebuild-integration.js +500 -459
  44. package/dist/src/commands/rebuild-integration.js.map +1 -1
  45. package/dist/src/commands/rebuild-operations.js +1 -2
  46. package/dist/src/commands/rebuild-operations.js.map +1 -1
  47. package/dist/src/commands/review-inspection.d.ts +2 -2
  48. package/dist/src/commands/review-inspection.js +30 -86
  49. package/dist/src/commands/review-inspection.js.map +1 -1
  50. package/dist/src/commands/review-preparation.js +16 -7
  51. package/dist/src/commands/review-preparation.js.map +1 -1
  52. package/dist/src/commands/skill-eval.d.ts +2 -0
  53. package/dist/src/commands/skill-eval.js +15 -9
  54. package/dist/src/commands/skill-eval.js.map +1 -1
  55. package/dist/src/commands/status-v6.d.ts +38 -5
  56. package/dist/src/commands/status-v6.js +269 -102
  57. package/dist/src/commands/status-v6.js.map +1 -1
  58. package/dist/src/commands/targets-command.d.ts +27 -0
  59. package/dist/src/commands/targets-command.js +77 -0
  60. package/dist/src/commands/targets-command.js.map +1 -0
  61. package/dist/src/commands/write-commands.js +5 -5
  62. package/dist/src/commands/write-commands.js.map +1 -1
  63. package/dist/src/eval/manifest-v1.d.ts +2 -0
  64. package/dist/src/eval/manifest-v1.js +7 -2
  65. package/dist/src/eval/manifest-v1.js.map +1 -1
  66. package/dist/src/generators/local-plugin.d.ts +2 -1
  67. package/dist/src/generators/local-plugin.js +111 -108
  68. package/dist/src/generators/local-plugin.js.map +1 -1
  69. package/dist/src/index.d.ts +10 -17
  70. package/dist/src/index.js +585 -1349
  71. package/dist/src/index.js.map +1 -1
  72. package/dist/src/intent/deployment-preferences.d.ts +63 -0
  73. package/dist/src/intent/deployment-preferences.js +170 -0
  74. package/dist/src/intent/deployment-preferences.js.map +1 -0
  75. package/dist/src/intent/diagnostics.d.ts +11 -0
  76. package/dist/src/intent/diagnostics.js +14 -0
  77. package/dist/src/intent/diagnostics.js.map +1 -0
  78. package/dist/src/intent/intent-codec.d.ts +19 -0
  79. package/dist/src/intent/intent-codec.js +117 -0
  80. package/dist/src/intent/intent-codec.js.map +1 -0
  81. package/dist/src/intent/intent-store.d.ts +43 -0
  82. package/dist/src/intent/intent-store.js +118 -0
  83. package/dist/src/intent/intent-store.js.map +1 -0
  84. package/dist/src/intent/scope-context.d.ts +33 -0
  85. package/dist/src/intent/scope-context.js +145 -0
  86. package/dist/src/intent/scope-context.js.map +1 -0
  87. package/dist/src/intent/work-context.d.ts +13 -0
  88. package/dist/src/intent/work-context.js +22 -0
  89. package/dist/src/intent/work-context.js.map +1 -0
  90. package/dist/src/output/command-receipt.js +16 -9
  91. package/dist/src/output/command-receipt.js.map +1 -1
  92. package/dist/src/portable/commands.d.ts +18 -8
  93. package/dist/src/portable/commands.js +46 -562
  94. package/dist/src/portable/commands.js.map +1 -1
  95. package/dist/src/portable/historical-materialization.d.ts +22 -0
  96. package/dist/src/portable/historical-materialization.js +124 -0
  97. package/dist/src/portable/historical-materialization.js.map +1 -0
  98. package/dist/src/portable/materializer.d.ts +8 -0
  99. package/dist/src/portable/materializer.js +75 -44
  100. package/dist/src/portable/materializer.js.map +1 -1
  101. package/dist/src/portable/recovery-layout.d.ts +17 -0
  102. package/dist/src/portable/recovery-layout.js +55 -0
  103. package/dist/src/portable/recovery-layout.js.map +1 -0
  104. package/dist/src/portable/recovery.d.ts +143 -0
  105. package/dist/src/portable/recovery.js +339 -0
  106. package/dist/src/portable/recovery.js.map +1 -0
  107. package/dist/src/portable/writer.d.ts +64 -0
  108. package/dist/src/portable/writer.js +316 -0
  109. package/dist/src/portable/writer.js.map +1 -0
  110. package/dist/src/recovery/coordinator.d.ts +137 -0
  111. package/dist/src/recovery/coordinator.js +1198 -0
  112. package/dist/src/recovery/coordinator.js.map +1 -0
  113. package/dist/src/recovery/demand.d.ts +44 -0
  114. package/dist/src/recovery/demand.js +178 -0
  115. package/dist/src/recovery/demand.js.map +1 -0
  116. package/dist/src/recovery/joint-coordinator.d.ts +24 -0
  117. package/dist/src/recovery/joint-coordinator.js +770 -0
  118. package/dist/src/recovery/joint-coordinator.js.map +1 -0
  119. package/dist/src/recovery/joint-demand.d.ts +68 -0
  120. package/dist/src/recovery/joint-demand.js +166 -0
  121. package/dist/src/recovery/joint-demand.js.map +1 -0
  122. package/dist/src/recovery/receipt.d.ts +81 -0
  123. package/dist/src/recovery/receipt.js +2 -0
  124. package/dist/src/recovery/receipt.js.map +1 -0
  125. package/dist/src/recovery/retirement.d.ts +45 -0
  126. package/dist/src/recovery/retirement.js +366 -0
  127. package/dist/src/recovery/retirement.js.map +1 -0
  128. package/dist/src/recovery/status.d.ts +108 -0
  129. package/dist/src/recovery/status.js +417 -0
  130. package/dist/src/recovery/status.js.map +1 -0
  131. package/dist/src/recovery/types.d.ts +86 -0
  132. package/dist/src/recovery/types.js +2 -0
  133. package/dist/src/recovery/types.js.map +1 -0
  134. package/dist/src/review/review-profile.d.ts +2 -1
  135. package/dist/src/review/review-profile.js +15 -15
  136. package/dist/src/review/review-profile.js.map +1 -1
  137. package/dist/src/review/review-selection.d.ts +1 -2
  138. package/dist/src/review/review-selection.js +40 -114
  139. package/dist/src/review/review-selection.js.map +1 -1
  140. package/dist/src/review/review-types.d.ts +4 -4
  141. package/dist/src/review/review-types.js.map +1 -1
  142. package/dist/src/review/skill-materialization.js +15 -6
  143. package/dist/src/review/skill-materialization.js.map +1 -1
  144. package/dist/src/review/source-binding.d.ts +14 -4
  145. package/dist/src/review/source-binding.js +62 -117
  146. package/dist/src/review/source-binding.js.map +1 -1
  147. package/dist/src/tui/agent-management.d.ts +23 -0
  148. package/dist/src/tui/agent-management.js +217 -0
  149. package/dist/src/tui/agent-management.js.map +1 -0
  150. package/dist/src/tui/agent-settings.d.ts +44 -0
  151. package/dist/src/tui/agent-settings.js +98 -0
  152. package/dist/src/tui/agent-settings.js.map +1 -0
  153. package/dist/src/tui/components.d.ts +3 -0
  154. package/dist/src/tui/components.js +10 -1
  155. package/dist/src/tui/components.js.map +1 -1
  156. package/dist/src/tui/config-references.d.ts +6 -3
  157. package/dist/src/tui/config-references.js +17 -12
  158. package/dist/src/tui/config-references.js.map +1 -1
  159. package/dist/src/tui/console-app-v4.d.ts +1 -2
  160. package/dist/src/tui/console-app-v4.js +1533 -1047
  161. package/dist/src/tui/console-app-v4.js.map +1 -1
  162. package/dist/src/tui/controller-runtime.d.ts +2 -1
  163. package/dist/src/tui/controller-runtime.js +457 -1634
  164. package/dist/src/tui/controller-runtime.js.map +1 -1
  165. package/dist/src/tui/controller.d.ts +131 -81
  166. package/dist/src/tui/controller.js +307 -227
  167. package/dist/src/tui/controller.js.map +1 -1
  168. package/dist/src/tui/entity-cards.d.ts +2 -2
  169. package/dist/src/tui/entity-cards.js +98 -20
  170. package/dist/src/tui/entity-cards.js.map +1 -1
  171. package/dist/src/tui/glossary.d.ts +2 -0
  172. package/dist/src/tui/glossary.js +20 -0
  173. package/dist/src/tui/glossary.js.map +1 -1
  174. package/dist/src/tui/model.d.ts +28 -10
  175. package/dist/src/tui/model.js +41 -41
  176. package/dist/src/tui/model.js.map +1 -1
  177. package/dist/src/tui/operation-review-planner.d.ts +2 -0
  178. package/dist/src/tui/operation-review-planner.js +58 -122
  179. package/dist/src/tui/operation-review-planner.js.map +1 -1
  180. package/dist/src/tui/plugin-content.js +7 -4
  181. package/dist/src/tui/plugin-content.js.map +1 -1
  182. package/dist/src/tui/plugin-detail.d.ts +22 -3
  183. package/dist/src/tui/plugin-detail.js +113 -26
  184. package/dist/src/tui/plugin-detail.js.map +1 -1
  185. package/dist/src/tui/reader.d.ts +1 -0
  186. package/dist/src/tui/reader.js +3 -1
  187. package/dist/src/tui/reader.js.map +1 -1
  188. package/dist/src/tui/router.d.ts +23 -33
  189. package/dist/src/tui/router.js.map +1 -1
  190. package/dist/src/tui/scoped-flow.d.ts +45 -0
  191. package/dist/src/tui/scoped-flow.js +96 -0
  192. package/dist/src/tui/scoped-flow.js.map +1 -0
  193. package/dist/src/tui/scoped-inventory.d.ts +122 -0
  194. package/dist/src/tui/scoped-inventory.js +225 -0
  195. package/dist/src/tui/scoped-inventory.js.map +1 -0
  196. package/dist/src/tui/screen-registry.d.ts +25 -25
  197. package/dist/src/tui/screen-registry.js +3 -7
  198. package/dist/src/tui/screen-registry.js.map +1 -1
  199. package/dist/src/tui/session-console-app.js +1 -1
  200. package/dist/src/tui/session-console-app.js.map +1 -1
  201. package/dist/src/tui/session-host.js +12 -2
  202. package/dist/src/tui/session-host.js.map +1 -1
  203. package/dist/src/types.d.ts +15 -12
  204. package/dist/src/types.js.map +1 -1
  205. package/dist/src/utils/agent-version.js +2 -0
  206. package/dist/src/utils/agent-version.js.map +1 -1
  207. package/dist/src/utils/artifact-plan.js +13 -6
  208. package/dist/src/utils/artifact-plan.js.map +1 -1
  209. package/dist/src/utils/artifact-renderer.d.ts +6 -3
  210. package/dist/src/utils/artifact-renderer.js +27 -32
  211. package/dist/src/utils/artifact-renderer.js.map +1 -1
  212. package/dist/src/utils/artifact-request.d.ts +1 -0
  213. package/dist/src/utils/artifact-request.js +22 -12
  214. package/dist/src/utils/artifact-request.js.map +1 -1
  215. package/dist/src/utils/artifact-sources.d.ts +2 -2
  216. package/dist/src/utils/bundle-layout.js +18 -16
  217. package/dist/src/utils/bundle-layout.js.map +1 -1
  218. package/dist/src/utils/catalog-digests.js +2 -0
  219. package/dist/src/utils/catalog-digests.js.map +1 -1
  220. package/dist/src/utils/catalog-runtime-projection.d.ts +4 -3
  221. package/dist/src/utils/catalog-runtime-projection.js.map +1 -1
  222. package/dist/src/utils/catalog-source-references.d.ts +5 -0
  223. package/dist/src/utils/catalog-source-references.js +42 -57
  224. package/dist/src/utils/catalog-source-references.js.map +1 -1
  225. package/dist/src/utils/claude-native-render-receipt.d.ts +14 -0
  226. package/dist/src/utils/claude-native-render-receipt.js +26 -0
  227. package/dist/src/utils/claude-native-render-receipt.js.map +1 -0
  228. package/dist/src/utils/claude-skills-root.js +14 -3
  229. package/dist/src/utils/claude-skills-root.js.map +1 -1
  230. package/dist/src/utils/codex-manager.js +6 -12
  231. package/dist/src/utils/codex-manager.js.map +1 -1
  232. package/dist/src/utils/codex-native-observation.js +29 -13
  233. package/dist/src/utils/codex-native-observation.js.map +1 -1
  234. package/dist/src/utils/codex-reconciler.d.ts +2 -5
  235. package/dist/src/utils/codex-reconciler.js +25 -1
  236. package/dist/src/utils/codex-reconciler.js.map +1 -1
  237. package/dist/src/utils/codex-surface-analysis.js +5 -3
  238. package/dist/src/utils/codex-surface-analysis.js.map +1 -1
  239. package/dist/src/utils/local-marketplace.d.ts +14 -2
  240. package/dist/src/utils/local-marketplace.js +209 -42
  241. package/dist/src/utils/local-marketplace.js.map +1 -1
  242. package/dist/src/utils/managed-command-evidence.js +1 -1
  243. package/dist/src/utils/managed-command-evidence.js.map +1 -1
  244. package/dist/src/utils/managed-command-materialization.d.ts +4 -0
  245. package/dist/src/utils/managed-command-materialization.js +15 -6
  246. package/dist/src/utils/managed-command-materialization.js.map +1 -1
  247. package/dist/src/utils/managed-command-store.d.ts +15 -0
  248. package/dist/src/utils/managed-command-store.js +73 -8
  249. package/dist/src/utils/managed-command-store.js.map +1 -1
  250. package/dist/src/utils/native-cli.d.ts +2 -0
  251. package/dist/src/utils/native-cli.js +22 -0
  252. package/dist/src/utils/native-cli.js.map +1 -1
  253. package/dist/src/utils/native-demand.d.ts +10 -0
  254. package/dist/src/utils/native-demand.js +4 -0
  255. package/dist/src/utils/native-demand.js.map +1 -0
  256. package/dist/src/utils/ownership.js +2 -0
  257. package/dist/src/utils/ownership.js.map +1 -1
  258. package/dist/src/utils/paths.js +1 -1
  259. package/dist/src/utils/paths.js.map +1 -1
  260. package/dist/src/utils/platform-support.d.ts +1 -1
  261. package/dist/src/utils/platform-support.js +1 -1
  262. package/dist/src/utils/platform-support.js.map +1 -1
  263. package/dist/src/utils/plugin-config-impact.d.ts +3 -0
  264. package/dist/src/utils/plugin-config-impact.js +115 -273
  265. package/dist/src/utils/plugin-config-impact.js.map +1 -1
  266. package/dist/src/utils/plugin-config-references.d.ts +11 -2
  267. package/dist/src/utils/plugin-config-references.js +85 -90
  268. package/dist/src/utils/plugin-config-references.js.map +1 -1
  269. package/dist/src/utils/plugin-config-write.d.ts +58 -1
  270. package/dist/src/utils/plugin-config-write.js +756 -809
  271. package/dist/src/utils/plugin-config-write.js.map +1 -1
  272. package/dist/src/utils/plugin-config.d.ts +47 -46
  273. package/dist/src/utils/plugin-config.js +292 -833
  274. package/dist/src/utils/plugin-config.js.map +1 -1
  275. package/dist/src/utils/plugin-scripts.d.ts +11 -6
  276. package/dist/src/utils/plugin-scripts.js +52 -35
  277. package/dist/src/utils/plugin-scripts.js.map +1 -1
  278. package/dist/src/utils/runtime-config.js +5 -4
  279. package/dist/src/utils/runtime-config.js.map +1 -1
  280. package/dist/src/utils/runtime-skill-closure.d.ts +2 -2
  281. package/dist/src/utils/runtime-skill-closure.js.map +1 -1
  282. package/dist/src/utils/state-paths.d.ts +8 -3
  283. package/dist/src/utils/state-paths.js +53 -16
  284. package/dist/src/utils/state-paths.js.map +1 -1
  285. package/dist/src/utils/windows-npm-shim.d.ts +2 -0
  286. package/dist/src/utils/windows-npm-shim.js +5 -7
  287. package/dist/src/utils/windows-npm-shim.js.map +1 -1
  288. package/dist/vitest.config.js +1 -0
  289. package/dist/vitest.config.js.map +1 -1
  290. package/package.json +3 -3
  291. package/dist/src/commands/sync-command.d.ts +0 -40
  292. package/dist/src/commands/sync-command.js +0 -254
  293. package/dist/src/commands/sync-command.js.map +0 -1
  294. package/dist/src/portable/skills-cli.d.ts +0 -51
  295. package/dist/src/portable/skills-cli.js +0 -202
  296. package/dist/src/portable/skills-cli.js.map +0 -1
  297. package/dist/src/tui/project-inventory.d.ts +0 -68
  298. package/dist/src/tui/project-inventory.js +0 -203
  299. package/dist/src/tui/project-inventory.js.map +0 -1
  300. package/dist/src/utils/plugin-intent-state.d.ts +0 -49
  301. package/dist/src/utils/plugin-intent-state.js +0 -320
  302. package/dist/src/utils/plugin-intent-state.js.map +0 -1
@@ -0,0 +1,417 @@
1
+ import { selectAgents } from '../intent/deployment-preferences.js';
2
+ import { createScopeContext } from '../intent/scope-context.js';
3
+ import { parsePluginId } from '../utils/multi-source-catalog.js';
4
+ import { statusCommandV8, flattenStatusTargets, statusTargetHasLiveConfigConsumer } from '../commands/status-v6.js';
5
+ import { inspectPortableExtraInstalled, inspectPortableRecovery, portablePreparationDiagnostic } from '../portable/recovery.js';
6
+ import { readJointDemand, deriveJointDemand, findPlacementConflicts } from './joint-demand.js';
7
+ import { readDemand, resolveDelivery } from './demand.js';
8
+ import { analyzeCodexSurface } from '../utils/codex-surface-analysis.js';
9
+ const NATIVE_READ_ERRORS = new Set(['nativeStateUnreadable', 'stateInventoryFailed', 'configReadFailed',
10
+ 'configInvalid', 'componentInspectionFailed', 'targetInspectionFailed', 'codexNativeObservationFailed',
11
+ 'nativeObservationFailed', 'nativeObservationUnavailable']);
12
+ function diagnostic(code) { return { code, message: `目标尚未满足:${code}。` }; }
13
+ function safeNativePlacement(target) {
14
+ const component = ({ kind, key, state, metadata }) => ({
15
+ kind, key, state,
16
+ ...(metadata ? { metadata: Object.fromEntries(Object.entries(metadata).filter(([name]) => ['enabled', 'scopes', 'relation', 'errorCode', 'shared', 'version', 'desiredVersion',
17
+ 'staleCacheObserved', 'effective', 'requiredMinVersion', 'detectedVersion', 'code',
18
+ 'kinds', 'platform', 'scope', 'project', 'rootIssueId', 'rootIssueCode'].includes(name))) } : {}),
19
+ });
20
+ const reason = ({ code, severity, dependencyPluginId, dependencyPlatform, dependencyScope, dependencyProject, rootIssueId, rootIssueCode }) => ({
21
+ code, severity, dependencyPluginId, dependencyPlatform, dependencyScope, dependencyProject,
22
+ rootIssueId, rootIssueCode,
23
+ });
24
+ return {
25
+ pluginId: target.pluginId, platform: target.platform, scope: target.scope,
26
+ state: target.state,
27
+ components: target.components.map(component), reasons: target.reasons.map(reason),
28
+ recoveryActions: target.recoveryActions.map(({ command, scope }) => ({ command, scope })),
29
+ ...(target.sharedComponents ? { sharedComponents: target.sharedComponents.map(component) } : {}),
30
+ ...(target.sharedReasons ? { sharedReasons: target.sharedReasons.map(reason) } : {}),
31
+ };
32
+ }
33
+ export async function statusFromObservations(options) {
34
+ options.signal?.throwIfAborted();
35
+ const { demand } = options;
36
+ const errors = [...demand.errors, ...(options.nativeReadErrors ?? [])];
37
+ let selection;
38
+ try {
39
+ selection = selectAgents({ preferences: demand.preferences, targets: options.targets });
40
+ }
41
+ catch {
42
+ selection = { agents: [], origin: 'none', preferences: demand.preferences.state };
43
+ errors.push(diagnostic('targetSelectionInvalid'));
44
+ }
45
+ const inventory = demand.roots === null ? null : [];
46
+ for (const root of demand.roots ?? []) {
47
+ options.signal?.throwIfAborted();
48
+ const blockers = root.blockers.map(diagnostic);
49
+ if (!selection.agents.length)
50
+ blockers.push(diagnostic('localTargetsRequired'));
51
+ const targetResults = [];
52
+ for (const agent of selection.agents) {
53
+ if (demand.targetRequirements && !demand.targetRequirements.some((item) => item.pluginId === root.pluginId && item.target === agent))
54
+ continue;
55
+ options.signal?.throwIfAborted();
56
+ const delivery = root.plugin ? resolveDelivery(root.plugin.manifest, agent, options.scope) ?? null : null;
57
+ const target = { pluginId: root.pluginId, agent, scope: options.scope, delivery,
58
+ execution: 'not-run', observation: 'unknown', content: 'unknown', blockers: [...blockers],
59
+ requiredBy: [root.pluginId], relation: 'root' };
60
+ if (blockers.length) {
61
+ targetResults.push(target);
62
+ continue;
63
+ }
64
+ if (!delivery)
65
+ target.blockers.push(diagnostic('deliveryUnsupported'));
66
+ else if (delivery.kind === 'native') {
67
+ const native = options.nativeObservations.find((entry) => entry.pluginId === root.pluginId
68
+ && entry.platform === delivery.platform);
69
+ if (native) {
70
+ target.content = native.content;
71
+ target.blockers.push(...native.blockers);
72
+ errors.push(...native.blockers.filter((entry) => NATIVE_READ_ERRORS.has(entry.code))
73
+ .map((entry) => ({ ...entry, pluginId: root.pluginId })));
74
+ target.backend = { ...(native.assumedActivation ? { assumedActivation: true } : {}),
75
+ ...(native.backend ? { live: safeNativePlacement(native.backend) } : {}) };
76
+ }
77
+ else {
78
+ target.blockers.push(diagnostic('nativeObservationUnavailable'));
79
+ errors.push({ ...diagnostic('nativeObservationUnavailable'), pluginId: root.pluginId });
80
+ }
81
+ }
82
+ else {
83
+ try {
84
+ const portable = await inspectPortableRecovery({ scope: options.scope, context: options.context,
85
+ selector: root.pluginId, agents: [agent], env: options.env, signal: options.signal,
86
+ cliVersion: options.cliVersion ?? '0.0.0', catalogOperationContext: demand.catalogOperationContext,
87
+ excludedPluginIds: demand.userProviders?.[agent] });
88
+ options.signal?.throwIfAborted();
89
+ target.blockers.push(...portable.blockers.map((code) => portablePreparationDiagnostic(portable, diagnostic(code), agent)));
90
+ const observed = portable.targets.filter((entry) => entry.agent === agent);
91
+ target.blockers.push(...observed.flatMap((entry) => entry.blocker ? [diagnostic(entry.blocker)] : []));
92
+ target.content = ['conflict', 'drifted', 'absent', 'unknown']
93
+ .find((state) => observed.some((entry) => entry.observation === state))
94
+ ?? (observed.length && !portable.blockers.length ? 'satisfied' : 'unknown');
95
+ if (observed.length === 0 && portable.blockers.includes('needs-preparation') && options.portableCoverage === true
96
+ && options.portableInstalled && !options.portableInstalled.some((item) => item.pluginId === root.pluginId && item.agent === agent)) {
97
+ target.content = 'absent';
98
+ target.blockers = target.blockers.filter((item) => item.code !== 'needs-preparation');
99
+ }
100
+ target.backend = observed.map((entry) => ({ skill: entry.skill, agent: entry.agent,
101
+ ownership: entry.ownership, observation: entry.observation, associatedAgents: entry.associatedAgents }));
102
+ if (target.blockers.some((entry) => /(?:VerificationFailed|ReadFailed|LockInvalid)/u.test(entry.code))) {
103
+ errors.push({ ...diagnostic('portableObservationFailed'), pluginId: root.pluginId });
104
+ }
105
+ }
106
+ catch (error) {
107
+ options.signal?.throwIfAborted();
108
+ if (error instanceof Error && error.name === 'AbortError')
109
+ throw error;
110
+ target.blockers.push(diagnostic('portableObservationFailed'));
111
+ errors.push({ ...diagnostic('portableObservationFailed'), pluginId: root.pluginId });
112
+ }
113
+ }
114
+ target.observation = target.content === 'satisfied' ? 'verified'
115
+ : target.content === 'absent' ? 'missing' : 'unknown';
116
+ targetResults.push(target);
117
+ }
118
+ inventory.push({ pluginId: root.pluginId, source: root.sourceId, sourceState: root.sourceState,
119
+ blockers, targetResults });
120
+ }
121
+ const counts = { blocked: 0, unconfirmed: 0, pending: 0, ready: 0 };
122
+ let definiteFailure = false;
123
+ let uncertain = inventory === null;
124
+ for (const root of inventory ?? []) {
125
+ const targets = root.targetResults;
126
+ if (root.blockers.length || targets.some((target) => target.blockers.length || target.content === 'conflict'
127
+ || target.delivery === null)) {
128
+ counts.blocked++;
129
+ }
130
+ else if (!targets.length || targets.some((target) => target.content === 'unknown')) {
131
+ counts.unconfirmed++;
132
+ uncertain = true;
133
+ }
134
+ else if (targets.some((target) => target.content === 'absent' || target.content === 'drifted'))
135
+ counts.pending++;
136
+ else
137
+ counts.ready++;
138
+ if (!targets.length || root.blockers.some((entry) => !/^(?:pluginUnavailable|sourceMissing|sourceIdentityMismatch)$/u.test(entry.code))) {
139
+ uncertain = true;
140
+ }
141
+ if (root.blockers.some((entry) => /^(?:pluginUnavailable|sourceMissing|sourceIdentityMismatch)$/u.test(entry.code))) {
142
+ definiteFailure = true;
143
+ }
144
+ for (const target of targets) {
145
+ if (target.content === 'absent' || target.content === 'drifted' || target.content === 'conflict'
146
+ || target.blockers.some((entry) => entry.code === 'deliveryUnsupported')) {
147
+ definiteFailure = true;
148
+ }
149
+ else if (target.content === 'unknown' || target.observation === 'unknown' || target.blockers.length)
150
+ uncertain = true;
151
+ }
152
+ }
153
+ const allSatisfied = definiteFailure ? false : uncertain ? null : true;
154
+ options.signal?.throwIfAborted();
155
+ return { schemaVersion: 1, kind: 'aw-recovery-status', scope: options.scope, ok: errors.length === 0,
156
+ intent: { state: demand.intent.state, ...('digest' in demand.intent ? { digest: demand.intent.digest } : {}) },
157
+ selection, inventory, extraObserved: options.extraObserved ?? [],
158
+ coverage: { native: (options.nativeReadErrors?.length ?? 0) === 0, portable: options.portableCoverage ?? true },
159
+ counts, allSatisfied, inSync: aggregateConvergence(allSatisfied, (options.extraObserved?.length ?? 0) > 0 ? 'present' : options.portableCoverage === false ? 'unknown' : 'absent'), errors };
160
+ }
161
+ export async function readScopedRecoveryStatus(options) {
162
+ options.signal?.throwIfAborted();
163
+ const context = await createScopeContext({ scope: options.scope, cwd: options.cwd, env: options.env, readOnly: true });
164
+ try {
165
+ options.signal?.throwIfAborted();
166
+ const demand = options.demandOverride ?? await readDemand({ scope: options.scope, cwd: context.executionCwd, env: context.env,
167
+ catalogOperationContext: options.catalogOperationContext, signal: options.signal });
168
+ options.signal?.throwIfAborted();
169
+ const nativePlugins = options.onDemand?.(demand);
170
+ const native = options.nativeObservations ? undefined : await statusCommandV8({
171
+ cwd: context.executionCwd, env: context.env, scope: options.scope,
172
+ ...(nativePlugins ? { plugins: nativePlugins } : {}),
173
+ recoveryDemand: demand, recoverySelection: { targets: options.targets }, cliVersion: options.cliVersion,
174
+ catalogOperationContext: options.catalogOperationContext,
175
+ nativeCliRunner: options.nativeCliRunner,
176
+ codexObservationSession: options.codexObservationSession,
177
+ signal: options.signal,
178
+ });
179
+ options.signal?.throwIfAborted();
180
+ if (native)
181
+ await options.onNativeStatus?.(native, demand);
182
+ options.signal?.throwIfAborted();
183
+ const roots = new Set(demand.roots?.map((root) => root.pluginId) ?? []);
184
+ const queue = [...(demand.roots ?? []).map((root) => root.plugin).filter((plugin) => plugin !== undefined)];
185
+ const byId = new Map(demand.plugins.map((plugin) => [plugin.pluginId, plugin]));
186
+ while (queue.length) {
187
+ const plugin = queue.shift();
188
+ for (const name of plugin.manifest.dependencies ?? []) {
189
+ const id = `${plugin.sourceId}/${name}`;
190
+ if (roots.has(id))
191
+ continue;
192
+ roots.add(id);
193
+ const dependency = byId.get(id);
194
+ if (dependency)
195
+ queue.push(dependency);
196
+ }
197
+ }
198
+ const expected = (pluginId, agent) => demand.targetRequirements
199
+ ? demand.targetRequirements.some((item) => item.pluginId === pluginId && item.target === agent)
200
+ : roots.has(pluginId) && agent !== null && demand.preferences.state === 'valid' && demand.preferences.value.targets.includes(agent);
201
+ // Native component lists can include a shared User activation marker. Only
202
+ // a live scoped consumer or an actual scoped owner proves a cleanup target.
203
+ const ownsScopedOutput = (target) => statusTargetHasLiveConfigConsumer(target)
204
+ || target.reasons.some((reason) => reason.code === 'removedPluginCleanupRequired')
205
+ || native?.nativeExtraObserved.some((entry) => entry.pluginId === target.pluginId
206
+ && entry.platform === target.platform && entry.scope === target.scope
207
+ && entry.reference.kind === 'namespacedOwner') === true;
208
+ const placed = native ? flattenStatusTargets(native.payload.targets)
209
+ .filter((target) => target.scope === options.scope && !expected(target.pluginId, target.platform)
210
+ && ownsScopedOutput(target))
211
+ .map((target) => ({ pluginId: target.pluginId, agent: target.platform === 'claude' ? 'claude' : 'codex',
212
+ scope: options.scope, delivery: { kind: 'native', platform: target.platform },
213
+ observation: target.state === 'ready' ? 'verified' : target.state === 'needsSync' ? 'missing' : 'unknown',
214
+ content: target.state === 'ready' ? 'satisfied' : target.state === 'needsSync' ? 'drifted'
215
+ : target.state === 'blocked' ? 'conflict' : 'unknown',
216
+ backend: safeNativePlacement(target) })) : [];
217
+ const owned = native ? native.nativeExtraObserved
218
+ .filter((entry) => entry.reference.kind !== 'namespacedConfig'
219
+ && placed.some((target) => target.pluginId === entry.pluginId && target.agent === entry.platform)
220
+ && !expected(entry.pluginId, entry.platform ?? null))
221
+ .map((entry) => ({ pluginId: entry.pluginId, agent: entry.platform === 'claude' ? 'claude'
222
+ : entry.platform === 'codex' ? 'codex' : null, scope: options.scope,
223
+ delivery: entry.platform ? { kind: 'native', platform: entry.platform } : null,
224
+ observation: 'unknown', content: 'unknown', backend: {
225
+ kind: entry.reference.kind, pluginName: entry.reference.pluginName,
226
+ sourceId: entry.reference.sourceId, platform: entry.reference.platform,
227
+ scope: entry.reference.scope, marketplaceName: entry.reference.marketplaceName,
228
+ } })) : [];
229
+ const key = (entry) => `${entry.pluginId}\0${entry.agent ?? ''}\0${entry.scope}`;
230
+ const placedKeys = new Set(placed.map(key));
231
+ const nativeExtraObserved = [
232
+ ...owned.filter((entry) => !placedKeys.has(key(entry))),
233
+ ...placed.map((entry) => {
234
+ const references = owned.filter((candidate) => key(candidate) === key(entry))
235
+ .map((candidate) => candidate.backend);
236
+ return references.length ? { ...entry, backend: { ...entry.backend,
237
+ ownerReferences: references } } : entry;
238
+ }),
239
+ ];
240
+ const portableExtra = await inspectPortableExtraInstalled({
241
+ scope: options.scope, context, env: context.env, signal: options.signal,
242
+ });
243
+ options.signal?.throwIfAborted();
244
+ const portableObserved = portableExtra.targets
245
+ .filter((entry) => !expected(entry.pluginId, entry.agent))
246
+ .map((entry) => ({ pluginId: entry.pluginId, agent: entry.agent, scope: options.scope,
247
+ delivery: { kind: 'agent-skills', provider: 'aw', agentId: entry.agent },
248
+ observation: entry.observation, content: entry.content,
249
+ backend: { skill: entry.skill, logicalIdentity: entry.logicalIdentity } }));
250
+ const extraObserved = [...nativeExtraObserved, ...portableObserved];
251
+ const result = await statusFromObservations({ ...options, context, demand,
252
+ nativeObservations: options.nativeObservations ?? native.nativeObservations, extraObserved,
253
+ portableCoverage: portableExtra.complete, portableInstalled: portableExtra.targets,
254
+ nativeReadErrors: native?.payload.errors.filter((error) => NATIVE_READ_ERRORS.has(error.code))
255
+ .map((error) => diagnostic(error.code)) });
256
+ result.existingTargets = [
257
+ ...(native ? flattenStatusTargets(native.payload.targets).filter((target) => target.scope === options.scope && statusTargetHasLiveConfigConsumer(target))
258
+ .map((target) => ({ pluginId: target.pluginId, agent: target.platform, scope: target.scope })) : []),
259
+ ...portableExtra.targets.map((target) => ({ pluginId: target.pluginId, agent: target.agent, scope: options.scope })),
260
+ ];
261
+ result.ownedTargets = [
262
+ ...(native ? flattenStatusTargets(native.payload.targets).filter((target) => target.scope === options.scope && ownsScopedOutput(target))
263
+ .map((target) => ({ pluginId: target.pluginId, agent: target.platform, scope: target.scope })) : []),
264
+ ...portableExtra.targets.map((target) => ({ pluginId: target.pluginId, agent: target.agent, scope: options.scope })),
265
+ ];
266
+ return result;
267
+ }
268
+ finally {
269
+ await context.dispose();
270
+ }
271
+ }
272
+ export async function checkRecovery(selectors, options) {
273
+ const status = await readRecoveryStatus(options);
274
+ const blockers = [];
275
+ const roots = [...new Set(status.inventory?.map((root) => root.pluginId) ?? [])];
276
+ const requested = [];
277
+ if (options.all && selectors.length)
278
+ blockers.push(diagnostic('syncSelectorConflict'));
279
+ else if (!selectors.length)
280
+ requested.push(...roots);
281
+ else
282
+ for (const selector of selectors) {
283
+ const parsed = parsePluginId(selector);
284
+ const matches = roots.filter((id) => parsed.sourceId ? id === selector : parsePluginId(id).pluginName === parsed.pluginName);
285
+ if (matches.length !== 1)
286
+ blockers.push(diagnostic('syncPluginNotDesired'));
287
+ else if (!requested.includes(matches[0]))
288
+ requested.push(matches[0]);
289
+ }
290
+ const selectedRoots = status.inventory?.filter((root) => requested.includes(root.pluginId)) ?? [];
291
+ blockers.push(...selectedRoots.flatMap((root) => root.blockers));
292
+ if (requested.length && status.selection.agents.length === 0)
293
+ blockers.push(diagnostic('targetsNotConfigured'));
294
+ const targetResults = selectedRoots.flatMap((root) => root.targetResults)
295
+ .filter((target) => !options.targets || options.targets.includes(target.agent));
296
+ const remainingTargets = targetResults.filter((target) => target.blockers.length || target.observation !== 'verified')
297
+ .map(({ pluginId, agent, scope, delivery }) => ({ pluginId, agent, scope, delivery }));
298
+ if (status.intent.state !== 'valid' && status.intent.state !== 'absent')
299
+ blockers.push(diagnostic('pluginIntentStateInvalid'));
300
+ const errors = status.errors;
301
+ const ok = blockers.length === 0 && remainingTargets.length === 0 && errors.length === 0
302
+ && !(requested.length === 0 && status.allSatisfied === null);
303
+ return { schemaVersion: 1, kind: 'aw-recovery', scope: status.scope, command: 'sync:check', ok,
304
+ intent: { ...status.intent, roots: status.inventory === null ? null : roots },
305
+ requestedRoots: requested, requestedTargets: targetResults.map(({ pluginId, agent, scope, delivery }) => ({ pluginId, agent, scope, delivery })), selection: status.selection, blockers, errors,
306
+ targetResults, remainingTargets, recoveryActions: ok ? [] : ['aw plugin status --json'],
307
+ allSatisfied: status.allSatisfied, inSync: status.inSync,
308
+ coverage: { scopes: status.coverage.scopes ?? [status.scope], ...(status.coverage.projectRoot ? { projectRoot: status.coverage.projectRoot } : {}) },
309
+ declarationChanged: false, preferencesChanged: false, configChanged: false, outputsMayHaveChanged: false };
310
+ }
311
+ export function aggregateConvergence(allSatisfied, residue) {
312
+ return allSatisfied === false || residue === 'present' ? false
313
+ : allSatisfied === null || residue === 'unknown' ? null : true;
314
+ }
315
+ export async function readRecoveryStatus(options) {
316
+ const snapshot = await readJointDemand(options);
317
+ const plan = deriveJointDemand(snapshot);
318
+ const scopes = [snapshot.user, ...(snapshot.project ? [snapshot.project] : [])];
319
+ const observed = [];
320
+ for (const demand of scopes) {
321
+ const nodes = plan.placements.filter((item) => item.scope === demand.scope
322
+ || demand.scope === 'project' && (item.target === 'codex' || item.target === 'claude')
323
+ && item.contributions.some((contribution) => contribution.scope === 'project'));
324
+ const expanded = { ...demand,
325
+ userProviders: demand.scope === 'project' ? Object.fromEntries((snapshot.preferences?.targets ?? []).map((target) => [target,
326
+ plan.placements.filter((item) => item.scope === 'user' && item.target === target).map((item) => item.pluginId)])) : {},
327
+ targetRequirements: nodes.map((item) => ({ pluginId: item.pluginId, target: item.target })), roots: demand.roots === null ? null : [...new Map(nodes.map((item) => [item.pluginId, {
328
+ pluginId: item.pluginId, sourceId: item.plugin.sourceId, sourceState: 'ready',
329
+ blockers: [], plugin: item.plugin,
330
+ }])).values()] };
331
+ observed.push(await readScopedRecoveryStatus({ ...options, scope: demand.scope,
332
+ cwd: snapshot.context.projectRoot ?? options.cwd, targets: undefined, demandOverride: expanded }));
333
+ }
334
+ const allTargets = observed.flatMap((status) => status.inventory?.flatMap((item) => item.targetResults) ?? []);
335
+ const inventory = scopes.some((demand) => demand.roots !== null) ? [] : null;
336
+ const visibleInventory = [];
337
+ for (const demand of scopes)
338
+ for (const root of demand.roots ?? []) {
339
+ const targetResults = [];
340
+ for (const requirement of plan.roots.filter((entry) => entry.scope === demand.scope && entry.pluginId === root.pluginId)) {
341
+ const placement = plan.placements.find((item) => item.pluginId === root.pluginId && item.target === requirement.target);
342
+ const target = { pluginId: root.pluginId, agent: requirement.target, scope: demand.scope,
343
+ requirementScope: demand.scope, providerScope: placement?.scope,
344
+ delivery: root.plugin ? resolveDelivery(root.plugin.manifest, requirement.target, demand.scope) ?? null : null,
345
+ execution: 'not-run', observation: 'unknown', content: 'unknown', requiredBy: [root.pluginId], relation: 'root', blockers: [...requirement.blockers] };
346
+ if (requirement.state === 'excluded' || requirement.state === 'unsupported') {
347
+ target.satisfaction = requirement.state;
348
+ target.content = 'satisfied';
349
+ target.observation = 'verified';
350
+ if (requirement.reasons?.length)
351
+ target.reasons = requirement.reasons;
352
+ }
353
+ else if (requirement.state === 'required') {
354
+ const providers = requirement.dependencies.map((id) => {
355
+ const provider = plan.placements.find((item) => item.pluginId === id && item.target === requirement.target);
356
+ const actual = allTargets.find((item) => item.pluginId === id && item.agent === requirement.target && item.scope === provider?.scope);
357
+ if (demand.scope === 'project' && provider?.scope === 'user' && (requirement.target === 'codex' || requirement.target === 'claude')) {
358
+ const activation = allTargets.find((item) => item.pluginId === id && item.agent === requirement.target && item.scope === 'project');
359
+ if (actual?.content !== 'satisfied')
360
+ return actual;
361
+ if (requirement.target === 'codex' && activation && activation.blockers.length === 0) {
362
+ const backend = activation.backend;
363
+ const surface = analyzeCodexSurface(provider.plugin.manifest);
364
+ const completeUserCapability = surface.components.every((component) => !component.scopes.includes('project') || component.scopes.includes('user'));
365
+ const effective = surface.nativeKinds.length === 0 || backend?.live?.components.some((component) => component.kind === 'activation' && component.metadata?.effective === true);
366
+ const supported = surface.nativeKinds.length === 0 || backend?.live?.sharedComponents?.some((component) => component.kind === 'systemConsumer' && component.state === 'compatible');
367
+ if (completeUserCapability && effective && supported && !backend?.assumedActivation) {
368
+ return { ...activation, content: 'satisfied', observation: 'verified' };
369
+ }
370
+ }
371
+ return activation;
372
+ }
373
+ return actual;
374
+ });
375
+ target.blockers.push(...providers.flatMap((item) => item?.blockers ?? []));
376
+ target.content = ['conflict', 'drifted', 'absent', 'unknown'].find((state) => providers.some((item) => (item?.content ?? 'unknown') === state)) ?? 'satisfied';
377
+ target.observation = target.content === 'satisfied' ? 'verified' : target.content === 'absent' ? 'missing' : 'unknown';
378
+ target.satisfaction = target.content === 'satisfied' ? demand.scope === 'project' && placement?.scope === 'user' ? 'inherited-user' : 'installed'
379
+ : target.content === 'unknown' ? 'unknown' : 'pending';
380
+ target.backend = providers.map((provider) => ({ pluginId: provider?.pluginId, scope: provider?.scope, content: provider?.content, live: provider?.backend }));
381
+ }
382
+ targetResults.push(target);
383
+ }
384
+ visibleInventory.push({ pluginId: root.pluginId, source: root.sourceId, sourceState: root.sourceState,
385
+ blockers: root.blockers.map(diagnostic), targetResults });
386
+ }
387
+ const expected = new Set(plan.placements.map((item) => `${item.pluginId}\0${item.target}\0${item.scope}`));
388
+ const extraObserved = observed.flatMap((status) => status.extraObserved)
389
+ .filter((item) => !expected.has(`${item.pluginId}\0${item.agent}\0${item.scope}`));
390
+ const conflicts = findPlacementConflicts([...plan.placements,
391
+ ...extraObserved.filter((item) => item.agent !== null)
392
+ .map((item) => ({ pluginId: item.pluginId, target: item.agent, scope: item.scope }))]);
393
+ const targets = visibleInventory.flatMap((item) => item.targetResults);
394
+ const knownFailure = plan.errors.some((error) => ['targetsNotConfigured', 'dependencyExcluded', 'dependencyContractInvalid', 'targetPlacementConflict'].includes(error.code))
395
+ || conflicts.length > 0 || targets.some((target) => ['absent', 'drifted', 'conflict'].includes(target.content ?? 'unknown'));
396
+ const uncertain = !plan.complete || targets.some((target) => target.content === 'unknown' || target.blockers.length > 0);
397
+ const allSatisfied = knownFailure ? false : uncertain ? null : true;
398
+ const nativeCoverage = observed.every((status) => status.coverage.native);
399
+ const portableCoverage = observed.every((status) => status.coverage.portable);
400
+ const errors = [...plan.errors, ...conflicts, ...observed.flatMap((status) => status.errors)];
401
+ return { schemaVersion: 1, kind: 'aw-recovery-status', scope: snapshot.context.context, ok: errors.length === 0,
402
+ intent: { state: scopes.some((demand) => demand.intent.state === 'invalid') ? 'invalid'
403
+ : scopes.some((demand) => demand.intent.state === 'unreadable') ? 'unreadable'
404
+ : scopes.some((demand) => demand.intent.state === 'unsupported-version') ? 'unsupported-version'
405
+ : scopes.some((demand) => demand.intent.state === 'valid') ? 'valid' : 'absent' },
406
+ selection: { agents: snapshot.preferences?.targets ?? [], origin: snapshot.preferences?.targets.length ? 'preference' : 'none', preferences: snapshot.user.preferences.state },
407
+ inventory: inventory === null ? null : visibleInventory, extraObserved, observedTargets: allTargets,
408
+ existingTargets: observed.flatMap((status) => status.existingTargets ?? []), ownedTargets: observed.flatMap((status) => status.ownedTargets ?? []),
409
+ coverage: { native: nativeCoverage, portable: portableCoverage, scopes: snapshot.context.scopes,
410
+ ...(snapshot.context.projectRoot ? { projectRoot: snapshot.context.projectRoot } : {}) },
411
+ counts: { blocked: targets.filter((target) => target.blockers.length).length,
412
+ pending: targets.filter((target) => target.satisfaction === 'pending').length,
413
+ unconfirmed: targets.filter((target) => target.content === 'unknown').length,
414
+ ready: targets.filter((target) => target.content === 'satisfied').length },
415
+ allSatisfied, inSync: aggregateConvergence(allSatisfied, extraObserved.length ? 'present' : nativeCoverage && portableCoverage ? 'absent' : 'unknown'), errors };
416
+ }
417
+ //# sourceMappingURL=status.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"status.js","sourceRoot":"","sources":["../../../src/recovery/status.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,86 @@
1
+ import type { Scope } from '../types.js';
2
+ import type { AgentId, PreferencesObservation } from '../intent/deployment-preferences.js';
3
+ import type { IntentObservation } from '../intent/intent-store.js';
4
+ export type Delivery = {
5
+ kind: 'native';
6
+ platform: 'codex' | 'claude';
7
+ } | {
8
+ kind: 'agent-skills';
9
+ provider: 'aw';
10
+ agentId: AgentId;
11
+ };
12
+ export type Execution = 'not-run' | 'no-op' | 'applied' | 'partial' | 'failed';
13
+ export type Observation = 'verified' | 'missing' | 'unknown';
14
+ export type ContentState = 'absent' | 'satisfied' | 'drifted' | 'conflict' | 'unknown';
15
+ export interface Diagnostic {
16
+ code: string;
17
+ message: string;
18
+ }
19
+ export interface TargetKey {
20
+ pluginId: string;
21
+ agent: AgentId;
22
+ scope: Scope;
23
+ }
24
+ export interface TargetResult extends TargetKey {
25
+ delivery: Delivery | null;
26
+ execution: Execution;
27
+ observation: Observation;
28
+ content?: ContentState;
29
+ blockers: Diagnostic[];
30
+ requiredBy: string[];
31
+ recoveryActions?: string[];
32
+ backend?: unknown;
33
+ }
34
+ export interface RecoveryReceiptV1 {
35
+ schemaVersion: 1;
36
+ kind: 'aw-recovery';
37
+ scope: Scope;
38
+ command: string;
39
+ ok: boolean;
40
+ intent: {
41
+ state: IntentObservation['state'];
42
+ digest?: string;
43
+ roots: string[] | null;
44
+ };
45
+ requestedTargets: TargetKey[];
46
+ selection: {
47
+ agents: AgentId[];
48
+ origin: 'argument' | 'preference' | 'none';
49
+ };
50
+ blockers: Diagnostic[];
51
+ errors: Diagnostic[];
52
+ targetResults: TargetResult[];
53
+ remainingTargets: TargetKey[];
54
+ recoveryActions: string[];
55
+ declarationChanged: boolean;
56
+ preferencesChanged: boolean;
57
+ configChanged: boolean;
58
+ outputsMayHaveChanged: boolean;
59
+ }
60
+ export interface RecoveryStatusV1 {
61
+ schemaVersion: 1;
62
+ kind: 'aw-recovery-status';
63
+ scope: Scope;
64
+ ok: boolean;
65
+ intent: {
66
+ state: IntentObservation['state'];
67
+ digest?: string;
68
+ };
69
+ selection: {
70
+ agents: AgentId[];
71
+ origin: 'argument' | 'preference' | 'none';
72
+ preferences: PreferencesObservation['state'];
73
+ };
74
+ inventory: Array<{
75
+ pluginId: string;
76
+ source: string;
77
+ sourceState: string;
78
+ blockers: Diagnostic[];
79
+ targetResults: TargetResult[];
80
+ }> | null;
81
+ extraObserved: unknown[];
82
+ coverage: unknown;
83
+ counts: unknown;
84
+ allSatisfied: boolean | null;
85
+ errors: Diagnostic[];
86
+ }
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/recovery/types.ts"],"names":[],"mappings":""}
@@ -1,4 +1,4 @@
1
- import { type PluginMeta, type Scope } from '@lesliechan721/aw-plugin-core';
1
+ import { type PlatformTarget, type PluginMeta, type Scope } from '@lesliechan721/aw-plugin-core';
2
2
  import { type ReviewPlatform, type ReviewPluginProfileConfig, type ReviewProfile, type ReviewProfileConfig, type ReviewSelectedSkill } from './review-types.js';
3
3
  export declare function normalizeReviewProfileConfig(value: unknown): ReviewProfileConfig;
4
4
  export declare function parseReviewProfile(value: unknown): ReviewProfile;
@@ -6,6 +6,7 @@ export declare function resolveReviewPluginProfileConfig(options: {
6
6
  plugin: PluginMeta;
7
7
  plugins?: readonly PluginMeta[];
8
8
  scope: Scope;
9
+ platform?: PlatformTarget;
9
10
  config: ReviewProfileConfig;
10
11
  keys?: readonly string[];
11
12
  }): ReviewPluginProfileConfig;