@ai-setting/roy-agent-core 1.7.85 → 1.7.89

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 (148) hide show
  1. package/dist/config/index.js +7 -7
  2. package/dist/env/agent/agent-component.d.ts +1 -1
  3. package/dist/env/agent/agent-component.js +13 -12
  4. package/dist/env/agent/index.js +13 -12
  5. package/dist/env/agent/types.d.ts +14 -0
  6. package/dist/env/commands/index.js +7 -7
  7. package/dist/env/context/index.js +3 -3
  8. package/dist/env/debug/index.js +7 -7
  9. package/dist/env/error-reply.js +1 -1
  10. package/dist/env/event-source/event-source-handlers.d.ts +18 -2
  11. package/dist/env/event-source/event-source-handlers.js +26 -21
  12. package/dist/env/event-source/event-store.js +2 -2
  13. package/dist/env/event-source/index.js +25 -22
  14. package/dist/env/event-source/timer-handler.d.ts +98 -0
  15. package/dist/env/event-source/types.d.ts +53 -1
  16. package/dist/env/event-source/wecom-card-action-handler.d.ts +235 -3
  17. package/dist/env/event-source/wecom-card-builder.d.ts +207 -1
  18. package/dist/env/event-source/wecom-cli-handler.d.ts +25 -0
  19. package/dist/{shared/@ai-setting/roy-agent-core-vyr6svt6.js → env/event-source/wecom-respond-registry.js} +8 -6
  20. package/dist/env/event-source/wecom-session-card-sender.d.ts +135 -0
  21. package/dist/env/event-source/wecom-session-card-sender.js +153 -0
  22. package/dist/env/hook/index.js +5 -5
  23. package/dist/env/index.js +50 -45
  24. package/dist/env/llm/index.js +9 -8
  25. package/dist/env/log-trace/index.js +7 -7
  26. package/dist/env/log-trace/trace-filters.d.ts +6 -1
  27. package/dist/env/mcp/index.js +7 -7
  28. package/dist/env/memory/index.js +7 -7
  29. package/dist/env/plugin/index.js +7 -7
  30. package/dist/env/prompt/index.js +8 -8
  31. package/dist/env/prompt/prompts-index.d.ts +1 -1
  32. package/dist/env/session/group-session-link.d.ts +99 -0
  33. package/dist/env/session/index.js +11 -10
  34. package/dist/env/session/session-component.d.ts +89 -0
  35. package/dist/env/session/storage/index.js +5 -4
  36. package/dist/env/session/types.d.ts +10 -0
  37. package/dist/env/skill/index.js +7 -7
  38. package/dist/env/task/backend/index.d.ts +3 -0
  39. package/dist/env/task/backend/index.js +151 -3
  40. package/dist/env/task/backend/remote-task-port.d.ts +85 -0
  41. package/dist/env/task/backend/types.d.ts +5 -0
  42. package/dist/env/task/delegate/delegate-channel-hint.d.ts +39 -0
  43. package/dist/env/task/delegate/delegate-tool.d.ts +71 -6
  44. package/dist/env/task/delegate/delegate-tool.js +11 -9
  45. package/dist/env/task/delegate/index.js +8 -8
  46. package/dist/env/task/index.d.ts +1 -1
  47. package/dist/env/task/index.js +34 -18
  48. package/dist/env/task/mcp/index.js +4 -4
  49. package/dist/env/task/plugins/card-subject.d.ts +117 -0
  50. package/dist/env/task/plugins/index.js +19 -17
  51. package/dist/env/task/plugins/lark-card-action-handler.d.ts +261 -6
  52. package/dist/env/task/plugins/lark-card-patch-notifier.d.ts +501 -0
  53. package/dist/env/task/plugins/lark-card-patch-notifier.js +12 -2
  54. package/dist/env/task/plugins/lark-card-state-store.d.ts +60 -0
  55. package/dist/env/task/plugins/lark-cli-task-notify-plugin.d.ts +45 -0
  56. package/dist/env/task/plugins/sub-session-activity.d.ts +415 -0
  57. package/dist/env/task/plugins/wecom-session-card-store.d.ts +134 -0
  58. package/dist/env/task/plugins/wecom-session-card-store.js +23 -0
  59. package/dist/env/task/plugins/wecom-task-notify-plugin.d.ts +40 -0
  60. package/dist/env/task/storage/index.d.ts +1 -0
  61. package/dist/env/task/storage/index.js +24 -4
  62. package/dist/env/task/storage/migrations/006_add_task_owner.d.ts +24 -0
  63. package/dist/env/task/storage/remote-task-store.d.ts +186 -0
  64. package/dist/env/task/task-component.d.ts +7 -0
  65. package/dist/env/task/tools/index.js +4 -4
  66. package/dist/env/task/tools/task-types.d.ts +7 -0
  67. package/dist/env/task/types.d.ts +17 -0
  68. package/dist/env/tool/built-in/index.js +6 -4
  69. package/dist/env/tool/index.js +14 -10
  70. package/dist/env/tool/types.d.ts +25 -0
  71. package/dist/env/tool/validator.d.ts +8 -0
  72. package/dist/env/workflow/engine/index.js +12 -12
  73. package/dist/env/workflow/hooks/index.js +7 -7
  74. package/dist/env/workflow/index.js +24 -23
  75. package/dist/env/workflow/nodes/index.js +2 -2
  76. package/dist/env/workflow/plugins/index.js +10 -8
  77. package/dist/env/workflow/service/index.js +2 -2
  78. package/dist/env/workflow/storage/index.js +3 -3
  79. package/dist/env/workflow/tools/index.js +16 -15
  80. package/dist/env/workflow/utils/index.js +4 -4
  81. package/dist/index.d.ts +1 -1
  82. package/dist/index.js +71 -60
  83. package/dist/shared/@ai-setting/{roy-agent-core-q813vafd.js → roy-agent-core-05z35shp.js} +1 -1
  84. package/dist/shared/@ai-setting/{roy-agent-core-dc9zq75z.js → roy-agent-core-0crmsc12.js} +3 -3
  85. package/dist/shared/@ai-setting/{roy-agent-core-7dd0s3xb.js → roy-agent-core-0n1wwndq.js} +1027 -14
  86. package/dist/shared/@ai-setting/{roy-agent-core-cha0jc7n.js → roy-agent-core-0sbmdz8d.js} +137 -16
  87. package/dist/shared/@ai-setting/{roy-agent-core-87942bw4.js → roy-agent-core-1mhyh4c5.js} +1 -1
  88. package/dist/shared/@ai-setting/{roy-agent-core-v6vr6za7.js → roy-agent-core-1vv4fx15.js} +4 -4
  89. package/dist/shared/@ai-setting/{roy-agent-core-nwbfepba.js → roy-agent-core-3e040tc5.js} +1 -1
  90. package/dist/shared/@ai-setting/roy-agent-core-418zc9ha.js +288 -0
  91. package/dist/shared/@ai-setting/{roy-agent-core-qk9hd89p.js → roy-agent-core-49qcpqwg.js} +54 -19
  92. package/dist/shared/@ai-setting/{roy-agent-core-xf6z96qy.js → roy-agent-core-4b38m749.js} +818 -346
  93. package/dist/shared/@ai-setting/{roy-agent-core-r5wt1h3c.js → roy-agent-core-4fkxy2gv.js} +1 -1
  94. package/dist/shared/@ai-setting/{roy-agent-core-na18zwj0.js → roy-agent-core-4t3yskp8.js} +1 -1
  95. package/dist/shared/@ai-setting/{roy-agent-core-d1n4jbza.js → roy-agent-core-5dhvfgaw.js} +5 -5
  96. package/dist/shared/@ai-setting/{roy-agent-core-5pr4zp88.js → roy-agent-core-5kzhaap1.js} +1 -1
  97. package/dist/shared/@ai-setting/{roy-agent-core-qq96p0tj.js → roy-agent-core-5s2t8z00.js} +22 -1
  98. package/dist/shared/@ai-setting/{roy-agent-core-6rh8k6ba.js → roy-agent-core-6gj1hc5z.js} +7 -7
  99. package/dist/shared/@ai-setting/{roy-agent-core-g8htfwxj.js → roy-agent-core-7f10p7m2.js} +1 -1
  100. package/dist/shared/@ai-setting/{roy-agent-core-h21gngxf.js → roy-agent-core-7yh5wps0.js} +1 -1
  101. package/dist/shared/@ai-setting/{roy-agent-core-efkjyh69.js → roy-agent-core-9710zwwz.js} +1 -1
  102. package/dist/shared/@ai-setting/{roy-agent-core-rykf7c04.js → roy-agent-core-9c565frx.js} +1 -1
  103. package/dist/shared/@ai-setting/{roy-agent-core-vffccgf6.js → roy-agent-core-9cen1jvg.js} +18 -7
  104. package/dist/shared/@ai-setting/{roy-agent-core-fghc2m8z.js → roy-agent-core-aa8kv18f.js} +34 -2
  105. package/dist/shared/@ai-setting/roy-agent-core-age3qseb.js +177 -0
  106. package/dist/shared/@ai-setting/{roy-agent-core-7bpj859q.js → roy-agent-core-azyz78ky.js} +7 -7
  107. package/dist/shared/@ai-setting/{roy-agent-core-264qexac.js → roy-agent-core-b7h39vrc.js} +4 -4
  108. package/dist/shared/@ai-setting/{roy-agent-core-dqxec05w.js → roy-agent-core-bjtc9d35.js} +2 -2
  109. package/dist/shared/@ai-setting/roy-agent-core-c4ec7k0p.js +426 -0
  110. package/dist/shared/@ai-setting/{roy-agent-core-ddyk1rc0.js → roy-agent-core-cre2y2ct.js} +160 -4
  111. package/dist/shared/@ai-setting/{roy-agent-core-tr3ep81v.js → roy-agent-core-d6zdbgtc.js} +1 -1
  112. package/dist/shared/@ai-setting/{roy-agent-core-0qyrk5k0.js → roy-agent-core-ds6qzmf8.js} +14 -5
  113. package/dist/shared/@ai-setting/{roy-agent-core-p6ks90tb.js → roy-agent-core-dvec4nn2.js} +6 -6
  114. package/dist/shared/@ai-setting/{roy-agent-core-cgtq6427.js → roy-agent-core-e08bvpaq.js} +1 -1
  115. package/dist/shared/@ai-setting/{roy-agent-core-12n08pg5.js → roy-agent-core-e69qxdyy.js} +1 -1
  116. package/dist/shared/@ai-setting/{roy-agent-core-xcp8vwax.js → roy-agent-core-fepm835e.js} +2 -2
  117. package/dist/shared/@ai-setting/{roy-agent-core-6j02sbee.js → roy-agent-core-fhg03v43.js} +1 -1
  118. package/dist/shared/@ai-setting/{roy-agent-core-dvtg4sn0.js → roy-agent-core-g8yr733d.js} +1 -1
  119. package/dist/shared/@ai-setting/{roy-agent-core-m3vjepzz.js → roy-agent-core-h1e1fm9b.js} +38 -202
  120. package/dist/shared/@ai-setting/{roy-agent-core-c2gbt68e.js → roy-agent-core-h83zdsrq.js} +2 -2
  121. package/dist/shared/@ai-setting/{roy-agent-core-tk98f92b.js → roy-agent-core-k3gcvybs.js} +2 -2
  122. package/dist/shared/@ai-setting/{roy-agent-core-b31v3qpv.js → roy-agent-core-k3h8t4q1.js} +992 -212
  123. package/dist/shared/@ai-setting/{roy-agent-core-pgvcf91v.js → roy-agent-core-m39v7qpx.js} +2 -2
  124. package/dist/shared/@ai-setting/{roy-agent-core-ezvpreqz.js → roy-agent-core-m66ysky0.js} +54 -6
  125. package/dist/shared/@ai-setting/{roy-agent-core-begm7ytz.js → roy-agent-core-m7d1t3db.js} +3 -3
  126. package/dist/shared/@ai-setting/{roy-agent-core-tm1mxttk.js → roy-agent-core-mf5p38yf.js} +2 -2
  127. package/dist/shared/@ai-setting/{roy-agent-core-83bewqx8.js → roy-agent-core-mvh0td7p.js} +2 -2
  128. package/dist/shared/@ai-setting/{roy-agent-core-ze5cqpf2.js → roy-agent-core-mx855td4.js} +17 -38
  129. package/dist/shared/@ai-setting/{roy-agent-core-0dh8npnz.js → roy-agent-core-n197medr.js} +13 -13
  130. package/dist/shared/@ai-setting/{roy-agent-core-cmprygrp.js → roy-agent-core-nqkfkpf4.js} +4 -4
  131. package/dist/shared/@ai-setting/{roy-agent-core-7cbpmk4q.js → roy-agent-core-p31ftgq9.js} +1 -1
  132. package/dist/shared/@ai-setting/{roy-agent-core-1v4g0d4x.js → roy-agent-core-rm7seqwb.js} +1 -1
  133. package/dist/shared/@ai-setting/{roy-agent-core-ax9e9szb.js → roy-agent-core-smf94h73.js} +1 -1
  134. package/dist/shared/@ai-setting/{roy-agent-core-acj8ag08.js → roy-agent-core-tjnabyvq.js} +1 -1
  135. package/dist/shared/@ai-setting/{roy-agent-core-qqaak24r.js → roy-agent-core-tkpp1ba0.js} +1 -1
  136. package/dist/shared/@ai-setting/{roy-agent-core-dkrvmjsh.js → roy-agent-core-tpm1dd1g.js} +23 -15
  137. package/dist/shared/@ai-setting/{roy-agent-core-ed233k5z.js → roy-agent-core-v1n0106v.js} +1 -1
  138. package/dist/shared/@ai-setting/{roy-agent-core-zxz5fkwj.js → roy-agent-core-v6yshv0z.js} +1 -1
  139. package/dist/shared/@ai-setting/{roy-agent-core-mcy5apay.js → roy-agent-core-vf9sp6s3.js} +1 -1
  140. package/dist/shared/@ai-setting/{roy-agent-core-xvt7kf7p.js → roy-agent-core-w9ryeg2p.js} +3 -3
  141. package/dist/shared/@ai-setting/{roy-agent-core-es203w7p.js → roy-agent-core-wqs6yypq.js} +1 -1
  142. package/dist/shared/@ai-setting/roy-agent-core-wxrkcb17.js +56 -0
  143. package/dist/shared/@ai-setting/{roy-agent-core-0snm5hc5.js → roy-agent-core-y6shd91r.js} +1 -1
  144. package/dist/shared/@ai-setting/{roy-agent-core-9vxh6f8h.js → roy-agent-core-y7fqtzk2.js} +7 -7
  145. package/dist/shared/@ai-setting/{roy-agent-core-cpcd24n2.js → roy-agent-core-yet36q5k.js} +2 -2
  146. package/dist/shared/@ai-setting/{roy-agent-core-3fh1f7s7.js → roy-agent-core-yfpnkc4z.js} +5 -5
  147. package/dist/shared/@ai-setting/roy-agent-core-zhwcje5a.js +352 -0
  148. package/package.json +9 -1
