odai-dsh-agent 0.2.56 → 0.3.1

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 (78) hide show
  1. package/README.md +11 -9
  2. package/client/client.js +83 -6
  3. package/package.json +1 -1
  4. package/preset/odai/package.json +2 -1
  5. package/preset/odai/runtime/context-activation.mjs +1 -1
  6. package/preset/odai/runtime/context-activation.mjs.map +1 -1
  7. package/preset/odai/runtime/control-center-runtime.d.mts +3 -0
  8. package/preset/odai/runtime/control-center-runtime.d.mts.map +1 -1
  9. package/preset/odai/runtime/control-center-runtime.mjs +8 -3
  10. package/preset/odai/runtime/control-center-runtime.mjs.map +1 -1
  11. package/preset/odai/runtime/index.d.mts.map +1 -1
  12. package/preset/odai/runtime/index.mjs +52 -2
  13. package/preset/odai/runtime/index.mjs.map +1 -1
  14. package/preset/odai/runtime/lead-mode.d.mts +23 -0
  15. package/preset/odai/runtime/lead-mode.d.mts.map +1 -0
  16. package/preset/odai/runtime/lead-mode.mjs +17 -0
  17. package/preset/odai/runtime/lead-mode.mjs.map +1 -0
  18. package/preset/odai/runtime/lifecycle-runtime.d.mts.map +1 -1
  19. package/preset/odai/runtime/lifecycle-runtime.mjs +199 -13
  20. package/preset/odai/runtime/lifecycle-runtime.mjs.map +1 -1
  21. package/preset/odai/runtime/responsibility-gap.d.mts +4 -1
  22. package/preset/odai/runtime/responsibility-gap.d.mts.map +1 -1
  23. package/preset/odai/runtime/responsibility-gap.mjs +1 -0
  24. package/preset/odai/runtime/responsibility-gap.mjs.map +1 -1
  25. package/preset/odai/runtime/role-overlays.d.mts +1 -1
  26. package/preset/odai/runtime/role-overlays.d.mts.map +1 -1
  27. package/preset/odai/runtime/role-overlays.mjs +4 -1
  28. package/preset/odai/runtime/role-overlays.mjs.map +1 -1
  29. package/preset/odai/runtime/route-session.d.mts +20 -0
  30. package/preset/odai/runtime/route-session.d.mts.map +1 -0
  31. package/preset/odai/runtime/route-session.mjs +44 -0
  32. package/preset/odai/runtime/route-session.mjs.map +1 -0
  33. package/preset/odai/runtime/router.d.mts +2 -1
  34. package/preset/odai/runtime/router.d.mts.map +1 -1
  35. package/preset/odai/runtime/router.mjs +52 -1
  36. package/preset/odai/runtime/router.mjs.map +1 -1
  37. package/preset/odai/runtime/routing-config.d.mts +5 -2
  38. package/preset/odai/runtime/routing-config.d.mts.map +1 -1
  39. package/preset/odai/runtime/routing-config.mjs +25 -14
  40. package/preset/odai/runtime/routing-config.mjs.map +1 -1
  41. package/preset/odai/runtime/runtime-config.d.mts +1 -1
  42. package/preset/odai/runtime/runtime-config.d.mts.map +1 -1
  43. package/preset/odai/runtime/runtime-support.d.mts +6 -1
  44. package/preset/odai/runtime/runtime-support.d.mts.map +1 -1
  45. package/preset/odai/runtime/runtime-support.mjs +15 -7
  46. package/preset/odai/runtime/runtime-support.mjs.map +1 -1
  47. package/preset/odai/runtime/runtime-types.d.mts +2 -0
  48. package/preset/odai/runtime/runtime-types.d.mts.map +1 -1
  49. package/preset/odai/runtime/runtime-types.mjs.map +1 -1
  50. package/preset/odai/runtime/session-controls.d.mts +33 -0
  51. package/preset/odai/runtime/session-controls.d.mts.map +1 -0
  52. package/preset/odai/runtime/session-controls.mjs +64 -0
  53. package/preset/odai/runtime/session-controls.mjs.map +1 -0
  54. package/preset/odai/runtime/session-evidence.d.mts.map +1 -1
  55. package/preset/odai/runtime/session-evidence.mjs +11 -4
  56. package/preset/odai/runtime/session-evidence.mjs.map +1 -1
  57. package/preset/odai/runtime/skill-bundle.d.mts +1 -1
  58. package/preset/odai/runtime/skill-bundle.d.mts.map +1 -1
  59. package/preset/odai/runtime/tool-runtime.d.mts.map +1 -1
  60. package/preset/odai/runtime/tool-runtime.mjs +28 -0
  61. package/preset/odai/runtime/tool-runtime.mjs.map +1 -1
  62. package/preset/odai/skills/odai-orchestration/SKILL.md +1 -1
  63. package/preset/odai/skills/odai-orchestration/assets/routing-roles/controller.md +1 -1
  64. package/preset/odai/skills/odai-orchestration/assets/routing-roles/writer.md +9 -0
  65. package/preset/odai/skills/odai-orchestration/manifest.json +10 -4
  66. package/preset/odai/skills/odai-orchestration/references/install.md +66 -4
  67. package/preset/odai/skills/odai-orchestration/references/orchestration.md +2 -1
  68. package/preset/odai/skills/odai-orchestration/scripts/build-routing.mjs +78 -24
  69. package/preset/odai/skills/odai-orchestration/scripts/compose-contracts.d.mts +1 -1
  70. package/preset/odai/skills/odai-orchestration/scripts/compose-contracts.mjs +6 -5
  71. package/preset/odai/skills/odai-orchestration/scripts/install-routing.mjs +66 -15
  72. package/preset/odai/skills/odai-orchestration/scripts/local-cli.d.mts +8 -0
  73. package/preset/odai/skills/odai-orchestration/scripts/local-cli.mjs +25 -9
  74. package/preset/odai/skills/odai-orchestration/scripts/recognize-routing.d.mts +6 -0
  75. package/preset/odai/skills/odai-orchestration/scripts/recognize-routing.mjs +93 -0
  76. package/preset/odai/skills/odai-orchestration/scripts/route-hook.mjs +243 -0
  77. package/preset/odai/skills/odai-orchestration/scripts/run-role.mjs +71 -16
  78. package/preset/odai/skills/odai-orchestration/scripts/verify-routing.mjs +2 -2
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sourceRoot":"","sources":["../src/index.mts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.mjs","sourceRoot":"","sources":["../src/index.mts"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ import type { DshEvent } from "./runtime-types.mjs";
2
+ export { recognizeLeadSwitch } from "#odai-recognize-routing";
3
+ export declare const leadState: (events: readonly DshEvent[]) => import("./runtime-types.mjs").RuntimeEventData | undefined;
4
+ export declare function leadTaskId(events: readonly DshEvent[], messageId: string | undefined, continuing: boolean): string | undefined;
5
+ export declare function isLeadWriteTool(name: string): boolean;
6
+ export declare function leadGap(role: "planner" | "reviewer", taskMessageId: string, turn: number | undefined, step: number, round?: number): {
7
+ responsibility: import("./responsibility-gap.mjs").Responsibility;
8
+ gap: string;
9
+ evidenceRefs: readonly string[];
10
+ expectedChange: string;
11
+ requirements?: readonly import("./responsibility-gap.mjs").RequirementDecision[];
12
+ question?: string;
13
+ stateDigest: string;
14
+ source: string;
15
+ userNamed: boolean;
16
+ timing: string;
17
+ taskMessageId: string;
18
+ turn: number | undefined;
19
+ step: number;
20
+ round: number;
21
+ };
22
+ export { parseLeadVerdict } from "#odai-recognize-routing";
23
+ //# sourceMappingURL=lead-mode.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lead-mode.d.mts","sourceRoot":"","sources":["../src/lead-mode.mts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAEpD,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9D,eAAO,MAAM,SAAS,WAAY,SAAS,QAAQ,EAAE,+DAAoE,CAAC;AAC1H,wBAAgB,UAAU,CAAC,MAAM,EAAE,SAAS,QAAQ,EAAE,EAAE,SAAS,EAAE,MAAM,GAAG,SAAS,EAAE,UAAU,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAE9H;AAGD,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAErD;AACD,wBAAgB,OAAO,CAAC,IAAI,EAAE,SAAS,GAAG,UAAU,EAAE,aAAa,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,SAAI;;;;;;;;;;;;;;;EAG7H;AACD,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC"}
@@ -0,0 +1,17 @@
1
+ import { resolveResponsibilityGap } from "./responsibility-gap.mjs";
2
+ export { recognizeLeadSwitch } from "#odai-recognize-routing";
3
+ export const leadState = (events) => events.findLast(event => event.type === "odai/lead-mode")?.data;
4
+ export function leadTaskId(events, messageId, continuing) {
5
+ return continuing ? events.findLast(event => event.type === "odai/lead-task")?.data.taskMessageId ?? messageId : messageId;
6
+ }
7
+ // DSH's public tool contract exposes no reliable per-call mutation classification.
8
+ // Known inspection tools are read-only; arbitrary commands and unknown tools are conservative writes.
9
+ export function isLeadWriteTool(name) {
10
+ return !new Set(["read", "glob", "grep", "web_search", "web_fetch", "read_image", "job_output", "job_list", "list_agents", "working_directory", "odai_responsibility_gap", "odai_responsibility_return", "odai_review_evidence", "odai_reference"]).has(name);
11
+ }
12
+ export function leadGap(role, taskMessageId, turn, step, round = 0) {
13
+ const proposal = resolveResponsibilityGap({ responsibility: role, gap: role === "planner" ? "主导模式:第一次写入前规划" : "主导模式:验收本任务的写入", evidenceRefs: [`user-message:${taskMessageId}`], expectedChange: "回交判断;失败时如实说明,不重试或替换模型" });
14
+ return { ...proposal, stateDigest: `user-named:lead-mode:${taskMessageId}:${role}:${round}`, source: "lead-mode", userNamed: true, timing: role === "planner" ? "start" : "completion", taskMessageId, turn, step: step - 1, round };
15
+ }
16
+ export { parseLeadVerdict } from "#odai-recognize-routing";
17
+ //# sourceMappingURL=lead-mode.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lead-mode.mjs","sourceRoot":"","sources":["../src/lead-mode.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAC;AAGpE,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9D,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,MAA2B,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,gBAAgB,CAAC,EAAE,IAAI,CAAC;AAC1H,MAAM,UAAU,UAAU,CAAC,MAA2B,EAAE,SAA6B,EAAE,UAAmB;IACxG,OAAO,UAAU,CAAC,CAAC,CAAE,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,gBAAgB,CAAC,EAAE,IAAI,CAAC,aAAoC,IAAI,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC;AACrJ,CAAC;AACD,mFAAmF;AACnF,sGAAsG;AACtG,MAAM,UAAU,eAAe,CAAC,IAAY;IAC1C,OAAO,CAAC,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,YAAY,EAAE,UAAU,EAAE,aAAa,EAAE,mBAAmB,EAAE,yBAAyB,EAAE,4BAA4B,EAAE,sBAAsB,EAAE,gBAAgB,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AAChQ,CAAC;AACD,MAAM,UAAU,OAAO,CAAC,IAA4B,EAAE,aAAqB,EAAE,IAAwB,EAAE,IAAY,EAAE,KAAK,GAAG,CAAC;IAC5H,MAAM,QAAQ,GAAG,wBAAwB,CAAC,EAAE,cAAc,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,eAAe,EAAE,YAAY,EAAE,CAAC,gBAAgB,aAAa,EAAE,CAAC,EAAE,cAAc,EAAE,uBAAuB,EAAE,CAAC,CAAC;IAC3N,OAAO,EAAE,GAAG,QAAQ,EAAE,WAAW,EAAE,wBAAwB,aAAa,IAAI,IAAI,IAAI,KAAK,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,YAAY,EAAE,aAAa,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,GAAG,CAAC,EAAE,KAAK,EAAE,CAAC;AACvO,CAAC;AACD,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"lifecycle-runtime.d.mts","sourceRoot":"","sources":["../src/lifecycle-runtime.mts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"lifecycle-runtime.d.mts","sourceRoot":"","sources":["../src/lifecycle-runtime.mts"],"names":[],"mappings":"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"}
@@ -1,4 +1,8 @@
1
+ import { recognizeLeadSwitch, leadState, leadTaskId, leadGap, parseLeadVerdict } from "./lead-mode.mjs";
1
2
  import { classifyResponsibilityInterruptionText, decideResearchPrefetch, decideRoute, extractLatestUserText, extractRoutingText, renderMissingRouteConfigNotice, renderRouteFailureNotice, renderRouteNotice, } from "./router.mjs";
