@kafca/agentdock 0.1.36 → 0.1.37

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 (62) hide show
  1. package/README.md +5 -0
  2. package/dist/renderer/assets/{Badge-DUa4J-09.js → Badge-CjzZp9Tf.js} +1 -1
  3. package/dist/renderer/assets/{Chat-B1FWuTWV.js → Chat-D4_5K_Ww.js} +1 -1
  4. package/dist/renderer/assets/{ChatMarkdown-DqOgFSgI.js → ChatMarkdown-DkI29dOw.js} +1 -1
  5. package/dist/renderer/assets/{Config-CM5bqUrV.js → Config-CnrlmSEQ.js} +1 -1
  6. package/dist/renderer/assets/{CronList-CfXE7S0M.js → CronList-DVvInMvr.js} +1 -1
  7. package/dist/renderer/assets/{Dashboard-D5Dwbotu.js → Dashboard-CY4YAmVj.js} +2 -2
  8. package/dist/renderer/assets/{EmptyState-Bs_6ISc0.js → EmptyState-CmR947i4.js} +1 -1
  9. package/dist/renderer/assets/{KnowledgeDetail-0kdWnKyy.js → KnowledgeDetail-BvNG0inb.js} +1 -1
  10. package/dist/renderer/assets/{KnowledgeHome-Bg8xbRe2.js → KnowledgeHome-BB0Z8VrS.js} +1 -1
  11. package/dist/renderer/assets/{Logs-BfgvW7qZ.js → Logs-IORTjnGM.js} +1 -1
  12. package/dist/renderer/assets/{Modal-BkuKCDDx.js → Modal-D9NZ6cvF.js} +1 -1
  13. package/dist/renderer/assets/{Page-ddaAS_jP.js → Page-DlvElfTz.js} +1 -1
  14. package/dist/renderer/assets/{ProjectDetail-C9x-Ib5p.js → ProjectDetail-Y1ZFL8W9.js} +1 -1
  15. package/dist/renderer/assets/{ProjectList-XIIikxrj.js → ProjectList-DAI-4HU7.js} +1 -1
  16. package/dist/renderer/assets/{Select-BBL_5aa5.js → Select-LMEt9yJy.js} +1 -1
  17. package/dist/renderer/assets/{SessionChat-BFsTM0c7.js → SessionChat-BWRAS_H-.js} +1 -1
  18. package/dist/renderer/assets/{SessionList-DWh6n10K.js → SessionList-DQsxmC1n.js} +1 -1
  19. package/dist/renderer/assets/{ThreadChat-CzPiDA92.js → ThreadChat-D9j78cdm.js} +1 -1
  20. package/dist/renderer/assets/{Workspace-BW8v3Nia.js → Workspace-C-RTj4uI.js} +1 -1
  21. package/dist/renderer/assets/{arrow-left-CcoHvwbx.js → arrow-left-C_ZIHUlD.js} +1 -1
  22. package/dist/renderer/assets/{book-open-RweyWxPq.js → book-open-BuI3webp.js} +1 -1
  23. package/dist/renderer/assets/{check-B5YOrBNT.js → check-FA1rU94Q.js} +1 -1
  24. package/dist/renderer/assets/{chevron-down-HjaPrxdd.js → chevron-down-DvQ7Hq2s.js} +1 -1
  25. package/dist/renderer/assets/{circle-C-aaO7LR.js → circle-DZYvZ-Iq.js} +1 -1
  26. package/dist/renderer/assets/{desktop-DUWkNnbA.js → desktop-BSoKBjFu.js} +1 -1
  27. package/dist/renderer/assets/{funnel-IWZmi-_V.js → funnel-BoW8A8Fi.js} +1 -1
  28. package/dist/renderer/assets/{heart-DM5_F2nX.js → heart-DaIdiPUs.js} +1 -1
  29. package/dist/renderer/assets/{index-Bin2xyBS.js → index-Cc83IKng.js} +2 -2
  30. package/dist/renderer/assets/{index-DvIUdsAm.js → index-pdvxKnBr.js} +1 -1
  31. package/dist/renderer/assets/{pencil-DcxwCYPi.js → pencil-CMs10l_8.js} +1 -1
  32. package/dist/renderer/assets/{play-DUdnnxLC.js → play-DtT_FrBZ.js} +1 -1
  33. package/dist/renderer/assets/{plug-B-rDbk24.js → plug-vKGMXapD.js} +1 -1
  34. package/dist/renderer/assets/{plus-DslMGvrO.js → plus-DZV73wzr.js} +1 -1
  35. package/dist/renderer/assets/projects-BUda9SpJ.js +1 -0
  36. package/dist/renderer/assets/{save-DlkR3jLs.js → save-Bus9w20l.js} +1 -1
  37. package/dist/renderer/assets/{search-ULTp3p_0.js → search-ChEC20LW.js} +1 -1
  38. package/dist/renderer/assets/{server-DBdiKfv9.js → server-B9HgN6CF.js} +1 -1
  39. package/dist/renderer/assets/{session-utils-BPyVVONo.js → session-utils-Bn9-xCic.js} +1 -1
  40. package/dist/renderer/assets/{sessions-B0NecMYO.js → sessions-RUHmhxT5.js} +1 -1
  41. package/dist/renderer/assets/{shield-check-BNSk8nza.js → shield-check-B97md1a5.js} +1 -1
  42. package/dist/renderer/assets/{trash-2-CGydl763.js → trash-2-31WOGl8I.js} +1 -1
  43. package/dist/renderer/assets/{user-D1xkQo35.js → user-CLiiHYE_.js} +1 -1
  44. package/dist/renderer/assets/{wifi-off-Iy1XPeZ3.js → wifi-off-BKh21npc.js} +1 -1
  45. package/dist/renderer/index.html +1 -1
  46. package/dist-electron/services/local-ai-core/src/acp/local-core-acp-store.js +22 -7
  47. package/dist-electron/services/local-ai-core/src/acp/local-core-acp-turn-coordinator.js +2 -1
  48. package/dist-electron/services/local-ai-core/src/channel/lark/local-core-lark-gateway.js +37 -7
  49. package/dist-electron/services/local-ai-core/src/channel/weixin/local-core-weixin-gateway.js +31 -1
  50. package/dist-electron/services/local-ai-core/src/scheduler/channel-execution-policy.js +79 -0
  51. package/dist-electron/services/local-ai-core/src/scheduler/lark-execution-policies.js +7 -61
  52. package/dist-electron/services/local-ai-core/src/scheduler/lark-schedule-adapter.js +3 -12
  53. package/dist-electron/services/local-ai-core/src/scheduler/local-schedule-adapter.js +23 -30
  54. package/dist-electron/services/local-ai-core/src/scheduler/scheduled-bridge-session.js +27 -0
  55. package/dist-electron/services/local-ai-core/src/scheduler/scheduler-run-lifecycle.js +13 -1
  56. package/dist-electron/services/local-ai-core/src/scheduler/scheduler-service.js +1 -1
  57. package/dist-electron/services/local-ai-core/src/scheduler/weixin-execution-policies.js +7 -61
  58. package/dist-electron/services/local-ai-core/src/scheduler/weixin-schedule-adapter.js +3 -12
  59. package/dist-electron/tests/electron/workspace-task-store.test.js +178 -28
  60. package/dist-electron/tests/integration/local-core-refactor.test.js +58 -5
  61. package/package.json +1 -1
  62. package/dist/renderer/assets/projects-JFuOB4DM.js +0 -1
