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

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 (237) hide show
  1. package/dist/authoring/scripts/init-plugin.mjs +4 -33
  2. package/dist/authoring/scripts/init-plugin.mjs.map +1 -1
  3. package/dist/authoring/scripts/lib/plugin-version-check.mjs +1 -1
  4. package/dist/authoring/scripts/plugin-status.mjs +8 -11
  5. package/dist/authoring/scripts/plugin-status.mjs.map +1 -1
  6. package/dist/authoring/scripts/remove-plugin.mjs +1 -0
  7. package/dist/authoring/scripts/remove-plugin.mjs.map +1 -1
  8. package/dist/authoring/scripts/validate-plugin.mjs +104 -54
  9. package/dist/authoring/scripts/validate-plugin.mjs.map +1 -1
  10. package/dist/scripts/codex-eval-app-server.d.ts +2 -0
  11. package/dist/scripts/codex-eval-app-server.js +107 -1
  12. package/dist/scripts/codex-eval-app-server.js.map +1 -1
  13. package/dist/scripts/eval-plugin-skills.js +5 -2
  14. package/dist/scripts/eval-plugin-skills.js.map +1 -1
  15. package/dist/scripts/plugin-eval-contract.d.ts +5 -1
  16. package/dist/scripts/plugin-eval-contract.js +54 -4
  17. package/dist/scripts/plugin-eval-contract.js.map +1 -1
  18. package/dist/scripts/plugin-staging.d.ts +6 -7
  19. package/dist/scripts/plugin-staging.js +11 -23
  20. package/dist/scripts/plugin-staging.js.map +1 -1
  21. package/dist/scripts/test-plugin-scripts.js +2 -33
  22. package/dist/scripts/test-plugin-scripts.js.map +1 -1
  23. package/dist/src/adapters/helpers.js +2 -2
  24. package/dist/src/adapters/helpers.js.map +1 -1
  25. package/dist/src/authoring/workspace-commands.d.ts +17 -2
  26. package/dist/src/authoring/workspace-commands.js +21 -4
  27. package/dist/src/authoring/workspace-commands.js.map +1 -1
  28. package/dist/src/commands/aw-capabilities.d.ts +78 -0
  29. package/dist/src/commands/aw-capabilities.js +259 -0
  30. package/dist/src/commands/aw-capabilities.js.map +1 -0
  31. package/dist/src/commands/catalog-context.d.ts +52 -0
  32. package/dist/src/commands/catalog-context.js +156 -0
  33. package/dist/src/commands/catalog-context.js.map +1 -0
  34. package/dist/src/commands/catalog-dev-source.d.ts +112 -0
  35. package/dist/src/commands/catalog-dev-source.js +481 -0
  36. package/dist/src/commands/catalog-dev-source.js.map +1 -0
  37. package/dist/src/commands/catalog-generation.d.ts +26 -0
  38. package/dist/src/commands/catalog-generation.js +14 -0
  39. package/dist/src/commands/catalog-generation.js.map +1 -0
  40. package/dist/src/commands/catalog-publication-inspection.d.ts +1 -1
  41. package/dist/src/commands/catalog-publication-inspection.js +4 -5
  42. package/dist/src/commands/catalog-publication-inspection.js.map +1 -1
  43. package/dist/src/commands/catalog-publication-target.d.ts +17 -0
  44. package/dist/src/commands/catalog-publication-target.js +60 -0
  45. package/dist/src/commands/catalog-publication-target.js.map +1 -0
  46. package/dist/src/commands/catalog-publish.d.ts +8 -1
  47. package/dist/src/commands/catalog-publish.js +25 -2
  48. package/dist/src/commands/catalog-publish.js.map +1 -1
  49. package/dist/src/commands/catalog-source.d.ts +23 -1
  50. package/dist/src/commands/catalog-source.js +126 -40
  51. package/dist/src/commands/catalog-source.js.map +1 -1
  52. package/dist/src/commands/catalog-status.d.ts +18 -2
  53. package/dist/src/commands/catalog-status.js +122 -18
  54. package/dist/src/commands/catalog-status.js.map +1 -1
  55. package/dist/src/commands/init.js +1 -1
  56. package/dist/src/commands/init.js.map +1 -1
  57. package/dist/src/commands/offline-cleanup-evidence.d.ts +23 -0
  58. package/dist/src/commands/offline-cleanup-evidence.js +38 -0
  59. package/dist/src/commands/offline-cleanup-evidence.js.map +1 -0
  60. package/dist/src/commands/options.d.ts +1 -0
  61. package/dist/src/commands/options.js +1 -0
  62. package/dist/src/commands/options.js.map +1 -1
  63. package/dist/src/commands/plugin-capabilities.js +1 -1
  64. package/dist/src/commands/plugin-capabilities.js.map +1 -1
  65. package/dist/src/commands/rebuild-command.d.ts +19 -7
  66. package/dist/src/commands/rebuild-command.js +415 -205
  67. package/dist/src/commands/rebuild-command.js.map +1 -1
  68. package/dist/src/commands/rebuild-integration.d.ts +10 -3
  69. package/dist/src/commands/rebuild-integration.js +71 -76
  70. package/dist/src/commands/rebuild-integration.js.map +1 -1
  71. package/dist/src/commands/rebuild-operations.d.ts +0 -8
  72. package/dist/src/commands/rebuild-operations.js +17 -115
  73. package/dist/src/commands/rebuild-operations.js.map +1 -1
  74. package/dist/src/commands/runtime.js +21 -34
  75. package/dist/src/commands/runtime.js.map +1 -1
  76. package/dist/src/commands/{status-v4.d.ts → status-v5.d.ts} +67 -21
  77. package/dist/src/commands/{status-v4.js → status-v5.js} +260 -30
  78. package/dist/src/commands/status-v5.js.map +1 -0
  79. package/dist/src/commands/wizard.d.ts +2 -2
  80. package/dist/src/commands/wizard.js +2 -2
  81. package/dist/src/commands/wizard.js.map +1 -1
  82. package/dist/src/commands/write-commands.js +73 -17
  83. package/dist/src/commands/write-commands.js.map +1 -1
  84. package/dist/src/constants.d.ts +6 -1
  85. package/dist/src/constants.js +6 -1
  86. package/dist/src/constants.js.map +1 -1
  87. package/dist/src/generators/local-plugin.js +57 -3
  88. package/dist/src/generators/local-plugin.js.map +1 -1
  89. package/dist/src/index.d.ts +4 -1
  90. package/dist/src/index.js +562 -85
  91. package/dist/src/index.js.map +1 -1
  92. package/dist/src/output/model.d.ts +1 -34
  93. package/dist/src/output/model.js +1 -144
  94. package/dist/src/output/model.js.map +1 -1
  95. package/dist/src/output/rebuild-progress.js +0 -3
  96. package/dist/src/output/rebuild-progress.js.map +1 -1
  97. package/dist/src/portable/commands.d.ts +4 -0
  98. package/dist/src/portable/commands.js +61 -4
  99. package/dist/src/portable/commands.js.map +1 -1
  100. package/dist/src/portable/materializer.d.ts +3 -0
  101. package/dist/src/portable/materializer.js +61 -10
  102. package/dist/src/portable/materializer.js.map +1 -1
  103. package/dist/src/tui/catalog-generation.d.ts +56 -0
  104. package/dist/src/tui/catalog-generation.js +244 -0
  105. package/dist/src/tui/catalog-generation.js.map +1 -0
  106. package/dist/src/tui/console-app-v4.d.ts +1 -1
  107. package/dist/src/tui/console-app-v4.js +446 -126
  108. package/dist/src/tui/console-app-v4.js.map +1 -1
  109. package/dist/src/tui/controller-runtime.d.ts +8 -2
  110. package/dist/src/tui/controller-runtime.js +606 -92
  111. package/dist/src/tui/controller-runtime.js.map +1 -1
  112. package/dist/src/tui/controller.d.ts +71 -6
  113. package/dist/src/tui/controller.js +377 -83
  114. package/dist/src/tui/controller.js.map +1 -1
  115. package/dist/src/tui/index.d.ts +1 -0
  116. package/dist/src/tui/index.js +1 -0
  117. package/dist/src/tui/index.js.map +1 -1
  118. package/dist/src/tui/input-display.d.ts +8 -0
  119. package/dist/src/tui/input-display.js +36 -0
  120. package/dist/src/tui/input-display.js.map +1 -0
  121. package/dist/src/tui/model.d.ts +27 -7
  122. package/dist/src/tui/model.js +273 -65
  123. package/dist/src/tui/model.js.map +1 -1
  124. package/dist/src/tui/router.d.ts +26 -0
  125. package/dist/src/tui/router.js.map +1 -1
  126. package/dist/src/tui/source-ref-presets.d.ts +3 -0
  127. package/dist/src/tui/source-ref-presets.js +11 -0
  128. package/dist/src/tui/source-ref-presets.js.map +1 -0
  129. package/dist/src/tui/views.js +31 -3
  130. package/dist/src/tui/views.js.map +1 -1
  131. package/dist/src/types.d.ts +90 -6
  132. package/dist/src/types.js.map +1 -1
  133. package/dist/src/utils/agent-version.d.ts +3 -0
  134. package/dist/src/utils/agent-version.js +13 -5
  135. package/dist/src/utils/agent-version.js.map +1 -1
  136. package/dist/src/utils/aw-home-mutation-lock.d.ts +1 -0
  137. package/dist/src/utils/aw-home-mutation-lock.js +32 -4
  138. package/dist/src/utils/aw-home-mutation-lock.js.map +1 -1
  139. package/dist/src/utils/bundle-integrity.d.ts +0 -1
  140. package/dist/src/utils/bundle-integrity.js +0 -25
  141. package/dist/src/utils/bundle-integrity.js.map +1 -1
  142. package/dist/src/utils/bundle-layout.js +8 -6
  143. package/dist/src/utils/bundle-layout.js.map +1 -1
  144. package/dist/src/utils/catalog-digests.js +13 -2
  145. package/dist/src/utils/catalog-digests.js.map +1 -1
  146. package/dist/src/utils/catalog-generation-error.d.ts +12 -0
  147. package/dist/src/utils/catalog-generation-error.js +16 -0
  148. package/dist/src/utils/catalog-generation-error.js.map +1 -0
  149. package/dist/src/utils/catalog-generation-resolver.d.ts +13 -0
  150. package/dist/src/utils/catalog-generation-resolver.js +129 -0
  151. package/dist/src/utils/catalog-generation-resolver.js.map +1 -0
  152. package/dist/src/utils/catalog-generation-service.d.ts +52 -0
  153. package/dist/src/utils/catalog-generation-service.js +620 -0
  154. package/dist/src/utils/catalog-generation-service.js.map +1 -0
  155. package/dist/src/utils/catalog-generation-state.d.ts +13 -0
  156. package/dist/src/utils/catalog-generation-state.js +201 -0
  157. package/dist/src/utils/catalog-generation-state.js.map +1 -0
  158. package/dist/src/utils/catalog-generation-store.d.ts +44 -0
  159. package/dist/src/utils/catalog-generation-store.js +387 -0
  160. package/dist/src/utils/catalog-generation-store.js.map +1 -0
  161. package/dist/src/utils/catalog-manifest-v5.d.ts +5 -0
  162. package/dist/src/utils/{catalog-manifest-v4.js → catalog-manifest-v5.js} +39 -35
  163. package/dist/src/utils/{catalog-manifest-v4.js.map → catalog-manifest-v5.js.map} +1 -1
  164. package/dist/src/utils/catalog-operation-context.d.ts +28 -0
  165. package/dist/src/utils/catalog-operation-context.js +242 -0
  166. package/dist/src/utils/catalog-operation-context.js.map +1 -0
  167. package/dist/src/utils/catalog-public-error.d.ts +7 -3
  168. package/dist/src/utils/catalog-public-error.js +20 -4
  169. package/dist/src/utils/catalog-public-error.js.map +1 -1
  170. package/dist/src/utils/catalog-snapshot.d.ts +5 -3
  171. package/dist/src/utils/catalog-snapshot.js +11 -3
  172. package/dist/src/utils/catalog-snapshot.js.map +1 -1
  173. package/dist/src/utils/catalog-source-cache.d.ts +1 -1
  174. package/dist/src/utils/catalog-source-cache.js +37 -12
  175. package/dist/src/utils/catalog-source-cache.js.map +1 -1
  176. package/dist/src/utils/catalog-source-identity.d.ts +1 -0
  177. package/dist/src/utils/catalog-source-identity.js +21 -2
  178. package/dist/src/utils/catalog-source-identity.js.map +1 -1
  179. package/dist/src/utils/catalog-sources.d.ts +1 -0
  180. package/dist/src/utils/catalog-sources.js +30 -11
  181. package/dist/src/utils/catalog-sources.js.map +1 -1
  182. package/dist/src/utils/codex-config.js +4 -4
  183. package/dist/src/utils/codex-config.js.map +1 -1
  184. package/dist/src/utils/codex-manager.d.ts +33 -0
  185. package/dist/src/utils/codex-manager.js +656 -0
  186. package/dist/src/utils/codex-manager.js.map +1 -0
  187. package/dist/src/utils/codex-skill-staging.d.ts +2 -0
  188. package/dist/src/utils/codex-skill-staging.js.map +1 -1
  189. package/dist/src/utils/dynamic-skill-tree.d.ts +4 -0
  190. package/dist/src/utils/dynamic-skill-tree.js +35 -5
  191. package/dist/src/utils/dynamic-skill-tree.js.map +1 -1
  192. package/dist/src/utils/git-catalog-provider.js +10 -25
  193. package/dist/src/utils/git-catalog-provider.js.map +1 -1
  194. package/dist/src/utils/lifecycle-active-store.d.ts +0 -28
  195. package/dist/src/utils/lifecycle-active-store.js +35 -247
  196. package/dist/src/utils/lifecycle-active-store.js.map +1 -1
  197. package/dist/src/utils/multi-source-catalog.d.ts +3 -0
  198. package/dist/src/utils/multi-source-catalog.js +120 -10
  199. package/dist/src/utils/multi-source-catalog.js.map +1 -1
  200. package/dist/src/utils/native-cli.d.ts +15 -6
  201. package/dist/src/utils/native-cli.js +31 -39
  202. package/dist/src/utils/native-cli.js.map +1 -1
  203. package/dist/src/utils/orphan-marketplace-cleanup.js +0 -3
  204. package/dist/src/utils/orphan-marketplace-cleanup.js.map +1 -1
  205. package/dist/src/utils/ownership.d.ts +10 -1
  206. package/dist/src/utils/ownership.js +52 -24
  207. package/dist/src/utils/ownership.js.map +1 -1
  208. package/dist/src/utils/path-catalog-provider.js +12 -8
  209. package/dist/src/utils/path-catalog-provider.js.map +1 -1
  210. package/dist/src/utils/plugin-config-write.js +18 -35
  211. package/dist/src/utils/plugin-config-write.js.map +1 -1
  212. package/dist/src/utils/plugin-config.d.ts +1 -12
  213. package/dist/src/utils/plugin-config.js +107 -226
  214. package/dist/src/utils/plugin-config.js.map +1 -1
  215. package/dist/src/utils/plugin-scripts.d.ts +1 -1
  216. package/dist/src/utils/plugin-scripts.js +1 -1
  217. package/dist/src/utils/plugin-scripts.js.map +1 -1
  218. package/dist/src/utils/state-paths.js +7 -2
  219. package/dist/src/utils/state-paths.js.map +1 -1
  220. package/dist/src/utils/target-eligibility.d.ts +7 -2
  221. package/dist/src/utils/target-eligibility.js +6 -3
  222. package/dist/src/utils/target-eligibility.js.map +1 -1
  223. package/package.json +4 -3
  224. package/dist/authoring/scripts/check-plugin-versions.d.mts +0 -2
  225. package/dist/authoring/scripts/check-plugin-versions.mjs +0 -5
  226. package/dist/authoring/scripts/check-plugin-versions.mjs.map +0 -1
  227. package/dist/src/commands/status-v4.js.map +0 -1
  228. package/dist/src/commands/status.d.ts +0 -93
  229. package/dist/src/commands/status.js +0 -442
  230. package/dist/src/commands/status.js.map +0 -1
  231. package/dist/src/utils/active-marketplace-runtime-lock.d.ts +0 -12
  232. package/dist/src/utils/active-marketplace-runtime-lock.js +0 -133
  233. package/dist/src/utils/active-marketplace-runtime-lock.js.map +0 -1
  234. package/dist/src/utils/catalog-manifest-v3.d.ts +0 -2
  235. package/dist/src/utils/catalog-manifest-v3.js +0 -3
  236. package/dist/src/utils/catalog-manifest-v3.js.map +0 -1
  237. package/dist/src/utils/catalog-manifest-v4.d.ts +0 -5
