@travisennis/acai 0.0.11 → 0.0.13
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 +5 -5
- package/dist/agent/index.d.ts.map +1 -1
- package/dist/agent/index.js +2 -5
- package/dist/commands/history/types.d.ts +3 -2
- package/dist/commands/history/types.d.ts.map +1 -1
- package/dist/commands/init-project/utils.d.ts +0 -1
- package/dist/commands/init-project/utils.d.ts.map +1 -1
- package/dist/commands/init-project/utils.js +1 -12
- package/dist/commands/manager.d.ts.map +1 -1
- package/dist/commands/manager.js +6 -19
- package/dist/commands/resources/index.d.ts.map +1 -1
- package/dist/commands/resources/index.js +4 -1
- package/dist/commands/session/index.d.ts.map +1 -1
- package/dist/commands/session/index.js +6 -0
- package/dist/commands/session/types.d.ts +1 -0
- package/dist/commands/session/types.d.ts.map +1 -1
- package/dist/commands/share/html-renderer.d.ts.map +1 -1
- package/dist/commands/share/html-renderer.js +54 -48
- package/dist/commands/tools/index.d.ts +3 -0
- package/dist/commands/tools/index.d.ts.map +1 -0
- package/dist/commands/tools/index.js +191 -0
- package/dist/commands/tools/templates.d.ts +6 -0
- package/dist/commands/tools/templates.d.ts.map +1 -0
- package/dist/commands/tools/templates.js +97 -0
- package/dist/config/index.d.ts +5 -2
- package/dist/config/index.d.ts.map +1 -1
- package/dist/config/index.js +42 -6
- package/dist/index.d.ts +14 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +98 -68
- package/dist/models/anthropic-provider.d.ts +1 -1
- package/dist/models/deepseek-provider.d.ts +3 -3
- package/dist/models/deepseek-provider.js +17 -17
- package/dist/models/google-provider.d.ts +2 -4
- package/dist/models/google-provider.d.ts.map +1 -1
- package/dist/models/google-provider.js +2 -17
- package/dist/models/groq-provider.d.ts +2 -4
- package/dist/models/groq-provider.d.ts.map +1 -1
- package/dist/models/groq-provider.js +3 -21
- package/dist/models/manager.d.ts +1 -10
- package/dist/models/manager.d.ts.map +1 -1
- package/dist/models/manager.js +2 -2
- package/dist/models/opencode-go-provider.d.ts +11 -1
- package/dist/models/opencode-go-provider.d.ts.map +1 -1
- package/dist/models/opencode-go-provider.js +130 -0
- package/dist/models/opencode-zen-provider.d.ts +3 -3
- package/dist/models/opencode-zen-provider.d.ts.map +1 -1
- package/dist/models/opencode-zen-provider.js +26 -32
- package/dist/models/openrouter-provider.d.ts +4 -15
- package/dist/models/openrouter-provider.d.ts.map +1 -1
- package/dist/models/openrouter-provider.js +26 -169
- package/dist/models/providers.d.ts +1 -1
- package/dist/models/providers.d.ts.map +1 -1
- package/dist/models/xai-provider.d.ts +1 -2
- package/dist/models/xai-provider.d.ts.map +1 -1
- package/dist/models/xai-provider.js +0 -13
- package/dist/prompts/manager.d.ts.map +1 -1
- package/dist/prompts/manager.js +5 -1
- package/dist/prompts/system-prompt.d.ts +1 -2
- package/dist/prompts/system-prompt.d.ts.map +1 -1
- package/dist/prompts/system-prompt.js +26 -15
- package/dist/repl/index.d.ts +28 -13
- package/dist/repl/index.d.ts.map +1 -1
- package/dist/repl/index.js +242 -305
- package/dist/skills/activated-tracker.d.ts +11 -0
- package/dist/skills/activated-tracker.d.ts.map +1 -0
- package/dist/skills/activated-tracker.js +16 -0
- package/dist/skills/index.d.ts +12 -2
- package/dist/skills/index.d.ts.map +1 -1
- package/dist/skills/index.js +127 -71
- package/dist/terminal/control.d.ts +1 -21
- package/dist/terminal/control.d.ts.map +1 -1
- package/dist/terminal/control.js +1 -32
- package/dist/terminal/formatting.d.ts +0 -33
- package/dist/terminal/formatting.d.ts.map +1 -1
- package/dist/terminal/formatting.js +0 -91
- package/dist/terminal/highlight/theme.d.ts +0 -37
- package/dist/terminal/highlight/theme.d.ts.map +1 -1
- package/dist/terminal/highlight/theme.js +1 -79
- package/dist/terminal/keys.d.ts +0 -97
- package/dist/terminal/keys.d.ts.map +1 -1
- package/dist/terminal/keys.js +0 -194
- package/dist/terminal/select-prompt.d.ts.map +1 -1
- package/dist/terminal/select-prompt.js +65 -51
- package/dist/terminal/style.d.ts +1 -1
- package/dist/terminal/style.d.ts.map +1 -1
- package/dist/terminal/supports-color.d.ts.map +1 -1
- package/dist/terminal/supports-color.js +38 -20
- package/dist/terminal/supports-hyperlinks.d.ts +3 -0
- package/dist/terminal/supports-hyperlinks.d.ts.map +1 -1
- package/dist/terminal/supports-hyperlinks.js +72 -31
- package/dist/terminal/table/layout-manager.d.ts +0 -20
- package/dist/terminal/table/layout-manager.d.ts.map +1 -1
- package/dist/terminal/table/layout-manager.js +68 -44
- package/dist/terminal/table/utils.d.ts +0 -1
- package/dist/terminal/table/utils.d.ts.map +1 -1
- package/dist/terminal/table/utils.js +2 -4
- package/dist/tools/apply-patch.d.ts +5 -3
- package/dist/tools/apply-patch.d.ts.map +1 -1
- package/dist/tools/apply-patch.js +154 -123
- package/dist/tools/bash.d.ts +4 -4
- package/dist/tools/bash.d.ts.map +1 -1
- package/dist/tools/bash.js +27 -13
- package/dist/tools/dynamic-tool-loader.d.ts +17 -3
- package/dist/tools/dynamic-tool-loader.d.ts.map +1 -1
- package/dist/tools/dynamic-tool-loader.js +360 -81
- package/dist/tools/edit-file.d.ts +2 -2
- package/dist/tools/index.d.ts +27 -151
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +16 -21
- package/dist/tools/read-file.d.ts +8 -8
- package/dist/tools/read-file.d.ts.map +1 -1
- package/dist/tools/read-file.js +32 -13
- package/dist/tools/save-file.d.ts +4 -4
- package/dist/tools/skill.d.ts +2 -1
- package/dist/tools/skill.d.ts.map +1 -1
- package/dist/tools/skill.js +64 -14
- package/dist/tools/types.d.ts +8 -2
- package/dist/tools/types.d.ts.map +1 -1
- package/dist/tools/web-fetch.d.ts +8 -12
- package/dist/tools/web-fetch.d.ts.map +1 -1
- package/dist/tools/web-fetch.js +86 -44
- package/dist/tools/web-search.d.ts +4 -8
- package/dist/tools/web-search.d.ts.map +1 -1
- package/dist/tools/web-search.js +41 -33
- package/dist/tui/autocomplete/utils.d.ts +0 -15
- package/dist/tui/autocomplete/utils.d.ts.map +1 -1
- package/dist/tui/autocomplete/utils.js +0 -85
- package/dist/tui/autocomplete.d.ts +1 -1
- package/dist/tui/autocomplete.d.ts.map +1 -1
- package/dist/tui/autocomplete.js +1 -1
- package/dist/tui/components/editor.d.ts +12 -0
- package/dist/tui/components/editor.d.ts.map +1 -1
- package/dist/tui/components/editor.js +181 -195
- package/dist/tui/components/footer.d.ts +0 -2
- package/dist/tui/components/footer.d.ts.map +1 -1
- package/dist/tui/components/footer.js +1 -17
- package/dist/tui/components/input.d.ts +4 -0
- package/dist/tui/components/input.d.ts.map +1 -1
- package/dist/tui/components/input.js +33 -31
- package/dist/tui/components/markdown.d.ts +30 -0
- package/dist/tui/components/markdown.d.ts.map +1 -1
- package/dist/tui/components/markdown.js +274 -242
- package/dist/tui/components/modal.d.ts.map +1 -1
- package/dist/tui/components/modal.js +11 -11
- package/dist/tui/components/select-list.d.ts +5 -0
- package/dist/tui/components/select-list.d.ts.map +1 -1
- package/dist/tui/components/select-list.js +69 -98
- package/dist/tui/components/table.d.ts +6 -0
- package/dist/tui/components/table.d.ts.map +1 -1
- package/dist/tui/components/table.js +61 -52
- package/dist/tui/index.d.ts +1 -8
- package/dist/tui/index.d.ts.map +1 -1
- package/dist/tui/index.js +0 -8
- package/dist/tui/tui.d.ts +9 -0
- package/dist/tui/tui.d.ts.map +1 -1
- package/dist/tui/tui.js +78 -48
- package/dist/tui/utils.d.ts +7 -0
- package/dist/tui/utils.d.ts.map +1 -1
- package/dist/tui/utils.js +117 -53
- package/dist/utils/bash.d.ts.map +1 -1
- package/dist/utils/bash.js +121 -104
- package/dist/utils/binary-output.d.ts +32 -0
- package/dist/utils/binary-output.d.ts.map +1 -0
- package/dist/utils/binary-output.js +127 -0
- package/dist/utils/command-protection.d.ts +3 -2
- package/dist/utils/command-protection.d.ts.map +1 -1
- package/dist/utils/command-protection.js +121 -29
- package/dist/utils/filesystem/operations.d.ts +0 -15
- package/dist/utils/filesystem/operations.d.ts.map +1 -1
- package/dist/utils/filesystem/operations.js +1 -38
- package/dist/utils/filesystem/security.d.ts.map +1 -1
- package/dist/utils/filesystem/security.js +22 -15
- package/dist/utils/filetype-detection.d.ts +0 -1
- package/dist/utils/filetype-detection.d.ts.map +1 -1
- package/dist/utils/filetype-detection.js +0 -12
- package/dist/utils/formatting.d.ts +0 -30
- package/dist/utils/formatting.d.ts.map +1 -1
- package/dist/utils/formatting.js +0 -44
- package/dist/utils/git.d.ts +4 -6
- package/dist/utils/git.d.ts.map +1 -1
- package/dist/utils/git.js +36 -46
- package/dist/utils/ignore.d.ts +1 -1
- package/dist/utils/ignore.d.ts.map +1 -1
- package/dist/utils/ignore.js +1 -1
- package/dist/utils/parsing.d.ts +1 -1
- package/dist/utils/parsing.d.ts.map +1 -1
- package/dist/utils/process.d.ts.map +1 -1
- package/dist/utils/process.js +77 -79
- package/dist/utils/yaml.d.ts +0 -1
- package/dist/utils/yaml.d.ts.map +1 -1
- package/dist/utils/yaml.js +80 -89
- package/dist/utils/zod.d.ts +0 -3
- package/dist/utils/zod.d.ts.map +1 -1
- package/dist/utils/zod.js +0 -7
- package/package.json +32 -29
- package/dist/agent/sub-agent.d.ts +0 -23
- package/dist/agent/sub-agent.d.ts.map +0 -1
- package/dist/agent/sub-agent.js +0 -109
- package/dist/commands/add-directory/index.d.ts +0 -3
- package/dist/commands/add-directory/index.d.ts.map +0 -1
- package/dist/commands/add-directory/index.js +0 -50
- package/dist/commands/add-directory/utils.d.ts +0 -3
- package/dist/commands/add-directory/utils.d.ts.map +0 -1
- package/dist/commands/add-directory/utils.js +0 -15
- package/dist/commands/clear/index.d.ts +0 -3
- package/dist/commands/clear/index.d.ts.map +0 -1
- package/dist/commands/clear/index.js +0 -13
- package/dist/commands/generate-rules/index.d.ts +0 -3
- package/dist/commands/generate-rules/index.d.ts.map +0 -1
- package/dist/commands/generate-rules/index.js +0 -206
- package/dist/commands/generate-rules/service.d.ts +0 -22
- package/dist/commands/generate-rules/service.d.ts.map +0 -1
- package/dist/commands/generate-rules/service.js +0 -103
- package/dist/commands/generate-rules/utils.d.ts +0 -5
- package/dist/commands/generate-rules/utils.d.ts.map +0 -1
- package/dist/commands/generate-rules/utils.js +0 -25
- package/dist/commands/handoff/index.d.ts +0 -3
- package/dist/commands/handoff/index.d.ts.map +0 -1
- package/dist/commands/handoff/index.js +0 -97
- package/dist/commands/handoff/utils.d.ts +0 -4
- package/dist/commands/handoff/utils.d.ts.map +0 -1
- package/dist/commands/handoff/utils.js +0 -123
- package/dist/commands/list-directories/index.d.ts +0 -3
- package/dist/commands/list-directories/index.d.ts.map +0 -1
- package/dist/commands/list-directories/index.js +0 -35
- package/dist/commands/pickup/index.d.ts +0 -3
- package/dist/commands/pickup/index.d.ts.map +0 -1
- package/dist/commands/pickup/index.js +0 -141
- package/dist/commands/pickup/types.d.ts +0 -6
- package/dist/commands/pickup/types.d.ts.map +0 -1
- package/dist/commands/pickup/types.js +0 -1
- package/dist/commands/pickup/utils.d.ts +0 -7
- package/dist/commands/pickup/utils.d.ts.map +0 -1
- package/dist/commands/pickup/utils.js +0 -56
- package/dist/commands/remove-directory/index.d.ts +0 -3
- package/dist/commands/remove-directory/index.d.ts.map +0 -1
- package/dist/commands/remove-directory/index.js +0 -55
- package/dist/commands/review/index.d.ts +0 -3
- package/dist/commands/review/index.d.ts.map +0 -1
- package/dist/commands/review/index.js +0 -12
- package/dist/commands/review/review-panel.d.ts +0 -3
- package/dist/commands/review/review-panel.d.ts.map +0 -1
- package/dist/commands/review/review-panel.js +0 -186
- package/dist/commands/review/utils.d.ts +0 -18
- package/dist/commands/review/utils.d.ts.map +0 -1
- package/dist/commands/review/utils.js +0 -146
- package/dist/commands/shell/index.d.ts +0 -3
- package/dist/commands/shell/index.d.ts.map +0 -1
- package/dist/commands/shell/index.js +0 -96
- package/dist/modes/manager.d.ts +0 -24
- package/dist/modes/manager.d.ts.map +0 -1
- package/dist/modes/manager.js +0 -77
- package/dist/modes/prompts.d.ts +0 -2
- package/dist/modes/prompts.d.ts.map +0 -1
- package/dist/modes/prompts.js +0 -142
- package/dist/subagents/index.d.ts +0 -16
- package/dist/subagents/index.d.ts.map +0 -1
- package/dist/subagents/index.js +0 -231
- package/dist/terminal/index.d.ts +0 -9
- package/dist/terminal/index.d.ts.map +0 -1
- package/dist/terminal/index.js +0 -8
- package/dist/tools/agent.d.ts +0 -27
- package/dist/tools/agent.d.ts.map +0 -1
- package/dist/tools/agent.js +0 -81
- package/dist/tools/directory-tree.d.ts +0 -28
- package/dist/tools/directory-tree.d.ts.map +0 -1
- package/dist/tools/directory-tree.js +0 -152
- package/dist/tools/glob.d.ts +0 -35
- package/dist/tools/glob.d.ts.map +0 -1
- package/dist/tools/glob.js +0 -159
- package/dist/tools/grep.d.ts +0 -100
- package/dist/tools/grep.d.ts.map +0 -1
- package/dist/tools/grep.js +0 -601
- package/dist/tools/ls.d.ts +0 -26
- package/dist/tools/ls.d.ts.map +0 -1
- package/dist/tools/ls.js +0 -82
- package/dist/tui/components/header.d.ts +0 -21
- package/dist/tui/components/header.d.ts.map +0 -1
- package/dist/tui/components/header.js +0 -63
- package/dist/utils/bash/parse.d.ts +0 -19
- package/dist/utils/bash/parse.d.ts.map +0 -1
- package/dist/utils/bash/parse.js +0 -223
- package/dist/utils/bash/quote.d.ts +0 -6
- package/dist/utils/bash/quote.d.ts.map +0 -1
- package/dist/utils/bash/quote.js +0 -23
- package/dist/utils/generators.d.ts +0 -3
- package/dist/utils/generators.d.ts.map +0 -1
- package/dist/utils/generators.js +0 -25
- package/dist/utils/glob.d.ts +0 -52
- package/dist/utils/glob.d.ts.map +0 -1
- package/dist/utils/glob.js +0 -376
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parsing.d.ts","sourceRoot":"","sources":["../../source/utils/parsing.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,CAAC,EAAE,MAAM,KAAK,CAAC;AAiBtC,wBAAgB,UAAU,CAAC,CAAC,SAAS,CAAC,CAAC,UAAU,EAAE,KAAK,EAAE,CAAC,
|
|
1
|
+
{"version":3,"file":"parsing.d.ts","sourceRoot":"","sources":["../../source/utils/parsing.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,CAAC,EAAE,MAAM,KAAK,CAAC;AAiBtC,wBAAgB,UAAU,CAAC,CAAC,SAAS,CAAC,CAAC,UAAU,EAAE,KAAK,EAAE,CAAC,sBAE1D"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"process.d.ts","sourceRoot":"","sources":["../../source/utils/process.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"process.d.ts","sourceRoot":"","sources":["../../source/utils/process.ts"],"names":[],"mappings":"AA2EA,UAAU,cAAc;IACtB,2DAA2D;IAC3D,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,yDAAyD;IACzD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,0CAA0C;IAC1C,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,sDAAsD;IACtD,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,2EAA2E;IAC3E,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,mGAAmG;IACnG,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,qDAAqD;IACrD,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,UAAU,aAAa;IACrB,uCAAuC;IACvC,MAAM,EAAE,MAAM,CAAC;IACf,sCAAsC;IACtC,MAAM,EAAE,MAAM,CAAC;IACf,qDAAqD;IACrD,IAAI,EAAE,MAAM,CAAC;IACb,qDAAqD;IACrD,MAAM,CAAC,EAAE,MAAM,CAAC,OAAO,CAAC;CACzB;AAED,KAAK,WAAW,GACZ;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,IAAI,EAAE,CAAC,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC,CAAA;CAAE,GACzC;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AA6KjC,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,WAAW,CAiBpD;AAED;;;;;;;GAOG;AACH,wBAAsB,cAAc,CAClC,OAAO,EAAE,MAAM,GAAG,CAAC,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC,EACvC,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,aAAa,CAAC,CA4CxB"}
|
package/dist/utils/process.js
CHANGED
|
@@ -1,8 +1,46 @@
|
|
|
1
1
|
import { execFile } from "node:child_process";
|
|
2
|
+
import { promisify } from "node:util";
|
|
2
3
|
import { isUndefined } from "@travisennis/stdlib/typeguards";
|
|
3
4
|
const MS_IN_SECOND = 1000;
|
|
4
5
|
const SECONDS_IN_MINUTE = 60;
|
|
5
6
|
const DEFAULT_TIMEOUT = 2 * SECONDS_IN_MINUTE * MS_IN_SECOND;
|
|
7
|
+
/**
|
|
8
|
+
* Returns an error result or rejects based on throwOnError flag.
|
|
9
|
+
*/
|
|
10
|
+
function earlyError(throwOnError, message, code) {
|
|
11
|
+
const result = { stdout: "", stderr: message, code };
|
|
12
|
+
if (throwOnError) {
|
|
13
|
+
return Promise.reject(new Error(message));
|
|
14
|
+
}
|
|
15
|
+
return Promise.resolve(result);
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Handles an error from execFile and returns an ExecuteResult.
|
|
19
|
+
* May throw if throwOnError is true.
|
|
20
|
+
*/
|
|
21
|
+
function handleExecError(error, throwOnError, preserveOutputOnError) {
|
|
22
|
+
const execError = error;
|
|
23
|
+
let errorCode = typeof execError.code === "number" ? execError.code : 1;
|
|
24
|
+
let errorSignal = execError.signal ?? undefined;
|
|
25
|
+
if (execError.name === "AbortError") {
|
|
26
|
+
errorCode = 130;
|
|
27
|
+
errorSignal = "SIGINT";
|
|
28
|
+
}
|
|
29
|
+
const result = {
|
|
30
|
+
stdout: preserveOutputOnError ? (execError.stdout ?? "") : "",
|
|
31
|
+
stderr: preserveOutputOnError ? (execError.stderr ?? "") : "",
|
|
32
|
+
code: errorCode,
|
|
33
|
+
signal: errorSignal,
|
|
34
|
+
};
|
|
35
|
+
if (throwOnError) {
|
|
36
|
+
throw Object.assign(execError, { result });
|
|
37
|
+
}
|
|
38
|
+
return result;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Wraps execFile in a Promise for async/await usage.
|
|
42
|
+
*/
|
|
43
|
+
const execFilePromise = promisify(execFile);
|
|
6
44
|
/**
|
|
7
45
|
* Checks for shell-only constructs that are not allowed.
|
|
8
46
|
*/
|
|
@@ -71,8 +109,11 @@ function handleEscape(input, i, ch, inSingle, inDouble, buf) {
|
|
|
71
109
|
}
|
|
72
110
|
return null;
|
|
73
111
|
}
|
|
74
|
-
|
|
75
|
-
|
|
112
|
+
/**
|
|
113
|
+
* Tokenizes the input string into arguments, handling quotes and escapes.
|
|
114
|
+
* Contains the core while-loop parsing logic.
|
|
115
|
+
*/
|
|
116
|
+
function tokenizeArgv(input) {
|
|
76
117
|
const argv = [];
|
|
77
118
|
let buf = "";
|
|
78
119
|
let i = 0;
|
|
@@ -109,7 +150,7 @@ export function parseArgv(input) {
|
|
|
109
150
|
// Handle escape sequences
|
|
110
151
|
const escapeResult = handleEscape(input, i, ch, inSingle, inDouble, buf);
|
|
111
152
|
if (escapeResult) {
|
|
112
|
-
if ("
|
|
153
|
+
if ("error" in escapeResult) {
|
|
113
154
|
return escapeResult;
|
|
114
155
|
}
|
|
115
156
|
buf = escapeResult.buf;
|
|
@@ -119,17 +160,26 @@ export function parseArgv(input) {
|
|
|
119
160
|
buf += ch;
|
|
120
161
|
i += 1;
|
|
121
162
|
}
|
|
122
|
-
|
|
163
|
+
return { ok: true, argv, buf, inSingle, inDouble };
|
|
164
|
+
}
|
|
165
|
+
// Quote/escape-aware argv tokenizer that forbids command substitution
|
|
166
|
+
export function parseArgv(input) {
|
|
167
|
+
const result = tokenizeArgv(input);
|
|
168
|
+
if (!result.ok)
|
|
169
|
+
return result;
|
|
170
|
+
if (result.inSingle || result.inDouble) {
|
|
123
171
|
return { ok: false, error: "Unterminated quote" };
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
172
|
+
}
|
|
173
|
+
if (result.buf.length > 0)
|
|
174
|
+
result.argv.push(result.buf);
|
|
175
|
+
if (result.argv.length === 0) {
|
|
127
176
|
return { ok: false, error: "Empty command" };
|
|
128
|
-
|
|
177
|
+
}
|
|
178
|
+
const first = result.argv[0];
|
|
129
179
|
if (typeof first !== "string" || first.trim() === "") {
|
|
130
180
|
return { ok: false, error: "Missing command" };
|
|
131
181
|
}
|
|
132
|
-
return { ok: true, argv: argv };
|
|
182
|
+
return { ok: true, argv: result.argv };
|
|
133
183
|
}
|
|
134
184
|
/**
|
|
135
185
|
* Executes a command and returns the result, providing unified error handling
|
|
@@ -139,7 +189,7 @@ export function parseArgv(input) {
|
|
|
139
189
|
* @param options Execution options
|
|
140
190
|
* @returns Promise resolving to an object containing stdout, stderr, and exit code
|
|
141
191
|
*/
|
|
142
|
-
export function executeCommand(command, options) {
|
|
192
|
+
export async function executeCommand(command, options) {
|
|
143
193
|
const { cwd = process.cwd(), timeout = DEFAULT_TIMEOUT, abortSignal, shell = false, throwOnError = false, preserveOutputOnError = true, maxBuffer = 1_000_000, } = options || {};
|
|
144
194
|
let cmd;
|
|
145
195
|
let args;
|
|
@@ -149,79 +199,27 @@ export function executeCommand(command, options) {
|
|
|
149
199
|
else {
|
|
150
200
|
const parsed = parseArgv(command);
|
|
151
201
|
if (!parsed.ok) {
|
|
152
|
-
|
|
153
|
-
stdout: "",
|
|
154
|
-
stderr: parsed.error,
|
|
155
|
-
code: 1,
|
|
156
|
-
};
|
|
157
|
-
return throwOnError
|
|
158
|
-
? Promise.reject(new Error(parsed.error))
|
|
159
|
-
: Promise.resolve(result);
|
|
202
|
+
return earlyError(throwOnError, parsed.error, 1);
|
|
160
203
|
}
|
|
161
204
|
[cmd, ...args] = parsed.argv;
|
|
162
205
|
}
|
|
163
206
|
if (isUndefined(cmd) || cmd.trim() === "") {
|
|
164
|
-
|
|
165
|
-
stdout: "",
|
|
166
|
-
stderr: "Missing command",
|
|
167
|
-
code: 1,
|
|
168
|
-
};
|
|
169
|
-
return throwOnError
|
|
170
|
-
? Promise.reject(new Error("Missing command"))
|
|
171
|
-
: Promise.resolve(result);
|
|
207
|
+
return earlyError(throwOnError, "Missing command", 1);
|
|
172
208
|
}
|
|
173
209
|
if (abortSignal?.aborted) {
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
shell,
|
|
190
|
-
maxBuffer,
|
|
191
|
-
}, (error, stdout, stderr) => {
|
|
192
|
-
if (error) {
|
|
193
|
-
let errorCode = typeof error.code === "number" ? error.code : 1;
|
|
194
|
-
let errorSignal = error.signal ?? undefined;
|
|
195
|
-
if (error.name === "AbortError") {
|
|
196
|
-
errorCode = 130;
|
|
197
|
-
errorSignal = "SIGINT";
|
|
198
|
-
}
|
|
199
|
-
const result = {
|
|
200
|
-
stdout: preserveOutputOnError ? stdout : "",
|
|
201
|
-
stderr: preserveOutputOnError ? stderr : "",
|
|
202
|
-
code: errorCode,
|
|
203
|
-
signal: errorSignal,
|
|
204
|
-
};
|
|
205
|
-
if (throwOnError) {
|
|
206
|
-
reject(Object.assign(error, { result }));
|
|
207
|
-
}
|
|
208
|
-
else {
|
|
209
|
-
resolve(result);
|
|
210
|
-
}
|
|
211
|
-
}
|
|
212
|
-
else {
|
|
213
|
-
resolve({ stdout, stderr, code: 0 });
|
|
214
|
-
}
|
|
215
|
-
});
|
|
216
|
-
}
|
|
217
|
-
catch (error) {
|
|
218
|
-
const result = { stdout: "", stderr: "", code: 1 };
|
|
219
|
-
if (throwOnError) {
|
|
220
|
-
reject(error);
|
|
221
|
-
}
|
|
222
|
-
else {
|
|
223
|
-
resolve(result);
|
|
224
|
-
}
|
|
225
|
-
}
|
|
226
|
-
});
|
|
210
|
+
return earlyError(throwOnError, "Command execution aborted", 130);
|
|
211
|
+
}
|
|
212
|
+
try {
|
|
213
|
+
const { stdout, stderr } = await execFilePromise(cmd, args, {
|
|
214
|
+
cwd,
|
|
215
|
+
timeout,
|
|
216
|
+
signal: abortSignal,
|
|
217
|
+
shell,
|
|
218
|
+
maxBuffer,
|
|
219
|
+
});
|
|
220
|
+
return { stdout, stderr, code: 0 };
|
|
221
|
+
}
|
|
222
|
+
catch (error) {
|
|
223
|
+
return handleExecError(error, throwOnError, preserveOutputOnError);
|
|
224
|
+
}
|
|
227
225
|
}
|
package/dist/utils/yaml.d.ts
CHANGED
|
@@ -2,7 +2,6 @@ type YamlValue = string | number | boolean | null | YamlObject | YamlValue[];
|
|
|
2
2
|
type YamlObject = {
|
|
3
3
|
[key: string]: YamlValue;
|
|
4
4
|
};
|
|
5
|
-
export declare function parseYaml(input: string): YamlObject;
|
|
6
5
|
export declare function parseFrontMatter(markdown: string): {
|
|
7
6
|
data: YamlObject;
|
|
8
7
|
content: string;
|
package/dist/utils/yaml.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"yaml.d.ts","sourceRoot":"","sources":["../../source/utils/yaml.ts"],"names":[],"mappings":"AAAA,KAAK,SAAS,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,GAAG,UAAU,GAAG,SAAS,EAAE,CAAC;AAC7E,KAAK,UAAU,GAAG;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"yaml.d.ts","sourceRoot":"","sources":["../../source/utils/yaml.ts"],"names":[],"mappings":"AAAA,KAAK,SAAS,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,GAAG,UAAU,GAAG,SAAS,EAAE,CAAC;AAC7E,KAAK,UAAU,GAAG;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,CAAC;AA4P/C,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG;IAClD,IAAI,EAAE,UAAU,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;CACjB,CAwBA"}
|
package/dist/utils/yaml.js
CHANGED
|
@@ -1,59 +1,48 @@
|
|
|
1
|
-
|
|
1
|
+
function parseYaml(input) {
|
|
2
2
|
const lines = input.split("\n");
|
|
3
3
|
const result = {};
|
|
4
4
|
let i = 0;
|
|
5
5
|
while (i < lines.length) {
|
|
6
6
|
const line = lines[i];
|
|
7
7
|
const trimmed = line.trim();
|
|
8
|
-
// Skip empty lines and comments
|
|
9
8
|
if (!trimmed || trimmed.startsWith("#")) {
|
|
10
9
|
i++;
|
|
11
10
|
continue;
|
|
12
11
|
}
|
|
13
|
-
// Check for key-value pair
|
|
14
12
|
const colonIndex = line.indexOf(":");
|
|
15
13
|
if (colonIndex === -1) {
|
|
16
14
|
i++;
|
|
17
15
|
continue;
|
|
18
16
|
}
|
|
19
|
-
const indent = getIndent(line);
|
|
20
17
|
const key = line.slice(0, colonIndex).trim();
|
|
21
18
|
const afterColon = line.slice(colonIndex + 1).trim();
|
|
22
19
|
if (afterColon) {
|
|
23
|
-
// Inline value
|
|
24
20
|
result[key] = parseValue(afterColon);
|
|
25
21
|
i++;
|
|
26
22
|
}
|
|
27
23
|
else {
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
const nextLine = lines[i];
|
|
32
|
-
const nextIndent = getIndent(nextLine);
|
|
33
|
-
const nextTrimmed = nextLine.trim();
|
|
34
|
-
if (nextTrimmed.startsWith("-")) {
|
|
35
|
-
// Array
|
|
36
|
-
const [arr, newIndex] = parseArray(lines, i, nextIndent);
|
|
37
|
-
result[key] = arr;
|
|
38
|
-
i = newIndex;
|
|
39
|
-
}
|
|
40
|
-
else if (nextIndent > indent && nextTrimmed.includes(":")) {
|
|
41
|
-
// Nested object
|
|
42
|
-
const [obj, newIndex] = parseObject(lines, i, nextIndent);
|
|
43
|
-
result[key] = obj;
|
|
44
|
-
i = newIndex;
|
|
45
|
-
}
|
|
46
|
-
else {
|
|
47
|
-
result[key] = null;
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
else {
|
|
51
|
-
result[key] = null;
|
|
52
|
-
}
|
|
24
|
+
const [value, newIndex] = parseNestedContent(lines, i + 1, getIndent(line));
|
|
25
|
+
result[key] = value;
|
|
26
|
+
i = newIndex;
|
|
53
27
|
}
|
|
54
28
|
}
|
|
55
29
|
return result;
|
|
56
30
|
}
|
|
31
|
+
function parseNestedContent(lines, startIdx, parentIndent) {
|
|
32
|
+
if (startIdx >= lines.length) {
|
|
33
|
+
return [null, startIdx];
|
|
34
|
+
}
|
|
35
|
+
const nextLine = lines[startIdx];
|
|
36
|
+
const nextIndent = getIndent(nextLine);
|
|
37
|
+
const nextTrimmed = nextLine.trim();
|
|
38
|
+
if (nextTrimmed.startsWith("-")) {
|
|
39
|
+
return parseArray(lines, startIdx, nextIndent);
|
|
40
|
+
}
|
|
41
|
+
if (nextIndent > parentIndent && nextTrimmed.includes(":")) {
|
|
42
|
+
return parseObject(lines, startIdx, nextIndent);
|
|
43
|
+
}
|
|
44
|
+
return [null, startIdx];
|
|
45
|
+
}
|
|
57
46
|
function parseObject(lines, start, baseIndent) {
|
|
58
47
|
const obj = {};
|
|
59
48
|
let i = start;
|
|
@@ -68,42 +57,14 @@ function parseObject(lines, start, baseIndent) {
|
|
|
68
57
|
if (indent < baseIndent) {
|
|
69
58
|
break;
|
|
70
59
|
}
|
|
71
|
-
if (indent
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
if (afterColon) {
|
|
80
|
-
obj[key] = parseValue(afterColon);
|
|
81
|
-
i++;
|
|
82
|
-
}
|
|
83
|
-
else {
|
|
84
|
-
i++;
|
|
85
|
-
if (i < lines.length) {
|
|
86
|
-
const nextLine = lines[i];
|
|
87
|
-
const nextIndent = getIndent(nextLine);
|
|
88
|
-
const nextTrimmed = nextLine.trim();
|
|
89
|
-
if (nextTrimmed.startsWith("-")) {
|
|
90
|
-
const [arr, newIndex] = parseArray(lines, i, nextIndent);
|
|
91
|
-
obj[key] = arr;
|
|
92
|
-
i = newIndex;
|
|
93
|
-
}
|
|
94
|
-
else if (nextIndent > indent && nextTrimmed.includes(":")) {
|
|
95
|
-
const [nested, newIndex] = parseObject(lines, i, nextIndent);
|
|
96
|
-
obj[key] = nested;
|
|
97
|
-
i = newIndex;
|
|
98
|
-
}
|
|
99
|
-
else {
|
|
100
|
-
obj[key] = null;
|
|
101
|
-
}
|
|
102
|
-
}
|
|
103
|
-
else {
|
|
104
|
-
obj[key] = null;
|
|
105
|
-
}
|
|
106
|
-
}
|
|
60
|
+
if (indent !== baseIndent) {
|
|
61
|
+
i++;
|
|
62
|
+
continue;
|
|
63
|
+
}
|
|
64
|
+
const result = processObjectLine(lines, i, indent);
|
|
65
|
+
if (result !== null) {
|
|
66
|
+
obj[result.key] = result.value;
|
|
67
|
+
i = result.nextIndex;
|
|
107
68
|
}
|
|
108
69
|
else {
|
|
109
70
|
i++;
|
|
@@ -111,6 +72,58 @@ function parseObject(lines, start, baseIndent) {
|
|
|
111
72
|
}
|
|
112
73
|
return [obj, i];
|
|
113
74
|
}
|
|
75
|
+
function processObjectLine(lines, currentIndex, indent) {
|
|
76
|
+
const line = lines[currentIndex];
|
|
77
|
+
const colonIndex = line.indexOf(":");
|
|
78
|
+
if (colonIndex === -1) {
|
|
79
|
+
return null;
|
|
80
|
+
}
|
|
81
|
+
const key = line.slice(0, colonIndex).trim();
|
|
82
|
+
const afterColon = line.slice(colonIndex + 1).trim();
|
|
83
|
+
if (afterColon) {
|
|
84
|
+
return { key, value: parseValue(afterColon), nextIndex: currentIndex + 1 };
|
|
85
|
+
}
|
|
86
|
+
// Empty value after colon - look at next line for nested content
|
|
87
|
+
const nextIndex = currentIndex + 1;
|
|
88
|
+
if (nextIndex >= lines.length) {
|
|
89
|
+
return { key, value: null, nextIndex };
|
|
90
|
+
}
|
|
91
|
+
const nextLine = lines[nextIndex];
|
|
92
|
+
const nextIndent = getIndent(nextLine);
|
|
93
|
+
const nextTrimmed = nextLine.trim();
|
|
94
|
+
if (nextTrimmed.startsWith("-")) {
|
|
95
|
+
const [arr, newIndex] = parseArray(lines, nextIndex, nextIndent);
|
|
96
|
+
return { key, value: arr, nextIndex: newIndex };
|
|
97
|
+
}
|
|
98
|
+
if (nextIndent > indent && nextTrimmed.includes(":")) {
|
|
99
|
+
const [nested, newIndex] = parseObject(lines, nextIndex, nextIndent);
|
|
100
|
+
return { key, value: nested, nextIndex: newIndex };
|
|
101
|
+
}
|
|
102
|
+
return { key, value: null, nextIndex };
|
|
103
|
+
}
|
|
104
|
+
function parseArrayItem(lines, currentIndex, arr) {
|
|
105
|
+
const line = lines[currentIndex];
|
|
106
|
+
const trimmed = line.trim();
|
|
107
|
+
const afterDash = trimmed.slice(1).trim();
|
|
108
|
+
if (afterDash) {
|
|
109
|
+
arr.push(parseValue(afterDash));
|
|
110
|
+
return currentIndex + 1;
|
|
111
|
+
}
|
|
112
|
+
// Empty dash - check next line for nested content
|
|
113
|
+
const nextIndex = currentIndex + 1;
|
|
114
|
+
if (nextIndex >= lines.length) {
|
|
115
|
+
return nextIndex;
|
|
116
|
+
}
|
|
117
|
+
const nextLine = lines[nextIndex];
|
|
118
|
+
const nextIndent = getIndent(nextLine);
|
|
119
|
+
const nextTrimmed = nextLine.trim();
|
|
120
|
+
if (nextTrimmed.includes(":")) {
|
|
121
|
+
const [obj, newIndex] = parseObject(lines, nextIndex, nextIndent);
|
|
122
|
+
arr.push(obj);
|
|
123
|
+
return newIndex;
|
|
124
|
+
}
|
|
125
|
+
return nextIndex + 1;
|
|
126
|
+
}
|
|
114
127
|
function parseArray(lines, start, baseIndent) {
|
|
115
128
|
const arr = [];
|
|
116
129
|
let i = start;
|
|
@@ -126,29 +139,7 @@ function parseArray(lines, start, baseIndent) {
|
|
|
126
139
|
break;
|
|
127
140
|
}
|
|
128
141
|
if (indent === baseIndent && trimmed.startsWith("-")) {
|
|
129
|
-
|
|
130
|
-
if (afterDash) {
|
|
131
|
-
// Inline array item
|
|
132
|
-
arr.push(parseValue(afterDash));
|
|
133
|
-
i++;
|
|
134
|
-
}
|
|
135
|
-
else {
|
|
136
|
-
// Check next line for nested content
|
|
137
|
-
i++;
|
|
138
|
-
if (i < lines.length) {
|
|
139
|
-
const nextLine = lines[i];
|
|
140
|
-
const nextIndent = getIndent(nextLine);
|
|
141
|
-
const nextTrimmed = nextLine.trim();
|
|
142
|
-
if (nextTrimmed.includes(":")) {
|
|
143
|
-
const [obj, newIndex] = parseObject(lines, i, nextIndent);
|
|
144
|
-
arr.push(obj);
|
|
145
|
-
i = newIndex;
|
|
146
|
-
}
|
|
147
|
-
else {
|
|
148
|
-
i++;
|
|
149
|
-
}
|
|
150
|
-
}
|
|
151
|
-
}
|
|
142
|
+
i = parseArrayItem(lines, i, arr);
|
|
152
143
|
}
|
|
153
144
|
else {
|
|
154
145
|
i++;
|
package/dist/utils/zod.d.ts
CHANGED
|
@@ -1,5 +1,2 @@
|
|
|
1
|
-
import { ZodType } from "zod";
|
|
2
|
-
export declare function isZodSchema(obj: unknown): obj is ZodType<unknown>;
|
|
3
|
-
export declare function zodToJsonSchema(schema: ZodType<unknown>): Record<string, unknown>;
|
|
4
1
|
export declare const convertNullString: (value: unknown) => unknown;
|
|
5
2
|
//# sourceMappingURL=zod.d.ts.map
|
package/dist/utils/zod.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"zod.d.ts","sourceRoot":"","sources":["../../source/utils/zod.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"zod.d.ts","sourceRoot":"","sources":["../../source/utils/zod.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,iBAAiB,GAAI,OAAO,OAAO,KAAG,OAgBlD,CAAC"}
|
package/dist/utils/zod.js
CHANGED
|
@@ -1,10 +1,3 @@
|
|
|
1
|
-
import z, { ZodType } from "zod";
|
|
2
|
-
export function isZodSchema(obj) {
|
|
3
|
-
return obj instanceof ZodType;
|
|
4
|
-
}
|
|
5
|
-
export function zodToJsonSchema(schema) {
|
|
6
|
-
return z.toJSONSchema(schema);
|
|
7
|
-
}
|
|
8
1
|
// Many models do not reliably pass null to optional tool fields. Instead they pass "null", "None", "undefined", or empty strings.
|
|
9
2
|
// This function will coerce all of those values into null.
|
|
10
3
|
export const convertNullString = (value) => {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@travisennis/acai",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.13",
|
|
4
4
|
"description": "An AI assistant for developing software.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -33,7 +33,7 @@
|
|
|
33
33
|
"lint:ast-grep:fix": "sg scan --update-all",
|
|
34
34
|
"lint:biome": "biome lint",
|
|
35
35
|
"lint:biome:fix": "biome lint --unsafe --write",
|
|
36
|
-
"lint:fix": "
|
|
36
|
+
"lint:fix": "npm run lint:ast-grep && npm run lint:biome:fix",
|
|
37
37
|
"lint:staged": "biome lint --error-on-warnings --no-errors-on-unmatched --staged",
|
|
38
38
|
"format:staged": "biome check --staged --formatter-enabled=true --linter-enabled=false --no-errors-on-unmatched",
|
|
39
39
|
"prepack": "npm run clean && npm run build",
|
|
@@ -47,8 +47,11 @@
|
|
|
47
47
|
"dev": "node --no-warnings --env-file=.env ./source/index.ts",
|
|
48
48
|
"oxlint": "npm run oxlint:single -- ./source",
|
|
49
49
|
"oxlint:single": "oxlint --type-aware --ignore-path .gitignore -A all -c .oxlintrc.json",
|
|
50
|
-
"knip": "
|
|
51
|
-
"knip:prod": "
|
|
50
|
+
"knip": "knip",
|
|
51
|
+
"knip:prod": "knip --production",
|
|
52
|
+
"fallow": "fallow --format json",
|
|
53
|
+
"setup": "node scripts/setup.ts",
|
|
54
|
+
"bootstrap": "npm run setup",
|
|
52
55
|
"update": "npx npm-check-updates --interactive --format group",
|
|
53
56
|
"cpd": "npx jscpd ./source",
|
|
54
57
|
"typecheck": "tsc --noEmit --pretty -p tsconfig.json",
|
|
@@ -57,48 +60,48 @@
|
|
|
57
60
|
"lint:length": "find source -name '*.ts' | xargs -I{} awk 'END{if(NR>500)print FILENAME\": \"NR\" lines\"}' {}"
|
|
58
61
|
},
|
|
59
62
|
"dependencies": {
|
|
60
|
-
"@ai-sdk/anthropic": "^3.0.
|
|
61
|
-
"@ai-sdk/deepseek": "^2.0.
|
|
62
|
-
"@ai-sdk/devtools": "^0.0.
|
|
63
|
-
"@ai-sdk/google": "^3.0.
|
|
64
|
-
"@ai-sdk/groq": "^3.0.
|
|
65
|
-
"@ai-sdk/open-responses": "^1.0.
|
|
66
|
-
"@ai-sdk/openai": "^3.0.
|
|
67
|
-
"@ai-sdk/openai-compatible": "^2.0.
|
|
63
|
+
"@ai-sdk/anthropic": "^3.0.81",
|
|
64
|
+
"@ai-sdk/deepseek": "^2.0.35",
|
|
65
|
+
"@ai-sdk/devtools": "^0.0.18",
|
|
66
|
+
"@ai-sdk/google": "^3.0.80",
|
|
67
|
+
"@ai-sdk/groq": "^3.0.39",
|
|
68
|
+
"@ai-sdk/open-responses": "^1.0.16",
|
|
69
|
+
"@ai-sdk/openai": "^3.0.67",
|
|
70
|
+
"@ai-sdk/openai-compatible": "^2.0.48",
|
|
68
71
|
"@crosscopy/clipboard": "^0.3.6",
|
|
69
72
|
"@travisennis/stdlib": "^0.0.14",
|
|
70
|
-
"ai": "^6.0.
|
|
73
|
+
"ai": "^6.0.195",
|
|
71
74
|
"cheerio": "^1.2.0",
|
|
72
|
-
"diff": "^
|
|
73
|
-
"fast-glob": "^3.3.3",
|
|
75
|
+
"diff": "^9.0.0",
|
|
74
76
|
"fdir": "^6.5.0",
|
|
75
77
|
"highlight.js": "^11.11.1",
|
|
76
|
-
"marked": "
|
|
78
|
+
"marked": "18.0.4",
|
|
77
79
|
"p-throttle": "^8.1.0",
|
|
78
|
-
"parse5": "^8.0.
|
|
79
|
-
"parse5-htmlparser2-tree-adapter": "^8.0.
|
|
80
|
+
"parse5": "^8.0.1",
|
|
81
|
+
"parse5-htmlparser2-tree-adapter": "^8.0.1",
|
|
80
82
|
"pino": "^10.3.1",
|
|
81
83
|
"pino-pretty": "^13.1.3",
|
|
82
84
|
"pino-roll": "^4.0.0",
|
|
83
85
|
"tiktoken": "^1.0.22",
|
|
84
|
-
"zod": "^4.3
|
|
86
|
+
"zod": "^4.4.3"
|
|
85
87
|
},
|
|
86
88
|
"devDependencies": {
|
|
87
|
-
"@ai-sdk/provider": "^3.0.
|
|
88
|
-
"@
|
|
89
|
-
"@
|
|
90
|
-
"@
|
|
91
|
-
"@types/node": "^25.5.0",
|
|
89
|
+
"@ai-sdk/provider": "^3.0.10",
|
|
90
|
+
"@biomejs/biome": "2.4.16",
|
|
91
|
+
"@commitlint/config-conventional": "^21.0.2",
|
|
92
|
+
"@types/node": "^25.9.1",
|
|
92
93
|
"c8": "^11.0.0",
|
|
93
|
-
"commitlint": "^
|
|
94
|
+
"commitlint": "^21.0.2",
|
|
94
95
|
"domhandler": "^6.0.1",
|
|
96
|
+
"fallow": "^2.88.0",
|
|
95
97
|
"husky": "^9.1.7",
|
|
96
|
-
"
|
|
97
|
-
"oxlint
|
|
98
|
-
"
|
|
98
|
+
"knip": "^6.15.0",
|
|
99
|
+
"oxlint": "^1.68.0",
|
|
100
|
+
"oxlint-tsgolint": "^0.23.0",
|
|
101
|
+
"typescript": "^6.0.3"
|
|
99
102
|
},
|
|
100
103
|
"engines": {
|
|
101
|
-
"node": ">=
|
|
104
|
+
"node": ">=24"
|
|
102
105
|
},
|
|
103
106
|
"publishConfig": {
|
|
104
107
|
"access": "public"
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
import type { WorkspaceContext } from "../index.ts";
|
|
2
|
-
import type { ModelName } from "../models/providers.ts";
|
|
3
|
-
export declare class SubAgent {
|
|
4
|
-
workspace: WorkspaceContext;
|
|
5
|
-
constructor(options: {
|
|
6
|
-
workspace: WorkspaceContext;
|
|
7
|
-
});
|
|
8
|
-
execute({ model, system, prompt, abortSignal, allowedTools, timeout, }: {
|
|
9
|
-
model: ModelName;
|
|
10
|
-
system: string;
|
|
11
|
-
prompt: string;
|
|
12
|
-
abortSignal?: AbortSignal;
|
|
13
|
-
allowedTools?: string[];
|
|
14
|
-
timeout?: number;
|
|
15
|
-
}): Promise<string>;
|
|
16
|
-
private prepareExecution;
|
|
17
|
-
private filterTools;
|
|
18
|
-
private createTimeoutSignal;
|
|
19
|
-
private combineAbortSignals;
|
|
20
|
-
private runGenerateText;
|
|
21
|
-
private transformError;
|
|
22
|
-
}
|
|
23
|
-
//# sourceMappingURL=sub-agent.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"sub-agent.d.ts","sourceRoot":"","sources":["../../source/agent/sub-agent.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAGpD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAKxD,qBAAa,QAAQ;IACnB,SAAS,EAAE,gBAAgB,CAAC;gBAEhB,OAAO,EAAE;QACnB,SAAS,EAAE,gBAAgB,CAAC;KAC7B;IAIK,OAAO,CAAC,EACZ,KAAK,EACL,MAAM,EACN,MAAM,EACN,WAAW,EACX,YAAY,EACZ,OAAO,GACR,EAAE;QACD,KAAK,EAAE,SAAS,CAAC;QACjB,MAAM,EAAE,MAAM,CAAC;QACf,MAAM,EAAE,MAAM,CAAC;QACf,WAAW,CAAC,EAAE,WAAW,CAAC;QAC1B,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;QACxB,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB;YAgCa,gBAAgB;IA2B9B,OAAO,CAAC,WAAW;IAiBnB,OAAO,CAAC,mBAAmB;IAkB3B,OAAO,CAAC,mBAAmB;YAmBb,eAAe;IAmC7B,OAAO,CAAC,cAAc;CASvB"}
|