@lesliechan721/aw 0.1.0-beta.10 → 0.1.0-beta.11

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 (218) hide show
  1. package/dist/authoring/assets/aw-config.d.mts +1 -50
  2. package/dist/authoring/assets/aw-config.mjs +58 -928
  3. package/dist/authoring/assets/aw-config.mjs.map +1 -1
  4. package/dist/authoring/scripts/init-plugin.mjs +28 -33
  5. package/dist/authoring/scripts/init-plugin.mjs.map +1 -1
  6. package/dist/authoring/scripts/lib/plugin-version-check.d.mts +1 -0
  7. package/dist/authoring/scripts/lib/plugin-version-check.mjs +229 -8
  8. package/dist/authoring/scripts/lib/plugin-version-check.mjs.map +1 -1
  9. package/dist/authoring/scripts/validate-plugin.mjs +165 -45
  10. package/dist/authoring/scripts/validate-plugin.mjs.map +1 -1
  11. package/dist/scripts/bundle-plugins.js +18 -4
  12. package/dist/scripts/bundle-plugins.js.map +1 -1
  13. package/dist/scripts/test-plugin-scripts.d.ts +2 -0
  14. package/dist/scripts/test-plugin-scripts.js +21 -5
  15. package/dist/scripts/test-plugin-scripts.js.map +1 -1
  16. package/dist/src/commands/aw-capabilities.d.ts +1 -1
  17. package/dist/src/commands/aw-capabilities.js +1 -1
  18. package/dist/src/commands/aw-capabilities.js.map +1 -1
  19. package/dist/src/commands/catalog-dev-source.d.ts +6 -3
  20. package/dist/src/commands/catalog-dev-source.js +96 -35
  21. package/dist/src/commands/catalog-dev-source.js.map +1 -1
  22. package/dist/src/commands/catalog-publication-inspection.d.ts +1 -1
  23. package/dist/src/commands/catalog-publication-inspection.js +54 -8
  24. package/dist/src/commands/catalog-publication-inspection.js.map +1 -1
  25. package/dist/src/commands/catalog-publication-journal.js +1 -1
  26. package/dist/src/commands/catalog-publication-journal.js.map +1 -1
  27. package/dist/src/commands/catalog-source.d.ts +19 -4
  28. package/dist/src/commands/catalog-source.js +121 -12
  29. package/dist/src/commands/catalog-source.js.map +1 -1
  30. package/dist/src/commands/catalog-store.d.ts +26 -7
  31. package/dist/src/commands/catalog-store.js +361 -42
  32. package/dist/src/commands/catalog-store.js.map +1 -1
  33. package/dist/src/commands/console.js +28 -17
  34. package/dist/src/commands/console.js.map +1 -1
  35. package/dist/src/commands/operation-plan.d.ts +2 -1
  36. package/dist/src/commands/operation-plan.js +24 -0
  37. package/dist/src/commands/operation-plan.js.map +1 -1
  38. package/dist/src/commands/operation-planner.d.ts +2 -2
  39. package/dist/src/commands/operation-planner.js +11 -19
  40. package/dist/src/commands/operation-planner.js.map +1 -1
  41. package/dist/src/commands/options.d.ts +2 -2
  42. package/dist/src/commands/options.js +18 -4
  43. package/dist/src/commands/options.js.map +1 -1
  44. package/dist/src/commands/plugin-capabilities.js +2 -2
  45. package/dist/src/commands/plugin-capabilities.js.map +1 -1
  46. package/dist/src/commands/rebuild-command.d.ts +7 -0
  47. package/dist/src/commands/rebuild-command.js +769 -279
  48. package/dist/src/commands/rebuild-command.js.map +1 -1
  49. package/dist/src/commands/rebuild-integration.d.ts +24 -47
  50. package/dist/src/commands/rebuild-integration.js +1074 -1011
  51. package/dist/src/commands/rebuild-integration.js.map +1 -1
  52. package/dist/src/commands/rebuild-operations.d.ts +50 -12
  53. package/dist/src/commands/rebuild-operations.js +207 -101
  54. package/dist/src/commands/rebuild-operations.js.map +1 -1
  55. package/dist/src/commands/status-v6.d.ts +21 -2
  56. package/dist/src/commands/status-v6.js +163 -31
  57. package/dist/src/commands/status-v6.js.map +1 -1
  58. package/dist/src/commands/sync-command.d.ts +17 -0
  59. package/dist/src/commands/sync-command.js +45 -37
  60. package/dist/src/commands/sync-command.js.map +1 -1
  61. package/dist/src/commands/write-commands.d.ts +5 -0
  62. package/dist/src/commands/write-commands.js +50 -3
  63. package/dist/src/commands/write-commands.js.map +1 -1
  64. package/dist/src/generators/local-plugin.js +14 -4
  65. package/dist/src/generators/local-plugin.js.map +1 -1
  66. package/dist/src/index.js +216 -85
  67. package/dist/src/index.js.map +1 -1
  68. package/dist/src/output/command-receipt.js +1 -3
  69. package/dist/src/output/command-receipt.js.map +1 -1
  70. package/dist/src/output/rebuild-progress.js +1 -3
  71. package/dist/src/output/rebuild-progress.js.map +1 -1
  72. package/dist/src/portable/materializer.js +6 -6
  73. package/dist/src/portable/materializer.js.map +1 -1
  74. package/dist/src/tui/catalog-generation.js +41 -1
  75. package/dist/src/tui/catalog-generation.js.map +1 -1
  76. package/dist/src/tui/catalog-sources/session.d.ts +1 -0
  77. package/dist/src/tui/catalog-sources/session.js +16 -3
  78. package/dist/src/tui/catalog-sources/session.js.map +1 -1
  79. package/dist/src/tui/catalog-sources/types.d.ts +3 -2
  80. package/dist/src/tui/components.d.ts +4 -0
  81. package/dist/src/tui/components.js +36 -24
  82. package/dist/src/tui/components.js.map +1 -1
  83. package/dist/src/tui/console-app-v4.d.ts +13 -4
  84. package/dist/src/tui/console-app-v4.js +2067 -839
  85. package/dist/src/tui/console-app-v4.js.map +1 -1
  86. package/dist/src/tui/controller-runtime.js +585 -33
  87. package/dist/src/tui/controller-runtime.js.map +1 -1
  88. package/dist/src/tui/controller.d.ts +152 -6
  89. package/dist/src/tui/controller.js +1168 -156
  90. package/dist/src/tui/controller.js.map +1 -1
  91. package/dist/src/tui/diagnostic-projection.d.ts +22 -0
  92. package/dist/src/tui/diagnostic-projection.js +437 -0
  93. package/dist/src/tui/diagnostic-projection.js.map +1 -0
  94. package/dist/src/tui/diagnostics.d.ts +1 -1
  95. package/dist/src/tui/diagnostics.js +6 -1
  96. package/dist/src/tui/diagnostics.js.map +1 -1
  97. package/dist/src/tui/glossary.d.ts +23 -0
  98. package/dist/src/tui/glossary.js +42 -0
  99. package/dist/src/tui/glossary.js.map +1 -0
  100. package/dist/src/tui/index.d.ts +4 -1
  101. package/dist/src/tui/index.js +4 -1
  102. package/dist/src/tui/index.js.map +1 -1
  103. package/dist/src/tui/keys.d.ts +44 -0
  104. package/dist/src/tui/keys.js +43 -15
  105. package/dist/src/tui/keys.js.map +1 -1
  106. package/dist/src/tui/lifecycle-action-view.d.ts +6 -0
  107. package/dist/src/tui/lifecycle-action-view.js +34 -0
  108. package/dist/src/tui/lifecycle-action-view.js.map +1 -0
  109. package/dist/src/tui/model.d.ts +12 -2
  110. package/dist/src/tui/model.js +128 -52
  111. package/dist/src/tui/model.js.map +1 -1
  112. package/dist/src/tui/operation-diagnostic-screens.d.ts +21 -0
  113. package/dist/src/tui/operation-diagnostic-screens.js +101 -0
  114. package/dist/src/tui/operation-diagnostic-screens.js.map +1 -0
  115. package/dist/src/tui/operation-history.d.ts +80 -0
  116. package/dist/src/tui/operation-history.js +130 -0
  117. package/dist/src/tui/operation-history.js.map +1 -0
  118. package/dist/src/tui/operation-review-planner.js +306 -86
  119. package/dist/src/tui/operation-review-planner.js.map +1 -1
  120. package/dist/src/tui/router.d.ts +82 -17
  121. package/dist/src/tui/router.js +186 -38
  122. package/dist/src/tui/router.js.map +1 -1
  123. package/dist/src/tui/screen-registry.d.ts +546 -0
  124. package/dist/src/tui/screen-registry.js +179 -0
  125. package/dist/src/tui/screen-registry.js.map +1 -0
  126. package/dist/src/tui/session-console-app.d.ts +6 -0
  127. package/dist/src/tui/session-console-app.js +13 -0
  128. package/dist/src/tui/session-console-app.js.map +1 -0
  129. package/dist/src/tui/session-host.d.ts +44 -0
  130. package/dist/src/tui/session-host.js +197 -0
  131. package/dist/src/tui/session-host.js.map +1 -0
  132. package/dist/src/types.d.ts +64 -3
  133. package/dist/src/types.js +1 -1
  134. package/dist/src/types.js.map +1 -1
  135. package/dist/src/utils/agent-version.js +1 -1
  136. package/dist/src/utils/agent-version.js.map +1 -1
  137. package/dist/src/utils/artifact-renderer.d.ts +2 -1
  138. package/dist/src/utils/artifact-renderer.js +52 -52
  139. package/dist/src/utils/artifact-renderer.js.map +1 -1
  140. package/dist/src/utils/bundle-layout.js +4 -4
  141. package/dist/src/utils/bundle-layout.js.map +1 -1
  142. package/dist/src/utils/catalog-capability-projection.d.ts +8 -0
  143. package/dist/src/utils/catalog-capability-projection.js +14 -0
  144. package/dist/src/utils/catalog-capability-projection.js.map +1 -0
  145. package/dist/src/utils/catalog-generation-resolver.d.ts +14 -2
  146. package/dist/src/utils/catalog-generation-resolver.js +49 -27
  147. package/dist/src/utils/catalog-generation-resolver.js.map +1 -1
  148. package/dist/src/utils/catalog-generation-service.d.ts +8 -1
  149. package/dist/src/utils/catalog-generation-service.js +81 -47
  150. package/dist/src/utils/catalog-generation-service.js.map +1 -1
  151. package/dist/src/utils/catalog-generation-store.d.ts +1 -0
  152. package/dist/src/utils/catalog-generation-store.js +60 -5
  153. package/dist/src/utils/catalog-generation-store.js.map +1 -1
  154. package/dist/src/utils/catalog-operation-context.js +1 -0
  155. package/dist/src/utils/catalog-operation-context.js.map +1 -1
  156. package/dist/src/utils/catalog-public-error.js +4 -0
  157. package/dist/src/utils/catalog-public-error.js.map +1 -1
  158. package/dist/src/utils/catalog-source-impact.d.ts +3 -2
  159. package/dist/src/utils/catalog-source-impact.js +142 -20
  160. package/dist/src/utils/catalog-source-impact.js.map +1 -1
  161. package/dist/src/utils/catalog-source-references.js +95 -9
  162. package/dist/src/utils/catalog-source-references.js.map +1 -1
  163. package/dist/src/utils/catalog-sources.d.ts +1 -1
  164. package/dist/src/utils/catalog-sources.js +19 -3
  165. package/dist/src/utils/catalog-sources.js.map +1 -1
  166. package/dist/src/utils/codex-manager.js +8 -0
  167. package/dist/src/utils/codex-manager.js.map +1 -1
  168. package/dist/src/utils/codex-native-observation.d.ts +34 -1
  169. package/dist/src/utils/codex-native-observation.js +132 -0
  170. package/dist/src/utils/codex-native-observation.js.map +1 -1
  171. package/dist/src/utils/codex-reconciler.d.ts +0 -2
  172. package/dist/src/utils/codex-reconciler.js.map +1 -1
  173. package/dist/src/utils/codex-shared-native.d.ts +2 -26
  174. package/dist/src/utils/codex-shared-native.js +8 -82
  175. package/dist/src/utils/codex-shared-native.js.map +1 -1
  176. package/dist/src/utils/git-catalog-provider.d.ts +3 -0
  177. package/dist/src/utils/git-catalog-provider.js +40 -1
  178. package/dist/src/utils/git-catalog-provider.js.map +1 -1
  179. package/dist/src/utils/local-marketplace.d.ts +1 -0
  180. package/dist/src/utils/local-marketplace.js +69 -73
  181. package/dist/src/utils/local-marketplace.js.map +1 -1
  182. package/dist/src/utils/multi-source-catalog.js +1 -0
  183. package/dist/src/utils/multi-source-catalog.js.map +1 -1
  184. package/dist/src/utils/native-cli.d.ts +9 -4
  185. package/dist/src/utils/native-cli.js +280 -34
  186. package/dist/src/utils/native-cli.js.map +1 -1
  187. package/dist/src/utils/path-catalog-provider.js +2 -0
  188. package/dist/src/utils/path-catalog-provider.js.map +1 -1
  189. package/dist/src/utils/plugin-config-write.d.ts +15 -13
  190. package/dist/src/utils/plugin-config-write.js +418 -198
  191. package/dist/src/utils/plugin-config-write.js.map +1 -1
  192. package/dist/src/utils/plugin-config.d.ts +48 -4
  193. package/dist/src/utils/plugin-config.js +289 -38
  194. package/dist/src/utils/plugin-config.js.map +1 -1
  195. package/dist/src/utils/plugin-scripts.d.ts +20 -12
  196. package/dist/src/utils/plugin-scripts.js +376 -109
  197. package/dist/src/utils/plugin-scripts.js.map +1 -1
  198. package/dist/src/utils/process-tree.d.ts +2 -2
  199. package/dist/src/utils/process-tree.js +1 -1
  200. package/dist/src/utils/process-tree.js.map +1 -1
  201. package/dist/src/utils/project-boundary.d.ts +11 -1
  202. package/dist/src/utils/project-boundary.js +17 -8
  203. package/dist/src/utils/project-boundary.js.map +1 -1
  204. package/dist/src/utils/safe-operation-diagnostic.d.ts +15 -0
  205. package/dist/src/utils/safe-operation-diagnostic.js +33 -0
  206. package/dist/src/utils/safe-operation-diagnostic.js.map +1 -0
  207. package/dist/src/utils/sensitive-content.d.ts +1 -0
  208. package/dist/src/utils/sensitive-content.js +15 -0
  209. package/dist/src/utils/sensitive-content.js.map +1 -0
  210. package/dist/src/utils/windows-claude-shim.d.ts +9 -0
  211. package/dist/src/utils/windows-claude-shim.js +141 -0
  212. package/dist/src/utils/windows-claude-shim.js.map +1 -0
  213. package/dist/vitest.config.js +91 -10
  214. package/dist/vitest.config.js.map +1 -1
  215. package/package.json +9 -9
  216. package/dist/authoring/templates/aw-config-runtime.d.mts +0 -2
  217. package/dist/authoring/templates/aw-config-runtime.mjs +0 -407
  218. package/dist/authoring/templates/aw-config-runtime.mjs.map +0 -1
