@ai-setting/roy-agent-core 1.7.53 → 1.7.56

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 (124) hide show
  1. package/dist/config/index.js +7 -7
  2. package/dist/env/agent/agent-component.d.ts +30 -0
  3. package/dist/env/agent/index.js +13 -12
  4. package/dist/env/commands/index.js +7 -7
  5. package/dist/env/context/index.js +3 -3
  6. package/dist/env/debug/index.js +7 -7
  7. package/dist/env/environment.d.ts +7 -0
  8. package/dist/env/error-reply.d.ts +184 -0
  9. package/dist/env/event-source/event-source-handlers.d.ts +9 -23
  10. package/dist/env/event-source/index.js +17 -17
  11. package/dist/env/hook/index.js +5 -5
  12. package/dist/env/index.js +41 -40
  13. package/dist/env/llm/adapter-ai-sdk.d.ts +6 -0
  14. package/dist/env/llm/adapter-pi-ai.d.ts +152 -2
  15. package/dist/env/llm/adapter.d.ts +21 -1
  16. package/dist/env/llm/index.js +10 -10
  17. package/dist/env/llm/invoke.d.ts +74 -2
  18. package/dist/env/llm/llm.d.ts +38 -0
  19. package/dist/env/llm/outbound-defense.d.ts +140 -0
  20. package/dist/env/llm/reasoning-defense.d.ts +104 -0
  21. package/dist/env/llm/types.d.ts +26 -0
  22. package/dist/env/log-trace/decorator.d.ts +46 -3
  23. package/dist/env/log-trace/index.d.ts +1 -0
  24. package/dist/env/log-trace/index.js +33 -7
  25. package/dist/env/log-trace/trace-filters.d.ts +127 -0
  26. package/dist/env/mcp/index.js +7 -7
  27. package/dist/env/memory/index.js +7 -7
  28. package/dist/env/plugin/index.js +7 -7
  29. package/dist/env/prompt/index.js +8 -8
  30. package/dist/env/prompt/prompts-index.d.ts +1 -1
  31. package/dist/env/session/index.js +11 -10
  32. package/dist/env/session/session-component.d.ts +4 -0
  33. package/dist/env/session/storage/index.js +5 -3
  34. package/dist/env/skill/index.js +7 -7
  35. package/dist/env/task/backend/index.js +0 -2
  36. package/dist/env/task/backend/types.d.ts +0 -11
  37. package/dist/env/task/delegate/index.js +8 -8
  38. package/dist/env/task/index.js +13 -13
  39. package/dist/env/task/plugins/card-chat-routing.d.ts +42 -89
  40. package/dist/env/task/plugins/index.js +10 -10
  41. package/dist/env/task/plugins/lark-card-patch-notifier.d.ts +0 -51
  42. package/dist/env/task/plugins/lark-cli-task-notify-plugin.d.ts +14 -31
  43. package/dist/env/task/plugins/per-task-group-chat-plugin.d.ts +4 -4
  44. package/dist/env/task/storage/index.js +2 -2
  45. package/dist/env/task/tools/index.js +3 -3
  46. package/dist/env/tool/built-in/index.js +3 -3
  47. package/dist/env/tool/index.js +9 -9
  48. package/dist/env/workflow/engine/engine.d.ts +65 -0
  49. package/dist/env/workflow/engine/index.js +12 -12
  50. package/dist/env/workflow/hooks/index.js +7 -7
  51. package/dist/env/workflow/index.js +23 -22
  52. package/dist/env/workflow/nodes/index.js +2 -2
  53. package/dist/env/workflow/nodes/tool-node.d.ts +6 -0
  54. package/dist/env/workflow/plugins/index.js +8 -8
  55. package/dist/env/workflow/service/index.js +2 -2
  56. package/dist/env/workflow/storage/index.js +3 -3
  57. package/dist/env/workflow/tools/index.js +15 -14
  58. package/dist/env/workflow/tools/workflow-validate-tool.d.ts +11 -2
  59. package/dist/env/workflow/types/run.d.ts +19 -0
  60. package/dist/env/workflow/utils/agent-session-metadata.d.ts +13 -0
  61. package/dist/env/workflow/utils/index.js +5 -5
  62. package/dist/env/workflow/utils/redact-command-secrets.d.ts +70 -0
  63. package/dist/env/workflow/utils/shell-dialect-lint.d.ts +75 -0
  64. package/dist/env/workflow/utils/validate-workflow-definition.d.ts +22 -0
  65. package/dist/index.d.ts +1 -1
  66. package/dist/index.js +82 -56
  67. package/dist/shared/@ai-setting/{roy-agent-core-k25gv86p.js → roy-agent-core-0b3fdnn3.js} +1 -1
  68. package/dist/shared/@ai-setting/{roy-agent-core-vvxb9522.js → roy-agent-core-0bmk44ye.js} +71 -10
  69. package/dist/shared/@ai-setting/{roy-agent-core-k8b440n3.js → roy-agent-core-16t0zfbk.js} +1 -1
  70. package/dist/shared/@ai-setting/{roy-agent-core-4z3rq5gw.js → roy-agent-core-1pnfkspm.js} +2 -2
  71. package/dist/shared/@ai-setting/{roy-agent-core-na73mym1.js → roy-agent-core-202v00x4.js} +213 -2
  72. package/dist/shared/@ai-setting/{roy-agent-core-ph5qbqcx.js → roy-agent-core-2044fbsd.js} +471 -134
  73. package/dist/shared/@ai-setting/{roy-agent-core-fs36xgcs.js → roy-agent-core-3dkzqqsd.js} +1 -1
  74. package/dist/shared/@ai-setting/{roy-agent-core-qm9jda8p.js → roy-agent-core-3kz6934b.js} +1 -1
  75. package/dist/shared/@ai-setting/{roy-agent-core-tjg71zqp.js → roy-agent-core-3mc6vmvj.js} +1 -1
  76. package/dist/shared/@ai-setting/{roy-agent-core-tdbv7ff4.js → roy-agent-core-40xzbjtm.js} +2 -2
  77. package/dist/shared/@ai-setting/{roy-agent-core-athdr2m0.js → roy-agent-core-4zy2v3br.js} +10 -2
  78. package/dist/shared/@ai-setting/{roy-agent-core-t37wbysj.js → roy-agent-core-5gw6w424.js} +4 -4
  79. package/dist/shared/@ai-setting/{roy-agent-core-978b6wfx.js → roy-agent-core-5psjwd08.js} +1 -1
  80. package/dist/shared/@ai-setting/{roy-agent-core-7evvpfwc.js → roy-agent-core-5rxs0ra3.js} +1 -1
  81. package/dist/shared/@ai-setting/{roy-agent-core-gdsqp6j8.js → roy-agent-core-6masakz4.js} +45 -0
  82. package/dist/shared/@ai-setting/{roy-agent-core-stnddvx9.js → roy-agent-core-6qgq7h1g.js} +4 -4
  83. package/dist/shared/@ai-setting/{roy-agent-core-6167phd4.js → roy-agent-core-833t16n1.js} +3 -3
  84. package/dist/shared/@ai-setting/{roy-agent-core-2k4xffaa.js → roy-agent-core-8cgtwytv.js} +3 -3
  85. package/dist/shared/@ai-setting/{roy-agent-core-rx16h2m1.js → roy-agent-core-97eyghsp.js} +2 -2
  86. package/dist/shared/@ai-setting/{roy-agent-core-fvs48d38.js → roy-agent-core-98aa9r0x.js} +12 -7
  87. package/dist/shared/@ai-setting/{roy-agent-core-3tv1q6f2.js → roy-agent-core-9nv586rw.js} +57 -19
  88. package/dist/shared/@ai-setting/roy-agent-core-b599jgyd.js +578 -0
  89. package/dist/shared/@ai-setting/{roy-agent-core-yd21n6c7.js → roy-agent-core-bwzy00t2.js} +12 -5
  90. package/dist/shared/@ai-setting/{roy-agent-core-dwx9hjwx.js → roy-agent-core-c6at31ra.js} +1 -1
  91. package/dist/shared/@ai-setting/{roy-agent-core-1cv9j4dg.js → roy-agent-core-d14h726p.js} +3 -3
  92. package/dist/shared/@ai-setting/{roy-agent-core-4sx6sdb2.js → roy-agent-core-d4jpn06f.js} +22 -9
  93. package/dist/shared/@ai-setting/{roy-agent-core-39xejr39.js → roy-agent-core-e0wbq0qq.js} +7 -7
  94. package/dist/shared/@ai-setting/{roy-agent-core-vrsxhw9e.js → roy-agent-core-e677am8e.js} +1 -1
  95. package/dist/shared/@ai-setting/{roy-agent-core-hch2geta.js → roy-agent-core-ezsyyjxw.js} +21 -190
  96. package/dist/shared/@ai-setting/{roy-agent-core-ne2t1pay.js → roy-agent-core-f8sp1txg.js} +2 -2
  97. package/dist/shared/@ai-setting/{roy-agent-core-ak4dc3kg.js → roy-agent-core-gn8f4rhs.js} +1 -1
  98. package/dist/shared/@ai-setting/{roy-agent-core-qcspfszy.js → roy-agent-core-gngjkw3b.js} +1 -1
  99. package/dist/shared/@ai-setting/{roy-agent-core-9jzysq50.js → roy-agent-core-heft3j4c.js} +2 -2
  100. package/dist/shared/@ai-setting/{roy-agent-core-5apmk4qw.js → roy-agent-core-jszgaevt.js} +1 -1
  101. package/dist/shared/@ai-setting/{roy-agent-core-nde5gzta.js → roy-agent-core-m8n0dffe.js} +1 -1
  102. package/dist/shared/@ai-setting/{roy-agent-core-x8n1r7h4.js → roy-agent-core-n3b7ztms.js} +189 -8
  103. package/dist/shared/@ai-setting/{roy-agent-core-4vpk40ss.js → roy-agent-core-nhk0dsxr.js} +13 -13
  104. package/dist/shared/@ai-setting/{roy-agent-core-j8e92gj8.js → roy-agent-core-nntphgww.js} +1 -60
  105. package/dist/shared/@ai-setting/{roy-agent-core-8s9jd2qy.js → roy-agent-core-nra8vfrs.js} +1 -1
  106. package/dist/shared/@ai-setting/{roy-agent-core-pk1b3kvf.js → roy-agent-core-ns3pbyz4.js} +1 -1
  107. package/dist/shared/@ai-setting/{roy-agent-core-7g03zkkb.js → roy-agent-core-pemxr5n4.js} +1 -1
  108. package/dist/shared/@ai-setting/{roy-agent-core-skzjs973.js → roy-agent-core-pjxa78mp.js} +5 -5
  109. package/dist/shared/@ai-setting/{roy-agent-core-p8ak03s0.js → roy-agent-core-q7zksbw0.js} +117 -315
  110. package/dist/shared/@ai-setting/{roy-agent-core-zd3ddm4k.js → roy-agent-core-qjjf4tjb.js} +1 -1
  111. package/dist/shared/@ai-setting/{roy-agent-core-qamktze3.js → roy-agent-core-qyqnmz8c.js} +1 -1
  112. package/dist/shared/@ai-setting/{roy-agent-core-9csa89jx.js → roy-agent-core-r9qe0ghe.js} +2 -2
  113. package/dist/shared/@ai-setting/{roy-agent-core-h93v6p6y.js → roy-agent-core-tc7gw38m.js} +2 -2
  114. package/dist/shared/@ai-setting/{roy-agent-core-35s1w7tc.js → roy-agent-core-v2188rnk.js} +157 -85
  115. package/dist/shared/@ai-setting/{roy-agent-core-p2r27era.js → roy-agent-core-vmg30n5x.js} +8 -8
  116. package/dist/shared/@ai-setting/{roy-agent-core-rnwr39b0.js → roy-agent-core-w7hnjhvx.js} +5 -3
  117. package/dist/shared/@ai-setting/{roy-agent-core-dv714bqh.js → roy-agent-core-wafk25ff.js} +1 -1
  118. package/dist/shared/@ai-setting/{roy-agent-core-brwzs8wf.js → roy-agent-core-xcq04fq0.js} +5 -5
  119. package/dist/shared/@ai-setting/{roy-agent-core-2gay3sjt.js → roy-agent-core-yg247mk4.js} +1 -1
  120. package/dist/shared/@ai-setting/{roy-agent-core-zy3hqfwg.js → roy-agent-core-yv9x4wmg.js} +631 -35
  121. package/dist/shared/@ai-setting/{roy-agent-core-yhsssn86.js → roy-agent-core-zmeka63k.js} +1 -1
  122. package/dist/test-utils/child-process-mock.d.ts +73 -0
  123. package/package.json +2 -2
  124. package/dist/shared/@ai-setting/roy-agent-core-dsevjbck.js +0 -245
