tianxincode 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +201 -0
- package/README.md +57 -0
- package/dist/api/api.types.d.ts +350 -0
- package/dist/api/api.types.d.ts.map +1 -0
- package/dist/api/api.types.js +12 -0
- package/dist/api/api.types.js.map +1 -0
- package/dist/api/chat.routes.d.ts +26 -0
- package/dist/api/chat.routes.d.ts.map +1 -0
- package/dist/api/chat.routes.js +275 -0
- package/dist/api/chat.routes.js.map +1 -0
- package/dist/api/config.routes.d.ts +10 -0
- package/dist/api/config.routes.d.ts.map +1 -0
- package/dist/api/config.routes.js +150 -0
- package/dist/api/config.routes.js.map +1 -0
- package/dist/api/db.routes.d.ts +12 -0
- package/dist/api/db.routes.d.ts.map +1 -0
- package/dist/api/db.routes.js +108 -0
- package/dist/api/db.routes.js.map +1 -0
- package/dist/api/files.routes.d.ts +14 -0
- package/dist/api/files.routes.d.ts.map +1 -0
- package/dist/api/files.routes.js +220 -0
- package/dist/api/files.routes.js.map +1 -0
- package/dist/api/filesystem.routes.d.ts +10 -0
- package/dist/api/filesystem.routes.d.ts.map +1 -0
- package/dist/api/filesystem.routes.js +181 -0
- package/dist/api/filesystem.routes.js.map +1 -0
- package/dist/api/index.d.ts +6 -0
- package/dist/api/index.d.ts.map +1 -0
- package/dist/api/index.js +25 -0
- package/dist/api/index.js.map +1 -0
- package/dist/api/lsp.d.ts +5 -0
- package/dist/api/lsp.d.ts.map +1 -0
- package/dist/api/lsp.js +103 -0
- package/dist/api/lsp.js.map +1 -0
- package/dist/api/projects.routes.d.ts +18 -0
- package/dist/api/projects.routes.d.ts.map +1 -0
- package/dist/api/projects.routes.js +306 -0
- package/dist/api/projects.routes.js.map +1 -0
- package/dist/api/session.routes.d.ts +18 -0
- package/dist/api/session.routes.d.ts.map +1 -0
- package/dist/api/session.routes.js +186 -0
- package/dist/api/session.routes.js.map +1 -0
- package/dist/api/skills.routes.d.ts +6 -0
- package/dist/api/skills.routes.d.ts.map +1 -0
- package/dist/api/skills.routes.js +54 -0
- package/dist/api/skills.routes.js.map +1 -0
- package/dist/cli/args.d.ts +49 -0
- package/dist/cli/args.d.ts.map +1 -0
- package/dist/cli/args.js +77 -0
- package/dist/cli/args.js.map +1 -0
- package/dist/cli/cli.types.d.ts +22 -0
- package/dist/cli/cli.types.d.ts.map +1 -0
- package/dist/cli/cli.types.js +5 -0
- package/dist/cli/cli.types.js.map +1 -0
- package/dist/cli/commands.d.ts +30 -0
- package/dist/cli/commands.d.ts.map +1 -0
- package/dist/cli/commands.js +263 -0
- package/dist/cli/commands.js.map +1 -0
- package/dist/cli/index.d.ts +7 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +6 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/components/App.d.ts +34 -0
- package/dist/components/App.d.ts.map +1 -0
- package/dist/components/App.js +639 -0
- package/dist/components/App.js.map +1 -0
- package/dist/config/index.d.ts +2 -0
- package/dist/config/index.d.ts.map +1 -0
- package/dist/config/index.js +2 -0
- package/dist/config/index.js.map +1 -0
- package/dist/config/tx.config.d.ts +31 -0
- package/dist/config/tx.config.d.ts.map +1 -0
- package/dist/config/tx.config.js +29 -0
- package/dist/config/tx.config.js.map +1 -0
- package/dist/index.d.ts +15 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +79 -0
- package/dist/index.js.map +1 -0
- package/dist/lsp/client.d.ts +55 -0
- package/dist/lsp/client.d.ts.map +1 -0
- package/dist/lsp/client.js +252 -0
- package/dist/lsp/client.js.map +1 -0
- package/dist/lsp/downloader.d.ts +17 -0
- package/dist/lsp/downloader.d.ts.map +1 -0
- package/dist/lsp/downloader.js +302 -0
- package/dist/lsp/downloader.js.map +1 -0
- package/dist/lsp/index.d.ts +13 -0
- package/dist/lsp/index.d.ts.map +1 -0
- package/dist/lsp/index.js +30 -0
- package/dist/lsp/index.js.map +1 -0
- package/dist/lsp/launch.d.ts +17 -0
- package/dist/lsp/launch.d.ts.map +1 -0
- package/dist/lsp/launch.js +69 -0
- package/dist/lsp/launch.js.map +1 -0
- package/dist/lsp/manager.d.ts +19 -0
- package/dist/lsp/manager.d.ts.map +1 -0
- package/dist/lsp/manager.js +251 -0
- package/dist/lsp/manager.js.map +1 -0
- package/dist/lsp/server.d.ts +11 -0
- package/dist/lsp/server.d.ts.map +1 -0
- package/dist/lsp/server.js +302 -0
- package/dist/lsp/server.js.map +1 -0
- package/dist/lsp/sql.d.ts +11 -0
- package/dist/lsp/sql.d.ts.map +1 -0
- package/dist/lsp/sql.js +23 -0
- package/dist/lsp/sql.js.map +1 -0
- package/dist/lsp/types.d.ts +58 -0
- package/dist/lsp/types.d.ts.map +1 -0
- package/dist/lsp/types.js +13 -0
- package/dist/lsp/types.js.map +1 -0
- package/dist/modules/ai/ai.service.d.ts +182 -0
- package/dist/modules/ai/ai.service.d.ts.map +1 -0
- package/dist/modules/ai/ai.service.js +280 -0
- package/dist/modules/ai/ai.service.js.map +1 -0
- package/dist/modules/ai/ai.types.d.ts +54 -0
- package/dist/modules/ai/ai.types.d.ts.map +1 -0
- package/dist/modules/ai/ai.types.js +2 -0
- package/dist/modules/ai/ai.types.js.map +1 -0
- package/dist/modules/ai/index.d.ts +6 -0
- package/dist/modules/ai/index.d.ts.map +1 -0
- package/dist/modules/ai/index.js +5 -0
- package/dist/modules/ai/index.js.map +1 -0
- package/dist/modules/ai/openai.provider.d.ts +138 -0
- package/dist/modules/ai/openai.provider.d.ts.map +1 -0
- package/dist/modules/ai/openai.provider.js +279 -0
- package/dist/modules/ai/openai.provider.js.map +1 -0
- package/dist/modules/ai/react/index.d.ts +5 -0
- package/dist/modules/ai/react/index.d.ts.map +1 -0
- package/dist/modules/ai/react/index.js +4 -0
- package/dist/modules/ai/react/index.js.map +1 -0
- package/dist/modules/ai/react/prompt/role.txt +51 -0
- package/dist/modules/ai/react/react.parser.d.ts +75 -0
- package/dist/modules/ai/react/react.parser.d.ts.map +1 -0
- package/dist/modules/ai/react/react.parser.js +278 -0
- package/dist/modules/ai/react/react.parser.js.map +1 -0
- package/dist/modules/ai/react/react.prompts.d.ts +26 -0
- package/dist/modules/ai/react/react.prompts.d.ts.map +1 -0
- package/dist/modules/ai/react/react.prompts.js +180 -0
- package/dist/modules/ai/react/react.prompts.js.map +1 -0
- package/dist/modules/ai/react/react.types.d.ts +47 -0
- package/dist/modules/ai/react/react.types.d.ts.map +1 -0
- package/dist/modules/ai/react/react.types.js +2 -0
- package/dist/modules/ai/react/react.types.js.map +1 -0
- package/dist/modules/ai/react.agent.d.ts +40 -0
- package/dist/modules/ai/react.agent.d.ts.map +1 -0
- package/dist/modules/ai/react.agent.js +136 -0
- package/dist/modules/ai/react.agent.js.map +1 -0
- package/dist/modules/ai/summarizer/index.d.ts +4 -0
- package/dist/modules/ai/summarizer/index.d.ts.map +1 -0
- package/dist/modules/ai/summarizer/index.js +3 -0
- package/dist/modules/ai/summarizer/index.js.map +1 -0
- package/dist/modules/ai/summarizer/summarizer.prompts.d.ts +15 -0
- package/dist/modules/ai/summarizer/summarizer.prompts.d.ts.map +1 -0
- package/dist/modules/ai/summarizer/summarizer.prompts.js +47 -0
- package/dist/modules/ai/summarizer/summarizer.prompts.js.map +1 -0
- package/dist/modules/ai/summarizer/summarizer.service.d.ts +24 -0
- package/dist/modules/ai/summarizer/summarizer.service.d.ts.map +1 -0
- package/dist/modules/ai/summarizer/summarizer.service.js +153 -0
- package/dist/modules/ai/summarizer/summarizer.service.js.map +1 -0
- package/dist/modules/ai/summarizer/summarizer.types.d.ts +21 -0
- package/dist/modules/ai/summarizer/summarizer.types.d.ts.map +1 -0
- package/dist/modules/ai/summarizer/summarizer.types.js +5 -0
- package/dist/modules/ai/summarizer/summarizer.types.js.map +1 -0
- package/dist/modules/config/config.service.d.ts +32 -0
- package/dist/modules/config/config.service.d.ts.map +1 -0
- package/dist/modules/config/config.service.js +163 -0
- package/dist/modules/config/config.service.js.map +1 -0
- package/dist/modules/config/config.types.d.ts +44 -0
- package/dist/modules/config/config.types.d.ts.map +1 -0
- package/dist/modules/config/config.types.js +21 -0
- package/dist/modules/config/config.types.js.map +1 -0
- package/dist/modules/config/index.d.ts +10 -0
- package/dist/modules/config/index.d.ts.map +1 -0
- package/dist/modules/config/index.js +10 -0
- package/dist/modules/config/index.js.map +1 -0
- package/dist/modules/context/context.service.d.ts +46 -0
- package/dist/modules/context/context.service.d.ts.map +1 -0
- package/dist/modules/context/context.service.js +216 -0
- package/dist/modules/context/context.service.js.map +1 -0
- package/dist/modules/context/context.types.d.ts +30 -0
- package/dist/modules/context/context.types.d.ts.map +1 -0
- package/dist/modules/context/context.types.js +5 -0
- package/dist/modules/context/context.types.js.map +1 -0
- package/dist/modules/context/index.d.ts +10 -0
- package/dist/modules/context/index.d.ts.map +1 -0
- package/dist/modules/context/index.js +10 -0
- package/dist/modules/context/index.js.map +1 -0
- package/dist/modules/db/db.service.d.ts +97 -0
- package/dist/modules/db/db.service.d.ts.map +1 -0
- package/dist/modules/db/db.service.js +387 -0
- package/dist/modules/db/db.service.js.map +1 -0
- package/dist/modules/db/db.types.d.ts +8 -0
- package/dist/modules/db/db.types.d.ts.map +1 -0
- package/dist/modules/db/db.types.js +7 -0
- package/dist/modules/db/db.types.js.map +1 -0
- package/dist/modules/db/index.d.ts +10 -0
- package/dist/modules/db/index.d.ts.map +1 -0
- package/dist/modules/db/index.js +9 -0
- package/dist/modules/db/index.js.map +1 -0
- package/dist/modules/logger/index.d.ts +2 -0
- package/dist/modules/logger/index.d.ts.map +1 -0
- package/dist/modules/logger/index.js +2 -0
- package/dist/modules/logger/index.js.map +1 -0
- package/dist/modules/logger/logger.d.ts +26 -0
- package/dist/modules/logger/logger.d.ts.map +1 -0
- package/dist/modules/logger/logger.js +57 -0
- package/dist/modules/logger/logger.js.map +1 -0
- package/dist/modules/memory/index.d.ts +9 -0
- package/dist/modules/memory/index.d.ts.map +1 -0
- package/dist/modules/memory/index.js +9 -0
- package/dist/modules/memory/index.js.map +1 -0
- package/dist/modules/memory/memory.service.d.ts +191 -0
- package/dist/modules/memory/memory.service.d.ts.map +1 -0
- package/dist/modules/memory/memory.service.js +282 -0
- package/dist/modules/memory/memory.service.js.map +1 -0
- package/dist/modules/memory/memory.types.d.ts +13 -0
- package/dist/modules/memory/memory.types.d.ts.map +1 -0
- package/dist/modules/memory/memory.types.js +5 -0
- package/dist/modules/memory/memory.types.js.map +1 -0
- package/dist/modules/session/index.d.ts +9 -0
- package/dist/modules/session/index.d.ts.map +1 -0
- package/dist/modules/session/index.js +9 -0
- package/dist/modules/session/index.js.map +1 -0
- package/dist/modules/session/session.service.d.ts +252 -0
- package/dist/modules/session/session.service.d.ts.map +1 -0
- package/dist/modules/session/session.service.js +406 -0
- package/dist/modules/session/session.service.js.map +1 -0
- package/dist/modules/session/session.types.d.ts +34 -0
- package/dist/modules/session/session.types.d.ts.map +1 -0
- package/dist/modules/session/session.types.js +5 -0
- package/dist/modules/session/session.types.js.map +1 -0
- package/dist/modules/skill/index.d.ts +8 -0
- package/dist/modules/skill/index.d.ts.map +1 -0
- package/dist/modules/skill/index.js +7 -0
- package/dist/modules/skill/index.js.map +1 -0
- package/dist/modules/skill/skill.service.d.ts +72 -0
- package/dist/modules/skill/skill.service.d.ts.map +1 -0
- package/dist/modules/skill/skill.service.js +283 -0
- package/dist/modules/skill/skill.service.js.map +1 -0
- package/dist/modules/skill/skill.tool.d.ts +19 -0
- package/dist/modules/skill/skill.tool.d.ts.map +1 -0
- package/dist/modules/skill/skill.tool.js +92 -0
- package/dist/modules/skill/skill.tool.js.map +1 -0
- package/dist/modules/skill/skill.txt +18 -0
- package/dist/modules/skill/skill.types.d.ts +40 -0
- package/dist/modules/skill/skill.types.d.ts.map +1 -0
- package/dist/modules/skill/skill.types.js +6 -0
- package/dist/modules/skill/skill.types.js.map +1 -0
- package/dist/modules/skill/skills.manager.d.ts +30 -0
- package/dist/modules/skill/skills.manager.d.ts.map +1 -0
- package/dist/modules/skill/skills.manager.js +182 -0
- package/dist/modules/skill/skills.manager.js.map +1 -0
- package/dist/modules/tools/builtin/bash.d.ts +3 -0
- package/dist/modules/tools/builtin/bash.d.ts.map +1 -0
- package/dist/modules/tools/builtin/bash.js +124 -0
- package/dist/modules/tools/builtin/bash.js.map +1 -0
- package/dist/modules/tools/builtin/bash.tool.d.ts +6 -0
- package/dist/modules/tools/builtin/bash.tool.d.ts.map +1 -0
- package/dist/modules/tools/builtin/bash.tool.js +52 -0
- package/dist/modules/tools/builtin/bash.tool.js.map +1 -0
- package/dist/modules/tools/builtin/bash.txt +81 -0
- package/dist/modules/tools/builtin/code_search.d.ts +3 -0
- package/dist/modules/tools/builtin/code_search.d.ts.map +1 -0
- package/dist/modules/tools/builtin/code_search.js +85 -0
- package/dist/modules/tools/builtin/code_search.js.map +1 -0
- package/dist/modules/tools/builtin/code_search.txt +18 -0
- package/dist/modules/tools/builtin/edit-file.tool.d.ts +6 -0
- package/dist/modules/tools/builtin/edit-file.tool.d.ts.map +1 -0
- package/dist/modules/tools/builtin/edit-file.tool.js +58 -0
- package/dist/modules/tools/builtin/edit-file.tool.js.map +1 -0
- package/dist/modules/tools/builtin/edit_file.d.ts +3 -0
- package/dist/modules/tools/builtin/edit_file.d.ts.map +1 -0
- package/dist/modules/tools/builtin/edit_file.js +69 -0
- package/dist/modules/tools/builtin/edit_file.js.map +1 -0
- package/dist/modules/tools/builtin/edit_file.txt +10 -0
- package/dist/modules/tools/builtin/glob.d.ts +3 -0
- package/dist/modules/tools/builtin/glob.d.ts.map +1 -0
- package/dist/modules/tools/builtin/glob.js +84 -0
- package/dist/modules/tools/builtin/glob.js.map +1 -0
- package/dist/modules/tools/builtin/glob.tool.d.ts +6 -0
- package/dist/modules/tools/builtin/glob.tool.d.ts.map +1 -0
- package/dist/modules/tools/builtin/glob.tool.js +81 -0
- package/dist/modules/tools/builtin/glob.tool.js.map +1 -0
- package/dist/modules/tools/builtin/glob.txt +10 -0
- package/dist/modules/tools/builtin/grep.d.ts +3 -0
- package/dist/modules/tools/builtin/grep.d.ts.map +1 -0
- package/dist/modules/tools/builtin/grep.js +93 -0
- package/dist/modules/tools/builtin/grep.js.map +1 -0
- package/dist/modules/tools/builtin/grep.tool.d.ts +6 -0
- package/dist/modules/tools/builtin/grep.tool.d.ts.map +1 -0
- package/dist/modules/tools/builtin/grep.tool.js +96 -0
- package/dist/modules/tools/builtin/grep.tool.js.map +1 -0
- package/dist/modules/tools/builtin/grep.txt +12 -0
- package/dist/modules/tools/builtin/index.d.ts +8 -0
- package/dist/modules/tools/builtin/index.d.ts.map +1 -0
- package/dist/modules/tools/builtin/index.js +88 -0
- package/dist/modules/tools/builtin/index.js.map +1 -0
- package/dist/modules/tools/builtin/lsp.d.ts +7 -0
- package/dist/modules/tools/builtin/lsp.d.ts.map +1 -0
- package/dist/modules/tools/builtin/lsp.js +125 -0
- package/dist/modules/tools/builtin/lsp.js.map +1 -0
- package/dist/modules/tools/builtin/lsp.txt +19 -0
- package/dist/modules/tools/builtin/memory.d.ts +3 -0
- package/dist/modules/tools/builtin/memory.d.ts.map +1 -0
- package/dist/modules/tools/builtin/memory.js +76 -0
- package/dist/modules/tools/builtin/memory.js.map +1 -0
- package/dist/modules/tools/builtin/memory.txt +36 -0
- package/dist/modules/tools/builtin/read-file.tool.d.ts +6 -0
- package/dist/modules/tools/builtin/read-file.tool.d.ts.map +1 -0
- package/dist/modules/tools/builtin/read-file.tool.js +46 -0
- package/dist/modules/tools/builtin/read-file.tool.js.map +1 -0
- package/dist/modules/tools/builtin/read_file.d.ts +3 -0
- package/dist/modules/tools/builtin/read_file.d.ts.map +1 -0
- package/dist/modules/tools/builtin/read_file.js +99 -0
- package/dist/modules/tools/builtin/read_file.js.map +1 -0
- package/dist/modules/tools/builtin/read_file.txt +15 -0
- package/dist/modules/tools/builtin/todo_read.d.ts +6 -0
- package/dist/modules/tools/builtin/todo_read.d.ts.map +1 -0
- package/dist/modules/tools/builtin/todo_read.js +24 -0
- package/dist/modules/tools/builtin/todo_read.js.map +1 -0
- package/dist/modules/tools/builtin/todo_read.txt +14 -0
- package/dist/modules/tools/builtin/todo_write.d.ts +6 -0
- package/dist/modules/tools/builtin/todo_write.d.ts.map +1 -0
- package/dist/modules/tools/builtin/todo_write.js +45 -0
- package/dist/modules/tools/builtin/todo_write.js.map +1 -0
- package/dist/modules/tools/builtin/todo_write.txt +46 -0
- package/dist/modules/tools/builtin/web_fetch.d.ts +3 -0
- package/dist/modules/tools/builtin/web_fetch.d.ts.map +1 -0
- package/dist/modules/tools/builtin/web_fetch.js +51 -0
- package/dist/modules/tools/builtin/web_fetch.js.map +1 -0
- package/dist/modules/tools/builtin/web_fetch.txt +15 -0
- package/dist/modules/tools/builtin/web_search.d.ts +3 -0
- package/dist/modules/tools/builtin/web_search.d.ts.map +1 -0
- package/dist/modules/tools/builtin/web_search.js +99 -0
- package/dist/modules/tools/builtin/web_search.js.map +1 -0
- package/dist/modules/tools/builtin/web_search.txt +16 -0
- package/dist/modules/tools/builtin/write-file.tool.d.ts +6 -0
- package/dist/modules/tools/builtin/write-file.tool.d.ts.map +1 -0
- package/dist/modules/tools/builtin/write-file.tool.js +38 -0
- package/dist/modules/tools/builtin/write-file.tool.js.map +1 -0
- package/dist/modules/tools/builtin/write_file.d.ts +3 -0
- package/dist/modules/tools/builtin/write_file.d.ts.map +1 -0
- package/dist/modules/tools/builtin/write_file.js +46 -0
- package/dist/modules/tools/builtin/write_file.js.map +1 -0
- package/dist/modules/tools/builtin/write_file.txt +9 -0
- package/dist/modules/tools/index.d.ts +11 -0
- package/dist/modules/tools/index.d.ts.map +1 -0
- package/dist/modules/tools/index.js +10 -0
- package/dist/modules/tools/index.js.map +1 -0
- package/dist/modules/tools/tool.service.d.ts +207 -0
- package/dist/modules/tools/tool.service.d.ts.map +1 -0
- package/dist/modules/tools/tool.service.js +331 -0
- package/dist/modules/tools/tool.service.js.map +1 -0
- package/dist/modules/tools/tool.types.d.ts +39 -0
- package/dist/modules/tools/tool.types.d.ts.map +1 -0
- package/dist/modules/tools/tool.types.js +5 -0
- package/dist/modules/tools/tool.types.js.map +1 -0
- package/dist/web/index.d.ts +10 -0
- package/dist/web/index.d.ts.map +1 -0
- package/dist/web/index.js +20 -0
- package/dist/web/index.js.map +1 -0
- package/dist/web/web.service.d.ts +95 -0
- package/dist/web/web.service.d.ts.map +1 -0
- package/dist/web/web.service.js +396 -0
- package/dist/web/web.service.js.map +1 -0
- package/package.json +57 -0
- package/web/dist/assets/Layout-Bb76CGAL.js +1 -0
- package/web/dist/assets/element-icons-B-tDfklg.woff +0 -0
- package/web/dist/assets/element-icons-_lZGOqcG.ttf +0 -0
- package/web/dist/assets/index-DQRR0ggU.js +199 -0
- package/web/dist/assets/index-KTH-myBB.css +1 -0
- package/web/dist/index.html +14 -0
- package/web/index.html +13 -0
- package/web/package.json +24 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"App.js","sourceRoot":"","sources":["../../src/components/App.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,KAAK,QAAQ,EAAE,MAAM,gBAAgB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,MAAM,EAAiB,MAAM,gBAAgB,CAAC"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* TxCode 全局配置文件
|
|
3
|
+
* 此文件定义了 TxCode 项目的全局配置接口和默认配置
|
|
4
|
+
* 主要用于控制应用程序的基本行为,如调试模式和日志记录
|
|
5
|
+
*/
|
|
6
|
+
export interface ContextConfig {
|
|
7
|
+
mode: 'fixed' | 'percentage';
|
|
8
|
+
maxTokens: number;
|
|
9
|
+
percentage: number;
|
|
10
|
+
autoCompact: boolean;
|
|
11
|
+
}
|
|
12
|
+
export interface TxConfig {
|
|
13
|
+
debug: boolean;
|
|
14
|
+
log: {
|
|
15
|
+
enabled: boolean;
|
|
16
|
+
dir: string;
|
|
17
|
+
accessLog: string;
|
|
18
|
+
};
|
|
19
|
+
maxToolIterations: number;
|
|
20
|
+
ai: {
|
|
21
|
+
maxContextTokens: number;
|
|
22
|
+
context: ContextConfig;
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* TxCode 默认配置
|
|
27
|
+
* 这是应用程序的默认配置,可以在运行时通过其他方式覆盖
|
|
28
|
+
*/
|
|
29
|
+
declare const config: TxConfig;
|
|
30
|
+
export default config;
|
|
31
|
+
//# sourceMappingURL=tx.config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tx.config.d.ts","sourceRoot":"","sources":["../../src/config/tx.config.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,OAAO,GAAG,YAAY,CAAC;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,OAAO,CAAC;CACtB;AAED,MAAM,WAAW,QAAQ;IACvB,KAAK,EAAE,OAAO,CAAC;IAEf,GAAG,EAAE;QACH,OAAO,EAAE,OAAO,CAAC;QACjB,GAAG,EAAE,MAAM,CAAC;QACZ,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;IAEF,iBAAiB,EAAE,MAAM,CAAC;IAE1B,EAAE,EAAE;QACF,gBAAgB,EAAE,MAAM,CAAC;QACzB,OAAO,EAAE,aAAa,CAAC;KACxB,CAAC;CACH;AAED;;;GAGG;AACH,QAAA,MAAM,MAAM,EAAE,QAoBb,CAAC;AAEF,eAAe,MAAM,CAAC"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* TxCode 全局配置文件
|
|
3
|
+
* 此文件定义了 TxCode 项目的全局配置接口和默认配置
|
|
4
|
+
* 主要用于控制应用程序的基本行为,如调试模式和日志记录
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* TxCode 默认配置
|
|
8
|
+
* 这是应用程序的默认配置,可以在运行时通过其他方式覆盖
|
|
9
|
+
*/
|
|
10
|
+
const config = {
|
|
11
|
+
debug: true,
|
|
12
|
+
log: {
|
|
13
|
+
enabled: true,
|
|
14
|
+
dir: 'log',
|
|
15
|
+
accessLog: 'access.log',
|
|
16
|
+
},
|
|
17
|
+
maxToolIterations: 50,
|
|
18
|
+
ai: {
|
|
19
|
+
maxContextTokens: 100000,
|
|
20
|
+
context: {
|
|
21
|
+
mode: 'fixed',
|
|
22
|
+
maxTokens: 100000,
|
|
23
|
+
percentage: 0.95,
|
|
24
|
+
autoCompact: true,
|
|
25
|
+
},
|
|
26
|
+
},
|
|
27
|
+
};
|
|
28
|
+
export default config;
|
|
29
|
+
//# sourceMappingURL=tx.config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tx.config.js","sourceRoot":"","sources":["../../src/config/tx.config.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AA0BH;;;GAGG;AACH,MAAM,MAAM,GAAa;IACvB,KAAK,EAAE,IAAI;IAEX,GAAG,EAAE;QACH,OAAO,EAAE,IAAI;QACb,GAAG,EAAE,KAAK;QACV,SAAS,EAAE,YAAY;KACxB;IAED,iBAAiB,EAAE,EAAE;IAErB,EAAE,EAAE;QACF,gBAAgB,EAAE,MAAM;QACxB,OAAO,EAAE;YACP,IAAI,EAAE,OAAO;YACb,SAAS,EAAE,MAAM;YACjB,UAAU,EAAE,IAAI;YAChB,WAAW,EAAE,IAAI;SAClB;KACF;CACF,CAAC;AAEF,eAAe,MAAM,CAAC"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* TXCode - AI Coding Assistant
|
|
4
|
+
*
|
|
5
|
+
* 主入口文件
|
|
6
|
+
* - CLI 模式:使用 Ink 渲染 React 组件,实现终端交互界面
|
|
7
|
+
* - Web 模式:启动 Express 服务,提供 Web API 和前端界面
|
|
8
|
+
*
|
|
9
|
+
* 使用方式:
|
|
10
|
+
* npm run dev -> 启动 CLI 交互模式
|
|
11
|
+
* npm run dev web -> 启动 Web 服务
|
|
12
|
+
* npm run dev web --port 40001 -> 指定端口启动 Web 服务
|
|
13
|
+
*/
|
|
14
|
+
export {};
|
|
15
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA;;;;;;;;;;;GAWG"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* TXCode - AI Coding Assistant
|
|
4
|
+
*
|
|
5
|
+
* 主入口文件
|
|
6
|
+
* - CLI 模式:使用 Ink 渲染 React 组件,实现终端交互界面
|
|
7
|
+
* - Web 模式:启动 Express 服务,提供 Web API 和前端界面
|
|
8
|
+
*
|
|
9
|
+
* 使用方式:
|
|
10
|
+
* npm run dev -> 启动 CLI 交互模式
|
|
11
|
+
* npm run dev web -> 启动 Web 服务
|
|
12
|
+
* npm run dev web --port 40001 -> 指定端口启动 Web 服务
|
|
13
|
+
*/
|
|
14
|
+
import { parseArgs } from './cli/args.js';
|
|
15
|
+
/**
|
|
16
|
+
* 程序主入口函数
|
|
17
|
+
*
|
|
18
|
+
* 执行流程:
|
|
19
|
+
* 1. 解析命令行参数 (parseArgs)
|
|
20
|
+
* 2. 根据参数判断启动模式:
|
|
21
|
+
* - 'web' -> 启动 Web 服务 (Express)
|
|
22
|
+
* - 其他 -> 启动 CLI 终端界面 (Ink + React)
|
|
23
|
+
*
|
|
24
|
+
* @returns {Promise<void>} 程序异步执行完成
|
|
25
|
+
*/
|
|
26
|
+
async function main() {
|
|
27
|
+
const args = parseArgs(process.argv);
|
|
28
|
+
if (args.command === 'web') {
|
|
29
|
+
const net = await import('net');
|
|
30
|
+
async function findAvailablePort(port) {
|
|
31
|
+
return new Promise((resolve) => {
|
|
32
|
+
const server = net.createServer();
|
|
33
|
+
server.listen(port, () => {
|
|
34
|
+
server.close(() => resolve(port));
|
|
35
|
+
});
|
|
36
|
+
server.on('error', async () => {
|
|
37
|
+
const nextPort = await findAvailablePort(port + 1);
|
|
38
|
+
resolve(nextPort);
|
|
39
|
+
});
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
const availablePort = await findAvailablePort(args.port);
|
|
43
|
+
if (availablePort !== args.port) {
|
|
44
|
+
console.log(`端口 ${args.port} 被占用,使用端口 ${availablePort}`);
|
|
45
|
+
}
|
|
46
|
+
const { WebService } = await import('./web/web.service.js');
|
|
47
|
+
const webService = new WebService(availablePort);
|
|
48
|
+
await webService.start();
|
|
49
|
+
}
|
|
50
|
+
else {
|
|
51
|
+
/**
|
|
52
|
+
* CLI 模式:启动终端交互界面
|
|
53
|
+
*
|
|
54
|
+
* 使用 Ink 库渲染 React 组件到终端
|
|
55
|
+
* Ink 是一个类似 React 的库,但渲染目标是终端而不是浏览器
|
|
56
|
+
*
|
|
57
|
+
* 执行内容:
|
|
58
|
+
* 1. 动态导入 Ink 的 render 函数
|
|
59
|
+
* 2. 动态导入 React (Ink 依赖 React)
|
|
60
|
+
* 3. 动态导入 App 主组件
|
|
61
|
+
* 4. 使用 render() 渲染 App 组件到终端
|
|
62
|
+
*
|
|
63
|
+
* App 组件功能:
|
|
64
|
+
* - 接收用户键盘输入
|
|
65
|
+
* - 显示聊天消息历史
|
|
66
|
+
* - 处理命令 (/help, /model 等)
|
|
67
|
+
* - 调用 AI 服务处理用户问题
|
|
68
|
+
* - 显示 AI 思考过程和工具调用
|
|
69
|
+
*/
|
|
70
|
+
const { render } = await import('ink');
|
|
71
|
+
const React = await import('react');
|
|
72
|
+
const { App } = await import('./components/App.js');
|
|
73
|
+
render(React.createElement(App));
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
// ========== 程序入口 ==========
|
|
77
|
+
// 捕获并打印未处理的异常,防止进程崩溃
|
|
78
|
+
main().catch(console.error);
|
|
79
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAE1C;;;;;;;;;;GAUG;AACH,KAAK,UAAU,IAAI;IACjB,MAAM,IAAI,GAAG,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAErC,IAAI,IAAI,CAAC,OAAO,KAAK,KAAK,EAAE,CAAC;QAC3B,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC,CAAC;QAEhC,KAAK,UAAU,iBAAiB,CAAC,IAAY;YAC3C,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;gBAC7B,MAAM,MAAM,GAAG,GAAG,CAAC,YAAY,EAAE,CAAC;gBAClC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,EAAE;oBACvB,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;gBACpC,CAAC,CAAC,CAAC;gBACH,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,KAAK,IAAI,EAAE;oBAC5B,MAAM,QAAQ,GAAG,MAAM,iBAAiB,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC;oBACnD,OAAO,CAAC,QAAQ,CAAC,CAAC;gBACpB,CAAC,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;QACL,CAAC;QAED,MAAM,aAAa,GAAG,MAAM,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACzD,IAAI,aAAa,KAAK,IAAI,CAAC,IAAI,EAAE,CAAC;YAChC,OAAO,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,IAAI,aAAa,aAAa,EAAE,CAAC,CAAC;QAC3D,CAAC;QAED,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,MAAM,CAAC,sBAAsB,CAAC,CAAC;QAC5D,MAAM,UAAU,GAAG,IAAI,UAAU,CAAC,aAAa,CAAC,CAAC;QACjD,MAAM,UAAU,CAAC,KAAK,EAAE,CAAC;IAC3B,CAAC;SAAM,CAAC;QACN;;;;;;;;;;;;;;;;;;WAkBG;QACH,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC,CAAC;QACvC,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,CAAC;QACpC,MAAM,EAAE,GAAG,EAAE,GAAG,MAAM,MAAM,CAAC,qBAAqB,CAAC,CAAC;QACpD,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC;IACnC,CAAC;AACH,CAAC;AAED,6BAA6B;AAC7B,qBAAqB;AACrB,IAAI,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* LSP 客户端实现
|
|
3
|
+
*
|
|
4
|
+
* 基于 stdio 的 JSON-RPC 通信
|
|
5
|
+
*/
|
|
6
|
+
import { EventEmitter } from "events";
|
|
7
|
+
import { LSPServerInfo } from "./types.js";
|
|
8
|
+
export declare class LSPClient extends EventEmitter {
|
|
9
|
+
private serverId;
|
|
10
|
+
private process;
|
|
11
|
+
private cleanupFn;
|
|
12
|
+
private pendingRequests;
|
|
13
|
+
private messageBuffer;
|
|
14
|
+
private requestId;
|
|
15
|
+
private initialized;
|
|
16
|
+
private rootPath;
|
|
17
|
+
constructor(serverId: string);
|
|
18
|
+
connect(serverInfo: LSPServerInfo, rootPath: string, command: string, args?: string[]): Promise<boolean>;
|
|
19
|
+
private handleData;
|
|
20
|
+
private handleMessage;
|
|
21
|
+
private send;
|
|
22
|
+
private sendRequest;
|
|
23
|
+
private sendNotification;
|
|
24
|
+
private initialize;
|
|
25
|
+
shutdown(): Promise<void>;
|
|
26
|
+
disconnect(): void;
|
|
27
|
+
isConnected(): boolean;
|
|
28
|
+
gotoDefinition(uri: string, position: {
|
|
29
|
+
line: number;
|
|
30
|
+
character: number;
|
|
31
|
+
}): Promise<unknown>;
|
|
32
|
+
findReferences(uri: string, position: {
|
|
33
|
+
line: number;
|
|
34
|
+
character: number;
|
|
35
|
+
}): Promise<unknown>;
|
|
36
|
+
hover(uri: string, position: {
|
|
37
|
+
line: number;
|
|
38
|
+
character: number;
|
|
39
|
+
}): Promise<unknown>;
|
|
40
|
+
documentSymbol(uri: string): Promise<unknown>;
|
|
41
|
+
workspaceSymbol(query: string): Promise<unknown>;
|
|
42
|
+
gotoImplementation(uri: string, position: {
|
|
43
|
+
line: number;
|
|
44
|
+
character: number;
|
|
45
|
+
}): Promise<unknown>;
|
|
46
|
+
callHierarchy(uri: string, position: {
|
|
47
|
+
line: number;
|
|
48
|
+
character: number;
|
|
49
|
+
}): Promise<unknown>;
|
|
50
|
+
didOpenTextDocument(uri: string, languageId: string, content: string): void;
|
|
51
|
+
didChangeTextDocument(uri: string, content: string, version?: number): void;
|
|
52
|
+
didCloseTextDocument(uri: string): void;
|
|
53
|
+
}
|
|
54
|
+
export declare function createClient(serverId: string): LSPClient;
|
|
55
|
+
//# sourceMappingURL=client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/lsp/client.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAEtC,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAgB3C,qBAAa,SAAU,SAAQ,YAAY;IACzC,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,OAAO,CAA6B;IAC5C,OAAO,CAAC,SAAS,CAA6B;IAC9C,OAAO,CAAC,eAAe,CAAmD;IAC1E,OAAO,CAAC,aAAa,CAAc;IACnC,OAAO,CAAC,SAAS,CAAa;IAC9B,OAAO,CAAC,WAAW,CAAkB;IACrC,OAAO,CAAC,QAAQ,CAAc;gBAElB,QAAQ,EAAE,MAAM;IAKtB,OAAO,CACX,UAAU,EAAE,aAAa,EACzB,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,EACf,IAAI,GAAE,MAAM,EAAO,GAClB,OAAO,CAAC,OAAO,CAAC;IA2BnB,OAAO,CAAC,UAAU;IAmBlB,OAAO,CAAC,aAAa;IAerB,OAAO,CAAC,IAAI;YAOE,WAAW;IAsBzB,OAAO,CAAC,gBAAgB;YAQV,UAAU;IA+DlB,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAY/B,UAAU,IAAI,IAAI;IAQlB,WAAW,IAAI,OAAO;IAIhB,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE;IAOzE,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE;IAQzE,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE;IAOhE,cAAc,CAAC,GAAG,EAAE,MAAM;IAM1B,eAAe,CAAC,KAAK,EAAE,MAAM;IAM7B,kBAAkB,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE;IAO7E,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE;IAO9E,mBAAmB,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;IAWpE,qBAAqB,CACnB,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,MAAU;IAQrB,oBAAoB,CAAC,GAAG,EAAE,MAAM;CAKjC;AAED,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,CAExD"}
|
|
@@ -0,0 +1,252 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* LSP 客户端实现
|
|
3
|
+
*
|
|
4
|
+
* 基于 stdio 的 JSON-RPC 通信
|
|
5
|
+
*/
|
|
6
|
+
import { EventEmitter } from "events";
|
|
7
|
+
import { launchProcess } from "./launch.js";
|
|
8
|
+
export class LSPClient extends EventEmitter {
|
|
9
|
+
constructor(serverId) {
|
|
10
|
+
super();
|
|
11
|
+
this.process = null;
|
|
12
|
+
this.cleanupFn = null;
|
|
13
|
+
this.pendingRequests = new Map();
|
|
14
|
+
this.messageBuffer = "";
|
|
15
|
+
this.requestId = 0;
|
|
16
|
+
this.initialized = false;
|
|
17
|
+
this.rootPath = "";
|
|
18
|
+
this.serverId = serverId;
|
|
19
|
+
}
|
|
20
|
+
async connect(serverInfo, rootPath, command, args = []) {
|
|
21
|
+
this.rootPath = rootPath;
|
|
22
|
+
const { process: proc, cleanup } = launchProcess({
|
|
23
|
+
command,
|
|
24
|
+
args,
|
|
25
|
+
cwd: rootPath,
|
|
26
|
+
});
|
|
27
|
+
this.process = proc;
|
|
28
|
+
this.cleanupFn = cleanup;
|
|
29
|
+
this.process.stdout?.on("data", (data) => {
|
|
30
|
+
this.handleData(data.toString());
|
|
31
|
+
});
|
|
32
|
+
this.process.stderr?.on("data", (data) => {
|
|
33
|
+
this.emit("error", data.toString());
|
|
34
|
+
});
|
|
35
|
+
this.process.on("close", (code) => {
|
|
36
|
+
this.emit("close", code);
|
|
37
|
+
});
|
|
38
|
+
return this.initialize();
|
|
39
|
+
}
|
|
40
|
+
handleData(data) {
|
|
41
|
+
this.messageBuffer += data;
|
|
42
|
+
while (this.messageBuffer.includes("\n")) {
|
|
43
|
+
const newlineIndex = this.messageBuffer.indexOf("\n");
|
|
44
|
+
const message = this.messageBuffer.slice(0, newlineIndex);
|
|
45
|
+
this.messageBuffer = this.messageBuffer.slice(newlineIndex + 1);
|
|
46
|
+
if (message.trim()) {
|
|
47
|
+
try {
|
|
48
|
+
const parsed = JSON.parse(message);
|
|
49
|
+
this.handleMessage(parsed);
|
|
50
|
+
}
|
|
51
|
+
catch (e) {
|
|
52
|
+
this.emit("parseError", message);
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
handleMessage(message) {
|
|
58
|
+
if (message.id !== undefined && this.pendingRequests.has(message.id)) {
|
|
59
|
+
const pending = this.pendingRequests.get(message.id);
|
|
60
|
+
this.pendingRequests.delete(message.id);
|
|
61
|
+
if (message.error) {
|
|
62
|
+
pending.reject(message.error);
|
|
63
|
+
}
|
|
64
|
+
else {
|
|
65
|
+
pending.resolve(message.result);
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
else if (message.method) {
|
|
69
|
+
this.emit("notification", message.method, message.params);
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
send(message) {
|
|
73
|
+
if (!this.process?.stdin)
|
|
74
|
+
return;
|
|
75
|
+
const data = JSON.stringify(message) + "\n";
|
|
76
|
+
this.process.stdin.write(data);
|
|
77
|
+
}
|
|
78
|
+
async sendRequest(method, params) {
|
|
79
|
+
const id = ++this.requestId;
|
|
80
|
+
return new Promise((resolve, reject) => {
|
|
81
|
+
this.pendingRequests.set(id, { resolve, reject });
|
|
82
|
+
this.send({
|
|
83
|
+
jsonrpc: "2.0",
|
|
84
|
+
id,
|
|
85
|
+
method,
|
|
86
|
+
params,
|
|
87
|
+
});
|
|
88
|
+
setTimeout(() => {
|
|
89
|
+
if (this.pendingRequests.has(id)) {
|
|
90
|
+
this.pendingRequests.delete(id);
|
|
91
|
+
reject(new Error(`Request ${method} timed out`));
|
|
92
|
+
}
|
|
93
|
+
}, 30000);
|
|
94
|
+
});
|
|
95
|
+
}
|
|
96
|
+
sendNotification(method, params) {
|
|
97
|
+
this.send({
|
|
98
|
+
jsonrpc: "2.0",
|
|
99
|
+
method,
|
|
100
|
+
params,
|
|
101
|
+
});
|
|
102
|
+
}
|
|
103
|
+
async initialize() {
|
|
104
|
+
try {
|
|
105
|
+
const result = await this.sendRequest("initialize", {
|
|
106
|
+
processId: process.pid,
|
|
107
|
+
rootUri: `file://${this.rootPath}`,
|
|
108
|
+
capabilities: {
|
|
109
|
+
workspace: {
|
|
110
|
+
applyEdit: true,
|
|
111
|
+
workspaceEdit: { documentChanges: true },
|
|
112
|
+
didChangeConfiguration: { dynamicRegistration: true },
|
|
113
|
+
didChangeWatchedFiles: { dynamicRegistration: true },
|
|
114
|
+
symbol: { dynamicRegistration: true },
|
|
115
|
+
executeCommand: { dynamicRegistration: true },
|
|
116
|
+
},
|
|
117
|
+
textDocument: {
|
|
118
|
+
synchronization: {
|
|
119
|
+
dynamicRegistration: true,
|
|
120
|
+
willSave: true,
|
|
121
|
+
willSaveWaitUntil: true,
|
|
122
|
+
didSave: true,
|
|
123
|
+
didOpen: true,
|
|
124
|
+
didChange: true,
|
|
125
|
+
didClose: true,
|
|
126
|
+
},
|
|
127
|
+
completion: {
|
|
128
|
+
dynamicRegistration: true,
|
|
129
|
+
completionItem: {
|
|
130
|
+
snippetSupport: true,
|
|
131
|
+
commitCharactersSupport: true,
|
|
132
|
+
},
|
|
133
|
+
},
|
|
134
|
+
hover: { dynamicRegistration: true },
|
|
135
|
+
signatureHelp: { dynamicRegistration: true },
|
|
136
|
+
references: { dynamicRegistration: true },
|
|
137
|
+
documentHighlight: { dynamicRegistration: true },
|
|
138
|
+
documentSymbol: { dynamicRegistration: true },
|
|
139
|
+
formatting: { dynamicRegistration: true },
|
|
140
|
+
rangeFormatting: { dynamicRegistration: true },
|
|
141
|
+
onTypeFormatting: { dynamicRegistration: true },
|
|
142
|
+
definition: { dynamicRegistration: true },
|
|
143
|
+
typeDefinition: { dynamicRegistration: true },
|
|
144
|
+
implementation: { dynamicRegistration: true },
|
|
145
|
+
codeAction: { dynamicRegistration: true },
|
|
146
|
+
codeLens: { dynamicRegistration: true },
|
|
147
|
+
rename: { dynamicRegistration: true },
|
|
148
|
+
},
|
|
149
|
+
window: {
|
|
150
|
+
workDoneProgress: true,
|
|
151
|
+
},
|
|
152
|
+
},
|
|
153
|
+
workspaceFolders: [{ uri: `file://${this.rootPath}`, name: "workspace" }],
|
|
154
|
+
});
|
|
155
|
+
this.initialized = true;
|
|
156
|
+
this.sendNotification("initialized", {});
|
|
157
|
+
return true;
|
|
158
|
+
}
|
|
159
|
+
catch (error) {
|
|
160
|
+
this.emit("error", `Initialization failed: ${error}`);
|
|
161
|
+
return false;
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
async shutdown() {
|
|
165
|
+
if (this.initialized) {
|
|
166
|
+
try {
|
|
167
|
+
await this.sendRequest("shutdown");
|
|
168
|
+
this.sendNotification("exit");
|
|
169
|
+
}
|
|
170
|
+
catch (e) {
|
|
171
|
+
// Ignore shutdown errors
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
this.disconnect();
|
|
175
|
+
}
|
|
176
|
+
disconnect() {
|
|
177
|
+
if (this.cleanupFn) {
|
|
178
|
+
this.cleanupFn();
|
|
179
|
+
this.cleanupFn = null;
|
|
180
|
+
}
|
|
181
|
+
this.process = null;
|
|
182
|
+
}
|
|
183
|
+
isConnected() {
|
|
184
|
+
return this.process !== null && this.initialized;
|
|
185
|
+
}
|
|
186
|
+
async gotoDefinition(uri, position) {
|
|
187
|
+
return this.sendRequest("textDocument/definition", {
|
|
188
|
+
textDocument: { uri },
|
|
189
|
+
position,
|
|
190
|
+
});
|
|
191
|
+
}
|
|
192
|
+
async findReferences(uri, position) {
|
|
193
|
+
return this.sendRequest("textDocument/references", {
|
|
194
|
+
textDocument: { uri },
|
|
195
|
+
position,
|
|
196
|
+
context: { includeDeclaration: true },
|
|
197
|
+
});
|
|
198
|
+
}
|
|
199
|
+
async hover(uri, position) {
|
|
200
|
+
return this.sendRequest("textDocument/hover", {
|
|
201
|
+
textDocument: { uri },
|
|
202
|
+
position,
|
|
203
|
+
});
|
|
204
|
+
}
|
|
205
|
+
async documentSymbol(uri) {
|
|
206
|
+
return this.sendRequest("textDocument/documentSymbol", {
|
|
207
|
+
textDocument: { uri },
|
|
208
|
+
});
|
|
209
|
+
}
|
|
210
|
+
async workspaceSymbol(query) {
|
|
211
|
+
return this.sendRequest("workspace/symbol", {
|
|
212
|
+
query,
|
|
213
|
+
});
|
|
214
|
+
}
|
|
215
|
+
async gotoImplementation(uri, position) {
|
|
216
|
+
return this.sendRequest("textDocument/implementation", {
|
|
217
|
+
textDocument: { uri },
|
|
218
|
+
position,
|
|
219
|
+
});
|
|
220
|
+
}
|
|
221
|
+
async callHierarchy(uri, position) {
|
|
222
|
+
return this.sendRequest("textDocument/prepareCallHierarchy", {
|
|
223
|
+
textDocument: { uri },
|
|
224
|
+
position,
|
|
225
|
+
});
|
|
226
|
+
}
|
|
227
|
+
didOpenTextDocument(uri, languageId, content) {
|
|
228
|
+
this.sendNotification("textDocument/didOpen", {
|
|
229
|
+
textDocument: {
|
|
230
|
+
uri,
|
|
231
|
+
languageId,
|
|
232
|
+
text: content,
|
|
233
|
+
version: 1,
|
|
234
|
+
},
|
|
235
|
+
});
|
|
236
|
+
}
|
|
237
|
+
didChangeTextDocument(uri, content, version = 1) {
|
|
238
|
+
this.sendNotification("textDocument/didChange", {
|
|
239
|
+
textDocument: { uri, version },
|
|
240
|
+
contentChanges: [{ text: content }],
|
|
241
|
+
});
|
|
242
|
+
}
|
|
243
|
+
didCloseTextDocument(uri) {
|
|
244
|
+
this.sendNotification("textDocument/didClose", {
|
|
245
|
+
textDocument: { uri },
|
|
246
|
+
});
|
|
247
|
+
}
|
|
248
|
+
}
|
|
249
|
+
export function createClient(serverId) {
|
|
250
|
+
return new LSPClient(serverId);
|
|
251
|
+
}
|
|
252
|
+
//# sourceMappingURL=client.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/lsp/client.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* LSP 下载管理器
|
|
3
|
+
*/
|
|
4
|
+
declare function needsDownload(serverId: string): Promise<boolean>;
|
|
5
|
+
declare function download(serverId: string, onProgress?: (progress: number, message: string) => void): Promise<boolean>;
|
|
6
|
+
declare function downloadAll(serverIds: string[], onProgress?: (serverId: string, progress: number) => void): Promise<Map<string, boolean>>;
|
|
7
|
+
declare function getDownloadURL(serverId: string): string | undefined;
|
|
8
|
+
declare function cancelDownload(serverId: string): void;
|
|
9
|
+
export declare const LSPDownloader: {
|
|
10
|
+
needsDownload: typeof needsDownload;
|
|
11
|
+
download: typeof download;
|
|
12
|
+
downloadAll: typeof downloadAll;
|
|
13
|
+
getDownloadURL: typeof getDownloadURL;
|
|
14
|
+
cancelDownload: typeof cancelDownload;
|
|
15
|
+
};
|
|
16
|
+
export {};
|
|
17
|
+
//# sourceMappingURL=downloader.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"downloader.d.ts","sourceRoot":"","sources":["../../src/lsp/downloader.ts"],"names":[],"mappings":"AAAA;;GAEG;AAkBH,iBAAe,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAQ/D;AAED,iBAAe,QAAQ,CACrB,QAAQ,EAAE,MAAM,EAChB,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,GACvD,OAAO,CAAC,OAAO,CAAC,CAgClB;AAED,iBAAe,WAAW,CACxB,SAAS,EAAE,MAAM,EAAE,EACnB,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,IAAI,GACxD,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAW/B;AAED,iBAAS,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAG5D;AAED,iBAAS,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAE9C;AA8RD,eAAO,MAAM,aAAa;;;;;;CAMzB,CAAC"}
|