@@ -1,8 +1,21 @@
1
+ import {
2
+ RemoteTaskStore
3
+ } from "../../../shared/@ai-setting/roy-agent-core-zhwcje5a.js";
1
4
  import {
2
5
  TASK_COMPLETED_STATUS_WORD,
3
6
  TASK_DELIVERABLE_RECORDED,
4
7
  TASK_TO_VALIDATE_STATUS_WORD
5
8
  } from "../../../shared/@ai-setting/roy-agent-core-4rtg69cn.js";
9
+ import {
10
+ SQLiteTaskStore,
11
+ init_sqlite_task_store
12
+ } from "../../../shared/@ai-setting/roy-agent-core-m66ysky0.js";
13
+ import"../../../shared/@ai-setting/roy-agent-core-5s2t8z00.js";
14
+ import {
15
+ createLogger,
16
+ init_logger
17
+ } from "../../../shared/@ai-setting/roy-agent-core-7f7t9wwp.js";
18
+ import"../../../shared/@ai-setting/roy-agent-core-85xyctnb.js";
6
19
  import"../../../shared/@ai-setting/roy-agent-core-fs0mn2jk.js";
7
20
  // src/env/task/backend/task-store-backend.ts
8
21
  var DELIVERABLE_OPERATION_PREFIX = "Deliverable: ";
