odai-dsh-agent 0.2.5 → 0.2.7

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 (166) hide show
  1. package/README.md +3 -3
  2. package/build/bin/odai-dsh-agent.d.mts +3 -0
  3. package/build/bin/odai-dsh-agent.d.mts.map +1 -0
  4. package/build/bin/odai-dsh-agent.mjs +114 -0
  5. package/build/bin/odai-dsh-agent.mjs.map +1 -0
  6. package/build/src/dsh-version.d.mts +16 -0
  7. package/build/src/dsh-version.d.mts.map +1 -0
  8. package/build/src/dsh-version.mjs +20 -0
  9. package/build/src/dsh-version.mjs.map +1 -0
  10. package/build/src/installer.d.mts +46 -0
  11. package/build/src/installer.d.mts.map +1 -0
  12. package/build/src/installer.mjs +398 -0
  13. package/build/src/installer.mjs.map +1 -0
  14. package/package.json +13 -12
  15. package/preset/odai/runtime/compaction-config.d.mts +66 -0
  16. package/preset/odai/runtime/compaction-config.d.mts.map +1 -0
  17. package/preset/odai/runtime/compaction-config.mjs +320 -342
  18. package/preset/odai/runtime/compaction-config.mjs.map +1 -0
  19. package/preset/odai/runtime/compaction-runtime.d.mts +68 -0
  20. package/preset/odai/runtime/compaction-runtime.d.mts.map +1 -0
  21. package/preset/odai/runtime/compaction-runtime.mjs +157 -0
  22. package/preset/odai/runtime/compaction-runtime.mjs.map +1 -0
  23. package/preset/odai/runtime/context-activation.d.mts +31 -0
  24. package/preset/odai/runtime/context-activation.d.mts.map +1 -0
  25. package/preset/odai/runtime/context-activation.mjs +55 -49
  26. package/preset/odai/runtime/context-activation.mjs.map +1 -0
  27. package/preset/odai/runtime/context-capability.d.mts +16 -0
  28. package/preset/odai/runtime/context-capability.d.mts.map +1 -0
  29. package/preset/odai/runtime/context-capability.mjs +79 -74
  30. package/preset/odai/runtime/context-capability.mjs.map +1 -0
  31. package/preset/odai/runtime/governance.d.mts +30 -0
  32. package/preset/odai/runtime/governance.d.mts.map +1 -0
  33. package/preset/odai/runtime/governance.mjs +126 -113
  34. package/preset/odai/runtime/governance.mjs.map +1 -0
  35. package/preset/odai/runtime/human-care.d.mts +13 -0
  36. package/preset/odai/runtime/human-care.d.mts.map +1 -0
  37. package/preset/odai/runtime/human-care.mjs +45 -42
  38. package/preset/odai/runtime/human-care.mjs.map +1 -0
  39. package/preset/odai/runtime/human-safety-continuity-store.d.mts +43 -0
  40. package/preset/odai/runtime/human-safety-continuity-store.d.mts.map +1 -0
  41. package/preset/odai/runtime/human-safety-continuity-store.mjs +193 -215
  42. package/preset/odai/runtime/human-safety-continuity-store.mjs.map +1 -0
  43. package/preset/odai/runtime/human-safety-continuity.d.mts +27 -0
  44. package/preset/odai/runtime/human-safety-continuity.d.mts.map +1 -0
  45. package/preset/odai/runtime/human-safety-continuity.mjs +205 -216
  46. package/preset/odai/runtime/human-safety-continuity.mjs.map +1 -0
  47. package/preset/odai/runtime/human-safety.d.mts +14 -0
  48. package/preset/odai/runtime/human-safety.d.mts.map +1 -0
  49. package/preset/odai/runtime/human-safety.mjs +50 -47
  50. package/preset/odai/runtime/human-safety.mjs.map +1 -0
  51. package/preset/odai/runtime/index.d.mts +8 -0
  52. package/preset/odai/runtime/index.d.mts.map +1 -0
  53. package/preset/odai/runtime/index.mjs +190 -2473
  54. package/preset/odai/runtime/index.mjs.map +1 -0
  55. package/preset/odai/runtime/lifecycle-runtime.d.mts +83 -0
  56. package/preset/odai/runtime/lifecycle-runtime.d.mts.map +1 -0
  57. package/preset/odai/runtime/lifecycle-runtime.mjs +1140 -0
  58. package/preset/odai/runtime/lifecycle-runtime.mjs.map +1 -0
  59. package/preset/odai/runtime/model-route.d.mts +22 -0
  60. package/preset/odai/runtime/model-route.d.mts.map +1 -0
  61. package/preset/odai/runtime/model-route.mjs +68 -60
  62. package/preset/odai/runtime/model-route.mjs.map +1 -0
  63. package/preset/odai/runtime/output-config.d.mts +54 -0
  64. package/preset/odai/runtime/output-config.d.mts.map +1 -0
  65. package/preset/odai/runtime/output-config.mjs +289 -315
  66. package/preset/odai/runtime/output-config.mjs.map +1 -0
  67. package/preset/odai/runtime/output-policy-state.d.mts +3 -0
  68. package/preset/odai/runtime/output-policy-state.d.mts.map +1 -0
  69. package/preset/odai/runtime/output-policy-state.mjs +41 -29
  70. package/preset/odai/runtime/output-policy-state.mjs.map +1 -0
  71. package/preset/odai/runtime/prompt-runtime.d.mts +55 -0
  72. package/preset/odai/runtime/prompt-runtime.d.mts.map +1 -0
  73. package/preset/odai/runtime/prompt-runtime.mjs +303 -0
  74. package/preset/odai/runtime/prompt-runtime.mjs.map +1 -0
  75. package/preset/odai/runtime/research-packet.d.mts +30 -0
  76. package/preset/odai/runtime/research-packet.d.mts.map +1 -0
  77. package/preset/odai/runtime/research-packet.mjs +116 -117
  78. package/preset/odai/runtime/research-packet.mjs.map +1 -0
  79. package/preset/odai/runtime/responsibility-gap.d.mts +26 -0
  80. package/preset/odai/runtime/responsibility-gap.d.mts.map +1 -0
  81. package/preset/odai/runtime/responsibility-gap.mjs +93 -85
  82. package/preset/odai/runtime/responsibility-gap.mjs.map +1 -0
  83. package/preset/odai/runtime/responsibility-scope.d.mts +69 -0
  84. package/preset/odai/runtime/responsibility-scope.d.mts.map +1 -0
  85. package/preset/odai/runtime/responsibility-scope.mjs +199 -171
  86. package/preset/odai/runtime/responsibility-scope.mjs.map +1 -0
  87. package/preset/odai/runtime/role-overlays.d.mts +5 -0
  88. package/preset/odai/runtime/role-overlays.d.mts.map +1 -0
  89. package/preset/odai/runtime/role-overlays.mjs +15 -14
  90. package/preset/odai/runtime/role-overlays.mjs.map +1 -0
  91. package/preset/odai/runtime/route-card.d.mts +42 -0
  92. package/preset/odai/runtime/route-card.d.mts.map +1 -0
  93. package/preset/odai/runtime/route-card.mjs +158 -146
  94. package/preset/odai/runtime/route-card.mjs.map +1 -0
  95. package/preset/odai/runtime/router.d.mts +80 -0
  96. package/preset/odai/runtime/router.d.mts.map +1 -0
  97. package/preset/odai/runtime/router.mjs +509 -559
  98. package/preset/odai/runtime/router.mjs.map +1 -0
  99. package/preset/odai/runtime/routing-config.d.mts +76 -0
  100. package/preset/odai/runtime/routing-config.d.mts.map +1 -0
  101. package/preset/odai/runtime/routing-config.mjs +373 -438
  102. package/preset/odai/runtime/routing-config.mjs.map +1 -0
  103. package/preset/odai/runtime/routing-context.d.mts +64 -0
  104. package/preset/odai/runtime/routing-context.d.mts.map +1 -0
  105. package/preset/odai/runtime/routing-context.mjs +398 -277
  106. package/preset/odai/runtime/routing-context.mjs.map +1 -0
  107. package/preset/odai/runtime/runtime-config.d.mts +24 -0
  108. package/preset/odai/runtime/runtime-config.d.mts.map +1 -0
  109. package/preset/odai/runtime/runtime-config.mjs +181 -0
  110. package/preset/odai/runtime/runtime-config.mjs.map +1 -0
  111. package/preset/odai/runtime/runtime-support.d.mts +91 -0
  112. package/preset/odai/runtime/runtime-support.d.mts.map +1 -0
  113. package/preset/odai/runtime/runtime-support.mjs +371 -0
  114. package/preset/odai/runtime/runtime-support.mjs.map +1 -0
  115. package/preset/odai/runtime/runtime-types.d.mts +237 -0
  116. package/preset/odai/runtime/runtime-types.d.mts.map +1 -0
  117. package/preset/odai/runtime/runtime-types.mjs +4 -0
  118. package/preset/odai/runtime/runtime-types.mjs.map +1 -0
  119. package/preset/odai/runtime/semantic-memory-store.d.mts +110 -0
  120. package/preset/odai/runtime/semantic-memory-store.d.mts.map +1 -0
  121. package/preset/odai/runtime/semantic-memory-store.mjs +271 -385
  122. package/preset/odai/runtime/semantic-memory-store.mjs.map +1 -0
  123. package/preset/odai/runtime/semantic-memory.d.mts +88 -0
  124. package/preset/odai/runtime/semantic-memory.d.mts.map +1 -0
  125. package/preset/odai/runtime/semantic-memory.mjs +790 -750
  126. package/preset/odai/runtime/semantic-memory.mjs.map +1 -0
  127. package/preset/odai/runtime/session-compat.d.mts +31 -0
  128. package/preset/odai/runtime/session-compat.d.mts.map +1 -0
  129. package/preset/odai/runtime/session-compat.mjs +301 -328
  130. package/preset/odai/runtime/session-compat.mjs.map +1 -0
  131. package/preset/odai/runtime/session-evidence.d.mts +25 -0
  132. package/preset/odai/runtime/session-evidence.d.mts.map +1 -0
  133. package/preset/odai/runtime/session-evidence.mjs +309 -287
  134. package/preset/odai/runtime/session-evidence.mjs.map +1 -0
  135. package/preset/odai/runtime/skill-bundle.d.mts +53 -0
  136. package/preset/odai/runtime/skill-bundle.d.mts.map +1 -0
  137. package/preset/odai/runtime/skill-bundle.mjs +286 -276
  138. package/preset/odai/runtime/skill-bundle.mjs.map +1 -0
  139. package/preset/odai/runtime/skill-evolution.d.mts +112 -0
  140. package/preset/odai/runtime/skill-evolution.d.mts.map +1 -0
  141. package/preset/odai/runtime/skill-evolution.mjs +1287 -1261
  142. package/preset/odai/runtime/skill-evolution.mjs.map +1 -0
  143. package/preset/odai/runtime/skill-selection-state.d.mts +5 -0
  144. package/preset/odai/runtime/skill-selection-state.d.mts.map +1 -0
  145. package/preset/odai/runtime/skill-selection-state.mjs +59 -43
  146. package/preset/odai/runtime/skill-selection-state.mjs.map +1 -0
  147. package/preset/odai/runtime/skill-selector.d.mts +28 -0
  148. package/preset/odai/runtime/skill-selector.d.mts.map +1 -0
  149. package/preset/odai/runtime/skill-selector.mjs +100 -109
  150. package/preset/odai/runtime/skill-selector.mjs.map +1 -0
  151. package/preset/odai/runtime/skill-source-config.d.mts +32 -0
  152. package/preset/odai/runtime/skill-source-config.d.mts.map +1 -0
  153. package/preset/odai/runtime/skill-source-config.mjs +200 -210
  154. package/preset/odai/runtime/skill-source-config.mjs.map +1 -0
  155. package/preset/odai/runtime/store-lock.d.mts +2 -0
  156. package/preset/odai/runtime/store-lock.d.mts.map +1 -0
  157. package/preset/odai/runtime/store-lock.mjs +92 -87
  158. package/preset/odai/runtime/store-lock.mjs.map +1 -0
  159. package/preset/odai/runtime/tool-runtime.d.mts +43 -0
  160. package/preset/odai/runtime/tool-runtime.d.mts.map +1 -0
  161. package/preset/odai/runtime/tool-runtime.mjs +221 -0
  162. package/preset/odai/runtime/tool-runtime.mjs.map +1 -0
  163. package/bin/odai-dsh-agent.mjs +0 -108
  164. package/scripts/verify-agent-load.mjs +0 -260
  165. package/src/dsh-version.mjs +0 -24
  166. package/src/installer.mjs +0 -385
