gencode-ai 0.1.0 → 0.1.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/.gencode/settings.local.json +7 -0
- package/README.md +20 -102
- package/dist/agent/agent.d.ts +43 -2
- package/dist/agent/agent.d.ts.map +1 -1
- package/dist/agent/agent.js +90 -17
- package/dist/agent/agent.js.map +1 -1
- package/dist/agent/types.d.ts +9 -1
- package/dist/agent/types.d.ts.map +1 -1
- package/dist/cli/components/AllModelsSelector.d.ts +11 -0
- package/dist/cli/components/AllModelsSelector.d.ts.map +1 -0
- package/dist/cli/components/AllModelsSelector.js +153 -0
- package/dist/cli/components/AllModelsSelector.js.map +1 -0
- package/dist/cli/components/App.d.ts +8 -1
- package/dist/cli/components/App.d.ts.map +1 -1
- package/dist/cli/components/App.js +276 -40
- package/dist/cli/components/App.js.map +1 -1
- package/dist/cli/components/CommandSuggestions.d.ts.map +1 -1
- package/dist/cli/components/CommandSuggestions.js +3 -0
- package/dist/cli/components/CommandSuggestions.js.map +1 -1
- package/dist/cli/components/Header.d.ts +1 -1
- package/dist/cli/components/Header.d.ts.map +1 -1
- package/dist/cli/components/Header.js +4 -6
- package/dist/cli/components/Header.js.map +1 -1
- package/dist/cli/components/Logo.d.ts +1 -0
- package/dist/cli/components/Logo.d.ts.map +1 -1
- package/dist/cli/components/Logo.js +16 -3
- package/dist/cli/components/Logo.js.map +1 -1
- package/dist/cli/components/Messages.d.ts +17 -3
- package/dist/cli/components/Messages.d.ts.map +1 -1
- package/dist/cli/components/Messages.js +70 -18
- package/dist/cli/components/Messages.js.map +1 -1
- package/dist/cli/components/ModelSelector.d.ts +7 -7
- package/dist/cli/components/ModelSelector.d.ts.map +1 -1
- package/dist/cli/components/ModelSelector.js +116 -33
- package/dist/cli/components/ModelSelector.js.map +1 -1
- package/dist/cli/components/PermissionPrompt.d.ts +60 -0
- package/dist/cli/components/PermissionPrompt.d.ts.map +1 -0
- package/dist/cli/components/PermissionPrompt.js +192 -0
- package/dist/cli/components/PermissionPrompt.js.map +1 -0
- package/dist/cli/components/ProviderManager.d.ts +8 -0
- package/dist/cli/components/ProviderManager.d.ts.map +1 -0
- package/dist/cli/components/ProviderManager.js +280 -0
- package/dist/cli/components/ProviderManager.js.map +1 -0
- package/dist/cli/components/Spinner.d.ts +7 -2
- package/dist/cli/components/Spinner.d.ts.map +1 -1
- package/dist/cli/components/Spinner.js +116 -25
- package/dist/cli/components/Spinner.js.map +1 -1
- package/dist/cli/components/TodoList.d.ts +7 -0
- package/dist/cli/components/TodoList.d.ts.map +1 -0
- package/dist/cli/components/TodoList.js +34 -0
- package/dist/cli/components/TodoList.js.map +1 -0
- package/dist/cli/components/index.d.ts +1 -0
- package/dist/cli/components/index.d.ts.map +1 -1
- package/dist/cli/components/index.js +1 -0
- package/dist/cli/components/index.js.map +1 -1
- package/dist/cli/components/markdown.d.ts +9 -0
- package/dist/cli/components/markdown.d.ts.map +1 -0
- package/dist/cli/components/markdown.js +129 -0
- package/dist/cli/components/markdown.js.map +1 -0
- package/dist/cli/components/theme.d.ts +5 -0
- package/dist/cli/components/theme.d.ts.map +1 -1
- package/dist/cli/components/theme.js +7 -0
- package/dist/cli/components/theme.js.map +1 -1
- package/dist/cli/index.js +66 -12
- package/dist/cli/index.js.map +1 -1
- package/dist/config/index.d.ts +14 -4
- package/dist/config/index.d.ts.map +1 -1
- package/dist/config/index.js +19 -3
- package/dist/config/index.js.map +1 -1
- package/dist/config/levels.d.ts +49 -0
- package/dist/config/levels.d.ts.map +1 -0
- package/dist/config/levels.js +222 -0
- package/dist/config/levels.js.map +1 -0
- package/dist/config/loader.d.ts +46 -0
- package/dist/config/loader.d.ts.map +1 -0
- package/dist/config/loader.js +153 -0
- package/dist/config/loader.js.map +1 -0
- package/dist/config/manager.d.ts +115 -15
- package/dist/config/manager.d.ts.map +1 -1
- package/dist/config/manager.js +260 -34
- package/dist/config/manager.js.map +1 -1
- package/dist/config/manager.test.d.ts +5 -0
- package/dist/config/manager.test.d.ts.map +1 -0
- package/dist/config/manager.test.js +192 -0
- package/dist/config/manager.test.js.map +1 -0
- package/dist/config/merger.d.ts +56 -0
- package/dist/config/merger.d.ts.map +1 -0
- package/dist/config/merger.js +177 -0
- package/dist/config/merger.js.map +1 -0
- package/dist/config/providers-config.d.ts +28 -0
- package/dist/config/providers-config.d.ts.map +1 -0
- package/dist/config/providers-config.js +79 -0
- package/dist/config/providers-config.js.map +1 -0
- package/dist/config/test-utils.d.ts +24 -0
- package/dist/config/test-utils.d.ts.map +1 -0
- package/dist/config/test-utils.js +55 -0
- package/dist/config/test-utils.js.map +1 -0
- package/dist/config/types.d.ts +108 -9
- package/dist/config/types.d.ts.map +1 -1
- package/dist/config/types.js +53 -2
- package/dist/config/types.js.map +1 -1
- package/dist/memory/import-resolver.d.ts +46 -0
- package/dist/memory/import-resolver.d.ts.map +1 -0
- package/dist/memory/import-resolver.js +117 -0
- package/dist/memory/import-resolver.js.map +1 -0
- package/dist/memory/index.d.ts +7 -6
- package/dist/memory/index.d.ts.map +1 -1
- package/dist/memory/index.js +7 -5
- package/dist/memory/index.js.map +1 -1
- package/dist/memory/init-prompt.d.ts +22 -0
- package/dist/memory/init-prompt.d.ts.map +1 -0
- package/dist/memory/init-prompt.js +103 -0
- package/dist/memory/init-prompt.js.map +1 -0
- package/dist/memory/memory-manager.d.ts +119 -0
- package/dist/memory/memory-manager.d.ts.map +1 -0
- package/dist/memory/memory-manager.js +587 -0
- package/dist/memory/memory-manager.js.map +1 -0
- package/dist/memory/rules-parser.d.ts +38 -0
- package/dist/memory/rules-parser.d.ts.map +1 -0
- package/dist/memory/rules-parser.js +69 -0
- package/dist/memory/rules-parser.js.map +1 -0
- package/dist/memory/test-utils.d.ts +20 -0
- package/dist/memory/test-utils.d.ts.map +1 -0
- package/dist/memory/test-utils.js +44 -0
- package/dist/memory/test-utils.js.map +1 -0
- package/dist/memory/types.d.ts +70 -63
- package/dist/memory/types.d.ts.map +1 -1
- package/dist/memory/types.js +42 -2
- package/dist/memory/types.js.map +1 -1
- package/dist/permissions/audit.d.ts +82 -0
- package/dist/permissions/audit.d.ts.map +1 -0
- package/dist/permissions/audit.js +229 -0
- package/dist/permissions/audit.js.map +1 -0
- package/dist/permissions/index.d.ts +11 -1
- package/dist/permissions/index.d.ts.map +1 -1
- package/dist/permissions/index.js +15 -0
- package/dist/permissions/index.js.map +1 -1
- package/dist/permissions/manager.d.ts +149 -13
- package/dist/permissions/manager.d.ts.map +1 -1
- package/dist/permissions/manager.js +480 -35
- package/dist/permissions/manager.js.map +1 -1
- package/dist/permissions/manager.test.d.ts +5 -0
- package/dist/permissions/manager.test.d.ts.map +1 -0
- package/dist/permissions/manager.test.js +213 -0
- package/dist/permissions/manager.test.js.map +1 -0
- package/dist/permissions/persistence.d.ts +74 -0
- package/dist/permissions/persistence.d.ts.map +1 -0
- package/dist/permissions/persistence.js +248 -0
- package/dist/permissions/persistence.js.map +1 -0
- package/dist/permissions/persistence.test.d.ts +5 -0
- package/dist/permissions/persistence.test.d.ts.map +1 -0
- package/dist/permissions/persistence.test.js +171 -0
- package/dist/permissions/persistence.test.js.map +1 -0
- package/dist/permissions/prompt-matcher.d.ts +64 -0
- package/dist/permissions/prompt-matcher.d.ts.map +1 -0
- package/dist/permissions/prompt-matcher.js +415 -0
- package/dist/permissions/prompt-matcher.js.map +1 -0
- package/dist/permissions/prompt-matcher.test.d.ts +5 -0
- package/dist/permissions/prompt-matcher.test.d.ts.map +1 -0
- package/dist/permissions/prompt-matcher.test.js +107 -0
- package/dist/permissions/prompt-matcher.test.js.map +1 -0
- package/dist/permissions/types.d.ts +157 -0
- package/dist/permissions/types.d.ts.map +1 -1
- package/dist/permissions/types.js +43 -8
- package/dist/permissions/types.js.map +1 -1
- package/dist/prompts/index.d.ts +92 -0
- package/dist/prompts/index.d.ts.map +1 -0
- package/dist/prompts/index.js +241 -0
- package/dist/prompts/index.js.map +1 -0
- package/dist/providers/gemini.d.ts.map +1 -1
- package/dist/providers/gemini.js +14 -3
- package/dist/providers/gemini.js.map +1 -1
- package/dist/providers/index.d.ts +5 -3
- package/dist/providers/index.d.ts.map +1 -1
- package/dist/providers/index.js +13 -1
- package/dist/providers/index.js.map +1 -1
- package/dist/providers/registry.d.ts +66 -0
- package/dist/providers/registry.d.ts.map +1 -0
- package/dist/providers/registry.js +158 -0
- package/dist/providers/registry.js.map +1 -0
- package/dist/providers/search/brave.d.ts +14 -0
- package/dist/providers/search/brave.d.ts.map +1 -0
- package/dist/providers/search/brave.js +87 -0
- package/dist/providers/search/brave.js.map +1 -0
- package/dist/providers/search/exa.d.ts +12 -0
- package/dist/providers/search/exa.d.ts.map +1 -0
- package/dist/providers/search/exa.js +158 -0
- package/dist/providers/search/exa.js.map +1 -0
- package/dist/providers/search/index.d.ts +31 -0
- package/dist/providers/search/index.d.ts.map +1 -0
- package/dist/providers/search/index.js +75 -0
- package/dist/providers/search/index.js.map +1 -0
- package/dist/providers/search/serper.d.ts +14 -0
- package/dist/providers/search/serper.d.ts.map +1 -0
- package/dist/providers/search/serper.js +87 -0
- package/dist/providers/search/serper.js.map +1 -0
- package/dist/providers/search/types.d.ts +21 -0
- package/dist/providers/search/types.d.ts.map +1 -0
- package/dist/providers/search/types.js +5 -0
- package/dist/providers/search/types.js.map +1 -0
- package/dist/providers/store.d.ts +104 -0
- package/dist/providers/store.d.ts.map +1 -0
- package/dist/providers/store.js +171 -0
- package/dist/providers/store.js.map +1 -0
- package/dist/providers/types.d.ts +7 -1
- package/dist/providers/types.d.ts.map +1 -1
- package/dist/providers/vertex-ai.d.ts +33 -0
- package/dist/providers/vertex-ai.d.ts.map +1 -0
- package/dist/providers/vertex-ai.js +407 -0
- package/dist/providers/vertex-ai.js.map +1 -0
- package/dist/tools/builtin/bash.d.ts.map +1 -1
- package/dist/tools/builtin/bash.js +2 -1
- package/dist/tools/builtin/bash.js.map +1 -1
- package/dist/tools/builtin/edit.d.ts.map +1 -1
- package/dist/tools/builtin/edit.js +2 -1
- package/dist/tools/builtin/edit.js.map +1 -1
- package/dist/tools/builtin/glob.d.ts.map +1 -1
- package/dist/tools/builtin/glob.js +2 -1
- package/dist/tools/builtin/glob.js.map +1 -1
- package/dist/tools/builtin/grep.d.ts.map +1 -1
- package/dist/tools/builtin/grep.js +2 -1
- package/dist/tools/builtin/grep.js.map +1 -1
- package/dist/tools/builtin/read.d.ts.map +1 -1
- package/dist/tools/builtin/read.js +2 -1
- package/dist/tools/builtin/read.js.map +1 -1
- package/dist/tools/builtin/todowrite.d.ts +15 -0
- package/dist/tools/builtin/todowrite.d.ts.map +1 -0
- package/dist/tools/builtin/todowrite.js +88 -0
- package/dist/tools/builtin/todowrite.js.map +1 -0
- package/dist/tools/builtin/webfetch.d.ts +20 -0
- package/dist/tools/builtin/webfetch.d.ts.map +1 -0
- package/dist/tools/builtin/webfetch.js +228 -0
- package/dist/tools/builtin/webfetch.js.map +1 -0
- package/dist/tools/builtin/websearch.d.ts +17 -0
- package/dist/tools/builtin/websearch.d.ts.map +1 -0
- package/dist/tools/builtin/websearch.js +87 -0
- package/dist/tools/builtin/websearch.js.map +1 -0
- package/dist/tools/builtin/write.d.ts.map +1 -1
- package/dist/tools/builtin/write.js +2 -1
- package/dist/tools/builtin/write.js.map +1 -1
- package/dist/tools/index.d.ts +18 -0
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +28 -2
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/types.d.ts +41 -0
- package/dist/tools/types.d.ts.map +1 -1
- package/dist/tools/types.js +16 -0
- package/dist/tools/types.js.map +1 -1
- package/dist/tools/utils/ssrf.d.ts +18 -0
- package/dist/tools/utils/ssrf.d.ts.map +1 -0
- package/dist/tools/utils/ssrf.js +70 -0
- package/dist/tools/utils/ssrf.js.map +1 -0
- package/docs/README.md +5 -4
- package/docs/config-system-comparison.md +707 -0
- package/docs/memory-system.md +238 -0
- package/docs/permissions.md +368 -0
- package/docs/proposals/0001-web-fetch-tool.md +32 -2
- package/docs/proposals/0002-web-search-tool.md +59 -2
- package/docs/proposals/0005-todo-system.md +350 -85
- package/docs/proposals/0006-memory-system.md +11 -10
- package/docs/proposals/0012-ask-user-question.md +941 -206
- package/docs/proposals/0023-permission-enhancements.md +61 -2
- package/docs/proposals/0041-configuration-system.md +587 -0
- package/docs/proposals/0042-prompt-optimization.md +866 -0
- package/docs/proposals/README.md +8 -6
- package/docs/providers.md +220 -0
- package/jest.config.js +26 -0
- package/package.json +14 -3
- package/src/agent/agent.ts +120 -18
- package/src/agent/types.ts +9 -1
- package/src/cli/components/App.tsx +369 -47
- package/src/cli/components/CommandSuggestions.tsx +3 -0
- package/src/cli/components/Header.tsx +11 -17
- package/src/cli/components/Logo.tsx +76 -9
- package/src/cli/components/Messages.tsx +146 -38
- package/src/cli/components/ModelSelector.tsx +169 -52
- package/src/cli/components/PermissionPrompt.tsx +388 -0
- package/src/cli/components/ProviderManager.tsx +534 -0
- package/src/cli/components/Spinner.tsx +138 -25
- package/src/cli/components/TodoList.tsx +54 -0
- package/src/cli/components/index.ts +6 -0
- package/src/cli/components/markdown.ts +157 -0
- package/src/cli/components/theme.ts +7 -0
- package/src/cli/index.tsx +76 -13
- package/src/config/index.ts +79 -4
- package/src/config/levels.test.ts +163 -0
- package/src/config/levels.ts +285 -0
- package/src/config/loader.test.ts +120 -0
- package/src/config/loader.ts +178 -0
- package/src/config/manager.test.ts +215 -0
- package/src/config/manager.ts +328 -40
- package/src/config/merger.test.ts +360 -0
- package/src/config/merger.ts +221 -0
- package/src/config/providers-config.ts +85 -0
- package/src/config/test-utils.ts +79 -0
- package/src/config/types.ts +186 -9
- package/src/memory/import-resolver.test.ts +117 -0
- package/src/memory/import-resolver.ts +149 -0
- package/src/memory/index.ts +11 -0
- package/src/memory/init-prompt.ts +113 -0
- package/src/memory/memory-manager.test.ts +198 -0
- package/src/memory/memory-manager.ts +716 -0
- package/src/memory/rules-parser.test.ts +182 -0
- package/src/memory/rules-parser.ts +82 -0
- package/src/memory/test-utils.ts +60 -0
- package/src/memory/types.ts +119 -0
- package/src/permissions/audit.ts +284 -0
- package/src/permissions/index.ts +20 -1
- package/src/permissions/manager.test.ts +260 -0
- package/src/permissions/manager.ts +592 -40
- package/src/permissions/persistence.test.ts +220 -0
- package/src/permissions/persistence.ts +301 -0
- package/src/permissions/prompt-matcher.test.ts +213 -0
- package/src/permissions/prompt-matcher.ts +472 -0
- package/src/permissions/types.ts +236 -8
- package/src/prompts/index.test.ts +279 -0
- package/src/prompts/index.ts +306 -0
- package/src/prompts/system/anthropic.txt +29 -0
- package/src/prompts/system/base.txt +124 -0
- package/src/prompts/system/gemini.txt +35 -0
- package/src/prompts/system/generic.txt +128 -0
- package/src/prompts/system/openai.txt +29 -0
- package/src/prompts/tools/bash.txt +60 -0
- package/src/prompts/tools/edit.txt +29 -0
- package/src/prompts/tools/glob.txt +35 -0
- package/src/prompts/tools/grep.txt +43 -0
- package/src/prompts/tools/read.txt +22 -0
- package/src/prompts/tools/todowrite.txt +71 -0
- package/src/prompts/tools/webfetch.txt +34 -0
- package/src/prompts/tools/websearch.txt +41 -0
- package/src/prompts/tools/write.txt +23 -0
- package/src/providers/gemini.ts +20 -4
- package/src/providers/index.ts +18 -3
- package/src/providers/registry.ts +198 -0
- package/src/providers/search/brave.ts +132 -0
- package/src/providers/search/exa.ts +217 -0
- package/src/providers/search/index.ts +79 -0
- package/src/providers/search/serper.ts +133 -0
- package/src/providers/search/types.ts +24 -0
- package/src/providers/store.ts +216 -0
- package/src/providers/types.ts +9 -1
- package/src/providers/vertex-ai.ts +594 -0
- package/src/tools/builtin/bash.ts +2 -1
- package/src/tools/builtin/edit.ts +2 -1
- package/src/tools/builtin/glob.ts +2 -1
- package/src/tools/builtin/grep.ts +2 -1
- package/src/tools/builtin/read.ts +2 -1
- package/src/tools/builtin/todowrite.ts +102 -0
- package/src/tools/builtin/webfetch.ts +261 -0
- package/src/tools/builtin/websearch.ts +103 -0
- package/src/tools/builtin/write.ts +2 -1
- package/src/tools/index.ts +28 -2
- package/src/tools/types.ts +32 -0
- package/src/tools/utils/ssrf.ts +79 -0
- package/tsconfig.json +1 -1
- package/CLAUDE.md +0 -70
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CommandSuggestions.js","sourceRoot":"","sources":["../../../src/cli/components/CommandSuggestions.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAChC,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAOpC,MAAM,CAAC,MAAM,QAAQ,GAAc;IACjC,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,cAAc,EAAE;IAC/C,EAAE,IAAI,EAAE,WAAW,EAAE,WAAW,EAAE,eAAe,EAAE;IACnD,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,gBAAgB,EAAE;IAClD,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,aAAa,EAAE;IAC5C,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE;IAC9C,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,YAAY,EAAE;IAC7C,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE;IAC9C,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE;IAC3C,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE;IACnD,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,mBAAmB,EAAE;CACtD,CAAC;AAOF,MAAM,UAAU,kBAAkB,CAAC,EAAE,KAAK,EAAE,aAAa,EAA2B;IAClF,iCAAiC;IACjC,MAAM,MAAM,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;IACnC,MAAM,WAAW,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAC1C,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,CAC1C,CAAC;IAEF,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC7B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,CACL,KAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,UAAU,EAAE,CAAC,YACtC,WAAW,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE;YAC1B,MAAM,UAAU,GAAG,CAAC,KAAK,aAAa,CAAC;YACvC,OAAO,CACL,MAAC,GAAG,eACF,KAAC,IAAI,IAAC,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,aAAa,YAC5D,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,GACf,EACP,KAAC,IAAI,IAAC,KAAK,EAAE,MAAM,CAAC,SAAS,YAAG,GAAG,CAAC,WAAW,GAAQ,KAJ/C,GAAG,CAAC,IAAI,CAKZ,CACP,CAAC;QACJ,CAAC,CAAC,GACE,CACP,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,KAAa;IAC/C,MAAM,MAAM,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;IACnC,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC;AAC7E,CAAC"}
|
|
1
|
+
{"version":3,"file":"CommandSuggestions.js","sourceRoot":"","sources":["../../../src/cli/components/CommandSuggestions.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAChC,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAOpC,MAAM,CAAC,MAAM,QAAQ,GAAc;IACjC,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,cAAc,EAAE;IAC/C,EAAE,IAAI,EAAE,WAAW,EAAE,WAAW,EAAE,kBAAkB,EAAE;IACtD,EAAE,IAAI,EAAE,cAAc,EAAE,WAAW,EAAE,uBAAuB,EAAE;IAC9D,EAAE,IAAI,EAAE,oBAAoB,EAAE,WAAW,EAAE,2BAA2B,EAAE;IACxE,EAAE,IAAI,EAAE,WAAW,EAAE,WAAW,EAAE,eAAe,EAAE;IACnD,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,gBAAgB,EAAE;IAClD,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,aAAa,EAAE;IAC5C,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE;IAC9C,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,YAAY,EAAE;IAC7C,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE;IAC9C,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE;IAC3C,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE;IACnD,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,mBAAmB,EAAE;CACtD,CAAC;AAOF,MAAM,UAAU,kBAAkB,CAAC,EAAE,KAAK,EAAE,aAAa,EAA2B;IAClF,iCAAiC;IACjC,MAAM,MAAM,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;IACnC,MAAM,WAAW,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAC1C,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,CAC1C,CAAC;IAEF,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC7B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,CACL,KAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,UAAU,EAAE,CAAC,YACtC,WAAW,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE;YAC1B,MAAM,UAAU,GAAG,CAAC,KAAK,aAAa,CAAC;YACvC,OAAO,CACL,MAAC,GAAG,eACF,KAAC,IAAI,IAAC,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,aAAa,YAC5D,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,GACf,EACP,KAAC,IAAI,IAAC,KAAK,EAAE,MAAM,CAAC,SAAS,YAAG,GAAG,CAAC,WAAW,GAAQ,KAJ/C,GAAG,CAAC,IAAI,CAKZ,CACP,CAAC;QACJ,CAAC,CAAC,GACE,CACP,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,KAAa;IAC/C,MAAM,MAAM,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;IACnC,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC;AAC7E,CAAC"}
|
|
@@ -3,7 +3,7 @@ interface HeaderProps {
|
|
|
3
3
|
model: string;
|
|
4
4
|
cwd: string;
|
|
5
5
|
}
|
|
6
|
-
export declare function Header({
|
|
6
|
+
export declare function Header({ model, cwd }: HeaderProps): import("react/jsx-runtime").JSX.Element;
|
|
7
7
|
export declare function Welcome(): import("react/jsx-runtime").JSX.Element;
|
|
8
8
|
export {};
|
|
9
9
|
//# sourceMappingURL=Header.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Header.d.ts","sourceRoot":"","sources":["../../../src/cli/components/Header.tsx"],"names":[],"mappings":"AAIA,UAAU,WAAW;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;CACb;AAED,wBAAgB,MAAM,CAAC,EAAE,
|
|
1
|
+
{"version":3,"file":"Header.d.ts","sourceRoot":"","sources":["../../../src/cli/components/Header.tsx"],"names":[],"mappings":"AAIA,UAAU,WAAW;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;CACb;AAED,wBAAgB,MAAM,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,WAAW,2CAWjD;AAED,wBAAgB,OAAO,4CAMtB"}
|
|
@@ -1,13 +1,11 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import { Box, Text } from 'ink';
|
|
3
3
|
import { colors } from './theme.js';
|
|
4
|
-
import {
|
|
5
|
-
export function Header({
|
|
6
|
-
|
|
7
|
-
const cwdDisplay = cwd.startsWith(home) ? '~' + cwd.slice(home.length) : cwd;
|
|
8
|
-
return (_jsxs(Box, { flexDirection: "row", marginBottom: 1, marginTop: 1, children: [_jsx(Logo, {}), _jsxs(Box, { flexDirection: "column", marginLeft: 1, children: [_jsxs(Box, { children: [_jsx(Text, { bold: true, color: colors.text, children: "gencode " }), _jsx(Text, { color: colors.textMuted, children: "v0.1.0" })] }), _jsxs(Text, { color: colors.textMuted, children: [model, " \u00B7 API Usage Billing"] }), _jsx(Text, { color: colors.textMuted, children: cwdDisplay })] })] }));
|
|
4
|
+
import { BigLogo } from './Logo.js';
|
|
5
|
+
export function Header({ model, cwd }) {
|
|
6
|
+
return (_jsxs(Box, { flexDirection: "column", marginTop: 1, children: [_jsx(BigLogo, {}), _jsxs(Box, { marginTop: 1, children: [_jsx(Text, { color: colors.textSecondary, children: model }), _jsx(Text, { color: colors.textMuted, children: " \u00B7 " }), _jsx(Text, { color: colors.textMuted, children: cwd })] })] }));
|
|
9
7
|
}
|
|
10
8
|
export function Welcome() {
|
|
11
|
-
return (_jsx(Text, { color: colors.textMuted, children: "
|
|
9
|
+
return (_jsx(Box, { marginTop: 1, children: _jsx(Text, { color: colors.textMuted, children: "? for help \u00B7 Ctrl+C to exit" }) }));
|
|
12
10
|
}
|
|
13
11
|
//# sourceMappingURL=Header.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Header.js","sourceRoot":"","sources":["../../../src/cli/components/Header.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAChC,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AACpC,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"Header.js","sourceRoot":"","sources":["../../../src/cli/components/Header.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAChC,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AACpC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAQpC,MAAM,UAAU,MAAM,CAAC,EAAE,KAAK,EAAE,GAAG,EAAe;IAChD,OAAO,CACL,MAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,SAAS,EAAE,CAAC,aACtC,KAAC,OAAO,KAAG,EACX,MAAC,GAAG,IAAC,SAAS,EAAE,CAAC,aACf,KAAC,IAAI,IAAC,KAAK,EAAE,MAAM,CAAC,aAAa,YAAG,KAAK,GAAQ,EACjD,KAAC,IAAI,IAAC,KAAK,EAAE,MAAM,CAAC,SAAS,yBAAY,EACzC,KAAC,IAAI,IAAC,KAAK,EAAE,MAAM,CAAC,SAAS,YAAG,GAAG,GAAQ,IACvC,IACF,CACP,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,OAAO;IACrB,OAAO,CACL,KAAC,GAAG,IAAC,SAAS,EAAE,CAAC,YACf,KAAC,IAAI,IAAC,KAAK,EAAE,MAAM,CAAC,SAAS,iDAAoC,GAC7D,CACP,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Logo.d.ts","sourceRoot":"","sources":["../../../src/cli/components/Logo.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Logo.d.ts","sourceRoot":"","sources":["../../../src/cli/components/Logo.tsx"],"names":[],"mappings":"AAIA,wBAAgB,IAAI,4CAMnB;AAGD,wBAAgB,OAAO,4CAqEtB"}
|
|
@@ -1,8 +1,21 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import { Box, Text } from 'ink';
|
|
3
|
+
import { colors } from './theme.js';
|
|
4
|
+
// Small G logo for inline use
|
|
3
5
|
export function Logo() {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
6
|
+
return (_jsx(Box, { marginRight: 1, children: _jsx(Text, { bold: true, color: colors.brand, children: "\u25C6" }) }));
|
|
7
|
+
}
|
|
8
|
+
// Large ASCII art logo with elegant gradient
|
|
9
|
+
export function BigLogo() {
|
|
10
|
+
// Indigo gradient - brand colors
|
|
11
|
+
const c1 = '#818CF8'; // Indigo 400
|
|
12
|
+
const c2 = '#818CF8'; // Indigo 400
|
|
13
|
+
const c3 = '#A5B4FC'; // Indigo 300
|
|
14
|
+
const c4 = '#A5B4FC'; // Indigo 300
|
|
15
|
+
const c5 = '#C7D2FE'; // Indigo 200
|
|
16
|
+
const c6 = '#C7D2FE'; // Indigo 200
|
|
17
|
+
const c7 = '#C7D2FE'; // Indigo 200
|
|
18
|
+
// G E N C O D E
|
|
19
|
+
return (_jsxs(Box, { flexDirection: "column", children: [_jsxs(Text, { children: [_jsx(Text, { color: c1, children: " \u2588\u2588\u2588\u2588\u2588\u2588\u2557 " }), _jsx(Text, { color: c2, children: "\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2557" }), _jsx(Text, { color: c3, children: "\u2588\u2588\u2588\u2557 \u2588\u2588\u2557" }), _jsx(Text, { color: c4, children: " \u2588\u2588\u2588\u2588\u2588\u2588\u2557" }), _jsx(Text, { color: c5, children: " \u2588\u2588\u2588\u2588\u2588\u2588\u2557 " }), _jsx(Text, { color: c6, children: "\u2588\u2588\u2588\u2588\u2588\u2588\u2557 " }), _jsx(Text, { color: c7, children: "\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2557" })] }), _jsxs(Text, { children: [_jsx(Text, { color: c1, children: "\u2588\u2588\u2554\u2550\u2550\u2550\u2550\u255D " }), _jsx(Text, { color: c2, children: "\u2588\u2588\u2554\u2550\u2550\u2550\u2550\u255D" }), _jsx(Text, { color: c3, children: "\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2551" }), _jsx(Text, { color: c4, children: "\u2588\u2588\u2554\u2550\u2550\u2550\u2550\u255D" }), _jsx(Text, { color: c5, children: "\u2588\u2588\u2554\u2550\u2550\u2550\u2588\u2588\u2557" }), _jsx(Text, { color: c6, children: "\u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2557" }), _jsx(Text, { color: c7, children: "\u2588\u2588\u2554\u2550\u2550\u2550\u2550\u255D" })] }), _jsxs(Text, { children: [_jsx(Text, { color: c1, children: "\u2588\u2588\u2551 \u2588\u2588\u2588\u2557" }), _jsx(Text, { color: c2, children: "\u2588\u2588\u2588\u2588\u2588\u2557 " }), _jsx(Text, { color: c3, children: "\u2588\u2588\u2554\u2588\u2588\u2557 \u2588\u2588\u2551" }), _jsx(Text, { color: c4, children: "\u2588\u2588\u2551 " }), _jsx(Text, { color: c5, children: "\u2588\u2588\u2551 \u2588\u2588\u2551" }), _jsx(Text, { color: c6, children: "\u2588\u2588\u2551 \u2588\u2588\u2551" }), _jsx(Text, { color: c7, children: "\u2588\u2588\u2588\u2588\u2588\u2557 " })] }), _jsxs(Text, { children: [_jsx(Text, { color: c1, children: "\u2588\u2588\u2551 \u2588\u2588\u2551" }), _jsx(Text, { color: c2, children: "\u2588\u2588\u2554\u2550\u2550\u255D " }), _jsx(Text, { color: c3, children: "\u2588\u2588\u2551\u255A\u2588\u2588\u2557\u2588\u2588\u2551" }), _jsx(Text, { color: c4, children: "\u2588\u2588\u2551 " }), _jsx(Text, { color: c5, children: "\u2588\u2588\u2551 \u2588\u2588\u2551" }), _jsx(Text, { color: c6, children: "\u2588\u2588\u2551 \u2588\u2588\u2551" }), _jsx(Text, { color: c7, children: "\u2588\u2588\u2554\u2550\u2550\u255D " })] }), _jsxs(Text, { children: [_jsx(Text, { color: c1, children: "\u255A\u2588\u2588\u2588\u2588\u2588\u2588\u2554\u255D" }), _jsx(Text, { color: c2, children: "\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2557" }), _jsx(Text, { color: c3, children: "\u2588\u2588\u2551 \u255A\u2588\u2588\u2588\u2588\u2551" }), _jsx(Text, { color: c4, children: "\u255A\u2588\u2588\u2588\u2588\u2588\u2588\u2557" }), _jsx(Text, { color: c5, children: "\u255A\u2588\u2588\u2588\u2588\u2588\u2588\u2554\u255D" }), _jsx(Text, { color: c6, children: "\u2588\u2588\u2588\u2588\u2588\u2588\u2554\u255D" }), _jsx(Text, { color: c7, children: "\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2557" })] }), _jsxs(Text, { children: [_jsx(Text, { color: c1, children: " \u255A\u2550\u2550\u2550\u2550\u2550\u255D " }), _jsx(Text, { color: c2, children: "\u255A\u2550\u2550\u2550\u2550\u2550\u2550\u255D" }), _jsx(Text, { color: c3, children: "\u255A\u2550\u255D \u255A\u2550\u2550\u2550\u255D" }), _jsx(Text, { color: c4, children: " \u255A\u2550\u2550\u2550\u2550\u2550\u255D" }), _jsx(Text, { color: c5, children: " \u255A\u2550\u2550\u2550\u2550\u2550\u255D " }), _jsx(Text, { color: c6, children: "\u255A\u2550\u2550\u2550\u2550\u2550\u255D " }), _jsx(Text, { color: c7, children: "\u255A\u2550\u2550\u2550\u2550\u2550\u2550\u255D" })] })] }));
|
|
7
20
|
}
|
|
8
21
|
//# sourceMappingURL=Logo.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Logo.js","sourceRoot":"","sources":["../../../src/cli/components/Logo.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"Logo.js","sourceRoot":"","sources":["../../../src/cli/components/Logo.tsx"],"names":[],"mappings":"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"}
|
|
@@ -11,13 +11,27 @@ interface ToolCallProps {
|
|
|
11
11
|
name: string;
|
|
12
12
|
input: Record<string, unknown>;
|
|
13
13
|
}
|
|
14
|
-
export declare function ToolCall({ name, input }: ToolCallProps): import("react/jsx-runtime").JSX.Element;
|
|
14
|
+
export declare function ToolCall({ name, input }: ToolCallProps): import("react/jsx-runtime").JSX.Element | null;
|
|
15
|
+
interface PendingToolCallProps {
|
|
16
|
+
name: string;
|
|
17
|
+
input: Record<string, unknown>;
|
|
18
|
+
}
|
|
19
|
+
export declare function PendingToolCall({ name, input }: PendingToolCallProps): import("react/jsx-runtime").JSX.Element | null;
|
|
20
|
+
interface ToolResultMetadata {
|
|
21
|
+
title?: string;
|
|
22
|
+
subtitle?: string;
|
|
23
|
+
size?: number;
|
|
24
|
+
statusCode?: number;
|
|
25
|
+
contentType?: string;
|
|
26
|
+
duration?: number;
|
|
27
|
+
}
|
|
15
28
|
interface ToolResultProps {
|
|
16
29
|
name: string;
|
|
17
30
|
success: boolean;
|
|
18
31
|
output: string;
|
|
32
|
+
metadata?: ToolResultMetadata;
|
|
19
33
|
}
|
|
20
|
-
export declare function ToolResult({ name, success, output }: ToolResultProps): import("react/jsx-runtime").JSX.Element;
|
|
34
|
+
export declare function ToolResult({ name, success, output, metadata }: ToolResultProps): import("react/jsx-runtime").JSX.Element | null;
|
|
21
35
|
interface InfoMessageProps {
|
|
22
36
|
text: string;
|
|
23
37
|
type?: 'info' | 'success' | 'warning' | 'error';
|
|
@@ -27,7 +41,7 @@ export declare function Separator(): import("react/jsx-runtime").JSX.Element;
|
|
|
27
41
|
interface WelcomeMessageProps {
|
|
28
42
|
model: string;
|
|
29
43
|
}
|
|
30
|
-
export declare function WelcomeMessage({ model }: WelcomeMessageProps): import("react/jsx-runtime").JSX.Element;
|
|
44
|
+
export declare function WelcomeMessage({ model: _model }: WelcomeMessageProps): import("react/jsx-runtime").JSX.Element;
|
|
31
45
|
export declare function ShortcutsHint(): import("react/jsx-runtime").JSX.Element;
|
|
32
46
|
interface CompletionMessageProps {
|
|
33
47
|
durationMs: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Messages.d.ts","sourceRoot":"","sources":["../../../src/cli/components/Messages.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Messages.d.ts","sourceRoot":"","sources":["../../../src/cli/components/Messages.tsx"],"names":[],"mappings":"AAkCA,UAAU,gBAAgB;IACxB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,wBAAgB,WAAW,CAAC,EAAE,IAAI,EAAE,EAAE,gBAAgB,2CAerD;AAED,UAAU,qBAAqB;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,wBAAgB,gBAAgB,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,qBAAqB,kDAuC1E;AAED,UAAU,aAAa;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAChC;AA6BD,wBAAgB,QAAQ,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,aAAa,kDAmBtD;AAGD,UAAU,oBAAoB;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAChC;AAED,wBAAgB,eAAe,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,oBAAoB,kDAqBpE;AAED,UAAU,kBAAkB;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,UAAU,eAAe;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,kBAAkB,CAAC;CAC/B;AAED,wBAAgB,UAAU,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,eAAe,kDA6B9E;AAED,UAAU,gBAAgB;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,GAAG,OAAO,CAAC;CACjD;AAED,wBAAgB,WAAW,CAAC,EAAE,IAAI,EAAE,IAAa,EAAE,EAAE,gBAAgB,2CAepE;AAED,wBAAgB,SAAS,4CAGxB;AAED,UAAU,mBAAmB;IAC3B,KAAK,EAAE,MAAM,CAAC;CACf;AAED,wBAAgB,cAAc,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,mBAAmB,2CAMpE;AAED,wBAAgB,aAAa,4CAM5B;AA4BD,UAAU,sBAAsB;IAC9B,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,wBAAgB,iBAAiB,CAAC,EAAE,UAAU,EAAE,EAAE,sBAAsB,2CAUvE"}
|
|
@@ -1,6 +1,10 @@
|
|
|
1
|
-
import { jsxs as _jsxs, jsx as _jsx } from "react/jsx-runtime";
|
|
1
|
+
import { jsxs as _jsxs, jsx as _jsx, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
2
|
import { Box, Text } from 'ink';
|
|
3
|
+
import InkSpinner from 'ink-spinner';
|
|
3
4
|
import { colors, icons } from './theme.js';
|
|
5
|
+
import { renderMarkdown } from './markdown.js';
|
|
6
|
+
// Truncate string with ellipsis
|
|
7
|
+
const truncate = (str, maxLen) => str.length > maxLen ? str.slice(0, maxLen - 3) + '...' : str;
|
|
4
8
|
// Word wrap text to terminal width
|
|
5
9
|
function wrapText(text, width) {
|
|
6
10
|
const lines = [];
|
|
@@ -30,29 +34,77 @@ function wrapText(text, width) {
|
|
|
30
34
|
}
|
|
31
35
|
export function UserMessage({ text }) {
|
|
32
36
|
const lines = text.trimEnd().split('\n');
|
|
33
|
-
|
|
37
|
+
// Subtle gray - ~8% darker than pure white
|
|
38
|
+
const inputBg = '#EFEFEF';
|
|
39
|
+
return (_jsx(Box, { flexDirection: "column", marginTop: 1, marginBottom: 0, children: lines.map((line, i) => (_jsxs(Box, { backgroundColor: inputBg, children: [_jsxs(Text, { color: colors.brand, children: [icons.userPrompt, " "] }), _jsx(Text, { children: line })] }, i))) }));
|
|
34
40
|
}
|
|
35
41
|
export function AssistantMessage({ text, streaming }) {
|
|
36
42
|
if (!text)
|
|
37
43
|
return null;
|
|
38
|
-
//
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
+
// Streaming: use simple text display (markdown incomplete during stream)
|
|
45
|
+
if (streaming) {
|
|
46
|
+
const termWidth = process.stdout.columns || 80;
|
|
47
|
+
const contentWidth = termWidth - 4;
|
|
48
|
+
const lines = wrapText(text.trimEnd(), contentWidth);
|
|
49
|
+
return (_jsx(Box, { flexDirection: "column", marginTop: 1, marginBottom: 0, children: lines.map((line, i) => (_jsxs(Box, { children: [i === 0 && _jsxs(Text, { color: colors.success, children: [icons.assistant, " "] }), i > 0 && _jsx(Text, { children: " " }), _jsxs(Text, { children: [line, i === lines.length - 1 && (_jsx(Text, { color: colors.brandLight, children: icons.cursor }))] })] }, i))) }));
|
|
50
|
+
}
|
|
51
|
+
// Completed: render with markdown
|
|
52
|
+
const rendered = renderMarkdown(text);
|
|
53
|
+
return (_jsx(Box, { flexDirection: "column", marginTop: 1, marginBottom: 0, children: _jsxs(Box, { children: [_jsx(Text, { color: colors.success, children: icons.assistant }), _jsx(Text, { children: " " }), _jsx(Text, { wrap: "wrap", children: rendered })] }) }));
|
|
54
|
+
}
|
|
55
|
+
// Format tool input for display
|
|
56
|
+
function formatToolInput(name, input) {
|
|
57
|
+
switch (name) {
|
|
58
|
+
case 'Read':
|
|
59
|
+
return input.file_path || '';
|
|
60
|
+
case 'Write':
|
|
61
|
+
case 'Edit':
|
|
62
|
+
return input.file_path || '';
|
|
63
|
+
case 'Glob':
|
|
64
|
+
return input.pattern || '';
|
|
65
|
+
case 'Grep':
|
|
66
|
+
return `"${input.pattern}"` + (input.path ? ` in ${input.path}` : '');
|
|
67
|
+
case 'Bash':
|
|
68
|
+
return truncate(input.command || '', 50);
|
|
69
|
+
case 'WebFetch':
|
|
70
|
+
return input.url || '';
|
|
71
|
+
case 'WebSearch':
|
|
72
|
+
return `"${input.query}"` || '';
|
|
73
|
+
case 'TodoWrite': {
|
|
74
|
+
const todos = input.todos || [];
|
|
75
|
+
return `${todos.length} task${todos.length !== 1 ? 's' : ''}`;
|
|
76
|
+
}
|
|
77
|
+
default:
|
|
78
|
+
return truncate(JSON.stringify(input), 40);
|
|
79
|
+
}
|
|
44
80
|
}
|
|
45
81
|
export function ToolCall({ name, input }) {
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
82
|
+
// Hide TodoWrite (shown in TodoList component)
|
|
83
|
+
if (name === 'TodoWrite')
|
|
84
|
+
return null;
|
|
85
|
+
const displayInput = formatToolInput(name, input);
|
|
86
|
+
return (_jsxs(Box, { marginTop: 1, children: [_jsx(Text, { color: colors.tool, children: icons.tool }), _jsx(Text, { children: " " }), _jsx(Text, { bold: true, children: name }), displayInput && (_jsxs(_Fragment, { children: [_jsx(Text, { color: colors.textMuted, children: " " }), _jsx(Text, { color: colors.textSecondary, children: truncate(displayInput, 60) })] }))] }));
|
|
49
87
|
}
|
|
50
|
-
export function
|
|
51
|
-
|
|
52
|
-
|
|
88
|
+
export function PendingToolCall({ name, input }) {
|
|
89
|
+
// Hide TodoWrite (shown in TodoList component)
|
|
90
|
+
if (name === 'TodoWrite')
|
|
91
|
+
return null;
|
|
92
|
+
const displayInput = formatToolInput(name, input);
|
|
93
|
+
return (_jsxs(Box, { marginTop: 1, children: [_jsx(Text, { color: colors.tool, children: _jsx(InkSpinner, { type: "dots" }) }), _jsx(Text, { children: " " }), _jsx(Text, { bold: true, children: name }), displayInput && (_jsxs(_Fragment, { children: [_jsx(Text, { children: " " }), _jsx(Text, { color: colors.textSecondary, children: truncate(displayInput, 60) })] }))] }));
|
|
94
|
+
}
|
|
95
|
+
export function ToolResult({ name, success, output, metadata }) {
|
|
53
96
|
const statusColor = success ? colors.success : colors.error;
|
|
54
|
-
|
|
55
|
-
|
|
97
|
+
// If metadata has subtitle (e.g., "Received 540.3KB (200 OK)"), show it
|
|
98
|
+
if (metadata?.subtitle) {
|
|
99
|
+
return (_jsxs(Box, { marginLeft: 2, children: [_jsx(Text, { color: colors.textMuted, children: icons.treeEnd }), _jsx(Text, { children: " " }), _jsx(Text, { color: statusColor, children: metadata.subtitle })] }));
|
|
100
|
+
}
|
|
101
|
+
// TodoWrite: Don't show result (TodoList component shows the full list)
|
|
102
|
+
if (name === 'TodoWrite') {
|
|
103
|
+
return null;
|
|
104
|
+
}
|
|
105
|
+
// Default: Show first line of output with status icon
|
|
106
|
+
const displayOutput = truncate(output.split('\n')[0]?.trim() || '', 60);
|
|
107
|
+
return (_jsxs(Box, { marginLeft: 2, children: [_jsx(Text, { color: colors.textMuted, children: icons.treeEnd }), _jsx(Text, { children: " " }), _jsx(Text, { color: statusColor, children: displayOutput || (success ? 'Done' : 'Failed') })] }));
|
|
56
108
|
}
|
|
57
109
|
export function InfoMessage({ text, type = 'info' }) {
|
|
58
110
|
const config = {
|
|
@@ -68,8 +120,8 @@ export function Separator() {
|
|
|
68
120
|
const width = process.stdout.columns || 80;
|
|
69
121
|
return _jsx(Text, { color: colors.separator, children: '─'.repeat(width) });
|
|
70
122
|
}
|
|
71
|
-
export function WelcomeMessage({ model }) {
|
|
72
|
-
return (
|
|
123
|
+
export function WelcomeMessage({ model: _model }) {
|
|
124
|
+
return (_jsx(Box, { marginTop: 1, marginBottom: 0, children: _jsx(Text, { color: colors.textMuted, children: "? for help \u00B7 Ctrl+C to exit" }) }));
|
|
73
125
|
}
|
|
74
126
|
export function ShortcutsHint() {
|
|
75
127
|
return (_jsx(Box, { marginTop: 1, children: _jsx(Text, { color: colors.textMuted, children: " ? for shortcuts" }) }));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Messages.js","sourceRoot":"","sources":["../../../src/cli/components/Messages.tsx"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"Messages.js","sourceRoot":"","sources":["../../../src/cli/components/Messages.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
|
|
2
|
-
id: string;
|
|
3
|
-
name: string;
|
|
4
|
-
}
|
|
1
|
+
import type { ProviderName } from '../../providers/index.js';
|
|
5
2
|
interface ModelSelectorProps {
|
|
6
3
|
currentModel: string;
|
|
7
|
-
onSelect: (modelId: string) => void;
|
|
4
|
+
onSelect: (modelId: string, providerId: ProviderName) => void;
|
|
8
5
|
onCancel: () => void;
|
|
9
|
-
listModels: () => Promise<
|
|
6
|
+
listModels: () => Promise<{
|
|
7
|
+
id: string;
|
|
8
|
+
name: string;
|
|
9
|
+
}[]>;
|
|
10
10
|
}
|
|
11
|
-
export declare function ModelSelector({ currentModel, onSelect, onCancel, listModels, }: ModelSelectorProps): import("react/jsx-runtime").JSX.Element
|
|
11
|
+
export declare function ModelSelector({ currentModel, onSelect, onCancel, listModels, }: ModelSelectorProps): import("react/jsx-runtime").JSX.Element;
|
|
12
12
|
export {};
|
|
13
13
|
//# sourceMappingURL=ModelSelector.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ModelSelector.d.ts","sourceRoot":"","sources":["../../../src/cli/components/ModelSelector.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ModelSelector.d.ts","sourceRoot":"","sources":["../../../src/cli/components/ModelSelector.tsx"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAQ7D,UAAU,kBAAkB;IAC1B,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,YAAY,KAAK,IAAI,CAAC;IAC9D,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,UAAU,EAAE,MAAM,OAAO,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC,CAAC;CAC3D;AAED,wBAAgB,aAAa,CAAC,EAC5B,YAAY,EACZ,QAAQ,EACR,QAAQ,EACR,UAAU,GACX,EAAE,kBAAkB,2CA6NpB"}
|
|
@@ -1,36 +1,84 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
/**
|
|
3
|
-
* Model Selector Component - Interactive model selection
|
|
3
|
+
* Model Selector Component - Interactive model selection from cached providers
|
|
4
4
|
*/
|
|
5
|
-
import { useState, useEffect } from 'react';
|
|
5
|
+
import { useState, useEffect, useMemo } from 'react';
|
|
6
6
|
import { Box, Text, useInput } from 'ink';
|
|
7
7
|
import TextInput from 'ink-text-input';
|
|
8
8
|
import { colors, icons } from './theme.js';
|
|
9
9
|
import { LoadingSpinner } from './Spinner.js';
|
|
10
|
+
import { getProviderStore } from '../../providers/store.js';
|
|
11
|
+
import { getProvider } from '../../providers/registry.js';
|
|
10
12
|
export function ModelSelector({ currentModel, onSelect, onCancel, listModels, }) {
|
|
11
|
-
const
|
|
13
|
+
const store = getProviderStore();
|
|
12
14
|
const [loading, setLoading] = useState(true);
|
|
13
|
-
const [error, setError] = useState(null);
|
|
14
15
|
const [filter, setFilter] = useState('');
|
|
15
16
|
const [selectedIndex, setSelectedIndex] = useState(0);
|
|
17
|
+
const [allModels, setAllModels] = useState([]);
|
|
18
|
+
// Load models from cache
|
|
16
19
|
useEffect(() => {
|
|
17
|
-
const
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
20
|
+
const loadModels = async () => {
|
|
21
|
+
const connectedProviders = store.getConnectedProviders();
|
|
22
|
+
const items = [];
|
|
23
|
+
for (const providerId of connectedProviders) {
|
|
24
|
+
const cachedModels = store.getModels(providerId);
|
|
25
|
+
const providerDef = getProvider(providerId);
|
|
26
|
+
const providerName = providerDef?.name || providerId;
|
|
27
|
+
for (const model of cachedModels) {
|
|
28
|
+
items.push({
|
|
29
|
+
providerId,
|
|
30
|
+
providerName,
|
|
31
|
+
model,
|
|
32
|
+
});
|
|
33
|
+
}
|
|
21
34
|
}
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
35
|
+
// If no cached models, fallback to listModels for current provider
|
|
36
|
+
if (items.length === 0) {
|
|
37
|
+
try {
|
|
38
|
+
const models = await listModels();
|
|
39
|
+
for (const model of models) {
|
|
40
|
+
items.push({
|
|
41
|
+
providerId: 'anthropic', // Default, will be overridden
|
|
42
|
+
providerName: 'Current Provider',
|
|
43
|
+
model,
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
catch {
|
|
48
|
+
// Ignore errors
|
|
49
|
+
}
|
|
27
50
|
}
|
|
51
|
+
setAllModels(items);
|
|
52
|
+
setLoading(false);
|
|
28
53
|
};
|
|
29
|
-
|
|
30
|
-
}, [listModels]);
|
|
31
|
-
//
|
|
32
|
-
const
|
|
33
|
-
|
|
54
|
+
loadModels();
|
|
55
|
+
}, [store, listModels]);
|
|
56
|
+
// Filter models
|
|
57
|
+
const filterLower = filter.toLowerCase();
|
|
58
|
+
const filtered = useMemo(() => {
|
|
59
|
+
return allModels.filter((item) => item.model.id.toLowerCase().includes(filterLower) ||
|
|
60
|
+
item.model.name.toLowerCase().includes(filterLower) ||
|
|
61
|
+
item.providerName.toLowerCase().includes(filterLower));
|
|
62
|
+
}, [allModels, filterLower]);
|
|
63
|
+
// Group by provider for display
|
|
64
|
+
const groupedModels = useMemo(() => {
|
|
65
|
+
const groups = {};
|
|
66
|
+
for (const item of filtered) {
|
|
67
|
+
if (!groups[item.providerId]) {
|
|
68
|
+
groups[item.providerId] = [];
|
|
69
|
+
}
|
|
70
|
+
groups[item.providerId].push(item);
|
|
71
|
+
}
|
|
72
|
+
return groups;
|
|
73
|
+
}, [filtered]);
|
|
74
|
+
// Flat list for navigation
|
|
75
|
+
const flatList = useMemo(() => {
|
|
76
|
+
const items = [];
|
|
77
|
+
for (const providerId of Object.keys(groupedModels)) {
|
|
78
|
+
items.push(...groupedModels[providerId]);
|
|
79
|
+
}
|
|
80
|
+
return items;
|
|
81
|
+
}, [groupedModels]);
|
|
34
82
|
// Reset selection when filter changes
|
|
35
83
|
useEffect(() => {
|
|
36
84
|
setSelectedIndex(0);
|
|
@@ -41,11 +89,12 @@ export function ModelSelector({ currentModel, onSelect, onCancel, listModels, })
|
|
|
41
89
|
setSelectedIndex((i) => Math.max(0, i - 1));
|
|
42
90
|
}
|
|
43
91
|
else if (key.downArrow) {
|
|
44
|
-
setSelectedIndex((i) => Math.min(
|
|
92
|
+
setSelectedIndex((i) => Math.min(flatList.length - 1, i + 1));
|
|
45
93
|
}
|
|
46
94
|
else if (key.return) {
|
|
47
|
-
if (
|
|
48
|
-
|
|
95
|
+
if (flatList.length > 0) {
|
|
96
|
+
const selected = flatList[selectedIndex];
|
|
97
|
+
onSelect(selected.model.id, selected.providerId);
|
|
49
98
|
}
|
|
50
99
|
}
|
|
51
100
|
else if (key.escape) {
|
|
@@ -55,18 +104,52 @@ export function ModelSelector({ currentModel, onSelect, onCancel, listModels, })
|
|
|
55
104
|
if (loading) {
|
|
56
105
|
return (_jsxs(Box, { children: [_jsx(LoadingSpinner, {}), _jsx(Text, { color: colors.textMuted, children: " Loading models..." })] }));
|
|
57
106
|
}
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
107
|
+
// Count providers and models
|
|
108
|
+
const providerCount = Object.keys(groupedModels).length;
|
|
109
|
+
const modelCount = flatList.length;
|
|
110
|
+
// Calculate visible window
|
|
111
|
+
const maxVisible = 10;
|
|
112
|
+
const startIndex = Math.max(0, Math.min(selectedIndex - Math.floor(maxVisible / 2), flatList.length - maxVisible));
|
|
113
|
+
const endIndex = Math.min(startIndex + maxVisible, flatList.length);
|
|
114
|
+
// Build visible items with provider headers
|
|
115
|
+
let currentIdx = 0;
|
|
116
|
+
const renderItems = [];
|
|
117
|
+
for (const providerId of Object.keys(groupedModels)) {
|
|
118
|
+
const models = groupedModels[providerId];
|
|
119
|
+
const firstIdx = currentIdx;
|
|
120
|
+
const lastIdx = currentIdx + models.length - 1;
|
|
121
|
+
// Check if any model from this provider is in visible range
|
|
122
|
+
if (lastIdx >= startIndex && firstIdx < endIndex) {
|
|
123
|
+
// Add header if first visible item is from this provider
|
|
124
|
+
const providerDef = getProvider(providerId);
|
|
125
|
+
const connection = store.getConnection(providerId);
|
|
126
|
+
const headerText = `${providerDef?.name || providerId}${connection ? ` (${connection.method})` : ''}:`;
|
|
127
|
+
// Only add header if we're showing models from this provider
|
|
128
|
+
const visibleModelsFromProvider = models.filter((_, i) => {
|
|
129
|
+
const globalIdx = currentIdx + i;
|
|
130
|
+
return globalIdx >= startIndex && globalIdx < endIndex;
|
|
131
|
+
});
|
|
132
|
+
if (visibleModelsFromProvider.length > 0 && (firstIdx >= startIndex || renderItems.length === 0)) {
|
|
133
|
+
renderItems.push({ type: 'header', content: headerText });
|
|
134
|
+
}
|
|
135
|
+
for (let i = 0; i < models.length; i++) {
|
|
136
|
+
const globalIdx = currentIdx + i;
|
|
137
|
+
if (globalIdx >= startIndex && globalIdx < endIndex) {
|
|
138
|
+
renderItems.push({ type: 'model', content: '', item: models[i] });
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
currentIdx += models.length;
|
|
61
143
|
}
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
const
|
|
67
|
-
const
|
|
68
|
-
const
|
|
69
|
-
|
|
70
|
-
|
|
144
|
+
return (_jsxs(Box, { flexDirection: "column", children: [_jsx(Text, { color: colors.primary, bold: true, children: "Select Model" }), _jsxs(Box, { marginTop: 1, children: [_jsxs(Text, { color: colors.textMuted, children: [icons.prompt, " "] }), _jsx(TextInput, { value: filter, onChange: setFilter, placeholder: "Filter models..." })] }), _jsx(Box, { flexDirection: "column", marginTop: 1, children: flatList.length === 0 ? (_jsxs(Box, { flexDirection: "column", children: [_jsx(Text, { color: colors.textMuted, children: "No cached models." }), _jsx(Text, { color: colors.textMuted, children: "Use /provider to connect and cache models." })] })) : (renderItems.map((renderItem, i) => {
|
|
145
|
+
if (renderItem.type === 'header') {
|
|
146
|
+
return (_jsx(Text, { color: colors.textSecondary, children: renderItem.content }, `header-${i}`));
|
|
147
|
+
}
|
|
148
|
+
const item = renderItem.item;
|
|
149
|
+
const globalIndex = flatList.findIndex((f) => f.providerId === item.providerId && f.model.id === item.model.id);
|
|
150
|
+
const isSelected = globalIndex === selectedIndex;
|
|
151
|
+
const isCurrent = item.model.id === currentModel;
|
|
152
|
+
return (_jsxs(Box, { paddingLeft: 2, children: [_jsx(Text, { color: isSelected ? colors.primary : colors.textMuted, children: isSelected ? icons.arrow : ' ' }), _jsx(Text, { color: isCurrent ? colors.primary : colors.textMuted, children: isCurrent ? icons.radio : icons.radioEmpty }), _jsxs(Text, { color: isSelected ? colors.text : colors.textSecondary, bold: isSelected, children: [' ', item.model.name || item.model.id] }), isCurrent && _jsx(Text, { color: colors.success, children: " (current)" })] }, `${item.providerId}-${item.model.id}`));
|
|
153
|
+
})) }), _jsx(Box, { marginTop: 1, children: _jsxs(Text, { color: colors.textMuted, children: [providerCount, " provider", providerCount !== 1 ? 's' : '', " \u00B7 ", modelCount, " model", modelCount !== 1 ? 's' : '', " \u00B7 \u2191\u2193 navigate \u00B7 Enter select \u00B7 Esc cancel"] }) })] }));
|
|
71
154
|
}
|
|
72
155
|
//# sourceMappingURL=ModelSelector.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ModelSelector.js","sourceRoot":"","sources":["../../../src/cli/components/ModelSelector.tsx"],"names":[],"mappings":";AAAA;;GAEG;AACH,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"ModelSelector.js","sourceRoot":"","sources":["../../../src/cli/components/ModelSelector.tsx"],"names":[],"mappings":";AAAA;;GAEG;AACH,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AACrD,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,KAAK,CAAC;AAC1C,OAAO,SAAS,MAAM,gBAAgB,CAAC;AACvC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,gBAAgB,EAAkB,MAAM,0BAA0B,CAAC;AAC5E,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAgB1D,MAAM,UAAU,aAAa,CAAC,EAC5B,YAAY,EACZ,QAAQ,EACR,QAAQ,EACR,UAAU,GACS;IACnB,MAAM,KAAK,GAAG,gBAAgB,EAAE,CAAC;IACjC,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC7C,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;IACzC,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;IACtD,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAc,EAAE,CAAC,CAAC;IAE5D,yBAAyB;IACzB,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,UAAU,GAAG,KAAK,IAAI,EAAE;YAC5B,MAAM,kBAAkB,GAAG,KAAK,CAAC,qBAAqB,EAAE,CAAC;YACzD,MAAM,KAAK,GAAgB,EAAE,CAAC;YAE9B,KAAK,MAAM,UAAU,IAAI,kBAAkB,EAAE,CAAC;gBAC5C,MAAM,YAAY,GAAG,KAAK,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;gBACjD,MAAM,WAAW,GAAG,WAAW,CAAC,UAAU,CAAC,CAAC;gBAC5C,MAAM,YAAY,GAAG,WAAW,EAAE,IAAI,IAAI,UAAU,CAAC;gBAErD,KAAK,MAAM,KAAK,IAAI,YAAY,EAAE,CAAC;oBACjC,KAAK,CAAC,IAAI,CAAC;wBACT,UAAU;wBACV,YAAY;wBACZ,KAAK;qBACN,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;YAED,mEAAmE;YACnE,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACvB,IAAI,CAAC;oBACH,MAAM,MAAM,GAAG,MAAM,UAAU,EAAE,CAAC;oBAClC,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;wBAC3B,KAAK,CAAC,IAAI,CAAC;4BACT,UAAU,EAAE,WAA2B,EAAE,8BAA8B;4BACvE,YAAY,EAAE,kBAAkB;4BAChC,KAAK;yBACN,CAAC,CAAC;oBACL,CAAC;gBACH,CAAC;gBAAC,MAAM,CAAC;oBACP,gBAAgB;gBAClB,CAAC;YACH,CAAC;YAED,YAAY,CAAC,KAAK,CAAC,CAAC;YACpB,UAAU,CAAC,KAAK,CAAC,CAAC;QACpB,CAAC,CAAC;QAEF,UAAU,EAAE,CAAC;IACf,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC;IAExB,gBAAgB;IAChB,MAAM,WAAW,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC;IACzC,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,EAAE;QAC5B,OAAO,SAAS,CAAC,MAAM,CACrB,CAAC,IAAI,EAAE,EAAE,CACP,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC;YACjD,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC;YACnD,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC,CACxD,CAAC;IACJ,CAAC,EAAE,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC,CAAC;IAE7B,gCAAgC;IAChC,MAAM,aAAa,GAAG,OAAO,CAAC,GAAG,EAAE;QACjC,MAAM,MAAM,GAAgC,EAAE,CAAC;QAC/C,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE,CAAC;YAC5B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;gBAC7B,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC;YAC/B,CAAC;YACD,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACrC,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;IAEf,2BAA2B;IAC3B,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,EAAE;QAC5B,MAAM,KAAK,GAAgB,EAAE,CAAC;QAC9B,KAAK,MAAM,UAAU,IAAI,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC;YACpD,KAAK,CAAC,IAAI,CAAC,GAAG,aAAa,CAAC,UAAU,CAAC,CAAC,CAAC;QAC3C,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC;IAEpB,sCAAsC;IACtC,SAAS,CAAC,GAAG,EAAE;QACb,gBAAgB,CAAC,CAAC,CAAC,CAAC;IACtB,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;IAEb,sBAAsB;IACtB,QAAQ,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;QACtB,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;YAChB,gBAAgB,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QAC9C,CAAC;aAAM,IAAI,GAAG,CAAC,SAAS,EAAE,CAAC;YACzB,gBAAgB,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QAChE,CAAC;aAAM,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;YACtB,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACxB,MAAM,QAAQ,GAAG,QAAQ,CAAC,aAAa,CAAC,CAAC;gBACzC,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,EAAE,QAAQ,CAAC,UAAU,CAAC,CAAC;YACnD,CAAC;QACH,CAAC;aAAM,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;YACtB,QAAQ,EAAE,CAAC;QACb,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,IAAI,OAAO,EAAE,CAAC;QACZ,OAAO,CACL,MAAC,GAAG,eACF,KAAC,cAAc,KAAG,EAClB,KAAC,IAAI,IAAC,KAAK,EAAE,MAAM,CAAC,SAAS,mCAA2B,IACpD,CACP,CAAC;IACJ,CAAC;IAED,6BAA6B;IAC7B,MAAM,aAAa,GAAG,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,MAAM,CAAC;IACxD,MAAM,UAAU,GAAG,QAAQ,CAAC,MAAM,CAAC;IAEnC,2BAA2B;IAC3B,MAAM,UAAU,GAAG,EAAE,CAAC;IACtB,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CACzB,CAAC,EACD,IAAI,CAAC,GAAG,CAAC,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,CAAC,CAAC,EAAE,QAAQ,CAAC,MAAM,GAAG,UAAU,CAAC,CACnF,CAAC;IACF,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,GAAG,UAAU,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;IAEpE,4CAA4C;IAC5C,IAAI,UAAU,GAAG,CAAC,CAAC;IACnB,MAAM,WAAW,GAA2E,EAAE,CAAC;IAE/F,KAAK,MAAM,UAAU,IAAI,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC;QACpD,MAAM,MAAM,GAAG,aAAa,CAAC,UAAU,CAAC,CAAC;QACzC,MAAM,QAAQ,GAAG,UAAU,CAAC;QAC5B,MAAM,OAAO,GAAG,UAAU,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;QAE/C,4DAA4D;QAC5D,IAAI,OAAO,IAAI,UAAU,IAAI,QAAQ,GAAG,QAAQ,EAAE,CAAC;YACjD,yDAAyD;YACzD,MAAM,WAAW,GAAG,WAAW,CAAC,UAA0B,CAAC,CAAC;YAC5D,MAAM,UAAU,GAAG,KAAK,CAAC,aAAa,CAAC,UAA0B,CAAC,CAAC;YACnE,MAAM,UAAU,GAAG,GAAG,WAAW,EAAE,IAAI,IAAI,UAAU,GAAG,UAAU,CAAC,CAAC,CAAC,KAAK,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC;YAEvG,6DAA6D;YAC7D,MAAM,yBAAyB,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;gBACvD,MAAM,SAAS,GAAG,UAAU,GAAG,CAAC,CAAC;gBACjC,OAAO,SAAS,IAAI,UAAU,IAAI,SAAS,GAAG,QAAQ,CAAC;YACzD,CAAC,CAAC,CAAC;YAEH,IAAI,yBAAyB,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,QAAQ,IAAI,UAAU,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,CAAC,EAAE,CAAC;gBACjG,WAAW,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC,CAAC;YAC5D,CAAC;YAED,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBACvC,MAAM,SAAS,GAAG,UAAU,GAAG,CAAC,CAAC;gBACjC,IAAI,SAAS,IAAI,UAAU,IAAI,SAAS,GAAG,QAAQ,EAAE,CAAC;oBACpD,WAAW,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gBACpE,CAAC;YACH,CAAC;QACH,CAAC;QAED,UAAU,IAAI,MAAM,CAAC,MAAM,CAAC;IAC9B,CAAC;IAED,OAAO,CACL,MAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,aACzB,KAAC,IAAI,IAAC,KAAK,EAAE,MAAM,CAAC,OAAO,EAAE,IAAI,mCAE1B,EAEP,MAAC,GAAG,IAAC,SAAS,EAAE,CAAC,aACf,MAAC,IAAI,IAAC,KAAK,EAAE,MAAM,CAAC,SAAS,aAAG,KAAK,CAAC,MAAM,SAAS,EACrD,KAAC,SAAS,IAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAW,EAAC,kBAAkB,GAAG,IAC5E,EAEN,KAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,SAAS,EAAE,CAAC,YACrC,QAAQ,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CACvB,MAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,aACzB,KAAC,IAAI,IAAC,KAAK,EAAE,MAAM,CAAC,SAAS,kCAA0B,EACvD,KAAC,IAAI,IAAC,KAAK,EAAE,MAAM,CAAC,SAAS,2DAAmD,IAC5E,CACP,CAAC,CAAC,CAAC,CACF,WAAW,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,CAAC,EAAE,EAAE;oBAChC,IAAI,UAAU,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;wBACjC,OAAO,CACL,KAAC,IAAI,IAAqB,KAAK,EAAE,MAAM,CAAC,aAAa,YAClD,UAAU,CAAC,OAAO,IADV,UAAU,CAAC,EAAE,CAEjB,CACR,CAAC;oBACJ,CAAC;oBAED,MAAM,IAAI,GAAG,UAAU,CAAC,IAAK,CAAC;oBAC9B,MAAM,WAAW,GAAG,QAAQ,CAAC,SAAS,CACpC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,KAAK,IAAI,CAAC,UAAU,IAAI,CAAC,CAAC,KAAK,CAAC,EAAE,KAAK,IAAI,CAAC,KAAK,CAAC,EAAE,CACxE,CAAC;oBACF,MAAM,UAAU,GAAG,WAAW,KAAK,aAAa,CAAC;oBACjD,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,KAAK,YAAY,CAAC;oBAEjD,OAAO,CACL,MAAC,GAAG,IAA6C,WAAW,EAAE,CAAC,aAC7D,KAAC,IAAI,IAAC,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,YACxD,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,GAC1B,EACP,KAAC,IAAI,IAAC,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,YACvD,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,GACtC,EACP,MAAC,IAAI,IAAC,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,aAAa,EAAE,IAAI,EAAE,UAAU,aAC3E,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,EAAE,IACjC,EACN,SAAS,IAAI,KAAC,IAAI,IAAC,KAAK,EAAE,MAAM,CAAC,OAAO,2BAAmB,KAVpD,GAAG,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,CAWzC,CACP,CAAC;gBACJ,CAAC,CAAC,CACH,GACG,EAEN,KAAC,GAAG,IAAC,SAAS,EAAE,CAAC,YACf,MAAC,IAAI,IAAC,KAAK,EAAE,MAAM,CAAC,SAAS,aAC1B,aAAa,eAAW,aAAa,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,cAAK,UAAU,YACrE,UAAU,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,2EACvB,GACH,IACF,CACP,CAAC;AACJ,CAAC"}
|