@rcrsr/claude-code-runner 0.4.0 → 0.5.0
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 +103 -30
- package/dist/cli/args.d.ts +0 -3
- package/dist/cli/args.d.ts.map +1 -1
- package/dist/cli/args.js +51 -20
- package/dist/cli/args.js.map +1 -1
- package/dist/core/runner.d.ts +5 -2
- package/dist/core/runner.d.ts.map +1 -1
- package/dist/core/runner.js +27 -24
- package/dist/core/runner.js.map +1 -1
- package/dist/index.js +83 -41
- package/dist/index.js.map +1 -1
- package/dist/output/colors.d.ts +5 -11
- package/dist/output/colors.d.ts.map +1 -1
- package/dist/output/colors.js +7 -59
- package/dist/output/colors.js.map +1 -1
- package/dist/output/deaddrop-queue.d.ts +45 -0
- package/dist/output/deaddrop-queue.d.ts.map +1 -0
- package/dist/output/deaddrop-queue.js +82 -0
- package/dist/output/deaddrop-queue.js.map +1 -0
- package/dist/output/formatter.d.ts +4 -0
- package/dist/output/formatter.d.ts.map +1 -1
- package/dist/output/formatter.js +20 -17
- package/dist/output/formatter.js.map +1 -1
- package/dist/process/pty.d.ts.map +1 -1
- package/dist/process/pty.js +3 -2
- package/dist/process/pty.js.map +1 -1
- package/dist/script/index.d.ts +8 -0
- package/dist/script/index.d.ts.map +1 -0
- package/dist/script/index.js +10 -0
- package/dist/script/index.js.map +1 -0
- package/dist/script/loader.d.ts +13 -0
- package/dist/script/loader.d.ts.map +1 -0
- package/dist/script/loader.js +66 -0
- package/dist/script/loader.js.map +1 -0
- package/dist/script/parser.d.ts +63 -0
- package/dist/script/parser.d.ts.map +1 -0
- package/dist/script/parser.js +349 -0
- package/dist/script/parser.js.map +1 -0
- package/dist/script/types.d.ts +49 -0
- package/dist/script/types.d.ts.map +1 -0
- package/dist/script/types.js +5 -0
- package/dist/script/types.js.map +1 -0
- package/dist/script/variables.d.ts +27 -0
- package/dist/script/variables.d.ts.map +1 -0
- package/dist/script/variables.js +74 -0
- package/dist/script/variables.js.map +1 -0
- package/dist/templates/command.d.ts +18 -20
- package/dist/templates/command.d.ts.map +1 -1
- package/dist/templates/command.js +40 -61
- package/dist/templates/command.js.map +1 -1
- package/dist/types/index.d.ts +1 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js +1 -0
- package/dist/types/index.js.map +1 -1
- package/dist/types/runner.d.ts +12 -0
- package/dist/types/runner.d.ts.map +1 -1
- package/dist/types/runner.js +4 -3
- package/dist/types/runner.js.map +1 -1
- package/dist/types/tools.d.ts +64 -0
- package/dist/types/tools.d.ts.map +1 -0
- package/dist/types/tools.js +12 -0
- package/dist/types/tools.js.map +1 -0
- package/dist/utils/arguments.d.ts +19 -0
- package/dist/utils/arguments.d.ts.map +1 -0
- package/dist/utils/arguments.js +31 -0
- package/dist/utils/arguments.js.map +1 -0
- package/dist/utils/constants.d.ts +49 -0
- package/dist/utils/constants.d.ts.map +1 -0
- package/dist/utils/constants.js +54 -0
- package/dist/utils/constants.js.map +1 -0
- package/dist/utils/formatting.d.ts +10 -0
- package/dist/utils/formatting.d.ts.map +1 -0
- package/dist/utils/formatting.js +19 -0
- package/dist/utils/formatting.js.map +1 -0
- package/dist/utils/index.d.ts +7 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +7 -0
- package/dist/utils/index.js.map +1 -0
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"formatter.js","sourceRoot":"","sources":["../../src/output/formatter.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAEL,kBAAkB,EAClB,eAAe,EACf,mBAAmB,EACnB,WAAW,EACX,iBAAiB,EACjB,cAAc,EACd,aAAa,GAEd,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAEL,cAAc,GAGf,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,MAAM,EACN,cAAc,EACd,WAAW,EACX,WAAW,EACX,WAAW,EACX,eAAe,EACf,QAAQ,GACT,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"formatter.js","sourceRoot":"","sources":["../../src/output/formatter.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pty.d.ts","sourceRoot":"","sources":["../../src/process/pty.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAM7D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAElD,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"pty.d.ts","sourceRoot":"","sources":["../../src/process/pty.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAM7D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAElD,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAG/D,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,SAAS,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,EAAE,cAAc,CAAC;IAC/B,mBAAmB,EAAE,MAAM,CAAC;IAC5B,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,SAAS,CAAC,CA8D7E"}
|
package/dist/process/pty.js
CHANGED
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
import * as pty from 'node-pty';
|
|
5
5
|
import { flushPendingTools, formatMessage, resetFormatterState, } from '../output/formatter.js';
|
|
6
6
|
import { createStreamParser } from '../parsers/stream.js';
|
|
7
|
+
import { PTY_COLS, PTY_ROWS } from '../utils/constants.js';
|
|
7
8
|
/**
|
|
8
9
|
* Spawn Claude CLI process with PTY
|
|
9
10
|
*/
|
|
@@ -28,8 +29,8 @@ export function spawnClaude(options) {
|
|
|
28
29
|
}
|
|
29
30
|
const ptyProcess = pty.spawn('claude', args, {
|
|
30
31
|
name: 'xterm-256color',
|
|
31
|
-
cols:
|
|
32
|
-
rows:
|
|
32
|
+
cols: PTY_COLS,
|
|
33
|
+
rows: PTY_ROWS,
|
|
33
34
|
cwd,
|
|
34
35
|
env: { ...process.env },
|
|
35
36
|
});
|
package/dist/process/pty.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pty.js","sourceRoot":"","sources":["../../src/process/pty.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,GAAG,MAAM,UAAU,CAAC;AAGhC,OAAO,EACL,iBAAiB,EACjB,aAAa,EACb,mBAAmB,GACpB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"pty.js","sourceRoot":"","sources":["../../src/process/pty.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,GAAG,MAAM,UAAU,CAAC;AAGhC,OAAO,EACL,iBAAiB,EACjB,aAAa,EACb,mBAAmB,GACpB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE1D,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAY3D;;GAEG;AACH,MAAM,UAAU,WAAW,CAAC,OAA6B;IACvD,MAAM,EACJ,MAAM,EACN,GAAG,EACH,SAAS,EACT,MAAM,EACN,cAAc,EACd,mBAAmB,EACnB,KAAK,GACN,GAAG,OAAO,CAAC;IAEZ,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,0BAA0B;QAC1B,mBAAmB,CAAC,cAAc,CAAC,CAAC;QAEpC,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC5B,IAAI,UAAU,GAAG,EAAE,CAAC;QACpB,MAAM,MAAM,GAAG,kBAAkB,EAAE,CAAC;QAEpC,MAAM,IAAI,GAAG;YACX,IAAI;YACJ,MAAM;YACN,gCAAgC;YAChC,WAAW;YACX,iBAAiB;YACjB,aAAa;SACd,CAAC;QAEF,IAAI,KAAK,EAAE,CAAC;YACV,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;QAC9B,CAAC;QAED,MAAM,UAAU,GAAS,GAAG,CAAC,KAAK,CAAC,QAAQ,EAAE,IAAI,EAAE;YACjD,IAAI,EAAE,gBAAgB;YACtB,IAAI,EAAE,QAAQ;YACd,IAAI,EAAE,QAAQ;YACd,GAAG;YACH,GAAG,EAAE,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE;SACxB,CAAC,CAAC;QAEH,UAAU,CAAC,MAAM,CAAC,CAAC,IAAY,EAAE,EAAE;YACjC,MAAM,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAEtC,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;gBAC3B,MAAM,IAAI,GAAG,aAAa,CACxB,GAAG,EACH,cAAc,EACd,SAAS,EACT,MAAM,EACN,mBAAmB,CACpB,CAAC;gBACF,UAAU,IAAI,IAAI,CAAC;gBACnB,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;YAClC,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,UAAU,CAAC,MAAM,CAAC,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE;YACjC,iBAAiB,CAAC,cAAc,EAAE,SAAS,CAAC,CAAC;YAC7C,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,QAAQ,CAAC,GAAG,IAAI,CAAC,CAAC;YAC5D,OAAO,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC,CAAC;QAC9C,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Script module - parsing, loading, and variable management
|
|
3
|
+
*/
|
|
4
|
+
export type { CommandLine, ParsedScript, PromptLine, ScriptFrontmatter, ScriptLine, VariableStore, } from './types.js';
|
|
5
|
+
export { loadScript } from './loader.js';
|
|
6
|
+
export { extractScriptLines, parseCommandLine, parsePromptLine, parseScriptLine, } from './parser.js';
|
|
7
|
+
export { captureOutput, createVariableStore, getCaptureLogMessage, getSubstitutionList, substituteVariables, } from './variables.js';
|
|
8
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/script/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,YAAY,EACV,WAAW,EACX,YAAY,EACZ,UAAU,EACV,iBAAiB,EACjB,UAAU,EACV,aAAa,GACd,MAAM,YAAY,CAAC;AAGpB,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAGzC,OAAO,EACL,kBAAkB,EAClB,gBAAgB,EAChB,eAAe,EACf,eAAe,GAChB,MAAM,aAAa,CAAC;AAGrB,OAAO,EACL,aAAa,EACb,mBAAmB,EACnB,oBAAoB,EACpB,mBAAmB,EACnB,mBAAmB,GACpB,MAAM,gBAAgB,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Script module - parsing, loading, and variable management
|
|
3
|
+
*/
|
|
4
|
+
// Loader
|
|
5
|
+
export { loadScript } from './loader.js';
|
|
6
|
+
// Parser (for direct use if needed)
|
|
7
|
+
export { extractScriptLines, parseCommandLine, parsePromptLine, parseScriptLine, } from './parser.js';
|
|
8
|
+
// Variables
|
|
9
|
+
export { captureOutput, createVariableStore, getCaptureLogMessage, getSubstitutionList, substituteVariables, } from './variables.js';
|
|
10
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/script/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAYH,SAAS;AACT,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,oCAAoC;AACpC,OAAO,EACL,kBAAkB,EAClB,gBAAgB,EAChB,eAAe,EACf,eAAe,GAChB,MAAM,aAAa,CAAC;AAErB,YAAY;AACZ,OAAO,EACL,aAAa,EACb,mBAAmB,EACnB,oBAAoB,EACpB,mBAAmB,EACnB,mBAAmB,GACpB,MAAM,gBAAgB,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Script file loading with frontmatter and argument validation
|
|
3
|
+
*/
|
|
4
|
+
import type { ParsedScript } from './types.js';
|
|
5
|
+
/**
|
|
6
|
+
* Load and parse a script file
|
|
7
|
+
*
|
|
8
|
+
* @param scriptFile - Path to the script file
|
|
9
|
+
* @param scriptArgs - Arguments passed to the script (for validation only)
|
|
10
|
+
* @returns Parsed script with lines and frontmatter
|
|
11
|
+
*/
|
|
12
|
+
export declare function loadScript(scriptFile: string, scriptArgs?: string[]): ParsedScript;
|
|
13
|
+
//# sourceMappingURL=loader.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../../src/script/loader.ts"],"names":[],"mappings":"AAAA;;GAEG;AAOH,OAAO,KAAK,EAAE,YAAY,EAAiC,MAAM,YAAY,CAAC;AA+B9E;;;;;;GAMG;AACH,wBAAgB,UAAU,CACxB,UAAU,EAAE,MAAM,EAClB,UAAU,GAAE,MAAM,EAAO,GACxB,YAAY,CAmCd"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Script file loading with frontmatter and argument validation
|
|
3
|
+
*/
|
|
4
|
+
import * as fs from 'fs';
|
|
5
|
+
import { parseFrontmatter } from '../templates/command.js';
|
|
6
|
+
import { parseArgumentHint } from '../utils/arguments.js';
|
|
7
|
+
import { extractScriptLines, parseScriptLine } from './parser.js';
|
|
8
|
+
/**
|
|
9
|
+
* Validate script arguments against argument-hint
|
|
10
|
+
*/
|
|
11
|
+
function validateArguments(frontmatter, args) {
|
|
12
|
+
const { requiredCount, optionalPositions } = parseArgumentHint(frontmatter.argumentHint);
|
|
13
|
+
if (args.length < requiredCount) {
|
|
14
|
+
const missing = [];
|
|
15
|
+
for (let i = args.length + 1; i <= requiredCount; i++) {
|
|
16
|
+
if (!optionalPositions.has(i)) {
|
|
17
|
+
missing.push(`$${i}`);
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
if (missing.length > 0) {
|
|
21
|
+
const hint = frontmatter.argumentHint
|
|
22
|
+
? ` (usage: ${frontmatter.argumentHint})`
|
|
23
|
+
: '';
|
|
24
|
+
throw new Error(`Missing required arguments: ${missing.join(', ')}${hint}`);
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Load and parse a script file
|
|
30
|
+
*
|
|
31
|
+
* @param scriptFile - Path to the script file
|
|
32
|
+
* @param scriptArgs - Arguments passed to the script (for validation only)
|
|
33
|
+
* @returns Parsed script with lines and frontmatter
|
|
34
|
+
*/
|
|
35
|
+
export function loadScript(scriptFile, scriptArgs = []) {
|
|
36
|
+
if (!fs.existsSync(scriptFile)) {
|
|
37
|
+
throw new Error(`Script not found: ${scriptFile}`);
|
|
38
|
+
}
|
|
39
|
+
const content = fs.readFileSync(scriptFile, 'utf-8');
|
|
40
|
+
// Parse frontmatter (reuse from templates/command.ts)
|
|
41
|
+
const { frontmatter: rawFrontmatter, body } = parseFrontmatter(content);
|
|
42
|
+
// Convert to ScriptFrontmatter (handle exactOptionalPropertyTypes)
|
|
43
|
+
const frontmatter = {};
|
|
44
|
+
if (rawFrontmatter.model)
|
|
45
|
+
frontmatter.model = rawFrontmatter.model;
|
|
46
|
+
if (rawFrontmatter.description)
|
|
47
|
+
frontmatter.description = rawFrontmatter.description;
|
|
48
|
+
if (rawFrontmatter.argumentHint)
|
|
49
|
+
frontmatter.argumentHint = rawFrontmatter.argumentHint;
|
|
50
|
+
// Validate arguments
|
|
51
|
+
validateArguments(frontmatter, scriptArgs);
|
|
52
|
+
// Extract raw lines (handling heredocs)
|
|
53
|
+
const rawLines = extractScriptLines(body);
|
|
54
|
+
// Parse each line
|
|
55
|
+
const lines = rawLines.map((line, index) => {
|
|
56
|
+
try {
|
|
57
|
+
return parseScriptLine(line);
|
|
58
|
+
}
|
|
59
|
+
catch (error) {
|
|
60
|
+
const msg = error instanceof Error ? error.message : String(error);
|
|
61
|
+
throw new Error(`Script parse error on line ${index + 1}: ${msg}`);
|
|
62
|
+
}
|
|
63
|
+
});
|
|
64
|
+
return { lines, frontmatter };
|
|
65
|
+
}
|
|
66
|
+
//# sourceMappingURL=loader.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"loader.js","sourceRoot":"","sources":["../../src/script/loader.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Script line parser
|
|
3
|
+
*
|
|
4
|
+
* Parses the new script syntax:
|
|
5
|
+
* - prompt("text") -> $var
|
|
6
|
+
* - prompt(<<EOF ... EOF) -> $var
|
|
7
|
+
* - command("name", ["arg1", "arg2"]) -> $var
|
|
8
|
+
*/
|
|
9
|
+
import type { CommandLine, PromptLine, ScriptLine } from './types.js';
|
|
10
|
+
/**
|
|
11
|
+
* Parse a quoted string, handling escape sequences
|
|
12
|
+
* Returns the parsed string and the position after the closing quote
|
|
13
|
+
*/
|
|
14
|
+
export declare function parseQuotedString(input: string, startPos: number): {
|
|
15
|
+
value: string;
|
|
16
|
+
endPos: number;
|
|
17
|
+
};
|
|
18
|
+
/**
|
|
19
|
+
* Parse a heredoc block
|
|
20
|
+
* Input should start at << position
|
|
21
|
+
* Returns the content and position after the closing delimiter
|
|
22
|
+
*/
|
|
23
|
+
export declare function parseHeredoc(input: string, startPos: number): {
|
|
24
|
+
value: string;
|
|
25
|
+
endPos: number;
|
|
26
|
+
};
|
|
27
|
+
/**
|
|
28
|
+
* Parse an array of strings: ["arg1", "arg2"]
|
|
29
|
+
*/
|
|
30
|
+
export declare function parseStringArray(input: string, startPos: number): {
|
|
31
|
+
values: string[];
|
|
32
|
+
endPos: number;
|
|
33
|
+
};
|
|
34
|
+
/**
|
|
35
|
+
* Parse capture syntax: -> $varname
|
|
36
|
+
* Returns variable name (without $) or undefined
|
|
37
|
+
*/
|
|
38
|
+
export declare function parseCapture(input: string, startPos: number): {
|
|
39
|
+
capture?: string;
|
|
40
|
+
endPos: number;
|
|
41
|
+
};
|
|
42
|
+
/**
|
|
43
|
+
* Parse a prompt line: prompt("text") or prompt(<<EOF...EOF)
|
|
44
|
+
*/
|
|
45
|
+
export declare function parsePromptLine(input: string): PromptLine;
|
|
46
|
+
/**
|
|
47
|
+
* Parse a command line: command("name") or command("name", ["args"])
|
|
48
|
+
*/
|
|
49
|
+
export declare function parseCommandLine(input: string): CommandLine;
|
|
50
|
+
/**
|
|
51
|
+
* Parse a single script line
|
|
52
|
+
*/
|
|
53
|
+
export declare function parseScriptLine(line: string): ScriptLine;
|
|
54
|
+
/**
|
|
55
|
+
* Check if a line is a comment or empty
|
|
56
|
+
*/
|
|
57
|
+
export declare function isCommentOrEmpty(line: string): boolean;
|
|
58
|
+
/**
|
|
59
|
+
* Parse script content into lines, handling multi-line heredocs
|
|
60
|
+
* Returns raw line strings (not parsed) for further processing
|
|
61
|
+
*/
|
|
62
|
+
export declare function extractScriptLines(content: string): string[];
|
|
63
|
+
//# sourceMappingURL=parser.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../../src/script/parser.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAOtE;;;GAGG;AACH,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,MAAM,GACf;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAyCnC;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAC1B,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,MAAM,GACf;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CA+CnC;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,MAAM,GACf;IAAE,MAAM,EAAE,MAAM,EAAE,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CA6CtC;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAC1B,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,MAAM,GACf;IAAE,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAiCtC;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,UAAU,CA6CzD;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,WAAW,CAsD3D;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,CAUxD;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAGtD;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,CAyD5D"}
|
|
@@ -0,0 +1,349 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Script line parser
|
|
3
|
+
*
|
|
4
|
+
* Parses the new script syntax:
|
|
5
|
+
* - prompt("text") -> $var
|
|
6
|
+
* - prompt(<<EOF ... EOF) -> $var
|
|
7
|
+
* - command("name", ["arg1", "arg2"]) -> $var
|
|
8
|
+
*/
|
|
9
|
+
/** Get character at position, or empty string if out of bounds */
|
|
10
|
+
function charAt(input, pos) {
|
|
11
|
+
return input[pos] ?? '';
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Parse a quoted string, handling escape sequences
|
|
15
|
+
* Returns the parsed string and the position after the closing quote
|
|
16
|
+
*/
|
|
17
|
+
export function parseQuotedString(input, startPos) {
|
|
18
|
+
if (charAt(input, startPos) !== '"') {
|
|
19
|
+
throw new Error(`Expected opening quote at position ${startPos}`);
|
|
20
|
+
}
|
|
21
|
+
let result = '';
|
|
22
|
+
let i = startPos + 1;
|
|
23
|
+
while (i < input.length) {
|
|
24
|
+
const char = charAt(input, i);
|
|
25
|
+
if (char === '\\' && i + 1 < input.length) {
|
|
26
|
+
// Escape sequence
|
|
27
|
+
const next = charAt(input, i + 1);
|
|
28
|
+
if (next === 'n') {
|
|
29
|
+
result += '\n';
|
|
30
|
+
i += 2;
|
|
31
|
+
}
|
|
32
|
+
else if (next === 't') {
|
|
33
|
+
result += '\t';
|
|
34
|
+
i += 2;
|
|
35
|
+
}
|
|
36
|
+
else if (next === '"') {
|
|
37
|
+
result += '"';
|
|
38
|
+
i += 2;
|
|
39
|
+
}
|
|
40
|
+
else if (next === '\\') {
|
|
41
|
+
result += '\\';
|
|
42
|
+
i += 2;
|
|
43
|
+
}
|
|
44
|
+
else {
|
|
45
|
+
// Unknown escape, keep as-is
|
|
46
|
+
result += char;
|
|
47
|
+
i++;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
else if (char === '"') {
|
|
51
|
+
// End of string
|
|
52
|
+
return { value: result, endPos: i + 1 };
|
|
53
|
+
}
|
|
54
|
+
else {
|
|
55
|
+
result += char;
|
|
56
|
+
i++;
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
throw new Error('Unterminated string: missing closing quote');
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Parse a heredoc block
|
|
63
|
+
* Input should start at << position
|
|
64
|
+
* Returns the content and position after the closing delimiter
|
|
65
|
+
*/
|
|
66
|
+
export function parseHeredoc(input, startPos) {
|
|
67
|
+
if (input.slice(startPos, startPos + 2) !== '<<') {
|
|
68
|
+
throw new Error(`Expected << at position ${startPos}`);
|
|
69
|
+
}
|
|
70
|
+
// Find delimiter (word after <<)
|
|
71
|
+
let delimStart = startPos + 2;
|
|
72
|
+
while (delimStart < input.length && charAt(input, delimStart) === ' ') {
|
|
73
|
+
delimStart++;
|
|
74
|
+
}
|
|
75
|
+
let delimEnd = delimStart;
|
|
76
|
+
while (delimEnd < input.length && /\w/.test(charAt(input, delimEnd))) {
|
|
77
|
+
delimEnd++;
|
|
78
|
+
}
|
|
79
|
+
if (delimEnd === delimStart) {
|
|
80
|
+
throw new Error('Heredoc requires a delimiter (e.g., <<EOF)');
|
|
81
|
+
}
|
|
82
|
+
const delimiter = input.slice(delimStart, delimEnd);
|
|
83
|
+
// Find the newline after delimiter
|
|
84
|
+
let contentStart = delimEnd;
|
|
85
|
+
while (contentStart < input.length && charAt(input, contentStart) !== '\n') {
|
|
86
|
+
contentStart++;
|
|
87
|
+
}
|
|
88
|
+
contentStart++; // Skip the newline
|
|
89
|
+
// Find closing delimiter (must be on its own line)
|
|
90
|
+
const closingPattern = new RegExp(`^${delimiter}\\s*$`, 'm');
|
|
91
|
+
const remaining = input.slice(contentStart);
|
|
92
|
+
const match = closingPattern.exec(remaining);
|
|
93
|
+
if (!match) {
|
|
94
|
+
throw new Error(`Heredoc missing closing delimiter: ${delimiter}`);
|
|
95
|
+
}
|
|
96
|
+
const content = remaining.slice(0, match.index);
|
|
97
|
+
// Remove trailing newline if present
|
|
98
|
+
const trimmedContent = content.endsWith('\n')
|
|
99
|
+
? content.slice(0, -1)
|
|
100
|
+
: content;
|
|
101
|
+
const endPos = contentStart + match.index + match[0].length;
|
|
102
|
+
return { value: trimmedContent, endPos };
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* Parse an array of strings: ["arg1", "arg2"]
|
|
106
|
+
*/
|
|
107
|
+
export function parseStringArray(input, startPos) {
|
|
108
|
+
if (charAt(input, startPos) !== '[') {
|
|
109
|
+
throw new Error(`Expected [ at position ${startPos}`);
|
|
110
|
+
}
|
|
111
|
+
const values = [];
|
|
112
|
+
let i = startPos + 1;
|
|
113
|
+
// Skip whitespace
|
|
114
|
+
while (i < input.length && /\s/.test(charAt(input, i)))
|
|
115
|
+
i++;
|
|
116
|
+
// Empty array
|
|
117
|
+
if (charAt(input, i) === ']') {
|
|
118
|
+
return { values: [], endPos: i + 1 };
|
|
119
|
+
}
|
|
120
|
+
while (i < input.length) {
|
|
121
|
+
// Skip whitespace
|
|
122
|
+
while (i < input.length && /\s/.test(charAt(input, i)))
|
|
123
|
+
i++;
|
|
124
|
+
if (charAt(input, i) === ']') {
|
|
125
|
+
return { values, endPos: i + 1 };
|
|
126
|
+
}
|
|
127
|
+
// Parse string element
|
|
128
|
+
if (charAt(input, i) !== '"') {
|
|
129
|
+
throw new Error(`Expected string in array at position ${i}`);
|
|
130
|
+
}
|
|
131
|
+
const { value, endPos } = parseQuotedString(input, i);
|
|
132
|
+
values.push(value);
|
|
133
|
+
i = endPos;
|
|
134
|
+
// Skip whitespace
|
|
135
|
+
while (i < input.length && /\s/.test(charAt(input, i)))
|
|
136
|
+
i++;
|
|
137
|
+
// Expect comma or closing bracket
|
|
138
|
+
if (charAt(input, i) === ',') {
|
|
139
|
+
i++;
|
|
140
|
+
}
|
|
141
|
+
else if (charAt(input, i) !== ']') {
|
|
142
|
+
throw new Error(`Expected , or ] at position ${i}`);
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
throw new Error('Unterminated array: missing ]');
|
|
146
|
+
}
|
|
147
|
+
/**
|
|
148
|
+
* Parse capture syntax: -> $varname
|
|
149
|
+
* Returns variable name (without $) or undefined
|
|
150
|
+
*/
|
|
151
|
+
export function parseCapture(input, startPos) {
|
|
152
|
+
let i = startPos;
|
|
153
|
+
// Skip whitespace
|
|
154
|
+
while (i < input.length && /\s/.test(charAt(input, i)))
|
|
155
|
+
i++;
|
|
156
|
+
// Check for ->
|
|
157
|
+
if (input.slice(i, i + 2) !== '->') {
|
|
158
|
+
return { endPos: i };
|
|
159
|
+
}
|
|
160
|
+
i += 2;
|
|
161
|
+
// Skip whitespace
|
|
162
|
+
while (i < input.length && /\s/.test(charAt(input, i)))
|
|
163
|
+
i++;
|
|
164
|
+
// Expect $
|
|
165
|
+
if (charAt(input, i) !== '$') {
|
|
166
|
+
throw new Error(`Expected $ after -> at position ${i}`);
|
|
167
|
+
}
|
|
168
|
+
i++;
|
|
169
|
+
// Parse variable name
|
|
170
|
+
let varName = '';
|
|
171
|
+
while (i < input.length && /\w/.test(charAt(input, i))) {
|
|
172
|
+
varName += charAt(input, i);
|
|
173
|
+
i++;
|
|
174
|
+
}
|
|
175
|
+
if (!varName) {
|
|
176
|
+
throw new Error('Variable name required after $');
|
|
177
|
+
}
|
|
178
|
+
return { capture: varName, endPos: i };
|
|
179
|
+
}
|
|
180
|
+
/**
|
|
181
|
+
* Parse a prompt line: prompt("text") or prompt(<<EOF...EOF)
|
|
182
|
+
*/
|
|
183
|
+
export function parsePromptLine(input) {
|
|
184
|
+
const trimmed = input.trim();
|
|
185
|
+
if (!trimmed.startsWith('prompt(')) {
|
|
186
|
+
throw new Error('Expected prompt(');
|
|
187
|
+
}
|
|
188
|
+
let pos = 7; // After 'prompt('
|
|
189
|
+
// Skip whitespace
|
|
190
|
+
while (pos < trimmed.length && /\s/.test(charAt(trimmed, pos)))
|
|
191
|
+
pos++;
|
|
192
|
+
let text;
|
|
193
|
+
let endPos;
|
|
194
|
+
if (charAt(trimmed, pos) === '"') {
|
|
195
|
+
// Quoted string
|
|
196
|
+
const result = parseQuotedString(trimmed, pos);
|
|
197
|
+
text = result.value;
|
|
198
|
+
endPos = result.endPos;
|
|
199
|
+
}
|
|
200
|
+
else if (trimmed.slice(pos, pos + 2) === '<<') {
|
|
201
|
+
// Heredoc
|
|
202
|
+
const result = parseHeredoc(trimmed, pos);
|
|
203
|
+
text = result.value;
|
|
204
|
+
endPos = result.endPos;
|
|
205
|
+
}
|
|
206
|
+
else {
|
|
207
|
+
throw new Error('Expected quoted string or heredoc after prompt(');
|
|
208
|
+
}
|
|
209
|
+
// Skip whitespace
|
|
210
|
+
while (endPos < trimmed.length && /\s/.test(charAt(trimmed, endPos)))
|
|
211
|
+
endPos++;
|
|
212
|
+
// Expect closing paren
|
|
213
|
+
if (charAt(trimmed, endPos) !== ')') {
|
|
214
|
+
throw new Error(`Expected ) at position ${endPos}`);
|
|
215
|
+
}
|
|
216
|
+
endPos++;
|
|
217
|
+
// Parse optional capture
|
|
218
|
+
const { capture } = parseCapture(trimmed, endPos);
|
|
219
|
+
const result = { type: 'prompt', text };
|
|
220
|
+
if (capture)
|
|
221
|
+
result.capture = capture;
|
|
222
|
+
return result;
|
|
223
|
+
}
|
|
224
|
+
/**
|
|
225
|
+
* Parse a command line: command("name") or command("name", ["args"])
|
|
226
|
+
*/
|
|
227
|
+
export function parseCommandLine(input) {
|
|
228
|
+
const trimmed = input.trim();
|
|
229
|
+
if (!trimmed.startsWith('command(')) {
|
|
230
|
+
throw new Error('Expected command(');
|
|
231
|
+
}
|
|
232
|
+
let pos = 8; // After 'command('
|
|
233
|
+
// Skip whitespace
|
|
234
|
+
while (pos < trimmed.length && /\s/.test(charAt(trimmed, pos)))
|
|
235
|
+
pos++;
|
|
236
|
+
// Parse command name
|
|
237
|
+
if (charAt(trimmed, pos) !== '"') {
|
|
238
|
+
throw new Error('Expected quoted command name');
|
|
239
|
+
}
|
|
240
|
+
const nameResult = parseQuotedString(trimmed, pos);
|
|
241
|
+
const name = nameResult.value;
|
|
242
|
+
pos = nameResult.endPos;
|
|
243
|
+
// Skip whitespace
|
|
244
|
+
while (pos < trimmed.length && /\s/.test(charAt(trimmed, pos)))
|
|
245
|
+
pos++;
|
|
246
|
+
let args = [];
|
|
247
|
+
// Check for comma (args follow)
|
|
248
|
+
if (charAt(trimmed, pos) === ',') {
|
|
249
|
+
pos++;
|
|
250
|
+
// Skip whitespace
|
|
251
|
+
while (pos < trimmed.length && /\s/.test(charAt(trimmed, pos)))
|
|
252
|
+
pos++;
|
|
253
|
+
// Parse args array
|
|
254
|
+
const argsResult = parseStringArray(trimmed, pos);
|
|
255
|
+
args = argsResult.values;
|
|
256
|
+
pos = argsResult.endPos;
|
|
257
|
+
}
|
|
258
|
+
// Skip whitespace
|
|
259
|
+
while (pos < trimmed.length && /\s/.test(charAt(trimmed, pos)))
|
|
260
|
+
pos++;
|
|
261
|
+
// Expect closing paren
|
|
262
|
+
if (charAt(trimmed, pos) !== ')') {
|
|
263
|
+
throw new Error(`Expected ) at position ${pos}`);
|
|
264
|
+
}
|
|
265
|
+
pos++;
|
|
266
|
+
// Parse optional capture
|
|
267
|
+
const { capture } = parseCapture(trimmed, pos);
|
|
268
|
+
const result = { type: 'command', name, args };
|
|
269
|
+
if (capture)
|
|
270
|
+
result.capture = capture;
|
|
271
|
+
return result;
|
|
272
|
+
}
|
|
273
|
+
/**
|
|
274
|
+
* Parse a single script line
|
|
275
|
+
*/
|
|
276
|
+
export function parseScriptLine(line) {
|
|
277
|
+
const trimmed = line.trim();
|
|
278
|
+
if (trimmed.startsWith('prompt(')) {
|
|
279
|
+
return parsePromptLine(trimmed);
|
|
280
|
+
}
|
|
281
|
+
else if (trimmed.startsWith('command(')) {
|
|
282
|
+
return parseCommandLine(trimmed);
|
|
283
|
+
}
|
|
284
|
+
else {
|
|
285
|
+
throw new Error(`Unknown script line type: ${trimmed.slice(0, 20)}...`);
|
|
286
|
+
}
|
|
287
|
+
}
|
|
288
|
+
/**
|
|
289
|
+
* Check if a line is a comment or empty
|
|
290
|
+
*/
|
|
291
|
+
export function isCommentOrEmpty(line) {
|
|
292
|
+
const trimmed = line.trim();
|
|
293
|
+
return trimmed === '' || trimmed.startsWith('#');
|
|
294
|
+
}
|
|
295
|
+
/**
|
|
296
|
+
* Parse script content into lines, handling multi-line heredocs
|
|
297
|
+
* Returns raw line strings (not parsed) for further processing
|
|
298
|
+
*/
|
|
299
|
+
export function extractScriptLines(content) {
|
|
300
|
+
const lines = [];
|
|
301
|
+
const contentLines = content.split('\n');
|
|
302
|
+
let i = 0;
|
|
303
|
+
while (i < contentLines.length) {
|
|
304
|
+
const line = contentLines[i] ?? '';
|
|
305
|
+
const trimmed = line.trim();
|
|
306
|
+
// Skip comments and empty lines
|
|
307
|
+
if (isCommentOrEmpty(trimmed)) {
|
|
308
|
+
i++;
|
|
309
|
+
continue;
|
|
310
|
+
}
|
|
311
|
+
// Check for heredoc
|
|
312
|
+
if (trimmed.includes('<<')) {
|
|
313
|
+
// Find the delimiter
|
|
314
|
+
const heredocMatch = /<<(\w+)/.exec(trimmed);
|
|
315
|
+
if (heredocMatch) {
|
|
316
|
+
const delimiter = heredocMatch[1];
|
|
317
|
+
let fullLine = line;
|
|
318
|
+
i++;
|
|
319
|
+
// Collect lines until we find the closing delimiter
|
|
320
|
+
while (i < contentLines.length) {
|
|
321
|
+
const nextLine = contentLines[i] ?? '';
|
|
322
|
+
fullLine += '\n' + nextLine;
|
|
323
|
+
if (nextLine.trim() === delimiter) {
|
|
324
|
+
i++;
|
|
325
|
+
// Also capture closing paren (and optional capture) if on next line(s)
|
|
326
|
+
if (i < contentLines.length) {
|
|
327
|
+
const parenLine = contentLines[i] ?? '';
|
|
328
|
+
const parenTrimmed = parenLine.trim();
|
|
329
|
+
// Match ) or ) -> $var
|
|
330
|
+
if (parenTrimmed === ')' || parenTrimmed.startsWith(') ->')) {
|
|
331
|
+
fullLine += '\n' + parenLine;
|
|
332
|
+
i++;
|
|
333
|
+
}
|
|
334
|
+
}
|
|
335
|
+
break;
|
|
336
|
+
}
|
|
337
|
+
i++;
|
|
338
|
+
}
|
|
339
|
+
lines.push(fullLine);
|
|
340
|
+
continue;
|
|
341
|
+
}
|
|
342
|
+
}
|
|
343
|
+
// Regular single line
|
|
344
|
+
lines.push(line);
|
|
345
|
+
i++;
|
|
346
|
+
}
|
|
347
|
+
return lines;
|
|
348
|
+
}
|
|
349
|
+
//# sourceMappingURL=parser.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parser.js","sourceRoot":"","sources":["../../src/script/parser.ts"],"names":[],"mappings":"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"}
|