@kafca/agentdock 0.1.45 → 0.1.47

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.
Files changed (106) hide show
  1. package/README.md +11 -0
  2. package/dist/renderer/assets/{Badge-BIojwD6s.js → Badge-BYREM3t3.js} +1 -1
  3. package/dist/renderer/assets/Chat-Dtb5X7sB.js +2 -0
  4. package/dist/renderer/assets/{ChatMarkdown-DqszsPB_.js → ChatMarkdown-_slLloCh.js} +1 -1
  5. package/dist/renderer/assets/Config-pHichs7H.js +21 -0
  6. package/dist/renderer/assets/CronList-CJQMeCjz.js +1 -0
  7. package/dist/renderer/assets/Dashboard-CY77Imde.js +26 -0
  8. package/dist/renderer/assets/{EmptyState-BqCx1oWr.js → EmptyState-DCqmct2y.js} +1 -1
  9. package/dist/renderer/assets/{KnowledgeDetail-BwK8Gpfa.js → KnowledgeDetail-DFrxa-pv.js} +1 -1
  10. package/dist/renderer/assets/KnowledgeHome-DL-vAfrH.js +11 -0
  11. package/dist/renderer/assets/Logs-jw9Uv590.js +1 -0
  12. package/dist/renderer/assets/{Modal-D2U4r2V0.js → Modal-ChSm7tk6.js} +1 -1
  13. package/dist/renderer/assets/MonitorList-DrEwyS71.js +1 -0
  14. package/dist/renderer/assets/{Page-urf5GcT_.js → Page-DhD-zgMU.js} +1 -1
  15. package/dist/renderer/assets/ProjectDetail-BVSjpfpL.js +11 -0
  16. package/dist/renderer/assets/ProjectList-CHGbTJjk.js +1 -0
  17. package/dist/renderer/assets/{Select-CAscWpy5.js → Select-rHs9CSam.js} +1 -1
  18. package/dist/renderer/assets/SessionChat-CDc2FNMA.js +1 -0
  19. package/dist/renderer/assets/SessionList-Mr1uAnRW.js +1 -0
  20. package/dist/renderer/assets/ThreadChat-Detu5UfN.js +23 -0
  21. package/dist/renderer/assets/Workspace-MRRg8ndJ.js +19 -0
  22. package/dist/renderer/assets/{arrow-left-7HrNuS-V.js → arrow-left-BU2NB2LA.js} +1 -1
  23. package/dist/renderer/assets/{book-open-BDoAu82s.js → book-open-D-TGvWwa.js} +1 -1
  24. package/dist/renderer/assets/bot-IYNh8tH5.js +6 -0
  25. package/dist/renderer/assets/{check-DGlyq4xX.js → check-CCZ0JO_S.js} +1 -1
  26. package/dist/renderer/assets/{chevron-down-Bb_3EHq9.js → chevron-down-00bRZi15.js} +1 -1
  27. package/dist/renderer/assets/{circle-DIpqZnYw.js → circle-CpQ8x4k_.js} +1 -1
  28. package/dist/renderer/assets/{desktop-Ci1fnRDR.js → desktop-D0k2aGSj.js} +1 -1
  29. package/dist/renderer/assets/{desktop-Do_UrC-o.js → desktop-JQkhNOF4.js} +1 -1
  30. package/dist/renderer/assets/{funnel-Bbf0ERLP.js → funnel-UbcrCBCp.js} +1 -1
  31. package/dist/renderer/assets/{heart-CGqU-qfw.js → heart-DvLsV7tL.js} +1 -1
  32. package/dist/renderer/assets/{index-Df-Trovt.js → index-B2L4G-b_.js} +1 -1
  33. package/dist/renderer/assets/index-CO4fGqmv.css +11 -0
  34. package/dist/renderer/assets/{index-DwhTjLA1.js → index-dy-g2Bh4.js} +3 -3
  35. package/dist/renderer/assets/{pencil-CHiy1MvK.js → pencil-qBYOgW5M.js} +1 -1
  36. package/dist/renderer/assets/{play-CGYnmC4Q.js → play-Dn6b4AGj.js} +1 -1
  37. package/dist/renderer/assets/{plus-B_Q5-Oj7.js → plus-CaApUwEm.js} +1 -1
  38. package/dist/renderer/assets/projects-BwF5RlNV.js +1 -0
  39. package/dist/renderer/assets/save-CN6yvTfD.js +11 -0
  40. package/dist/renderer/assets/{search-D8Dkhsyq.js → search-Dn2MxYiO.js} +1 -1
  41. package/dist/renderer/assets/{server-Cd96R7WL.js → server-DpcVLHeh.js} +1 -1
  42. package/dist/renderer/assets/{session-utils-BNUbQBfF.js → session-utils-DnD2Q_y1.js} +1 -1
  43. package/dist/renderer/assets/{sessions-BACfV8s1.js → sessions-eK5D4FLt.js} +1 -1
  44. package/dist/renderer/assets/{shield-check-Cnn-yQUA.js → shield-check-DSSJkacw.js} +1 -1
  45. package/dist/renderer/assets/{trash-2-oWCxwQ9D.js → trash-2-DmYJlEvO.js} +1 -1
  46. package/dist/renderer/assets/user-Cvf_uiyQ.js +6 -0
  47. package/dist/renderer/assets/{wifi-off-DHxnNkdY.js → wifi-off-CCTloj-V.js} +1 -1
  48. package/dist/renderer/index.html +2 -2
  49. package/dist-electron/services/local-ai-core/src/acp/local-core-acp-session-coordinator.js +2 -1
  50. package/dist-electron/services/local-ai-core/src/agents/pi/launch.js +1 -1
  51. package/dist-electron/services/local-ai-core/src/agents/shared/launch-utils.js +22 -0
  52. package/dist-electron/services/local-ai-core/src/channel/lark/inbound.js +55 -1
  53. package/dist-electron/services/local-ai-core/src/channel/lark/local-core-lark-gateway.js +132 -348
  54. package/dist-electron/services/local-ai-core/src/channel/shared/base-channel-gateway.js +303 -0
  55. package/dist-electron/services/local-ai-core/src/channel/weixin/local-core-weixin-gateway.js +131 -382
  56. package/dist-electron/services/local-ai-core/src/runtime/agent-runtime-detector.js +2 -1
  57. package/dist-electron/services/local-ai-core/src/runtime/channel-service.js +150 -0
  58. package/dist-electron/services/local-ai-core/src/runtime/env-utils.js +12 -0
  59. package/dist-electron/services/local-ai-core/src/runtime/external-service.js +234 -0
  60. package/dist-electron/services/local-ai-core/src/runtime/handlers/automation-handler.js +34 -0
  61. package/dist-electron/services/local-ai-core/src/runtime/handlers/capabilities-handler.js +12 -0
  62. package/dist-electron/services/local-ai-core/src/runtime/handlers/channel-handler.js +65 -0
  63. package/dist-electron/services/local-ai-core/src/runtime/handlers/external-handler.js +17 -0
  64. package/dist-electron/services/local-ai-core/src/runtime/handlers/knowledge-handler.js +65 -0
  65. package/dist-electron/services/local-ai-core/src/runtime/handlers/openai-handler.js +496 -0
  66. package/dist-electron/services/local-ai-core/src/runtime/handlers/provider-handler.js +24 -0
  67. package/dist-electron/services/local-ai-core/src/runtime/handlers/runtime-handler.js +68 -0
  68. package/dist-electron/services/local-ai-core/src/runtime/handlers/runtimes-handler.js +37 -0
  69. package/dist-electron/services/local-ai-core/src/runtime/handlers/scheduler-handler.js +34 -0
  70. package/dist-electron/services/local-ai-core/src/runtime/handlers/security-handler.js +49 -0
  71. package/dist-electron/services/local-ai-core/src/runtime/handlers/task-handler.js +27 -0
  72. package/dist-electron/services/local-ai-core/src/runtime/handlers/thread-handler.js +42 -0
  73. package/dist-electron/services/local-ai-core/src/runtime/handlers/workspace-handler.js +29 -0
  74. package/dist-electron/services/local-ai-core/src/runtime/local-core-controller.js +40 -592
  75. package/dist-electron/services/local-ai-core/src/runtime/server-helpers.js +96 -0
  76. package/dist-electron/services/local-ai-core/src/runtime/server.js +107 -1084
  77. package/dist-electron/services/local-ai-core/src/runtime/standalone.js +13 -1
  78. package/dist-electron/src/pages/Projects/project-provider-config.js +75 -0
  79. package/dist-electron/tests/contracts/architecture-docs.test.js +1 -0
  80. package/dist-electron/tests/electron/agent-runtime-detector.test.js +18 -0
  81. package/dist-electron/tests/electron/knowledge-skill-script.test.js +15 -5
  82. package/dist-electron/tests/electron/lac-cli.test.js +591 -688
  83. package/dist-electron/tests/electron/plugin-kernel.test.js +47 -31
  84. package/dist-electron/tests/electron/project-provider-config.test.js +71 -0
  85. package/dist-electron/tests/electron/workspace-task-store.test.js +19 -9
  86. package/dist-electron/tests/integration/lark-gateway.test.js +80 -0
  87. package/dist-electron/tests/integration/local-core-cors.test.js +22 -0
  88. package/package.json +1 -1
  89. package/dist/renderer/assets/Chat-wjBR3XEX.js +0 -2
  90. package/dist/renderer/assets/Config-BDCHs5A2.js +0 -21
  91. package/dist/renderer/assets/CronList-CEWQYTov.js +0 -1
  92. package/dist/renderer/assets/Dashboard-DrWftfk3.js +0 -26
  93. package/dist/renderer/assets/KnowledgeHome-hhDTZMDO.js +0 -11
  94. package/dist/renderer/assets/Logs-C9xPEhFT.js +0 -1
  95. package/dist/renderer/assets/MonitorList-CayKbfwJ.js +0 -1
  96. package/dist/renderer/assets/ProjectDetail-B1GyAr7a.js +0 -11
  97. package/dist/renderer/assets/ProjectList-BoipQypE.js +0 -1
  98. package/dist/renderer/assets/SessionChat-BAVy5221.js +0 -1
  99. package/dist/renderer/assets/SessionList-BZpuMvh0.js +0 -1
  100. package/dist/renderer/assets/ThreadChat-JX7m9biG.js +0 -23
  101. package/dist/renderer/assets/Workspace-CFW8otjU.js +0 -14
  102. package/dist/renderer/assets/index-RaTga2BC.css +0 -11
  103. package/dist/renderer/assets/plug-Mexu4gyV.js +0 -6
  104. package/dist/renderer/assets/projects-C6bbkC-O.js +0 -1
  105. package/dist/renderer/assets/save-CJ_QFPw0.js +0 -6
  106. package/dist/renderer/assets/user-BzE9BwsY.js +0 -11
