@lesliechan721/aw 0.1.0-beta.8 → 0.1.0-beta.9

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 (275) hide show
  1. package/dist/authoring/scripts/add-skill.mjs +4 -4
  2. package/dist/authoring/scripts/add-skill.mjs.map +1 -1
  3. package/dist/authoring/scripts/init-plugin.mjs +4 -4
  4. package/dist/authoring/scripts/init-plugin.mjs.map +1 -1
  5. package/dist/authoring/scripts/lib/plugin-version-check.mjs +1 -1
  6. package/dist/authoring/scripts/lib/skill-scaffold.d.mts +77 -90
  7. package/dist/authoring/scripts/lib/skill-scaffold.mjs +99 -120
  8. package/dist/authoring/scripts/lib/skill-scaffold.mjs.map +1 -1
  9. package/dist/authoring/scripts/remove-plugin.mjs +1 -1
  10. package/dist/authoring/scripts/remove-plugin.mjs.map +1 -1
  11. package/dist/authoring/scripts/validate-plugin.mjs +34 -778
  12. package/dist/authoring/scripts/validate-plugin.mjs.map +1 -1
  13. package/dist/scripts/aw-skill-eval-materializer.d.ts +24 -0
  14. package/dist/scripts/{plugin-eval-materializer.js → aw-skill-eval-materializer.js} +34 -145
  15. package/dist/scripts/aw-skill-eval-materializer.js.map +1 -0
  16. package/dist/scripts/bundle-plugins.d.ts +1 -0
  17. package/dist/scripts/bundle-plugins.js +2 -1
  18. package/dist/scripts/bundle-plugins.js.map +1 -1
  19. package/dist/scripts/plugin-staging.d.ts +5 -6
  20. package/dist/scripts/plugin-staging.js +12 -13
  21. package/dist/scripts/plugin-staging.js.map +1 -1
  22. package/dist/src/authoring/workspace-commands.d.ts +2 -1
  23. package/dist/src/authoring/workspace-commands.js.map +1 -1
  24. package/dist/src/commands/aw-capabilities.d.ts +2 -2
  25. package/dist/src/commands/aw-capabilities.js +6 -11
  26. package/dist/src/commands/aw-capabilities.js.map +1 -1
  27. package/dist/src/commands/catalog-dev-source.d.ts +18 -12
  28. package/dist/src/commands/catalog-dev-source.js +241 -305
  29. package/dist/src/commands/catalog-dev-source.js.map +1 -1
  30. package/dist/src/commands/catalog-generation.d.ts +6 -19
  31. package/dist/src/commands/catalog-generation.js +10 -11
  32. package/dist/src/commands/catalog-generation.js.map +1 -1
  33. package/dist/src/commands/catalog-publication-inspection.d.ts +28 -27
  34. package/dist/src/commands/catalog-publication-inspection.js +139 -50
  35. package/dist/src/commands/catalog-publication-inspection.js.map +1 -1
  36. package/dist/src/commands/catalog-publication-journal.d.ts +49 -0
  37. package/dist/src/commands/catalog-publication-journal.js +147 -0
  38. package/dist/src/commands/catalog-publication-journal.js.map +1 -0
  39. package/dist/src/commands/catalog-publication-target.d.ts +2 -1
  40. package/dist/src/commands/catalog-publication-target.js +37 -2
  41. package/dist/src/commands/catalog-publication-target.js.map +1 -1
  42. package/dist/src/commands/catalog-publish.d.ts +51 -15
  43. package/dist/src/commands/catalog-publish.js +576 -219
  44. package/dist/src/commands/catalog-publish.js.map +1 -1
  45. package/dist/src/commands/catalog-source.d.ts +3 -28
  46. package/dist/src/commands/catalog-source.js +29 -140
  47. package/dist/src/commands/catalog-source.js.map +1 -1
  48. package/dist/src/commands/catalog-status.d.ts +6 -26
  49. package/dist/src/commands/catalog-status.js +8 -146
  50. package/dist/src/commands/catalog-status.js.map +1 -1
  51. package/dist/src/commands/catalog-workspace-resolution.d.ts +13 -0
  52. package/dist/src/commands/catalog-workspace-resolution.js +42 -0
  53. package/dist/src/commands/catalog-workspace-resolution.js.map +1 -0
  54. package/dist/src/commands/dependency-operation-plan.d.ts +88 -9
  55. package/dist/src/commands/dependency-operation-plan.js +331 -6
  56. package/dist/src/commands/dependency-operation-plan.js.map +1 -1
  57. package/dist/src/commands/init.d.ts +5 -11
  58. package/dist/src/commands/init.js +30 -51
  59. package/dist/src/commands/init.js.map +1 -1
  60. package/dist/src/commands/offline-cleanup-evidence.d.ts +20 -0
  61. package/dist/src/commands/offline-cleanup-evidence.js +87 -9
  62. package/dist/src/commands/offline-cleanup-evidence.js.map +1 -1
  63. package/dist/src/commands/options.d.ts +6 -1
  64. package/dist/src/commands/options.js +64 -6
  65. package/dist/src/commands/options.js.map +1 -1
  66. package/dist/src/commands/plugin-capabilities.js +4 -0
  67. package/dist/src/commands/plugin-capabilities.js.map +1 -1
  68. package/dist/src/commands/rebuild-command.d.ts +10 -8
  69. package/dist/src/commands/rebuild-command.js +1217 -426
  70. package/dist/src/commands/rebuild-command.js.map +1 -1
  71. package/dist/src/commands/rebuild-integration.d.ts +54 -6
  72. package/dist/src/commands/rebuild-integration.js +691 -364
  73. package/dist/src/commands/rebuild-integration.js.map +1 -1
  74. package/dist/src/commands/rebuild-operations.d.ts +2 -0
  75. package/dist/src/commands/rebuild-operations.js +31 -17
  76. package/dist/src/commands/rebuild-operations.js.map +1 -1
  77. package/dist/src/commands/skill-eval.d.ts +33 -0
  78. package/dist/src/commands/skill-eval.js +363 -0
  79. package/dist/src/commands/skill-eval.js.map +1 -0
  80. package/dist/src/commands/{status-v5.d.ts → status-v6.d.ts} +59 -26
  81. package/dist/src/commands/{status-v5.js → status-v6.js} +882 -79
  82. package/dist/src/commands/status-v6.js.map +1 -0
  83. package/dist/src/commands/sync-command.d.ts +21 -0
  84. package/dist/src/commands/sync-command.js +206 -0
  85. package/dist/src/commands/sync-command.js.map +1 -0
  86. package/dist/src/commands/wizard.d.ts +2 -2
  87. package/dist/src/commands/write-commands.js +1 -43
  88. package/dist/src/commands/write-commands.js.map +1 -1
  89. package/dist/src/constants.d.ts +5 -4
  90. package/dist/src/constants.js +5 -4
  91. package/dist/src/constants.js.map +1 -1
  92. package/dist/src/eval/manifest-v1.d.ts +66 -0
  93. package/dist/src/eval/manifest-v1.js +326 -0
  94. package/dist/src/eval/manifest-v1.js.map +1 -0
  95. package/dist/src/generators/local-plugin.d.ts +3 -0
  96. package/dist/src/generators/local-plugin.js +123 -55
  97. package/dist/src/generators/local-plugin.js.map +1 -1
  98. package/dist/src/index.d.ts +2 -0
  99. package/dist/src/index.js +412 -152
  100. package/dist/src/index.js.map +1 -1
  101. package/dist/src/output/command-receipt.d.ts +58 -8
  102. package/dist/src/output/command-receipt.js +141 -11
  103. package/dist/src/output/command-receipt.js.map +1 -1
  104. package/dist/src/output/model.d.ts +3 -11
  105. package/dist/src/portable/commands.d.ts +2 -2
  106. package/dist/src/portable/commands.js +2 -8
  107. package/dist/src/portable/commands.js.map +1 -1
  108. package/dist/src/portable/materializer.d.ts +1 -4
  109. package/dist/src/portable/materializer.js +0 -2
  110. package/dist/src/portable/materializer.js.map +1 -1
  111. package/dist/src/tui/catalog-generation.d.ts +20 -41
  112. package/dist/src/tui/catalog-generation.js +65 -224
  113. package/dist/src/tui/catalog-generation.js.map +1 -1
  114. package/dist/src/tui/components.js +1 -2
  115. package/dist/src/tui/components.js.map +1 -1
  116. package/dist/src/tui/console-app-v4.js +461 -330
  117. package/dist/src/tui/console-app-v4.js.map +1 -1
  118. package/dist/src/tui/controller-runtime.d.ts +3 -5
  119. package/dist/src/tui/controller-runtime.js +182 -187
  120. package/dist/src/tui/controller-runtime.js.map +1 -1
  121. package/dist/src/tui/controller.d.ts +42 -45
  122. package/dist/src/tui/controller.js +454 -407
  123. package/dist/src/tui/controller.js.map +1 -1
  124. package/dist/src/tui/diagnostics.d.ts +1 -2
  125. package/dist/src/tui/diagnostics.js.map +1 -1
  126. package/dist/src/tui/index.d.ts +1 -1
  127. package/dist/src/tui/index.js +1 -1
  128. package/dist/src/tui/index.js.map +1 -1
  129. package/dist/src/tui/model.d.ts +81 -13
  130. package/dist/src/tui/model.js +378 -95
  131. package/dist/src/tui/model.js.map +1 -1
  132. package/dist/src/tui/router.d.ts +9 -0
  133. package/dist/src/tui/router.js.map +1 -1
  134. package/dist/src/types.d.ts +54 -47
  135. package/dist/src/types.js.map +1 -1
  136. package/dist/src/utils/agent-version.d.ts +4 -1
  137. package/dist/src/utils/agent-version.js +28 -3
  138. package/dist/src/utils/agent-version.js.map +1 -1
  139. package/dist/src/utils/catalog-digests.d.ts +7 -0
  140. package/dist/src/utils/catalog-digests.js +27 -0
  141. package/dist/src/utils/catalog-digests.js.map +1 -1
  142. package/dist/src/utils/catalog-generation-control-snapshot.d.ts +11 -0
  143. package/dist/src/utils/catalog-generation-control-snapshot.js +45 -0
  144. package/dist/src/utils/catalog-generation-control-snapshot.js.map +1 -0
  145. package/dist/src/utils/catalog-generation-error.d.ts +2 -1
  146. package/dist/src/utils/catalog-generation-error.js +12 -0
  147. package/dist/src/utils/catalog-generation-error.js.map +1 -1
  148. package/dist/src/utils/catalog-generation-resolver.d.ts +10 -3
  149. package/dist/src/utils/catalog-generation-resolver.js +90 -76
  150. package/dist/src/utils/catalog-generation-resolver.js.map +1 -1
  151. package/dist/src/utils/catalog-generation-service.d.ts +24 -33
  152. package/dist/src/utils/catalog-generation-service.js +253 -567
  153. package/dist/src/utils/catalog-generation-service.js.map +1 -1
  154. package/dist/src/utils/catalog-generation-state.d.ts +4 -0
  155. package/dist/src/utils/catalog-generation-state.js +73 -106
  156. package/dist/src/utils/catalog-generation-state.js.map +1 -1
  157. package/dist/src/utils/catalog-generation-store.d.ts +16 -26
  158. package/dist/src/utils/catalog-generation-store.js +154 -290
  159. package/dist/src/utils/catalog-generation-store.js.map +1 -1
  160. package/dist/src/utils/catalog-manifest-v6.d.ts +5 -0
  161. package/dist/src/utils/{catalog-manifest-v5.js → catalog-manifest-v6.js} +23 -35
  162. package/dist/src/utils/catalog-manifest-v6.js.map +1 -0
  163. package/dist/src/utils/catalog-operation-context.d.ts +6 -14
  164. package/dist/src/utils/catalog-operation-context.js +68 -169
  165. package/dist/src/utils/catalog-operation-context.js.map +1 -1
  166. package/dist/src/utils/catalog-public-error.js +1 -4
  167. package/dist/src/utils/catalog-public-error.js.map +1 -1
  168. package/dist/src/utils/catalog-runtime-projection.d.ts +3 -0
  169. package/dist/src/utils/catalog-runtime-projection.js +5 -40
  170. package/dist/src/utils/catalog-runtime-projection.js.map +1 -1
  171. package/dist/src/utils/catalog-snapshot.d.ts +2 -2
  172. package/dist/src/utils/catalog-source-references.d.ts +7 -0
  173. package/dist/src/utils/catalog-source-references.js +44 -55
  174. package/dist/src/utils/catalog-source-references.js.map +1 -1
  175. package/dist/src/utils/catalog-sources.js +25 -9
  176. package/dist/src/utils/catalog-sources.js.map +1 -1
  177. package/dist/src/utils/codex-config.d.ts +2 -0
  178. package/dist/src/utils/codex-config.js +22 -1
  179. package/dist/src/utils/codex-config.js.map +1 -1
  180. package/dist/src/utils/codex-manager.d.ts +50 -2
  181. package/dist/src/utils/codex-manager.js +160 -6
  182. package/dist/src/utils/codex-manager.js.map +1 -1
  183. package/dist/src/utils/codex-reconciler.d.ts +131 -0
  184. package/dist/src/utils/codex-reconciler.js +327 -0
  185. package/dist/src/utils/codex-reconciler.js.map +1 -0
  186. package/dist/src/utils/codex-shared-native.d.ts +56 -0
  187. package/dist/src/utils/codex-shared-native.js +87 -0
  188. package/dist/src/utils/codex-shared-native.js.map +1 -0
  189. package/dist/src/utils/codex-surface-analysis.d.ts +44 -0
  190. package/dist/src/utils/codex-surface-analysis.js +247 -0
  191. package/dist/src/utils/codex-surface-analysis.js.map +1 -0
  192. package/dist/src/utils/git-catalog-provider.js +56 -115
  193. package/dist/src/utils/git-catalog-provider.js.map +1 -1
  194. package/dist/src/utils/manifest.d.ts +1 -3
  195. package/dist/src/utils/manifest.js +1 -3
  196. package/dist/src/utils/manifest.js.map +1 -1
  197. package/dist/src/utils/multi-source-catalog.d.ts +1 -10
  198. package/dist/src/utils/multi-source-catalog.js +8 -175
  199. package/dist/src/utils/multi-source-catalog.js.map +1 -1
  200. package/dist/src/utils/native-cli.d.ts +34 -0
  201. package/dist/src/utils/native-cli.js +91 -0
  202. package/dist/src/utils/native-cli.js.map +1 -1
  203. package/dist/src/utils/orphan-marketplace-cleanup.js +1 -0
  204. package/dist/src/utils/orphan-marketplace-cleanup.js.map +1 -1
  205. package/dist/src/utils/ownership.d.ts +0 -10
  206. package/dist/src/utils/ownership.js +3 -88
  207. package/dist/src/utils/ownership.js.map +1 -1
  208. package/dist/src/utils/path-catalog-provider.d.ts +1 -1
  209. package/dist/src/utils/path-catalog-provider.js +45 -62
  210. package/dist/src/utils/path-catalog-provider.js.map +1 -1
  211. package/dist/src/utils/paths.d.ts +0 -1
  212. package/dist/src/utils/paths.js +0 -1
  213. package/dist/src/utils/paths.js.map +1 -1
  214. package/dist/src/utils/plugin-config-write.js +0 -5
  215. package/dist/src/utils/plugin-config-write.js.map +1 -1
  216. package/dist/src/utils/plugin-intent-state.d.ts +39 -0
  217. package/dist/src/utils/plugin-intent-state.js +325 -0
  218. package/dist/src/utils/plugin-intent-state.js.map +1 -0
  219. package/dist/src/utils/target-eligibility.d.ts +3 -2
  220. package/dist/src/utils/target-eligibility.js +4 -3
  221. package/dist/src/utils/target-eligibility.js.map +1 -1
  222. package/package.json +5 -4
  223. package/dist/scripts/aw-skill-eval-engine.d.ts +0 -13
  224. package/dist/scripts/aw-skill-eval-engine.js +0 -31
  225. package/dist/scripts/aw-skill-eval-engine.js.map +0 -1
  226. package/dist/scripts/codex-eval-app-server.d.ts +0 -91
  227. package/dist/scripts/codex-eval-app-server.js +0 -1334
  228. package/dist/scripts/codex-eval-app-server.js.map +0 -1
  229. package/dist/scripts/codex-eval-isolation.d.ts +0 -61
  230. package/dist/scripts/codex-eval-isolation.js +0 -318
  231. package/dist/scripts/codex-eval-isolation.js.map +0 -1
  232. package/dist/scripts/codex-eval-process-management.d.ts +0 -8
  233. package/dist/scripts/codex-eval-process-management.js +0 -69
  234. package/dist/scripts/codex-eval-process-management.js.map +0 -1
  235. package/dist/scripts/codex-eval-process-tree.d.ts +0 -38
  236. package/dist/scripts/codex-eval-process-tree.js +0 -803
  237. package/dist/scripts/codex-eval-process-tree.js.map +0 -1
  238. package/dist/scripts/codex-eval-runtime-config.d.ts +0 -62
  239. package/dist/scripts/codex-eval-runtime-config.js +0 -843
  240. package/dist/scripts/codex-eval-runtime-config.js.map +0 -1
  241. package/dist/scripts/codex-trigger-eval.d.ts +0 -84
  242. package/dist/scripts/codex-trigger-eval.js +0 -968
  243. package/dist/scripts/codex-trigger-eval.js.map +0 -1
  244. package/dist/scripts/eval-plugin-skills-audited.d.ts +0 -6
  245. package/dist/scripts/eval-plugin-skills-audited.js +0 -261
  246. package/dist/scripts/eval-plugin-skills-audited.js.map +0 -1
  247. package/dist/scripts/eval-plugin-skills.d.ts +0 -45
  248. package/dist/scripts/eval-plugin-skills.js +0 -1589
  249. package/dist/scripts/eval-plugin-skills.js.map +0 -1
  250. package/dist/scripts/eval-run-layout.d.ts +0 -17
  251. package/dist/scripts/eval-run-layout.js +0 -26
  252. package/dist/scripts/eval-run-layout.js.map +0 -1
  253. package/dist/scripts/plugin-eval-contract.d.ts +0 -189
  254. package/dist/scripts/plugin-eval-contract.js +0 -745
  255. package/dist/scripts/plugin-eval-contract.js.map +0 -1
  256. package/dist/scripts/plugin-eval-materializer.d.ts +0 -13
  257. package/dist/scripts/plugin-eval-materializer.js.map +0 -1
  258. package/dist/scripts/skill-reporting.d.ts +0 -212
  259. package/dist/scripts/skill-reporting.js +0 -922
  260. package/dist/scripts/skill-reporting.js.map +0 -1
  261. package/dist/src/commands/catalog-context.d.ts +0 -52
  262. package/dist/src/commands/catalog-context.js +0 -156
  263. package/dist/src/commands/catalog-context.js.map +0 -1
  264. package/dist/src/commands/status-v5.js.map +0 -1
  265. package/dist/src/utils/catalog-manifest-v5.d.ts +0 -5
  266. package/dist/src/utils/catalog-manifest-v5.js.map +0 -1
  267. package/dist/src/utils/catalog-source-cache.d.ts +0 -62
  268. package/dist/src/utils/catalog-source-cache.js +0 -321
  269. package/dist/src/utils/catalog-source-cache.js.map +0 -1
  270. package/dist/src/utils/codex-project-surface.d.ts +0 -3
  271. package/dist/src/utils/codex-project-surface.js +0 -49
  272. package/dist/src/utils/codex-project-surface.js.map +0 -1
  273. package/dist/src/utils/plugin-release.d.ts +0 -2
  274. package/dist/src/utils/plugin-release.js +0 -2
  275. package/dist/src/utils/plugin-release.js.map +0 -1
