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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (218) hide show
  1. package/dist/authoring/assets/aw-config.d.mts +1 -50
  2. package/dist/authoring/assets/aw-config.mjs +58 -928
  3. package/dist/authoring/assets/aw-config.mjs.map +1 -1
  4. package/dist/authoring/scripts/init-plugin.mjs +28 -33
  5. package/dist/authoring/scripts/init-plugin.mjs.map +1 -1
  6. package/dist/authoring/scripts/lib/plugin-version-check.d.mts +1 -0
  7. package/dist/authoring/scripts/lib/plugin-version-check.mjs +229 -8
  8. package/dist/authoring/scripts/lib/plugin-version-check.mjs.map +1 -1
  9. package/dist/authoring/scripts/validate-plugin.mjs +165 -45
  10. package/dist/authoring/scripts/validate-plugin.mjs.map +1 -1
  11. package/dist/scripts/bundle-plugins.js +18 -4
  12. package/dist/scripts/bundle-plugins.js.map +1 -1
  13. package/dist/scripts/test-plugin-scripts.d.ts +2 -0
  14. package/dist/scripts/test-plugin-scripts.js +21 -5
  15. package/dist/scripts/test-plugin-scripts.js.map +1 -1
  16. package/dist/src/commands/aw-capabilities.d.ts +1 -1
  17. package/dist/src/commands/aw-capabilities.js +1 -1
  18. package/dist/src/commands/aw-capabilities.js.map +1 -1
  19. package/dist/src/commands/catalog-dev-source.d.ts +6 -3
  20. package/dist/src/commands/catalog-dev-source.js +96 -35
  21. package/dist/src/commands/catalog-dev-source.js.map +1 -1
  22. package/dist/src/commands/catalog-publication-inspection.d.ts +1 -1
  23. package/dist/src/commands/catalog-publication-inspection.js +54 -8
  24. package/dist/src/commands/catalog-publication-inspection.js.map +1 -1
  25. package/dist/src/commands/catalog-publication-journal.js +1 -1
  26. package/dist/src/commands/catalog-publication-journal.js.map +1 -1
  27. package/dist/src/commands/catalog-source.d.ts +19 -4
  28. package/dist/src/commands/catalog-source.js +121 -12
  29. package/dist/src/commands/catalog-source.js.map +1 -1
  30. package/dist/src/commands/catalog-store.d.ts +26 -7
  31. package/dist/src/commands/catalog-store.js +361 -42
  32. package/dist/src/commands/catalog-store.js.map +1 -1
  33. package/dist/src/commands/console.js +28 -17
  34. package/dist/src/commands/console.js.map +1 -1
  35. package/dist/src/commands/operation-plan.d.ts +2 -1
  36. package/dist/src/commands/operation-plan.js +24 -0
  37. package/dist/src/commands/operation-plan.js.map +1 -1
  38. package/dist/src/commands/operation-planner.d.ts +2 -2
  39. package/dist/src/commands/operation-planner.js +11 -19
  40. package/dist/src/commands/operation-planner.js.map +1 -1
  41. package/dist/src/commands/options.d.ts +2 -2
  42. package/dist/src/commands/options.js +18 -4
  43. package/dist/src/commands/options.js.map +1 -1
  44. package/dist/src/commands/plugin-capabilities.js +2 -2
  45. package/dist/src/commands/plugin-capabilities.js.map +1 -1
  46. package/dist/src/commands/rebuild-command.d.ts +7 -0
  47. package/dist/src/commands/rebuild-command.js +769 -279
  48. package/dist/src/commands/rebuild-command.js.map +1 -1
  49. package/dist/src/commands/rebuild-integration.d.ts +24 -47
  50. package/dist/src/commands/rebuild-integration.js +1074 -1011
  51. package/dist/src/commands/rebuild-integration.js.map +1 -1
  52. package/dist/src/commands/rebuild-operations.d.ts +50 -12
  53. package/dist/src/commands/rebuild-operations.js +207 -101
  54. package/dist/src/commands/rebuild-operations.js.map +1 -1
  55. package/dist/src/commands/status-v6.d.ts +21 -2
  56. package/dist/src/commands/status-v6.js +163 -31
  57. package/dist/src/commands/status-v6.js.map +1 -1
  58. package/dist/src/commands/sync-command.d.ts +17 -0
  59. package/dist/src/commands/sync-command.js +45 -37
  60. package/dist/src/commands/sync-command.js.map +1 -1
  61. package/dist/src/commands/write-commands.d.ts +5 -0
  62. package/dist/src/commands/write-commands.js +50 -3
  63. package/dist/src/commands/write-commands.js.map +1 -1
  64. package/dist/src/generators/local-plugin.js +14 -4
  65. package/dist/src/generators/local-plugin.js.map +1 -1
  66. package/dist/src/index.js +216 -85
  67. package/dist/src/index.js.map +1 -1
  68. package/dist/src/output/command-receipt.js +1 -3
  69. package/dist/src/output/command-receipt.js.map +1 -1
  70. package/dist/src/output/rebuild-progress.js +1 -3
  71. package/dist/src/output/rebuild-progress.js.map +1 -1
  72. package/dist/src/portable/materializer.js +6 -6
  73. package/dist/src/portable/materializer.js.map +1 -1
  74. package/dist/src/tui/catalog-generation.js +41 -1
  75. package/dist/src/tui/catalog-generation.js.map +1 -1
  76. package/dist/src/tui/catalog-sources/session.d.ts +1 -0
  77. package/dist/src/tui/catalog-sources/session.js +16 -3
  78. package/dist/src/tui/catalog-sources/session.js.map +1 -1
  79. package/dist/src/tui/catalog-sources/types.d.ts +3 -2
  80. package/dist/src/tui/components.d.ts +4 -0
  81. package/dist/src/tui/components.js +36 -24
  82. package/dist/src/tui/components.js.map +1 -1
  83. package/dist/src/tui/console-app-v4.d.ts +13 -4
  84. package/dist/src/tui/console-app-v4.js +2067 -839
  85. package/dist/src/tui/console-app-v4.js.map +1 -1
  86. package/dist/src/tui/controller-runtime.js +585 -33
  87. package/dist/src/tui/controller-runtime.js.map +1 -1
  88. package/dist/src/tui/controller.d.ts +152 -6
  89. package/dist/src/tui/controller.js +1168 -156
  90. package/dist/src/tui/controller.js.map +1 -1
  91. package/dist/src/tui/diagnostic-projection.d.ts +22 -0
  92. package/dist/src/tui/diagnostic-projection.js +437 -0
  93. package/dist/src/tui/diagnostic-projection.js.map +1 -0
  94. package/dist/src/tui/diagnostics.d.ts +1 -1
  95. package/dist/src/tui/diagnostics.js +6 -1
  96. package/dist/src/tui/diagnostics.js.map +1 -1
  97. package/dist/src/tui/glossary.d.ts +23 -0
  98. package/dist/src/tui/glossary.js +42 -0
  99. package/dist/src/tui/glossary.js.map +1 -0
  100. package/dist/src/tui/index.d.ts +4 -1
  101. package/dist/src/tui/index.js +4 -1
  102. package/dist/src/tui/index.js.map +1 -1
  103. package/dist/src/tui/keys.d.ts +44 -0
  104. package/dist/src/tui/keys.js +43 -15
  105. package/dist/src/tui/keys.js.map +1 -1
  106. package/dist/src/tui/lifecycle-action-view.d.ts +6 -0
  107. package/dist/src/tui/lifecycle-action-view.js +34 -0
  108. package/dist/src/tui/lifecycle-action-view.js.map +1 -0
  109. package/dist/src/tui/model.d.ts +12 -2
  110. package/dist/src/tui/model.js +128 -52
  111. package/dist/src/tui/model.js.map +1 -1
  112. package/dist/src/tui/operation-diagnostic-screens.d.ts +21 -0
  113. package/dist/src/tui/operation-diagnostic-screens.js +101 -0
  114. package/dist/src/tui/operation-diagnostic-screens.js.map +1 -0
  115. package/dist/src/tui/operation-history.d.ts +80 -0
  116. package/dist/src/tui/operation-history.js +130 -0
  117. package/dist/src/tui/operation-history.js.map +1 -0
  118. package/dist/src/tui/operation-review-planner.js +306 -86
  119. package/dist/src/tui/operation-review-planner.js.map +1 -1
  120. package/dist/src/tui/router.d.ts +82 -17
  121. package/dist/src/tui/router.js +186 -38
  122. package/dist/src/tui/router.js.map +1 -1
  123. package/dist/src/tui/screen-registry.d.ts +546 -0
  124. package/dist/src/tui/screen-registry.js +179 -0
  125. package/dist/src/tui/screen-registry.js.map +1 -0
  126. package/dist/src/tui/session-console-app.d.ts +6 -0
  127. package/dist/src/tui/session-console-app.js +13 -0
  128. package/dist/src/tui/session-console-app.js.map +1 -0
  129. package/dist/src/tui/session-host.d.ts +44 -0
  130. package/dist/src/tui/session-host.js +197 -0
  131. package/dist/src/tui/session-host.js.map +1 -0
  132. package/dist/src/types.d.ts +64 -3
  133. package/dist/src/types.js +1 -1
  134. package/dist/src/types.js.map +1 -1
  135. package/dist/src/utils/agent-version.js +1 -1
  136. package/dist/src/utils/agent-version.js.map +1 -1
  137. package/dist/src/utils/artifact-renderer.d.ts +2 -1
  138. package/dist/src/utils/artifact-renderer.js +52 -52
  139. package/dist/src/utils/artifact-renderer.js.map +1 -1
  140. package/dist/src/utils/bundle-layout.js +4 -4
  141. package/dist/src/utils/bundle-layout.js.map +1 -1
  142. package/dist/src/utils/catalog-capability-projection.d.ts +8 -0
  143. package/dist/src/utils/catalog-capability-projection.js +14 -0
  144. package/dist/src/utils/catalog-capability-projection.js.map +1 -0
  145. package/dist/src/utils/catalog-generation-resolver.d.ts +14 -2
  146. package/dist/src/utils/catalog-generation-resolver.js +49 -27
  147. package/dist/src/utils/catalog-generation-resolver.js.map +1 -1
  148. package/dist/src/utils/catalog-generation-service.d.ts +8 -1
  149. package/dist/src/utils/catalog-generation-service.js +81 -47
  150. package/dist/src/utils/catalog-generation-service.js.map +1 -1
  151. package/dist/src/utils/catalog-generation-store.d.ts +1 -0
  152. package/dist/src/utils/catalog-generation-store.js +60 -5
  153. package/dist/src/utils/catalog-generation-store.js.map +1 -1
  154. package/dist/src/utils/catalog-operation-context.js +1 -0
  155. package/dist/src/utils/catalog-operation-context.js.map +1 -1
  156. package/dist/src/utils/catalog-public-error.js +4 -0
  157. package/dist/src/utils/catalog-public-error.js.map +1 -1
  158. package/dist/src/utils/catalog-source-impact.d.ts +3 -2
  159. package/dist/src/utils/catalog-source-impact.js +142 -20
  160. package/dist/src/utils/catalog-source-impact.js.map +1 -1
  161. package/dist/src/utils/catalog-source-references.js +95 -9
  162. package/dist/src/utils/catalog-source-references.js.map +1 -1
  163. package/dist/src/utils/catalog-sources.d.ts +1 -1
  164. package/dist/src/utils/catalog-sources.js +19 -3
  165. package/dist/src/utils/catalog-sources.js.map +1 -1
  166. package/dist/src/utils/codex-manager.js +8 -0
  167. package/dist/src/utils/codex-manager.js.map +1 -1
  168. package/dist/src/utils/codex-native-observation.d.ts +34 -1
  169. package/dist/src/utils/codex-native-observation.js +132 -0
  170. package/dist/src/utils/codex-native-observation.js.map +1 -1
  171. package/dist/src/utils/codex-reconciler.d.ts +0 -2
  172. package/dist/src/utils/codex-reconciler.js.map +1 -1
  173. package/dist/src/utils/codex-shared-native.d.ts +2 -26
  174. package/dist/src/utils/codex-shared-native.js +8 -82
  175. package/dist/src/utils/codex-shared-native.js.map +1 -1
  176. package/dist/src/utils/git-catalog-provider.d.ts +3 -0
  177. package/dist/src/utils/git-catalog-provider.js +40 -1
  178. package/dist/src/utils/git-catalog-provider.js.map +1 -1
  179. package/dist/src/utils/local-marketplace.d.ts +1 -0
  180. package/dist/src/utils/local-marketplace.js +69 -73
  181. package/dist/src/utils/local-marketplace.js.map +1 -1
  182. package/dist/src/utils/multi-source-catalog.js +1 -0
  183. package/dist/src/utils/multi-source-catalog.js.map +1 -1
  184. package/dist/src/utils/native-cli.d.ts +9 -4
  185. package/dist/src/utils/native-cli.js +280 -34
  186. package/dist/src/utils/native-cli.js.map +1 -1
  187. package/dist/src/utils/path-catalog-provider.js +2 -0
  188. package/dist/src/utils/path-catalog-provider.js.map +1 -1
  189. package/dist/src/utils/plugin-config-write.d.ts +15 -13
  190. package/dist/src/utils/plugin-config-write.js +418 -198
  191. package/dist/src/utils/plugin-config-write.js.map +1 -1
  192. package/dist/src/utils/plugin-config.d.ts +48 -4
  193. package/dist/src/utils/plugin-config.js +289 -38
  194. package/dist/src/utils/plugin-config.js.map +1 -1
  195. package/dist/src/utils/plugin-scripts.d.ts +20 -12
  196. package/dist/src/utils/plugin-scripts.js +376 -109
  197. package/dist/src/utils/plugin-scripts.js.map +1 -1
  198. package/dist/src/utils/process-tree.d.ts +2 -2
  199. package/dist/src/utils/process-tree.js +1 -1
  200. package/dist/src/utils/process-tree.js.map +1 -1
  201. package/dist/src/utils/project-boundary.d.ts +11 -1
  202. package/dist/src/utils/project-boundary.js +17 -8
  203. package/dist/src/utils/project-boundary.js.map +1 -1
  204. package/dist/src/utils/safe-operation-diagnostic.d.ts +15 -0
  205. package/dist/src/utils/safe-operation-diagnostic.js +33 -0
  206. package/dist/src/utils/safe-operation-diagnostic.js.map +1 -0
  207. package/dist/src/utils/sensitive-content.d.ts +1 -0
  208. package/dist/src/utils/sensitive-content.js +15 -0
  209. package/dist/src/utils/sensitive-content.js.map +1 -0
  210. package/dist/src/utils/windows-claude-shim.d.ts +9 -0
  211. package/dist/src/utils/windows-claude-shim.js +141 -0
  212. package/dist/src/utils/windows-claude-shim.js.map +1 -0
  213. package/dist/vitest.config.js +91 -10
  214. package/dist/vitest.config.js.map +1 -1
  215. package/package.json +9 -9
  216. package/dist/authoring/templates/aw-config-runtime.d.mts +0 -2
  217. package/dist/authoring/templates/aw-config-runtime.mjs +0 -407
  218. package/dist/authoring/templates/aw-config-runtime.mjs.map +0 -1
