@nanocollective/nanocoder 1.22.4 → 1.23.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/README.md +93 -30
- package/assets/nanocoder-vscode.vsix +0 -0
- package/dist/ai-sdk-client/chat/chat-handler.js +1 -1
- package/dist/ai-sdk-client/chat/chat-handler.js.map +1 -1
- package/dist/ai-sdk-client/chat/tool-processor.d.ts +1 -1
- package/dist/ai-sdk-client/chat/tool-processor.d.ts.map +1 -1
- package/dist/ai-sdk-client/chat/tool-processor.js +8 -3
- package/dist/ai-sdk-client/chat/tool-processor.js.map +1 -1
- package/dist/ai-sdk-client/error-handling/error-parser.d.ts.map +1 -1
- package/dist/ai-sdk-client/error-handling/error-parser.js +4 -1
- package/dist/ai-sdk-client/error-handling/error-parser.js.map +1 -1
- package/dist/app/App.d.ts.map +1 -1
- package/dist/app/App.js +106 -11
- package/dist/app/App.js.map +1 -1
- package/dist/app/components/chat-input.d.ts +6 -1
- package/dist/app/components/chat-input.d.ts.map +1 -1
- package/dist/app/components/chat-input.js +9 -7
- package/dist/app/components/chat-input.js.map +1 -1
- package/dist/app/utils/app-util.d.ts +5 -0
- package/dist/app/utils/app-util.d.ts.map +1 -1
- package/dist/app/utils/app-util.js +265 -0
- package/dist/app/utils/app-util.js.map +1 -1
- package/dist/client-factory.d.ts.map +1 -1
- package/dist/client-factory.js +3 -2
- package/dist/client-factory.js.map +1 -1
- package/dist/commands/context-max.d.ts +15 -0
- package/dist/commands/context-max.d.ts.map +1 -0
- package/dist/commands/context-max.js +22 -0
- package/dist/commands/context-max.js.map +1 -0
- package/dist/commands/custom-commands.d.ts.map +1 -1
- package/dist/commands/custom-commands.js +88 -4
- package/dist/commands/custom-commands.js.map +1 -1
- package/dist/commands/exit.d.ts.map +1 -1
- package/dist/commands/exit.js +5 -8
- package/dist/commands/exit.js.map +1 -1
- package/dist/commands/ide.d.ts +3 -0
- package/dist/commands/ide.d.ts.map +1 -0
- package/dist/commands/ide.js +10 -0
- package/dist/commands/ide.js.map +1 -0
- package/dist/commands/index.d.ts +3 -0
- package/dist/commands/index.d.ts.map +1 -1
- package/dist/commands/index.js +3 -0
- package/dist/commands/index.js.map +1 -1
- package/dist/commands/schedule.d.ts +3 -0
- package/dist/commands/schedule.d.ts.map +1 -0
- package/dist/commands/schedule.js +177 -0
- package/dist/commands/schedule.js.map +1 -0
- package/dist/commands/usage.d.ts.map +1 -1
- package/dist/commands/usage.js +4 -3
- package/dist/commands/usage.js.map +1 -1
- package/dist/components/development-mode-indicator.d.ts +3 -2
- package/dist/components/development-mode-indicator.d.ts.map +1 -1
- package/dist/components/development-mode-indicator.js +23 -9
- package/dist/components/development-mode-indicator.js.map +1 -1
- package/dist/components/ide-selector.d.ts +7 -0
- package/dist/components/ide-selector.d.ts.map +1 -0
- package/dist/components/ide-selector.js +17 -0
- package/dist/components/ide-selector.js.map +1 -0
- package/dist/components/question-prompt.d.ts +8 -0
- package/dist/components/question-prompt.d.ts.map +1 -0
- package/dist/components/question-prompt.js +58 -0
- package/dist/components/question-prompt.js.map +1 -0
- package/dist/components/scheduler-view.d.ts +14 -0
- package/dist/components/scheduler-view.d.ts.map +1 -0
- package/dist/components/scheduler-view.js +17 -0
- package/dist/components/scheduler-view.js.map +1 -0
- package/dist/components/text-input.d.ts +13 -0
- package/dist/components/text-input.d.ts.map +1 -0
- package/dist/components/text-input.js +175 -0
- package/dist/components/text-input.js.map +1 -0
- package/dist/components/user-input.d.ts +2 -1
- package/dist/components/user-input.d.ts.map +1 -1
- package/dist/components/user-input.js +8 -15
- package/dist/components/user-input.js.map +1 -1
- package/dist/config/themes.d.ts.map +1 -1
- package/dist/config/themes.js +20 -0
- package/dist/config/themes.js.map +1 -1
- package/dist/constants.d.ts +2 -0
- package/dist/constants.d.ts.map +1 -1
- package/dist/constants.js +55 -0
- package/dist/constants.js.map +1 -1
- package/dist/custom-commands/command-integration.d.ts +24 -0
- package/dist/custom-commands/command-integration.d.ts.map +1 -0
- package/dist/custom-commands/command-integration.js +68 -0
- package/dist/custom-commands/command-integration.js.map +1 -0
- package/dist/custom-commands/executor.d.ts.map +1 -1
- package/dist/custom-commands/executor.js +12 -2
- package/dist/custom-commands/executor.js.map +1 -1
- package/dist/custom-commands/loader.d.ts +33 -5
- package/dist/custom-commands/loader.d.ts.map +1 -1
- package/dist/custom-commands/loader.js +191 -18
- package/dist/custom-commands/loader.js.map +1 -1
- package/dist/custom-commands/parser.d.ts.map +1 -1
- package/dist/custom-commands/parser.js +115 -48
- package/dist/custom-commands/parser.js.map +1 -1
- package/dist/hooks/chat-handler/conversation/conversation-loop.d.ts +1 -1
- package/dist/hooks/chat-handler/conversation/conversation-loop.d.ts.map +1 -1
- package/dist/hooks/chat-handler/conversation/conversation-loop.js +37 -5
- package/dist/hooks/chat-handler/conversation/conversation-loop.js.map +1 -1
- package/dist/hooks/chat-handler/conversation/tool-executor.js +1 -1
- package/dist/hooks/chat-handler/conversation/tool-executor.js.map +1 -1
- package/dist/hooks/chat-handler/types.d.ts +3 -1
- package/dist/hooks/chat-handler/types.d.ts.map +1 -1
- package/dist/hooks/chat-handler/useChatHandler.d.ts +1 -1
- package/dist/hooks/chat-handler/useChatHandler.d.ts.map +1 -1
- package/dist/hooks/chat-handler/useChatHandler.js +13 -5
- package/dist/hooks/chat-handler/useChatHandler.js.map +1 -1
- package/dist/hooks/useAppHandlers.d.ts +2 -0
- package/dist/hooks/useAppHandlers.d.ts.map +1 -1
- package/dist/hooks/useAppHandlers.js +5 -0
- package/dist/hooks/useAppHandlers.js.map +1 -1
- package/dist/hooks/useAppInitialization.d.ts.map +1 -1
- package/dist/hooks/useAppInitialization.js +4 -1
- package/dist/hooks/useAppInitialization.js.map +1 -1
- package/dist/hooks/useAppState.d.ts +15 -0
- package/dist/hooks/useAppState.d.ts.map +1 -1
- package/dist/hooks/useAppState.js +23 -0
- package/dist/hooks/useAppState.js.map +1 -1
- package/dist/hooks/useContextPercentage.d.ts +17 -0
- package/dist/hooks/useContextPercentage.d.ts.map +1 -0
- package/dist/hooks/useContextPercentage.js +71 -0
- package/dist/hooks/useContextPercentage.js.map +1 -0
- package/dist/hooks/useModeHandlers.d.ts +4 -1
- package/dist/hooks/useModeHandlers.d.ts.map +1 -1
- package/dist/hooks/useModeHandlers.js +11 -1
- package/dist/hooks/useModeHandlers.js.map +1 -1
- package/dist/hooks/useNonInteractiveMode.d.ts.map +1 -1
- package/dist/hooks/useNonInteractiveMode.js +3 -1
- package/dist/hooks/useNonInteractiveMode.js.map +1 -1
- package/dist/hooks/useSchedulerMode.d.ts +30 -0
- package/dist/hooks/useSchedulerMode.d.ts.map +1 -0
- package/dist/hooks/useSchedulerMode.js +99 -0
- package/dist/hooks/useSchedulerMode.js.map +1 -0
- package/dist/lsp/lsp-manager.d.ts.map +1 -1
- package/dist/lsp/lsp-manager.js +10 -0
- package/dist/lsp/lsp-manager.js.map +1 -1
- package/dist/mcp/mcp-client.d.ts.map +1 -1
- package/dist/mcp/mcp-client.js +20 -1
- package/dist/mcp/mcp-client.js.map +1 -1
- package/dist/models/index.d.ts +1 -1
- package/dist/models/index.d.ts.map +1 -1
- package/dist/models/index.js +1 -1
- package/dist/models/index.js.map +1 -1
- package/dist/models/models-dev-client.d.ts +8 -1
- package/dist/models/models-dev-client.d.ts.map +1 -1
- package/dist/models/models-dev-client.js +116 -88
- package/dist/models/models-dev-client.js.map +1 -1
- package/dist/schedule/cron.d.ts +14 -0
- package/dist/schedule/cron.d.ts.map +1 -0
- package/dist/schedule/cron.js +107 -0
- package/dist/schedule/cron.js.map +1 -0
- package/dist/schedule/index.d.ts +4 -0
- package/dist/schedule/index.d.ts.map +1 -0
- package/dist/schedule/index.js +4 -0
- package/dist/schedule/index.js.map +1 -0
- package/dist/schedule/runner.d.ts +42 -0
- package/dist/schedule/runner.d.ts.map +1 -0
- package/dist/schedule/runner.js +136 -0
- package/dist/schedule/runner.js.map +1 -0
- package/dist/schedule/storage.d.ts +9 -0
- package/dist/schedule/storage.d.ts.map +1 -0
- package/dist/schedule/storage.js +68 -0
- package/dist/schedule/storage.js.map +1 -0
- package/dist/schedule/types.d.ts +24 -0
- package/dist/schedule/types.d.ts.map +1 -0
- package/dist/schedule/types.js +2 -0
- package/dist/schedule/types.js.map +1 -0
- package/dist/services/bash-executor.d.ts.map +1 -1
- package/dist/services/bash-executor.js +5 -0
- package/dist/services/bash-executor.js.map +1 -1
- package/dist/tool-calling/json-parser.d.ts +7 -3
- package/dist/tool-calling/json-parser.d.ts.map +1 -1
- package/dist/tool-calling/json-parser.js +59 -23
- package/dist/tool-calling/json-parser.js.map +1 -1
- package/dist/tool-calling/tool-parser.d.ts +2 -2
- package/dist/tool-calling/tool-parser.d.ts.map +1 -1
- package/dist/tool-calling/tool-parser.js +27 -23
- package/dist/tool-calling/tool-parser.js.map +1 -1
- package/dist/tool-calling/xml-parser.d.ts +8 -4
- package/dist/tool-calling/xml-parser.d.ts.map +1 -1
- package/dist/tool-calling/xml-parser.js +15 -5
- package/dist/tool-calling/xml-parser.js.map +1 -1
- package/dist/tools/ask-question.d.ts +3 -0
- package/dist/tools/ask-question.d.ts.map +1 -0
- package/dist/tools/ask-question.js +66 -0
- package/dist/tools/ask-question.js.map +1 -0
- package/dist/tools/execute-bash.js +1 -1
- package/dist/tools/execute-bash.js.map +1 -1
- package/dist/tools/file-ops/copy-file.d.ts +3 -0
- package/dist/tools/file-ops/copy-file.d.ts.map +1 -0
- package/dist/tools/file-ops/copy-file.js +126 -0
- package/dist/tools/file-ops/copy-file.js.map +1 -0
- package/dist/tools/file-ops/create-directory.d.ts +3 -0
- package/dist/tools/file-ops/create-directory.d.ts.map +1 -0
- package/dist/tools/file-ops/create-directory.js +76 -0
- package/dist/tools/file-ops/create-directory.js.map +1 -0
- package/dist/tools/file-ops/delete-file.d.ts +3 -0
- package/dist/tools/file-ops/delete-file.d.ts.map +1 -0
- package/dist/tools/file-ops/delete-file.js +88 -0
- package/dist/tools/file-ops/delete-file.js.map +1 -0
- package/dist/tools/file-ops/index.d.ts +3 -0
- package/dist/tools/file-ops/index.d.ts.map +1 -0
- package/dist/tools/file-ops/index.js +8 -0
- package/dist/tools/file-ops/index.js.map +1 -0
- package/dist/tools/file-ops/move-file.d.ts +3 -0
- package/dist/tools/file-ops/move-file.d.ts.map +1 -0
- package/dist/tools/file-ops/move-file.js +126 -0
- package/dist/tools/file-ops/move-file.js.map +1 -0
- package/dist/tools/file-ops/string-replace.d.ts +3 -0
- package/dist/tools/file-ops/string-replace.d.ts.map +1 -0
- package/dist/tools/{string-replace.js → file-ops/string-replace.js} +17 -17
- package/dist/tools/file-ops/string-replace.js.map +1 -0
- package/dist/tools/file-ops/write-file.d.ts +3 -0
- package/dist/tools/file-ops/write-file.d.ts.map +1 -0
- package/dist/tools/{write-file.js → file-ops/write-file.js} +31 -17
- package/dist/tools/file-ops/write-file.js.map +1 -0
- package/dist/tools/git/git-reset.js +1 -1
- package/dist/tools/git/git-reset.js.map +1 -1
- package/dist/tools/git/index.js +3 -3
- package/dist/tools/git/index.js.map +1 -1
- package/dist/tools/git/utils.d.ts +4 -0
- package/dist/tools/git/utils.d.ts.map +1 -1
- package/dist/tools/git/utils.js +12 -0
- package/dist/tools/git/utils.js.map +1 -1
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +8 -2
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/search-file-contents.d.ts.map +1 -1
- package/dist/tools/search-file-contents.js +59 -10
- package/dist/tools/search-file-contents.js.map +1 -1
- package/dist/tools/tool-manager.d.ts.map +1 -1
- package/dist/tools/tool-manager.js +9 -0
- package/dist/tools/tool-manager.js.map +1 -1
- package/dist/types/app.d.ts +2 -0
- package/dist/types/app.d.ts.map +1 -1
- package/dist/types/commands.d.ts +20 -0
- package/dist/types/commands.d.ts.map +1 -1
- package/dist/types/core.d.ts +2 -1
- package/dist/types/core.d.ts.map +1 -1
- package/dist/types/core.js +7 -0
- package/dist/types/core.js.map +1 -1
- package/dist/types/ui.d.ts +1 -1
- package/dist/types/ui.d.ts.map +1 -1
- package/dist/utils/auto-compact.d.ts.map +1 -1
- package/dist/utils/auto-compact.js +13 -7
- package/dist/utils/auto-compact.js.map +1 -1
- package/dist/utils/file-content-loader.d.ts.map +1 -1
- package/dist/utils/file-content-loader.js +58 -1
- package/dist/utils/file-content-loader.js.map +1 -1
- package/dist/utils/logging/index.d.ts.map +1 -1
- package/dist/utils/logging/index.js +18 -30
- package/dist/utils/logging/index.js.map +1 -1
- package/dist/utils/question-queue.d.ts +15 -0
- package/dist/utils/question-queue.d.ts.map +1 -0
- package/dist/utils/question-queue.js +25 -0
- package/dist/utils/question-queue.js.map +1 -0
- package/dist/utils/response-formatter.d.ts +108 -0
- package/dist/utils/response-formatter.d.ts.map +1 -0
- package/dist/utils/response-formatter.js +387 -0
- package/dist/utils/response-formatter.js.map +1 -0
- package/dist/utils/shutdown/index.d.ts +7 -0
- package/dist/utils/shutdown/index.d.ts.map +1 -0
- package/dist/utils/shutdown/index.js +6 -0
- package/dist/utils/shutdown/index.js.map +1 -0
- package/dist/utils/shutdown/shutdown-manager.d.ts +19 -0
- package/dist/utils/shutdown/shutdown-manager.d.ts.map +1 -0
- package/dist/utils/shutdown/shutdown-manager.js +100 -0
- package/dist/utils/shutdown/shutdown-manager.js.map +1 -0
- package/dist/utils/shutdown/types.d.ts +9 -0
- package/dist/utils/shutdown/types.d.ts.map +1 -0
- package/dist/utils/shutdown/types.js +2 -0
- package/dist/utils/shutdown/types.js.map +1 -0
- package/dist/utils/type-helpers.d.ts +140 -0
- package/dist/utils/type-helpers.d.ts.map +1 -0
- package/dist/utils/type-helpers.js +220 -0
- package/dist/utils/type-helpers.js.map +1 -0
- package/dist/utils/url-utils.d.ts +6 -0
- package/dist/utils/url-utils.d.ts.map +1 -0
- package/dist/utils/url-utils.js +22 -0
- package/dist/utils/url-utils.js.map +1 -0
- package/dist/vscode/vscode-server.d.ts.map +1 -1
- package/dist/vscode/vscode-server.js +10 -0
- package/dist/vscode/vscode-server.js.map +1 -1
- package/dist/wizards/steps/mcp-step.js +1 -1
- package/dist/wizards/steps/mcp-step.js.map +1 -1
- package/dist/wizards/steps/provider-step.js +1 -1
- package/dist/wizards/steps/provider-step.js.map +1 -1
- package/dist/wizards/templates/mcp-templates.d.ts.map +1 -1
- package/dist/wizards/templates/mcp-templates.js +8 -6
- package/dist/wizards/templates/mcp-templates.js.map +1 -1
- package/dist/wizards/templates/provider-templates.d.ts.map +1 -1
- package/dist/wizards/templates/provider-templates.js +35 -2
- package/dist/wizards/templates/provider-templates.js.map +1 -1
- package/dist/wizards/validation.d.ts.map +1 -1
- package/dist/wizards/validation.js +2 -3
- package/dist/wizards/validation.js.map +1 -1
- package/package.json +9 -18
- package/source/app/prompts/main-prompt.md +21 -3
- package/dist/hooks/chat-handler/utils/context-checker.d.ts +0 -15
- package/dist/hooks/chat-handler/utils/context-checker.d.ts.map +0 -1
- package/dist/hooks/chat-handler/utils/context-checker.js +0 -68
- package/dist/hooks/chat-handler/utils/context-checker.js.map +0 -1
- package/dist/tools/string-replace.d.ts +0 -3
- package/dist/tools/string-replace.d.ts.map +0 -1
- package/dist/tools/string-replace.js.map +0 -1
- package/dist/tools/write-file.d.ts +0 -3
- package/dist/tools/write-file.d.ts.map +0 -1
- package/dist/tools/write-file.js.map +0 -1
package/dist/models/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../source/models/index.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../source/models/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,oBAAoB,EACpB,sBAAsB,EACtB,wBAAwB,EACxB,sBAAsB,GACtB,MAAM,wBAAwB,CAAC"}
|
|
@@ -2,9 +2,16 @@
|
|
|
2
2
|
* API client for models.dev
|
|
3
3
|
* Fetches and caches model metadata
|
|
4
4
|
*/
|
|
5
|
+
export declare function setSessionContextLimit(limit: number | null): void;
|
|
6
|
+
export declare function getSessionContextLimit(): number | null;
|
|
7
|
+
export declare function resetSessionContextLimit(): void;
|
|
5
8
|
/**
|
|
6
9
|
* Get context limit for a model
|
|
7
|
-
*
|
|
10
|
+
* Resolution order:
|
|
11
|
+
* 1. Session override (from /context-max command)
|
|
12
|
+
* 2. NANOCODER_CONTEXT_LIMIT env variable
|
|
13
|
+
* 3. models.dev lookup / hardcoded Ollama defaults
|
|
14
|
+
* 4. null (unknown)
|
|
8
15
|
*/
|
|
9
16
|
export declare function getModelContextLimit(modelId: string): Promise<number | null>;
|
|
10
17
|
//# sourceMappingURL=models-dev-client.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"models-dev-client.d.ts","sourceRoot":"","sources":["../../source/models/models-dev-client.ts"],"names":[],"mappings":"AAAA;;;GAGG;
|
|
1
|
+
{"version":3,"file":"models-dev-client.d.ts","sourceRoot":"","sources":["../../source/models/models-dev-client.ts"],"names":[],"mappings":"AAAA;;;GAGG;AA2UH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CAEjE;AAED,wBAAgB,sBAAsB,IAAI,MAAM,GAAG,IAAI,CAEtD;AAED,wBAAgB,wBAAwB,IAAI,IAAI,CAE/C;AAED;;;;;;;GAOG;AACH,wBAAsB,oBAAoB,CACzC,OAAO,EAAE,MAAM,GACb,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CA4DxB"}
|
|
@@ -13,39 +13,31 @@ const MODELS_DEV_API_URL = 'https://models.dev/api.json';
|
|
|
13
13
|
* Used when models.dev doesn't have the model data
|
|
14
14
|
*/
|
|
15
15
|
const OLLAMA_MODEL_CONTEXT_LIMITS = {
|
|
16
|
-
// Llama 3.2 models
|
|
16
|
+
// Llama 3.2 models (not on models.dev)
|
|
17
17
|
'llama3.2': 128000,
|
|
18
18
|
'llama3.2:1b': 128000,
|
|
19
19
|
'llama3.2:3b': 128000,
|
|
20
|
-
// Llama 3.1 models
|
|
20
|
+
// Llama 3.1 models (base matches wrong model on models.dev)
|
|
21
21
|
'llama3.1': 128000,
|
|
22
22
|
'llama3.1:8b': 128000,
|
|
23
23
|
'llama3.1:70b': 128000,
|
|
24
24
|
'llama3.1:405b': 128000,
|
|
25
|
-
// Llama 3 models
|
|
26
|
-
llama3: 8192,
|
|
25
|
+
// Llama 3 models (size variants not on models.dev)
|
|
27
26
|
'llama3:8b': 8192,
|
|
28
27
|
'llama3:70b': 8192,
|
|
29
|
-
// Llama 2 models
|
|
28
|
+
// Llama 2 models (not on models.dev)
|
|
30
29
|
llama2: 4096,
|
|
31
30
|
'llama2:7b': 4096,
|
|
32
31
|
'llama2:13b': 4096,
|
|
33
32
|
'llama2:70b': 4096,
|
|
34
|
-
// Mistral models
|
|
33
|
+
// Mistral models (base matches wrong model on models.dev)
|
|
35
34
|
mistral: 32000,
|
|
36
35
|
'mistral:7b': 32000,
|
|
37
|
-
'mistral-large': 256000,
|
|
38
|
-
mixtral: 32000,
|
|
39
36
|
'mixtral:8x7b': 32000,
|
|
40
37
|
'mixtral:8x22b': 64000,
|
|
41
|
-
ministral: 256000,
|
|
42
38
|
'ministral:3b': 256000,
|
|
43
39
|
'ministral:8b': 256000,
|
|
44
|
-
|
|
45
|
-
'devstral-2': 256000,
|
|
46
|
-
// Essentials AI models
|
|
47
|
-
'rnj-1:8b': 32000,
|
|
48
|
-
// Qwen models
|
|
40
|
+
// Qwen models (base names match wrong models on models.dev)
|
|
49
41
|
qwen: 32000,
|
|
50
42
|
'qwen:7b': 32000,
|
|
51
43
|
'qwen:14b': 32000,
|
|
@@ -57,37 +49,21 @@ const OLLAMA_MODEL_CONTEXT_LIMITS = {
|
|
|
57
49
|
'qwen3:7b': 128000,
|
|
58
50
|
'qwen3:14b': 128000,
|
|
59
51
|
'qwen3:32b': 128000,
|
|
60
|
-
|
|
61
|
-
// Gemma models
|
|
52
|
+
// Gemma models (base matches wrong model on models.dev)
|
|
62
53
|
gemma: 8192,
|
|
63
54
|
'gemma:2b': 8192,
|
|
64
55
|
'gemma:7b': 8192,
|
|
65
|
-
gemma2: 8192,
|
|
66
56
|
'gemma2:9b': 8192,
|
|
67
57
|
'gemma2:27b': 8192,
|
|
68
|
-
//
|
|
69
|
-
'command-r': 128000,
|
|
70
|
-
'command-r-plus': 128000,
|
|
71
|
-
// DeepSeek models
|
|
58
|
+
// DeepSeek models (base matches wrong model on models.dev)
|
|
72
59
|
'deepseek-coder': 16000,
|
|
73
60
|
'deepseek-coder-v2': 128000,
|
|
74
|
-
|
|
75
|
-
'deepseek-v3.2': 128000,
|
|
76
|
-
// Phi models
|
|
61
|
+
// Phi models (not on models.dev)
|
|
77
62
|
phi3: 128000,
|
|
78
63
|
'phi3:mini': 128000,
|
|
79
64
|
'phi3:medium': 128000,
|
|
80
|
-
//
|
|
81
|
-
'gpt-oss:120b': 128000,
|
|
82
|
-
'gpt-oss:20b': 128000,
|
|
83
|
-
// Z.ai models
|
|
84
|
-
'glm-4.7': 200000,
|
|
85
|
-
// Moonshot AI models
|
|
65
|
+
// Moonshot AI models (kimi-for-coding is a provider, not a model ID)
|
|
86
66
|
'kimi-for-coding': 256000,
|
|
87
|
-
'kimi-k2:1t-cloud': 256000,
|
|
88
|
-
'kimi-k2-thinking:cloud': 256000,
|
|
89
|
-
// Cloud models
|
|
90
|
-
'minimax-m2:cloud': 196608,
|
|
91
67
|
};
|
|
92
68
|
/**
|
|
93
69
|
* Extract base model architecture from Ollama model name
|
|
@@ -95,53 +71,23 @@ const OLLAMA_MODEL_CONTEXT_LIMITS = {
|
|
|
95
71
|
*/
|
|
96
72
|
function extractOllamaModelBase(modelName) {
|
|
97
73
|
const lower = modelName.toLowerCase();
|
|
98
|
-
//
|
|
99
|
-
|
|
74
|
+
// Sort keys by length descending so longer/more specific keys match first
|
|
75
|
+
// e.g., "qwen3-coder:480b" matches before "qwen3", "mixtral:8x22b" before "mixtral"
|
|
76
|
+
const sortedKeys = Object.keys(OLLAMA_MODEL_CONTEXT_LIMITS).sort((a, b) => b.length - a.length);
|
|
77
|
+
// Try exact and prefix matches
|
|
78
|
+
for (const key of sortedKeys) {
|
|
100
79
|
if (lower === key ||
|
|
101
80
|
lower.startsWith(`${key}-`) ||
|
|
102
81
|
lower.startsWith(`${key}:`)) {
|
|
103
82
|
return key;
|
|
104
83
|
}
|
|
105
84
|
}
|
|
106
|
-
// Try to match base architecture
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
return 'llama3';
|
|
113
|
-
if (lower.includes('llama2'))
|
|
114
|
-
return 'llama2';
|
|
115
|
-
if (lower.includes('mixtral:8x22b'))
|
|
116
|
-
return 'mixtral:8x22b';
|
|
117
|
-
if (lower.includes('mixtral'))
|
|
118
|
-
return 'mixtral';
|
|
119
|
-
if (lower.includes('ministral'))
|
|
120
|
-
return 'ministral';
|
|
121
|
-
if (lower.includes('mistral-large'))
|
|
122
|
-
return 'mistral-large';
|
|
123
|
-
if (lower.includes('mistral'))
|
|
124
|
-
return 'mistral';
|
|
125
|
-
if (lower.includes('qwen2.5'))
|
|
126
|
-
return 'qwen2.5';
|
|
127
|
-
if (lower.includes('qwen2'))
|
|
128
|
-
return 'qwen2';
|
|
129
|
-
if (lower.includes('qwen'))
|
|
130
|
-
return 'qwen';
|
|
131
|
-
if (lower.includes('gemma2'))
|
|
132
|
-
return 'gemma2';
|
|
133
|
-
if (lower.includes('gemma'))
|
|
134
|
-
return 'gemma';
|
|
135
|
-
if (lower.includes('command-r-plus'))
|
|
136
|
-
return 'command-r-plus';
|
|
137
|
-
if (lower.includes('command-r'))
|
|
138
|
-
return 'command-r';
|
|
139
|
-
if (lower.includes('deepseek-coder-v2'))
|
|
140
|
-
return 'deepseek-coder-v2';
|
|
141
|
-
if (lower.includes('deepseek'))
|
|
142
|
-
return 'deepseek-coder';
|
|
143
|
-
if (lower.includes('phi3'))
|
|
144
|
-
return 'phi3';
|
|
85
|
+
// Try to match base architecture (also sorted by specificity)
|
|
86
|
+
for (const key of sortedKeys) {
|
|
87
|
+
if (lower.includes(key)) {
|
|
88
|
+
return key;
|
|
89
|
+
}
|
|
90
|
+
}
|
|
145
91
|
return null;
|
|
146
92
|
}
|
|
147
93
|
/**
|
|
@@ -245,7 +191,9 @@ async function findModelByName(modelName) {
|
|
|
245
191
|
return null;
|
|
246
192
|
}
|
|
247
193
|
const lowerName = modelName.toLowerCase();
|
|
248
|
-
|
|
194
|
+
let bestMatch = null;
|
|
195
|
+
let bestScore = 0;
|
|
196
|
+
// Search through all providers with scored matching
|
|
249
197
|
for (const [_providerId, provider] of Object.entries(data)) {
|
|
250
198
|
// Skip malformed provider entries
|
|
251
199
|
if (!provider || typeof provider !== 'object' || !provider.models) {
|
|
@@ -256,8 +204,11 @@ async function findModelByName(modelName) {
|
|
|
256
204
|
if (!model || typeof model !== 'object') {
|
|
257
205
|
continue;
|
|
258
206
|
}
|
|
259
|
-
|
|
260
|
-
|
|
207
|
+
const modelIdLower = model.id?.toLowerCase() ?? '';
|
|
208
|
+
const modelNameLower = model.name?.toLowerCase() ?? '';
|
|
209
|
+
let score = 0;
|
|
210
|
+
// Exact ID match → return immediately
|
|
211
|
+
if (modelIdLower === lowerName) {
|
|
261
212
|
return {
|
|
262
213
|
id: model.id,
|
|
263
214
|
name: model.name,
|
|
@@ -271,29 +222,100 @@ async function findModelByName(modelName) {
|
|
|
271
222
|
},
|
|
272
223
|
};
|
|
273
224
|
}
|
|
225
|
+
// ID starts with search term → high score
|
|
226
|
+
if (modelIdLower.startsWith(lowerName)) {
|
|
227
|
+
score = 3;
|
|
228
|
+
}
|
|
229
|
+
// Name starts with search term → medium score
|
|
230
|
+
else if (modelNameLower.startsWith(lowerName)) {
|
|
231
|
+
score = 2;
|
|
232
|
+
}
|
|
233
|
+
// ID or Name contains search term → low score
|
|
234
|
+
else if (modelIdLower.includes(lowerName) ||
|
|
235
|
+
modelNameLower.includes(lowerName)) {
|
|
236
|
+
score = 1;
|
|
237
|
+
}
|
|
238
|
+
if (score > bestScore) {
|
|
239
|
+
bestScore = score;
|
|
240
|
+
bestMatch = {
|
|
241
|
+
id: model.id,
|
|
242
|
+
name: model.name,
|
|
243
|
+
provider: provider.name,
|
|
244
|
+
contextLimit: model.limit?.context ?? null,
|
|
245
|
+
outputLimit: model.limit?.output ?? null,
|
|
246
|
+
supportsToolCalls: model.tool_call ?? false,
|
|
247
|
+
cost: {
|
|
248
|
+
input: model.cost?.input ?? 0,
|
|
249
|
+
output: model.cost?.output ?? 0,
|
|
250
|
+
},
|
|
251
|
+
};
|
|
252
|
+
}
|
|
274
253
|
}
|
|
275
254
|
}
|
|
276
|
-
return
|
|
255
|
+
return bestMatch;
|
|
256
|
+
}
|
|
257
|
+
/**
|
|
258
|
+
* Singleton class for managing session-level context limit overrides.
|
|
259
|
+
* Allows users to manually set a context limit via /context-max command.
|
|
260
|
+
*/
|
|
261
|
+
class ContextLimitSessionManager {
|
|
262
|
+
_contextLimit = null;
|
|
263
|
+
get() {
|
|
264
|
+
return this._contextLimit;
|
|
265
|
+
}
|
|
266
|
+
set(limit) {
|
|
267
|
+
if (limit !== null && limit > 0) {
|
|
268
|
+
this._contextLimit = limit;
|
|
269
|
+
}
|
|
270
|
+
else {
|
|
271
|
+
this._contextLimit = null;
|
|
272
|
+
}
|
|
273
|
+
}
|
|
274
|
+
reset() {
|
|
275
|
+
this._contextLimit = null;
|
|
276
|
+
}
|
|
277
|
+
}
|
|
278
|
+
// Singleton instance
|
|
279
|
+
const contextLimitSession = new ContextLimitSessionManager();
|
|
280
|
+
export function setSessionContextLimit(limit) {
|
|
281
|
+
contextLimitSession.set(limit);
|
|
282
|
+
}
|
|
283
|
+
export function getSessionContextLimit() {
|
|
284
|
+
return contextLimitSession.get();
|
|
285
|
+
}
|
|
286
|
+
export function resetSessionContextLimit() {
|
|
287
|
+
contextLimitSession.reset();
|
|
277
288
|
}
|
|
278
289
|
/**
|
|
279
290
|
* Get context limit for a model
|
|
280
|
-
*
|
|
291
|
+
* Resolution order:
|
|
292
|
+
* 1. Session override (from /context-max command)
|
|
293
|
+
* 2. NANOCODER_CONTEXT_LIMIT env variable
|
|
294
|
+
* 3. models.dev lookup / hardcoded Ollama defaults
|
|
295
|
+
* 4. null (unknown)
|
|
281
296
|
*/
|
|
282
297
|
export async function getModelContextLimit(modelId) {
|
|
283
298
|
try {
|
|
284
|
-
//
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
299
|
+
// Check session override first (highest priority)
|
|
300
|
+
const sessionLimit = contextLimitSession.get();
|
|
301
|
+
if (sessionLimit !== null) {
|
|
302
|
+
return sessionLimit;
|
|
303
|
+
}
|
|
304
|
+
// Check environment variable fallback
|
|
305
|
+
const envLimit = process.env.NANOCODER_CONTEXT_LIMIT;
|
|
306
|
+
if (envLimit) {
|
|
307
|
+
const parsed = Number.parseInt(envLimit, 10);
|
|
308
|
+
if (!Number.isNaN(parsed) && parsed > 0) {
|
|
309
|
+
return parsed;
|
|
310
|
+
}
|
|
289
311
|
}
|
|
290
312
|
// Strip :cloud or -cloud suffix if present (Ollama cloud models)
|
|
291
313
|
const normalizedModelId = modelId.endsWith(':cloud') || modelId.endsWith('-cloud')
|
|
292
314
|
? modelId.slice(0, -6) // Remove ":cloud" or "-cloud"
|
|
293
315
|
: modelId;
|
|
294
|
-
// Try exact ID match first
|
|
316
|
+
// Try models.dev exact ID match first (primary source)
|
|
295
317
|
let modelInfo = await findModelById(normalizedModelId);
|
|
296
|
-
// Try partial name match if exact match fails
|
|
318
|
+
// Try models.dev partial name match if exact match fails
|
|
297
319
|
if (!modelInfo) {
|
|
298
320
|
modelInfo = await findModelByName(normalizedModelId);
|
|
299
321
|
}
|
|
@@ -301,7 +323,13 @@ export async function getModelContextLimit(modelId) {
|
|
|
301
323
|
if (modelInfo) {
|
|
302
324
|
return modelInfo.contextLimit;
|
|
303
325
|
}
|
|
304
|
-
// Fall back to Ollama model defaults
|
|
326
|
+
// Fall back to hardcoded Ollama model defaults (offline fallback)
|
|
327
|
+
// Try original model ID first (handles entries like "kimi-k2:1t-cloud")
|
|
328
|
+
const ollamaLimitOriginal = getOllamaFallbackContextLimit(modelId);
|
|
329
|
+
if (ollamaLimitOriginal) {
|
|
330
|
+
return ollamaLimitOriginal;
|
|
331
|
+
}
|
|
332
|
+
// Try normalized ID (without cloud suffix)
|
|
305
333
|
const ollamaLimit = getOllamaFallbackContextLimit(normalizedModelId);
|
|
306
334
|
if (ollamaLimit) {
|
|
307
335
|
return ollamaLimit;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"models-dev-client.js","sourceRoot":"","sources":["../../source/models/models-dev-client.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAC,OAAO,EAAC,MAAM,QAAQ,CAAC;AAC/B,OAAO,EAAC,oBAAoB,EAAE,uBAAuB,EAAC,MAAM,aAAa,CAAC;AAC1E,OAAO,EAAC,WAAW,EAAC,MAAM,yBAAyB,CAAC;AACpD,OAAO,EAAC,SAAS,EAAC,MAAM,iBAAiB,CAAC;AAC1C,OAAO,EAAC,SAAS,EAAE,UAAU,EAAC,MAAM,mBAAmB,CAAC;AAGxD,MAAM,kBAAkB,GAAG,6BAA6B,CAAC;AAEzD;;;GAGG;AACH,MAAM,2BAA2B,GAA2B;IAC3D,
|
|
1
|
+
{"version":3,"file":"models-dev-client.js","sourceRoot":"","sources":["../../source/models/models-dev-client.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Validates a cron expression.
|
|
3
|
+
* Returns null if valid, or an error message if invalid.
|
|
4
|
+
*/
|
|
5
|
+
export declare function validateCron(expression: string): string | null;
|
|
6
|
+
/**
|
|
7
|
+
* Returns the next run time for a cron expression as a Date, or null if none.
|
|
8
|
+
*/
|
|
9
|
+
export declare function getNextRunTime(expression: string): Date | null;
|
|
10
|
+
/**
|
|
11
|
+
* Formats a cron expression into a human-readable description.
|
|
12
|
+
*/
|
|
13
|
+
export declare function formatCronHuman(expression: string): string;
|
|
14
|
+
//# sourceMappingURL=cron.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cron.d.ts","sourceRoot":"","sources":["../../source/schedule/cron.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,wBAAgB,YAAY,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAQ9D;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CAO9D;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CA2D1D"}
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
import { Cron } from 'croner';
|
|
2
|
+
/**
|
|
3
|
+
* Validates a cron expression.
|
|
4
|
+
* Returns null if valid, or an error message if invalid.
|
|
5
|
+
*/
|
|
6
|
+
export function validateCron(expression) {
|
|
7
|
+
try {
|
|
8
|
+
// Attempt to parse — throws on invalid syntax
|
|
9
|
+
new Cron(expression);
|
|
10
|
+
return null;
|
|
11
|
+
}
|
|
12
|
+
catch (error) {
|
|
13
|
+
return error instanceof Error ? error.message : 'Invalid cron expression';
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Returns the next run time for a cron expression as a Date, or null if none.
|
|
18
|
+
*/
|
|
19
|
+
export function getNextRunTime(expression) {
|
|
20
|
+
try {
|
|
21
|
+
const job = new Cron(expression);
|
|
22
|
+
return job.nextRun() ?? null;
|
|
23
|
+
}
|
|
24
|
+
catch {
|
|
25
|
+
return null;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Formats a cron expression into a human-readable description.
|
|
30
|
+
*/
|
|
31
|
+
export function formatCronHuman(expression) {
|
|
32
|
+
const parts = expression.trim().split(/\s+/);
|
|
33
|
+
if (parts.length < 5)
|
|
34
|
+
return expression;
|
|
35
|
+
const [minute, hour, dayOfMonth, month, dayOfWeek] = parts;
|
|
36
|
+
// Common patterns
|
|
37
|
+
if (minute === '*' &&
|
|
38
|
+
hour === '*' &&
|
|
39
|
+
dayOfMonth === '*' &&
|
|
40
|
+
month === '*' &&
|
|
41
|
+
dayOfWeek === '*') {
|
|
42
|
+
return 'every minute';
|
|
43
|
+
}
|
|
44
|
+
if (minute !== '*' &&
|
|
45
|
+
hour === '*' &&
|
|
46
|
+
dayOfMonth === '*' &&
|
|
47
|
+
month === '*' &&
|
|
48
|
+
dayOfWeek === '*') {
|
|
49
|
+
return `every hour at minute ${minute}`;
|
|
50
|
+
}
|
|
51
|
+
if (minute !== '*' &&
|
|
52
|
+
hour !== '*' &&
|
|
53
|
+
dayOfMonth === '*' &&
|
|
54
|
+
month === '*' &&
|
|
55
|
+
dayOfWeek === '*') {
|
|
56
|
+
return `daily at ${hour}:${minute?.padStart(2, '0')}`;
|
|
57
|
+
}
|
|
58
|
+
if (minute !== '*' &&
|
|
59
|
+
hour !== '*' &&
|
|
60
|
+
dayOfMonth === '*' &&
|
|
61
|
+
month === '*' &&
|
|
62
|
+
dayOfWeek !== '*') {
|
|
63
|
+
const days = formatDayOfWeek(dayOfWeek);
|
|
64
|
+
return `${days} at ${hour}:${minute?.padStart(2, '0')}`;
|
|
65
|
+
}
|
|
66
|
+
if (minute !== '*' &&
|
|
67
|
+
hour !== '*' &&
|
|
68
|
+
dayOfMonth !== '*' &&
|
|
69
|
+
month === '*' &&
|
|
70
|
+
dayOfWeek === '*') {
|
|
71
|
+
return `monthly on day ${dayOfMonth} at ${hour}:${minute?.padStart(2, '0')}`;
|
|
72
|
+
}
|
|
73
|
+
return expression;
|
|
74
|
+
}
|
|
75
|
+
const DAY_NAMES = {
|
|
76
|
+
'0': 'Sun',
|
|
77
|
+
'1': 'Mon',
|
|
78
|
+
'2': 'Tue',
|
|
79
|
+
'3': 'Wed',
|
|
80
|
+
'4': 'Thu',
|
|
81
|
+
'5': 'Fri',
|
|
82
|
+
'6': 'Sat',
|
|
83
|
+
'7': 'Sun',
|
|
84
|
+
SUN: 'Sun',
|
|
85
|
+
MON: 'Mon',
|
|
86
|
+
TUE: 'Tue',
|
|
87
|
+
WED: 'Wed',
|
|
88
|
+
THU: 'Thu',
|
|
89
|
+
FRI: 'Fri',
|
|
90
|
+
SAT: 'Sat',
|
|
91
|
+
};
|
|
92
|
+
function formatDayOfWeek(dow) {
|
|
93
|
+
// Handle ranges like 1-5
|
|
94
|
+
if (dow.includes('-')) {
|
|
95
|
+
const [start, end] = dow.split('-');
|
|
96
|
+
return `${DAY_NAMES[start?.toUpperCase()] ?? start}-${DAY_NAMES[end?.toUpperCase()] ?? end}`;
|
|
97
|
+
}
|
|
98
|
+
// Handle lists like 1,3,5
|
|
99
|
+
if (dow.includes(',')) {
|
|
100
|
+
return dow
|
|
101
|
+
.split(',')
|
|
102
|
+
.map(d => DAY_NAMES[d.toUpperCase()] ?? d)
|
|
103
|
+
.join(', ');
|
|
104
|
+
}
|
|
105
|
+
return DAY_NAMES[dow.toUpperCase()] ?? dow;
|
|
106
|
+
}
|
|
107
|
+
//# sourceMappingURL=cron.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cron.js","sourceRoot":"","sources":["../../source/schedule/cron.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../source/schedule/index.ts"],"names":[],"mappings":"AAAA,cAAc,QAAQ,CAAC;AACvB,cAAc,WAAW,CAAC;AAC1B,cAAc,SAAS,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../source/schedule/index.ts"],"names":[],"mappings":"AAAA,cAAc,QAAQ,CAAC;AACvB,cAAc,WAAW,CAAC;AAC1B,cAAc,SAAS,CAAC"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import type { Schedule, ScheduleRun } from './types.js';
|
|
2
|
+
export interface ScheduleRunnerCallbacks {
|
|
3
|
+
handleMessageSubmit: (message: string) => Promise<void>;
|
|
4
|
+
clearMessages: () => Promise<void>;
|
|
5
|
+
onJobStart: (schedule: Schedule) => void;
|
|
6
|
+
onJobComplete: (schedule: Schedule, run: ScheduleRun) => void;
|
|
7
|
+
onJobError: (schedule: Schedule, error: string) => void;
|
|
8
|
+
waitForConversationComplete: () => Promise<void>;
|
|
9
|
+
}
|
|
10
|
+
export declare class ScheduleRunner {
|
|
11
|
+
private cronJobs;
|
|
12
|
+
private queue;
|
|
13
|
+
private isRunning;
|
|
14
|
+
private isProcessing;
|
|
15
|
+
private callbacks;
|
|
16
|
+
constructor(callbacks: ScheduleRunnerCallbacks);
|
|
17
|
+
/**
|
|
18
|
+
* Start all scheduled cron jobs
|
|
19
|
+
*/
|
|
20
|
+
start(): Promise<void>;
|
|
21
|
+
/**
|
|
22
|
+
* Stop all cron jobs and clear the queue
|
|
23
|
+
*/
|
|
24
|
+
stop(): void;
|
|
25
|
+
/**
|
|
26
|
+
* Get the number of active cron jobs
|
|
27
|
+
*/
|
|
28
|
+
getActiveJobCount(): number;
|
|
29
|
+
/**
|
|
30
|
+
* Get the current queue length
|
|
31
|
+
*/
|
|
32
|
+
getQueueLength(): number;
|
|
33
|
+
/**
|
|
34
|
+
* Check if currently processing a job
|
|
35
|
+
*/
|
|
36
|
+
getIsProcessing(): boolean;
|
|
37
|
+
private registerCronJob;
|
|
38
|
+
private enqueueJob;
|
|
39
|
+
private processQueue;
|
|
40
|
+
private executeJob;
|
|
41
|
+
}
|
|
42
|
+
//# sourceMappingURL=runner.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../source/schedule/runner.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAC,QAAQ,EAAE,WAAW,EAAC,MAAM,SAAS,CAAC;AAEnD,MAAM,WAAW,uBAAuB;IACvC,mBAAmB,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACxD,aAAa,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACnC,UAAU,EAAE,CAAC,QAAQ,EAAE,QAAQ,KAAK,IAAI,CAAC;IACzC,aAAa,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,GAAG,EAAE,WAAW,KAAK,IAAI,CAAC;IAC9D,UAAU,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACxD,2BAA2B,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CACjD;AAED,qBAAa,cAAc;IAC1B,OAAO,CAAC,QAAQ,CAAgC;IAChD,OAAO,CAAC,KAAK,CAAkB;IAC/B,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,SAAS,CAA0B;gBAE/B,SAAS,EAAE,uBAAuB;IAI9C;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAY5B;;OAEG;IACH,IAAI,IAAI,IAAI;IASZ;;OAEG;IACH,iBAAiB,IAAI,MAAM;IAI3B;;OAEG;IACH,cAAc,IAAI,MAAM;IAIxB;;OAEG;IACH,eAAe,IAAI,OAAO;IAI1B,OAAO,CAAC,eAAe;IAOvB,OAAO,CAAC,UAAU;YAOJ,YAAY;YAcZ,UAAU;CAqExB"}
|