odai-dsh-agent 0.2.39 → 0.2.51
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/README.md +13 -11
- package/build/src/control-center-installer.d.mts.map +1 -1
- package/build/src/control-center-installer.mjs +5 -0
- package/build/src/control-center-installer.mjs.map +1 -1
- package/build/src/installer.d.mts.map +1 -1
- package/build/src/installer.mjs +1 -1
- package/build/src/installer.mjs.map +1 -1
- package/client/client.js +27 -6
- package/package.json +1 -1
- package/preset/odai/package.json +2 -1
- package/preset/odai/runtime/compaction-config.d.mts +2 -2
- package/preset/odai/runtime/compaction-config.d.mts.map +1 -1
- package/preset/odai/runtime/context-activation.mjs +1 -1
- package/preset/odai/runtime/context-activation.mjs.map +1 -1
- package/preset/odai/runtime/index.mjs +1 -1
- package/preset/odai/runtime/index.mjs.map +1 -1
- package/preset/odai/runtime/lifecycle-runtime.d.mts.map +1 -1
- package/preset/odai/runtime/lifecycle-runtime.mjs +25 -4
- package/preset/odai/runtime/lifecycle-runtime.mjs.map +1 -1
- package/preset/odai/runtime/model-route.d.mts +5 -0
- package/preset/odai/runtime/model-route.d.mts.map +1 -1
- package/preset/odai/runtime/model-route.mjs +21 -2
- package/preset/odai/runtime/model-route.mjs.map +1 -1
- package/preset/odai/runtime/output-config.d.mts.map +1 -1
- package/preset/odai/runtime/output-config.mjs +2 -1
- package/preset/odai/runtime/output-config.mjs.map +1 -1
- package/preset/odai/runtime/role-overlays.d.mts +1 -1
- package/preset/odai/runtime/role-overlays.d.mts.map +1 -1
- package/preset/odai/runtime/role-overlays.mjs +4 -1
- package/preset/odai/runtime/role-overlays.mjs.map +1 -1
- package/preset/odai/runtime/router.d.mts +5 -1
- package/preset/odai/runtime/router.d.mts.map +1 -1
- package/preset/odai/runtime/router.mjs +47 -2
- package/preset/odai/runtime/router.mjs.map +1 -1
- package/preset/odai/runtime/routing-config.d.mts +5 -2
- package/preset/odai/runtime/routing-config.d.mts.map +1 -1
- package/preset/odai/runtime/routing-config.mjs +87 -42
- package/preset/odai/runtime/routing-config.mjs.map +1 -1
- package/preset/odai/runtime/runtime-config.d.mts +1 -1
- package/preset/odai/runtime/runtime-config.d.mts.map +1 -1
- package/preset/odai/runtime/runtime-config.mjs +15 -9
- package/preset/odai/runtime/runtime-config.mjs.map +1 -1
- package/preset/odai/runtime/runtime-support.d.mts +6 -1
- package/preset/odai/runtime/runtime-support.d.mts.map +1 -1
- package/preset/odai/runtime/runtime-support.mjs +90 -7
- package/preset/odai/runtime/runtime-support.mjs.map +1 -1
- package/preset/odai/runtime/runtime-types.d.mts +8 -1
- package/preset/odai/runtime/runtime-types.d.mts.map +1 -1
- package/preset/odai/runtime/runtime-types.mjs.map +1 -1
- package/preset/odai/runtime/skill-bundle.d.mts +1 -1
- package/preset/odai/runtime/skill-bundle.d.mts.map +1 -1
- package/preset/odai/runtime/work-policy.d.mts.map +1 -1
- package/preset/odai/runtime/work-policy.mjs +8 -2
- package/preset/odai/runtime/work-policy.mjs.map +1 -1
- package/preset/odai/skills/odai-orchestration/SKILL.md +1 -1
- package/preset/odai/skills/odai-orchestration/assets/codex-agents/role.toml +1 -0
- package/preset/odai/skills/odai-orchestration/assets/routing-roles/controller.md +1 -1
- package/preset/odai/skills/odai-orchestration/assets/routing-roles/creative.md +9 -0
- package/preset/odai/skills/odai-orchestration/manifest.json +9 -4
- package/preset/odai/skills/odai-orchestration/references/install.md +31 -1
- package/preset/odai/skills/odai-orchestration/references/orchestration.md +1 -0
- package/preset/odai/skills/odai-orchestration/scripts/build-routing.mjs +78 -17
- package/preset/odai/skills/odai-orchestration/scripts/compose-contracts.d.mts +1 -1
- package/preset/odai/skills/odai-orchestration/scripts/compose-contracts.mjs +2 -2
- package/preset/odai/skills/odai-orchestration/scripts/install-routing.mjs +101 -23
- package/preset/odai/skills/odai-orchestration/scripts/local-cli.d.mts +75 -0
- package/preset/odai/skills/odai-orchestration/scripts/local-cli.mjs +409 -0
- package/preset/odai/skills/odai-orchestration/scripts/run-role.mjs +190 -92
- package/preset/odai/skills/odai-orchestration/scripts/verify-routing.mjs +3 -3
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { DshEvent, DshMessage, ModelRoute } from "./runtime-types.mjs";
|
|
2
|
-
export type OdaiRouteRole = "controller" | "researcher" | "planner" | "reviewer" | "frontend";
|
|
2
|
+
export type OdaiRouteRole = "controller" | "researcher" | "planner" | "reviewer" | "frontend" | "creative";
|
|
3
3
|
export type OdaiRouteAction = "direct" | "delegate" | "upgrade";
|
|
4
4
|
export interface RouteConsideration {
|
|
5
5
|
readonly role: string;
|
|
@@ -30,6 +30,10 @@ export interface ResponsibilityInterruptionState {
|
|
|
30
30
|
}
|
|
31
31
|
export interface RouteDecisionInput {
|
|
32
32
|
readonly text?: string;
|
|
33
|
+
/** Creative lexical routing is opt-in through an effective mapping. */
|
|
34
|
+
readonly creativeConfigured?: boolean;
|
|
35
|
+
/** Authenticated current user text, excluding appended earlier task context. */
|
|
36
|
+
readonly creativeText?: string;
|
|
33
37
|
readonly proposal?: ResponsibilityGapState;
|
|
34
38
|
readonly interruption?: ResponsibilityInterruptionState;
|
|
35
39
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"router.d.mts","sourceRoot":"","sources":["../src/router.mts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"router.d.mts","sourceRoot":"","sources":["../src/router.mts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { describeModelRoute } from "./model-route.mjs";
|
|
1
2
|
import { isUnknownRecord } from "./runtime-types.mjs";
|
|
2
3
|
function isContinuationRole(value) {
|
|
3
4
|
return value === "planner" || value === "frontend";
|
|
@@ -180,6 +181,42 @@ function hasHighImpactEvidenceGap(text) {
|
|
|
180
181
|
function isLowRiskTransform(text) {
|
|
181
182
|
return matchesAny(stripQuotedMaterial(text), LOW_RISK_TRANSFORM_PATTERNS);
|
|
182
183
|
}
|
|
184
|
+
function hasCreativeRequest(text) {
|
|
185
|
+
// Match adjacent noun phrases, not arbitrary text between a verb and a topic.
|
|
186
|
+
// Engineering/data work vetoes lexical routing for its entire short clause.
|
|
187
|
+
// Domain-neutral: ideation, reader-facing writing and voice, visual direction, and taste review.
|
|
188
|
+
// Game terms are one domain among others, not the scope.
|
|
189
|
+
const englishObjects = "copywriting|copy|taglines?|slogans?|headlines?|dialogues?|narratives?|stor(?:y|ies)|lore|tone of voice|brand voice|naming|names|name ideas|art direction|visual direction|level design|game design|store page|balance|cover letter|resume|bio";
|
|
190
|
+
const objects = new RegExp(`(?:(?:产品|项目|公司|品牌|个人|自我)?(?:介绍|简介)|文案|文字|措辞|文风|语气|调性|标语|口号|宣传语|广告语|简历|求职信|演讲稿|发言稿|故事|剧情|对白|台词|旁白|创意|点子|脑洞|品牌名|产品名|名字|名称|视觉方向|美术方向|画风|世界观|人设|角色设定|玩法|关卡设计|数值平衡|商店页|套话|翻译腔|机器味|AI\\s*[味腔])+|\\b(?:${englishObjects})(?:\\s+(?:${englishObjects}))*\\b`, "giu");
|
|
191
|
+
const engineering = /代码|逻辑|系统|测试|脚本|实现|报错|加载|性能|存档|数据|数据库|配置|模块|组件|接口|函数|变量|常量|字段|文件|表|列|键|类|方法|结构|渲染|解析|导入|导出|格式|编码|缓存|复杂度|提交|日志|部署|构建|编译|依赖|迁移|\b(?:code|tests?|logic|systems?|scripts?|bugs?|load|loading|performance|data|database|config|modules?|components?|interfaces?|functions?|variables?|constants?|fields?|files?|tables?|columns?|keys?|classes|class|methods?|parsers?|renderers?|import|export|cache|sheets?|pr|commits?|id|api|sql|logs?|deploy|build|compile|dependenc(?:y|ies)|migrations?)\b/iu;
|
|
192
|
+
const verbs = "改写|重写|润色|改改|改一改|起名|取名|起|取|想想|想|构思|发散|脑暴|头脑风暴|拟|审查|审|把关|评估|优化|写";
|
|
193
|
+
const fillers = "一下|下|一遍|这段|那段|这个|那个|这份|那份|这些|那些|这篇|那篇|一篇|一段|一份|一些|一句|一条|几个|个|我的|[一二三四五六七八九十\\d]+[版个条]|第[一二三四五六七八九十\\d]+章的|的|\\s";
|
|
194
|
+
const actionBefore = new RegExp(`(?:${verbs})(?:${fillers}){0,5}$|\\b(?:write|rewrite|polish|draft|review|name|brainstorm|come up with|suggest|improve)\\s+(?:(?:the|this|that|these|a|an|some|our|my)\\s+){0,2}$`, "iu");
|
|
195
|
+
const actionAfter = /^(?:的|你|请|帮我|给我|再|\s){0,4}(?:改写|重写|润色|改改|改一改|起名|取名|想想|构思|发散|脑暴|头脑风暴|拟|审查|审|把关|评估|优化|写(?!进|到|入|在))/u;
|
|
196
|
+
// "这段话 AI 味太重,帮我改改": a complaint about creative content followed by a bare fix request.
|
|
197
|
+
const complaint = /太|不够|有点|过于|生硬|啰嗦|别扭|尴尬|平淡|空洞|干巴|不像|不自然|AI\s*[味腔]|套话|翻译腔|机器味/u;
|
|
198
|
+
const bareAction = /^(?:\s|请|帮我|给我|麻烦|再|你)*(?:改写|重写|润色|改改|改一改|优化|把关|审查|审)(?:一下|一遍|下)?(?:吧|呗)?\s*$/u;
|
|
199
|
+
let complainedObject = false;
|
|
200
|
+
for (const clause of text.split(/[,,。.!!??;;::\n\r]/u)) {
|
|
201
|
+
const vetoed = engineering.test(clause);
|
|
202
|
+
if (!vetoed && complainedObject && bareAction.test(clause))
|
|
203
|
+
return true;
|
|
204
|
+
complainedObject = false;
|
|
205
|
+
if (vetoed)
|
|
206
|
+
continue;
|
|
207
|
+
for (const match of clause.matchAll(objects)) {
|
|
208
|
+
const before = clause.slice(0, match.index);
|
|
209
|
+
const after = clause.slice(match.index + match[0].length);
|
|
210
|
+
if (/\bcopy$/iu.test(match[0]) && /^\s+of\b/iu.test(after))
|
|
211
|
+
continue;
|
|
212
|
+
if (actionBefore.test(before) || actionAfter.test(after))
|
|
213
|
+
return true;
|
|
214
|
+
if (complaint.test(clause))
|
|
215
|
+
complainedObject = true;
|
|
216
|
+
}
|
|
217
|
+
}
|
|
218
|
+
return false;
|
|
219
|
+
}
|
|
183
220
|
function frontendSpecializationSignals(text) {
|
|
184
221
|
const explicit = matchesAny(text, FRONTEND_EXPLICIT_SPECIALIST_PATTERNS);
|
|
185
222
|
const surfaceCount = FRONTEND_SURFACE_PATTERNS.filter((pattern) => pattern.test(text)).length;
|
|
@@ -318,6 +355,10 @@ export function decideRoute(input = {}) {
|
|
|
318
355
|
signals.push("evidence-grounded-responsibility-gap", `state:${proposal.stateDigest}`);
|
|
319
356
|
return route("controller", "FRONTEND_EVIDENCE_STATE_GAP", proposal.gap, signals, "upgrade", "frontend");
|
|
320
357
|
}
|
|
358
|
+
if (input.creativeConfigured && proposal?.responsibility === "creative") {
|
|
359
|
+
signals.push("evidence-grounded-responsibility-gap", `state:${proposal.stateDigest}`);
|
|
360
|
+
return route("creative", "CREATIVE_EVIDENCE_STATE_GAP", proposal.gap, signals);
|
|
361
|
+
}
|
|
321
362
|
if (matchesAny(explicitIntentText, REVIEWER_PATTERNS)) {
|
|
322
363
|
signals.push("review-language-present");
|
|
323
364
|
considerations.push(Object.freeze({
|
|
@@ -359,6 +400,10 @@ export function decideRoute(input = {}) {
|
|
|
359
400
|
&& !matchesAny(explicitIntentText, NON_IMPLEMENTATION_QUERY_PATTERNS)) {
|
|
360
401
|
return route("controller", "HIGH_IMPACT_EVIDENCE_REQUIRED", "The requested high-impact change relies on an unverified causal claim. Verify the evidence and authorization; risk alone does not establish an independent capability gap.", signals);
|
|
361
402
|
}
|
|
403
|
+
if (input.creativeConfigured && !proposal
|
|
404
|
+
&& hasCreativeRequest(stripQuotedMaterial(input.creativeText ?? text))) {
|
|
405
|
+
return route("creative", "CREATIVE_CONTENT_REQUEST", "The user requested creative production or review through an adjacent action and creative object.", [...signals, "creative-content-request"]);
|
|
406
|
+
}
|
|
362
407
|
const frontendSignals = frontend.scope || frontend.explicit ? frontendRouteSignals(frontend) : [];
|
|
363
408
|
signals.push(...frontendSignals, "no-independent-gap");
|
|
364
409
|
const direct = route("controller", "DIRECT_DEFAULT_NO_INDEPENDENT_GAP", "No evidence-grounded independent decision, execution, or acceptance gap was found.", signals);
|
|
@@ -434,7 +479,7 @@ function observeProtocol(_decision) {
|
|
|
434
479
|
}
|
|
435
480
|
export function renderRouteNotice(decision, runtimeMode, actualRoute, dispatch) {
|
|
436
481
|
const routeRole = decision.targetRole ?? decision.role;
|
|
437
|
-
const isUpgrade = dispatch
|
|
482
|
+
const isUpgrade = actualRoute?.backend === "local-cli" ? false : dispatch
|
|
438
483
|
? dispatch === "same-turn"
|
|
439
484
|
: decision.action === "upgrade"
|
|
440
485
|
&& (runtimeMode === "auto" || ["frontend"].includes(routeRole));
|
|
@@ -444,7 +489,7 @@ export function renderRouteNotice(decision, runtimeMode, actualRoute, dispatch)
|
|
|
444
489
|
? `The ${routeRole} gap was selected in observe mode; do not start a child automatically.`
|
|
445
490
|
: `The ${routeRole} route was selected and executed as an independent child.`;
|
|
446
491
|
const routeIdentity = actualRoute
|
|
447
|
-
? [`${isUpgrade ? "requested controller route" : "verified child route"}: ${actualRoute
|
|
492
|
+
? [`${isUpgrade ? "requested controller route" : "verified child route"}: ${describeModelRoute(actualRoute, { style: "notice", defaultMaxTokens: isUpgrade ? "inherited from Controller policy" : "provider default" })}`]
|
|
448
493
|
: [];
|
|
449
494
|
return [
|
|
450
495
|
"odai automatic routing decision",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"router.mjs","sourceRoot":"","sources":["../src/router.mts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"router.mjs","sourceRoot":"","sources":["../src/router.mts"],"names":[],"mappings":"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"}
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import { type ResolveCallConfig } from "./model-route.mjs";
|
|
2
2
|
import { type OutputPolicy, type ResponsibilityOutputBudgets } from "./output-config.mjs";
|
|
3
3
|
import type { DshAgent, ModelRoute, ResponsibilityDispatch, RuntimeTool } from "./runtime-types.mjs";
|
|
4
|
-
export declare const CONFIGURABLE_ROLES: readonly ["researcher", "planner", "reviewer", "frontend"];
|
|
4
|
+
export declare const CONFIGURABLE_ROLES: readonly ["researcher", "planner", "reviewer", "frontend", "creative"];
|
|
5
5
|
export type ConfigurableRole = (typeof CONFIGURABLE_ROLES)[number];
|
|
6
6
|
export type RoleRoutes = Partial<Record<ConfigurableRole, ModelRoute>>;
|
|
7
7
|
export type RoleRouteSources = Partial<Record<ConfigurableRole, "persisted-mapping" | "deployment-config">>;
|
|
8
8
|
export type RoleDispatches = Partial<Record<ConfigurableRole, ResponsibilityDispatch>>;
|
|
9
9
|
export type RoleDispatchSources = Partial<Record<ConfigurableRole, "persisted-config" | "deployment-config">>;
|
|
10
10
|
export interface RoutingStore {
|
|
11
|
-
readonly schemaVersion: 1 | 2;
|
|
11
|
+
readonly schemaVersion: 1 | 2 | 3;
|
|
12
12
|
readonly roles: Readonly<RoleRoutes>;
|
|
13
13
|
readonly dispatch: Readonly<RoleDispatches>;
|
|
14
14
|
}
|
|
@@ -30,6 +30,8 @@ export interface LatestRouteReceipt {
|
|
|
30
30
|
fallbackUsed?: boolean;
|
|
31
31
|
requestedRoute?: ModelRoute;
|
|
32
32
|
actualRoute?: ModelRoute;
|
|
33
|
+
reasoningEffortVerification?: "verified" | "mismatch" | "requested-only";
|
|
34
|
+
deniedActionsCount?: number;
|
|
33
35
|
stopReason?: string;
|
|
34
36
|
error?: string;
|
|
35
37
|
taskStopReason?: string;
|
|
@@ -38,6 +40,7 @@ export interface LatestRouteReceipt {
|
|
|
38
40
|
export declare const ROUTING_CONFIG_PROMPT: string;
|
|
39
41
|
export declare function resolveRoleRoute(value: unknown, role: unknown): Readonly<ModelRoute> | undefined;
|
|
40
42
|
export declare function resolveRoleDispatch(value: unknown, role: unknown): ResponsibilityDispatch | undefined;
|
|
43
|
+
export declare function assertRoleRouteDispatch(route: ModelRoute | undefined, dispatch: ResponsibilityDispatch | undefined, role: ConfigurableRole): void;
|
|
41
44
|
export declare function resolveRoutingConfigPath(configuredPath: unknown, env?: Readonly<Record<string, string | undefined>>): string;
|
|
42
45
|
export declare function readRoutingStore(configPath: string): Readonly<RoutingStore>;
|
|
43
46
|
export declare function effectiveRoleRoute(configPath: string, configuredRoles: Readonly<RoleRoutes>, role: ConfigurableRole): ModelRoute | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"routing-config.d.mts","sourceRoot":"","sources":["../src/routing-config.mts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"routing-config.d.mts","sourceRoot":"","sources":["../src/routing-config.mts"],"names":[],"mappings":"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"}
|
|
@@ -2,27 +2,28 @@ import { randomUUID } from "node:crypto";
|
|
|
2
2
|
import { copyFileSync, existsSync, mkdirSync, readFileSync, renameSync, rmSync, writeFileSync, } from "node:fs";
|
|
3
3
|
import { homedir } from "node:os";
|
|
4
4
|
import { dirname, resolve } from "node:path";
|
|
5
|
-
import {
|
|
5
|
+
import { validateLocalCliRoute } from "#odai-local-cli";
|
|
6
|
+
import { describeModelRoute, requireModelRoute, sameModelRoute } from "./model-route.mjs";
|
|
6
7
|
import { IN_PLACE_OUTPUT_RESPONSIBILITIES, resolveInPlaceResponsibilityOutputBudgets, } from "./output-config.mjs";
|
|
7
8
|
import { isUnknownRecord } from "./runtime-types.mjs";
|
|
8
9
|
import { acquireOwnedStoreLock } from "./store-lock.mjs";
|
|
9
|
-
export const CONFIGURABLE_ROLES = Object.freeze(["researcher", "planner", "reviewer", "frontend"]);
|
|
10
|
+
export const CONFIGURABLE_ROLES = Object.freeze(["researcher", "planner", "reviewer", "frontend", "creative"]);
|
|
10
11
|
export const ROUTING_CONFIG_PROMPT = [
|
|
11
12
|
"## Odai responsibility model configuration",
|
|
12
|
-
"When the user naturally asks to inspect, set, change, or remove the research/investigation, planning/planner, review/acceptance/reviewer,
|
|
13
|
+
"When the user naturally asks to inspect, set, change, or remove the research/investigation, planning/planner, review/acceptance/reviewer, frontend design/implementation, or creative writing/design/review model, use odai_routing_config.",
|
|
13
14
|
"Translate the user's natural responsibility wording into the tool's responsibility field. Do not require internal routing terms or a special prompt form.",
|
|
14
|
-
"For
|
|
15
|
-
"A user may independently set or reset one responsibility's dispatch. researcher, planner, reviewer, and frontend accept same-turn or child. Do not require provider/model again for a dispatch-only change.",
|
|
16
|
-
"Never infer, recommend as chosen, or silently select any provider, model, effort, token limit, dispatch, or price. Ask a concise clarification when a requested value is ambiguous.",
|
|
15
|
+
"For an API model set, require explicit provider and model from the user. For backend=local-cli, require explicit cli and model; this version supports cli=claude/codex/antigravity/grok for planner/frontend/creative as child. gemini is reserved and unsupported; Antigravity uses cli=antigravity. Pass reasoningEffort, maxTokens (API only), or timeoutSeconds (local-cli only) only when supplied by the user; otherwise omit them.",
|
|
16
|
+
"A user may independently set or reset one responsibility's dispatch. API routes for researcher, planner, reviewer, and frontend accept same-turn or child; creative on either backend and all local-cli routes reject same-turn and default to child. Do not require provider/model or cli/model again for a dispatch-only change.",
|
|
17
|
+
"Never infer, recommend as chosen, or silently select any provider, cli, model, effort, timeout, token limit, dispatch, or price. Ask a concise clarification when a requested value is ambiguous.",
|
|
17
18
|
"Researcher routing is task-gated but not price-aware. A researcher mapping enables the narrow trigger but does not guarantee lower cost; compare actual provider prices and measured usage without inventing either.",
|
|
18
|
-
"A generic subagent is not proof that a configured responsibility ran. For a matching responsibility use odai_responsibility_gap so configured dispatch and evidence gates apply. For an explicitly authorized manual planner/frontend child, begin the native tool's description with `odai-planner
|
|
19
|
+
"A generic subagent is not proof that a configured responsibility ran. For a matching responsibility use odai_responsibility_gap so configured dispatch and evidence gates apply. Local-cli routes must use odai_responsibility_gap; native child tools cannot run them. For an explicitly authorized manual API planner/frontend/creative child, begin the native tool's description with `odai-planner:`, `odai-frontend:`, or `odai-creative:`: DSH uses description as its descriptor label and applies that role's configured model and contract. Researcher/reviewer require managed dispatch and evidence validation; hand-written labels cannot authorize them. For a user-authorized alternative model, do not use that prefix or claim the persisted mapping ran.",
|
|
19
20
|
"Do not ask the user to edit YAML, JSON, managed Agent files, or Plugin configuration. The tool owns persistence. A set/remove change applies from the next user turn.",
|
|
20
21
|
"Base controller selection remains host-owned and is not changed by this tool.",
|
|
21
22
|
].join("\n");
|
|
22
23
|
const ROLE_ROUTE_FIELDS = new Set(["provider", "model", "reasoningEffort", "maxTokens"]);
|
|
23
24
|
const RETIRED_STORE_ROLES = new Set(["executor"]);
|
|
24
25
|
const STORE_SCHEMA_VERSION = 2;
|
|
25
|
-
const SUPPORTED_STORE_SCHEMA_VERSIONS = new Set([1, STORE_SCHEMA_VERSION]);
|
|
26
|
+
const SUPPORTED_STORE_SCHEMA_VERSIONS = new Set([1, STORE_SCHEMA_VERSION, 3]);
|
|
26
27
|
const DISPATCH_VALUES = new Set(["same-turn", "child"]);
|
|
27
28
|
function isConfigurableRole(value) {
|
|
28
29
|
return typeof value === "string" && CONFIGURABLE_ROLES.includes(value);
|
|
@@ -34,6 +35,15 @@ export function resolveRoleRoute(value, role) {
|
|
|
34
35
|
throw new TypeError(`unknown odai routing responsibility: ${String(role)}`);
|
|
35
36
|
if (!isUnknownRecord(value))
|
|
36
37
|
throw new TypeError(`routing role ${role} must be an object`);
|
|
38
|
+
if (value.backend === "local-cli") {
|
|
39
|
+
if (role === "researcher") {
|
|
40
|
+
throw new TypeError("local-cli researcher is unsupported: researcher requires a validated research package and the DSH read-tool evidence chain");
|
|
41
|
+
}
|
|
42
|
+
if (role === "reviewer") {
|
|
43
|
+
throw new TypeError("local-cli reviewer is unsupported: reviewer requires odai_review_evidence from DSH");
|
|
44
|
+
}
|
|
45
|
+
return Object.freeze({ ...validateLocalCliRoute(value) });
|
|
46
|
+
}
|
|
37
47
|
const unknownFields = Object.keys(value).filter((field) => !ROLE_ROUTE_FIELDS.has(field));
|
|
38
48
|
if (unknownFields.length > 0) {
|
|
39
49
|
throw new TypeError(`routing role ${role} has unknown fields: ${unknownFields.join(", ")}`);
|
|
@@ -67,8 +77,17 @@ export function resolveRoleDispatch(value, role) {
|
|
|
67
77
|
if (typeof value !== "string" || !DISPATCH_VALUES.has(value)) {
|
|
68
78
|
throw new TypeError(`routing dispatch ${role} must be same-turn or child`);
|
|
69
79
|
}
|
|
80
|
+
assertRoleRouteDispatch(undefined, value, role);
|
|
70
81
|
return value;
|
|
71
82
|
}
|
|
83
|
+
export function assertRoleRouteDispatch(route, dispatch, role) {
|
|
84
|
+
if (role === "creative" && dispatch === "same-turn") {
|
|
85
|
+
throw new TypeError("routing responsibility creative only supports child dispatch; same-turn is not supported for API or local-cli routes");
|
|
86
|
+
}
|
|
87
|
+
if (route?.backend === "local-cli" && dispatch === "same-turn") {
|
|
88
|
+
throw new TypeError(`routing responsibility ${role}: local-cli only supports child dispatch; same-turn is not supported`);
|
|
89
|
+
}
|
|
90
|
+
}
|
|
72
91
|
export function resolveRoutingConfigPath(configuredPath, env = process.env) {
|
|
73
92
|
if (configuredPath !== undefined) {
|
|
74
93
|
if (typeof configuredPath !== "string" || configuredPath.trim() === "") {
|
|
@@ -127,6 +146,7 @@ export function readRoutingStore(configPath) {
|
|
|
127
146
|
for (const role of CONFIGURABLE_ROLES) {
|
|
128
147
|
const route = resolveRoleRoute(rawRoles[role], role);
|
|
129
148
|
const dispatch = resolveRoleDispatch(rawDispatch[role], role);
|
|
149
|
+
assertRoleRouteDispatch(route, dispatch, role);
|
|
130
150
|
if (route)
|
|
131
151
|
entries.push([role, route]);
|
|
132
152
|
if (dispatch)
|
|
@@ -150,6 +170,7 @@ export function effectiveRoutingSnapshot(configPath, configuredRoles = {}, confi
|
|
|
150
170
|
for (const role of CONFIGURABLE_ROLES) {
|
|
151
171
|
const route = persisted.roles[role] ?? configuredRoles[role];
|
|
152
172
|
const roleDispatch = persisted.dispatch[role] ?? configuredDispatch[role];
|
|
173
|
+
assertRoleRouteDispatch(route, roleDispatch, role);
|
|
153
174
|
if (route) {
|
|
154
175
|
roles[role] = route;
|
|
155
176
|
sources[role] = persisted.roles[role] ? "persisted-mapping" : "deployment-config";
|
|
@@ -169,7 +190,8 @@ export function effectiveRoutingSnapshot(configPath, configuredRoles = {}, confi
|
|
|
169
190
|
function writeRoutingStore(configPath, roles, dispatch) {
|
|
170
191
|
mkdirSync(dirname(configPath), { recursive: true, mode: 0o700 });
|
|
171
192
|
const temporary = `${configPath}.tmp-${process.pid}-${randomUUID()}`;
|
|
172
|
-
const
|
|
193
|
+
const schemaVersion = Object.values(roles).some((route) => route?.backend === "local-cli") ? 3 : STORE_SCHEMA_VERSION;
|
|
194
|
+
const value = `${JSON.stringify({ schemaVersion, roles, dispatch }, null, 2)}\n`;
|
|
173
195
|
try {
|
|
174
196
|
writeFileSync(temporary, value, { encoding: "utf8", mode: 0o600, flag: "wx" });
|
|
175
197
|
renameSync(temporary, configPath);
|
|
@@ -206,15 +228,28 @@ export function invalidatePersistedRoleRoute(configPath, role, expectedRoute) {
|
|
|
206
228
|
}
|
|
207
229
|
function routeSchema(required) {
|
|
208
230
|
return {
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
231
|
+
oneOf: [{
|
|
232
|
+
type: "object",
|
|
233
|
+
additionalProperties: false,
|
|
234
|
+
...(required ? { required: ["provider", "model"] } : {}),
|
|
235
|
+
properties: {
|
|
236
|
+
provider: { type: "string" },
|
|
237
|
+
model: { type: "string" },
|
|
238
|
+
reasoningEffort: { type: "string" },
|
|
239
|
+
maxTokens: { type: "integer" },
|
|
240
|
+
},
|
|
241
|
+
}, {
|
|
242
|
+
type: "object",
|
|
243
|
+
additionalProperties: false,
|
|
244
|
+
required: ["backend", "cli", "model"],
|
|
245
|
+
properties: {
|
|
246
|
+
backend: { type: "string", const: "local-cli" },
|
|
247
|
+
cli: { type: "string", enum: ["claude", "codex", "antigravity", "grok"] },
|
|
248
|
+
model: { type: "string" },
|
|
249
|
+
reasoningEffort: { type: "string" },
|
|
250
|
+
timeoutSeconds: { type: "integer", description: "Local CLI timeout in seconds, from 1 to 7200." },
|
|
251
|
+
},
|
|
252
|
+
}],
|
|
218
253
|
};
|
|
219
254
|
}
|
|
220
255
|
function resultFor(configPath, action, snapshot, responsibility, recoveredInvalidStore = false, latestRoute, outputPolicy) {
|
|
@@ -247,19 +282,23 @@ export async function applyRoutingConfigAction(configPath, arguments_, options =
|
|
|
247
282
|
return resultFor(configPath, "show", effectiveRoutingSnapshot(configPath, configuredRoles, configuredDispatch), undefined, false, options.latestRoute, options.outputPolicy);
|
|
248
283
|
}
|
|
249
284
|
if (!isConfigurableRole(arguments_.responsibility)) {
|
|
250
|
-
throw new TypeError("responsibility must be researcher, planner, reviewer, or
|
|
285
|
+
throw new TypeError("responsibility must be researcher, planner, reviewer, frontend, or creative for configuration changes");
|
|
251
286
|
}
|
|
252
287
|
const responsibility = arguments_.responsibility;
|
|
253
288
|
const proposedRoute = routingAction === "set" ? resolveRoleRoute({
|
|
254
|
-
|
|
289
|
+
...(arguments_.backend === undefined ? {} : { backend: arguments_.backend }),
|
|
290
|
+
...(arguments_.cli === undefined ? {} : { cli: arguments_.cli }),
|
|
291
|
+
...(Object.hasOwn(arguments_, "provider") ? { provider: arguments_.provider } : {}),
|
|
292
|
+
...(arguments_.timeoutSeconds === undefined ? {} : { timeoutSeconds: arguments_.timeoutSeconds }),
|
|
255
293
|
model: arguments_.model,
|
|
256
294
|
...(arguments_.reasoningEffort === undefined ? {} : { reasoningEffort: arguments_.reasoningEffort }),
|
|
257
|
-
...(arguments_.maxTokens
|
|
295
|
+
...(arguments_.maxTokens !== undefined || (arguments_.backend === "local-cli" && Object.hasOwn(arguments_, "maxTokens"))
|
|
296
|
+
? { maxTokens: arguments_.maxTokens } : {}),
|
|
258
297
|
}, responsibility) : undefined;
|
|
259
298
|
const proposedDispatch = routingAction === "set-dispatch"
|
|
260
299
|
? resolveRoleDispatch(arguments_.dispatch, responsibility)
|
|
261
300
|
: undefined;
|
|
262
|
-
if (routingAction === "set" && proposedRoute) {
|
|
301
|
+
if (routingAction === "set" && proposedRoute && proposedRoute.backend !== "local-cli") {
|
|
263
302
|
await requireModelRoute(options.resolveCallConfig, proposedRoute, options.signal, `${responsibility} responsibility route`);
|
|
264
303
|
}
|
|
265
304
|
const releaseLock = acquireOwnedStoreLock(configPath, "Odai routing configuration");
|
|
@@ -291,13 +330,16 @@ export async function applyRoutingConfigAction(configPath, arguments_, options =
|
|
|
291
330
|
else if (routingAction === "reset-dispatch") {
|
|
292
331
|
delete dispatch[responsibility];
|
|
293
332
|
}
|
|
333
|
+
for (const role of CONFIGURABLE_ROLES) {
|
|
334
|
+
assertRoleRouteDispatch(roles[role] ?? configuredRoles[role], dispatch[role] ?? configuredDispatch[role], role);
|
|
335
|
+
}
|
|
294
336
|
writeRoutingStore(configPath, roles, dispatch);
|
|
295
337
|
const event = {
|
|
296
338
|
action: routingAction,
|
|
297
339
|
responsibility,
|
|
298
340
|
...(roles[responsibility] ? { route: roles[responsibility] } : {}),
|
|
299
341
|
...(dispatch[responsibility] ? { dispatch: dispatch[responsibility] } : {}),
|
|
300
|
-
validationStatus: routingAction === "set" && proposedRoute ? "verified" : undefined,
|
|
342
|
+
validationStatus: routingAction === "set" && proposedRoute && proposedRoute.backend !== "local-cli" ? "verified" : undefined,
|
|
301
343
|
...(recoveredInvalidStore ? { recoveredInvalidStore: true } : {}),
|
|
302
344
|
};
|
|
303
345
|
options.onConfigured?.(event);
|
|
@@ -317,12 +359,12 @@ export function createRoutingConfigTool(configPath, options = {}) {
|
|
|
317
359
|
return {
|
|
318
360
|
name: "odai_routing_config",
|
|
319
361
|
description: [
|
|
320
|
-
"Inspect effective Odai model mappings, per-responsibility dispatch overrides, and the latest current-session route receipt; set/remove mappings or set/reset dispatch for researcher, planner, reviewer, and
|
|
321
|
-
"Use this only when the user naturally and explicitly asks to inspect/remove a mapping, names the provider/model to set, or explicitly chooses same-turn/child dispatch.",
|
|
322
|
-
"Never choose a provider, model, reasoning effort, token limit, or price on the user's behalf. Never choose a dispatch mode on the user's behalf.",
|
|
362
|
+
"Inspect effective Odai model mappings, per-responsibility dispatch overrides, and the latest current-session route receipt; set/remove mappings or set/reset dispatch for researcher, planner, reviewer, frontend, and creative responsibilities.",
|
|
363
|
+
"Use this only when the user naturally and explicitly asks to inspect/remove a mapping, names the provider/model or local-cli cli/model to set, or explicitly chooses same-turn/child dispatch.",
|
|
364
|
+
"Never choose a provider, cli, model, reasoning effort, timeout, token limit, or price on the user's behalf. Never choose a dispatch mode on the user's behalf.",
|
|
323
365
|
"Researcher routing is task-gated but not price-aware; its mapping does not guarantee lower cost.",
|
|
324
366
|
"For every configuration change, handle one responsibility per call. Persisted model mappings and dispatch overrides are shared by the Odai DSH Plugin and Agent and apply from the next user turn.",
|
|
325
|
-
"
|
|
367
|
+
"Local-cli supports claude, codex, antigravity, and grok for planner/frontend/creative as child, defaulting to child when dispatch is omitted. researcher/reviewer require DSH evidence tools and cannot use local-cli. Creative also defaults to child on API routes and rejects same-turn. Results expose API in-place responsibility ceilings; never invent an override.",
|
|
326
368
|
].join(" "),
|
|
327
369
|
parameters: {
|
|
328
370
|
type: "object",
|
|
@@ -331,11 +373,14 @@ export function createRoutingConfigTool(configPath, options = {}) {
|
|
|
331
373
|
properties: {
|
|
332
374
|
action: { type: "string", enum: ["show", "set", "remove", "set-dispatch", "reset-dispatch"], description: "Show configuration, set/remove one model mapping, or set/reset one dispatch override." },
|
|
333
375
|
responsibility: { type: "string", enum: [...CONFIGURABLE_ROLES], description: "Required for every action except show." },
|
|
334
|
-
|
|
376
|
+
backend: { type: "string", enum: ["local-cli"], description: "Set local-cli when the user explicitly requests a local CLI route; omit for API routes." },
|
|
377
|
+
cli: { type: "string", enum: ["claude", "codex", "antigravity", "grok", "gemini"], description: "CLI explicitly supplied by the user; required with local-cli. claude, codex, antigravity, and grok are supported. gemini is reserved and rejected; use antigravity for Antigravity's agy CLI." },
|
|
378
|
+
timeoutSeconds: { type: "integer", description: "Optional local-cli timeout explicitly supplied by the user, from 1 to 7200 seconds; defaults to 1200 seconds." },
|
|
379
|
+
provider: { type: "string", description: "Provider id explicitly supplied by the user; required for API set and forbidden with local-cli." },
|
|
335
380
|
model: { type: "string", description: "Model id explicitly supplied by the user; required for set." },
|
|
336
381
|
reasoningEffort: { type: "string", description: "Optional reasoning effort explicitly supplied by the user." },
|
|
337
382
|
maxTokens: { type: "integer", description: "Optional positive output limit explicitly supplied by the user. It limits routed child requests and explicitly overrides the global controller ceiling only inside the same planner or frontend responsibility scope when that responsibility runs in-place." },
|
|
338
|
-
dispatch: { type: "string", enum: ["same-turn", "child"], description: "Required for set-dispatch.
|
|
383
|
+
dispatch: { type: "string", enum: ["same-turn", "child"], description: "Required for set-dispatch. Creative and local-cli routes only accept child; other API responsibilities accept same-turn or child." },
|
|
339
384
|
},
|
|
340
385
|
},
|
|
341
386
|
output: {
|
|
@@ -377,7 +422,8 @@ export function createRoutingConfigTool(configPath, options = {}) {
|
|
|
377
422
|
status: { type: "string", enum: ["applied", "mismatch", "unverified", "fallback"] },
|
|
378
423
|
taskStatus: { type: "string", enum: ["completed", "fallback"] }, routeMode: { type: "string", enum: ["inline", "same-turn", "child"] },
|
|
379
424
|
routeSource: { type: "string", enum: ["persisted-mapping", "deployment-config"] }, fallbackUsed: { type: "boolean" },
|
|
380
|
-
requestedRoute: routeSchema(true), actualRoute: routeSchema(true),
|
|
425
|
+
requestedRoute: routeSchema(true), actualRoute: routeSchema(true), reasoningEffortVerification: { type: "string", enum: ["verified", "mismatch", "requested-only"] },
|
|
426
|
+
deniedActionsCount: { type: "integer", description: "Non-negative count of actions denied by the CLI." }, stopReason: { type: "string" }, error: { type: "string" },
|
|
381
427
|
taskStopReason: { type: "string" }, taskError: { type: "string" },
|
|
382
428
|
},
|
|
383
429
|
},
|
|
@@ -385,17 +431,13 @@ export function createRoutingConfigTool(configPath, options = {}) {
|
|
|
385
431
|
},
|
|
386
432
|
render(_arguments, value) {
|
|
387
433
|
const mapping = Object.entries(value.roles)
|
|
388
|
-
.map(([role, route]) => {
|
|
389
|
-
const options = [
|
|
390
|
-
...(route.reasoningEffort ? [`reasoningEffort=${route.reasoningEffort}`] : []),
|
|
391
|
-
...(route.maxTokens ? [`maxTokens=${route.maxTokens}`] : []),
|
|
392
|
-
];
|
|
393
|
-
return `${role}: ${route.provider}/${route.model}${options.length > 0 ? ` (${options.join(", ")})` : ""} [${value.sources[role]}]`;
|
|
394
|
-
})
|
|
434
|
+
.map(([role, route]) => `${role}: ${describeModelRoute(route)} [${value.sources[role]}]`)
|
|
395
435
|
.join("\n") || "No Odai responsibility models are configured.";
|
|
396
436
|
const dispatch = Object.entries(value.dispatch)
|
|
397
437
|
.map(([role, mode]) => `${role}: ${mode} [${value.dispatchSources[role]}]`)
|
|
398
|
-
.join("\n") ||
|
|
438
|
+
.join("\n") || (value.roles.creative || Object.values(value.roles).some(route => route.backend === "local-cli")
|
|
439
|
+
? "No per-responsibility dispatch overrides are configured; creative and local-cli routes use child and other API routes use legacy defaults."
|
|
440
|
+
: "No per-responsibility dispatch overrides are configured; legacy defaults apply.");
|
|
399
441
|
const responsibilityBudgets = Object.entries(value.responsibilityBudgets ?? {});
|
|
400
442
|
const configuredResponsibilities = responsibilityBudgets.length > 0
|
|
401
443
|
? `\nIn-place responsibility ceilings: ${responsibilityBudgets.map(([responsibility, budget]) => (`${responsibility}=${budget.maxTokens === undefined ? "no Odai maxTokens" : `maxTokens=${budget.maxTokens}`} [${budget.source}]`)).join("; ")}.`
|
|
@@ -415,11 +457,14 @@ export function createRoutingConfigTool(configPath, options = {}) {
|
|
|
415
457
|
...(value.latestRoute.error ? [`routeError=${value.latestRoute.error}`] : []),
|
|
416
458
|
...(value.latestRoute.taskError ? [`taskError=${value.latestRoute.taskError}`] : []),
|
|
417
459
|
...(value.latestRoute.actualRoute
|
|
418
|
-
? [`actual=${value.latestRoute.actualRoute
|
|
419
|
-
`reasoningEffort=${value.latestRoute.actualRoute.reasoningEffort ?? "unspecified"}`,
|
|
420
|
-
...(value.latestRoute.actualRoute.maxTokens === undefined ? [] : [`maxTokens=${value.latestRoute.actualRoute.maxTokens}`]),
|
|
421
|
-
].join(", ")})`]
|
|
460
|
+
? [`actual=${describeModelRoute(value.latestRoute.actualRoute, { showUnspecifiedReasoning: true })}`]
|
|
422
461
|
: ["actual=<unverified>"]),
|
|
462
|
+
...(value.latestRoute.reasoningEffortVerification === "requested-only"
|
|
463
|
+
? [`reasoningEffort=${value.latestRoute.requestedRoute?.reasoningEffort ?? "unspecified"} (requested only; not verified by the local CLI)`]
|
|
464
|
+
: value.latestRoute.reasoningEffortVerification
|
|
465
|
+
? [`reasoningEffortVerification=${value.latestRoute.reasoningEffortVerification}`]
|
|
466
|
+
: []),
|
|
467
|
+
...(value.latestRoute.deniedActionsCount === undefined ? [] : [`deniedActionsCount=${value.latestRoute.deniedActionsCount}`]),
|
|
423
468
|
].join("\n")
|
|
424
469
|
: value.action === "show"
|
|
425
470
|
? "\nNo mapped responsibility route receipt is recorded in this session."
|