turbollm 1.9.5 → 1.9.7
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 +887 -186
- package/dist/resolve-executable-ZWQDUVY3.js +9 -0
- package/dist/shell-command-QI6VPNNL.js +15 -0
- package/dist/webdist/assets/{AgentEditPage-CbJqYCVo.js → AgentEditPage-C8RGdWJF.js} +1 -1
- package/dist/webdist/assets/{ChatScreen-LaTz7fTZ.js → ChatScreen-N3uMBH5o.js} +1 -1
- package/dist/webdist/assets/{CodeComposer-12z9dbZA.js → CodeComposer-CiCzwc9F.js} +1 -1
- package/dist/webdist/assets/{CodeHomeScreen-8A3Anu2L.js → CodeHomeScreen-CL0EstEl.js} +1 -1
- package/dist/webdist/assets/{CodeSessionScreen-BoA5rPp7.js → CodeSessionScreen-Cmpd5nk-.js} +1 -1
- package/dist/webdist/assets/{CustomizeScreen-BTBhphFE.js → CustomizeScreen-BIdHpMx-.js} +1 -1
- package/dist/webdist/assets/{DeveloperScreen-Dfy6Rgw4.js → DeveloperScreen-Du9T6j_f.js} +1 -1
- package/dist/webdist/assets/{EnginesScreen-Dwxe8B5p.js → EnginesScreen-CFhygpHp.js} +1 -1
- package/dist/webdist/assets/{FsBrowser-DXxO1QdQ.js → FsBrowser-yCDndpa8.js} +1 -1
- package/dist/webdist/assets/{ModelLoadMenu-C7wK_COK.js → ModelLoadMenu-B6OgZ7AZ.js} +1 -1
- package/dist/webdist/assets/{ModelsScreen-DnpYzOj2.js → ModelsScreen-DAcHEngS.js} +1 -1
- package/dist/webdist/assets/{SettingsScreen-Tn8PlYcS.js → SettingsScreen-CgwmrEYG.js} +1 -1
- package/dist/webdist/assets/{SkillEditPage-Bzr1Mfqi.js → SkillEditPage-swxEgg6z.js} +1 -1
- package/dist/webdist/assets/{TokensScreen-BrnFne8W.js → TokensScreen-1gAoLbZq.js} +1 -1
- package/dist/webdist/assets/{ToolApprovalBar-BfIwjh_G.js → ToolApprovalBar-D-VPdhAA.js} +3 -3
- package/dist/webdist/assets/WorkspaceScreen-DA4l7OyH.js +1 -0
- package/dist/webdist/assets/{agent-api-C0qMHAE0.js → agent-api-C4rG-Jhm.js} +1 -1
- package/dist/webdist/assets/{arc-DGmQFsDA.js → arc-DN-erBAi.js} +1 -1
- package/dist/webdist/assets/{architectureDiagram-3BPJPVTR-DSypGjGj.js → architectureDiagram-3BPJPVTR-C_Y3sT8y.js} +1 -1
- package/dist/webdist/assets/{arrow-left-CuK9vFgW.js → arrow-left-Dv89StCL.js} +1 -1
- package/dist/webdist/assets/{badge-jlftBi-Q.js → badge-C367M9ui.js} +1 -1
- package/dist/webdist/assets/{blockDiagram-GPEHLZMM-DoYsQhuo.js → blockDiagram-GPEHLZMM-DIhPpxoy.js} +1 -1
- package/dist/webdist/assets/{bot-CE50aKt3.js → bot-CkS7SpAq.js} +1 -1
- package/dist/webdist/assets/{c4Diagram-AAUBKEIU-DsQ4mGev.js → c4Diagram-AAUBKEIU-DhxTzCHS.js} +1 -1
- package/dist/webdist/assets/channel-B5rf-0pa.js +1 -0
- package/dist/webdist/assets/{chat-api-BQgsmVCJ.js → chat-api-BjLw__7G.js} +1 -1
- package/dist/webdist/assets/{chat-queries-BuU4cQ0I.js → chat-queries-DkW-crMK.js} +1 -1
- package/dist/webdist/assets/{chevron-left-BoIfI017.js → chevron-left-CvC9QlMY.js} +1 -1
- package/dist/webdist/assets/{chevron-right-Btn5ue2K.js → chevron-right-dxKQD1jQ.js} +1 -1
- package/dist/webdist/assets/{chunk-2J33WTMH-Cpm4yaej.js → chunk-2J33WTMH-BStbX98A.js} +1 -1
- package/dist/webdist/assets/{chunk-4BX2VUAB-Qkt8VpMd.js → chunk-4BX2VUAB-Dt_NYZlI.js} +1 -1
- package/dist/webdist/assets/{chunk-55IACEB6-D0lIZ5zv.js → chunk-55IACEB6-Bhp_kq7k.js} +1 -1
- package/dist/webdist/assets/{chunk-727SXJPM-DmJbKG_f.js → chunk-727SXJPM-DSlmyTXu.js} +1 -1
- package/dist/webdist/assets/{chunk-AQP2D5EJ-CP5FXopV.js → chunk-AQP2D5EJ-DTjPEmPv.js} +1 -1
- package/dist/webdist/assets/{chunk-FMBD7UC4-CEHj-mOu.js → chunk-FMBD7UC4-CJFy7xKH.js} +1 -1
- package/dist/webdist/assets/{chunk-ND2GUHAM-DfaWkbDp.js → chunk-ND2GUHAM-U5KxKYoG.js} +1 -1
- package/dist/webdist/assets/{chunk-QZHKN3VN-Cbt4eIAq.js → chunk-QZHKN3VN-DqU8C1o_.js} +1 -1
- package/dist/webdist/assets/{circle-check-CyJ0DXgY.js → circle-check-X2gW5Lao.js} +1 -1
- package/dist/webdist/assets/{circle-x-B2ihWKOZ.js → circle-x-EHdG_-2l.js} +1 -1
- package/dist/webdist/assets/classDiagram-4FO5ZUOK-B6iRj6y1.js +1 -0
- package/dist/webdist/assets/classDiagram-v2-Q7XG4LA2-B6iRj6y1.js +1 -0
- package/dist/webdist/assets/{common-CA-hju85.js → common-CR_Lyg91.js} +1 -1
- package/dist/webdist/assets/{cose-bilkent-S5V4N54A-U7v4kFOg.js → cose-bilkent-S5V4N54A-BYKK4Cf1.js} +1 -1
- package/dist/webdist/assets/{dagre-BM42HDAG-BrRqvg5R.js → dagre-BM42HDAG-g4hhdP8F.js} +1 -1
- package/dist/webdist/assets/{diagram-2AECGRRQ-CSOuZx8C.js → diagram-2AECGRRQ-Dr_agpgo.js} +1 -1
- package/dist/webdist/assets/{diagram-5GNKFQAL-Dc9npHHs.js → diagram-5GNKFQAL-HhGT-1mW.js} +1 -1
- package/dist/webdist/assets/{diagram-KO2AKTUF-CRMmrYOC.js → diagram-KO2AKTUF-DAbDCiEN.js} +1 -1
- package/dist/webdist/assets/{diagram-LMA3HP47-DR-qZazu.js → diagram-LMA3HP47-69Vaqnrj.js} +1 -1
- package/dist/webdist/assets/{diagram-OG6HWLK6-BRt3haop.js → diagram-OG6HWLK6-BfoIa3zL.js} +1 -1
- package/dist/webdist/assets/{dialog-OPLOEGn-.js → dialog-J9fwiM_6.js} +1 -1
- package/dist/webdist/assets/{dropdown-menu-mOPaoWK5.js → dropdown-menu-CzGm9m23.js} +1 -1
- package/dist/webdist/assets/{erDiagram-TEJ5UH35-D0M-EUsh.js → erDiagram-TEJ5UH35-_kvCnb2f.js} +1 -1
- package/dist/webdist/assets/{flowDiagram-I6XJVG4X-DBufQOmB.js → flowDiagram-I6XJVG4X-CyoD5NFD.js} +1 -1
- package/dist/webdist/assets/{ganttDiagram-6RSMTGT7-B6zSUp2B.js → ganttDiagram-6RSMTGT7-BHbeuBsb.js} +1 -1
- package/dist/webdist/assets/{git-branch-D8GYPzhY.js → git-branch-DwkQBy50.js} +1 -1
- package/dist/webdist/assets/{gitGraphDiagram-PVQCEYII-CnSmYO2G.js → gitGraphDiagram-PVQCEYII-CLiLu2eD.js} +1 -1
- package/dist/webdist/assets/{index-COUI_CR-.js → index-sdlWNoLv.js} +2 -2
- package/dist/webdist/assets/{infoDiagram-5YYISTIA-F6nF57e3.js → infoDiagram-5YYISTIA-DUsHPouL.js} +1 -1
- package/dist/webdist/assets/{ishikawaDiagram-YF4QCWOH-DXMvubwx.js → ishikawaDiagram-YF4QCWOH-dmOwTeXN.js} +1 -1
- package/dist/webdist/assets/{journeyDiagram-JHISSGLW-BcMZWZZi.js → journeyDiagram-JHISSGLW-B-ROjE-9.js} +1 -1
- package/dist/webdist/assets/{kanban-definition-UN3LZRKU-BhA3iHrI.js → kanban-definition-UN3LZRKU-BcmeWTJv.js} +1 -1
- package/dist/webdist/assets/{linear-DCHP6NLs.js → linear-D_7tH0LK.js} +1 -1
- package/dist/webdist/assets/{lock-DEL9SW4n.js → lock-B6DBc8H2.js} +1 -1
- package/dist/webdist/assets/{mermaid.core-Bvxj3QV6.js → mermaid.core-COPgjG_G.js} +4 -4
- package/dist/webdist/assets/{mindmap-definition-RKZ34NQL-DFW-B7At.js → mindmap-definition-RKZ34NQL-DYa-6SsO.js} +1 -1
- package/dist/webdist/assets/{pencil-D3YoSpTL.js → pencil-dcCQp7PP.js} +1 -1
- package/dist/webdist/assets/{personas-BL5LWber.js → personas-sJAzYoeu.js} +3 -2
- package/dist/webdist/assets/{pieDiagram-4H26LBE5-D22oz4Bh.js → pieDiagram-4H26LBE5-Btte96Dk.js} +1 -1
- package/dist/webdist/assets/{plus-Czof1-k0.js → plus-BvjpqMip.js} +1 -1
- package/dist/webdist/assets/{quadrantDiagram-W4KKPZXB-rH5_lBaU.js → quadrantDiagram-W4KKPZXB-NS-IUaYv.js} +1 -1
- package/dist/webdist/assets/{refresh-cw-eHr6ZrHD.js → refresh-cw-CJO18sMX.js} +1 -1
- package/dist/webdist/assets/{requirementDiagram-4Y6WPE33-2GvaIJsP.js → requirementDiagram-4Y6WPE33-6S8LhS5B.js} +1 -1
- package/dist/webdist/assets/{rotate-ccw-DBvaE0Sq.js → rotate-ccw-Dg4hTNG6.js} +1 -1
- package/dist/webdist/assets/{sankeyDiagram-5OEKKPKP-VB7s7E26.js → sankeyDiagram-5OEKKPKP-DzP_aBJ0.js} +1 -1
- package/dist/webdist/assets/{sequenceDiagram-3UESZ5HK-DypBxMgR.js → sequenceDiagram-3UESZ5HK-DbM6WtvX.js} +1 -1
- package/dist/webdist/assets/{skeleton-COip0Uxa.js → skeleton-BWg_uQbt.js} +1 -1
- package/dist/webdist/assets/{sliders-horizontal-BYbWJESN.js → sliders-horizontal-BEN8YNq8.js} +1 -1
- package/dist/webdist/assets/{sparkles-Bunle1wO.js → sparkles-BXKX67cv.js} +1 -1
- package/dist/webdist/assets/{star-CDjPloh2.js → star-UYX7iaVC.js} +1 -1
- package/dist/webdist/assets/{stateDiagram-AJRCARHV-De6Tx6UP.js → stateDiagram-AJRCARHV-DQd2hln9.js} +1 -1
- package/dist/webdist/assets/stateDiagram-v2-BHNVJYJU-DnzMvaiS.js +1 -0
- package/dist/webdist/assets/{switch-CrtIhLpg.js → switch-CbjIB99k.js} +1 -1
- package/dist/webdist/assets/{terminal-C_jrBBqy.js → terminal-DVNTdtpQ.js} +1 -1
- package/dist/webdist/assets/{timeline-definition-PNZ67QCA-DzMJnztZ.js → timeline-definition-PNZ67QCA-BnfK2zzg.js} +1 -1
- package/dist/webdist/assets/{trash-2-BA8fBFXw.js → trash-2-DkWlMuY9.js} +1 -1
- package/dist/webdist/assets/{useIsDesktop-Dg2G692v.js → useIsDesktop-DvCa8GTi.js} +1 -1
- package/dist/webdist/assets/{vennDiagram-CIIHVFJN-BNR_zHHW.js → vennDiagram-CIIHVFJN-tPTfe0OZ.js} +1 -1
- package/dist/webdist/assets/{wardley-L42UT6IY-Cm1Sh5Oj.js → wardley-L42UT6IY-D7FeB03v.js} +1 -1
- package/dist/webdist/assets/{wardleyDiagram-YWT4CUSO-Bvni8f-6.js → wardleyDiagram-YWT4CUSO-BDRCgpY_.js} +1 -1
- package/dist/webdist/assets/{wrench-Uhws4miP.js → wrench-BoYGiR8D.js} +1 -1
- package/dist/webdist/assets/{xychartDiagram-2RQKCTM6-Dyk7o391.js → xychartDiagram-2RQKCTM6-CVQgje-B.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
|
+
};
|