poe-code 15.0.21 → 15.0.22

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.
Files changed (114) hide show
  1. package/dist/metafile.json +1 -1
  2. package/package.json +1 -1
  3. package/packages/safe-bash/dist/chunks/{chunk-UO33SQJU.js → chunk-2PQ3XOCQ.js} +239 -2
  4. package/packages/safe-bash/dist/chunks/chunk-2PQ3XOCQ.js.map +7 -0
  5. package/packages/safe-bash/dist/chunks/{chunk-WISNTI7E.js → chunk-3Y5PKSHX.js} +7 -11
  6. package/packages/safe-bash/dist/chunks/{chunk-WISNTI7E.js.map → chunk-3Y5PKSHX.js.map} +1 -1
  7. package/packages/safe-bash/dist/chunks/{chunk-VY5N6O6I.js → chunk-BXVGCJXW.js} +108 -21
  8. package/packages/safe-bash/dist/chunks/chunk-BXVGCJXW.js.map +7 -0
  9. package/packages/safe-bash/dist/chunks/chunk-C7QNJ3D4.js +13 -0
  10. package/packages/safe-bash/dist/chunks/chunk-C7QNJ3D4.js.map +7 -0
  11. package/packages/safe-bash/dist/chunks/{chunk-AWP6Z3RR.js → chunk-E3NZKSTA.js} +8 -12
  12. package/packages/safe-bash/dist/chunks/{chunk-AWP6Z3RR.js.map → chunk-E3NZKSTA.js.map} +1 -1
  13. package/packages/safe-bash/dist/chunks/{chunk-WXUZXY35.js → chunk-FMTBJ7SG.js} +3 -3
  14. package/packages/safe-bash/dist/chunks/{chunk-QX2X5EC5.js → chunk-H6E6F5KJ.js} +7 -11
  15. package/packages/safe-bash/dist/chunks/{chunk-QX2X5EC5.js.map → chunk-H6E6F5KJ.js.map} +1 -1
  16. package/packages/safe-bash/dist/chunks/{chunk-IDJQT32M.js → chunk-HQCBEAFK.js} +7 -11
  17. package/packages/safe-bash/dist/chunks/{chunk-IDJQT32M.js.map → chunk-HQCBEAFK.js.map} +1 -1
  18. package/packages/safe-bash/dist/chunks/{chunk-4V3NGZAG.js → chunk-IYFB6VED.js} +6 -10
  19. package/packages/safe-bash/dist/chunks/{chunk-4V3NGZAG.js.map → chunk-IYFB6VED.js.map} +1 -1
  20. package/packages/safe-bash/dist/chunks/chunk-KJYVSFGF.js +284 -0
  21. package/packages/safe-bash/dist/chunks/chunk-KJYVSFGF.js.map +7 -0
  22. package/packages/safe-bash/dist/chunks/{chunk-O7BRWSKX.js → chunk-LHKAA57T.js} +60 -17
  23. package/packages/safe-bash/dist/chunks/chunk-LHKAA57T.js.map +7 -0
  24. package/packages/safe-bash/dist/chunks/chunk-LR32SJ3D.js +915 -0
  25. package/packages/safe-bash/dist/chunks/chunk-LR32SJ3D.js.map +7 -0
  26. package/packages/safe-bash/dist/chunks/{chunk-EUNOVYVT.js → chunk-OECKXHVJ.js} +2 -2
  27. package/packages/safe-bash/dist/chunks/{chunk-DKT746UJ.js → chunk-PE5NZIA2.js} +5 -9
  28. package/packages/safe-bash/dist/chunks/{chunk-DKT746UJ.js.map → chunk-PE5NZIA2.js.map} +1 -1
  29. package/packages/safe-bash/dist/chunks/{chunk-4JW32W4B.js → chunk-PMBBUNNN.js} +7 -11
  30. package/packages/safe-bash/dist/chunks/{chunk-4JW32W4B.js.map → chunk-PMBBUNNN.js.map} +1 -1
  31. package/packages/safe-bash/dist/chunks/{chunk-YFFFBLBC.js → chunk-TJVKGNKA.js} +6 -10
  32. package/packages/safe-bash/dist/chunks/{chunk-YFFFBLBC.js.map → chunk-TJVKGNKA.js.map} +1 -1
  33. package/packages/safe-bash/dist/chunks/{chunk-FIY2BMTU.js → chunk-W3TLNFDB.js} +8 -12
  34. package/packages/safe-bash/dist/chunks/{chunk-FIY2BMTU.js.map → chunk-W3TLNFDB.js.map} +1 -1
  35. package/packages/safe-bash/dist/chunks/{chunk-PPFWG34Y.js → chunk-XBLVOMEJ.js} +2 -2
  36. package/packages/safe-bash/dist/chunks/{chunk-WJWYJDQE.js → chunk-XYVCXUGM.js} +7 -11
  37. package/packages/safe-bash/dist/chunks/{chunk-WJWYJDQE.js.map → chunk-XYVCXUGM.js.map} +1 -1
  38. package/packages/safe-bash/dist/commands/csplit/index.browser.js +4 -6
  39. package/packages/safe-bash/dist/commands/factor/index.browser.js +3 -5
  40. package/packages/safe-bash/dist/commands/getopt/index.browser.js +3 -5
  41. package/packages/safe-bash/dist/commands/hexdump/index.browser.js +3 -5
  42. package/packages/safe-bash/dist/commands/iconv/index.browser.js +3 -5
  43. package/packages/safe-bash/dist/commands/line-endings/index.browser.js +4 -6
  44. package/packages/safe-bash/dist/commands/llm/command.d.ts +3 -2
  45. package/packages/safe-bash/dist/commands/llm/command.d.ts.map +1 -1
  46. package/packages/safe-bash/dist/commands/llm/command.js +260 -181
  47. package/packages/safe-bash/dist/commands/llm/command.js.map +1 -1
  48. package/packages/safe-bash/dist/commands/llm/elevenlabs-stream.d.ts +3 -0
  49. package/packages/safe-bash/dist/commands/llm/elevenlabs-stream.d.ts.map +1 -0
  50. package/packages/safe-bash/dist/commands/llm/elevenlabs-stream.js +118 -0
  51. package/packages/safe-bash/dist/commands/llm/elevenlabs-stream.js.map +1 -0
  52. package/packages/safe-bash/dist/commands/llm/elevenlabs.d.ts +16 -0
  53. package/packages/safe-bash/dist/commands/llm/elevenlabs.d.ts.map +1 -0
  54. package/packages/safe-bash/dist/commands/llm/elevenlabs.js +120 -0
  55. package/packages/safe-bash/dist/commands/llm/elevenlabs.js.map +1 -0
  56. package/packages/safe-bash/dist/commands/llm/index.browser.js +10 -4
  57. package/packages/safe-bash/dist/commands/llm/index.d.ts +5 -5
  58. package/packages/safe-bash/dist/commands/llm/index.d.ts.map +1 -1
  59. package/packages/safe-bash/dist/commands/llm/index.js +3 -11
  60. package/packages/safe-bash/dist/commands/llm/index.js.map +1 -1
  61. package/packages/safe-bash/dist/commands/llm/mime.d.ts +2 -1
  62. package/packages/safe-bash/dist/commands/llm/mime.d.ts.map +1 -1
  63. package/packages/safe-bash/dist/commands/llm/mime.js +125 -21
  64. package/packages/safe-bash/dist/commands/llm/mime.js.map +1 -1
  65. package/packages/safe-bash/dist/commands/llm/openai-http.d.ts +9 -0
  66. package/packages/safe-bash/dist/commands/llm/openai-http.d.ts.map +1 -0
  67. package/packages/safe-bash/dist/commands/llm/openai-http.js +144 -0
  68. package/packages/safe-bash/dist/commands/llm/openai-http.js.map +1 -0
  69. package/packages/safe-bash/dist/commands/llm/openai-sse.d.ts +3 -0
  70. package/packages/safe-bash/dist/commands/llm/openai-sse.d.ts.map +1 -0
  71. package/packages/safe-bash/dist/commands/llm/openai-sse.js +67 -0
  72. package/packages/safe-bash/dist/commands/llm/openai-sse.js.map +1 -0
  73. package/packages/safe-bash/dist/commands/llm/openai.d.ts +15 -0
  74. package/packages/safe-bash/dist/commands/llm/openai.d.ts.map +1 -0
  75. package/packages/safe-bash/dist/commands/llm/openai.js +203 -0
  76. package/packages/safe-bash/dist/commands/llm/openai.js.map +1 -0
  77. package/packages/safe-bash/dist/commands/llm/providers/elevenlabs.d.ts +1 -15
  78. package/packages/safe-bash/dist/commands/llm/providers/elevenlabs.d.ts.map +1 -1
  79. package/packages/safe-bash/dist/commands/llm/providers/elevenlabs.js +1 -50
  80. package/packages/safe-bash/dist/commands/llm/providers/elevenlabs.js.map +1 -1
  81. package/packages/safe-bash/dist/commands/llm/providers/index.browser.js +2 -4
  82. package/packages/safe-bash/dist/commands/llm/providers/openai.d.ts +1 -14
  83. package/packages/safe-bash/dist/commands/llm/providers/openai.d.ts.map +1 -1
  84. package/packages/safe-bash/dist/commands/llm/providers/openai.js +1 -77
  85. package/packages/safe-bash/dist/commands/llm/providers/openai.js.map +1 -1
  86. package/packages/safe-bash/dist/commands/llm/providers/shared.d.ts +4 -14
  87. package/packages/safe-bash/dist/commands/llm/providers/shared.d.ts.map +1 -1
  88. package/packages/safe-bash/dist/commands/llm/providers/shared.js +3 -156
  89. package/packages/safe-bash/dist/commands/llm/providers/shared.js.map +1 -1
  90. package/packages/safe-bash/dist/commands/network/index.browser.js +8 -13
  91. package/packages/safe-bash/dist/commands/pr/index.browser.js +3 -5
  92. package/packages/safe-bash/dist/commands/tsort/index.browser.js +3 -5
  93. package/packages/safe-bash/dist/commands/xml/index.browser.js +4 -7
  94. package/packages/safe-bash/dist/commands/yq/index.browser.js +5 -8
  95. package/packages/safe-bash/dist/core.browser.js +36 -43
  96. package/packages/safe-bash/dist/core.browser.js.map +1 -1
  97. package/packages/safe-bash/dist/chunks/chunk-BZUQJTOZ.js +0 -322
  98. package/packages/safe-bash/dist/chunks/chunk-BZUQJTOZ.js.map +0 -7
  99. package/packages/safe-bash/dist/chunks/chunk-EUTSYRNM.js +0 -111
  100. package/packages/safe-bash/dist/chunks/chunk-EUTSYRNM.js.map +0 -7
  101. package/packages/safe-bash/dist/chunks/chunk-F5AOPLRZ.js +0 -355
  102. package/packages/safe-bash/dist/chunks/chunk-F5AOPLRZ.js.map +0 -7
  103. package/packages/safe-bash/dist/chunks/chunk-FDGESHPB.js +0 -224
  104. package/packages/safe-bash/dist/chunks/chunk-FDGESHPB.js.map +0 -7
  105. package/packages/safe-bash/dist/chunks/chunk-KYU6MXVK.js +0 -58
  106. package/packages/safe-bash/dist/chunks/chunk-KYU6MXVK.js.map +0 -7
  107. package/packages/safe-bash/dist/chunks/chunk-O7BRWSKX.js.map +0 -7
  108. package/packages/safe-bash/dist/chunks/chunk-TTTOMUAY.js +0 -33
  109. package/packages/safe-bash/dist/chunks/chunk-TTTOMUAY.js.map +0 -7
  110. package/packages/safe-bash/dist/chunks/chunk-UO33SQJU.js.map +0 -7
  111. package/packages/safe-bash/dist/chunks/chunk-VY5N6O6I.js.map +0 -7
  112. /package/packages/safe-bash/dist/chunks/{chunk-WXUZXY35.js.map → chunk-FMTBJ7SG.js.map} +0 -0
  113. /package/packages/safe-bash/dist/chunks/{chunk-EUNOVYVT.js.map → chunk-OECKXHVJ.js.map} +0 -0
  114. /package/packages/safe-bash/dist/chunks/{chunk-PPFWG34Y.js.map → chunk-XBLVOMEJ.js.map} +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"elevenlabs-stream.js","sourceRoot":"","sources":["../../../src/commands/llm/elevenlabs-stream.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ import type { HttpTransport } from "../network/types.js";
2
+ import type { LlmModel, LlmProvider } from "./types.js";
3
+ import { type LlmProviderLimits } from "./providers/shared.js";
4
+ export interface ElevenLabsModel extends LlmModel {
5
+ readonly endpoint: "tts" | "music";
6
+ readonly defaultVoiceId?: string;
7
+ }
8
+ export interface ElevenLabsProviderOptions {
9
+ readonly transport: HttpTransport;
10
+ readonly apiKey: string;
11
+ readonly baseUrl?: string;
12
+ readonly models: readonly ElevenLabsModel[];
13
+ readonly limits?: Partial<LlmProviderLimits>;
14
+ }
15
+ export declare function createElevenLabsProvider(options: ElevenLabsProviderOptions): LlmProvider;
16
+ //# sourceMappingURL=elevenlabs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"elevenlabs.d.ts","sourceRoot":"","sources":["../../../src/commands/llm/elevenlabs.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAGxD,OAAO,EAAwC,KAAK,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAErG,MAAM,WAAW,eAAgB,SAAQ,QAAQ;IAC/C,QAAQ,CAAC,QAAQ,EAAE,KAAK,GAAG,OAAO,CAAC;IACnC,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;CAClC;AAED,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,SAAS,EAAE,aAAa,CAAC;IAClC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,SAAS,eAAe,EAAE,CAAC;IAC5C,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,iBAAiB,CAAC,CAAC;CAC9C;AAsCD,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,yBAAyB,GAAG,WAAW,CAiExF"}
@@ -0,0 +1,120 @@
1
+ import { streamElevenLabs } from "./elevenlabs-stream.js";
2
+ import { acceptsMimeType } from "./mime.js";
3
+ import { credential, providerLimits, jsonBody } from "./providers/shared.js";
4
+ const outputFormats = new Map([
5
+ ["audio/mpeg", "mp3_44100_128"],
6
+ ["audio/wav", "wav_44100"],
7
+ ["audio/x-wav", "wav_44100"],
8
+ ["audio/pcm", "pcm_44100"],
9
+ ["audio/basic", "ulaw_8000"],
10
+ ["audio/opus", "opus_48000_128"],
11
+ ["audio/ogg", "opus_48000_128"],
12
+ ]);
13
+ const optionTypes = {
14
+ tts: new Map([
15
+ ["stability", "number"], ["similarity_boost", "number"], ["style", "number"],
16
+ ["speed", "number"], ["use_speaker_boost", "boolean"],
17
+ ]),
18
+ music: new Map([
19
+ ["music_length_ms", "integer"], ["seed", "integer"], ["force_instrumental", "boolean"],
20
+ ["respect_sections_durations", "boolean"], ["store_for_inpainting", "boolean"],
21
+ ["sign_with_c2pa", "boolean"],
22
+ ]),
23
+ };
24
+ function parseOptions(options, endpoint) {
25
+ return Object.fromEntries(Object.entries(options).map(([key, value]) => {
26
+ const type = optionTypes[endpoint].get(key);
27
+ if (!type)
28
+ return [key, value];
29
+ if (type === "boolean") {
30
+ if (value === "true" || value === "false")
31
+ return [key, value === "true"];
32
+ }
33
+ else {
34
+ const number = value.trim() ? Number(value) : NaN;
35
+ if (Number.isFinite(number) && (type !== "integer" || Number.isSafeInteger(number)))
36
+ return [key, number];
37
+ }
38
+ throw new Error(`Invalid ElevenLabs option ${key}: expected ${type}`);
39
+ }));
40
+ }
41
+ export function createElevenLabsProvider(options) {
42
+ const transport = options.transport;
43
+ if (typeof transport !== "function")
44
+ throw new TypeError("Provider transport is required");
45
+ const apiKey = credential(options.apiKey);
46
+ const limits = providerLimits(options.limits);
47
+ const baseUrl = new URL(options.baseUrl ?? "https://api.elevenlabs.io");
48
+ if (!["https:", "http:"].includes(baseUrl.protocol) || baseUrl.username || baseUrl.password || baseUrl.search || baseUrl.hash) {
49
+ throw new Error("Invalid ElevenLabs baseUrl: expected an HTTP(S) URL without credentials, query, or fragment");
50
+ }
51
+ if (!baseUrl.pathname.endsWith("/"))
52
+ baseUrl.pathname += "/";
53
+ const models = options.models.map(model => Object.freeze({
54
+ ...model,
55
+ ...(model.aliases === undefined ? {} : { aliases: Object.freeze([...model.aliases]) }),
56
+ ...(model.attachmentTypes === undefined ? {} : { attachmentTypes: Object.freeze([...model.attachmentTypes]) }),
57
+ }));
58
+ const byId = new Map();
59
+ for (const model of models) {
60
+ if (model.endpoint !== "tts" && model.endpoint !== "music")
61
+ throw new Error(`Invalid ElevenLabs endpoint: ${model.endpoint}`);
62
+ if (!model.outputType)
63
+ throw new TypeError("ElevenLabs models require an audio outputType");
64
+ const mimeType = model.outputType.split(";", 1)[0].trim().toLowerCase();
65
+ const format = outputFormats.get(mimeType);
66
+ if (!format || !acceptsMimeType([mimeType], model.outputType) || (model.endpoint === "music" && format.startsWith("wav_"))) {
67
+ throw new Error(`Unsupported ElevenLabs outputType for ${model.endpoint}: ${model.outputType}`);
68
+ }
69
+ if (model.attachmentTypes?.length)
70
+ throw new Error(`ElevenLabs model ${model.id} does not accept attachments`);
71
+ if (!model.id || byId.has(model.id))
72
+ throw new Error(`Duplicate or empty ElevenLabs model: ${model.id}`);
73
+ byId.set(model.id, { model, format });
74
+ }
75
+ return {
76
+ name: "elevenlabs",
77
+ models: Object.freeze(models),
78
+ async *complete(request) {
79
+ request.signal.throwIfAborted();
80
+ const entry = byId.get(request.model);
81
+ if (!entry)
82
+ throw new Error(`Unknown model: ${request.model}`);
83
+ const { model, format } = entry;
84
+ if (request.attachments.length)
85
+ throw new Error(`Model ${model.id} does not accept ${request.attachments[0].mimeType} attachments`);
86
+ if (request.system !== undefined)
87
+ throw new TypeError("ElevenLabs reference endpoints do not accept system prompts");
88
+ const { output_format: requestedFormat, ...requestOptions } = request.options;
89
+ if (requestedFormat !== undefined && requestedFormat !== format)
90
+ throw new TypeError("output_format conflicts with model outputType");
91
+ let path;
92
+ let body;
93
+ if (model.endpoint === "tts") {
94
+ const { voice_id: suppliedVoice, ...settings } = requestOptions;
95
+ const voice = suppliedVoice ?? model.defaultVoiceId;
96
+ if (!voice?.trim())
97
+ throw new Error(`ElevenLabs model ${model.id} requires voice_id or a configured defaultVoiceId`);
98
+ if (voice === "." || voice === "..")
99
+ throw new Error("Invalid ElevenLabs voice_id: dot segments are not allowed");
100
+ path = `v1/text-to-speech/${encodeURIComponent(voice)}`;
101
+ body = { text: request.prompt, model_id: model.id, voice_settings: parseOptions(settings, model.endpoint) };
102
+ }
103
+ else {
104
+ path = "v1/music";
105
+ body = { ...parseOptions(requestOptions, model.endpoint), prompt: request.prompt, model_id: model.id };
106
+ }
107
+ const url = new URL(path, baseUrl);
108
+ url.searchParams.set("output_format", format);
109
+ const payload = jsonBody(body, limits.maxRequestBytes);
110
+ yield* streamElevenLabs(transport, {
111
+ url: url.href,
112
+ method: "POST",
113
+ headers: [["xi-api-key", apiKey], ...payload.headers, ["accept", model.outputType]],
114
+ body: payload.body,
115
+ signal: request.signal,
116
+ }, limits.maxResponseBytes);
117
+ },
118
+ };
119
+ }
120
+ //# sourceMappingURL=elevenlabs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"elevenlabs.js","sourceRoot":"","sources":["../../../src/commands/llm/elevenlabs.ts"],"names":[],"mappings":"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"}
@@ -1,14 +1,20 @@
1
1
  import {
2
2
  createLlmCommands,
3
3
  llmCommands
4
- } from "../../chunks/chunk-F5AOPLRZ.js";
5
- import "../../chunks/chunk-EUNOVYVT.js";
4
+ } from "../../chunks/chunk-KJYVSFGF.js";
5
+ import {
6
+ createElevenLabsProvider,
7
+ createOpenAiProvider
8
+ } from "../../chunks/chunk-LR32SJ3D.js";
9
+ import "../../chunks/chunk-LHKAA57T.js";
10
+ import "../../chunks/chunk-OECKXHVJ.js";
6
11
  import "../../chunks/chunk-DPJWEGIX.js";