3
+ import { recognizeNamedRequests, resolveResponsibilityGap } from "./responsibility-gap.mjs";
4
+ import { CONFIGURABLE_ROLES } from "./routing-config.mjs";
5
+ import { classifyPendingReviewerText } from "./router.mjs";
2
6
  import { classifyModelRouteFailure, probeModelRoute } from "./model-route.mjs";
3
7
  import { selectSharedOutputPolicyForTurn } from "./output-policy-state.mjs";
4
8
  import { prepareSessionOutputControl, previewSessionOutputControl } from "./output-session.mjs";
@@ -12,7 +16,7 @@ import { captureAutomaticMemories, claimSemanticMemoryTurn, currentDirectInput,
12
16
  import { sessionEvents } from "./runtime-types.mjs";
13
17
  const DIRECT_USER_TASK_HEADING = "\n# Direct user task";
14
18
  function effectiveRoleDispatch(role, configured, routingMode) {
15
- if (role === "creative")
19
+ if (role === "creative" || role === "writer")
16
20
  return "child";
17
21
  if (configured)
18
22
  return configured;
@@ -40,6 +44,100 @@ export function installLifecycleRuntime(deps) {
40
44
  const outputUsageBySession = new WeakMap();
41
45
  const inputRequests = new WeakMap();
42
46
  const inputGuards = new WeakSet();
47
+ const namedGaps = (agent) => evidence.events(agent).filter(event => event.type === "odai/responsibility-gap" && event.data.userNamed === true);
48
+ const gapConsumed = (agent, digest) => evidence.events(agent).some(event => event.type === "odai/responsibility-gap-consumed" && event.data.stateDigest === digest);
49
+ const promptNamedRequests = ({ agent, turn, signal }) => {
50
+ if (signal.aborted || isSubagentSession(agent) || config.routing.mode === "off" || namedGaps(agent).length === 0)
51
+ return;
52
+ pendingResponsibilityGap(agent, turn, Number.MAX_SAFE_INTEGER);
53
+ const events = evidence.events(agent);
54
+ const prompts = [];
55
+ for (const { data } of namedGaps(agent).sort((left, right) => Number(left.data.timing === "completion") - Number(right.data.timing === "completion"))) {
56
+ if (gapConsumed(agent, data.stateDigest))
57
+ continue;
58
+ const message = latestDirectUserMessage(agent);
59
+ if (!message || (message.id !== data.taskMessageId && classifyPendingReviewerText(extractLatestUserText([message])) !== "continue")) {
60
+ appendEvent(agent, "odai/responsibility-gap-consumed", { turn, stateDigest: data.stateDigest, responsibility: data.responsibility, reason: "SUPERSEDED_BY_DIRECT_USER_TASK" });
61
+ continue;
62
+ }
63
+ const step = agent.phase?.step ?? sessionEvents(agent.session).findLast(event => event.type === "step/start")?.data.step ?? 0;
64
+ const prompted = events.find(event => event.type === "odai/named-request-prompted" && event.data.stateDigest === data.stateDigest);
65
+ if (prompted) {
66
+ // Coexisting Plugin/Agent listeners can observe the same stop. Only a
67
+ // later native step may conclude that the one reminder was ineffective.
68
+ if (prompted.data.turn === turn && prompted.data.step === step)
69
+ return;
70
+ appendEvent(agent, "odai/responsibility-gap-consumed", { turn, step, stateDigest: data.stateDigest, responsibility: data.responsibility, reason: "NAMED_REQUEST_INCOMPLETE_AFTER_PROMPT" });
71
+ continue;
72
+ }
73
+ appendEvent(agent, "odai/named-request-prompted", { turn, step, stateDigest: data.stateDigest, responsibility: data.responsibility });
74
+ prompts.push(String(data.responsibility));
75
+ break;
76
+ }
77
+ if (prompts.length && !signal.aborted)
78
+ agent.steer?.(pluginMessage(`用户点名尚待运行:${prompts.join("、")}。运行时将在下一步按顺序派发;不要重复提交同项。最终答复逐项说明实际模型与结果,未完成时说明原因,不替换模型或配置。`, "odai named responsibility request"));
79
+ };
80
+ const checkedNamedInputs = new WeakMap();
81
+ const recognizeDirectNames = (agent, turn, step, message) => {
82
+ if (!message?.id || isSubagentSession(agent) || config.routing.mode === "off" || checkedNamedInputs.get(agent)?.has(message.id) || hasSessionEvent(agent, "odai/named-input-checked", data => data.taskMessageId === message.id))
83
+ return;
84
+ let checked = checkedNamedInputs.get(agent);
85
+ if (!checked) {
86
+ checked = new Set();
87
+ checkedNamedInputs.set(agent, checked);
88
+ }
89
+ checked.add(message.id);
90
+ const text = extractLatestUserText([message]);
91
+ const routes = {};
92
+ for (const role of CONFIGURABLE_ROLES) {
93
+ const route = configuredRole(agent, role, turn).route;
94
+ if (route)
95
+ routes[role] = route;
96
+ }
97
+ const change = recognizeLeadSwitch(text, {
98
+ ...(routes.planner ? { planner: routes.planner } : {}),
99
+ ...(routes.reviewer ? { reviewer: routes.reviewer } : {}),
100
+ });
101
+ if (change && !hasSessionEvent(agent, "odai/lead-switch-checked", data => data.taskMessageId === message.id)) {
102
+ appendEvent(agent, "odai/lead-switch-checked", { taskMessageId: message.id });
103
+ if (!change.issue) {
104
+ appendEvent(agent, "odai/lead-mode", { taskMessageId: message.id, ...change });
105
+ if (!change.enabled)
106
+ for (const event of namedGaps(agent))
107
+ if (event.data.source === "lead-mode" && !gapConsumed(agent, event.data.stateDigest))
108
+ appendEvent(agent, "odai/responsibility-gap-consumed", { stateDigest: event.data.stateDigest, reason: "LEAD_MODE_DISABLED" });
109
+ }
110
+ agent.inject?.(pluginMessage(`主导模式:${change.issue ?? (change.enabled ? "已开启" : "已关闭")}。规划与审查插槽:${JSON.stringify(Object.fromEntries(change.roles.map(role => [role, routes[role]])))}。未启用的插槽不调用;关闭说“关闭主导模式”。请向用户说明。`, "odai lead mode"));
111
+ }
112
+ const taskMessageId = leadTaskId(evidence.events(agent), message.id, classifyPendingReviewerText(text) === "continue");
113
+ if (leadState(evidence.events(agent))?.enabled && !hasSessionEvent(agent, "odai/lead-task", data => data.taskMessageId === taskMessageId))
114
+ appendEvent(agent, "odai/lead-task", { taskMessageId });
115
+ const requests = recognizeNamedRequests(text, routes);
116
+ if (requests.length)
117
+ appendEvent(agent, "odai/named-input-checked", { turn, step, taskMessageId: message.id });
118
+ const notices = [];
119
+ for (const request of requests) {
120
+ if (request.canceled) {
121
+ for (const { data } of namedGaps(agent))
122
+ if (data.responsibility === request.responsibility && !gapConsumed(agent, data.stateDigest))
123
+ appendEvent(agent, "odai/responsibility-gap-consumed", { turn, step, responsibility: data.responsibility, stateDigest: data.stateDigest, reason: "CANCELED_BY_USER" });
124
+ continue;
125
+ }
126
+ if (request.issue) {
127
+ appendEvent(agent, "odai/named-request-unfulfilled", { turn, step, taskMessageId: message.id, ...request, configuredRoute: routes[request.responsibility] });
128
+ notices.push(`${request.responsibility}(${request.name}):${request.issue};当前映射 ${JSON.stringify(routes[request.responsibility] ?? null)}`);
129
+ if (request.issue === "unconfigured") {
130
+ const proposal = resolveResponsibilityGap({ responsibility: request.responsibility, gap: request.excerpt, evidenceRefs: [`user-message:${message.id}`], expectedChange: "完成用户点名职责" });
131
+ notices.push(renderMissingRouteConfigNotice(decideRoute({ text, proposal, writerConfigured: true, creativeConfigured: true }), config.routing.mode));
132
+ }
133
+ continue;
134
+ }
135
+ const proposal = resolveResponsibilityGap({ responsibility: request.responsibility, gap: `用户明确点名:${request.excerpt}`, evidenceRefs: [`user-message:${message.id}`], expectedChange: `按用户指定的${request.timing}时机完成该职责并回交` });
136
+ appendEvent(agent, "odai/responsibility-gap", { ...proposal, stateDigest: `user-named:${proposal.stateDigest}:${message.id}:${request.timing}`, taskMessageId: message.id, turn, step: step - 1, userNamed: true, timing: request.timing, sourceExcerpt: request.excerpt, requestedName: request.name, requestedRoute: routes[request.responsibility] });
137
+ notices.push(`${request.responsibility}:${request.timing === "start" ? "开始时" : "完成时"}`);
138
+ }
139
+ return notices.length ? pluginMessage(`用户点名:${notices.join(";")}。由运行时负责按顺序派发;总控不要自己再派同一项。最终答复必须逐项说明哪个实际模型做了什么,以及未完成的原因;不得替换职责、模型或修改配置。`, "odai user named responsibilities") : undefined;
140
+ };
43
141
  ctx.on("agent/inbox/claimed", ({ agent, turn, message }) => {
44
142
  if (isSubagentSession(agent) || typeof agent.ctx?.on !== "function" || !agent.session.id)
45
143
  return;
@@ -355,6 +453,9 @@ export function installLifecycleRuntime(deps) {
355
453
  const turn = position?.turn;
356
454
  const step = position?.step;
357
455
  if (message && message.id === event.data.id && typeof turn === "number" && typeof step === "number") {
456
+ const notice = recognizeDirectNames(owner, turn, step, message);
457
+ if (notice)
458
+ session.append("user/message", notice, { surfaceOp: "append" });
358
459
  prepareSessionOutputControl({
359
460
  events: evidence.events(owner), text: extractLatestUserText([message]), turn, step,
360
461
  userMessageId: typeof message.id === "string" ? message.id : undefined,
@@ -396,13 +497,8 @@ export function installLifecycleRuntime(deps) {
396
497
  step: event.data?.step ?? activeScope.startStep,
397
498
  responsibility: activeScope.role,
398
499
  target: "controller",
399
- status: typeof owner.inject === "function" ? "recovery-injected" : "recovery-unavailable",
500
+ status: "recovery-pending",
400
501
  });
401
- owner.inject?.(pluginMessage([
402
- `The same-turn ${activeScope.role} responsibility emitted a terminal response without odai_responsibility_return.`,
403
- "Its text is an unverified read-only draft, not final delivery or independent acceptance.",
404
- "The runtime restored the controller route. Verify the decisive claims, continue the authorized task, and keep controller ownership of final delivery.",
405
- ].join("\n"), `${activeScope.role} handback recovery`));
406
502
  }
407
503
  }
408
504
  if (event?.type === "assistant/chunk" && event.data?.chunk?.type === "usage") {
@@ -590,8 +686,57 @@ export function installLifecycleRuntime(deps) {
590
686
  }
591
687
  pendingRouteReceipts.delete(session);
592
688
  });
593
- ctx.on("agent/turn-stopping", ({ agent, turn }) => {
689
+ ctx.on("agent/turn-stopping", ({ agent, turn, signal }) => {
594
690
  stopResponsibilityScope(agent, "turn-stopping");
691
+ const missing = evidence.events(agent).findLast(event => event.type === "odai/responsibility-return-missing" && event.data.turn === turn);
692
+ const recovered = missing && evidence.events(agent).some(event => event.type === "odai/responsibility-recovery" && event.data.scopeId === missing.data.scopeId);
693
+ if (missing && !recovered && !signal?.aborted && typeof agent.steer === "function") {
694
+ agent.steer(pluginMessage([
695
+ `The same-turn ${missing.data.responsibility} responsibility emitted a terminal response without odai_responsibility_return.`,
696
+ "Its text is an unverified read-only draft, not final delivery or independent acceptance.",
697
+ "The runtime restored the controller route. Verify the decisive claims, continue the authorized task, and keep controller ownership of final delivery.",
698
+ ].join("\n"), "responsibility handback recovery"));
699
+ appendEvent(agent, "odai/responsibility-recovery", { turn, scopeId: missing.data.scopeId, status: "recovery-steered" });
700
+ // Recovery already wakes the controller; defer completion prompting to its next stop.
701
+ }
702
+ else if (signal) {
703
+ if (!signal.aborted && !isSubagentSession(agent) && config.routing.mode !== "off" && leadState(evidence.events(agent))?.enabled) {
704
+ const message = latestDirectUserMessage(agent);
705
+ const events = evidence.events(agent);
706
+ const taskId = message && leadTaskId(events, message.id, classifyPendingReviewerText(extractLatestUserText([message])) === "continue");
707
+ const state = leadState(events);
708
+ if (taskId && Array.isArray(state?.roles) && state.roles.includes("reviewer") && events.some(event => event.type === "odai/lead-write" && event.data.taskMessageId === taskId)) {
709
+ const gaps = namedGaps(agent).filter(event => event.data.taskMessageId === taskId && event.data.responsibility === "reviewer" && event.data.timing === "completion");
710
+ const last = gaps.at(-1);
711
+ const prior = events.filter(event => event.type === "odai/lead-review" && event.data.taskMessageId === taskId);
712
+ const step = agent.phase?.step ?? sessionEvents(agent.session).findLast(event => event.type === "step/start")?.data.step ?? 0;
713
+ if (!last && configuredRole(agent, "reviewer", turn).route)
714
+ appendEvent(agent, "odai/responsibility-gap", leadGap("reviewer", taskId, turn, step));
715
+ else if (last && gapConsumed(agent, last.data.stateDigest)) {
716
+ const result = events.findLast(event => event.type === "odai/route-result" && event.data.stateDigest === last.data.stateDigest);
717
+ const decision = events.findLast(event => event.type === "odai/route-decided" && event.data.stateDigest === last.data.stateDigest);
718
+ const scope = decision && events.find(event => event.type === "odai/responsibility-scope-started" && event.data.startStep === decision.data.step && event.data.turn === decision.data.turn);
719
+ const returned = scope && events.find(event => event.type === "odai/responsibility-returned" && event.data.scopeId === scope.data.scopeId);
720
+ if ((result || returned) && !prior.some(event => event.data.stateDigest === last.data.stateDigest)) {
721
+ const text = String(result?.data.outputText ?? returned?.data.summary ?? "");
722
+ const success = (returned && events.some(event => event.type === "odai/route-applied" && event.data.responsibilityScopeId === scope?.data.scopeId && event.data.status === "applied")) || (result?.data.status === "completed" && result.data.routeReceiptStatus === "applied");
723
+ const verdict = success ? parseLeadVerdict(text) : "failed";
724
+ appendEvent(agent, "odai/lead-review", { taskMessageId: taskId, stateDigest: last.data.stateDigest, turn, step, verdict, round: prior.length });
725
+ if (verdict === "changes-requested" && prior.length < 2) {
726
+ agent.steer?.(pluginMessage(`主导模式审查要求修正(最多再审2轮):\n${text}\n请完成修正,下一次结束时再审。`, "odai lead correction"));
727
+ return;
728
+ }
729
+ if (verdict !== "pass")
730
+ agent.steer?.(pluginMessage(`主导模式审查未通过或未完成(${verdict});不再重试。最终答复说明未解决问题及原因。\n${text}`, "odai lead review incomplete"));
731
+ }
732
+ else if (prior.at(-1)?.data.verdict === "changes-requested" && prior.length <= 2 && prior.at(-1)?.data.stateDigest === last.data.stateDigest && (prior.at(-1)?.data.turn !== turn || prior.at(-1)?.data.step !== step)) {
733
+ appendEvent(agent, "odai/responsibility-gap", leadGap("reviewer", taskId, turn, step, prior.length));
734
+ }
735
+ }
736
+ }
737
+ }
738
+ promptNamedRequests({ agent, turn, signal });
739
+ }
595
740
  const role = routedRoleOf(agent);
596
741
  if (!role)
597
742
  return;
@@ -637,6 +782,21 @@ export function installLifecycleRuntime(deps) {
637
782
  return { ...downstream, kind: "reject", reason: "ODAI_INPUT_CHANGED_BEFORE_ADMISSION" };
638
783
  }
639
784
  const directMessage = latestDirectUserMessage(agent, suppliedDirectMessages, { turn });
785
+ const namedNotice = recognizeDirectNames(agent, turn, step, directMessage);
786
+ if (namedNotice)
787
+ downstream = { ...downstream, messages: [...downstream.messages, namedNotice] };
788
+ // A candidate must first pass native admission. The committed user/message
789
+ // observer records it before the model can execute controller tools.
790
+ if (!directMessage && previewInput?.message && !subagentSession && config.routing.mode !== "off") {
791
+ const routes = {};
792
+ for (const role of CONFIGURABLE_ROLES) {
793
+ const route = configuredRole(agent, role, turn).route;
794
+ if (route)
795
+ routes[role] = route;
796
+ }
797
+ if (recognizeNamedRequests(extractLatestUserText([previewInput.message]), routes).length)
798
+ return downstream;
799
+ }
640
800
  const responsibilityGap = subagentSession ? undefined : pendingResponsibilityGap(agent, turn, step);
641
801
  // Inbox messages are committed after pre-step. Do not dispatch a task-bound
642
802
  // proposal while a new or changed human batch still lacks native admission.
@@ -748,6 +908,8 @@ export function installLifecycleRuntime(deps) {
748
908
  }
749
909
  if (config.routing.mode === "off")
750
910
  return downstream;
911
+ if (!responsibilityGap && hasSessionEvent(agent, "odai/named-input-checked", data => data.taskMessageId === (directMessage ?? previewInput?.message)?.id))
912
+ return downstream;
751
913
  if (hasSessionEvent(agent, "odai/route-decided", (data) => data?.turn === turn && data?.step === step)) {
752
914
  return downstream;
753
915
  }
@@ -769,6 +931,7 @@ export function installLifecycleRuntime(deps) {
769
931
  gap: responsibilityGap.gap,
770
932
  expectedChange: responsibilityGap.expectedChange,
771
933
  evidenceRefs: responsibilityGap.evidenceRefs,
934
+ ...(responsibilityGap.userNamed ? { priorHandbacks: evidence.events(agent).filter(event => ["odai/route-result", "odai/research-result"].includes(event.type) && event.data.taskMessageId === responsibilityGap.taskMessageId && event.data.status === "completed" && event.data.routeReceiptStatus === "applied").map(event => ({ responsibility: event.data.role, actualRoute: event.data.actualRoute, output: event.data.outputText })) } : {}),
772
935
  }, undefined, 2),
773
936
  "",
774
937
  DIRECT_USER_TASK_HEADING.trimStart(),
@@ -789,11 +952,12 @@ export function installLifecycleRuntime(deps) {
789
952
  step,
790
953
  role: "researcher",
791
954
  action: "delegate",
955
+ ...(responsibilityGap?.userNamed ? { stateDigest: responsibilityGap.stateDigest, taskMessageId: responsibilityGap.taskMessageId } : {}),
792
956
  mode: config.routing.mode,
793
957
  reasonCode: researchDecision.reasonCode,
794
958
  signals: researchDecision.signals,
795
959
  });
796
- if (config.routing.mode === "observe") {
960
+ if (config.routing.mode === "observe" && !responsibilityGap?.userNamed) {
797
961
  appendEvent(agent, "odai/research-result", {
798
962
  turn,
799
963
  step,
@@ -830,6 +994,7 @@ export function installLifecycleRuntime(deps) {
830
994
  const subagents = isSubagentsService(ctx.subagents) ? ctx.subagents : undefined;
831
995
  const result = subagents || researchRoute.backend === "local-cli"
832
996
  ? await runRoutedRole({
997
+ sessionEvidence: { events: evidence.events, append: (owner, type, data) => appendEvent(owner, type, data) },
833
998
  subagents,
834
999
  provider: config.routing.provider,
835
1000
  decision: researchDecision,
@@ -861,6 +1026,7 @@ export function installLifecycleRuntime(deps) {
861
1026
  turn,
862
1027
  step,
863
1028
  role: "researcher",
1029
+ ...(responsibilityGap?.userNamed ? { stateDigest: responsibilityGap.stateDigest, taskMessageId: responsibilityGap.taskMessageId, userNamed: true, outputText: completed ? outputText(result.output) : undefined } : {}),
864
1030
  status: completed ? "completed" : "fallback",
865
1031
  stopReason: completed ? result.stopReason : (packetError ? "packet-invalid" : result.stopReason),
866
1032
  routeSource: researchState.source,
@@ -869,9 +1035,12 @@ export function installLifecycleRuntime(deps) {
869
1035
  requestedRoute: researchRoute,
870
1036
  ...(result.routeReceiptError ? { routeReceiptError: result.routeReceiptError } : {}),
871
1037
  ...(result.actualRoute ? { actualRoute: result.actualRoute } : {}),
1038
+ ...(result.boundaryStatus ? { boundaryStatus: result.boundaryStatus, boundaryTools: result.boundaryTools } : {}),
872
1039
  ...(packet ? { packetDigest: packet.digest, sourceCount: packet.sourceCount } : {}),
873
1040
  ...(packetError ? { error: packetError } : result.taskError ? { error: result.taskError } : {}),
874
1041
  });
1042
+ if (result.sessionNotice)
1043
+ routedDownstream = { ...routedDownstream, messages: [...routedDownstream.messages, pluginMessage(result.sessionNotice, "responsibility session recovery")] };
875
1044
  if (completed && packet) {
876
1045
  researchPacketText = renderResearchPacket(packet);
877
1046
  routedDownstream = {
@@ -885,8 +1054,15 @@ export function installLifecycleRuntime(deps) {
885
1054
  }
886
1055
  }
887
1056
  }
1057
+ if (responsibilityGap?.userNamed && responsibilityGap.responsibility === "researcher" && !sameTurnResearchDecision) {
1058
+ appendEvent(agent, "odai/responsibility-gap-consumed", { turn, step, responsibility: "researcher", stateDigest: responsibilityGap.stateDigest, reason: "NAMED_RESEARCH_ATTEMPTED" });
1059
+ if (!researchPacketText)
1060
+ routedDownstream = { ...routedDownstream, messages: [...routedDownstream.messages, pluginMessage("用户点名 researcher 未完成:未取得通过核实的研究证据包。最终答复说明实际回执及原因,不重试、不替换模型或修改配置。", "odai named research incomplete")] };
1061
+ return routedDownstream;
1062
+ }
888
1063
  let decision = sameTurnResearchDecision ?? decideRoute({
889
1064
  text: taskText,
1065
+ writerConfigured: Boolean(configuredRole(agent, "writer", turn).route),
890
1066
  creativeConfigured: Boolean(configuredRole(agent, "creative", turn).route),
891
1067
  creativeText: (extractLatestUserText(downstream.messages) || authenticatedDirectText).slice(0, config.routing.maxInputChars),
892
1068
  proposal: responsibilityGap,
@@ -1023,7 +1199,7 @@ export function installLifecycleRuntime(deps) {
1023
1199
  ],
1024
1200
  };
1025
1201
  }
1026
- if (config.routing.mode === "observe") {
1202
+ if (config.routing.mode === "observe" && !responsibilityGap?.userNamed) {
1027
1203
  return {
1028
1204
  kind: "enter",
1029
1205
  messages: [
@@ -1057,11 +1233,16 @@ export function installLifecycleRuntime(deps) {
1057
1233
  }
1058
1234
  const roleBundle = sharedSkillSelection(agent, turn)?.bundle ?? bundled;
1059
1235
  const canonicalRoleContract = roleBundle.roleContracts[routeRole];
1060
- const roleContract = dshRoleContract(routeRole, canonicalRoleContract);
1236
+ const leadReview = routeRole === "reviewer" && leadState(evidence.events(agent))?.enabled === true && evidence.events(agent).some(event => event.type === "odai/lead-write" && event.data.taskMessageId === responsibilityGap?.taskMessageId);
1237
+ const roleContract = dshRoleContract(routeRole, canonicalRoleContract) + (leadReview ? "\n主导模式验收:回交末尾必须独占一行 VERDICT: pass 或 VERDICT: changes-requested。same-turn 时写在 odai_responsibility_return 的 summary 末尾。" : "");
1061
1238
  let rolePreflightVerified = false;
1062
1239
  if (roleRoute.backend !== "local-cli" && routeRole === "frontend" && decision.action === "upgrade") {
1063
1240
  const health = await probeModelRoute((candidate, candidateSignal) => ctx.llm.resolveCallConfig(candidate, candidateSignal), roleRoute, signal);
1064
1241
  if (health.status === "rejected") {
1242
+ if (responsibilityGap?.userNamed) {
1243
+ appendEvent(agent, "odai/route-result", { turn, step, role: routeRole, stateDigest: responsibilityGap.stateDigest, taskMessageId: responsibilityGap.taskMessageId, status: "fallback", stopReason: "route-preflight-failed", error: health.failure.message });
1244
+ return { kind: "enter", messages: [...routedDownstream.messages, pluginMessage(`用户点名的 ${routeRole} 未完成:${health.failure.message}。不重试,不替换模型,不修改配置;最终答复必须说明该项未完成及原因。`, "odai named responsibility failed")] };
1245
+ }
1065
1246
  const invalidation = invalidateFailedRoleRoute(agent, routeRole, roleRoute, roleState.source, health.failure, { turn, step, position: "pre-step" });
1066
1247
  appendEvent(agent, "odai/route-result", {
1067
1248
  turn,
@@ -1221,6 +1402,7 @@ export function installLifecycleRuntime(deps) {
1221
1402
  const subagents = isSubagentsService(ctx.subagents) ? ctx.subagents : undefined;
1222
1403
  const result = subagents || roleRoute.backend === "local-cli"
1223
1404
  ? await runRoutedRole({
1405
+ sessionEvidence: { events: evidence.events, append: (owner, type, data) => appendEvent(owner, type, data) },
1224
1406
  subagents,
1225
1407
  provider: config.routing.provider,
1226
1408
  decision: delegationDecision,
@@ -1245,6 +1427,7 @@ export function installLifecycleRuntime(deps) {
1245
1427
  action: "delegate",
1246
1428
  status: result.status,
1247
1429
  stopReason: result.stopReason,
1430
+ ...(responsibilityGap?.userNamed ? { stateDigest: responsibilityGap.stateDigest, taskMessageId: responsibilityGap.taskMessageId, userNamed: true, outputText: result.status === "completed" ? outputText(result.output) : undefined } : {}),
1248
1431
  routeSource: roleState.source,
1249
1432
  fallbackUsed: result.status !== "completed",
1250
1433
  routeReceiptStatus: result.routeReceiptStatus,
@@ -1253,6 +1436,8 @@ export function installLifecycleRuntime(deps) {
1253
1436
  ...(result.routeReceiptError ? { routeReceiptError: result.routeReceiptError } : {}),
1254
1437
  ...(result.actualRoute ? { actualRoute: result.actualRoute } : {}),
1255
1438
  ...(result.taskError ? { error: result.taskError } : {}),
1439
+ ...(result.sessionAction ? { sessionAction: result.sessionAction, routeSessionId: result.routeSessionId, sessionNotice: result.sessionNotice } : {}),
1440
+ ...(result.boundaryStatus ? { boundaryStatus: result.boundaryStatus, boundaryTools: result.boundaryTools } : {}),
1256
1441
  ...(result.durationMs === undefined ? {} : { durationMs: result.durationMs }),
1257
1442
  ...(result.usage ? { usage: result.usage } : {}),
1258
1443
  ...(result.cliReportedCostUsd === undefined ? {} : { cliReportedCostUsd: result.cliReportedCostUsd }),
@@ -1262,6 +1447,7 @@ export function installLifecycleRuntime(deps) {
1262
1447
  if (result.status === "completed") {
1263
1448
  const childText = outputText(result.output);
1264
1449
  const heading = [
1450
+ ...(result.sessionNotice ? [result.sessionNotice] : []),
1265
1451
  renderRouteNotice(delegationDecision, config.routing.mode, result.actualRoute, "child"),
1266
1452
  ...(result.reasoningEffortVerification === "verified"
1267
1453
  ? [`Reasoning effort: ${result.actualRoute?.reasoningEffort ?? "unspecified"} (verified from CLI session evidence).`]
@@ -1276,12 +1462,12 @@ export function installLifecycleRuntime(deps) {
1276
1462
  ],
1277
1463
  };
1278
1464
  }
1279
- const failure = result.error ?? result.stopReason;
1465
+ const failure = [result.sessionNotice, result.error ?? result.stopReason].filter(Boolean).join("; ");
1280
1466
  return {
1281
1467
  kind: "enter",
1282
1468
  messages: [
1283
1469
  ...routedDownstream.messages,
1284
- pluginMessage(renderRouteFailureNotice(delegationDecision, failure), `odai ${routeRole} route unavailable; controller retains ownership`),
1470
+ pluginMessage(renderRouteFailureNotice(delegationDecision, failure) + (responsibilityGap?.stateDigest.startsWith("user-named:lead-mode:") ? "\n主导模式该职责未完成:继续授权任务,不重试、不替换模型;最终答复必须说明未完成的步骤及上述原因。" : ""), `odai ${routeRole} route unavailable; controller retains ownership`),
1285
1471
  ],
1286
1472
  };
1287
1473
  };