@@ -0,0 +1,371 @@
1
+ import { randomUUID } from "node:crypto";
2
+ import { renderDelegationPrompt } from "./router.mjs";
3
+ import { CONFIGURABLE_ROLES } from "./routing-config.mjs";
4
+ import { ODAI_CONTEXTUAL_TOOL_NAMES, ODAI_CORE_TOOL_NAMES } from "./context-activation.mjs";
5
+ import { ROUTED_ROLES } from "./runtime-config.mjs";
6
+ function isUnknownRecord(value) {
7
+ return value !== null && typeof value === "object" && !Array.isArray(value);
8
+ }
9
+ export const RUNTIME_NAME = "odai-dsh-runtime";
10
+ export function deepFreeze(value) {
11
+ if (value === null || typeof value !== "object" || Object.isFrozen(value))
12
+ return value;
13
+ for (const child of Object.values(value))
14
+ deepFreeze(child);
15
+ return Object.freeze(value);
16
+ }
17
+ export function pluginMessage(text, summary, extraBlocks = []) {
18
+ return deepFreeze({
19
+ id: randomUUID(),
20
+ role: "user",
21
+ content: [{ type: "text", text }, ...extraBlocks],
22
+ source: {
23
+ kind: "plugin",
24
+ plugin: RUNTIME_NAME,
25
+ form: "notice",
26
+ summary: summary.length <= 120 ? summary : `${summary.slice(0, 119)}…`,
27
+ },
28
+ });
29
+ }
30
+ export function renderOutputLimitInterruptionNotice(interruption) {
31
+ const route = interruption.effectiveRoute ?? interruption.requestedRoute;
32
+ return [
33
+ "Odai verified output-limit interruption",
34
+ `responsibility: ${interruption.responsibility}`,
35
+ `interrupted scope: ${interruption.scopeId}`,
36
+ `provider finish reason: ${interruption.reason}`,
37
+ ...(route ? [`effective route: ${route.provider}/${route.model}`] : []),
38
+ ...(interruption.effectiveMaxTokens === undefined ? [] : [`effective maxTokens: ${interruption.effectiveMaxTokens}`]),
39
+ ...(interruption.outputTokens === undefined ? [] : [`observed outputTokens: ${interruption.outputTokens}`]),
40
+ "This proves the responsibility output was interrupted, not that its task completed. Explain the verified cause without guessing. Resume only after an explicit user continuation.",
41
+ ].join("\n");
42
+ }
43
+ export function loggerFor(ctx) {
44
+ if (typeof ctx.logger !== "function")
45
+ return { info() { }, warn() { } };
46
+ return ctx.logger(RUNTIME_NAME);
47
+ }
48
+ export function outputText(blocks) {
49
+ if (!Array.isArray(blocks))
50
+ return "";
51
+ return blocks
52
+ .filter((block) => isUnknownRecord(block) && block.type === "text" && typeof block.text === "string")
53
+ .map((block) => block.text ?? "")
54
+ .join("\n")
55
+ .trim();
56
+ }
57
+ export function renderResearchTaskContract(taskText) {
58
+ return [
59
+ "Decision-blocking factual question: Determine whether the user's causal claim is supported and which existing repository facts govern the safety of the requested high-impact change.",
60
+ "Allowed source scope: the current project root only. Use repository-relative paths and read-only source tools; do not inspect parent, sibling, user, or unrelated directories.",
61
+ "Authority and freshness: label each current-checkout source by its actual role (for example runtime configuration, implementation, test, incident record, or documentation). Do not invent an authority hierarchy; report unresolved conflicts and missing freshness evidence as unknowns.",
62
+ "Stop condition: return the smallest packet with 2-6 source-backed facts from at least two files, or stop with the missing evidence boundary. Do not select a route or continue after additional reading cannot change this factual question.",
63
+ "For every fact, excerpt must exactly equal the complete cited source line after trimming leading and trailing whitespace.",
64
+ "",
65
+ "Original user request:",
66
+ taskText,
67
+ ].join("\n");
68
+ }
69
+ export function roleAgentOptions(roleRoute) {
70
+ if (!roleRoute)
71
+ return undefined;
72
+ return {
73
+ provider: roleRoute.provider,
74
+ model: roleRoute.model,
75
+ ...(roleRoute.maxTokens === undefined ? {} : { maxTokens: roleRoute.maxTokens }),
76
+ };
77
+ }
78
+ export function sameRequestModelRoute(left, right) {
79
+ return Boolean(left && right
80
+ && left.provider === right.provider
81
+ && left.model === right.model
82
+ && left.reasoningEffort === right.reasoningEffort);
83
+ }
84
+ export function currentAgentStep(agent) {
85
+ const events = agent?.session?.events;
86
+ if (!Array.isArray(events))
87
+ return undefined;
88
+ for (let index = events.length - 1; index >= 0; index -= 1) {
89
+ if (events[index]?.type === "step/start" && Number.isSafeInteger(events[index].data?.step))
90
+ return events[index].data.step;
91
+ }
92
+ return undefined;
93
+ }
94
+ export function routeFromConfig(config) {
95
+ if (!isUnknownRecord(config) || typeof config.provider !== "string" || typeof config.model !== "string")
96
+ return undefined;
97
+ return Object.freeze({
98
+ provider: config.provider,
99
+ model: config.model,
100
+ ...(typeof config.reasoningEffort === "string" ? { reasoningEffort: config.reasoningEffort } : {}),
101
+ ...(typeof config.maxTokens === "number" ? { maxTokens: config.maxTokens } : {}),
102
+ });
103
+ }
104
+ export function latestRequestRoute(localAgent) {
105
+ const events = localAgent?.session?.events;
106
+ if (!Array.isArray(events))
107
+ return undefined;
108
+ for (let index = events.length - 1; index >= 0; index -= 1) {
109
+ const event = events[index];
110
+ if (event?.type !== "request/header")
111
+ continue;
112
+ const header = isUnknownRecord(event.data.header) ? event.data.header : undefined;
113
+ return routeFromConfig(header?.config);
114
+ }
115
+ return undefined;
116
+ }
117
+ export function routeMismatchFor(expected, actual, subject) {
118
+ if (!expected)
119
+ return undefined;
120
+ if (!actual)
121
+ return `${subject} request/header did not expose an actual model route`;
122
+ for (const field of ["provider", "model", "reasoningEffort", "maxTokens"]) {
123
+ if (expected[field] !== undefined && expected[field] !== actual[field]) {
124
+ return `${subject} ${field} mismatch: expected ${expected[field]}, got ${actual[field] ?? "<absent>"}`;
125
+ }
126
+ }
127
+ return undefined;
128
+ }
129
+ export function routeMismatch(expected, actual) {
130
+ return routeMismatchFor(expected, actual, "child");
131
+ }
132
+ export async function runRoutedRole({ subagents, provider, decision, taskText, roleContract, agent, signal, roleRoute, }) {
133
+ let run;
134
+ let outcome;
135
+ try {
136
+ run = await subagents.start(provider, {
137
+ label: `odai-${decision.role}`,
138
+ prompt: [{ type: "text", text: renderDelegationPrompt(decision, taskText, roleContract) }],
139
+ parent: agent,
140
+ signal,
141
+ maxDepth: 1,
142
+ ...(roleRoute ? { agentOptions: roleAgentOptions(roleRoute) } : {}),
143
+ });
144
+ const result = await run.result;
145
+ const actualRoute = latestRequestRoute(run.localAgent);
146
+ const mismatch = routeMismatch(roleRoute, actualRoute);
147
+ const routeReceiptStatus = !actualRoute ? "unverified" : mismatch ? "mismatch" : "applied";
148
+ const routeEvidence = Object.freeze({
149
+ routeReceiptStatus,
150
+ ...(mismatch ? { routeReceiptError: mismatch } : {}),
151
+ ...(actualRoute ? { actualRoute } : {}),
152
+ });
153
+ if (result.stopReason !== "completed") {
154
+ outcome = Object.freeze({
155
+ status: "fallback",
156
+ stopReason: result.stopReason,
157
+ output: result.output ?? [],
158
+ ...routeEvidence,
159
+ });
160
+ }
161
+ else if (mismatch) {
162
+ outcome = Object.freeze({
163
+ status: "fallback",
164
+ stopReason: "route-unverified",
165
+ output: [],
166
+ error: mismatch,
167
+ ...routeEvidence,
168
+ });
169
+ }
170
+ else if (!outputText(result.output)) {
171
+ outcome = Object.freeze({
172
+ status: "fallback",
173
+ stopReason: "route-empty-output",
174
+ output: [],
175
+ error: "child completed without textual evidence",
176
+ taskError: "child completed without textual evidence",
177
+ ...routeEvidence,
178
+ });
179
+ }
180
+ else {
181
+ outcome = Object.freeze({
182
+ status: "completed",
183
+ stopReason: result.stopReason,
184
+ output: result.output ?? [],
185
+ ...routeEvidence,
186
+ });
187
+ }
188
+ }
189
+ catch (error) {
190
+ const taskError = error instanceof Error ? error.message : String(error);
191
+ outcome = Object.freeze({
192
+ status: "fallback",
193
+ stopReason: "infrastructure-error",
194
+ output: [],
195
+ routeReceiptStatus: "unverified",
196
+ error: taskError,
197
+ taskError,
198
+ });
199
+ }
200
+ if (run) {
201
+ try {
202
+ await run.dispose();
203
+ }
204
+ catch (error) {
205
+ const disposeError = error instanceof Error ? error.message : String(error);
206
+ const cleanupTaskError = outcome?.taskError
207
+ ? `${outcome.taskError}; provider cleanup failed: ${disposeError}`
208
+ : `provider cleanup failed: ${disposeError}`;
209
+ return Object.freeze({
210
+ status: "fallback",
211
+ stopReason: "infrastructure-error",
212
+ output: [],
213
+ routeReceiptStatus: outcome?.routeReceiptStatus ?? "unverified",
214
+ ...(outcome?.routeReceiptError ? { routeReceiptError: outcome.routeReceiptError } : {}),
215
+ ...(outcome?.actualRoute ? { actualRoute: outcome.actualRoute } : {}),
216
+ error: outcome?.error
217
+ ? `${outcome.error}; provider cleanup failed: ${disposeError}`
218
+ : cleanupTaskError,
219
+ taskError: cleanupTaskError,
220
+ });
221
+ }
222
+ }
223
+ return outcome;
224
+ }
225
+ export function canonicalPrompt(selection) {
226
+ const { bundle } = selection;
227
+ const fallback = selection.status === "fallback"
228
+ ? `Selection fallback: ${selection.reasonCode}${selection.detail ? ` (${selection.detail})` : ""}.`
229
+ : undefined;
230
+ const evolution = selection.evolution?.status === "active"
231
+ ? `User evolution: generation ${selection.evolution.generationId}; base digest ${selection.evolution.baseDigest}; current upstream digest ${selection.evolution.upstreamDigest}; rebase required: ${String(selection.evolution.rebaseRequired)}.`
232
+ : undefined;
233
+ return [
234
+ "## odai canonical governance",
235
+ `Canonical source: ${bundle.source} (${bundle.provider})`,
236
+ `Canonical skill: ${bundle.manifest.skillVersion}; runtime contract: ${bundle.manifest.runtimeContract}; digest: ${bundle.digest}.`,
237
+ ...(evolution ? [evolution] : []),
238
+ ...(fallback ? [fallback] : []),
239
+ "Apply this governance to every request. Keep the controller as the final delivery owner; use another role only for a real independent gap with observable net benefit.",
240
+ "Odai governance is already loaded by this runtime; do not call the skill tool or read SKILL.md to load odai again.",
241
+ "",
242
+ bundle.skillText,
243
+ ].join("\n");
244
+ }
245
+ export function renderEffectiveRoutingContext(snapshotState) {
246
+ if (snapshotState.error || !snapshotState.snapshot) {
247
+ return [
248
+ "Current effective responsibility mappings: unavailable because the saved routing configuration is invalid.",
249
+ `Configuration error: ${snapshotState.detail}`,
250
+ "Use odai_routing_config only when the user asks to inspect or repair it; do not infer any route.",
251
+ ].join("\n");
252
+ }
253
+ const snapshot = snapshotState.snapshot;
254
+ const mappings = CONFIGURABLE_ROLES.flatMap((role) => {
255
+ const route = snapshot.roles[role];
256
+ if (!route)
257
+ return [];
258
+ const options = [
259
+ ...(route.reasoningEffort ? [`reasoningEffort=${route.reasoningEffort}`] : []),
260
+ ...(route.maxTokens ? [`maxTokens=${route.maxTokens}`] : []),
261
+ ];
262
+ return [`${role}=${route.provider}/${route.model}${options.length > 0 ? ` (${options.join(", ")})` : ""} [${snapshot.sources[role]}]`];
263
+ });
264
+ return [
265
+ `Current effective responsibility mappings (runtime-owned; supersedes conversation summaries): ${mappings.join("; ") || "none"}.`,
266
+ "These are route targets, not evidence that a responsibility ran. Only an actual route receipt proves use; a generic subagent does not.",
267
+ ].join("\n");
268
+ }
269
+ export function latestRouteReceipt(events) {
270
+ for (let index = events.length - 1; index >= 0; index -= 1) {
271
+ const event = events[index];
272
+ const data = event?.data;
273
+ if (!data?.routeSource || !Number.isSafeInteger(data.turn) || !Number.isSafeInteger(data.step))
274
+ continue;
275
+ if (event.type === "odai/route-fallback") {
276
+ return Object.freeze({
277
+ turn: data.turn,
278
+ step: data.step,
279
+ responsibility: data.responsibility,
280
+ ...(data.responsibilityScopeId ? { responsibilityScopeId: data.responsibilityScopeId } : {}),
281
+ ...(data.routeCardId ? { routeCardId: data.routeCardId } : {}),
282
+ status: "fallback",
283
+ taskStatus: "fallback",
284
+ routeMode: data.routeMode,
285
+ routeSource: data.routeSource,
286
+ fallbackUsed: true,
287
+ requestedRoute: data.requestedRoute,
288
+ ...(data.fallbackRoute ? { actualRoute: data.fallbackRoute } : {}),
289
+ ...(data.error ? { error: data.error } : {}),
290
+ });
291
+ }
292
+ if (event.type === "odai/route-applied") {
293
+ return Object.freeze({
294
+ turn: data.turn,
295
+ step: data.step,
296
+ responsibility: data.responsibility,
297
+ ...(data.responsibilityScopeId ? { responsibilityScopeId: data.responsibilityScopeId } : {}),
298
+ ...(data.routeCardId ? { routeCardId: data.routeCardId } : {}),
299
+ status: data.status,
300
+ routeMode: data.routeMode,
301
+ routeSource: data.routeSource,
302
+ fallbackUsed: data.fallbackUsed,
303
+ requestedRoute: data.requestedRoute,
304
+ ...(data.actualRoute ? { actualRoute: data.actualRoute } : {}),
305
+ ...(data.stopReason ? { stopReason: data.stopReason } : {}),
306
+ ...(data.error ? { error: data.error } : {}),
307
+ });
308
+ }
309
+ if (["odai/route-result", "odai/research-result"].includes(event.type)) {
310
+ const routeReceiptStatus = data.routeReceiptStatus ?? "unverified";
311
+ return Object.freeze({
312
+ turn: data.turn,
313
+ step: data.step,
314
+ responsibility: data.role,
315
+ status: routeReceiptStatus,
316
+ taskStatus: data.status,
317
+ routeMode: "child",
318
+ routeSource: data.routeSource,
319
+ fallbackUsed: routeReceiptStatus !== "applied",
320
+ requestedRoute: data.requestedRoute,
321
+ ...(data.actualRoute ? { actualRoute: data.actualRoute } : {}),
322
+ ...(data.routeReceiptError ? { error: data.routeReceiptError } : {}),
323
+ ...(data.stopReason ? { taskStopReason: data.stopReason } : {}),
324
+ ...(data.error ? { taskError: data.error } : {}),
325
+ });
326
+ }
327
+ }
328
+ return undefined;
329
+ }
330
+ export function isSubagentSession(agent) {
331
+ const header = agent.session?.header;
332
+ return header?.origin === "subagent"
333
+ || (Number.isSafeInteger(header?.delegationDepth) && (header.delegationDepth ?? 0) > 0);
334
+ }
335
+ export function routedRoleOf(agent) {
336
+ const events = agent?.session?.events;
337
+ if (!Array.isArray(events))
338
+ return undefined;
339
+ for (let index = events.length - 1; index >= 0; index -= 1) {
340
+ const event = events[index];
341
+ if (event?.type !== "subagent/descriptor")
342
+ continue;
343
+ const label = event.data?.label;
344
+ if (typeof label !== "string")
345
+ return undefined;
346
+ const match = /^odai-(researcher|planner|executor|reviewer|frontend)(?:$|[\s:])/u.exec(label.trim());
347
+ return match && ROUTED_ROLES.includes(match[1]) ? match[1] : undefined;
348
+ }
349
+ return undefined;
350
+ }
351
+ const ODAI_ADAPTIVE_TOOL_NAMES = new Set([...ODAI_CONTEXTUAL_TOOL_NAMES, ...ODAI_CORE_TOOL_NAMES]);
352
+ export function reconcileAdaptiveToolSchemas(assembly, activeNames, executableSchemas = []) {
353
+ if (!assembly || !Array.isArray(assembly.tools))
354
+ return assembly;
355
+ const active = new Set(activeNames);
356
+ const executableByName = new Map((Array.isArray(executableSchemas) ? executableSchemas : [])
357
+ .filter((tool) => active.has(tool?.name))
358
+ .map((tool) => [tool.name, tool]));
359
+ const tools = assembly.tools.filter((tool) => !ODAI_ADAPTIVE_TOOL_NAMES.has(tool?.name)
360
+ || (active.has(tool.name) && executableByName.has(tool.name)));
361
+ const present = new Set(tools.map((tool) => tool?.name));
362
+ const missing = activeNames
363
+ .filter((name) => !present.has(name) && executableByName.has(name))
364
+ .map((name) => executableByName.get(name));
365
+ if (missing.length > 0) {
366
+ const lastAdaptiveIndex = tools.reduce((last, tool, index) => ODAI_ADAPTIVE_TOOL_NAMES.has(tool?.name) ? index : last, -1);
367
+ tools.splice(lastAdaptiveIndex < 0 ? tools.length : lastAdaptiveIndex + 1, 0, ...missing);
368
+ }
369
+ return tools.length === assembly.tools.length && missing.length === 0 ? assembly : { ...assembly, tools };
370
+ }
371
+ //# sourceMappingURL=runtime-support.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime-support.mjs","sourceRoot":"","sources":["../src/runtime-support.mts"],"names":[],"mappings":"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"}
@@ -0,0 +1,237 @@
1
+ export type UnknownRecord = Record<string, unknown>;
2
+ export declare function isUnknownRecord(value: unknown): value is UnknownRecord;
3
+ export interface ModelRoute extends UnknownRecord {
4
+ provider: string;
5
+ model: string;
6
+ reasoningEffort?: string;
7
+ maxTokens?: number;
8
+ }
9
+ export interface DshContentBlock extends UnknownRecord {
10
+ type: string;
11
+ text?: string;
12
+ }
13
+ export interface DshMessageSource extends UnknownRecord {
14
+ kind: string;
15
+ plugin?: string;
16
+ form?: string;
17
+ summary?: string;
18
+ }
19
+ export interface DshMessage extends UnknownRecord {
20
+ id?: string;
21
+ role?: string;
22
+ content?: readonly DshContentBlock[];
23
+ source?: DshMessageSource;
24
+ }
25
+ export interface RuntimeEventData extends UnknownRecord {
26
+ turn?: number;
27
+ step?: number;
28
+ id?: string;
29
+ callId?: string;
30
+ rootCallId?: string;
31
+ name?: string;
32
+ tool?: string;
33
+ arguments?: unknown;
34
+ sourceEventSeqs?: readonly number[];
35
+ isError?: boolean;
36
+ error?: unknown;
37
+ role?: string;
38
+ content?: readonly DshContentBlock[];
39
+ message?: DshMessage;
40
+ inserted?: readonly DshMessage[];
41
+ source?: UnknownRecord | string;
42
+ capability?: string;
43
+ responsibility?: string;
44
+ stateDigest?: string;
45
+ digest?: string;
46
+ evidenceDigest?: string;
47
+ diagnostics?: UnknownRecord;
48
+ continuationPolicy?: string;
49
+ scopeId?: string;
50
+ responsibilityScopeId?: string;
51
+ actualRoute?: ModelRoute;
52
+ chunk?: {
53
+ type?: string;
54
+ usage?: {
55
+ outputTokens?: number;
56
+ };
57
+ };
58
+ usage?: {
59
+ outputTokens?: number;
60
+ };
61
+ reason?: {
62
+ kind?: string;
63
+ } | string;
64
+ reasonCode?: string;
65
+ action?: string;
66
+ targetRole?: string;
67
+ label?: string;
68
+ signals?: readonly string[];
69
+ mismatchReasons?: readonly string[];
70
+ activeTools?: readonly string[];
71
+ mode?: string;
72
+ status?: string;
73
+ stopReason?: string;
74
+ fallbackUsed?: boolean;
75
+ independent?: boolean;
76
+ budgetSource?: string;
77
+ startStep?: number;
78
+ stopStep?: number;
79
+ requestedRoute?: ModelRoute;
80
+ effectiveRoute?: ModelRoute;
81
+ effectiveMaxTokens?: number;
82
+ responsibilityMaxTokens?: number;
83
+ configuredControllerMaxTokens?: number;
84
+ outputTokens?: number;
85
+ baseRoute?: ModelRoute;
86
+ temporaryRoute?: ModelRoute;
87
+ routeMode?: string;
88
+ routeSource?: string;
89
+ resumeOfScopeId?: string;
90
+ resumedScopeId?: string;
91
+ routeCardId?: string;
92
+ header?: {
93
+ config?: ModelRoute;
94
+ };
95
+ cardId?: string;
96
+ card?: UnknownRecord;
97
+ routeCard?: UnknownRecord;
98
+ receiptStatus?: string;
99
+ }
100
+ export interface DshEvent extends UnknownRecord {
101
+ type: string;
102
+ seq?: number;
103
+ data: RuntimeEventData;
104
+ }
105
+ export interface DshSessionHeader extends UnknownRecord {
106
+ id?: string;
107
+ cwd?: string;
108
+ origin?: string;
109
+ delegationDepth?: number;
110
+ }
111
+ export interface DshSession {
112
+ header: DshSessionHeader;
113
+ events: DshEvent[];
114
+ append(type: string, data: RuntimeEventData, options?: UnknownRecord): unknown;
115
+ requestHeader?(): {
116
+ config?: ModelRoute;
117
+ };
118
+ }
119
+ export interface ToolRestriction {
120
+ deny?: readonly string[];
121
+ allow?: readonly string[];
122
+ }
123
+ export interface DshAgent {
124
+ session: DshSession;
125
+ phase?: {
126
+ turn?: number;
127
+ step?: number;
128
+ };
129
+ options?: UnknownRecord;
130
+ ctx?: {
131
+ tools?: {
132
+ restrict(restriction: ToolRestriction): (() => void) | void;
133
+ };
134
+ };
135
+ }
136
+ export interface ToolSchema extends UnknownRecord {
137
+ name: string;
138
+ description?: string;
139
+ parameters?: UnknownRecord;
140
+ }
141
+ export interface PromptSection extends UnknownRecord {
142
+ name: string;
143
+ order?: number;
144
+ text: string;
145
+ }
146
+ export interface PromptAssembly extends UnknownRecord {
147
+ sections: PromptSection[];
148
+ tools: ToolSchema[];
149
+ }
150
+ export interface ToolExecution extends UnknownRecord {
151
+ callId?: string;
152
+ rootCallId?: string;
153
+ name: string;
154
+ agent?: DshAgent;
155
+ signal?: AbortSignal;
156
+ }
157
+ export interface ToolResult extends UnknownRecord {
158
+ isError?: boolean;
159
+ error?: {
160
+ message?: string;
161
+ code?: string;
162
+ };
163
+ output?: readonly DshContentBlock[];
164
+ }
165
+ export interface RuntimeTool<TArguments, TResult> extends ToolSchema {
166
+ output?: {
167
+ schema: UnknownRecord;
168
+ render(arguments_: TArguments, value: TResult): readonly DshContentBlock[];
169
+ };
170
+ execute(arguments_: TArguments, execution: ToolExecution): TResult | Promise<TResult>;
171
+ }
172
+ export interface RuntimeLogger {
173
+ info(message: string): void;
174
+ warn(message: string): void;
175
+ }
176
+ export interface DshToolsService {
177
+ register(tool: unknown): void;
178
+ guard?(guard: (execution: ToolExecution) => unknown): void;
179
+ restrict?(agent: DshAgent, restriction: ToolRestriction): (() => void) | void;
180
+ schemas?(agent?: DshAgent): ToolSchema[];
181
+ get?(name: string): unknown;
182
+ execute?(execution: ToolExecution & {
183
+ arguments?: UnknownRecord;
184
+ }): Promise<ToolResult>;
185
+ }
186
+ export interface SkillRegistry {
187
+ get(...args: unknown[]): unknown;
188
+ }
189
+ export interface DshLlmService {
190
+ resolveCallConfig(config: UnknownRecord, signal?: AbortSignal): unknown;
191
+ stream(options: UnknownRecord): AsyncIterable<UnknownRecord>;
192
+ }
193
+ export interface DshSessionsService {
194
+ get(sessionId: string): DshSession | undefined;
195
+ }
196
+ export interface DshRuntimeContext {
197
+ on(event: string, handler: CallableFunction, options?: UnknownRecord): void;
198
+ logger?(name: string): RuntimeLogger;
199
+ tools: DshToolsService;
200
+ systemPrompt: {
201
+ section(section: PromptSection): void;
202
+ };
203
+ llm: DshLlmService;
204
+ sessions?: DshSessionsService;
205
+ subagents?: unknown;
206
+ skills?: SkillRegistry;
207
+ get?(name: string): unknown;
208
+ }
209
+ export interface RuntimeConfig {
210
+ skillPath?: string;
211
+ routing: {
212
+ mode: "off" | "observe" | "auto" | "execute";
213
+ provider: string;
214
+ maxInputChars: number;
215
+ configPath: string;
216
+ roles: Readonly<Record<string, ModelRoute | undefined>>;
217
+ };
218
+ governance: {
219
+ additionalDeniedTools: readonly string[];
220
+ skillSource: "bundled" | "auto" | "user";
221
+ skillConfigPath: string;
222
+ evolutionRoot: string;
223
+ };
224
+ output: {
225
+ configPath: string;
226
+ };
227
+ compaction: {
228
+ configPath: string;
229
+ cacheRetention: "provider-default" | "short" | "long" | "none";
230
+ };
231
+ memory: {
232
+ mode: "auto" | "off";
233
+ storePath: string;
234
+ maxRetrieved: number;
235
+ };
236
+ }
237
+ //# sourceMappingURL=runtime-types.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime-types.d.mts","sourceRoot":"","sources":["../src/runtime-types.mts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ export function isUnknownRecord(value) {
2
+ return value !== null && typeof value === "object" && !Array.isArray(value);
3
+ }
4
+ //# sourceMappingURL=runtime-types.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime-types.mjs","sourceRoot":"","sources":["../src/runtime-types.mts"],"names":[],"mappings":"AAEA,MAAM,UAAU,eAAe,CAAC,KAAc;IAC5C,OAAO,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAC9E,CAAC"}