memeloop 0.0.1

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 (137) hide show
  1. package/dist/anthropic.cjs +72 -0
  2. package/dist/anthropic.cjs.map +1 -0
  3. package/dist/anthropic.d.cts +21 -0
  4. package/dist/anthropic.d.ts +21 -0
  5. package/dist/anthropic.js +21 -0
  6. package/dist/anthropic.js.map +1 -0
  7. package/dist/azure.cjs +72 -0
  8. package/dist/azure.cjs.map +1 -0
  9. package/dist/azure.d.cts +21 -0
  10. package/dist/azure.d.ts +21 -0
  11. package/dist/azure.js +21 -0
  12. package/dist/azure.js.map +1 -0
  13. package/dist/chunk-3CN7DFBL.js +4894 -0
  14. package/dist/chunk-3CN7DFBL.js.map +1 -0
  15. package/dist/chunk-4AZ4D7U5.js +32 -0
  16. package/dist/chunk-4AZ4D7U5.js.map +1 -0
  17. package/dist/chunk-6ON4XSOV.js +63 -0
  18. package/dist/chunk-6ON4XSOV.js.map +1 -0
  19. package/dist/chunk-DJQNGIXX.js +4793 -0
  20. package/dist/chunk-DJQNGIXX.js.map +1 -0
  21. package/dist/chunk-FKQP6AOQ.js +32 -0
  22. package/dist/chunk-FKQP6AOQ.js.map +1 -0
  23. package/dist/chunk-OVJ7JJBA.js +35 -0
  24. package/dist/chunk-OVJ7JJBA.js.map +1 -0
  25. package/dist/chunk-P4UZ7IXC.js +42 -0
  26. package/dist/chunk-P4UZ7IXC.js.map +1 -0
  27. package/dist/chunk-YHJ2AEFR.js +4933 -0
  28. package/dist/chunk-YHJ2AEFR.js.map +1 -0
  29. package/dist/chunk-YVK7RYRO.js +4973 -0
  30. package/dist/chunk-YVK7RYRO.js.map +1 -0
  31. package/dist/code-assistant.json +114 -0
  32. package/dist/cohere.cjs +72 -0
  33. package/dist/cohere.cjs.map +1 -0
  34. package/dist/cohere.d.cts +21 -0
  35. package/dist/cohere.d.ts +21 -0
  36. package/dist/cohere.js +21 -0
  37. package/dist/cohere.js.map +1 -0
  38. package/dist/deepseek.cjs +72 -0
  39. package/dist/deepseek.cjs.map +1 -0
  40. package/dist/deepseek.d.cts +21 -0
  41. package/dist/deepseek.d.ts +21 -0
  42. package/dist/deepseek.js +21 -0
  43. package/dist/deepseek.js.map +1 -0
  44. package/dist/dist-65U7OYRG.js +1257 -0
  45. package/dist/dist-65U7OYRG.js.map +1 -0
  46. package/dist/fetchProvider-Cu4WkU5O.d.cts +819 -0
  47. package/dist/fetchProvider-Cu4WkU5O.d.ts +819 -0
  48. package/dist/frontend-ui-ux.json +105 -0
  49. package/dist/general-assistant.json +95 -0
  50. package/dist/git-master.json +51 -0
  51. package/dist/google-vertex.cjs +72 -0
  52. package/dist/google-vertex.cjs.map +1 -0
  53. package/dist/google-vertex.d.cts +21 -0
  54. package/dist/google-vertex.d.ts +21 -0
  55. package/dist/google-vertex.js +21 -0
  56. package/dist/google-vertex.js.map +1 -0
  57. package/dist/google.cjs +72 -0
  58. package/dist/google.cjs.map +1 -0
  59. package/dist/google.d.cts +21 -0
  60. package/dist/google.d.ts +21 -0
  61. package/dist/google.js +21 -0
  62. package/dist/google.js.map +1 -0
  63. package/dist/groq.cjs +72 -0
  64. package/dist/groq.cjs.map +1 -0
  65. package/dist/groq.d.cts +21 -0
  66. package/dist/groq.d.ts +21 -0
  67. package/dist/groq.js +21 -0
  68. package/dist/groq.js.map +1 -0
  69. package/dist/index.cjs +8916 -0
  70. package/dist/index.cjs.map +1 -0
  71. package/dist/index.d.cts +1816 -0
  72. package/dist/index.d.mts +3203 -0
  73. package/dist/index.d.ts +1816 -0
  74. package/dist/index.js +4040 -0
  75. package/dist/index.js.map +1 -0
  76. package/dist/index.mjs +7064 -0
  77. package/dist/index.mjs.map +1 -0
  78. package/dist/llm-providers.cjs +311 -0
  79. package/dist/llm-providers.cjs.map +1 -0
  80. package/dist/llm-providers.d.cts +111 -0
  81. package/dist/llm-providers.d.ts +111 -0
  82. package/dist/llm-providers.js +232 -0
  83. package/dist/llm-providers.js.map +1 -0
  84. package/dist/loop-api.cjs +4924 -0
  85. package/dist/loop-api.cjs.map +1 -0
  86. package/dist/loop-api.d.cts +11 -0
  87. package/dist/loop-api.d.ts +11 -0
  88. package/dist/loop-api.js +189 -0
  89. package/dist/loop-api.js.map +1 -0
  90. package/dist/mistral.cjs +72 -0
  91. package/dist/mistral.cjs.map +1 -0
  92. package/dist/mistral.d.cts +21 -0
  93. package/dist/mistral.d.ts +21 -0
  94. package/dist/mistral.js +21 -0
  95. package/dist/mistral.js.map +1 -0
  96. package/dist/multipart-parser-EJCXIUHC.js +372 -0
  97. package/dist/multipart-parser-EJCXIUHC.js.map +1 -0
  98. package/dist/openai.cjs +72 -0
  99. package/dist/openai.cjs.map +1 -0
  100. package/dist/openai.d.cts +21 -0
  101. package/dist/openai.d.ts +21 -0
  102. package/dist/openai.js +21 -0
  103. package/dist/openai.js.map +1 -0
  104. package/dist/perplexity.cjs +72 -0
  105. package/dist/perplexity.cjs.map +1 -0
  106. package/dist/perplexity.d.cts +21 -0
  107. package/dist/perplexity.d.ts +21 -0
  108. package/dist/perplexity.js +21 -0
  109. package/dist/perplexity.js.map +1 -0
  110. package/dist/playwright.json +52 -0
  111. package/dist/promptConcat-BJdazTg5.d.cts +1832 -0
  112. package/dist/promptConcat-BJdazTg5.d.ts +1832 -0
  113. package/dist/promptConcat-CAkpni_8.d.cts +1834 -0
  114. package/dist/promptConcat-CAkpni_8.d.ts +1834 -0
  115. package/dist/promptConcat-CfH5-GAE.d.cts +1036 -0
  116. package/dist/promptConcat-ChcAZOOL.d.ts +1036 -0
  117. package/dist/promptConcat-G5TnJVRy.d.cts +1800 -0
  118. package/dist/promptConcat-G5TnJVRy.d.ts +1800 -0
  119. package/dist/promptConcat-L72eowzp.d.ts +1090 -0
  120. package/dist/promptConcat-eLHdN7K8.d.cts +1090 -0
  121. package/dist/src-VTSXKG72.js +1409 -0
  122. package/dist/src-VTSXKG72.js.map +1 -0
  123. package/dist/togetherai.cjs +72 -0
  124. package/dist/togetherai.cjs.map +1 -0
  125. package/dist/togetherai.d.cts +21 -0
  126. package/dist/togetherai.d.ts +21 -0
  127. package/dist/togetherai.js +21 -0
  128. package/dist/togetherai.js.map +1 -0
  129. package/dist/types-B0Jm2l38.d.cts +767 -0
  130. package/dist/types-B0Jm2l38.d.ts +767 -0
  131. package/dist/xai.cjs +72 -0
  132. package/dist/xai.cjs.map +1 -0
  133. package/dist/xai.d.cts +21 -0
  134. package/dist/xai.d.ts +21 -0
  135. package/dist/xai.js +21 -0
  136. package/dist/xai.js.map +1 -0
  137. package/package.json +87 -0
