@kafca/agentdock 0.1.55 → 0.1.57

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 (185) hide show
  1. package/README.md +14 -0
  2. package/dist/renderer/assets/{Badge-Bg_nNvBL.js → Badge-CDTbmw1h.js} +1 -1
  3. package/dist/renderer/assets/Card-DayUo35w.js +1 -0
  4. package/dist/renderer/assets/Config-ByGMQuzR.js +21 -0
  5. package/dist/renderer/assets/CronList-XqHdVlgu.js +1 -0
  6. package/dist/renderer/assets/Dashboard-CZj-oANw.js +41 -0
  7. package/dist/renderer/assets/{EmptyState-C60g3RMj.js → EmptyState-EFMkOjZO.js} +1 -1
  8. package/dist/renderer/assets/HighlightedMarkdown-DyvF3DHK.js +12 -0
  9. package/dist/renderer/assets/Input-DxoWVc9d.js +1 -0
  10. package/dist/renderer/assets/{KnowledgeDetail-CC5C7JYe.js → KnowledgeDetail-CbUb2tG7.js} +2 -2
  11. package/dist/renderer/assets/{KnowledgeHome-3rlvxgWf.js → KnowledgeHome-BWV1gz4f.js} +3 -3
  12. package/dist/renderer/assets/Logs-DqnanQTc.js +6 -0
  13. package/dist/renderer/assets/{Modal-BQUW9LSf.js → Modal-yY7TzR0x.js} +3 -3
  14. package/dist/renderer/assets/MonitorList-CIjGQkFs.js +1 -0
  15. package/dist/renderer/assets/Page-vwHNUdoj.js +1 -0
  16. package/dist/renderer/assets/{Select-CfRkos3z.js → Select-CmbK36pN.js} +2 -2
  17. package/dist/renderer/assets/ThreadChat-4OceMgM4.js +86 -0
  18. package/dist/renderer/assets/Workspace-DplPJOjJ.js +19 -0
  19. package/dist/renderer/assets/{arrow-left-D1DbXrLA.js → arrow-left-C8HfBt2K.js} +1 -1
  20. package/dist/renderer/assets/{book-open-BxC1z1C1.js → book-open-BCdZWncQ.js} +1 -1
  21. package/dist/renderer/assets/channels-hgO3cAIx.js +6 -0
  22. package/dist/renderer/assets/chevron-down-BPk77tqY.js +11 -0
  23. package/dist/renderer/assets/index-BIKL3fTP.css +11 -0
  24. package/dist/renderer/assets/index-BlA4xPdd.js +41 -0
  25. package/dist/renderer/assets/index-wYpjqVqC.js +167 -0
  26. package/dist/renderer/assets/knowledge-7pl06KuH.js +1 -0
  27. package/dist/renderer/assets/{pencil-X44UaxwR.js → pencil-CB1SWZ9A.js} +1 -1
  28. package/dist/renderer/assets/{play-ujo-De38.js → play-BvsoXUrM.js} +1 -1
  29. package/dist/renderer/assets/{plus-BHgVdG_A.js → plus-CokBDnaL.js} +1 -1
  30. package/dist/renderer/assets/{save-Cz6giKrE.js → save-D-w4kATO.js} +1 -1
  31. package/dist/renderer/assets/{search-DKWvTqi5.js → search-Cnsn6i4Q.js} +1 -1
  32. package/dist/renderer/assets/{shield-check-V82O8AC1.js → shield-check-Cjja2Gh6.js} +1 -1
  33. package/dist/renderer/assets/threads-BCm6j4eI.js +1 -0
  34. package/dist/renderer/assets/{trash-2-_Fgwk8mc.js → trash-2-CIxz9qYY.js} +1 -1
  35. package/dist/renderer/index.html +2 -2
  36. package/dist-electron/packages/contracts/src/automation.js +2 -0
  37. package/dist-electron/packages/contracts/src/channels.js +2 -0
  38. package/dist-electron/packages/contracts/src/knowledge.js +2 -0
  39. package/dist-electron/packages/contracts/src/local-core.js +15 -0
  40. package/dist-electron/packages/contracts/src/runtime.js +2 -0
  41. package/dist-electron/packages/contracts/src/scheduler.js +2 -0
  42. package/dist-electron/packages/contracts/src/threads.js +2 -0
  43. package/dist-electron/packages/core-sdk/src/automation.js +32 -0
  44. package/dist-electron/packages/core-sdk/src/channels.js +121 -0
  45. package/dist-electron/packages/core-sdk/src/client.js +455 -0
  46. package/dist-electron/packages/core-sdk/src/index.js +43 -607
  47. package/dist-electron/packages/core-sdk/src/knowledge.js +85 -0
  48. package/dist-electron/packages/core-sdk/src/request.js +22 -0
  49. package/dist-electron/packages/core-sdk/src/runtime.js +214 -0
  50. package/dist-electron/packages/core-sdk/src/scheduler.js +32 -0
  51. package/dist-electron/packages/core-sdk/src/threads.js +67 -0
  52. package/dist-electron/packages/plugin-sdk/src/agents.js +2 -0
  53. package/dist-electron/packages/plugin-sdk/src/automation.js +2 -0
  54. package/dist-electron/packages/plugin-sdk/src/channels.js +2 -0
  55. package/dist-electron/packages/plugin-sdk/src/index.js +21 -0
  56. package/dist-electron/packages/plugin-sdk/src/knowledge.js +2 -0
  57. package/dist-electron/packages/plugin-sdk/src/runtime.js +2 -0
  58. package/dist-electron/packages/plugin-sdk/src/scheduler.js +2 -0
  59. package/dist-electron/packages/plugin-sdk/src/threads.js +2 -0
  60. package/dist-electron/services/local-ai-core/src/acp/local-core-acp-backend.js +6 -9
  61. package/dist-electron/services/local-ai-core/src/acp/local-core-acp-content.js +2 -2
  62. package/dist-electron/services/local-ai-core/src/acp/local-core-acp-turn-coordinator.js +3 -3
  63. package/dist-electron/services/local-ai-core/src/acp/store/agent-task-store.js +5 -5
  64. package/dist-electron/services/local-ai-core/src/acp/store/automation-monitor-store.js +12 -12
  65. package/dist-electron/services/local-ai-core/src/acp/store/local-core-acp-store.js +2 -2
  66. package/dist-electron/services/local-ai-core/src/acp/store/scheduler-store.js +11 -11
  67. package/dist-electron/services/local-ai-core/src/acp/store/security-store.js +3 -3
  68. package/dist-electron/services/local-ai-core/src/acp/store/thread-store.js +7 -7
  69. package/dist-electron/services/local-ai-core/src/acp/workspace-acp-permissions.js +2 -2
  70. package/dist-electron/services/local-ai-core/src/agents/claudecode/definition.js +3 -3
  71. package/dist-electron/services/local-ai-core/src/agents/codex/definition.js +3 -3
  72. package/dist-electron/services/local-ai-core/src/agents/localcore-acp/definition.js +2 -2
  73. package/dist-electron/services/local-ai-core/src/agents/localcore-acp/index.js +4 -4
  74. package/dist-electron/services/local-ai-core/src/agents/opencode/launch.js +2 -2
  75. package/dist-electron/services/local-ai-core/src/agents/pi/definition.js +2 -2
  76. package/dist-electron/services/local-ai-core/src/agents/pi/launch.js +3 -3
  77. package/dist-electron/services/local-ai-core/src/agents/pi/provider-materializer.js +1 -1
  78. package/dist-electron/services/local-ai-core/src/agents/shared/agent-plugin.js +4 -4
  79. package/dist-electron/services/local-ai-core/src/channel/lark/cards.js +33 -18
  80. package/dist-electron/services/local-ai-core/src/channel/lark/config.js +2 -2
  81. package/dist-electron/services/local-ai-core/src/channel/lark/gateway-utils.js +91 -0
  82. package/dist-electron/services/local-ai-core/src/channel/lark/inbound-handler.js +180 -0
  83. package/dist-electron/services/local-ai-core/src/channel/lark/local-core-lark-gateway.js +52 -456
  84. package/dist-electron/services/local-ai-core/src/channel/lark/outbound-transport.js +124 -0
  85. package/dist-electron/services/local-ai-core/src/channel/shared/inbound-attachment-store.js +93 -0
  86. package/dist-electron/services/local-ai-core/src/channel/shared/inbound-authorization.js +54 -0
  87. package/dist-electron/services/local-ai-core/src/channel/weixin/config.js +2 -2
  88. package/dist-electron/services/local-ai-core/src/channel/weixin/inbound-media.js +21 -0
  89. package/dist-electron/services/local-ai-core/src/channel/weixin/inbound-poller.js +167 -0
  90. package/dist-electron/services/local-ai-core/src/channel/weixin/local-core-weixin-gateway.js +98 -483
  91. package/dist-electron/services/local-ai-core/src/channel/weixin/runtime-state.js +156 -0
  92. package/dist-electron/services/local-ai-core/src/channel/weixin/text-utils.js +100 -0
  93. package/dist-electron/services/local-ai-core/src/cli/lac.js +6 -6
  94. package/dist-electron/services/local-ai-core/src/cli/monitor-cli-parsers.js +2 -2
  95. package/dist-electron/services/local-ai-core/src/kernel/bootstrap.js +28 -70
  96. package/dist-electron/services/local-ai-core/src/kernel/local-core-errors.js +33 -5
  97. package/dist-electron/services/local-ai-core/src/plugins/builtin/knowledge-ai-vector-plugin.js +2 -2
  98. package/dist-electron/services/local-ai-core/src/plugins/builtin/knowledge-noop-plugin.js +2 -2
  99. package/dist-electron/services/local-ai-core/src/router/workspace-bridge-event-stream.js +29 -0
  100. package/dist-electron/services/local-ai-core/src/router/workspace-route-config.js +5 -5
  101. package/dist-electron/services/local-ai-core/src/router/workspace-router.js +47 -60
  102. package/dist-electron/services/local-ai-core/src/runtime/agent-runtime-detector.js +5 -5
  103. package/dist-electron/services/local-ai-core/src/runtime/config-migration.js +6 -6
  104. package/dist-electron/services/local-ai-core/src/runtime/deployment-diagnostics.js +3 -3
  105. package/dist-electron/services/local-ai-core/src/runtime/external-service.js +3 -1
  106. package/dist-electron/services/local-ai-core/src/runtime/handlers/automation-handler.js +11 -2
  107. package/dist-electron/services/local-ai-core/src/runtime/handlers/channel-handler.js +12 -6
  108. package/dist-electron/services/local-ai-core/src/runtime/handlers/external-handler.js +10 -2
  109. package/dist-electron/services/local-ai-core/src/runtime/handlers/knowledge-handler.js +18 -6
  110. package/dist-electron/services/local-ai-core/src/runtime/handlers/provider-handler.js +7 -2
  111. package/dist-electron/services/local-ai-core/src/runtime/handlers/runtime-handler.js +28 -3
  112. package/dist-electron/services/local-ai-core/src/runtime/handlers/scheduler-handler.js +10 -2
  113. package/dist-electron/services/local-ai-core/src/runtime/handlers/security-handler.js +18 -5
  114. package/dist-electron/services/local-ai-core/src/runtime/handlers/task-handler.js +14 -2
  115. package/dist-electron/services/local-ai-core/src/runtime/handlers/thread-handler.js +18 -15
  116. package/dist-electron/services/local-ai-core/src/runtime/handlers/workspace-handler.js +13 -2
  117. package/dist-electron/services/local-ai-core/src/runtime/local-core-controller.js +35 -8
  118. package/dist-electron/services/local-ai-core/src/runtime/request-validation.js +79 -0
  119. package/dist-electron/services/local-ai-core/src/runtime/runtime-detection-service.js +9 -9
  120. package/dist-electron/services/local-ai-core/src/runtime/server-helpers.js +10 -1
  121. package/dist-electron/services/local-ai-core/src/runtime/server.js +2 -1
  122. package/dist-electron/services/local-ai-core/src/runtime/workspace-project-registry.js +76 -0
  123. package/dist-electron/services/local-ai-core/src/sandbox/sandbox-config.js +8 -8
  124. package/dist-electron/services/local-ai-core/src/thread/agent-message-policy.js +75 -0
  125. package/dist-electron/shared/desktop.js +1 -64
  126. package/dist-electron/src/components/chat/chat-controller-state.js +60 -0
  127. package/dist-electron/src/components/chat/chat-event-gate.js +146 -0
  128. package/dist-electron/src/components/chat/markdown-code-block.js +8 -0
  129. package/dist-electron/src/pages/Desktop/workspace-model.js +212 -0
  130. package/dist-electron/src/pages/Threads/thread-chat-model.js +50 -51
  131. package/dist-electron/tests/contracts/agent-message-policy.test.js +21 -0
  132. package/dist-electron/tests/contracts/architecture-docs.test.js +56 -33
  133. package/dist-electron/tests/contracts/chat-event-gate.test.js +114 -0
  134. package/dist-electron/tests/contracts/chat-markdown.test.js +16 -0
  135. package/dist-electron/tests/contracts/thread-task-state.test.js +32 -0
  136. package/dist-electron/tests/contracts/workspace-identity.test.js +23 -0
  137. package/dist-electron/tests/electron/core-client.test.js +284 -0
  138. package/dist-electron/tests/electron/plugin-kernel.test.js +54 -0
  139. package/dist-electron/tests/electron/renderer-packaging.test.js +9 -0
  140. package/dist-electron/tests/electron/workspace-task-store.test.js +31 -0
  141. package/dist-electron/tests/integration/channel-inbound-attachment-store.test.js +117 -0
  142. package/dist-electron/tests/integration/channel-inbound-authorization.test.js +80 -0
  143. package/dist-electron/tests/integration/lark-gateway-utils.test.js +13 -0
  144. package/dist-electron/tests/integration/lark-gateway.test.js +58 -4
  145. package/dist-electron/tests/integration/local-core-errors.test.js +41 -0
  146. package/dist-electron/tests/integration/weixin-gateway.test.js +36 -0
  147. package/dist-electron/tests/integration/weixin-runtime-state.test.js +32 -0
  148. package/dist-electron/tests/integration/weixin-text-utils.test.js +15 -0
  149. package/package.json +9 -4
  150. package/dist/renderer/assets/Chat-BJveQQKu.js +0 -2
  151. package/dist/renderer/assets/ChatMarkdown-Bqn2HJ6f.js +0 -45
  152. package/dist/renderer/assets/Config-CMtZDRAE.js +0 -21
  153. package/dist/renderer/assets/CronList-C-ILB_Ae.js +0 -1
  154. package/dist/renderer/assets/Dashboard-CsKBSQIe.js +0 -26
  155. package/dist/renderer/assets/Logs-CktemGN0.js +0 -1
  156. package/dist/renderer/assets/MonitorList-B0hxjuOZ.js +0 -1
  157. package/dist/renderer/assets/Page-DL_Nv2i5.js +0 -1
  158. package/dist/renderer/assets/ProjectDetail-Djr9-MyT.js +0 -11
  159. package/dist/renderer/assets/ProjectList-BKl4eW7q.js +0 -1
  160. package/dist/renderer/assets/SessionChat-Dxv8D5DW.js +0 -1
  161. package/dist/renderer/assets/SessionList-BJ2GjXvR.js +0 -1
  162. package/dist/renderer/assets/ThreadChat-CAsIl9qf.js +0 -28
  163. package/dist/renderer/assets/Workspace-CaUhiGBX.js +0 -19
  164. package/dist/renderer/assets/bot-Fw3IzhJA.js +0 -6
  165. package/dist/renderer/assets/check-5zCTgp3A.js +0 -6
  166. package/dist/renderer/assets/chevron-down-N3PxTNxH.js +0 -6
  167. package/dist/renderer/assets/circle-C_chUflo.js +0 -6
  168. package/dist/renderer/assets/desktop-DkQTZNhe.js +0 -1
  169. package/dist/renderer/assets/desktop-JQkhNOF4.js +0 -5
  170. package/dist/renderer/assets/funnel-B8ZAv6I7.js +0 -6
  171. package/dist/renderer/assets/heart-M9A3E4Ed.js +0 -6
  172. package/dist/renderer/assets/index-Bwv855ID.js +0 -41
  173. package/dist/renderer/assets/index-CjCuR6DI.css +0 -11
  174. package/dist/renderer/assets/index-DJ8w4e0l.js +0 -182
  175. package/dist/renderer/assets/projects-DB1FLZ3A.js +0 -1
  176. package/dist/renderer/assets/server-BsuHcYl4.js +0 -11
  177. package/dist/renderer/assets/session-utils-DnAWL3eo.js +0 -6
  178. package/dist/renderer/assets/sessions-DptxO_BE.js +0 -1
  179. package/dist/renderer/assets/user-DQKTaUcR.js +0 -6
  180. package/dist/renderer/assets/wifi-off-vjH-MD2w.js +0 -11
  181. package/dist-electron/src/api/client.js +0 -73
  182. package/dist-electron/src/api/sessions.js +0 -21
  183. package/dist-electron/src/lib/session-utils.js +0 -51
  184. package/dist-electron/src/pages/Projects/project-provider-config.js +0 -75
  185. package/dist-electron/tests/electron/project-provider-config.test.js +0 -71