@@ -2,16 +2,42 @@ import crypto from 'node:crypto';
2
2
  import path from 'node:path';
3
3
  import fs from 'fs-extra';
4
4
  import { IMPLEMENTED_AW_CAPABILITIES } from '../commands/aw-capabilities.js';
5
+ import { projectCatalogCapabilityCompatibility } from './catalog-capability-projection.js';
5
6
  import { CatalogGenerationError } from './catalog-generation-error.js';
6
7
  import { readCatalogGenerationControlSnapshot, } from './catalog-generation-control-snapshot.js';
7
8
  import { CatalogProviderCompatibilityError } from './catalog-public-error.js';
8
9
  import { createCatalogStoreKey, readCatalogSnapshotLogicalIdentity, readCatalogStoreMetadata, readCatalogStoreEntry, resolveCatalogStoreLocation, } from './catalog-generation-store.js';
9
10
  import { calculateCatalogSourceConfigFingerprint } from './catalog-source-identity.js';
10
- import { checkAwCapabilitySupport, validatePluginManifest } from './manifest.js';
11
+ import { validatePluginManifest } from './manifest.js';
11
12
  import { validateCatalogManifestV7 } from './catalog-manifest-v7.js';
12
13
  import { calculateFileDigest } from './bundle-integrity.js';