@@ -1,2 +1,2 @@
1
- export { assertProcessTreeInspectionAvailable, observeProcessTree, terminateProcessTree, } from '@lesliechan721/agent-skill-eval';
1
+ export { assertProcessTreeInspectionAvailable, createWindowsJobInvocation, observeProcessTree, resolveWindowsJobHelperPath, terminateProcessTree, } from '@lesliechan721/agent-skill-eval';
2
2
  //# sourceMappingURL=process-tree.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"process-tree.js","sourceRoot":"","sources":["../../../src/utils/process-tree.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,oCAAoC,EACpC,kBAAkB,EAClB,oBAAoB,GACrB,MAAM,iCAAiC,CAAA"}
1
+ {"version":3,"file":"process-tree.js","sourceRoot":"","sources":["../../../src/utils/process-tree.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,oCAAoC,EACpC,0BAA0B,EAC1B,kBAAkB,EAClB,2BAA2B,EAC3B,oBAAoB,GACrB,MAAM,iCAAiC,CAAA"}
@@ -3,7 +3,17 @@ export declare function assertCanonicalProjectManagedRoots(options: {
3
3
  rootNames: readonly ('.agents' | '.codex' | '.claude')[];
4
4
  managedPaths?: readonly string[];
5
5
  }): Promise<string>;
6
+ export type ProjectSharedConfigVisibility = {
7
+ state: 'visible';
8
+ } | {
9
+ state: 'ignored';
10
+ pattern: string;
11
+ } | {
12
+ state: 'unverified';
13
+ };
14
+ export declare const PROJECT_CONFIG_SHAREABILITY_UNVERIFIED_WARNING = "projectConfigShareabilityUnverified: Git \u65E0\u6CD5\u786E\u8BA4 project config path \u53EF\u5171\u4EAB\u3002\u914D\u7F6E\u5DF2\u5199\u5165\uFF0C\u4F46\u4E0D\u8981\u5C06\u5B83\u89C6\u4E3A\u5DF2\u9A8C\u8BC1\u53EF\u63D0\u4EA4\u3002";
6
15
  export declare function assertProjectSharedConfigPathVisible(options: {
7
16
  cwd: string;
8
17
  targetPath: string;
9
- }): Promise<void>;
18
+ env?: NodeJS.ProcessEnv;
19
+ }): Promise<ProjectSharedConfigVisibility>;
@@ -39,29 +39,38 @@ export async function assertCanonicalProjectManagedRoots(options) {
39
39
  }