7
- import "../../chunks/chunk-UO33SQJU.js";
8
- import "../../chunks/chunk-FDGESHPB.js";
12
+ import "../../chunks/chunk-2PQ3XOCQ.js";
9
13
  import "../../chunks/chunk-2KL6W6NB.js";
10
14
  export {
15
+ createElevenLabsProvider,
11
16
  createLlmCommands,
17
+ createOpenAiProvider,
12
18
  llmCommands
13
19
  };
14
20
  //# sourceMappingURL=index.browser.js.map
@@ -1,6 +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;
1
+ export { createLlmCommands, llmCommands } from "./command.js";
2
+ export type { LlmCommandsOptions, LlmProvider, LlmModel, LlmRequest } from "./types.js";
3
+ export { createOpenAiProvider, type OpenAiModel, type OpenAiProviderOptions } from "./openai.js";
4
+ export { createElevenLabsProvider, type ElevenLabsModel, type ElevenLabsProviderOptions } from "./elevenlabs.js";
5
+ export type { LlmProviderLimits } from "./providers/shared.js";
6
6
  //# sourceMappingURL=index.d.ts.map
@@ -1 +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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/llm/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC9D,YAAY,EAAE,kBAAkB,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACxF,OAAO,EAAE,oBAAoB,EAAE,KAAK,WAAW,EAAE,KAAK,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACjG,OAAO,EAAE,wBAAwB,EAAE,KAAK,eAAe,EAAE,KAAK,yBAAyB,EAAE,MAAM,iBAAiB,CAAC;AACjH,YAAY,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC"}
@@ -1,12 +1,4 @@
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
- }
1
+ export { createLlmCommands, llmCommands } from "./command.js";
2
+ export { createOpenAiProvider } from "./openai.js";
3
+ export { createElevenLabsProvider } from "./elevenlabs.js";
12
4
  //# sourceMappingURL=index.js.map
