@molecule/api-ai-tools 1.10.2 → 1.10.4
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/README.md +177 -3
- package/dist/command-position.d.ts.map +1 -1
- package/dist/command-position.js +86 -14
- package/dist/cut-run.d.ts +9 -1
- package/dist/cut-run.d.ts.map +1 -1
- package/dist/cut-run.js +19 -6
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/inline-script.d.ts +49 -0
- package/dist/inline-script.d.ts.map +1 -0
- package/dist/inline-script.js +115 -0
- package/dist/no-test-run.d.ts +3 -1
- package/dist/no-test-run.d.ts.map +1 -1
- package/dist/no-test-run.js +114 -3
- package/dist/schemas.js +2 -2
- package/dist/tools.d.ts.map +1 -1
- package/dist/tools.js +192 -78
- package/dist/trace-artifacts.d.ts +55 -0
- package/dist/trace-artifacts.d.ts.map +1 -1
- package/dist/trace-artifacts.js +259 -9
- package/dist/types.d.ts +10 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/utilities.d.ts +34 -0
- package/dist/utilities.d.ts.map +1 -1
- package/dist/utilities.js +56 -0
- package/package.json +1 -1
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* An inline interpreter program (`python3 -c`, `python3 - <<EOF`, `node -e`) that only touches local
|
|
3
|
+
* files — work that takes milliseconds or never ends, never minutes of honest progress.
|
|
4
|
+
*
|
|
5
|
+
* xr-molecule-flash-m200 (+03:45, 2026-10-19) spent 291 s of a 60-minute cap on
|
|
6
|
+
* `python3 - <<'EOF' … re.findall(r'([^{}]*:before[^{}]*)\{content:"[^"]*"\}', s) … EOF` rewriting a
|
|
7
|
+
* minified CSS file whose first rule is one ~25 KB selector list: the pattern's two unbounded
|
|
8
|
+
* `[^{}]*` around a literal backtrack cubically, printed nothing, and was stopped by the tool's
|
|
9
|
+
* full 290 s budget. The step was also unnecessary. Nothing in the tool distinguished that program
|
|
10
|
+
* — a local text transform that either finishes at once or is stuck — from a build that is genuinely
|
|
11
|
+
* slow, so it was given a build's budget and a build's advice ("run it in the background"), which
|
|
12
|
+
* only turns a hang into a longer hang.
|
|
13
|
+
*
|
|
14
|
+
* So an inline interpreter program with no network, install, test-runner, build or server verb gets
|
|
15
|
+
* a short budget ({@link INLINE_SCRIPT_BUDGET_MS}), and a cut says what happened: a runaway
|
|
16
|
+
* transform, not slow work ({@link inlineScriptRunawaySentence}).
|
|
17
|
+
*
|
|
18
|
+
* @module
|
|
19
|
+
*/
|
|
20
|
+
/**
|
|
21
|
+
* How long an inline interpreter program that only reads and writes local files may run.
|
|
22
|
+
*
|
|
23
|
+
* Such work finishes in milliseconds; if it has not finished in twenty seconds it never will
|
|
24
|
+
* (a backtracking regex on a large file, a loop waiting on something that is not coming), so this
|
|
25
|
+
* is a runaway detector, not a performance budget.
|
|
26
|
+
*/
|
|
27
|
+
export declare const INLINE_SCRIPT_BUDGET_MS = 20000;
|
|
28
|
+
/**
|
|
29
|
+
* The interpreter of an INLINE program that only reads and writes local files — the shape that gets
|
|
30
|
+
* {@link INLINE_SCRIPT_BUDGET_MS} instead of the tool's command budget.
|
|
31
|
+
*
|
|
32
|
+
* An inline program with any external effect keeps the full budget: no network, install, test
|
|
33
|
+
* runner, build or server verb may appear anywhere in the command ({@link EXTERNAL_EFFECT}), and
|
|
34
|
+
* the command must not be a suite run or a foreground server (the platform's own classifiers).
|
|
35
|
+
*
|
|
36
|
+
* @param command - The command as the executor sent it.
|
|
37
|
+
* @returns The interpreter's name (`python3`, `node`, …), or null when this is not the shape.
|
|
38
|
+
*/
|
|
39
|
+
export declare function inlineLocalScriptCommand(command: string): string | null;
|
|
40
|
+
/**
|
|
41
|
+
* What a cut inline program's result says instead of the background advice: the work never was
|
|
42
|
+
* slow, it is stuck, and re-running it — here or in the background — cannot help.
|
|
43
|
+
*
|
|
44
|
+
* @param interpreter - The interpreter the program ran under (`python3`, `node`, …).
|
|
45
|
+
* @param seconds - The short budget it was stopped at, in seconds.
|
|
46
|
+
* @returns The sentence the result carries.
|
|
47
|
+
*/
|
|
48
|
+
export declare function inlineScriptRunawaySentence(interpreter: string, seconds: number): string;
|
|
49
|
+
//# sourceMappingURL=inline-script.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"inline-script.d.ts","sourceRoot":"","sources":["../src/inline-script.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAMH;;;;;;GAMG;AACH,eAAO,MAAM,uBAAuB,QAAS,CAAA;AAsD7C;;;;;;;;;;GAUG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CASvE;AAED;;;;;;;GAOG;AACH,wBAAgB,2BAA2B,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAOxF"}
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* An inline interpreter program (`python3 -c`, `python3 - <<EOF`, `node -e`) that only touches local
|
|
3
|
+
* files — work that takes milliseconds or never ends, never minutes of honest progress.
|
|
4
|
+
*
|
|
5
|
+
* xr-molecule-flash-m200 (+03:45, 2026-10-19) spent 291 s of a 60-minute cap on
|
|
6
|
+
* `python3 - <<'EOF' … re.findall(r'([^{}]*:before[^{}]*)\{content:"[^"]*"\}', s) … EOF` rewriting a
|
|
7
|
+
* minified CSS file whose first rule is one ~25 KB selector list: the pattern's two unbounded
|
|
8
|
+
* `[^{}]*` around a literal backtrack cubically, printed nothing, and was stopped by the tool's
|
|
9
|
+
* full 290 s budget. The step was also unnecessary. Nothing in the tool distinguished that program
|
|
10
|
+
* — a local text transform that either finishes at once or is stuck — from a build that is genuinely
|
|
11
|
+
* slow, so it was given a build's budget and a build's advice ("run it in the background"), which
|
|
12
|
+
* only turns a hang into a longer hang.
|
|
13
|
+
*
|
|
14
|
+
* So an inline interpreter program with no network, install, test-runner, build or server verb gets
|
|
15
|
+
* a short budget ({@link INLINE_SCRIPT_BUDGET_MS}), and a cut says what happened: a runaway
|
|
16
|
+
* transform, not slow work ({@link inlineScriptRunawaySentence}).
|
|
17
|
+
*
|
|
18
|
+
* @module
|
|
19
|
+
*/
|
|
20
|
+
import { commandSegments } from './command-position.js';
|
|
21
|
+
import { startsServerProgram } from './server-command.js';
|
|
22
|
+
import { isSuiteRunCommand } from './utilities.js';
|
|
23
|
+
/**
|
|
24
|
+
* How long an inline interpreter program that only reads and writes local files may run.
|
|
25
|
+
*
|
|
26
|
+
* Such work finishes in milliseconds; if it has not finished in twenty seconds it never will
|
|
27
|
+
* (a backtracking regex on a large file, a loop waiting on something that is not coming), so this
|
|
28
|
+
* is a runaway detector, not a performance budget.
|
|
29
|
+
*/
|
|
30
|
+
export const INLINE_SCRIPT_BUDGET_MS = 20_000;
|
|
31
|
+
/** The interpreters a model writes an inline program in. */
|
|
32
|
+
const INLINE_INTERPRETERS = new Set([
|
|
33
|
+
'python',
|
|
34
|
+
'node',
|
|
35
|
+
'nodejs',
|
|
36
|
+
'perl',
|
|
37
|
+
'ruby',
|
|
38
|
+
'php',
|
|
39
|
+
]);
|
|
40
|
+
/** `python3`, `python3.12`, `python` — every spelling of the same interpreter in command position. */
|
|
41
|
+
const PYTHON = /^python(?:3(?:\.\d+)?)?$/;
|
|
42
|
+
/**
|
|
43
|
+
* A flag that makes the interpreter read its PROGRAM from the command line (or stdin) instead of a
|
|
44
|
+
* script file: `-c`, `-e`, `--eval`, `--print`.
|
|
45
|
+
*/
|
|
46
|
+
const INLINE_FLAG = /^(?:-[A-Za-z]*[ce]|--(?:eval|print)(?:=|$))/;
|
|
47
|
+
/** A heredoc operator whose delimiter follows it: `<<'EOF'`, `<<EOF`, `<<-EOF`. Not a here-string. */
|
|
48
|
+
const HEREDOC = /^<<-?\s*['"]?[A-Za-z_]/;
|
|
49
|
+
/**
|
|
50
|
+
* Effects that make an inline program something OTHER than a local text transform, so it keeps the
|
|
51
|
+
* tool's full budget: the network, an install, a test runner, a build, a container. Matched against
|
|
52
|
+
* the whole command, heredoc body included — a `urllib` import inside the program is exactly the
|
|
53
|
+
* case this list exists for.
|
|
54
|
+
*
|
|
55
|
+
* Every listed word is a false NEGATIVE when it appears in a comment or a string (the program keeps
|
|
56
|
+
* the long budget and the old advice). That is the safe direction: this list must never shrink the
|
|
57
|
+
* budget of a command that reaches outside the box.
|
|
58
|
+
*/
|
|
59
|
+
const EXTERNAL_EFFECT = /\b(?:curl|wget|aria2c|rsync|scp|sftp|ftp|ssh|urllib3?|httpx|aiohttp|axios|requests|fetch|XMLHttpRequest|socket|net\.connect|https?:\/\/|npm|npx|pnpm|yarn|bun|pip3?|conda|cargo|gem|composer|playwright|vitest|jest|hurl|vite|tsc|webpack|esbuild|rollup|docker|cmake|gradle|mvn|make|subprocess|Popen|child_process|execSync|spawnSync|git|psql|mysql|mongosh?|redis-cli|sqlite3)\b|\bos\.system\b|\b(?:http\.server|flask|fastapi|uvicorn|gunicorn)\b/i;
|
|
60
|
+
/**
|
|
61
|
+
* Whether one parsed statement runs an interpreter program written inline.
|
|
62
|
+
*
|
|
63
|
+
* The heredoc body is already blanked by the parser, so `python3 - <<'EOF'` reads as the program
|
|
64
|
+
* `python3` with the arguments `-` and `<<'EOF'` — the two shapes a program on stdin is written in.
|
|
65
|
+
*
|
|
66
|
+
* @param segment - One statement of the command.
|
|
67
|
+
* @returns The interpreter's name when the statement is an inline program, otherwise null.
|
|
68
|
+
*/
|
|
69
|
+
function inlineProgram(segment) {
|
|
70
|
+
const name = segment.program.replace(/^.*\//, '');
|
|
71
|
+
if (!PYTHON.test(name) && !INLINE_INTERPRETERS.has(name))
|
|
72
|
+
return null;
|
|
73
|
+
const args = segment.args.map((arg) => arg.replace(/^(["'])(.*)\1$/, '$2'));
|
|
74
|
+
const inline = args.some((arg) => arg === '-' || HEREDOC.test(arg) || INLINE_FLAG.test(arg));
|
|
75
|
+
return inline ? name : null;
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* The interpreter of an INLINE program that only reads and writes local files — the shape that gets
|
|
79
|
+
* {@link INLINE_SCRIPT_BUDGET_MS} instead of the tool's command budget.
|
|
80
|
+
*
|
|
81
|
+
* An inline program with any external effect keeps the full budget: no network, install, test
|
|
82
|
+
* runner, build or server verb may appear anywhere in the command ({@link EXTERNAL_EFFECT}), and
|
|
83
|
+
* the command must not be a suite run or a foreground server (the platform's own classifiers).
|
|
84
|
+
*
|
|
85
|
+
* @param command - The command as the executor sent it.
|
|
86
|
+
* @returns The interpreter's name (`python3`, `node`, …), or null when this is not the shape.
|
|
87
|
+
*/
|
|
88
|
+
export function inlineLocalScriptCommand(command) {
|
|
89
|
+
if (typeof command !== 'string' || !command.trim())
|
|
90
|
+
return null;
|
|
91
|
+
if (EXTERNAL_EFFECT.test(command))
|
|
92
|
+
return null;
|
|
93
|
+
if (isSuiteRunCommand(command) || startsServerProgram(command))
|
|
94
|
+
return null;
|
|
95
|
+
for (const segment of commandSegments(command)) {
|
|
96
|
+
const interpreter = inlineProgram(segment);
|
|
97
|
+
if (interpreter !== null)
|
|
98
|
+
return interpreter;
|
|
99
|
+
}
|
|
100
|
+
return null;
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* What a cut inline program's result says instead of the background advice: the work never was
|
|
104
|
+
* slow, it is stuck, and re-running it — here or in the background — cannot help.
|
|
105
|
+
*
|
|
106
|
+
* @param interpreter - The interpreter the program ran under (`python3`, `node`, …).
|
|
107
|
+
* @param seconds - The short budget it was stopped at, in seconds.
|
|
108
|
+
* @returns The sentence the result carries.
|
|
109
|
+
*/
|
|
110
|
+
export function inlineScriptRunawaySentence(interpreter, seconds) {
|
|
111
|
+
return (`${interpreter} ran ${seconds} s without finishing on a local text transform — that is a ` +
|
|
112
|
+
'runaway (e.g. regex backtracking on a large file), not slow work; do not move it to the ' +
|
|
113
|
+
'background. Rewrite the transform (a non-backtracking pattern, or a plain string split), ' +
|
|
114
|
+
'or check whether the step is needed at all.');
|
|
115
|
+
}
|
package/dist/no-test-run.d.ts
CHANGED
|
@@ -49,7 +49,9 @@
|
|
|
49
49
|
*
|
|
50
50
|
* A command that also runs tests is false however it is spelled: `npx playwright install &&
|
|
51
51
|
* npx playwright test` installs and runs, so a caller that sees `playwright test` in it is
|
|
52
|
-
* reading a real run.
|
|
52
|
+
* reading a real run. So is a command carrying a segment this reader cannot place (a script it
|
|
53
|
+
* does not know, which may start a suite): only the runners and the {@link NO_TEST_PROGRAMS}
|
|
54
|
+
* table can be accounted for, and "only prints" is a claim about the WHOLE command.
|
|
53
55
|
*
|
|
54
56
|
* @param command - The shell command as the executor sent it.
|
|
55
57
|
* @returns True when the command invokes a runner only to print.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"no-test-run.d.ts","sourceRoot":"","sources":["../src/no-test-run.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;
|
|
1
|
+
{"version":3,"file":"no-test-run.d.ts","sourceRoot":"","sources":["../src/no-test-run.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AAiLH;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAiB3D"}
|
package/dist/no-test-run.js
CHANGED
|
@@ -75,6 +75,108 @@ const NO_RUN_FLAGS = {
|
|
|
75
75
|
],
|
|
76
76
|
hurl: [/(?:^|\s)--help(?=\s|$)/, /(?:^|\s)-h(?=\s|$)/, /(?:^|\s)--version(?=\s|$)/],
|
|
77
77
|
};
|
|
78
|
+
/**
|
|
79
|
+
* The programs that start no test — the shell's own bookkeeping (`cd`, `export`, `echo`), and the
|
|
80
|
+
* readers, printers and file commands an executor uses to look at what is already there (`cat`,
|
|
81
|
+
* `ls`, `cp`, `tail`, …).
|
|
82
|
+
*
|
|
83
|
+
* A segment whose program is neither a runner nor one of these is a program this reader cannot
|
|
84
|
+
* account for: the suite's own script (`./run-api-tests-hurl.sh`), a wrapper the executor wrote,
|
|
85
|
+
* anything that may itself start a suite. {@link commandRunsNoTests} answers false for a command
|
|
86
|
+
* carrying one — "every invocation only prints" is not a claim an unknown step can support.
|
|
87
|
+
* X1 xr-molecule-flash-m197 (+05:18) sent
|
|
88
|
+
* `hurl --version | head -2 && HOST=http://localhost:4000 ./run-api-tests-hurl.sh 2>&1 | tail -60`,
|
|
89
|
+
* the suite passed 13/13, and the supplied script was the one segment nobody could place: the
|
|
90
|
+
* whole command read as a version probe, so every "has the suite run?" reader said no for the
|
|
91
|
+
* rest of the run and the early deploy was held to the end of the list.
|
|
92
|
+
*/
|
|
93
|
+
const NO_TEST_PROGRAMS = new Set([
|
|
94
|
+
'[',
|
|
95
|
+
'[[',
|
|
96
|
+
':',
|
|
97
|
+
'awk',
|
|
98
|
+
'base64',
|
|
99
|
+
'basename',
|
|
100
|
+
'case',
|
|
101
|
+
'cat',
|
|
102
|
+
'cd',
|
|
103
|
+
'chmod',
|
|
104
|
+
'chown',
|
|
105
|
+
'column',
|
|
106
|
+
'comm',
|
|
107
|
+
'cp',
|
|
108
|
+
'cut',
|
|
109
|
+
'date',
|
|
110
|
+
'df',
|
|
111
|
+
'diff',
|
|
112
|
+
'dirname',
|
|
113
|
+
'do',
|
|
114
|
+
'done',
|
|
115
|
+
'du',
|
|
116
|
+
'echo',
|
|
117
|
+
'egrep',
|
|
118
|
+
'else',
|
|
119
|
+
'env',
|
|
120
|
+
'esac',
|
|
121
|
+
'export',
|
|
122
|
+
'expr',
|
|
123
|
+
'false',
|
|
124
|
+
'fgrep',
|
|
125
|
+
'fi',
|
|
126
|
+
'file',
|
|
127
|
+
'fold',
|
|
128
|
+
'for',
|
|
129
|
+
'grep',
|
|
130
|
+
'head',
|
|
131
|
+
'hostname',
|
|
132
|
+
'id',
|
|
133
|
+
'if',
|
|
134
|
+
'jq',
|
|
135
|
+
'kill',
|
|
136
|
+
'less',
|
|
137
|
+
'ln',
|
|
138
|
+
'ls',
|
|
139
|
+
'md5sum',
|
|
140
|
+
'mkdir',
|
|
141
|
+
'mktemp',
|
|
142
|
+
'more',
|
|
143
|
+
'mv',
|
|
144
|
+
'nl',
|
|
145
|
+
'od',
|
|
146
|
+
'paste',
|
|
147
|
+
'printf',
|
|
148
|
+
'pwd',
|
|
149
|
+
'readlink',
|
|
150
|
+
'realpath',
|
|
151
|
+
'rev',
|
|
152
|
+
'rm',
|
|
153
|
+
'rmdir',
|
|
154
|
+
'seq',
|
|
155
|
+
'set',
|
|
156
|
+
'sha256sum',
|
|
157
|
+
'sleep',
|
|
158
|
+
'sort',
|
|
159
|
+
'stat',
|
|
160
|
+
'tac',
|
|
161
|
+
'tail',
|
|
162
|
+
'tee',
|
|
163
|
+
'test',
|
|
164
|
+
'then',
|
|
165
|
+
'touch',
|
|
166
|
+
'tr',
|
|
167
|
+
'true',
|
|
168
|
+
'type',
|
|
169
|
+
'uname',
|
|
170
|
+
'uniq',
|
|
171
|
+
'unset',
|
|
172
|
+
'until',
|
|
173
|
+
'wait',
|
|
174
|
+
'wc',
|
|
175
|
+
'which',
|
|
176
|
+
'while',
|
|
177
|
+
'whoami',
|
|
178
|
+
'xxd',
|
|
179
|
+
]);
|
|
78
180
|
/**
|
|
79
181
|
* A heredoc body is data a command writes, not what it runs: a `playwright test --list` inside
|
|
80
182
|
* the config a command writes is not a run of this command either way. The pattern consumes the
|
|
@@ -113,7 +215,9 @@ function informational(runner, after) {
|
|
|
113
215
|
*
|
|
114
216
|
* A command that also runs tests is false however it is spelled: `npx playwright install &&
|
|
115
217
|
* npx playwright test` installs and runs, so a caller that sees `playwright test` in it is
|
|
116
|
-
* reading a real run.
|
|
218
|
+
* reading a real run. So is a command carrying a segment this reader cannot place (a script it
|
|
219
|
+
* does not know, which may start a suite): only the runners and the {@link NO_TEST_PROGRAMS}
|
|
220
|
+
* table can be accounted for, and "only prints" is a claim about the WHOLE command.
|
|
117
221
|
*
|
|
118
222
|
* @param command - The shell command as the executor sent it.
|
|
119
223
|
* @returns True when the command invokes a runner only to print.
|
|
@@ -123,9 +227,16 @@ export function commandRunsNoTests(command) {
|
|
|
123
227
|
return false;
|
|
124
228
|
let invocations = 0;
|
|
125
229
|
for (const segment of commandSegments(command.replace(HEREDOC, ' '))) {
|
|
126
|
-
|
|
127
|
-
|
|
230
|
+
// An own key only: `constructor` is a program name (`constructor --version`) and a
|
|
231
|
+
// prototype key is not a runner.
|
|
232
|
+
const runner = Object.hasOwn(RUNNERS, segment.program) ? RUNNERS[segment.program] : undefined;
|
|
233
|
+
if (runner === undefined) {
|
|
234
|
+
// A program this reader cannot place may start a suite of its own; only a known
|
|
235
|
+
// non-test program lets the command keep reading as "prints only".
|
|
236
|
+
if (!NO_TEST_PROGRAMS.has(segment.program))
|
|
237
|
+
return false;
|
|
128
238
|
continue;
|
|
239
|
+
}
|
|
129
240
|
invocations += 1;
|
|
130
241
|
if (!informational(runner, segment.args.join(' ')))
|
|
131
242
|
return false;
|
package/dist/schemas.js
CHANGED
|
@@ -147,13 +147,13 @@ export const TOOL_SCHEMAS = {
|
|
|
147
147
|
},
|
|
148
148
|
find_files: {
|
|
149
149
|
name: 'find_files',
|
|
150
|
-
description: "Find files by name or glob pattern recursively. Excludes node_modules and .git. Use for discovering files by name (e.g. '*.tsx', 'Dashboard*', 'index.*'). A pattern containing '/' matches the path instead: 'e2e/*.spec.ts', 'src/**/App.tsx', '**/SELECTORS.md'.",
|
|
150
|
+
description: "Find files by name or glob pattern recursively. Excludes node_modules and .git. Use for discovering files by name (e.g. '*.tsx', 'Dashboard*', 'index.*'). A pattern containing '/' matches the path instead: 'e2e/*.spec.ts', 'src/**/App.tsx', '**/SELECTORS.md'. Several extensions go in one brace group: '*.{ts,tsx}'.",
|
|
151
151
|
parameters: {
|
|
152
152
|
type: 'object',
|
|
153
153
|
properties: {
|
|
154
154
|
pattern: {
|
|
155
155
|
type: 'string',
|
|
156
|
-
description: "File name or glob pattern (e.g. '*.tsx', 'Dashboard*'). A pattern containing '/' is matched against the file's path, so 'src/**/App.tsx' and 'e2e/*.spec.ts' work.",
|
|
156
|
+
description: "File name or glob pattern (e.g. '*.tsx', 'Dashboard*'). A pattern containing '/' is matched against the file's path, so 'src/**/App.tsx' and 'e2e/*.spec.ts' work. Several extensions go in one brace group of comma-separated alternatives: '*.{ts,tsx,yml}' (up to 16).",
|
|
157
157
|
},
|
|
158
158
|
path: {
|
|
159
159
|
type: 'string',
|
package/dist/tools.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAA;
|
|
1
|
+
{"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAA;AA8N9C;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAsB,eAAe,CAAC,OAAO,EAAE,gBAAgB,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAahG;AAkaD,OAAO,KAAK,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AA8HnE;;;GAGG;AACH,eAAO,MAAM,iBAAiB,QAEA,CAAA;AAE9B;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,wBAAwB,QAI6C,CAAA;AA2DlF;;;;;;;;;;;GAWG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAUhE;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,WAAW,qBAAqB;IACpC,iFAAiF;IACjF,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAA;IACzB,8FAA8F;IAC9F,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAA;CAC5B;AAED;;;;;;;GAOG;AACH,MAAM,MAAM,qBAAqB,GAAG,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,qBAAqB,CAAC,CAAA;AAoBpF;;;;;;;GAOG;AACH,wBAAgB,0BAA0B,CACxC,GAAG,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC;IAAE,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,GAAG,SAAS,CAAC,GACxE,qBAAqB,CAkBvB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AACH,wBAAsB,4BAA4B,CAChD,IAAI,EAAE,MAAM,EACZ,KAAK,CAAC,EAAE,qBAAqB,GAC5B,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAiCxB;AA2GD;;;;;;GAMG;AACH,wBAAgB,UAAU,CAAC,OAAO,EAAE,gBAAgB,EAAE,MAAM,CAAC,EAAE,eAAe,GAAG,MAAM,EAAE,CA40FxF"}
|