40
40
  return canonicalRepoRoot;
41
41
  }
42
+ export const PROJECT_CONFIG_SHAREABILITY_UNVERIFIED_WARNING = 'projectConfigShareabilityUnverified: Git 无法确认 project config path 可共享。配置已写入,但不要将它视为已验证可提交。';
42
43
  function relativePath(repoRoot, targetPath) {
43
44
  return path.relative(path.resolve(repoRoot), path.resolve(targetPath)).split(path.sep).join('/');
44
45
  }
45
- async function inspectGitIgnore(repoRoot, targetRelativePath) {
46
+ async function inspectGitIgnore(repoRoot, targetRelativePath, env) {
46
47
  try {
47
- const result = await execFileAsync('git', ['check-ignore', '-v', targetRelativePath], { cwd: repoRoot });
48
+ const result = await execFileAsync('git', ['check-ignore', '-v', targetRelativePath], {
49
+ cwd: repoRoot,
50
+ ...(env ? { env } : {}),
51
+ });
48
52
  const line = result.stdout.split(/\r?\n/u).find((entry) => entry.trim() !== '');
49
53
  const match = line ? /^(.*?):(\d+):([^\t]+)\t(.+)$/u.exec(line) : null;
50
- return match ? { pattern: match[3] } : {};
54
+ return match ? { pattern: match[3] } : undefined;
51
55
  }
52
56
  catch (error) {
53
57
  const code = String(error.code);
54
- if (code === '1' || code === '128' || code === 'ENOENT')
55
- return undefined;
56
- throw error;
58
+ if (code === '1')
59
+ return null;
60
+ return undefined;
57
61
  }
58
62
  }
59
63
  export async function assertProjectSharedConfigPathVisible(options) {
60
64
  const repoRoot = resolveAwProjectRoot(options.cwd);
61
65
  const targetRelativePath = relativePath(repoRoot, options.targetPath);
62
- const match = await inspectGitIgnore(repoRoot, targetRelativePath);
66
+ const match = await inspectGitIgnore(repoRoot, targetRelativePath, options.env);
63
67
  if (match?.pattern) {
64
- throw new Error(`Project shared state path ${targetRelativePath} 被 ignore 规则 ${JSON.stringify(match.pattern)} 排除。写入前必须修正规则。`);
68
+ const error = new Error(`projectConfigIgnored: Project shared state path ${targetRelativePath} 被 ignore 规则 ${JSON.stringify(match.pattern)} 排除。写入前必须修正规则。`);
69
+ error.code = 'projectConfigIgnored';
70
+ throw error;
65
71
  }
72
+ if (match === undefined)
73
+ return { state: 'unverified' };
74
+ return { state: 'visible' };
66
75
  }
67
76
  //# sourceMappingURL=project-boundary.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"project-boundary.js","sourceRoot":"","sources":["../../../src/utils/project-boundary.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"project-boundary.js","sourceRoot":"","sources":["../../../src/utils/project-boundary.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ export interface SafeOperationErrorMetadata {
2
+ code: string;
3
+ safeMessage: string;
4
+ stage?: string;
5
+ exitCode?: number;
6
+ cause?: {
7
+ code?: string;
8
+ safeMessage: string;
9
+ };
10
+ }
11
+ export interface SafeOperationErrorCarrier {
12
+ operationDiagnostic: SafeOperationErrorMetadata;
13
+ }
14
+ export declare function attachSafeOperationError<T extends Error>(error: T, diagnostic: SafeOperationErrorMetadata): T & SafeOperationErrorCarrier;
15
+ export declare function readSafeOperationError(error: unknown): SafeOperationErrorMetadata | undefined;
@@ -0,0 +1,33 @@
1
+ export function attachSafeOperationError(error, diagnostic) {
2
+ return Object.assign(error, { operationDiagnostic: structuredClone(diagnostic) });
3
+ }
4
+ export function readSafeOperationError(error) {
5
+ if (!error || typeof error !== 'object' || !('operationDiagnostic' in error))
6
+ return undefined;
7
+ const value = error.operationDiagnostic;
8
+ if (!value || typeof value !== 'object')
9
+ return undefined;
10
+ const candidate = value;
11
+ if (typeof candidate.code !== 'string' || typeof candidate.safeMessage !== 'string')
12
+ return undefined;
13
+ const output = {
14
+ code: candidate.code,
15
+ safeMessage: candidate.safeMessage,
16
+ };
17
+ if (typeof candidate.stage === 'string')
18
+ output.stage = candidate.stage;
19
+ if (typeof candidate.exitCode === 'number' && Number.isSafeInteger(candidate.exitCode)) {
20
+ output.exitCode = candidate.exitCode;
21
+ }
22
+ if (candidate.cause && typeof candidate.cause === 'object') {
23
+ const cause = candidate.cause;
24
+ if (typeof cause.safeMessage === 'string') {
25
+ output.cause = {
26
+ ...(typeof cause.code === 'string' ? { code: cause.code } : {}),
27
+ safeMessage: cause.safeMessage,
28
+ };
29
+ }
30
+ }
31
+ return output;
32
+ }
33
+ //# sourceMappingURL=safe-operation-diagnostic.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"safe-operation-diagnostic.js","sourceRoot":"","sources":["../../../src/utils/safe-operation-diagnostic.ts"],"names":[],"mappings":"AAeA,MAAM,UAAU,wBAAwB,CACtC,KAAQ,EACR,UAAsC;IAEtC,OAAO,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,mBAAmB,EAAE,eAAe,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;AACpF,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,KAAc;IACnD,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,CAAC,qBAAqB,IAAI,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IAC/F,MAAM,KAAK,GAAI,KAA2C,CAAC,mBAAmB,CAAC;IAC/E,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,SAAS,CAAC;IAC1D,MAAM,SAAS,GAAG,KAA4C,CAAC;IAC/D,IAAI,OAAO,SAAS,CAAC,IAAI,KAAK,QAAQ,IAAI,OAAO,SAAS,CAAC,WAAW,KAAK,QAAQ;QAAE,OAAO,SAAS,CAAC;IACtG,MAAM,MAAM,GAA+B;QACzC,IAAI,EAAE,SAAS,CAAC,IAAI;QACpB,WAAW,EAAE,SAAS,CAAC,WAAW;KACnC,CAAC;IACF,IAAI,OAAO,SAAS,CAAC,KAAK,KAAK,QAAQ;QAAE,MAAM,CAAC,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC;IACxE,IAAI,OAAO,SAAS,CAAC,QAAQ,KAAK,QAAQ,IAAI,MAAM,CAAC,aAAa,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,CAAC;QACvF,MAAM,CAAC,QAAQ,GAAG,SAAS,CAAC,QAAQ,CAAC;IACvC,CAAC;IACD,IAAI,SAAS,CAAC,KAAK,IAAI,OAAO,SAAS,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC3D,MAAM,KAAK,GAAG,SAAS,CAAC,KAAkD,CAAC;QAC3E,IAAI,OAAO,KAAK,CAAC,WAAW,KAAK,QAAQ,EAAE,CAAC;YAC1C,MAAM,CAAC,KAAK,GAAG;gBACb,GAAG,CAAC,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC/D,WAAW,EAAE,KAAK,CAAC,WAAW;aAC/B,CAAC;QACJ,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -0,0 +1 @@
1
+ export declare function findSensitiveTokenPath(files: Readonly<Record<string, string | Buffer>>, sensitiveValues: readonly string[]): string | undefined;
@@ -0,0 +1,15 @@
1
+ export function findSensitiveTokenPath(files, sensitiveValues) {
2
+ for (const [relativePath, content] of Object.entries(files)) {
3
+ const text = typeof content === 'string' ? content : content.toString('utf8');
4
+ if (sensitiveValues.some((value) => {
5
+ if (value.length === 0)
6
+ return false;
7
+ const encoded = JSON.stringify(value).slice(1, -1);
8
+ return text.includes(value) || (encoded !== value && text.includes(encoded));
9
+ })) {
10
+ return relativePath;
11
+ }
12
+ }
13
+ return undefined;
14
+ }
15
+ //# sourceMappingURL=sensitive-content.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sensitive-content.js","sourceRoot":"","sources":["../../../src/utils/sensitive-content.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,sBAAsB,CACpC,KAAgD,EAChD,eAAkC;IAElC,KAAK,MAAM,CAAC,YAAY,EAAE,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QAC5D,MAAM,IAAI,GAAG,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QAC9E,IAAI,eAAe,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE;YACjC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO,KAAK,CAAC;YACrC,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YACnD,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,KAAK,KAAK,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;QAC/E,CAAC,CAAC,EAAE,CAAC;YACH,OAAO,YAAY,CAAC;QACtB,CAAC;IACH,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC"}
@@ -0,0 +1,9 @@
1
+ export interface WindowsClaudeCommand {
2
+ command: string;
3
+ argsPrefix: string[];
4
+ }
5
+ export declare function resolveWindowsClaudeCommand(options: {
6
+ command: string;
7
+ cwd?: string;
8
+ env?: NodeJS.ProcessEnv;
9
+ }): Promise<WindowsClaudeCommand>;
@@ -0,0 +1,141 @@
1
+ import path from 'node:path';
2
+ import fs from 'fs-extra';
3
+ const CLAUDE_PACKAGE_NAME = '@anthropic-ai/claude-code';
4
+ function readWindowsEnvironmentValue(env, name) {
5
+ return Object.entries(env).find(([key]) => key.toLowerCase() === name.toLowerCase())?.[1];
6
+ }
7
+ function windowsExecutableNames(command, env) {
8
+ const pathExt = readWindowsEnvironmentValue(env, 'PATHEXT') ?? '.COM;.EXE;.BAT;.CMD';
9
+ const supported = new Set(['.com', '.exe', '.bat', '.cmd']);
10
+ const extensions = pathExt.split(';')
11
+ .map((extension) => extension.trim())
12
+ .filter((extension) => supported.has(extension.toLowerCase()));
13
+ return [
14
+ ...extensions.filter((extension) => ['.com', '.exe'].includes(extension.toLowerCase())),
15
+ ...extensions.filter((extension) => ['.bat', '.cmd'].includes(extension.toLowerCase())),
16
+ ].map((extension) => `${command}${extension}`);
17
+ }
18
+ async function resolveWindowsPathCommand(command, cwd, env) {
19
+ const pathValue = readWindowsEnvironmentValue(env, 'PATH');
20
+ if (pathValue === undefined)
21
+ return undefined;
22
+ for (const rawEntry of pathValue.split(';')) {
23
+ const directory = path.resolve(cwd, rawEntry.replace(/^"|"$/gu, '') || '.');
24
+ for (const executableName of windowsExecutableNames(command, env)) {
25
+ const candidate = path.join(directory, executableName);
26
+ try {
27
+ if ((await fs.stat(candidate)).isFile())
28
+ return candidate;
29
+ }
30
+ catch (error) {
31
+ const code = error.code;
32
+ if (code === 'ENOENT' || code === 'EACCES' || code === 'ENOTDIR')
33
+ continue;
34
+ throw error;
35
+ }
36
+ }
37
+ }
38
+ return undefined;
39
+ }
40
+ function renderNpmCmdShim(target) {
41
+ return [
42
+ '@ECHO off',
43
+ 'GOTO start',
44
+ ':find_dp0',
45
+ 'SET dp0=%~dp0',
46
+ 'EXIT /b',
47
+ ':start',
48
+ 'SETLOCAL',
49
+ 'CALL :find_dp0',
50
+ '',
51
+ 'IF EXIST "%dp0%\\node.exe" (',
52
+ ' SET "_prog=%dp0%\\node.exe"',
53
+ ') ELSE (',
54
+ ' SET "_prog=node"',
55
+ ' SET PATHEXT=%PATHEXT:;.JS;=;%',
56
+ ')',
57
+ '',
58
+ 'endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & ' +
59
+ `"%_prog%" "%dp0%\\${target}" %*`,
60
+ '',
61
+ ].join('\n');
62
+ }
63
+ function isPathWithin(root, candidate) {
64
+ const relative = path.relative(root, candidate);
65
+ return relative === '' || (!relative.startsWith('..') && !path.isAbsolute(relative));
66
+ }
67
+ async function resolveClaudeNpmShim(shimPath) {
68
+ const prefixRoot = path.dirname(shimPath);
69
+ const packageRoot = path.join(prefixRoot, 'node_modules', '@anthropic-ai', 'claude-code');
70
+ const packageJsonPath = path.join(packageRoot, 'package.json');
71
+ try {
72
+ const [shimStats, packageStats, packageJsonStats, shimContent, packageJson] = await Promise.all([
73
+ fs.lstat(shimPath),
74
+ fs.lstat(packageRoot),
75
+ fs.lstat(packageJsonPath),
76
+ fs.readFile(shimPath, 'utf8'),
77
+ fs.readJson(packageJsonPath),
78
+ ]);
79
+ if (!shimStats.isFile() || shimStats.isSymbolicLink()
80
+ || !packageStats.isDirectory() || packageStats.isSymbolicLink()
81
+ || !packageJsonStats.isFile() || packageJsonStats.isSymbolicLink()) {
82
+ throw new Error('the shim or package tree is not regular');
83
+ }
84
+ const bin = packageJson.bin;
85
+ const launcherEntry = bin && typeof bin === 'object' && !Array.isArray(bin)
86
+ ? bin.claude
87
+ : undefined;
88
+ const launcherParts = typeof launcherEntry === 'string'
89
+ ? launcherEntry.split(/[/\\]/u)
90
+ : [];
91
+ if (packageJson.name !== CLAUDE_PACKAGE_NAME
92
+ || typeof launcherEntry !== 'string'
93
+ || launcherParts.length === 0
94
+ || launcherParts.some((part) => part.length === 0 || part === '.' || part === '..')
95
+ || !/\.(?:c?js)$/u.test(launcherParts.at(-1) ?? '')) {
96
+ throw new Error('the package identity or launcher contract is invalid');
97
+ }
98
+ const launcherPath = path.join(packageRoot, ...launcherParts);
99
+ const launcherStats = await fs.lstat(launcherPath);
100
+ if (!launcherStats.isFile() || launcherStats.isSymbolicLink()) {
101
+ throw new Error('the launcher is not a regular file');
102
+ }
103
+ const [canonicalPrefix, canonicalPackageRoot, canonicalLauncher] = await Promise.all([
104
+ fs.realpath(prefixRoot),
105
+ fs.realpath(packageRoot),
106
+ fs.realpath(launcherPath),
107
+ ]);
108
+ if (!isPathWithin(canonicalPrefix, canonicalPackageRoot)
109
+ || !isPathWithin(canonicalPackageRoot, canonicalLauncher)) {
110
+ throw new Error('the package or launcher resolves outside its npm prefix');
111
+ }
112
+ const shimTarget = path.join('node_modules', '@anthropic-ai', 'claude-code', ...launcherParts).replaceAll('/', '\\');
113
+ if (shimContent.replaceAll('\r\n', '\n') !== renderNpmCmdShim(shimTarget)) {
114
+ throw new Error('the shim is not the supported npm launcher');
115
+ }
116
+ return { command: process.execPath, argsPrefix: [canonicalLauncher] };
117
+ }
118
+ catch (error) {
119
+ throw new Error(`Windows Claude launcher is unsupported: ${error instanceof Error ? error.message : 'validation failed'}.`, { cause: error });
120
+ }
121
+ }
122
+ export async function resolveWindowsClaudeCommand(options) {
123
+ const env = options.env ?? process.env;
124
+ const hasDirectory = /[/\\]/u.test(options.command);
125
+ const resolved = hasDirectory
126
+ ? options.command
127
+ : await resolveWindowsPathCommand(options.command, options.cwd ?? process.cwd(), env);
128
+ if (!resolved) {
129
+ throw Object.assign(new Error('Windows Claude executable was not found on PATH.'), {
130
+ code: 'ENOENT',
131
+ });
132
+ }
133
+ const extension = path.extname(resolved).toLowerCase();
134
+ if (extension === '.cmd')
135
+ return resolveClaudeNpmShim(resolved);
136
+ if (extension === '.bat') {
137
+ throw new Error('Windows Claude .bat launchers are unsupported.');
138
+ }
139
+ return { command: resolved, argsPrefix: [] };
140
+ }
141
+ //# sourceMappingURL=windows-claude-shim.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"windows-claude-shim.js","sourceRoot":"","sources":["../../../src/utils/windows-claude-shim.ts"],"names":[],"mappings":"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"}
@@ -1,16 +1,97 @@
1
+ import { fileURLToPath } from 'node:url';
1
2
  import { defineConfig } from 'vitest/config';