@@ -3628,6 +3628,8 @@ const server_routes_js_1 = require("../../services/local-ai-core/src/runtime/ser
3628
3628
  strict_1.default.equal(result.runId, 'run-local-1');
3629
3629
  strict_1.default.equal(result.replyText, 'local done');
3630
3630
  strict_1.default.equal(result.platformMessageId, undefined);
3631
+ strict_1.default.equal(result.deliveryMode, 'thread-only');
3632
+ strict_1.default.equal(result.deliveryStatus, 'succeeded');
3631
3633
  });
3632
3634
  (0, node_test_1.default)('scheduler run lifecycle updates run and job state through explicit transitions', () => {
3633
3635
  const emittedRuns = [];
@@ -3678,6 +3680,10 @@ const server_routes_js_1 = require("../../services/local-ai-core/src/runtime/ser
3678
3680
  threadId: 'thread-1',
3679
3681
  runId: 'run-1',
3680
3682
  platformMessageId: 'msg-1',
3683
+ platformMessageIds: ['msg-1', 'msg-2'],
3684
+ deliveryMode: 'bridge-stream',
3685
+ deliveryStatus: 'succeeded',
3686
+ lastBridgeEventAt: '2026-04-22T06:00:03.000Z',
3681
3687
  }, true);
3682
3688
  strict_1.default.deepEqual(emittedRuns, [
3683
3689
  'run-1:queued',
@@ -3685,6 +3691,23 @@ const server_routes_js_1 = require("../../services/local-ai-core/src/runtime/ser
3685
3691
  'run-1:succeeded',
3686
3692
  ]);
3687
3693
  strict_1.default.deepEqual(emittedJobs, ['job-1:false']);
3694
+ strict_1.default.deepEqual(runs.get(queued.id), {
3695
+ id: 'run-1',
3696
+ jobId: 'job-1',
3697
+ status: 'succeeded',
3698
+ triggeredAt: '2026-04-22T06:00:00.000Z',
3699
+ deliveryStatus: 'succeeded',
3700
+ startedAt: runs.get(queued.id).startedAt,
3701
+ finishedAt: runs.get(queued.id).finishedAt,
3702
+ threadId: 'thread-1',
3703
+ runId: 'run-1',
3704
+ platformMessageId: 'msg-1',
3705
+ platformMessageIds: ['msg-1', 'msg-2'],
3706
+ deliveryMode: 'bridge-stream',
3707
+ deliveryError: '',
3708
+ lastBridgeEventAt: '2026-04-22T06:00:03.000Z',
3709
+ error: '',
3710
+ });
3688
3711
  });
