@kafca/agentdock 0.1.53 → 0.1.54
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/renderer/assets/{Badge-pBiMqECO.js → Badge-Rs12sArE.js} +1 -1
- package/dist/renderer/assets/{Chat-pQVBr82B.js → Chat-C9KfsjuN.js} +1 -1
- package/dist/renderer/assets/{ChatMarkdown-SCxRo6-e.js → ChatMarkdown-C3m7Mxpl.js} +1 -1
- package/dist/renderer/assets/{Config-DRtyF20X.js → Config-BhIq2lQa.js} +1 -1
- package/dist/renderer/assets/{CronList-BA5hVrYp.js → CronList-CenDzorW.js} +1 -1
- package/dist/renderer/assets/{Dashboard-p3yI0Fck.js → Dashboard-BmeP5ocP.js} +2 -2
- package/dist/renderer/assets/{EmptyState-Dgh25c2x.js → EmptyState-BGONB4VS.js} +1 -1
- package/dist/renderer/assets/{KnowledgeDetail-CuC3Cjg1.js → KnowledgeDetail-Ba3PuI7k.js} +1 -1
- package/dist/renderer/assets/{KnowledgeHome-CH4GqtEZ.js → KnowledgeHome-DkKXM7Bd.js} +1 -1
- package/dist/renderer/assets/{Logs-BQrm2cq-.js → Logs-DTITWY-y.js} +1 -1
- package/dist/renderer/assets/{Modal-DfZsUS3Q.js → Modal-BvFew60s.js} +1 -1
- package/dist/renderer/assets/{MonitorList-CDWGIf1Q.js → MonitorList-DruqInIG.js} +1 -1
- package/dist/renderer/assets/{Page-CpmZ134Z.js → Page-CLjmm8c6.js} +1 -1
- package/dist/renderer/assets/{ProjectDetail-B-Kwqodz.js → ProjectDetail-BCFaJig0.js} +1 -1
- package/dist/renderer/assets/{ProjectList-DtNT6dv-.js → ProjectList-Btg-mgwA.js} +1 -1
- package/dist/renderer/assets/{Select--_s_a1uj.js → Select-CAwaG7ol.js} +1 -1
- package/dist/renderer/assets/{SessionChat-BHfKpufe.js → SessionChat-CHPrm0Zs.js} +1 -1
- package/dist/renderer/assets/{SessionList-B0kQz-Ms.js → SessionList-0aGulton.js} +1 -1
- package/dist/renderer/assets/{ThreadChat-CRb6Z42k.js → ThreadChat-BkSc0hKN.js} +1 -1
- package/dist/renderer/assets/{Workspace-j-O-14yC.js → Workspace-DXJ3BGia.js} +1 -1
- package/dist/renderer/assets/{arrow-left-DnhnG-Tj.js → arrow-left-Co19QKUc.js} +1 -1
- package/dist/renderer/assets/{book-open-Dgp3xcUz.js → book-open-CtlUo2yw.js} +1 -1
- package/dist/renderer/assets/{bot-BollztzX.js → bot-D-3jCeDr.js} +1 -1
- package/dist/renderer/assets/{check-BHj-iSsR.js → check-Cf5Y5H-1.js} +1 -1
- package/dist/renderer/assets/{chevron-down-CeXCREMg.js → chevron-down-D1tfS-tx.js} +1 -1
- package/dist/renderer/assets/{circle-B3eGQ-H3.js → circle-DJOCyk2U.js} +1 -1
- package/dist/renderer/assets/{desktop-B5cYIqJH.js → desktop-CmZMgSXn.js} +1 -1
- package/dist/renderer/assets/{funnel-BkgiQrZC.js → funnel-ZRCc1DCy.js} +1 -1
- package/dist/renderer/assets/{heart-C-H_BPOT.js → heart-BuJEvv8x.js} +1 -1
- package/dist/renderer/assets/{index-C97cND_H.js → index-0gZsyozU.js} +1 -1
- package/dist/renderer/assets/{index-CYaol0bB.js → index-CDWUe2Sw.js} +2 -2
- package/dist/renderer/assets/{pencil-DBHjVmSd.js → pencil-sISh8tMs.js} +1 -1
- package/dist/renderer/assets/{play-Cu9TIeSO.js → play-CccQpZit.js} +1 -1
- package/dist/renderer/assets/{plus-PaUGBkMK.js → plus-hxAkcfQ0.js} +1 -1
- package/dist/renderer/assets/projects-CjdfXQ1l.js +1 -0
- package/dist/renderer/assets/{save-dm5NifZE.js → save-By5b-_0Q.js} +1 -1
- package/dist/renderer/assets/{search-Cq8cwrp6.js → search-CLzr87Rw.js} +1 -1
- package/dist/renderer/assets/{server-DwiMsKFq.js → server-CubB1eW5.js} +1 -1
- package/dist/renderer/assets/{session-utils-CD2tqK35.js → session-utils-Cz45af_C.js} +1 -1
- package/dist/renderer/assets/{sessions-quZ-oFVW.js → sessions-C8np5fRp.js} +1 -1
- package/dist/renderer/assets/{shield-check-B9UsjycW.js → shield-check-CemAc1Ry.js} +1 -1
- package/dist/renderer/assets/{trash-2-CitZGPQS.js → trash-2-DFKhii8D.js} +1 -1
- package/dist/renderer/assets/{user-BgVotGiF.js → user-CaR8Rru_.js} +1 -1
- package/dist/renderer/assets/{wifi-off-CMgxdgfX.js → wifi-off-C8miJu8i.js} +1 -1
- package/dist/renderer/index.html +1 -1
- package/dist-electron/services/local-ai-core/src/runtime/agent-runtime-detector.js +1 -1
- package/dist-electron/services/local-ai-core/src/scheduler/channel-execution-policy.js +11 -7
- package/dist-electron/tests/integration/local-core-refactor.test.js +51 -2
- package/package.json +1 -1
- package/dist/renderer/assets/projects-BmW4zbEE.js +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{D as t}from"./index-CDWUe2Sw.js";const e=()=>t.get("/projects"),r=o=>t.get(`/projects/${o}`);export{r as g,e as l};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{D as o}from"./index-
|
|
1
|
+
import{D as o}from"./index-CDWUe2Sw.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};
|
package/dist/renderer/index.html
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
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-
|
|
8
|
+
<script type="module" crossorigin src="./assets/index-CDWUe2Sw.js"></script>
|
|
9
9
|
<link rel="stylesheet" crossorigin href="./assets/index-CjCuR6DI.css">
|
|
10
10
|
</head>
|
|
11
11
|
<body class="bg-[#f5f5f7] dark:bg-[#151516]">
|
|
@@ -12,7 +12,7 @@ function detectInstalledAgentRuntimes(options = {}) {
|
|
|
12
12
|
const env = options.env || process.env;
|
|
13
13
|
const configuredCommands = collectConfiguredAgentCommands(options.config);
|
|
14
14
|
const detectedAt = (options.now || new Date()).toISOString();
|
|
15
|
-
const versionTimeoutMs = options.versionTimeoutMs ??
|
|
15
|
+
const versionTimeoutMs = options.versionTimeoutMs ?? 3000;
|
|
16
16
|
const agentTypes = options.runtimeId
|
|
17
17
|
? desktop_js_1.DESKTOP_AGENT_TYPE_OPTIONS.filter((agentType) => agentType === options.runtimeId)
|
|
18
18
|
: desktop_js_1.DESKTOP_AGENT_TYPE_OPTIONS;
|
|
@@ -53,11 +53,11 @@ class SideThreadChannelExecutionPolicy {
|
|
|
53
53
|
title,
|
|
54
54
|
...(this.config.legacySideThreadTitles?.(job) || []),
|
|
55
55
|
]);
|
|
56
|
-
const
|
|
56
|
+
const targetAgent = await this.resolveTargetAgent(job);
|
|
57
57
|
const existing = (await this.options.workspaceRouter.listThreads(job.workspaceId))
|
|
58
|
-
.find((thread) => reusableTitles.has(thread.title) && this.
|
|
58
|
+
.find((thread) => reusableTitles.has(thread.title) && this.threadMatchesTargetAgent(thread, targetAgent));
|
|
59
59
|
const threadId = existing?.id
|
|
60
|
-
|| (await this.options.workspaceRouter.createThread(job.workspaceId, title,
|
|
60
|
+
|| (await this.options.workspaceRouter.createThread(job.workspaceId, title, targetAgent || undefined)).id;
|
|
61
61
|
return {
|
|
62
62
|
kind: `${this.config.platformBase}:side-thread`,
|
|
63
63
|
threadId,
|
|
@@ -78,11 +78,15 @@ class SideThreadChannelExecutionPolicy {
|
|
|
78
78
|
await this.bridgeSession?.close();
|
|
79
79
|
this.bridgeSession = undefined;
|
|
80
80
|
}
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
81
|
+
async resolveTargetAgent(job) {
|
|
82
|
+
const preferredAgent = normalizeAgentType(this.config.preferredAgentType?.(job));
|
|
83
|
+
if (preferredAgent) {
|
|
84
|
+
return preferredAgent;
|
|
84
85
|
}
|
|
85
|
-
return normalizeAgentType(
|
|
86
|
+
return normalizeAgentType(await this.options.workspaceRouter.getWorkspaceDefaultAgentType(job.workspaceId));
|
|
87
|
+
}
|
|
88
|
+
threadMatchesTargetAgent(thread, targetAgent) {
|
|
89
|
+
return normalizeAgentType(thread.agentType) === targetAgent;
|
|
86
90
|
}
|
|
87
91
|
}
|
|
88
92
|
function normalizeAgentType(value) {
|
|
@@ -824,7 +824,8 @@ const thread_slash_command_dispatcher_js_1 = require("../../services/local-ai-co
|
|
|
824
824
|
store: {},
|
|
825
825
|
workspaceRouter: {
|
|
826
826
|
getThreadSessionKey: (threadId) => `session:${threadId}`,
|
|
827
|
-
|
|
827
|
+
getWorkspaceDefaultAgentType: async () => 'claudecode',
|
|
828
|
+
listThreads: async () => [{ id: 'thread-scheduled', title: '[Scheduled] two-minute ping', agentType: 'claudecode' }],
|
|
828
829
|
createThread: async () => ({ id: 'thread-new' }),
|
|
829
830
|
},
|
|
830
831
|
getChannelRuntime: () => ({
|
|
@@ -998,6 +999,7 @@ const thread_slash_command_dispatcher_js_1 = require("../../services/local-ai-co
|
|
|
998
999
|
store: {},
|
|
999
1000
|
workspaceRouter: {
|
|
1000
1001
|
getThreadSessionKey: (threadId) => `session:${threadId}`,
|
|
1002
|
+
getWorkspaceDefaultAgentType: async () => 'pi',
|
|
1001
1003
|
listThreads: async () => [],
|
|
1002
1004
|
createThread: async (workspaceId, title, agentType) => {
|
|
1003
1005
|
createThreadCalls.push({ workspaceId, title: title || '', agentType });
|
|
@@ -1011,7 +1013,54 @@ const thread_slash_command_dispatcher_js_1 = require("../../services/local-ai-co
|
|
|
1011
1013
|
const target = await policy.resolveTarget(job);
|
|
1012
1014
|
strict_1.default.equal(target.threadId, 'thread-new');
|
|
1013
1015
|
strict_1.default.equal(createThreadCalls.length, 1);
|
|
1014
|
-
strict_1.default.
|
|
1016
|
+
strict_1.default.deepEqual(createThreadCalls[0], {
|
|
1017
|
+
workspaceId: '知识库',
|
|
1018
|
+
title: '[Scheduled:Lark] two-minute ping',
|
|
1019
|
+
agentType: 'pi',
|
|
1020
|
+
});
|
|
1021
|
+
});
|
|
1022
|
+
(0, node_test_1.default)('lark side-thread execution policy skips reusable threads with a different workspace default agent', async () => {
|
|
1023
|
+
const job = {
|
|
1024
|
+
id: 'job-1',
|
|
1025
|
+
workspaceId: '知识库',
|
|
1026
|
+
platform: 'lark',
|
|
1027
|
+
route: { type: 'channel.chat', channelId: 'chat-1', participantId: 'user-1', threadId: 'thread-origin' },
|
|
1028
|
+
executionMode: 'side-thread',
|
|
1029
|
+
triggerType: 'cron',
|
|
1030
|
+
cronExpr: '*/2 * * * *',
|
|
1031
|
+
promptTemplate: 'ping',
|
|
1032
|
+
description: 'two-minute ping',
|
|
1033
|
+
enabled: true,
|
|
1034
|
+
concurrencyPolicy: 'skip_if_running',
|
|
1035
|
+
createdAt: '2026-04-22T06:00:00.000Z',
|
|
1036
|
+
updatedAt: '2026-04-22T06:00:00.000Z',
|
|
1037
|
+
};
|
|
1038
|
+
const createThreadCalls = [];
|
|
1039
|
+
const policy = (0, lark_execution_policies_js_1.createLarkExecutionPolicy)(job, {
|
|
1040
|
+
store: {},
|
|
1041
|
+
workspaceRouter: {
|
|
1042
|
+
getThreadSessionKey: (threadId) => `session:${threadId}`,
|
|
1043
|
+
getWorkspaceDefaultAgentType: async () => 'claudecode',
|
|
1044
|
+
listThreads: async () => [
|
|
1045
|
+
{ id: 'thread-old-codex', title: '[Scheduled:Lark] two-minute ping', agentType: 'codex' },
|
|
1046
|
+
],
|
|
1047
|
+
createThread: async (workspaceId, title, agentType) => {
|
|
1048
|
+
createThreadCalls.push({ workspaceId, title: title || '', agentType });
|
|
1049
|
+
return { id: 'thread-new-claudecode' };
|
|
1050
|
+
},
|
|
1051
|
+
},
|
|
1052
|
+
getChannelRuntime: () => ({
|
|
1053
|
+
registerScheduledThreadBridge: () => () => { },
|
|
1054
|
+
}),
|
|
1055
|
+
}, async () => 'thread-origin', () => '');
|
|
1056
|
+
const target = await policy.resolveTarget(job);
|
|
1057
|
+
strict_1.default.equal(target.threadId, 'thread-new-claudecode');
|
|
1058
|
+
strict_1.default.equal(createThreadCalls.length, 1);
|
|
1059
|
+
strict_1.default.deepEqual(createThreadCalls[0], {
|
|
1060
|
+
workspaceId: '知识库',
|
|
1061
|
+
title: '[Scheduled:Lark] two-minute ping',
|
|
1062
|
+
agentType: 'claudecode',
|
|
1063
|
+
});
|
|
1015
1064
|
});
|
|
1016
1065
|
(0, node_test_1.default)('lark same-thread execution policy keeps the original thread target', async () => {
|
|
1017
1066
|
const job = {
|
package/package.json
CHANGED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{D as t}from"./index-CYaol0bB.js";const e=()=>t.get("/projects"),r=o=>t.get(`/projects/${o}`);export{r as g,e as l};
|