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

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 (227) 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 +159 -48
  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 +22 -20
  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 +19 -0
  47. package/dist/src/commands/rebuild-command.js +828 -283
  48. package/dist/src/commands/rebuild-command.js.map +1 -1
  49. package/dist/src/commands/rebuild-integration.d.ts +25 -47
  50. package/dist/src/commands/rebuild-integration.js +1176 -1016
  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 +260 -91
  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 +10 -8
  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 +2065 -857
  85. package/dist/src/tui/console-app-v4.js.map +1 -1
  86. package/dist/src/tui/controller-runtime.js +731 -62
  87. package/dist/src/tui/controller-runtime.js.map +1 -1
  88. package/dist/src/tui/controller.d.ts +156 -10
  89. package/dist/src/tui/controller.js +1187 -163
  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 +7 -2
  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 +366 -99
  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-plan.d.ts +2 -2
  138. package/dist/src/utils/artifact-plan.js +8 -6
  139. package/dist/src/utils/artifact-plan.js.map +1 -1
  140. package/dist/src/utils/artifact-renderer.d.ts +2 -1
  141. package/dist/src/utils/artifact-renderer.js +139 -120
  142. package/dist/src/utils/artifact-renderer.js.map +1 -1
  143. package/dist/src/utils/artifact-request.d.ts +5 -0
  144. package/dist/src/utils/artifact-request.js +40 -0
  145. package/dist/src/utils/artifact-request.js.map +1 -1
  146. package/dist/src/utils/bundle-layout.js +4 -4
  147. package/dist/src/utils/bundle-layout.js.map +1 -1
  148. package/dist/src/utils/catalog-capability-projection.d.ts +8 -0
  149. package/dist/src/utils/catalog-capability-projection.js +14 -0
  150. package/dist/src/utils/catalog-capability-projection.js.map +1 -0
  151. package/dist/src/utils/catalog-generation-resolver.d.ts +14 -2
  152. package/dist/src/utils/catalog-generation-resolver.js +49 -27
  153. package/dist/src/utils/catalog-generation-resolver.js.map +1 -1
  154. package/dist/src/utils/catalog-generation-service.d.ts +8 -1
  155. package/dist/src/utils/catalog-generation-service.js +81 -47
  156. package/dist/src/utils/catalog-generation-service.js.map +1 -1
  157. package/dist/src/utils/catalog-generation-store.d.ts +1 -0
  158. package/dist/src/utils/catalog-generation-store.js +60 -5
  159. package/dist/src/utils/catalog-generation-store.js.map +1 -1
  160. package/dist/src/utils/catalog-operation-context.js +1 -0
  161. package/dist/src/utils/catalog-operation-context.js.map +1 -1
  162. package/dist/src/utils/catalog-public-error.js +4 -0
  163. package/dist/src/utils/catalog-public-error.js.map +1 -1
  164. package/dist/src/utils/catalog-source-impact.d.ts +3 -2
  165. package/dist/src/utils/catalog-source-impact.js +142 -20
  166. package/dist/src/utils/catalog-source-impact.js.map +1 -1
  167. package/dist/src/utils/catalog-source-references.js +95 -9
  168. package/dist/src/utils/catalog-source-references.js.map +1 -1
  169. package/dist/src/utils/catalog-sources.d.ts +1 -1
  170. package/dist/src/utils/catalog-sources.js +19 -3
  171. package/dist/src/utils/catalog-sources.js.map +1 -1
  172. package/dist/src/utils/codex-manager.js +8 -0
  173. package/dist/src/utils/codex-manager.js.map +1 -1
  174. package/dist/src/utils/codex-native-observation.d.ts +34 -1
  175. package/dist/src/utils/codex-native-observation.js +132 -0
  176. package/dist/src/utils/codex-native-observation.js.map +1 -1
  177. package/dist/src/utils/codex-reconciler.d.ts +0 -2
  178. package/dist/src/utils/codex-reconciler.js.map +1 -1
  179. package/dist/src/utils/codex-shared-native.d.ts +2 -26
  180. package/dist/src/utils/codex-shared-native.js +8 -82
  181. package/dist/src/utils/codex-shared-native.js.map +1 -1
  182. package/dist/src/utils/git-catalog-provider.d.ts +3 -0
  183. package/dist/src/utils/git-catalog-provider.js +40 -1
  184. package/dist/src/utils/git-catalog-provider.js.map +1 -1
  185. package/dist/src/utils/local-marketplace.d.ts +1 -0
  186. package/dist/src/utils/local-marketplace.js +69 -73
  187. package/dist/src/utils/local-marketplace.js.map +1 -1
  188. package/dist/src/utils/multi-source-catalog.js +1 -0
  189. package/dist/src/utils/multi-source-catalog.js.map +1 -1
  190. package/dist/src/utils/native-cli.d.ts +9 -4
  191. package/dist/src/utils/native-cli.js +280 -34
  192. package/dist/src/utils/native-cli.js.map +1 -1
  193. package/dist/src/utils/path-catalog-provider.js +2 -0
  194. package/dist/src/utils/path-catalog-provider.js.map +1 -1
  195. package/dist/src/utils/plugin-config-impact.d.ts +33 -0
  196. package/dist/src/utils/plugin-config-impact.js +298 -0
  197. package/dist/src/utils/plugin-config-impact.js.map +1 -0
  198. package/dist/src/utils/plugin-config-write.d.ts +36 -14
  199. package/dist/src/utils/plugin-config-write.js +709 -225
  200. package/dist/src/utils/plugin-config-write.js.map +1 -1
  201. package/dist/src/utils/plugin-config.d.ts +58 -4
  202. package/dist/src/utils/plugin-config.js +328 -60
  203. package/dist/src/utils/plugin-config.js.map +1 -1
  204. package/dist/src/utils/plugin-scripts.d.ts +20 -12
  205. package/dist/src/utils/plugin-scripts.js +389 -114
  206. package/dist/src/utils/plugin-scripts.js.map +1 -1
  207. package/dist/src/utils/process-tree.d.ts +2 -2
  208. package/dist/src/utils/process-tree.js +1 -1
  209. package/dist/src/utils/process-tree.js.map +1 -1
  210. package/dist/src/utils/project-boundary.d.ts +11 -1
  211. package/dist/src/utils/project-boundary.js +33 -11
  212. package/dist/src/utils/project-boundary.js.map +1 -1
  213. package/dist/src/utils/safe-operation-diagnostic.d.ts +15 -0
  214. package/dist/src/utils/safe-operation-diagnostic.js +33 -0
  215. package/dist/src/utils/safe-operation-diagnostic.js.map +1 -0
  216. package/dist/src/utils/sensitive-content.d.ts +4 -0
  217. package/dist/src/utils/sensitive-content.js +36 -0
  218. package/dist/src/utils/sensitive-content.js.map +1 -0
  219. package/dist/src/utils/windows-claude-shim.d.ts +9 -0
  220. package/dist/src/utils/windows-claude-shim.js +141 -0
  221. package/dist/src/utils/windows-claude-shim.js.map +1 -0
  222. package/dist/vitest.config.js +91 -10
  223. package/dist/vitest.config.js.map +1 -1
  224. package/package.json +9 -9
  225. package/dist/authoring/templates/aw-config-runtime.d.mts +0 -2
  226. package/dist/authoring/templates/aw-config-runtime.mjs +0 -407
  227. package/dist/authoring/templates/aw-config-runtime.mjs.map +0 -1