3689
3712
  (0, node_test_1.default)('lark side-thread execution policy reuses a dedicated scheduled thread', async () => {
3690
3713
  const job = {
@@ -3702,19 +3725,36 @@ const server_routes_js_1 = require("../../services/local-ai-core/src/runtime/ser
3702
3725
  createdAt: '2026-04-22T06:00:00.000Z',
3703
3726
  updatedAt: '2026-04-22T06:00:00.000Z',
3704
3727
  };
3728
+ let registeredBridge;
3729
+ let unregisteredBridge = false;
3705
3730
  const policy = (0, lark_execution_policies_js_1.createLarkExecutionPolicy)(job, {
3706
3731
  store: {},
3707
3732
  workspaceRouter: {
3733
+ getThreadSessionKey: (threadId) => `session:${threadId}`,
3708
3734
  listThreads: async () => [{ id: 'thread-scheduled', title: '[Scheduled] two-minute ping' }],
3709
3735
  createThread: async () => ({ id: 'thread-new' }),
3710
3736
  },
3711
3737
  getChannelRuntime: () => ({
3712
- muteThreadBridge: () => { },
3713
- unmuteThreadBridge: () => { },
3738
+ registerScheduledThreadBridge: (input) => {
3739
+ registeredBridge = input;
3740
+ return () => {
3741
+ unregisteredBridge = true;
3742
+ };
3743
+ },
3714
3744
  }),
3715
3745
  }, async () => 'thread-origin');
3716
3746
  const target = await policy.resolveTarget(job);
3717
3747
  strict_1.default.equal(target.threadId, 'thread-scheduled');
3748
+ await policy.beforeExecute?.(target, job);
3749
+ strict_1.default.deepEqual(registeredBridge, {
3750
+ workspaceId: '知识库',
3751
+ platform: 'lark',
3752
+ route: { type: 'channel.chat', channelId: 'chat-1', participantId: 'user-1', threadId: 'thread-origin' },
3753
+ threadId: 'thread-scheduled',
3754
+ sessionKey: 'session:thread-scheduled',
3755
+ });
3756
+ policy.afterExecute?.(target, job);
3757
+ strict_1.default.equal(unregisteredBridge, true);
3718
3758
  });
3719
3759
  (0, node_test_1.default)('lark same-thread execution policy keeps the original thread target', async () => {
3720
3760
  const job = {
@@ -3732,16 +3772,29 @@ const server_routes_js_1 = require("../../services/local-ai-core/src/runtime/ser
3732
3772
  createdAt: '2026-04-22T06:00:00.000Z',
3733
3773
  updatedAt: '2026-04-22T06:00:00.000Z',
3734
3774
  };
3775
+ let registeredBridge;
3735
3776
  const policy = (0, lark_execution_policies_js_1.createLarkExecutionPolicy)(job, {
3736
3777
  store: {},
3737
- workspaceRouter: {},
3778
+ workspaceRouter: {
3779
+ getThreadSessionKey: (threadId) => `session:${threadId}`,
3780
+ },
3738
3781
  getChannelRuntime: () => ({
3739
- muteThreadBridge: () => { },
3740
- unmuteThreadBridge: () => { },
3782
+ registerScheduledThreadBridge: (input) => {
3783
+ registeredBridge = input;
3784
+ return () => { };
3785
+ },
3741
3786
  }),
3742
3787
  }, async () => 'thread-origin');
3743
3788
  const target = await policy.resolveTarget(job);
3744
3789
  strict_1.default.equal(target.threadId, 'thread-origin');
3790
+ await policy.beforeExecute?.(target, job);
3791
+ strict_1.default.deepEqual(registeredBridge, {
3792
+ workspaceId: '知识库',
3793
+ platform: 'lark',
3794
+ route: { type: 'channel.chat', channelId: 'chat-1', participantId: 'user-1', threadId: 'thread-origin' },
3795
+ threadId: 'thread-origin',
3796
+ sessionKey: 'session:thread-origin',
3797
+ });
3745
3798
  });
3746
3799
  (0, node_test_1.default)('weixin channel can request a QR code without platform options', async () => {
3747
3800
  const originalFetch = globalThis.fetch;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kafca/agentdock",
3
- "version": "0.1.36",
3
+ "version": "0.1.37",
4
4
  "license": "PolyForm-Noncommercial-1.0.0",
5
5
  "type": "module",
6
6
  "main": "dist-electron/electron/main.js",
@@ -1 +0,0 @@
1
- import{z as t}from"./index-Bin2xyBS.js";const e=()=>t.get("/projects"),r=o=>t.get(`/projects/${o}`);export{r as g,e as l};