@@ -2,7 +2,22 @@ import { calculateCatalogSourceIdentity } from '../utils/catalog-source-identity
2
2
  import { catalogSourceErrorCode, sanitizeCatalogSourceError } from '../utils/catalog-public-error.js';
3
3
  import { addCatalogSource, calculateCatalogSourcesConfigDigest, CatalogSourcesConfigConflictError, readCatalogSourcesConfigSnapshot, removeCatalogSource, replaceCatalogSourcesConfig, setPrimaryCatalogSource, updateCatalogSource, } from '../utils/catalog-sources.js';
4
4
  import { withAwHomeMutationLock, } from '../utils/aw-home-mutation-lock.js';
5
- import { withResolvedMultiSourceCatalog } from '../utils/multi-source-catalog.js';
5
+ import { refreshCatalogSourceGeneration, removeCatalogSourceGenerationState, } from '../utils/catalog-generation-service.js';
6
+ export class CatalogManagedSourceProtectedError extends Error {
7
+ code = 'managedSourceProtected';
8
+ constructor(sourceId) {
9
+ super(`Catalog source "${sourceId}" is managed by a Catalog Workspace. Use catalog dev commands.`);
10
+ this.name = 'CatalogManagedSourceProtectedError';
11
+ }
12
+ }
13
+ function assertManagedSourceAccess(options) {
14
+ const owner = options.source?.type === 'path' ? options.source.managedBy : undefined;
15
+ if (!owner)
16
+ return;
17
+ if (owner.workspaceIdentity !== options.managedByWorkspaceIdentity) {
18
+ throw new CatalogManagedSourceProtectedError(options.source.id);
19
+ }
20
+ }
6
21
  async function reportMutationProgress(runtime, event) {
7
22
  try {
8
23
  await runtime?.onProgress?.(event);
@@ -38,37 +53,6 @@ function unchangedReceipt(options) {
38
53
  errors: [],
39
54
  };
40
55
  }
41
- function projectEvidence(resolution) {
42
- return {
43
- sourceId: resolution.sourceId,
44
- sourceIdentity: resolution.sourceIdentity,
45
- requestedRef: resolution.requestedRef,
46
- resolvedCommit: resolution.resolvedCommit,
47
- catalogVersion: resolution.manifest.catalogVersion,
48
- channel: resolution.manifest.channel,
49
- freshness: resolution.source,
50
- };
51
- }
52
- async function validateCandidate(options) {
53
- const configSnapshot = {
54
- config: options.config,
55
- digest: calculateCatalogSourcesConfigDigest(options.config),
56
- materialized: true,
57
- };
58
- return withResolvedMultiSourceCatalog({
59
- cliVersion: options.cliVersion,
60
- freshnessPolicy: 'forceRemote',
61
- sourceIds: [options.sourceId],
62
- configSnapshot,
63
- env: options.env,
64
- consume: (catalog) => {
65
- const item = catalog.sources[0];
66
- if (item.error)
67
- throw item.error;
68
- return projectEvidence(item.resolution);
69
- },
70
- });
71
- }
72
56
  async function identityChanged(before, after) {
73
57
  return await calculateCatalogSourceIdentity(before) !== await calculateCatalogSourceIdentity(after);
74
58
  }
@@ -78,6 +62,11 @@ export async function preflightCatalogSourceMutation(options) {
78
62
  const request = options.request;
79
63
  const sourceId = request.action === 'add' ? request.source.id : request.sourceId;
80
64
  const before = snapshot.config.sources.find((source) => source.id === sourceId);
65
+ assertManagedSourceAccess({
66
+ source: request.action === 'add' ? request.source
67
+ : request.action === 'update' || request.action === 'remove' ? before : undefined,
68
+ managedByWorkspaceIdentity: options.managedByWorkspaceIdentity,
69
+ });
81
70
  const candidate = request.action === 'add'
82
71
  ? await addCatalogSource(snapshot.config, request.source, options.cwd)
83
72
  : request.action === 'update'
@@ -130,12 +119,28 @@ async function refreshCommittedSource(options) {
130
119
  });
131
120
  try {
132
121
  await options.runtime.beforeRefresh?.();
133
- const source = await validateCandidate({
134
- config: options.config,
122
+ const refreshed = await refreshCatalogSourceGeneration({
135
123
  sourceId: options.receipt.sourceId,
136
124
  cliVersion: options.cliVersion,
137
125
  env: options.env,
126
+ runtime: options.runtime.generation,
127
+ ...(options.awHomeMutationToken
128
+ ? { awHomeMutationToken: options.awHomeMutationToken }
129
+ : {}),
138
130
  });
131
+ const pointer = refreshed.candidate ?? refreshed.active;
132
+ if (!pointer)
133
+ throw new Error('Catalog generation refresh returned no selected generation.');
134
+ const configured = options.config.sources.find((source) => source.id === options.receipt.sourceId);
135
+ const source = {
136
+ sourceId: refreshed.sourceId,
137
+ sourceIdentity: refreshed.sourceIdentity,
138
+ requestedRef: pointer.requestedRef,
139
+ resolvedCommit: pointer.resolvedCommit,
140
+ catalogVersion: pointer.catalogVersion,
141
+ channel: pointer.channel,
142
+ freshness: configured.type === 'path' ? 'path' : 'remote',
143
+ };
139
144
  await reportMutationProgress(options.runtime, {
140
145
  action: options.receipt.command === 'catalog:source:add' ? 'add' : 'update',
141
146
  stage: 'catalogReady',
@@ -153,7 +158,7 @@ async function refreshCommittedSource(options) {
153
158
  export async function listCatalogSources(options = {}) {
154
159
  const snapshot = await readCatalogSourcesConfigSnapshot(options.env);
155
160
  return {
156
- catalogSourcesSchemaVersion: 1,
161
+ catalogSourcesSchemaVersion: 2,
157
162
  primarySourceId: primarySourceId(snapshot.config),
158
163
  configDigest: snapshot.digest,
159
164
  sources: await Promise.all(snapshot.config.sources.map(async (source) => ({
@@ -162,12 +167,54 @@ export async function listCatalogSources(options = {}) {
162
167
  }))),
163
168
  };
164
169
  }
170
+ export async function refreshCatalogSourceCommand(options) {
171
+ const env = options.env ?? process.env;
172
+ const snapshot = await readCatalogSourcesConfigSnapshot(env);
173
+ const configured = snapshot.config.sources.find((source) => source.id === options.sourceId);
174
+ if (!configured)
175
+ throw new Error(`Catalog source "${options.sourceId}" does not exist.`);
176
+ try {
177
+ await options.runtime?.beforeRefresh?.();
178
+ const refreshed = await refreshCatalogSourceGeneration({
179
+ sourceId: options.sourceId,
180
+ cliVersion: options.cliVersion,
181
+ env,
182
+ runtime: options.runtime?.generation,
183
+ ...(options.runtime?.awHomeMutationToken
184
+ ? { awHomeMutationToken: options.runtime.awHomeMutationToken }
185
+ : {}),
186
+ });
187
+ const pointer = refreshed.candidate ?? refreshed.active;
188
+ if (!pointer)
189
+ throw new Error('Catalog generation refresh returned no selected generation.');
190
+ return {
191
+ source: {
192
+ sourceId: refreshed.sourceId,
193
+ sourceIdentity: refreshed.sourceIdentity,
194
+ requestedRef: pointer.requestedRef,
195
+ resolvedCommit: pointer.resolvedCommit,
196
+ catalogVersion: pointer.catalogVersion,
197
+ channel: pointer.channel,
198
+ freshness: configured.type === 'path' ? 'path' : 'remote',
199
+ },
200
+ errors: [],
201
+ };
202
+ }
203
+ catch (error) {
204
+ const diagnostic = sanitizeCatalogSourceError(error, env);
205
+ return { errors: [{ code: catalogSourceErrorCode(diagnostic), message: diagnostic.message }] };
206
+ }
207
+ }
165
208
  export async function addCatalogSourceCommand(options) {
166
- return withCatalogSourceMutationLock({
209
+ const committed = await withCatalogSourceMutationLock({
167
210
  env: options.env,
168
211
  runtime: options.runtime,
169
212
  action: async ({ env, runtime }) => {
170
213
  const snapshot = await readCatalogSourcesConfigSnapshot(env);
214
+ assertManagedSourceAccess({
215
+ source: options.source,
216
+ managedByWorkspaceIdentity: options.managedByWorkspaceIdentity,
217
+ });
171
218
  if (options.expectedConfigDigest && snapshot.digest !== options.expectedConfigDigest) {
172
219
  throw new CatalogSourcesConfigConflictError(options.expectedConfigDigest, snapshot.digest);
173
220
  }
@@ -183,16 +230,33 @@ export async function addCatalogSourceCommand(options) {
183
230
  env,
184
231
  runtime,
185
232
  });
186
- return refreshCommittedSource({ receipt, config: candidate, cliVersion: options.cliVersion, env, runtime });
233
+ await removeCatalogSourceGenerationState({ sourceId: options.source.id, env });
234
+ return { receipt, candidate, env, runtime };
187
235
  },
188
236
  });
237
+ if ('receiptSchemaVersion' in committed)
238
+ return committed;
239
+ return refreshCommittedSource({
240
+ receipt: committed.receipt,
241
+ config: committed.candidate,
242
+ cliVersion: options.cliVersion,
243
+ env: committed.env,
244
+ runtime: committed.runtime,
245
+ ...(options.runtime?.awHomeMutationToken
246
+ ? { awHomeMutationToken: options.runtime.awHomeMutationToken }
247
+ : {}),
248
+ });
189
249
  }
190
250
  export async function updateCatalogSourceCommand(options) {
191
- return withCatalogSourceMutationLock({
251
+ const committed = await withCatalogSourceMutationLock({
192
252
  env: options.env,
193
253
  runtime: options.runtime,
194
254
  action: async ({ env, runtime }) => {
195
255
  const snapshot = await readCatalogSourcesConfigSnapshot(env);
256
+ assertManagedSourceAccess({
257
+ source: snapshot.config.sources.find((source) => source.id === options.sourceId),
258
+ managedByWorkspaceIdentity: options.managedByWorkspaceIdentity,
259
+ });
196
260
  if (options.expectedConfigDigest && snapshot.digest !== options.expectedConfigDigest) {
197
261
  throw new CatalogSourcesConfigConflictError(options.expectedConfigDigest, snapshot.digest);
198
262
  }
@@ -200,6 +264,7 @@ export async function updateCatalogSourceCommand(options) {
200
264
  if (calculateCatalogSourcesConfigDigest(candidate) === snapshot.digest) {
201
265
  return unchangedReceipt({ command: 'catalog:source:update', sourceId: options.sourceId, snapshot });
202
266
  }
267
+ const changedIdentity = await identityChanged(snapshot.config.sources.find((source) => source.id === options.sourceId), candidate.sources.find((source) => source.id === options.sourceId));
203
268
  const receipt = await commitCandidate({
204
269
  command: 'catalog:source:update',
205
270
  sourceId: options.sourceId,
@@ -208,9 +273,24 @@ export async function updateCatalogSourceCommand(options) {
208
273
  env,
209
274
  runtime,
210
275
  });
211
- return refreshCommittedSource({ receipt, config: candidate, cliVersion: options.cliVersion, env, runtime });
276
+ if (changedIdentity) {
277
+ await removeCatalogSourceGenerationState({ sourceId: options.sourceId, env });
278
+ }
279
+ return { receipt, candidate, env, runtime };
212
280
  },
213
281
  });
282
+ if ('receiptSchemaVersion' in committed)
283
+ return committed;
284
+ return refreshCommittedSource({
285
+ receipt: committed.receipt,
286
+ config: committed.candidate,
287
+ cliVersion: options.cliVersion,
288
+ env: committed.env,
289
+ runtime: committed.runtime,
290
+ ...(options.runtime?.awHomeMutationToken
291
+ ? { awHomeMutationToken: options.runtime.awHomeMutationToken }
292
+ : {}),
293
+ });
214
294
  }
215
295
  export async function setPrimaryCatalogSourceCommand(options) {
216
296
  return withCatalogSourceMutationLock({
@@ -242,6 +322,10 @@ export async function removeCatalogSourceCommand(options) {
242
322
  runtime: options.runtime,
243
323
  action: async ({ env, runtime }) => {
244
324
  const snapshot = await readCatalogSourcesConfigSnapshot(env);
325
+ assertManagedSourceAccess({
326
+ source: snapshot.config.sources.find((source) => source.id === options.sourceId),
327
+ managedByWorkspaceIdentity: options.managedByWorkspaceIdentity,
328
+ });
245
329
  if (options.expectedConfigDigest && snapshot.digest !== options.expectedConfigDigest) {
246
330
  throw new CatalogSourcesConfigConflictError(options.expectedConfigDigest, snapshot.digest);
247
331
  }
@@ -249,7 +333,7 @@ export async function removeCatalogSourceCommand(options) {
249
333
  if (calculateCatalogSourcesConfigDigest(candidate) === snapshot.digest) {
250
334
  return unchangedReceipt({ command: 'catalog:source:remove', sourceId: options.sourceId, snapshot });
251
335
  }
252
- return commitCandidate({
336
+ const receipt = await commitCandidate({
253
337
  command: 'catalog:source:remove',
254
338
  sourceId: options.sourceId,
255
339
  candidate,
@@ -257,6 +341,8 @@ export async function removeCatalogSourceCommand(options) {
257
341
  env,
258
342
  runtime,
259
343
  });
344
+ await removeCatalogSourceGenerationState({ sourceId: options.sourceId, env });
345
+ return receipt;
260
346
  },
261
347
  });
262
348
  }
@@ -1 +1 @@
1
- {"version":3,"file":"catalog-source.js","sourceRoot":"","sources":["../../../src/commands/catalog-source.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"catalog-source.js","sourceRoot":"","sources":["../../../src/commands/catalog-source.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,15 @@
1
+ import { type CatalogWorkspaceResolvedFrom } from '@lesliechan721/aw-plugin-core';
1
2
  import { type CatalogPublicationIssue } from './catalog-publication-inspection.js';
3
+ import { type CatalogBranchResolvedFrom, type CatalogRemoteResolvedFrom } from './catalog-publication-target.js';
2
4
  export interface CatalogStatusReceipt {
3
- schemaVersion: 1;
5
+ schemaVersion: 2;
4
6
  command: 'catalog:status';
5
7
  ok: boolean;
8
+ workspaceRoot: string;
9
+ workspaceRootResolvedFrom: CatalogWorkspaceResolvedFrom | null;
6
10
  workspace: {
7
11
  root: string;
12
+ resolvedFrom: CatalogWorkspaceResolvedFrom | null;
8
13
  valid: boolean;
9
14
  identity: string | null;
10
15
  };
@@ -31,13 +36,23 @@ export interface CatalogStatusReceipt {
31
36
  sourceHead: string | null;
32
37
  clean: boolean | null;
33
38
  };
39
+ snapshot: {
40
+ path: string;
41
+ state: 'absent' | 'current' | 'stale' | 'invalid';
42
+ valid: boolean;
43
+ catalogVersion: string | null;
44
+ snapshotDigest: string | null;
45
+ sourceIdentityMatches: boolean | null;
46
+ };
34
47
  publication: {
35
48
  checked: boolean;
36
49
  remote: string | null;
50
+ remoteResolvedFrom: CatalogRemoteResolvedFrom | null;
37
51
  remoteUrl: string | null;
38
52
  fetchUrl: string | null;
39
53
  pushUrl: string | null;
40
54
  branch: string | null;
55
+ branchResolvedFrom: CatalogBranchResolvedFrom | null;
41
56
  publishedVersion: string | null;
42
57
  parent: string | null;
43
58
  tag: string | null;
@@ -51,7 +66,8 @@ export interface CatalogStatusReceipt {
51
66
  issues: CatalogPublicationIssue[];
52
67
  }
53
68
  export declare function getCatalogStatus(options: {
54
- workspaceRoot: string;
69
+ cwd: string;
70
+ workspaceRoot?: string;
55
71
  remote?: string;
56
72
  branch?: string;
57
73
  preflight?: boolean;
@@ -1,9 +1,11 @@
1
1
  import { execFile } from 'node:child_process';
2
2
  import path from 'node:path';
3
3
  import { promisify } from 'node:util';
4
- import { deriveCatalogChannel, readCatalogWorkspace, } from '@lesliechan721/aw-plugin-core';
4
+ import fs from 'fs-extra';
5
+ import { calculateCatalogWorkspaceSourceIdentity, DEFAULT_CATALOG_OUTPUT_PATH, deriveCatalogChannel, readCatalogWorkspace, resolveCatalogWorkspaceRoot, validateCatalogSnapshotComplete, } from '@lesliechan721/aw-plugin-core';
5
6
  import { CatalogPublicationInspectionError, disposeCatalogPublicationInspection, prepareCatalogPublicationInspection, sanitizedGitEnvironment, } from './catalog-publication-inspection.js';
6
7
  import { catalogPublicationDescriptorDigest } from './catalog-publish.js';
8
+ import { resolveCatalogPublicationTarget, } from './catalog-publication-target.js';
7
9
  import { CLI_RESERVED_IMPORTS } from '../utils/manifest.js';
8
10
  const execFileAsync = promisify(execFile);
9
11
  function safeIssueMessage(message, workspaceRoot) {
@@ -34,13 +36,16 @@ function dependencyOrder(workspace) {
34
36
  }
35
37
  return result;
36
38
  }
37
- function applyWorkspaceFacts(receipt, workspace, reportedRoot) {
39
+ function applyWorkspaceFacts(receipt, workspace, reportedRoot, resolvedFrom = receipt.workspace.resolvedFrom) {
38
40
  receipt.issues = receipt.issues.filter((issue) => issue.code !== 'workspaceInvalid' && issue.code !== 'dependencyGraphInvalid');
39
41
  receipt.workspace = {
40
42
  root: reportedRoot,
43
+ resolvedFrom,
41
44
  valid: true,
42
45
  identity: workspace.workspaceIdentity,
43
46
  };
47
+ receipt.workspaceRoot = reportedRoot;
48
+ receipt.workspaceRootResolvedFrom = resolvedFrom;
44
49
  receipt.catalog = {
45
50
  valid: true,
46
51
  version: workspace.metadata.catalog.version,
@@ -63,11 +68,45 @@ function applyWorkspaceFacts(receipt, workspace, reportedRoot) {
63
68
  receipt.issues.push({
64
69
  code: 'dependencyGraphInvalid',
65
70
  message: safeIssueMessage(error instanceof Error ? error.message : String(error), reportedRoot),
71
+ blocking: true,
66
72
  });
67
73
  }
68
74
  }
75
+ async function inspectSnapshot(receipt, workspace) {
76
+ const snapshotPath = path.join(workspace.workspaceRoot, DEFAULT_CATALOG_OUTPUT_PATH);
77
+ receipt.snapshot.path = snapshotPath;
78
+ if (!(await fs.pathExists(snapshotPath)))
79
+ return;
80
+ try {
81
+ const [validation, marker, sourceIdentity] = await Promise.all([
82
+ validateCatalogSnapshotComplete(snapshotPath),
83
+ fs.readJson(path.join(snapshotPath, '.aw-generated.json')),
84
+ calculateCatalogWorkspaceSourceIdentity(workspace),
85
+ ]);
86
+ const sourceIdentityMatches = marker.workspaceIdentity === workspace.workspaceIdentity
87
+ && marker.sourceIdentity === sourceIdentity;
88
+ receipt.snapshot = {
89
+ path: snapshotPath,
90
+ state: sourceIdentityMatches ? 'current' : 'stale',
91
+ valid: true,
92
+ catalogVersion: validation.manifest.catalogVersion,
93
+ snapshotDigest: validation.snapshotDigest,
94
+ sourceIdentityMatches,
95
+ };
96
+ }
97
+ catch {
98
+ receipt.snapshot = {
99
+ path: snapshotPath,
100
+ state: 'invalid',
101
+ valid: false,
102
+ catalogVersion: null,
103
+ snapshotDigest: null,
104
+ sourceIdentityMatches: null,
105
+ };
106
+ }
107
+ }
69
108
  async function inspectGit(workspaceRoot, env) {
70
- const gitEnv = sanitizedGitEnvironment(env);
109
+ const gitEnv = { ...sanitizedGitEnvironment(env), GIT_OPTIONAL_LOCKS: '0' };
71
110
  try {
72
111
  const repoRoot = (await execFileAsync('git', ['rev-parse', '--show-toplevel'], {
73
112
  cwd: workspaceRoot,
@@ -95,10 +134,12 @@ async function inspectGit(workspaceRoot, env) {
95
134
  }
96
135
  function emptyReceipt(workspaceRoot, preflight) {
97
136
  return {
98
- schemaVersion: 1,
137
+ schemaVersion: 2,
99
138
  command: 'catalog:status',
100
139
  ok: false,
101
- workspace: { root: workspaceRoot, valid: false, identity: null },
140
+ workspaceRoot,
141
+ workspaceRootResolvedFrom: null,
142
+ workspace: { root: workspaceRoot, resolvedFrom: null, valid: false, identity: null },
102
143
  catalog: {
103
144
  valid: false,
104
145
  version: null,
@@ -110,13 +151,23 @@ function emptyReceipt(workspaceRoot, preflight) {
110
151
  plugins: [],
111
152
  dependencyGraph: { valid: false, order: [] },
112
153
  git: { checked: false, sourceHead: null, clean: null },
154
+ snapshot: {
155
+ path: path.join(workspaceRoot, DEFAULT_CATALOG_OUTPUT_PATH),
156
+ state: 'absent',
157
+ valid: false,
158
+ catalogVersion: null,
159
+ snapshotDigest: null,
160
+ sourceIdentityMatches: null,
161
+ },
113
162
  publication: {
114
163
  checked: preflight,
115
164
  remote: null,
165
+ remoteResolvedFrom: null,
116
166
  remoteUrl: null,
117
167
  fetchUrl: null,
118
168
  pushUrl: null,
119
169
  branch: null,
170
+ branchResolvedFrom: null,
120
171
  publishedVersion: null,
121
172
  parent: null,
122
173
  tag: null,
@@ -131,51 +182,101 @@ function emptyReceipt(workspaceRoot, preflight) {
131
182
  };
132
183
  }
133
184
  export async function getCatalogStatus(options) {
134
- const workspaceRoot = path.resolve(options.workspaceRoot);
135
- const receipt = emptyReceipt(workspaceRoot, options.preflight === true);
136
- if (options.preflight) {
137
- receipt.publication.remote = options.remote ?? 'origin';
138
- receipt.publication.branch = options.branch ?? 'catalog';
185
+ const requestedRoot = path.resolve(options.cwd, options.workspaceRoot ?? '.');
186
+ let resolution = null;
187
+ try {
188
+ resolution = await resolveCatalogWorkspaceRoot({
189
+ cwd: options.cwd,
190
+ ...(options.workspaceRoot === undefined ? {} : { explicitRoot: options.workspaceRoot }),
191
+ mode: 'existing',
192
+ });
193
+ }
194
+ catch {
195
+ // Preserve a structured status receipt below.
139
196
  }
197
+ const workspaceRoot = resolution?.workspaceRoot ?? requestedRoot;
198
+ const receipt = emptyReceipt(workspaceRoot, options.preflight === true);
199
+ receipt.workspace.resolvedFrom = resolution?.workspaceRootResolvedFrom ?? null;
200
+ receipt.workspaceRootResolvedFrom = resolution?.workspaceRootResolvedFrom ?? null;
201
+ const target = await resolveCatalogPublicationTarget({
202
+ workspaceRoot,
203
+ remote: options.remote,
204
+ branch: options.branch,
205
+ env: options.env,
206
+ });
207
+ receipt.publication.remote = target.remote;
208
+ receipt.publication.remoteResolvedFrom = target.remoteResolvedFrom;
209
+ receipt.publication.branch = target.branch;
210
+ receipt.publication.branchResolvedFrom = target.branchResolvedFrom;
211
+ let catalogWorkspace = null;
140
212
  try {
213
+ if (!resolution) {
214
+ await resolveCatalogWorkspaceRoot({
215
+ cwd: options.cwd,
216
+ ...(options.workspaceRoot === undefined ? {} : { explicitRoot: options.workspaceRoot }),
217
+ mode: 'existing',
218
+ });
219
+ }
141
220
  const workspace = await readCatalogWorkspace(workspaceRoot, { reservedImports: CLI_RESERVED_IMPORTS });
142
- applyWorkspaceFacts(receipt, workspace, workspace.workspaceRoot);
221
+ catalogWorkspace = workspace;
222
+ applyWorkspaceFacts(receipt, workspace, workspace.workspaceRoot, resolution?.workspaceRootResolvedFrom ?? null);
223
+ await inspectSnapshot(receipt, workspace);
143
224
  }
144
225
  catch (error) {
145
226
  receipt.issues.push({
146
227
  code: 'workspaceInvalid',
147
228
  message: safeIssueMessage(error instanceof Error ? error.message : String(error), workspaceRoot),
229
+ blocking: true,
148
230
  });
149
231
  }
150
232
  receipt.git = await inspectGit(workspaceRoot, options.env);
151
- if (receipt.git.checked && receipt.git.clean === false) {
152
- receipt.issues.push({ code: 'sourceDirty', message: 'The complete source Git worktree is not clean.' });
233
+ if (options.preflight && receipt.git.checked && receipt.git.clean === false) {
234
+ receipt.issues.push({ code: 'sourceDirty', message: 'The complete source Git worktree is not clean.', blocking: true });
153
235
  }
154
236
  if (!options.preflight) {
155
- receipt.ok = receipt.issues.length === 0;
237
+ receipt.ok = !receipt.issues.some((issue) => issue.blocking);
156
238
  return receipt;
157
239
  }
158
240
  if (!receipt.git.checked) {
159
241
  receipt.issues.push({
160
242
  code: 'gitUnavailable',
161
243
  message: 'Publication preflight requires a committed Git HEAD and a readable source worktree.',
244
+ blocking: true,
162
245
  });
163
246
  }
164
- if (receipt.git.clean !== true) {
247
+ if (receipt.git.clean !== true || !catalogWorkspace) {
248
+ receipt.ok = false;
249
+ return receipt;
250
+ }
251
+ if (target.remote === null) {
252
+ receipt.issues.push({
253
+ code: target.ambiguous ? 'remoteAmbiguous' : 'remoteUnavailable',
254
+ message: target.ambiguous
255
+ ? 'Catalog publication remote is ambiguous. Use --remote.'
256
+ : 'Catalog publication remote is unavailable. Configure a Git remote or use --remote.',
257
+ blocking: true,
258
+ });
165
259
  receipt.ok = false;
166
260
  return receipt;
167
261
  }
168
262
  try {
169
- const inspection = await prepareCatalogPublicationInspection(options);
263
+ const inspection = await prepareCatalogPublicationInspection({
264
+ workspaceRoot,
265
+ remote: target.remote,
266
+ branch: target.branch,
267
+ env: options.env,
268
+ });
170
269
  try {
171
- applyWorkspaceFacts(receipt, inspection.catalogWorkspace, inspection.catalogWorkspaceRoot);
270
+ applyWorkspaceFacts(receipt, inspection.catalogWorkspace, inspection.catalogWorkspaceRoot, receipt.workspace.resolvedFrom);
172
271
  receipt.publication = {
173
272
  checked: true,
174
273
  remote: inspection.remote,
274
+ remoteResolvedFrom: target.remoteResolvedFrom,
175
275
  remoteUrl: inspection.safeFetchUrl,
176
276
  fetchUrl: inspection.safeFetchUrl,
177
277
  pushUrl: inspection.safePushUrl,
178
278
  branch: inspection.branch,
279
+ branchResolvedFrom: target.branchResolvedFrom,
179
280
  publishedVersion: inspection.publishedVersion,
180
281
  parent: inspection.parent,
181
282
  tag: inspection.tag,
@@ -190,12 +291,14 @@ export async function getCatalogStatus(options) {
190
291
  receipt.issues.push({
191
292
  code: 'tagUnavailable',
192
293
  message: `Remote Catalog tag ${inspection.tag} already exists. Increase the Catalog version.`,
294
+ blocking: true,
193
295
  });
194
296
  }
195
297
  if (!inspection.attemptAvailable) {
196
298
  receipt.issues.push({
197
299
  code: 'attemptUnavailable',
198
300
  message: `Catalog ${inspection.prepared.catalogVersion} already has an attempted publication record. Increase the Catalog version.`,
301
+ blocking: true,
199
302
  });
200
303
  }
201
304
  }
@@ -211,6 +314,7 @@ export async function getCatalogStatus(options) {
211
314
  receipt.issues.push({
212
315
  code,
213
316
  message: safeIssueMessage(error instanceof Error ? error.message : String(error), workspaceRoot),
317
+ blocking: true,
214
318
  });
215
319
  }
216
320
  if (code === 'tagUnavailable')
@@ -218,7 +322,7 @@ export async function getCatalogStatus(options) {
218
322
  if (code === 'attemptUnavailable')
219
323
  receipt.publication.attemptAvailable = false;
220
324
  }
221
- receipt.ok = receipt.issues.length === 0 && receipt.publication.publishable === true;
325
+ receipt.ok = !receipt.issues.some((issue) => issue.blocking) && receipt.publication.publishable === true;
222
326
  return receipt;
223
327
  }
224
328
  export function renderCatalogStatus(receipt) {