@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.
- package/dist/config/index.js +7 -7
- package/dist/env/agent/agent-component.d.ts +30 -0
- package/dist/env/agent/index.js +13 -12
- package/dist/env/commands/index.js +7 -7
- package/dist/env/context/index.js +3 -3
- package/dist/env/debug/index.js +7 -7
- package/dist/env/environment.d.ts +7 -0
- package/dist/env/error-reply.d.ts +184 -0
- package/dist/env/event-source/event-source-handlers.d.ts +9 -23
- package/dist/env/event-source/index.js +17 -17
- package/dist/env/hook/index.js +5 -5
- package/dist/env/index.js +41 -40
- package/dist/env/llm/adapter-ai-sdk.d.ts +6 -0
- package/dist/env/llm/adapter-pi-ai.d.ts +152 -2
- package/dist/env/llm/adapter.d.ts +21 -1
- package/dist/env/llm/index.js +10 -10
- package/dist/env/llm/invoke.d.ts +74 -2
- package/dist/env/llm/llm.d.ts +38 -0
- package/dist/env/llm/outbound-defense.d.ts +140 -0
- package/dist/env/llm/reasoning-defense.d.ts +104 -0
- package/dist/env/llm/types.d.ts +26 -0
- package/dist/env/log-trace/decorator.d.ts +46 -3
- package/dist/env/log-trace/index.d.ts +1 -0
- package/dist/env/log-trace/index.js +33 -7
- package/dist/env/log-trace/trace-filters.d.ts +127 -0
- package/dist/env/mcp/index.js +7 -7
- package/dist/env/memory/index.js +7 -7
- package/dist/env/plugin/index.js +7 -7
- package/dist/env/prompt/index.js +8 -8
- package/dist/env/prompt/prompts-index.d.ts +1 -1
- package/dist/env/session/index.js +11 -10
- package/dist/env/session/session-component.d.ts +4 -0
- package/dist/env/session/storage/index.js +5 -3
- package/dist/env/skill/index.js +7 -7
- package/dist/env/task/backend/index.js +0 -2
- package/dist/env/task/backend/types.d.ts +0 -11
- package/dist/env/task/delegate/index.js +8 -8
- package/dist/env/task/index.js +13 -13
- package/dist/env/task/plugins/card-chat-routing.d.ts +42 -89
- package/dist/env/task/plugins/index.js +10 -10
- package/dist/env/task/plugins/lark-card-patch-notifier.d.ts +0 -51
- package/dist/env/task/plugins/lark-cli-task-notify-plugin.d.ts +14 -31
- package/dist/env/task/plugins/per-task-group-chat-plugin.d.ts +4 -4
- package/dist/env/task/storage/index.js +2 -2
- package/dist/env/task/tools/index.js +3 -3
- package/dist/env/tool/built-in/index.js +3 -3
- package/dist/env/tool/index.js +9 -9
- package/dist/env/workflow/engine/engine.d.ts +65 -0
- package/dist/env/workflow/engine/index.js +12 -12
- package/dist/env/workflow/hooks/index.js +7 -7
- package/dist/env/workflow/index.js +23 -22
- package/dist/env/workflow/nodes/index.js +2 -2
- package/dist/env/workflow/nodes/tool-node.d.ts +6 -0
- package/dist/env/workflow/plugins/index.js +8 -8
- package/dist/env/workflow/service/index.js +2 -2
- package/dist/env/workflow/storage/index.js +3 -3
- package/dist/env/workflow/tools/index.js +15 -14
- package/dist/env/workflow/tools/workflow-validate-tool.d.ts +11 -2
- package/dist/env/workflow/types/run.d.ts +19 -0
- package/dist/env/workflow/utils/agent-session-metadata.d.ts +13 -0
- package/dist/env/workflow/utils/index.js +5 -5
- package/dist/env/workflow/utils/redact-command-secrets.d.ts +70 -0
- package/dist/env/workflow/utils/shell-dialect-lint.d.ts +75 -0
- package/dist/env/workflow/utils/validate-workflow-definition.d.ts +22 -0
- package/dist/index.d.ts +1 -1
- package/dist/index.js +82 -56
- package/dist/shared/@ai-setting/{roy-agent-core-k25gv86p.js → roy-agent-core-0b3fdnn3.js} +1 -1
- package/dist/shared/@ai-setting/{roy-agent-core-vvxb9522.js → roy-agent-core-0bmk44ye.js} +71 -10
- package/dist/shared/@ai-setting/{roy-agent-core-k8b440n3.js → roy-agent-core-16t0zfbk.js} +1 -1
- package/dist/shared/@ai-setting/{roy-agent-core-4z3rq5gw.js → roy-agent-core-1pnfkspm.js} +2 -2
- package/dist/shared/@ai-setting/{roy-agent-core-na73mym1.js → roy-agent-core-202v00x4.js} +213 -2
- package/dist/shared/@ai-setting/{roy-agent-core-ph5qbqcx.js → roy-agent-core-2044fbsd.js} +471 -134
- package/dist/shared/@ai-setting/{roy-agent-core-fs36xgcs.js → roy-agent-core-3dkzqqsd.js} +1 -1
- package/dist/shared/@ai-setting/{roy-agent-core-qm9jda8p.js → roy-agent-core-3kz6934b.js} +1 -1
- package/dist/shared/@ai-setting/{roy-agent-core-tjg71zqp.js → roy-agent-core-3mc6vmvj.js} +1 -1
- package/dist/shared/@ai-setting/{roy-agent-core-tdbv7ff4.js → roy-agent-core-40xzbjtm.js} +2 -2
- package/dist/shared/@ai-setting/{roy-agent-core-athdr2m0.js → roy-agent-core-4zy2v3br.js} +10 -2
- package/dist/shared/@ai-setting/{roy-agent-core-t37wbysj.js → roy-agent-core-5gw6w424.js} +4 -4
- package/dist/shared/@ai-setting/{roy-agent-core-978b6wfx.js → roy-agent-core-5psjwd08.js} +1 -1
- package/dist/shared/@ai-setting/{roy-agent-core-7evvpfwc.js → roy-agent-core-5rxs0ra3.js} +1 -1
- package/dist/shared/@ai-setting/{roy-agent-core-gdsqp6j8.js → roy-agent-core-6masakz4.js} +45 -0
- package/dist/shared/@ai-setting/{roy-agent-core-stnddvx9.js → roy-agent-core-6qgq7h1g.js} +4 -4
- package/dist/shared/@ai-setting/{roy-agent-core-6167phd4.js → roy-agent-core-833t16n1.js} +3 -3
- package/dist/shared/@ai-setting/{roy-agent-core-2k4xffaa.js → roy-agent-core-8cgtwytv.js} +3 -3
- package/dist/shared/@ai-setting/{roy-agent-core-rx16h2m1.js → roy-agent-core-97eyghsp.js} +2 -2
- package/dist/shared/@ai-setting/{roy-agent-core-fvs48d38.js → roy-agent-core-98aa9r0x.js} +12 -7
- package/dist/shared/@ai-setting/{roy-agent-core-3tv1q6f2.js → roy-agent-core-9nv586rw.js} +57 -19
- package/dist/shared/@ai-setting/roy-agent-core-b599jgyd.js +578 -0
- package/dist/shared/@ai-setting/{roy-agent-core-yd21n6c7.js → roy-agent-core-bwzy00t2.js} +12 -5
- package/dist/shared/@ai-setting/{roy-agent-core-dwx9hjwx.js → roy-agent-core-c6at31ra.js} +1 -1
- package/dist/shared/@ai-setting/{roy-agent-core-1cv9j4dg.js → roy-agent-core-d14h726p.js} +3 -3
- package/dist/shared/@ai-setting/{roy-agent-core-4sx6sdb2.js → roy-agent-core-d4jpn06f.js} +22 -9
- package/dist/shared/@ai-setting/{roy-agent-core-39xejr39.js → roy-agent-core-e0wbq0qq.js} +7 -7
- package/dist/shared/@ai-setting/{roy-agent-core-vrsxhw9e.js → roy-agent-core-e677am8e.js} +1 -1
- package/dist/shared/@ai-setting/{roy-agent-core-hch2geta.js → roy-agent-core-ezsyyjxw.js} +21 -190
- package/dist/shared/@ai-setting/{roy-agent-core-ne2t1pay.js → roy-agent-core-f8sp1txg.js} +2 -2
- package/dist/shared/@ai-setting/{roy-agent-core-ak4dc3kg.js → roy-agent-core-gn8f4rhs.js} +1 -1
- package/dist/shared/@ai-setting/{roy-agent-core-qcspfszy.js → roy-agent-core-gngjkw3b.js} +1 -1
- package/dist/shared/@ai-setting/{roy-agent-core-9jzysq50.js → roy-agent-core-heft3j4c.js} +2 -2
- package/dist/shared/@ai-setting/{roy-agent-core-5apmk4qw.js → roy-agent-core-jszgaevt.js} +1 -1
- package/dist/shared/@ai-setting/{roy-agent-core-nde5gzta.js → roy-agent-core-m8n0dffe.js} +1 -1
- package/dist/shared/@ai-setting/{roy-agent-core-x8n1r7h4.js → roy-agent-core-n3b7ztms.js} +189 -8
- package/dist/shared/@ai-setting/{roy-agent-core-4vpk40ss.js → roy-agent-core-nhk0dsxr.js} +13 -13
- package/dist/shared/@ai-setting/{roy-agent-core-j8e92gj8.js → roy-agent-core-nntphgww.js} +1 -60
- package/dist/shared/@ai-setting/{roy-agent-core-8s9jd2qy.js → roy-agent-core-nra8vfrs.js} +1 -1
- package/dist/shared/@ai-setting/{roy-agent-core-pk1b3kvf.js → roy-agent-core-ns3pbyz4.js} +1 -1
- package/dist/shared/@ai-setting/{roy-agent-core-7g03zkkb.js → roy-agent-core-pemxr5n4.js} +1 -1
- package/dist/shared/@ai-setting/{roy-agent-core-skzjs973.js → roy-agent-core-pjxa78mp.js} +5 -5
- package/dist/shared/@ai-setting/{roy-agent-core-p8ak03s0.js → roy-agent-core-q7zksbw0.js} +117 -315
- package/dist/shared/@ai-setting/{roy-agent-core-zd3ddm4k.js → roy-agent-core-qjjf4tjb.js} +1 -1
- package/dist/shared/@ai-setting/{roy-agent-core-qamktze3.js → roy-agent-core-qyqnmz8c.js} +1 -1
- package/dist/shared/@ai-setting/{roy-agent-core-9csa89jx.js → roy-agent-core-r9qe0ghe.js} +2 -2
- package/dist/shared/@ai-setting/{roy-agent-core-h93v6p6y.js → roy-agent-core-tc7gw38m.js} +2 -2
- package/dist/shared/@ai-setting/{roy-agent-core-35s1w7tc.js → roy-agent-core-v2188rnk.js} +157 -85
- package/dist/shared/@ai-setting/{roy-agent-core-p2r27era.js → roy-agent-core-vmg30n5x.js} +8 -8
- package/dist/shared/@ai-setting/{roy-agent-core-rnwr39b0.js → roy-agent-core-w7hnjhvx.js} +5 -3
- package/dist/shared/@ai-setting/{roy-agent-core-dv714bqh.js → roy-agent-core-wafk25ff.js} +1 -1
- package/dist/shared/@ai-setting/{roy-agent-core-brwzs8wf.js → roy-agent-core-xcq04fq0.js} +5 -5
- package/dist/shared/@ai-setting/{roy-agent-core-2gay3sjt.js → roy-agent-core-yg247mk4.js} +1 -1
- package/dist/shared/@ai-setting/{roy-agent-core-zy3hqfwg.js → roy-agent-core-yv9x4wmg.js} +631 -35
- package/dist/shared/@ai-setting/{roy-agent-core-yhsssn86.js → roy-agent-core-zmeka63k.js} +1 -1
- package/dist/test-utils/child-process-mock.d.ts +73 -0
- package/package.json +2 -2
- 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-
|
|
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-
|
|
10
|
+
} from "./roy-agent-core-40xzbjtm.js";
|
|
11
11
|
import {
|
|
12
12
|
init_hook
|
|
13
|
-
} from "./roy-agent-core-
|
|
13
|
+
} from "./roy-agent-core-gngjkw3b.js";
|
|
14
14
|
import {
|
|
15
15
|
init_context
|
|
16
|
-
} from "./roy-agent-core-
|
|
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-
|
|
21
|
+
} from "./roy-agent-core-jszgaevt.js";
|
|
22
22
|
import {
|
|
23
23
|
TracedAs,
|
|
24
|
-
|
|
25
|
-
|
|
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", {
|
|
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", {
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
43
|
+
} from "./roy-agent-core-40xzbjtm.js";
|
|
44
44
|
import {
|
|
45
45
|
globalHookManager,
|
|
46
46
|
init_global_hook_manager
|
|
47
|
-
} from "./roy-agent-core-
|
|
47
|
+
} from "./roy-agent-core-1pnfkspm.js";
|
|
48
48
|
import {
|
|
49
49
|
getEnvContextOrEmpty,
|
|
50
50
|
init_env_context
|
|
51
|
-
} from "./roy-agent-core-
|
|
51
|
+
} from "./roy-agent-core-jszgaevt.js";
|
|
52
52
|
import {
|
|
53
53
|
TracedAs,
|
|
54
54
|
init_decorator
|
|
55
|
-
} from "./roy-agent-core-
|
|
55
|
+
} from "./roy-agent-core-b599jgyd.js";
|
|
56
56
|
import {
|
|
57
57
|
createLogger,
|
|
58
58
|
init_logger
|
|
@@ -1,36 +1,36 @@
|
|
|
1
1
|
import {
|
|
2
2
|
getSharedEventStore
|
|
3
|
-
} from "./roy-agent-core-
|
|
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-
|
|
9
|
+
} from "./roy-agent-core-6masakz4.js";
|
|
10
10
|
import {
|
|
11
11
|
LarkCardPatchNotifier,
|
|
12
12
|
humanizeValue
|
|
13
|
-
} from "./roy-agent-core-
|
|
13
|
+
} from "./roy-agent-core-nntphgww.js";
|
|
14
14
|
import {
|
|
15
15
|
validateWorkflowDefinition
|
|
16
|
-
} from "./roy-agent-core-
|
|
16
|
+
} from "./roy-agent-core-202v00x4.js";
|
|
17
17
|
import {
|
|
18
18
|
enqueueToAddFakeUserMessage
|
|
19
|
-
} from "./roy-agent-core-
|
|
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-
|
|
25
|
+
} from "./roy-agent-core-16t0zfbk.js";
|
|
26
26
|
import {
|
|
27
27
|
getEnvContextOrEmpty
|
|
28
|
-
} from "./roy-agent-core-
|
|
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-
|
|
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-
|
|
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-
|
|
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
|
-
|
|
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:
|
|
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
|
-
|
|
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:
|
|
568
|
-
|
|
569
|
-
|
|
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:
|
|
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
|
-
|
|
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,
|
|
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-
|
|
4
|
-
import"./roy-agent-core-
|
|
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";
|
|
@@ -3,10 +3,10 @@ import {
|
|
|
3
3
|
hasDecoratorNodes,
|
|
4
4
|
init_node_registry_helper,
|
|
5
5
|
registerDecoratorNodeType
|
|
6
|
-
} from "./roy-agent-core-
|
|
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-
|
|
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";
|