@marifold/core 0.60.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +674 -0
- package/dist/agent/AgentEvents.d.ts +106 -0
- package/dist/agent/AgentEvents.d.ts.map +1 -0
- package/dist/agent/AgentEvents.js +3 -0
- package/dist/agent/AgentEvents.js.map +1 -0
- package/dist/agent/AgentHistory.d.ts +27 -0
- package/dist/agent/AgentHistory.d.ts.map +1 -0
- package/dist/agent/AgentHistory.js +42 -0
- package/dist/agent/AgentHistory.js.map +1 -0
- package/dist/agent/AgentRunner.d.ts +149 -0
- package/dist/agent/AgentRunner.d.ts.map +1 -0
- package/dist/agent/AgentRunner.js +727 -0
- package/dist/agent/AgentRunner.js.map +1 -0
- package/dist/agent/ApprovalPolicy.d.ts +71 -0
- package/dist/agent/ApprovalPolicy.d.ts.map +1 -0
- package/dist/agent/ApprovalPolicy.js +29 -0
- package/dist/agent/ApprovalPolicy.js.map +1 -0
- package/dist/agent/ControlBlockTools.d.ts +9 -0
- package/dist/agent/ControlBlockTools.d.ts.map +1 -0
- package/dist/agent/ControlBlockTools.js +49 -0
- package/dist/agent/ControlBlockTools.js.map +1 -0
- package/dist/agent/RunWorkspace.d.ts +92 -0
- package/dist/agent/RunWorkspace.d.ts.map +1 -0
- package/dist/agent/RunWorkspace.js +328 -0
- package/dist/agent/RunWorkspace.js.map +1 -0
- package/dist/agent/ScopedProcess.d.ts +35 -0
- package/dist/agent/ScopedProcess.d.ts.map +1 -0
- package/dist/agent/ScopedProcess.js +280 -0
- package/dist/agent/ScopedProcess.js.map +1 -0
- package/dist/agent/ToolRegistry.d.ts +80 -0
- package/dist/agent/ToolRegistry.d.ts.map +1 -0
- package/dist/agent/ToolRegistry.js +45 -0
- package/dist/agent/ToolRegistry.js.map +1 -0
- package/dist/agent/UserInput.d.ts +59 -0
- package/dist/agent/UserInput.d.ts.map +1 -0
- package/dist/agent/UserInput.js +203 -0
- package/dist/agent/UserInput.js.map +1 -0
- package/dist/agent/tools/AskUserTool.d.ts +71 -0
- package/dist/agent/tools/AskUserTool.d.ts.map +1 -0
- package/dist/agent/tools/AskUserTool.js +70 -0
- package/dist/agent/tools/AskUserTool.js.map +1 -0
- package/dist/agent/tools/DelegateTool.d.ts +49 -0
- package/dist/agent/tools/DelegateTool.d.ts.map +1 -0
- package/dist/agent/tools/DelegateTool.js +62 -0
- package/dist/agent/tools/DelegateTool.js.map +1 -0
- package/dist/agent/tools/InspectAttachmentTool.d.ts +25 -0
- package/dist/agent/tools/InspectAttachmentTool.d.ts.map +1 -0
- package/dist/agent/tools/InspectAttachmentTool.js +129 -0
- package/dist/agent/tools/InspectAttachmentTool.js.map +1 -0
- package/dist/agent/tools/PythonPackageTool.d.ts +26 -0
- package/dist/agent/tools/PythonPackageTool.d.ts.map +1 -0
- package/dist/agent/tools/PythonPackageTool.js +105 -0
- package/dist/agent/tools/PythonPackageTool.js.map +1 -0
- package/dist/agent/tools/ReadFileTool.d.ts +24 -0
- package/dist/agent/tools/ReadFileTool.d.ts.map +1 -0
- package/dist/agent/tools/ReadFileTool.js +112 -0
- package/dist/agent/tools/ReadFileTool.js.map +1 -0
- package/dist/agent/tools/ShellExecTool.d.ts +23 -0
- package/dist/agent/tools/ShellExecTool.d.ts.map +1 -0
- package/dist/agent/tools/ShellExecTool.js +75 -0
- package/dist/agent/tools/ShellExecTool.js.map +1 -0
- package/dist/agent/tools/WebSearchTool.d.ts +26 -0
- package/dist/agent/tools/WebSearchTool.d.ts.map +1 -0
- package/dist/agent/tools/WebSearchTool.js +52 -0
- package/dist/agent/tools/WebSearchTool.js.map +1 -0
- package/dist/agent/tools/WriteFileTool.d.ts +30 -0
- package/dist/agent/tools/WriteFileTool.d.ts.map +1 -0
- package/dist/agent/tools/WriteFileTool.js +155 -0
- package/dist/agent/tools/WriteFileTool.js.map +1 -0
- package/dist/app/AppActionResolver.d.ts +15 -0
- package/dist/app/AppActionResolver.d.ts.map +1 -0
- package/dist/app/AppActionResolver.js +98 -0
- package/dist/app/AppActionResolver.js.map +1 -0
- package/dist/app/AppSchema.d.ts +83 -0
- package/dist/app/AppSchema.d.ts.map +1 -0
- package/dist/app/AppSchema.js +17 -0
- package/dist/app/AppSchema.js.map +1 -0
- package/dist/app/AppStore.d.ts +14 -0
- package/dist/app/AppStore.d.ts.map +1 -0
- package/dist/app/AppStore.js +146 -0
- package/dist/app/AppStore.js.map +1 -0
- package/dist/app/AppValidator.d.ts +10 -0
- package/dist/app/AppValidator.d.ts.map +1 -0
- package/dist/app/AppValidator.js +503 -0
- package/dist/app/AppValidator.js.map +1 -0
- package/dist/app/SkillAppCompiler.d.ts +5 -0
- package/dist/app/SkillAppCompiler.d.ts.map +1 -0
- package/dist/app/SkillAppCompiler.js +632 -0
- package/dist/app/SkillAppCompiler.js.map +1 -0
- package/dist/app/SkillAppDsl.d.ts +93 -0
- package/dist/app/SkillAppDsl.d.ts.map +1 -0
- package/dist/app/SkillAppDsl.js +72 -0
- package/dist/app/SkillAppDsl.js.map +1 -0
- package/dist/app/SkillAppInstanceRegistry.d.ts +25 -0
- package/dist/app/SkillAppInstanceRegistry.d.ts.map +1 -0
- package/dist/app/SkillAppInstanceRegistry.js +218 -0
- package/dist/app/SkillAppInstanceRegistry.js.map +1 -0
- package/dist/app/SkillAppResolver.d.ts +12 -0
- package/dist/app/SkillAppResolver.d.ts.map +1 -0
- package/dist/app/SkillAppResolver.js +89 -0
- package/dist/app/SkillAppResolver.js.map +1 -0
- package/dist/app/SkillAppSchema.d.ts +116 -0
- package/dist/app/SkillAppSchema.d.ts.map +1 -0
- package/dist/app/SkillAppSchema.js +5 -0
- package/dist/app/SkillAppSchema.js.map +1 -0
- package/dist/channels/TelegramBridge.d.ts +103 -0
- package/dist/channels/TelegramBridge.d.ts.map +1 -0
- package/dist/channels/TelegramBridge.js +565 -0
- package/dist/channels/TelegramBridge.js.map +1 -0
- package/dist/channels/respond.d.ts +46 -0
- package/dist/channels/respond.d.ts.map +1 -0
- package/dist/channels/respond.js +41 -0
- package/dist/channels/respond.js.map +1 -0
- package/dist/config/ChatGptTokenRefresh.d.ts +18 -0
- package/dist/config/ChatGptTokenRefresh.d.ts.map +1 -0
- package/dist/config/ChatGptTokenRefresh.js +63 -0
- package/dist/config/ChatGptTokenRefresh.js.map +1 -0
- package/dist/config/ConfigBackup.d.ts +20 -0
- package/dist/config/ConfigBackup.d.ts.map +1 -0
- package/dist/config/ConfigBackup.js +197 -0
- package/dist/config/ConfigBackup.js.map +1 -0
- package/dist/config/ConfigLoader.d.ts +28 -0
- package/dist/config/ConfigLoader.d.ts.map +1 -0
- package/dist/config/ConfigLoader.js +335 -0
- package/dist/config/ConfigLoader.js.map +1 -0
- package/dist/config/ConfigManager.d.ts +55 -0
- package/dist/config/ConfigManager.d.ts.map +1 -0
- package/dist/config/ConfigManager.js +707 -0
- package/dist/config/ConfigManager.js.map +1 -0
- package/dist/config/ConfigSchema.d.ts +231 -0
- package/dist/config/ConfigSchema.d.ts.map +1 -0
- package/dist/config/ConfigSchema.js +15 -0
- package/dist/config/ConfigSchema.js.map +1 -0
- package/dist/config/GitHubCopilotAuth.d.ts +7 -0
- package/dist/config/GitHubCopilotAuth.d.ts.map +1 -0
- package/dist/config/GitHubCopilotAuth.js +40 -0
- package/dist/config/GitHubCopilotAuth.js.map +1 -0
- package/dist/config/MarifoldOpenAICompatProvider.d.ts +39 -0
- package/dist/config/MarifoldOpenAICompatProvider.d.ts.map +1 -0
- package/dist/config/MarifoldOpenAICompatProvider.js +158 -0
- package/dist/config/MarifoldOpenAICompatProvider.js.map +1 -0
- package/dist/config/OpenAICompatUrls.d.ts +7 -0
- package/dist/config/OpenAICompatUrls.d.ts.map +1 -0
- package/dist/config/OpenAICompatUrls.js +47 -0
- package/dist/config/OpenAICompatUrls.js.map +1 -0
- package/dist/config/ProviderFactory.d.ts +12 -0
- package/dist/config/ProviderFactory.d.ts.map +1 -0
- package/dist/config/ProviderFactory.js +61 -0
- package/dist/config/ProviderFactory.js.map +1 -0
- package/dist/config/ProviderInspector.d.ts +46 -0
- package/dist/config/ProviderInspector.d.ts.map +1 -0
- package/dist/config/ProviderInspector.js +356 -0
- package/dist/config/ProviderInspector.js.map +1 -0
- package/dist/config/ProviderRegistry.d.ts +19 -0
- package/dist/config/ProviderRegistry.d.ts.map +1 -0
- package/dist/config/ProviderRegistry.js +301 -0
- package/dist/config/ProviderRegistry.js.map +1 -0
- package/dist/config/XaiTokenRefresh.d.ts +15 -0
- package/dist/config/XaiTokenRefresh.d.ts.map +1 -0
- package/dist/config/XaiTokenRefresh.js +73 -0
- package/dist/config/XaiTokenRefresh.js.map +1 -0
- package/dist/errors/MarifoldError.d.ts +34 -0
- package/dist/errors/MarifoldError.d.ts.map +1 -0
- package/dist/errors/MarifoldError.js +100 -0
- package/dist/errors/MarifoldError.js.map +1 -0
- package/dist/images/ImageOptimizer.d.ts +34 -0
- package/dist/images/ImageOptimizer.d.ts.map +1 -0
- package/dist/images/ImageOptimizer.js +225 -0
- package/dist/images/ImageOptimizer.js.map +1 -0
- package/dist/index.d.ts +96 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +193 -0
- package/dist/index.js.map +1 -0
- package/dist/memory/MemoryControls.d.ts +26 -0
- package/dist/memory/MemoryControls.d.ts.map +1 -0
- package/dist/memory/MemoryControls.js +388 -0
- package/dist/memory/MemoryControls.js.map +1 -0
- package/dist/memory/MemoryStore.d.ts +122 -0
- package/dist/memory/MemoryStore.d.ts.map +1 -0
- package/dist/memory/MemoryStore.js +1096 -0
- package/dist/memory/MemoryStore.js.map +1 -0
- package/dist/profiles/ProfileManager.d.ts +139 -0
- package/dist/profiles/ProfileManager.d.ts.map +1 -0
- package/dist/profiles/ProfileManager.js +475 -0
- package/dist/profiles/ProfileManager.js.map +1 -0
- package/dist/profiles/ProfileResolver.d.ts +18 -0
- package/dist/profiles/ProfileResolver.d.ts.map +1 -0
- package/dist/profiles/ProfileResolver.js +280 -0
- package/dist/profiles/ProfileResolver.js.map +1 -0
- package/dist/runs/RunRegistry.d.ts +140 -0
- package/dist/runs/RunRegistry.d.ts.map +1 -0
- package/dist/runs/RunRegistry.js +432 -0
- package/dist/runs/RunRegistry.js.map +1 -0
- package/dist/runtime/MarifoldRuntime.d.ts +244 -0
- package/dist/runtime/MarifoldRuntime.d.ts.map +1 -0
- package/dist/runtime/MarifoldRuntime.js +1099 -0
- package/dist/runtime/MarifoldRuntime.js.map +1 -0
- package/dist/runtime/MarifoldTypes.d.ts +70 -0
- package/dist/runtime/MarifoldTypes.d.ts.map +1 -0
- package/dist/runtime/MarifoldTypes.js +3 -0
- package/dist/runtime/MarifoldTypes.js.map +1 -0
- package/dist/schedule/ScheduleStore.d.ts +60 -0
- package/dist/schedule/ScheduleStore.d.ts.map +1 -0
- package/dist/schedule/ScheduleStore.js +212 -0
- package/dist/schedule/ScheduleStore.js.map +1 -0
- package/dist/schedule/Scheduler.d.ts +28 -0
- package/dist/schedule/Scheduler.d.ts.map +1 -0
- package/dist/schedule/Scheduler.js +65 -0
- package/dist/schedule/Scheduler.js.map +1 -0
- package/dist/search/DuckDuckGoBackend.d.ts +18 -0
- package/dist/search/DuckDuckGoBackend.d.ts.map +1 -0
- package/dist/search/DuckDuckGoBackend.js +37 -0
- package/dist/search/DuckDuckGoBackend.js.map +1 -0
- package/dist/search/FirecrawlBackend.d.ts +28 -0
- package/dist/search/FirecrawlBackend.d.ts.map +1 -0
- package/dist/search/FirecrawlBackend.js +76 -0
- package/dist/search/FirecrawlBackend.js.map +1 -0
- package/dist/search/SearchBackend.d.ts +18 -0
- package/dist/search/SearchBackend.d.ts.map +1 -0
- package/dist/search/SearchBackend.js +24 -0
- package/dist/search/SearchBackend.js.map +1 -0
- package/dist/search/createSearchBackend.d.ts +16 -0
- package/dist/search/createSearchBackend.d.ts.map +1 -0
- package/dist/search/createSearchBackend.js +30 -0
- package/dist/search/createSearchBackend.js.map +1 -0
- package/dist/sessions/ResponseMetrics.d.ts +17 -0
- package/dist/sessions/ResponseMetrics.d.ts.map +1 -0
- package/dist/sessions/ResponseMetrics.js +3 -0
- package/dist/sessions/ResponseMetrics.js.map +1 -0
- package/dist/sessions/SessionResolver.d.ts +135 -0
- package/dist/sessions/SessionResolver.d.ts.map +1 -0
- package/dist/sessions/SessionResolver.js +1173 -0
- package/dist/sessions/SessionResolver.js.map +1 -0
- package/dist/skill/BuiltInSkillManager.d.ts +11 -0
- package/dist/skill/BuiltInSkillManager.d.ts.map +1 -0
- package/dist/skill/BuiltInSkillManager.js +98 -0
- package/dist/skill/BuiltInSkillManager.js.map +1 -0
- package/dist/skill/SkillInvocation.d.ts +30 -0
- package/dist/skill/SkillInvocation.d.ts.map +1 -0
- package/dist/skill/SkillInvocation.js +135 -0
- package/dist/skill/SkillInvocation.js.map +1 -0
- package/dist/skill/SkillSchema.d.ts +37 -0
- package/dist/skill/SkillSchema.d.ts.map +1 -0
- package/dist/skill/SkillSchema.js +26 -0
- package/dist/skill/SkillSchema.js.map +1 -0
- package/dist/skill/SkillStore.d.ts +41 -0
- package/dist/skill/SkillStore.d.ts.map +1 -0
- package/dist/skill/SkillStore.js +184 -0
- package/dist/skill/SkillStore.js.map +1 -0
- package/dist/skill/SkillTemplater.d.ts +19 -0
- package/dist/skill/SkillTemplater.d.ts.map +1 -0
- package/dist/skill/SkillTemplater.js +36 -0
- package/dist/skill/SkillTemplater.js.map +1 -0
- package/dist/skill/SkillValidator.d.ts +10 -0
- package/dist/skill/SkillValidator.d.ts.map +1 -0
- package/dist/skill/SkillValidator.js +131 -0
- package/dist/skill/SkillValidator.js.map +1 -0
- package/dist/skill/SkillVars.d.ts +10 -0
- package/dist/skill/SkillVars.d.ts.map +1 -0
- package/dist/skill/SkillVars.js +65 -0
- package/dist/skill/SkillVars.js.map +1 -0
- package/dist/skill/index.d.ts +10 -0
- package/dist/skill/index.d.ts.map +1 -0
- package/dist/skill/index.js +22 -0
- package/dist/skill/index.js.map +1 -0
- package/dist/skillapp/SkillAppActionResolver.d.ts +13 -0
- package/dist/skillapp/SkillAppActionResolver.d.ts.map +1 -0
- package/dist/skillapp/SkillAppActionResolver.js +95 -0
- package/dist/skillapp/SkillAppActionResolver.js.map +1 -0
- package/dist/skillapp/SkillAppSchema.d.ts +79 -0
- package/dist/skillapp/SkillAppSchema.d.ts.map +1 -0
- package/dist/skillapp/SkillAppSchema.js +20 -0
- package/dist/skillapp/SkillAppSchema.js.map +1 -0
- package/dist/skillapp/SkillAppStore.d.ts +11 -0
- package/dist/skillapp/SkillAppStore.d.ts.map +1 -0
- package/dist/skillapp/SkillAppStore.js +98 -0
- package/dist/skillapp/SkillAppStore.js.map +1 -0
- package/dist/skillapp/SkillAppValidator.d.ts +10 -0
- package/dist/skillapp/SkillAppValidator.d.ts.map +1 -0
- package/dist/skillapp/SkillAppValidator.js +522 -0
- package/dist/skillapp/SkillAppValidator.js.map +1 -0
- package/dist/tasks/TaskStore.d.ts +110 -0
- package/dist/tasks/TaskStore.d.ts.map +1 -0
- package/dist/tasks/TaskStore.js +371 -0
- package/dist/tasks/TaskStore.js.map +1 -0
- package/dist/util/fetchRetry.d.ts +11 -0
- package/dist/util/fetchRetry.d.ts.map +1 -0
- package/dist/util/fetchRetry.js +48 -0
- package/dist/util/fetchRetry.js.map +1 -0
- package/dist/util/idToken.d.ts +12 -0
- package/dist/util/idToken.d.ts.map +1 -0
- package/dist/util/idToken.js +32 -0
- package/dist/util/idToken.js.map +1 -0
- package/dist/util/proxy.d.ts +18 -0
- package/dist/util/proxy.d.ts.map +1 -0
- package/dist/util/proxy.js +28 -0
- package/dist/util/proxy.js.map +1 -0
- package/dist/workspace/Workspace.d.ts +9 -0
- package/dist/workspace/Workspace.d.ts.map +1 -0
- package/dist/workspace/Workspace.js +55 -0
- package/dist/workspace/Workspace.js.map +1 -0
- package/dist/workspace/WorkspaceInitializer.d.ts +40 -0
- package/dist/workspace/WorkspaceInitializer.d.ts.map +1 -0
- package/dist/workspace/WorkspaceInitializer.js +212 -0
- package/dist/workspace/WorkspaceInitializer.js.map +1 -0
- package/dist/workspace/WorkspacePaths.d.ts +11 -0
- package/dist/workspace/WorkspacePaths.d.ts.map +1 -0
- package/dist/workspace/WorkspacePaths.js +82 -0
- package/dist/workspace/WorkspacePaths.js.map +1 -0
- package/package.json +36 -0
|
@@ -0,0 +1,301 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.GITHUB_COPILOT_CHAT_MODELS = exports.GITHUB_COPILOT_RESPONSES_MODELS = void 0;
|
|
4
|
+
exports.isGitHubCopilotResponsesModelId = isGitHubCopilotResponsesModelId;
|
|
5
|
+
exports.isKnownGitHubCopilotUnsupportedModelId = isKnownGitHubCopilotUnsupportedModelId;
|
|
6
|
+
exports.listProviderRegistry = listProviderRegistry;
|
|
7
|
+
exports.getProviderRegistryEntry = getProviderRegistryEntry;
|
|
8
|
+
exports.providerConfigFromRegistry = providerConfigFromRegistry;
|
|
9
|
+
exports.GITHUB_COPILOT_RESPONSES_MODELS = [
|
|
10
|
+
'gpt-5.4-mini',
|
|
11
|
+
];
|
|
12
|
+
// GitHub's public Copilot model table is broader than the current OpenAI-compatible
|
|
13
|
+
// endpoints Marifold supports. Keep this fallback list to models usable by Marifold chat.
|
|
14
|
+
exports.GITHUB_COPILOT_CHAT_MODELS = [
|
|
15
|
+
'gpt-5.5',
|
|
16
|
+
'gpt-5.4',
|
|
17
|
+
...exports.GITHUB_COPILOT_RESPONSES_MODELS,
|
|
18
|
+
'gpt-5.3-codex',
|
|
19
|
+
'gpt-5.2-codex',
|
|
20
|
+
'gpt-5.2',
|
|
21
|
+
'gpt-5-mini',
|
|
22
|
+
'gpt-4.1',
|
|
23
|
+
'claude-sonnet-4.6',
|
|
24
|
+
'claude-sonnet-4.5',
|
|
25
|
+
'claude-opus-4.8',
|
|
26
|
+
'claude-opus-4.7',
|
|
27
|
+
'claude-opus-4.6',
|
|
28
|
+
'claude-opus-4.6-fast',
|
|
29
|
+
'claude-opus-4.5',
|
|
30
|
+
'claude-haiku-4.5',
|
|
31
|
+
'gemini-3.5-flash',
|
|
32
|
+
'gemini-3.1-pro-preview',
|
|
33
|
+
'gemini-3-flash-preview',
|
|
34
|
+
'gemini-2.5-pro',
|
|
35
|
+
'raptor-mini',
|
|
36
|
+
'mai-code-1-flash',
|
|
37
|
+
];
|
|
38
|
+
const GITHUB_COPILOT_UNSUPPORTED_MODEL_IDS = new Set([
|
|
39
|
+
'gpt-5.4-nano',
|
|
40
|
+
'text-embedding-3-small',
|
|
41
|
+
'text-embedding-3-large',
|
|
42
|
+
'trajectory-compaction',
|
|
43
|
+
'oswe-vscode-prime',
|
|
44
|
+
]);
|
|
45
|
+
function isGitHubCopilotResponsesModelId(modelId) {
|
|
46
|
+
return exports.GITHUB_COPILOT_RESPONSES_MODELS.includes(modelId);
|
|
47
|
+
}
|
|
48
|
+
function isKnownGitHubCopilotUnsupportedModelId(modelId) {
|
|
49
|
+
if (modelId.startsWith('text-embedding-'))
|
|
50
|
+
return true;
|
|
51
|
+
return GITHUB_COPILOT_UNSUPPORTED_MODEL_IDS.has(modelId);
|
|
52
|
+
}
|
|
53
|
+
const REGISTRY = [
|
|
54
|
+
{
|
|
55
|
+
name: 'ollama',
|
|
56
|
+
label: 'Ollama (local)',
|
|
57
|
+
kind: 'local',
|
|
58
|
+
type: 'ollama',
|
|
59
|
+
defaultBaseUrl: 'http://localhost:11434',
|
|
60
|
+
knownModels: null,
|
|
61
|
+
},
|
|
62
|
+
{
|
|
63
|
+
name: 'llamacpp',
|
|
64
|
+
label: 'llama.cpp (local)',
|
|
65
|
+
kind: 'local',
|
|
66
|
+
type: 'openai-compatible',
|
|
67
|
+
defaultBaseUrl: 'http://localhost:8080',
|
|
68
|
+
knownModels: null,
|
|
69
|
+
},
|
|
70
|
+
{
|
|
71
|
+
name: 'lmstudio',
|
|
72
|
+
label: 'LM Studio (local)',
|
|
73
|
+
kind: 'local',
|
|
74
|
+
type: 'openai-compatible',
|
|
75
|
+
defaultBaseUrl: 'http://localhost:1234',
|
|
76
|
+
knownModels: null,
|
|
77
|
+
},
|
|
78
|
+
{
|
|
79
|
+
name: 'rapidmlx',
|
|
80
|
+
label: 'Rapid-MLX (local)',
|
|
81
|
+
kind: 'local',
|
|
82
|
+
type: 'openai-compatible',
|
|
83
|
+
defaultBaseUrl: 'http://localhost:8000',
|
|
84
|
+
knownModels: null,
|
|
85
|
+
},
|
|
86
|
+
{
|
|
87
|
+
name: 'openai',
|
|
88
|
+
label: 'OpenAI',
|
|
89
|
+
kind: 'api',
|
|
90
|
+
type: 'openai-compatible',
|
|
91
|
+
defaultBaseUrl: 'https://api.openai.com',
|
|
92
|
+
apiKeyEnv: 'OPENAI_API_KEY',
|
|
93
|
+
knownModels: [
|
|
94
|
+
'gpt-5.4', 'gpt-5.4-mini', 'gpt-5.4-nano',
|
|
95
|
+
'gpt-4.1', 'gpt-4.1-mini', 'gpt-4.1-nano',
|
|
96
|
+
'gpt-4o', 'gpt-4o-mini',
|
|
97
|
+
'o4-mini', 'o3', 'o3-mini',
|
|
98
|
+
],
|
|
99
|
+
},
|
|
100
|
+
{
|
|
101
|
+
name: 'anthropic',
|
|
102
|
+
label: 'Anthropic Claude',
|
|
103
|
+
kind: 'api',
|
|
104
|
+
type: 'anthropic',
|
|
105
|
+
apiKeyEnv: 'ANTHROPIC_API_KEY',
|
|
106
|
+
knownModels: [
|
|
107
|
+
'claude-opus-4-7',
|
|
108
|
+
'claude-sonnet-4-6',
|
|
109
|
+
'claude-haiku-4-5-20251001',
|
|
110
|
+
'claude-3-5-sonnet-20241022',
|
|
111
|
+
'claude-3-5-haiku-20241022',
|
|
112
|
+
],
|
|
113
|
+
},
|
|
114
|
+
{
|
|
115
|
+
name: 'gemini',
|
|
116
|
+
label: 'Google Gemini',
|
|
117
|
+
kind: 'api',
|
|
118
|
+
type: 'openai-compatible',
|
|
119
|
+
defaultBaseUrl: 'https://generativelanguage.googleapis.com/v1beta/openai',
|
|
120
|
+
apiKeyEnv: 'GEMINI_API_KEY',
|
|
121
|
+
knownModels: [
|
|
122
|
+
'gemini-2.5-pro',
|
|
123
|
+
'gemini-2.5-flash',
|
|
124
|
+
'gemini-2.5-flash-lite',
|
|
125
|
+
'gemini-2.0-flash',
|
|
126
|
+
'gemini-2.0-flash-lite',
|
|
127
|
+
],
|
|
128
|
+
},
|
|
129
|
+
{
|
|
130
|
+
name: 'deepseek',
|
|
131
|
+
label: 'DeepSeek',
|
|
132
|
+
kind: 'api',
|
|
133
|
+
type: 'openai-compatible',
|
|
134
|
+
defaultBaseUrl: 'https://api.deepseek.com',
|
|
135
|
+
apiKeyEnv: 'DEEPSEEK_API_KEY',
|
|
136
|
+
knownModels: ['deepseek-chat', 'deepseek-reasoner'],
|
|
137
|
+
},
|
|
138
|
+
{
|
|
139
|
+
name: 'mistral',
|
|
140
|
+
label: 'Mistral AI',
|
|
141
|
+
kind: 'api',
|
|
142
|
+
type: 'openai-compatible',
|
|
143
|
+
defaultBaseUrl: 'https://api.mistral.ai',
|
|
144
|
+
apiKeyEnv: 'MISTRAL_API_KEY',
|
|
145
|
+
knownModels: ['mistral-large-latest', 'mistral-medium-latest', 'mistral-small-latest', 'codestral-latest'],
|
|
146
|
+
},
|
|
147
|
+
{
|
|
148
|
+
name: 'groq',
|
|
149
|
+
label: 'Groq',
|
|
150
|
+
kind: 'api',
|
|
151
|
+
type: 'openai-compatible',
|
|
152
|
+
defaultBaseUrl: 'https://api.groq.com/openai',
|
|
153
|
+
apiKeyEnv: 'GROQ_API_KEY',
|
|
154
|
+
knownModels: [
|
|
155
|
+
'llama-3.3-70b-versatile',
|
|
156
|
+
'llama-3.1-8b-instant',
|
|
157
|
+
'meta-llama/llama-4-scout-17b-16e-instruct',
|
|
158
|
+
'qwen/qwen3-32b',
|
|
159
|
+
'openai/gpt-oss-120b',
|
|
160
|
+
'openai/gpt-oss-20b',
|
|
161
|
+
],
|
|
162
|
+
},
|
|
163
|
+
{
|
|
164
|
+
name: 'perplexity',
|
|
165
|
+
label: 'Perplexity',
|
|
166
|
+
kind: 'api',
|
|
167
|
+
type: 'openai-compatible',
|
|
168
|
+
defaultBaseUrl: 'https://api.perplexity.ai',
|
|
169
|
+
apiKeyEnv: 'PERPLEXITY_API_KEY',
|
|
170
|
+
knownModels: ['sonar-pro', 'sonar', 'sonar-reasoning'],
|
|
171
|
+
},
|
|
172
|
+
{
|
|
173
|
+
name: 'cohere',
|
|
174
|
+
label: 'Cohere',
|
|
175
|
+
kind: 'api',
|
|
176
|
+
type: 'openai-compatible',
|
|
177
|
+
defaultBaseUrl: 'https://api.cohere.com/compatibility',
|
|
178
|
+
apiKeyEnv: 'COHERE_API_KEY',
|
|
179
|
+
knownModels: ['command-r-plus-08-2024', 'command-r-08-2024'],
|
|
180
|
+
},
|
|
181
|
+
{
|
|
182
|
+
name: 'together',
|
|
183
|
+
label: 'Together AI',
|
|
184
|
+
kind: 'api',
|
|
185
|
+
type: 'openai-compatible',
|
|
186
|
+
defaultBaseUrl: 'https://api.together.xyz',
|
|
187
|
+
apiKeyEnv: 'TOGETHER_API_KEY',
|
|
188
|
+
knownModels: [],
|
|
189
|
+
},
|
|
190
|
+
{
|
|
191
|
+
name: 'bailian',
|
|
192
|
+
label: 'Alibaba Bailian (China)',
|
|
193
|
+
kind: 'api',
|
|
194
|
+
type: 'openai-compatible',
|
|
195
|
+
defaultBaseUrl: 'https://dashscope.aliyuncs.com/compatible-mode',
|
|
196
|
+
apiKeyEnv: 'BAILIAN_API_KEY',
|
|
197
|
+
knownModels: [
|
|
198
|
+
'qwen3-max', 'qwen3-235b-a22b', 'qwen3-32b', 'qwen3-14b', 'qwen3-8b',
|
|
199
|
+
'qwen3.5-plus', 'qwen3.5-flash',
|
|
200
|
+
'qwq-plus',
|
|
201
|
+
],
|
|
202
|
+
},
|
|
203
|
+
{
|
|
204
|
+
name: 'alibaba_cloud',
|
|
205
|
+
label: 'Alibaba Cloud (international)',
|
|
206
|
+
kind: 'api',
|
|
207
|
+
type: 'openai-compatible',
|
|
208
|
+
defaultBaseUrl: 'https://dashscope-intl.aliyuncs.com/compatible-mode',
|
|
209
|
+
apiKeyEnv: 'ALIBABA_CLOUD_API_KEY',
|
|
210
|
+
knownModels: [
|
|
211
|
+
'qwen3-max', 'qwen3-235b-a22b', 'qwen3-32b', 'qwen3-14b', 'qwen3-8b',
|
|
212
|
+
'qwen3.5-plus', 'qwen3.5-flash',
|
|
213
|
+
'qwq-plus',
|
|
214
|
+
],
|
|
215
|
+
},
|
|
216
|
+
{
|
|
217
|
+
name: 'minimax',
|
|
218
|
+
label: 'MiniMax',
|
|
219
|
+
kind: 'api',
|
|
220
|
+
type: 'openai-compatible',
|
|
221
|
+
defaultBaseUrl: 'https://api.minimax.io',
|
|
222
|
+
apiKeyEnv: 'MINIMAX_API_KEY',
|
|
223
|
+
knownModels: ['MiniMax-M2.7', 'MiniMax-M2.7-highspeed', 'MiniMax-M2.5', 'MiniMax-M2.5-highspeed'],
|
|
224
|
+
},
|
|
225
|
+
{
|
|
226
|
+
name: 'kimi',
|
|
227
|
+
label: 'Kimi (Moonshot, China)',
|
|
228
|
+
kind: 'api',
|
|
229
|
+
type: 'openai-compatible',
|
|
230
|
+
defaultBaseUrl: 'https://api.moonshot.cn',
|
|
231
|
+
apiKeyEnv: 'KIMI_API_KEY',
|
|
232
|
+
knownModels: ['kimi-k2.5', 'kimi-k2-thinking', 'kimi-k2-thinking-turbo', 'moonshot-v1-128k', 'moonshot-v1-32k', 'moonshot-v1-8k'],
|
|
233
|
+
},
|
|
234
|
+
{
|
|
235
|
+
name: 'openrouter',
|
|
236
|
+
label: 'OpenRouter (gateway)',
|
|
237
|
+
kind: 'api',
|
|
238
|
+
type: 'openai-compatible',
|
|
239
|
+
defaultBaseUrl: 'https://openrouter.ai/api',
|
|
240
|
+
apiKeyEnv: 'OPENROUTER_API_KEY',
|
|
241
|
+
knownModels: [],
|
|
242
|
+
},
|
|
243
|
+
{
|
|
244
|
+
name: 'github_copilot',
|
|
245
|
+
label: 'GitHub Copilot (OAuth)',
|
|
246
|
+
kind: 'oauth',
|
|
247
|
+
type: 'openai-compatible',
|
|
248
|
+
defaultBaseUrl: 'https://api.githubcopilot.com',
|
|
249
|
+
apiKeyEnv: 'GITHUB_COPILOT_API_KEY',
|
|
250
|
+
knownModels: exports.GITHUB_COPILOT_CHAT_MODELS,
|
|
251
|
+
},
|
|
252
|
+
{
|
|
253
|
+
name: 'chatgpt',
|
|
254
|
+
label: 'ChatGPT (subscription OAuth)',
|
|
255
|
+
kind: 'oauth',
|
|
256
|
+
type: 'openai-compatible',
|
|
257
|
+
// ChatGPT plan sign-in authorizes the Codex backend (not the platform API):
|
|
258
|
+
// the OAuth access token + chatgpt-account-id header are used directly here.
|
|
259
|
+
defaultBaseUrl: 'https://chatgpt.com/backend-api/codex',
|
|
260
|
+
apiKeyEnv: 'CHATGPT_API_KEY',
|
|
261
|
+
// Offline/auth-failure fallback only. Live model selection queries the
|
|
262
|
+
// signed-in account's Codex model catalog; custom ids remain available.
|
|
263
|
+
knownModels: ['gpt-5.5', 'gpt-5.3-codex', 'gpt-5.4-mini'],
|
|
264
|
+
},
|
|
265
|
+
{
|
|
266
|
+
name: 'xai',
|
|
267
|
+
label: 'xAI Grok (SuperGrok OAuth)',
|
|
268
|
+
kind: 'oauth',
|
|
269
|
+
type: 'openai-compatible',
|
|
270
|
+
// SuperGrok / X Premium+ sign-in authorizes the plain OpenAI-compatible
|
|
271
|
+
// api.x.ai surface: the OAuth access token is used as a normal Bearer
|
|
272
|
+
// credential (no special backend or account header, unlike ChatGPT).
|
|
273
|
+
defaultBaseUrl: 'https://api.x.ai/v1',
|
|
274
|
+
apiKeyEnv: 'XAI_API_KEY',
|
|
275
|
+
// Fallback list only, shown when live /v1/models can't be fetched. These are
|
|
276
|
+
// the models a SuperGrok subscription exposes (per Grok Build CLI); the
|
|
277
|
+
// picker also accepts a custom id. Live listing is authoritative.
|
|
278
|
+
knownModels: ['grok-4.5', 'grok-composer-2.5-fast'],
|
|
279
|
+
},
|
|
280
|
+
{
|
|
281
|
+
name: 'custom',
|
|
282
|
+
label: 'Custom OpenAI-compatible endpoint',
|
|
283
|
+
kind: 'api',
|
|
284
|
+
type: 'openai-compatible',
|
|
285
|
+
knownModels: [],
|
|
286
|
+
},
|
|
287
|
+
];
|
|
288
|
+
function listProviderRegistry() {
|
|
289
|
+
return [...REGISTRY];
|
|
290
|
+
}
|
|
291
|
+
function getProviderRegistryEntry(name) {
|
|
292
|
+
return REGISTRY.find(provider => provider.name === name);
|
|
293
|
+
}
|
|
294
|
+
function providerConfigFromRegistry(entry) {
|
|
295
|
+
return {
|
|
296
|
+
type: entry.type,
|
|
297
|
+
...(entry.defaultBaseUrl ? { baseUrl: entry.defaultBaseUrl } : {}),
|
|
298
|
+
...(entry.apiKeyEnv ? { apiKeyEnv: entry.apiKeyEnv } : {}),
|
|
299
|
+
};
|
|
300
|
+
}
|
|
301
|
+
//# sourceMappingURL=ProviderRegistry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ProviderRegistry.js","sourceRoot":"","sources":["../../src/config/ProviderRegistry.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export interface XaiRefreshedTokens {
|
|
2
|
+
/** OAuth access token — used directly as the api.x.ai Bearer credential. */
|
|
3
|
+
apiKey: string;
|
|
4
|
+
/** Next refresh token. May rotate; persist it. */
|
|
5
|
+
refreshToken: string;
|
|
6
|
+
/** Unix seconds when the access credential expires, when reported. */
|
|
7
|
+
expiresAt?: number;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* Refresh an expired xAI Grok OAuth credential from the stored refresh token.
|
|
11
|
+
* SuperGrok / X Premium+ accounts use the access token directly as the
|
|
12
|
+
* api.x.ai Bearer credential, so there is no id_token→API-key exchange.
|
|
13
|
+
*/
|
|
14
|
+
export declare function refreshXaiAccessToken(refreshToken: string, proxy?: string): Promise<XaiRefreshedTokens>;
|
|
15
|
+
//# sourceMappingURL=XaiTokenRefresh.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"XaiTokenRefresh.d.ts","sourceRoot":"","sources":["../../src/config/XaiTokenRefresh.ts"],"names":[],"mappings":"AAOA,MAAM,WAAW,kBAAkB;IACjC,4EAA4E;IAC5E,MAAM,EAAE,MAAM,CAAC;IACf,kDAAkD;IAClD,YAAY,EAAE,MAAM,CAAC;IACrB,sEAAsE;IACtE,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;GAIG;AACH,wBAAsB,qBAAqB,CAAC,YAAY,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAkB7G"}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.refreshXaiAccessToken = refreshXaiAccessToken;
|
|
4
|
+
const fetchRetry_1 = require("../util/fetchRetry");
|
|
5
|
+
const proxy_1 = require("../util/proxy");
|
|
6
|
+
const XAI_OAUTH_TOKEN_URL = 'https://auth.x.ai/oauth2/token';
|
|
7
|
+
const XAI_OAUTH_CLIENT_ID = 'b1a00492-073a-47ea-816f-4c329264a828';
|
|
8
|
+
const REFRESH_TIMEOUT_MS = 20_000;
|
|
9
|
+
/**
|
|
10
|
+
* Refresh an expired xAI Grok OAuth credential from the stored refresh token.
|
|
11
|
+
* SuperGrok / X Premium+ accounts use the access token directly as the
|
|
12
|
+
* api.x.ai Bearer credential, so there is no id_token→API-key exchange.
|
|
13
|
+
*/
|
|
14
|
+
async function refreshXaiAccessToken(refreshToken, proxy) {
|
|
15
|
+
const data = await postForm(XAI_OAUTH_TOKEN_URL, {
|
|
16
|
+
grant_type: 'refresh_token',
|
|
17
|
+
refresh_token: refreshToken,
|
|
18
|
+
client_id: XAI_OAUTH_CLIENT_ID,
|
|
19
|
+
}, 'xAI token refresh failed', proxy);
|
|
20
|
+
const accessToken = stringField(data.access_token);
|
|
21
|
+
if (!accessToken) {
|
|
22
|
+
throw new Error('xAI token refresh response did not include an access token.');
|
|
23
|
+
}
|
|
24
|
+
const expiresIn = numberField(data.expires_in);
|
|
25
|
+
return {
|
|
26
|
+
apiKey: accessToken,
|
|
27
|
+
refreshToken: stringField(data.refresh_token) ?? refreshToken,
|
|
28
|
+
expiresAt: expiresIn !== undefined ? Math.floor(Date.now() / 1000) + expiresIn : undefined,
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
async function postForm(url, body, label, proxy) {
|
|
32
|
+
const dispatcher = (0, proxy_1.proxyDispatcher)(proxy);
|
|
33
|
+
try {
|
|
34
|
+
const init = {
|
|
35
|
+
method: 'POST',
|
|
36
|
+
headers: { 'Content-Type': 'application/x-www-form-urlencoded', Accept: 'application/json' },
|
|
37
|
+
body: new URLSearchParams(body),
|
|
38
|
+
signal: AbortSignal.timeout(REFRESH_TIMEOUT_MS),
|
|
39
|
+
};
|
|
40
|
+
if (dispatcher)
|
|
41
|
+
init.dispatcher = dispatcher;
|
|
42
|
+
let response;
|
|
43
|
+
try {
|
|
44
|
+
response = await (0, fetchRetry_1.fetchWithTransientRetry)(url, init);
|
|
45
|
+
}
|
|
46
|
+
catch (error) {
|
|
47
|
+
if (!(error instanceof Error))
|
|
48
|
+
throw new Error(`${label}: ${String(error)}`);
|
|
49
|
+
// undici puts the real transport reason on `.cause` (ECONNREFUSED, TLS,
|
|
50
|
+
// proxy errors); surface it so a "fetch failed" is diagnosable.
|
|
51
|
+
const cause = error.cause;
|
|
52
|
+
const causeText = cause ? ` (cause: ${cause.code ?? cause.message})` : '';
|
|
53
|
+
throw new Error(`${label}: ${error.name}: ${error.message}${causeText}`);
|
|
54
|
+
}
|
|
55
|
+
return await parseResponse(response, label);
|
|
56
|
+
}
|
|
57
|
+
finally {
|
|
58
|
+
await dispatcher?.close();
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
async function parseResponse(response, label) {
|
|
62
|
+
if (!response.ok) {
|
|
63
|
+
throw new Error(`${label}: HTTP ${response.status}: ${await response.text().catch(() => '')}`);
|
|
64
|
+
}
|
|
65
|
+
return await response.json();
|
|
66
|
+
}
|
|
67
|
+
function stringField(value) {
|
|
68
|
+
return typeof value === 'string' && value ? value : undefined;
|
|
69
|
+
}
|
|
70
|
+
function numberField(value) {
|
|
71
|
+
return typeof value === 'number' && Number.isFinite(value) ? value : undefined;
|
|
72
|
+
}
|
|
73
|
+
//# sourceMappingURL=XaiTokenRefresh.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"XaiTokenRefresh.js","sourceRoot":"","sources":["../../src/config/XaiTokenRefresh.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
export type MarifoldErrorCode = 'CONFIG_INVALID' | 'CONFIG_FILE_NOT_FOUND' | 'CONFIG_MISSING_PROVIDER_MODEL' | 'IMAGE_INVALID' | 'PROFILE_INVALID' | 'PROVIDER_NOT_CONFIGURED' | 'PROVIDER_ERROR' | 'API_KEY_MISSING' | 'MEMORY_INVALID' | 'TASK_INVALID' | 'TASK_NOT_FOUND' | 'SESSION_STORE_ERROR' | 'WORKSPACE_ALREADY_INITIALIZED' | 'AGENT_TOOL_INVALID' | 'AGENT_RUN_INVALID' | 'SCHEDULE_INVALID' | 'SCHEDULE_NOT_FOUND' | 'SKILL_INVALID' | 'SKILL_NOT_FOUND' | 'APP_INVALID' | 'APP_NOT_FOUND' | 'RUN_NOT_FOUND' | 'APPROVAL_NOT_FOUND' | 'USER_INPUT_NOT_FOUND' | 'RUN_LIMIT_EXCEEDED' | 'UNAUTHORIZED' | 'NETWORK_FORBIDDEN' | 'ORIGIN_FORBIDDEN';
|
|
2
|
+
export declare class MarifoldError extends Error {
|
|
3
|
+
readonly code: MarifoldErrorCode;
|
|
4
|
+
readonly details: Record<string, string>;
|
|
5
|
+
constructor(code: MarifoldErrorCode, message: string, details?: Record<string, string>);
|
|
6
|
+
static configInvalid(message: string, details?: Record<string, string>): MarifoldError;
|
|
7
|
+
static imageInvalid(message: string, details?: Record<string, string>): MarifoldError;
|
|
8
|
+
static configFileNotFound(path: string): MarifoldError;
|
|
9
|
+
static missingProviderModel(configPath: string): MarifoldError;
|
|
10
|
+
static profileInvalid(message: string, profile: string): MarifoldError;
|
|
11
|
+
static providerNotConfigured(provider: string, configPath: string): MarifoldError;
|
|
12
|
+
static providerError(message: string, provider: string, model: string, upstreamCode?: string): MarifoldError;
|
|
13
|
+
static apiKeyMissing(provider: string, envVar: string): MarifoldError;
|
|
14
|
+
static memoryInvalid(message: string, profile: string): MarifoldError;
|
|
15
|
+
static taskInvalid(message: string, taskId?: string): MarifoldError;
|
|
16
|
+
static taskNotFound(taskId: string): MarifoldError;
|
|
17
|
+
static agentToolInvalid(message: string, tool?: string): MarifoldError;
|
|
18
|
+
static agentRunInvalid(message: string): MarifoldError;
|
|
19
|
+
static scheduleInvalid(message: string, scheduleId?: string): MarifoldError;
|
|
20
|
+
static scheduleNotFound(scheduleId: string): MarifoldError;
|
|
21
|
+
static skillInvalid(message: string, source?: string): MarifoldError;
|
|
22
|
+
static skillNotFound(name: string): MarifoldError;
|
|
23
|
+
static appInvalid(message: string, source?: string): MarifoldError;
|
|
24
|
+
static appNotFound(name: string): MarifoldError;
|
|
25
|
+
static runNotFound(runId: string): MarifoldError;
|
|
26
|
+
static approvalNotFound(requestId: string): MarifoldError;
|
|
27
|
+
static userInputNotFound(requestId: string): MarifoldError;
|
|
28
|
+
static runLimitExceeded(max: number): MarifoldError;
|
|
29
|
+
static unauthorized(): MarifoldError;
|
|
30
|
+
static networkForbidden(address: string): MarifoldError;
|
|
31
|
+
static originForbidden(origin: string): MarifoldError;
|
|
32
|
+
static workspaceAlreadyInitialized(configPath: string): MarifoldError;
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=MarifoldError.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MarifoldError.d.ts","sourceRoot":"","sources":["../../src/errors/MarifoldError.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.MarifoldError = void 0;
|
|
4
|
+
class MarifoldError extends Error {
|
|
5
|
+
code;
|
|
6
|
+
details;
|
|
7
|
+
constructor(code, message, details = {}) {
|
|
8
|
+
super(message);
|
|
9
|
+
this.name = 'MarifoldError';
|
|
10
|
+
this.code = code;
|
|
11
|
+
this.details = details;
|
|
12
|
+
}
|
|
13
|
+
static configInvalid(message, details = {}) {
|
|
14
|
+
return new MarifoldError('CONFIG_INVALID', message, details);
|
|
15
|
+
}
|
|
16
|
+
static imageInvalid(message, details = {}) {
|
|
17
|
+
return new MarifoldError('IMAGE_INVALID', message, details);
|
|
18
|
+
}
|
|
19
|
+
static configFileNotFound(path) {
|
|
20
|
+
return new MarifoldError('CONFIG_FILE_NOT_FOUND', `Config file not found: ${path}`, { path });
|
|
21
|
+
}
|
|
22
|
+
static missingProviderModel(configPath) {
|
|
23
|
+
return new MarifoldError('CONFIG_MISSING_PROVIDER_MODEL', `Provider and model are not configured. Set [default].provider and [default].model in ${configPath}, or pass --provider and --model.`, { configPath });
|
|
24
|
+
}
|
|
25
|
+
static profileInvalid(message, profile) {
|
|
26
|
+
return new MarifoldError('PROFILE_INVALID', message, { profile });
|
|
27
|
+
}
|
|
28
|
+
static providerNotConfigured(provider, configPath) {
|
|
29
|
+
return new MarifoldError('PROVIDER_NOT_CONFIGURED', `Provider '${provider}' is not configured in ${configPath}. Add a [providers.${provider}] table.`, { provider, configPath });
|
|
30
|
+
}
|
|
31
|
+
static providerError(message, provider, model, upstreamCode) {
|
|
32
|
+
return new MarifoldError('PROVIDER_ERROR', message, {
|
|
33
|
+
provider,
|
|
34
|
+
model,
|
|
35
|
+
...(upstreamCode ? { upstreamCode } : {}),
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
static apiKeyMissing(provider, envVar) {
|
|
39
|
+
return new MarifoldError('API_KEY_MISSING', `Provider '${provider}' requires ${envVar}. Set the environment variable before running Marifold.`, { provider, envVar });
|
|
40
|
+
}
|
|
41
|
+
static memoryInvalid(message, profile) {
|
|
42
|
+
return new MarifoldError('MEMORY_INVALID', message, { profile });
|
|
43
|
+
}
|
|
44
|
+
static taskInvalid(message, taskId) {
|
|
45
|
+
return new MarifoldError('TASK_INVALID', message, taskId ? { taskId } : {});
|
|
46
|
+
}
|
|
47
|
+
static taskNotFound(taskId) {
|
|
48
|
+
return new MarifoldError('TASK_NOT_FOUND', `Task not found: ${taskId}`, { taskId });
|
|
49
|
+
}
|
|
50
|
+
static agentToolInvalid(message, tool) {
|
|
51
|
+
return new MarifoldError('AGENT_TOOL_INVALID', message, tool ? { tool } : {});
|
|
52
|
+
}
|
|
53
|
+
static agentRunInvalid(message) {
|
|
54
|
+
return new MarifoldError('AGENT_RUN_INVALID', message);
|
|
55
|
+
}
|
|
56
|
+
static scheduleInvalid(message, scheduleId) {
|
|
57
|
+
return new MarifoldError('SCHEDULE_INVALID', message, scheduleId ? { schedule_id: scheduleId } : {});
|
|
58
|
+
}
|
|
59
|
+
static scheduleNotFound(scheduleId) {
|
|
60
|
+
return new MarifoldError('SCHEDULE_NOT_FOUND', `Schedule not found: ${scheduleId}`, { schedule_id: scheduleId });
|
|
61
|
+
}
|
|
62
|
+
static skillInvalid(message, source) {
|
|
63
|
+
return new MarifoldError('SKILL_INVALID', message, source ? { source } : {});
|
|
64
|
+
}
|
|
65
|
+
static skillNotFound(name) {
|
|
66
|
+
return new MarifoldError('SKILL_NOT_FOUND', `Skill not found: ${name}`, { name });
|
|
67
|
+
}
|
|
68
|
+
static appInvalid(message, source) {
|
|
69
|
+
return new MarifoldError('APP_INVALID', message, source ? { source } : {});
|
|
70
|
+
}
|
|
71
|
+
static appNotFound(name) {
|
|
72
|
+
return new MarifoldError('APP_NOT_FOUND', `App not found: ${name}`, { name });
|
|
73
|
+
}
|
|
74
|
+
static runNotFound(runId) {
|
|
75
|
+
return new MarifoldError('RUN_NOT_FOUND', `Run not found: ${runId}`, { runId });
|
|
76
|
+
}
|
|
77
|
+
static approvalNotFound(requestId) {
|
|
78
|
+
return new MarifoldError('APPROVAL_NOT_FOUND', `No pending approval with id ${requestId}. It may have expired, been answered, or belong to another run.`, { requestId });
|
|
79
|
+
}
|
|
80
|
+
static userInputNotFound(requestId) {
|
|
81
|
+
return new MarifoldError('USER_INPUT_NOT_FOUND', `No pending user-input request with id ${requestId}. It may have expired, been answered, or belong to another run.`, { requestId });
|
|
82
|
+
}
|
|
83
|
+
static runLimitExceeded(max) {
|
|
84
|
+
return new MarifoldError('RUN_LIMIT_EXCEEDED', `Too many active agent runs (limit ${max}). Wait for a run to finish or cancel one.`, { max: String(max) });
|
|
85
|
+
}
|
|
86
|
+
static unauthorized() {
|
|
87
|
+
return new MarifoldError('UNAUTHORIZED', 'Missing or invalid bearer token.');
|
|
88
|
+
}
|
|
89
|
+
static networkForbidden(address) {
|
|
90
|
+
return new MarifoldError('NETWORK_FORBIDDEN', `Network source not allowed: ${address}. Marifold accepts only loopback, private LAN, link-local, and private overlay-network clients.`, { address });
|
|
91
|
+
}
|
|
92
|
+
static originForbidden(origin) {
|
|
93
|
+
return new MarifoldError('ORIGIN_FORBIDDEN', `Origin not allowed: ${origin}. Add it to [service].cors_origins.`, { origin });
|
|
94
|
+
}
|
|
95
|
+
static workspaceAlreadyInitialized(configPath) {
|
|
96
|
+
return new MarifoldError('WORKSPACE_ALREADY_INITIALIZED', `Marifold is already initialized at ${configPath}. Use --force to rewrite config.toml.`, { configPath });
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
exports.MarifoldError = MarifoldError;
|
|
100
|
+
//# sourceMappingURL=MarifoldError.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MarifoldError.js","sourceRoot":"","sources":["../../src/errors/MarifoldError.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import type { ImageInput } from '@priest-ai/core';
|
|
2
|
+
/** Keep these limits below the service's JSON body limit after base64 overhead. */
|
|
3
|
+
export declare const MAX_IMAGES_PER_REQUEST = 4;
|
|
4
|
+
export declare const MAX_TOTAL_SOURCE_IMAGE_BYTES: number;
|
|
5
|
+
export declare const IMAGE_OPTIMIZE_MIN_BYTES: number;
|
|
6
|
+
export declare const IMAGE_MAX_LONG_EDGE = 1600;
|
|
7
|
+
export declare const IMAGE_JPEG_QUALITY = 85;
|
|
8
|
+
export declare const IMAGE_MAX_INPUT_PIXELS: number;
|
|
9
|
+
export interface PreparedImageSummary {
|
|
10
|
+
sourceBytes: number;
|
|
11
|
+
sentBytes: number;
|
|
12
|
+
optimized: boolean;
|
|
13
|
+
sourceMediaType?: string;
|
|
14
|
+
sentMediaType?: string;
|
|
15
|
+
}
|
|
16
|
+
export interface PreparedImages {
|
|
17
|
+
images: ImageInput[];
|
|
18
|
+
summaries: PreparedImageSummary[];
|
|
19
|
+
}
|
|
20
|
+
export interface PrepareImageOptions {
|
|
21
|
+
/** Validate and preserve original encoded bytes for this request. */
|
|
22
|
+
optimize?: boolean;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Validate and reduce local/base64 images before Priest builds provider
|
|
26
|
+
* payloads. URLs remain remote references and are deliberately not fetched.
|
|
27
|
+
*
|
|
28
|
+
* PNG and other lossless inputs stay lossless (WebP) so screenshots and text
|
|
29
|
+
* remain crisp. JPEG uses high-quality 4:4:4 output; static WebP first tries a
|
|
30
|
+
* lossless resized candidate. Animated images remain byte-for-byte unchanged.
|
|
31
|
+
* An optimized candidate is accepted only when it is smaller than the source.
|
|
32
|
+
*/
|
|
33
|
+
export declare function prepareImageInputs(inputs?: ImageInput[], options?: PrepareImageOptions): Promise<PreparedImages>;
|
|
34
|
+
//# sourceMappingURL=ImageOptimizer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ImageOptimizer.d.ts","sourceRoot":"","sources":["../../src/images/ImageOptimizer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAKlD,mFAAmF;AACnF,eAAO,MAAM,sBAAsB,IAAI,CAAC;AACxC,eAAO,MAAM,4BAA4B,QAAmB,CAAC;AAC7D,eAAO,MAAM,wBAAwB,QAAa,CAAC;AACnD,eAAO,MAAM,mBAAmB,OAAO,CAAC;AACxC,eAAO,MAAM,kBAAkB,KAAK,CAAC;AACrC,eAAO,MAAM,sBAAsB,QAAc,CAAC;AAUlD,MAAM,WAAW,oBAAoB;IACnC,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,OAAO,CAAC;IACnB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,UAAU,EAAE,CAAC;IACrB,SAAS,EAAE,oBAAoB,EAAE,CAAC;CACnC;AAED,MAAM,WAAW,mBAAmB;IAClC,qEAAqE;IACrE,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED;;;;;;;;GAQG;AACH,wBAAsB,kBAAkB,CACtC,MAAM,CAAC,EAAE,UAAU,EAAE,EACrB,OAAO,GAAE,mBAAwB,GAChC,OAAO,CAAC,cAAc,CAAC,CA+IzB"}
|