@kafca/agentdock 0.1.37 → 0.1.39

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 (53) hide show
  1. package/README.md +8 -0
  2. package/dist/renderer/assets/{Badge-CjzZp9Tf.js → Badge-B8Arb9Yy.js} +1 -1
  3. package/dist/renderer/assets/{Chat-D4_5K_Ww.js → Chat-BpHN2UcX.js} +1 -1
  4. package/dist/renderer/assets/{ChatMarkdown-DkI29dOw.js → ChatMarkdown-C_zHbGhg.js} +1 -1
  5. package/dist/renderer/assets/{Config-CnrlmSEQ.js → Config-357M6MbD.js} +1 -1
  6. package/dist/renderer/assets/{CronList-DVvInMvr.js → CronList-BHgDIhFo.js} +1 -1
  7. package/dist/renderer/assets/{Dashboard-CY4YAmVj.js → Dashboard-CZQj79ep.js} +2 -2
  8. package/dist/renderer/assets/{EmptyState-CmR947i4.js → EmptyState-DpSPN3kz.js} +1 -1
  9. package/dist/renderer/assets/{KnowledgeDetail-BvNG0inb.js → KnowledgeDetail-Cbv2Oje7.js} +1 -1
  10. package/dist/renderer/assets/{KnowledgeHome-BB0Z8VrS.js → KnowledgeHome-CEbNw_Za.js} +1 -1
  11. package/dist/renderer/assets/{Logs-IORTjnGM.js → Logs-IXayiVGS.js} +1 -1
  12. package/dist/renderer/assets/{Modal-D9NZ6cvF.js → Modal-BTKWx2e5.js} +1 -1
  13. package/dist/renderer/assets/{Page-DlvElfTz.js → Page-DCDVvqIU.js} +1 -1
  14. package/dist/renderer/assets/{ProjectDetail-Y1ZFL8W9.js → ProjectDetail-C6as_oba.js} +1 -1
  15. package/dist/renderer/assets/{ProjectList-DAI-4HU7.js → ProjectList-DJfBaPyw.js} +1 -1
  16. package/dist/renderer/assets/{Select-LMEt9yJy.js → Select-BYijPrOF.js} +1 -1
  17. package/dist/renderer/assets/{SessionChat-BWRAS_H-.js → SessionChat-KapIGn1O.js} +1 -1
  18. package/dist/renderer/assets/{SessionList-DQsxmC1n.js → SessionList-C0ATtS_m.js} +1 -1
  19. package/dist/renderer/assets/{ThreadChat-D9j78cdm.js → ThreadChat-CKWcyHia.js} +1 -1
  20. package/dist/renderer/assets/{Workspace-C-RTj4uI.js → Workspace-MYHdNNV2.js} +1 -1
  21. package/dist/renderer/assets/{arrow-left-C_ZIHUlD.js → arrow-left-Dl2cYCYQ.js} +1 -1
  22. package/dist/renderer/assets/{book-open-BuI3webp.js → book-open-CJCjYKCj.js} +1 -1
  23. package/dist/renderer/assets/{check-FA1rU94Q.js → check-Cknz-_NI.js} +1 -1
  24. package/dist/renderer/assets/{chevron-down-DvQ7Hq2s.js → chevron-down-v4poAoll.js} +1 -1
  25. package/dist/renderer/assets/{circle-DZYvZ-Iq.js → circle-BnxuF8S1.js} +1 -1
  26. package/dist/renderer/assets/{desktop-BSoKBjFu.js → desktop-B9xqa1yi.js} +1 -1
  27. package/dist/renderer/assets/{funnel-BoW8A8Fi.js → funnel-Cl1EldnW.js} +1 -1
  28. package/dist/renderer/assets/{heart-DaIdiPUs.js → heart-274KWkSA.js} +1 -1
  29. package/dist/renderer/assets/{index-Cc83IKng.js → index-CAi_EMRl.js} +2 -2
  30. package/dist/renderer/assets/{index-pdvxKnBr.js → index-GaRPrxQn.js} +1 -1
  31. package/dist/renderer/assets/{pencil-CMs10l_8.js → pencil-BfYhgp9_.js} +1 -1
  32. package/dist/renderer/assets/{play-DtT_FrBZ.js → play-CLir9KyW.js} +1 -1
  33. package/dist/renderer/assets/{plug-vKGMXapD.js → plug-CTKL_TK4.js} +1 -1
  34. package/dist/renderer/assets/{plus-DZV73wzr.js → plus-9pP7UU-H.js} +1 -1
  35. package/dist/renderer/assets/projects-DRdvUEj2.js +1 -0
  36. package/dist/renderer/assets/{save-Bus9w20l.js → save-DZOLXcQU.js} +1 -1
  37. package/dist/renderer/assets/{search-ChEC20LW.js → search-DjFl-8XR.js} +1 -1
  38. package/dist/renderer/assets/{server-B9HgN6CF.js → server-UI3KEpUw.js} +1 -1
  39. package/dist/renderer/assets/{session-utils-Bn9-xCic.js → session-utils-b9gwOizd.js} +1 -1
  40. package/dist/renderer/assets/{sessions-RUHmhxT5.js → sessions-DzSZ5A3m.js} +1 -1
  41. package/dist/renderer/assets/{shield-check-B97md1a5.js → shield-check-6fT5xdT3.js} +1 -1
  42. package/dist/renderer/assets/{trash-2-31WOGl8I.js → trash-2-DNBg0OLf.js} +1 -1
  43. package/dist/renderer/assets/{user-CLiiHYE_.js → user-B0MGTipJ.js} +1 -1
  44. package/dist/renderer/assets/{wifi-off-BKh21npc.js → wifi-off-DBxNxGco.js} +1 -1
  45. package/dist/renderer/index.html +1 -1
  46. package/dist-electron/services/local-ai-core/src/channel/lark/local-core-lark-gateway.js +24 -3
  47. package/dist-electron/services/local-ai-core/src/channel/lark/post.js +72 -0
  48. package/dist-electron/services/local-ai-core/src/channel/lark/runtime-state.js +9 -6
  49. package/dist-electron/services/local-ai-core/src/scheduler/scheduled-bridge-session.js +29 -1
  50. package/dist-electron/tests/electron/workspace-task-store.test.js +10 -0
  51. package/dist-electron/tests/integration/local-core-refactor.test.js +124 -45
  52. package/package.json +1 -1
  53. package/dist/renderer/assets/projects-BUda9SpJ.js +0 -1
