@poe-platform/safe-bash 0.1.544 → 0.1.546
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 +1 -0
- package/dist/safe-bash/chunks/{chunk-66VSWIUC.js → chunk-4V3NGZAG.js} +10 -6
- package/dist/safe-bash/chunks/{chunk-66VSWIUC.js.map → chunk-4V3NGZAG.js.map} +1 -1
- package/dist/safe-bash/chunks/{chunk-ZYS7YCMY.js → chunk-AWP6Z3RR.js} +13 -9
- package/dist/safe-bash/chunks/{chunk-ZYS7YCMY.js.map → chunk-AWP6Z3RR.js.map} +1 -1
- package/dist/safe-bash/chunks/chunk-BZUQJTOZ.js +322 -0
- package/dist/safe-bash/chunks/chunk-BZUQJTOZ.js.map +7 -0
- package/dist/safe-bash/chunks/{chunk-EZLQA6ON.js → chunk-DKT746UJ.js} +9 -5
- package/dist/safe-bash/chunks/{chunk-EZLQA6ON.js.map → chunk-DKT746UJ.js.map} +1 -1
- package/dist/safe-bash/chunks/{chunk-PZMJ4EC3.js → chunk-EUNOVYVT.js} +17 -4
- package/dist/safe-bash/chunks/chunk-EUNOVYVT.js.map +7 -0
- package/dist/safe-bash/chunks/chunk-EUTSYRNM.js +111 -0
- package/dist/safe-bash/chunks/chunk-EUTSYRNM.js.map +7 -0
- package/dist/safe-bash/chunks/chunk-F5AOPLRZ.js +355 -0
- package/dist/safe-bash/chunks/chunk-F5AOPLRZ.js.map +7 -0
- package/dist/safe-bash/chunks/chunk-FDGESHPB.js +224 -0
- package/dist/safe-bash/chunks/chunk-FDGESHPB.js.map +7 -0
- package/dist/safe-bash/chunks/{chunk-YEJBZLE5.js → chunk-FIY2BMTU.js} +12 -8
- package/dist/safe-bash/chunks/{chunk-YEJBZLE5.js.map → chunk-FIY2BMTU.js.map} +1 -1
- package/dist/safe-bash/chunks/{chunk-R3QJL5HH.js → chunk-IDJQT32M.js} +12 -8
- package/dist/safe-bash/chunks/{chunk-R3QJL5HH.js.map → chunk-IDJQT32M.js.map} +1 -1
- package/dist/safe-bash/chunks/chunk-KYU6MXVK.js +58 -0
- package/dist/safe-bash/chunks/chunk-KYU6MXVK.js.map +7 -0
- package/dist/safe-bash/chunks/{chunk-T5BV7HPD.js → chunk-O7BRWSKX.js} +17 -60
- package/dist/safe-bash/chunks/chunk-O7BRWSKX.js.map +7 -0
- package/dist/safe-bash/chunks/{chunk-6PSMEBVP.js → chunk-PPFWG34Y.js} +2 -2
- package/dist/safe-bash/chunks/{chunk-VNDFKT6F.js → chunk-QX2X5EC5.js} +13 -9
- package/dist/safe-bash/chunks/{chunk-VNDFKT6F.js.map → chunk-QX2X5EC5.js.map} +1 -1
- package/dist/safe-bash/chunks/chunk-TTTOMUAY.js +33 -0
- package/dist/safe-bash/chunks/chunk-TTTOMUAY.js.map +7 -0
- package/dist/safe-bash/chunks/{chunk-5VBLSPNM.js → chunk-UO33SQJU.js} +2 -239
- package/dist/safe-bash/chunks/chunk-UO33SQJU.js.map +7 -0
- package/dist/safe-bash/chunks/{chunk-TPD45VUZ.js → chunk-VY5N6O6I.js} +22 -109
- package/dist/safe-bash/chunks/chunk-VY5N6O6I.js.map +7 -0
- package/dist/safe-bash/chunks/{chunk-HFEU5SBQ.js → chunk-WISNTI7E.js} +11 -7
- package/dist/safe-bash/chunks/{chunk-HFEU5SBQ.js.map → chunk-WISNTI7E.js.map} +1 -1
- package/dist/safe-bash/chunks/{chunk-A4UXQKWZ.js → chunk-WJWYJDQE.js} +12 -8
- package/dist/safe-bash/chunks/{chunk-A4UXQKWZ.js.map → chunk-WJWYJDQE.js.map} +1 -1
- package/dist/safe-bash/chunks/{chunk-AZNI263O.js → chunk-WXUZXY35.js} +3 -3
- package/dist/safe-bash/chunks/{chunk-WODV2DVM.js → chunk-X7C3PN2T.js} +11 -7
- package/dist/safe-bash/chunks/{chunk-WODV2DVM.js.map → chunk-X7C3PN2T.js.map} +1 -1
- package/dist/safe-bash/chunks/{chunk-WF4P7XKI.js → chunk-YFFFBLBC.js} +12 -8
- package/dist/safe-bash/chunks/{chunk-WF4P7XKI.js.map → chunk-YFFFBLBC.js.map} +1 -1
- package/dist/safe-bash/commands/csplit/index.browser.js +6 -4
- package/dist/safe-bash/commands/factor/index.browser.js +5 -3
- package/dist/safe-bash/commands/getopt/index.browser.js +5 -3
- package/dist/safe-bash/commands/hexdump/index.browser.js +5 -3
- package/dist/safe-bash/commands/iconv/index.browser.js +5 -3
- package/dist/safe-bash/commands/line-endings/index.browser.js +6 -4
- package/dist/safe-bash/commands/llm/command.d.ts +4 -0
- package/dist/safe-bash/commands/llm/command.d.ts.map +1 -0
- package/dist/safe-bash/commands/llm/command.js +194 -0
- package/dist/safe-bash/commands/llm/command.js.map +1 -0
- package/dist/safe-bash/commands/llm/index.browser.js +14 -0
- package/dist/safe-bash/commands/llm/index.browser.js.map +7 -0
- package/dist/safe-bash/commands/llm/index.d.ts +6 -0
- package/dist/safe-bash/commands/llm/index.d.ts.map +1 -0
- package/dist/safe-bash/commands/llm/index.js +12 -0
- package/dist/safe-bash/commands/llm/index.js.map +1 -0
- package/dist/safe-bash/commands/llm/mime.d.ts +2 -0
- package/dist/safe-bash/commands/llm/mime.d.ts.map +1 -0
- package/dist/safe-bash/commands/llm/mime.js +33 -0
- package/dist/safe-bash/commands/llm/mime.js.map +1 -0
- package/dist/safe-bash/commands/llm/providers/elevenlabs.d.ts +16 -0
- package/dist/safe-bash/commands/llm/providers/elevenlabs.d.ts.map +1 -0
- package/dist/safe-bash/commands/llm/providers/elevenlabs.js +51 -0
- package/dist/safe-bash/commands/llm/providers/elevenlabs.js.map +1 -0
- package/dist/safe-bash/commands/llm/providers/index.browser.js +13 -0
- package/dist/safe-bash/commands/llm/providers/index.browser.js.map +7 -0
- package/dist/safe-bash/commands/llm/providers/index.d.ts +4 -0
- package/dist/safe-bash/commands/llm/providers/index.d.ts.map +1 -0
- package/dist/safe-bash/commands/llm/providers/index.js +3 -0
- package/dist/safe-bash/commands/llm/providers/index.js.map +1 -0
- package/dist/safe-bash/commands/llm/providers/openai.d.ts +15 -0
- package/dist/safe-bash/commands/llm/providers/openai.d.ts.map +1 -0
- package/dist/safe-bash/commands/llm/providers/openai.js +78 -0
- package/dist/safe-bash/commands/llm/providers/openai.js.map +1 -0
- package/dist/safe-bash/commands/llm/providers/shared.d.ts +34 -0
- package/dist/safe-bash/commands/llm/providers/shared.d.ts.map +1 -0
- package/dist/safe-bash/commands/llm/providers/shared.js +220 -0
- package/dist/safe-bash/commands/llm/providers/shared.js.map +1 -0
- package/dist/safe-bash/commands/llm/types.d.ts +28 -0
- package/dist/safe-bash/commands/llm/types.d.ts.map +1 -0
- package/dist/safe-bash/commands/llm/types.js +2 -0
- package/dist/safe-bash/commands/llm/types.js.map +1 -0
- package/dist/safe-bash/commands/network/index.browser.js +13 -8
- package/dist/safe-bash/commands/pr/index.browser.js +5 -3
- package/dist/safe-bash/commands/tsort/index.browser.js +5 -3
- package/dist/safe-bash/commands/xml/index.browser.js +7 -4
- package/dist/safe-bash/commands/yq/index.browser.js +8 -5
- package/dist/safe-bash/contracts/command.d.ts +4 -0
- package/dist/safe-bash/contracts/command.d.ts.map +1 -1
- package/dist/safe-bash/contracts/command.js.map +1 -1
- package/dist/safe-bash/contracts/output.d.ts.map +1 -1
- package/dist/safe-bash/contracts/output.js +12 -2
- package/dist/safe-bash/contracts/output.js.map +1 -1
- package/dist/safe-bash/core.browser.js +1093 -1160
- package/dist/safe-bash/core.browser.js.map +4 -4
- package/dist/safe-bash/core.d.ts +2 -0
- package/dist/safe-bash/core.d.ts.map +1 -1
- package/dist/safe-bash/core.js +2 -0
- package/dist/safe-bash/core.js.map +1 -1
- package/dist/safe-bash/shell/runtime.d.ts.map +1 -1
- package/dist/safe-bash/shell/runtime.js +10 -0
- package/dist/safe-bash/shell/runtime.js.map +1 -1
- package/package.json +14 -2
- package/dist/safe-bash/chunks/chunk-5VBLSPNM.js.map +0 -7
- package/dist/safe-bash/chunks/chunk-PZMJ4EC3.js.map +0 -7
- package/dist/safe-bash/chunks/chunk-T5BV7HPD.js.map +0 -7
- package/dist/safe-bash/chunks/chunk-TPD45VUZ.js.map +0 -7
- /package/dist/safe-bash/chunks/{chunk-6PSMEBVP.js.map → chunk-PPFWG34Y.js.map} +0 -0
- /package/dist/safe-bash/chunks/{chunk-AZNI263O.js.map → chunk-WXUZXY35.js.map} +0 -0
|
@@ -1,17 +1,21 @@
|
|
|
1
|
+
import {
|
|
2
|
+
createOutputOperation
|
|
3
|
+
} from "./chunk-EUNOVYVT.js";
|
|
4
|
+
import {
|
|
5
|
+
PublicDiagnostic
|
|
6
|
+
} from "./chunk-TTTOMUAY.js";
|
|
1
7
|
import {
|
|
2
8
|
resolvePath
|
|
3
9
|
} from "./chunk-DPJWEGIX.js";
|
|
4
10
|
import {
|
|
5
|
-
createOutputOperation
|
|
6
|
-
} from "./chunk-PZMJ4EC3.js";
|
|
7
|
-
import {
|
|
8
|
-
FsError,
|
|
9
|
-
PublicDiagnostic,
|
|
10
11
|
getCommandArguments,
|
|
11
12
|
shellValueByteLength,
|
|
12
|
-
shellValueBytes
|
|
13
|
+
shellValueBytes
|
|
14
|
+
} from "./chunk-UO33SQJU.js";
|
|
15
|
+
import {
|
|
16
|
+
FsError,
|
|
13
17
|
yieldTurn
|
|
14
|
-
} from "./chunk-
|
|
18
|
+
} from "./chunk-FDGESHPB.js";
|
|
15
19
|
import {
|
|
16
20
|
init_platform
|
|
17
21
|
} from "./chunk-2KL6W6NB.js";
|
|
@@ -647,4 +651,4 @@ export {
|
|
|
647
651
|
createTsortCommands,
|
|
648
652
|
tsortCommands
|
|
649
653
|
};
|
|
650
|
-
//# sourceMappingURL=chunk-
|
|
654
|
+
//# sourceMappingURL=chunk-YFFFBLBC.js.map
|
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/commands/tsort/index.ts", "../../src/commands/tsort/command.ts", "../../src/commands/tsort/internal.ts", "../../src/commands/tsort/io.ts", "../../src/commands/tsort/graph.ts"],
|
|
4
4
|
"sourcesContent": ["import type { CommandDefinition, VirtualShellPlugin } from \"../../contracts/index.js\";\nimport { createTsortCommand } from \"./command.js\";\nimport type { TsortCommandsOptions } from \"./internal.js\";\n\nexport { createTsortCommand } from \"./command.js\";\nexport type { TsortCommandsOptions, TsortLimits } from \"./internal.js\";\n\nexport function createTsortCommands(options: TsortCommandsOptions = {}): readonly CommandDefinition[] {\n return [createTsortCommand(options)];\n}\n\nexport function tsortCommands(options: TsortCommandsOptions = {}): VirtualShellPlugin {\n const commands = createTsortCommands(options);\n return { name: \"tsort-commands\", setup(host) {\n for (const command of commands) host.commands.register(command, { replace: options.replace ?? false });\n } };\n}\n", "import type { CommandDefinition } from \"../../contracts/index.js\";\nimport { createOutputOperation } from \"../../contracts/output.js\";\nimport { Budget, TsortError, quote, settings, type TsortCommandsOptions } from \"./internal.js\";\nimport { Lifecycle, Reader } from \"./io.js\";\nimport { sort } from \"./graph.js\";\n\nexport function createTsortCommand(options: TsortCommandsOptions = {}): CommandDefinition {\n const limits = settings(options);\n return { name: \"tsort\", description: \"Topologically sort pairs of byte-valued node names\", async execute(context) {\n const output = createOutputOperation(context, context.stdout);\n const budget = new Budget(context, limits, output.signal);\n let lifecycle: Lifecycle | undefined;\n let failure: { reason: unknown } | undefined;\n let primary: { reason: unknown } | undefined;\n let exitCode = 0;\n try {\n lifecycle = new Lifecycle(budget, output);\n const args = budget.arguments();\n const lone = args.length === 1 ? args[0]! : \"\";\n if (lone.length > 2 && (\"--help\".startsWith(lone) || \"--version\".startsWith(lone))) {\n await lifecycle.write(\"--help\".startsWith(lone) ? \"Usage: tsort [OPTION] [FILE]\\nWrite a topological ordering of whitespace-separated node pairs.\\nWith no FILE, or FILE -, read standard input.\\nOptions: --help --version\\n\" : \"tsort (virtual-bash)\\n\");\n } else {\n let optionsEnded = false;\n const files: string[] = [];\n for (const argument of args) {\n if (!optionsEnded && argument === \"--\") { optionsEnded = true; continue; }\n if (!optionsEnded && argument.startsWith(\"--\")) throw new TsortError(`unrecognized option '${argument}'`, true);\n if (!optionsEnded && argument.length > 1 && argument.startsWith(\"-\")) throw new TsortError(`invalid option -- '${argument[1]}'`, true);\n files.push(argument);\n if (context.env.POSIXLY_CORRECT !== undefined) optionsEnded = true;\n }\n if (files.length > 1) throw new TsortError(`extra operand ${quote(files[1]!)}`, true);\n const reader = new Reader(files[0] ?? \"-\", lifecycle);\n await reader.open();\n exitCode = await sort(reader, lifecycle);\n }\n } catch (error) {\n primary = { reason: error };\n if (error instanceof TsortError && !output.signal.aborted && lifecycle) {\n exitCode = 1;\n try { await lifecycle.write(`tsort: ${error.message}\\n${error.usage ? \"Try 'tsort --help' for more information.\\n\" : \"\"}`, true); }\n catch (reporting) { failure = { reason: new AggregateError([error, reporting], \"tsort failure reporting failed\") }; }\n } else failure = { reason: error };\n }\n try { await output.close(); }\n catch (cleanup) {\n const previous = failure ?? primary;\n failure = { reason: previous ? new AggregateError([previous.reason, cleanup], \"tsort execution and cleanup failed\") : cleanup };\n }\n context.signal.throwIfAborted();\n output.signal.throwIfAborted();\n if (failure) throw failure.reason;\n return { exitCode };\n } };\n}\n", "import { getCommandArguments, type CommandContext } from \"../../contracts/index.js\";\nimport { shellValueByteLength, shellValueBytes } from \"../../contracts/value.js\";\nimport { yieldTurn } from \"../../contracts/yield.js\";\nimport { PublicDiagnostic } from \"../../diagnostics.js\";\n\nexport interface TsortLimits {\n readonly maxArguments: number;\n readonly maxArgumentBytes: number;\n readonly maxInputBytes: number;\n readonly maxTokenBytes: number;\n readonly maxTokens: number;\n readonly maxNodes: number;\n readonly maxEdges: number;\n readonly maxBufferedBytes: number;\n readonly maxOutputBytes: number;\n readonly maxDiagnosticBytes: number;\n readonly maxWork: number;\n readonly maxEmptyChunks: number;\n}\n\nexport interface TsortCommandsOptions {\n readonly replace?: boolean;\n readonly limits?: Partial<TsortLimits>;\n}\n\nexport function settings(options: TsortCommandsOptions): TsortLimits {\n const limits: TsortLimits = {\n maxArguments: 4096, maxArgumentBytes: 65_536, maxInputBytes: 33_554_432,\n maxTokenBytes: 1_048_576, maxTokens: 2_097_152, maxNodes: 131_072,\n maxEdges: 1_048_576, maxBufferedBytes: 33_554_432, maxOutputBytes: 67_108_864,\n maxDiagnosticBytes: 65_536, maxWork: 134_217_728, maxEmptyChunks: 4096, ...options.limits,\n };\n for (const [name, value] of Object.entries(limits)) {\n if (!Number.isSafeInteger(value) || value < 1) throw new RangeError(`Invalid tsort limit: ${name}`);\n }\n return Object.freeze(limits);\n}\n\nexport class TsortError extends PublicDiagnostic {\n constructor(message: string, readonly usage = false) { super(message); }\n}\n\nexport function raw(value: Uint8Array): string {\n let result = \"\";\n for (let offset = 0; offset < value.length; offset += 4096) result += String.fromCharCode(...value.subarray(offset, offset + 4096));\n return result;\n}\n\nexport function bytes(value: string): Uint8Array {\n return Uint8Array.from(value, character => character.charCodeAt(0));\n}\n\nexport function pathText(value: string): string {\n try { return new TextDecoder(\"utf-8\", { fatal: true, ignoreBOM: true }).decode(bytes(value)); }\n catch { throw new TsortError(\"filesystem paths must be valid UTF-8\"); }\n}\n\nexport function quote(value: string): string {\n const escapes: Readonly<Record<string, string>> = { \"\\x07\": \"\\\\a\", \"\\b\": \"\\\\b\", \"\\f\": \"\\\\f\", \"\\n\": \"\\\\n\", \"\\r\": \"\\\\r\", \"\\t\": \"\\\\t\", \"\\v\": \"\\\\v\", \"\\\\\": \"\\\\\\\\\", \"'\": \"\\\\'\" };\n let result = \"'\";\n for (const character of value) {\n const code = character.charCodeAt(0);\n result += escapes[character] ?? (code >= 32 && code < 127 ? character : `\\\\${code.toString(8).padStart(3, \"0\")}`);\n }\n return `${result}'`;\n}\n\nexport function fileQuote(value: string): string {\n let safe = value.length > 0;\n let escaped = false;\n for (const character of value) {\n const code = character.charCodeAt(0);\n if (!(character >= \"a\" && character <= \"z\" || character >= \"A\" && character <= \"Z\" || character >= \"0\" && character <= \"9\" || \"_./-\".includes(character))) safe = false;\n if (code < 32 || code >= 127) escaped = true;\n }\n if (safe) return value;\n if (!escaped) {\n if (value.includes(\"'\") && ![\"$\", \"`\", \"\\\\\", '\"'].some(character => value.includes(character))) return `\"${value}\"`;\n return `'${value.split(\"'\").join(\"'\\\\''\")}'`;\n }\n const escapes: Readonly<Record<string, string>> = { \"\\x07\": \"\\\\a\", \"\\b\": \"\\\\b\", \"\\f\": \"\\\\f\", \"\\n\": \"\\\\n\", \"\\r\": \"\\\\r\", \"\\t\": \"\\\\t\", \"\\v\": \"\\\\v\" };\n let result = \"'\", inEscape = false;\n for (const character of value) {\n const code = character.charCodeAt(0);\n if (code < 32 || code >= 127) {\n if (!inEscape) { result += \"'$'\"; inEscape = true; }\n result += escapes[character] ?? `\\\\${code.toString(8).padStart(3, \"0\")}`;\n } else {\n if (inEscape) { result += \"''\"; inEscape = false; }\n result += character === \"'\" ? \"'\\\\''\" : character;\n }\n }\n return `${result}'`;\n}\n\nexport class Budget {\n private work = 0;\n private checkpoint = 0;\n private retained = 0;\n private input = 0;\n private output = 0;\n private diagnostics = 0;\n constructor(readonly context: CommandContext, readonly limits: TsortLimits, readonly signal: AbortSignal) {}\n check(value: number, maximum: number, label: string): void {\n if (!Number.isSafeInteger(value) || value < 0 || value > maximum) throw new TsortError(`${label} limit exceeded`);\n }\n charge(amount = 1): void {\n this.signal.throwIfAborted();\n this.check(this.work + amount, this.limits.maxWork, \"work\");\n this.work += amount;\n }\n async checkpointWork(): Promise<void> {\n this.signal.throwIfAborted();\n if (this.work - this.checkpoint >= 4096) { this.checkpoint = this.work; await yieldTurn(this.signal); }\n }\n retain(amount: number): void {\n this.check(this.retained + amount, this.limits.maxBufferedBytes, \"buffered bytes\");\n this.retained += amount;\n }\n inputBytes(amount: number): void {\n this.check(this.input + amount, this.limits.maxInputBytes, \"input bytes\");\n this.input += amount;\n }\n emitted(amount: number, diagnostic: boolean): void {\n if (diagnostic) {\n this.check(this.diagnostics + amount, this.limits.maxDiagnosticBytes, \"diagnostic bytes\");\n this.diagnostics += amount;\n } else {\n this.check(this.output + amount, this.limits.maxOutputBytes, \"output bytes\");\n this.output += amount;\n this.charge(amount);\n }\n }\n arguments(): string[] {\n this.check(this.context.args.length, this.limits.maxArguments, \"argument count\");\n let total = 0;\n for (const argument of this.context.args) {\n total += argument.length;\n this.check(total, this.limits.maxArgumentBytes, \"argument bytes\");\n for (let offset = 0; offset < argument.length; offset++) {\n const unit = argument.charCodeAt(offset);\n if (unit >= 0xd800 && unit <= 0xdbff) {\n const next = argument.charCodeAt(++offset);\n if (!(next >= 0xdc00 && next <= 0xdfff)) throw new TsortError(\"arguments must contain well-formed Unicode\");\n } else if (unit >= 0xdc00 && unit <= 0xdfff) throw new TsortError(\"arguments must contain well-formed Unicode\");\n }\n }\n total = 0;\n const values = this.context.argumentValues === undefined ? this.context.args : getCommandArguments(this.context).values;\n for (const argument of values) {\n total += shellValueByteLength(argument);\n this.check(total, this.limits.maxArgumentBytes, \"argument bytes\");\n }\n this.charge(total);\n this.retain(total * 8 + this.context.args.length * 64 + 128);\n total = 0;\n return getCommandArguments(this.context).values.map(argument => {\n total += shellValueByteLength(argument);\n this.check(total, this.limits.maxArgumentBytes, \"argument bytes\");\n this.charge(shellValueByteLength(argument));\n const value = shellValueBytes(argument);\n if (value.includes(0)) throw new TsortError(\"NUL is not supported in arguments\");\n return raw(value);\n });\n }\n}\n", "import { FsError, resolvePath, type ByteSource } from \"../../contracts/index.js\";\nimport type { OutputOperation } from \"../../contracts/output.js\";\nimport { Budget, TsortError, bytes, fileQuote, pathText } from \"./internal.js\";\n\nexport class Lifecycle {\n private readonly pending = new Set<Promise<unknown>>();\n private readonly cleanups: (() => Promise<void>)[] = [];\n private closing: Promise<void> | undefined;\n constructor(readonly budget: Budget, output: OutputOperation) { output.registerCleanup(() => this.close()); }\n cleanup(action: () => Promise<void>): void { this.assertOpen(); this.cleanups.push(action); }\n assertOpen(): void {\n this.budget.signal.throwIfAborted();\n if (this.closing) throw new TsortError(\"command is closed\");\n }\n async operation<Value>(action: () => Value | Promise<Value>, diagnostic = false): Promise<Value> {\n this.assertOpen();\n if (!diagnostic) this.budget.charge();\n const pending = Promise.resolve().then(() => { this.assertOpen(); return action(); });\n this.pending.add(pending);\n try { const value = await pending; this.assertOpen(); return value; }\n finally { this.pending.delete(pending); }\n }\n close(): Promise<void> {\n return this.closing ??= Promise.resolve().then(async () => {\n while (this.pending.size) await Promise.allSettled([...this.pending]);\n const failures: unknown[] = [];\n for (const cleanup of this.cleanups) {\n try { await cleanup(); } catch (error) { failures.push(error); }\n }\n if (failures.length === 1) throw failures[0];\n if (failures.length > 1) throw new AggregateError(failures, \"tsort cleanup failed\");\n });\n }\n async write(value: string, diagnostic = false): Promise<void> {\n this.budget.emitted(value.length, diagnostic);\n await this.operation(async () => {\n if (!diagnostic) this.budget.retain(value.length * 3);\n try {\n const sink = diagnostic ? this.budget.context.stderr : this.budget.context.stdout;\n this.assertOpen();\n const destination = sink.ownedOutput ?? sink;\n this.assertOpen();\n const write = destination.write;\n this.assertOpen();\n await Reflect.apply(write, destination, [bytes(value)]);\n } finally { if (!diagnostic) this.budget.retain(-value.length * 3); }\n }, diagnostic);\n }\n}\n\nexport class Reader {\n private iterator: AsyncIterator<Uint8Array> | undefined;\n private chunk: Uint8Array = new Uint8Array();\n private offset = 0;\n private ended = false;\n private empties = 0;\n private snapshotBytes = 0;\n constructor(readonly name: string, readonly lifecycle: Lifecycle) {\n lifecycle.cleanup(async () => {\n try { if (!this.ended) await this.iterator?.return?.(); }\n finally {\n this.iterator = undefined;\n this.releaseSnapshot();\n lifecycle.budget.retain(-this.chunk.length);\n this.chunk = new Uint8Array();\n }\n });\n }\n private readonly releaseSnapshot = (): void => {\n this.lifecycle.budget.retain(-this.snapshotBytes);\n this.snapshotBytes = 0;\n };\n async open(): Promise<void> {\n const { budget } = this.lifecycle;\n try {\n await this.lifecycle.operation(async () => {\n let source: ByteSource;\n let needsAcquisitionCleanup = false;\n if (this.name === \"-\") source = budget.context.stdin;\n else {\n const path = resolvePath(budget.context.cwd, pathText(this.name));\n const fs = budget.context.fs;\n this.lifecycle.assertOpen();\n const statMethod = fs.stat;\n this.lifecycle.assertOpen();\n const stat = await Reflect.apply(statMethod, fs, [path, { signal: budget.signal }]);\n this.lifecycle.assertOpen();\n if (stat.type === \"directory\") { this.ended = true; return; }\n if (stat.type !== \"file\" && stat.type !== \"character\") throw new FsError(\"ENOTSUP\", { path });\n const capabilitiesFor = fs.capabilitiesFor;\n this.lifecycle.assertOpen();\n const selected = capabilitiesFor ? await Reflect.apply(capabilitiesFor, fs, [path, { signal: budget.signal }]) : undefined;\n this.lifecycle.assertOpen();\n const capabilities = selected ?? fs.capabilities;\n this.lifecycle.assertOpen();\n const readStream = fs.readStream;\n this.lifecycle.assertOpen();\n const streamingRead = readStream && capabilities.streamingRead !== false;\n this.lifecycle.assertOpen();\n if (readStream && streamingRead) {\n source = Reflect.apply(readStream, fs, [path, { signal: budget.signal, chunkSize: 16_384 }]);\n needsAcquisitionCleanup = budget.signal.aborted;\n }\n else {\n const maximum = Math.min(budget.limits.maxInputBytes, Math.floor(budget.limits.maxBufferedBytes / 2));\n budget.check(stat.size, maximum, \"buffered input bytes\");\n budget.retain(maximum);\n this.snapshotBytes = maximum;\n const readFile = fs.readFile;\n this.lifecycle.assertOpen();\n const content = await Reflect.apply(readFile, fs, [path, { signal: budget.signal, maxBytes: maximum }]);\n if (!(content instanceof Uint8Array)) throw new TypeError(\"tsort input requires bytes\");\n budget.check(content.length, maximum, \"buffered input bytes\");\n budget.retain(content.length - maximum);\n this.snapshotBytes = content.length;\n const { releaseSnapshot } = this;\n source = { async *[Symbol.asyncIterator]() { try { yield content; } finally { releaseSnapshot(); } } };\n }\n }\n if (!needsAcquisitionCleanup) this.lifecycle.assertOpen();\n const factory = source[Symbol.asyncIterator];\n if (!needsAcquisitionCleanup) this.lifecycle.assertOpen();\n this.iterator = Reflect.apply(factory, source, []);\n });\n } catch (error) {\n if (error instanceof FsError) throw new TsortError(`${fileQuote(this.name)}: ${fsDetail(error)}`);\n throw error;\n }\n }\n async get(): Promise<number> {\n const { budget } = this.lifecycle;\n budget.charge();\n await budget.checkpointWork();\n while (this.offset === this.chunk.length) {\n if (this.ended) return -1;\n let next: IteratorResult<Uint8Array>;\n try {\n next = await this.lifecycle.operation(() => {\n const iterator = this.iterator!;\n const advance = iterator.next;\n this.lifecycle.assertOpen();\n return Reflect.apply(advance, iterator, []);\n });\n }\n catch (error) {\n if (error instanceof FsError) throw new TsortError(`${fileQuote(this.name)}: ${fsDetail(error)}`);\n throw error;\n }\n budget.retain(-this.chunk.length);\n this.chunk = new Uint8Array();\n this.offset = 0;\n if (next.done) { this.ended = true; this.iterator = undefined; return -1; }\n if (!(next.value instanceof Uint8Array)) throw new TypeError(\"tsort input requires bytes\");\n budget.inputBytes(next.value.length);\n budget.charge(next.value.length);\n budget.retain(next.value.length);\n this.chunk = Uint8Array.from(next.value);\n if (!this.chunk.length) budget.check(++this.empties, budget.limits.maxEmptyChunks, \"empty input chunks\");\n }\n return this.chunk[this.offset++]!;\n }\n}\n\nfunction fsDetail(error: FsError): string {\n const details: Partial<Record<FsError[\"code\"], string>> = {\n EACCES: \"Permission denied\", EPERM: \"Operation not permitted\", ENOENT: \"No such file or directory\",\n EISDIR: \"Is a directory\", ENOTDIR: \"Not a directory\", EIO: \"Input/output error\", ELOOP: \"Too many levels of symbolic links\",\n ENAMETOOLONG: \"File name too long\", ENOTSUP: \"Operation not supported\",\n };\n return details[error.code] ?? error.message;\n}\n", "import { TsortError, fileQuote, raw } from \"./internal.js\";\nimport { Lifecycle, Reader } from \"./io.js\";\n\ninterface Edge { target: Node; next: Edge | undefined }\ninterface Node { name: string; count: number; printed: boolean; top: Edge | undefined; link: Node | undefined }\n\nexport async function sort(reader: Reader, lifecycle: Lifecycle): Promise<number> {\n const { budget } = lifecycle;\n const nodes = new Map<string, Node>();\n let tokens = 0, edges = 0, length = 0, nameLength = 0;\n let nul = false;\n let token: Uint8Array = new Uint8Array();\n let predecessor: Node | undefined;\n const admitToken = (): void => {\n budget.check(++tokens, budget.limits.maxTokens, \"tokens\");\n budget.charge(nameLength + 1);\n budget.retain(nameLength * 4);\n const name = raw(token.subarray(0, nameLength));\n let node = nodes.get(name);\n if (!node) {\n budget.check(nodes.size + 1, budget.limits.maxNodes, \"nodes\");\n budget.retain(160);\n node = { name, count: 0, printed: false, top: undefined, link: undefined };\n nodes.set(name, node);\n } else budget.retain(-nameLength * 4);\n if (!predecessor) predecessor = node;\n else {\n if (predecessor !== node) {\n budget.check(++edges, budget.limits.maxEdges, \"edges\");\n budget.retain(48);\n predecessor.top = { target: node, next: predecessor.top };\n node.count++;\n }\n predecessor = undefined;\n }\n length = 0;\n nameLength = 0;\n nul = false;\n };\n for (;;) {\n const value = await reader.get();\n if (value < 0 || value === 32 || value === 9 || value === 10) {\n if (length) admitToken();\n if (value < 0) break;\n } else {\n budget.check(++length, budget.limits.maxTokenBytes, \"token bytes\");\n if (value === 0) nul = true;\n if (!nul) {\n if (nameLength === token.length) {\n const capacity = Math.min(budget.limits.maxTokenBytes, Math.max(64, token.length * 2));\n budget.retain(capacity);\n budget.charge(token.length);\n const grown = new Uint8Array(capacity);\n grown.set(token);\n budget.retain(-token.length);\n token = grown;\n }\n token[nameLength++] = value;\n }\n }\n }\n budget.retain(-token.length);\n token = new Uint8Array();\n if (predecessor) throw new TsortError(`${fileQuote(reader.name)}: input contains an odd number of tokens`);\n budget.retain(nodes.size * 16);\n let ordered = [...nodes.values()];\n let scratch = new Array<Node>(ordered.length);\n for (let width = 1; width < ordered.length; width *= 2) {\n for (let start = 0; start < ordered.length; start += width * 2) {\n const middle = Math.min(start + width, ordered.length), end = Math.min(start + width * 2, ordered.length);\n let left = start, right = middle;\n for (let offset = start; offset < end; offset++) {\n budget.charge();\n let useLeft = right === end;\n if (left < middle && right < end) {\n budget.charge(Math.min(ordered[left]!.name.length, ordered[right]!.name.length) + 1);\n useLeft = ordered[left]!.name < ordered[right]!.name;\n }\n scratch[offset] = left < middle && useLeft ? ordered[left++]! : ordered[right++]!;\n await budget.checkpointWork();\n }\n }\n [ordered, scratch] = [scratch, ordered];\n }\n let remaining = ordered.length, status = 0;\n while (remaining) {\n let head: Node | undefined, tail: Node | undefined;\n for (const node of ordered) {\n budget.charge();\n if (!node.printed && !node.count) {\n if (tail) tail.link = node; else head = node;\n tail = node;\n node.link = undefined;\n }\n await budget.checkpointWork();\n }\n while (head) {\n const node: Node = head;\n budget.check(node.name.length + 1, budget.limits.maxOutputBytes, \"output bytes\");\n await lifecycle.write(`${node.name}\\n`);\n node.printed = true;\n remaining--;\n for (let edge = node.top; edge; edge = edge.next) {\n budget.charge();\n if (!--edge.target.count) {\n tail!.link = edge.target;\n tail = edge.target;\n tail.link = undefined;\n }\n await budget.checkpointWork();\n }\n head = node.link;\n node.link = undefined;\n }\n if (!remaining) break;\n status = 1;\n await lifecycle.write(`tsort: ${fileQuote(reader.name)}: input contains a loop:\\n`, true);\n let loop: Node | undefined;\n do {\n let found = false;\n for (const node of ordered) {\n budget.charge();\n await budget.checkpointWork();\n if (!node.count) continue;\n if (!loop) { loop = node; continue; }\n let previous: Edge | undefined;\n for (let edge = node.top; edge; edge = edge.next) {\n budget.charge();\n await budget.checkpointWork();\n if (edge.target === loop) {\n if (node.link) {\n while (loop) {\n budget.charge();\n const next: Node | undefined = loop.link;\n await lifecycle.write(`tsort: ${loop.name}\\n`, true);\n if (loop === node) {\n edge.target.count--;\n if (previous) previous.next = edge.next; else node.top = edge.next;\n break;\n }\n loop.link = undefined;\n loop = next;\n }\n while (loop) {\n budget.charge();\n const next: Node | undefined = loop.link;\n loop.link = undefined;\n loop = next;\n await budget.checkpointWork();\n }\n found = true;\n } else { node.link = loop; loop = node; }\n break;\n }\n previous = edge;\n }\n if (found) break;\n }\n } while (loop);\n }\n return status;\n}\n"],
|
|
5
|
-
"mappings": "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",
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -2,11 +2,13 @@ import {
|
|
|
2
2
|
createCsplitCommand,
|
|
3
3
|
createCsplitCommands,
|
|
4
4
|
csplitCommands
|
|
5
|
-
} from "../../chunks/chunk-
|
|
6
|
-
import "../../chunks/chunk-
|
|
5
|
+
} from "../../chunks/chunk-X7C3PN2T.js";
|
|
6
|
+
import "../../chunks/chunk-WXUZXY35.js";
|
|
7
|
+
import "../../chunks/chunk-EUNOVYVT.js";
|
|
8
|
+
import "../../chunks/chunk-TTTOMUAY.js";
|
|
7
9
|
import "../../chunks/chunk-DPJWEGIX.js";
|
|
8
|
-
import "../../chunks/chunk-
|
|
9
|
-
import "../../chunks/chunk-
|
|
10
|
+
import "../../chunks/chunk-UO33SQJU.js";
|
|
11
|
+
import "../../chunks/chunk-FDGESHPB.js";
|
|
10
12
|
import "../../chunks/chunk-2KL6W6NB.js";
|
|
11
13
|
export {
|
|
12
14
|
createCsplitCommand,
|
|
@@ -2,9 +2,11 @@ import {
|
|
|
2
2
|
createFactorCommand,
|
|
3
3
|
createFactorCommands,
|
|
4
4
|
factorCommands
|
|
5
|
-
} from "../../chunks/chunk-
|
|
6
|
-
import "../../chunks/chunk-
|
|
7
|
-
import "../../chunks/chunk-
|
|
5
|
+
} from "../../chunks/chunk-4V3NGZAG.js";
|
|
6
|
+
import "../../chunks/chunk-EUNOVYVT.js";
|
|
7
|
+
import "../../chunks/chunk-TTTOMUAY.js";
|
|
8
|
+
import "../../chunks/chunk-UO33SQJU.js";
|
|
9
|
+
import "../../chunks/chunk-FDGESHPB.js";
|
|
8
10
|
import "../../chunks/chunk-2KL6W6NB.js";
|
|
9
11
|
export {
|
|
10
12
|
createFactorCommand,
|
|
@@ -2,9 +2,11 @@ import {
|
|
|
2
2
|
createGetoptCommand,
|
|
3
3
|
createGetoptCommands,
|
|
4
4
|
getoptCommands
|
|
5
|
-
} from "../../chunks/chunk-
|
|
6
|
-
import "../../chunks/chunk-
|
|
7
|
-
import "../../chunks/chunk-
|
|
5
|
+
} from "../../chunks/chunk-DKT746UJ.js";
|
|
6
|
+
import "../../chunks/chunk-EUNOVYVT.js";
|
|
7
|
+
import "../../chunks/chunk-TTTOMUAY.js";
|
|
8
|
+
import "../../chunks/chunk-UO33SQJU.js";
|
|
9
|
+
import "../../chunks/chunk-FDGESHPB.js";
|
|
8
10
|
import "../../chunks/chunk-2KL6W6NB.js";
|
|
9
11
|
export {
|
|
10
12
|
createGetoptCommand,
|
|
@@ -3,10 +3,12 @@ import {
|
|
|
3
3
|
createHexdumpCommand,
|
|
4
4
|
createHexdumpCommands,
|
|
5
5
|
hexdumpCommands
|
|
6
|
-
} from "../../chunks/chunk-
|
|
6
|
+
} from "../../chunks/chunk-IDJQT32M.js";
|
|
7
|
+
import "../../chunks/chunk-EUNOVYVT.js";
|
|
8
|
+
import "../../chunks/chunk-TTTOMUAY.js";
|
|
7
9
|
import "../../chunks/chunk-DPJWEGIX.js";
|
|
8
|
-
import "../../chunks/chunk-
|
|
9
|
-
import "../../chunks/chunk-
|
|
10
|
+
import "../../chunks/chunk-UO33SQJU.js";
|
|
11
|
+
import "../../chunks/chunk-FDGESHPB.js";
|
|
10
12
|
import "../../chunks/chunk-2KL6W6NB.js";
|
|
11
13
|
export {
|
|
12
14
|
createHdCommand,
|
|
@@ -2,10 +2,12 @@ import {
|
|
|
2
2
|
createIconvCommand,
|
|
3
3
|
createIconvCommands,
|
|
4
4
|
iconvCommands
|
|
5
|
-
} from "../../chunks/chunk-
|
|
5
|
+
} from "../../chunks/chunk-WJWYJDQE.js";
|
|
6
|
+
import "../../chunks/chunk-EUNOVYVT.js";
|
|
7
|
+
import "../../chunks/chunk-TTTOMUAY.js";
|
|
6
8
|
import "../../chunks/chunk-DPJWEGIX.js";
|
|
7
|
-
import "../../chunks/chunk-
|
|
8
|
-
import "../../chunks/chunk-
|
|
9
|
+
import "../../chunks/chunk-UO33SQJU.js";
|
|
10
|
+
import "../../chunks/chunk-FDGESHPB.js";
|
|
9
11
|
import "../../chunks/chunk-2KL6W6NB.js";
|
|
10
12
|
export {
|
|
11
13
|
createIconvCommand,
|
|
@@ -3,11 +3,13 @@ import {
|
|
|
3
3
|
createLineEndingCommands,
|
|
4
4
|
createUnix2dosCommand,
|
|
5
5
|
lineEndingCommands
|
|
6
|
-
} from "../../chunks/chunk-
|
|
7
|
-
import "../../chunks/chunk-
|
|
6
|
+
} from "../../chunks/chunk-AWP6Z3RR.js";
|
|
7
|
+
import "../../chunks/chunk-WXUZXY35.js";
|
|
8
|
+
import "../../chunks/chunk-EUNOVYVT.js";
|
|
9
|
+
import "../../chunks/chunk-TTTOMUAY.js";
|
|
8
10
|
import "../../chunks/chunk-DPJWEGIX.js";
|
|
9
|
-
import "../../chunks/chunk-
|
|
10
|
-
import "../../chunks/chunk-
|
|
11
|
+
import "../../chunks/chunk-UO33SQJU.js";
|
|
12
|
+
import "../../chunks/chunk-FDGESHPB.js";
|
|
11
13
|
import "../../chunks/chunk-2KL6W6NB.js";
|
|
12
14
|
export {
|
|
13
15
|
createDos2unixCommand,
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"command.d.ts","sourceRoot":"","sources":["../../../src/commands/llm/command.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkF,KAAK,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAGlJ,OAAO,KAAK,EAAE,kBAAkB,EAAqC,MAAM,YAAY,CAAC;AAIxF,wBAAgB,aAAa,CAAC,OAAO,EAAE,kBAAkB,GAAG,iBAAiB,CA+I5E"}
|
|
@@ -0,0 +1,194 @@
|
|
|
1
|
+
import { createOutputOperation, getCommandArguments, readBytes, resolvePath, writeBytes } from "../../contracts/index.js";
|
|
2
|
+
import { yieldTurn } from "../../contracts/yield.js";
|
|
3
|
+
import { attachmentMime } from "./mime.js";
|
|
4
|
+
const maxBytes = 64 * 1024 * 1024;
|
|
5
|
+
export function createCommand(options) {
|
|
6
|
+
const models = new Map();
|
|
7
|
+
const declarations = [];
|
|
8
|
+
for (const provider of options.providers) {
|
|
9
|
+
if (!provider.name || typeof provider.complete !== "function")
|
|
10
|
+
throw new TypeError("Invalid LLM provider");
|
|
11
|
+
for (const source of provider.models) {
|
|
12
|
+
const model = { ...source, ...(source.aliases ? { aliases: [...source.aliases] } : {}), ...(source.attachmentTypes ? { attachmentTypes: [...source.attachmentTypes] } : {}) };
|
|
13
|
+
const entry = { provider, model };
|
|
14
|
+
for (const name of [model.id, ...(model.aliases ?? [])]) {
|
|
15
|
+
if (!name)
|
|
16
|
+
throw new TypeError("Model names must be nonempty");
|
|
17
|
+
if (models.has(name))
|
|
18
|
+
throw new Error(`Duplicate model: ${name}`);
|
|
19
|
+
models.set(name, entry);
|
|
20
|
+
}
|
|
21
|
+
declarations.push(entry);
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
return { name: "llm", description: "Query explicitly injected language and media models", async execute(context) {
|
|
25
|
+
const output = createOutputOperation(context, context.stdout);
|
|
26
|
+
const signal = output.signal;
|
|
27
|
+
let iterator;
|
|
28
|
+
let closed = false;
|
|
29
|
+
let ended = false;
|
|
30
|
+
output.registerCleanup(() => {
|
|
31
|
+
if (closed)
|
|
32
|
+
return;
|
|
33
|
+
closed = true;
|
|
34
|
+
if (!ended && iterator?.return) {
|
|
35
|
+
const returned = Promise.resolve().then(() => iterator.return());
|
|
36
|
+
void returned.catch(() => { });
|
|
37
|
+
}
|
|
38
|
+
});
|
|
39
|
+
const wait = (pending) => new Promise((resolve, reject) => {
|
|
40
|
+
const abort = () => reject(signal.reason);
|
|
41
|
+
signal.addEventListener("abort", abort, { once: true });
|
|
42
|
+
if (signal.aborted)
|
|
43
|
+
abort();
|
|
44
|
+
Promise.resolve(pending).then(value => {
|
|
45
|
+
signal.removeEventListener("abort", abort);
|
|
46
|
+
resolve(value);
|
|
47
|
+
}, error => { signal.removeEventListener("abort", abort); reject(error); });
|
|
48
|
+
});
|
|
49
|
+
let inputBytes = 0;
|
|
50
|
+
let argumentBytes = 0;
|
|
51
|
+
let work = 0;
|
|
52
|
+
const step = async () => {
|
|
53
|
+
signal.throwIfAborted();
|
|
54
|
+
if (closed)
|
|
55
|
+
throw new Error("LLM invocation is closed");
|
|
56
|
+
if (++work > 1_000_000)
|
|
57
|
+
throw new Error("LLM work limit exceeded");
|
|
58
|
+
if (work % 256 === 0)
|
|
59
|
+
await yieldTurn(signal);
|
|
60
|
+
};
|
|
61
|
+
const admit = (bytes) => {
|
|
62
|
+
context.inputBudget?.check(inputBytes + bytes);
|
|
63
|
+
if (bytes > maxBytes - inputBytes)
|
|
64
|
+
throw new Error("LLM input byte limit exceeded");
|
|
65
|
+
inputBytes += bytes;
|
|
66
|
+
};
|
|
67
|
+
const emitText = async (text) => {
|
|
68
|
+
for (let offset = 0; offset < text.length;) {
|
|
69
|
+
await step();
|
|
70
|
+
let end = Math.min(text.length, offset + 16_384);
|
|
71
|
+
if (end < text.length && text.charCodeAt(end - 1) >= 0xd800 && text.charCodeAt(end - 1) <= 0xdbff)
|
|
72
|
+
end--;
|
|
73
|
+
await output.output.write(new TextEncoder().encode(text.slice(offset, end)));
|
|
74
|
+
offset = end;
|
|
75
|
+
}
|
|
76
|
+
};
|
|
77
|
+
try {
|
|
78
|
+
const args = getCommandArguments(context);
|
|
79
|
+
const text = (index) => {
|
|
80
|
+
const bytes = args.bytes(index);
|
|
81
|
+
if (!bytes)
|
|
82
|
+
throw new Error("Missing option argument");
|
|
83
|
+
if (bytes.length > maxBytes - argumentBytes)
|
|
84
|
+
throw new Error("LLM argument byte limit exceeded");
|
|
85
|
+
argumentBytes += bytes.length;
|
|
86
|
+
return new TextDecoder("utf-8", { fatal: true }).decode(bytes);
|
|
87
|
+
};
|
|
88
|
+
const positional = [];
|
|
89
|
+
const files = [];
|
|
90
|
+
const settings = Object.create(null);
|
|
91
|
+
let modelName = options.defaultModel;
|
|
92
|
+
let system;
|
|
93
|
+
let operands = false;
|
|
94
|
+
for (let index = 0; index < args.args.length; index++) {
|
|
95
|
+
await step();
|
|
96
|
+
const arg = text(index);
|
|
97
|
+
if (!operands && arg === "--") {
|
|
98
|
+
operands = true;
|
|
99
|
+
continue;
|
|
100
|
+
}
|
|
101
|
+
if (!operands && ["-m", "--model"].includes(arg))
|
|
102
|
+
modelName = text(++index);
|
|
103
|
+
else if (!operands && ["-s", "--system"].includes(arg))
|
|
104
|
+
system = text(++index);
|
|
105
|
+
else if (!operands && ["-o", "--option"].includes(arg)) {
|
|
106
|
+
const key = text(++index);
|
|
107
|
+
settings[key] = text(++index);
|
|
108
|
+
}
|
|
109
|
+
else if (!operands && ["-a", "--attachment", "--at"].includes(arg)) {
|
|
110
|
+
const path = text(++index);
|
|
111
|
+
files.push(arg === "--at" ? { path, mime: text(++index) } : { path });
|
|
112
|
+
}
|
|
113
|
+
else if (!operands && arg.startsWith("-"))
|
|
114
|
+
throw new Error(`Unknown option: ${arg}`);
|
|
115
|
+
else
|
|
116
|
+
positional.push(arg);
|
|
117
|
+
}
|
|
118
|
+
if (args.args[0] === "models" && positional.length === 1 && !files.length) {
|
|
119
|
+
for (const { provider, model } of declarations) {
|
|
120
|
+
await step();
|
|
121
|
+
await emitText(`${provider.name}/${model.id}\taliases: ${(model.aliases ?? []).join(", ")}\tattachments: ${(model.attachmentTypes ?? []).join(", ")}\toutput: ${model.outputType ?? "text/plain"}\n`);
|
|
122
|
+
}
|
|
123
|
+
return { exitCode: 0 };
|
|
124
|
+
}
|
|
125
|
+
const selected = modelName === undefined ? undefined : models.get(modelName);
|
|
126
|
+
if (!selected)
|
|
127
|
+
throw new Error(`Unknown model: ${modelName ?? "(no default model)"}`);
|
|
128
|
+
const chunks = [];
|
|
129
|
+
let stdinBytes = 0;
|
|
130
|
+
for await (const bytes of readBytes(context.stdin, signal)) {
|
|
131
|
+
await step();
|
|
132
|
+
admit(bytes.length);
|
|
133
|
+
stdinBytes += bytes.length;
|
|
134
|
+
chunks.push(new Uint8Array(bytes));
|
|
135
|
+
}
|
|
136
|
+
const stdin = new Uint8Array(stdinBytes);
|
|
137
|
+
let offset = 0;
|
|
138
|
+
for (const bytes of chunks) {
|
|
139
|
+
stdin.set(bytes, offset);
|
|
140
|
+
offset += bytes.length;
|
|
141
|
+
}
|
|
142
|
+
const content = new TextDecoder("utf-8", { fatal: true }).decode(stdin);
|
|
143
|
+
const instruction = positional.join(" ");
|
|
144
|
+
const attachments = [];
|
|
145
|
+
for (const file of files) {
|
|
146
|
+
await step();
|
|
147
|
+
const path = resolvePath(context.cwd, file.path);
|
|
148
|
+
const stat = await wait(context.fs.stat(path, { signal }));
|
|
149
|
+
context.inputBudget?.check(inputBytes + stat.size);
|
|
150
|
+
if (stat.size > maxBytes - inputBytes)
|
|
151
|
+
throw new Error("LLM input byte limit exceeded");
|
|
152
|
+
const bytes = await wait(context.fs.readFile(path, { signal, maxBytes: Math.min(maxBytes, context.inputBudget?.maxBytes ?? maxBytes) - inputBytes }));
|
|
153
|
+
signal.throwIfAborted();
|
|
154
|
+
admit(bytes.length);
|
|
155
|
+
const mimeType = file.mime ?? attachmentMime(bytes, file.path);
|
|
156
|
+
if (!selected.model.attachmentTypes?.some(type => type === mimeType || (type.endsWith("/*") && mimeType.startsWith(type.slice(0, -1)))))
|
|
157
|
+
throw new Error(`Model ${selected.model.id} does not accept ${mimeType}`);
|
|
158
|
+
attachments.push({ mimeType, bytes: new Uint8Array(bytes) });
|
|
159
|
+
}
|
|
160
|
+
const request = { model: selected.model.id, prompt: content && instruction ? `${content}\n\n${instruction}` : content || instruction, attachments, options: settings, signal, ...(system === undefined ? {} : { system }) };
|
|
161
|
+
signal.throwIfAborted();
|
|
162
|
+
iterator = selected.provider.complete(request)[Symbol.asyncIterator]();
|
|
163
|
+
const binary = !(selected.model.outputType ?? "text/plain").startsWith("text/");
|
|
164
|
+
while (true) {
|
|
165
|
+
await step();
|
|
166
|
+
const next = await wait(iterator.next());
|
|
167
|
+
signal.throwIfAborted();
|
|
168
|
+
if (next.done) {
|
|
169
|
+
ended = true;
|
|
170
|
+
break;
|
|
171
|
+
}
|
|
172
|
+
if (binary ? !(next.value instanceof Uint8Array) : typeof next.value !== "string")
|
|
173
|
+
throw new Error("Invalid provider response: mixed text and binary chunks or wrong output type");
|
|
174
|
+
if (typeof next.value === "string")
|
|
175
|
+
await emitText(next.value);
|
|
176
|
+
else
|
|
177
|
+
await output.output.write(next.value);
|
|
178
|
+
}
|
|
179
|
+
if (!binary)
|
|
180
|
+
await output.output.write(new Uint8Array([10]));
|
|
181
|
+
return { exitCode: 0 };
|
|
182
|
+
}
|
|
183
|
+
catch (error) {
|
|
184
|
+
context.signal.throwIfAborted();
|
|
185
|
+
signal.throwIfAborted();
|
|
186
|
+
await writeBytes(context.stderr, new TextEncoder().encode(`llm: ${error instanceof Error ? error.message.slice(0, 4096) : "Provider failed"}\n`), context.signal);
|
|
187
|
+
return { exitCode: 1 };
|
|
188
|
+
}
|
|
189
|
+
finally {
|
|
190
|
+
await output.close();
|
|
191
|
+
}
|
|
192
|
+
} };
|
|
193
|
+
}
|
|
194
|
+
//# sourceMappingURL=command.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"command.js","sourceRoot":"","sources":["../../../src/commands/llm/command.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import {
|
|
2
|
+
createLlmCommands,
|
|
3
|
+
llmCommands
|
|
4
|
+
} from "../../chunks/chunk-F5AOPLRZ.js";
|
|
5
|
+
import "../../chunks/chunk-EUNOVYVT.js";
|
|
6
|
+
import "../../chunks/chunk-DPJWEGIX.js";
|
|
7
|
+
import "../../chunks/chunk-UO33SQJU.js";
|
|
8
|
+
import "../../chunks/chunk-FDGESHPB.js";
|
|
9
|
+
import "../../chunks/chunk-2KL6W6NB.js";
|
|
10
|
+
export {
|
|
11
|
+
createLlmCommands,
|
|
12
|
+
llmCommands
|
|
13
|
+
};
|
|
14
|
+
//# sourceMappingURL=index.browser.js.map
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { CommandDefinition, VirtualShellPlugin } from "../../contracts/index.js";
|
|
2
|
+
import type { LlmCommandsOptions } from "./types.js";
|
|
3
|
+
export type { LlmProvider, LlmModel, LlmRequest, LlmCommandsOptions } from "./types.js";
|
|
4
|
+
export declare function createLlmCommands(options: LlmCommandsOptions): readonly CommandDefinition[];
|
|
5
|
+
export declare function llmCommands(options: LlmCommandsOptions): VirtualShellPlugin;
|
|
6
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/llm/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAEtF,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AACrD,YAAY,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAExF,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,kBAAkB,GAAG,SAAS,iBAAiB,EAAE,CAE3F;AAED,wBAAgB,WAAW,CAAC,OAAO,EAAE,kBAAkB,GAAG,kBAAkB,CAK3E"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { createCommand } from "./command.js";
|
|
2
|
+
export function createLlmCommands(options) {
|
|
3
|
+
return [createCommand(options)];
|
|
4
|
+
}
|
|
5
|
+
export function llmCommands(options) {
|
|
6
|
+
const commands = createLlmCommands(options);
|
|
7
|
+
return { name: "llm-commands", setup(host) {
|
|
8
|
+
for (const command of commands)
|
|
9
|
+
host.commands.register(command, { replace: options.replace ?? false });
|
|
10
|
+
} };
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/llm/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAI7C,MAAM,UAAU,iBAAiB,CAAC,OAA2B;IAC3D,OAAO,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC;AAClC,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,OAA2B;IACrD,MAAM,QAAQ,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAC;IAC5C,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,CAAC,IAAI;YACvC,KAAK,MAAM,OAAO,IAAI,QAAQ;gBAAE,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,KAAK,EAAE,CAAC,CAAC;QACzG,CAAC,EAAE,CAAC;AACN,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mime.d.ts","sourceRoot":"","sources":["../../../src/commands/llm/mime.ts"],"names":[],"mappings":"AASA,wBAAgB,cAAc,CAAC,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAgBtE"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { classify } from "../file/classify.js";
|
|
2
|
+
const extensions = {
|
|
3
|
+
png: "image/png", jpg: "image/jpeg", jpeg: "image/jpeg", gif: "image/gif", webp: "image/webp", svg: "image/svg+xml",
|
|
4
|
+
mp3: "audio/mpeg", wav: "audio/wav", ogg: "audio/ogg", flac: "audio/flac", m4a: "audio/mp4", aac: "audio/aac",
|
|
5
|
+
mp4: "video/mp4", mov: "video/quicktime", webm: "video/webm", mkv: "video/x-matroska", avi: "video/x-msvideo",
|
|
6
|
+
pdf: "application/pdf", txt: "text/plain", json: "application/json", csv: "text/csv",
|
|
7
|
+
};
|
|
8
|
+
export function attachmentMime(bytes, path) {
|
|
9
|
+
const prefix = bytes.subarray(0, 512);
|
|
10
|
+
const ascii = (offset, length) => String.fromCharCode(...prefix.subarray(offset, offset + length));
|
|
11
|
+
if (prefix.length >= 7 && prefix[0] === 255 && (prefix[1] & 246) === 240)
|
|
12
|
+
return "audio/aac";
|
|
13
|
+
if (ascii(0, 3) === "ID3" || (prefix[0] === 255 && (prefix[1] & 224) === 224 && (prefix[1] & 6) !== 0))
|
|
14
|
+
return "audio/mpeg";
|
|
15
|
+
if (ascii(0, 4) === "fLaC")
|
|
16
|
+
return "audio/flac";
|
|
17
|
+
if (ascii(0, 4) === "OggS")
|
|
18
|
+
return "audio/ogg";
|
|
19
|
+
if (ascii(0, 4) === "RIFF") {
|
|
20
|
+
if (ascii(8, 4) === "WAVE")
|
|
21
|
+
return "audio/wav";
|
|
22
|
+
if (ascii(8, 4) === "AVI ")
|
|
23
|
+
return "video/x-msvideo";
|
|
24
|
+
}
|
|
25
|
+
if (ascii(4, 4) === "ftyp")
|
|
26
|
+
return ascii(8, 4) === "M4A " ? "audio/mp4" : ascii(8, 4) === "qt " ? "video/quicktime" : "video/mp4";
|
|
27
|
+
const classified = classify(prefix, bytes.length <= prefix.length).mime;
|
|
28
|
+
if (!["application/octet-stream", "text/plain", "inode/x-empty"].includes(classified))
|
|
29
|
+
return classified;
|
|
30
|
+
const extension = path.slice(path.lastIndexOf(".") + 1).toLowerCase();
|
|
31
|
+
return Object.hasOwn(extensions, extension) ? extensions[extension] : classified === "inode/x-empty" ? "application/octet-stream" : classified;
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=mime.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mime.js","sourceRoot":"","sources":["../../../src/commands/llm/mime.ts"],"names":[],"mappings":"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"}
|