turbollm 1.9.5 → 1.9.6
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/chunk-BWZ74SDA.js +51 -0
- package/dist/chunk-THELTG2H.js +50 -0
- package/dist/cli.js +604 -74
- package/dist/resolve-executable-ZWQDUVY3.js +9 -0
- package/dist/shell-command-QI6VPNNL.js +15 -0
- package/dist/webdist/assets/{AgentEditPage-CbJqYCVo.js → AgentEditPage-DtVYUbnL.js} +1 -1
- package/dist/webdist/assets/{ChatScreen-LaTz7fTZ.js → ChatScreen-CFqvsPyx.js} +1 -1
- package/dist/webdist/assets/{CodeComposer-12z9dbZA.js → CodeComposer-CEjCtZkU.js} +1 -1
- package/dist/webdist/assets/{CodeHomeScreen-8A3Anu2L.js → CodeHomeScreen-DMVcD76o.js} +1 -1
- package/dist/webdist/assets/{CodeSessionScreen-BoA5rPp7.js → CodeSessionScreen-DAtsPyto.js} +1 -1
- package/dist/webdist/assets/{CustomizeScreen-BTBhphFE.js → CustomizeScreen-Cbki-6V9.js} +1 -1
- package/dist/webdist/assets/{DeveloperScreen-Dfy6Rgw4.js → DeveloperScreen-WD9BR3c2.js} +1 -1
- package/dist/webdist/assets/{EnginesScreen-Dwxe8B5p.js → EnginesScreen-Dn2h0ZJu.js} +1 -1
- package/dist/webdist/assets/{FsBrowser-DXxO1QdQ.js → FsBrowser-B3FpjXmq.js} +1 -1
- package/dist/webdist/assets/{ModelLoadMenu-C7wK_COK.js → ModelLoadMenu-gr5_lfaC.js} +1 -1
- package/dist/webdist/assets/{ModelsScreen-DnpYzOj2.js → ModelsScreen-CB62SK43.js} +1 -1
- package/dist/webdist/assets/{SettingsScreen-Tn8PlYcS.js → SettingsScreen-YEjZw2_s.js} +1 -1
- package/dist/webdist/assets/{SkillEditPage-Bzr1Mfqi.js → SkillEditPage-CwUXP2-z.js} +1 -1
- package/dist/webdist/assets/{TokensScreen-BrnFne8W.js → TokensScreen-Dr8A9OL9.js} +1 -1
- package/dist/webdist/assets/{ToolApprovalBar-BfIwjh_G.js → ToolApprovalBar-bXZAEk7U.js} +3 -3
- package/dist/webdist/assets/WorkspaceScreen-DoG03BQz.js +1 -0
- package/dist/webdist/assets/{agent-api-C0qMHAE0.js → agent-api-DZH-y2xg.js} +1 -1
- package/dist/webdist/assets/{arc-DGmQFsDA.js → arc-D5l_g5is.js} +1 -1
- package/dist/webdist/assets/{architectureDiagram-3BPJPVTR-DSypGjGj.js → architectureDiagram-3BPJPVTR-CguxoWho.js} +1 -1
- package/dist/webdist/assets/{arrow-left-CuK9vFgW.js → arrow-left-wlX0VpDE.js} +1 -1
- package/dist/webdist/assets/{badge-jlftBi-Q.js → badge-BRepTaJr.js} +1 -1
- package/dist/webdist/assets/{blockDiagram-GPEHLZMM-DoYsQhuo.js → blockDiagram-GPEHLZMM-B9xsnW_4.js} +1 -1
- package/dist/webdist/assets/{bot-CE50aKt3.js → bot-D2tkiUsh.js} +1 -1
- package/dist/webdist/assets/{c4Diagram-AAUBKEIU-DsQ4mGev.js → c4Diagram-AAUBKEIU-CYTOwpJg.js} +1 -1
- package/dist/webdist/assets/channel-BCf5gRqW.js +1 -0
- package/dist/webdist/assets/{chat-api-BQgsmVCJ.js → chat-api-FD0R9dNF.js} +1 -1
- package/dist/webdist/assets/{chat-queries-BuU4cQ0I.js → chat-queries-BKXFq3YC.js} +1 -1
- package/dist/webdist/assets/{chevron-left-BoIfI017.js → chevron-left-BKw66_4_.js} +1 -1
- package/dist/webdist/assets/{chevron-right-Btn5ue2K.js → chevron-right-CFMIMfHC.js} +1 -1
- package/dist/webdist/assets/{chunk-2J33WTMH-Cpm4yaej.js → chunk-2J33WTMH-DpsCpZbI.js} +1 -1
- package/dist/webdist/assets/{chunk-4BX2VUAB-Qkt8VpMd.js → chunk-4BX2VUAB-C0i72mr2.js} +1 -1
- package/dist/webdist/assets/{chunk-55IACEB6-D0lIZ5zv.js → chunk-55IACEB6-DmbNCy4Z.js} +1 -1
- package/dist/webdist/assets/{chunk-727SXJPM-DmJbKG_f.js → chunk-727SXJPM-CiKdPdL2.js} +1 -1
- package/dist/webdist/assets/{chunk-AQP2D5EJ-CP5FXopV.js → chunk-AQP2D5EJ-Bc6RXr7f.js} +1 -1
- package/dist/webdist/assets/{chunk-FMBD7UC4-CEHj-mOu.js → chunk-FMBD7UC4-CVnhYSu6.js} +1 -1
- package/dist/webdist/assets/{chunk-ND2GUHAM-DfaWkbDp.js → chunk-ND2GUHAM-CW8vQLlh.js} +1 -1
- package/dist/webdist/assets/{chunk-QZHKN3VN-Cbt4eIAq.js → chunk-QZHKN3VN-x4JaoE5f.js} +1 -1
- package/dist/webdist/assets/{circle-check-CyJ0DXgY.js → circle-check-8hmejhyG.js} +1 -1
- package/dist/webdist/assets/{circle-x-B2ihWKOZ.js → circle-x-C9EQG8zH.js} +1 -1
- package/dist/webdist/assets/classDiagram-4FO5ZUOK-Bg74ry_y.js +1 -0
- package/dist/webdist/assets/classDiagram-v2-Q7XG4LA2-Bg74ry_y.js +1 -0
- package/dist/webdist/assets/{common-CA-hju85.js → common-CqVKpWIL.js} +1 -1
- package/dist/webdist/assets/{cose-bilkent-S5V4N54A-U7v4kFOg.js → cose-bilkent-S5V4N54A-Cv-MBe40.js} +1 -1
- package/dist/webdist/assets/{dagre-BM42HDAG-BrRqvg5R.js → dagre-BM42HDAG-CZWDfsjb.js} +1 -1
- package/dist/webdist/assets/{diagram-2AECGRRQ-CSOuZx8C.js → diagram-2AECGRRQ-CsDxXM77.js} +1 -1
- package/dist/webdist/assets/{diagram-5GNKFQAL-Dc9npHHs.js → diagram-5GNKFQAL-t3BVl_nH.js} +1 -1
- package/dist/webdist/assets/{diagram-KO2AKTUF-CRMmrYOC.js → diagram-KO2AKTUF-Ck_gIw7B.js} +1 -1
- package/dist/webdist/assets/{diagram-LMA3HP47-DR-qZazu.js → diagram-LMA3HP47-w5BRZa6G.js} +1 -1
- package/dist/webdist/assets/{diagram-OG6HWLK6-BRt3haop.js → diagram-OG6HWLK6-DLKPbcMA.js} +1 -1
- package/dist/webdist/assets/{dialog-OPLOEGn-.js → dialog-6Wb-Xczv.js} +1 -1
- package/dist/webdist/assets/{dropdown-menu-mOPaoWK5.js → dropdown-menu-BAw7TO38.js} +1 -1
- package/dist/webdist/assets/{erDiagram-TEJ5UH35-D0M-EUsh.js → erDiagram-TEJ5UH35-3L9k9gBp.js} +1 -1
- package/dist/webdist/assets/{flowDiagram-I6XJVG4X-DBufQOmB.js → flowDiagram-I6XJVG4X-l8IUdo3a.js} +1 -1
- package/dist/webdist/assets/{ganttDiagram-6RSMTGT7-B6zSUp2B.js → ganttDiagram-6RSMTGT7-Dj69Fodg.js} +1 -1
- package/dist/webdist/assets/{git-branch-D8GYPzhY.js → git-branch-BQTTe9uX.js} +1 -1
- package/dist/webdist/assets/{gitGraphDiagram-PVQCEYII-CnSmYO2G.js → gitGraphDiagram-PVQCEYII-Du_5XKj1.js} +1 -1
- package/dist/webdist/assets/{index-COUI_CR-.js → index-HEbqFffw.js} +2 -2
- package/dist/webdist/assets/{infoDiagram-5YYISTIA-F6nF57e3.js → infoDiagram-5YYISTIA-Cna43URi.js} +1 -1
- package/dist/webdist/assets/{ishikawaDiagram-YF4QCWOH-DXMvubwx.js → ishikawaDiagram-YF4QCWOH-hNRD3nFQ.js} +1 -1
- package/dist/webdist/assets/{journeyDiagram-JHISSGLW-BcMZWZZi.js → journeyDiagram-JHISSGLW-DDZl1KbG.js} +1 -1
- package/dist/webdist/assets/{kanban-definition-UN3LZRKU-BhA3iHrI.js → kanban-definition-UN3LZRKU-Dj3MHmQh.js} +1 -1
- package/dist/webdist/assets/{linear-DCHP6NLs.js → linear-BIBN6AEG.js} +1 -1
- package/dist/webdist/assets/{lock-DEL9SW4n.js → lock-D9JNrPro.js} +1 -1
- package/dist/webdist/assets/{mermaid.core-Bvxj3QV6.js → mermaid.core-Cx_BdpgL.js} +4 -4
- package/dist/webdist/assets/{mindmap-definition-RKZ34NQL-DFW-B7At.js → mindmap-definition-RKZ34NQL-AghKUeZq.js} +1 -1
- package/dist/webdist/assets/{pencil-D3YoSpTL.js → pencil-BKwhK8ii.js} +1 -1
- package/dist/webdist/assets/{personas-BL5LWber.js → personas-DpoGW3xD.js} +1 -1
- package/dist/webdist/assets/{pieDiagram-4H26LBE5-D22oz4Bh.js → pieDiagram-4H26LBE5-BNVbKhn5.js} +1 -1
- package/dist/webdist/assets/{plus-Czof1-k0.js → plus-BwuuyzoK.js} +1 -1
- package/dist/webdist/assets/{quadrantDiagram-W4KKPZXB-rH5_lBaU.js → quadrantDiagram-W4KKPZXB-Br5J-7iq.js} +1 -1
- package/dist/webdist/assets/{refresh-cw-eHr6ZrHD.js → refresh-cw-WDCjpgA4.js} +1 -1
- package/dist/webdist/assets/{requirementDiagram-4Y6WPE33-2GvaIJsP.js → requirementDiagram-4Y6WPE33-BRepNBqi.js} +1 -1
- package/dist/webdist/assets/{rotate-ccw-DBvaE0Sq.js → rotate-ccw-CsT9aYGg.js} +1 -1
- package/dist/webdist/assets/{sankeyDiagram-5OEKKPKP-VB7s7E26.js → sankeyDiagram-5OEKKPKP-CT1B03d0.js} +1 -1
- package/dist/webdist/assets/{sequenceDiagram-3UESZ5HK-DypBxMgR.js → sequenceDiagram-3UESZ5HK-B0h8Ocb4.js} +1 -1
- package/dist/webdist/assets/{skeleton-COip0Uxa.js → skeleton-C_8cUA8S.js} +1 -1
- package/dist/webdist/assets/{sliders-horizontal-BYbWJESN.js → sliders-horizontal-DnZxStk1.js} +1 -1
- package/dist/webdist/assets/{sparkles-Bunle1wO.js → sparkles-CgOPZTJx.js} +1 -1
- package/dist/webdist/assets/{star-CDjPloh2.js → star-DRDhG9iP.js} +1 -1
- package/dist/webdist/assets/{stateDiagram-AJRCARHV-De6Tx6UP.js → stateDiagram-AJRCARHV-C6W3BUAK.js} +1 -1
- package/dist/webdist/assets/stateDiagram-v2-BHNVJYJU-CdjOVW2f.js +1 -0
- package/dist/webdist/assets/{switch-CrtIhLpg.js → switch-Qya-6vsg.js} +1 -1
- package/dist/webdist/assets/{terminal-C_jrBBqy.js → terminal-CR5oCvI7.js} +1 -1
- package/dist/webdist/assets/{timeline-definition-PNZ67QCA-DzMJnztZ.js → timeline-definition-PNZ67QCA-Dtggo9rb.js} +1 -1
- package/dist/webdist/assets/{trash-2-BA8fBFXw.js → trash-2-Ejk7so01.js} +1 -1
- package/dist/webdist/assets/{useIsDesktop-Dg2G692v.js → useIsDesktop-CmQXgI2O.js} +1 -1
- package/dist/webdist/assets/{vennDiagram-CIIHVFJN-BNR_zHHW.js → vennDiagram-CIIHVFJN-mYXtI-Zx.js} +1 -1
- package/dist/webdist/assets/{wardley-L42UT6IY-Cm1Sh5Oj.js → wardley-L42UT6IY-D4Qq_cbT.js} +1 -1
- package/dist/webdist/assets/{wardleyDiagram-YWT4CUSO-Bvni8f-6.js → wardleyDiagram-YWT4CUSO-dGqgsAhD.js} +1 -1
- package/dist/webdist/assets/{wrench-Uhws4miP.js → wrench-C42l7xRT.js} +1 -1
- package/dist/webdist/assets/{xychartDiagram-2RQKCTM6-Dyk7o391.js → xychartDiagram-2RQKCTM6-brgk11Hq.js} +1 -1
- package/dist/webdist/index.html +1 -1
- package/package.json +1 -1
- package/dist/webdist/assets/WorkspaceScreen-CHg7GC1T.js +0 -1
- package/dist/webdist/assets/channel-BBYa3XlX.js +0 -1
- package/dist/webdist/assets/classDiagram-4FO5ZUOK-3anTq5dR.js +0 -1
- package/dist/webdist/assets/classDiagram-v2-Q7XG4LA2-3anTq5dR.js +0 -1
- package/dist/webdist/assets/stateDiagram-v2-BHNVJYJU-BJ8zIW-S.js +0 -1
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
|
|
3
|
+
// src/util/resolve-executable.ts
|
|
4
|
+
import { accessSync, constants, statSync } from "fs";
|
|
5
|
+
import { delimiter, extname, isAbsolute, join } from "path";
|
|
6
|
+
var SHIM_EXTENSIONS = /* @__PURE__ */ new Set([".cmd", ".bat"]);
|
|
7
|
+
function isFile(p) {
|
|
8
|
+
try {
|
|
9
|
+
return statSync(p).isFile();
|
|
10
|
+
} catch {
|
|
11
|
+
return false;
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
function isExecutableFile(p) {
|
|
15
|
+
if (!isFile(p)) return false;
|
|
16
|
+
if (process.platform === "win32") return true;
|
|
17
|
+
try {
|
|
18
|
+
accessSync(p, constants.X_OK);
|
|
19
|
+
return true;
|
|
20
|
+
} catch {
|
|
21
|
+
return false;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
function resolveExecutable(command, env = process.env, platform = process.platform) {
|
|
25
|
+
if (!command) return null;
|
|
26
|
+
const win32 = platform === "win32";
|
|
27
|
+
const exts = win32 ? (env.PATHEXT ?? ".COM;.EXE;.BAT;.CMD").split(";").filter(Boolean).map((e) => e.toLowerCase()) : [""];
|
|
28
|
+
const candidates = (base) => (
|
|
29
|
+
// An explicit extension is honoured as-is; only an extension-less command gets PATHEXT applied.
|
|
30
|
+
extname(base) ? [base] : [base, ...exts.map((e) => base + e)]
|
|
31
|
+
);
|
|
32
|
+
if (isAbsolute(command) || command.startsWith("./") || command.startsWith(".\\")) {
|
|
33
|
+
return candidates(command).find(isExecutableFile) ?? null;
|
|
34
|
+
}
|
|
35
|
+
for (const dir of (env.PATH ?? env.Path ?? "").split(delimiter).filter(Boolean)) {
|
|
36
|
+
const clean = dir.replace(/^"|"$/g, "");
|
|
37
|
+
const hit = candidates(join(clean, command)).find(isExecutableFile);
|
|
38
|
+
if (hit) return hit;
|
|
39
|
+
}
|
|
40
|
+
return null;
|
|
41
|
+
}
|
|
42
|
+
function requiresShell(resolvedPath, platform = process.platform) {
|
|
43
|
+
if (!resolvedPath) return true;
|
|
44
|
+
if (platform !== "win32") return false;
|
|
45
|
+
return SHIM_EXTENSIONS.has(extname(resolvedPath).toLowerCase());
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
export {
|
|
49
|
+
resolveExecutable,
|
|
50
|
+
requiresShell
|
|
51
|
+
};
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
|
|
3
|
+
// src/util/shell-command.ts
|
|
4
|
+
var SAFE_UNQUOTED_WIN = /^[A-Za-z0-9_@%+=:,./\\-]+$/;
|
|
5
|
+
var SAFE_UNQUOTED_POSIX = /^[A-Za-z0-9_@%+=:,./-]+$/;
|
|
6
|
+
function quoteWindowsArg(arg) {
|
|
7
|
+
if (arg === "") return '""';
|
|
8
|
+
if (SAFE_UNQUOTED_WIN.test(arg)) return arg;
|
|
9
|
+
let out = '"';
|
|
10
|
+
let backslashes = 0;
|
|
11
|
+
for (const ch of arg) {
|
|
12
|
+
if (ch === "\\") {
|
|
13
|
+
backslashes++;
|
|
14
|
+
continue;
|
|
15
|
+
}
|
|
16
|
+
if (ch === '"') {
|
|
17
|
+
out += "\\".repeat(backslashes * 2 + 1) + '"';
|
|
18
|
+
backslashes = 0;
|
|
19
|
+
continue;
|
|
20
|
+
}
|
|
21
|
+
out += "\\".repeat(backslashes) + ch;
|
|
22
|
+
backslashes = 0;
|
|
23
|
+
}
|
|
24
|
+
out += "\\".repeat(backslashes * 2) + '"';
|
|
25
|
+
return out;
|
|
26
|
+
}
|
|
27
|
+
function quotePosixArg(arg) {
|
|
28
|
+
if (arg === "") return "''";
|
|
29
|
+
if (SAFE_UNQUOTED_POSIX.test(arg)) return arg;
|
|
30
|
+
return `'${arg.split("'").join(`'\\''`)}'`;
|
|
31
|
+
}
|
|
32
|
+
function quotePowerShellArg(arg) {
|
|
33
|
+
return `'${arg.split("'").join("''")}'`;
|
|
34
|
+
}
|
|
35
|
+
function quotePtyShellArg(arg, platform = process.platform) {
|
|
36
|
+
if (platform === "win32") return quotePowerShellArg(arg);
|
|
37
|
+
return `'${arg.split("'").join(`'\\''`)}'`;
|
|
38
|
+
}
|
|
39
|
+
function buildShellCommand(bin, args, platform = process.platform) {
|
|
40
|
+
const quote = platform === "win32" ? quoteWindowsArg : quotePosixArg;
|
|
41
|
+
return [bin, ...args].map(quote).join(" ");
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
export {
|
|
45
|
+
quoteWindowsArg,
|
|
46
|
+
quotePosixArg,
|
|
47
|
+
quotePowerShellArg,
|
|
48
|
+
quotePtyShellArg,
|
|
49
|
+
buildShellCommand
|
|
50
|
+
};
|