@@ -24,6 +24,44 @@ const local_core_acp_progress_js_1 = require("../../services/local-ai-core/src/a
24
24
  const local_core_acp_permission_lifecycle_js_1 = require("../../services/local-ai-core/src/acp/local-core-acp-permission-lifecycle.js");
25
25
  const workspace_acp_permissions_js_1 = require("../../services/local-ai-core/src/acp/workspace-acp-permissions.js");
26
26
  const server_routes_js_1 = require("../../services/local-ai-core/src/runtime/server-routes.js");
27
+ function extractLarkCreatedMessage(request) {
28
+ const msgType = String(request.data?.msg_type || '');
29
+ const content = JSON.parse(String(request.data?.content || '{}'));
30
+ return {
31
+ msgType,
32
+ content,
33
+ text: extractLarkCreatedMessageText(msgType, content),
34
+ };
35
+ }
36
+ function extractLarkCreatedMessageText(msgType, content) {
37
+ if (msgType === 'interactive') {
38
+ return String(content.elements?.[0]?.content || '');
39
+ }
40
+ if (msgType === 'post') {
41
+ return (content.zh_cn?.content || [])
42
+ .map((line) => (Array.isArray(line) ? line : [])
43
+ .map((item) => {
44
+ if (item?.tag === 'code_block') {
45
+ const language = String(item.language || '').trim();
46
+ return `\`\`\`${language}\n${String(item.text || '')}\n\`\`\``;
47
+ }
48
+ return String(item?.text || item?.href || '');
49
+ })
50
+ .join(''))
51
+ .join('\n');
52
+ }
53
+ return String(content.text || '');
54
+ }
55
+ function findLarkPostCodeBlock(content) {
56
+ for (const line of content.zh_cn?.content || []) {
57
+ for (const item of Array.isArray(line) ? line : []) {
58
+ if (item?.tag === 'code_block') {
59
+ return item;
60
+ }
61
+ }
62
+ }
63
+ return null;
64
+ }
27
65
  (0, node_test_1.default)('local core route parser separates runtime refresh and runtime detail routes', () => {
28
66
  strict_1.default.deepEqual((0, server_routes_js_1.parseLocalAiCoreRoute)('GET', '/api/local/v1/logs'), { name: 'logs.list' });
29
67
  strict_1.default.deepEqual((0, server_routes_js_1.parseLocalAiCoreRoute)('GET', '/api/local/v1/runtimes'), { name: 'runtimes.list' });
@@ -1829,18 +1867,20 @@ const server_routes_js_1 = require("../../services/local-ai-core/src/runtime/ser
1829
1867
  strict_1.default.deepEqual(logs, []);
1830
1868
  });
1831
1869
  (0, node_test_1.default)('lark bridge sends completed thought once before final answer', async () => {
1832
- const createdCards = [];
1870
+ const createdMessages = [];
1833
1871
  const patchedCards = [];
1834
1872
  const storedMessageIds = [];
1835
1873
  const client = {
1836
1874
  im: {
1837
1875
  message: {
1838
1876
  create: async (request) => {
1839
- const messageId = `lark-msg-${createdCards.length + 1}`;
1840
- const card = JSON.parse(String(request.data.content || '{}'));
1841
- createdCards.push({
1877
+ const messageId = `lark-msg-${createdMessages.length + 1}`;
1878
+ const message = extractLarkCreatedMessage(request);
1879
+ createdMessages.push({
1842
1880
  messageId,
1843
- text: String(card.elements?.[0]?.content || ''),
1881
+ msgType: message.msgType,
1882
+ text: message.text,
1883
+ content: message.content,
1844
1884
  });
1845
1885
  return { data: { message_id: messageId } };
1846
1886
  },
@@ -1909,25 +1949,27 @@ const server_routes_js_1 = require("../../services/local-ai-core/src/runtime/ser
1909
1949
  replyCtx: 'run-1',
1910
1950
  content: '最终回答',
1911
1951
  });
1912
- strict_1.default.equal(createdCards.length, 2);
1913
- strict_1.default.equal(createdCards[0]?.text, '先理解问题,再检查代码');
1914
- strict_1.default.equal(createdCards[1]?.text, '最终回答');
1952
+ strict_1.default.deepEqual(createdMessages.map((message) => message.msgType), ['interactive', 'post']);
1953
+ strict_1.default.equal(createdMessages[0]?.text, '先理解问题,再检查代码');
1954
+ strict_1.default.equal(createdMessages[1]?.text, '最终回答');
1915
1955
  strict_1.default.equal(patchedCards.length, 0);
1916
1956
  strict_1.default.deepEqual(storedMessageIds, ['lark-msg-2']);
1917
1957
  });
1918
- (0, node_test_1.default)('lark bridge sends final reply as its own card instead of streaming draft', async () => {
1919
- const createdCards = [];
1958
+ (0, node_test_1.default)('lark bridge sends final reply as its own post message instead of streaming draft', async () => {
1959
+ const createdMessages = [];
1920
1960
  const patchedCards = [];
1921
1961
  const storedMessageIds = [];
1922
1962
  const client = {
1923
1963
  im: {
1924
1964
  message: {
1925
1965
  create: async (request) => {
1926
- const messageId = `lark-msg-${createdCards.length + 1}`;
1927
- const card = JSON.parse(String(request.data.content || '{}'));
1928
- createdCards.push({
1966
+ const messageId = `lark-msg-${createdMessages.length + 1}`;
1967
+ const message = extractLarkCreatedMessage(request);
1968
+ createdMessages.push({
1929
1969
  messageId,
1930
- text: String(card.elements?.[0]?.content || ''),
1970
+ msgType: message.msgType,
1971
+ text: message.text,
1972
+ content: message.content,
1931
1973
  });
1932
1974
  return { data: { message_id: messageId } };
1933
1975
  },
@@ -1986,22 +2028,25 @@ const server_routes_js_1 = require("../../services/local-ai-core/src/runtime/ser
1986
2028
  replyCtx: 'run-1',
1987
2029
  content: '真正最终回答',
1988
2030
  });
1989
- strict_1.default.deepEqual(createdCards.map((card) => card.text), ['真正最终回答']);
2031
+ strict_1.default.deepEqual(createdMessages.map((message) => message.msgType), ['post']);
2032
+ strict_1.default.deepEqual(createdMessages.map((message) => message.text), ['真正最终回答']);
1990
2033
  strict_1.default.deepEqual(patchedCards, []);
1991
2034
  strict_1.default.deepEqual(storedMessageIds, ['lark-msg-1']);
1992
2035
  });
1993
- (0, node_test_1.default)('lark bridge creates final replies without patching prior final cards', async () => {
1994
- const createdCards = [];
2036
+ (0, node_test_1.default)('lark bridge creates final replies without patching prior final messages', async () => {
2037
+ const createdMessages = [];
1995
2038
  const patchedCards = [];
1996
2039
  const client = {
1997
2040
  im: {
1998
2041
  message: {
1999
2042
  create: async (request) => {
2000
- const messageId = `lark-msg-${createdCards.length + 1}`;
2001
- const card = JSON.parse(String(request.data.content || '{}'));
2002
- createdCards.push({
2043
+ const messageId = `lark-msg-${createdMessages.length + 1}`;
2044
+ const message = extractLarkCreatedMessage(request);
2045
+ createdMessages.push({
2003
2046
  messageId,
2004
- text: String(card.elements?.[0]?.content || ''),
2047
+ msgType: message.msgType,
2048
+ text: message.text,
2049
+ content: message.content,
2005
2050
  });
2006
2051
  return { data: { message_id: messageId } };
2007
2052
  },
@@ -2058,22 +2103,25 @@ const server_routes_js_1 = require("../../services/local-ai-core/src/runtime/ser
2058
2103
  replyCtx: 'run-2',
2059
2104
  content: 'second final',
2060
2105
  });
2061
- strict_1.default.deepEqual(createdCards.map((card) => card.text), ['first final', 'second final']);
2106
+ strict_1.default.deepEqual(createdMessages.map((message) => message.msgType), ['post', 'post']);
2107
+ strict_1.default.deepEqual(createdMessages.map((message) => message.text), ['first final', 'second final']);
2062
2108
  strict_1.default.deepEqual(patchedCards, []);
2063
2109
  });
2064
- (0, node_test_1.default)('lark bridge sends tool and final as separate cards without patching tool progress', async () => {
2065
- const createdCards = [];
2110
+ (0, node_test_1.default)('lark bridge sends tool and final as separate post messages without patching tool progress', async () => {
2111
+ const createdMessages = [];
2066
2112
  const patchedCards = [];
2067
2113
  const storedMessageIds = [];
2068
2114
  const client = {
2069
2115
  im: {
2070
2116
  message: {
2071
2117
  create: async (request) => {
2072
- const messageId = `lark-msg-${createdCards.length + 1}`;
2073
- const card = JSON.parse(String(request.data.content || '{}'));
2074
- createdCards.push({
2118
+ const messageId = `lark-msg-${createdMessages.length + 1}`;
2119
+ const message = extractLarkCreatedMessage(request);
2120
+ createdMessages.push({
2075
2121
  messageId,
2076
- text: String(card.elements?.[0]?.content || ''),
2122
+ msgType: message.msgType,
2123
+ text: message.text,
2124
+ content: message.content,
2077
2125
  });
2078
2126
  return { data: { message_id: messageId } };
2079
2127
  },
@@ -2146,7 +2194,8 @@ const server_routes_js_1 = require("../../services/local-ai-core/src/runtime/ser
2146
2194
  replyCtx: 'run-1',
2147
2195
  content: '好的,文件存在,现在发送给你:已发送!`CLAUDE.md` 文件已经发出去了,请查收',
2148
2196
  });
2149
- strict_1.default.deepEqual(createdCards.map((card) => card.text), [
2197
+ strict_1.default.deepEqual(createdMessages.map((message) => message.msgType), ['post', 'post']);
2198
+ strict_1.default.deepEqual(createdMessages.map((message) => message.text), [
2150
2199
  '🔧 bash',
2151
2200
  '好的,文件存在,现在发送给你:已发送!`CLAUDE.md` 文件已经发出去了,请查收',
2152
2201
  ]);
@@ -2154,18 +2203,20 @@ const server_routes_js_1 = require("../../services/local-ai-core/src/runtime/ser
2154
2203
  strict_1.default.deepEqual(storedMessageIds, ['lark-msg-2']);
2155
2204
  });
2156
2205
  (0, node_test_1.default)('lark bridge flushes interleaved thought segments before tools and final', async () => {
2157
- const createdCards = [];
2206
+ const createdMessages = [];
2158
2207
  const patchedCards = [];
2159
2208
  const storedMessageIds = [];
2160
2209
  const client = {
2161
2210
  im: {
2162
2211
  message: {
2163
2212
  create: async (request) => {
2164
- const messageId = `lark-msg-${createdCards.length + 1}`;
2165
- const card = JSON.parse(String(request.data.content || '{}'));
2166
- createdCards.push({
2213
+ const messageId = `lark-msg-${createdMessages.length + 1}`;
2214
+ const message = extractLarkCreatedMessage(request);
2215
+ createdMessages.push({
2167
2216
  messageId,
2168
- text: String(card.elements?.[0]?.content || ''),
2217
+ msgType: message.msgType,
2218
+ text: message.text,
2219
+ content: message.content,
2169
2220
  });
2170
2221
  return { data: { message_id: messageId } };
2171
2222
  },
@@ -2272,12 +2323,18 @@ const server_routes_js_1 = require("../../services/local-ai-core/src/runtime/ser
2272
2323
  replyCtx: 'run-1',
2273
2324
  content: '最终回答',
2274
2325
  });
2275
- strict_1.default.deepEqual(createdCards.map((card) => card.text), [
2326
+ strict_1.default.deepEqual(createdMessages.map((message) => message.msgType), ['interactive', 'post', 'interactive', 'post']);
2327
+ strict_1.default.deepEqual(createdMessages.map((message) => message.text), [
2276
2328
  '先理解用户需求',
2277
- '🔧 Terminal\n\n参数:`{"command":"uname -a","description":"Get system info"}`',
2329
+ '🔧 Terminal\n\n```json\n{\n "command": "uname -a",\n "description": "Get system info"\n}\n```',
2278
2330
  '看到了 Linux',
2279
2331
  '最终回答',
2280
2332
  ]);
2333
+ strict_1.default.deepEqual(findLarkPostCodeBlock(createdMessages[1]?.content), {
2334
+ tag: 'code_block',
2335
+ language: 'json',
2336
+ text: '{\n "command": "uname -a",\n "description": "Get system info"\n}',
2337
+ });
2281
2338
  strict_1.default.deepEqual(patchedCards, []);
2282
2339
  strict_1.default.deepEqual(storedMessageIds, ['lark-msg-4']);
2283
2340
  });
@@ -2488,7 +2545,7 @@ const server_routes_js_1 = require("../../services/local-ai-core/src/runtime/ser
2488
2545
  strict_1.default.equal(patchedCards[0]?.card?.elements?.some((element) => element.tag === 'action'), false);
2489
2546
  });
2490
2547
  (0, node_test_1.default)('lark allow all card action preserves the final reply after tool execution', async () => {
2491
- const createdCards = [];
2548
+ const createdMessages = [];
2492
2549
  const patchedCards = [];
2493
2550
  let nextMessageId = 1;
2494
2551
  let gateway;
@@ -2497,9 +2554,12 @@ const server_routes_js_1 = require("../../services/local-ai-core/src/runtime/ser
2497
2554
  message: {
2498
2555
  create: async (request) => {
2499
2556
  const messageId = `card-${nextMessageId++}`;
2500
- createdCards.push({
2557
+ const message = extractLarkCreatedMessage(request);
2558
+ createdMessages.push({
2501
2559
  messageId,
2502
- card: JSON.parse(String(request.data.content || '{}')),
2560
+ msgType: message.msgType,
2561
+ text: message.text,
2562
+ content: message.content,
2503
2563
  });
2504
2564
  return { data: { message_id: messageId } };
2505
2565
  },
@@ -2595,17 +2655,18 @@ const server_routes_js_1 = require("../../services/local-ai-core/src/runtime/ser
2595
2655
  });
2596
2656
  strict_1.default.equal(patchedCards[0]?.messageId, 'permission-msg-1');
2597
2657
  strict_1.default.match(patchedCards[0]?.card?.elements?.[0]?.content || '', /工具确认已处理/);
2598
- strict_1.default.equal(createdCards.length, 1);
2599
- strict_1.default.match(createdCards[0]?.card?.elements?.[0]?.content || '', /桌面文件列表/);
2658
+ strict_1.default.equal(createdMessages.length, 1);
2659
+ strict_1.default.equal(createdMessages[0]?.msgType, 'post');
2660
+ strict_1.default.match(createdMessages[0]?.text || '', /桌面文件列表/);
2600
2661
  });
2601
2662
  (0, node_test_1.default)('lark channel sends tool name and parameters once without streaming output', async () => {
2602
- const createdCards = [];
2663
+ const createdMessages = [];
2603
2664
  const patchedCards = [];
2604
2665
  const client = {
2605
2666
  im: {
2606
2667
  message: {
2607
2668
  create: async (request) => {
2608
- createdCards.push(JSON.parse(String(request.data.content || '{}')));
2669
+ createdMessages.push(extractLarkCreatedMessage(request));
2609
2670
  return { data: { message_id: 'tool-msg-1' } };
2610
2671
  },
2611
2672
  patch: async (request) => {
@@ -2674,9 +2735,16 @@ const server_routes_js_1 = require("../../services/local-ai-core/src/runtime/ser
2674
2735
  output: 'secret terminal output',
2675
2736
  },
2676
2737
  });
2677
- const text = createdCards[0]?.elements?.[0]?.content || '';
2738
+ const text = createdMessages[0]?.text || '';
2739
+ strict_1.default.equal(createdMessages[0]?.msgType, 'post');
2678
2740
  strict_1.default.match(text, /🔧 Terminal/);
2679
- strict_1.default.match(text, /参数:`\{"command":"ls ~\/Desktop"\}`/);
2741
+ strict_1.default.match(text, /```json\n{\n "command": "ls ~\/Desktop"\n}\n```/);
2742
+ strict_1.default.doesNotMatch(text, /参数/);
2743
+ strict_1.default.deepEqual(findLarkPostCodeBlock(createdMessages[0]?.content), {
2744
+ tag: 'code_block',
2745
+ language: 'json',
2746
+ text: '{\n "command": "ls ~/Desktop"\n}',
2747
+ });
2680
2748
  strict_1.default.equal(patchedCards.length, 0);
2681
2749
  strict_1.default.doesNotMatch(text, /completed/);
2682
2750
  strict_1.default.doesNotMatch(text, /secret terminal output/);
@@ -3362,6 +3430,7 @@ const server_routes_js_1 = require("../../services/local-ai-core/src/runtime/ser
3362
3430
  },
3363
3431
  });
3364
3432
  strict_1.default.equal(completed.text, '🔧 bash: Tool update');
3433
+ strict_1.default.equal(completed.delivery, 'message');
3365
3434
  });
3366
3435
  (0, node_test_1.default)('ACP skips empty generic running tool updates', () => {
3367
3436
  const appended = [];
@@ -3726,6 +3795,7 @@ const server_routes_js_1 = require("../../services/local-ai-core/src/runtime/ser
3726
3795
  updatedAt: '2026-04-22T06:00:00.000Z',
3727
3796
  };
3728
3797
  let registeredBridge;
3798
+ const bridgeEvents = [];
3729
3799
  let unregisteredBridge = false;
3730
3800
  const policy = (0, lark_execution_policies_js_1.createLarkExecutionPolicy)(job, {
3731
3801
  store: {},
@@ -3735,6 +3805,9 @@ const server_routes_js_1 = require("../../services/local-ai-core/src/runtime/ser
3735
3805
  createThread: async () => ({ id: 'thread-new' }),
3736
3806
  },
3737
3807
  getChannelRuntime: () => ({
3808
+ onBridgeEvent: async (event) => {
3809
+ bridgeEvents.push(event);
3810
+ },
3738
3811
  registerScheduledThreadBridge: (input) => {
3739
3812
  registeredBridge = input;
3740
3813
  return () => {
@@ -3753,6 +3826,12 @@ const server_routes_js_1 = require("../../services/local-ai-core/src/runtime/ser
3753
3826
  threadId: 'thread-scheduled',
3754
3827
  sessionKey: 'session:thread-scheduled',
3755
3828
  });
3829
+ strict_1.default.deepEqual(bridgeEvents[0], {
3830
+ type: 'status',
3831
+ sessionKey: 'session:thread-scheduled',
3832
+ bridgeKind: 'status',
3833
+ content: '⏰ two-minute ping',
3834
+ });
3756
3835
  policy.afterExecute?.(target, job);
3757
3836
  strict_1.default.equal(unregisteredBridge, true);
3758
3837
  });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kafca/agentdock",
3
- "version": "0.1.37",
3
+ "version": "0.1.39",
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-Cc83IKng.js";const e=()=>t.get("/projects"),r=o=>t.get(`/projects/${o}`);export{r as g,e as l};