3
+ const pureTests = [
4
+ 'tests/unit/command-options.test.ts',
5
+ 'tests/unit/command-receipt.test.ts',
6
+ 'tests/unit/hooks-contract.test.ts',
7
+ 'tests/unit/platform-support.test.ts',
8
+ 'tests/unit/template-engine.test.ts',
9
+ ];
10
+ const processTests = [
11
+ 'tests/unit/process-tree.test.ts',
12
+ 'tests/unit/native-cli.test.ts',
13
+ 'tests/unit/plugin-scripts.test.ts',
14
+ 'tests/unit/artifact-renderer.test.ts',
15
+ 'tests/unit/process-lock.test.ts',
16
+ 'tests/integration/aw-home-mutation-command-lock.test.ts',
17
+ ];
18
+ const distContractTests = [
19
+ 'tests/integration/authoring-tools.test.ts',
20
+ ];
21
+ const common = {
22
+ environment: 'node',
23
+ testTimeout: 15_000,
24
+ hookTimeout: 15_000,
25
+ coverage: {
26
+ reporter: ['text', 'html'],
27
+ },
28
+ };
2
29
  export default defineConfig({
30
+ resolve: {
31
+ alias: [
32
+ {
33
+ find: /^@lesliechan721\/aw-plugin-core\/manifest$/u,
34
+ replacement: fileURLToPath(new URL('../plugin-core/src/manifest.ts', import.meta.url)),
35
+ },
36
+ {
37
+ find: /^@lesliechan721\/aw-plugin-core$/u,
38
+ replacement: fileURLToPath(new URL('../plugin-core/src/index.ts', import.meta.url)),
39
+ },
40
+ {
41
+ find: /^@lesliechan721\/agent-skill-eval$/u,
42
+ replacement: fileURLToPath(new URL('../agent-skill-eval/src/index.ts', import.meta.url)),
43
+ },
44
+ ],
45
+ },
3
46
  test: {
4
- environment: 'node',
5
- include: ['tests/unit/**/*.{ts,tsx}', 'tests/integration/**/*.{ts,tsx}'],
6
- exclude: ['tests/integration/fixtures/**', '**/*.test-helper.ts'],
7
- setupFiles: ['tests/setup/test-isolation.ts'],
8
- maxWorkers: 4,
9
- testTimeout: 15_000,
10
- hookTimeout: 15_000,
11
- coverage: {
12
- reporter: ['text', 'html'],
13
- },
47
+ maxWorkers: 2,
48
+ minWorkers: 1,
49
+ projects: [
50
+ {
51
+ extends: true,
52
+ test: {
53
+ ...common,
54
+ name: 'pure',
55
+ include: pureTests,
56
+ setupFiles: ['tests/setup/test-isolation-pure.ts'],
57
+ sequence: { groupOrder: 0 },
58
+ },
59
+ },
60
+ {
61
+ extends: true,
62
+ test: {
63
+ ...common,
64
+ name: 'filesystem-isolated',
65
+ include: ['tests/unit/**/*.test.{ts,tsx}'],
66
+ exclude: [...pureTests, ...processTests],
67
+ setupFiles: ['tests/setup/test-isolation.ts'],
68
+ sequence: { groupOrder: 0 },
69
+ },
70
+ },
71
+ {
72
+ extends: true,
73
+ test: {
74
+ ...common,
75
+ name: 'integration',
76
+ include: ['tests/integration/**/*.test.{ts,tsx}'],
77
+ exclude: [...processTests, ...distContractTests],
78
+ setupFiles: ['tests/setup/test-isolation.ts'],
79
+ sequence: { groupOrder: 1 },
80
+ },
81
+ },
82
+ {
83
+ extends: true,
84
+ test: {
85
+ ...common,
86
+ name: 'process-lifecycle',
87
+ include: processTests,
88
+ pool: 'forks',
89
+ poolOptions: { forks: { singleFork: true } },
90
+ setupFiles: ['tests/setup/test-isolation.ts'],
91
+ sequence: { groupOrder: 2 },
92
+ },
93
+ },
94
+ ],
14
95
  },
15
96
  });