@@ -1,53 +1,78 @@
1
1
  import crypto from 'node:crypto';
2
2
  import path from 'node:path';
3
3
  import fs from 'fs-extra';
4
- import { CATALOG_GENERATION_METADATA_FILE, CATALOG_GENERATIONS_DIRECTORY, } from '../constants.js';
4
+ import { CATALOG_STORE_DIRECTORY, CATALOG_STORE_METADATA_FILE } from '../constants.js';
5
5
  import { CatalogGenerationError } from './catalog-generation-error.js';
6
6
  import { validateCatalogSnapshotTransport } from './catalog-snapshot.js';
7
7
  import { normalizeAwCapabilities, parseStrictSemVer } from './manifest.js';
8
8
  import { canonicalizePathThroughExistingAncestorSync, ensureRegularDirectoryPath, resolveAwHome, } from './state-paths.js';
9
- const SHA256_DIGEST_PATTERN = /^sha256:([0-9a-f]{64})$/u;
10
- const HEX_DIGEST_PATTERN = /^[0-9a-f]{64}$/u;
11
- function sha256Hex(value) {
12
- return crypto.createHash('sha256').update(value).digest('hex');
9
+ const DIGEST_PATTERN = /^sha256:([0-9a-f]{64})$/u;
10
+ function metadataError(message, cause) {
11
+ return new CatalogGenerationError({
12
+ code: 'catalogGenerationMetadataInvalid',
13
+ message: `${message} Remove the damaged store entry and run aw catalog source sync.`,
14
+ cause,
15
+ });
13
16
  }
14
- function digestHex(value, fieldName) {
15
- const match = SHA256_DIGEST_PATTERN.exec(value);
16
- if (!match) {
17
- throw new CatalogGenerationError({
18
- code: 'catalogGenerationMetadataInvalid',
19
- message: `Invalid ${fieldName}: expected a SHA-256 digest. Remove the damaged generation and refresh the source.`,
20
- });
21
- }
17
+ function digestHex(value, name) {
18
+ const match = DIGEST_PATTERN.exec(value);
19
+ if (!match)
20
+ throw metadataError(`Invalid ${name}: expected a SHA-256 digest.`);
22
21
  return match[1];
23
22
  }
24
- export function createCatalogGenerationKey(logicalIdentity, snapshotDigest) {
25
- if (typeof logicalIdentity !== 'string' || logicalIdentity.trim() === '') {
26
- throw new CatalogGenerationError({
27
- code: 'catalogGenerationMetadataInvalid',
28
- message: 'Invalid Catalog logical identity. Rebuild or republish the Catalog snapshot, then refresh the source.',
29
- });
23
+ function logicalIdentitySegment(value) {
24
+ if (typeof value !== 'string' || value.trim() === '' || value !== value.trim()) {
25
+ throw metadataError('Invalid Catalog logical identity.');
30
26
  }
31
- return `${sha256Hex(logicalIdentity)}/${digestHex(snapshotDigest, 'Catalog snapshot digest')}`;
27
+ try {
28
+ if (value === '.')
29
+ return '%2E';
30
+ if (value === '..')
31
+ return '%2E%2E';
32
+ const segment = encodeURIComponent(value);
33
+ if (segment === '.' || segment === '..' || /[\\/]/u.test(segment)) {
34
+ throw metadataError('Invalid Catalog logical identity.');
35
+ }
36
+ return segment;
37
+ }
38
+ catch (error) {
39
+ if (error instanceof CatalogGenerationError)
40
+ throw error;
41
+ throw metadataError('Invalid Catalog logical identity.', error);
42
+ }
43
+ }
44
+ function resolveStrictStoreDescendant(storeRootDir, ...segments) {
45
+ const candidate = path.resolve(storeRootDir, ...segments);
46
+ const relative = path.relative(storeRootDir, candidate);
47
+ if (relative === ''
48
+ || path.isAbsolute(relative)
49
+ || relative === '..'
50
+ || relative.startsWith(`..${path.sep}`))
51
+ throw metadataError('Invalid Catalog store path.');
52
+ return candidate;
53
+ }
54
+ export function createCatalogStoreKey(logicalIdentity, snapshotDigest) {
55
+ return `${logicalIdentitySegment(logicalIdentity)}/${digestHex(snapshotDigest, 'snapshot digest')}`;
32
56
  }
33
- export function resolveCatalogGenerationLocation(options) {
57
+ export function resolveCatalogStoreLocation(options) {
34
58
  const awHomeDir = canonicalizePathThroughExistingAncestorSync(resolveAwHome(options.env ?? process.env));
35
- const storeRootDir = path.join(awHomeDir, CATALOG_GENERATIONS_DIRECTORY);
36
- const generationKey = createCatalogGenerationKey(options.logicalIdentity, options.snapshotDigest);
37
- const [logicalIdentityHex, snapshotDigestHex] = generationKey.split('/');
38
- const logicalIdentityDirectory = path.join(storeRootDir, logicalIdentityHex);
39
- const generationDir = path.join(logicalIdentityDirectory, snapshotDigestHex);
59
+ const storeRootDir = path.join(awHomeDir, CATALOG_STORE_DIRECTORY);
60
+ const logicalIdentity = logicalIdentitySegment(options.logicalIdentity);
61
+ const digest = digestHex(options.snapshotDigest, 'snapshot digest');
62
+ const storeKey = `${logicalIdentity}/${digest}`;
63
+ const logicalIdentityDirectory = resolveStrictStoreDescendant(storeRootDir, logicalIdentity);
64
+ const entryDir = resolveStrictStoreDescendant(storeRootDir, logicalIdentity, digest);
40
65
  return {
41
66
  awHomeDir,
42
67
  storeRootDir,
43
68
  logicalIdentityDirectory,
44
- generationDir,
45
- metadataPath: path.join(generationDir, CATALOG_GENERATION_METADATA_FILE),
46
- snapshotRoot: path.join(generationDir, 'snapshot'),
47
- generationKey,
69
+ entryDir,
70
+ metadataPath: path.join(entryDir, CATALOG_STORE_METADATA_FILE),
71
+ snapshotRoot: path.join(entryDir, 'snapshot'),
72
+ storeKey,
48
73
  };
49
74
  }
50
- function isStrictObject(value, keys) {
75
+ function strictRecord(value, keys) {
51
76
  if (!value || typeof value !== 'object' || Array.isArray(value))
52
77
  return false;
53
78
  const actual = Object.keys(value).sort();
@@ -55,176 +80,115 @@ function isStrictObject(value, keys) {
55
80
  return actual.length === expected.length
56
81
  && actual.every((key, index) => key === expected[index]);
57
82
  }
58
- function parseGenerationMetadata(value) {
59
- if (!isStrictObject(value, [
60
- 'schemaVersion',
61
- 'logicalIdentity',
62
- 'catalogVersion',
63
- 'channel',
64
- 'manifestDigest',
65
- 'snapshotDigest',
66
- 'generationKey',
67
- 'requiredAwCapabilities',
68
- 'publishedAt',
69
- ])) {
70
- throw new CatalogGenerationError({
71
- code: 'catalogGenerationMetadataInvalid',
72
- message: 'Invalid Catalog generation metadata. Remove the damaged generation and refresh the source.',
73
- });
74
- }
83
+ function parseMetadata(value) {
84
+ if (!strictRecord(value, [
85
+ 'schemaVersion', 'logicalIdentity', 'catalogVersion', 'channel', 'manifestDigest',
86
+ 'snapshotDigest', 'requiredAwCapabilities',
87
+ ]))
88
+ throw metadataError('Invalid Catalog store metadata.');
75
89
  if (value.schemaVersion !== 1
76
90
  || typeof value.logicalIdentity !== 'string'
77
91
  || value.logicalIdentity.trim() === ''
92
+ || value.logicalIdentity !== value.logicalIdentity.trim()
78
93
  || typeof value.catalogVersion !== 'string'
79
- || !Array.isArray(value.requiredAwCapabilities)
80
- || value.requiredAwCapabilities.some((capability) => typeof capability !== 'string')
81
94
  || (value.channel !== 'latest' && value.channel !== 'beta')
82
95
  || typeof value.manifestDigest !== 'string'
83
- || !SHA256_DIGEST_PATTERN.test(value.manifestDigest)
96
+ || !DIGEST_PATTERN.test(value.manifestDigest)
84
97
  || typeof value.snapshotDigest !== 'string'
85
- || !SHA256_DIGEST_PATTERN.test(value.snapshotDigest)
86
- || typeof value.generationKey !== 'string'
87
- || !/^[0-9a-f]{64}\/[0-9a-f]{64}$/u.test(value.generationKey)
88
- || typeof value.publishedAt !== 'string'
89
- || Number.isNaN(Date.parse(value.publishedAt))) {
90
- throw new CatalogGenerationError({
91
- code: 'catalogGenerationMetadataInvalid',
92
- message: 'Invalid Catalog generation metadata. Remove the damaged generation and refresh the source.',
93
- });
94
- }
98
+ || !DIGEST_PATTERN.test(value.snapshotDigest)
99
+ || !Array.isArray(value.requiredAwCapabilities)
100
+ || value.requiredAwCapabilities.some((entry) => typeof entry !== 'string'))
101
+ throw metadataError('Invalid Catalog store metadata.');
95
102
  try {
96
- parseStrictSemVer(value.catalogVersion, 'Catalog generation catalogVersion');
103
+ parseStrictSemVer(value.catalogVersion, 'Catalog store catalogVersion');
97
104
  if (JSON.stringify(normalizeAwCapabilities(value.requiredAwCapabilities))
98
105
  !== JSON.stringify(value.requiredAwCapabilities)) {
99
- throw new Error('Catalog generation required capabilities are not normalized.');
106
+ throw new Error('Capabilities are not normalized.');
100
107
  }
101
108
  }
102
109
  catch (error) {
103
- throw new CatalogGenerationError({
104
- code: 'catalogGenerationMetadataInvalid',
105
- message: 'Invalid Catalog generation version metadata. Remove the damaged generation and refresh the source.',
106
- cause: error,
107
- });
108
- }
109
- if (value.generationKey !== createCatalogGenerationKey(value.logicalIdentity, value.snapshotDigest)) {
110
- throw new CatalogGenerationError({
111
- code: 'catalogGenerationMetadataInvalid',
112
- message: 'Catalog generation metadata does not match its content identity. Remove the damaged generation and refresh the source.',
113
- });
110
+ throw metadataError('Invalid Catalog store metadata.', error);
114
111
  }
115
112
  return value;
116
113
  }
117
- async function readCatalogLogicalIdentity(snapshotRoot) {
118
- const markerPath = path.join(snapshotRoot, '.aw-generated.json');
119
- const stat = await fs.lstat(markerPath).catch((error) => {
120
- if (error.code === 'ENOENT')
121
- return null;
122
- throw error;
123
- });
124
- if (!stat?.isFile() || stat.isSymbolicLink()) {
125
- throw new CatalogGenerationError({
126
- code: 'catalogGenerationMetadataInvalid',
127
- message: 'Catalog snapshot has no valid generated marker. Rebuild or republish the Catalog, then refresh the source.',
128
- });
129
- }
130
- const marker = await fs.readJson(markerPath);
131
- if (!isStrictObject(marker, ['schemaVersion', 'kind', 'workspaceIdentity', 'sourceIdentity'])
132
- || marker.schemaVersion !== 1
133
- || marker.kind !== 'catalog'
134
- || typeof marker.workspaceIdentity !== 'string'
135
- || marker.workspaceIdentity.trim() === ''
136
- || typeof marker.sourceIdentity !== 'string'
137
- || !SHA256_DIGEST_PATTERN.test(marker.sourceIdentity)) {
138
- throw new CatalogGenerationError({
139
- code: 'catalogGenerationMetadataInvalid',
140
- message: 'Catalog snapshot generated marker is invalid. Rebuild or republish the Catalog, then refresh the source.',
141
- });
142
- }
143
- return marker.workspaceIdentity;
144
- }
145
- async function assertRegularGenerationDirectory(directory) {
146
- const stat = await fs.lstat(directory).catch((error) => {
147
- if (error.code === 'ENOENT')
148
- return null;
149
- throw error;
150
- });
151
- if (!stat?.isDirectory() || stat.isSymbolicLink()) {
152
- throw new CatalogGenerationError({
153
- code: 'catalogGenerationMetadataInvalid',
154
- message: 'Catalog generation directory is missing or unsafe. Refresh the source after repairing the generation store.',
155
- });
156
- }
157
- }
158
- async function validateGenerationDirectory(options) {
159
- const metadata = await readGenerationMetadataAt(options);
160
- const snapshotRoot = path.join(options.generationDir, 'snapshot');
161
- let validation;
114
+ export async function readCatalogSnapshotLogicalIdentity(snapshotRoot) {
162
115
  try {
163
- validation = await validateCatalogSnapshotTransport(snapshotRoot);
164
- }
165
- catch (error) {
166
- throw new CatalogGenerationError({
167
- code: 'catalogGenerationMetadataInvalid',
168
- message: 'Catalog generation snapshot is damaged. Remove the damaged generation and refresh the source.',
169
- cause: error,
116
+ const markerPath = path.join(snapshotRoot, '.aw-generated.json');
117
+ const stat = await fs.lstat(markerPath).catch((error) => {
118
+ if (error.code === 'ENOENT')
119
+ return null;
120
+ throw error;
170
121
  });
122
+ if (!stat?.isFile() || stat.isSymbolicLink())
123
+ throw metadataError('Catalog marker is missing or unsafe.');
124
+ const marker = await fs.readJson(markerPath);
125
+ if (!strictRecord(marker, ['schemaVersion', 'kind', 'workspaceIdentity', 'sourceIdentity'])
126
+ || marker.schemaVersion !== 1
127
+ || marker.kind !== 'catalog'
128
+ || typeof marker.workspaceIdentity !== 'string'
129
+ || marker.workspaceIdentity.trim() === '') {
130
+ throw metadataError('Catalog marker is invalid.');
131
+ }
132
+ return marker.workspaceIdentity;
171
133
  }
172
- if (validation.manifest.catalogVersion !== metadata.catalogVersion
173
- || validation.manifest.channel !== metadata.channel
174
- || JSON.stringify(validation.manifest.requires.aw.capabilities ?? [])
175
- !== JSON.stringify(metadata.requiredAwCapabilities)
176
- || validation.manifestDigest !== metadata.manifestDigest
177
- || validation.snapshotDigest !== metadata.snapshotDigest
178
- || await readCatalogLogicalIdentity(snapshotRoot) !== metadata.logicalIdentity) {
179
- throw new CatalogGenerationError({
180
- code: 'catalogGenerationIdentityMismatch',
181
- message: 'Catalog generation snapshot does not match its immutable metadata. Remove the damaged generation and refresh the source.',
182
- });
134
+ catch (error) {
135
+ if (error instanceof CatalogGenerationError)
136
+ throw error;
137
+ throw metadataError('Catalog marker is unreadable.', error);
183
138
  }
184
- return { generationDir: options.generationDir, snapshotRoot, metadata };
185
139
  }
186
- async function readGenerationMetadataAt(options) {
187
- await assertRegularGenerationDirectory(options.generationDir);
188
- const metadataPath = path.join(options.generationDir, CATALOG_GENERATION_METADATA_FILE);
189
- const metadataStat = await fs.lstat(metadataPath).catch((error) => {
190
- if (error.code === 'ENOENT')
191
- return null;
192
- throw error;
193
- });
194
- if (!metadataStat?.isFile() || metadataStat.isSymbolicLink()) {
195
- throw new CatalogGenerationError({
196
- code: 'catalogGenerationMetadataInvalid',
197
- message: 'Catalog generation metadata file is missing or unsafe. Remove the damaged generation and refresh the source.',
198
- });
199
- }
200
- let metadata;
140
+ async function validateEntry(options) {
201
141
  try {
202
- metadata = parseGenerationMetadata(await fs.readJson(metadataPath));
142
+ const stat = await fs.lstat(options.location.entryDir).catch((error) => {
143
+ if (error.code === 'ENOENT')
144
+ return null;
145
+ throw error;
146
+ });
147
+ if (!stat?.isDirectory() || stat.isSymbolicLink())
148
+ throw metadataError('Catalog store entry is missing or unsafe.');
149
+ const metadataStat = await fs.lstat(options.location.metadataPath).catch((error) => error.code === 'ENOENT' ? null : Promise.reject(error));
150
+ if (!metadataStat?.isFile() || metadataStat.isSymbolicLink()) {
151
+ throw metadataError('Catalog store metadata is missing or unsafe.');
152
+ }
153
+ const metadata = parseMetadata(await fs.readJson(options.location.metadataPath));
154
+ const validation = await validateCatalogSnapshotTransport(options.location.snapshotRoot)
155
+ .catch((error) => { throw metadataError('Catalog store snapshot is damaged.', error); });
156
+ if (createCatalogStoreKey(metadata.logicalIdentity, metadata.snapshotDigest) !== options.location.storeKey
157
+ || validation.manifestDigest !== metadata.manifestDigest
158
+ || validation.snapshotDigest !== metadata.snapshotDigest
159
+ || validation.manifest.catalogVersion !== metadata.catalogVersion
160
+ || validation.manifest.channel !== metadata.channel
161
+ || JSON.stringify(normalizeAwCapabilities(validation.manifest.requires.aw.capabilities ?? []))
162
+ !== JSON.stringify(metadata.requiredAwCapabilities)
163
+ || await readCatalogSnapshotLogicalIdentity(options.location.snapshotRoot) !== metadata.logicalIdentity)
164
+ throw metadataError('Catalog store content does not match its immutable identity.');
165
+ return {
166
+ entryDir: options.location.entryDir,
167
+ snapshotRoot: options.location.snapshotRoot,
168
+ metadata,
169
+ manifest: validation.manifest,
170
+ reused: true,
171
+ };
203
172
  }
204
173
  catch (error) {
205
174
  if (error instanceof CatalogGenerationError)
206
175
  throw error;
207
- throw new CatalogGenerationError({
208
- code: 'catalogGenerationMetadataInvalid',
209
- message: 'Catalog generation metadata is unreadable. Remove the damaged generation and refresh the source.',
210
- cause: error,
211
- });
176
+ throw metadataError('Catalog store entry is unreadable.', error);
212
177
  }
213
- if (metadata.logicalIdentity !== options.logicalIdentity
214
- || metadata.snapshotDigest !== options.snapshotDigest) {
215
- throw new CatalogGenerationError({
216
- code: 'catalogGenerationIdentityMismatch',
217
- message: 'Catalog generation directory identity does not match its metadata. Remove the damaged generation and refresh the source.',
218
- });
219
- }
220
- return metadata;
221
178
  }
222
- export async function prepareCatalogGeneration(options) {
179
+ export async function publishCatalogStoreEntry(options) {
223
180
  options.signal?.throwIfAborted();
224
- const awHomeDir = canonicalizePathThroughExistingAncestorSync(resolveAwHome(options.env ?? process.env));
225
- const storeRootDir = path.join(awHomeDir, CATALOG_GENERATIONS_DIRECTORY);
226
- await ensureRegularDirectoryPath(storeRootDir, 'Catalog generation store');
227
- const stagingDir = path.join(storeRootDir, `.staging-${crypto.randomUUID()}.tmp`);
181
+ const logicalIdentity = await readCatalogSnapshotLogicalIdentity(options.resolution.rootDir);
182
+ const location = resolveCatalogStoreLocation({
183
+ logicalIdentity,
184
+ snapshotDigest: options.resolution.snapshotDigest,
185
+ env: options.env,
186
+ });
187
+ await ensureRegularDirectoryPath(location.storeRootDir, 'Catalog store');
188
+ await ensureRegularDirectoryPath(location.logicalIdentityDirectory, 'Catalog logical identity store');
189
+ if (await fs.pathExists(location.entryDir))
190
+ return validateEntry({ location });
191
+ const stagingDir = resolveStrictStoreDescendant(location.storeRootDir, path.basename(location.logicalIdentityDirectory), `.staging-${crypto.randomUUID()}.tmp`);
228
192
  try {
229
193
  await fs.mkdir(stagingDir);
230
194
  const snapshotRoot = path.join(stagingDir, 'snapshot');
@@ -236,25 +200,15 @@ export async function prepareCatalogGeneration(options) {
236
200
  return true;
237
201
  },
238
202
  });
239
- options.signal?.throwIfAborted();
240
203
  const validation = await validateCatalogSnapshotTransport(snapshotRoot);
241
- options.signal?.throwIfAborted();
242
204
  if (validation.manifestDigest !== options.resolution.manifestDigest
243
205
  || validation.snapshotDigest !== options.resolution.snapshotDigest
244
- || validation.manifest.catalogVersion !== options.resolution.manifest.catalogVersion
245
- || validation.manifest.channel !== options.resolution.manifest.channel) {
206
+ || await readCatalogSnapshotLogicalIdentity(snapshotRoot) !== logicalIdentity)
246
207
  throw new CatalogGenerationError({
247
208
  code: 'catalogGenerationPublishFailed',
248
209
  sourceId: options.resolution.sourceId,
249
- message: `Catalog source "${options.resolution.sourceId}" changed before generation publication. Refresh the source again.`,
210
+ message: `Catalog source "${options.resolution.sourceId}" changed before store publication. Run source sync again.`,
250
211
  });
251
- }
252
- const logicalIdentity = await readCatalogLogicalIdentity(snapshotRoot);
253
- const location = resolveCatalogGenerationLocation({
254
- logicalIdentity,
255
- snapshotDigest: validation.snapshotDigest,
256
- env: options.env,
257
- });
258
212
  const metadata = {
259
213
  schemaVersion: 1,
260
214
  logicalIdentity,
@@ -262,126 +216,36 @@ export async function prepareCatalogGeneration(options) {
262
216
  channel: validation.manifest.channel,
263
217
  manifestDigest: validation.manifestDigest,
264
218
  snapshotDigest: validation.snapshotDigest,
265
- generationKey: location.generationKey,
266
219
  requiredAwCapabilities: normalizeAwCapabilities(validation.manifest.requires.aw.capabilities ?? []),
267
- publishedAt: (options.now?.() ?? new Date()).toISOString(),
268
220
  };
269
- await fs.writeFile(path.join(stagingDir, CATALOG_GENERATION_METADATA_FILE), `${JSON.stringify(metadata, null, 2)}\n`, { flag: 'wx', mode: 0o600 });
270
- options.signal?.throwIfAborted();
271
- await validateGenerationDirectory({
272
- generationDir: stagingDir,
273
- logicalIdentity,
274
- snapshotDigest: validation.snapshotDigest,
275
- });
221
+ await fs.writeFile(path.join(stagingDir, CATALOG_STORE_METADATA_FILE), `${JSON.stringify(metadata, null, 2)}\n`, { flag: 'wx', mode: 0o600 });
276
222
  options.signal?.throwIfAborted();
277
- return { stagingDir, location, metadata };
223
+ try {
224
+ await fs.rename(stagingDir, location.entryDir);
225
+ }
226
+ catch (error) {
227
+ const code = error.code;
228
+ if (code !== 'EEXIST' && code !== 'ENOTEMPTY')
229
+ throw error;
230
+ return validateEntry({ location });
231
+ }
232
+ return { entryDir: location.entryDir, snapshotRoot: location.snapshotRoot, metadata, manifest: validation.manifest, reused: false };
278
233
  }
279
234
  catch (error) {
280
- await fs.remove(stagingDir).catch(() => undefined);
281
235
  if (error instanceof CatalogGenerationError)
282
236
  throw error;
283
237
  throw new CatalogGenerationError({
284
238
  code: 'catalogGenerationPublishFailed',
285
239
  sourceId: options.resolution.sourceId,
286
- message: `Cannot prepare Catalog generation for source "${options.resolution.sourceId}". Refresh the source again after repairing the snapshot.`,
240
+ message: `Cannot publish Catalog store entry for source "${options.resolution.sourceId}". The previous Active entry is unchanged.`,
287
241
  cause: error,
288
242
  });
289
243
  }
290
- }
291
- export async function publishPreparedCatalogGeneration(prepared) {
292
- await ensureRegularDirectoryPath(prepared.location.logicalIdentityDirectory, 'Catalog logical identity directory');
293
- const existing = await fs.lstat(prepared.location.generationDir).catch((error) => {
294
- if (error.code === 'ENOENT')
295
- return null;
296
- throw error;
297
- });
298
- if (existing) {
299
- const published = await validateGenerationDirectory({
300
- generationDir: prepared.location.generationDir,
301
- logicalIdentity: prepared.metadata.logicalIdentity,
302
- snapshotDigest: prepared.metadata.snapshotDigest,
303
- });
304
- await fs.remove(prepared.stagingDir).catch(() => undefined);
305
- return published;
306
- }
307
- try {
308
- await fs.rename(prepared.stagingDir, prepared.location.generationDir);
309
- }
310
- catch (error) {
311
- const code = error.code;
312
- if (code === 'EEXIST' || code === 'ENOTEMPTY') {
313
- const published = await validateGenerationDirectory({
314
- generationDir: prepared.location.generationDir,
315
- logicalIdentity: prepared.metadata.logicalIdentity,
316
- snapshotDigest: prepared.metadata.snapshotDigest,
317
- });
318
- await fs.remove(prepared.stagingDir).catch(() => undefined);
319
- return published;
320
- }
321
- throw new CatalogGenerationError({
322
- code: 'catalogGenerationPublishFailed',
323
- message: 'Cannot atomically publish the prepared Catalog generation. The previous Active generation is unchanged; refresh the source again.',
324
- cause: error,
325
- });
244
+ finally {
245
+ await fs.remove(stagingDir).catch(() => undefined);
326
246
  }
327
- return {
328
- generationDir: prepared.location.generationDir,
329
- snapshotRoot: prepared.location.snapshotRoot,
330
- metadata: prepared.metadata,
331
- };
332
- }
333
- export async function discardPreparedCatalogGeneration(prepared) {
334
- await fs.remove(prepared.stagingDir).catch(() => undefined);
335
247
  }
336
- export async function readCatalogGeneration(options) {
337
- const location = resolveCatalogGenerationLocation(options);
338
- return validateGenerationDirectory({
339
- generationDir: location.generationDir,
340
- logicalIdentity: options.logicalIdentity,
341
- snapshotDigest: options.snapshotDigest,
342
- });
343
- }
344
- export async function listCatalogGenerationsForIdentity(options) {
345
- const placeholderDigest = `sha256:${'0'.repeat(64)}`;
346
- const location = resolveCatalogGenerationLocation({
347
- logicalIdentity: options.logicalIdentity,
348
- snapshotDigest: placeholderDigest,
349
- env: options.env,
350
- });
351
- const directoryStat = await fs.lstat(location.logicalIdentityDirectory).catch((error) => {
352
- if (error.code === 'ENOENT')
353
- return null;
354
- throw error;
355
- });
356
- if (!directoryStat)
357
- return [];
358
- if (!directoryStat.isDirectory() || directoryStat.isSymbolicLink()) {
359
- throw new CatalogGenerationError({
360
- code: 'catalogGenerationMetadataInvalid',
361
- message: 'Catalog logical identity store is unsafe. Repair it before refreshing the source.',
362
- });
363
- }
364
- const names = (await fs.readdir(location.logicalIdentityDirectory)).sort();
365
- const generations = [];
366
- for (const name of names) {
367
- if (!HEX_DIGEST_PATTERN.test(name)) {
368
- throw new CatalogGenerationError({
369
- code: 'catalogGenerationMetadataInvalid',
370
- message: 'Catalog logical identity store contains an invalid entry. Remove the damaged entry before refreshing the source.',
371
- });
372
- }
373
- const generationDir = path.join(location.logicalIdentityDirectory, name);
374
- const metadata = await readGenerationMetadataAt({
375
- generationDir,
376
- logicalIdentity: options.logicalIdentity,
377
- snapshotDigest: `sha256:${name}`,
378
- });
379
- generations.push({
380
- generationDir,
381
- snapshotRoot: path.join(generationDir, 'snapshot'),
382
- metadata,
383
- });
384
- }
385
- return generations;
248
+ export async function readCatalogStoreEntry(options) {
249
+ return validateEntry({ location: resolveCatalogStoreLocation(options) });
386
250
  }
387
251
  //# sourceMappingURL=catalog-generation-store.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"catalog-generation-store.js","sourceRoot":"","sources":["../../../src/utils/catalog-generation-store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"catalog-generation-store.js","sourceRoot":"","sources":["../../../src/utils/catalog-generation-store.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import type { CatalogManifestV6, CatalogManifestV6Entry, PluginMeta } from '../types.js';
2
+ export declare const CATALOG_SCHEMA_6_CAPABILITY = "aw.catalog-snapshot.v6";
3
+ export declare function validateCatalogManifestV6(rawManifest: unknown): CatalogManifestV6;
4
+ export declare function createCatalogManifestV6(manifest: Omit<CatalogManifestV6, 'schemaVersion'>): CatalogManifestV6;
5
+ export declare function createCatalogManifestV6Entry(plugin: PluginMeta, pluginRoot: string): Promise<CatalogManifestV6Entry>;