@lesliechan721/aw 0.1.0-beta.41 → 0.1.0-beta.48
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.
- package/dist/authoring/scripts/lib/plugin-root.mjs +4 -4
- package/dist/authoring/scripts/lib/plugin-root.mjs.map +1 -1
- package/dist/authoring/scripts/lib/plugin-version-check.mjs +2 -2
- package/dist/authoring/scripts/lib/plugin-version-check.mjs.map +1 -1
- package/dist/authoring/scripts/remove-plugin.mjs +1 -1
- package/dist/authoring/scripts/remove-plugin.mjs.map +1 -1
- package/dist/scripts/test-plugin-scripts.js +17 -1
- package/dist/scripts/test-plugin-scripts.js.map +1 -1
- package/dist/scripts/test-workers.d.mts +24 -0
- package/dist/scripts/test-workers.mjs +59 -0
- package/dist/scripts/test-workers.mjs.map +1 -0
- package/dist/src/commands/aw-capabilities.js +6 -5
- package/dist/src/commands/aw-capabilities.js.map +1 -1
- package/dist/src/commands/catalog-publication-inspection.d.ts +10 -1
- package/dist/src/commands/catalog-publication-inspection.js +119 -20
- package/dist/src/commands/catalog-publication-inspection.js.map +1 -1
- package/dist/src/commands/catalog-publish.d.ts +5 -1
- package/dist/src/commands/catalog-publish.js +6 -2
- package/dist/src/commands/catalog-publish.js.map +1 -1
- package/dist/src/commands/rebuild-integration.js +4 -5
- package/dist/src/commands/rebuild-integration.js.map +1 -1
- package/dist/src/generators/local-plugin.js +9 -6
- package/dist/src/generators/local-plugin.js.map +1 -1
- package/dist/src/index.js +2 -0
- package/dist/src/index.js.map +1 -1
- package/dist/src/portable/skills-cli.js +8 -1
- package/dist/src/portable/skills-cli.js.map +1 -1
- package/dist/src/utils/catalog-generation-service.js +1 -1
- package/dist/src/utils/catalog-generation-service.js.map +1 -1
- package/dist/src/utils/codex-manager.js +2 -0
- package/dist/src/utils/codex-manager.js.map +1 -1
- package/dist/src/utils/git-catalog-provider.js +9 -2
- package/dist/src/utils/git-catalog-provider.js.map +1 -1
- package/dist/src/utils/local-marketplace.d.ts +4 -3
- package/dist/src/utils/local-marketplace.js +60 -7
- package/dist/src/utils/local-marketplace.js.map +1 -1
- package/dist/src/utils/native-cli.js +17 -4
- package/dist/src/utils/native-cli.js.map +1 -1
- package/dist/src/utils/plugin-scripts.js +3 -1
- package/dist/src/utils/plugin-scripts.js.map +1 -1
- package/dist/src/utils/windows-claude-shim.d.ts +2 -4
- package/dist/src/utils/windows-claude-shim.js +7 -138
- package/dist/src/utils/windows-claude-shim.js.map +1 -1
- package/dist/src/utils/windows-npm-shim.d.ts +14 -0
- package/dist/src/utils/windows-npm-shim.js +140 -0
- package/dist/src/utils/windows-npm-shim.js.map +1 -0
- package/dist/vitest.config.js +3 -2
- package/dist/vitest.config.js.map +1 -1
- package/package.json +10 -5
|
@@ -1,141 +1,10 @@
|
|
|
1
|
-
import
|
|
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
|
-
}
|
|
1
|
+
import { resolveWindowsNpmCommand, } from './windows-npm-shim.js';
|
|
122
2
|
export async function resolveWindowsClaudeCommand(options) {
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
:
|
|
128
|
-
|
|
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: [] };
|
|
3
|
+
return resolveWindowsNpmCommand({
|
|
4
|
+
...options,
|
|
5
|
+
packageName: '@anthropic-ai/claude-code',
|
|
6
|
+
binName: 'claude',
|
|
7
|
+
displayName: 'Claude',
|
|
8
|
+
});
|
|
140
9
|
}
|
|
141
10
|
//# sourceMappingURL=windows-claude-shim.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"windows-claude-shim.js","sourceRoot":"","sources":["../../../src/utils/windows-claude-shim.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"windows-claude-shim.js","sourceRoot":"","sources":["../../../src/utils/windows-claude-shim.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,wBAAwB,GAEzB,MAAM,uBAAuB,CAAC;AAI/B,MAAM,CAAC,KAAK,UAAU,2BAA2B,CAAC,OAIjD;IACC,OAAO,wBAAwB,CAAC;QAC9B,GAAG,OAAO;QACV,WAAW,EAAE,2BAA2B;QACxC,OAAO,EAAE,QAAQ;QACjB,WAAW,EAAE,QAAQ;KACtB,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export interface WindowsNpmCommand {
|
|
2
|
+
command: string;
|
|
3
|
+
argsPrefix: string[];
|
|
4
|
+
}
|
|
5
|
+
interface WindowsNpmCommandOptions {
|
|
6
|
+
command: string;
|
|
7
|
+
packageName: string;
|
|
8
|
+
binName: string;
|
|
9
|
+
displayName?: string;
|
|
10
|
+
cwd?: string;
|
|
11
|
+
env?: NodeJS.ProcessEnv;
|
|
12
|
+
}
|
|
13
|
+
export declare function resolveWindowsNpmCommand(options: WindowsNpmCommandOptions): Promise<WindowsNpmCommand>;
|
|
14
|
+
export {};
|
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
import path from 'node:path';
|
|
2
|
+
import fs from 'fs-extra';
|
|
3
|
+
function readWindowsEnvironmentValue(env, name) {
|
|
4
|
+
return Object.entries(env).find(([key]) => key.toLowerCase() === name.toLowerCase())?.[1];
|
|
5
|
+
}
|
|
6
|
+
function windowsExecutableNames(command, env) {
|
|
7
|
+
const pathExt = readWindowsEnvironmentValue(env, 'PATHEXT') ?? '.COM;.EXE;.BAT;.CMD';
|
|
8
|
+
const supported = new Set(['.com', '.exe', '.bat', '.cmd']);
|
|
9
|
+
const extensions = pathExt.split(';')
|
|
10
|
+
.map((extension) => extension.trim())
|
|
11
|
+
.filter((extension) => supported.has(extension.toLowerCase()));
|
|
12
|
+
return [
|
|
13
|
+
...extensions.filter((extension) => ['.com', '.exe'].includes(extension.toLowerCase())),
|
|
14
|
+
...extensions.filter((extension) => ['.bat', '.cmd'].includes(extension.toLowerCase())),
|
|
15
|
+
].map((extension) => `${command}${extension}`);
|
|
16
|
+
}
|
|
17
|
+
async function resolveWindowsPathCommand(command, cwd, env) {
|
|
18
|
+
const pathValue = readWindowsEnvironmentValue(env, 'PATH');
|
|
19
|
+
if (pathValue === undefined)
|
|
20
|
+
return undefined;
|
|
21
|
+
for (const rawEntry of pathValue.split(';')) {
|
|
22
|
+
const directory = path.resolve(cwd, rawEntry.replace(/^"|"$/gu, '') || '.');
|
|
23
|
+
for (const executableName of windowsExecutableNames(command, env)) {
|
|
24
|
+
const candidate = path.join(directory, executableName);
|
|
25
|
+
try {
|
|
26
|
+
if ((await fs.stat(candidate)).isFile())
|
|
27
|
+
return candidate;
|
|
28
|
+
}
|
|
29
|
+
catch (error) {
|
|
30
|
+
const code = error.code;
|
|
31
|
+
if (code === 'ENOENT' || code === 'EACCES' || code === 'ENOTDIR')
|
|
32
|
+
continue;
|
|
33
|
+
throw error;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
return undefined;
|
|
38
|
+
}
|
|
39
|
+
function renderNpmCmdShim(target) {
|
|
40
|
+
return [
|
|
41
|
+
'@ECHO off',
|
|
42
|
+
'GOTO start',
|
|
43
|
+
':find_dp0',
|
|
44
|
+
'SET dp0=%~dp0',
|
|
45
|
+
'EXIT /b',
|
|
46
|
+
':start',
|
|
47
|
+
'SETLOCAL',
|
|
48
|
+
'CALL :find_dp0',
|
|
49
|
+
'',
|
|
50
|
+
'IF EXIST "%dp0%\\node.exe" (',
|
|
51
|
+
' SET "_prog=%dp0%\\node.exe"',
|
|
52
|
+
') ELSE (',
|
|
53
|
+
' SET "_prog=node"',
|
|
54
|
+
' SET PATHEXT=%PATHEXT:;.JS;=;%',
|
|
55
|
+
')',
|
|
56
|
+
'',
|
|
57
|
+
'endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & ' +
|
|
58
|
+
`"%_prog%" "%dp0%\\${target}" %*`,
|
|
59
|
+
'',
|
|
60
|
+
].join('\n');
|
|
61
|
+
}
|
|
62
|
+
function isPathWithin(root, candidate) {
|
|
63
|
+
const relative = path.relative(root, candidate);
|
|
64
|
+
return relative === '' || (!relative.startsWith('..') && !path.isAbsolute(relative));
|
|
65
|
+
}
|
|
66
|
+
async function resolveNpmShim(shimPath, options) {
|
|
67
|
+
const prefixRoot = path.dirname(shimPath);
|
|
68
|
+
const packageRoot = path.join(prefixRoot, 'node_modules', ...options.packageName.split('/'));
|
|
69
|
+
const packageJsonPath = path.join(packageRoot, 'package.json');
|
|
70
|
+
try {
|
|
71
|
+
const [shimStats, packageStats, packageJsonStats, shimContent, packageJson] = await Promise.all([
|
|
72
|
+
fs.lstat(shimPath),
|
|
73
|
+
fs.lstat(packageRoot),
|
|
74
|
+
fs.lstat(packageJsonPath),
|
|
75
|
+
fs.readFile(shimPath, 'utf8'),
|
|
76
|
+
fs.readJson(packageJsonPath),
|
|
77
|
+
]);
|
|
78
|
+
if (!shimStats.isFile() || shimStats.isSymbolicLink()
|
|
79
|
+
|| !packageStats.isDirectory() || packageStats.isSymbolicLink()
|
|
80
|
+
|| !packageJsonStats.isFile() || packageJsonStats.isSymbolicLink()) {
|
|
81
|
+
throw new Error('the shim or package tree is not regular');
|
|
82
|
+
}
|
|
83
|
+
const bin = packageJson.bin;
|
|
84
|
+
const launcherEntry = bin && typeof bin === 'object' && !Array.isArray(bin)
|
|
85
|
+
? bin[options.binName]
|
|
86
|
+
: undefined;
|
|
87
|
+
const launcherParts = typeof launcherEntry === 'string'
|
|
88
|
+
? launcherEntry.replace(/^\.\//u, '').split(/[/\\]/u)
|
|
89
|
+
: [];
|
|
90
|
+
if (packageJson.name !== options.packageName
|
|
91
|
+
|| typeof launcherEntry !== 'string'
|
|
92
|
+
|| launcherParts.length === 0
|
|
93
|
+
|| launcherParts.some((part) => part.length === 0 || part === '.' || part === '..')
|
|
94
|
+
|| !/\.(?:[cm]?js)$/u.test(launcherParts.at(-1) ?? '')) {
|
|
95
|
+
throw new Error('the package identity or launcher contract is invalid');
|
|
96
|
+
}
|
|
97
|
+
const launcherPath = path.join(packageRoot, ...launcherParts);
|
|
98
|
+
const launcherStats = await fs.lstat(launcherPath);
|
|
99
|
+
if (!launcherStats.isFile() || launcherStats.isSymbolicLink()) {
|
|
100
|
+
throw new Error('the launcher is not a regular file');
|
|
101
|
+
}
|
|
102
|
+
const [canonicalPrefix, canonicalPackageRoot, canonicalLauncher] = await Promise.all([
|
|
103
|
+
fs.realpath(prefixRoot),
|
|
104
|
+
fs.realpath(packageRoot),
|
|
105
|
+
fs.realpath(launcherPath),
|
|
106
|
+
]);
|
|
107
|
+
if (!isPathWithin(canonicalPrefix, canonicalPackageRoot)
|
|
108
|
+
|| !isPathWithin(canonicalPackageRoot, canonicalLauncher)) {
|
|
109
|
+
throw new Error('the package or launcher resolves outside its npm prefix');
|
|
110
|
+
}
|
|
111
|
+
const shimTarget = path.join('node_modules', ...options.packageName.split('/'), ...launcherParts).replaceAll('/', '\\');
|
|
112
|
+
if (shimContent.replaceAll('\r\n', '\n') !== renderNpmCmdShim(shimTarget)) {
|
|
113
|
+
throw new Error('the shim is not the supported npm launcher');
|
|
114
|
+
}
|
|
115
|
+
return { command: process.execPath, argsPrefix: [canonicalLauncher] };
|
|
116
|
+
}
|
|
117
|
+
catch (error) {
|
|
118
|
+
throw new Error(`Windows ${options.displayName ?? options.binName} launcher is unsupported: ${error instanceof Error ? error.message : 'validation failed'}.`, { cause: error });
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
export async function resolveWindowsNpmCommand(options) {
|
|
122
|
+
const env = options.env ?? process.env;
|
|
123
|
+
const hasDirectory = /[/\\]/u.test(options.command);
|
|
124
|
+
const resolved = hasDirectory
|
|
125
|
+
? options.command
|
|
126
|
+
: await resolveWindowsPathCommand(options.command, options.cwd ?? process.cwd(), env);
|
|
127
|
+
if (!resolved) {
|
|
128
|
+
throw Object.assign(new Error(`Windows ${options.displayName ?? options.binName} executable was not found on PATH.`), {
|
|
129
|
+
code: 'ENOENT',
|
|
130
|
+
});
|
|
131
|
+
}
|
|
132
|
+
const extension = path.extname(resolved).toLowerCase();
|
|
133
|
+
if (extension === '.cmd')
|
|
134
|
+
return resolveNpmShim(resolved, options);
|
|
135
|
+
if (extension === '.bat') {
|
|
136
|
+
throw new Error(`Windows ${options.displayName ?? options.binName} .bat launchers are unsupported.`);
|
|
137
|
+
}
|
|
138
|
+
return { command: resolved, argsPrefix: [] };
|
|
139
|
+
}
|
|
140
|
+
//# sourceMappingURL=windows-npm-shim.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"windows-npm-shim.js","sourceRoot":"","sources":["../../../src/utils/windows-npm-shim.ts"],"names":[],"mappings":"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"}
|
package/dist/vitest.config.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { vitestWorkerOptions } from './scripts/test-workers.mjs';
|
|
1
2
|
import { fileURLToPath } from 'node:url';
|
|
2
3
|
import { defineConfig } from 'vitest/config';
|
|
3
4
|
const pureTests = [
|
|
@@ -9,6 +10,7 @@ const pureTests = [
|
|
|
9
10
|
];
|
|
10
11
|
const processTests = [
|
|
11
12
|
'tests/unit/process-tree.test.ts',
|
|
13
|
+
'tests/unit/test-command-diagnostics.test.ts',
|
|
12
14
|
'tests/unit/native-cli.test.ts',
|
|
13
15
|
'tests/unit/plugin-scripts.test.ts',
|
|
14
16
|
'tests/unit/artifact-renderer.test.ts',
|
|
@@ -44,8 +46,7 @@ export default defineConfig({
|
|
|
44
46
|
],
|
|
45
47
|
},
|
|
46
48
|
test: {
|
|
47
|
-
|
|
48
|
-
minWorkers: 1,
|
|
49
|
+
...vitestWorkerOptions(),
|
|
49
50
|
projects: [
|
|
50
51
|
{
|
|
51
52
|
extends: true,
|
|
@@ -1 +1 @@
|
|
|
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,
|
|
1
|
+
{"version":3,"file":"vitest.config.js","sourceRoot":"","sources":["../vitest.config.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,10 +1,15 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lesliechan721/aw",
|
|
3
|
-
"version": "0.1.0-beta.
|
|
3
|
+
"version": "0.1.0-beta.48",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"engines": {
|
|
6
6
|
"node": ">=22"
|
|
7
7
|
},
|
|
8
|
+
"repository": {
|
|
9
|
+
"type": "git",
|
|
10
|
+
"url": "git+https://github.com/lesliechan721-arch/agent-workflow.git",
|
|
11
|
+
"directory": "packages/cli"
|
|
12
|
+
},
|
|
8
13
|
"publishConfig": {
|
|
9
14
|
"access": "public",
|
|
10
15
|
"registry": "https://registry.npmjs.org/"
|
|
@@ -17,8 +22,8 @@
|
|
|
17
22
|
],
|
|
18
23
|
"dependencies": {
|
|
19
24
|
"@inkjs/ui": "^2.0.0",
|
|
20
|
-
"@lesliechan721/agent-skill-eval": "0.1.0-beta.
|
|
21
|
-
"@lesliechan721/aw-plugin-core": "0.1.0-beta.
|
|
25
|
+
"@lesliechan721/agent-skill-eval": "0.1.0-beta.48",
|
|
26
|
+
"@lesliechan721/aw-plugin-core": "0.1.0-beta.48",
|
|
22
27
|
"commander": "^14.0.1",
|
|
23
28
|
"fs-extra": "^11.3.0",
|
|
24
29
|
"ink": "^7.1.1",
|
|
@@ -43,9 +48,9 @@
|
|
|
43
48
|
"build": "node scripts/clean-dist.mjs && tsc -p tsconfig.json && node dist/scripts/bundle-plugins.js",
|
|
44
49
|
"build:dev:typescript": "tsc -p tsconfig.dev.json",
|
|
45
50
|
"test": "pnpm run test:unit && pnpm run test:integration",
|
|
46
|
-
"test:unit": "node ../../scripts/test/run-vitest.mjs run --project pure
|
|
51
|
+
"test:unit": "node ../../scripts/test/run-vitest.mjs run --project pure tests/unit && node ../../scripts/test/run-vitest.mjs run --project filesystem-isolated tests/unit && node ../../scripts/test/run-vitest.mjs run --project process-lifecycle --pool=forks --maxWorkers=1 --no-file-parallelism tests/unit",
|
|
47
52
|
"test:unit:fast": "node ../../scripts/test/run-vitest.mjs run --config vitest.fast.config.ts",
|
|
48
|
-
"test:integration": "node ../../scripts/test/run-vitest.mjs run --project integration
|
|
53
|
+
"test:integration": "node ../../scripts/test/run-vitest.mjs run --project integration tests/integration && node ../../scripts/test/run-vitest.mjs run --project process-lifecycle --pool=forks --maxWorkers=1 --no-file-parallelism tests/integration",
|
|
49
54
|
"test:coverage": "node ../../scripts/test/run-vitest.mjs run --coverage",
|
|
50
55
|
"test:perf": "node ../../scripts/test/run-vitest.mjs run --config vitest.perf.config.ts",
|
|
51
56
|
"test:dist": "node ../../scripts/test/run-vitest.mjs run --config vitest.dist.config.ts",
|