@@ -0,0 +1,298 @@
1
+ import crypto from 'node:crypto';
2
+ import { canonicalizePluginConfigValues, stablePluginConfigStringify, } from '@lesliechan721/aw-plugin-core/manifest';
3
+ import { coercePluginConfigUpdates, readPluginConfigStore, resolveAwProjectRoot, resolveEffectivePluginConfigFromStores, } from './plugin-config.js';
4
+ function configIdentity(plugin) {
5
+ return plugin.sourceId ? {
6
+ sourceId: plugin.sourceId,
7
+ sourceIdentity: plugin.sourceIdentity,
8
+ logicalIdentity: plugin.catalogLogicalIdentity,
9
+ } : {};
10
+ }
11
+ function targetKey(target) {
12
+ return `${target.platform}\0${target.scope}\0${target.projectKey ?? ''}`;
13
+ }
14
+ function dedupeTargets(targets) {
15
+ const output = new Map();
16
+ for (const target of targets)
17
+ output.set(targetKey(target), target);
18
+ return [...output.values()];
19
+ }
20
+ function configValuesEqual(left, right, keys = [...new Set([...Object.keys(left), ...Object.keys(right)])]) {
21
+ return keys.every((key) => {
22
+ const leftHas = Object.hasOwn(left, key);
23
+ const rightHas = Object.hasOwn(right, key);
24
+ return leftHas === rightHas
25
+ && (!leftHas || stablePluginConfigStringify(left[key]) === stablePluginConfigStringify(right[key]));
26
+ });
27
+ }
28
+ function storeEvidence(store) {
29
+ return {
30
+ exists: store.exists,
31
+ state: store.state,
32
+ ...(store.rawDigest ? { rawDigest: store.rawDigest } : {}),
33
+ };
34
+ }
35
+ function digestStores(stores) {
36
+ return `sha256:${crypto.createHash('sha256').update(JSON.stringify({
37
+ user: storeEvidence(stores.user),
38
+ ...(stores.project ? { project: storeEvidence(stores.project) } : {}),
39
+ })).digest('hex')}`;
40
+ }
41
+ function cloneStore(store, values) {
42
+ const canonical = canonicalizePluginConfigValues(values);
43
+ return {
44
+ path: store.path,
45
+ exists: Object.keys(canonical).length > 0,
46
+ state: Object.keys(canonical).length > 0 ? 'ready' : 'missing',
47
+ values: canonical,
48
+ issues: [],
49
+ };
50
+ }
51
+ function targetArtifactDeclarations(plugin, target) {
52
+ return (plugin.manifest.artifacts?.targets ?? []).filter((declaration) => declaration.platform === target.platform
53
+ && (declaration.target === 'codex.skill'
54
+ && declaration.delivery.mode === 'codex-native'
55
+ || declaration.scopes.includes(target.scope)));
56
+ }
57
+ function nativeDeclaration(declaration) {
58
+ return declaration.target === 'codex.skill'
59
+ && declaration.delivery.mode === 'codex-native'
60
+ && typeof declaration.skillKey === 'string';
61
+ }
62
+ function rendererProjectionEqual(before, after, refreshKeys) {
63
+ const keys = new Set(refreshKeys);
64
+ if (!configValuesEqual(before.values, after.values, refreshKeys))
65
+ return false;
66
+ if ([...keys].some((key) => before.sources[key] !== after.sources[key]))
67
+ return false;
68
+ const issueProjection = (config) => config.issues
69
+ .filter((issue) => keys.has(issue.key))
70
+ .map((issue) => JSON.stringify(issue))
71
+ .sort((left, right) => left.localeCompare(right, 'en'));
72
+ return JSON.stringify(issueProjection(before)) === JSON.stringify(issueProjection(after));
73
+ }
74
+ function unknownImpact(options) {
75
+ const affectedTargets = dedupeTargets(options.visibleTargets);
76
+ const sharedNativeRenderTargets = new Map();
77
+ for (const target of affectedTargets) {
78
+ if (options.scope !== 'user')
79
+ continue;
80
+ for (const declaration of targetArtifactDeclarations(options.plugin, target)) {
81
+ if (!nativeDeclaration(declaration) || declaration.refreshKeys.length === 0)
82
+ continue;
83
+ sharedNativeRenderTargets.set(declaration.id, {
84
+ id: declaration.id,
85
+ skillKey: declaration.skillKey,
86
+ refreshKeys: [...declaration.refreshKeys],
87
+ });
88
+ }
89
+ }
90
+ return {
91
+ impactState: 'unknown',
92
+ noEffectiveChange: false,
93
+ storeChanged: options.storeChanged,
94
+ storeDigest: digestStores(options.stores),
95
+ changedKeys: options.changedKeys,
96
+ updatedKeys: options.updatedKeys,
97
+ removedKeys: options.removedKeys,
98
+ staleRemovedKeys: options.staleRemovedKeys,
99
+ affectedTargets,
100
+ sharedNativeRenderTargets: [...sharedNativeRenderTargets.values()],
101
+ };
102
+ }
103
+ export async function analyzePluginConfigMutationImpact(options) {
104
+ const schema = options.plugin.manifest.config?.fields;
105
+ const needsProjectStore = options.scope === 'project'
106
+ || options.visibleTargets.some((target) => target.scope === 'project');
107
+ const identity = configIdentity(options.plugin);
108
+ const readStore = async (scope) => {
109
+ try {
110
+ return await readPluginConfigStore({
111
+ ...identity,
112
+ pluginName: options.plugin.manifest.name,
113
+ scope,
114
+ cwd: options.cwd,
115
+ env: options.env,
116
+ schema,
117
+ });
118
+ }
119
+ catch {
120
+ return {
121
+ path: '',
122
+ exists: true,
123
+ state: 'invalid',
124
+ values: {},
125
+ invalidCode: 'invalidValues',
126
+ issues: ['The store cannot be read.'],
127
+ };
128
+ }
129
+ };
130
+ const [userStore, projectStore] = await Promise.all([
131
+ readStore('user'),
132
+ needsProjectStore
133
+ ? readStore('project')
134
+ : undefined,
135
+ ]);
136
+ const stores = { user: userStore, ...(projectStore ? { project: projectStore } : {}) };
137
+ const editedStore = options.scope === 'user' ? userStore : projectStore;
138
+ const requestedRemoveKeys = [...new Set(options.mutation.kind === 'patch' ? options.mutation.removeKeys ?? [] : [])];
139
+ let updatedKeys = [];
140
+ let removedKeys = [];
141
+ let staleRemovedKeys = [];
142
+ let coercedUpdates = {};
143
+ let storeChanged = options.mutation.kind === 'reset' && editedStore.exists;
144
+ if (editedStore.state !== 'invalid' && options.mutation.kind === 'reset') {
145
+ removedKeys = Object.keys(editedStore.values);
146
+ staleRemovedKeys = schema
147
+ ? removedKeys.filter((key) => !schema[key])
148
+ : [...removedKeys];
149
+ }
150
+ if (editedStore.state !== 'invalid' && options.mutation.kind === 'patch' && schema) {
151
+ coercedUpdates = await coercePluginConfigUpdates({
152
+ schema,
153
+ updates: options.mutation.updates ?? {},
154
+ cwd: options.cwd,
155
+ });
156
+ for (const key of requestedRemoveKeys) {
157
+ if (!schema[key] && !Object.hasOwn(editedStore.values, key)) {
158
+ throw new Error(`Unknown config key "${key}".`);
159
+ }
160
+ }
161
+ removedKeys = requestedRemoveKeys.filter((key) => Object.hasOwn(editedStore.values, key));
162
+ staleRemovedKeys = removedKeys.filter((key) => !schema[key]);
163
+ updatedKeys = Object.entries(coercedUpdates)
164
+ .filter(([key, value]) => !Object.hasOwn(editedStore.values, key)
165
+ || stablePluginConfigStringify(editedStore.values[key])
166
+ !== stablePluginConfigStringify(value))
167
+ .map(([key]) => key);
168
+ storeChanged = updatedKeys.length > 0 || removedKeys.length > 0;
169
+ }
170
+ const changedKeys = [...updatedKeys, ...removedKeys];
171
+ if (!schema || editedStore.state === 'invalid') {
172
+ return unknownImpact({
173
+ stores,
174
+ plugin: options.plugin,
175
+ scope: options.scope,
176
+ visibleTargets: options.visibleTargets,
177
+ storeChanged: options.mutation.kind === 'reset' ? editedStore.exists : true,
178
+ changedKeys: changedKeys.length > 0
179
+ ? changedKeys
180
+ : options.mutation.kind === 'patch'
181
+ ? [...Object.keys(options.mutation.updates ?? {}), ...requestedRemoveKeys]
182
+ : [],
183
+ updatedKeys,
184
+ removedKeys,
185
+ staleRemovedKeys,
186
+ });
187
+ }
188
+ if (!storeChanged) {
189
+ return {
190
+ impactState: 'known',
191
+ noEffectiveChange: true,
192
+ storeChanged: false,
193
+ storeDigest: digestStores(stores),
194
+ changedKeys: [],
195
+ updatedKeys: [],
196
+ removedKeys: [],
197
+ staleRemovedKeys: [],
198
+ affectedTargets: [],
199
+ sharedNativeRenderTargets: [],
200
+ };
201
+ }
202
+ const nextValues = options.mutation.kind === 'reset' ? {} : { ...editedStore.values };
203
+ if (options.mutation.kind === 'patch') {
204
+ for (const key of requestedRemoveKeys)
205
+ delete nextValues[key];
206
+ for (const [key, value] of Object.entries(coercedUpdates))
207
+ nextValues[key] = value;
208
+ }
209
+ const afterStores = {
210
+ user: options.scope === 'user' ? cloneStore(userStore, nextValues) : userStore,
211
+ ...(projectStore ? {
212
+ project: options.scope === 'project' ? cloneStore(projectStore, nextValues) : projectStore,
213
+ } : {}),
214
+ };
215
+ const projectRoot = resolveAwProjectRoot(options.cwd);
216
+ const resolved = new Map();
217
+ const resolveScope = async (scope) => {
218
+ const existing = resolved.get(scope);
219
+ if (existing)
220
+ return existing;
221
+ const pair = {
222
+ before: await resolveEffectivePluginConfigFromStores({
223
+ pluginName: options.plugin.manifest.name,
224
+ manifest: options.plugin.manifest,
225
+ targetScope: scope,
226
+ projectRoot,
227
+ stores,
228
+ }),
229
+ after: await resolveEffectivePluginConfigFromStores({
230
+ pluginName: options.plugin.manifest.name,
231
+ manifest: options.plugin.manifest,
232
+ targetScope: scope,
233
+ projectRoot,
234
+ stores: afterStores,
235
+ }),
236
+ };
237
+ resolved.set(scope, pair);
238
+ return pair;
239
+ };
240
+ try {
241
+ const affectedTargets = [];
242
+ const sharedNativeRenderTargets = new Map();
243
+ for (const target of dedupeTargets(options.visibleTargets)) {
244
+ let affected = false;
245
+ const declarations = targetArtifactDeclarations(options.plugin, target);
246
+ if (options.plugin.manifest.scripts?.preApply
247
+ || (options.plugin.manifest.dependencies?.length ?? 0) > 0) {
248
+ const config = await resolveScope(target.scope);
249
+ affected = !configValuesEqual(config.before.values, config.after.values);
250
+ }
251
+ for (const declaration of declarations) {
252
+ if (declaration.refreshKeys.length === 0)
253
+ continue;
254
+ const renderScope = nativeDeclaration(declaration) ? 'user' : target.scope;
255
+ const config = await resolveScope(renderScope);
256
+ const changed = !rendererProjectionEqual(config.before, config.after, declaration.refreshKeys);
257
+ if (!changed)
258
+ continue;
259
+ affected = true;
260
+ if (nativeDeclaration(declaration)) {
261
+ sharedNativeRenderTargets.set(declaration.id, {
262
+ id: declaration.id,
263
+ skillKey: declaration.skillKey,
264
+ refreshKeys: [...declaration.refreshKeys],
265
+ });
266
+ }
267
+ }
268
+ if (affected)
269
+ affectedTargets.push(target);
270
+ }
271
+ return {
272
+ impactState: 'known',
273
+ noEffectiveChange: affectedTargets.length === 0,
274
+ storeChanged: true,
275
+ storeDigest: digestStores(stores),
276
+ changedKeys,
277
+ updatedKeys,
278
+ removedKeys,
279
+ staleRemovedKeys,
280
+ affectedTargets,
281
+ sharedNativeRenderTargets: [...sharedNativeRenderTargets.values()],
282
+ };
283
+ }
284
+ catch {
285
+ return unknownImpact({
286
+ stores,
287
+ plugin: options.plugin,
288
+ scope: options.scope,
289
+ visibleTargets: options.visibleTargets,
290
+ storeChanged: true,
291
+ changedKeys,
292
+ updatedKeys,
293
+ removedKeys,
294
+ staleRemovedKeys,
295
+ });
296
+ }
297
+ }
298
+ //# sourceMappingURL=plugin-config-impact.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugin-config-impact.js","sourceRoot":"","sources":["../../../src/utils/plugin-config-impact.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
- import type { RebuildCommandRuntime } from '../commands/rebuild-command.js';
1
+ import type { PreApplyAuthorizationTarget, RebuildCommandRuntime } from '../commands/rebuild-command.js';
2
2
  import { syncWriteCommand } from '../commands/write-commands.js';