@@ -70,7 +83,8 @@ class TaskStoreBackend {
70
83
  tags: input.tags,
71
84
  project_path: input.project_path,
72
85
  context: input.context,
73
- sessionId
86
+ sessionId,
87
+ ...input.owner !== undefined && input.owner !== null ? { owner: input.owner } : {}
74
88
  });
75
89
  await this.createOperation({
76
90
  taskId: created.id,
@@ -127,7 +141,8 @@ class TaskStoreBackend {
127
141
  tags: input.tags,
128
142
  project_path: input.project_path,
129
143
  context: input.context,
130
- ...parentNum !== undefined ? { parent_task_id: parentNum } : {}
144
+ ...parentNum !== undefined ? { parent_task_id: parentNum } : {},
145
+ ...input.owner !== undefined ? { owner: input.owner } : {}
131
146
  });
132
147
  return updated ? this.toTask(updated) : null;
133
148
  }
@@ -425,7 +440,8 @@ function createSQLiteTaskPort(store) {
425
440
  ...input.tags !== undefined ? { tags: input.tags } : {},
426
441
  sessionId: input.sessionId ?? "unknown",
427
442
  project_path: input.project_path,
428
- context: input.context
443
+ context: input.context,
444
+ ...input.owner !== undefined ? { owner: input.owner } : {}
429
445
  });
430
446
  return { ...task, nativeId: String(task.id) };
431
447
  },
@@ -505,6 +521,135 @@ function createSQLiteTaskPort(store) {
505
521
  }
506
522
  };
507
523
  }