@@ -0,0 +1,72 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+
20
+ // src/llm/providers/anthropic.ts
21
+ var anthropic_exports = {};
22
+ __export(anthropic_exports, {
23
+ createAnthropicProvider: () => createAnthropicProvider
24
+ });
25
+ module.exports = __toCommonJS(anthropic_exports);
26
+ var import_anthropic = require("@ai-sdk/anthropic");
27
+
28
+ // src/llm/fetchProvider.ts
29
+ var import_ai = require("ai");
30
+ function createFetchLLMProvider(config) {
31
+ return {
32
+ name: config.name,
33
+ // Store the factory so hosts can introspect or extend
34
+ model: config.createModel,
35
+ async chat(request) {
36
+ const body = typeof request === "object" && request !== null ? request : {};
37
+ const model = config.createModel(body.model ?? "gpt-4o-mini");
38
+ const messages = (body.messages ?? []).map((message) => ({
39
+ role: message.role,
40
+ content: message.content
41
+ }));
42
+ if (body.stream !== false) {
43
+ const result2 = (0, import_ai.streamText)({ model, messages });
44
+ return (async function* () {
45
+ for await (const chunk of result2.textStream) {
46
+ yield chunk;
47
+ }
48
+ })();
49
+ }
50
+ const result = await (0, import_ai.generateText)({ model, messages });
51
+ return result.text;
52
+ }
53
+ };
54
+ }
55
+
56
+ // src/llm/providers/anthropic.ts
57
+ function createAnthropicProvider(config) {
58
+ const sdk = (0, import_anthropic.createAnthropic)({
59
+ baseURL: config.baseUrl ?? "https://api.anthropic.com/v1",
60
+ apiKey: config.apiKey
61
+ });
62
+ return createFetchLLMProvider({
63
+ name: config.name,
64
+ // Provider packages may return LanguageModelV1..V4 — cast to satisfy core types
65
+ createModel: (modelId) => sdk(modelId)
66
+ });
67
+ }
68
+ // Annotate the CommonJS export names for ESM import in node:
69
+ 0 && (module.exports = {
70
+ createAnthropicProvider
71
+ });
72
+ //# sourceMappingURL=anthropic.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/llm/providers/anthropic.ts","../src/llm/fetchProvider.ts"],"sourcesContent":["/**\n * Pre-built ANTHROPIC provider — wraps @ai-sdk/anthropic.\n *\n * Import from 'memeloop/anthropic' (bundles only @ai-sdk/anthropic).\n * Or inject your own via createFetchLLMProvider from 'memeloop'.\n */\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore — provider package may be at a different AI SDK version than core\nimport { createAnthropic } from '@ai-sdk/anthropic';\nimport { createFetchLLMProvider, type FetchLLMProviderConfig } from '../fetchProvider.js';\nimport type { ILLMProvider } from '../../types.js';\n\n// ─── Config ────────────────────────────────────────────────────────────\n\nexport interface AnthropicProviderConfig extends Omit<FetchLLMProviderConfig, 'createModel'> {\n /** Override the default API base URL. */\n baseUrl?: string;\n /** API key. */\n apiKey?: string;\n}\n\n// ─── Factory ───────────────────────────────────────────────────────────\n\n/**\n * Create an ILLMProvider backed by ANTHROPIC.\n *\n * @example\n * ```ts\n * import { createAnthropicProvider } from 'memeloop/anthropic';\n * const provider = createAnthropicProvider({ name: 'my-anthropic', apiKey: '...' });\n * ```\n */\nexport function createAnthropicProvider(config: AnthropicProviderConfig): ILLMProvider {\n const sdk = createAnthropic({\n baseURL: config.baseUrl ?? 'https://api.anthropic.com/v1',\n apiKey: config.apiKey,\n });\n return createFetchLLMProvider({\n name: config.name,\n // Provider packages may return LanguageModelV1..V4 — cast to satisfy core types\n createModel: (modelId: string) => sdk(modelId) as any,\n });\n}\n","/**\n * Provider-agnostic LLM provider — wraps any Vercel AI SDK LanguageModelV1.\n *\n * The core does NOT depend on @ai-sdk/openai or any specific provider.\n * Hosts inject their own `createModel` factory:\n *\n * import { createOpenAI } from '@ai-sdk/openai';\n * const openai = createOpenAI({ baseURL: '...', apiKey: '...' });\n * const provider = createAILLMProvider({\n * name: 'openai',\n * createModel: (id) => openai(id),\n * });\n *\n * Or for Anthropic:\n * import { createAnthropic } from '@ai-sdk/anthropic';\n * const anthropic = createAnthropic({ apiKey: '...' });\n * const provider = createAILLMProvider({\n * name: 'claude',\n * createModel: (id) => anthropic(id),\n * });\n *\n * Works with every @ai-sdk/* provider: openai, anthropic, google, deepseek,\n * cohere, mistral, azure, bedrock, groq, ollama, openrouter, together, etc.\n */\n\nimport type { LanguageModelV1 } from 'ai';\nimport { generateText, streamText } from 'ai';\n\nimport type { ILLMProvider } from '../types.js';\n\n// ─── Config ────────────────────────────────────────────────────────────\n\nexport interface FetchLLMProviderConfig {\n /** Display name. */\n name: string;\n /** Factory: given a model id, return a LanguageModelV1 from any @ai-sdk/* provider. */\n createModel: (modelId: string) => LanguageModelV1;\n}\n\n// ─── Factory ───────────────────────────────────────────────────────────\n\n/**\n * Create an `ILLMProvider` that delegates to the Vercel AI SDK.\n *\n * Provider-agnostic — hosts supply their own `createModel` factory.\n * Supports every @ai-sdk/* provider (OpenAI, Anthropic, Google, DeepSeek,\n * Groq, Ollama, OpenRouter, Together, Bedrock, Azure, Mistral, Cohere…).\n *\n * @example\n * ```ts\n * import { createOpenAI } from '@ai-sdk/openai';\n * const openai = createOpenAI({ baseURL: 'https://api.openai.com/v1', apiKey });\n * const provider = createAILLMProvider({\n * name: 'openai',\n * createModel: (modelId) => openai(modelId),\n * });\n * ```\n */\nexport function createFetchLLMProvider(config: FetchLLMProviderConfig): ILLMProvider {\n return {\n name: config.name,\n // Store the factory so hosts can introspect or extend\n model: config.createModel as unknown as LanguageModelV1,\n async chat(request: unknown) {\n const body = (typeof request === 'object' && request !== null ? request : {}) as {\n messages?: Array<{ role: string; content: string }>;\n model?: string;\n stream?: boolean;\n max_tokens?: number;\n temperature?: number;\n };\n\n const model = config.createModel(body.model ?? 'gpt-4o-mini');\n\n const messages = (body.messages ?? []).map((message) => ({\n role: message.role as 'system' | 'user' | 'assistant',\n content: message.content,\n }));\n\n if (body.stream !== false) {\n const result = streamText({ model, messages });\n return (async function*() {\n for await (const chunk of result.textStream) {\n yield chunk;\n }\n })();\n }\n\n const result = await generateText({ model, messages });\n return result.text;\n },\n };\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAQA,uBAAgC;;;ACkBhC,gBAAyC;AAgClC,SAAS,uBAAuB,QAA8C;AACnF,SAAO;AAAA,IACL,MAAM,OAAO;AAAA;AAAA,IAEb,OAAO,OAAO;AAAA,IACd,MAAM,KAAK,SAAkB;AAC3B,YAAM,OAAQ,OAAO,YAAY,YAAY,YAAY,OAAO,UAAU,CAAC;AAQ3E,YAAM,QAAQ,OAAO,YAAY,KAAK,SAAS,aAAa;AAE5D,YAAM,YAAY,KAAK,YAAY,CAAC,GAAG,IAAI,CAAC,aAAa;AAAA,QACvD,MAAM,QAAQ;AAAA,QACd,SAAS,QAAQ;AAAA,MACnB,EAAE;AAEF,UAAI,KAAK,WAAW,OAAO;AACzB,cAAMA,cAAS,sBAAW,EAAE,OAAO,SAAS,CAAC;AAC7C,gBAAQ,mBAAkB;AACxB,2BAAiB,SAASA,QAAO,YAAY;AAC3C,kBAAM;AAAA,UACR;AAAA,QACF,GAAG;AAAA,MACL;AAEA,YAAM,SAAS,UAAM,wBAAa,EAAE,OAAO,SAAS,CAAC;AACrD,aAAO,OAAO;AAAA,IAChB;AAAA,EACF;AACF;;;AD5DO,SAAS,wBAAwB,QAA+C;AACrF,QAAM,UAAM,kCAAgB;AAAA,IAC1B,SAAS,OAAO,WAAW;AAAA,IAC3B,QAAQ,OAAO;AAAA,EACjB,CAAC;AACD,SAAO,uBAAuB;AAAA,IAC5B,MAAM,OAAO;AAAA;AAAA,IAEb,aAAa,CAAC,YAAoB,IAAI,OAAO;AAAA,EAC/C,CAAC;AACH;","names":["result"]}
@@ -0,0 +1,21 @@
1
+ import { Y as FetchLLMProviderConfig, a1 as ILLMProvider } from './fetchProvider-Cu4WkU5O.cjs';
2
+ import 'ai';
3
+
4
+ interface AnthropicProviderConfig extends Omit<FetchLLMProviderConfig, 'createModel'> {
5
+ /** Override the default API base URL. */
6
+ baseUrl?: string;
7
+ /** API key. */
8
+ apiKey?: string;
9
+ }
10
+ /**
11
+ * Create an ILLMProvider backed by ANTHROPIC.
12
+ *
13
+ * @example
14
+ * ```ts
15
+ * import { createAnthropicProvider } from 'memeloop/anthropic';
16
+ * const provider = createAnthropicProvider({ name: 'my-anthropic', apiKey: '...' });
17
+ * ```
18
+ */
19
+ declare function createAnthropicProvider(config: AnthropicProviderConfig): ILLMProvider;
20
+
21
+ export { type AnthropicProviderConfig, createAnthropicProvider };
@@ -0,0 +1,21 @@
1
+ import { Y as FetchLLMProviderConfig, a1 as ILLMProvider } from './fetchProvider-Cu4WkU5O.js';
2
+ import 'ai';
3
+
4
+ interface AnthropicProviderConfig extends Omit<FetchLLMProviderConfig, 'createModel'> {
5
+ /** Override the default API base URL. */
6
+ baseUrl?: string;
7
+ /** API key. */
8
+ apiKey?: string;
9
+ }
10
+ /**
11
+ * Create an ILLMProvider backed by ANTHROPIC.
12
+ *
13
+ * @example
14
+ * ```ts
15
+ * import { createAnthropicProvider } from 'memeloop/anthropic';
16
+ * const provider = createAnthropicProvider({ name: 'my-anthropic', apiKey: '...' });
17
+ * ```
18
+ */
19
+ declare function createAnthropicProvider(config: AnthropicProviderConfig): ILLMProvider;
20
+
21
+ export { type AnthropicProviderConfig, createAnthropicProvider };
@@ -0,0 +1,21 @@
1
+ import {
2
+ createFetchLLMProvider
3
+ } from "./chunk-FKQP6AOQ.js";
4
+
5
+ // src/llm/providers/anthropic.ts
6
+ import { createAnthropic } from "@ai-sdk/anthropic";
7
+ function createAnthropicProvider(config) {
8
+ const sdk = createAnthropic({
9
+ baseURL: config.baseUrl ?? "https://api.anthropic.com/v1",
10
+ apiKey: config.apiKey
11
+ });
12
+ return createFetchLLMProvider({
13
+ name: config.name,
14
+ // Provider packages may return LanguageModelV1..V4 — cast to satisfy core types
15
+ createModel: (modelId) => sdk(modelId)
16
+ });
17
+ }
18
+ export {
19
+ createAnthropicProvider
20
+ };
21
+ //# sourceMappingURL=anthropic.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/llm/providers/anthropic.ts"],"sourcesContent":["/**\n * Pre-built ANTHROPIC provider — wraps @ai-sdk/anthropic.\n *\n * Import from 'memeloop/anthropic' (bundles only @ai-sdk/anthropic).\n * Or inject your own via createFetchLLMProvider from 'memeloop'.\n */\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore — provider package may be at a different AI SDK version than core\nimport { createAnthropic } from '@ai-sdk/anthropic';\nimport { createFetchLLMProvider, type FetchLLMProviderConfig } from '../fetchProvider.js';\nimport type { ILLMProvider } from '../../types.js';\n\n// ─── Config ────────────────────────────────────────────────────────────\n\nexport interface AnthropicProviderConfig extends Omit<FetchLLMProviderConfig, 'createModel'> {\n /** Override the default API base URL. */\n baseUrl?: string;\n /** API key. */\n apiKey?: string;\n}\n\n// ─── Factory ───────────────────────────────────────────────────────────\n\n/**\n * Create an ILLMProvider backed by ANTHROPIC.\n *\n * @example\n * ```ts\n * import { createAnthropicProvider } from 'memeloop/anthropic';\n * const provider = createAnthropicProvider({ name: 'my-anthropic', apiKey: '...' });\n * ```\n */\nexport function createAnthropicProvider(config: AnthropicProviderConfig): ILLMProvider {\n const sdk = createAnthropic({\n baseURL: config.baseUrl ?? 'https://api.anthropic.com/v1',\n apiKey: config.apiKey,\n });\n return createFetchLLMProvider({\n name: config.name,\n // Provider packages may return LanguageModelV1..V4 — cast to satisfy core types\n createModel: (modelId: string) => sdk(modelId) as any,\n });\n}\n"],"mappings":";;;;;AAQA,SAAS,uBAAuB;AAwBzB,SAAS,wBAAwB,QAA+C;AACrF,QAAM,MAAM,gBAAgB;AAAA,IAC1B,SAAS,OAAO,WAAW;AAAA,IAC3B,QAAQ,OAAO;AAAA,EACjB,CAAC;AACD,SAAO,uBAAuB;AAAA,IAC5B,MAAM,OAAO;AAAA;AAAA,IAEb,aAAa,CAAC,YAAoB,IAAI,OAAO;AAAA,EAC/C,CAAC;AACH;","names":[]}
package/dist/azure.cjs ADDED
@@ -0,0 +1,72 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+
20
+ // src/llm/providers/azure.ts
21
+ var azure_exports = {};
22
+ __export(azure_exports, {
23
+ createAzureProvider: () => createAzureProvider
24
+ });
25
+ module.exports = __toCommonJS(azure_exports);
26
+ var import_azure = require("@ai-sdk/azure");
27
+
28
+ // src/llm/fetchProvider.ts
29
+ var import_ai = require("ai");
30
+ function createFetchLLMProvider(config) {
31
+ return {
32
+ name: config.name,
33
+ // Store the factory so hosts can introspect or extend
34
+ model: config.createModel,
35
+ async chat(request) {
36
+ const body = typeof request === "object" && request !== null ? request : {};
37
+ const model = config.createModel(body.model ?? "gpt-4o-mini");
38
+ const messages = (body.messages ?? []).map((message) => ({
39
+ role: message.role,
40
+ content: message.content
41
+ }));
42
+ if (body.stream !== false) {
43
+ const result2 = (0, import_ai.streamText)({ model, messages });
44
+ return (async function* () {
45
+ for await (const chunk of result2.textStream) {
46
+ yield chunk;
47
+ }
48
+ })();
49
+ }
50
+ const result = await (0, import_ai.generateText)({ model, messages });
51
+ return result.text;
52
+ }
53
+ };
54
+ }
55
+
56
+ // src/llm/providers/azure.ts
57
+ function createAzureProvider(config) {
58
+ const sdk = (0, import_azure.createAzure)({
59
+ apiKey: config.apiKey,
60
+ ...config.options
61
+ });
62
+ return createFetchLLMProvider({
63
+ name: config.name,
64
+ // Provider packages may return LanguageModelV1..V4 — cast to satisfy core types
65
+ createModel: (modelId) => sdk(modelId)
66
+ });
67
+ }
68
+ // Annotate the CommonJS export names for ESM import in node:
69
+ 0 && (module.exports = {
70
+ createAzureProvider
71
+ });
72
+ //# sourceMappingURL=azure.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/llm/providers/azure.ts","../src/llm/fetchProvider.ts"],"sourcesContent":["/**\n * Pre-built AZURE provider — wraps @ai-sdk/azure.\n *\n * Import from 'memeloop/azure' (bundles only @ai-sdk/azure).\n * Or inject your own via createFetchLLMProvider from 'memeloop'.\n */\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore — provider package may be at a different AI SDK version than core\nimport { createAzure } from '@ai-sdk/azure';\nimport { createFetchLLMProvider, type FetchLLMProviderConfig } from '../fetchProvider.js';\nimport type { ILLMProvider } from '../../types.js';\n\n// ─── Config ────────────────────────────────────────────────────────────\n\nexport interface AzureProviderConfig extends Omit<FetchLLMProviderConfig, 'createModel'> {\n /** API key or credential. */\n apiKey?: string;\n /** Additional provider-specific options. See @ai-sdk/azure docs. */\n options?: Record<string, unknown>;\n}\n\n// ─── Factory ───────────────────────────────────────────────────────────\n\n/**\n * Create an ILLMProvider backed by AZURE.\n *\n * @example\n * ```ts\n * import { createAzureProvider } from 'memeloop/azure';\n * const provider = createAzureProvider({ name: 'my-azure', apiKey: '...' });\n * ```\n */\nexport function createAzureProvider(config: AzureProviderConfig): ILLMProvider {\n const sdk = createAzure({\n apiKey: config.apiKey,\n ...config.options,\n });\n return createFetchLLMProvider({\n name: config.name,\n // Provider packages may return LanguageModelV1..V4 — cast to satisfy core types\n createModel: (modelId: string) => sdk(modelId) as any,\n });\n}\n","/**\n * Provider-agnostic LLM provider — wraps any Vercel AI SDK LanguageModelV1.\n *\n * The core does NOT depend on @ai-sdk/openai or any specific provider.\n * Hosts inject their own `createModel` factory:\n *\n * import { createOpenAI } from '@ai-sdk/openai';\n * const openai = createOpenAI({ baseURL: '...', apiKey: '...' });\n * const provider = createAILLMProvider({\n * name: 'openai',\n * createModel: (id) => openai(id),\n * });\n *\n * Or for Anthropic:\n * import { createAnthropic } from '@ai-sdk/anthropic';\n * const anthropic = createAnthropic({ apiKey: '...' });\n * const provider = createAILLMProvider({\n * name: 'claude',\n * createModel: (id) => anthropic(id),\n * });\n *\n * Works with every @ai-sdk/* provider: openai, anthropic, google, deepseek,\n * cohere, mistral, azure, bedrock, groq, ollama, openrouter, together, etc.\n */\n\nimport type { LanguageModelV1 } from 'ai';\nimport { generateText, streamText } from 'ai';\n\nimport type { ILLMProvider } from '../types.js';\n\n// ─── Config ────────────────────────────────────────────────────────────\n\nexport interface FetchLLMProviderConfig {\n /** Display name. */\n name: string;\n /** Factory: given a model id, return a LanguageModelV1 from any @ai-sdk/* provider. */\n createModel: (modelId: string) => LanguageModelV1;\n}\n\n// ─── Factory ───────────────────────────────────────────────────────────\n\n/**\n * Create an `ILLMProvider` that delegates to the Vercel AI SDK.\n *\n * Provider-agnostic — hosts supply their own `createModel` factory.\n * Supports every @ai-sdk/* provider (OpenAI, Anthropic, Google, DeepSeek,\n * Groq, Ollama, OpenRouter, Together, Bedrock, Azure, Mistral, Cohere…).\n *\n * @example\n * ```ts\n * import { createOpenAI } from '@ai-sdk/openai';\n * const openai = createOpenAI({ baseURL: 'https://api.openai.com/v1', apiKey });\n * const provider = createAILLMProvider({\n * name: 'openai',\n * createModel: (modelId) => openai(modelId),\n * });\n * ```\n */\nexport function createFetchLLMProvider(config: FetchLLMProviderConfig): ILLMProvider {\n return {\n name: config.name,\n // Store the factory so hosts can introspect or extend\n model: config.createModel as unknown as LanguageModelV1,\n async chat(request: unknown) {\n const body = (typeof request === 'object' && request !== null ? request : {}) as {\n messages?: Array<{ role: string; content: string }>;\n model?: string;\n stream?: boolean;\n max_tokens?: number;\n temperature?: number;\n };\n\n const model = config.createModel(body.model ?? 'gpt-4o-mini');\n\n const messages = (body.messages ?? []).map((message) => ({\n role: message.role as 'system' | 'user' | 'assistant',\n content: message.content,\n }));\n\n if (body.stream !== false) {\n const result = streamText({ model, messages });\n return (async function*() {\n for await (const chunk of result.textStream) {\n yield chunk;\n }\n })();\n }\n\n const result = await generateText({ model, messages });\n return result.text;\n },\n };\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAQA,mBAA4B;;;ACkB5B,gBAAyC;AAgClC,SAAS,uBAAuB,QAA8C;AACnF,SAAO;AAAA,IACL,MAAM,OAAO;AAAA;AAAA,IAEb,OAAO,OAAO;AAAA,IACd,MAAM,KAAK,SAAkB;AAC3B,YAAM,OAAQ,OAAO,YAAY,YAAY,YAAY,OAAO,UAAU,CAAC;AAQ3E,YAAM,QAAQ,OAAO,YAAY,KAAK,SAAS,aAAa;AAE5D,YAAM,YAAY,KAAK,YAAY,CAAC,GAAG,IAAI,CAAC,aAAa;AAAA,QACvD,MAAM,QAAQ;AAAA,QACd,SAAS,QAAQ;AAAA,MACnB,EAAE;AAEF,UAAI,KAAK,WAAW,OAAO;AACzB,cAAMA,cAAS,sBAAW,EAAE,OAAO,SAAS,CAAC;AAC7C,gBAAQ,mBAAkB;AACxB,2BAAiB,SAASA,QAAO,YAAY;AAC3C,kBAAM;AAAA,UACR;AAAA,QACF,GAAG;AAAA,MACL;AAEA,YAAM,SAAS,UAAM,wBAAa,EAAE,OAAO,SAAS,CAAC;AACrD,aAAO,OAAO;AAAA,IAChB;AAAA,EACF;AACF;;;AD5DO,SAAS,oBAAoB,QAA2C;AAC7E,QAAM,UAAM,0BAAY;AAAA,IACtB,QAAQ,OAAO;AAAA,IACf,GAAG,OAAO;AAAA,EACZ,CAAC;AACD,SAAO,uBAAuB;AAAA,IAC5B,MAAM,OAAO;AAAA;AAAA,IAEb,aAAa,CAAC,YAAoB,IAAI,OAAO;AAAA,EAC/C,CAAC;AACH;","names":["result"]}
@@ -0,0 +1,21 @@
1
+ import { Y as FetchLLMProviderConfig, a1 as ILLMProvider } from './fetchProvider-Cu4WkU5O.cjs';
2
+ import 'ai';
3
+
4
+ interface AzureProviderConfig extends Omit<FetchLLMProviderConfig, 'createModel'> {
5
+ /** API key or credential. */
6
+ apiKey?: string;
7
+ /** Additional provider-specific options. See @ai-sdk/azure docs. */
8
+ options?: Record<string, unknown>;
9
+ }
10
+ /**
11
+ * Create an ILLMProvider backed by AZURE.
12
+ *
13
+ * @example
14
+ * ```ts
15
+ * import { createAzureProvider } from 'memeloop/azure';
16
+ * const provider = createAzureProvider({ name: 'my-azure', apiKey: '...' });
17
+ * ```
18
+ */
19
+ declare function createAzureProvider(config: AzureProviderConfig): ILLMProvider;
20
+
21
+ export { type AzureProviderConfig, createAzureProvider };
@@ -0,0 +1,21 @@
1
+ import { Y as FetchLLMProviderConfig, a1 as ILLMProvider } from './fetchProvider-Cu4WkU5O.js';
2
+ import 'ai';
3
+
4
+ interface AzureProviderConfig extends Omit<FetchLLMProviderConfig, 'createModel'> {
5
+ /** API key or credential. */
6
+ apiKey?: string;
7
+ /** Additional provider-specific options. See @ai-sdk/azure docs. */
8
+ options?: Record<string, unknown>;
9
+ }
10
+ /**
11
+ * Create an ILLMProvider backed by AZURE.
12
+ *
13
+ * @example
14
+ * ```ts
15
+ * import { createAzureProvider } from 'memeloop/azure';
16
+ * const provider = createAzureProvider({ name: 'my-azure', apiKey: '...' });
17
+ * ```
18
+ */
19
+ declare function createAzureProvider(config: AzureProviderConfig): ILLMProvider;
20
+
21
+ export { type AzureProviderConfig, createAzureProvider };
package/dist/azure.js ADDED
@@ -0,0 +1,21 @@
1
+ import {
2
+ createFetchLLMProvider
3
+ } from "./chunk-FKQP6AOQ.js";
4
+
5
+ // src/llm/providers/azure.ts
6
+ import { createAzure } from "@ai-sdk/azure";
7
+ function createAzureProvider(config) {
8
+ const sdk = createAzure({
9
+ apiKey: config.apiKey,
10
+ ...config.options
11
+ });
12
+ return createFetchLLMProvider({
13
+ name: config.name,
14
+ // Provider packages may return LanguageModelV1..V4 — cast to satisfy core types
15
+ createModel: (modelId) => sdk(modelId)
16
+ });
17
+ }
18
+ export {
19
+ createAzureProvider
20
+ };
21
+ //# sourceMappingURL=azure.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/llm/providers/azure.ts"],"sourcesContent":["/**\n * Pre-built AZURE provider — wraps @ai-sdk/azure.\n *\n * Import from 'memeloop/azure' (bundles only @ai-sdk/azure).\n * Or inject your own via createFetchLLMProvider from 'memeloop'.\n */\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore — provider package may be at a different AI SDK version than core\nimport { createAzure } from '@ai-sdk/azure';\nimport { createFetchLLMProvider, type FetchLLMProviderConfig } from '../fetchProvider.js';\nimport type { ILLMProvider } from '../../types.js';\n\n// ─── Config ────────────────────────────────────────────────────────────\n\nexport interface AzureProviderConfig extends Omit<FetchLLMProviderConfig, 'createModel'> {\n /** API key or credential. */\n apiKey?: string;\n /** Additional provider-specific options. See @ai-sdk/azure docs. */\n options?: Record<string, unknown>;\n}\n\n// ─── Factory ───────────────────────────────────────────────────────────\n\n/**\n * Create an ILLMProvider backed by AZURE.\n *\n * @example\n * ```ts\n * import { createAzureProvider } from 'memeloop/azure';\n * const provider = createAzureProvider({ name: 'my-azure', apiKey: '...' });\n * ```\n */\nexport function createAzureProvider(config: AzureProviderConfig): ILLMProvider {\n const sdk = createAzure({\n apiKey: config.apiKey,\n ...config.options,\n });\n return createFetchLLMProvider({\n name: config.name,\n // Provider packages may return LanguageModelV1..V4 — cast to satisfy core types\n createModel: (modelId: string) => sdk(modelId) as any,\n });\n}\n"],"mappings":";;;;;AAQA,SAAS,mBAAmB;AAwBrB,SAAS,oBAAoB,QAA2C;AAC7E,QAAM,MAAM,YAAY;AAAA,IACtB,QAAQ,OAAO;AAAA,IACf,GAAG,OAAO;AAAA,EACZ,CAAC;AACD,SAAO,uBAAuB;AAAA,IAC5B,MAAM,OAAO;AAAA;AAAA,IAEb,aAAa,CAAC,YAAoB,IAAI,OAAO;AAAA,EAC/C,CAAC;AACH;","names":[]}