13
14
  import { calculateCatalogEntryArtifactDigest, calculateCatalogEntryContentDigest, } from './catalog-digests.js';
14
15
  import { CURRENT_CATALOG_MANIFEST_FILE } from '../constants.js';
16
+ export async function readValidatedCatalogGenerationStoreEntry(options) {
17
+ const storeKey = createCatalogStoreKey(options.logicalIdentity, options.snapshotDigest);
18
+ const cached = options.validatedStoreEntries?.get(storeKey);
19
+ if (cached)
20
+ return cached;
21
+ let pending = options.validatingStoreEntries?.get(storeKey);
22
+ if (!pending) {
23
+ pending = readCatalogStoreEntry({
24
+ logicalIdentity: options.logicalIdentity,
25
+ snapshotDigest: options.snapshotDigest,
26
+ env: options.env,
27
+ });
28
+ options.validatingStoreEntries?.set(storeKey, pending);
29
+ }
30
+ try {
31
+ const entry = await pending;
32
+ options.validatedStoreEntries?.set(storeKey, entry);
33
+ return entry;
34
+ }
35
+ finally {
36
+ if (options.validatingStoreEntries?.get(storeKey) === pending) {
37
+ options.validatingStoreEntries.delete(storeKey);
38
+ }
39
+ }
40
+ }
15
41
  async function assertRegularDirectory(value, label) {
16
42
  const stats = await fs.lstat(value);
17
43
  if (!stats.isDirectory() || stats.isSymbolicLink()) {
@@ -41,27 +67,13 @@ async function resolveFromState(options) {
41
67
  message: `Active Catalog snapshot for source "${options.source.id}" does not match the current source configuration. Run aw catalog source sync ${options.source.id}.`,
42
68
  });
43
69
  const storeKey = createCatalogStoreKey(options.active.logicalIdentity, options.active.snapshotDigest);
44
- let entry = options.validatedStoreEntries?.get(storeKey);
45
- if (!entry) {
46
- let pending = options.validatingStoreEntries?.get(storeKey);
47
- if (!pending) {
48
- pending = readCatalogStoreEntry({
49
- logicalIdentity: options.active.logicalIdentity,
50
- snapshotDigest: options.active.snapshotDigest,
51
- env: options.env,
52
- });
53
- options.validatingStoreEntries?.set(storeKey, pending);
54
- }
55
- try {
56
- entry = await pending;
57
- options.validatedStoreEntries?.set(storeKey, entry);
58
- }
59
- finally {
60
- if (options.validatingStoreEntries?.get(storeKey) === pending) {
61
- options.validatingStoreEntries.delete(storeKey);
62
- }
63
- }
64
- }
70
+ const entry = await readValidatedCatalogGenerationStoreEntry({
71
+ logicalIdentity: options.active.logicalIdentity,
72
+ snapshotDigest: options.active.snapshotDigest,
73
+ env: options.env,
74
+ validatedStoreEntries: options.validatedStoreEntries,
75
+ validatingStoreEntries: options.validatingStoreEntries,
76
+ });
65
77
  if (entry.metadata.manifestDigest !== options.active.manifestDigest) {
66
78
  throw new CatalogGenerationError({
67
79
  code: 'catalogGenerationIdentityMismatch',
@@ -69,12 +81,12 @@ async function resolveFromState(options) {
69
81
  message: `Active Catalog snapshot for source "${options.source.id}" does not match store metadata. Run aw catalog source sync ${options.source.id}.`,
70
82
  });
71
83
  }
72
- const support = checkAwCapabilitySupport(entry.metadata.requiredAwCapabilities, IMPLEMENTED_AW_CAPABILITIES);
73
- if (!support.supported) {
84
+ const compatibility = projectCatalogCapabilityCompatibility(entry.metadata.requiredAwCapabilities);
85
+ if (options.requireCompatibility && compatibility.state === 'unsupported') {
74
86
  throw new CatalogProviderCompatibilityError({
75
87
  sourceId: options.source.id,
76
- requiredCapabilities: entry.metadata.requiredAwCapabilities,
77
- missingCapabilities: support.missing,
88
+ requiredCapabilities: compatibility.requiredCapabilities,
89
+ missingCapabilities: compatibility.missingCapabilities,
78
90
  availableCapabilities: IMPLEMENTED_AW_CAPABILITIES,
79
91
  });
80
92
  }
@@ -93,7 +105,7 @@ async function resolveFromState(options) {
93
105
  active: options.active,
94
106
  };
95
107
  }
96
- export async function resolveActiveCatalogGeneration(options) {
108
+ async function resolveActiveCatalogGenerationWithPolicy(options, requireCompatibility) {
97
109
  const env = options.env ?? process.env;
98
110
  const control = await readCatalogGenerationControlSnapshot({ env });
99
111
  const source = control.configSnapshot.config.sources.find((entry) => entry.id === options.sourceId);
@@ -108,10 +120,18 @@ export async function resolveActiveCatalogGeneration(options) {
108
120
  sourceIdentity: control.sourceIdentities[source.id],
109
121
  active: control.generationState.sources[source.id]?.active,
110
122
  env,
123
+ requireCompatibility,
111
124
  validatedStoreEntries: options.validatedStoreEntries,
112
125
  validatingStoreEntries: options.validatingStoreEntries,
113
126
  });
114
127
  }
128
+ export async function resolveActiveCatalogGeneration(options) {
129
+ return resolveActiveCatalogGenerationWithPolicy(options, true);
130
+ }
131
+ /** @internal Complete Active evidence for freshness checks before consumer compatibility gating. */
132
+ export async function resolveValidatedActiveCatalogGeneration(options) {
133
+ return resolveActiveCatalogGenerationWithPolicy(options, false);
134
+ }
115
135
  export async function resolveActiveCatalogPluginShallow(options) {
116
136
  const env = options.env ?? process.env;
117
137
  const control = await readCatalogGenerationControlSnapshot({ env });
@@ -197,6 +217,7 @@ export async function resolveActiveCatalogPluginShallow(options) {
197
217
  return {
198
218
  sourceId: source.id,
199
219
  sourceIdentity,
220
+ logicalIdentity: active.logicalIdentity,
200
221
  catalogVersion: metadata.catalogVersion,
201
222
  snapshotPath: location.snapshotRoot,
202
223
  plugin,
@@ -236,6 +257,7 @@ export async function resolveCatalogGenerationSet(options = {}) {
236
257
  sourceIdentity: control.sourceIdentities[source.id],
237
258
  active: control.generationState.sources[source.id]?.active,
238
259
  env,
260
+ requireCompatibility: true,
239
261
  validatedStoreEntries: options.validatedStoreEntries,
240
262
  validatingStoreEntries: options.validatingStoreEntries,
241
263
  })));
@@ -1 +1 @@
1
- {"version":3,"file":"catalog-generation-resolver.js","sourceRoot":"","sources":["../../../src/utils/catalog-generation-resolver.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,aAAa,CAAC;AACjC,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EAAE,MAAM,UAAU,CAAC;AAU1B,OAAO,EAAE,2BAA2B,EAAE,MAAM,gCAAgC,CAAC;AAC7E,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AACvE,OAAO,EACL,oCAAoC,GAErC,MAAM,0CAA0C,CAAC;AAClD,OAAO,EAAE,iCAAiC,EAAE,MAAM,2BAA2B,CAAC;AAC9E,OAAO,EACL,qBAAqB,EACrB,kCAAkC,EAClC,wBAAwB,EACxB,qBAAqB,EACrB,2BAA2B,GAE5B,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,uCAAuC,EAAE,MAAM,8BAA8B,CAAC;AACvF,OAAO,EAAE,wBAAwB,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAC;AACjF,OAAO,EAAE,yBAAyB,EAAE,MAAM,0BAA0B,CAAC;AACrE,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EACL,mCAAmC,EACnC,kCAAkC,GACnC,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,6BAA6B,EAAE,MAAM,iBAAiB,CAAC;AAchE,KAAK,UAAU,sBAAsB,CAAC,KAAa,EAAE,KAAa;IAChE,MAAM,KAAK,GAAG,MAAM,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACpC,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,IAAI,KAAK,CAAC,cAAc,EAAE,EAAE,CAAC;QACnD,MAAM,IAAI,KAAK,CAAC,GAAG,KAAK,+BAA+B,CAAC,CAAC;IAC3D,CAAC;AACH,CAAC;AAED,KAAK,UAAU,iBAAiB,CAAC,KAAa,EAAE,KAAa;IAC3D,MAAM,KAAK,GAAG,MAAM,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACpC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,KAAK,CAAC,cAAc,EAAE,EAAE,CAAC;QAC9C,MAAM,IAAI,KAAK,CAAC,GAAG,KAAK,0BAA0B,CAAC,CAAC;IACtD,CAAC;AACH,CAAC;AAED,KAAK,UAAU,gBAAgB,CAAC,OAO/B;IACC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;QACpB,MAAM,IAAI,sBAAsB,CAAC;YAC/B,IAAI,EAAE,8BAA8B;YACpC,QAAQ,EAAE,OAAO,CAAC,MAAM,CAAC,EAAE;YAC3B,OAAO,EAAE,mBAAmB,OAAO,CAAC,MAAM,CAAC,EAAE,wDAAwD,OAAO,CAAC,MAAM,CAAC,EAAE,GAAG;SAC1H,CAAC,CAAC;IACL,CAAC;IACD,MAAM,WAAW,GAAG,uCAAuC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAC5E,IACE,OAAO,CAAC,MAAM,CAAC,cAAc,KAAK,OAAO,CAAC,cAAc;WACrD,OAAO,CAAC,MAAM,CAAC,uBAAuB,KAAK,WAAW;QACzD,MAAM,IAAI,sBAAsB,CAAC;YACjC,IAAI,EAAE,mCAAmC;YACzC,QAAQ,EAAE,OAAO,CAAC,MAAM,CAAC,EAAE;YAC3B,OAAO,EAAE,uCAAuC,OAAO,CAAC,MAAM,CAAC,EAAE,iFAAiF,OAAO,CAAC,MAAM,CAAC,EAAE,GAAG;SACvK,CAAC,CAAC;IACH,MAAM,QAAQ,GAAG,qBAAqB,CAAC,OAAO,CAAC,MAAM,CAAC,eAAe,EAAE,OAAO,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;IACtG,IAAI,KAAK,GAAG,OAAO,CAAC,qBAAqB,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC;IACzD,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,IAAI,OAAO,GAAG,OAAO,CAAC,sBAAsB,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC5D,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,GAAG,qBAAqB,CAAC;gBAC9B,eAAe,EAAE,OAAO,CAAC,MAAM,CAAC,eAAe;gBAC/C,cAAc,EAAE,OAAO,CAAC,MAAM,CAAC,cAAc;gBAC7C,GAAG,EAAE,OAAO,CAAC,GAAG;aACjB,CAAC,CAAC;YACH,OAAO,CAAC,sBAAsB,EAAE,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QACzD,CAAC;QACD,IAAI,CAAC;YACH,KAAK,GAAG,MAAM,OAAO,CAAC;YACtB,OAAO,CAAC,qBAAqB,EAAE,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;QACtD,CAAC;gBAAS,CAAC;YACT,IAAI,OAAO,CAAC,sBAAsB,EAAE,GAAG,CAAC,QAAQ,CAAC,KAAK,OAAO,EAAE,CAAC;gBAC9D,OAAO,CAAC,sBAAsB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YAClD,CAAC;QACH,CAAC;IACH,CAAC;IACD,IAAI,KAAK,CAAC,QAAQ,CAAC,cAAc,KAAK,OAAO,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC;QACpE,MAAM,IAAI,sBAAsB,CAAC;YAC/B,IAAI,EAAE,mCAAmC;YACzC,QAAQ,EAAE,OAAO,CAAC,MAAM,CAAC,EAAE;YAC3B,OAAO,EAAE,uCAAuC,OAAO,CAAC,MAAM,CAAC,EAAE,+DAA+D,OAAO,CAAC,MAAM,CAAC,EAAE,GAAG;SACrJ,CAAC,CAAC;IACL,CAAC;IACD,MAAM,OAAO,GAAG,wBAAwB,CACtC,KAAK,CAAC,QAAQ,CAAC,sBAAsB,EACrC,2BAA2B,CAC5B,CAAC;IACF,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;QACvB,MAAM,IAAI,iCAAiC,CAAC;YAC1C,QAAQ,EAAE,OAAO,CAAC,MAAM,CAAC,EAAE;YAC3B,oBAAoB,EAAE,KAAK,CAAC,QAAQ,CAAC,sBAAsB;YAC3D,mBAAmB,EAAE,OAAO,CAAC,OAAO;YACpC,qBAAqB,EAAE,2BAA2B;SACnD,CAAC,CAAC;IACL,CAAC;IACD,OAAO;QACL,QAAQ,EAAE,OAAO,CAAC,MAAM,CAAC,EAAE;QAC3B,uBAAuB,EAAE,OAAO,CAAC,MAAM,CAAC,uBAAuB;QAC/D,cAAc,EAAE,OAAO,CAAC,MAAM,CAAC,cAAc;QAC7C,eAAe,EAAE,OAAO,CAAC,MAAM,CAAC,eAAe;QAC/C,cAAc,EAAE,KAAK,CAAC,QAAQ,CAAC,cAAc;QAC7C,cAAc,EAAE,OAAO,CAAC,MAAM,CAAC,cAAc;QAC7C,cAAc,EAAE,OAAO,CAAC,MAAM,CAAC,cAAc;QAC7C,cAAc,EAAE,OAAO,CAAC,MAAM,CAAC,cAAc;QAC7C,QAAQ;QACR,YAAY,EAAE,KAAK,CAAC,YAAY;QAChC,QAAQ,EAAE,KAAK,CAAC,QAAQ;QACxB,MAAM,EAAE,OAAO,CAAC,MAAM;KACvB,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,8BAA8B,CAAC,OAKpD;IACC,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC;IACvC,MAAM,OAAO,GAAG,MAAM,oCAAoC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;IACpE,MAAM,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAC;IACpG,IAAI,CAAC,MAAM;QAAE,MAAM,IAAI,sBAAsB,CAAC;YAC5C,IAAI,EAAE,gCAAgC;YACtC,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,OAAO,EAAE,mBAAmB,OAAO,CAAC,QAAQ,sBAAsB;SACnE,CAAC,CAAC;IACH,OAAO,gBAAgB,CAAC;QACtB,MAAM;QACN,cAAc,EAAE,OAAO,CAAC,gBAAgB,CAAC,MAAM,CAAC,EAAE,CAAE;QACpD,MAAM,EAAE,OAAO,CAAC,eAAe,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,MAAM;QAC1D,GAAG;QACH,qBAAqB,EAAE,OAAO,CAAC,qBAAqB;QACpD,sBAAsB,EAAE,OAAO,CAAC,sBAAsB;KACvD,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,iCAAiC,CAAC,OAIvD;IACC,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC;IACvC,MAAM,OAAO,GAAG,MAAM,oCAAoC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;IACpE,MAAM,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAC;IACpG,MAAM,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IACzE,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM;QAAE,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAC;IAC3F,MAAM,cAAc,GAAG,OAAO,CAAC,gBAAgB,CAAC,MAAM,CAAC,EAAE,CAAE,CAAC;IAC5D,IAAI,MAAM,CAAC,cAAc,KAAK,cAAc;WACvC,MAAM,CAAC,uBAAuB,KAAK,uCAAuC,CAAC,MAAM,CAAC,EAAE,CAAC;QACxF,MAAM,IAAI,KAAK,CAAC,2EAA2E,CAAC,CAAC;IAC/F,CAAC;IAED,MAAM,QAAQ,GAAG,2BAA2B,CAAC;QAC3C,eAAe,EAAE,MAAM,CAAC,eAAe;QACvC,cAAc,EAAE,MAAM,CAAC,cAAc;QACrC,GAAG;KACJ,CAAC,CAAC;IACH,MAAM,QAAQ,GAAG,MAAM,wBAAwB,CAAC;QAC9C,eAAe,EAAE,MAAM,CAAC,eAAe;QACvC,cAAc,EAAE,MAAM,CAAC,cAAc;QACrC,GAAG;KACJ,CAAC,CAAC;IACH,IAAI,QAAQ,CAAC,cAAc,KAAK,MAAM,CAAC,cAAc;WAChD,QAAQ,CAAC,eAAe,KAAK,MAAM,CAAC,eAAe;WACnD,QAAQ,CAAC,cAAc,KAAK,MAAM,CAAC,cAAc,EAAE,CAAC;QACvD,MAAM,IAAI,KAAK,CAAC,8EAA8E,CAAC,CAAC;IAClG,CAAC;IACD,MAAM,sBAAsB,CAAC,QAAQ,CAAC,YAAY,EAAE,oBAAoB,CAAC,CAAC;IAC1E,MAAM,sBAAsB,CAAC,QAAQ,CAAC,wBAAwB,EAAE,gCAAgC,CAAC,CAAC;IAClG,MAAM,sBAAsB,CAAC,QAAQ,CAAC,QAAQ,EAAE,qBAAqB,CAAC,CAAC;IACvE,MAAM,sBAAsB,CAAC,QAAQ,CAAC,YAAY,EAAE,kBAAkB,CAAC,CAAC;IACxE,IAAI,MAAM,kCAAkC,CAAC,QAAQ,CAAC,YAAY,CAAC,KAAK,MAAM,CAAC,eAAe,EAAE,CAAC;QAC/F,MAAM,IAAI,KAAK,CAAC,gEAAgE,CAAC,CAAC;IACpF,CAAC;IACD,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE,6BAA6B,CAAC,CAAC;IACrF,MAAM,iBAAiB,CAAC,YAAY,EAAE,kBAAkB,CAAC,CAAC;IAC1D,IAAI,MAAM,mBAAmB,CAAC,YAAY,CAAC,KAAK,MAAM,CAAC,cAAc,EAAE,CAAC;QACtE,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;IACnE,CAAC;IACD,MAAM,WAAW,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,YAAY,CAA4B,CAAC;IAC/E,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;IACjF,MAAM,QAAQ,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,KAAK,IAAI;WACrD,OAAO,KAAK,KAAK,QAAQ;WACzB,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;WACpB,KAAiC,CAAC,IAAI,KAAK,OAAO,CAAC,UAAU,CAAC,CAAC;IACrE,IAAI,CAAC,QAAQ;QAAE,MAAM,IAAI,KAAK,CAAC,2DAA2D,CAAC,CAAC;IAC5F,MAAM,QAAQ,GAAG,yBAAyB,CAAC,EAAE,GAAG,WAAW,EAAE,OAAO,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IACpF,IAAI,QAAQ,CAAC,cAAc,KAAK,QAAQ,CAAC,cAAc;WAClD,QAAQ,CAAC,OAAO,KAAK,QAAQ,CAAC,OAAO;WACrC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,YAAY,IAAI,EAAE,CAAC;gBACpD,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,sBAAsB,CAAC,EAAE,CAAC;QACxD,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAC;IACrE,CAAC;IACD,MAAM,KAAK,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAE,CAAC;IACnC,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC;IAChE,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;IACzD,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC;QAC3D,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAC;IACxE,CAAC;IACD,MAAM,sBAAsB,CAAC,WAAW,EAAE,sBAAsB,CAAC,CAAC;IAClE,MAAM,sBAAsB,CAAC,UAAU,EAAE,wBAAwB,CAAC,CAAC;IACnE,MAAM,kBAAkB,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,gBAAgB,EAAE,aAAa,CAAC,CAAC;IAClF,MAAM,iBAAiB,CAAC,kBAAkB,EAAE,0BAA0B,CAAC,CAAC;IACxE,MAAM,iBAAiB,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,kBAAkB,CAA4B,CAAC;IAC3F,MAAM,oBAAoB,GAAG,EAAE,GAAG,iBAAiB,EAAE,CAAC;IACtD,OAAO,oBAAoB,CAAC,YAAY,CAAC;IACzC,MAAM,wBAAwB,GAAG,sBAAsB,CAAC,UAAU,EAAE,oBAAoB,CAAC,CAAC;IAC1F,MAAM,MAAM,GAAe;QACzB,OAAO,EAAE,UAAU;QACnB,YAAY,EAAE,kBAAkB;QAChC,QAAQ,EAAE,wBAAwB;KACnC,CAAC;IACF,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,KAAK,OAAO,CAAC,UAAU,IAAI,MAAM,CAAC,QAAQ,CAAC,OAAO,KAAK,KAAK,CAAC,OAAO,EAAE,CAAC;QAC7F,MAAM,IAAI,KAAK,CAAC,mEAAmE,CAAC,CAAC;IACvF,CAAC;IACD,MAAM,cAAc,GAAG,MAAM,mCAAmC,CAAC,UAAU,CAAC,CAAC;IAC7E,MAAM,aAAa,GAAG,MAAM,kCAAkC,CAAC,UAAU,CAAC,CAAC;IAC3E,IAAI,cAAc,KAAK,KAAK,CAAC,cAAc;WACtC,aAAa,KAAK,KAAK,CAAC,aAAa,EAAE,CAAC;QAC3C,MAAM,IAAI,KAAK,CAAC,0DAA0D,CAAC,CAAC;IAC9E,CAAC;IACD,OAAO;QACL,QAAQ,EAAE,MAAM,CAAC,EAAE;QACnB,cAAc;QACd,cAAc,EAAE,QAAQ,CAAC,cAAc;QACvC,YAAY,EAAE,QAAQ,CAAC,YAAY;QACnC,MAAM;KACP,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,mCAAmC,CACjD,YAAoB,EACpB,eAAuB,EACvB,OAAqC;IAErC,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QACxC,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,uBAAuB,EAAE,MAAM,CAAC,uBAAuB;QACvD,eAAe,EAAE,MAAM,CAAC,eAAe;QACvC,cAAc,EAAE,MAAM,CAAC,cAAc;QACrC,QAAQ,EAAE,MAAM,CAAC,QAAQ;KAC1B,CAAC,CAAC,CAAC;IACJ,OAAO,UAAU,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC;QACjE,YAAY;QACZ,eAAe;QACf,OAAO,EAAE,QAAQ;KAClB,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;AACtB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,2BAA2B,CAAC,UAM9C,EAAE;IACJ,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC;IACvC,MAAM,OAAO,GAAG,OAAO,CAAC,eAAe,IAAI,MAAM,oCAAoC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;IAC/F,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAC7E,IAAI,SAAS,EAAE,CAAC;QACd,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,cAAc,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;QAC7F,MAAM,OAAO,GAAG,OAAO,CAAC,SAAU,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC;QACjF,IAAI,OAAO;YAAE,MAAM,IAAI,sBAAsB,CAAC;gBAC5C,IAAI,EAAE,gCAAgC;gBACtC,QAAQ,EAAE,OAAO;gBACjB,OAAO,EAAE,mBAAmB,OAAO,sBAAsB;aAC1D,CAAC,CAAC;IACL,CAAC;IACD,MAAM,QAAQ,GAAG,OAAO,CAAC,cAAc,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAC3D,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,SAAS,IAAI,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CACnD,CAAC;IACF,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,gBAAgB,CAAC;QAC3E,MAAM;QACN,cAAc,EAAE,OAAO,CAAC,gBAAgB,CAAC,MAAM,CAAC,EAAE,CAAE;QACpD,MAAM,EAAE,OAAO,CAAC,eAAe,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,MAAM;QAC1D,GAAG;QACH,qBAAqB,EAAE,OAAO,CAAC,qBAAqB;QACpD,sBAAsB,EAAE,OAAO,CAAC,sBAAsB;KACvD,CAAC,CAAC,CAAC,CAAC;IACL,MAAM,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,EAAE,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC;IACzE,MAAM,eAAe,GAAG,OAAO,CAAC,cAAc,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,CAAE,CAAC,EAAE,CAAC;IACnG,OAAO;QACL,YAAY,EAAE,OAAO,CAAC,cAAc,CAAC,MAAM;QAC3C,eAAe;QACf,OAAO;QACP,mBAAmB,EAAE,mCAAmC,CACtD,OAAO,CAAC,cAAc,CAAC,MAAM,EAC7B,eAAe,EACf,OAAO,CACR;KACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"catalog-generation-resolver.js","sourceRoot":"","sources":["../../../src/utils/catalog-generation-resolver.ts"],"names":[],"mappings":"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"}
@@ -3,6 +3,8 @@ import { type CatalogStoreEntry } from './catalog-generation-store.js';
3
3
  export { removeCatalogSourceGenerationState } from './catalog-generation-state.js';
4
4
  import { catalogGitProviderInternal } from './git-catalog-provider.js';
5
5
  import { catalogPathProviderInternal } from './path-catalog-provider.js';
6
+ import { type CatalogCapabilityCompatibility } from './catalog-capability-projection.js';
7
+ import { inspectCatalogSourceImpact } from './catalog-source-impact.js';
6
8
  export interface CatalogGenerationProviderSet {
7
9
  git: typeof catalogGitProviderInternal.resolve;
8
10
  path: typeof catalogPathProviderInternal.resolve;
@@ -15,6 +17,8 @@ export interface CatalogGenerationServiceRuntime {
15
17
  validatingStoreEntries?: Map<string, Promise<CatalogStoreEntry>>;
16
18
  afterCandidateResolved?: () => Promise<void>;
17
19
  afterRecoveryStorePublished?: () => Promise<void>;
20
+ afterInactiveStoreRepairPrepared?: () => Promise<void>;
21
+ inspectSourceImpact?: typeof inspectCatalogSourceImpact;
18
22
  }
19
23
  export interface CatalogGenerationProbeResult {
20
24
  sourceId: string;
@@ -46,10 +50,11 @@ export interface CatalogGenerationStatusEntry {
46
50
  channel?: 'latest' | 'beta';
47
51
  storeKey?: string;
48
52
  lastSync?: CatalogGenerationLastSyncV1;
53
+ compatibility: CatalogCapabilityCompatibility | null;
49
54
  errorCode?: string;
50
55
  }
51
56
  export interface CatalogGenerationStatusPayload {
52
- catalogGenerationStatusSchemaVersion: 1;
57
+ catalogGenerationStatusSchemaVersion: 2;
53
58
  sources: CatalogGenerationStatusEntry[];
54
59
  }
55
60
  export declare function compareCatalogGenerationCandidates(expected: CatalogGenerationCandidateEvidence, actual: CatalogGenerationCandidateEvidence): CatalogGenerationCandidateComparison;
@@ -158,4 +163,6 @@ export declare function syncCatalogSourceGeneration(options: {
158
163
  export declare function readCatalogGenerationStatus(options?: {
159
164
  sourceId?: string;
160
165
  env?: NodeJS.ProcessEnv;
166
+ validatedStoreEntries?: Map<string, CatalogStoreEntry>;
167
+ validatingStoreEntries?: Map<string, Promise<CatalogStoreEntry>>;
161
168
  }): Promise<CatalogGenerationStatusPayload>;
@@ -8,8 +8,9 @@ import { calculateCatalogSourceConfigFingerprint, calculateCatalogSourceIdentity
8
8
  import { readCatalogSourcesConfigSnapshot } from './catalog-sources.js';
9
9
  import { catalogGitProviderInternal } from './git-catalog-provider.js';
10
10
  import { catalogPathProviderInternal } from './path-catalog-provider.js';
11
- import { resolveActiveCatalogGeneration } from './catalog-generation-resolver.js';
11
+ import { readValidatedCatalogGenerationStoreEntry, resolveValidatedActiveCatalogGeneration, } from './catalog-generation-resolver.js';
12
12
  import { compareStrictSemVer } from './manifest.js';
13
+ import { projectCatalogCapabilityCompatibility, } from './catalog-capability-projection.js';
13
14
  import { calculateCatalogSourceImpactDigest, catalogSourceImpactRequiresConfirmation, inspectCatalogSourceImpact, } from './catalog-source-impact.js';
14
15
  const CANDIDATE_FIELDS = [
15
16
  'sourceConfigFingerprint', 'sourceIdentity', 'logicalIdentity', 'requestedRef',
@@ -170,7 +171,7 @@ async function assertCurrentSource(options) {
170
171
  });
171
172
  return source;
172
173
  }
173
- async function enforceCatalogActivationPolicy(options) {
174
+ async function enforceCatalogActivationCandidatePolicy(options) {
174
175
  const configuredChanged = Boolean(options.active)
175
176
  && (options.active.sourceConfigFingerprint !== options.candidate.sourceConfigFingerprint
176
177
  || options.active.sourceIdentity !== options.candidate.sourceIdentity);
@@ -207,13 +208,6 @@ async function enforceCatalogActivationPolicy(options) {
207
208
  });
208
209
  return { preserveActive: true };
209
210
  }
210
- if (catalogSourceImpactRequiresConfirmation(options.impact) && !options.impactConfirmed) {
211
- throw new CatalogGenerationError({
212
- code: 'catalogImpactConfirmationRequired', sourceId: options.sourceId,
213
- message: `Catalog source "${options.sourceId}" has affected or unknown references. Use --yes after reviewing the impact.`,
214
- impact: options.impact,
215
- });
216
- }
217
211
  if (!options.active)
218
212
  return { preserveActive: false };
219
213
  if (options.mode === 'normal'
@@ -261,6 +255,11 @@ async function enforceCatalogActivationPolicy(options) {
261
255
  cause: error,
262
256
  });
263
257
  }
258
+ if (options.source.type === 'git'
259
+ && options.active.logicalIdentity === options.candidate.logicalIdentity
260
+ && options.active.snapshotDigest === options.candidate.snapshotDigest) {
261
+ return { preserveActive: true };
262
+ }
264
263
  if (options.mode === 'explicitSourceChange')
265
264
  return { preserveActive: false };
266
265
  if (options.source.type === 'path') {
@@ -282,6 +281,15 @@ async function enforceCatalogActivationPolicy(options) {
282
281
  });
283
282
  return { preserveActive: false };
284
283
  }
284
+ function enforceCatalogActivationImpactPolicy(options) {
285
+ if (catalogSourceImpactRequiresConfirmation(options.impact) && !options.impactConfirmed) {
286
+ throw new CatalogGenerationError({
287
+ code: 'catalogImpactConfirmationRequired', sourceId: options.sourceId,
288
+ message: `Catalog source "${options.sourceId}" has affected or unknown references. Use --yes after reviewing the impact.`,
289
+ impact: options.impact,
290
+ });
291
+ }
292
+ }
285
293
  function assertExpectedImpact(options) {
286
294
  if (options.expectedImpactDigest
287
295
  && calculateCatalogSourceImpactDigest(options.impact) !== options.expectedImpactDigest) {
@@ -294,7 +302,7 @@ function assertExpectedImpact(options) {
294
302
  }
295
303
  }
296
304
  async function inspectActivationImpact(options) {
297
- return inspectCatalogSourceImpact({
305
+ return (options.runtime?.inspectSourceImpact ?? inspectCatalogSourceImpact)({
298
306
  sourceId: options.sourceId,
299
307
  cwd: options.cwd,
300
308
  env: options.env,
@@ -439,7 +447,7 @@ export async function probeCatalogSourceFreshness(options) {
439
447
  sourceId: options.sourceId,
440
448
  message: `Catalog source "${options.sourceId}" is not configured.`,
441
449
  });
442
- const active = await resolveActiveCatalogGeneration({
450
+ const active = await resolveValidatedActiveCatalogGeneration({
443
451
  sourceId: source.id,
444
452
  env,
445
453
  validatedStoreEntries: options.runtime?.validatedStoreEntries,
@@ -522,6 +530,7 @@ async function activateResolvedCandidate(options) {
522
530
  const candidate = options.resolved.candidate;
523
531
  const store = options.store ?? await publishCatalogStoreEntry({
524
532
  resolution: options.resolved.resolution, env: options.env, signal: options.signal,
533
+ afterInactiveRepairPrepared: options.runtime?.afterInactiveStoreRepairPrepared,
525
534
  });
526
535
  assertStoreMatchesCandidate(options.sourceId, store, candidate);
527
536
  return withAwHomeMutationLock({
@@ -555,6 +564,14 @@ async function activateResolvedCandidate(options) {
555
564
  action: async (current) => {
556
565
  const previous = current.sources[options.sourceId]?.active;
557
566
  assertExpectedActive(options.sourceId, previous, options.expectedActive);
567
+ const policy = await enforceCatalogActivationCandidatePolicy({
568
+ sourceId: options.sourceId,
569
+ source,
570
+ active: previous,
571
+ candidate,
572
+ mode: options.activationMode,
573
+ env: options.env,
574
+ });
558
575
  const impact = await inspectActivationImpact({
559
576
  sourceId: options.sourceId,
560
577
  source,
@@ -562,19 +579,15 @@ async function activateResolvedCandidate(options) {
562
579
  env: options.env,
563
580
  mode: options.impactMode ?? 'generation',
564
581
  candidateManifest: options.resolved.resolution.manifest,
582
+ runtime: options.runtime,
565
583
  });
566
584
  assertExpectedImpact({
567
585
  sourceId: options.sourceId,
568
586
  impact,
569
587
  expectedImpactDigest: options.expectedImpactDigest,
570
588
  });
571
- const policy = await enforceCatalogActivationPolicy({
589
+ enforceCatalogActivationImpactPolicy({
572
590
  sourceId: options.sourceId,
573
- source,
574
- active: previous,
575
- candidate,
576
- mode: options.activationMode,
577
- env: options.env,
578
591
  impact,
579
592
  impactConfirmed: options.impactConfirmed,
580
593
  });
@@ -589,7 +602,9 @@ async function activateResolvedCandidate(options) {
589
602
  };
590
603
  const unchanged = policy.preserveActive || sameActive(previous, activeInput);
591
604
  const active = unchanged
592
- ? previous
605
+ ? policy.preserveActive && source.type === 'git'
606
+ ? { ...activeInput, activatedAt: previous.activatedAt }
607
+ : previous
593
608
  : { ...activeInput, activatedAt: syncedAt };
594
609
  const lastSync = {
595
610
  syncedAt, mode: 'sync', state: 'succeeded', resolvedCommit: candidate.resolvedCommit,
@@ -624,6 +639,17 @@ export async function activateCatalogSourceGeneration(options) {
624
639
  message: `Catalog source "${options.sourceId}" changed after review. Review it again.`,
625
640
  });
626
641
  }
642
+ const activationMode = options.activationMode ?? 'normal';
643
+ const active = (await readCatalogGenerationState(env)).sources[options.sourceId]?.active;
644
+ assertExpectedActive(options.sourceId, active, options.expectedActive);
645
+ await enforceCatalogActivationCandidatePolicy({
646
+ sourceId: options.sourceId,
647
+ source: resolved.source,
648
+ active,
649
+ candidate: resolved.candidate,
650
+ mode: activationMode,
651
+ env,
652
+ });
627
653
  const impact = await inspectActivationImpact({
628
654
  sourceId: options.sourceId,
629
655
  cwd: options.cwd ?? process.cwd(),
@@ -631,6 +657,7 @@ export async function activateCatalogSourceGeneration(options) {
631
657
  source: resolved.source,
632
658
  mode: options.impactMode ?? 'generation',
633
659
  candidateManifest: resolved.resolution.manifest,
660
+ runtime: options.runtime,
634
661
  });
635
662
  assertExpectedImpact({
636
663
  sourceId: options.sourceId,
@@ -642,7 +669,7 @@ export async function activateCatalogSourceGeneration(options) {
642
669
  ...options,
643
670
  env,
644
671
  resolved,
645
- activationMode: options.activationMode ?? 'normal',
672
+ activationMode,
646
673
  impactConfirmed: options.impactConfirmed === true,
647
674
  });
648
675
  }
@@ -696,6 +723,7 @@ export async function recoverCatalogGenerationStateAndActivate(options) {
696
723
  await options.runtime?.afterCandidateResolved?.();
697
724
  const store = await publishCatalogStoreEntry({
698
725
  resolution: resolved.resolution, env, signal: options.signal,
726
+ afterInactiveRepairPrepared: options.runtime?.afterInactiveStoreRepairPrepared,
699
727
  });
700
728
  assertStoreMatchesCandidate(options.sourceId, store, resolved.candidate);
701
729
  await options.runtime?.afterRecoveryStorePublished?.();
@@ -714,6 +742,14 @@ export async function recoverCatalogGenerationStateAndActivate(options) {
714
742
  candidate: resolved.candidate,
715
743
  env,
716
744
  });
745
+ await enforceCatalogActivationCandidatePolicy({
746
+ sourceId: options.sourceId,
747
+ source,
748
+ active: undefined,
749
+ candidate: resolved.candidate,
750
+ mode: 'normal',
751
+ env,
752
+ });
717
753
  const lockedImpact = await inspectActivationImpact({
718
754
  sourceId: options.sourceId,
719
755
  source,
@@ -721,19 +757,15 @@ export async function recoverCatalogGenerationStateAndActivate(options) {
721
757
  env,
722
758
  mode: 'generation',
723
759
  candidateManifest: resolved.resolution.manifest,
760
+ runtime: options.runtime,
724
761
  });
725
762
  assertExpectedImpact({
726
763
  sourceId: options.sourceId,
727
764
  impact: lockedImpact,
728
765
  expectedImpactDigest: options.expectedImpactDigest,
729
766
  });
730
- await enforceCatalogActivationPolicy({
767
+ enforceCatalogActivationImpactPolicy({
731
768
  sourceId: options.sourceId,
732
- source,
733
- active: undefined,
734
- candidate: resolved.candidate,
735
- mode: 'normal',
736
- env,
737
769
  impact: lockedImpact,
738
770
  impactConfirmed: options.impactConfirmed === true,
739
771
  });
@@ -859,23 +891,13 @@ export async function repairCatalogSourceGeneration(options) {
859
891
  assertExpectedActive(options.sourceId, current, options.expectedActive);
860
892
  if (options.expectedActive === undefined)
861
893
  assertExpectedActive(options.sourceId, current, target);
862
- await enforceCatalogActivationPolicy({
894
+ await enforceCatalogActivationCandidatePolicy({
863
895
  sourceId: options.sourceId,
864
896
  source: currentSource,
865
897
  active: current,
866
898
  candidate: resolved.candidate,
867
899
  mode: 'exactRepair',
868
900
  env,
869
- impact: {
870
- impactSchemaVersion: 1,
871
- sourceId: options.sourceId,
872
- inventoryComplete: true,
873
- references: [],
874
- affectedReferences: [],
875
- changes: { added: [], removed: [], changed: [], newlyIncompatible: [], dependencyChanged: [] },
876
- errors: [],
877
- },
878
- impactConfirmed: true,
879
901
  });
880
902
  const store = await preparedRepair.commit();
881
903
  assertStoreMatchesCandidate(options.sourceId, store, resolved.candidate);
@@ -999,6 +1021,14 @@ export async function replaceDamagedCatalogSourceGeneration(options) {
999
1021
  action: async (current) => {
1000
1022
  const previous = current.sources[options.sourceId]?.active;
1001
1023
  assertExpectedActive(options.sourceId, previous, options.expectedActive);
1024
+ await enforceCatalogActivationCandidatePolicy({
1025
+ sourceId: options.sourceId,
1026
+ source,
1027
+ active: previous,
1028
+ candidate: resolved.candidate,
1029
+ mode: 'replaceDamaged',
1030
+ env,
1031
+ });
1002
1032
  const lockedImpact = await inspectActivationImpact({
1003
1033
  sourceId: options.sourceId,
1004
1034
  source,
@@ -1006,19 +1036,15 @@ export async function replaceDamagedCatalogSourceGeneration(options) {
1006
1036
  env,
1007
1037
  mode: 'generation',
1008
1038
  candidateManifest: resolved.resolution.manifest,
1039
+ runtime: options.runtime,
1009
1040
  });
1010
1041
  assertExpectedImpact({
1011
1042
  sourceId: options.sourceId,
1012
1043
  impact: lockedImpact,
1013
1044
  expectedImpactDigest: options.expectedImpactDigest,
1014
1045
  });
1015
- await enforceCatalogActivationPolicy({
1046
+ enforceCatalogActivationImpactPolicy({
1016
1047
  sourceId: options.sourceId,
1017
- source,
1018
- active: previous,
1019
- candidate: resolved.candidate,
1020
- mode: 'replaceDamaged',
1021
- env,
1022
1048
  impact: lockedImpact,
1023
1049
  impactConfirmed: options.impactConfirmed === true,
1024
1050
  });
@@ -1207,31 +1233,39 @@ export async function readCatalogGenerationStatus(options = {}) {
1207
1233
  return {
1208
1234
  sourceId: source.id, configuredSourceIdentity, activeReady: false,
1209
1235
  configMatchesActive: false, lastSync: sourceState?.lastSync,
1236
+ compatibility: null,
1210
1237
  };
1211
1238
  try {
1212
- const entry = await readCatalogStoreEntry({
1213
- logicalIdentity: active.logicalIdentity, snapshotDigest: active.snapshotDigest, env,
1239
+ const entry = await readValidatedCatalogGenerationStoreEntry({
1240
+ logicalIdentity: active.logicalIdentity,
1241
+ snapshotDigest: active.snapshotDigest,
1242
+ env,
1243
+ validatedStoreEntries: options.validatedStoreEntries,
1244
+ validatingStoreEntries: options.validatingStoreEntries,
1214
1245
  });
1215
1246
  if (entry.metadata.manifestDigest !== active.manifestDigest)
1216
1247
  throw new CatalogGenerationError({
1217
1248
  code: 'catalogGenerationIdentityMismatch', message: 'Active does not match store metadata.',
1218
1249
  });
1250
+ const compatibility = projectCatalogCapabilityCompatibility(entry.metadata.requiredAwCapabilities);
1219
1251
  return {
1220
1252
  sourceId: source.id, configuredSourceIdentity, active,
1221
- activeReady: configMatchesActive, configMatchesActive,
1253
+ activeReady: configMatchesActive && compatibility.state === 'supported',
1254
+ configMatchesActive,
1222
1255
  catalogVersion: entry.metadata.catalogVersion, channel: entry.metadata.channel,
1223
1256
  storeKey: createCatalogStoreKey(active.logicalIdentity, active.snapshotDigest),
1224
- lastSync: sourceState?.lastSync,
1257
+ lastSync: sourceState?.lastSync, compatibility,
1225
1258
  };
1226
1259
  }
1227
1260
  catch (error) {
1228
1261
  return {
1229
1262
  sourceId: source.id, configuredSourceIdentity, active, activeReady: false,
1230
1263
  configMatchesActive, lastSync: sourceState?.lastSync,
1264
+ compatibility: null,
1231
1265
  errorCode: catalogGenerationErrorCode(error),
1232
1266
  };
1233
1267
  }
1234
1268
  }));
1235
- return { catalogGenerationStatusSchemaVersion: 1, sources };
1269
+ return { catalogGenerationStatusSchemaVersion: 2, sources };
1236
1270
  }
1237
1271
  //# sourceMappingURL=catalog-generation-service.js.map