@workglow/cactus 0.3.2 → 0.3.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/ai/common/Cactus_Runtime.d.ts.map +1 -1
- package/dist/ai-runtime.browser.d.ts +3 -1
- package/dist/ai-runtime.browser.d.ts.map +1 -1
- package/dist/ai-runtime.browser.js +3 -7
- package/dist/ai-runtime.browser.js.map +3 -3
- package/dist/ai-runtime.d.ts +3 -1
- package/dist/ai-runtime.d.ts.map +1 -1
- package/dist/ai-runtime.js +7 -14
- package/dist/ai-runtime.js.map +4 -4
- package/dist/{ai/index.d.ts → ai.browser.d.ts} +8 -8
- package/dist/ai.browser.d.ts.map +1 -0
- package/dist/ai.browser.js +645 -0
- package/dist/ai.browser.js.map +26 -0
- package/dist/ai.d.ts +39 -1
- package/dist/ai.d.ts.map +1 -1
- package/dist/ai.js +6 -13
- package/dist/ai.js.map +5 -5
- package/package.json +19 -15
- package/dist/ai/index.d.ts.map +0 -1
- package/dist/ai/runtime.browser.d.ts +0 -9
- package/dist/ai/runtime.browser.d.ts.map +0 -1
- package/dist/ai/runtime.d.ts +0 -9
- package/dist/ai/runtime.d.ts.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Cactus_Runtime.d.ts","sourceRoot":"","sources":["../../../src/ai/common/Cactus_Runtime.ts"],"names":[],"mappings":"AAAA;;;;GAIG;
|
|
1
|
+
{"version":3,"file":"Cactus_Runtime.d.ts","sourceRoot":"","sources":["../../../src/ai/common/Cactus_Runtime.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAUH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAE9D,KAAK,eAAe,GAAG,cAAc,WAAW,CAAC,CAAC;AAGlD,KAAK,YAAY,GAAG,WAAW,CAAC,UAAU,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AAKnF,oEAAoE;AACpE,wBAAsB,OAAO,IAAI,OAAO,CAAC,eAAe,CAAC,CAkBxD;AAED,wBAAgB,YAAY,IAAI,eAAe,CAG9C;AA0DD,wBAAsB,eAAe,CACnC,KAAK,EAAE,iBAAiB,EACxB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,UAAU,CAAC,CASrB;AAMD,oCAAoC;AACpC,eAAO,MAAM,aAAa,EAAE,GAAG,CAAC,MAAM,EAAE,YAAY,CAAa,CAAC;AAClE,oCAAoC;AACpC,eAAO,MAAM,gBAAgB,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAa,CAAC;AAMhE,wBAAsB,eAAe,CAAC,KAAK,EAAE,iBAAiB,GAAG,OAAO,CAAC,YAAY,CAAC,CAwCrF;AAED,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAEvD;AAED,iFAAiF;AACjF,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAEtD;AAED,iGAAiG;AACjG,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAEvD;AAMD,oCAAoC;AACpC,eAAO,MAAM,cAAc,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAa,CAAC;AAE5E,wBAAsB,mBAAmB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAEtE;AA2CD,wBAAsB,kBAAkB,CAAC,KAAK,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAMhF;AAED,uCAAuC;AACvC,wBAAsB,sBAAsB,IAAI,OAAO,CAAC,IAAI,CAAC,CAQ5D"}
|
|
@@ -3,5 +3,7 @@
|
|
|
3
3
|
* Copyright 2026 Steven Roussey <sroussey@gmail.com>
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
|
-
export * from "./ai/
|
|
6
|
+
export * from "./ai/common/Cactus_Runtime.browser";
|
|
7
|
+
export * from "./ai/registerCactusInline";
|
|
8
|
+
export * from "./ai/registerCactusWorker";
|
|
7
9
|
//# sourceMappingURL=ai-runtime.browser.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ai-runtime.browser.d.ts","sourceRoot":"","sources":["../src/ai-runtime.browser.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,cAAc,
|
|
1
|
+
{"version":3,"file":"ai-runtime.browser.d.ts","sourceRoot":"","sources":["../src/ai-runtime.browser.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,cAAc,oCAAoC,CAAC;AACnD,cAAc,2BAA2B,CAAC;AAC1C,cAAc,2BAA2B,CAAC"}
|
|
@@ -173,7 +173,6 @@ async function disposeCactusResources() {
|
|
|
173
173
|
cactusCachedModelIds.clear();
|
|
174
174
|
cactusSessions.clear();
|
|
175
175
|
}
|
|
176
|
-
|
|
177
176
|
// src/ai/registerCactusInline.ts
|
|
178
177
|
import { registerProviderInline } from "@workglow/ai/provider-utils";
|
|
179
178
|
|
|
@@ -206,6 +205,8 @@ function inferCactusCapabilities(_model) {
|
|
|
206
205
|
}
|
|
207
206
|
|
|
208
207
|
// src/ai/common/Cactus_Runtime.ts
|
|
208
|
+
import fs from "node:fs/promises";
|
|
209
|
+
import path from "node:path";
|
|
209
210
|
var _sdk2;
|
|
210
211
|
var _sdkInitPromise2;
|
|
211
212
|
async function loadSdk2() {
|
|
@@ -243,8 +244,6 @@ async function fetchAssetBytesBrowser2(url) {
|
|
|
243
244
|
return new Uint8Array(await resp.arrayBuffer());
|
|
244
245
|
}
|
|
245
246
|
async function fetchAssetBytesNode(url, models_dir, model_id, filename) {
|
|
246
|
-
const fs = await import("node:fs/promises");
|
|
247
|
-
const path = await import("node:path");
|
|
248
247
|
const resolvedDir = models_dir.startsWith("~/") ? path.join(process.env.HOME ?? process.env.USERPROFILE ?? ".", models_dir.slice(2), model_id) : path.resolve(models_dir, model_id);
|
|
249
248
|
const filePath = path.join(resolvedDir, filename);
|
|
250
249
|
try {
|
|
@@ -341,8 +340,6 @@ async function removeBrowserCacheEntries2(entry) {
|
|
|
341
340
|
async function removeNodeCacheDir(model, model_id) {
|
|
342
341
|
if (hasBrowserCacheStorage())
|
|
343
342
|
return;
|
|
344
|
-
const fs = await import("node:fs/promises");
|
|
345
|
-
const path = await import("node:path");
|
|
346
343
|
const models_dir = modelsDirOf(model);
|
|
347
344
|
const resolvedDir = models_dir.startsWith("~/") ? path.join(process.env.HOME ?? process.env.USERPROFILE ?? ".", models_dir.slice(2), model_id) : path.resolve(models_dir, model_id);
|
|
348
345
|
await fs.rm(resolvedDir, { recursive: true, force: true });
|
|
@@ -550,7 +547,6 @@ var CACTUS_PREVIEW_TASKS = {};
|
|
|
550
547
|
async function registerCactusInline(options) {
|
|
551
548
|
await registerProviderInline(new CactusQueuedProvider(CACTUS_RUN_FNS, CACTUS_PREVIEW_TASKS), "Cactus", options);
|
|
552
549
|
}
|
|
553
|
-
|
|
554
550
|
// src/ai/registerCactusWorker.ts
|
|
555
551
|
import { registerProviderWorker } from "@workglow/ai/provider-utils";
|
|
556
552
|
|
|
@@ -600,4 +596,4 @@ export {
|
|
|
600
596
|
cactusConfigJson
|
|
601
597
|
};
|
|
602
598
|
|
|
603
|
-
//# debugId=
|
|
599
|
+
//# debugId=E5F05A02A40778DA64756E2164756E21
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
"/**\n * @license\n * Copyright 2026 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport type {\n AiProviderPreviewRunFn,\n AiProviderRunFnRegistration,\n Capability,\n ModelConfig,\n ModelRecord,\n} from \"@workglow/ai\";\nimport { QueuedAiProvider } from \"@workglow/ai\";\nimport { cactusWorkerRunFnSpecs, inferCactusCapabilities } from \"./common/Cactus_Capabilities\";\nimport { LOCAL_CACTUS } from \"./common/Cactus_Constants\";\nimport type { CactusModelConfig } from \"./common/Cactus_ModelSchema\";\nimport { deleteCactusSession } from \"./common/Cactus_Runtime\";\n\n/** Main-thread registration (inline or worker-backed); creates the default job queue. */\nexport class CactusQueuedProvider extends QueuedAiProvider<CactusModelConfig> {\n readonly name = LOCAL_CACTUS;\n readonly displayName = \"Cactus (Needle)\";\n readonly isLocal = true;\n readonly supportsBrowser = true;\n\n constructor(\n promiseRunFns?: readonly AiProviderRunFnRegistration<\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n any,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n any,\n CactusModelConfig\n >[],\n previewTasks?: Record<\n string,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n AiProviderPreviewRunFn<any, any, CactusModelConfig>\n >\n ) {\n super(promiseRunFns, previewTasks);\n }\n\n override inferCapabilities(model: ModelRecord): readonly Capability[] {\n return inferCactusCapabilities(model);\n }\n\n protected override workerRunFnSpecs(): readonly { serves: readonly Capability[] }[] {\n return cactusWorkerRunFnSpecs();\n }\n\n override createSession(_model: ModelConfig): string {\n return crypto.randomUUID();\n }\n\n override async disposeSession(sessionId: string): Promise<void> {\n await deleteCactusSession(sessionId);\n }\n}\n",
|
|
10
10
|
"/**\n * @license\n * Copyright 2026 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport type { Capability } from \"@workglow/ai/worker\";\n\nexport const CACTUS_TOOL_USE = [\"tool-use\"] as const satisfies Capability[];\nexport const CACTUS_MODEL_DOWNLOAD = [\"model.download\"] as const satisfies Capability[];\nexport const CACTUS_MODEL_DOWNLOAD_REMOVE = [\n \"model.download-remove\",\n] as const satisfies Capability[];\nexport const CACTUS_MODEL_SEARCH = [\"model.search\"] as const satisfies Capability[];\nexport const CACTUS_MODEL_INFO = [\"model.info\"] as const satisfies Capability[];\n\nexport const CACTUS_CAPABILITY_SETS = [\n CACTUS_TOOL_USE,\n CACTUS_MODEL_DOWNLOAD,\n CACTUS_MODEL_DOWNLOAD_REMOVE,\n CACTUS_MODEL_SEARCH,\n CACTUS_MODEL_INFO,\n] as const;\n",
|
|
11
11
|
"/**\n * @license\n * Copyright 2026 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport type { Capability, ModelRecord } from \"@workglow/ai/worker\";\nimport { CACTUS_CAPABILITY_SETS } from \"./Cactus_CapabilitySets\";\n\nexport const CACTUS_RUN_FN_SPECS = CACTUS_CAPABILITY_SETS.map((serves) => ({ serves }));\n\nexport function cactusWorkerRunFnSpecs(): readonly {\n readonly serves: readonly Capability[];\n}[] {\n return CACTUS_RUN_FN_SPECS;\n}\n\ntype CapabilityHints = Pick<ModelRecord, \"model_id\" | \"provider_config\" | \"capabilities\">;\n\n/**\n * needle-rs ships a single model architecture; capability inference is constant.\n */\nexport function inferCactusCapabilities(_model: CapabilityHints): readonly Capability[] {\n return [\"tool-use\", \"model.download\", \"model.download-remove\", \"model.search\", \"model.info\"];\n}\n",
|
|
12
|
-
"/**\n * @license\n * Copyright 2026 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { CACTUS_CACHE_NAME, CACTUS_DEFAULT_MODELS_DIR } from \"./Cactus_Constants\";\nimport {\n cactusAssetUrl,\n getCactusCatalogEntry,\n type CactusCatalogEntry,\n} from \"./Cactus_ModelCatalog\";\nimport type { CactusModelConfig } from \"./Cactus_ModelSchema\";\n\ntype NeedleSdkModule = typeof import(\"needle-rs\");\n// `NeedleWasm` has a private constructor so `InstanceType<...>` cannot be used.\n// Recover the instance type from the static `load` method's non-undefined return.\ntype NeedleEngine = NonNullable<ReturnType<NeedleSdkModule[\"NeedleWasm\"][\"load\"]>>;\n\nlet _sdk: NeedleSdkModule | undefined;\nlet _sdkInitPromise: Promise<NeedleSdkModule> | undefined;\n\n/** Lazily load needle-rs and run its WASM `init()` exactly once. */\nexport async function loadSdk(): Promise<NeedleSdkModule> {\n _sdkInitPromise ??= import(\"needle-rs\")\n .then(async (mod) => {\n const init = (mod as unknown as { default?: () => Promise<unknown> }).default;\n if (typeof init === \"function\") {\n await init();\n }\n _sdk = mod;\n return mod;\n })\n .catch((err: unknown) => {\n _sdkInitPromise = undefined;\n _sdk = undefined;\n throw new Error(\n `needle-rs is required for LOCAL_CACTUS tasks. Install it with: bun add needle-rs (cause: ${String(err)})`\n );\n });\n return _sdkInitPromise;\n}\n\nexport function getCactusSdk(): NeedleSdkModule {\n if (!_sdk) throw new Error(\"Cactus SDK not loaded; call loadSdk() first\");\n return _sdk;\n}\n\n// ============================================================================\n// Asset fetch + cache\n// ============================================================================\n\nfunction hasBrowserCacheStorage(): boolean {\n return (\n typeof globalThis !== \"undefined\" &&\n \"caches\" in globalThis &&\n typeof (globalThis as unknown as { caches?: CacheStorage }).caches?.open === \"function\"\n );\n}\n\nfunction modelsDirOf(model: CactusModelConfig): string {\n return model.provider_config.models_dir ?? CACTUS_DEFAULT_MODELS_DIR;\n}\n\nasync function fetchAssetBytesBrowser(url: string): Promise<Uint8Array> {\n const cachesApi = (globalThis as unknown as { caches: CacheStorage }).caches;\n const cache = await cachesApi.open(CACTUS_CACHE_NAME);\n const hit = await cache.match(url);\n if (hit) {\n return new Uint8Array(await hit.arrayBuffer());\n }\n const resp = await fetch(url);\n if (!resp.ok) throw new Error(`Cactus asset fetch failed (${resp.status}) for ${url}`);\n // Clone first — Response bodies can only be consumed once.\n await cache.put(url, resp.clone());\n return new Uint8Array(await resp.arrayBuffer());\n}\n\nasync function fetchAssetBytesNode(\n url: string,\n models_dir: string,\n model_id: string,\n filename: string\n): Promise<Uint8Array> {\n const
|
|
12
|
+
"/**\n * @license\n * Copyright 2026 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport fs from \"node:fs/promises\";\nimport path from \"node:path\";\nimport { CACTUS_CACHE_NAME, CACTUS_DEFAULT_MODELS_DIR } from \"./Cactus_Constants\";\nimport {\n cactusAssetUrl,\n getCactusCatalogEntry,\n type CactusCatalogEntry,\n} from \"./Cactus_ModelCatalog\";\nimport type { CactusModelConfig } from \"./Cactus_ModelSchema\";\n\ntype NeedleSdkModule = typeof import(\"needle-rs\");\n// `NeedleWasm` has a private constructor so `InstanceType<...>` cannot be used.\n// Recover the instance type from the static `load` method's non-undefined return.\ntype NeedleEngine = NonNullable<ReturnType<NeedleSdkModule[\"NeedleWasm\"][\"load\"]>>;\n\nlet _sdk: NeedleSdkModule | undefined;\nlet _sdkInitPromise: Promise<NeedleSdkModule> | undefined;\n\n/** Lazily load needle-rs and run its WASM `init()` exactly once. */\nexport async function loadSdk(): Promise<NeedleSdkModule> {\n _sdkInitPromise ??= import(\"needle-rs\")\n .then(async (mod) => {\n const init = (mod as unknown as { default?: () => Promise<unknown> }).default;\n if (typeof init === \"function\") {\n await init();\n }\n _sdk = mod;\n return mod;\n })\n .catch((err: unknown) => {\n _sdkInitPromise = undefined;\n _sdk = undefined;\n throw new Error(\n `needle-rs is required for LOCAL_CACTUS tasks. Install it with: bun add needle-rs (cause: ${String(err)})`\n );\n });\n return _sdkInitPromise;\n}\n\nexport function getCactusSdk(): NeedleSdkModule {\n if (!_sdk) throw new Error(\"Cactus SDK not loaded; call loadSdk() first\");\n return _sdk;\n}\n\n// ============================================================================\n// Asset fetch + cache\n// ============================================================================\n\nfunction hasBrowserCacheStorage(): boolean {\n return (\n typeof globalThis !== \"undefined\" &&\n \"caches\" in globalThis &&\n typeof (globalThis as unknown as { caches?: CacheStorage }).caches?.open === \"function\"\n );\n}\n\nfunction modelsDirOf(model: CactusModelConfig): string {\n return model.provider_config.models_dir ?? CACTUS_DEFAULT_MODELS_DIR;\n}\n\nasync function fetchAssetBytesBrowser(url: string): Promise<Uint8Array> {\n const cachesApi = (globalThis as unknown as { caches: CacheStorage }).caches;\n const cache = await cachesApi.open(CACTUS_CACHE_NAME);\n const hit = await cache.match(url);\n if (hit) {\n return new Uint8Array(await hit.arrayBuffer());\n }\n const resp = await fetch(url);\n if (!resp.ok) throw new Error(`Cactus asset fetch failed (${resp.status}) for ${url}`);\n // Clone first — Response bodies can only be consumed once.\n await cache.put(url, resp.clone());\n return new Uint8Array(await resp.arrayBuffer());\n}\n\nasync function fetchAssetBytesNode(\n url: string,\n models_dir: string,\n model_id: string,\n filename: string\n): Promise<Uint8Array> {\n const resolvedDir = models_dir.startsWith(\"~/\")\n ? path.join(process.env.HOME ?? process.env.USERPROFILE ?? \".\", models_dir.slice(2), model_id)\n : path.resolve(models_dir, model_id);\n const filePath = path.join(resolvedDir, filename);\n try {\n const buf = await fs.readFile(filePath);\n return new Uint8Array(buf);\n } catch {\n // fall through to fetch\n }\n const resp = await fetch(url);\n if (!resp.ok) throw new Error(`Cactus asset fetch failed (${resp.status}) for ${url}`);\n const bytes = new Uint8Array(await resp.arrayBuffer());\n await fs.mkdir(resolvedDir, { recursive: true });\n const tmpPath = `${filePath}.tmp`;\n await fs.writeFile(tmpPath, bytes);\n await fs.rename(tmpPath, filePath);\n return bytes;\n}\n\nexport async function fetchAssetBytes(\n model: CactusModelConfig,\n filename: string\n): Promise<Uint8Array> {\n const model_id = model.provider_config.model_id;\n const entry = getCactusCatalogEntry(model_id);\n if (!entry) throw new Error(`Unknown Cactus model_id: ${model_id}`);\n const url = cactusAssetUrl(entry, filename);\n if (hasBrowserCacheStorage()) {\n return fetchAssetBytesBrowser(url);\n }\n return fetchAssetBytesNode(url, modelsDirOf(model), model_id, filename);\n}\n\n// ============================================================================\n// Engine cache (in-memory, per worker/process)\n// ============================================================================\n\n/** @internal Exported for tests. */\nexport const cactusEngines: Map<string, NeedleEngine> = new Map();\n/** @internal Exported for tests. */\nexport const cactusConfigJson: Map<string, unknown> = new Map();\n/** Tracks models whose assets have been persisted (downloaded) but not necessarily loaded. */\nconst cactusCachedModelIds: Set<string> = new Set();\n\nconst cactusEngineLoadsInFlight = new Map<string, Promise<NeedleEngine>>();\n\nexport async function getOrLoadEngine(model: CactusModelConfig): Promise<NeedleEngine> {\n const model_id = model.provider_config.model_id;\n const cached = cactusEngines.get(model_id);\n if (cached) return cached;\n\n const inFlight = cactusEngineLoadsInFlight.get(model_id);\n if (inFlight) return inFlight;\n\n const loadPromise = (async (): Promise<NeedleEngine> => {\n const sdk = await loadSdk();\n const entry = getCactusCatalogEntry(model_id);\n if (!entry) throw new Error(`Unknown Cactus model_id: ${model_id}`);\n\n const [weightsBytes, vocabBytes, configBytes] = await Promise.all([\n fetchAssetBytes(model, entry.assets.weights),\n fetchAssetBytes(model, entry.assets.vocab),\n fetchAssetBytes(model, entry.assets.config),\n ]);\n\n try {\n const text = new TextDecoder().decode(configBytes);\n cactusConfigJson.set(model_id, JSON.parse(text));\n } catch {\n cactusConfigJson.set(model_id, null);\n }\n\n // needle-rs `NeedleWasm.load(weights_bytes: Uint8Array, vocab_text: string)` — vocab is a string.\n const vocabText = new TextDecoder().decode(vocabBytes);\n const engine = sdk.NeedleWasm.load(weightsBytes, vocabText);\n if (!engine) {\n throw new Error(`needle-rs NeedleWasm.load returned undefined for model ${model_id}`);\n }\n cactusEngines.set(model_id, engine);\n return engine;\n })().finally(() => {\n cactusEngineLoadsInFlight.delete(model_id);\n });\n\n cactusEngineLoadsInFlight.set(model_id, loadPromise);\n return loadPromise;\n}\n\nexport function isModelLoaded(model_id: string): boolean {\n return cactusEngines.has(model_id);\n}\n\n/** Mark a model_id as having its assets persisted on disk / in Cache Storage. */\nexport function markModelCached(model_id: string): void {\n cactusCachedModelIds.add(model_id);\n}\n\n/** Returns true if the model's assets have been downloaded or the engine is currently loaded. */\nexport function isModelCached(model_id: string): boolean {\n return cactusEngines.has(model_id) || cactusCachedModelIds.has(model_id);\n}\n\n// ============================================================================\n// Sessions (no-op — needle-rs is stateless across calls)\n// ============================================================================\n\n/** @internal Exported for tests. */\nexport const cactusSessions: Map<string, Record<string, never>> = new Map();\n\nexport async function deleteCactusSession(id: string): Promise<boolean> {\n return cactusSessions.delete(id);\n}\n\n// ============================================================================\n// Eviction\n// ============================================================================\n\nasync function removeBrowserCacheEntries(entry: CactusCatalogEntry): Promise<void> {\n if (!hasBrowserCacheStorage()) return;\n const cachesApi = (globalThis as unknown as { caches: CacheStorage }).caches;\n const cache = await cachesApi.open(CACTUS_CACHE_NAME);\n for (const filename of [entry.assets.weights, entry.assets.vocab, entry.assets.config]) {\n const url = cactusAssetUrl(entry, filename);\n try {\n await cache.delete(url);\n } catch {\n /* ignore */\n }\n }\n}\n\nasync function removeNodeCacheDir(model: CactusModelConfig, model_id: string): Promise<void> {\n if (hasBrowserCacheStorage()) return;\n const models_dir = modelsDirOf(model);\n const resolvedDir = models_dir.startsWith(\"~/\")\n ? path.join(process.env.HOME ?? process.env.USERPROFILE ?? \".\", models_dir.slice(2), model_id)\n : path.resolve(models_dir, model_id);\n await fs.rm(resolvedDir, { recursive: true, force: true });\n}\n\nfunction disposeCactusEngine(model_id: string): void {\n const engine = cactusEngines.get(model_id);\n if (engine) {\n try {\n (engine as unknown as { free?: () => void }).free?.();\n } catch {\n /* best effort */\n }\n }\n cactusEngines.delete(model_id);\n cactusConfigJson.delete(model_id);\n cactusCachedModelIds.delete(model_id);\n}\n\nexport async function removeCachedAssets(model: CactusModelConfig): Promise<void> {\n const model_id = model.provider_config.model_id;\n const entry = getCactusCatalogEntry(model_id);\n if (!entry) return;\n await Promise.all([removeBrowserCacheEntries(entry), removeNodeCacheDir(model, model_id)]);\n disposeCactusEngine(model_id);\n}\n\n/** Best-effort cleanup on shutdown. */\nexport async function disposeCactusResources(): Promise<void> {\n for (const id of Array.from(cactusEngines.keys())) {\n disposeCactusEngine(id);\n }\n cactusEngines.clear();\n cactusConfigJson.clear();\n cactusCachedModelIds.clear();\n cactusSessions.clear();\n}\n",
|
|
13
13
|
"/**\n * @license\n * Copyright 2026 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport type {\n AiProviderRunFn,\n ModelDownloadTaskRunInput,\n ModelDownloadTaskRunOutput,\n} from \"@workglow/ai\";\nimport { getCactusCatalogEntry } from \"./Cactus_ModelCatalog\";\nimport type { CactusModelConfig } from \"./Cactus_ModelSchema\";\nimport { fetchAssetBytes, markModelCached } from \"./Cactus_Runtime\";\n\nexport const Cactus_Download: AiProviderRunFn<\n ModelDownloadTaskRunInput,\n ModelDownloadTaskRunOutput,\n CactusModelConfig\n> = async (input, model, _signal, emit) => {\n if (!model) throw new Error(\"Model config is required for ModelDownloadTask.\");\n const model_id = model.provider_config.model_id;\n const entry = getCactusCatalogEntry(model_id);\n if (!entry) throw new Error(`Unknown Cactus model_id: ${model_id}`);\n\n const assets = [entry.assets.weights, entry.assets.vocab, entry.assets.config];\n for (let i = 0; i < assets.length; i++) {\n emit({\n type: \"phase\",\n message: `Downloading ${assets[i]}`,\n progress: Math.round(((i + 0.5) / assets.length) * 99),\n });\n await fetchAssetBytes(model, assets[i]);\n }\n markModelCached(model_id);\n emit({ type: \"finish\", data: { model: input.model! } });\n};\n",
|
|
14
14
|
"/**\n * @license\n * Copyright 2026 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport type {\n AiProviderRunFn,\n ModelDownloadRemoveTaskRunInput,\n ModelDownloadRemoveTaskRunOutput,\n} from \"@workglow/ai\";\nimport type { CactusModelConfig } from \"./Cactus_ModelSchema\";\nimport { removeCachedAssets } from \"./Cactus_Runtime\";\n\nexport const Cactus_DownloadRemove: AiProviderRunFn<\n ModelDownloadRemoveTaskRunInput,\n ModelDownloadRemoveTaskRunOutput,\n CactusModelConfig\n> = async (input, model, _signal, emit) => {\n if (!model) throw new Error(\"Model config is required for ModelDownloadRemoveTask.\");\n await removeCachedAssets(model);\n emit({ type: \"finish\", data: { model: input.model } });\n};\n",
|
|
15
15
|
"/**\n * @license\n * Copyright 2026 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport type { AiProviderRunFn, ModelInfoTaskInput, ModelInfoTaskOutput } from \"@workglow/ai\";\nimport { getCactusCatalogEntry } from \"./Cactus_ModelCatalog\";\nimport type { CactusModelConfig } from \"./Cactus_ModelSchema\";\nimport { isModelCached, isModelLoaded } from \"./Cactus_Runtime\";\n\nexport const Cactus_ModelInfo: AiProviderRunFn<\n ModelInfoTaskInput,\n ModelInfoTaskOutput,\n CactusModelConfig\n> = async (input, model, _signal, emit) => {\n if (!model) throw new Error(\"Model config is required for ModelInfoTask.\");\n const model_id = model.provider_config.model_id;\n const entry = getCactusCatalogEntry(model_id);\n if (!entry) throw new Error(`Unknown Cactus model_id: ${model_id}`);\n\n const is_loaded = isModelLoaded(model_id);\n const is_cached = isModelCached(model_id);\n\n emit({\n type: \"finish\",\n data: {\n model: input.model,\n is_local: true,\n is_remote: false,\n supports_browser: true,\n supports_node: true,\n is_cached,\n is_loaded,\n file_sizes: null,\n },\n });\n};\n",
|
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
"/**\n * @license\n * Copyright 2026 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { registerProviderWorker } from \"@workglow/ai/provider-utils\";\nimport { CactusProvider } from \"./CactusProvider\";\nimport { CACTUS_PREVIEW_TASKS, CACTUS_RUN_FNS } from \"./common/Cactus_JobRunFns\";\n\nexport async function registerCactusWorker(): Promise<void> {\n await registerProviderWorker(\n (ws) => new CactusProvider(CACTUS_RUN_FNS, CACTUS_PREVIEW_TASKS).registerOnWorkerServer(ws),\n \"Cactus\"\n );\n}\n",
|
|
20
20
|
"/**\n * @license\n * Copyright 2026 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport type {\n AiProviderPreviewRunFn,\n AiProviderRunFnRegistration,\n Capability,\n ModelConfig,\n ModelRecord,\n} from \"@workglow/ai/worker\";\nimport { AiProvider } from \"@workglow/ai/worker\";\nimport { cactusWorkerRunFnSpecs, inferCactusCapabilities } from \"./common/Cactus_Capabilities\";\nimport { LOCAL_CACTUS } from \"./common/Cactus_Constants\";\nimport type { CactusModelConfig } from \"./common/Cactus_ModelSchema\";\nimport { deleteCactusSession } from \"./common/Cactus_Runtime\";\n\n/** Worker-server registration for Cactus (browser + Node/Bun via WASM). */\nexport class CactusProvider extends AiProvider<CactusModelConfig> {\n readonly name = LOCAL_CACTUS;\n readonly displayName = \"Cactus (Needle)\";\n readonly isLocal = true;\n readonly supportsBrowser = true;\n\n constructor(\n promiseRunFns?: readonly AiProviderRunFnRegistration<\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n any,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n any,\n CactusModelConfig\n >[],\n previewTasks?: Record<\n string,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n AiProviderPreviewRunFn<any, any, CactusModelConfig>\n >\n ) {\n super(promiseRunFns, previewTasks);\n }\n\n override inferCapabilities(model: ModelRecord): readonly Capability[] {\n return inferCactusCapabilities(model);\n }\n\n protected override workerRunFnSpecs(): readonly { serves: readonly Capability[] }[] {\n return cactusWorkerRunFnSpecs();\n }\n\n override createSession(_model: ModelConfig): string {\n return crypto.randomUUID();\n }\n\n override async disposeSession(sessionId: string): Promise<void> {\n await deleteCactusSession(sessionId);\n }\n}\n"
|
|
21
21
|
],
|
|
22
|
-
"mappings": "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",
|
|
23
|
-
"debugId": "
|
|
22
|
+
"mappings": ";;;;;;;;;AAMO,IAAM,eAAe;AACrB,IAAM,oBAAoB;AAC1B,IAAM,yBAAyB;AAC/B,IAAM,0BAA0B;AAGhC,IAAM,oBAAoB;AAG1B,IAAM,4BAA4B;;;ACYlC,IAAM,iBAAgD;AAAA,EAC3D;AAAA,IACE,UAAU;AAAA,IACV,OAAO;AAAA,IACP,aACE;AAAA,IACF,SAAS;AAAA,IACT,UAAU;AAAA,IACV,QAAQ;AAAA,MACN,SAAS;AAAA,MACT,OAAO;AAAA,MACP,QAAQ;AAAA,IACV;AAAA,IACA,cAAc,CAAC,UAAU;AAAA,EAC3B;AACF;AAEO,SAAS,qBAAqB,CAAC,UAAkD;AAAA,EACtF,OAAO,eAAe,KAAK,CAAC,MAAM,EAAE,aAAa,QAAQ;AAAA;AAGpD,SAAS,cAAc,CAAC,OAA2B,UAA0B;AAAA,EAClF,OAAO,0BAA0B,MAAM,mBAAmB,MAAM,YAAY;AAAA;;;ACxB9E,IAAI;AACJ,IAAI;AAGJ,eAAsB,OAAO,GAA6B;AAAA,EACxD,oBAA2B,oBACxB,KAAK,OAAO,QAAQ;AAAA,IACnB,MAAM,OAAQ,IAAwD;AAAA,IACtE,IAAI,OAAO,SAAS,YAAY;AAAA,MAC9B,MAAM,KAAK;AAAA,IACb;AAAA,IACA,OAAO;AAAA,IACP,OAAO;AAAA,GACR,EACA,MAAM,CAAC,QAAiB;AAAA,IACvB,kBAAkB;AAAA,IAClB,OAAO;AAAA,IACP,MAAM,IAAI,MACR,4FAA4F,OAAO,GAAG,IACxG;AAAA,GACD;AAAA,EACH,OAAO;AAAA;AAGF,SAAS,YAAY,GAAoB;AAAA,EAC9C,IAAI,CAAC;AAAA,IAAM,MAAM,IAAI,MAAM,6CAA6C;AAAA,EACxE,OAAO;AAAA;AAOT,eAAe,sBAAsB,CAAC,KAAkC;AAAA,EACtE,MAAM,YAAa,WAAmD;AAAA,EACtE,MAAM,QAAQ,MAAM,UAAU,KAAK,iBAAiB;AAAA,EACpD,MAAM,MAAM,MAAM,MAAM,MAAM,GAAG;AAAA,EACjC,IAAI,KAAK;AAAA,IACP,OAAO,IAAI,WAAW,MAAM,IAAI,YAAY,CAAC;AAAA,EAC/C;AAAA,EACA,MAAM,OAAO,MAAM,MAAM,GAAG;AAAA,EAC5B,IAAI,CAAC,KAAK;AAAA,IAAI,MAAM,IAAI,MAAM,8BAA8B,KAAK,eAAe,KAAK;AAAA,EAErF,MAAM,MAAM,IAAI,KAAK,KAAK,MAAM,CAAC;AAAA,EACjC,OAAO,IAAI,WAAW,MAAM,KAAK,YAAY,CAAC;AAAA;AAGhD,eAAsB,eAAe,CACnC,OACA,UACqB;AAAA,EACrB,MAAM,WAAW,MAAM,gBAAgB;AAAA,EACvC,MAAM,QAAQ,sBAAsB,QAAQ;AAAA,EAC5C,IAAI,CAAC;AAAA,IAAO,MAAM,IAAI,MAAM,4BAA4B,UAAU;AAAA,EAClE,MAAM,MAAM,eAAe,OAAO,QAAQ;AAAA,EAC1C,OAAO,uBAAuB,GAAG;AAAA;AAQ5B,IAAM,gBAA2C,IAAI;AAErD,IAAM,mBAAyC,IAAI;AAE1D,IAAM,uBAAoC,IAAI;AAE9C,IAAM,4BAA4B,IAAI;AAEtC,eAAsB,eAAe,CAAC,OAAiD;AAAA,EACrF,MAAM,WAAW,MAAM,gBAAgB;AAAA,EACvC,MAAM,SAAS,cAAc,IAAI,QAAQ;AAAA,EACzC,IAAI;AAAA,IAAQ,OAAO;AAAA,EAEnB,MAAM,WAAW,0BAA0B,IAAI,QAAQ;AAAA,EACvD,IAAI;AAAA,IAAU,OAAO;AAAA,EAErB,MAAM,eAAe,YAAmC;AAAA,IACtD,MAAM,MAAM,MAAM,QAAQ;AAAA,IAC1B,MAAM,QAAQ,sBAAsB,QAAQ;AAAA,IAC5C,IAAI,CAAC;AAAA,MAAO,MAAM,IAAI,MAAM,4BAA4B,UAAU;AAAA,IAElE,OAAO,cAAc,YAAY,eAAe,MAAM,QAAQ,IAAI;AAAA,MAChE,gBAAgB,OAAO,MAAM,OAAO,OAAO;AAAA,MAC3C,gBAAgB,OAAO,MAAM,OAAO,KAAK;AAAA,MACzC,gBAAgB,OAAO,MAAM,OAAO,MAAM;AAAA,IAC5C,CAAC;AAAA,IAED,IAAI;AAAA,MACF,MAAM,OAAO,IAAI,YAAY,EAAE,OAAO,WAAW;AAAA,MACjD,iBAAiB,IAAI,UAAU,KAAK,MAAM,IAAI,CAAC;AAAA,MAC/C,MAAM;AAAA,MACN,iBAAiB,IAAI,UAAU,IAAI;AAAA;AAAA,IAIrC,MAAM,YAAY,IAAI,YAAY,EAAE,OAAO,UAAU;AAAA,IACrD,MAAM,SAAS,IAAI,WAAW,KAAK,cAAc,SAAS;AAAA,IAC1D,IAAI,CAAC,QAAQ;AAAA,MACX,MAAM,IAAI,MAAM,0DAA0D,UAAU;AAAA,IACtF;AAAA,IACA,cAAc,IAAI,UAAU,MAAM;AAAA,IAClC,OAAO;AAAA,KACN,EAAE,QAAQ,MAAM;AAAA,IACjB,0BAA0B,OAAO,QAAQ;AAAA,GAC1C;AAAA,EAED,0BAA0B,IAAI,UAAU,WAAW;AAAA,EACnD,OAAO;AAAA;AAGF,SAAS,aAAa,CAAC,UAA2B;AAAA,EACvD,OAAO,cAAc,IAAI,QAAQ;AAAA;AAI5B,SAAS,eAAe,CAAC,UAAwB;AAAA,EACtD,qBAAqB,IAAI,QAAQ;AAAA;AAI5B,SAAS,aAAa,CAAC,UAA2B;AAAA,EACvD,OAAO,cAAc,IAAI,QAAQ,KAAK,qBAAqB,IAAI,QAAQ;AAAA;AAQlE,IAAM,iBAAqD,IAAI;AAEtE,eAAsB,mBAAmB,CAAC,IAA8B;AAAA,EACtE,OAAO,eAAe,OAAO,EAAE;AAAA;AAOjC,eAAe,yBAAyB,CAAC,OAA0C;AAAA,EACjF,MAAM,YAAa,WAAmD;AAAA,EACtE,MAAM,QAAQ,MAAM,UAAU,KAAK,iBAAiB;AAAA,EACpD,WAAW,YAAY,CAAC,MAAM,OAAO,SAAS,MAAM,OAAO,OAAO,MAAM,OAAO,MAAM,GAAG;AAAA,IACtF,MAAM,MAAM,eAAe,OAAO,QAAQ;AAAA,IAC1C,IAAI;AAAA,MACF,MAAM,MAAM,OAAO,GAAG;AAAA,MACtB,MAAM;AAAA,EAGV;AAAA;AAGF,SAAS,mBAAmB,CAAC,UAAwB;AAAA,EACnD,MAAM,SAAS,cAAc,IAAI,QAAQ;AAAA,EACzC,IAAI,QAAQ;AAAA,IACV,IAAI;AAAA,MACD,OAA4C,OAAO;AAAA,MACpD,MAAM;AAAA,EAGV;AAAA,EACA,cAAc,OAAO,QAAQ;AAAA,EAC7B,iBAAiB,OAAO,QAAQ;AAAA,EAChC,qBAAqB,OAAO,QAAQ;AAAA;AAGtC,eAAsB,kBAAkB,CAAC,OAAyC;AAAA,EAChF,MAAM,WAAW,MAAM,gBAAgB;AAAA,EACvC,MAAM,QAAQ,sBAAsB,QAAQ;AAAA,EAC5C,IAAI,CAAC;AAAA,IAAO;AAAA,EACZ,MAAM,0BAA0B,KAAK;AAAA,EACrC,oBAAoB,QAAQ;AAAA;AAI9B,eAAsB,sBAAsB,GAAkB;AAAA,EAC5D,WAAW,MAAM,MAAM,KAAK,cAAc,KAAK,CAAC,GAAG;AAAA,IACjD,oBAAoB,EAAE;AAAA,EACxB;AAAA,EACA,cAAc,MAAM;AAAA,EACpB,iBAAiB,MAAM;AAAA,EACvB,qBAAqB,MAAM;AAAA,EAC3B,eAAe,MAAM;AAAA;;AC3MvB;;;ACMA;;;ACLO,IAAM,kBAAkB,CAAC,UAAU;AACnC,IAAM,wBAAwB,CAAC,gBAAgB;AAC/C,IAAM,+BAA+B;AAAA,EAC1C;AACF;AACO,IAAM,sBAAsB,CAAC,cAAc;AAC3C,IAAM,oBAAoB,CAAC,YAAY;AAEvC,IAAM,yBAAyB;AAAA,EACpC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;;;ACbO,IAAM,sBAAsB,uBAAuB,IAAI,CAAC,YAAY,EAAE,OAAO,EAAE;AAE/E,SAAS,sBAAsB,GAElC;AAAA,EACF,OAAO;AAAA;AAQF,SAAS,uBAAuB,CAAC,QAAgD;AAAA,EACtF,OAAO,CAAC,YAAY,kBAAkB,yBAAyB,gBAAgB,YAAY;AAAA;;;ACjB7F;AACA;AAcA,IAAI;AACJ,IAAI;AAGJ,eAAsB,QAAO,GAA6B;AAAA,EACxD,qBAA2B,oBACxB,KAAK,OAAO,QAAQ;AAAA,IACnB,MAAM,OAAQ,IAAwD;AAAA,IACtE,IAAI,OAAO,SAAS,YAAY;AAAA,MAC9B,MAAM,KAAK;AAAA,IACb;AAAA,IACA,QAAO;AAAA,IACP,OAAO;AAAA,GACR,EACA,MAAM,CAAC,QAAiB;AAAA,IACvB,mBAAkB;AAAA,IAClB,QAAO;AAAA,IACP,MAAM,IAAI,MACR,4FAA4F,OAAO,GAAG,IACxG;AAAA,GACD;AAAA,EACH,OAAO;AAAA;AAYT,SAAS,sBAAsB,GAAY;AAAA,EACzC,OACE,OAAO,eAAe,eACtB,YAAY,cACZ,OAAQ,WAAoD,QAAQ,SAAS;AAAA;AAIjF,SAAS,WAAW,CAAC,OAAkC;AAAA,EACrD,OAAO,MAAM,gBAAgB,cAAc;AAAA;AAG7C,eAAe,uBAAsB,CAAC,KAAkC;AAAA,EACtE,MAAM,YAAa,WAAmD;AAAA,EACtE,MAAM,QAAQ,MAAM,UAAU,KAAK,iBAAiB;AAAA,EACpD,MAAM,MAAM,MAAM,MAAM,MAAM,GAAG;AAAA,EACjC,IAAI,KAAK;AAAA,IACP,OAAO,IAAI,WAAW,MAAM,IAAI,YAAY,CAAC;AAAA,EAC/C;AAAA,EACA,MAAM,OAAO,MAAM,MAAM,GAAG;AAAA,EAC5B,IAAI,CAAC,KAAK;AAAA,IAAI,MAAM,IAAI,MAAM,8BAA8B,KAAK,eAAe,KAAK;AAAA,EAErF,MAAM,MAAM,IAAI,KAAK,KAAK,MAAM,CAAC;AAAA,EACjC,OAAO,IAAI,WAAW,MAAM,KAAK,YAAY,CAAC;AAAA;AAGhD,eAAe,mBAAmB,CAChC,KACA,YACA,UACA,UACqB;AAAA,EACrB,MAAM,cAAc,WAAW,WAAW,IAAI,IAC1C,KAAK,KAAK,QAAQ,IAAI,QAAQ,QAAQ,IAAI,eAAe,KAAK,WAAW,MAAM,CAAC,GAAG,QAAQ,IAC3F,KAAK,QAAQ,YAAY,QAAQ;AAAA,EACrC,MAAM,WAAW,KAAK,KAAK,aAAa,QAAQ;AAAA,EAChD,IAAI;AAAA,IACF,MAAM,MAAM,MAAM,GAAG,SAAS,QAAQ;AAAA,IACtC,OAAO,IAAI,WAAW,GAAG;AAAA,IACzB,MAAM;AAAA,EAGR,MAAM,OAAO,MAAM,MAAM,GAAG;AAAA,EAC5B,IAAI,CAAC,KAAK;AAAA,IAAI,MAAM,IAAI,MAAM,8BAA8B,KAAK,eAAe,KAAK;AAAA,EACrF,MAAM,QAAQ,IAAI,WAAW,MAAM,KAAK,YAAY,CAAC;AAAA,EACrD,MAAM,GAAG,MAAM,aAAa,EAAE,WAAW,KAAK,CAAC;AAAA,EAC/C,MAAM,UAAU,GAAG;AAAA,EACnB,MAAM,GAAG,UAAU,SAAS,KAAK;AAAA,EACjC,MAAM,GAAG,OAAO,SAAS,QAAQ;AAAA,EACjC,OAAO;AAAA;AAGT,eAAsB,gBAAe,CACnC,OACA,UACqB;AAAA,EACrB,MAAM,WAAW,MAAM,gBAAgB;AAAA,EACvC,MAAM,QAAQ,sBAAsB,QAAQ;AAAA,EAC5C,IAAI,CAAC;AAAA,IAAO,MAAM,IAAI,MAAM,4BAA4B,UAAU;AAAA,EAClE,MAAM,MAAM,eAAe,OAAO,QAAQ;AAAA,EAC1C,IAAI,uBAAuB,GAAG;AAAA,IAC5B,OAAO,wBAAuB,GAAG;AAAA,EACnC;AAAA,EACA,OAAO,oBAAoB,KAAK,YAAY,KAAK,GAAG,UAAU,QAAQ;AAAA;AAQjE,IAAM,iBAA2C,IAAI;AAErD,IAAM,oBAAyC,IAAI;AAE1D,IAAM,wBAAoC,IAAI;AAE9C,IAAM,6BAA4B,IAAI;AAEtC,eAAsB,gBAAe,CAAC,OAAiD;AAAA,EACrF,MAAM,WAAW,MAAM,gBAAgB;AAAA,EACvC,MAAM,SAAS,eAAc,IAAI,QAAQ;AAAA,EACzC,IAAI;AAAA,IAAQ,OAAO;AAAA,EAEnB,MAAM,WAAW,2BAA0B,IAAI,QAAQ;AAAA,EACvD,IAAI;AAAA,IAAU,OAAO;AAAA,EAErB,MAAM,eAAe,YAAmC;AAAA,IACtD,MAAM,MAAM,MAAM,SAAQ;AAAA,IAC1B,MAAM,QAAQ,sBAAsB,QAAQ;AAAA,IAC5C,IAAI,CAAC;AAAA,MAAO,MAAM,IAAI,MAAM,4BAA4B,UAAU;AAAA,IAElE,OAAO,cAAc,YAAY,eAAe,MAAM,QAAQ,IAAI;AAAA,MAChE,iBAAgB,OAAO,MAAM,OAAO,OAAO;AAAA,MAC3C,iBAAgB,OAAO,MAAM,OAAO,KAAK;AAAA,MACzC,iBAAgB,OAAO,MAAM,OAAO,MAAM;AAAA,IAC5C,CAAC;AAAA,IAED,IAAI;AAAA,MACF,MAAM,OAAO,IAAI,YAAY,EAAE,OAAO,WAAW;AAAA,MACjD,kBAAiB,IAAI,UAAU,KAAK,MAAM,IAAI,CAAC;AAAA,MAC/C,MAAM;AAAA,MACN,kBAAiB,IAAI,UAAU,IAAI;AAAA;AAAA,IAIrC,MAAM,YAAY,IAAI,YAAY,EAAE,OAAO,UAAU;AAAA,IACrD,MAAM,SAAS,IAAI,WAAW,KAAK,cAAc,SAAS;AAAA,IAC1D,IAAI,CAAC,QAAQ;AAAA,MACX,MAAM,IAAI,MAAM,0DAA0D,UAAU;AAAA,IACtF;AAAA,IACA,eAAc,IAAI,UAAU,MAAM;AAAA,IAClC,OAAO;AAAA,KACN,EAAE,QAAQ,MAAM;AAAA,IACjB,2BAA0B,OAAO,QAAQ;AAAA,GAC1C;AAAA,EAED,2BAA0B,IAAI,UAAU,WAAW;AAAA,EACnD,OAAO;AAAA;AAGF,SAAS,cAAa,CAAC,UAA2B;AAAA,EACvD,OAAO,eAAc,IAAI,QAAQ;AAAA;AAI5B,SAAS,gBAAe,CAAC,UAAwB;AAAA,EACtD,sBAAqB,IAAI,QAAQ;AAAA;AAI5B,SAAS,cAAa,CAAC,UAA2B;AAAA,EACvD,OAAO,eAAc,IAAI,QAAQ,KAAK,sBAAqB,IAAI,QAAQ;AAAA;AAQlE,IAAM,kBAAqD,IAAI;AAEtE,eAAsB,oBAAmB,CAAC,IAA8B;AAAA,EACtE,OAAO,gBAAe,OAAO,EAAE;AAAA;AAOjC,eAAe,0BAAyB,CAAC,OAA0C;AAAA,EACjF,IAAI,CAAC,uBAAuB;AAAA,IAAG;AAAA,EAC/B,MAAM,YAAa,WAAmD;AAAA,EACtE,MAAM,QAAQ,MAAM,UAAU,KAAK,iBAAiB;AAAA,EACpD,WAAW,YAAY,CAAC,MAAM,OAAO,SAAS,MAAM,OAAO,OAAO,MAAM,OAAO,MAAM,GAAG;AAAA,IACtF,MAAM,MAAM,eAAe,OAAO,QAAQ;AAAA,IAC1C,IAAI;AAAA,MACF,MAAM,MAAM,OAAO,GAAG;AAAA,MACtB,MAAM;AAAA,EAGV;AAAA;AAGF,eAAe,kBAAkB,CAAC,OAA0B,UAAiC;AAAA,EAC3F,IAAI,uBAAuB;AAAA,IAAG;AAAA,EAC9B,MAAM,aAAa,YAAY,KAAK;AAAA,EACpC,MAAM,cAAc,WAAW,WAAW,IAAI,IAC1C,KAAK,KAAK,QAAQ,IAAI,QAAQ,QAAQ,IAAI,eAAe,KAAK,WAAW,MAAM,CAAC,GAAG,QAAQ,IAC3F,KAAK,QAAQ,YAAY,QAAQ;AAAA,EACrC,MAAM,GAAG,GAAG,aAAa,EAAE,WAAW,MAAM,OAAO,KAAK,CAAC;AAAA;AAG3D,SAAS,oBAAmB,CAAC,UAAwB;AAAA,EACnD,MAAM,SAAS,eAAc,IAAI,QAAQ;AAAA,EACzC,IAAI,QAAQ;AAAA,IACV,IAAI;AAAA,MACD,OAA4C,OAAO;AAAA,MACpD,MAAM;AAAA,EAGV;AAAA,EACA,eAAc,OAAO,QAAQ;AAAA,EAC7B,kBAAiB,OAAO,QAAQ;AAAA,EAChC,sBAAqB,OAAO,QAAQ;AAAA;AAGtC,eAAsB,mBAAkB,CAAC,OAAyC;AAAA,EAChF,MAAM,WAAW,MAAM,gBAAgB;AAAA,EACvC,MAAM,QAAQ,sBAAsB,QAAQ;AAAA,EAC5C,IAAI,CAAC;AAAA,IAAO;AAAA,EACZ,MAAM,QAAQ,IAAI,CAAC,2BAA0B,KAAK,GAAG,mBAAmB,OAAO,QAAQ,CAAC,CAAC;AAAA,EACzF,qBAAoB,QAAQ;AAAA;;;AHlOvB,MAAM,6BAA6B,iBAAoC;AAAA,EACnE,OAAO;AAAA,EACP,cAAc;AAAA,EACd,UAAU;AAAA,EACV,kBAAkB;AAAA,EAE3B,WAAW,CACT,eAOA,cAKA;AAAA,IACA,MAAM,eAAe,YAAY;AAAA;AAAA,EAG1B,iBAAiB,CAAC,OAA2C;AAAA,IACpE,OAAO,wBAAwB,KAAK;AAAA;AAAA,EAGnB,gBAAgB,GAAiD;AAAA,IAClF,OAAO,uBAAuB;AAAA;AAAA,EAGvB,aAAa,CAAC,QAA6B;AAAA,IAClD,OAAO,OAAO,WAAW;AAAA;AAAA,OAGZ,eAAc,CAAC,WAAkC;AAAA,IAC9D,MAAM,qBAAoB,SAAS;AAAA;AAEvC;;;AI3CO,IAAM,kBAIT,OAAO,OAAO,OAAO,SAAS,SAAS;AAAA,EACzC,IAAI,CAAC;AAAA,IAAO,MAAM,IAAI,MAAM,iDAAiD;AAAA,EAC7E,MAAM,WAAW,MAAM,gBAAgB;AAAA,EACvC,MAAM,QAAQ,sBAAsB,QAAQ;AAAA,EAC5C,IAAI,CAAC;AAAA,IAAO,MAAM,IAAI,MAAM,4BAA4B,UAAU;AAAA,EAElE,MAAM,SAAS,CAAC,MAAM,OAAO,SAAS,MAAM,OAAO,OAAO,MAAM,OAAO,MAAM;AAAA,EAC7E,SAAS,IAAI,EAAG,IAAI,OAAO,QAAQ,KAAK;AAAA,IACtC,KAAK;AAAA,MACH,MAAM;AAAA,MACN,SAAS,eAAe,OAAO;AAAA,MAC/B,UAAU,KAAK,OAAQ,IAAI,OAAO,OAAO,SAAU,EAAE;AAAA,IACvD,CAAC;AAAA,IACD,MAAM,iBAAgB,OAAO,OAAO,EAAE;AAAA,EACxC;AAAA,EACA,iBAAgB,QAAQ;AAAA,EACxB,KAAK,EAAE,MAAM,UAAU,MAAM,EAAE,OAAO,MAAM,MAAO,EAAE,CAAC;AAAA;;;ACrBjD,IAAM,wBAIT,OAAO,OAAO,OAAO,SAAS,SAAS;AAAA,EACzC,IAAI,CAAC;AAAA,IAAO,MAAM,IAAI,MAAM,uDAAuD;AAAA,EACnF,MAAM,oBAAmB,KAAK;AAAA,EAC9B,KAAK,EAAE,MAAM,UAAU,MAAM,EAAE,OAAO,MAAM,MAAM,EAAE,CAAC;AAAA;;;ACVhD,IAAM,mBAIT,OAAO,OAAO,OAAO,SAAS,SAAS;AAAA,EACzC,IAAI,CAAC;AAAA,IAAO,MAAM,IAAI,MAAM,6CAA6C;AAAA,EACzE,MAAM,WAAW,MAAM,gBAAgB;AAAA,EACvC,MAAM,QAAQ,sBAAsB,QAAQ;AAAA,EAC5C,IAAI,CAAC;AAAA,IAAO,MAAM,IAAI,MAAM,4BAA4B,UAAU;AAAA,EAElE,MAAM,YAAY,eAAc,QAAQ;AAAA,EACxC,MAAM,YAAY,eAAc,QAAQ;AAAA,EAExC,KAAK;AAAA,IACH,MAAM;AAAA,IACN,MAAM;AAAA,MACJ,OAAO,MAAM;AAAA,MACb,UAAU;AAAA,MACV,WAAW;AAAA,MACX,kBAAkB;AAAA,MAClB,eAAe;AAAA,MACf;AAAA,MACA;AAAA,MACA,YAAY;AAAA,IACd;AAAA,EACF,CAAC;AAAA;;;ACrBI,IAAM,qBAGT,OAAO,OAAO,QAAQ,SAAS,SAAS;AAAA,EAC1C,MAAM,SAAS,MAAM,SAAS,IAAI,KAAK,EAAE,YAAY;AAAA,EACrD,MAAM,UAAmC,eAAe,OACtD,CAAC,MACC,CAAC,SAAS,EAAE,SAAS,YAAY,EAAE,SAAS,KAAK,KAAK,EAAE,MAAM,YAAY,EAAE,SAAS,KAAK,CAC9F,EAAE,IAAI,CAAC,OAAO;AAAA,IACZ,IAAI,EAAE;AAAA,IACN,OAAO,EAAE;AAAA,IACT,aAAa,EAAE;AAAA,IACf,QAAQ;AAAA,MACN,UAAU,EAAE;AAAA,MACZ,OAAO,EAAE;AAAA,MACT,aAAa,EAAE;AAAA,MACf,UAAU;AAAA,MACV,iBAAiB,EAAE,UAAU,EAAE,SAAS;AAAA,MACxC,cAAc,CAAC,GAAG,EAAE,YAAY;AAAA,MAChC,UAAU,CAAC;AAAA,IACb;AAAA,IACA,KAAK;AAAA,EACP,EAAE;AAAA,EACF,KAAK,EAAE,MAAM,UAAU,MAAM,EAAE,QAAQ,EAAE,CAAC;AAAA;;;ACzB5C;AACA;AAIA,SAAS,cAAc,CAAC,OAA8C;AAAA,EACpE,OAAO,KAAK,UACV,MAAM,IAAI,CAAC,OAAO;AAAA,IAChB,MAAM,EAAE;AAAA,OACJ,EAAE,cAAc,EAAE,aAAa,EAAE,YAAY,IAAI,CAAC;AAAA,OAClD,EAAE,cAAc,EAAE,YAAY,EAAE,YAAY,IAAI,CAAC;AAAA,EACvD,EAAE,CACJ;AAAA;AAGF,SAAS,UAAU,CAAC,OAAqC;AAAA,EACvD,IAAI,OAAO,MAAM,WAAW;AAAA,IAAU,OAAO,MAAM;AAAA,EACnD,IAAI,MAAM;AAAA,IAAQ,OAAO,mBAAmB,MAAM,MAAM;AAAA,EACxD,IAAI,MAAM,YAAY,MAAM,SAAS,SAAS,GAAG;AAAA,IAC/C,MAAM,OAAO,MAAM,SAAS,MAAM,SAAS,SAAS;AAAA,IACpD,OAAO,mBAAmB,KAAK,OAAO;AAAA,EACxC;AAAA,EACA,OAAO;AAAA;AAGT,SAAS,cAAc,CAAC,KAAwB;AAAA,EAC9C,IAAI,CAAC;AAAA,IAAK,OAAO,CAAC;AAAA,EAClB,IAAI;AAAA,IACF,MAAM,MAAM,KAAK,MAAM,GAAG;AAAA,IAC1B,IAAI,MAAM,QAAQ,GAAG,GAAG;AAAA,MACtB,OAAO,IAAI,IAAI,CAAC,GAAG,OAAO;AAAA,QACxB,IAAI,QAAQ;AAAA,QACZ,MAAM,OAAO,EAAE,QAAQ,EAAE;AAAA,QACzB,OAAQ,EAAE,aAAa,EAAE,UAAU,CAAC;AAAA,MACtC,EAAE;AAAA,IACJ;AAAA,IACA,IAAI,OAAO,OAAO,QAAQ,YAAY,OAAO,IAAI,SAAS,UAAU;AAAA,MAClE,OAAO;AAAA,QACL;AAAA,UACE,IAAI;AAAA,UACJ,MAAM,IAAI;AAAA,UACV,OAAQ,IAAI,aAAa,IAAI,UAAU,CAAC;AAAA,QAC1C;AAAA,MACF;AAAA,IACF;AAAA,IACA,MAAM;AAAA,EAGR,OAAO,CAAC;AAAA;AAGH,IAAM,qBAIT,OAAO,OAAO,OAAO,QAAQ,SAAS;AAAA,EACxC,IAAI,CAAC;AAAA,IAAO,MAAM,IAAI,MAAM,+CAA+C;AAAA,EAC3E,IAAI,OAAO;AAAA,IAAS,MAAM,OAAO,UAAU,IAAI,MAAM,2BAA2B;AAAA,EAEhF,MAAM,SAAS,MAAM,iBAAgB,KAAK;AAAA,EAC1C,MAAM,QAAQ,WAAW,KAAK;AAAA,EAC9B,MAAM,YAAY,eAAe,MAAM,KAAK;AAAA,EAE5C,IAAI,MAAM;AAAA,EACV,MAAM,mBAAmB;AAAA,EAKzB,IAAI,OAAO,iBAAiB,eAAe,YAAY;AAAA,IACrD,MAAM,MAAM,iBAAiB,WAAW,OAAO,WAAW,CAAC,UAAU;AAAA,MACnE,KAAK,EAAE,MAAM,cAAc,MAAM,QAAQ,WAAW,MAAM,CAAC;AAAA,KAC5D;AAAA,EACH,EAAO;AAAA,IACL,MAAM,MAAM,MAAM,iBAAiB,IAAI,OAAO,SAAS;AAAA,IACvD,MAAM,OAAO,QAAQ,WAAW,MAAM,OAAO,GAAG;AAAA;AAAA,EAGlD,MAAM,SAAoB,eAAe,GAAG;AAAA,EAC5C,MAAM,iBAAiB,qBAAqB,QAAQ,MAAM,KAAK;AAAA,EAC/D,IAAI,eAAe,SAAS,GAAG;AAAA,IAC7B,KAAK,EAAE,MAAM,gBAAgB,MAAM,aAAa,aAAa,CAAC,GAAG,cAAc,EAAE,CAAC;AAAA,EACpF;AAAA,EACA,KAAK,EAAE,MAAM,UAAU,MAAM,EAAE,MAAM,KAAK,WAAW,eAAe,EAAE,CAAC;AAAA;;;ACjElE,IAAM,iBAMP;AAAA,EACJ,EAAE,QAAQ,iBAAiB,OAAO,mBAAmB;AAAA,EACrD,EAAE,QAAQ,uBAAuB,OAAO,gBAAgB;AAAA,EACxD,EAAE,QAAQ,8BAA8B,OAAO,sBAAsB;AAAA,EACrE,EAAE,QAAQ,qBAAqB,OAAO,mBAAmB;AAAA,EACzD,EAAE,QAAQ,mBAAmB,OAAO,iBAAiB;AACvD;AAGO,IAAM,uBAAuB,CAAC;;;AVnCrC,eAAsB,oBAAoB,CAAC,SAAoD;AAAA,EAC7F,MAAM,uBACJ,IAAI,qBAAqB,gBAAgB,oBAAoB,GAC7D,UACA,OACF;AAAA;;AWVF;;;ACOA;AAOO,MAAM,uBAAuB,WAA8B;AAAA,EACvD,OAAO;AAAA,EACP,cAAc;AAAA,EACd,UAAU;AAAA,EACV,kBAAkB;AAAA,EAE3B,WAAW,CACT,eAOA,cAKA;AAAA,IACA,MAAM,eAAe,YAAY;AAAA;AAAA,EAG1B,iBAAiB,CAAC,OAA2C;AAAA,IACpE,OAAO,wBAAwB,KAAK;AAAA;AAAA,EAGnB,gBAAgB,GAAiD;AAAA,IAClF,OAAO,uBAAuB;AAAA;AAAA,EAGvB,aAAa,CAAC,QAA6B;AAAA,IAClD,OAAO,OAAO,WAAW;AAAA;AAAA,OAGZ,eAAc,CAAC,WAAkC;AAAA,IAC9D,MAAM,qBAAoB,SAAS;AAAA;AAEvC;;;ADhDA,eAAsB,oBAAoB,GAAkB;AAAA,EAC1D,MAAM,uBACJ,CAAC,OAAO,IAAI,eAAe,gBAAgB,oBAAoB,EAAE,uBAAuB,EAAE,GAC1F,QACF;AAAA;",
|
|
23
|
+
"debugId": "E5F05A02A40778DA64756E2164756E21",
|
|
24
24
|
"names": []
|
|
25
25
|
}
|
package/dist/ai-runtime.d.ts
CHANGED
|
@@ -3,5 +3,7 @@
|
|
|
3
3
|
* Copyright 2026 Steven Roussey <sroussey@gmail.com>
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
|
-
export * from "./ai/
|
|
6
|
+
export * from "./ai/common/Cactus_Runtime";
|
|
7
|
+
export * from "./ai/registerCactusInline";
|
|
8
|
+
export * from "./ai/registerCactusWorker";
|
|
7
9
|
//# sourceMappingURL=ai-runtime.d.ts.map
|
package/dist/ai-runtime.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ai-runtime.d.ts","sourceRoot":"","sources":["../src/ai-runtime.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,cAAc,cAAc,CAAC"}
|
|
1
|
+
{"version":3,"file":"ai-runtime.d.ts","sourceRoot":"","sources":["../src/ai-runtime.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,cAAc,4BAA4B,CAAC;AAC3C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,2BAA2B,CAAC"}
|
package/dist/ai-runtime.js
CHANGED
|
@@ -1,10 +1,9 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
});
|
|
1
|
+
import { createRequire } from "node:module";
|
|
2
|
+
var __require = /* @__PURE__ */ createRequire(import.meta.url);
|
|
3
|
+
|
|
4
|
+
// src/ai/common/Cactus_Runtime.ts
|
|
5
|
+
import fs from "node:fs/promises";
|
|
6
|
+
import path from "node:path";
|
|
8
7
|
|
|
9
8
|
// src/ai/common/Cactus_Constants.ts
|
|
10
9
|
var LOCAL_CACTUS = "LOCAL_CACTUS";
|
|
@@ -80,8 +79,6 @@ async function fetchAssetBytesBrowser(url) {
|
|
|
80
79
|
return new Uint8Array(await resp.arrayBuffer());
|
|
81
80
|
}
|
|
82
81
|
async function fetchAssetBytesNode(url, models_dir, model_id, filename) {
|
|
83
|
-
const fs = await import("node:fs/promises");
|
|
84
|
-
const path = await import("node:path");
|
|
85
82
|
const resolvedDir = models_dir.startsWith("~/") ? path.join(process.env.HOME ?? process.env.USERPROFILE ?? ".", models_dir.slice(2), model_id) : path.resolve(models_dir, model_id);
|
|
86
83
|
const filePath = path.join(resolvedDir, filename);
|
|
87
84
|
try {
|
|
@@ -178,8 +175,6 @@ async function removeBrowserCacheEntries(entry) {
|
|
|
178
175
|
async function removeNodeCacheDir(model, model_id) {
|
|
179
176
|
if (hasBrowserCacheStorage())
|
|
180
177
|
return;
|
|
181
|
-
const fs = await import("node:fs/promises");
|
|
182
|
-
const path = await import("node:path");
|
|
183
178
|
const models_dir = modelsDirOf(model);
|
|
184
179
|
const resolvedDir = models_dir.startsWith("~/") ? path.join(process.env.HOME ?? process.env.USERPROFILE ?? ".", models_dir.slice(2), model_id) : path.resolve(models_dir, model_id);
|
|
185
180
|
await fs.rm(resolvedDir, { recursive: true, force: true });
|
|
@@ -212,7 +207,6 @@ async function disposeCactusResources() {
|
|
|
212
207
|
cactusCachedModelIds.clear();
|
|
213
208
|
cactusSessions.clear();
|
|
214
209
|
}
|
|
215
|
-
|
|
216
210
|
// src/ai/registerCactusInline.ts
|
|
217
211
|
import { registerProviderInline } from "@workglow/ai/provider-utils";
|
|
218
212
|
|
|
@@ -427,7 +421,6 @@ var CACTUS_PREVIEW_TASKS = {};
|
|
|
427
421
|
async function registerCactusInline(options) {
|
|
428
422
|
await registerProviderInline(new CactusQueuedProvider(CACTUS_RUN_FNS, CACTUS_PREVIEW_TASKS), "Cactus", options);
|
|
429
423
|
}
|
|
430
|
-
|
|
431
424
|
// src/ai/registerCactusWorker.ts
|
|
432
425
|
import { registerProviderWorker } from "@workglow/ai/provider-utils";
|
|
433
426
|
|
|
@@ -477,4 +470,4 @@ export {
|
|
|
477
470
|
cactusConfigJson
|
|
478
471
|
};
|
|
479
472
|
|
|
480
|
-
//# debugId=
|
|
473
|
+
//# debugId=47067466D3EDE65A64756E2164756E21
|
package/dist/ai-runtime.js.map
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": ["../src/ai/common/
|
|
3
|
+
"sources": ["../src/ai/common/Cactus_Runtime.ts", "../src/ai/common/Cactus_Constants.ts", "../src/ai/common/Cactus_ModelCatalog.ts", "../src/ai/registerCactusInline.ts", "../src/ai/CactusQueuedProvider.ts", "../src/ai/common/Cactus_CapabilitySets.ts", "../src/ai/common/Cactus_Capabilities.ts", "../src/ai/common/Cactus_Download.ts", "../src/ai/common/Cactus_DownloadRemove.ts", "../src/ai/common/Cactus_ModelInfo.ts", "../src/ai/common/Cactus_ModelSearch.ts", "../src/ai/common/Cactus_ToolCalling.ts", "../src/ai/common/Cactus_JobRunFns.ts", "../src/ai/registerCactusWorker.ts", "../src/ai/CactusProvider.ts"],
|
|
4
4
|
"sourcesContent": [
|
|
5
|
+
"/**\n * @license\n * Copyright 2026 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport fs from \"node:fs/promises\";\nimport path from \"node:path\";\nimport { CACTUS_CACHE_NAME, CACTUS_DEFAULT_MODELS_DIR } from \"./Cactus_Constants\";\nimport {\n cactusAssetUrl,\n getCactusCatalogEntry,\n type CactusCatalogEntry,\n} from \"./Cactus_ModelCatalog\";\nimport type { CactusModelConfig } from \"./Cactus_ModelSchema\";\n\ntype NeedleSdkModule = typeof import(\"needle-rs\");\n// `NeedleWasm` has a private constructor so `InstanceType<...>` cannot be used.\n// Recover the instance type from the static `load` method's non-undefined return.\ntype NeedleEngine = NonNullable<ReturnType<NeedleSdkModule[\"NeedleWasm\"][\"load\"]>>;\n\nlet _sdk: NeedleSdkModule | undefined;\nlet _sdkInitPromise: Promise<NeedleSdkModule> | undefined;\n\n/** Lazily load needle-rs and run its WASM `init()` exactly once. */\nexport async function loadSdk(): Promise<NeedleSdkModule> {\n _sdkInitPromise ??= import(\"needle-rs\")\n .then(async (mod) => {\n const init = (mod as unknown as { default?: () => Promise<unknown> }).default;\n if (typeof init === \"function\") {\n await init();\n }\n _sdk = mod;\n return mod;\n })\n .catch((err: unknown) => {\n _sdkInitPromise = undefined;\n _sdk = undefined;\n throw new Error(\n `needle-rs is required for LOCAL_CACTUS tasks. Install it with: bun add needle-rs (cause: ${String(err)})`\n );\n });\n return _sdkInitPromise;\n}\n\nexport function getCactusSdk(): NeedleSdkModule {\n if (!_sdk) throw new Error(\"Cactus SDK not loaded; call loadSdk() first\");\n return _sdk;\n}\n\n// ============================================================================\n// Asset fetch + cache\n// ============================================================================\n\nfunction hasBrowserCacheStorage(): boolean {\n return (\n typeof globalThis !== \"undefined\" &&\n \"caches\" in globalThis &&\n typeof (globalThis as unknown as { caches?: CacheStorage }).caches?.open === \"function\"\n );\n}\n\nfunction modelsDirOf(model: CactusModelConfig): string {\n return model.provider_config.models_dir ?? CACTUS_DEFAULT_MODELS_DIR;\n}\n\nasync function fetchAssetBytesBrowser(url: string): Promise<Uint8Array> {\n const cachesApi = (globalThis as unknown as { caches: CacheStorage }).caches;\n const cache = await cachesApi.open(CACTUS_CACHE_NAME);\n const hit = await cache.match(url);\n if (hit) {\n return new Uint8Array(await hit.arrayBuffer());\n }\n const resp = await fetch(url);\n if (!resp.ok) throw new Error(`Cactus asset fetch failed (${resp.status}) for ${url}`);\n // Clone first — Response bodies can only be consumed once.\n await cache.put(url, resp.clone());\n return new Uint8Array(await resp.arrayBuffer());\n}\n\nasync function fetchAssetBytesNode(\n url: string,\n models_dir: string,\n model_id: string,\n filename: string\n): Promise<Uint8Array> {\n const resolvedDir = models_dir.startsWith(\"~/\")\n ? path.join(process.env.HOME ?? process.env.USERPROFILE ?? \".\", models_dir.slice(2), model_id)\n : path.resolve(models_dir, model_id);\n const filePath = path.join(resolvedDir, filename);\n try {\n const buf = await fs.readFile(filePath);\n return new Uint8Array(buf);\n } catch {\n // fall through to fetch\n }\n const resp = await fetch(url);\n if (!resp.ok) throw new Error(`Cactus asset fetch failed (${resp.status}) for ${url}`);\n const bytes = new Uint8Array(await resp.arrayBuffer());\n await fs.mkdir(resolvedDir, { recursive: true });\n const tmpPath = `${filePath}.tmp`;\n await fs.writeFile(tmpPath, bytes);\n await fs.rename(tmpPath, filePath);\n return bytes;\n}\n\nexport async function fetchAssetBytes(\n model: CactusModelConfig,\n filename: string\n): Promise<Uint8Array> {\n const model_id = model.provider_config.model_id;\n const entry = getCactusCatalogEntry(model_id);\n if (!entry) throw new Error(`Unknown Cactus model_id: ${model_id}`);\n const url = cactusAssetUrl(entry, filename);\n if (hasBrowserCacheStorage()) {\n return fetchAssetBytesBrowser(url);\n }\n return fetchAssetBytesNode(url, modelsDirOf(model), model_id, filename);\n}\n\n// ============================================================================\n// Engine cache (in-memory, per worker/process)\n// ============================================================================\n\n/** @internal Exported for tests. */\nexport const cactusEngines: Map<string, NeedleEngine> = new Map();\n/** @internal Exported for tests. */\nexport const cactusConfigJson: Map<string, unknown> = new Map();\n/** Tracks models whose assets have been persisted (downloaded) but not necessarily loaded. */\nconst cactusCachedModelIds: Set<string> = new Set();\n\nconst cactusEngineLoadsInFlight = new Map<string, Promise<NeedleEngine>>();\n\nexport async function getOrLoadEngine(model: CactusModelConfig): Promise<NeedleEngine> {\n const model_id = model.provider_config.model_id;\n const cached = cactusEngines.get(model_id);\n if (cached) return cached;\n\n const inFlight = cactusEngineLoadsInFlight.get(model_id);\n if (inFlight) return inFlight;\n\n const loadPromise = (async (): Promise<NeedleEngine> => {\n const sdk = await loadSdk();\n const entry = getCactusCatalogEntry(model_id);\n if (!entry) throw new Error(`Unknown Cactus model_id: ${model_id}`);\n\n const [weightsBytes, vocabBytes, configBytes] = await Promise.all([\n fetchAssetBytes(model, entry.assets.weights),\n fetchAssetBytes(model, entry.assets.vocab),\n fetchAssetBytes(model, entry.assets.config),\n ]);\n\n try {\n const text = new TextDecoder().decode(configBytes);\n cactusConfigJson.set(model_id, JSON.parse(text));\n } catch {\n cactusConfigJson.set(model_id, null);\n }\n\n // needle-rs `NeedleWasm.load(weights_bytes: Uint8Array, vocab_text: string)` — vocab is a string.\n const vocabText = new TextDecoder().decode(vocabBytes);\n const engine = sdk.NeedleWasm.load(weightsBytes, vocabText);\n if (!engine) {\n throw new Error(`needle-rs NeedleWasm.load returned undefined for model ${model_id}`);\n }\n cactusEngines.set(model_id, engine);\n return engine;\n })().finally(() => {\n cactusEngineLoadsInFlight.delete(model_id);\n });\n\n cactusEngineLoadsInFlight.set(model_id, loadPromise);\n return loadPromise;\n}\n\nexport function isModelLoaded(model_id: string): boolean {\n return cactusEngines.has(model_id);\n}\n\n/** Mark a model_id as having its assets persisted on disk / in Cache Storage. */\nexport function markModelCached(model_id: string): void {\n cactusCachedModelIds.add(model_id);\n}\n\n/** Returns true if the model's assets have been downloaded or the engine is currently loaded. */\nexport function isModelCached(model_id: string): boolean {\n return cactusEngines.has(model_id) || cactusCachedModelIds.has(model_id);\n}\n\n// ============================================================================\n// Sessions (no-op — needle-rs is stateless across calls)\n// ============================================================================\n\n/** @internal Exported for tests. */\nexport const cactusSessions: Map<string, Record<string, never>> = new Map();\n\nexport async function deleteCactusSession(id: string): Promise<boolean> {\n return cactusSessions.delete(id);\n}\n\n// ============================================================================\n// Eviction\n// ============================================================================\n\nasync function removeBrowserCacheEntries(entry: CactusCatalogEntry): Promise<void> {\n if (!hasBrowserCacheStorage()) return;\n const cachesApi = (globalThis as unknown as { caches: CacheStorage }).caches;\n const cache = await cachesApi.open(CACTUS_CACHE_NAME);\n for (const filename of [entry.assets.weights, entry.assets.vocab, entry.assets.config]) {\n const url = cactusAssetUrl(entry, filename);\n try {\n await cache.delete(url);\n } catch {\n /* ignore */\n }\n }\n}\n\nasync function removeNodeCacheDir(model: CactusModelConfig, model_id: string): Promise<void> {\n if (hasBrowserCacheStorage()) return;\n const models_dir = modelsDirOf(model);\n const resolvedDir = models_dir.startsWith(\"~/\")\n ? path.join(process.env.HOME ?? process.env.USERPROFILE ?? \".\", models_dir.slice(2), model_id)\n : path.resolve(models_dir, model_id);\n await fs.rm(resolvedDir, { recursive: true, force: true });\n}\n\nfunction disposeCactusEngine(model_id: string): void {\n const engine = cactusEngines.get(model_id);\n if (engine) {\n try {\n (engine as unknown as { free?: () => void }).free?.();\n } catch {\n /* best effort */\n }\n }\n cactusEngines.delete(model_id);\n cactusConfigJson.delete(model_id);\n cactusCachedModelIds.delete(model_id);\n}\n\nexport async function removeCachedAssets(model: CactusModelConfig): Promise<void> {\n const model_id = model.provider_config.model_id;\n const entry = getCactusCatalogEntry(model_id);\n if (!entry) return;\n await Promise.all([removeBrowserCacheEntries(entry), removeNodeCacheDir(model, model_id)]);\n disposeCactusEngine(model_id);\n}\n\n/** Best-effort cleanup on shutdown. */\nexport async function disposeCactusResources(): Promise<void> {\n for (const id of Array.from(cactusEngines.keys())) {\n disposeCactusEngine(id);\n }\n cactusEngines.clear();\n cactusConfigJson.clear();\n cactusCachedModelIds.clear();\n cactusSessions.clear();\n}\n",
|
|
5
6
|
"/**\n * @license\n * Copyright 2026 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nexport const LOCAL_CACTUS = \"LOCAL_CACTUS\";\nexport const CACTUS_NEEDLE_26M = \"needle-26m\";\nexport const CACTUS_DEFAULT_HF_REPO = \"Abdalrahman/needle-rs-safetensors\";\nexport const CACTUS_DEFAULT_REVISION = \"main\";\n\n/** Browser Cache Storage name used by `fetchAssetBytes` and `removeCachedAssets`. */\nexport const CACTUS_CACHE_NAME = \"cactus-models-v1\";\n\n/** Node/Bun on-disk cache root. */\nexport const CACTUS_DEFAULT_MODELS_DIR = \"~/.cache/cactus-models\";\n",
|
|
6
7
|
"/**\n * @license\n * Copyright 2026 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport type { Capability } from \"@workglow/ai/worker\";\nimport {\n CACTUS_DEFAULT_HF_REPO,\n CACTUS_DEFAULT_REVISION,\n CACTUS_NEEDLE_26M,\n} from \"./Cactus_Constants\";\n\nexport interface CactusCatalogEntry {\n readonly model_id: string;\n readonly title: string;\n readonly description: string;\n readonly hf_repo: string;\n readonly revision: string;\n readonly assets: {\n readonly weights: string;\n readonly vocab: string;\n readonly config: string;\n };\n readonly capabilities: readonly Capability[];\n}\n\nexport const CACTUS_CATALOG: readonly CactusCatalogEntry[] = [\n {\n model_id: CACTUS_NEEDLE_26M,\n title: \"Needle 26M\",\n description:\n \"Specialized 26M-parameter tool-routing transformer. INT4 SafeTensors, 22 MB. Runs via WASM in browser and Node/Bun.\",\n hf_repo: CACTUS_DEFAULT_HF_REPO,\n revision: CACTUS_DEFAULT_REVISION,\n assets: {\n weights: \"needle.safetensors\",\n vocab: \"vocab.txt\",\n config: \"config.json\",\n },\n capabilities: [\"tool-use\"],\n },\n] as const;\n\nexport function getCactusCatalogEntry(model_id: string): CactusCatalogEntry | undefined {\n return CACTUS_CATALOG.find((e) => e.model_id === model_id);\n}\n\nexport function cactusAssetUrl(entry: CactusCatalogEntry, filename: string): string {\n return `https://huggingface.co/${entry.hf_repo}/resolve/${entry.revision}/${filename}`;\n}\n",
|
|
7
|
-
"/**\n * @license\n * Copyright 2026 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { CACTUS_CACHE_NAME, CACTUS_DEFAULT_MODELS_DIR } from \"./Cactus_Constants\";\nimport {\n cactusAssetUrl,\n getCactusCatalogEntry,\n type CactusCatalogEntry,\n} from \"./Cactus_ModelCatalog\";\nimport type { CactusModelConfig } from \"./Cactus_ModelSchema\";\n\ntype NeedleSdkModule = typeof import(\"needle-rs\");\n// `NeedleWasm` has a private constructor so `InstanceType<...>` cannot be used.\n// Recover the instance type from the static `load` method's non-undefined return.\ntype NeedleEngine = NonNullable<ReturnType<NeedleSdkModule[\"NeedleWasm\"][\"load\"]>>;\n\nlet _sdk: NeedleSdkModule | undefined;\nlet _sdkInitPromise: Promise<NeedleSdkModule> | undefined;\n\n/** Lazily load needle-rs and run its WASM `init()` exactly once. */\nexport async function loadSdk(): Promise<NeedleSdkModule> {\n _sdkInitPromise ??= import(\"needle-rs\")\n .then(async (mod) => {\n const init = (mod as unknown as { default?: () => Promise<unknown> }).default;\n if (typeof init === \"function\") {\n await init();\n }\n _sdk = mod;\n return mod;\n })\n .catch((err: unknown) => {\n _sdkInitPromise = undefined;\n _sdk = undefined;\n throw new Error(\n `needle-rs is required for LOCAL_CACTUS tasks. Install it with: bun add needle-rs (cause: ${String(err)})`\n );\n });\n return _sdkInitPromise;\n}\n\nexport function getCactusSdk(): NeedleSdkModule {\n if (!_sdk) throw new Error(\"Cactus SDK not loaded; call loadSdk() first\");\n return _sdk;\n}\n\n// ============================================================================\n// Asset fetch + cache\n// ============================================================================\n\nfunction hasBrowserCacheStorage(): boolean {\n return (\n typeof globalThis !== \"undefined\" &&\n \"caches\" in globalThis &&\n typeof (globalThis as unknown as { caches?: CacheStorage }).caches?.open === \"function\"\n );\n}\n\nfunction modelsDirOf(model: CactusModelConfig): string {\n return model.provider_config.models_dir ?? CACTUS_DEFAULT_MODELS_DIR;\n}\n\nasync function fetchAssetBytesBrowser(url: string): Promise<Uint8Array> {\n const cachesApi = (globalThis as unknown as { caches: CacheStorage }).caches;\n const cache = await cachesApi.open(CACTUS_CACHE_NAME);\n const hit = await cache.match(url);\n if (hit) {\n return new Uint8Array(await hit.arrayBuffer());\n }\n const resp = await fetch(url);\n if (!resp.ok) throw new Error(`Cactus asset fetch failed (${resp.status}) for ${url}`);\n // Clone first — Response bodies can only be consumed once.\n await cache.put(url, resp.clone());\n return new Uint8Array(await resp.arrayBuffer());\n}\n\nasync function fetchAssetBytesNode(\n url: string,\n models_dir: string,\n model_id: string,\n filename: string\n): Promise<Uint8Array> {\n const fs = await import(\"node:fs/promises\");\n const path = await import(\"node:path\");\n const resolvedDir = models_dir.startsWith(\"~/\")\n ? path.join(process.env.HOME ?? process.env.USERPROFILE ?? \".\", models_dir.slice(2), model_id)\n : path.resolve(models_dir, model_id);\n const filePath = path.join(resolvedDir, filename);\n try {\n const buf = await fs.readFile(filePath);\n return new Uint8Array(buf);\n } catch {\n // fall through to fetch\n }\n const resp = await fetch(url);\n if (!resp.ok) throw new Error(`Cactus asset fetch failed (${resp.status}) for ${url}`);\n const bytes = new Uint8Array(await resp.arrayBuffer());\n await fs.mkdir(resolvedDir, { recursive: true });\n const tmpPath = `${filePath}.tmp`;\n await fs.writeFile(tmpPath, bytes);\n await fs.rename(tmpPath, filePath);\n return bytes;\n}\n\nexport async function fetchAssetBytes(\n model: CactusModelConfig,\n filename: string\n): Promise<Uint8Array> {\n const model_id = model.provider_config.model_id;\n const entry = getCactusCatalogEntry(model_id);\n if (!entry) throw new Error(`Unknown Cactus model_id: ${model_id}`);\n const url = cactusAssetUrl(entry, filename);\n if (hasBrowserCacheStorage()) {\n return fetchAssetBytesBrowser(url);\n }\n return fetchAssetBytesNode(url, modelsDirOf(model), model_id, filename);\n}\n\n// ============================================================================\n// Engine cache (in-memory, per worker/process)\n// ============================================================================\n\n/** @internal Exported for tests. */\nexport const cactusEngines: Map<string, NeedleEngine> = new Map();\n/** @internal Exported for tests. */\nexport const cactusConfigJson: Map<string, unknown> = new Map();\n/** Tracks models whose assets have been persisted (downloaded) but not necessarily loaded. */\nconst cactusCachedModelIds: Set<string> = new Set();\n\nconst cactusEngineLoadsInFlight = new Map<string, Promise<NeedleEngine>>();\n\nexport async function getOrLoadEngine(model: CactusModelConfig): Promise<NeedleEngine> {\n const model_id = model.provider_config.model_id;\n const cached = cactusEngines.get(model_id);\n if (cached) return cached;\n\n const inFlight = cactusEngineLoadsInFlight.get(model_id);\n if (inFlight) return inFlight;\n\n const loadPromise = (async (): Promise<NeedleEngine> => {\n const sdk = await loadSdk();\n const entry = getCactusCatalogEntry(model_id);\n if (!entry) throw new Error(`Unknown Cactus model_id: ${model_id}`);\n\n const [weightsBytes, vocabBytes, configBytes] = await Promise.all([\n fetchAssetBytes(model, entry.assets.weights),\n fetchAssetBytes(model, entry.assets.vocab),\n fetchAssetBytes(model, entry.assets.config),\n ]);\n\n try {\n const text = new TextDecoder().decode(configBytes);\n cactusConfigJson.set(model_id, JSON.parse(text));\n } catch {\n cactusConfigJson.set(model_id, null);\n }\n\n // needle-rs `NeedleWasm.load(weights_bytes: Uint8Array, vocab_text: string)` — vocab is a string.\n const vocabText = new TextDecoder().decode(vocabBytes);\n const engine = sdk.NeedleWasm.load(weightsBytes, vocabText);\n if (!engine) {\n throw new Error(`needle-rs NeedleWasm.load returned undefined for model ${model_id}`);\n }\n cactusEngines.set(model_id, engine);\n return engine;\n })().finally(() => {\n cactusEngineLoadsInFlight.delete(model_id);\n });\n\n cactusEngineLoadsInFlight.set(model_id, loadPromise);\n return loadPromise;\n}\n\nexport function isModelLoaded(model_id: string): boolean {\n return cactusEngines.has(model_id);\n}\n\n/** Mark a model_id as having its assets persisted on disk / in Cache Storage. */\nexport function markModelCached(model_id: string): void {\n cactusCachedModelIds.add(model_id);\n}\n\n/** Returns true if the model's assets have been downloaded or the engine is currently loaded. */\nexport function isModelCached(model_id: string): boolean {\n return cactusEngines.has(model_id) || cactusCachedModelIds.has(model_id);\n}\n\n// ============================================================================\n// Sessions (no-op — needle-rs is stateless across calls)\n// ============================================================================\n\n/** @internal Exported for tests. */\nexport const cactusSessions: Map<string, Record<string, never>> = new Map();\n\nexport async function deleteCactusSession(id: string): Promise<boolean> {\n return cactusSessions.delete(id);\n}\n\n// ============================================================================\n// Eviction\n// ============================================================================\n\nasync function removeBrowserCacheEntries(entry: CactusCatalogEntry): Promise<void> {\n if (!hasBrowserCacheStorage()) return;\n const cachesApi = (globalThis as unknown as { caches: CacheStorage }).caches;\n const cache = await cachesApi.open(CACTUS_CACHE_NAME);\n for (const filename of [entry.assets.weights, entry.assets.vocab, entry.assets.config]) {\n const url = cactusAssetUrl(entry, filename);\n try {\n await cache.delete(url);\n } catch {\n /* ignore */\n }\n }\n}\n\nasync function removeNodeCacheDir(model: CactusModelConfig, model_id: string): Promise<void> {\n if (hasBrowserCacheStorage()) return;\n const fs = await import(\"node:fs/promises\");\n const path = await import(\"node:path\");\n const models_dir = modelsDirOf(model);\n const resolvedDir = models_dir.startsWith(\"~/\")\n ? path.join(process.env.HOME ?? process.env.USERPROFILE ?? \".\", models_dir.slice(2), model_id)\n : path.resolve(models_dir, model_id);\n await fs.rm(resolvedDir, { recursive: true, force: true });\n}\n\nfunction disposeCactusEngine(model_id: string): void {\n const engine = cactusEngines.get(model_id);\n if (engine) {\n try {\n (engine as unknown as { free?: () => void }).free?.();\n } catch {\n /* best effort */\n }\n }\n cactusEngines.delete(model_id);\n cactusConfigJson.delete(model_id);\n cactusCachedModelIds.delete(model_id);\n}\n\nexport async function removeCachedAssets(model: CactusModelConfig): Promise<void> {\n const model_id = model.provider_config.model_id;\n const entry = getCactusCatalogEntry(model_id);\n if (!entry) return;\n await Promise.all([removeBrowserCacheEntries(entry), removeNodeCacheDir(model, model_id)]);\n disposeCactusEngine(model_id);\n}\n\n/** Best-effort cleanup on shutdown. */\nexport async function disposeCactusResources(): Promise<void> {\n for (const id of Array.from(cactusEngines.keys())) {\n disposeCactusEngine(id);\n }\n cactusEngines.clear();\n cactusConfigJson.clear();\n cactusCachedModelIds.clear();\n cactusSessions.clear();\n}\n",
|
|
8
8
|
"/**\n * @license\n * Copyright 2026 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport type { AiProviderRegisterOptions } from \"@workglow/ai\";\nimport { registerProviderInline } from \"@workglow/ai/provider-utils\";\nimport { CactusQueuedProvider } from \"./CactusQueuedProvider\";\nimport { CACTUS_PREVIEW_TASKS, CACTUS_RUN_FNS } from \"./common/Cactus_JobRunFns\";\n\nexport async function registerCactusInline(options?: AiProviderRegisterOptions): Promise<void> {\n await registerProviderInline(\n new CactusQueuedProvider(CACTUS_RUN_FNS, CACTUS_PREVIEW_TASKS),\n \"Cactus\",\n options\n );\n}\n",
|
|
9
9
|
"/**\n * @license\n * Copyright 2026 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport type {\n AiProviderPreviewRunFn,\n AiProviderRunFnRegistration,\n Capability,\n ModelConfig,\n ModelRecord,\n} from \"@workglow/ai\";\nimport { QueuedAiProvider } from \"@workglow/ai\";\nimport { cactusWorkerRunFnSpecs, inferCactusCapabilities } from \"./common/Cactus_Capabilities\";\nimport { LOCAL_CACTUS } from \"./common/Cactus_Constants\";\nimport type { CactusModelConfig } from \"./common/Cactus_ModelSchema\";\nimport { deleteCactusSession } from \"./common/Cactus_Runtime\";\n\n/** Main-thread registration (inline or worker-backed); creates the default job queue. */\nexport class CactusQueuedProvider extends QueuedAiProvider<CactusModelConfig> {\n readonly name = LOCAL_CACTUS;\n readonly displayName = \"Cactus (Needle)\";\n readonly isLocal = true;\n readonly supportsBrowser = true;\n\n constructor(\n promiseRunFns?: readonly AiProviderRunFnRegistration<\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n any,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n any,\n CactusModelConfig\n >[],\n previewTasks?: Record<\n string,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n AiProviderPreviewRunFn<any, any, CactusModelConfig>\n >\n ) {\n super(promiseRunFns, previewTasks);\n }\n\n override inferCapabilities(model: ModelRecord): readonly Capability[] {\n return inferCactusCapabilities(model);\n }\n\n protected override workerRunFnSpecs(): readonly { serves: readonly Capability[] }[] {\n return cactusWorkerRunFnSpecs();\n }\n\n override createSession(_model: ModelConfig): string {\n return crypto.randomUUID();\n }\n\n override async disposeSession(sessionId: string): Promise<void> {\n await deleteCactusSession(sessionId);\n }\n}\n",
|
|
10
10
|
"/**\n * @license\n * Copyright 2026 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport type { Capability } from \"@workglow/ai/worker\";\n\nexport const CACTUS_TOOL_USE = [\"tool-use\"] as const satisfies Capability[];\nexport const CACTUS_MODEL_DOWNLOAD = [\"model.download\"] as const satisfies Capability[];\nexport const CACTUS_MODEL_DOWNLOAD_REMOVE = [\n \"model.download-remove\",\n] as const satisfies Capability[];\nexport const CACTUS_MODEL_SEARCH = [\"model.search\"] as const satisfies Capability[];\nexport const CACTUS_MODEL_INFO = [\"model.info\"] as const satisfies Capability[];\n\nexport const CACTUS_CAPABILITY_SETS = [\n CACTUS_TOOL_USE,\n CACTUS_MODEL_DOWNLOAD,\n CACTUS_MODEL_DOWNLOAD_REMOVE,\n CACTUS_MODEL_SEARCH,\n CACTUS_MODEL_INFO,\n] as const;\n",
|
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
"/**\n * @license\n * Copyright 2026 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { registerProviderWorker } from \"@workglow/ai/provider-utils\";\nimport { CactusProvider } from \"./CactusProvider\";\nimport { CACTUS_PREVIEW_TASKS, CACTUS_RUN_FNS } from \"./common/Cactus_JobRunFns\";\n\nexport async function registerCactusWorker(): Promise<void> {\n await registerProviderWorker(\n (ws) => new CactusProvider(CACTUS_RUN_FNS, CACTUS_PREVIEW_TASKS).registerOnWorkerServer(ws),\n \"Cactus\"\n );\n}\n",
|
|
19
19
|
"/**\n * @license\n * Copyright 2026 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport type {\n AiProviderPreviewRunFn,\n AiProviderRunFnRegistration,\n Capability,\n ModelConfig,\n ModelRecord,\n} from \"@workglow/ai/worker\";\nimport { AiProvider } from \"@workglow/ai/worker\";\nimport { cactusWorkerRunFnSpecs, inferCactusCapabilities } from \"./common/Cactus_Capabilities\";\nimport { LOCAL_CACTUS } from \"./common/Cactus_Constants\";\nimport type { CactusModelConfig } from \"./common/Cactus_ModelSchema\";\nimport { deleteCactusSession } from \"./common/Cactus_Runtime\";\n\n/** Worker-server registration for Cactus (browser + Node/Bun via WASM). */\nexport class CactusProvider extends AiProvider<CactusModelConfig> {\n readonly name = LOCAL_CACTUS;\n readonly displayName = \"Cactus (Needle)\";\n readonly isLocal = true;\n readonly supportsBrowser = true;\n\n constructor(\n promiseRunFns?: readonly AiProviderRunFnRegistration<\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n any,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n any,\n CactusModelConfig\n >[],\n previewTasks?: Record<\n string,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n AiProviderPreviewRunFn<any, any, CactusModelConfig>\n >\n ) {\n super(promiseRunFns, previewTasks);\n }\n\n override inferCapabilities(model: ModelRecord): readonly Capability[] {\n return inferCactusCapabilities(model);\n }\n\n protected override workerRunFnSpecs(): readonly { serves: readonly Capability[] }[] {\n return cactusWorkerRunFnSpecs();\n }\n\n override createSession(_model: ModelConfig): string {\n return crypto.randomUUID();\n }\n\n override async disposeSession(sessionId: string): Promise<void> {\n await deleteCactusSession(sessionId);\n }\n}\n"
|
|
20
20
|
],
|
|
21
|
-
"mappings": "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",
|
|
22
|
-
"debugId": "
|
|
21
|
+
"mappings": "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",
|
|
22
|
+
"debugId": "47067466D3EDE65A64756E2164756E21",
|
|
23
23
|
"names": []
|
|
24
24
|
}
|
|
@@ -3,13 +3,13 @@
|
|
|
3
3
|
* Copyright 2026 Steven Roussey <sroussey@gmail.com>
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
|
-
export * from "./common/Cactus_Constants";
|
|
7
|
-
export * from "./common/Cactus_ModelCatalog";
|
|
8
|
-
export * from "./common/Cactus_ModelSchema";
|
|
9
|
-
export * from "./CactusProvider";
|
|
10
|
-
export * from "./CactusQueuedProvider";
|
|
11
|
-
export * from "./registerCactus";
|
|
12
|
-
import { CactusQueuedProvider } from "./CactusQueuedProvider";
|
|
6
|
+
export * from "./ai/common/Cactus_Constants";
|
|
7
|
+
export * from "./ai/common/Cactus_ModelCatalog";
|
|
8
|
+
export * from "./ai/common/Cactus_ModelSchema";
|
|
9
|
+
export * from "./ai/CactusProvider";
|
|
10
|
+
export * from "./ai/CactusQueuedProvider";
|
|
11
|
+
export * from "./ai/registerCactus";
|
|
12
|
+
import { CactusQueuedProvider } from "./ai/CactusQueuedProvider";
|
|
13
13
|
/**
|
|
14
14
|
* @internal Symbols exported only for use by `@workglow/test`. Not part of the stable public API.
|
|
15
15
|
*
|
|
@@ -42,4 +42,4 @@ export declare const _testOnly: {
|
|
|
42
42
|
readonly cactusEngines: Map<string, import("needle-rs").NeedleWasm>;
|
|
43
43
|
readonly cactusConfigJson: Map<string, unknown>;
|
|
44
44
|
};
|
|
45
|
-
//# sourceMappingURL=
|
|
45
|
+
//# sourceMappingURL=ai.browser.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ai.browser.d.ts","sourceRoot":"","sources":["../src/ai.browser.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,cAAc,8BAA8B,CAAC;AAC7C,cAAc,iCAAiC,CAAC;AAChD,cAAc,gCAAgC,CAAC;AAO/C,cAAc,qBAAqB,CAAC;AACpC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,qBAAqB,CAAC;AAEpC,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAKjE;;;;;;;;;GASG;AACH,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;CAMZ,CAAC"}
|