@@ -1 +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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/llm/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAE9D,OAAO,EAAE,oBAAoB,EAAgD,MAAM,aAAa,CAAC;AACjG,OAAO,EAAE,wBAAwB,EAAwD,MAAM,iBAAiB,CAAC"}
@@ -1,2 +1,3 @@
1
- export declare function attachmentMime(bytes: Uint8Array, path: string): string;
1
+ export declare function sniffMimeType(path: string, bytes: Uint8Array): string;
2
+ export declare function acceptsMimeType(types: readonly string[], mimeType: string): boolean;
2
3
  //# sourceMappingURL=mime.d.ts.map
@@ -1 +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"}
1
+ {"version":3,"file":"mime.d.ts","sourceRoot":"","sources":["../../../src/commands/llm/mime.ts"],"names":[],"mappings":"AA+CA,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,GAAG,MAAM,CA8CrE;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAUnF"}
@@ -1,33 +1,137 @@
1
1
  import { classify } from "../file/classify.js";
2
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",
3
+ png: "image/png", jpg: "image/jpeg", jpeg: "image/jpeg", gif: "image/gif", webp: "image/webp",
4
+ avif: "image/avif", heic: "image/heic", heif: "image/heif", bmp: "image/bmp", tif: "image/tiff", tiff: "image/tiff", svg: "image/svg+xml",
5
+ mp3: "audio/mpeg", wav: "audio/wav", ogg: "audio/ogg", oga: "audio/ogg", opus: "audio/ogg", flac: "audio/flac", aac: "audio/aac", m4a: "audio/mp4", aiff: "audio/aiff",
6
+ mp4: "video/mp4", m4v: "video/mp4", mov: "video/quicktime", webm: "video/webm", mkv: "video/x-matroska", avi: "video/x-msvideo", ogv: "video/ogg", mpeg: "video/mpeg", mpg: "video/mpeg",
7
+ pdf: "application/pdf", json: "application/json", zip: "application/zip", gz: "application/gzip",
8
+ txt: "text/plain", md: "text/markdown", csv: "text/csv", html: "text/html", xml: "application/xml",
7
9
  };
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")
10
+ function ebmlInteger(bytes, offset, retainMarker = false) {
11
+ const first = bytes[offset];
12
+ if (!first)
13
+ return undefined;
14
+ let marker = 128, width = 1;
15
+ while (!(first & marker)) {
16
+ marker >>= 1;
17
+ width++;
18
+ }
19
+ if (offset + width > bytes.length)
20
+ return undefined;
21
+ let value = retainMarker ? first : first & (marker - 1);
22
+ for (let index = 1; index < width; index++)
23
+ value = value * 256 + bytes[offset + index];
24
+ if (!Number.isSafeInteger(value) || !retainMarker && value === 2 ** (7 * width) - 1)
25
+ return undefined;
26
+ return { value, width };
27
+ }
28
+ function ebmlMimeType(bytes) {
29
+ const header = ebmlInteger(bytes, 4);
30
+ if (!header)
31
+ return undefined;
32
+ let offset = 4 + header.width;
33
+ const end = Math.min(bytes.length, offset + header.value, 4096);
34
+ while (offset < end) {
35
+ const identifier = ebmlInteger(bytes, offset, true);
36
+ if (!identifier)
37
+ return undefined;
38
+ offset += identifier.width;
39
+ const size = ebmlInteger(bytes, offset);
40
+ if (!size)
41
+ return undefined;
42
+ offset += size.width;
43
+ if (size.value > end - offset)
44
+ return undefined;
45
+ if (identifier.value === 0x4282) {
46
+ const docType = new TextDecoder().decode(bytes.subarray(offset, offset + size.value)).split("\0", 1)[0];
47
+ if (docType === "webm")
48
+ return "video/webm";
49
+ if (docType === "matroska")
50
+ return "video/x-matroska";
51
+ return undefined;
52
+ }
53
+ offset += size.value;
54
+ }
55
+ return undefined;
56
+ }
57
+ export function sniffMimeType(path, bytes) {
58
+ const matches = (signature, offset = 0) => bytes.length >= offset + signature.length && signature.every((byte, index) => bytes[offset + index] === byte);
59
+ const ascii = (offset, text) => bytes.length >= offset + text.length && [...text].every((character, index) => bytes[offset + index] === character.charCodeAt(0));
60
+ if (matches([137, 80, 78, 71, 13, 10, 26, 10]))
61
+ return "image/png";
62
+ if (matches([255, 216, 255]))
63
+ return "image/jpeg";
64
+ if (ascii(0, "GIF87a") || ascii(0, "GIF89a"))
65
+ return "image/gif";
66
+ if (ascii(0, "RIFF")) {
67
+ if (ascii(8, "WEBP"))
68
+ return "image/webp";
69
+ if (ascii(8, "WAVE"))
21
70
  return "audio/wav";
22
- if (ascii(8, 4) === "AVI ")
71
+ if (ascii(8, "AVI "))
23
72
  return "video/x-msvideo";
24
73
  }
25
- if (ascii(4, 4) === "ftyp")
26
- return ascii(8, 4) === "M4A " ? "audio/mp4" : ascii(8, 4) === "qt " ? "video/quicktime" : "video/mp4";
74
+ if (ascii(0, "fLaC"))
75
+ return "audio/flac";
76
+ if (ascii(0, "OggS")) {
77
+ const packet = 27 + (bytes[26] ?? 0);
78
+ if (bytes[26] && bytes[packet] === 0x80 && ascii(packet + 1, "theora"))
79
+ return "video/ogg";
80
+ return "audio/ogg";
81
+ }
82
+ if (ascii(0, "ID3") || bytes.length >= 2 && bytes[0] === 255 && (bytes[1] & 0xe0) === 0xe0 && (bytes[1] & 0x06) !== 0)
83
+ return "audio/mpeg";
84
+ if (bytes.length >= 2 && bytes[0] === 255 && (bytes[1] & 0xf6) === 0xf0)
85
+ return "audio/aac";
86
+ if (ascii(0, "FORM") && (ascii(8, "AIFF") || ascii(8, "AIFC")))
87
+ return "audio/aiff";
88
+ if (ascii(4, "ftyp")) {
89
+ if (ascii(8, "avif") || ascii(8, "avis"))
90
+ return "image/avif";
91
+ if (ascii(8, "heic") || ascii(8, "heix"))
92
+ return "image/heic";
93
+ if (ascii(8, "mif1") || ascii(8, "msf1"))
94
+ return "image/heif";
95
+ if (ascii(8, "M4A ") || ascii(8, "M4B "))
96
+ return "audio/mp4";
97
+ if (ascii(8, "qt "))
98
+ return "video/quicktime";
99
+ return "video/mp4";
100
+ }
101
+ if (matches([0x1a, 0x45, 0xdf, 0xa3])) {
102
+ const mimeType = ebmlMimeType(bytes);
103
+ if (mimeType)
104
+ return mimeType;
105
+ }
106
+ if (ascii(0, "%PDF-"))
107
+ return "application/pdf";
108
+ if (matches([0x50, 0x4b, 3, 4]) || matches([0x50, 0x4b, 5, 6]))
109
+ return "application/zip";
110
+ if (matches([0x1f, 0x8b]))
111
+ return "application/gzip";
112
+ if (matches([0x49, 0x49, 42, 0]) || matches([0x4d, 0x4d, 0, 42]))
113
+ return "image/tiff";
114
+ if (ascii(0, "BM"))
115
+ return "image/bmp";
116
+ const prefix = bytes.subarray(0, 512);
27
117
  const classified = classify(prefix, bytes.length <= prefix.length).mime;
28
118
  if (!["application/octet-stream", "text/plain", "inode/x-empty"].includes(classified))
29
119
  return classified;
30
- const extension = path.slice(path.lastIndexOf(".") + 1).toLowerCase();
120
+ const filename = path.slice(path.lastIndexOf("/") + 1);
121
+ const dot = filename.lastIndexOf(".");
122
+ const extension = dot < 0 ? "" : filename.slice(dot + 1).toLowerCase();
31
123
  return Object.hasOwn(extensions, extension) ? extensions[extension] : classified === "inode/x-empty" ? "application/octet-stream" : classified;
32
124
  }