@@ -1,28 +1,30 @@
1
1
  import {
2
2
  createAutoTaskPlugin
3
- } from "./roy-agent-core-hch2geta.js";
3
+ } from "./roy-agent-core-ezsyyjxw.js";
4
4
  import {
5
5
  ContextError,
6
6
  ErrorCodes
7
7
  } from "./roy-agent-core-ctdhjv68.js";
8
8
  import {
9
9
  BaseComponent
10
- } from "./roy-agent-core-tdbv7ff4.js";
10
+ } from "./roy-agent-core-40xzbjtm.js";
11
11
  import {
12
12
  init_hook
13
- } from "./roy-agent-core-qcspfszy.js";
13
+ } from "./roy-agent-core-gngjkw3b.js";
14
14
  import {
15
15
  init_context
16
- } from "./roy-agent-core-k8b440n3.js";
16
+ } from "./roy-agent-core-16t0zfbk.js";
17
17
  import {
18
18
  getEnvContext,
19
19
  init_env_context,
20
20
  runWithEnvContextAsync
21
- } from "./roy-agent-core-5apmk4qw.js";
21
+ } from "./roy-agent-core-jszgaevt.js";
22
22
  import {
23
23
  TracedAs,
24
- init_decorator
25
- } from "./roy-agent-core-dsevjbck.js";
24
+ envQueryParamFilter,
25
+ init_decorator,
26
+ init_trace_filters
27
+ } from "./roy-agent-core-b599jgyd.js";
26
28
  import {
27
29
  createLogger,
28
30
  init_logger
@@ -48,6 +50,7 @@ function generateDescendingId(prefix = "id") {
48
50
 
49
51
  // src/env/environment.ts
50
52
  init_decorator();
53
+ init_trace_filters();
51
54
  init_env_context();
52
55
  import * as fsSync from "fs";
53
56
  import * as path from "path";
@@ -591,10 +594,20 @@ class BaseEnvironment extends BaseComponent {
591
594
  }
592
595
  }
593
596
  __legacyDecorateClassTS([
594
- TracedAs("env.handle_query", { recordParams: true, recordResult: true, log: true })
597
+ TracedAs("env.handle_query", {
598
+ paramFilter: envQueryParamFilter,
599
+ recordResult: false,
600
+ logResult: true,
601
+ log: true
602
+ })
595
603
  ], BaseEnvironment.prototype, "handle_query", null);
596
604
  __legacyDecorateClassTS([
597
- TracedAs("env.handle_workflow_agent_query", { recordParams: true, recordResult: true, log: true })
605
+ TracedAs("env.handle_workflow_agent_query", {
606
+ paramFilter: envQueryParamFilter,
607
+ recordResult: false,
608
+ logResult: true,
609
+ log: true
610
+ })
598
611
  ], BaseEnvironment.prototype, "handleWorkflowAgentQuery", null);
599
612
 
600
613
  // src/env/index.ts
@@ -4,7 +4,7 @@ import {
4
4
  import {
5
5
  SQLiteTaskStore,
6
6
  getDefaultTaskDbPath
7
- } from "./roy-agent-core-qm9jda8p.js";
7
+ } from "./roy-agent-core-3kz6934b.js";
8
8
  import {
9
9
  batchArchiveTaskTool,
10
10
  batchDeleteTaskTool,
@@ -16,7 +16,7 @@ import {
16
16
  searchTasksTool,
17
17
  treeTasksTool,
18
18
  updateTaskTool
19
- } from "./roy-agent-core-7g03zkkb.js";
19
+ } from "./roy-agent-core-pemxr5n4.js";
20
20
  import {
21
21
  createOperationTool,
22
22
  deleteOperationTool,
@@ -31,7 +31,7 @@ import {
31
31
  BackgroundTaskManager,
32
32
  createDelegateTool,
33
33
  createStopTool
34
- } from "./roy-agent-core-p2r27era.js";
34
+ } from "./roy-agent-core-vmg30n5x.js";
35
35
  import {
36
36
  TaskHookPoints
37
37
  } from "./roy-agent-core-1pg0fepg.js";
@@ -40,19 +40,19 @@ import {
40
40
  } from "./roy-agent-core-7hh0brvs.js";
41
41
  import {
42
42
  BaseComponent
43
- } from "./roy-agent-core-tdbv7ff4.js";
43
+ } from "./roy-agent-core-40xzbjtm.js";
44
44
  import {
45
45
  globalHookManager,
46
46
  init_global_hook_manager
47
- } from "./roy-agent-core-4z3rq5gw.js";
47
+ } from "./roy-agent-core-1pnfkspm.js";
48
48
  import {
49
49
  getEnvContextOrEmpty,
50
50
  init_env_context
51
- } from "./roy-agent-core-5apmk4qw.js";
51
+ } from "./roy-agent-core-jszgaevt.js";
52
52
  import {
53
53
  TracedAs,
54
54
  init_decorator
55
- } from "./roy-agent-core-dsevjbck.js";
55
+ } from "./roy-agent-core-b599jgyd.js";
56
56
  import {
57
57
  createLogger,
58
58
  init_logger
@@ -9,7 +9,7 @@ import {
9
9
  import {
10
10
  TracedAs,
11
11
  init_decorator
12
- } from "./roy-agent-core-dsevjbck.js";
12
+ } from "./roy-agent-core-b599jgyd.js";
13
13
  import {
14
14
  createLogger,
15
15
  init_logger
@@ -1,36 +1,36 @@
1
1
  import {
2
2
  getSharedEventStore
3
- } from "./roy-agent-core-yhsssn86.js";
3
+ } from "./roy-agent-core-zmeka63k.js";
4
4
  import {
5
5
  TaskHookPoints
6
6
  } from "./roy-agent-core-1pg0fepg.js";
7
7
  import {
8
8
  WORKFLOW_EXTRACT_PROMPT
9
- } from "./roy-agent-core-gdsqp6j8.js";
9
+ } from "./roy-agent-core-6masakz4.js";
10
10
  import {
11
11
  LarkCardPatchNotifier,
12
12
  humanizeValue
13
- } from "./roy-agent-core-j8e92gj8.js";
13
+ } from "./roy-agent-core-nntphgww.js";
14
14
  import {
15
15
  validateWorkflowDefinition
16
- } from "./roy-agent-core-na73mym1.js";
16
+ } from "./roy-agent-core-202v00x4.js";
17
17
  import {
18
18
  enqueueToAddFakeUserMessage
19
- } from "./roy-agent-core-dv714bqh.js";
19
+ } from "./roy-agent-core-wafk25ff.js";
20
20
  import {
21
21
  BasePlugin
22
22
  } from "./roy-agent-core-az13yzmc.js";
