memeloop 0.0.1 → 0.1.0

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 (228) hide show
  1. package/README.md +63 -0
  2. package/dist/browser.cjs +1413 -0
  3. package/dist/browser.cjs.map +1 -0
  4. package/dist/browser.d.cts +3066 -0
  5. package/dist/browser.d.ts +3066 -0
  6. package/dist/browser.js +43 -0
  7. package/dist/chunk-426CJUZP.js +630 -0
  8. package/dist/chunk-426CJUZP.js.map +1 -0
  9. package/dist/chunk-44YHBKDL.js +382 -0
  10. package/dist/chunk-44YHBKDL.js.map +1 -0
  11. package/dist/chunk-7ZDTB4VZ.js +63 -0
  12. package/dist/chunk-7ZDTB4VZ.js.map +1 -0
  13. package/dist/chunk-AZFYDWIN.js +98 -0
  14. package/dist/chunk-AZFYDWIN.js.map +1 -0
  15. package/dist/chunk-BGPU4RR7.js +367 -0
  16. package/dist/chunk-BGPU4RR7.js.map +1 -0
  17. package/dist/chunk-CCEFAOSH.js +496 -0
  18. package/dist/chunk-CCEFAOSH.js.map +1 -0
  19. package/dist/chunk-FWSY5HOA.js +63 -0
  20. package/dist/chunk-FWSY5HOA.js.map +1 -0
  21. package/dist/chunk-GYIOMQMY.js +8726 -0
  22. package/dist/chunk-GYIOMQMY.js.map +1 -0
  23. package/dist/chunk-HVB2BR3H.js +42 -0
  24. package/dist/chunk-HVB2BR3H.js.map +1 -0
  25. package/dist/chunk-K6P63KD4.js +68 -0
  26. package/dist/chunk-K6P63KD4.js.map +1 -0
  27. package/dist/chunk-MRKY4HGF.js +205 -0
  28. package/dist/chunk-MRKY4HGF.js.map +1 -0
  29. package/dist/chunk-QFHAAIIM.js +2657 -0
  30. package/dist/chunk-QFHAAIIM.js.map +1 -0
  31. package/dist/chunk-VZKQX5PP.js +1 -0
  32. package/dist/chunk-VZKQX5PP.js.map +1 -0
  33. package/dist/chunk-WAI6BODI.js +175 -0
  34. package/dist/chunk-WAI6BODI.js.map +1 -0
  35. package/dist/chunk-XHRBV6I3.js +3637 -0
  36. package/dist/chunk-XHRBV6I3.js.map +1 -0
  37. package/dist/chunk-YMNXDNDW.js +798 -0
  38. package/dist/chunk-YMNXDNDW.js.map +1 -0
  39. package/dist/conversation.cjs +208 -0
  40. package/dist/conversation.cjs.map +1 -0
  41. package/dist/conversation.d.cts +100 -0
  42. package/dist/conversation.d.ts +100 -0
  43. package/dist/conversation.js +21 -0
  44. package/dist/conversation.js.map +1 -0
  45. package/dist/device-network-portable.cjs +702 -0
  46. package/dist/device-network-portable.cjs.map +1 -0
  47. package/dist/device-network-portable.d.cts +110 -0
  48. package/dist/device-network-portable.d.ts +110 -0
  49. package/dist/device-network-portable.js +53 -0
  50. package/dist/device-network-portable.js.map +1 -0
  51. package/dist/device-network.cjs +906 -0
  52. package/dist/device-network.cjs.map +1 -0
  53. package/dist/device-network.d.cts +6 -0
  54. package/dist/device-network.d.ts +6 -0
  55. package/dist/device-network.js +59 -0
  56. package/dist/device-network.js.map +1 -0
  57. package/dist/fetchProvider-BpcGVSOG.d.cts +91 -0
  58. package/dist/fetchProvider-Cm0sO4Tl.d.ts +91 -0
  59. package/dist/index.cjs +27957 -5459
  60. package/dist/index.cjs.map +1 -1
  61. package/dist/index.d.cts +94 -1320
  62. package/dist/index.d.ts +94 -1320
  63. package/dist/index.js +10576 -2386
  64. package/dist/index.js.map +1 -1
  65. package/dist/interface-IrKBFtL1.d.cts +493 -0
  66. package/dist/interface-IrKBFtL1.d.ts +493 -0
  67. package/dist/llm-providers.cjs +43 -8
  68. package/dist/llm-providers.cjs.map +1 -1
  69. package/dist/llm-providers.d.cts +2 -1
  70. package/dist/llm-providers.d.ts +2 -1
  71. package/dist/llm-providers.js +4 -2
  72. package/dist/llm-providers.js.map +1 -1
  73. package/dist/loop-api.cjs +5177 -2050
  74. package/dist/loop-api.cjs.map +1 -1
  75. package/dist/loop-api.d.cts +11 -5
  76. package/dist/loop-api.d.ts +11 -5
  77. package/dist/loop-api.js +84 -49
  78. package/dist/mobile.cjs +2625 -0
  79. package/dist/mobile.cjs.map +1 -0
  80. package/dist/mobile.d.cts +6 -0
  81. package/dist/mobile.d.ts +6 -0
  82. package/dist/mobile.js +22 -0
  83. package/dist/mobile.js.map +1 -0
  84. package/dist/orchestration-portable-Bsf8YRfp.d.cts +2192 -0
  85. package/dist/orchestration-portable-Zw0g5tbj.d.ts +2192 -0
  86. package/dist/orchestration-portable.cjs +9553 -0
  87. package/dist/orchestration-portable.cjs.map +1 -0
  88. package/dist/orchestration-portable.d.cts +5 -0
  89. package/dist/orchestration-portable.d.ts +5 -0
  90. package/dist/orchestration-portable.js +290 -0
  91. package/dist/orchestration-portable.js.map +1 -0
  92. package/dist/pairingInvite-BXPWY3aM.d.cts +149 -0
  93. package/dist/pairingInvite-Cuz0wuq9.d.ts +149 -0
  94. package/dist/promptConcat-WTN-uHcz.d.cts +516 -0
  95. package/dist/promptConcat-deDSWZE3.d.ts +516 -0
  96. package/dist/providerRegistry-9trr5aoK.d.ts +86 -0
  97. package/dist/providerRegistry-xk_B1Ekv.d.cts +86 -0
  98. package/dist/registry-8eztoD_r.d.cts +393 -0
  99. package/dist/registry-DV24sI-3.d.ts +393 -0
  100. package/dist/remoteClient-B_spK019.d.ts +87 -0
  101. package/dist/remoteClient-CBggnRy3.d.cts +87 -0
  102. package/dist/runtime-SKSXVYIM.js +18 -0
  103. package/dist/runtime-SKSXVYIM.js.map +1 -0
  104. package/dist/scriptDeploymentPipeline-BAeo1dPb.d.cts +2463 -0
  105. package/dist/scriptDeploymentPipeline-DsnT0AG6.d.ts +2463 -0
  106. package/dist/syncCloudDevices-BEqwgrhD.d.ts +49 -0
  107. package/dist/syncCloudDevices-Ds_Kcgrv.d.cts +49 -0
  108. package/dist/types-7pYti-k9.d.cts +255 -0
  109. package/dist/types-CdFVSntj.d.ts +255 -0
  110. package/package.json +110 -35
  111. package/dist/anthropic.cjs +0 -72
  112. package/dist/anthropic.cjs.map +0 -1
  113. package/dist/anthropic.d.cts +0 -21
  114. package/dist/anthropic.d.ts +0 -21
  115. package/dist/anthropic.js +0 -21
  116. package/dist/anthropic.js.map +0 -1
  117. package/dist/azure.cjs +0 -72
  118. package/dist/azure.cjs.map +0 -1
  119. package/dist/azure.d.cts +0 -21
  120. package/dist/azure.d.ts +0 -21
  121. package/dist/azure.js +0 -21
  122. package/dist/azure.js.map +0 -1
  123. package/dist/chunk-3CN7DFBL.js +0 -4894
  124. package/dist/chunk-3CN7DFBL.js.map +0 -1
  125. package/dist/chunk-4AZ4D7U5.js +0 -32
  126. package/dist/chunk-4AZ4D7U5.js.map +0 -1
  127. package/dist/chunk-6ON4XSOV.js +0 -63
  128. package/dist/chunk-6ON4XSOV.js.map +0 -1
  129. package/dist/chunk-DJQNGIXX.js +0 -4793
  130. package/dist/chunk-DJQNGIXX.js.map +0 -1
  131. package/dist/chunk-FKQP6AOQ.js +0 -32
  132. package/dist/chunk-FKQP6AOQ.js.map +0 -1
  133. package/dist/chunk-OVJ7JJBA.js +0 -35
  134. package/dist/chunk-OVJ7JJBA.js.map +0 -1
  135. package/dist/chunk-P4UZ7IXC.js +0 -42
  136. package/dist/chunk-YHJ2AEFR.js +0 -4933
  137. package/dist/chunk-YHJ2AEFR.js.map +0 -1
  138. package/dist/chunk-YVK7RYRO.js +0 -4973
  139. package/dist/chunk-YVK7RYRO.js.map +0 -1
  140. package/dist/code-assistant.json +0 -114
  141. package/dist/cohere.cjs +0 -72
  142. package/dist/cohere.cjs.map +0 -1
  143. package/dist/cohere.d.cts +0 -21
  144. package/dist/cohere.d.ts +0 -21
  145. package/dist/cohere.js +0 -21
  146. package/dist/cohere.js.map +0 -1
  147. package/dist/deepseek.cjs +0 -72
  148. package/dist/deepseek.cjs.map +0 -1
  149. package/dist/deepseek.d.cts +0 -21
  150. package/dist/deepseek.d.ts +0 -21
  151. package/dist/deepseek.js +0 -21
  152. package/dist/deepseek.js.map +0 -1
  153. package/dist/dist-65U7OYRG.js +0 -1257
  154. package/dist/dist-65U7OYRG.js.map +0 -1
  155. package/dist/fetchProvider-Cu4WkU5O.d.cts +0 -819
  156. package/dist/fetchProvider-Cu4WkU5O.d.ts +0 -819
  157. package/dist/frontend-ui-ux.json +0 -105
  158. package/dist/general-assistant.json +0 -95
  159. package/dist/git-master.json +0 -51
  160. package/dist/google-vertex.cjs +0 -72
  161. package/dist/google-vertex.cjs.map +0 -1
  162. package/dist/google-vertex.d.cts +0 -21
  163. package/dist/google-vertex.d.ts +0 -21
  164. package/dist/google-vertex.js +0 -21
  165. package/dist/google-vertex.js.map +0 -1
  166. package/dist/google.cjs +0 -72
  167. package/dist/google.cjs.map +0 -1
  168. package/dist/google.d.cts +0 -21
  169. package/dist/google.d.ts +0 -21
  170. package/dist/google.js +0 -21
  171. package/dist/google.js.map +0 -1
  172. package/dist/groq.cjs +0 -72
  173. package/dist/groq.cjs.map +0 -1
  174. package/dist/groq.d.cts +0 -21
  175. package/dist/groq.d.ts +0 -21
  176. package/dist/groq.js +0 -21
  177. package/dist/groq.js.map +0 -1
  178. package/dist/index.d.mts +0 -3203
  179. package/dist/index.mjs +0 -7064
  180. package/dist/index.mjs.map +0 -1
  181. package/dist/mistral.cjs +0 -72
  182. package/dist/mistral.cjs.map +0 -1
  183. package/dist/mistral.d.cts +0 -21
  184. package/dist/mistral.d.ts +0 -21
  185. package/dist/mistral.js +0 -21
  186. package/dist/mistral.js.map +0 -1
  187. package/dist/multipart-parser-EJCXIUHC.js +0 -372
  188. package/dist/multipart-parser-EJCXIUHC.js.map +0 -1
  189. package/dist/openai.cjs +0 -72
  190. package/dist/openai.cjs.map +0 -1
  191. package/dist/openai.d.cts +0 -21
  192. package/dist/openai.d.ts +0 -21
  193. package/dist/openai.js +0 -21
  194. package/dist/openai.js.map +0 -1
  195. package/dist/perplexity.cjs +0 -72
  196. package/dist/perplexity.cjs.map +0 -1
  197. package/dist/perplexity.d.cts +0 -21
  198. package/dist/perplexity.d.ts +0 -21
  199. package/dist/perplexity.js +0 -21
  200. package/dist/perplexity.js.map +0 -1
  201. package/dist/playwright.json +0 -52
  202. package/dist/promptConcat-BJdazTg5.d.cts +0 -1832
  203. package/dist/promptConcat-BJdazTg5.d.ts +0 -1832
  204. package/dist/promptConcat-CAkpni_8.d.cts +0 -1834
  205. package/dist/promptConcat-CAkpni_8.d.ts +0 -1834
  206. package/dist/promptConcat-CfH5-GAE.d.cts +0 -1036
  207. package/dist/promptConcat-ChcAZOOL.d.ts +0 -1036
  208. package/dist/promptConcat-G5TnJVRy.d.cts +0 -1800
  209. package/dist/promptConcat-G5TnJVRy.d.ts +0 -1800
  210. package/dist/promptConcat-L72eowzp.d.ts +0 -1090
  211. package/dist/promptConcat-eLHdN7K8.d.cts +0 -1090
  212. package/dist/src-VTSXKG72.js +0 -1409
  213. package/dist/src-VTSXKG72.js.map +0 -1
  214. package/dist/togetherai.cjs +0 -72
  215. package/dist/togetherai.cjs.map +0 -1
  216. package/dist/togetherai.d.cts +0 -21
  217. package/dist/togetherai.d.ts +0 -21
  218. package/dist/togetherai.js +0 -21
  219. package/dist/togetherai.js.map +0 -1
  220. package/dist/types-B0Jm2l38.d.cts +0 -767
  221. package/dist/types-B0Jm2l38.d.ts +0 -767
  222. package/dist/xai.cjs +0 -72
  223. package/dist/xai.cjs.map +0 -1
  224. package/dist/xai.d.cts +0 -21
  225. package/dist/xai.d.ts +0 -21
  226. package/dist/xai.js +0 -21
  227. package/dist/xai.js.map +0 -1
  228. /package/dist/{chunk-P4UZ7IXC.js.map → browser.js.map} +0 -0