125
+ export function acceptsMimeType(types, mimeType) {
126
+ if ([...mimeType].some(character => character.charCodeAt(0) < 32 || character.charCodeAt(0) === 127))
127
+ return false;
128
+ const mime = mimeType.split(";", 1)[0].trim().toLowerCase();
129
+ const parts = mime.split("/");
130
+ if (parts.length !== 2 || parts.some(part => !part || [...part].some(character => !(character >= "a" && character <= "z" || character >= "0" && character <= "9" || "!#$%&'+-.^_`|~".includes(character)))))
131
+ return false;
132
+ return types.some(type => {
133
+ const accepted = type.toLowerCase();
134
+ return accepted === mime || accepted.endsWith("/*") && accepted.slice(0, -2) === parts[0];
135
+ });
136
+ }
33
137
  //# sourceMappingURL=mime.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"mime.js","sourceRoot":"","sources":["../../../src/commands/llm/mime.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAE/C,MAAM,UAAU,GAAqC;IACnD,GAAG,EAAE,WAAW,EAAE,GAAG,EAAE,YAAY,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,EAAE,WAAW,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,EAAE,eAAe;IACnH,GAAG,EAAE,YAAY,EAAE,GAAG,EAAE,WAAW,EAAE,GAAG,EAAE,WAAW,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,EAAE,WAAW,EAAE,GAAG,EAAE,WAAW;IAC7G,GAAG,EAAE,WAAW,EAAE,GAAG,EAAE,iBAAiB,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,EAAE,kBAAkB,EAAE,GAAG,EAAE,iBAAiB;IAC7G,GAAG,EAAE,iBAAiB,EAAE,GAAG,EAAE,YAAY,EAAE,IAAI,EAAE,kBAAkB,EAAE,GAAG,EAAE,UAAU;CACrF,CAAC;AAEF,MAAM,UAAU,cAAc,CAAC,KAAiB,EAAE,IAAY;IAC5D,MAAM,MAAM,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IACtC,MAAM,KAAK,GAAG,CAAC,MAAc,EAAE,MAAc,EAAE,EAAE,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC;IACnH,IAAI,MAAM,CAAC,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAE,GAAG,GAAG,CAAC,KAAK,GAAG;QAAE,OAAO,WAAW,CAAC;IAC9F,IAAI,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAE,GAAG,GAAG,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAE,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;QAAE,OAAO,YAAY,CAAC;IAC9H,IAAI,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,MAAM;QAAE,OAAO,YAAY,CAAC;IAChD,IAAI,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,MAAM;QAAE,OAAO,WAAW,CAAC;IAC/C,IAAI,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,MAAM,EAAE,CAAC;QAC3B,IAAI,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,MAAM;YAAE,OAAO,WAAW,CAAC;QAC/C,IAAI,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,MAAM;YAAE,OAAO,iBAAiB,CAAC;IACvD,CAAC;IACD,IAAI,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,MAAM;QAAE,OAAO,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,WAAW,CAAC;IACnI,MAAM,UAAU,GAAG,QAAQ,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC;IACxE,IAAI,CAAC,CAAC,0BAA0B,EAAE,YAAY,EAAE,eAAe,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC;QAAE,OAAO,UAAU,CAAC;IACzG,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;IACtE,OAAO,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,SAAS,CAAE,CAAC,CAAC,CAAC,UAAU,KAAK,eAAe,CAAC,CAAC,CAAC,0BAA0B,CAAC,CAAC,CAAC,UAAU,CAAC;AAClJ,CAAC"}