3
- import { type ConfigReceiptFieldEntry, type ConfigMutationCommand, type ConfigMutationReceiptBase, type ConfigSchemaEvidence, type PluginMeta, type RebuildReceiptOverallState, type ReceiptTargetIdentity, type ReceiptTargetResult, type Scope } from '../types.js';
3
+ import { type ConfigApplyResult, type ConfigReceiptFieldEntry, type ConfigMutationCommand, type ConfigMutationReceiptBase, type ConfigSchemaEvidence, type PluginMeta, type RebuildReceiptOverallState, type ReceiptTargetIdentity, type ReceiptTargetResult, type Scope } from '../types.js';
4
4
  import { type NativeCliRunner } from './native-cli.js';
5
5
  import { summarizeEffectivePluginConfig } from './plugin-config.js';
6
6
  import { type AwHomeMutationToken } from './aw-home-mutation-lock.js';
@@ -8,20 +8,19 @@ export interface PluginConfigWriteRequest {
8
8
  updates?: Record<string, unknown>;
9
9
  removeKeys?: string[];
10
10
  }
11
- export declare function buildConfigMutationReceipt<Command extends ConfigMutationCommand, Receipt extends Pick<ConfigMutationReceiptBase, 'ok' | 'overallState'>>(command: Command, receipt: Receipt): ConfigMutationReceiptBase<Command> & Receipt;
12
- export type ConfigApplySkippedReason = 'noVisibleTarget' | 'noConfigChange' | 'invalidConfig' | 'notRequested';
11
+ export declare function buildConfigMutationReceipt<Command extends ConfigMutationCommand, Receipt extends Pick<ConfigMutationReceiptBase, 'ok' | 'overallState' | 'configWrite'>>(command: Command, receipt: Receipt): ConfigMutationReceiptBase<Command> & Receipt;
13
12
  export interface PluginConfigWriteReceipt {
14
13
  plugin: string;
15
14
  scope: Scope;
16
15
  schema?: ConfigSchemaEvidence;
17
16
  updatedKeys: string[];
18
17
  removedKeys: string[];
19
- effective: ReturnType<typeof summarizeEffectivePluginConfig>;
18
+ staleRemovedKeys: string[];
19
+ effective?: ReturnType<typeof summarizeEffectivePluginConfig>;
20
20
  configWrite: 'succeeded';
21
21
  overallState: RebuildReceiptOverallState;
22
- targetResults: ReceiptTargetResult[];
23
- applySkippedReason?: ConfigApplySkippedReason;
24
- otherProjectsRequireReinstall: boolean;
22
+ apply: ConfigApplyResult;
23
+ otherProjectsMayRequireSync: boolean;
25
24
  warnings: string[];
26
25
  }