package/dist/openai.d.cts DELETED
@@ -1,21 +0,0 @@
1
- import { Y as FetchLLMProviderConfig, a1 as ILLMProvider } from './fetchProvider-Cu4WkU5O.cjs';
2
- import 'ai';
3
-
4
- interface OpenaiProviderConfig 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 OPENAI.
12
- *
13
- * @example
14
- * ```ts
15
- * import { createOpenaiProvider } from 'memeloop/openai';
16
- * const provider = createOpenaiProvider({ name: 'my-openai', apiKey: '...' });
17
- * ```
18
- */
19
- declare function createOpenaiProvider(config: OpenaiProviderConfig): ILLMProvider;
20
-
21
- export { type OpenaiProviderConfig, createOpenaiProvider };
package/dist/openai.d.ts DELETED
@@ -1,21 +0,0 @@
1
- import { Y as FetchLLMProviderConfig, a1 as ILLMProvider } from './fetchProvider-Cu4WkU5O.js';
2
- import 'ai';
3
-
4
- interface OpenaiProviderConfig 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 OPENAI.
12
- *
13
- * @example
14
- * ```ts
15
- * import { createOpenaiProvider } from 'memeloop/openai';
16
- * const provider = createOpenaiProvider({ name: 'my-openai', apiKey: '...' });
17
- * ```
18
- */
19
- declare function createOpenaiProvider(config: OpenaiProviderConfig): ILLMProvider;
20
-
21
- export { type OpenaiProviderConfig, createOpenaiProvider };
package/dist/openai.js DELETED
@@ -1,21 +0,0 @@
1
- import {
2
- createFetchLLMProvider
3
- } from "./chunk-FKQP6AOQ.js";
4
-
5
- // src/llm/providers/openai.ts
6
- import { createOpenAI } from "@ai-sdk/openai";
7
- function createOpenaiProvider(config) {
8
- const sdk = createOpenAI({
9
- baseURL: config.baseUrl ?? "https://api.openai.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
- createOpenaiProvider
20
- };
21
- //# sourceMappingURL=openai.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/llm/providers/openai.ts"],"sourcesContent":["/**\n * Pre-built OPENAI provider — wraps @ai-sdk/openai.\n *\n * Import from 'memeloop/openai' (bundles only @ai-sdk/openai).\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 { createOpenAI } from '@ai-sdk/openai';\nimport { createFetchLLMProvider, type FetchLLMProviderConfig } from '../fetchProvider.js';\nimport type { ILLMProvider } from '../../types.js';\n\n// ─── Config ────────────────────────────────────────────────────────────\n\nexport interface OpenaiProviderConfig 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 OPENAI.\n *\n * @example\n * ```ts\n * import { createOpenaiProvider } from 'memeloop/openai';\n * const provider = createOpenaiProvider({ name: 'my-openai', apiKey: '...' });\n * ```\n */\nexport function createOpenaiProvider(config: OpenaiProviderConfig): ILLMProvider {\n const sdk = createOpenAI({\n baseURL: config.baseUrl ?? 'https://api.openai.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,oBAAoB;AAwBtB,SAAS,qBAAqB,QAA4C;AAC/E,QAAM,MAAM,aAAa;AAAA,IACvB,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":[]}
@@ -1,72 +0,0 @@
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/perplexity.ts
21
- var perplexity_exports = {};
22
- __export(perplexity_exports, {
23
- createPerplexityProvider: () => createPerplexityProvider
24
- });
25
- module.exports = __toCommonJS(perplexity_exports);
26
- var import_perplexity = require("@ai-sdk/perplexity");
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/perplexity.ts
57
- function createPerplexityProvider(config) {
58
- const sdk = (0, import_perplexity.createPerplexity)({
59
- baseURL: config.baseUrl ?? "https://api.perplexity.ai",
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
- createPerplexityProvider
71
- });
72
- //# sourceMappingURL=perplexity.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/llm/providers/perplexity.ts","../src/llm/fetchProvider.ts"],"sourcesContent":["/**\n * Pre-built PERPLEXITY provider — wraps @ai-sdk/perplexity.\n *\n * Import from 'memeloop/perplexity' (bundles only @ai-sdk/perplexity).\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 { createPerplexity } from '@ai-sdk/perplexity';\nimport { createFetchLLMProvider, type FetchLLMProviderConfig } from '../fetchProvider.js';\nimport type { ILLMProvider } from '../../types.js';\n\n// ─── Config ────────────────────────────────────────────────────────────\n\nexport interface PerplexityProviderConfig 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 PERPLEXITY.\n *\n * @example\n * ```ts\n * import { createPerplexityProvider } from 'memeloop/perplexity';\n * const provider = createPerplexityProvider({ name: 'my-perplexity', apiKey: '...' });\n * ```\n */\nexport function createPerplexityProvider(config: PerplexityProviderConfig): ILLMProvider {\n const sdk = createPerplexity({\n baseURL: config.baseUrl ?? 'https://api.perplexity.ai',\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,wBAAiC;;;ACkBjC,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,yBAAyB,QAAgD;AACvF,QAAM,UAAM,oCAAiB;AAAA,IAC3B,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"]}
@@ -1,21 +0,0 @@
1
- import { Y as FetchLLMProviderConfig, a1 as ILLMProvider } from './fetchProvider-Cu4WkU5O.cjs';
2
- import 'ai';
3
-
4
- interface PerplexityProviderConfig 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 PERPLEXITY.
12
- *
13
- * @example
14
- * ```ts
15
- * import { createPerplexityProvider } from 'memeloop/perplexity';
16
- * const provider = createPerplexityProvider({ name: 'my-perplexity', apiKey: '...' });
17
- * ```
18
- */
19
- declare function createPerplexityProvider(config: PerplexityProviderConfig): ILLMProvider;
20
-
21
- export { type PerplexityProviderConfig, createPerplexityProvider };
@@ -1,21 +0,0 @@
1
- import { Y as FetchLLMProviderConfig, a1 as ILLMProvider } from './fetchProvider-Cu4WkU5O.js';
2
- import 'ai';
3
-
4
- interface PerplexityProviderConfig 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 PERPLEXITY.
12
- *
13
- * @example
14
- * ```ts
15
- * import { createPerplexityProvider } from 'memeloop/perplexity';
16
- * const provider = createPerplexityProvider({ name: 'my-perplexity', apiKey: '...' });
17
- * ```
18
- */
19
- declare function createPerplexityProvider(config: PerplexityProviderConfig): ILLMProvider;
20
-
21
- export { type PerplexityProviderConfig, createPerplexityProvider };
@@ -1,21 +0,0 @@
1
- import {
2
- createFetchLLMProvider
3
- } from "./chunk-FKQP6AOQ.js";
4
-
5
- // src/llm/providers/perplexity.ts
6
- import { createPerplexity } from "@ai-sdk/perplexity";
7
- function createPerplexityProvider(config) {
8
- const sdk = createPerplexity({
9
- baseURL: config.baseUrl ?? "https://api.perplexity.ai",
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
- createPerplexityProvider
20
- };
21
- //# sourceMappingURL=perplexity.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/llm/providers/perplexity.ts"],"sourcesContent":["/**\n * Pre-built PERPLEXITY provider — wraps @ai-sdk/perplexity.\n *\n * Import from 'memeloop/perplexity' (bundles only @ai-sdk/perplexity).\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 { createPerplexity } from '@ai-sdk/perplexity';\nimport { createFetchLLMProvider, type FetchLLMProviderConfig } from '../fetchProvider.js';\nimport type { ILLMProvider } from '../../types.js';\n\n// ─── Config ────────────────────────────────────────────────────────────\n\nexport interface PerplexityProviderConfig 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 PERPLEXITY.\n *\n * @example\n * ```ts\n * import { createPerplexityProvider } from 'memeloop/perplexity';\n * const provider = createPerplexityProvider({ name: 'my-perplexity', apiKey: '...' });\n * ```\n */\nexport function createPerplexityProvider(config: PerplexityProviderConfig): ILLMProvider {\n const sdk = createPerplexity({\n baseURL: config.baseUrl ?? 'https://api.perplexity.ai',\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,wBAAwB;AAwB1B,SAAS,yBAAyB,QAAgD;AACvF,QAAM,MAAM,iBAAiB;AAAA,IAC3B,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":[]}
@@ -1,52 +0,0 @@
1
- {
2
- "id": "memeloop:playwright",
3
- "name": "Playwright",
4
- "description": "Browser automation via Playwright for verification, browsing, information gathering, web scraping, testing, and screenshots.",
5
- "loopId": "agent-tool-loop",
6
- "systemPrompt": "You have access to Playwright for browser automation. Use it for:\n\nBrowser Automation:\n- Navigate to URLs and verify page content\n- Fill forms, click buttons, and interact with page elements\n- Take screenshots of specific elements or full pages\n- Extract data from web pages (scraping)\n- Test web application functionality end-to-end\n- Automate browser workflows\n- Log into websites and maintain sessions\n\nBest Practices:\n- Use specific selectors (data-testid, id, or unique CSS selectors) over fragile XPath\n- Wait for elements to be visible before interacting\n- Handle page navigation and loading states explicitly\n- Take screenshots at key steps for debugging\n- Clean up browser resources when done\n- Handle timeouts and error states gracefully\n\nAvailable Playwright MCP Tools:\n- browser_navigate: Navigate to a URL\n- browser_click: Click an element\n- browser_type: Type into an input field\n- browser_snapshot: Take accessibility snapshot of page\n- browser_take_screenshot: Capture screenshot\n- browser_fill_form: Fill multiple form fields at once\n- browser_evaluate: Execute JavaScript in page context\n- browser_select_option: Select from dropdown\n- browser_drag: Drag and drop elements\n- browser_hover: Hover over an element\n- browser_press_key: Press a keyboard key\n- browser_handle_dialog: Handle browser dialogs (alert/confirm/prompt)\n- browser_close: Close the browser",
7
- "tools": ["modelContextProtocol", "askQuestion"],
8
- "plugins": [
9
- { "id": "builtin:mcp-client" },
10
- { "id": "builtin:mcp-forward" },
11
- { "id": "builtin:ask-question" }
12
- ],
13
- "agentTools": [
14
- {
15
- "toolId": "modelContextProtocol",
16
- "parameters": {
17
- "modelContextProtocolParam": {
18
- "serverUrl": "http://127.0.0.1:38385/mcp",
19
- "timeoutSecond": 30,
20
- "toolListPosition": { "targetId": "builtin-system", "position": "after" },
21
- "toolResultDuration": 1
22
- }
23
- }
24
- },
25
- {
26
- "toolId": "askQuestion",
27
- "parameters": {
28
- "askQuestionParam": {
29
- "toolListPosition": { "targetId": "builtin-system", "position": "after" }
30
- }
31
- }
32
- }
33
- ],
34
- "agentFrameworkConfig": {
35
- "prompts": [
36
- {
37
- "id": "builtin-system",
38
- "role": "system",
39
- "text": "You have access to Playwright for browser automation. Use it for:\n\nBrowser Automation:\n- Navigate to URLs and verify page content\n- Fill forms, click buttons, and interact with page elements\n- Take screenshots of specific elements or full pages\n- Extract data from web pages (scraping)\n- Test web application functionality end-to-end\n- Automate browser workflows\n- Log into websites and maintain sessions\n\nBest Practices:\n- Use specific selectors (data-testid, id, or unique CSS selectors) over fragile XPath\n- Wait for elements to be visible before interacting\n- Handle page navigation and loading states explicitly\n- Take screenshots at key steps for debugging\n- Clean up browser resources when done\n- Handle timeouts and error states gracefully\n\nAvailable Playwright MCP Tools:\n- browser_navigate: Navigate to a URL\n- browser_click: Click an element\n- browser_type: Type into an input field\n- browser_snapshot: Take accessibility snapshot of page\n- browser_take_screenshot: Capture screenshot\n- browser_fill_form: Fill multiple form fields at once\n- browser_evaluate: Execute JavaScript in page context\n- browser_select_option: Select from dropdown\n- browser_drag: Drag and drop elements\n- browser_hover: Hover over an element\n- browser_press_key: Press a keyboard key\n- browser_handle_dialog: Handle browser dialogs (alert/confirm/prompt)\n- browser_close: Close the browser"
40
- }
41
- ],
42
- "plugins": [],
43
- "response": []
44
- },
45
- "modelConfig": {
46
- "provider": "memeloop",
47
- "model": "claude-opus-4.6",
48
- "temperature": 0.3,
49
- "maxTokens": 4096
50
- },
51
- "version": "1.0.0"
52
- }