1
+ {"version":3,"file":"mime.js","sourceRoot":"","sources":["../../../src/commands/llm/mime.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAE/C,MAAM,UAAU,GAAqC;IACnD,GAAG,EAAE,WAAW,EAAE,GAAG,EAAE,YAAY,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,EAAE,WAAW,EAAE,IAAI,EAAE,YAAY;IAC7F,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,EAAE,WAAW,EAAE,GAAG,EAAE,YAAY,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,EAAE,eAAe;IACzI,GAAG,EAAE,YAAY,EAAE,GAAG,EAAE,WAAW,EAAE,GAAG,EAAE,WAAW,EAAE,GAAG,EAAE,WAAW,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,EAAE,WAAW,EAAE,GAAG,EAAE,WAAW,EAAE,IAAI,EAAE,YAAY;IACtK,GAAG,EAAE,WAAW,EAAE,GAAG,EAAE,WAAW,EAAE,GAAG,EAAE,iBAAiB,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,EAAE,kBAAkB,EAAE,GAAG,EAAE,iBAAiB,EAAE,GAAG,EAAE,WAAW,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,EAAE,YAAY;IACxL,GAAG,EAAE,iBAAiB,EAAE,IAAI,EAAE,kBAAkB,EAAE,GAAG,EAAE,iBAAiB,EAAE,EAAE,EAAE,kBAAkB;IAChG,GAAG,EAAE,YAAY,EAAE,EAAE,EAAE,eAAe,EAAE,GAAG,EAAE,UAAU,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,EAAE,iBAAiB;CACnG,CAAC;AAEF,SAAS,WAAW,CAAC,KAAiB,EAAE,MAAc,EAAE,YAAY,GAAG,KAAK;IAC1E,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC;IAC5B,IAAI,CAAC,KAAK;QAAE,OAAO,SAAS,CAAC;IAC7B,IAAI,MAAM,GAAG,GAAG,EAAE,KAAK,GAAG,CAAC,CAAC;IAC5B,OAAO,CAAC,CAAC,KAAK,GAAG,MAAM,CAAC,EAAE,CAAC;QAAC,MAAM,KAAK,CAAC,CAAC;QAAC,KAAK,EAAE,CAAC;IAAC,CAAC;IACpD,IAAI,MAAM,GAAG,KAAK,GAAG,KAAK,CAAC,MAAM;QAAE,OAAO,SAAS,CAAC;IACpD,IAAI,KAAK,GAAG,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACxD,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,KAAK,EAAE,KAAK,EAAE;QAAE,KAAK,GAAG,KAAK,GAAG,GAAG,GAAG,KAAK,CAAC,MAAM,GAAG,KAAK,CAAE,CAAC;IACzF,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,IAAI,KAAK,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC;QAAE,OAAO,SAAS,CAAC;IACtG,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;AAC1B,CAAC;AAED,SAAS,YAAY,CAAC,KAAiB;IACrC,MAAM,MAAM,GAAG,WAAW,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IACrC,IAAI,CAAC,MAAM;QAAE,OAAO,SAAS,CAAC;IAC9B,IAAI,MAAM,GAAG,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC;IAC9B,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IAChE,OAAO,MAAM,GAAG,GAAG,EAAE,CAAC;QACpB,MAAM,UAAU,GAAG,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;QACpD,IAAI,CAAC,UAAU;YAAE,OAAO,SAAS,CAAC;QAClC,MAAM,IAAI,UAAU,CAAC,KAAK,CAAC;QAC3B,MAAM,IAAI,GAAG,WAAW,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QACxC,IAAI,CAAC,IAAI;YAAE,OAAO,SAAS,CAAC;QAC5B,MAAM,IAAI,IAAI,CAAC,KAAK,CAAC;QACrB,IAAI,IAAI,CAAC,KAAK,GAAG,GAAG,GAAG,MAAM;YAAE,OAAO,SAAS,CAAC;QAChD,IAAI,UAAU,CAAC,KAAK,KAAK,MAAM,EAAE,CAAC;YAChC,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACxG,IAAI,OAAO,KAAK,MAAM;gBAAE,OAAO,YAAY,CAAC;YAC5C,IAAI,OAAO,KAAK,UAAU;gBAAE,OAAO,kBAAkB,CAAC;YACtD,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,MAAM,IAAI,IAAI,CAAC,KAAK,CAAC;IACvB,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,IAAY,EAAE,KAAiB;IAC3D,MAAM,OAAO,GAAG,CAAC,SAA4B,EAAE,MAAM,GAAG,CAAC,EAAW,EAAE,CACpE,KAAK,CAAC,MAAM,IAAI,MAAM,GAAG,SAAS,CAAC,MAAM,IAAI,SAAS,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC,KAAK,IAAI,CAAC,CAAC;IAChH,MAAM,KAAK,GAAG,CAAC,MAAc,EAAE,IAAY,EAAW,EAAE,CACtD,KAAK,CAAC,MAAM,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,SAAS,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC,KAAK,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;IACnI,IAAI,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;QAAE,OAAO,WAAW,CAAC;IACnE,IAAI,OAAO,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;QAAE,OAAO,YAAY,CAAC;IAClD,IAAI,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,IAAI,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC;QAAE,OAAO,WAAW,CAAC;IACjE,IAAI,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,EAAE,CAAC;QACrB,IAAI,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC;YAAE,OAAO,YAAY,CAAC;QAC1C,IAAI,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC;YAAE,OAAO,WAAW,CAAC;QACzC,IAAI,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC;YAAE,OAAO,iBAAiB,CAAC;IACjD,CAAC;IACD,IAAI,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC;QAAE,OAAO,YAAY,CAAC;IAC1C,IAAI,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,EAAE,CAAC;QACrB,MAAM,MAAM,GAAG,EAAE,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;QACrC,IAAI,KAAK,CAAC,EAAE,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,IAAI,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,QAAQ,CAAC;YAAE,OAAO,WAAW,CAAC;QAC3F,OAAO,WAAW,CAAC;IACrB,CAAC;IACD,IAAI,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAE,GAAG,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAE,GAAG,IAAI,CAAC,KAAK,CAAC;QAAE,OAAO,YAAY,CAAC;IAC7I,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAE,GAAG,IAAI,CAAC,KAAK,IAAI;QAAE,OAAO,WAAW,CAAC;IAC7F,IAAI,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,IAAI,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;QAAE,OAAO,YAAY,CAAC;IACpF,IAAI,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,EAAE,CAAC;QACrB,IAAI,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,IAAI,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC;YAAE,OAAO,YAAY,CAAC;QAC9D,IAAI,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,IAAI,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC;YAAE,OAAO,YAAY,CAAC;QAC9D,IAAI,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,IAAI,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC;YAAE,OAAO,YAAY,CAAC;QAC9D,IAAI,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,IAAI,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC;YAAE,OAAO,WAAW,CAAC;QAC7D,IAAI,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC;YAAE,OAAO,iBAAiB,CAAC;QAC/C,OAAO,WAAW,CAAC;IACrB,CAAC;IACD,IAAI,OAAO,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC;QACtC,MAAM,QAAQ,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;QACrC,IAAI,QAAQ;YAAE,OAAO,QAAQ,CAAC;IAChC,CAAC;IACD,IAAI,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC;QAAE,OAAO,iBAAiB,CAAC;IAChD,IAAI,OAAO,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QAAE,OAAO,iBAAiB,CAAC;IACzF,IAAI,OAAO,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAAE,OAAO,kBAAkB,CAAC;IACrD,IAAI,OAAO,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;QAAE,OAAO,YAAY,CAAC;IACtF,IAAI,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC;QAAE,OAAO,WAAW,CAAC;IACvC,MAAM,MAAM,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IACtC,MAAM,UAAU,GAAG,QAAQ,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC;IACxE,IAAI,CAAC,CAAC,0BAA0B,EAAE,YAAY,EAAE,eAAe,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC;QAAE,OAAO,UAAU,CAAC;IACzG,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;IACvD,MAAM,GAAG,GAAG,QAAQ,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IACtC,MAAM,SAAS,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;IACvE,OAAO,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,SAAS,CAAE,CAAC,CAAC,CAAC,UAAU,KAAK,eAAe,CAAC,CAAC,CAAC,0BAA0B,CAAC,CAAC,CAAC,UAAU,CAAC;AAClJ,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,KAAwB,EAAE,QAAgB;IACxE,IAAI,CAAC,GAAG,QAAQ,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC;QAAE,OAAO,KAAK,CAAC;IACnH,MAAM,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAE,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAC7D,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC9B,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAC/E,CAAC,CAAC,SAAS,IAAI,GAAG,IAAI,SAAS,IAAI,GAAG,IAAI,SAAS,IAAI,GAAG,IAAI,SAAS,IAAI,GAAG,IAAI,gBAAgB,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;QAAE,OAAO,KAAK,CAAC;IAC1I,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;QACvB,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QACpC,OAAO,QAAQ,KAAK,IAAI,IAAI,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC;IAC5F,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,9 @@
1
+ import type { ByteSource } from "../../contracts/index.js";
2
+ import type { HttpRequest, HttpResponse, HttpTransport } from "../network/types.js";
3
+ export declare function openAiAbortable<Value>(pending: PromiseLike<Value>, signal: AbortSignal): Promise<Value>;
4
+ export declare function openAiBytes(source: ByteSource, signal: AbortSignal, limit?: number): ByteSource;
5
+ export declare function openAiJson(response: HttpResponse, signal: AbortSignal, maxBytes?: number): Promise<Record<string, unknown>>;
6
+ export declare function openAiRecord(value: unknown): value is Record<string, unknown>;
7
+ export declare function openAiError(value: unknown): string | undefined;
8
+ export declare function openAiResponse(transport: HttpTransport, input: HttpRequest): AsyncIterable<HttpResponse>;
9
+ //# sourceMappingURL=openai-http.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"openai-http.d.ts","sourceRoot":"","sources":["../../../src/commands/llm/openai-http.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAqB,MAAM,0BAA0B,CAAC;AAC9E,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEpF,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,WAAW,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,KAAK,CAAC,CAcvG;AAED,wBAAuB,WAAW,CAAC,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,KAAK,SAAmB,GAAG,UAAU,CAyBhH;AAED,wBAAsB,UAAU,CAAC,QAAQ,EAAE,YAAY,EAAE,MAAM,EAAE,WAAW,EAAE,QAAQ,SAAmB,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAc3I;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAE7E;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAI9D;AAED,wBAAuB,cAAc,CAAC,SAAS,EAAE,aAAa,EAAE,KAAK,EAAE,WAAW,GAAG,aAAa,CAAC,YAAY,CAAC,CA8C/G"}
@@ -0,0 +1,144 @@
1
+ export function openAiAbortable(pending, signal) {
2
+ return new Promise((resolve, reject) => {
3
+ const abort = () => { signal.removeEventListener("abort", abort); reject(signal.reason); };
4
+ signal.addEventListener("abort", abort, { once: true });
5
+ Promise.resolve(pending).then(value => {
6
+ signal.removeEventListener("abort", abort);
7
+ if (signal.aborted)
8
+ reject(signal.reason);
9
+ else
10
+ resolve(value);
11
+ }, error => {
12
+ signal.removeEventListener("abort", abort);
13
+ reject(signal.aborted ? signal.reason : error);
14
+ });
15
+ if (signal.aborted)
16
+ abort();
17
+ });
18
+ }
19
+ export async function* openAiBytes(source, signal, limit = 64 * 1024 * 1024) {
20
+ signal.throwIfAborted();
21
+ const iterator = source[Symbol.asyncIterator]();
22
+ let failed = false, finished = false;
23
+ let size = 0;
24
+ try {
25
+ while (true) {
26
+ signal.throwIfAborted();
27
+ const next = await openAiAbortable(iterator.next(), signal);
28
+ if (next.done) {
29
+ finished = true;
30
+ return;
31
+ }
32
+ if (!(next.value instanceof Uint8Array))
33
+ throw new Error("OpenAI returned a non-byte response chunk");
34
+ size += next.value.byteLength;
35
+ if (size > limit)
36
+ throw new RangeError("Provider response byte limit exceeded");
37
+ yield Uint8Array.from(next.value);
38
+ }
39
+ }
40
+ catch (error) {
41
+ failed = true;
42
+ throw signal.aborted ? signal.reason : error;
43
+ }
44
+ finally {
45
+ if (!finished) {
46
+ const returned = Promise.resolve().then(() => iterator.return?.());
47
+ if (signal.aborted)
48
+ void returned.catch(() => undefined);
49
+ else
50
+ await openAiAbortable(returned, signal).catch(error => { if (!failed)
51
+ throw error; });
52
+ }
53
+ }
54
+ }
55
+ export async function openAiJson(response, signal, maxBytes = 64 * 1024 * 1024) {
56
+ const decoder = new TextDecoder("utf-8", { fatal: true });
57
+ let text = "", length = 0;
58
+ for await (const chunk of openAiBytes(response.body, signal, maxBytes)) {
59
+ length += chunk.byteLength;
60
+ if (length > maxBytes)
61
+ throw new Error("OpenAI JSON response exceeds buffer limit");
62
+ text += decoder.decode(chunk, { stream: true });
63
+ }
64
+ text += decoder.decode();
65
+ let value;
66
+ try {
67
+ value = JSON.parse(text);
68
+ }
69
+ catch {
70
+ throw new Error("OpenAI returned malformed JSON");
71
+ }
72
+ if (!openAiRecord(value))
73
+ throw new Error("OpenAI returned a non-object JSON response");
74
+ return value;
75
+ }
76
+ export function openAiRecord(value) {
77
+ return value !== null && typeof value === "object" && !Array.isArray(value);
78
+ }
79
+ export function openAiError(value) {
80
+ if (typeof value === "string" && value)
81
+ return value.slice(0, 1024);
82
+ if (openAiRecord(value) && typeof value.message === "string")
83
+ return value.message.slice(0, 1024);
84
+ return undefined;
85
+ }
86
+ export async function* openAiResponse(transport, input) {
87
+ input.signal.throwIfAborted();
88
+ const cleanups = new Map();
89
+ let closed = false, failed = false;
90
+ const run = (cleanup) => {
91
+ cleanup.pending ??= Promise.resolve().then(cleanup.run);
92
+ return cleanup.pending;
93
+ };
94
+ const register = (cleanup, receiver) => {
95
+ if (cleanups.has(cleanup))
96
+ return;
97
+ const entry = { run: () => cleanup.call(receiver) };
98
+ cleanups.set(cleanup, entry);
99
+ if (closed)
100
+ void run(entry).catch(() => undefined);
101
+ };
102
+ const close = async () => {
103
+ closed = true;
104
+ const results = await Promise.allSettled([...cleanups.values()].map(run));
105
+ const rejected = results.find(result => result.status === "rejected");
106
+ if (rejected?.status === "rejected")
107
+ throw rejected.reason;
108
+ };
109
+ const abort = () => { void close().catch(() => undefined); };
110
+ input.signal.addEventListener("abort", abort, { once: true });
111
+ try {
112
+ const pending = Promise.resolve().then(() => {
113
+ input.signal.throwIfAborted();
114
+ return transport({ ...input, registerCleanup: register });
115
+ }).then(response => {
116
+ register(response.dispose, response);
117
+ return response;
118
+ });
119
+ const response = await openAiAbortable(pending, input.signal);
120
+ if (!Number.isInteger(response.status) || response.status < 200 || response.status >= 300) {
121
+ let detail;
122
+ try {
123
+ detail = openAiError((await openAiJson(response, input.signal, 64 * 1024)).error);
124
+ }
125
+ catch {
126
+ input.signal.throwIfAborted();
127
+ }
128
+ throw new Error(`OpenAI HTTP ${response.status}${detail ? `: ${detail}` : ""}`);
129
+ }
130
+ yield response;
131
+ }
132
+ catch (error) {
133
+ failed = true;
134
+ throw input.signal.aborted ? input.signal.reason : error;
135
+ }
136
+ finally {
137
+ input.signal.removeEventListener("abort", abort);
138
+ await close().catch(error => { if (!failed && !input.signal.aborted)
139
+ throw error; });
140
+ if (!failed)
141
+ input.signal.throwIfAborted();
142
+ }
143
+ }
144
+ //# sourceMappingURL=openai-http.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"openai-http.js","sourceRoot":"","sources":["../../../src/commands/llm/openai-http.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { ByteSource } from "../../contracts/index.js";
2
+ export declare function openAiChat(source: ByteSource, signal: AbortSignal, limit?: number, responseLimit?: number): AsyncIterable<string>;
3
+ //# sourceMappingURL=openai-sse.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"openai-sse.d.ts","sourceRoot":"","sources":["../../../src/commands/llm/openai-sse.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAiC3D,wBAAuB,UAAU,CAAC,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,KAAK,SAAc,EAAE,aAAa,SAAmB,GAAG,aAAa,CAAC,MAAM,CAAC,CAkBvJ"}