@@ -1,4 +1,4 @@
1
- import{c as a}from"./index-DwhTjLA1.js";/**
1
+ import{c as a}from"./index-dy-g2Bh4.js";/**
2
2
  * @license lucide-react v0.487.0 - ISC
3
3
  *
4
4
  * This source code is licensed under the ISC license.
@@ -1,4 +1,4 @@
1
- import{c as o}from"./index-DwhTjLA1.js";/**
1
+ import{c as o}from"./index-dy-g2Bh4.js";/**
2
2
  * @license lucide-react v0.487.0 - ISC
3
3
  *
4
4
  * This source code is licensed under the ISC license.
@@ -1,4 +1,4 @@
1
- import{c as e}from"./index-DwhTjLA1.js";/**
1
+ import{c as e}from"./index-dy-g2Bh4.js";/**
2
2
  * @license lucide-react v0.487.0 - ISC
3
3
  *
4
4
  * This source code is licensed under the ISC license.
@@ -0,0 +1 @@
1
+ import{A as t}from"./index-dy-g2Bh4.js";const e=()=>t.get("/projects"),r=o=>t.get(`/projects/${o}`);export{r as g,e as l};
@@ -0,0 +1,11 @@
1
+ import{c as a}from"./index-dy-g2Bh4.js";/**
2
+ * @license lucide-react v0.487.0 - ISC
3
+ *
4
+ * This source code is licensed under the ISC license.
5
+ * See the LICENSE file in the root directory of this source tree.
6
+ */const t=[["path",{d:"M12 22v-5",key:"1ega77"}],["path",{d:"M9 8V2",key:"14iosj"}],["path",{d:"M15 8V2",key:"18g5xt"}],["path",{d:"M18 8v5a4 4 0 0 1-4 4h-4a4 4 0 0 1-4-4V8Z",key:"osxo6l"}]],c=a("plug",t);/**
7
+ * @license lucide-react v0.487.0 - ISC
8
+ *
9
+ * This source code is licensed under the ISC license.
10
+ * See the LICENSE file in the root directory of this source tree.
11
+ */const e=[["path",{d:"M15.2 3a2 2 0 0 1 1.4.6l3.8 3.8a2 2 0 0 1 .6 1.4V19a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2z",key:"1c8476"}],["path",{d:"M17 21v-7a1 1 0 0 0-1-1H8a1 1 0 0 0-1 1v7",key:"1ydtos"}],["path",{d:"M7 3v4a1 1 0 0 0 1 1h7",key:"t51u73"}]],d=a("save",e);export{c as P,d as S};
@@ -1,4 +1,4 @@
1
- import{c}from"./index-DwhTjLA1.js";/**
1
+ import{c}from"./index-dy-g2Bh4.js";/**
2
2
  * @license lucide-react v0.487.0 - ISC
3
3
  *
4
4
  * This source code is licensed under the ISC license.
@@ -1,4 +1,4 @@
1
- import{c as e}from"./index-DwhTjLA1.js";/**
1
+ import{c as e}from"./index-dy-g2Bh4.js";/**
2
2
  * @license lucide-react v0.487.0 - ISC
3
3
  *
4
4
  * This source code is licensed under the ISC license.
@@ -1,4 +1,4 @@
1
- import{c as o}from"./index-DwhTjLA1.js";/**
1
+ import{c as o}from"./index-dy-g2Bh4.js";/**
2
2
  * @license lucide-react v0.487.0 - ISC
3
3
  *
4
4
  * This source code is licensed under the ISC license.
@@ -1 +1 @@
1
- import{A as o}from"./index-DwhTjLA1.js";const i=s=>o.get(`/projects/${s}/sessions`),c=(s,e,t)=>o.get(`/projects/${s}/sessions/${e}`,{history_limit:String(t)}),r=(s,e,t)=>o.patch(`/projects/${s}/sessions/${e}`,t),a=(s,e)=>o.delete(`/projects/${s}/sessions/${e}`),p=(s,e)=>o.post(`/projects/${s}/sessions/switch`,e),$=(s,e)=>o.post(`/projects/${s}/send`,e);export{$ as a,a as d,c as g,i as l,r,p as s};
1
+ import{A as o}from"./index-dy-g2Bh4.js";const i=s=>o.get(`/projects/${s}/sessions`),c=(s,e,t)=>o.get(`/projects/${s}/sessions/${e}`,{history_limit:String(t)}),r=(s,e,t)=>o.patch(`/projects/${s}/sessions/${e}`,t),a=(s,e)=>o.delete(`/projects/${s}/sessions/${e}`),p=(s,e)=>o.post(`/projects/${s}/sessions/switch`,e),$=(s,e)=>o.post(`/projects/${s}/send`,e);export{$ as a,a as d,c as g,i as l,r,p as s};
@@ -1,4 +1,4 @@
1
- import{c}from"./index-DwhTjLA1.js";/**
1
+ import{c}from"./index-dy-g2Bh4.js";/**
2
2
  * @license lucide-react v0.487.0 - ISC
3
3
  *
4
4
  * This source code is licensed under the ISC license.
@@ -1,4 +1,4 @@
1
- import{c as e}from"./index-DwhTjLA1.js";/**
1
+ import{c as e}from"./index-dy-g2Bh4.js";/**
2
2
  * @license lucide-react v0.487.0 - ISC
3
3
  *
4
4
  * This source code is licensed under the ISC license.
@@ -0,0 +1,6 @@
1
+ import{c}from"./index-dy-g2Bh4.js";/**
2
+ * @license lucide-react v0.487.0 - ISC
3
+ *
4
+ * This source code is licensed under the ISC license.
5
+ * See the LICENSE file in the root directory of this source tree.
6
+ */const e=[["path",{d:"M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2",key:"975kel"}],["circle",{cx:"12",cy:"7",r:"4",key:"17ys0d"}]],r=c("user",e);export{r as U};
@@ -1,4 +1,4 @@
1
- import{c as a}from"./index-DwhTjLA1.js";/**
1
+ import{c as a}from"./index-dy-g2Bh4.js";/**
2
2
  * @license lucide-react v0.487.0 - ISC
3
3
  *
4
4
  * This source code is licensed under the ISC license.
@@ -5,8 +5,8 @@
5
5
  <link rel="icon" type="image/svg+xml" href="./favicon.svg" />
6
6
  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
7
7
  <title>AgentDock</title>
8
- <script type="module" crossorigin src="./assets/index-DwhTjLA1.js"></script>
9
- <link rel="stylesheet" crossorigin href="./assets/index-RaTga2BC.css">
8
+ <script type="module" crossorigin src="./assets/index-dy-g2Bh4.js"></script>
9
+ <link rel="stylesheet" crossorigin href="./assets/index-CO4fGqmv.css">
10
10
  </head>
11
11
  <body class="bg-[#f5f5f7] dark:bg-[#151516]">
12
12
  <div id="root"></div>
@@ -5,6 +5,7 @@ exports.buildAgentPath = buildAgentPath;
5
5
  const node_path_1 = require("node:path");
6
6
  const node_os_1 = require("node:os");
7
7
  const scheduled_job_route_js_1 = require("../scheduler/scheduled-job-route.js");
8
+ const env_utils_js_1 = require("../runtime/env-utils.js");
8
9
  class LocalCoreAcpSessionCoordinator {
9
10
  options;
10
11
  sessions = new Map();
@@ -69,7 +70,7 @@ class LocalCoreAcpSessionCoordinator {
69
70
  threadId,
70
71
  bridgeSessionKey,
71
72
  config,
72
- runtimeEnv: this.buildAgentRuntimeEnv(threadId, String(baseEnv.PATH || ''), options.runtimeEnv, options.runId),
73
+ runtimeEnv: this.buildAgentRuntimeEnv(threadId, (0, env_utils_js_1.getPathEnv)(baseEnv), options.runtimeEnv, options.runId),
73
74
  });
74
75
  session.launchPermissionMode = permissionMode;
75
76
  session.launchConfigKey = configKey;
@@ -10,7 +10,7 @@ function resolvePiModel(input) {
10
10
  }
11
11
  function buildPiLaunchConfig(input) {
12
12
  const bundledPiAcp = (0, launch_utils_js_1.resolveBundledAcpCommand)(desktop_js_1.DESKTOP_PI_ACP_PACKAGE, 'pi-acp');
13
- const bundledPiCommand = (0, launch_utils_js_1.resolveBundledAcpCommand)(desktop_js_1.DESKTOP_PI_CODING_AGENT_PACKAGE, 'pi').args[0];
13
+ const bundledPiCommand = (0, launch_utils_js_1.resolveBundledBinCommand)(desktop_js_1.DESKTOP_PI_CODING_AGENT_PACKAGE, 'pi');
14
14
  return {
15
15
  command: bundledPiAcp.command,
16
16
  args: [...bundledPiAcp.args],
@@ -9,6 +9,7 @@ exports.ensurePrivateDir = ensurePrivateDir;
9
9
  exports.writeJsonFile = writeJsonFile;
10
10
  exports.projectLocalStateDir = projectLocalStateDir;
11
11
  exports.resolveBundledAcpCommand = resolveBundledAcpCommand;
12
+ exports.resolveBundledBinCommand = resolveBundledBinCommand;
12
13
  exports.resolveBundledPackageJsonPath = resolveBundledPackageJsonPath;
13
14
  const node_module_1 = require("node:module");
14
15
  const node_fs_1 = require("node:fs");
@@ -94,6 +95,27 @@ function resolveBundledAcpCommand(packageName, binName) {
94
95
  args: [(0, node_path_1.resolve)((0, node_path_1.dirname)(packageJsonPath), relativeBinPath)],
95
96
  };
96
97
  }
98
+ function resolveBundledBinCommand(packageName, binName) {
99
+ if (process.platform === 'win32') {
100
+ const shim = resolveBundledWindowsBinShim(packageName, binName);
101
+ if (shim) {
102
+ return shim;
103
+ }
104
+ }
105
+ return resolveBundledAcpCommand(packageName, binName).args[0];
106
+ }
107
+ function resolveBundledWindowsBinShim(packageName, binName) {
108
+ const require = (0, node_module_1.createRequire)(__filename);
109
+ for (const basePath of require.resolve.paths(packageName) || []) {
110
+ for (const extension of ['.CMD', '.cmd', '.BAT', '.bat']) {
111
+ const candidate = (0, node_path_1.resolve)(basePath, '.bin', `${binName}${extension}`);
112
+ if ((0, node_fs_1.existsSync)(candidate)) {
113
+ return candidate;
114
+ }
115
+ }
116
+ }
117
+ return '';
118
+ }
97
119
  function resolveBundledPackageJsonPath(packageName) {
98
120
  const require = (0, node_module_1.createRequire)(__filename);
99
121
  try {
@@ -32,7 +32,10 @@ function normalizeLarkInboundMessageEvent(data, options = {}) {
32
32
  detail: `chat=${String(message.chat_id || '')} message=${String(message.message_id || '')}`,
33
33
  };
34
34
  }
35
- const text = stripLarkMentions(String(parsedContent.text || '').trim(), mentions, botOpenId);
35
+ const rawText = messageType === 'post'
36
+ ? extractLarkPostText(parsedContent, botOpenId)
37
+ : String(parsedContent.text || '').trim();
38
+ const text = stripLarkMentions(rawText, mentions, botOpenId);
36
39
  const platformUserId = String(sender.sender_id?.user_id || sender.sender_id?.open_id || '').trim();
37
40
  const chatId = String(message.chat_id || platformUserId).trim();
38
41
  if (!platformUserId || !chatId) {
@@ -112,3 +115,54 @@ function getMentionOpenId(item) {
112
115
  const id = item.id || item.user_id || item.userId || {};
113
116
  return String(id.open_id || id.openId || item.open_id || item.openId || '').trim();
114
117
  }
118
+ function extractLarkPostText(content, botOpenId) {
119
+ const title = String(content.title || '').trim();
120
+ const lines = readLarkPostLines(content)
121
+ .map((line) => readLarkPostLineText(line, botOpenId).trim())
122
+ .filter(Boolean);
123
+ return [
124
+ ...(title ? [title] : []),
125
+ ...lines,
126
+ ].join('\n').trim();
127
+ }
128
+ function readLarkPostLines(content) {
129
+ const directContent = content.content;
130
+ if (Array.isArray(directContent)) {
131
+ return directContent;
132
+ }
133
+ const localizedContent = content.zh_cn?.content || content.en_us?.content;
134
+ return Array.isArray(localizedContent) ? localizedContent : [];
135
+ }
136
+ function readLarkPostLineText(line, botOpenId) {
137
+ if (Array.isArray(line)) {
138
+ return line.map((item) => readLarkPostInlineText(item, botOpenId)).join('');
139
+ }
140
+ return readLarkPostInlineText(line, botOpenId);
141
+ }
142
+ function readLarkPostInlineText(item, botOpenId) {
143
+ if (!item || typeof item !== 'object') {
144
+ return '';
145
+ }
146
+ const node = item;
147
+ const tag = String(node.tag || '').trim().toLowerCase();
148
+ if (tag === 'at') {
149
+ if (botOpenId && getMentionOpenId(node) === botOpenId) {
150
+ return '';
151
+ }
152
+ const name = String(node.user_name || node.name || node.display_name || node.text || '').trim();
153
+ return name ? `@${name}` : '';
154
+ }
155
+ if (tag === 'a') {
156
+ return String(node.text || node.href || '').trim();
157
+ }
158
+ if (typeof node.text === 'string') {
159
+ return node.text;
160
+ }
161
+ if (Array.isArray(node.children)) {
162
+ return node.children.map((child) => readLarkPostInlineText(child, botOpenId)).join('');
163
+ }
164
+ if (Array.isArray(node.content)) {
165
+ return node.content.map((child) => readLarkPostInlineText(child, botOpenId)).join('');
166
+ }
167
+ return '';
168
+ }