23
23
  import {
24
24
  init_context
25
- } from "./roy-agent-core-k8b440n3.js";
25
+ } from "./roy-agent-core-16t0zfbk.js";
26
26
  import {
27
27
  getEnvContextOrEmpty
28
- } from "./roy-agent-core-5apmk4qw.js";
28
+ } from "./roy-agent-core-jszgaevt.js";
29
29
  import {
30
30
  TracedAs,
31
31
  init_decorator,
32
32
  wrapFunction
33
- } from "./roy-agent-core-dsevjbck.js";
33
+ } from "./roy-agent-core-b599jgyd.js";
34
34
  import {
35
35
  createLogger,
36
36
  init_logger
@@ -299,11 +299,11 @@ ${prompt}`;
299
299
  }
300
300
  if (!this._workflowRepo) {
301
301
  try {
302
- const sqlite = await import("./roy-agent-core-2k4xffaa.js");
302
+ const sqlite = await import("./roy-agent-core-8cgtwytv.js");
303
303
  this.ensureDataDir();
304
304
  const db = sqlite.getDatabase();
305
305
  sqlite.initializeTables();
306
- const { WorkflowRepository } = await import("./roy-agent-core-1cv9j4dg.js");
306
+ const { WorkflowRepository } = await import("./roy-agent-core-d14h726p.js");
307
307
  this._workflowRepo = new WorkflowRepository(db);
308
308
  return this._workflowRepo;
309
309
  } catch {
@@ -378,9 +378,6 @@ init_logger();
378
378
  init_context();
379
379
 
380
380
  // src/env/task/plugins/card-chat-routing.ts
381
- var GROUP_NAME_TASK_ID_RE = /(?:Task\s*#?\s*|#)(\d{1,7})\b/i;
382
- var DEDICATED_CHAT_ID_FIELD_RE = /^(larkPerTaskChatId|[a-z0-9_]*(followup|group|per_?task)[a-z0-9_]*chat[_]?id)$/i;
383
- var CONVERSATION_CHAT_ID_FIELD_RE = /^(feishu_chat_id|chat_id|message_?chat_?id)$/i;
384
381
  var CTX_FIELD_LARK_PER_TASK_CHAT_ID = "larkPerTaskChatId";
385
382
  function extractPerTaskChatId(contextStr) {
386
383
  if (!contextStr)
@@ -431,103 +428,14 @@ function extractRecordedChatNames(contextStr) {
431
428
  }
432
429
  return out;
433
430
  }
434
- function analyzeContextOwnership(contextStr, chatId) {
435
- const sources = [];
436
- const impliedTaskIds = [];
437
- if (!contextStr)
438
- return { owned: false, sources, impliedTaskIds };
439
- let obj;
440
- try {
441
- const parsed = JSON.parse(contextStr);
442
- if (parsed && typeof parsed === "object" && !Array.isArray(parsed)) {
443
- obj = parsed;
444
- }
445
- } catch {
446
- obj = undefined;
447
- }
448
- if (!obj)
449
- return { owned: false, sources, impliedTaskIds };
450
- for (const [k, v] of Object.entries(obj)) {
451
- if (typeof v !== "string" || v.length === 0)
452
- continue;
453
- const isDedicatedField = DEDICATED_CHAT_ID_FIELD_RE.test(k);
454
- const isConversationField = CONVERSATION_CHAT_ID_FIELD_RE.test(k);
455
- if (isDedicatedField && !isConversationField && v === chatId) {
456
- sources.push(k);
457
- continue;
458
- }
459
- if (/chat_?name$/i.test(k)) {
460
- const m = v.match(GROUP_NAME_TASK_ID_RE);
461
- if (m) {
462
- const id = Number(m[1]);
463
- if (Number.isFinite(id) && id > 0)
464
- impliedTaskIds.push(id);
465
- }
466
- }
467
- }
468
- return { owned: sources.length > 0, sources, impliedTaskIds };
469
- }
470
- function mergeChatOwnership(chatId, candidates, extra = {}) {
471
- const ownerTaskIds = new Set;
472
- const sources = [];
473
- let chatName = extra.chatName;
474
- if (typeof extra.boundTaskId === "number" && extra.boundTaskId > 0) {
475
- ownerTaskIds.add(extra.boundTaskId);
476
- sources.push("chat-binding");
477
- }
478
- for (const c of candidates) {
479
- const r = analyzeContextOwnership(c.context, chatId);
480
- if (r.owned) {
481
- ownerTaskIds.add(c.id);
482
- sources.push(`#${c.id}:${r.sources.join("+")}`);
483
- }
484
- if (!chatName) {
485
- const names = extractRecordedChatNames(c.context);
486
- const matched = names.find((n) => n.includes(chatId) || GROUP_NAME_TASK_ID_RE.test(n));
487
- if (matched)
488
- chatName = matched;
489
- }
490
- for (const implied of r.impliedTaskIds) {
491
- if (implied === c.id) {
492
- ownerTaskIds.add(c.id);
493
- sources.push(`#${c.id}:chat-name`);
494
- }
495
- }
496
- }
497
- if (chatName) {
498
- const m = chatName.match(GROUP_NAME_TASK_ID_RE);
499
- if (m) {
500
- const id = Number(m[1]);
501
- if (Number.isFinite(id) && id > 0) {
502
- ownerTaskIds.add(id);
503
- sources.push("chat-name");
504
- }
505
- }
506
- }
507
- return {
508
- chatId,
509
- ownerTaskIds: [...ownerTaskIds],
510
- sources,
511
- chatName,
512
- dedicated: ownerTaskIds.size > 0
513
- };
514
- }
515
431
  function decideCardChatTarget(input) {
516
- const {
517
- lineageIds,
518
- lineageChat,
519
- triggerChatId,
520
- triggerProfile,
521
- triggerOwnership,
522
- allowNewGroup
523
- } = input;
524
- const foreign = !!triggerChatId && !!triggerOwnership?.dedicated && triggerOwnership.ownerTaskIds.length > 0 && !triggerOwnership.ownerTaskIds.some((id) => lineageIds.includes(id));
525
- if (triggerChatId && !foreign) {
432
+ const { lineageChat, triggerChatId, triggerProfile } = input;
433
+ if (triggerChatId) {
526
434
  return {
527
435
  chatId: triggerChatId,
528
436
  profile: triggerProfile,
529
437
  source: "trigger-chat",
530
- reason: triggerOwnership?.dedicated ? `触发群属于自己的 lineage(owner=${triggerOwnership.ownerTaskIds.join(",")}),直接用` : "触发群(普通会话群),直接用"
438
+ reason: `触发群 ${triggerChatId} 直接用(Task #4394:卡片只发触发群,不改投)`
531
439
  };
532
440
  }
533
441
  if (lineageChat) {
@@ -535,40 +443,13 @@ function decideCardChatTarget(input) {
535
443
  chatId: lineageChat.chatId,
536
444
  profile: lineageChat.profile,
537
445
  source: lineageChat.isSelf ? "own-group" : "ancestor-group",
538
- reroutedFrom: foreign ? {
539
- chatId: triggerChatId,
540
- ownerTaskIds: triggerOwnership.ownerTaskIds,
541
- sources: triggerOwnership.sources
542
- } : undefined,
543
- reason: foreign ? `触发群 ${triggerChatId} 是 task ${triggerOwnership.ownerTaskIds.join(",")} 的专属群,改投 lineage 群 ${lineageChat.chatId}` : `无触发群,用 lineage 群 ${lineageChat.chatId}`
544
- };
545
- }
546
- if (!triggerChatId) {
547
- return {
548
- chatId: undefined,
549
- source: "none",
550
- reason: "既没有触发群也没有 lineage 群(无法决定投递目标)"
551
- };
552
- }
553
- if (allowNewGroup === true) {
554
- return {
555
- chatId: undefined,
556
- source: "new-group",
557
- profile: triggerProfile,
558
- reroutedFrom: foreign ? {
559
- chatId: triggerChatId,
560
- ownerTaskIds: triggerOwnership.ownerTaskIds,
561
- sources: triggerOwnership.sources
562
- } : undefined,
563
- reason: foreign ? `触发群 ${triggerChatId} 是 task ${triggerOwnership.ownerTaskIds.join(",")} 的专属群,且本 task 无群 → 需要新建(allowNewGroup=true)` : "无触发群且本 task 无群 → 需要新建(allowNewGroup=true)"
446
+ reason: `无触发群 → 用 ${lineageChat.isSelf ? "本 task" : "祖先"} 专属群 ${lineageChat.chatId} 兜底`
564
447
  };
565
448
  }
566
449
  return {
567
- chatId: triggerChatId,
568
- profile: triggerProfile,
569
- source: "fallback-to-trigger",
570
- reroutedFrom: undefined,
571
- reason: foreign ? `触发群 ${triggerChatId} 是 task ${triggerOwnership.ownerTaskIds.join(",")} 的专属群,但默认不建群 → 退回触发群 ${triggerChatId}` : `默认不建群 → 退回触发群 ${triggerChatId}`
450
+ chatId: undefined,
451
+ source: "none",
452
+ reason: "既没有触发群也没有本 task 的群(无法决定投递目标)"
572
453
  };
573
454
  }
574
455
 
@@ -643,7 +524,7 @@ class LarkCliTaskNotifyHook {
643
524
  }
644
525
  setCardRoutingPorts(ports) {
645
526
  this.cardRoutingPorts = ports;
646
- logger3.debug(`CardRoutingPorts injected: lookup=${typeof ports.lookupChatOwnership}, ` + `getTask=${typeof ports.getTask}, ensureGroup=${typeof ports.ensureTaskGroupChat}`);
527
+ logger3.debug(`CardRoutingPorts injected: getTask=${typeof ports.getTask}`);
647
528
  }
648
529
  hasCardRoutingPorts() {
649
530
  return this.cardRoutingPorts !== undefined;
@@ -784,50 +665,13 @@ class LarkCliTaskNotifyHook {
784
665
  isSelf: true
785
666
  };
786
667
  }
787
- let triggerOwnership;
788
- if (triggerChatId && this.cardRoutingPorts?.lookupChatOwnership) {
789
- try {
790
- triggerOwnership = await this.cardRoutingPorts.lookupChatOwnership(triggerChatId);
791
- } catch (err) {
792
- logger3.warn(`lookupChatOwnership failed for ${triggerChatId} (degrade to trigger chat): ${err.message}`);
793
- }
794
- }
795
- const decision = decideCardChatTarget({
668
+ return decideCardChatTarget({
796
669
  taskId: task.id,
797
670
  lineageIds,
798
671
  lineageChat,
799
672
  triggerChatId,
800
- triggerProfile,
801
- triggerOwnership,
802
- allowNewGroup: this.config.allowNewGroup === true
673
+ triggerProfile
803
674
  });
804
- if (decision.source === "new-group") {
805
- if (this.cardRoutingPorts?.ensureTaskGroupChat) {
806
- try {
807
- const created = await this.cardRoutingPorts.ensureTaskGroupChat(task);
808
- if (created?.chatId) {
809
- return {
810
- ...decision,
811
- chatId: created.chatId,
812
- profile: created.profile ?? decision.profile,
813
- chatName: created.name,
814
- reason: `${decision.reason};已新建专属群 ${created.chatId}`
815
- };
816
- }
817
- } catch (err) {
818
- logger3.warn(`ensureTaskGroupChat failed for task #${task.id}: ${err.message}`);
819
- }
820
- }
821
- return {
822
- ...decision,
823
- chatId: triggerChatId,
824
- profile: triggerProfile,
825
- source: triggerChatId ? "trigger-chat" : "none",
826
- reroutedFrom: undefined,
827
- reason: `${decision.reason};但建群失败/不可用 → 退回触发群`
828
- };
829
- }
830
- return decision;
831
675
  }
832
676
  async collectLineage(task) {
833
677
  const out = [
@@ -887,17 +731,6 @@ class LarkCliTaskNotifyHook {
887
731
  });
888
732
  this.cardMessageIds.set(task.id, messageId);
889
733
  logger3.debug(`sendCardStart: task #${task.id} → message ${messageId} (pinned=${pinned}) ` + `chat=${chatId} source=${target.source} reason=${target.reason}`);
890
- if (target.reroutedFrom) {
891
- await this.cardNotifier.sendRedirectNotice({
892
- chatId: target.reroutedFrom.chatId,
893
- profile: target.profile,
894
- taskId: task.id,
895
- taskTitle: task.title,
896
- targetChatId: chatId,
897
- targetChatName: target.chatName,
898
- reason: target.reason
899
- });
900
- }
901
734
  } catch (err) {
902
735
  this.cardMessageIds.set(task.id, LarkCliTaskNotifyHook.CARD_START_FAILED_SENTINEL);
903
736
  logger3.error(`sendCardStart failed for task #${task.id}: ${err.message}`);
@@ -1089,8 +922,6 @@ __legacyDecorateClassTS([
1089
922
  source: r?.source,
1090
923
  chatId: r?.chatId,
1091
924
  chatName: r?.chatName,
1092
- reroutedFrom: r?.reroutedFrom?.chatId,
1093
- rerouteOwners: r?.reroutedFrom?.ownerTaskIds?.join(","),
1094
925
  reason: r?.reason?.slice(0, 200)
1095
926
  })
1096
927
  })
@@ -1745,4 +1576,4 @@ __legacyDecorateClassTS([
1745
1576
  function createPerTaskGroupChatPlugin(config = {}) {
1746
1577
  return new PerTaskGroupChatPlugin(config);
1747
1578
  }
1748
- export { createAutoTaskPlugin, WORKFLOW_EXTRACTOR_PROMPT, formatExtractorInput, formatExtractorInputFromDescription, parseExtractorOutput, TaskTagPlugin, extractPerTaskChatId, extractPerTaskChatName, mergeChatOwnership, NotifyType, LarkCliTaskNotifyHook, createLarkCliTaskNotifyHook, PerTaskGroupChatPlugin, createPerTaskGroupChatPlugin };
1579
+ export { createAutoTaskPlugin, WORKFLOW_EXTRACTOR_PROMPT, formatExtractorInput, formatExtractorInputFromDescription, parseExtractorOutput, TaskTagPlugin, extractPerTaskChatId, extractPerTaskChatName, NotifyType, LarkCliTaskNotifyHook, createLarkCliTaskNotifyHook, PerTaskGroupChatPlugin, createPerTaskGroupChatPlugin };
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  TagRepository
3
- } from "./roy-agent-core-nde5gzta.js";
4
- import"./roy-agent-core-dsevjbck.js";
3
+ } from "./roy-agent-core-m8n0dffe.js";
4
+ import"./roy-agent-core-b599jgyd.js";
5
5
  import"./roy-agent-core-8seq65bp.js";
6
6
  import"./roy-agent-core-jnszp0jq.js";
7
7
  import"./roy-agent-core-fs0mn2jk.js";
@@ -6,7 +6,7 @@ import {
6
6
  } from "./roy-agent-core-7hh0brvs.js";
7
7
  import {
8
8
  BaseComponent
9
- } from "./roy-agent-core-tdbv7ff4.js";
9
+ } from "./roy-agent-core-40xzbjtm.js";
10
10
  import {
11
11
  createLogger,
12
12
  init_logger
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  init_global_hook_manager,
3
3
  init_hook_manager
4
- } from "./roy-agent-core-4z3rq5gw.js";
4
+ } from "./roy-agent-core-1pnfkspm.js";
5
5
  import {
6
6
  __esm
7
7
  } from "./roy-agent-core-fs0mn2jk.js";