524
+ // src/env/task/backend/remote-task-port.ts
525
+ init_sqlite_task_store();
526
+ init_logger();
527
+ var SCAN_ALL2 = 1e6;
528
+ var defaultLog = createLogger("task-remote-port");
529
+ function createRemoteTaskPortFromStore(store) {
530
+ return {
531
+ async createTask(input) {
532
+ const task = await store.createTask({
533
+ title: input.title,
534
+ description: input.description,
535
+ ...input.priority !== undefined ? { priority: input.priority } : {},
536
+ ...input.type !== undefined ? { type: input.type } : {},
537
+ ...input.parent_task_id !== undefined ? { parent_task_id: input.parent_task_id } : {},
538
+ ...input.goals_and_expected_deliverables !== undefined ? { goals_and_expected_deliverables: input.goals_and_expected_deliverables } : {},
539
+ ...input.due_date !== undefined ? { due_date: input.due_date } : {},
540
+ ...input.tags !== undefined ? { tags: input.tags } : {},
541
+ sessionId: input.sessionId ?? "unknown",
542
+ project_path: input.project_path,
543
+ context: input.context,
544
+ ...input.owner !== undefined ? { owner: input.owner } : {}
545
+ });
546
+ return { ...task, nativeId: String(task.id) };
547
+ },
548
+ async getTask(nativeId) {
549
+ const num = Number(nativeId);
550
+ if (!Number.isFinite(num))
551
+ return null;
552
+ const task = await store.getTask(num);
553
+ return task ? { ...task, nativeId: String(task.id) } : null;
554
+ },
555
+ async getTaskByNum(num) {
556
+ const task = await store.getTask(num);
557
+ return task ? { ...task, nativeId: String(task.id) } : null;
558
+ },
559
+ async listTasks(options) {
560
+ const res = await store.listTasks({
561
+ limit: options?.limit ?? 20,
562
+ offset: options?.offset ?? 0,
563
+ ...options?.includeArchived ? { include_archived: true } : {}
564
+ });
565
+ return {
566
+ tasks: res.tasks.map((t) => ({ ...t, nativeId: String(t.id) })),
567
+ total: res.total
568
+ };
569
+ },
570
+ async updateTask(nativeId, patch) {
571
+ const num = Number(nativeId);
572
+ if (!Number.isFinite(num))
573
+ return null;
574
+ const task = await store.updateTask(num, patch);
575
+ return task ? { ...task, nativeId: String(task.id) } : null;
576
+ },
577
+ async deleteTask(nativeId) {
578
+ const num = Number(nativeId);
579
+ if (!Number.isFinite(num))
580
+ return false;
581
+ return await store.deleteTask(num);
582
+ },
583
+ async createOperation(input) {
584
+ const op = await store.createOperation({
585
+ taskId: input.taskId,
586
+ sessionId: input.sessionId,
587
+ milestoneType: input.milestoneType,
588
+ milestoneTitle: input.milestoneTitle,
589
+ milestoneDescription: input.milestoneDescription,
590
+ processDescription: input.processDescription,
591
+ ...input.mdPath ? { mdPath: input.mdPath } : {}
592
+ });
593
+ return { ...op, nativeId: String(op.id) };
594
+ },
595
+ async listOperations(options) {
596
+ const num = Number(options?.taskNativeId);
597
+ if (!Number.isFinite(num))
598
+ return { operations: [], total: 0 };
599
+ const all = await store.listOperations({ taskId: num, limit: SCAN_ALL2, offset: 0 });
600
+ const offset = options?.offset ?? 0;
601
+ const limit = options?.limit ?? all.length;
602
+ return {
603
+ operations: all.slice(offset, offset + limit).map((o) => ({ ...o, nativeId: String(o.id) })),
604
+ total: all.length
605
+ };
606
+ },
607
+ async getOperationByNum(num) {
608
+ const op = await store.getOperation(num);
609
+ return op ? { ...op, nativeId: String(op.id) } : null;
610
+ },
611
+ async updateOperationByNum(num, patch) {
612
+ const op = await store.updateOperation(num, {
613
+ ...patch.milestoneTitle !== undefined ? { milestoneTitle: patch.milestoneTitle } : {},
614
+ ...patch.milestoneDescription !== undefined ? { milestoneDescription: patch.milestoneDescription } : {},
615
+ ...patch.processDescription !== undefined ? { processDescription: patch.processDescription } : {}
616
+ });
617
+ return op ? { ...op, nativeId: String(op.id) } : null;
618
+ },
619
+ async deleteOperationByNum(num) {
620
+ return await store.deleteOperation(num);
621
+ }
622
+ };
623
+ }
624
+ function createRemoteTaskPort(options) {
625
+ if (!options?.endpoint && !options.store) {
626
+ throw new Error("[createRemoteTaskPort] endpoint is required (task.storage.endpoint). " + "Point it at the running roy-task-service, e.g. http://127.0.0.1:7820.");
627
+ }
628
+ const store = options.store ?? new RemoteTaskStore({
629
+ endpoint: options.endpoint,
630
+ authToken: options.authToken,
631
+ ...options.timeoutMs !== undefined ? { timeoutMs: options.timeoutMs } : {},
632
+ ...options.maxRetries !== undefined ? { maxRetries: options.maxRetries } : {}
633
+ });
634
+ return createRemoteTaskPortFromStore(store);
635
+ }
636
+ async function createTaskPortFromConfig(config, defaults = {}) {
637
+ const type = config.get("task.storage.type") ?? "sqlite";
638
+ if (type === "remote") {
639
+ const endpoint = config.get("task.storage.endpoint");
640
+ const authToken = config.get("task.storage.authToken");
641
+ if (!endpoint) {
642
+ throw new Error("[createTaskPortFromConfig] task.storage.type=remote requires task.storage.endpoint " + "(e.g. http://127.0.0.1:7820). No local fallback is performed by design.");
643
+ }
644
+ const store2 = new RemoteTaskStore({ endpoint, authToken });
645
+ return { port: createRemoteTaskPortFromStore(store2), kind: "remote", store: store2 };
646
+ }
647
+ if (type !== "sqlite") {
648
+ defaultLog.warn?.(`[createTaskPortFromConfig] Unknown task.storage.type="${String(type)}", ` + `falling back to default SQLite storage. Supported: "sqlite" | "remote".`);
649
+ }
650
+ const store = new SQLiteTaskStore(defaults.dbPath);
651
+ return { port: createSQLiteTaskPort(store), kind: "sqlite", store };
652
+ }
508
653
  // src/env/task/backend/roy-sidecar-task-port.ts
509
654
  var DEFAULT_SCAN = 1e6;