16
97
  //# sourceMappingURL=vitest.config.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"vitest.config.js","sourceRoot":"","sources":["../vitest.config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAE7C,eAAe,YAAY,CAAC;IAC1B,IAAI,EAAE;QACJ,WAAW,EAAE,MAAM;QACnB,OAAO,EAAE,CAAC,0BAA0B,EAAE,iCAAiC,CAAC;QACxE,OAAO,EAAE,CAAC,+BAA+B,EAAE,qBAAqB,CAAC;QACjE,UAAU,EAAE,CAAC,+BAA+B,CAAC;QAC7C,UAAU,EAAE,CAAC;QACb,WAAW,EAAE,MAAM;QACnB,WAAW,EAAE,MAAM;QACnB,QAAQ,EAAE;YACR,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC;SAC3B;KACF;CACF,CAAC,CAAC"}
1
+ {"version":3,"file":"vitest.config.js","sourceRoot":"","sources":["../vitest.config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAE7C,MAAM,SAAS,GAAG;IAChB,oCAAoC;IACpC,oCAAoC;IACpC,mCAAmC;IACnC,qCAAqC;IACrC,oCAAoC;CACrC,CAAC;AACF,MAAM,YAAY,GAAG;IACnB,iCAAiC;IACjC,+BAA+B;IAC/B,mCAAmC;IACnC,sCAAsC;IACtC,iCAAiC;IACjC,yDAAyD;CAC1D,CAAC;AACF,MAAM,iBAAiB,GAAG;IACxB,2CAA2C;CAC5C,CAAC;AACF,MAAM,MAAM,GAAG;IACb,WAAW,EAAE,MAAe;IAC5B,WAAW,EAAE,MAAM;IACnB,WAAW,EAAE,MAAM;IACnB,QAAQ,EAAE;QACR,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,CAAU;KACpC;CACF,CAAC;AAEF,eAAe,YAAY,CAAC;IAC1B,OAAO,EAAE;QACP,KAAK,EAAE;YACL;gBACE,IAAI,EAAE,6CAA6C;gBACnD,WAAW,EAAE,aAAa,CAAC,IAAI,GAAG,CAAC,gCAAgC,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;aACvF;YACD;gBACE,IAAI,EAAE,mCAAmC;gBACzC,WAAW,EAAE,aAAa,CAAC,IAAI,GAAG,CAAC,6BAA6B,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;aACpF;YACD;gBACE,IAAI,EAAE,qCAAqC;gBAC3C,WAAW,EAAE,aAAa,CAAC,IAAI,GAAG,CAAC,kCAAkC,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;aACzF;SACF;KACF;IACD,IAAI,EAAE;QACJ,UAAU,EAAE,CAAC;QACb,UAAU,EAAE,CAAC;QACb,QAAQ,EAAE;YACR;gBACE,OAAO,EAAE,IAAI;gBACb,IAAI,EAAE;oBACJ,GAAG,MAAM;oBACT,IAAI,EAAE,MAAM;oBACZ,OAAO,EAAE,SAAS;oBAClB,UAAU,EAAE,CAAC,oCAAoC,CAAC;oBAClD,QAAQ,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE;iBAC5B;aACF;YACD;gBACE,OAAO,EAAE,IAAI;gBACb,IAAI,EAAE;oBACJ,GAAG,MAAM;oBACT,IAAI,EAAE,qBAAqB;oBAC3B,OAAO,EAAE,CAAC,+BAA+B,CAAC;oBAC1C,OAAO,EAAE,CAAC,GAAG,SAAS,EAAE,GAAG,YAAY,CAAC;oBACxC,UAAU,EAAE,CAAC,+BAA+B,CAAC;oBAC7C,QAAQ,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE;iBAC5B;aACF;YACD;gBACE,OAAO,EAAE,IAAI;gBACb,IAAI,EAAE;oBACJ,GAAG,MAAM;oBACT,IAAI,EAAE,aAAa;oBACnB,OAAO,EAAE,CAAC,sCAAsC,CAAC;oBACjD,OAAO,EAAE,CAAC,GAAG,YAAY,EAAE,GAAG,iBAAiB,CAAC;oBAChD,UAAU,EAAE,CAAC,+BAA+B,CAAC;oBAC7C,QAAQ,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE;iBAC5B;aACF;YACD;gBACE,OAAO,EAAE,IAAI;gBACb,IAAI,EAAE;oBACJ,GAAG,MAAM;oBACT,IAAI,EAAE,mBAAmB;oBACzB,OAAO,EAAE,YAAY;oBACrB,IAAI,EAAE,OAAO;oBACb,WAAW,EAAE,EAAE,KAAK,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,EAAE;oBAC5C,UAAU,EAAE,CAAC,+BAA+B,CAAC;oBAC7C,QAAQ,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE;iBAC5B;aACF;SACF;KACF;CACF,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lesliechan721/aw",
3
- "version": "0.1.0-beta.10",
3
+ "version": "0.1.0-beta.11",
4
4
  "type": "module",
5
5
  "engines": {
6
6
  "node": ">=22"
@@ -17,8 +17,8 @@
17
17
  ],
18
18
  "dependencies": {
19
19
  "@inkjs/ui": "^2.0.0",
20
- "@lesliechan721/agent-skill-eval": "0.1.0-beta.10",
21
- "@lesliechan721/aw-plugin-core": "0.1.0-beta.10",
20
+ "@lesliechan721/agent-skill-eval": "0.1.0-beta.11",
21
+ "@lesliechan721/aw-plugin-core": "0.1.0-beta.11",
22
22
  "commander": "^14.0.1",
23
23
  "fs-extra": "^11.3.0",
24
24
  "ink": "^7.1.1",
@@ -40,15 +40,15 @@
40
40
  "vitest": "^3.2.4"
41
41
  },
42
42
  "scripts": {
43
- "build": "node scripts/generate-aw-config-helper.mjs --check && node scripts/clean-dist.mjs && tsc -p tsconfig.json && node dist/scripts/bundle-plugins.js",
44
- "generate:config-helper": "node scripts/generate-aw-config-helper.mjs",
45
- "generate:config-helper:check": "node scripts/generate-aw-config-helper.mjs --check",
46
- "test": "node ../../scripts/test/run-vitest.mjs run",
47
- "test:unit": "node ../../scripts/test/run-vitest.mjs run tests/unit",
43
+ "build": "node scripts/clean-dist.mjs && tsc -p tsconfig.json && node dist/scripts/bundle-plugins.js",
44
+ "build:dev:typescript": "tsc -p tsconfig.dev.json",
45
+ "test": "pnpm run test:unit && pnpm run test:integration",
46
+ "test:unit": "node ../../scripts/test/run-vitest.mjs run --project pure --maxWorkers=2 tests/unit && node ../../scripts/test/run-vitest.mjs run --project filesystem-isolated --maxWorkers=2 tests/unit && node ../../scripts/test/run-vitest.mjs run --project process-lifecycle --pool=forks --maxWorkers=1 --no-file-parallelism tests/unit",
48
47
  "test:unit:fast": "node ../../scripts/test/run-vitest.mjs run --config vitest.fast.config.ts",
49
- "test:integration": "node ../../scripts/test/run-vitest.mjs run tests/integration",
48
+ "test:integration": "node ../../scripts/test/run-vitest.mjs run --project integration --maxWorkers=2 tests/integration && node ../../scripts/test/run-vitest.mjs run --project process-lifecycle --pool=forks --maxWorkers=1 --no-file-parallelism tests/integration",
50
49
  "test:coverage": "node ../../scripts/test/run-vitest.mjs run --coverage",
51
50
  "test:perf": "node ../../scripts/test/run-vitest.mjs run --config vitest.perf.config.ts",
51
+ "test:dist": "node ../../scripts/test/run-vitest.mjs run --config vitest.dist.config.ts",
52
52
  "test:smoke": "node ../../scripts/test/run-vitest.mjs run --config vitest.smoke.config.ts",
53
53
  "test:smoke:build": "node ../../scripts/test/run-vitest.mjs run --config vitest.smoke.config.ts tests/smoke/build-smoke.test.ts",
54
54
  "test:smoke:pack:cli": "node ../../scripts/test/run-vitest.mjs run --config vitest.smoke.config.ts tests/smoke/pack-smoke.test.ts",
@@ -1,2 +0,0 @@
1
- #!/usr/bin/env node
2
- export {};