@@ -2,7 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.LocalAutomationMonitorStore = void 0;
4
4
  const node_crypto_1 = require("node:crypto");
5
- const index_js_1 = require("../../../../../packages/contracts/src/index.js");
5
+ const superai_contracts_1 = require("../../../../../packages/contracts/src/index.js");
6
6
  class LocalAutomationMonitorStore {
7
7
  db;
8
8
  constructor(db) {
@@ -45,7 +45,7 @@ class LocalAutomationMonitorStore {
45
45
  const condition = {
46
46
  ...input.condition,
47
47
  metric: String(input.condition?.metric || '').trim(),
48
- operator: (0, index_js_1.normalizeAutomationMonitorConditionOperator)(input.condition?.operator),
48
+ operator: (0, superai_contracts_1.normalizeAutomationMonitorConditionOperator)(input.condition?.operator),
49
49
  };
50
50
  if (!condition.metric)
51
51
  throw new Error('Automation monitor condition metric is required.');
@@ -56,7 +56,7 @@ class LocalAutomationMonitorStore {
56
56
  id, workspace_id, title, source_type, source_config_json, condition_json, prompt_template, platform, route_type, route_config,
57
57
  execution_mode, enabled, cooldown_ms, concurrency_policy, last_state_json, created_at, updated_at
58
58
  ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, 'skip_if_running', ?, ?, ?)
59
- `).run(id, input.workspaceId, title, sourceType, JSON.stringify(input.sourceConfig || {}), JSON.stringify(condition), input.promptTemplate, (0, index_js_1.normalizeChannelPlatform)(input.platform), input.route.type, JSON.stringify(input.route), (0, index_js_1.normalizeScheduledJobExecutionMode)(input.executionMode, 'side-thread'), input.enabled === false ? 0 : 1, Math.max(0, Number(input.cooldownMs ?? 15 * 60 * 1000)), null, now, now);
59
+ `).run(id, input.workspaceId, title, sourceType, JSON.stringify(input.sourceConfig || {}), JSON.stringify(condition), input.promptTemplate, (0, superai_contracts_1.normalizeChannelPlatform)(input.platform), input.route.type, JSON.stringify(input.route), (0, superai_contracts_1.normalizeScheduledJobExecutionMode)(input.executionMode, 'side-thread'), input.enabled === false ? 0 : 1, Math.max(0, Number(input.cooldownMs ?? 15 * 60 * 1000)), null, now, now);
60
60
  return this.get(id);
61
61
  }
62
62
  update(monitorId, input) {
@@ -67,7 +67,7 @@ class LocalAutomationMonitorStore {
67
67
  ? {
68
68
  ...input.condition,
69
69
  metric: String(input.condition.metric || '').trim(),
70
- operator: (0, index_js_1.normalizeAutomationMonitorConditionOperator)(input.condition.operator),
70
+ operator: (0, superai_contracts_1.normalizeAutomationMonitorConditionOperator)(input.condition.operator),
71
71
  }
72
72
  : existing.condition;
73
73
  const next = {
@@ -77,7 +77,7 @@ class LocalAutomationMonitorStore {
77
77
  condition: nextCondition,
78
78
  ...(typeof input.promptTemplate === 'string' ? { promptTemplate: input.promptTemplate } : {}),
79
79
  ...(input.route ? { route: input.route } : {}),
80
- ...(input.executionMode ? { executionMode: (0, index_js_1.normalizeScheduledJobExecutionMode)(input.executionMode, 'side-thread') } : {}),
80
+ ...(input.executionMode ? { executionMode: (0, superai_contracts_1.normalizeScheduledJobExecutionMode)(input.executionMode, 'side-thread') } : {}),
81
81
  ...(typeof input.enabled === 'boolean' ? { enabled: input.enabled } : {}),
82
82
  ...(typeof input.cooldownMs === 'number' ? { cooldownMs: Math.max(0, input.cooldownMs) } : {}),
83
83
  updatedAt: new Date().toISOString(),
@@ -122,7 +122,7 @@ class LocalAutomationMonitorStore {
122
122
  createRun(monitorId, status, input = {}) {
123
123
  const id = `monitorrun:${(0, node_crypto_1.randomUUID)()}`;
124
124
  const triggeredAt = input.triggeredAt || new Date().toISOString();
125
- const normalizedStatus = (0, index_js_1.normalizeAutomationMonitorStatus)(status);
125
+ const normalizedStatus = (0, superai_contracts_1.normalizeAutomationMonitorStatus)(status);
126
126
  this.db.prepare(`
127
127
  INSERT INTO automation_monitor_runs (id, monitor_id, status, triggered_at, started_at, finished_at, error, event_snapshot_json, thread_id, run_id, delivery_mode, delivery_status, delivery_error, last_bridge_event_at)
128
128
  VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
@@ -149,7 +149,7 @@ class LocalAutomationMonitorStore {
149
149
  const next = {
150
150
  ...existing,
151
151
  ...input,
152
- ...(input.status ? { status: (0, index_js_1.normalizeAutomationMonitorStatus)(input.status) } : {}),
152
+ ...(input.status ? { status: (0, superai_contracts_1.normalizeAutomationMonitorStatus)(input.status) } : {}),
153
153
  };
154
154
  this.db.prepare(`
155
155
  UPDATE automation_monitor_runs
@@ -175,12 +175,12 @@ class LocalAutomationMonitorStore {
175
175
  sourceConfig: parseJson(row.source_config_json || '{}', {}),
176
176
  condition: {
177
177
  ...condition,
178
- operator: (0, index_js_1.normalizeAutomationMonitorConditionOperator)(condition.operator),
178
+ operator: (0, superai_contracts_1.normalizeAutomationMonitorConditionOperator)(condition.operator),
179
179
  },
180
180
  promptTemplate: row.prompt_template,
181
- platform: (0, index_js_1.normalizeChannelPlatform)(row.platform),
181
+ platform: (0, superai_contracts_1.normalizeChannelPlatform)(row.platform),
182
182
  route: JSON.parse(row.route_config),
183
- executionMode: (0, index_js_1.normalizeScheduledJobExecutionMode)(row.execution_mode, 'side-thread'),
183
+ executionMode: (0, superai_contracts_1.normalizeScheduledJobExecutionMode)(row.execution_mode, 'side-thread'),
184
184
  enabled: Boolean(row.enabled),
185
185
  cooldownMs: Number(row.cooldown_ms || 0),
186
186
  concurrencyPolicy: row.concurrency_policy,
@@ -188,7 +188,7 @@ class LocalAutomationMonitorStore {
188
188
  createdAt: row.created_at,
189
189
  updatedAt: row.updated_at,
190
190
  lastTriggeredAt: row.last_triggered_at || undefined,
191
- lastStatus: row.last_status ? (0, index_js_1.normalizeAutomationMonitorStatus)(row.last_status) : undefined,
191
+ lastStatus: row.last_status ? (0, superai_contracts_1.normalizeAutomationMonitorStatus)(row.last_status) : undefined,
192
192
  lastError: row.last_error || undefined,
193
193
  };
194
194
  }
@@ -196,7 +196,7 @@ class LocalAutomationMonitorStore {
196
196
  return {
197
197
  id: row.id,
198
198
  monitorId: row.monitor_id,
199
- status: (0, index_js_1.normalizeAutomationMonitorStatus)(row.status),
199
+ status: (0, superai_contracts_1.normalizeAutomationMonitorStatus)(row.status),
200
200
  triggeredAt: row.triggered_at,
201
201
  startedAt: row.started_at || undefined,
202
202
  finishedAt: row.finished_at || undefined,
@@ -4,7 +4,7 @@ exports.redactSecrets = exports.LocalCoreAcpStore = void 0;
4
4
  const node_fs_1 = require("node:fs");
5
5
  const node_sqlite_1 = require("node:sqlite");
6
6
  const node_path_1 = require("node:path");
7
- const desktop_js_1 = require("../../../../../shared/desktop.js");
7
+ const superai_contracts_1 = require("../../../../../packages/contracts/src/index.js");
8
8
  const agent_task_store_js_1 = require("./agent-task-store.js");
9
9
  const automation_monitor_store_js_1 = require("./automation-monitor-store.js");
10
10
  const schema_js_1 = require("./schema.js");
@@ -58,7 +58,7 @@ class LocalCoreAcpStore {
58
58
  countThreads(workspaceId) {
59
59
  return this.threads.count(workspaceId);
60
60
  }
61
- createThread(workspaceId, title, agentType = desktop_js_1.LOCALCORE_ACP_AGENT_TYPE, agentMode = 'default') {
61
+ createThread(workspaceId, title, agentType = superai_contracts_1.LOCALCORE_ACP_AGENT_TYPE, agentMode = 'default') {
62
62
  return this.threads.create(workspaceId, title, agentType, agentMode);
63
63
  }
64
64
  getThread(threadId, selectedKnowledgeBaseIds) {
@@ -2,7 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.LocalSchedulerStore = void 0;
4
4
  const node_crypto_1 = require("node:crypto");
5
- const index_js_1 = require("../../../../../packages/contracts/src/index.js");
5
+ const superai_contracts_1 = require("../../../../../packages/contracts/src/index.js");
6
6
  const job_id_js_1 = require("../../scheduler/job-id.js");
7
7
  const utils_js_1 = require("./utils.js");
8
8
  class LocalSchedulerStore {
@@ -54,7 +54,7 @@ class LocalSchedulerStore {
54
54
  id, workspace_id, platform, route_type, route_config, execution_mode, trigger_type, cron_expr, run_at,
55
55
  prompt_template, description, enabled, concurrency_policy, created_at, updated_at
56
56
  ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, 'skip_if_running', ?, ?)
57
- `).run(id, input.workspaceId, (0, index_js_1.normalizeChannelPlatform)(input.platform), input.route.type, JSON.stringify(input.route), (0, index_js_1.normalizeScheduledJobExecutionMode)(input.executionMode), (0, index_js_1.normalizeScheduledJobTriggerType)(input.triggerType), input.cronExpr || null, input.runAt || null, input.promptTemplate, input.description || '', input.enabled === false ? 0 : 1, now, now);
57
+ `).run(id, input.workspaceId, (0, superai_contracts_1.normalizeChannelPlatform)(input.platform), input.route.type, JSON.stringify(input.route), (0, superai_contracts_1.normalizeScheduledJobExecutionMode)(input.executionMode), (0, superai_contracts_1.normalizeScheduledJobTriggerType)(input.triggerType), input.cronExpr || null, input.runAt || null, input.promptTemplate, input.description || '', input.enabled === false ? 0 : 1, now, now);
58
58
  return this.getJob(id);
59
59
  }
60
60
  updateJob(jobId, input) {
@@ -65,8 +65,8 @@ class LocalSchedulerStore {
65
65
  const next = {
66
66
  ...existing,
67
67
  ...(input.route ? { route: input.route } : {}),
68
- ...(input.executionMode ? { executionMode: (0, index_js_1.normalizeScheduledJobExecutionMode)(input.executionMode) } : {}),
69
- ...(input.triggerType ? { triggerType: (0, index_js_1.normalizeScheduledJobTriggerType)(input.triggerType) } : {}),
68
+ ...(input.executionMode ? { executionMode: (0, superai_contracts_1.normalizeScheduledJobExecutionMode)(input.executionMode) } : {}),
69
+ ...(input.triggerType ? { triggerType: (0, superai_contracts_1.normalizeScheduledJobTriggerType)(input.triggerType) } : {}),
70
70
  ...(Object.prototype.hasOwnProperty.call(input, 'cronExpr') ? { cronExpr: input.cronExpr || undefined } : {}),
71
71
  ...(Object.prototype.hasOwnProperty.call(input, 'runAt') ? { runAt: input.runAt || undefined } : {}),
72
72
  ...(typeof input.promptTemplate === 'string' ? { promptTemplate: input.promptTemplate } : {}),
@@ -101,7 +101,7 @@ class LocalSchedulerStore {
101
101
  createRun(jobId, status, input = {}) {
102
102
  const id = `jobrun:${(0, node_crypto_1.randomUUID)()}`;
103
103
  const triggeredAt = input.triggeredAt || new Date().toISOString();
104
- const normalizedStatus = (0, index_js_1.normalizeScheduledJobRunStatus)(status);
104
+ const normalizedStatus = (0, superai_contracts_1.normalizeScheduledJobRunStatus)(status);
105
105
  this.db.prepare(`
106
106
  INSERT INTO scheduled_job_runs (id, job_id, status, triggered_at, started_at, finished_at, error, thread_id, run_id, platform_message_id, platform_message_ids_json, delivery_mode, delivery_status, delivery_error, last_bridge_event_at)
107
107
  VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
@@ -129,7 +129,7 @@ class LocalSchedulerStore {
129
129
  const next = {
130
130
  ...existing,
131
131
  ...input,
132
- ...(input.status ? { status: (0, index_js_1.normalizeScheduledJobRunStatus)(input.status) } : {}),
132
+ ...(input.status ? { status: (0, superai_contracts_1.normalizeScheduledJobRunStatus)(input.status) } : {}),
133
133
  };
134
134
  this.db.prepare(`
135
135
  UPDATE scheduled_job_runs
@@ -161,10 +161,10 @@ class LocalSchedulerStore {
161
161
  return {
162
162
  id: row.id,
163
163
  workspaceId: row.workspace_id,
164
- platform: (0, index_js_1.normalizeChannelPlatform)(row.platform),
164
+ platform: (0, superai_contracts_1.normalizeChannelPlatform)(row.platform),
165
165
  route,
166
- executionMode: (0, index_js_1.normalizeScheduledJobExecutionMode)(row.execution_mode),
167
- triggerType: (0, index_js_1.normalizeScheduledJobTriggerType)(row.trigger_type),
166
+ executionMode: (0, superai_contracts_1.normalizeScheduledJobExecutionMode)(row.execution_mode),
167
+ triggerType: (0, superai_contracts_1.normalizeScheduledJobTriggerType)(row.trigger_type),
168
168
  cronExpr: row.cron_expr || undefined,
169
169
  runAt: row.run_at || undefined,
170
170
  promptTemplate: row.prompt_template,
@@ -174,7 +174,7 @@ class LocalSchedulerStore {
174
174
  createdAt: row.created_at,
175
175
  updatedAt: row.updated_at,
176
176
  lastRunAt: row.last_run_at || undefined,
177
- lastStatus: row.last_status ? (0, index_js_1.normalizeScheduledJobRunStatus)(row.last_status) : undefined,
177
+ lastStatus: row.last_status ? (0, superai_contracts_1.normalizeScheduledJobRunStatus)(row.last_status) : undefined,
178
178
  lastError: row.last_error || undefined,
179
179
  };
180
180
  }
@@ -182,7 +182,7 @@ class LocalSchedulerStore {
182
182
  return {
183
183
  id: row.id,
184
184
  jobId: row.job_id,
185
- status: (0, index_js_1.normalizeScheduledJobRunStatus)(row.status),
185
+ status: (0, superai_contracts_1.normalizeScheduledJobRunStatus)(row.status),
186
186
  triggeredAt: row.triggered_at,
187
187
  startedAt: row.started_at || undefined,
188
188
  finishedAt: row.finished_at || undefined,
@@ -2,7 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.LocalSecurityStore = void 0;
4
4
  const node_crypto_1 = require("node:crypto");
5
- const index_js_1 = require("../../../../../packages/contracts/src/index.js");
5
+ const superai_contracts_1 = require("../../../../../packages/contracts/src/index.js");
6
6
  const utils_js_1 = require("./utils.js");
7
7
  class LocalSecurityStore {
8
8
  db;
@@ -115,7 +115,7 @@ class LocalSecurityStore {
115
115
  params.push(query.taskId);
116
116
  }
117
117
  if (query.status) {
118
- const statuses = (Array.isArray(query.status) ? query.status : [query.status]).map((status) => (0, index_js_1.normalizeApprovalRequestStatus)(status));
118
+ const statuses = (Array.isArray(query.status) ? query.status : [query.status]).map((status) => (0, superai_contracts_1.normalizeApprovalRequestStatus)(status));
119
119
  predicates.push(`status IN (${statuses.map(() => '?').join(', ')})`);
120
120
  params.push(...statuses);
121
121
  }
@@ -230,7 +230,7 @@ class LocalSecurityStore {
230
230
  runId: row.run_id || undefined,
231
231
  deviceId: row.device_id,
232
232
  kind: row.kind,
233
- status: (0, index_js_1.normalizeApprovalRequestStatus)(row.status),
233
+ status: (0, superai_contracts_1.normalizeApprovalRequestStatus)(row.status),
234
234
  riskLevel: row.risk_level,
235
235
  title: row.title,
236
236
  description: row.description,
@@ -2,8 +2,8 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.LocalThreadStore = void 0;
4
4
  const node_crypto_1 = require("node:crypto");
5
- const index_js_1 = require("../../../../../packages/contracts/src/index.js");
6
- const desktop_js_1 = require("../../../../../shared/desktop.js");
5
+ const superai_contracts_1 = require("../../../../../packages/contracts/src/index.js");
6
+ const superai_contracts_2 = require("../../../../../packages/contracts/src/index.js");
7
7
  const workspace_thread_mappers_js_1 = require("../../thread/workspace-thread-mappers.js");
8
8
  const workspace_thread_id_js_1 = require("../../thread/workspace-thread-id.js");
9
9
  const utils_js_1 = require("./utils.js");
@@ -38,11 +38,11 @@ class LocalThreadStore {
38
38
  const row = this.db.prepare('SELECT COUNT(*) AS total FROM threads WHERE workspace_id = ?').get(workspaceId);
39
39
  return Number(row?.total || 0);
40
40
  }
41
- create(workspaceId, title, agentType = desktop_js_1.LOCALCORE_ACP_AGENT_TYPE, agentMode = 'default') {
41
+ create(workspaceId, title, agentType = superai_contracts_2.LOCALCORE_ACP_AGENT_TYPE, agentMode = 'default') {
42
42
  const sessionId = (0, node_crypto_1.randomUUID)();
43
43
  const threadId = (0, workspace_thread_id_js_1.encodeThreadId)(workspaceId, sessionId);
44
44
  const now = new Date().toISOString();
45
- const bridgeSessionKey = `${desktop_js_1.LOCALCORE_ACP_AGENT_TYPE}:${workspaceId}:${sessionId}`;
45
+ const bridgeSessionKey = `${superai_contracts_2.LOCALCORE_ACP_AGENT_TYPE}:${workspaceId}:${sessionId}`;
46
46
  this.db.prepare(`
47
47
  INSERT INTO threads (id, workspace_id, session_id, bridge_session_key, title, agent_type, created_at, updated_at, history_count, excerpt, agent_mode)
48
48
  VALUES (?, ?, ?, ?, ?, ?, ?, ?, 0, '', ?)
@@ -174,7 +174,7 @@ class LocalThreadStore {
174
174
  }
175
175
  updateRun(runId, threadId, status) {
176
176
  const now = new Date().toISOString();
177
- const normalizedStatus = (0, index_js_1.normalizeRunStatus)(status);
177
+ const normalizedStatus = (0, superai_contracts_1.normalizeRunStatus)(status);
178
178
  const existing = this.db.prepare('SELECT id FROM runs WHERE id = ?').get(runId);
179
179
  if (existing) {
180
180
  this.db.prepare('UPDATE runs SET status = ?, updated_at = ? WHERE id = ?').run(normalizedStatus, now, runId);
@@ -193,7 +193,7 @@ class LocalThreadStore {
193
193
  ORDER BY updated_at DESC
194
194
  LIMIT 1
195
195
  `).get(threadId);
196
- return row ? { ...row, status: (0, index_js_1.normalizeRunStatus)(row.status) } : undefined;
196
+ return row ? { ...row, status: (0, superai_contracts_1.normalizeRunStatus)(row.status) } : undefined;
197
197
  }
198
198
  getRun(runId) {
199
199
  const row = this.db.prepare(`
@@ -201,7 +201,7 @@ class LocalThreadStore {
201
201
  FROM runs
202
202
  WHERE id = ?
203
203
  `).get(runId);
204
- return row ? { ...row, status: (0, index_js_1.normalizeRunStatus)(row.status) } : undefined;
204
+ return row ? { ...row, status: (0, superai_contracts_1.normalizeRunStatus)(row.status) } : undefined;
205
205
  }
206
206
  getRow(threadId) {
207
207
  return this.db.prepare(`
@@ -4,9 +4,9 @@ exports.normalizePermissionAction = normalizePermissionAction;
4
4
  exports.normalizePermissionOptionAction = normalizePermissionOptionAction;
5
5
  exports.formatToolCallContent = formatToolCallContent;
6
6
  exports.toPermissionButtonRows = toPermissionButtonRows;
7
- const desktop_js_1 = require("../../../../shared/desktop.js");
7
+ const superai_contracts_1 = require("../../../../packages/contracts/src/index.js");
8
8
  function normalizePermissionAction(kind) {
9
- return (0, desktop_js_1.normalizePermissionResponse)(kind) || '';
9
+ return (0, superai_contracts_1.normalizePermissionResponse)(kind) || '';
10
10
  }
11
11
  function normalizePermissionOptionAction(option) {
12
12
  const fields = [
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.claudeCodeAgentDefinition = void 0;
4
- const desktop_js_1 = require("../../../../../shared/desktop.js");
4
+ const superai_contracts_1 = require("../../../../../packages/contracts/src/index.js");
5
5
  const launch_utils_js_1 = require("../shared/launch-utils.js");
6
6
  const behavior_js_1 = require("./behavior.js");
7
7
  exports.claudeCodeAgentDefinition = {
@@ -13,7 +13,7 @@ exports.claudeCodeAgentDefinition = {
13
13
  versionArgs: ['--version'],
14
14
  bundledRuntimes: [
15
15
  {
16
- packageName: desktop_js_1.DESKTOP_CLAUDECODE_ACP_PACKAGE,
16
+ packageName: superai_contracts_1.DESKTOP_CLAUDECODE_ACP_PACKAGE,
17
17
  candidates: [
18
18
  'dist/cli.js',
19
19
  'bin/claude-agent-acp.js',
@@ -23,7 +23,7 @@ exports.claudeCodeAgentDefinition = {
23
23
  ],
24
24
  },
25
25
  buildLaunchConfig(input) {
26
- const bundled = (0, launch_utils_js_1.resolveBundledAcpCommand)(desktop_js_1.DESKTOP_CLAUDECODE_ACP_PACKAGE, 'claude-agent-acp');
26
+ const bundled = (0, launch_utils_js_1.resolveBundledAcpCommand)(superai_contracts_1.DESKTOP_CLAUDECODE_ACP_PACKAGE, 'claude-agent-acp');
27
27
  return {
28
28
  ...bundled,
29
29
  env: input.model
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.codexAgentDefinition = void 0;
4
- const desktop_js_1 = require("../../../../../shared/desktop.js");
4
+ const superai_contracts_1 = require("../../../../../packages/contracts/src/index.js");
5
5
  const launch_utils_js_1 = require("../shared/launch-utils.js");
6
6
  const behavior_js_1 = require("./behavior.js");
7
7
  exports.codexAgentDefinition = {
@@ -13,12 +13,12 @@ exports.codexAgentDefinition = {
13
13
  versionArgs: ['--version'],
14
14
  bundledRuntimes: [
15
15
  {
16
- packageName: desktop_js_1.DESKTOP_CODEX_ACP_PACKAGE,
16
+ packageName: superai_contracts_1.DESKTOP_CODEX_ACP_PACKAGE,
17
17
  candidates: ['bin/codex-acp.js'],
18
18
  },
19
19
  ],
20
20
  },
21
21
  buildLaunchConfig() {
22
- return (0, launch_utils_js_1.resolveBundledAcpCommand)(desktop_js_1.DESKTOP_CODEX_ACP_PACKAGE, 'codex-acp');
22
+ return (0, launch_utils_js_1.resolveBundledAcpCommand)(superai_contracts_1.DESKTOP_CODEX_ACP_PACKAGE, 'codex-acp');
23
23
  },
24
24
  };
@@ -1,10 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.localCoreAcpAgentDefinition = void 0;
4
- const desktop_js_1 = require("../../../../../shared/desktop.js");
4
+ const superai_contracts_1 = require("../../../../../packages/contracts/src/index.js");
5
5
  const behavior_js_1 = require("./behavior.js");
6
6
  exports.localCoreAcpAgentDefinition = {
7
- agentType: desktop_js_1.LOCALCORE_ACP_AGENT_TYPE,
7
+ agentType: superai_contracts_1.LOCALCORE_ACP_AGENT_TYPE,
8
8
  aliases: ['acp', ''],
9
9
  displayName: 'LocalCore ACP',
10
10
  behavior: behavior_js_1.localCoreAcpBehavior,
@@ -2,7 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.localCoreAcpAgentDefinition = exports.localCoreAcpBehavior = void 0;
4
4
  exports.createBuiltinLocalCoreAcpAgentPlugin = createBuiltinLocalCoreAcpAgentPlugin;
5
- const desktop_js_1 = require("../../../../../shared/desktop.js");
5
+ const superai_contracts_1 = require("../../../../../packages/contracts/src/index.js");
6
6
  const agent_plugin_js_1 = require("../shared/agent-plugin.js");
7
7
  const behavior_js_1 = require("./behavior.js");
8
8
  Object.defineProperty(exports, "localCoreAcpBehavior", { enumerable: true, get: function () { return behavior_js_1.localCoreAcpBehavior; } });
@@ -11,14 +11,14 @@ Object.defineProperty(exports, "localCoreAcpAgentDefinition", { enumerable: true
11
11
  function createBuiltinLocalCoreAcpAgentPlugin() {
12
12
  const plugin = (0, agent_plugin_js_1.createBuiltinAgentPlugin)({
13
13
  definition: definition_js_1.localCoreAcpAgentDefinition,
14
- match: (normalizedAgentType) => !normalizedAgentType || normalizedAgentType === 'acp' || normalizedAgentType === desktop_js_1.LOCALCORE_ACP_AGENT_TYPE,
14
+ match: (normalizedAgentType) => !normalizedAgentType || normalizedAgentType === 'acp' || normalizedAgentType === superai_contracts_1.LOCALCORE_ACP_AGENT_TYPE,
15
15
  });
16
16
  plugin.capabilities = {
17
17
  ...plugin.capabilities,
18
18
  channels: [
19
19
  {
20
- id: `channel.${desktop_js_1.LOCALCORE_ACP_AGENT_TYPE}`,
21
- platform: desktop_js_1.LOCALCORE_ACP_AGENT_TYPE,
20
+ id: `channel.${superai_contracts_1.LOCALCORE_ACP_AGENT_TYPE}`,
21
+ platform: superai_contracts_1.LOCALCORE_ACP_AGENT_TYPE,
22
22
  displayName: 'LocalCore ACP',
23
23
  },
24
24
  ],
@@ -2,12 +2,12 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.resolveOpencodeModel = resolveOpencodeModel;
4
4
  exports.buildOpencodeLaunchConfig = buildOpencodeLaunchConfig;
5
- const desktop_js_1 = require("../../../../../shared/desktop.js");
5
+ const superai_contracts_1 = require("../../../../../packages/contracts/src/index.js");
6
6
  const launch_utils_js_1 = require("../shared/launch-utils.js");
7
7
  function resolveOpencodeModel(input) {
8
8
  const configuredProviderModel = getFirstProviderModelRef(input.providers);
9
9
  if (configuredProviderModel &&
10
- (!input.rawModel || input.normalizedModel === desktop_js_1.DEFAULT_DESKTOP_OPENCODE_MODEL)) {
10
+ (!input.rawModel || input.normalizedModel === superai_contracts_1.DEFAULT_DESKTOP_OPENCODE_MODEL)) {
11
11
  return configuredProviderModel;
12
12
  }
13
13
  return input.normalizedModel;
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.piAgentDefinition = void 0;
4
- const desktop_js_1 = require("../../../../../shared/desktop.js");
4
+ const superai_contracts_1 = require("../../../../../packages/contracts/src/index.js");
5
5
  const behavior_js_1 = require("./behavior.js");
6
6
  const launch_js_1 = require("./launch.js");
7
7
  exports.piAgentDefinition = {
@@ -13,7 +13,7 @@ exports.piAgentDefinition = {
13
13
  versionArgs: ['--version'],
14
14
  bundledRuntimes: [
15
15
  {
16
- packageName: desktop_js_1.DESKTOP_PI_CODING_AGENT_PACKAGE,
16
+ packageName: superai_contracts_1.DESKTOP_PI_CODING_AGENT_PACKAGE,
17
17
  candidates: ['dist/cli.js'],
18
18
  },
19
19
  ],
@@ -2,15 +2,15 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.resolvePiModel = resolvePiModel;
4
4
  exports.buildPiLaunchConfig = buildPiLaunchConfig;
5
- const desktop_js_1 = require("../../../../../shared/desktop.js");
5
+ const superai_contracts_1 = require("../../../../../packages/contracts/src/index.js");
6
6
  const launch_utils_js_1 = require("../shared/launch-utils.js");
7
7
  const provider_materializer_js_1 = require("./provider-materializer.js");
8
8
  function resolvePiModel(input) {
9
9
  return input.rawModel || (0, launch_utils_js_1.getFirstProviderModelId)(input.providers);
10
10
  }
11
11
  function buildPiLaunchConfig(input) {
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.resolveBundledBinCommand)(desktop_js_1.DESKTOP_PI_CODING_AGENT_PACKAGE, 'pi');
12
+ const bundledPiAcp = (0, launch_utils_js_1.resolveBundledAcpCommand)(superai_contracts_1.DESKTOP_PI_ACP_PACKAGE, 'pi-acp');
13
+ const bundledPiCommand = (0, launch_utils_js_1.resolveBundledBinCommand)(superai_contracts_1.DESKTOP_PI_CODING_AGENT_PACKAGE, 'pi');
14
14
  return {
15
15
  command: bundledPiAcp.command,
16
16
  args: [...bundledPiAcp.args],
@@ -31,7 +31,7 @@ function writePiProviderRuntimeConfig(input) {
31
31
  return {};
32
32
  }
33
33
  const { providerId, modelId } = resolvePiProviderModel(input.providers, input.model);
34
- const agentDir = (0, launch_utils_js_1.projectLocalStateDir)(input.configState, '.pi-agent', input.project.name);
34
+ const agentDir = (0, launch_utils_js_1.projectLocalStateDir)(input.configState, '.pi-agent', input.project.workspace_id || input.project.name);
35
35
  (0, launch_utils_js_1.ensurePrivateDir)(agentDir);
36
36
  const auth = {};
37
37
  const modelProviders = {};
@@ -1,12 +1,12 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.createBuiltinAgentPlugin = createBuiltinAgentPlugin;
4
- const desktop_js_1 = require("../../../../../shared/desktop.js");
4
+ const superai_contracts_1 = require("../../../../../packages/contracts/src/index.js");
5
5
  const workspace_route_config_js_1 = require("../../router/workspace-route-config.js");
6
6
  function createRuntime(agentType, match, displayName) {
7
7
  return {
8
8
  agentType,
9
- transport: desktop_js_1.LOCALCORE_ACP_AGENT_TYPE,
9
+ transport: superai_contracts_1.LOCALCORE_ACP_AGENT_TYPE,
10
10
  displayName: displayName || agentType,
11
11
  matchesProject(project) {
12
12
  const normalizedAgentType = String(project.agent?.type || '').trim().toLowerCase();
@@ -17,9 +17,9 @@ function createRuntime(agentType, match, displayName) {
17
17
  return null;
18
18
  }
19
19
  return {
20
- kind: desktop_js_1.LOCALCORE_ACP_AGENT_TYPE,
20
+ kind: superai_contracts_1.LOCALCORE_ACP_AGENT_TYPE,
21
21
  agentType,
22
- transport: desktop_js_1.LOCALCORE_ACP_AGENT_TYPE,
22
+ transport: superai_contracts_1.LOCALCORE_ACP_AGENT_TYPE,
23
23
  config: {
24
24
  ...(0, workspace_route_config_js_1.toLocalCoreProjectConfig)(configState, project),
25
25
  agentType,
@@ -9,7 +9,7 @@ exports.extractCardActionValue = extractCardActionValue;
9
9
  exports.extractSessionCommandActionValue = extractSessionCommandActionValue;
10
10
  exports.formatPermissionButtonLabel = formatPermissionButtonLabel;
11
11
  exports.formatPermissionResponseLabel = formatPermissionResponseLabel;
12
- const desktop_js_1 = require("../../../../../shared/desktop.js");
12
+ const superai_contracts_1 = require("../../../../../packages/contracts/src/index.js");
13
13
  function buildInteractiveCard(text, buttonRows = [], sessionKey, threadId) {
14
14
  const elements = [];
15
15
  if (text) {
@@ -27,7 +27,7 @@ function buildInteractiveCard(text, buttonRows = [], sessionKey, threadId) {
27
27
  type: resolveLarkButtonType(button, index),
28
28
  value: {
29
29
  action: 'permission_response',
30
- response: (0, desktop_js_1.normalizePermissionResponse)(button.data) || button.data,
30
+ response: (0, superai_contracts_1.normalizePermissionResponse)(button.data) || button.data,
31
31
  session_key: sessionKey || '',
32
32
  thread_id: threadId || '',
33
33
  },
@@ -61,7 +61,7 @@ function renderPermissionCard(turn, event, cardActionsEnabled) {
61
61
  .filter((button) => Boolean(button?.text && button?.data))
62
62
  .map((button) => ({
63
63
  text: formatPermissionButtonLabel(button),
64
- data: (0, desktop_js_1.normalizePermissionResponse)(button.data) || button.data,
64
+ data: (0, superai_contracts_1.normalizePermissionResponse)(button.data) || button.data,
65
65
  }))
66
66
  : [])
67
67
  .filter((row) => row.length > 0)
@@ -129,14 +129,12 @@ function extractCardActionMessageId(...payloads) {
129
129
  return '';
130
130
  }
131
131
  function extractCardActionValue(payload) {
132
- const event = (payload?.event && typeof payload.event === 'object')
133
- ? payload.event
134
- : payload;
135
- const value = event?.action?.value;
136
- if (!value || value.action !== 'permission_response') {
132
+ const action = readLarkCardAction(payload, 'permission_response');
133
+ if (!action) {
137
134
  return null;
138
135
  }
139
- const response = (0, desktop_js_1.normalizePermissionResponse)(String(value.response || '').trim()) || String(value.response || '').trim();
136
+ const { event, value } = action;
137
+ const response = (0, superai_contracts_1.normalizePermissionResponse)(String(value.response || '').trim()) || String(value.response || '').trim();
140
138
  const threadId = String(value.thread_id || '').trim();
141
139
  const sessionKey = String(value.session_key || '').trim();
142
140
  if (!response || !threadId) {
@@ -144,20 +142,18 @@ function extractCardActionValue(payload) {
144
142
  }
145
143
  return {
146
144
  event,
147
- value: value,
145
+ value,
148
146
  response,
149
147
  threadId,
150
148
  sessionKey,
151
149
  };
152
150
  }
153
151
  function extractSessionCommandActionValue(payload) {
154
- const event = (payload?.event && typeof payload.event === 'object')
155
- ? payload.event
156
- : payload;
157
- const value = event?.action?.value;
158
- if (!value || value.action !== 'session_command') {
152
+ const action = readLarkCardAction(payload, 'session_command');
153
+ if (!action) {
159
154
  return null;
160
155
  }
156
+ const { event, value } = action;
161
157
  const command = String(value.command || '').trim();
162
158
  const threadId = String(value.thread_id || '').trim();
163
159
  const sessionKey = String(value.session_key || '').trim();
@@ -166,17 +162,36 @@ function extractSessionCommandActionValue(payload) {
166
162
  }
167
163
  return {
168
164
  event,
169
- value: value,
165
+ value,
170
166
  command,
171
167
  threadId,
172
168
  sessionKey,
173
169
  };
174
170
  }
171
+ function readLarkCardAction(payload, expectedAction) {
172
+ const eventCandidate = payload.event;
173
+ const event = eventCandidate && typeof eventCandidate === 'object'
174
+ ? eventCandidate
175
+ : payload;
176
+ const actionCandidate = event.action;
177
+ if (!actionCandidate || typeof actionCandidate !== 'object') {
178
+ return null;
179
+ }
180
+ const valueCandidate = actionCandidate.value;
181
+ if (!valueCandidate || typeof valueCandidate !== 'object') {
182
+ return null;
183
+ }
184
+ const value = valueCandidate;
185
+ if (value.action !== expectedAction) {
186
+ return null;
187
+ }
188
+ return { event, value };
189
+ }
175
190
  function formatPermissionButtonLabel(button) {
176
191
  return formatPermissionResponseLabel(button.data || button.text);
177
192
  }
178
193
  function formatPermissionResponseLabel(response) {
179
- switch ((0, desktop_js_1.normalizePermissionResponse)(response) || response) {
194
+ switch ((0, superai_contracts_1.normalizePermissionResponse)(response) || response) {
180
195
  case 'allow':
181
196
  return '允许一次';
182
197
  case 'allow all':
@@ -188,7 +203,7 @@ function formatPermissionResponseLabel(response) {
188
203
  }
189
204
  }
190
205
  function resolveLarkButtonType(button, index) {
191
- const response = (0, desktop_js_1.normalizePermissionResponse)(button.data) || (0, desktop_js_1.normalizePermissionResponse)(button.text);
206
+ const response = (0, superai_contracts_1.normalizePermissionResponse)(button.data) || (0, superai_contracts_1.normalizePermissionResponse)(button.text);
192
207
  if (response === 'deny') {
193
208
  return 'danger';
194
209
  }
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.collectLarkWorkspaceBindings = collectLarkWorkspaceBindings;
4
- const desktop_js_1 = require("../../../../../shared/desktop.js");
4
+ const superai_contracts_1 = require("../../../../../packages/contracts/src/index.js");
5
5
  const channel_keys_js_1 = require("../shared/channel-keys.js");
6
6
  function collectLarkWorkspaceBindings(config, options) {
7
7
  const projects = Array.isArray(config?.projects) ? config.projects : [];
@@ -9,7 +9,7 @@ function collectLarkWorkspaceBindings(config, options) {
9
9
  const platforms = Array.isArray(project.platforms) ? project.platforms : [];
10
10
  return platforms
11
11
  .map((platform) => ({
12
- platformType: (0, desktop_js_1.normalizeDesktopPlatformType)(platform?.type),
12
+ platformType: (0, superai_contracts_1.normalizeDesktopPlatformType)(platform?.type),
13
13
  options: platform?.options && typeof platform.options === 'object'
14
14
  ? platform.options
15
15
  : {},