510
655
  function toSidecarPatch(patch) {
@@ -738,8 +883,11 @@ export {
738
883
  toNumericHandle,
739
884
  mergeDeliverableIntoContext,
740
885
  formatDeliverableForOperation,
886
+ createTaskPortFromConfig,
741
887
  createSQLiteTaskPort,
742
888
  createRoySidecarTaskPort,
889
+ createRemoteTaskPortFromStore,
890
+ createRemoteTaskPort,
743
891
  allowedIdsByDepth,
744
892
  TaskStoreBackend,
745
893
  DELIVERABLE_OPERATION_PREFIX
@@ -0,0 +1,85 @@
1
+ /**
2
+ * @fileoverview Remote Task Port — 让 MCP / 插件侧的 `TaskStoreBackend` 走 task-service
3
+ *
4
+ * Task #5440(方案 v3 §2.2 / M4)。
5
+ *
6
+ * ## 为什么需要这一层
7
+ *
8
+ * `TaskComponent`(agent 自己的工具链)与 MCP(`TaskStoreBackend`)是**两条
9
+ * 独立**的存储接线路径:
10
+ *
11
+ * ```
12
+ * agent 工具 (task_create …) ──► TaskComponent ──► initStore 分支 ──► store
13
+ * MCP 工具 (task_create …) ──► TaskStoreBackend ──► TaskPersistencePort ──► store
14
+ * ```
15
+ *
16
+ * `TaskStoreBackend` 的构造参数是 `TaskPersistencePort`(纯存取原语),**不是**
17
+ * `TaskStore`。所以 remote 覆盖必须落在 port 工厂这一层,而不是靠 initStore
18
+ * 分支(两条路径互不经过)。
19
+ *
20
+ * ## 语义边界(重要)
21
+ *
22
+ * 这里**只做形状翻译**,不做任何 roy 语义:
23
+ * - `TaskStore` 的数字 id ↔ port 的 `nativeId`(十进制字符串)
24
+ * - port 的「纯分页 listTasks」← `TaskStore.listTasks`(不传语义过滤)
25
+ * - `total` 由 port 诚实计算(`listOperations` 不返回总数)
26
+ *
27
+ * BFS / depth / deliverable / create-operation 全部仍在 `TaskStoreBackend`,
28
+ * 保证 remote 与本地跑的是**同一套**语义。
29
+ */
30
+ import type { TaskStore } from "../storage/sqlite-task-store";
31
+ import type { TaskPersistencePort } from "./types";
32
+ /**
33
+ * 把任意 `TaskStore`(本地或远端)接成 `TaskPersistencePort`。
34
+ *
35
+ * 与 {@link createSQLiteTaskPort} 的区别:那个是「本地专用」的现成适配
36
+ * (`store.listTasks` 自带 include_archived 透传等本地细节),本函数面向
37
+ * **remote** 场景,且刻意保持最小契约(remote 的 HTTP 层语义与本地完全
38
+ * 1:1,不需要本地特化)。
39
+ */
40
+ export declare function createRemoteTaskPortFromStore(store: TaskStore): TaskPersistencePort;
41
+ export interface RemoteTaskPortOptions {
42
+ /** service 地址,如 `http://127.0.0.1:7820` */
43
+ endpoint: string;
44
+ /** Bearer token(与服务端 TASK_AUTH_TOKEN 一致) */
45
+ authToken?: string;
46
+ /** 单请求超时(毫秒) */
47
+ timeoutMs?: number;
48
+ /** 最大重试次数 */
49
+ maxRetries?: number;
50
+ /** 注入已有 store(测试/复用连接配置) */
51
+ store?: TaskStore;
52
+ }
53
+ /**
54
+ * 建一个走 task-service 的 port。
55
+ *
56
+ * ```ts
57
+ * const backend = new TaskStoreBackend(createRemoteTaskPort({ endpoint, authToken }));
58
+ * const server = createTaskMcpServer(backend);
59
+ * ```
60
+ */
61
+ export declare function createRemoteTaskPort(options: RemoteTaskPortOptions): TaskPersistencePort;
62
+ /** `createTaskPortFromConfig` 的返回:port + 实际选中的引擎类型(便于日志/诊断)。 */
63
+ export interface TaskPortFromConfig {
64
+ port: TaskPersistencePort;
65
+ kind: "sqlite" | "remote";
66
+ /** 选中引擎背后的 store 实例(宿主需要 close 时用)。 */
67
+ store: TaskStore;
68
+ }
69
+ /**
70
+ * 按 `task.storage.*` 配置构造 port —— MCP / 插件宿主接线用。
71
+ *
72
+ * - `type=sqlite`(默认)→ 本地 `SQLiteTaskStore` + {@link createSQLiteTaskPort}
73
+ * - `type=remote` → `RemoteTaskStore` + {@link createRemoteTaskPortFromStore}
74
+ *
75
+ * ⚠️ `type=remote` 缺 `endpoint` 时**明确抛错**(与 `TaskComponent.initStore`
76
+ * 同语义:不猜默认值、不静默退回本地库)。
77
+ *
78
+ * @param config 具备 `get(key)` 的配置对象(通常是 `ConfigComponent`)
79
+ * @param defaults `sqlite` 分支的 dbPath 等本地选项
80
+ */
81
+ export declare function createTaskPortFromConfig(config: {
82
+ get(key: string): unknown;
83
+ }, defaults?: {
84
+ dbPath?: string;
85
+ }): Promise<TaskPortFromConfig>;
@@ -225,6 +225,11 @@ export interface PortUpdateTaskInput {
225
225
  context?: string;
226
226
  /** `null` = 提升为根任务。 */
227
227
  parent_task_id?: number | null;
228
+ /**
229
+ * 负责人(Task #5440)。`undefined` = 不改;`null` = 清空;字符串 = 改派。
230
+ * 与 `PortCreateTaskInput.owner` 同语义,roy 自己的 port 直接落到 owner 列。
231
+ */
232
+ owner?: string | null;
228
233
  }
229
234
  /** port 的建 operation 入参。 */
230
235
  export interface PortCreateOperationInput {
@@ -0,0 +1,39 @@
1
+ /**
2
+ * @fileoverview Task #5423 — delegate_task sub-agent prompt 渠道特性提示。
3
+ *
4
+ * ## 背景(用户 2026-11-13 07:14 批准的方案)
5
+ *
6
+ * delegate_task 起的 sub-agent 的 prompt 里没有渠道特性提示:
7
+ * 用户在飞书发「帮我写调研文档」→ 主 agent delegate 给 sub-agent
8
+ * → sub-agent 不知道触发渠道 → 产出物落本地路径(`/tmp/x.md`)
9
+ * 而非飞书云盘,飞书用户根本打不开。
10
+ *
11
+ * 主 agent 的 system prompt 里**有**渠道规范(lark/wecom 渠道 prompt),
12
+ * 但那套 systemPrompt 只注入主 agent;sub-agent 走
13
+ * `ensureSubAgentRegistered(basePrompt)`,只拿到自己的 basePrompt,
14
+ * 拿不到任何渠道上下文。
15
+ *
16
+ * ## 方案
17
+ *
18
+ * 渠道信息来源:delegate 时刻的 `EnvContext.replyChannel.type`
19
+ * (`lark-cli` / `wecom-cli`),已由 `captureReplyChannelSnapshot()`
20
+ * 快照到 `task.replyChannel`(Task #4042 follow-up),
21
+ * 并在 `executeWithAbort` 里可从 sub-session metadata / EnvContext 取到。
22
+ *
23
+ * - 触发渠道是飞书 → 文档类产出用**飞书云盘**(`lark-cli docs +create`)
24
+ * - 触发渠道是企微 → 对应方式(`wecom-cli doc create` / `disk files upload`)
25
+ * - 无渠道(CLI / REPL / 定时器 / 未知渠道)→ 返回 undefined,**不注入**
26
+ *
27
+ * 纯函数叶子模块:不 import delegate-tool / event-source,
28
+ * 避免回向依赖(对标 sub-session-activity.ts 的叶子模块纪律)。
29
+ */
30
+ /** 渠道提示段的章节标题(同时作为「无渠道不注入」的探针串) */
31
+ export declare const DELEGATE_CHANNEL_HINT_TITLE = "## \u6E20\u9053\u4EA4\u4ED8\u63D0\u793A\uFF08\u5F53\u524D\u4F1A\u8BDD\u6765\u81EA\u5916\u90E8\u6E20\u9053\uFF09";
32
+ /**
33
+ * 从 replyChannel.type 派生渠道特性提示段。
34
+ *
35
+ * @param channelType delegate 时刻 EnvContext.replyChannel.type
36
+ * (`"lark-cli"` / `"wecom-cli"` / 其他 / undefined)
37
+ * @returns 提示段文本;无渠道或未知渠道返回 undefined(不注入)
38
+ */
39
+ export declare function buildDelegateChannelHint(channelType: string | undefined): string | undefined;
@@ -35,13 +35,31 @@ export declare const BackgroundTaskEventTypes: {
35
35
  * - EventMessageFormatter 渲染 payload(含 question + subSessionId + rule-based hints)
36
36
  * - handleEventMessageWithEnv → executeInternal 把消息喂给主 agent LLM
37
37
  * - 主 agent 用 ask_user tool 展示问题、等用户答复
38
- * - 拿到答复后用 delegate_task(subagentType=..., existingSubSessionId=payload.subSessionId, ...)
38
+ * - 拿到答复后用 delegate_task(subagent_type=..., sub_session_id=payload.subSessionId, ...)
39
39
  * 复用 sub-session 让 sub-agent 继承消息历史继续推进(无需 resume function)。
40
40
  *
41
41
  * 关键:hints 由 BackgroundTaskManager 在构造事件时 rule-based 填充(事件自带),
42
42
  * CLI 端 formatter 只渲染,handler 端零特殊化。
43
43
  */
44
44
  readonly ASK_USER: "task.background.ask_user";
45
+ /**
46
+ * ★ 补充需求(22:31):sub-agent 启动、**但尚未建 task**。
47
+ *
48
+ * ## 为什么需要独立一个事件(不能复用 STARTED)
49
+ *
50
+ * `STARTED` 在 `createTask()` 里就发,此刻 `associatedTaskId` 还是
51
+ * `undefined`(sub-agent 还没跑、当然还没建 task)—— 所以它**无法**告诉
52
+ * 卡片层「这是 task 卡还是 session 卡」。
53
+ *
54
+ * 而用户要的是:**只要跑起来了、且没建 task,就应该有卡片可点刷新**。
55
+ *
56
+ * ⇒ 在 sub-agent 完成「是否建了 task」的判定之后(即 `COMPLETED` 时
57
+ * 反查 `associatedTaskId` 之后),若仍无 task,才补发本事件。
58
+ *
59
+ * 语义:`STARTED` = 「有后台任务在跑」(task 视角);本事件 =
60
+ * 「这次执行挂不到 task 上」(session 视角)。两者互补,不重复。
61
+ */
62
+ readonly SESSION_STARTED: "task.background.session_started";
45
63
  };
46
64
  export interface BackgroundTaskStartedPayload {
47
65
  backgroundTaskId: string;
@@ -97,8 +115,8 @@ export interface BackgroundTaskCompletedPayload {
97
115
  * - EventMessageFormatter 渲染 payload(question + subSessionId + hints)成消息
98
116
  * - handleEventMessageWithEnv → executeInternal 把消息喂给主 agent LLM
99
117
  * - 主 agent 用 ask_user tool 把 question 展示给用户
100
- * - 拿到用户答复后用 delegate_task(subagentType=payload.subagentType,
101
- * existingSubSessionId=payload.subSessionId, prompt=<用户答复>)
118
+ * - 拿到用户答复后用 delegate_task(subagent_type=payload.subagentType,
119
+ * sub_session_id=payload.subSessionId, prompt=<用户答复>)
102
120
  * 复用 sub-session 让 sub-agent 继承之前消息历史继续推进(无需 resume function)。
103
121
  *
104
122
  * hints 是 rule-based 提示数组,BackgroundTaskManager 在构造事件时填充。
@@ -162,6 +180,33 @@ export interface SubAgentSpec {
162
180
  }
163
181
  export declare const builtInSubAgents: SubAgentSpec[];
164
182
  export declare function getSubAgentSpec(id: string): SubAgentSpec | undefined;
183
+ /**
184
+ * 确保 subAgent 已注册到 AgentComponent
185
+ *
186
+ * 对于 workflow type 的 agent,跳过注册(workflow agent 不需要 system prompt 和 runtime agent)。
187
+ *
188
+ * @param agentComponent AgentComponent 实例
189
+ * @param subagentType subAgent 类型(用作 agentName)
190
+ * @param basePrompt 基础 system prompt
191
+ * @param subAgent subAgent 配置(可能包含 allowedTools)
192
+ * @param deniedTools 拒绝的工具列表
193
+ * @returns 注册的 agent 实例,workflow agent 返回 null
194
+ */
195
+ /**
196
+ * ★ Task #5333(DS review 第 2 轮 MINOR-4)— 把松散来源的 extendTools 归一。
197
+ *
198
+ * `ToolContext.metadata` 是 `Record<string, unknown>`,从里面取出的值理论上
199
+ * 可能是任意类型。`filterToolsByAgent` 用 `extendTools.includes(name)` 判断,
200
+ * 若传进来一个对象或含非字符串的数组,既不报错也永不命中 —— 表现为
201
+ * 「名单写了却不生效」的诡异静默失败。这里做一次运行时收敛:
202
+ *
203
+ * - 非数组 → undefined(视为未放行)
204
+ * - 数组 → 只保留非空字符串(trim 后),全被过滤掉则返回 undefined
205
+ *
206
+ * @param raw 来自 ToolContext.metadata 的原始值
207
+ * @returns 干净的字符串数组或 undefined
208
+ */
209
+ export declare function normalizeExtendTools(raw: unknown): string[] | undefined;
165
210
  export declare const DelegateToolParameters: z.ZodObject<{
166
211
  description: z.ZodString;
167
212
  prompt: z.ZodString;
@@ -246,6 +291,14 @@ export interface BackgroundTask {
246
291
  * 透传天然每次都是最新值(channel prompt 是 per-event 的)。
247
292
  */
248
293
  systemPrompt?: string;
294
+ /**
295
+ * ★ Task #5333 — 父 run 的渠道专用工具放行名单(AgentContext.extendTools)。
296
+ *
297
+ * 企微事件驱动的父 agent 有 `["wecom_respond"]`;委派出去的 sub-agent
298
+ * 若拿不到这份名单,`wecom_respond`(channelOnly 工具)在 sub-agent 侧
299
+ * 不可见 → 子任务无法给企微用户回复。因此随 task 一起透传。
300
+ */
301
+ extendTools?: string[];
249
302
  /**
250
303
  * ★ Task #4552 (A1):本任务被允许的运行时长(毫秒,createTask 时确定)。
251
304
  *
@@ -373,6 +426,12 @@ export interface CreateBackgroundTaskOptions {
373
426
  * 透传给 sub-agent 的 AgentContext.metadata.systemPrompt。
374
427
  */
375
428
  systemPrompt?: string;
429
+ /**
430
+ * ★ Task #5333 — 父 run 的渠道专用工具放行名单(AgentContext.extendTools)。
431
+ * 透传给 sub-agent 的 AgentContext.extendTools,使子 agent 也能看到
432
+ * 本渠道的 channelOnly 工具(如 wecom_respond)。
433
+ */
434
+ extendTools?: string[];
376
435
  }
377
436
  /**
378
437
  * 构建 entry-agent 调度的 prompt 包装 (Task #2164 beta-compare divergence #2)
@@ -637,10 +696,10 @@ export declare class BackgroundTaskManager {
637
696
  * 保留 sub-session 并发布 `task.background.ask_user` 事件。
638
697
  * 2. CLI 收到事件后直接显示问题给用户(不送 LLM)。
639
698
  * 3. 用户答复后,主 agent(或用户命令)通过 `delegate_task` 工具调用
640
- * `subagentType=original.subagentType, existingSubSessionId=original.subSessionId`
699
+ * `subagent_type=original.subagentType, sub_session_id=original.subSessionId`
641
700
  * 即可复用 sub-session(保留 message history)继续推进 sub-agent。
642
701
  *
643
- * 因此本方法不再提供;续传是 delegate_task + existingSubSessionId 内建能力。
702
+ * 因此本方法不再提供;续传是 delegate_task + sub_session_id 参数内建能力。
644
703
  */
645
704
  private executeTask;
646
705
  /**
@@ -864,5 +923,11 @@ fallbackModels?: string[],
864
923
  * (ToolContext.metadata.systemPrompt,per-event)。
865
924
  * 透传给 createTask → sub-agent 的 AgentContext.metadata.systemPrompt。
866
925
  */
867
- systemPrompt?: string): Promise<ToolResult>;
926
+ systemPrompt?: string,
927
+ /**
928
+ * ★ Task #5333 — 父 run 的渠道专用工具放行名单(AgentContext.extendTools)。
929
+ * 透传给 createTask → sub-agent 的 AgentContext.extendTools,使委派出去的
930
+ * 子任务仍能调用本渠道的 channelOnly 工具(如 wecom_respond)。
931
+ */
932
+ extendTools?: string[]): Promise<ToolResult>;
868
933
  export { handleBackgroundTask };
@@ -12,25 +12,27 @@ import {
12
12
  createDelegateTool,
13
13
  deriveTriggerEventIdFromEnvContext,
14
14
  getSubAgentSpec,
15
- handleBackgroundTask
16
- } from "../../../shared/@ai-setting/roy-agent-core-cha0jc7n.js";
15
+ handleBackgroundTask,
16
+ normalizeExtendTools
17
+ } from "../../../shared/@ai-setting/roy-agent-core-0sbmdz8d.js";
17
18
  import"../../../shared/@ai-setting/roy-agent-core-fttgm52a.js";
18
- import"../../../shared/@ai-setting/roy-agent-core-na18zwj0.js";
19
- import"../../../shared/@ai-setting/roy-agent-core-9vxh6f8h.js";
19
+ import"../../../shared/@ai-setting/roy-agent-core-4t3yskp8.js";
20
+ import"../../../shared/@ai-setting/roy-agent-core-y7fqtzk2.js";
20
21
  import"../../../shared/@ai-setting/roy-agent-core-1pg0fepg.js";
21
22
  import"../../../shared/@ai-setting/roy-agent-core-m46fe3x4.js";
22
23
  import"../../../shared/@ai-setting/roy-agent-core-4rtg69cn.js";
23
- import"../../../shared/@ai-setting/roy-agent-core-ed233k5z.js";
24
+ import"../../../shared/@ai-setting/roy-agent-core-v1n0106v.js";
24
25
  import"../../../shared/@ai-setting/roy-agent-core-qxnbvgwe.js";
25
26
  import"../../../shared/@ai-setting/roy-agent-core-c1v263jn.js";
26
- import"../../../shared/@ai-setting/roy-agent-core-cpcd24n2.js";
27
- import"../../../shared/@ai-setting/roy-agent-core-qqaak24r.js";
28
- import"../../../shared/@ai-setting/roy-agent-core-7cbpmk4q.js";
29
- import"../../../shared/@ai-setting/roy-agent-core-qq96p0tj.js";
27
+ import"../../../shared/@ai-setting/roy-agent-core-yet36q5k.js";
28
+ import"../../../shared/@ai-setting/roy-agent-core-tkpp1ba0.js";
29
+ import"../../../shared/@ai-setting/roy-agent-core-p31ftgq9.js";
30
+ import"../../../shared/@ai-setting/roy-agent-core-5s2t8z00.js";
30
31
  import"../../../shared/@ai-setting/roy-agent-core-7f7t9wwp.js";
31
32
  import"../../../shared/@ai-setting/roy-agent-core-85xyctnb.js";
32
33
  import"../../../shared/@ai-setting/roy-agent-core-fs0mn2jk.js";
33
34
  export {
35
+ normalizeExtendTools,
34
36
  handleBackgroundTask,
35
37
  getSubAgentSpec,
36
38
  deriveTriggerEventIdFromEnvContext,
@@ -5,20 +5,20 @@ import {
5
5
  BackgroundTaskEventTypes,
6
6
  BackgroundTaskManager,
7
7
  createDelegateTool
8
- } from "../../../shared/@ai-setting/roy-agent-core-cha0jc7n.js";
8
+ } from "../../../shared/@ai-setting/roy-agent-core-0sbmdz8d.js";
9
9
  import"../../../shared/@ai-setting/roy-agent-core-fttgm52a.js";
10
- import"../../../shared/@ai-setting/roy-agent-core-na18zwj0.js";
11
- import"../../../shared/@ai-setting/roy-agent-core-9vxh6f8h.js";
10
+ import"../../../shared/@ai-setting/roy-agent-core-4t3yskp8.js";
11
+ import"../../../shared/@ai-setting/roy-agent-core-y7fqtzk2.js";
12
12
  import"../../../shared/@ai-setting/roy-agent-core-1pg0fepg.js";
13
13
  import"../../../shared/@ai-setting/roy-agent-core-m46fe3x4.js";
14
14
  import"../../../shared/@ai-setting/roy-agent-core-4rtg69cn.js";
15
- import"../../../shared/@ai-setting/roy-agent-core-ed233k5z.js";
15
+ import"../../../shared/@ai-setting/roy-agent-core-v1n0106v.js";
16
16
  import"../../../shared/@ai-setting/roy-agent-core-qxnbvgwe.js";
17
17
  import"../../../shared/@ai-setting/roy-agent-core-c1v263jn.js";
18
- import"../../../shared/@ai-setting/roy-agent-core-cpcd24n2.js";
19
- import"../../../shared/@ai-setting/roy-agent-core-qqaak24r.js";
20
- import"../../../shared/@ai-setting/roy-agent-core-7cbpmk4q.js";
21
- import"../../../shared/@ai-setting/roy-agent-core-qq96p0tj.js";
18
+ import"../../../shared/@ai-setting/roy-agent-core-yet36q5k.js";
19
+ import"../../../shared/@ai-setting/roy-agent-core-tkpp1ba0.js";
20
+ import"../../../shared/@ai-setting/roy-agent-core-p31ftgq9.js";
21
+ import"../../../shared/@ai-setting/roy-agent-core-5s2t8z00.js";
22
22
  import"../../../shared/@ai-setting/roy-agent-core-7f7t9wwp.js";
23
23
  import"../../../shared/@ai-setting/roy-agent-core-85xyctnb.js";
24
24
  import"../../../shared/@ai-setting/roy-agent-core-fs0mn2jk.js";
@@ -3,6 +3,6 @@
3
3
  */
4
4
  export { TaskComponent, type TaskComponentOptions } from "./task-component";
5
5
  export * from "./types";
6
- export { SQLiteTaskStore, getDefaultTaskDbPath, type TaskStore } from "./storage";
6
+ export { SQLiteTaskStore, getDefaultTaskDbPath, type TaskStore, RemoteTaskStore, createRemoteTaskStore, RemoteTaskStoreError, RemoteAuthError, RemoteBatchBusyError, RemoteIdempotencyConflictError, RemoteProtocolError, type RemoteTaskStoreOptions, } from "./storage";
7
7
  export { TASK_COMPLETED_STATUS_WORD, TASK_CANCELLED_STATUS_WORD, TASK_ARCHIVED_STATUS_WORD, TASK_DELIVERABLE_RECORDED, } from "./tools/completion-copy";
8
8
  export * from "./events";
@@ -5,25 +5,30 @@ import {
5
5
  TaskPriorityEnum,
6
6
  TaskStatusEnum,
7
7
  TaskTypeEnum
8
- } from "../../shared/@ai-setting/roy-agent-core-qk9hd89p.js";
8
+ } from "../../shared/@ai-setting/roy-agent-core-49qcpqwg.js";
9
9
  import"../../shared/@ai-setting/roy-agent-core-2akfd64z.js";
10
10
  import"../../shared/@ai-setting/roy-agent-core-jm136jzh.js";
11
- import"../../shared/@ai-setting/roy-agent-core-cha0jc7n.js";
11
+ import"../../shared/@ai-setting/roy-agent-core-0sbmdz8d.js";
12
12
  import"../../shared/@ai-setting/roy-agent-core-fttgm52a.js";
13
- import"../../shared/@ai-setting/roy-agent-core-q813vafd.js";
13
+ import"../../shared/@ai-setting/roy-agent-core-05z35shp.js";
14
+ import {
15
+ RemoteAuthError,
16
+ RemoteBatchBusyError,
17
+ RemoteIdempotencyConflictError,
18
+ RemoteProtocolError,
19
+ RemoteTaskStore,
20
+ RemoteTaskStoreError,
21
+ createRemoteTaskStore
22
+ } from "../../shared/@ai-setting/roy-agent-core-zhwcje5a.js";
14
23
  import {
15
24
  TaskEntityEventTypes
16
25
  } from "../../shared/@ai-setting/roy-agent-core-8gxth0eh.js";
17
- import"../../shared/@ai-setting/roy-agent-core-vffccgf6.js";
26
+ import"../../shared/@ai-setting/roy-agent-core-9cen1jvg.js";
18
27
  import"../../shared/@ai-setting/roy-agent-core-p5cz9m8v.js";
19
- import"../../shared/@ai-setting/roy-agent-core-na18zwj0.js";
20
- import"../../shared/@ai-setting/roy-agent-core-9vxh6f8h.js";
21
- import {
22
- SQLiteTaskStore,
23
- getDefaultTaskDbPath
24
- } from "../../shared/@ai-setting/roy-agent-core-ezvpreqz.js";
28
+ import"../../shared/@ai-setting/roy-agent-core-4t3yskp8.js";
29
+ import"../../shared/@ai-setting/roy-agent-core-y7fqtzk2.js";
25
30
  import"../../shared/@ai-setting/roy-agent-core-1pg0fepg.js";
26
- import"../../shared/@ai-setting/roy-agent-core-tr3ep81v.js";
31
+ import"../../shared/@ai-setting/roy-agent-core-d6zdbgtc.js";
27
32
  import"../../shared/@ai-setting/roy-agent-core-m46fe3x4.js";
28
33
  import {
29
34
  TASK_ARCHIVED_STATUS_WORD,
@@ -31,21 +36,26 @@ import {
31
36
  TASK_COMPLETED_STATUS_WORD,
32
37
  TASK_DELIVERABLE_RECORDED
33
38
  } from "../../shared/@ai-setting/roy-agent-core-4rtg69cn.js";
34
- import"../../shared/@ai-setting/roy-agent-core-ed233k5z.js";
39
+ import {
40
+ SQLiteTaskStore,
41
+ getDefaultTaskDbPath
42
+ } from "../../shared/@ai-setting/roy-agent-core-m66ysky0.js";
43
+ import"../../shared/@ai-setting/roy-agent-core-v1n0106v.js";
35
44
  import"../../shared/@ai-setting/roy-agent-core-qxnbvgwe.js";
36
45
  import"../../shared/@ai-setting/roy-agent-core-c1v263jn.js";
37
46
  import"../../shared/@ai-setting/roy-agent-core-7hh0brvs.js";
38
- import"../../shared/@ai-setting/roy-agent-core-pgvcf91v.js";
39
- import"../../shared/@ai-setting/roy-agent-core-ax9e9szb.js";
40
- import"../../shared/@ai-setting/roy-agent-core-cpcd24n2.js";
41
- import"../../shared/@ai-setting/roy-agent-core-qqaak24r.js";
42
- import"../../shared/@ai-setting/roy-agent-core-7cbpmk4q.js";
43
- import"../../shared/@ai-setting/roy-agent-core-qq96p0tj.js";
47
+ import"../../shared/@ai-setting/roy-agent-core-m39v7qpx.js";
48
+ import"../../shared/@ai-setting/roy-agent-core-smf94h73.js";
49
+ import"../../shared/@ai-setting/roy-agent-core-yet36q5k.js";
50
+ import"../../shared/@ai-setting/roy-agent-core-tkpp1ba0.js";
51
+ import"../../shared/@ai-setting/roy-agent-core-p31ftgq9.js";
52
+ import"../../shared/@ai-setting/roy-agent-core-5s2t8z00.js";
44
53
  import"../../shared/@ai-setting/roy-agent-core-7f7t9wwp.js";
45
54
  import"../../shared/@ai-setting/roy-agent-core-85xyctnb.js";
46
55
  import"../../shared/@ai-setting/roy-agent-core-fs0mn2jk.js";
47
56
  export {
48
57
  getDefaultTaskDbPath,
58
+ createRemoteTaskStore,
49
59
  TaskTypeEnum,
50
60
  TaskStatusEnum,
51
61
  TaskPriorityEnum,
@@ -57,5 +67,11 @@ export {
57
67
  TASK_CANCELLED_STATUS_WORD,
58
68
  TASK_ARCHIVED_STATUS_WORD,
59
69
  SQLiteTaskStore,
70
+ RemoteTaskStoreError,
71
+ RemoteTaskStore,
72
+ RemoteProtocolError,
73
+ RemoteIdempotencyConflictError,
74
+ RemoteBatchBusyError,
75
+ RemoteAuthError,
60
76
  ActionTypeEnum
61
77
  };
@@ -7,16 +7,16 @@ import {
7
7
  searchTasksTool,
8
8
  treeTasksTool,
9
9
  updateTaskTool
10
- } from "../../../shared/@ai-setting/roy-agent-core-vffccgf6.js";
10
+ } from "../../../shared/@ai-setting/roy-agent-core-9cen1jvg.js";
11
11
  import {
12
12
  createOperationTool,
13
13
  listOperationsTool
14
14
  } from "../../../shared/@ai-setting/roy-agent-core-p5cz9m8v.js";
15
- import"../../../shared/@ai-setting/roy-agent-core-tr3ep81v.js";
15
+ import"../../../shared/@ai-setting/roy-agent-core-d6zdbgtc.js";
16
16
  import"../../../shared/@ai-setting/roy-agent-core-m46fe3x4.js";
17
17
  import"../../../shared/@ai-setting/roy-agent-core-4rtg69cn.js";
18
- import"../../../shared/@ai-setting/roy-agent-core-7cbpmk4q.js";
19
- import"../../../shared/@ai-setting/roy-agent-core-qq96p0tj.js";
18
+ import"../../../shared/@ai-setting/roy-agent-core-p31ftgq9.js";
19
+ import"../../../shared/@ai-setting/roy-agent-core-5s2t8z00.js";
20
20
  import"../../../shared/@ai-setting/roy-agent-core-7f7t9wwp.js";
21
21
  import"../../../shared/@ai-setting/roy-agent-core-85xyctnb.js";
22
22
  import"../../../shared/@ai-setting/roy-agent-core-fs0mn2jk.js";