tianxincode 1.0.11 → 1.0.13
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/dist/api/api.types.d.ts +1 -0
- package/dist/api/api.types.d.ts.map +1 -1
- package/dist/api/chat.routes.js +108 -139
- package/dist/api/chat.routes.js.map +1 -1
- package/dist/api/db.routes.js +8 -4
- package/dist/api/db.routes.js.map +1 -1
- package/dist/api/email.routes.d.ts +2 -0
- package/dist/api/email.routes.d.ts.map +1 -0
- package/dist/api/email.routes.js +78 -0
- package/dist/api/email.routes.js.map +1 -0
- package/dist/api/files.routes.js +54 -0
- package/dist/api/files.routes.js.map +1 -1
- package/dist/api/filesystem.routes.js +0 -2
- package/dist/api/filesystem.routes.js.map +1 -1
- package/dist/api/index.d.ts +1 -1
- package/dist/api/index.d.ts.map +1 -1
- package/dist/api/index.js +6 -1
- package/dist/api/index.js.map +1 -1
- package/dist/api/scheduler.routes.d.ts +2 -0
- package/dist/api/scheduler.routes.d.ts.map +1 -0
- package/dist/api/scheduler.routes.js +127 -0
- package/dist/api/scheduler.routes.js.map +1 -0
- package/dist/api/terminal.routes.d.ts +13 -0
- package/dist/api/terminal.routes.d.ts.map +1 -0
- package/dist/api/terminal.routes.js +77 -0
- package/dist/api/terminal.routes.js.map +1 -0
- package/dist/cli/commands.js +5 -1
- package/dist/cli/commands.js.map +1 -1
- package/dist/components/App.d.ts.map +1 -1
- package/dist/components/App.js +125 -100
- package/dist/components/App.js.map +1 -1
- package/dist/config/tx.config.d.ts +0 -1
- package/dist/config/tx.config.d.ts.map +1 -1
- package/dist/config/tx.config.js +1 -1
- package/dist/config/tx.config.js.map +1 -1
- package/dist/modules/ai/agents/chat/agent_tool.d.ts +2 -0
- package/dist/modules/ai/agents/chat/agent_tool.d.ts.map +1 -0
- package/dist/modules/ai/agents/chat/agent_tool.js +15 -0
- package/dist/modules/ai/agents/chat/agent_tool.js.map +1 -0
- package/dist/modules/ai/agents/chat/chat.agent.d.ts +32 -0
- package/dist/modules/ai/agents/chat/chat.agent.d.ts.map +1 -0
- package/dist/modules/ai/agents/chat/chat.agent.js +255 -0
- package/dist/modules/ai/agents/chat/chat.agent.js.map +1 -0
- package/dist/modules/ai/agents/chat/prompts/role.txt +31 -0
- package/dist/modules/ai/agents/code/agent_tool.d.ts +2 -0
- package/dist/modules/ai/agents/code/agent_tool.d.ts.map +1 -0
- package/dist/modules/ai/agents/code/agent_tool.js +17 -0
- package/dist/modules/ai/agents/code/agent_tool.js.map +1 -0
- package/dist/modules/ai/agents/code/code.agent.d.ts +32 -0
- package/dist/modules/ai/agents/code/code.agent.d.ts.map +1 -0
- package/dist/modules/ai/agents/code/code.agent.js +255 -0
- package/dist/modules/ai/agents/code/code.agent.js.map +1 -0
- package/dist/modules/ai/agents/code/prompts/role.txt +51 -0
- package/dist/modules/ai/agents/index.d.ts +7 -0
- package/dist/modules/ai/agents/index.d.ts.map +1 -0
- package/dist/modules/ai/agents/index.js +7 -0
- package/dist/modules/ai/agents/index.js.map +1 -0
- package/dist/modules/ai/agents/task/agent_tool.d.ts +2 -0
- package/dist/modules/ai/agents/task/agent_tool.d.ts.map +1 -0
- package/dist/modules/ai/agents/task/agent_tool.js +14 -0
- package/dist/modules/ai/agents/task/agent_tool.js.map +1 -0
- package/dist/modules/ai/agents/task/prompts/role.txt +51 -0
- package/dist/modules/ai/agents/task/task.agent.d.ts +31 -0
- package/dist/modules/ai/agents/task/task.agent.d.ts.map +1 -0
- package/dist/modules/ai/agents/task/task.agent.js +226 -0
- package/dist/modules/ai/agents/task/task.agent.js.map +1 -0
- package/dist/modules/ai/ai.service.d.ts +13 -18
- package/dist/modules/ai/ai.service.d.ts.map +1 -1
- package/dist/modules/ai/ai.service.js +40 -105
- package/dist/modules/ai/ai.service.js.map +1 -1
- package/dist/modules/ai/ai.types.d.ts +8 -5
- package/dist/modules/ai/ai.types.d.ts.map +1 -1
- package/dist/modules/ai/index.d.ts +1 -3
- package/dist/modules/ai/index.d.ts.map +1 -1
- package/dist/modules/ai/index.js +0 -2
- package/dist/modules/ai/index.js.map +1 -1
- package/dist/modules/ai/openai.provider.d.ts.map +1 -1
- package/dist/modules/ai/openai.provider.js +3 -0
- package/dist/modules/ai/openai.provider.js.map +1 -1
- package/dist/modules/ai/provider/base.d.ts +5 -0
- package/dist/modules/ai/provider/base.d.ts.map +1 -1
- package/dist/modules/ai/provider/openai/openai-agent.d.ts +8 -0
- package/dist/modules/ai/provider/openai/openai-agent.d.ts.map +1 -1
- package/dist/modules/ai/provider/openai/openai-agent.js +50 -5
- package/dist/modules/ai/provider/openai/openai-agent.js.map +1 -1
- package/dist/modules/ai/react/provider.parser.d.ts +20 -0
- package/dist/modules/ai/react/provider.parser.d.ts.map +1 -0
- package/dist/modules/ai/react/provider.parser.js +88 -0
- package/dist/modules/ai/react/provider.parser.js.map +1 -0
- package/dist/modules/ai/summarizer/summarizer.prompts.d.ts +1 -1
- package/dist/modules/ai/summarizer/summarizer.prompts.d.ts.map +1 -1
- package/dist/modules/ai/summarizer/summarizer.prompts.js +19 -19
- package/dist/modules/ai/summarizer/summarizer.prompts.js.map +1 -1
- package/dist/modules/ai/summarizer/summarizer.service.d.ts.map +1 -1
- package/dist/modules/ai/summarizer/summarizer.service.js +33 -7
- package/dist/modules/ai/summarizer/summarizer.service.js.map +1 -1
- package/dist/modules/ai/summarizer/summarizer.types.d.ts +1 -0
- package/dist/modules/ai/summarizer/summarizer.types.d.ts.map +1 -1
- package/dist/modules/config/config.service.d.ts +3 -0
- package/dist/modules/config/config.service.d.ts.map +1 -1
- package/dist/modules/config/config.service.js +33 -0
- package/dist/modules/config/config.service.js.map +1 -1
- package/dist/modules/db/db.service.d.ts +3 -0
- package/dist/modules/db/db.service.d.ts.map +1 -1
- package/dist/modules/db/db.service.js +79 -0
- package/dist/modules/db/db.service.js.map +1 -1
- package/dist/modules/email/email.config.repository.d.ts +14 -0
- package/dist/modules/email/email.config.repository.d.ts.map +1 -0
- package/dist/modules/email/email.config.repository.js +70 -0
- package/dist/modules/email/email.config.repository.js.map +1 -0
- package/dist/modules/email/email.service.d.ts +14 -0
- package/dist/modules/email/email.service.d.ts.map +1 -0
- package/dist/modules/email/email.service.js +54 -0
- package/dist/modules/email/email.service.js.map +1 -0
- package/dist/modules/email/email.types.d.ts +20 -0
- package/dist/modules/email/email.types.d.ts.map +1 -0
- package/dist/modules/email/email.types.js +2 -0
- package/dist/modules/email/email.types.js.map +1 -0
- package/dist/modules/email/index.d.ts +4 -0
- package/dist/modules/email/index.d.ts.map +1 -0
- package/dist/modules/email/index.js +3 -0
- package/dist/modules/email/index.js.map +1 -0
- package/dist/modules/gateway/adapters/dingtalk.adapter.d.ts +7 -0
- package/dist/modules/gateway/adapters/dingtalk.adapter.d.ts.map +1 -1
- package/dist/modules/gateway/adapters/dingtalk.adapter.js +62 -2
- package/dist/modules/gateway/adapters/dingtalk.adapter.js.map +1 -1
- package/dist/modules/gateway/gateway.service.d.ts +1 -0
- package/dist/modules/gateway/gateway.service.d.ts.map +1 -1
- package/dist/modules/gateway/gateway.service.js +61 -18
- package/dist/modules/gateway/gateway.service.js.map +1 -1
- package/dist/modules/gateway/index.d.ts +1 -1
- package/dist/modules/gateway/index.d.ts.map +1 -1
- package/dist/modules/gateway/index.js +0 -1
- package/dist/modules/gateway/index.js.map +1 -1
- package/dist/modules/scheduler/index.d.ts +4 -0
- package/dist/modules/scheduler/index.d.ts.map +1 -0
- package/dist/modules/scheduler/index.js +4 -0
- package/dist/modules/scheduler/index.js.map +1 -0
- package/dist/modules/scheduler/notify.service.d.ts +12 -0
- package/dist/modules/scheduler/notify.service.d.ts.map +1 -0
- package/dist/modules/scheduler/notify.service.js +20 -0
- package/dist/modules/scheduler/notify.service.js.map +1 -0
- package/dist/modules/scheduler/scheduler.service.d.ts +35 -0
- package/dist/modules/scheduler/scheduler.service.d.ts.map +1 -0
- package/dist/modules/scheduler/scheduler.service.js +258 -0
- package/dist/modules/scheduler/scheduler.service.js.map +1 -0
- package/dist/modules/scheduler/task-log.service.d.ts +20 -0
- package/dist/modules/scheduler/task-log.service.d.ts.map +1 -0
- package/dist/modules/scheduler/task-log.service.js +44 -0
- package/dist/modules/scheduler/task-log.service.js.map +1 -0
- package/dist/modules/terminal/index.d.ts +3 -0
- package/dist/modules/terminal/index.d.ts.map +1 -0
- package/dist/modules/terminal/index.js +2 -0
- package/dist/modules/terminal/index.js.map +1 -0
- package/dist/modules/terminal/terminal.service.d.ts +48 -0
- package/dist/modules/terminal/terminal.service.d.ts.map +1 -0
- package/dist/modules/terminal/terminal.service.js +284 -0
- package/dist/modules/terminal/terminal.service.js.map +1 -0
- package/dist/modules/tools/index.d.ts +0 -1
- package/dist/modules/tools/index.d.ts.map +1 -1
- package/dist/modules/tools/index.js +0 -1
- package/dist/modules/tools/index.js.map +1 -1
- package/dist/modules/tools/provider/email.tool.d.ts +3 -0
- package/dist/modules/tools/provider/email.tool.d.ts.map +1 -0
- package/dist/modules/tools/provider/email.tool.js +50 -0
- package/dist/modules/tools/provider/email.tool.js.map +1 -0
- package/dist/modules/tools/provider/index.d.ts.map +1 -1
- package/dist/modules/tools/provider/index.js +2 -0
- package/dist/modules/tools/provider/index.js.map +1 -1
- package/dist/modules/tools/tool.service.d.ts +1 -1
- package/dist/modules/tools/tool.service.js +4 -4
- package/dist/modules/tools/tool.service.js.map +1 -1
- package/dist/repository/aiLog.repository.d.ts +17 -0
- package/dist/repository/aiLog.repository.d.ts.map +1 -0
- package/dist/repository/aiLog.repository.js +39 -0
- package/dist/repository/aiLog.repository.js.map +1 -0
- package/dist/repository/base.repository.d.ts +6 -0
- package/dist/repository/base.repository.d.ts.map +1 -0
- package/dist/repository/base.repository.js +14 -0
- package/dist/repository/base.repository.js.map +1 -0
- package/dist/repository/index.d.ts +5 -0
- package/dist/repository/index.d.ts.map +1 -0
- package/dist/repository/index.js +5 -0
- package/dist/repository/index.js.map +1 -0
- package/dist/repository/message.repository.d.ts +9 -0
- package/dist/repository/message.repository.d.ts.map +1 -0
- package/dist/repository/message.repository.js +35 -0
- package/dist/repository/message.repository.js.map +1 -0
- package/dist/repository/session.repository.d.ts +15 -0
- package/dist/repository/session.repository.d.ts.map +1 -0
- package/dist/repository/session.repository.js +33 -0
- package/dist/repository/session.repository.js.map +1 -0
- package/dist/services/codeChat/codeChat.service.d.ts +7 -0
- package/dist/services/codeChat/codeChat.service.d.ts.map +1 -0
- package/dist/services/codeChat/codeChat.service.js +53 -0
- package/dist/services/codeChat/codeChat.service.js.map +1 -0
- package/dist/services/codeChat/codeChat.types.d.ts +47 -0
- package/dist/services/codeChat/codeChat.types.d.ts.map +1 -0
- package/dist/services/codeChat/codeChat.types.js +2 -0
- package/dist/services/codeChat/codeChat.types.js.map +1 -0
- package/dist/services/codeChat/index.d.ts +5 -0
- package/dist/services/codeChat/index.d.ts.map +1 -0
- package/dist/services/codeChat/index.js +4 -0
- package/dist/services/codeChat/index.js.map +1 -0
- package/dist/services/commandChat/commandChat.service.d.ts +15 -0
- package/dist/services/commandChat/commandChat.service.d.ts.map +1 -0
- package/dist/services/commandChat/commandChat.service.js +18 -0
- package/dist/services/commandChat/commandChat.service.js.map +1 -0
- package/dist/services/commandChat/index.d.ts +3 -0
- package/dist/services/commandChat/index.d.ts.map +1 -0
- package/dist/services/commandChat/index.js +2 -0
- package/dist/services/commandChat/index.js.map +1 -0
- package/dist/web/web.service.d.ts +1 -0
- package/dist/web/web.service.d.ts.map +1 -1
- package/dist/web/web.service.js +107 -54
- package/dist/web/web.service.js.map +1 -1
- package/package.json +7 -2
- package/test-email.ts +95 -0
- package/web/dist/assets/{AiLogsView-2O9Szm8G.js → AiLogsView-D_SQ6qo4.js} +1 -1
- package/web/dist/assets/DevWorkflowView-C5VnPngb.css +1 -0
- package/web/dist/assets/DevWorkflowView-iHAv9LC0.js +16 -0
- package/web/dist/assets/Layout-CQhbIJxB.js +1 -0
- package/web/dist/assets/TasksView-B9B2H3-S.js +1 -0
- package/web/dist/assets/TerminalView-BKhdi5UF.js +24 -0
- package/web/dist/assets/TerminalView-BU5wZZv4.css +32 -0
- package/web/dist/assets/abap-BrgZPUOV.js +6 -0
- package/web/dist/assets/apex-DyP6w7ZV.js +6 -0
- package/web/dist/assets/azcli-BaLxmfj-.js +6 -0
- package/web/dist/assets/bat-CFOPXBzS.js +6 -0
- package/web/dist/assets/bicep-BfEKNvv3.js +7 -0
- package/web/dist/assets/cameligo-BFG1Mk7z.js +6 -0
- package/web/dist/assets/clojure-DTECt2xU.js +6 -0
- package/web/dist/assets/codicon-DCmgc-ay.ttf +0 -0
- package/web/dist/assets/coffee-CDGzqUPQ.js +6 -0
- package/web/dist/assets/cpp-CLLBncYj.js +6 -0
- package/web/dist/assets/csharp-dUCx_-0o.js +6 -0
- package/web/dist/assets/csp-5Rap-vPy.js +6 -0
- package/web/dist/assets/css-D3h14YRZ.js +8 -0
- package/web/dist/assets/cssMode-C_gwipb0.js +9 -0
- package/web/dist/assets/cypher-DrQuvNYM.js +6 -0
- package/web/dist/assets/dart-CFKIUWau.js +6 -0
- package/web/dist/assets/dockerfile-Zznr-cwX.js +6 -0
- package/web/dist/assets/ecl-Ce3n6wWz.js +6 -0
- package/web/dist/assets/elixir-deUWdS0T.js +6 -0
- package/web/dist/assets/flow9-i9-g7ZhI.js +6 -0
- package/web/dist/assets/freemarker2-WCA_pR0J.js +8 -0
- package/web/dist/assets/fsharp-CzKuDChf.js +6 -0
- package/web/dist/assets/go-Cphgjts3.js +6 -0
- package/web/dist/assets/graphql-Cg7bfA9N.js +6 -0
- package/web/dist/assets/handlebars-fzVGzXHj.js +6 -0
- package/web/dist/assets/hcl-0cvrggvQ.js +6 -0
- package/web/dist/assets/html-C4Rga6DD.js +6 -0
- package/web/dist/assets/htmlMode-BvrJ57rW.js +9 -0
- package/web/dist/assets/index-9RP8PAfk.js +949 -0
- package/web/dist/assets/{index-37FqBzBn.css → index-BhjlwJCp.css} +1 -1
- package/web/dist/assets/ini-Drc7WvVn.js +6 -0
- package/web/dist/assets/java-B_fMsGYe.js +6 -0
- package/web/dist/assets/javascript-cXKyuP98.js +6 -0
- package/web/dist/assets/jsonMode-Q4CMzwiX.js +15 -0
- package/web/dist/assets/julia-Bqgm2twL.js +6 -0
- package/web/dist/assets/kotlin-BSkB5QuD.js +6 -0
- package/web/dist/assets/less-BsTHnhdd.js +7 -0
- package/web/dist/assets/lexon-YWi4-JPR.js +6 -0
- package/web/dist/assets/liquid-CrbU0gmK.js +6 -0
- package/web/dist/assets/lua-nf6ki56Z.js +6 -0
- package/web/dist/assets/m3-Cpb6xl2v.js +6 -0
- package/web/dist/assets/markdown-DSZPf7rp.js +6 -0
- package/web/dist/assets/mdx-D72Dcs66.js +6 -0
- package/web/dist/assets/mips-B_c3zf-v.js +6 -0
- package/web/dist/assets/msdax-rUNN04Wq.js +6 -0
- package/web/dist/assets/mysql-DDwshQtU.js +6 -0
- package/web/dist/assets/objective-c-B5zXfXm9.js +6 -0
- package/web/dist/assets/pascal-CXOwvkN_.js +6 -0
- package/web/dist/assets/pascaligo-Bc-ZgV77.js +6 -0
- package/web/dist/assets/perl-CwNk8-XU.js +6 -0
- package/web/dist/assets/pgsql-tGk8EFnU.js +6 -0
- package/web/dist/assets/php-CpIb_Oan.js +6 -0
- package/web/dist/assets/pla-B03wrqEc.js +6 -0
- package/web/dist/assets/postiats-BKlk5iyT.js +6 -0
- package/web/dist/assets/powerquery-Bhzvs7bI.js +6 -0
- package/web/dist/assets/powershell-Dd3NCNK9.js +6 -0
- package/web/dist/assets/protobuf-COyEY5Pt.js +7 -0
- package/web/dist/assets/pug-BaJupSGV.js +6 -0
- package/web/dist/assets/python-DPqkZ_Xm.js +6 -0
- package/web/dist/assets/qsharp-DXyYeYxl.js +6 -0
- package/web/dist/assets/r-CdQndTaG.js +6 -0
- package/web/dist/assets/razor-DknXaqXN.js +6 -0
- package/web/dist/assets/redis-CVwtpugi.js +6 -0
- package/web/dist/assets/redshift-25W9uPmb.js +6 -0
- package/web/dist/assets/restructuredtext-DfzH4Xui.js +6 -0
- package/web/dist/assets/ruby-Cp1zYvxS.js +6 -0
- package/web/dist/assets/rust-D5C2fndG.js +6 -0
- package/web/dist/assets/sb-CDntyWJ8.js +6 -0
- package/web/dist/assets/scala-BoFRg7Ot.js +6 -0
- package/web/dist/assets/scheme-Bio4gycK.js +6 -0
- package/web/dist/assets/scss-4Ik7cdeQ.js +8 -0
- package/web/dist/assets/shell-CX-rkNHf.js +6 -0
- package/web/dist/assets/solidity-Tw7wswEv.js +6 -0
- package/web/dist/assets/sophia-C5WLch3f.js +6 -0
- package/web/dist/assets/sparql-DHaeiCBh.js +6 -0
- package/web/dist/assets/sql-CCSDG5nI.js +6 -0
- package/web/dist/assets/st-pnP8ivHi.js +6 -0
- package/web/dist/assets/swift-DwJ7jVG9.js +8 -0
- package/web/dist/assets/systemverilog-B9Xyijhd.js +6 -0
- package/web/dist/assets/tcl-DnHyzjbg.js +6 -0
- package/web/dist/assets/tsMode-DZAV3Wgo.js +16 -0
- package/web/dist/assets/twig-CPajHgWi.js +6 -0
- package/web/dist/assets/typescript-DenKTmW3.js +6 -0
- package/web/dist/assets/typespec-D-MeaMDU.js +6 -0
- package/web/dist/assets/vb-DgyLZaXg.js +6 -0
- package/web/dist/assets/wgsl-BIv9DU6q.js +303 -0
- package/web/dist/assets/xml-C_uqJta0.js +6 -0
- package/web/dist/assets/yaml-vwb3U7d7.js +6 -0
- package/web/dist/index.html +2 -2
- package/web/package.json +5 -1
- package/@.txcode/req//351/241/265/351/235/242/345/270/203/345/261/200/AI/346/234/215/345/212/241/345/225/206/345/222/214/346/250/241/345/236/213/351/205/215/347/275/256.html +0 -241
- package/web/dist/assets/Layout-C3GGWAI1.js +0 -1
- package/web/dist/assets/index-LvJQilK_.js +0 -199
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { BaseRepository } from './base.repository.js';
|
|
2
|
+
export class MessageRepository extends BaseRepository {
|
|
3
|
+
async save(sessionId, role, content) {
|
|
4
|
+
const sql = `
|
|
5
|
+
INSERT INTO messages (session_id, role, content, created_at)
|
|
6
|
+
VALUES (?, ?, ?, datetime('now'))
|
|
7
|
+
`;
|
|
8
|
+
await this.execute(sql, [sessionId, role, content]);
|
|
9
|
+
}
|
|
10
|
+
async getHistory(sessionId, limit = 100) {
|
|
11
|
+
const sql = `
|
|
12
|
+
SELECT id, session_id, role, content, created_at
|
|
13
|
+
FROM messages
|
|
14
|
+
WHERE session_id = ?
|
|
15
|
+
ORDER BY created_at DESC
|
|
16
|
+
LIMIT ?
|
|
17
|
+
`;
|
|
18
|
+
return this.query(sql, [sessionId, limit]);
|
|
19
|
+
}
|
|
20
|
+
async getBySessionId(sessionId) {
|
|
21
|
+
const sql = `
|
|
22
|
+
SELECT id, session_id, role, content, created_at
|
|
23
|
+
FROM messages
|
|
24
|
+
WHERE session_id = ?
|
|
25
|
+
ORDER BY created_at ASC
|
|
26
|
+
`;
|
|
27
|
+
return this.query(sql, [sessionId]);
|
|
28
|
+
}
|
|
29
|
+
async deleteBySessionId(sessionId) {
|
|
30
|
+
const sql = `DELETE FROM messages WHERE session_id = ?`;
|
|
31
|
+
await this.execute(sql, [sessionId]);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
export const messageRepository = new MessageRepository();
|
|
35
|
+
//# sourceMappingURL=message.repository.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"message.repository.js","sourceRoot":"","sources":["../../src/repository/message.repository.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEtD,MAAM,OAAO,iBAAkB,SAAQ,cAAc;IAEnD,KAAK,CAAC,IAAI,CAAC,SAAiB,EAAE,IAAY,EAAE,OAAe;QACzD,MAAM,GAAG,GAAG;;;KAGX,CAAC;QACF,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,SAAS,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;IACtD,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,SAAiB,EAAE,KAAK,GAAG,GAAG;QAC7C,MAAM,GAAG,GAAG;;;;;;KAMX,CAAC;QACF,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC;IAC7C,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,SAAiB;QACpC,MAAM,GAAG,GAAG;;;;;KAKX,CAAC;QACF,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC;IACtC,CAAC;IAED,KAAK,CAAC,iBAAiB,CAAC,SAAiB;QACvC,MAAM,GAAG,GAAG,2CAA2C,CAAC;QACxD,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC;IACvC,CAAC;CACF;AAED,MAAM,CAAC,MAAM,iBAAiB,GAAG,IAAI,iBAAiB,EAAE,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { BaseRepository } from './base.repository.js';
|
|
2
|
+
export declare class SessionRepository extends BaseRepository {
|
|
3
|
+
save(session: {
|
|
4
|
+
id: string;
|
|
5
|
+
name: string;
|
|
6
|
+
projectPath?: string;
|
|
7
|
+
created_at?: string;
|
|
8
|
+
}): Promise<void>;
|
|
9
|
+
getById(id: string): Promise<any | null>;
|
|
10
|
+
getAll(): Promise<any[]>;
|
|
11
|
+
delete(id: string): Promise<void>;
|
|
12
|
+
updateUpdatedAt(id: string): Promise<void>;
|
|
13
|
+
}
|
|
14
|
+
export declare const sessionRepository: SessionRepository;
|
|
15
|
+
//# sourceMappingURL=session.repository.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session.repository.d.ts","sourceRoot":"","sources":["../../src/repository/session.repository.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEtD,qBAAa,iBAAkB,SAAQ,cAAc;IAE7C,IAAI,CAAC,OAAO,EAAE;QAClB,EAAE,EAAE,MAAM,CAAC;QACX,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,UAAU,CAAC,EAAE,MAAM,CAAC;KACrB,GAAG,OAAO,CAAC,IAAI,CAAC;IAaX,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,GAAG,IAAI,CAAC;IAKxC,MAAM,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;IAKxB,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAKjC,eAAe,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAIjD;AAED,eAAO,MAAM,iBAAiB,mBAA0B,CAAC"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { BaseRepository } from './base.repository.js';
|
|
2
|
+
export class SessionRepository extends BaseRepository {
|
|
3
|
+
async save(session) {
|
|
4
|
+
const sql = `
|
|
5
|
+
INSERT OR REPLACE INTO sessions (id, name, project_path, created_at, updated_at)
|
|
6
|
+
VALUES (?, ?, ?, ?, datetime('now'))
|
|
7
|
+
`;
|
|
8
|
+
await this.execute(sql, [
|
|
9
|
+
session.id,
|
|
10
|
+
session.name,
|
|
11
|
+
session.projectPath || null,
|
|
12
|
+
session.created_at || new Date().toISOString()
|
|
13
|
+
]);
|
|
14
|
+
}
|
|
15
|
+
async getById(id) {
|
|
16
|
+
const sql = `SELECT * FROM sessions WHERE id = ?`;
|
|
17
|
+
return this.queryOne(sql, [id]);
|
|
18
|
+
}
|
|
19
|
+
async getAll() {
|
|
20
|
+
const sql = `SELECT * FROM sessions ORDER BY updated_at DESC`;
|
|
21
|
+
return this.query(sql);
|
|
22
|
+
}
|
|
23
|
+
async delete(id) {
|
|
24
|
+
const sql = `DELETE FROM sessions WHERE id = ?`;
|
|
25
|
+
await this.execute(sql, [id]);
|
|
26
|
+
}
|
|
27
|
+
async updateUpdatedAt(id) {
|
|
28
|
+
const sql = `UPDATE sessions SET updated_at = datetime('now') WHERE id = ?`;
|
|
29
|
+
await this.execute(sql, [id]);
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
export const sessionRepository = new SessionRepository();
|
|
33
|
+
//# sourceMappingURL=session.repository.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session.repository.js","sourceRoot":"","sources":["../../src/repository/session.repository.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEtD,MAAM,OAAO,iBAAkB,SAAQ,cAAc;IAEnD,KAAK,CAAC,IAAI,CAAC,OAKV;QACC,MAAM,GAAG,GAAG;;;KAGX,CAAC;QACF,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE;YACtB,OAAO,CAAC,EAAE;YACV,OAAO,CAAC,IAAI;YACZ,OAAO,CAAC,WAAW,IAAI,IAAI;YAC3B,OAAO,CAAC,UAAU,IAAI,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SAC/C,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,EAAU;QACtB,MAAM,GAAG,GAAG,qCAAqC,CAAC;QAClD,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAClC,CAAC;IAED,KAAK,CAAC,MAAM;QACV,MAAM,GAAG,GAAG,iDAAiD,CAAC;QAC9D,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACzB,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,EAAU;QACrB,MAAM,GAAG,GAAG,mCAAmC,CAAC;QAChD,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAChC,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,EAAU;QAC9B,MAAM,GAAG,GAAG,+DAA+D,CAAC;QAC5E,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAChC,CAAC;CACF;AAED,MAAM,CAAC,MAAM,iBAAiB,GAAG,IAAI,iBAAiB,EAAE,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"codeChat.service.d.ts","sourceRoot":"","sources":["../../../src/services/codeChat/codeChat.service.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,SAAS,EAAe,UAAU,EAAQ,MAAM,qBAAqB,CAAC;AAG/E,qBAAa,eAAe;IAEpB,UAAU,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC;IAavD,OAAO,CAAC,kBAAkB;YASZ,UAAU;CA8BzB"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { aiService } from '../../modules/ai/ai.service.js';
|
|
2
|
+
import { sessionService } from '../../modules/session/session.service.js';
|
|
3
|
+
import { memoryService } from '../../modules/memory/index.js';
|
|
4
|
+
export class CodeChatService {
|
|
5
|
+
async handleChat(input) {
|
|
6
|
+
const session = this.getOrCreateSession(input);
|
|
7
|
+
return this.chatWithAI(input.message, {
|
|
8
|
+
sessionId: session.id,
|
|
9
|
+
projectPath: session.projectPath ?? undefined,
|
|
10
|
+
abortSignal: input.abortSignal,
|
|
11
|
+
modelName: input.modelName,
|
|
12
|
+
onStep: input.onStep,
|
|
13
|
+
onCompact: input.onCompact,
|
|
14
|
+
});
|
|
15
|
+
}
|
|
16
|
+
getOrCreateSession(input) {
|
|
17
|
+
let session = input.sessionId ? sessionService.get(input.sessionId) : null;
|
|
18
|
+
if (!session) {
|
|
19
|
+
session = sessionService.create('New Chat', input.projectPath || undefined);
|
|
20
|
+
}
|
|
21
|
+
sessionService.switchTo(session.id);
|
|
22
|
+
return session;
|
|
23
|
+
}
|
|
24
|
+
async chatWithAI(message, options) {
|
|
25
|
+
const reactSteps = [];
|
|
26
|
+
const result = await aiService.chatWithTools(message, {
|
|
27
|
+
sessionId: options.sessionId,
|
|
28
|
+
projectPath: options.projectPath,
|
|
29
|
+
abortSignal: options.abortSignal,
|
|
30
|
+
modelName: options.modelName,
|
|
31
|
+
memoryService,
|
|
32
|
+
onStep: (step, iteration, usage) => {
|
|
33
|
+
const reactFormatStep = {
|
|
34
|
+
thought: step.thought || step.reasoning || '',
|
|
35
|
+
toolCalls: step.toolCalls || [],
|
|
36
|
+
success: step.success ?? true,
|
|
37
|
+
};
|
|
38
|
+
reactSteps.push({ iteration, ...reactFormatStep });
|
|
39
|
+
options.onStep?.(reactFormatStep, iteration, usage);
|
|
40
|
+
},
|
|
41
|
+
onCompact: options.onCompact,
|
|
42
|
+
});
|
|
43
|
+
return {
|
|
44
|
+
answer: result.answer || '',
|
|
45
|
+
iterations: result.iterations || 0,
|
|
46
|
+
success: result.success,
|
|
47
|
+
usage: result.usage,
|
|
48
|
+
reactSteps,
|
|
49
|
+
sessionId: options.sessionId,
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
//# sourceMappingURL=codeChat.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"codeChat.service.js","sourceRoot":"","sources":["../../../src/services/codeChat/codeChat.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAC;AAC3D,OAAO,EAAE,cAAc,EAAE,MAAM,0CAA0C,CAAC;AAC1E,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAI9D,MAAM,OAAO,eAAe;IAE1B,KAAK,CAAC,UAAU,CAAC,KAAgB;QAC/B,MAAM,OAAO,GAAG,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;QAE/C,OAAO,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,OAAO,EAAE;YACpC,SAAS,EAAE,OAAO,CAAC,EAAE;YACrB,WAAW,EAAE,OAAO,CAAC,WAAW,IAAI,SAAS;YAC7C,WAAW,EAAE,KAAK,CAAC,WAAW;YAC9B,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,SAAS,EAAE,KAAK,CAAC,SAAS;SAC3B,CAAC,CAAC;IACL,CAAC;IAEO,kBAAkB,CAAC,KAAgB;QACzC,IAAI,OAAO,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAC3E,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,GAAG,cAAc,CAAC,MAAM,CAAC,UAAU,EAAE,KAAK,CAAC,WAAW,IAAI,SAAS,CAAC,CAAC;QAC9E,CAAC;QACD,cAAc,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QACpC,OAAO,OAAO,CAAC;IACjB,CAAC;IAEO,KAAK,CAAC,UAAU,CAAC,OAAe,EAAE,OAAoB;QAC5D,MAAM,UAAU,GAAU,EAAE,CAAC;QAE7B,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,aAAa,CAAC,OAAO,EAAE;YACpD,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,WAAW,EAAE,OAAO,CAAC,WAAW;YAChC,WAAW,EAAE,OAAO,CAAC,WAAW;YAChC,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,aAAa;YACb,MAAM,EAAE,CAAC,IAAS,EAAE,SAAiB,EAAE,KAAW,EAAE,EAAE;gBACpD,MAAM,eAAe,GAAS;oBAC5B,OAAO,EAAE,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,SAAS,IAAI,EAAE;oBAC7C,SAAS,EAAE,IAAI,CAAC,SAAS,IAAI,EAAE;oBAC/B,OAAO,EAAE,IAAI,CAAC,OAAO,IAAI,IAAI;iBAC9B,CAAC;gBACF,UAAU,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,GAAG,eAAe,EAAE,CAAC,CAAC;gBACnD,OAAO,CAAC,MAAM,EAAE,CAAC,eAAe,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;YACtD,CAAC;YACD,SAAS,EAAE,OAAO,CAAC,SAAS;SAC7B,CAAC,CAAC;QAEH,OAAO;YACL,MAAM,EAAE,MAAM,CAAC,MAAM,IAAI,EAAE;YAC3B,UAAU,EAAE,MAAM,CAAC,UAAU,IAAI,CAAC;YAClC,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,UAAU;YACV,SAAS,EAAE,OAAO,CAAC,SAAS;SAC7B,CAAC;IACJ,CAAC;CACF"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
export interface ChatInput {
|
|
2
|
+
message: string;
|
|
3
|
+
sessionId?: string;
|
|
4
|
+
projectPath?: string;
|
|
5
|
+
abortSignal?: AbortSignal;
|
|
6
|
+
modelName?: string;
|
|
7
|
+
onStep?: (step: Step, iteration: number, usage?: any) => void;
|
|
8
|
+
onCompact?: (info: {
|
|
9
|
+
beforeTokens: number;
|
|
10
|
+
afterTokens: number;
|
|
11
|
+
summary?: string;
|
|
12
|
+
}) => void;
|
|
13
|
+
}
|
|
14
|
+
export interface ChatOptions {
|
|
15
|
+
sessionId: string;
|
|
16
|
+
projectPath?: string;
|
|
17
|
+
abortSignal?: AbortSignal;
|
|
18
|
+
modelName?: string;
|
|
19
|
+
onStep?: (step: Step, iteration: number, usage?: any) => void;
|
|
20
|
+
onCompact?: (info: {
|
|
21
|
+
beforeTokens: number;
|
|
22
|
+
afterTokens: number;
|
|
23
|
+
summary?: string;
|
|
24
|
+
}) => void;
|
|
25
|
+
}
|
|
26
|
+
export interface ChatResult {
|
|
27
|
+
answer: string;
|
|
28
|
+
iterations: number;
|
|
29
|
+
success: boolean;
|
|
30
|
+
usage?: any;
|
|
31
|
+
reactSteps?: any[];
|
|
32
|
+
sessionId?: string;
|
|
33
|
+
}
|
|
34
|
+
export interface Step {
|
|
35
|
+
thought?: string;
|
|
36
|
+
toolCalls?: ToolCall[];
|
|
37
|
+
success?: boolean;
|
|
38
|
+
}
|
|
39
|
+
export interface ToolCall {
|
|
40
|
+
id?: string;
|
|
41
|
+
type?: string;
|
|
42
|
+
function: {
|
|
43
|
+
name: string;
|
|
44
|
+
arguments: string | Record<string, any>;
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
//# sourceMappingURL=codeChat.types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"codeChat.types.d.ts","sourceRoot":"","sources":["../../../src/services/codeChat/codeChat.types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,SAAS;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,GAAG,KAAK,IAAI,CAAC;IAC9D,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE;QAAE,YAAY,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC;CAC7F;AAED,MAAM,WAAW,WAAW;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,GAAG,KAAK,IAAI,CAAC;IAC9D,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE;QAAE,YAAY,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC;CAC7F;AAED,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,GAAG,CAAC;IACZ,UAAU,CAAC,EAAE,GAAG,EAAE,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,IAAI;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,QAAQ,EAAE,CAAC;IACvB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,QAAQ;IACvB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE;QACR,IAAI,EAAE,MAAM,CAAC;QACb,SAAS,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;KACzC,CAAC;CACH"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"codeChat.types.js","sourceRoot":"","sources":["../../../src/services/codeChat/codeChat.types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/services/codeChat/index.ts"],"names":[],"mappings":"AAAA,mBAAmB,qBAAqB,CAAC;AACzC,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAExD,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAExD,eAAO,MAAM,eAAe,iBAAwB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/services/codeChat/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAExD,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAExD,MAAM,CAAC,MAAM,eAAe,GAAG,IAAI,eAAe,EAAE,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export interface CommandInput {
|
|
2
|
+
message: string;
|
|
3
|
+
sessionId?: string;
|
|
4
|
+
}
|
|
5
|
+
export interface CommandResult {
|
|
6
|
+
answer: string;
|
|
7
|
+
success: boolean;
|
|
8
|
+
sessionId?: string;
|
|
9
|
+
data?: any;
|
|
10
|
+
}
|
|
11
|
+
export declare class CommandChatService {
|
|
12
|
+
handleCommand(input: CommandInput): Promise<CommandResult>;
|
|
13
|
+
}
|
|
14
|
+
export declare const commandChatService: CommandChatService;
|
|
15
|
+
//# sourceMappingURL=commandChat.service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"commandChat.service.d.ts","sourceRoot":"","sources":["../../../src/services/commandChat/commandChat.service.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,GAAG,CAAC;CACZ;AAED,qBAAa,kBAAkB;IAEvB,aAAa,CAAC,KAAK,EAAE,YAAY,GAAG,OAAO,CAAC,aAAa,CAAC;CAiBjE;AAED,eAAO,MAAM,kBAAkB,oBAA2B,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { executeCommand } from '../../cli/commands.js';
|
|
2
|
+
export class CommandChatService {
|
|
3
|
+
async handleCommand(input) {
|
|
4
|
+
const { message, sessionId } = input;
|
|
5
|
+
if (!message.trim().startsWith('/')) {
|
|
6
|
+
throw new Error('Not a command');
|
|
7
|
+
}
|
|
8
|
+
const cmdResult = await executeCommand(message.trim());
|
|
9
|
+
return {
|
|
10
|
+
answer: cmdResult.message || '命令已执行',
|
|
11
|
+
success: cmdResult.success,
|
|
12
|
+
sessionId,
|
|
13
|
+
data: cmdResult.data,
|
|
14
|
+
};
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
export const commandChatService = new CommandChatService();
|
|
18
|
+
//# sourceMappingURL=commandChat.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"commandChat.service.js","sourceRoot":"","sources":["../../../src/services/commandChat/commandChat.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAevD,MAAM,OAAO,kBAAkB;IAE7B,KAAK,CAAC,aAAa,CAAC,KAAmB;QACrC,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,KAAK,CAAC;QAErC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YACpC,MAAM,IAAI,KAAK,CAAC,eAAe,CAAC,CAAC;QACnC,CAAC;QAED,MAAM,SAAS,GAAG,MAAM,cAAc,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;QAGvD,OAAO;YACL,MAAM,EAAE,SAAS,CAAC,OAAO,IAAI,OAAO;YACpC,OAAO,EAAE,SAAS,CAAC,OAAO;YAC1B,SAAS;YACT,IAAI,EAAE,SAAS,CAAC,IAAI;SACrB,CAAC;IACJ,CAAC;CACF;AAED,MAAM,CAAC,MAAM,kBAAkB,GAAG,IAAI,kBAAkB,EAAE,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/services/commandChat/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAClF,YAAY,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/services/commandChat/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"web.service.d.ts","sourceRoot":"","sources":["../../src/web/web.service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAgB,EAAE,OAAO,EAAqB,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"web.service.d.ts","sourceRoot":"","sources":["../../src/web/web.service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAgB,EAAE,OAAO,EAAqB,MAAM,SAAS,CAAC;AAsB9D;;;;;;;;GAQG;AACH,qBAAa,UAAU;IACrB,OAAO,CAAC,GAAG,CAAU;IACrB,OAAO,CAAC,IAAI,CAAS;IACrB,OAAO,CAAC,MAAM,CAA4B;IAC1C,OAAO,CAAC,GAAG,CAAgC;IAC3C,OAAO,CAAC,SAAS,CAA6B;IAC9C,OAAO,CAAC,gBAAgB,CAA2C;IAEnE;;;;;;;;;;OAUG;gBACS,IAAI,GAAE,MAAc;IAOhC;;;;;;;;;;;;;;;;;OAiBG;IACH,OAAO,CAAC,eAAe;IAWvB;;;;;;;;;;OAUG;IACH,OAAO,CAAC,WAAW;IAuInB;;;;;;;;;;;;OAYG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;YAsHd,eAAe;IAkB7B,OAAO,CAAC,UAAU;YAWJ,UAAU;IA8FjB,SAAS,CAAC,OAAO,EAAE,GAAG,GAAG,IAAI;IASpC,OAAO,CAAC,gBAAgB;IAuDxB,MAAM,IAAI,OAAO;CAGlB"}
|
package/dist/web/web.service.js
CHANGED
|
@@ -28,10 +28,10 @@ const __filename = fileURLToPath(import.meta.url);
|
|
|
28
28
|
const __dirname = path.dirname(__filename);
|
|
29
29
|
const packageRoot = path.resolve(__dirname, '..', '..');
|
|
30
30
|
import { dbService } from '../modules/db/db.service.js';
|
|
31
|
-
import { aiService } from '../modules/ai/index.js';
|
|
32
31
|
import { sessionService } from '../modules/session/index.js';
|
|
33
|
-
import {
|
|
34
|
-
import {
|
|
32
|
+
import { terminalService } from '../modules/terminal/index.js';
|
|
33
|
+
import { codeChatService } from '../services/codeChat/index.js';
|
|
34
|
+
import { commandChatService } from '../services/commandChat/index.js';
|
|
35
35
|
/**
|
|
36
36
|
* WebService 类
|
|
37
37
|
*
|
|
@@ -245,10 +245,18 @@ npm run dev
|
|
|
245
245
|
*/
|
|
246
246
|
async start() {
|
|
247
247
|
await dbService.init();
|
|
248
|
+
const { schedulerService } = await import('../modules/scheduler/index.js');
|
|
249
|
+
schedulerService.init();
|
|
248
250
|
return new Promise((resolve, reject) => {
|
|
249
251
|
this.server = http.createServer(this.app);
|
|
250
252
|
this.wss = new WebSocketServer({ server: this.server });
|
|
251
|
-
this.wss.on('connection', (ws) => {
|
|
253
|
+
this.wss.on('connection', (ws, req) => {
|
|
254
|
+
const url = req.url || '';
|
|
255
|
+
if (url.startsWith('/ws/terminal/')) {
|
|
256
|
+
const sessionId = url.replace('/ws/terminal/', '');
|
|
257
|
+
this.handleTerminalWs(ws, sessionId);
|
|
258
|
+
return;
|
|
259
|
+
}
|
|
252
260
|
this.wsClients.add(ws);
|
|
253
261
|
ws.send(JSON.stringify({ type: 'connected', message: 'WebSocket connected' }));
|
|
254
262
|
ws.on('message', async (data) => {
|
|
@@ -306,10 +314,12 @@ npm run dev
|
|
|
306
314
|
* - 如果 3 秒内未正常关闭,强制退出进程
|
|
307
315
|
* - 防止服务挂起无法退出
|
|
308
316
|
*/
|
|
309
|
-
const shutdown = () => {
|
|
317
|
+
const shutdown = async () => {
|
|
310
318
|
console.log('\n正在关闭服务...');
|
|
311
319
|
this.wss?.close();
|
|
312
|
-
this.server?.close(() => {
|
|
320
|
+
this.server?.close(async () => {
|
|
321
|
+
const { schedulerService } = await import('../modules/scheduler/index.js');
|
|
322
|
+
schedulerService.shutdown();
|
|
313
323
|
dbService.close();
|
|
314
324
|
console.log('服务已关闭');
|
|
315
325
|
process.exit(0);
|
|
@@ -381,56 +391,54 @@ npm run dev
|
|
|
381
391
|
sessionService.switchTo(session.id);
|
|
382
392
|
ws.send(JSON.stringify({ type: 'session', data: { sessionId: session.id } }));
|
|
383
393
|
console.log('[WebSocket] Chat message:', message);
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
}));
|
|
397
|
-
const stepData = {
|
|
398
|
-
iteration,
|
|
399
|
-
thought: step.thought,
|
|
400
|
-
actions,
|
|
401
|
-
success: step.observation && !step.observation.error,
|
|
402
|
-
};
|
|
403
|
-
ws.send(JSON.stringify({ type: 'step', data: stepData }));
|
|
404
|
-
if (actions.some((a) => a.actionName === 'todowrite') && step.observation?.metadata?.todos) {
|
|
405
|
-
const todos = step.observation.metadata.todos;
|
|
406
|
-
const formattedTodos = todos.map((t) => ({
|
|
407
|
-
name: t.content || t.name || '',
|
|
408
|
-
status: t.status || 'pending'
|
|
409
|
-
}));
|
|
410
|
-
ws.send(JSON.stringify({ type: 'todos', data: { todos: formattedTodos } }));
|
|
394
|
+
if (message.trim().startsWith('/')) {
|
|
395
|
+
const result = await commandChatService.handleCommand({
|
|
396
|
+
message,
|
|
397
|
+
sessionId: session.id,
|
|
398
|
+
});
|
|
399
|
+
ws.send(JSON.stringify({ type: 'command', data: result }));
|
|
400
|
+
ws.send(JSON.stringify({
|
|
401
|
+
type: 'done',
|
|
402
|
+
data: {
|
|
403
|
+
response: result.answer,
|
|
404
|
+
success: result.success,
|
|
405
|
+
commandData: result.data,
|
|
411
406
|
}
|
|
412
|
-
}
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
const defaultModel = models.find(m => m.enabled) || { name: 'gpt-4' };
|
|
419
|
-
ws.send(JSON.stringify({
|
|
420
|
-
type: 'done',
|
|
421
|
-
data: {
|
|
407
|
+
}));
|
|
408
|
+
return;
|
|
409
|
+
}
|
|
410
|
+
else {
|
|
411
|
+
const result = await codeChatService.handleChat({
|
|
412
|
+
message,
|
|
422
413
|
sessionId: session.id,
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
}
|
|
432
|
-
|
|
433
|
-
|
|
414
|
+
projectPath: session.projectPath ?? undefined,
|
|
415
|
+
abortSignal: abortController.signal,
|
|
416
|
+
onStep: (step, iteration, usage) => {
|
|
417
|
+
ws.send(JSON.stringify({ type: 'step', data: { ...step, iteration, usage: usage ? {
|
|
418
|
+
promptTokens: usage.promptTokens,
|
|
419
|
+
completionTokens: usage.completionTokens,
|
|
420
|
+
totalTokens: usage.totalTokens,
|
|
421
|
+
} : undefined } }));
|
|
422
|
+
},
|
|
423
|
+
onCompact: (info) => {
|
|
424
|
+
ws.send(JSON.stringify({ type: 'compact', data: info }));
|
|
425
|
+
},
|
|
426
|
+
});
|
|
427
|
+
ws.send(JSON.stringify({
|
|
428
|
+
type: 'done',
|
|
429
|
+
data: {
|
|
430
|
+
sessionId: session.id,
|
|
431
|
+
response: result.answer,
|
|
432
|
+
iterations: result.iterations,
|
|
433
|
+
success: result.success,
|
|
434
|
+
usage: result.usage ? {
|
|
435
|
+
promptTokens: result.usage.promptTokens,
|
|
436
|
+
completionTokens: result.usage.completionTokens,
|
|
437
|
+
totalTokens: result.usage.totalTokens,
|
|
438
|
+
} : undefined,
|
|
439
|
+
}
|
|
440
|
+
}));
|
|
441
|
+
}
|
|
434
442
|
}
|
|
435
443
|
catch (error) {
|
|
436
444
|
const errorMsg = error instanceof Error ? error.message : 'Unknown error';
|
|
@@ -462,6 +470,51 @@ npm run dev
|
|
|
462
470
|
}
|
|
463
471
|
});
|
|
464
472
|
}
|
|
473
|
+
handleTerminalWs(ws, sessionId) {
|
|
474
|
+
if (!terminalService.isSessionAlive(sessionId)) {
|
|
475
|
+
ws.send(JSON.stringify({ type: 'error', message: 'Terminal session not found' }));
|
|
476
|
+
ws.close();
|
|
477
|
+
return;
|
|
478
|
+
}
|
|
479
|
+
const platform = terminalService.getPlatform(sessionId);
|
|
480
|
+
ws.send(JSON.stringify({ type: 'platform', data: { platform } }));
|
|
481
|
+
terminalService.setCallbacks(sessionId, (data) => {
|
|
482
|
+
if (ws.readyState === WebSocket.OPEN) {
|
|
483
|
+
ws.send(JSON.stringify({ type: 'output', data }));
|
|
484
|
+
}
|
|
485
|
+
}, (code) => {
|
|
486
|
+
if (ws.readyState === WebSocket.OPEN) {
|
|
487
|
+
ws.send(JSON.stringify({ type: 'exit', code }));
|
|
488
|
+
}
|
|
489
|
+
});
|
|
490
|
+
ws.on('message', (data) => {
|
|
491
|
+
try {
|
|
492
|
+
const msg = JSON.parse(data.toString());
|
|
493
|
+
const { type, data: msgData } = msg;
|
|
494
|
+
switch (type) {
|
|
495
|
+
case 'input':
|
|
496
|
+
terminalService.write(sessionId, msgData);
|
|
497
|
+
break;
|
|
498
|
+
case 'resize':
|
|
499
|
+
terminalService.resize(sessionId, msgData.cols, msgData.rows);
|
|
500
|
+
break;
|
|
501
|
+
case 'close':
|
|
502
|
+
terminalService.deleteSession(sessionId);
|
|
503
|
+
ws.close();
|
|
504
|
+
break;
|
|
505
|
+
}
|
|
506
|
+
}
|
|
507
|
+
catch (e) {
|
|
508
|
+
ws.send(JSON.stringify({ type: 'error', message: 'Invalid message format' }));
|
|
509
|
+
}
|
|
510
|
+
});
|
|
511
|
+
ws.on('close', () => {
|
|
512
|
+
console.log(`Terminal WebSocket [${sessionId}] closed`);
|
|
513
|
+
});
|
|
514
|
+
ws.on('error', (err) => {
|
|
515
|
+
console.error(`Terminal WebSocket [${sessionId}] error:`, err);
|
|
516
|
+
});
|
|
517
|
+
}
|
|
465
518
|
getApp() {
|
|
466
519
|
return this.app;
|
|
467
520
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"web.service.js","sourceRoot":"","sources":["../../src/web/web.service.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"web.service.js","sourceRoot":"","sources":["../../src/web/web.service.ts"],"names":[],"mappings":"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"}
|