27
26
  export interface ResetPluginConfigWriteReceipt {
@@ -36,19 +35,32 @@ export interface ResetPluginConfigWriteReceipt {
36
35
  effective?: ReturnType<typeof summarizeEffectivePluginConfig>;
37
36
  configWrite: 'succeeded';
38
37
  overallState: RebuildReceiptOverallState;
39
- targetResults: ReceiptTargetResult[];
40
- applySkippedReason?: ConfigApplySkippedReason;
41
- otherProjectsRequireReinstall: boolean;
38
+ apply: ConfigApplyResult;
39
+ otherProjectsMayRequireSync: boolean;
42
40
  warnings: string[];
43
41
  }
44
42
  type ReinstallCommand = typeof syncWriteCommand;
45
43
  interface ConfigRuntimeReplayReceipt {
46
44
  configWrite: 'succeeded';
47
45
  overallState: RebuildReceiptOverallState;
48
- targetResults: ReceiptTargetResult[];
49
- applySkippedReason?: ConfigApplySkippedReason;
50
- otherProjectsRequireReinstall: boolean;
46
+ apply: ConfigApplyResult;
47
+ otherProjectsMayRequireSync: false;
51
48
  }
49
+ export declare function configWriteStateForError(error: unknown): 'notStarted' | 'failed';
50
+ export declare function resolveConfigPreApplyAuthorization(options: {
51
+ plugin: PluginMeta;
52
+ scope: Scope;
53
+ cwd: string;
54
+ env?: NodeJS.ProcessEnv;
55
+ applyTargets: ReceiptTargetIdentity[];
56
+ nativeCliRunner?: NativeCliRunner;
57
+ rebuildRuntime?: RebuildCommandRuntime;
58
+ reinstallCommandImpl?: ReinstallCommand;
59
+ }): Promise<{
60
+ targets: PreApplyAuthorizationTarget[];
61
+ availableApplyTargets: ReceiptTargetIdentity[];
62
+ unavailableTargetResults: ReceiptTargetResult[];
63
+ }>;
52
64
  export declare function replayConfigRuntimeWrites(options: {
53
65
  plugin: PluginMeta;
54
66
  scope: Scope;
@@ -60,6 +72,9 @@ export declare function replayConfigRuntimeWrites(options: {
60
72
  reinstallCommandImpl?: ReinstallCommand;
61
73
  rebuildRuntime?: RebuildCommandRuntime;
62
74
  awHomeMutationToken?: AwHomeMutationToken;
75
+ sharedNativeApplyConfirmed?: boolean;
76
+ preApplyConfirmed?: boolean;
77
+ preApplyAuthorizedTargets?: readonly PreApplyAuthorizationTarget[];
63
78
  }): Promise<ConfigRuntimeReplayReceipt>;
64
79
  type ApplyPluginConfigWriteOptions = {
65
80
  plugin?: PluginMeta | null;
@@ -76,6 +91,8 @@ type ApplyPluginConfigWriteOptions = {
76
91
  request: PluginConfigWriteRequest;
77
92
  apply?: boolean;
78
93
  sharedNativeApplyConfirmed?: boolean;
94
+ preApplyConfirmed?: boolean;
95
+ preApplyAuthorizedTargets?: readonly PreApplyAuthorizationTarget[];
79
96
  reviewPreflight?: () => Promise<void> | void;
80
97
  };
81
98
  export declare function applyPluginConfigWrite(options: ApplyPluginConfigWriteOptions): Promise<PluginConfigWriteReceipt>;
@@ -83,6 +100,7 @@ type ResetPluginConfigWriteOptions = {
83
100
  pluginName: string;
84
101
  sourceId?: string;
85
102
  sourceIdentity?: string;
103
+ logicalIdentity?: string;
86
104
  scope: Scope;
87
105
  cwd: string;
88
106
  env?: NodeJS.ProcessEnv;
@@ -95,11 +113,15 @@ type ResetPluginConfigWriteOptions = {
95
113
  awHomeMutationToken?: AwHomeMutationToken;
96
114
  reviewPreflight?: () => Promise<void> | void;
97
115
  apply?: boolean;
116
+ sharedNativeApplyConfirmed?: boolean;
117
+ preApplyConfirmed?: boolean;
118
+ preApplyAuthorizedTargets?: readonly PreApplyAuthorizationTarget[];
98
119
  };
99
120
  export declare function resetPluginConfigWithHelper(options: ResetPluginConfigWriteOptions): Promise<ResetPluginConfigWriteReceipt>;
100
121
  export declare function describeResetAffectedFields(options: {
101
122
  sourceId?: string;
102
123
  sourceIdentity?: string;
124
+ logicalIdentity?: string;
103
125
  pluginName: string;
104
126
  plugin?: PluginMeta | null;
105
127
  pluginError?: Error | null;