@goondocks/myco 0.17.0 → 0.17.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dist/{agent-run-ZDHXORE2.js → agent-run-7AYHXIEF.js} +7 -7
- package/dist/{agent-tasks-IPUWMMDZ.js → agent-tasks-UUIFKBD4.js} +7 -7
- package/dist/{chunk-VGVRBSLC.js → chunk-25WHTV4N.js} +2 -2
- package/dist/{chunk-ZUSTCXHT.js → chunk-3NCVCGUZ.js} +3 -3
- package/dist/chunk-5NFJTZ64.js +14 -0
- package/dist/chunk-5NFJTZ64.js.map +1 -0
- package/dist/{chunk-2WRXLYG6.js → chunk-5ZISXCDC.js} +2 -2
- package/dist/{chunk-6SDC6V3N.js → chunk-7DAH5GLC.js} +1 -5
- package/dist/{chunk-6SDC6V3N.js.map → chunk-7DAH5GLC.js.map} +1 -1
- package/dist/{chunk-XVWJ273L.js → chunk-BZDZORVP.js} +4 -4
- package/dist/{chunk-KKEMVH6D.js → chunk-C3C5QVLK.js} +2 -2
- package/dist/{chunk-MSM775XQ.js → chunk-CTF7TQMJ.js} +4 -4
- package/dist/{chunk-CPL76CYD.js → chunk-DT42247G.js} +3 -3
- package/dist/{chunk-VQQ57UPG.js → chunk-F6C4IC6R.js} +4 -4
- package/dist/{chunk-VQQ57UPG.js.map → chunk-F6C4IC6R.js.map} +1 -1
- package/dist/{chunk-SODRR3HE.js → chunk-GFR542SM.js} +1 -1
- package/dist/chunk-GFR542SM.js.map +1 -0
- package/dist/{chunk-QQ7CXA7Q.js → chunk-HPZ7YAMA.js} +95 -10
- package/dist/{chunk-QQ7CXA7Q.js.map → chunk-HPZ7YAMA.js.map} +1 -1
- package/dist/{chunk-GBYLHPML.js → chunk-IGBHLFV5.js} +2 -2
- package/dist/{chunk-DKSQMH5X.js → chunk-ML6GTPZU.js} +2 -2
- package/dist/{chunk-QBB6LX57.js → chunk-NUSTG3BH.js} +3 -3
- package/dist/{chunk-2IJ6C63F.js → chunk-RKPTMHED.js} +2 -2
- package/dist/{chunk-YTOD6L6N.js → chunk-RMJPQZGF.js} +97 -7
- package/dist/chunk-RMJPQZGF.js.map +1 -0
- package/dist/{chunk-PFF4KB4O.js → chunk-SI5BBQAT.js} +2 -2
- package/dist/{chunk-OGNEW5CN.js → chunk-UTLWSKDV.js} +2 -2
- package/dist/{chunk-4JPUC6RL.js → chunk-VVGZL2HX.js} +2 -3
- package/dist/{chunk-4JPUC6RL.js.map → chunk-VVGZL2HX.js.map} +1 -1
- package/dist/{chunk-FEX6ALLH.js → chunk-XD3NEN3Q.js} +29 -3
- package/dist/chunk-XD3NEN3Q.js.map +1 -0
- package/dist/{chunk-U63GDHYJ.js → chunk-XZWFMMJR.js} +3 -3
- package/dist/{chunk-UDBCAFXS.js → chunk-ZSJPI5MS.js} +2 -2
- package/dist/{cli-BRDOPJW3.js → cli-WJVYP2QT.js} +40 -40
- package/dist/{client-AQZMD3LB.js → client-LZ3ZR4HC.js} +4 -4
- package/dist/{config-K3CJEFFO.js → config-ZQIMG3FB.js} +4 -4
- package/dist/{detect-providers-OE6HWW3M.js → detect-providers-C64L3QET.js} +4 -4
- package/dist/{doctor-YOUCIJJY.js → doctor-XEPBNHM3.js} +12 -12
- package/dist/doctor-XEPBNHM3.js.map +1 -0
- package/dist/{executor-UYNV4EOQ.js → executor-NXKJU5KW.js} +29 -110
- package/dist/executor-NXKJU5KW.js.map +1 -0
- package/dist/{init-MTMEFG4E.js → init-BHVQAQ27.js} +55 -73
- package/dist/init-BHVQAQ27.js.map +1 -0
- package/dist/{installer-CTWQB4RS.js → installer-45ZLP2RP.js} +2 -2
- package/dist/{llm-PGETQHZ2.js → llm-KTD6SR55.js} +4 -7
- package/dist/{loader-J56KP27U.js → loader-NEX3UF6U.js} +3 -3
- package/dist/{loader-AVWL7PNO.js → loader-SHRKUKOS.js} +3 -3
- package/dist/{main-ZIMYW2AB.js → main-YFVBIRRK.js} +153 -58
- package/dist/main-YFVBIRRK.js.map +1 -0
- package/dist/{open-77QXL7VY.js → open-2U7ZRGA3.js} +11 -10
- package/dist/open-2U7ZRGA3.js.map +1 -0
- package/dist/open-browser-EBKBAYSM.js +9 -0
- package/dist/{post-compact-CA7O7QPL.js → post-compact-QIBMEWL3.js} +6 -6
- package/dist/{post-tool-use-JNXJIGNK.js → post-tool-use-ICGFXDVY.js} +5 -5
- package/dist/{post-tool-use-failure-V52CZWVZ.js → post-tool-use-failure-C7TLH3XQ.js} +6 -6
- package/dist/{pre-compact-J2GSDQCJ.js → pre-compact-IF7K4TQK.js} +6 -6
- package/dist/{provider-check-CESRPIY5.js → provider-check-LTLQ6BUZ.js} +4 -4
- package/dist/{registry-SPKP2WLI.js → registry-TFQ22Z7N.js} +4 -4
- package/dist/{remove-ODPLWK7O.js → remove-FBGM2QVJ.js} +8 -8
- package/dist/{resolution-events-CLDXZF67.js → resolution-events-HGKIJOTA.js} +4 -4
- package/dist/{restart-6KKZODOI.js → restart-TQEECRNW.js} +8 -8
- package/dist/{search-U6N2DSOI.js → search-NN5FC4Z6.js} +8 -8
- package/dist/{server-SP4G7MY7.js → server-XMWJ4GF7.js} +4 -4
- package/dist/{session-6R3RNVKD.js → session-GLPAFYPO.js} +9 -9
- package/dist/{session-end-TCFCYDBL.js → session-end-TI3ILRBC.js} +5 -5
- package/dist/{session-start-XXN2TVNI.js → session-start-PJLJDVJJ.js} +10 -10
- package/dist/{setup-llm-GISFI73Z.js → setup-llm-AQSWLXCZ.js} +9 -9
- package/dist/src/cli.js +1 -1
- package/dist/src/daemon/main.js +1 -1
- package/dist/src/hooks/post-tool-use.js +1 -1
- package/dist/src/hooks/session-end.js +1 -1
- package/dist/src/hooks/session-start.js +1 -1
- package/dist/src/hooks/stop.js +1 -1
- package/dist/src/hooks/user-prompt-submit.js +1 -1
- package/dist/src/mcp/server.js +1 -1
- package/dist/src/symbionts/templates/claude-code/hooks.json +12 -12
- package/dist/src/symbionts/templates/codex/hooks.json +4 -4
- package/dist/src/symbionts/templates/cursor/hooks.json +9 -9
- package/dist/src/symbionts/templates/gemini/hooks.json +6 -6
- package/dist/src/symbionts/templates/opencode/plugin.ts +53 -10
- package/dist/src/symbionts/templates/vscode-copilot/hooks.json +7 -7
- package/dist/src/symbionts/templates/windsurf/hooks.json +4 -4
- package/dist/{stats-MYQD4OVD.js → stats-BISBIBXZ.js} +9 -9
- package/dist/{stop-K6TDJORY.js → stop-47BJ42EO.js} +5 -5
- package/dist/{stop-failure-U635O5A3.js → stop-failure-VU5BTLWX.js} +6 -6
- package/dist/{subagent-start-LLGQBC5Q.js → subagent-start-SPTKQRHU.js} +6 -6
- package/dist/{subagent-stop-BO3GZWXD.js → subagent-stop-UU75BYLC.js} +6 -6
- package/dist/{task-completed-3ZJHSI2E.js → task-completed-MVDO7TZF.js} +6 -6
- package/dist/{team-OJLQCVE3.js → team-7X64J4Y6.js} +4 -4
- package/dist/ui/assets/index-CRmkSi63.css +1 -0
- package/dist/ui/assets/index-rpmSpJpm.js +842 -0
- package/dist/ui/index.html +2 -2
- package/dist/{update-HR7WMESA.js → update-DA7VEXOS.js} +8 -8
- package/dist/{user-prompt-submit-NM73R4I3.js → user-prompt-submit-ADZ4NTVO.js} +5 -5
- package/dist/{verify-PSERIZPF.js → verify-QYSERHF7.js} +5 -8
- package/dist/{verify-PSERIZPF.js.map → verify-QYSERHF7.js.map} +1 -1
- package/dist/{version-YCODQZSX.js → version-A72TAL2J.js} +2 -2
- package/package.json +6 -2
- package/dist/chunk-FEX6ALLH.js.map +0 -1
- package/dist/chunk-KGL5QSDN.js +0 -66
- package/dist/chunk-KGL5QSDN.js.map +0 -1
- package/dist/chunk-SODRR3HE.js.map +0 -1
- package/dist/chunk-U3SSOSIR.js +0 -26
- package/dist/chunk-U3SSOSIR.js.map +0 -1
- package/dist/chunk-Y7QCKCEJ.js +0 -26
- package/dist/chunk-Y7QCKCEJ.js.map +0 -1
- package/dist/chunk-YTOD6L6N.js.map +0 -1
- package/dist/doctor-YOUCIJJY.js.map +0 -1
- package/dist/executor-UYNV4EOQ.js.map +0 -1
- package/dist/init-MTMEFG4E.js.map +0 -1
- package/dist/init-wizard-ZS3CV6CM.js +0 -294
- package/dist/init-wizard-ZS3CV6CM.js.map +0 -1
- package/dist/main-ZIMYW2AB.js.map +0 -1
- package/dist/open-77QXL7VY.js.map +0 -1
- package/dist/openai-embeddings-LZKY6RV5.js +0 -14
- package/dist/openrouter-UTOZG6Z5.js +0 -14
- package/dist/ui/assets/index-2UyTdjlV.js +0 -842
- package/dist/ui/assets/index-Cts1wLEW.css +0 -1
- package/dist/version-YCODQZSX.js.map +0 -1
- /package/dist/{agent-run-ZDHXORE2.js.map → agent-run-7AYHXIEF.js.map} +0 -0
- /package/dist/{agent-tasks-IPUWMMDZ.js.map → agent-tasks-UUIFKBD4.js.map} +0 -0
- /package/dist/{chunk-VGVRBSLC.js.map → chunk-25WHTV4N.js.map} +0 -0
- /package/dist/{chunk-ZUSTCXHT.js.map → chunk-3NCVCGUZ.js.map} +0 -0
- /package/dist/{chunk-2WRXLYG6.js.map → chunk-5ZISXCDC.js.map} +0 -0
- /package/dist/{chunk-XVWJ273L.js.map → chunk-BZDZORVP.js.map} +0 -0
- /package/dist/{chunk-KKEMVH6D.js.map → chunk-C3C5QVLK.js.map} +0 -0
- /package/dist/{chunk-MSM775XQ.js.map → chunk-CTF7TQMJ.js.map} +0 -0
- /package/dist/{chunk-CPL76CYD.js.map → chunk-DT42247G.js.map} +0 -0
- /package/dist/{chunk-GBYLHPML.js.map → chunk-IGBHLFV5.js.map} +0 -0
- /package/dist/{chunk-DKSQMH5X.js.map → chunk-ML6GTPZU.js.map} +0 -0
- /package/dist/{chunk-QBB6LX57.js.map → chunk-NUSTG3BH.js.map} +0 -0
- /package/dist/{chunk-2IJ6C63F.js.map → chunk-RKPTMHED.js.map} +0 -0
- /package/dist/{chunk-PFF4KB4O.js.map → chunk-SI5BBQAT.js.map} +0 -0
- /package/dist/{chunk-OGNEW5CN.js.map → chunk-UTLWSKDV.js.map} +0 -0
- /package/dist/{chunk-U63GDHYJ.js.map → chunk-XZWFMMJR.js.map} +0 -0
- /package/dist/{chunk-UDBCAFXS.js.map → chunk-ZSJPI5MS.js.map} +0 -0
- /package/dist/{cli-BRDOPJW3.js.map → cli-WJVYP2QT.js.map} +0 -0
- /package/dist/{client-AQZMD3LB.js.map → client-LZ3ZR4HC.js.map} +0 -0
- /package/dist/{config-K3CJEFFO.js.map → config-ZQIMG3FB.js.map} +0 -0
- /package/dist/{detect-providers-OE6HWW3M.js.map → detect-providers-C64L3QET.js.map} +0 -0
- /package/dist/{installer-CTWQB4RS.js.map → installer-45ZLP2RP.js.map} +0 -0
- /package/dist/{llm-PGETQHZ2.js.map → llm-KTD6SR55.js.map} +0 -0
- /package/dist/{loader-AVWL7PNO.js.map → loader-NEX3UF6U.js.map} +0 -0
- /package/dist/{loader-J56KP27U.js.map → loader-SHRKUKOS.js.map} +0 -0
- /package/dist/{openai-embeddings-LZKY6RV5.js.map → open-browser-EBKBAYSM.js.map} +0 -0
- /package/dist/{post-compact-CA7O7QPL.js.map → post-compact-QIBMEWL3.js.map} +0 -0
- /package/dist/{post-tool-use-JNXJIGNK.js.map → post-tool-use-ICGFXDVY.js.map} +0 -0
- /package/dist/{post-tool-use-failure-V52CZWVZ.js.map → post-tool-use-failure-C7TLH3XQ.js.map} +0 -0
- /package/dist/{pre-compact-J2GSDQCJ.js.map → pre-compact-IF7K4TQK.js.map} +0 -0
- /package/dist/{openrouter-UTOZG6Z5.js.map → provider-check-LTLQ6BUZ.js.map} +0 -0
- /package/dist/{provider-check-CESRPIY5.js.map → registry-TFQ22Z7N.js.map} +0 -0
- /package/dist/{remove-ODPLWK7O.js.map → remove-FBGM2QVJ.js.map} +0 -0
- /package/dist/{registry-SPKP2WLI.js.map → resolution-events-HGKIJOTA.js.map} +0 -0
- /package/dist/{restart-6KKZODOI.js.map → restart-TQEECRNW.js.map} +0 -0
- /package/dist/{search-U6N2DSOI.js.map → search-NN5FC4Z6.js.map} +0 -0
- /package/dist/{server-SP4G7MY7.js.map → server-XMWJ4GF7.js.map} +0 -0
- /package/dist/{session-6R3RNVKD.js.map → session-GLPAFYPO.js.map} +0 -0
- /package/dist/{session-end-TCFCYDBL.js.map → session-end-TI3ILRBC.js.map} +0 -0
- /package/dist/{session-start-XXN2TVNI.js.map → session-start-PJLJDVJJ.js.map} +0 -0
- /package/dist/{setup-llm-GISFI73Z.js.map → setup-llm-AQSWLXCZ.js.map} +0 -0
- /package/dist/{stats-MYQD4OVD.js.map → stats-BISBIBXZ.js.map} +0 -0
- /package/dist/{stop-K6TDJORY.js.map → stop-47BJ42EO.js.map} +0 -0
- /package/dist/{stop-failure-U635O5A3.js.map → stop-failure-VU5BTLWX.js.map} +0 -0
- /package/dist/{subagent-start-LLGQBC5Q.js.map → subagent-start-SPTKQRHU.js.map} +0 -0
- /package/dist/{subagent-stop-BO3GZWXD.js.map → subagent-stop-UU75BYLC.js.map} +0 -0
- /package/dist/{task-completed-3ZJHSI2E.js.map → task-completed-MVDO7TZF.js.map} +0 -0
- /package/dist/{team-OJLQCVE3.js.map → team-7X64J4Y6.js.map} +0 -0
- /package/dist/{update-HR7WMESA.js.map → update-DA7VEXOS.js.map} +0 -0
- /package/dist/{user-prompt-submit-NM73R4I3.js.map → user-prompt-submit-ADZ4NTVO.js.map} +0 -0
- /package/dist/{resolution-events-CLDXZF67.js.map → version-A72TAL2J.js.map} +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/config/updates.ts"],"sourcesContent":["import type { MycoConfig, EmbeddingProviderConfig, ContextConfig, TaskProviderOverride, PhaseOverride } from './schema.js';\n\n/**\n * Set a value at a dot-separated path, returning a new config object.\n * Creates intermediate objects along the path as needed.\n */\nexport function withValue(config: MycoConfig, dotPath: string, value: unknown): MycoConfig {\n const clone = structuredClone(config) as MycoConfig & Record<string, unknown>;\n const segments = dotPath.split('.');\n let current: Record<string, unknown> = clone;\n\n for (let i = 0; i < segments.length - 1; i++) {\n const segment = segments[i];\n if (current[segment] === undefined || current[segment] === null || typeof current[segment] !== 'object') {\n current[segment] = {};\n }\n current = current[segment] as Record<string, unknown>;\n }\n\n current[segments[segments.length - 1]] = value;\n\n return clone as MycoConfig;\n}\n\n/** Provider override shape used in task config updates. Null means delete. */\ninterface ProviderInput {\n type: 'anthropic' | 'ollama' | 'lmstudio';\n model?: string;\n base_url?: string;\n context_length?: number;\n}\n\n/** Phase override input. Null fields mean delete. */\ninterface PhaseInput {\n provider?: ProviderInput | null;\n model?: string | null;\n maxTurns?: number | null;\n}\n\n/** Input shape for task config updates. Null values mean \"delete this field\". */\nexport interface TaskConfigUpdate {\n provider?: ProviderInput | null;\n model?: string | null;\n maxTurns?: number | null;\n timeoutSeconds?: number | null;\n phases?: Record<string, PhaseInput | null> | null;\n schedule?: { enabled?: boolean; intervalSeconds?: number; runIn?: ('active' | 'idle' | 'sleep')[] } | null;\n}\n\n/**\n * Apply partial task config updates, returning a new config object.\n * Null values delete fields. Empty task entries and phase maps are cleaned up.\n */\nexport function withTaskConfig(\n config: MycoConfig,\n taskId: string,\n update: TaskConfigUpdate,\n): MycoConfig {\n const tasks = { ...(config.agent.tasks ?? {}) };\n const entry: TaskProviderOverride = { ...(tasks[taskId] ?? {}) };\n\n // Apply top-level fields\n if ('provider' in update) {\n if (update.provider === null) {\n delete entry.provider;\n } else if (update.provider !== undefined) {\n entry.provider = { ...update.provider };\n }\n }\n\n if ('model' in update) {\n if (update.model === null) delete entry.model;\n else if (update.model !== undefined) entry.model = update.model;\n }\n\n if ('maxTurns' in update) {\n if (update.maxTurns === null) delete entry.maxTurns;\n else if (update.maxTurns !== undefined) entry.maxTurns = update.maxTurns;\n }\n\n if ('timeoutSeconds' in update) {\n if (update.timeoutSeconds === null) delete entry.timeoutSeconds;\n else if (update.timeoutSeconds !== undefined) entry.timeoutSeconds = update.timeoutSeconds;\n }\n\n // Handle schedule\n if ('schedule' in update) {\n if (update.schedule === null) {\n delete entry.schedule;\n } else if (update.schedule !== undefined) {\n entry.schedule = { ...entry.schedule, ...update.schedule };\n }\n }\n\n // Apply phase overrides\n if ('phases' in update) {\n if (update.phases === null) {\n delete entry.phases;\n } else if (update.phases !== undefined) {\n const phases: Record<string, PhaseOverride> = { ...(entry.phases ?? {}) };\n\n for (const [phaseName, phaseValue] of Object.entries(update.phases)) {\n if (phaseValue === null) {\n delete phases[phaseName];\n } else {\n const pe: PhaseOverride = { ...(phases[phaseName] ?? {}) };\n if ('provider' in phaseValue) {\n if (phaseValue.provider === null) delete pe.provider;\n else if (phaseValue.provider !== undefined) pe.provider = { ...phaseValue.provider };\n }\n if ('model' in phaseValue) {\n if (phaseValue.model === null) delete pe.model;\n else if (phaseValue.model !== undefined) pe.model = phaseValue.model;\n }\n if ('maxTurns' in phaseValue) {\n if (phaseValue.maxTurns === null) delete pe.maxTurns;\n else if (phaseValue.maxTurns !== undefined) pe.maxTurns = phaseValue.maxTurns;\n }\n phases[phaseName] = pe;\n }\n }\n\n // Clean up empty phases map\n if (Object.keys(phases).length === 0) {\n delete entry.phases;\n } else {\n entry.phases = phases;\n }\n }\n }\n\n // Clean up empty task entry\n if (Object.keys(entry).length === 0) {\n delete tasks[taskId];\n } else {\n tasks[taskId] = entry;\n }\n\n return {\n ...config,\n agent: {\n ...config.agent,\n tasks: Object.keys(tasks).length > 0 ? tasks : undefined,\n },\n };\n}\n\n/**\n * Merge partial embedding updates into config, returning a new config object.\n */\nexport function withEmbedding(\n config: MycoConfig,\n updates: Partial<EmbeddingProviderConfig>,\n): MycoConfig {\n return {\n ...config,\n embedding: { ...config.embedding, ...updates },\n };\n}\n\n/**\n * Merge partial context injection updates into config, returning a new config object.\n */\nexport function withContext(\n config: MycoConfig,\n updates: Partial<ContextConfig>,\n): MycoConfig {\n return {\n ...config,\n context: { ...config.context, ...updates },\n };\n}\n"],"mappings":"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","names":[]}
|
|
@@ -1,17 +1,13 @@
|
|
|
1
1
|
import { createRequire as __cr } from 'node:module'; const require = __cr(import.meta.url);
|
|
2
|
-
import {
|
|
3
|
-
OpenRouterEmbeddingProvider
|
|
4
|
-
} from "./chunk-U3SSOSIR.js";
|
|
5
|
-
import {
|
|
6
|
-
OpenAIEmbeddingProvider
|
|
7
|
-
} from "./chunk-Y7QCKCEJ.js";
|
|
8
2
|
import {
|
|
9
3
|
LmStudioBackend,
|
|
10
4
|
OllamaBackend
|
|
11
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-ML6GTPZU.js";
|
|
12
6
|
import {
|
|
13
|
-
|
|
14
|
-
|
|
7
|
+
EMBEDDING_REQUEST_TIMEOUT_MS,
|
|
8
|
+
LLM_REQUEST_TIMEOUT_MS,
|
|
9
|
+
PROVIDER_DETECT_TIMEOUT_MS
|
|
10
|
+
} from "./chunk-7DAH5GLC.js";
|
|
15
11
|
|
|
16
12
|
// node_modules/@anthropic-ai/sdk/internal/tslib.mjs
|
|
17
13
|
function __classPrivateFieldSet(receiver, state, value, kind, f) {
|
|
@@ -4899,6 +4895,94 @@ var AnthropicBackend = class {
|
|
|
4899
4895
|
}
|
|
4900
4896
|
};
|
|
4901
4897
|
|
|
4898
|
+
// src/cli/providers/cloud-embedding-base.ts
|
|
4899
|
+
var ERROR_BODY_PREVIEW_CHARS = 500;
|
|
4900
|
+
var CloudEmbeddingBase = class {
|
|
4901
|
+
name;
|
|
4902
|
+
apiKey;
|
|
4903
|
+
model;
|
|
4904
|
+
config;
|
|
4905
|
+
constructor(config, opts) {
|
|
4906
|
+
this.config = config;
|
|
4907
|
+
this.name = config.providerName;
|
|
4908
|
+
this.apiKey = opts?.api_key ?? process.env[config.apiKeyEnvVar] ?? "";
|
|
4909
|
+
this.model = opts?.model ?? config.defaultModel;
|
|
4910
|
+
}
|
|
4911
|
+
async embed(text) {
|
|
4912
|
+
const response = await fetch(`${this.config.apiBase}${this.config.embeddingsEndpoint}`, {
|
|
4913
|
+
method: "POST",
|
|
4914
|
+
headers: {
|
|
4915
|
+
"Content-Type": "application/json",
|
|
4916
|
+
"Authorization": `Bearer ${this.apiKey}`
|
|
4917
|
+
},
|
|
4918
|
+
body: JSON.stringify({ model: this.model, input: text }),
|
|
4919
|
+
signal: AbortSignal.timeout(EMBEDDING_REQUEST_TIMEOUT_MS)
|
|
4920
|
+
});
|
|
4921
|
+
if (!response.ok) {
|
|
4922
|
+
const body = await response.text().catch(() => "");
|
|
4923
|
+
throw new Error(`${this.name} embed failed: ${response.status} ${body.slice(0, ERROR_BODY_PREVIEW_CHARS)}`);
|
|
4924
|
+
}
|
|
4925
|
+
const data = await response.json();
|
|
4926
|
+
const embedding = data.data[0].embedding;
|
|
4927
|
+
return { embedding, model: data.model, dimensions: embedding.length };
|
|
4928
|
+
}
|
|
4929
|
+
async isAvailable() {
|
|
4930
|
+
try {
|
|
4931
|
+
const response = await fetch(`${this.config.apiBase}${this.config.modelsEndpoint}`, {
|
|
4932
|
+
headers: { "Authorization": `Bearer ${this.apiKey}` },
|
|
4933
|
+
signal: AbortSignal.timeout(PROVIDER_DETECT_TIMEOUT_MS)
|
|
4934
|
+
});
|
|
4935
|
+
return response.ok;
|
|
4936
|
+
} catch {
|
|
4937
|
+
return false;
|
|
4938
|
+
}
|
|
4939
|
+
}
|
|
4940
|
+
async listModels(timeoutMs) {
|
|
4941
|
+
try {
|
|
4942
|
+
const response = await fetch(`${this.config.apiBase}${this.config.modelsEndpoint}`, {
|
|
4943
|
+
headers: { "Authorization": `Bearer ${this.apiKey}` },
|
|
4944
|
+
signal: AbortSignal.timeout(timeoutMs ?? PROVIDER_DETECT_TIMEOUT_MS)
|
|
4945
|
+
});
|
|
4946
|
+
const data = await response.json();
|
|
4947
|
+
return data.data.filter((m) => this.config.modelFilter(m.id)).map((m) => m.id);
|
|
4948
|
+
} catch {
|
|
4949
|
+
return [];
|
|
4950
|
+
}
|
|
4951
|
+
}
|
|
4952
|
+
};
|
|
4953
|
+
|
|
4954
|
+
// src/cli/providers/openrouter.ts
|
|
4955
|
+
var OPENROUTER_API_KEY_ENV = "MYCO_OPENROUTER_API_KEY";
|
|
4956
|
+
var OpenRouterEmbeddingProvider = class extends CloudEmbeddingBase {
|
|
4957
|
+
constructor(opts) {
|
|
4958
|
+
super({
|
|
4959
|
+
apiBase: "https://openrouter.ai/api/v1",
|
|
4960
|
+
modelsEndpoint: "/models",
|
|
4961
|
+
embeddingsEndpoint: "/embeddings",
|
|
4962
|
+
apiKeyEnvVar: OPENROUTER_API_KEY_ENV,
|
|
4963
|
+
defaultModel: "openai/text-embedding-3-small",
|
|
4964
|
+
providerName: "openrouter",
|
|
4965
|
+
modelFilter: (id) => id.includes("embed")
|
|
4966
|
+
}, opts);
|
|
4967
|
+
}
|
|
4968
|
+
};
|
|
4969
|
+
|
|
4970
|
+
// src/cli/providers/openai-embeddings.ts
|
|
4971
|
+
var OPENAI_API_KEY_ENV = "MYCO_OPENAI_API_KEY";
|
|
4972
|
+
var OpenAIEmbeddingProvider = class extends CloudEmbeddingBase {
|
|
4973
|
+
constructor(opts) {
|
|
4974
|
+
super({
|
|
4975
|
+
apiBase: "https://api.openai.com/v1",
|
|
4976
|
+
modelsEndpoint: "/models",
|
|
4977
|
+
embeddingsEndpoint: "/embeddings",
|
|
4978
|
+
apiKeyEnvVar: OPENAI_API_KEY_ENV,
|
|
4979
|
+
defaultModel: "text-embedding-3-small",
|
|
4980
|
+
providerName: "openai",
|
|
4981
|
+
modelFilter: (id) => id.includes("embedding")
|
|
4982
|
+
}, opts);
|
|
4983
|
+
}
|
|
4984
|
+
};
|
|
4985
|
+
|
|
4902
4986
|
// src/intelligence/llm.ts
|
|
4903
4987
|
function createLlmProvider(config) {
|
|
4904
4988
|
switch (config.provider) {
|
|
@@ -4930,7 +5014,8 @@ function createEmbeddingProvider(config) {
|
|
|
4930
5014
|
}
|
|
4931
5015
|
|
|
4932
5016
|
export {
|
|
5017
|
+
Anthropic,
|
|
4933
5018
|
createLlmProvider,
|
|
4934
5019
|
createEmbeddingProvider
|
|
4935
5020
|
};
|
|
4936
|
-
//# sourceMappingURL=chunk-
|
|
5021
|
+
//# sourceMappingURL=chunk-HPZ7YAMA.js.map
|