@@ -3,10 +3,10 @@ import {
3
3
  hasDecoratorNodes,
4
4
  init_node_registry_helper,
5
5
  registerDecoratorNodeType
6
- } from "./roy-agent-core-vrsxhw9e.js";
6
+ } from "./roy-agent-core-e677am8e.js";
7
7
  import"./roy-agent-core-1ce3fqrk.js";
8
8
  import"./roy-agent-core-ddwa0n6h.js";
9
- import"./roy-agent-core-dsevjbck.js";
9
+ import"./roy-agent-core-b599jgyd.js";
10
10
  import"./roy-agent-core-8seq65bp.js";
11
11
  import"./roy-agent-core-jnszp0jq.js";
12
12
  import"./roy-agent-core-fs0mn2jk.js";
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  init_decorator,
3
3
  wrapFunction
4
- } from "./roy-agent-core-dsevjbck.js";
4
+ } from "./roy-agent-core-b599jgyd.js";
5
5
  import {
6
6
  createLogger,
7
7
  init_logger
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  TracedAs,
3
3
  init_decorator
4
- } from "./roy-agent-core-dsevjbck.js";
4
+ } from "./roy-agent-core-b599jgyd.js";
5
5
  import {
6
6
  __legacyDecorateClassTS
7
7
  } from "./roy-agent-core-fs0mn2jk.js";