@jmanuelcorral/openteam 0.18.1 → 0.19.0
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/.opencode/openteam.example.json +23 -14
- package/AGENTS.md +16 -2
- package/README.es.md +291 -208
- package/README.md +292 -138
- package/dist/capabilities/classify.d.ts.map +1 -1
- package/dist/capabilities/normalize.d.ts.map +1 -1
- package/dist/certificates/graph-release-certificate.json +2 -2
- package/dist/certificates/graph-shadow-certificate.json +2 -2
- package/dist/cli.js +1348 -593
- package/dist/commands/agents.d.ts +16 -4
- package/dist/commands/agents.d.ts.map +1 -1
- package/dist/commands/dispatch.d.ts.map +1 -1
- package/dist/commands/doctor.d.ts.map +1 -1
- package/dist/commands/local.d.ts +4 -5
- package/dist/commands/local.d.ts.map +1 -1
- package/dist/commands/report.d.ts +6 -6
- package/dist/commands/report.d.ts.map +1 -1
- package/dist/commands/rolesInit.d.ts +10 -12
- package/dist/commands/rolesInit.d.ts.map +1 -1
- package/dist/commands/setup.d.ts +5 -13
- package/dist/commands/setup.d.ts.map +1 -1
- package/dist/commands/yolo.d.ts +2 -4
- package/dist/commands/yolo.d.ts.map +1 -1
- package/dist/config/errors.d.ts.map +1 -1
- package/dist/config/executionPolicyDomains.d.ts +18 -0
- package/dist/config/executionPolicyDomains.d.ts.map +1 -0
- package/dist/config/migrations.d.ts +9 -2
- package/dist/config/migrations.d.ts.map +1 -1
- package/dist/config/persist.d.ts.map +1 -1
- package/dist/config/runtime.d.ts +2 -0
- package/dist/config/runtime.d.ts.map +1 -1
- package/dist/config/schema.d.ts +97 -12
- package/dist/config/schema.d.ts.map +1 -1
- package/dist/console/configView.d.ts +2 -7
- package/dist/console/configView.d.ts.map +1 -1
- package/dist/console/render.d.ts.map +1 -1
- package/dist/console/types.d.ts +2 -2
- package/dist/console/types.d.ts.map +1 -1
- package/dist/context/schema.d.ts +13 -7
- package/dist/context/schema.d.ts.map +1 -1
- package/dist/graph/certificate.d.ts.map +1 -1
- package/dist/graph/langgraph/adapter.d.ts +7 -8
- package/dist/graph/langgraph/adapter.d.ts.map +1 -1
- package/dist/graph/langgraph/certification.d.ts +5 -0
- package/dist/graph/langgraph/certification.d.ts.map +1 -1
- package/dist/graph/langgraph/checkpointReplay.d.ts.map +1 -1
- package/dist/graph/langgraph/engine.d.ts +2 -2
- package/dist/graph/langgraph/engine.d.ts.map +1 -1
- package/dist/graph/langgraph/types.d.ts +11 -6
- package/dist/graph/langgraph/types.d.ts.map +1 -1
- package/dist/graph/privacyPolicy.d.ts +6 -30
- package/dist/graph/privacyPolicy.d.ts.map +1 -1
- package/dist/index.d.ts +1 -9
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3136 -1122
- package/dist/mcp/teamMemory.d.ts +2 -2
- package/dist/mcp/teamMemory.d.ts.map +1 -1
- package/dist/messages/commands.d.ts +22 -35
- package/dist/messages/commands.d.ts.map +1 -1
- package/dist/messages/executionSetup.d.ts +116 -0
- package/dist/messages/executionSetup.d.ts.map +1 -0
- package/dist/messages/index.d.ts +1 -0
- package/dist/messages/index.d.ts.map +1 -1
- package/dist/messages/memoryTool.d.ts +17 -0
- package/dist/messages/memoryTool.d.ts.map +1 -0
- package/dist/messages/orchestration.d.ts +16 -0
- package/dist/messages/orchestration.d.ts.map +1 -0
- package/dist/messages/routing.d.ts +9 -0
- package/dist/messages/routing.d.ts.map +1 -0
- package/dist/opencodeArtifacts/orchestratorAgent.d.ts +3 -5
- package/dist/opencodeArtifacts/orchestratorAgent.d.ts.map +1 -1
- package/dist/orchestrator/coordinator.d.ts +19 -12
- package/dist/orchestrator/coordinator.d.ts.map +1 -1
- package/dist/orchestrator/graphEffects.d.ts +10 -11
- package/dist/orchestrator/graphEffects.d.ts.map +1 -1
- package/dist/orchestrator/outputContract.d.ts +5 -6
- package/dist/orchestrator/outputContract.d.ts.map +1 -1
- package/dist/orchestrator/roles.d.ts +25 -2
- package/dist/orchestrator/roles.d.ts.map +1 -1
- package/dist/orchestrator/runtimeSelection.d.ts.map +1 -1
- package/dist/orchestrator/subsessions.d.ts +49 -1
- package/dist/orchestrator/subsessions.d.ts.map +1 -1
- package/dist/plugin/availability.d.ts +15 -2
- package/dist/plugin/availability.d.ts.map +1 -1
- package/dist/plugin/diagnostics.d.ts +1 -0
- package/dist/plugin/diagnostics.d.ts.map +1 -1
- package/dist/plugin/hooks.d.ts +21 -2
- package/dist/plugin/hooks.d.ts.map +1 -1
- package/dist/plugin/memoryTool.d.ts +3 -3
- package/dist/plugin/memoryTool.d.ts.map +1 -1
- package/dist/plugin/modelOwnership.d.ts +15 -0
- package/dist/plugin/modelOwnership.d.ts.map +1 -0
- package/dist/plugin/orchestrateTool.d.ts +50 -3
- package/dist/plugin/orchestrateTool.d.ts.map +1 -1
- package/dist/router/chooseModel.d.ts.map +1 -1
- package/dist/router/cost.d.ts +1 -1
- package/dist/router/cost.d.ts.map +1 -1
- package/dist/router/executionPolicy.d.ts +44 -0
- package/dist/router/executionPolicy.d.ts.map +1 -0
- package/dist/router/frontierBaseline.d.ts.map +1 -1
- package/dist/router/types.d.ts +10 -4
- package/dist/router/types.d.ts.map +1 -1
- package/dist/telemetry/aggregate.d.ts +4 -4
- package/dist/telemetry/aggregate.d.ts.map +1 -1
- package/dist/telemetry/diagnostics.d.ts.map +1 -1
- package/dist/telemetry/events.d.ts +6 -6
- package/dist/telemetry/otel.d.ts.map +1 -1
- package/dist/telemetry/types.d.ts +3 -3
- package/dist/web/configApi.d.ts +3 -1
- package/dist/web/configApi.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
2
|
import type { CapabilityRequirement, ComplexityTier } from "../capabilities/types";
|
|
3
3
|
import type { LocalRuntimeId } from "../local/types";
|
|
4
|
+
import type { AgentExecutionPolicy, ExecutionMode } from "../router/executionPolicy";
|
|
4
5
|
import type { ModelSelection, TaskSignals } from "../router/types";
|
|
5
6
|
export type AgentRoleProfile = {
|
|
6
7
|
roleID: string;
|
|
@@ -18,8 +19,8 @@ export type AgentRoleProfile = {
|
|
|
18
19
|
* only tilts routing toward local and still falls through to frontier when no
|
|
19
20
|
* local runtime is reachable (2026-08-26 ruling). `requiresLocalRuntime` refuses
|
|
20
21
|
* the request before dispatch when no local runtime is reachable — it never
|
|
21
|
-
* falls through to a frontier provider.
|
|
22
|
-
*
|
|
22
|
+
* falls through to a frontier provider. This legacy operator constraint is
|
|
23
|
+
* optional; no built-in role requires local execution solely because of its name.
|
|
23
24
|
*/
|
|
24
25
|
requiresLocalRuntime?: boolean;
|
|
25
26
|
/**
|
|
@@ -67,6 +68,9 @@ export type AgentRoleProfile = {
|
|
|
67
68
|
* today's behaviour exactly.
|
|
68
69
|
*/
|
|
69
70
|
localModelClass?: LocalModelClass;
|
|
71
|
+
executionMode?: ExecutionMode;
|
|
72
|
+
model?: ModelSelection | "auto";
|
|
73
|
+
fallbacks?: ModelSelection[];
|
|
70
74
|
};
|
|
71
75
|
/**
|
|
72
76
|
* Class of local model a role draws off a runtime (#210 follow-up).
|
|
@@ -100,6 +104,19 @@ export declare const AgentRoleProfileSchema: z.ZodObject<{
|
|
|
100
104
|
coder: "coder";
|
|
101
105
|
thinking: "thinking";
|
|
102
106
|
}>>;
|
|
107
|
+
executionMode: z.ZodOptional<z.ZodEnum<{
|
|
108
|
+
frontier: "frontier";
|
|
109
|
+
local: "local";
|
|
110
|
+
mixed: "mixed";
|
|
111
|
+
}>>;
|
|
112
|
+
model: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
|
|
113
|
+
providerID: z.ZodString;
|
|
114
|
+
modelID: z.ZodString;
|
|
115
|
+
}, z.core.$strict>, z.ZodLiteral<"auto">]>>;
|
|
116
|
+
fallbacks: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
117
|
+
providerID: z.ZodString;
|
|
118
|
+
modelID: z.ZodString;
|
|
119
|
+
}, z.core.$strict>>>;
|
|
103
120
|
}, z.core.$strict>;
|
|
104
121
|
export declare const TEAM_ROLES: Record<string, AgentRoleProfile>;
|
|
105
122
|
export declare function isKnownNonWorkerRole(roleID: string): boolean;
|
|
@@ -135,5 +152,11 @@ export declare function getRoleProfile(roleID: string, configuredRoles?: Readonl
|
|
|
135
152
|
* while unknown roles are never silently starved of frontier access.
|
|
136
153
|
*/
|
|
137
154
|
export declare function synthesiseFallbackProfile(roleID: string): AgentRoleProfile;
|
|
155
|
+
export declare function agentExecutionPolicyForRole(role: AgentRoleProfile): AgentExecutionPolicy | undefined;
|
|
156
|
+
/**
|
|
157
|
+
* Classifies ordinary task complexity while treating the configured role tier
|
|
158
|
+
* as a floor. Permission elevation and execution policy remain caller-owned.
|
|
159
|
+
*/
|
|
160
|
+
export declare function classifyRoleTaskTier(role: AgentRoleProfile, task: TaskSignals): ComplexityTier;
|
|
138
161
|
export declare function roleToRequirement(role: AgentRoleProfile, task: TaskSignals, tier?: ComplexityTier): CapabilityRequirement;
|
|
139
162
|
//# sourceMappingURL=roles.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"roles.d.ts","sourceRoot":"","sources":["../../src/orchestrator/roles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"roles.d.ts","sourceRoot":"","sources":["../../src/orchestrator/roles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,OAAO,KAAK,EACV,qBAAqB,EACrB,cAAc,EACf,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAErD,OAAO,KAAK,EACV,oBAAoB,EACpB,aAAa,EACd,MAAM,2BAA2B,CAAC;AACnC,OAAO,KAAK,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAEnE,MAAM,MAAM,gBAAgB,GAAG;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,cAAc,CAAC;IAC5B,gBAAgB,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACpC,kBAAkB,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACtC,yBAAyB,EAAE,OAAO,CAAC;IACnC,uBAAuB,EAAE,KAAK,CAAC,cAAc,GAAG,MAAM,CAAC,CAAC;IACxD,UAAU,EAAE,OAAO,CAAC;IACpB;;;;;;;;;OASG;IACH,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B;;;;;;;;;;;;;OAaG;IACH,aAAa,CAAC,EAAE,cAAc,EAAE,CAAC;IACjC;;;;;;;;;;;;OAYG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC,CAAC;IACtD;;;;;;;;;;;;;;OAcG;IACH,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,KAAK,CAAC,EAAE,cAAc,GAAG,MAAM,CAAC;IAChC,SAAS,CAAC,EAAE,cAAc,EAAE,CAAC;CAC9B,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,MAAM,eAAe,GAAG,UAAU,GAAG,OAAO,CAAC;AAiBnD,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAmC/B,CAAC;AAGL,eAAO,MAAM,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAkGvD,CAAC;AAcF,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAI5D;AA6BD;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,cAAc,CAC5B,MAAM,EAAE,MAAM,EACd,eAAe,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC,GAC3D,gBAAgB,GAAG,SAAS,CAO9B;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,MAAM,GAAG,gBAAgB,CAW1E;AAQD,wBAAgB,2BAA2B,CACzC,IAAI,EAAE,gBAAgB,GACrB,oBAAoB,GAAG,SAAS,CAmClC;AASD;;;GAGG;AACH,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,gBAAgB,EACtB,IAAI,EAAE,WAAW,GAChB,cAAc,CAKhB;AAED,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,gBAAgB,EACtB,IAAI,EAAE,WAAW,EACjB,IAAI,CAAC,EAAE,cAAc,GACpB,qBAAqB,CAevB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtimeSelection.d.ts","sourceRoot":"","sources":["../../src/orchestrator/runtimeSelection.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACrE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAErD,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACvE,OAAO,KAAK,EAAE,gBAAgB,EAAmB,MAAM,SAAS,CAAC;AAEjE;;;;;;;;;;GAUG;AACH,MAAM,MAAM,wBAAwB,GAAG;IACrC,QAAQ,CAAC,SAAS,EAAE,cAAc,GAAG,SAAS,CAAC;IAC/C,QAAQ,CAAC,QAAQ,EAAE,eAAe,CAAC;CACpC,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,iBAAiB,CAC/B,SAAS,EAAE,cAAc,EACzB,MAAM,EAAE,cAAc,GACrB,YAAY,GAAG,SAAS,CAE1B;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,cAAc,EACrB,MAAM,EAAE,cAAc,GACrB,cAAc,GAAG,SAAS,CAI5B;AAsDD;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,gBAAgB,EACtB,QAAQ,EAAE,eAAe,EACzB,SAAS,EAAE,WAAW,CAAC,cAAc,CAAC,GAAG,SAAS,EAClD,MAAM,EAAE,cAAc,GACrB,wBAAwB,
|
|
1
|
+
{"version":3,"file":"runtimeSelection.d.ts","sourceRoot":"","sources":["../../src/orchestrator/runtimeSelection.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACrE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAErD,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACvE,OAAO,KAAK,EAAE,gBAAgB,EAAmB,MAAM,SAAS,CAAC;AAEjE;;;;;;;;;;GAUG;AACH,MAAM,MAAM,wBAAwB,GAAG;IACrC,QAAQ,CAAC,SAAS,EAAE,cAAc,GAAG,SAAS,CAAC;IAC/C,QAAQ,CAAC,QAAQ,EAAE,eAAe,CAAC;CACpC,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,iBAAiB,CAC/B,SAAS,EAAE,cAAc,EACzB,MAAM,EAAE,cAAc,GACrB,YAAY,GAAG,SAAS,CAE1B;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,cAAc,EACrB,MAAM,EAAE,cAAc,GACrB,cAAc,GAAG,SAAS,CAI5B;AAsDD;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,gBAAgB,EACtB,QAAQ,EAAE,eAAe,EACzB,SAAS,EAAE,WAAW,CAAC,cAAc,CAAC,GAAG,SAAS,EAClD,MAAM,EAAE,cAAc,GACrB,wBAAwB,CA0E1B"}
|
|
@@ -12,6 +12,10 @@ export type OpencodeSessionPromptArgs = {
|
|
|
12
12
|
path: {
|
|
13
13
|
id: string;
|
|
14
14
|
};
|
|
15
|
+
query?: {
|
|
16
|
+
directory?: string;
|
|
17
|
+
};
|
|
18
|
+
signal?: AbortSignal;
|
|
15
19
|
body: {
|
|
16
20
|
model?: ModelSelection;
|
|
17
21
|
agent?: string;
|
|
@@ -22,6 +26,31 @@ export type OpencodeSessionPromptArgs = {
|
|
|
22
26
|
}>;
|
|
23
27
|
};
|
|
24
28
|
};
|
|
29
|
+
export type OpencodeSessionAbortArgs = {
|
|
30
|
+
path: {
|
|
31
|
+
id: string;
|
|
32
|
+
};
|
|
33
|
+
query?: {
|
|
34
|
+
directory?: string;
|
|
35
|
+
};
|
|
36
|
+
signal?: AbortSignal;
|
|
37
|
+
};
|
|
38
|
+
export type OpencodeSessionStatusArgs = {
|
|
39
|
+
query?: {
|
|
40
|
+
directory?: string;
|
|
41
|
+
};
|
|
42
|
+
signal?: AbortSignal;
|
|
43
|
+
};
|
|
44
|
+
export type OpencodeSessionStatus = {
|
|
45
|
+
readonly type: "idle";
|
|
46
|
+
} | {
|
|
47
|
+
readonly type: "retry";
|
|
48
|
+
readonly attempt: number;
|
|
49
|
+
readonly message: string;
|
|
50
|
+
readonly next: number;
|
|
51
|
+
} | {
|
|
52
|
+
readonly type: "busy";
|
|
53
|
+
};
|
|
25
54
|
export type OpencodeSessionClient = {
|
|
26
55
|
session: {
|
|
27
56
|
create: (args: OpencodeSessionCreateArgs) => Promise<{
|
|
@@ -34,6 +63,14 @@ export type OpencodeSessionClient = {
|
|
|
34
63
|
data?: unknown;
|
|
35
64
|
error?: unknown;
|
|
36
65
|
}>;
|
|
66
|
+
abort?: (args: OpencodeSessionAbortArgs) => Promise<{
|
|
67
|
+
data?: boolean;
|
|
68
|
+
error?: unknown;
|
|
69
|
+
}>;
|
|
70
|
+
status?: (args?: OpencodeSessionStatusArgs) => Promise<{
|
|
71
|
+
data?: Readonly<Record<string, OpencodeSessionStatus>>;
|
|
72
|
+
error?: unknown;
|
|
73
|
+
}>;
|
|
37
74
|
};
|
|
38
75
|
};
|
|
39
76
|
export type SubsessionRequest = {
|
|
@@ -54,9 +91,20 @@ export type SubsessionResult = {
|
|
|
54
91
|
response?: unknown;
|
|
55
92
|
failureReason?: string;
|
|
56
93
|
failureStage?: "create" | "prompt" | "report";
|
|
94
|
+
/**
|
|
95
|
+
* Whether another pass/model may be dispatched without overlapping an
|
|
96
|
+
* uncertain prior generation. Present only on failures.
|
|
97
|
+
*/
|
|
98
|
+
retrySafe?: boolean;
|
|
57
99
|
};
|
|
58
100
|
export type SubsessionDeps = {
|
|
59
101
|
timeoutMs?: number;
|
|
102
|
+
abortGraceMs: number;
|
|
103
|
+
statusPollMs: number;
|
|
104
|
+
now: () => number;
|
|
105
|
+
delay: (ms: number) => Promise<void>;
|
|
60
106
|
};
|
|
61
|
-
export declare
|
|
107
|
+
export declare const DEFAULT_ABORT_GRACE_MS = 2000;
|
|
108
|
+
export declare const DEFAULT_STATUS_POLL_MS = 100;
|
|
109
|
+
export declare function runSubsession(client: OpencodeSessionClient, req: SubsessionRequest, deps: SubsessionDeps): Promise<SubsessionResult>;
|
|
62
110
|
//# sourceMappingURL=subsessions.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"subsessions.d.ts","sourceRoot":"","sources":["../../src/orchestrator/subsessions.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"subsessions.d.ts","sourceRoot":"","sources":["../../src/orchestrator/subsessions.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,20 +1,33 @@
|
|
|
1
|
+
import type { ModelCapabilityProfile } from "../capabilities/types";
|
|
1
2
|
import type { OpenTeamConfig } from "../config/schema";
|
|
2
3
|
import type { LocalRuntimeSnapshot } from "../local/types";
|
|
3
|
-
import type { AvailableModel } from "../router/types";
|
|
4
|
+
import type { AvailableModel, ModelSelection } from "../router/types";
|
|
4
5
|
export type AvailabilityProvider = () => AvailableModel[];
|
|
6
|
+
export type ConfiguredModel = ModelSelection & {
|
|
7
|
+
supportsTools?: boolean;
|
|
8
|
+
contextWindow?: number;
|
|
9
|
+
};
|
|
10
|
+
export type ConfiguredModelInventory = {
|
|
11
|
+
models: ConfiguredModel[];
|
|
12
|
+
profiles: ModelCapabilityProfile[];
|
|
13
|
+
};
|
|
5
14
|
type ProbeRegistry = {
|
|
6
15
|
probe(runtimes: OpenTeamConfig["local"]["runtimes"]): Promise<LocalRuntimeSnapshot[]>;
|
|
7
16
|
};
|
|
8
17
|
export type AvailabilityCache = {
|
|
9
18
|
get(): AvailableModel[];
|
|
19
|
+
getProfiles(): ModelCapabilityProfile[];
|
|
10
20
|
refresh(): Promise<void>;
|
|
11
21
|
};
|
|
12
22
|
export type AvailabilityCacheOptions = {
|
|
13
23
|
config: OpenTeamConfig;
|
|
14
24
|
registry: ProbeRegistry;
|
|
25
|
+
initialConfiguredModels?: readonly ConfiguredModel[];
|
|
26
|
+
initialConfiguredProfiles?: readonly ModelCapabilityProfile[];
|
|
27
|
+
listConfiguredInventory?: () => Promise<ConfiguredModelInventory>;
|
|
15
28
|
onRefreshError?: (error: unknown) => void;
|
|
16
29
|
};
|
|
17
|
-
export declare function toAvailableModels(snapshots: LocalRuntimeSnapshot[], config: OpenTeamConfig): AvailableModel[];
|
|
30
|
+
export declare function toAvailableModels(snapshots: LocalRuntimeSnapshot[], config: OpenTeamConfig, configuredModels?: readonly ConfiguredModel[]): AvailableModel[];
|
|
18
31
|
export declare function createAvailabilityCache(options: AvailabilityCacheOptions): AvailabilityCache;
|
|
19
32
|
export {};
|
|
20
33
|
//# sourceMappingURL=availability.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"availability.d.ts","sourceRoot":"","sources":["../../src/plugin/availability.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"availability.d.ts","sourceRoot":"","sources":["../../src/plugin/availability.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AACpE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAM3D,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAEtE,MAAM,MAAM,oBAAoB,GAAG,MAAM,cAAc,EAAE,CAAC;AAE1D,MAAM,MAAM,eAAe,GAAG,cAAc,GAAG;IAC7C,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,wBAAwB,GAAG;IACrC,MAAM,EAAE,eAAe,EAAE,CAAC;IAC1B,QAAQ,EAAE,sBAAsB,EAAE,CAAC;CACpC,CAAC;AAEF,KAAK,aAAa,GAAG;IACnB,KAAK,CACH,QAAQ,EAAE,cAAc,CAAC,OAAO,CAAC,CAAC,UAAU,CAAC,GAC5C,OAAO,CAAC,oBAAoB,EAAE,CAAC,CAAC;CACpC,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,GAAG,IAAI,cAAc,EAAE,CAAC;IACxB,WAAW,IAAI,sBAAsB,EAAE,CAAC;IACxC,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC1B,CAAC;AAEF,MAAM,MAAM,wBAAwB,GAAG;IACrC,MAAM,EAAE,cAAc,CAAC;IACvB,QAAQ,EAAE,aAAa,CAAC;IACxB,uBAAuB,CAAC,EAAE,SAAS,eAAe,EAAE,CAAC;IACrD,yBAAyB,CAAC,EAAE,SAAS,sBAAsB,EAAE,CAAC;IAC9D,uBAAuB,CAAC,EAAE,MAAM,OAAO,CAAC,wBAAwB,CAAC,CAAC;IAClE,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;CAC3C,CAAC;AA8NF,wBAAgB,iBAAiB,CAC/B,SAAS,EAAE,oBAAoB,EAAE,EACjC,MAAM,EAAE,cAAc,EACtB,gBAAgB,CAAC,EAAE,SAAS,eAAe,EAAE,GAC5C,cAAc,EAAE,CA0DlB;AAED,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,wBAAwB,GAChC,iBAAiB,CAoDnB"}
|
|
@@ -17,6 +17,7 @@ export type PluginDiagnosticChannel = {
|
|
|
17
17
|
readonly emit: (diagnostic: DiagnosticInput, options?: DiagnosticSinkOptions) => void;
|
|
18
18
|
readonly sink: (level: DiagnosticLevel, code: DiagnosticCode, options?: DiagnosticSinkOptions) => (message?: unknown) => void;
|
|
19
19
|
readonly warn: (code: DiagnosticCode, options?: DiagnosticSinkOptions) => (message?: unknown) => void;
|
|
20
|
+
readonly warnUserMessage: (code: DiagnosticCode, message: string, options?: DiagnosticSinkOptions) => void;
|
|
20
21
|
readonly info: (code: DiagnosticCode, options?: DiagnosticSinkOptions) => (message?: unknown) => void;
|
|
21
22
|
};
|
|
22
23
|
export type PluginDiagnosticChannelDeps = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"diagnostics.d.ts","sourceRoot":"","sources":["../../src/plugin/diagnostics.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,KAAK,cAAc,EAEpB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAuB,KAAK,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAC5E,OAAO,EACL,KAAK,eAAe,EAErB,MAAM,qBAAqB,CAAC;AAE7B,eAAO,MAAM,4BAA4B,WAAW,CAAC;AAErD,KAAK,eAAe,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC;AAChD,KAAK,eAAe,GAAG;IACrB,QAAQ,CAAC,KAAK,EAAE,eAAe,CAAC;IAChC,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAC;IAC9B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC7B,CAAC;AAEF,KAAK,qBAAqB,GAAG;IAC3B,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;CAC1B,CAAC;AASF,MAAM,MAAM,uBAAuB,GAAG;IACpC,QAAQ,CAAC,YAAY,EAAE,CAAC,IAAI,EAAE,SAAS,KAAK,IAAI,CAAC;IACjD,QAAQ,CAAC,IAAI,EAAE,CACb,UAAU,EAAE,eAAe,EAC3B,OAAO,CAAC,EAAE,qBAAqB,KAC5B,IAAI,CAAC;IACV,QAAQ,CAAC,IAAI,EAAE,CACb,KAAK,EAAE,eAAe,EACtB,IAAI,EAAE,cAAc,EACpB,OAAO,CAAC,EAAE,qBAAqB,KAC5B,CAAC,OAAO,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;IACjC,QAAQ,CAAC,IAAI,EAAE,CACb,IAAI,EAAE,cAAc,EACpB,OAAO,CAAC,EAAE,qBAAqB,KAC5B,CAAC,OAAO,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;IACjC,QAAQ,CAAC,IAAI,EAAE,CACb,IAAI,EAAE,cAAc,EACpB,OAAO,CAAC,EAAE,qBAAqB,KAC5B,CAAC,OAAO,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;CAClC,CAAC;AAEF,MAAM,MAAM,2BAA2B,GAAG;IACxC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,GAAG,EAAE,MAAM,MAAM,CAAC;IAC3B,QAAQ,CAAC,IAAI,CAAC,EAAE,SAAS,CAAC;CAC3B,CAAC;
|
|
1
|
+
{"version":3,"file":"diagnostics.d.ts","sourceRoot":"","sources":["../../src/plugin/diagnostics.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,KAAK,cAAc,EAEpB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAuB,KAAK,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAC5E,OAAO,EACL,KAAK,eAAe,EAErB,MAAM,qBAAqB,CAAC;AAE7B,eAAO,MAAM,4BAA4B,WAAW,CAAC;AAErD,KAAK,eAAe,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC;AAChD,KAAK,eAAe,GAAG;IACrB,QAAQ,CAAC,KAAK,EAAE,eAAe,CAAC;IAChC,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAC;IAC9B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC7B,CAAC;AAEF,KAAK,qBAAqB,GAAG;IAC3B,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;CAC1B,CAAC;AASF,MAAM,MAAM,uBAAuB,GAAG;IACpC,QAAQ,CAAC,YAAY,EAAE,CAAC,IAAI,EAAE,SAAS,KAAK,IAAI,CAAC;IACjD,QAAQ,CAAC,IAAI,EAAE,CACb,UAAU,EAAE,eAAe,EAC3B,OAAO,CAAC,EAAE,qBAAqB,KAC5B,IAAI,CAAC;IACV,QAAQ,CAAC,IAAI,EAAE,CACb,KAAK,EAAE,eAAe,EACtB,IAAI,EAAE,cAAc,EACpB,OAAO,CAAC,EAAE,qBAAqB,KAC5B,CAAC,OAAO,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;IACjC,QAAQ,CAAC,IAAI,EAAE,CACb,IAAI,EAAE,cAAc,EACpB,OAAO,CAAC,EAAE,qBAAqB,KAC5B,CAAC,OAAO,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;IACjC,QAAQ,CAAC,eAAe,EAAE,CACxB,IAAI,EAAE,cAAc,EACpB,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,qBAAqB,KAC5B,IAAI,CAAC;IACV,QAAQ,CAAC,IAAI,EAAE,CACb,IAAI,EAAE,cAAc,EACpB,OAAO,CAAC,EAAE,qBAAqB,KAC5B,CAAC,OAAO,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;CAClC,CAAC;AAEF,MAAM,MAAM,2BAA2B,GAAG;IACxC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,GAAG,EAAE,MAAM,MAAM,CAAC;IAC3B,QAAQ,CAAC,IAAI,CAAC,EAAE,SAAS,CAAC;CAC3B,CAAC;AAmEF,wBAAgB,6BAA6B,CAC3C,IAAI,EAAE,2BAA2B,GAChC,uBAAuB,CA0EzB"}
|
package/dist/plugin/hooks.d.ts
CHANGED
|
@@ -1,8 +1,11 @@
|
|
|
1
1
|
import type { Hooks } from "@opencode-ai/plugin";
|
|
2
|
+
import type { ModelCapabilityProfile } from "../capabilities/types";
|
|
2
3
|
import type { OpenTeamConfig } from "../config/schema";
|
|
4
|
+
import { type AgentRoleProfile } from "../orchestrator/roles";
|
|
3
5
|
import type { TaskSignals } from "../router/types";
|
|
4
6
|
import { type EventSink } from "../telemetry/eventLog";
|
|
5
7
|
import type { AvailabilityProvider } from "./availability";
|
|
8
|
+
import type { OrchestratedModelOwnership } from "./modelOwnership";
|
|
6
9
|
export type ChatMessageHook = NonNullable<Hooks["chat.message"]>;
|
|
7
10
|
export type ChatMessageHookOptions = {
|
|
8
11
|
sink?: EventSink;
|
|
@@ -10,8 +13,8 @@ export type ChatMessageHookOptions = {
|
|
|
10
13
|
/**
|
|
11
14
|
* M6 memory injection (opt-in). Given the prompt text, returns a context
|
|
12
15
|
* block to **prepend** to the first text part, or `null` to skip injection.
|
|
13
|
-
* It is invoked **after**
|
|
14
|
-
*
|
|
16
|
+
* It is invoked **after** model ownership/routing resolution, so it does not
|
|
17
|
+
* alter router determinism or the prompt hash.
|
|
15
18
|
*/
|
|
16
19
|
injectMemory?: (queryText: string) => Promise<string | null>;
|
|
17
20
|
/**
|
|
@@ -20,6 +23,22 @@ export type ChatMessageHookOptions = {
|
|
|
20
23
|
* cross-verify the agent's self-reported fields in `report-run`.
|
|
21
24
|
*/
|
|
22
25
|
onRoute?: (sessionID: string, model: string) => void;
|
|
26
|
+
/**
|
|
27
|
+
* Per-plugin authorization boundary for models already selected by the
|
|
28
|
+
* coordinator before it calls the public SDK. The SDK re-enters
|
|
29
|
+
* `chat.message`; a matching one-shot claim preserves that authorized worker
|
|
30
|
+
* model instead of routing the worker through the primary policy again.
|
|
31
|
+
*/
|
|
32
|
+
orchestratedModelOwnership?: OrchestratedModelOwnership;
|
|
33
|
+
/**
|
|
34
|
+
* Resolves a project roster alias to its stable configured or built-in role.
|
|
35
|
+
* Direct configured/built-in agent names are resolved without this callback.
|
|
36
|
+
*/
|
|
37
|
+
resolveAgentRole?: (agentName: string) => AgentRoleProfile | undefined | Promise<AgentRoleProfile | undefined>;
|
|
38
|
+
/** Waits for the initial authoritative provider/runtime inventory. */
|
|
39
|
+
beforeRoute?: () => Promise<void>;
|
|
40
|
+
/** Supplies capability and pricing profiles from the same inventory. */
|
|
41
|
+
capabilityProfiles?: () => ModelCapabilityProfile[];
|
|
23
42
|
};
|
|
24
43
|
export declare function deriveTaskSignals(input: Parameters<ChatMessageHook>[0], output: Parameters<ChatMessageHook>[1]): TaskSignals;
|
|
25
44
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../../src/plugin/hooks.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAEjD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAEvD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAEnD,OAAO,EAGL,KAAK,SAAS,EACf,MAAM,uBAAuB,CAAC;AAE/B,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../../src/plugin/hooks.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAEjD,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AACpE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAEvD,OAAO,EACL,KAAK,gBAAgB,EAMtB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAEnD,OAAO,EAGL,KAAK,SAAS,EACf,MAAM,uBAAuB,CAAC;AAE/B,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAC3D,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,kBAAkB,CAAC;AAEnE,MAAM,MAAM,eAAe,GAAG,WAAW,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC;AAEjE,MAAM,MAAM,sBAAsB,GAAG;IACnC,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;IACnB;;;;;OAKG;IACH,YAAY,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAC7D;;;;OAIG;IACH,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACrD;;;;;OAKG;IACH,0BAA0B,CAAC,EAAE,0BAA0B,CAAC;IACxD;;;OAGG;IACH,gBAAgB,CAAC,EAAE,CACjB,SAAS,EAAE,MAAM,KACd,gBAAgB,GAAG,SAAS,GAAG,OAAO,CAAC,gBAAgB,GAAG,SAAS,CAAC,CAAC;IAC1E,sEAAsE;IACtE,WAAW,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAClC,wEAAwE;IACxE,kBAAkB,CAAC,EAAE,MAAM,sBAAsB,EAAE,CAAC;CACrD,CAAC;AAuEF,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,UAAU,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,EACrC,MAAM,EAAE,UAAU,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,GACrC,WAAW,CAkBb;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,UAAU,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,EACtC,KAAK,EAAE,MAAM,GACZ,OAAO,CAQT;AAED,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,cAAc,EACtB,YAAY,EAAE,oBAAoB,EAClC,OAAO,GAAE,sBAA2B,GACnC,eAAe,CAkHjB;AAED,wBAAgB,WAAW,CACzB,MAAM,EAAE,cAAc,EACtB,YAAY,EAAE,oBAAoB,EAClC,OAAO,GAAE,sBAA2B,GACnC,KAAK,CAIP"}
|
|
@@ -8,7 +8,7 @@ export type MemoryToolDeps = {
|
|
|
8
8
|
storage: StorageProvider;
|
|
9
9
|
/** Injected clock (epoch ms). Keeps this module free of ambient time. */
|
|
10
10
|
now: () => number;
|
|
11
|
-
/**
|
|
11
|
+
/** Reachability probe for the local extraction transport. */
|
|
12
12
|
localRuntimeReachable: () => Promise<boolean>;
|
|
13
13
|
/** Local runtime HTTP transport; injected I/O port. */
|
|
14
14
|
fetch: FetchLike;
|
|
@@ -29,8 +29,8 @@ export declare const MemoryWritePayloadSchema: z.ZodObject<{
|
|
|
29
29
|
/**
|
|
30
30
|
* Builds the `openteam-memory` tool. All I/O is injected; the tool itself only
|
|
31
31
|
* orchestrates: gate → local extraction → redaction (inside `extractMemory`) →
|
|
32
|
-
* append-only write.
|
|
33
|
-
*
|
|
32
|
+
* append-only write. Expected validation, availability, and extraction failures
|
|
33
|
+
* return an actionable message without modifying the log.
|
|
34
34
|
*/
|
|
35
35
|
export declare function createMemoryTool(deps: MemoryToolDeps): ToolDefinition;
|
|
36
36
|
//# sourceMappingURL=memoryTool.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"memoryTool.d.ts","sourceRoot":"","sources":["../../src/plugin/memoryTool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,cAAc,EAAQ,MAAM,qBAAqB,CAAC;AAChE,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,KAAK,cAAc,EAAyB,MAAM,kBAAkB,CAAC;AAG9E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"memoryTool.d.ts","sourceRoot":"","sources":["../../src/plugin/memoryTool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,cAAc,EAAQ,MAAM,qBAAqB,CAAC;AAChE,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,KAAK,cAAc,EAAyB,MAAM,kBAAkB,CAAC;AAG9E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAKhD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AA0B3D,MAAM,MAAM,cAAc,GAAG;IAC3B,MAAM,EAAE,cAAc,CAAC;IACvB,OAAO,EAAE,eAAe,CAAC;IACzB,yEAAyE;IACzE,GAAG,EAAE,MAAM,MAAM,CAAC;IAClB,6DAA6D;IAC7D,qBAAqB,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;IAC9C,uDAAuD;IACvD,KAAK,EAAE,SAAS,CAAC;IACjB,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;CACpC,CAAC;AAeF,sDAAsD;AACtD,eAAO,MAAM,wBAAwB;;;;;;;;;;kBAY1B,CAAC;AAEZ;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,cAAc,GAAG,cAAc,CA4GrE"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { ModelSelection } from "../router/types";
|
|
2
|
+
export type OrchestratedModelAuthorization = {
|
|
3
|
+
readonly sessionID: string;
|
|
4
|
+
readonly agent?: string | undefined;
|
|
5
|
+
readonly model: ModelSelection;
|
|
6
|
+
};
|
|
7
|
+
export type OrchestratedModelLease = {
|
|
8
|
+
release(): void;
|
|
9
|
+
};
|
|
10
|
+
export type OrchestratedModelOwnership = {
|
|
11
|
+
authorize(authorization: OrchestratedModelAuthorization): OrchestratedModelLease;
|
|
12
|
+
claim(authorization: OrchestratedModelAuthorization): ModelSelection | undefined;
|
|
13
|
+
};
|
|
14
|
+
export declare function createOrchestratedModelOwnership(): OrchestratedModelOwnership;
|
|
15
|
+
//# sourceMappingURL=modelOwnership.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"modelOwnership.d.ts","sourceRoot":"","sources":["../../src/plugin/modelOwnership.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAEtD,MAAM,MAAM,8BAA8B,GAAG;IAC3C,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACpC,QAAQ,CAAC,KAAK,EAAE,cAAc,CAAC;CAChC,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG;IACnC,OAAO,IAAI,IAAI,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,0BAA0B,GAAG;IACvC,SAAS,CACP,aAAa,EAAE,8BAA8B,GAC5C,sBAAsB,CAAC;IAC1B,KAAK,CACH,aAAa,EAAE,8BAA8B,GAC5C,cAAc,GAAG,SAAS,CAAC;CAC/B,CAAC;AAUF,wBAAgB,gCAAgC,IAAI,0BAA0B,CA+C7E"}
|
|
@@ -1,14 +1,18 @@
|
|
|
1
1
|
import { type ToolDefinition } from "@opencode-ai/plugin";
|
|
2
2
|
import { z } from "zod";
|
|
3
|
+
import type { ModelCapabilityProfile } from "../capabilities/types";
|
|
3
4
|
import type { GraphMode, OpenTeamConfig } from "../config/schema";
|
|
4
5
|
import type { GraphEventV1, GraphSpecV1 } from "../graph/schema";
|
|
5
6
|
import type { RuntimeConcurrencyLimiter } from "../local/concurrency";
|
|
6
7
|
import type { LocalRuntimeId } from "../local/types";
|
|
7
8
|
import { type CoordinatorDeps, type RoleTaskResult } from "../orchestrator/coordinator";
|
|
8
9
|
import { type ReportArtifactProbe } from "../orchestrator/reportDurability";
|
|
9
|
-
import type {
|
|
10
|
+
import type { RosterEntry } from "../orchestrator/roster";
|
|
11
|
+
import type { OpencodeSessionClient, OpencodeSessionStatus } from "../orchestrator/subsessions";
|
|
12
|
+
import type { AvailableModel } from "../router/types";
|
|
10
13
|
import type { GraphJournal } from "../storage/graph/provider";
|
|
11
14
|
import type { EventSink } from "../telemetry/eventLog";
|
|
15
|
+
import type { OrchestratedModelOwnership } from "./modelOwnership";
|
|
12
16
|
import type { ShadowObserver, ShadowPipelineResult } from "./shadowPipeline";
|
|
13
17
|
/**
|
|
14
18
|
* Schema for the `openteam-orchestrate` tool boundary.
|
|
@@ -99,6 +103,7 @@ export type SdkClientPort = {
|
|
|
99
103
|
path: {
|
|
100
104
|
id: string;
|
|
101
105
|
};
|
|
106
|
+
signal?: AbortSignal;
|
|
102
107
|
body: {
|
|
103
108
|
model?: {
|
|
104
109
|
providerID: string;
|
|
@@ -115,6 +120,34 @@ export type SdkClientPort = {
|
|
|
115
120
|
data: unknown;
|
|
116
121
|
error: unknown;
|
|
117
122
|
}>;
|
|
123
|
+
abort(args: {
|
|
124
|
+
path: {
|
|
125
|
+
id: string;
|
|
126
|
+
};
|
|
127
|
+
}): Promise<{
|
|
128
|
+
data: boolean | undefined;
|
|
129
|
+
error: unknown;
|
|
130
|
+
}>;
|
|
131
|
+
status(args?: {
|
|
132
|
+
query?: {
|
|
133
|
+
directory?: string;
|
|
134
|
+
};
|
|
135
|
+
}): Promise<{
|
|
136
|
+
data: Readonly<Record<string, OpencodeSessionStatus>> | undefined;
|
|
137
|
+
error: unknown;
|
|
138
|
+
}>;
|
|
139
|
+
};
|
|
140
|
+
app: {
|
|
141
|
+
agents(args?: {
|
|
142
|
+
query?: {
|
|
143
|
+
directory?: string;
|
|
144
|
+
};
|
|
145
|
+
}): Promise<{
|
|
146
|
+
data: readonly {
|
|
147
|
+
readonly name: string;
|
|
148
|
+
}[] | undefined;
|
|
149
|
+
error: unknown;
|
|
150
|
+
}>;
|
|
118
151
|
};
|
|
119
152
|
};
|
|
120
153
|
/**
|
|
@@ -127,7 +160,8 @@ export type SdkClientPort = {
|
|
|
127
160
|
* type would compile but add an unused abstraction layer. This adapter
|
|
128
161
|
* bridges the SDK client directly to the type the coordinator consumes.
|
|
129
162
|
*/
|
|
130
|
-
export declare function adaptSdkClient(sdk: SdkClientPort): OpencodeSessionClient;
|
|
163
|
+
export declare function adaptSdkClient(sdk: SdkClientPort, orchestratedModelOwnership?: OrchestratedModelOwnership): OpencodeSessionClient;
|
|
164
|
+
export declare function sdkAgentNames(sdk: SdkClientPort, directory?: string): Promise<ReadonlySet<string>>;
|
|
131
165
|
/**
|
|
132
166
|
* Projects `RoleTaskResult[]` into a reference-only `OrchestrateResult`.
|
|
133
167
|
*
|
|
@@ -145,6 +179,10 @@ export type OrchestrateDeps = {
|
|
|
145
179
|
readonly config: OpenTeamConfig;
|
|
146
180
|
readonly now: () => number;
|
|
147
181
|
readonly newDecisionID: () => string;
|
|
182
|
+
readonly timeoutMs?: number;
|
|
183
|
+
readonly abortGraceMs: number;
|
|
184
|
+
readonly statusPollMs: number;
|
|
185
|
+
readonly delay: (ms: number) => Promise<void>;
|
|
148
186
|
/** TUI-safe warning sink; plugin tools must never fall back to console.warn. */
|
|
149
187
|
readonly warn: NonNullable<CoordinatorDeps["warn"]>;
|
|
150
188
|
/** Graph mode resolved from config. `off` disables shadow journaling. */
|
|
@@ -203,7 +241,16 @@ export type OrchestrateDeps = {
|
|
|
203
241
|
* fail-safe: on a missing or unparseable roster it returns an empty set, and it
|
|
204
242
|
* must never throw.
|
|
205
243
|
*/
|
|
206
|
-
readonly
|
|
244
|
+
readonly rosterEntries: () => Promise<readonly RosterEntry[]>;
|
|
245
|
+
readonly availableAgentNames: (directory?: string) => Promise<ReadonlySet<string>>;
|
|
246
|
+
readonly availableModels: () => readonly AvailableModel[];
|
|
247
|
+
readonly capabilityProfiles: () => readonly ModelCapabilityProfile[];
|
|
248
|
+
/**
|
|
249
|
+
* Initial authoritative provider/runtime inventory barrier. Required so the
|
|
250
|
+
* first tool dispatch cannot route against startup placeholders while plugin
|
|
251
|
+
* initialization itself remains free of the host's provider-list cycle.
|
|
252
|
+
*/
|
|
253
|
+
readonly ensureAvailability: () => Promise<void>;
|
|
207
254
|
/**
|
|
208
255
|
* Durability probe (#report-durability). A REQUIRED injected I/O port that
|
|
209
256
|
* answers, in code, whether a role's promised report artifact was actually
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"orchestrateTool.d.ts","sourceRoot":"","sources":["../../src/plugin/orchestrateTool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,cAAc,EAAQ,MAAM,qBAAqB,CAAC;AAChE,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"orchestrateTool.d.ts","sourceRoot":"","sources":["../../src/plugin/orchestrateTool.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chooseModel.d.ts","sourceRoot":"","sources":["../../src/router/chooseModel.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"chooseModel.d.ts","sourceRoot":"","sources":["../../src/router/chooseModel.ts"],"names":[],"mappings":"AA4BA,OAAO,KAAK,EAIV,eAAe,EACf,YAAY,EACb,MAAM,SAAS,CAAC;AA4zBjB,wBAAgB,WAAW,CAAC,KAAK,EAAE,YAAY,GAAG,eAAe,CAkLhE"}
|
package/dist/router/cost.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import type { ModelSelection, RoutingInput } from "./types";
|
|
2
|
-
export declare function estimatedCostUSD(input: RoutingInput, model: ModelSelection): number;
|
|
2
|
+
export declare function estimatedCostUSD(input: RoutingInput, model: ModelSelection): number | null;
|
|
3
3
|
export declare function roundUSD(value: number): number;
|
|
4
4
|
//# sourceMappingURL=cost.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cost.d.ts","sourceRoot":"","sources":["../../src/router/cost.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAW5D,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,YAAY,EACnB,KAAK,EAAE,cAAc,GACpB,MAAM,
|
|
1
|
+
{"version":3,"file":"cost.d.ts","sourceRoot":"","sources":["../../src/router/cost.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAW5D,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,YAAY,EACnB,KAAK,EAAE,cAAc,GACpB,MAAM,GAAG,IAAI,CAcf;AAED,wBAAgB,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAE9C"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import type { ModelSelection } from "./types";
|
|
2
|
+
export type ExecutionMode = "local" | "frontier" | "mixed";
|
|
3
|
+
export type AgentExecutionPolicy = {
|
|
4
|
+
executionMode?: ExecutionMode | undefined;
|
|
5
|
+
model?: ModelSelection | "auto" | undefined;
|
|
6
|
+
fallbacks?: ModelSelection[] | undefined;
|
|
7
|
+
};
|
|
8
|
+
export type ResolvedAgentExecutionPolicy = {
|
|
9
|
+
executionMode: ExecutionMode;
|
|
10
|
+
model: ModelSelection | "auto";
|
|
11
|
+
fallbacks?: ModelSelection[] | undefined;
|
|
12
|
+
};
|
|
13
|
+
export type ResolveExecutionModeInput = {
|
|
14
|
+
agentMode?: ExecutionMode | undefined;
|
|
15
|
+
routerMode?: ExecutionMode | undefined;
|
|
16
|
+
legacyLocalOnly?: boolean | undefined;
|
|
17
|
+
legacyFrontierOnly?: boolean | undefined;
|
|
18
|
+
};
|
|
19
|
+
export type ExecutionPolicyErrorCode = "legacy-modes-conflict" | "router-mode-conflict" | "agent-mode-broadens-global";
|
|
20
|
+
export declare class ExecutionPolicyError extends Error {
|
|
21
|
+
readonly code: ExecutionPolicyErrorCode;
|
|
22
|
+
constructor(code: ExecutionPolicyErrorCode, message: string);
|
|
23
|
+
}
|
|
24
|
+
export declare const DEFAULT_MAX_MODELS_PER_NODE = 2;
|
|
25
|
+
export type ExecutionModeResolution = {
|
|
26
|
+
readonly ok: true;
|
|
27
|
+
readonly mode: ExecutionMode;
|
|
28
|
+
} | {
|
|
29
|
+
readonly ok: false;
|
|
30
|
+
readonly error: ExecutionPolicyError;
|
|
31
|
+
};
|
|
32
|
+
export type AgentExecutionPolicyResolution = {
|
|
33
|
+
readonly ok: true;
|
|
34
|
+
readonly policy: ResolvedAgentExecutionPolicy;
|
|
35
|
+
} | {
|
|
36
|
+
readonly ok: false;
|
|
37
|
+
readonly error: ExecutionPolicyError;
|
|
38
|
+
};
|
|
39
|
+
export declare function effectiveMaxModelsPerNode(configured?: number): number;
|
|
40
|
+
export declare function resolveExecutionModeResult(input: ResolveExecutionModeInput): ExecutionModeResolution;
|
|
41
|
+
export declare function resolveExecutionMode(input: ResolveExecutionModeInput): ExecutionMode;
|
|
42
|
+
export declare function resolveAgentExecutionPolicyResult(routerMode: ExecutionMode | undefined, override?: AgentExecutionPolicy): AgentExecutionPolicyResolution;
|
|
43
|
+
export declare function resolveAgentExecutionPolicy(routerMode: ExecutionMode | undefined, override?: AgentExecutionPolicy): ResolvedAgentExecutionPolicy;
|
|
44
|
+
//# sourceMappingURL=executionPolicy.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"executionPolicy.d.ts","sourceRoot":"","sources":["../../src/router/executionPolicy.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAE9C,MAAM,MAAM,aAAa,GAAG,OAAO,GAAG,UAAU,GAAG,OAAO,CAAC;AAE3D,MAAM,MAAM,oBAAoB,GAAG;IACjC,aAAa,CAAC,EAAE,aAAa,GAAG,SAAS,CAAC;IAC1C,KAAK,CAAC,EAAE,cAAc,GAAG,MAAM,GAAG,SAAS,CAAC;IAC5C,SAAS,CAAC,EAAE,cAAc,EAAE,GAAG,SAAS,CAAC;CAC1C,CAAC;AAEF,MAAM,MAAM,4BAA4B,GAAG;IACzC,aAAa,EAAE,aAAa,CAAC;IAC7B,KAAK,EAAE,cAAc,GAAG,MAAM,CAAC;IAC/B,SAAS,CAAC,EAAE,cAAc,EAAE,GAAG,SAAS,CAAC;CAC1C,CAAC;AAEF,MAAM,MAAM,yBAAyB,GAAG;IACtC,SAAS,CAAC,EAAE,aAAa,GAAG,SAAS,CAAC;IACtC,UAAU,CAAC,EAAE,aAAa,GAAG,SAAS,CAAC;IACvC,eAAe,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IACtC,kBAAkB,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;CAC1C,CAAC;AAEF,MAAM,MAAM,wBAAwB,GAChC,uBAAuB,GACvB,sBAAsB,GACtB,4BAA4B,CAAC;AAEjC,qBAAa,oBAAqB,SAAQ,KAAK;IAC7C,QAAQ,CAAC,IAAI,EAAE,wBAAwB,CAAC;IAExC,YAAY,IAAI,EAAE,wBAAwB,EAAE,OAAO,EAAE,MAAM,EAI1D;CACF;AAED,eAAO,MAAM,2BAA2B,IAAI,CAAC;AAE7C,MAAM,MAAM,uBAAuB,GAC/B;IAAE,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAA;CAAE,GACnD;IAAE,QAAQ,CAAC,EAAE,EAAE,KAAK,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,oBAAoB,CAAA;CAAE,CAAC;AAEjE,MAAM,MAAM,8BAA8B,GACtC;IAAE,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,4BAA4B,CAAA;CAAE,GACpE;IAAE,QAAQ,CAAC,EAAE,EAAE,KAAK,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,oBAAoB,CAAA;CAAE,CAAC;AAEjE,wBAAgB,yBAAyB,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,CAErE;AAeD,wBAAgB,0BAA0B,CACxC,KAAK,EAAE,yBAAyB,GAC/B,uBAAuB,CA6CzB;AAED,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,yBAAyB,GAC/B,aAAa,CAMf;AAED,wBAAgB,iCAAiC,CAC/C,UAAU,EAAE,aAAa,GAAG,SAAS,EACrC,QAAQ,CAAC,EAAE,oBAAoB,GAC9B,8BAA8B,CAmBhC;AAED,wBAAgB,2BAA2B,CACzC,UAAU,EAAE,aAAa,GAAG,SAAS,EACrC,QAAQ,CAAC,EAAE,oBAAoB,GAC9B,4BAA4B,CAM9B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"frontierBaseline.d.ts","sourceRoot":"","sources":["../../src/router/frontierBaseline.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,KAAK,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAE5D;;;;GAIG;AAEH,MAAM,MAAM,kBAAkB,GAAG;IAC/B,KAAK,EAAE,cAAc,CAAC;IACtB,SAAS,EAAE,MAAM,EAAE,CAAC;CACrB,CAAC;AAEF,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,YAAY,EACnB,IAAI,EAAE,cAAc,GACnB,kBAAkB,
|
|
1
|
+
{"version":3,"file":"frontierBaseline.d.ts","sourceRoot":"","sources":["../../src/router/frontierBaseline.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,KAAK,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAE5D;;;;GAIG;AAEH,MAAM,MAAM,kBAAkB,GAAG;IAC/B,KAAK,EAAE,cAAc,CAAC;IACtB,SAAS,EAAE,MAAM,EAAE,CAAC;CACrB,CAAC;AAEF,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,YAAY,EACnB,IAAI,EAAE,cAAc,GACnB,kBAAkB,CA2BpB"}
|
package/dist/router/types.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { BudgetDecision, BudgetState } from "../capabilities/budget";
|
|
2
|
-
import type { ComplexityTier, ModelCapabilityProfile } from "../capabilities/types";
|
|
2
|
+
import type { CapabilityRequirement, ComplexityTier, ModelCapabilityProfile } from "../capabilities/types";
|
|
3
3
|
import type { OpenTeamConfig } from "../config/schema";
|
|
4
|
+
import type { AgentExecutionPolicy } from "./executionPolicy";
|
|
4
5
|
export type ProviderKind = "local" | "frontier" | "router" | "blocked";
|
|
5
6
|
export type ModelSelection = {
|
|
6
7
|
providerID: string;
|
|
@@ -33,7 +34,9 @@ export type RoutingInput = {
|
|
|
33
34
|
availableModels?: AvailableModel[];
|
|
34
35
|
profiles?: ModelCapabilityProfile[];
|
|
35
36
|
tier?: ComplexityTier;
|
|
37
|
+
capabilityRequirement?: CapabilityRequirement;
|
|
36
38
|
budgetState?: BudgetState;
|
|
39
|
+
executionPolicy?: AgentExecutionPolicy;
|
|
37
40
|
};
|
|
38
41
|
export type RoutingDecision = {
|
|
39
42
|
selected: ModelSelection;
|
|
@@ -41,9 +44,12 @@ export type RoutingDecision = {
|
|
|
41
44
|
routeKind: ProviderKind;
|
|
42
45
|
rationale: string[];
|
|
43
46
|
fallbackChain: ModelSelection[];
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
+
/** `null` when no capability/cost profile exists for the selected model. */
|
|
48
|
+
estimatedCostUSD: number | null;
|
|
49
|
+
/** `null` when the resolved all-frontier baseline has no cost profile. */
|
|
50
|
+
baselineCostUSD: number | null;
|
|
51
|
+
/** `null` unless both selected and baseline costs are known. */
|
|
52
|
+
estimatedSavingsUSD: number | null;
|
|
47
53
|
budgetAction: BudgetDecision;
|
|
48
54
|
/**
|
|
49
55
|
* Present when `routeKind === "blocked"`. The request must not be forwarded
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/router/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAC1E,OAAO,KAAK,EACV,cAAc,EACd,sBAAsB,EACvB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/router/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAC1E,OAAO,KAAK,EACV,qBAAqB,EACrB,cAAc,EACd,sBAAsB,EACvB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAE9D,MAAM,MAAM,YAAY,GAAG,OAAO,GAAG,UAAU,GAAG,QAAQ,GAAG,SAAS,CAAC;AAEvE,MAAM,MAAM,cAAc,GAAG;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG,cAAc,GAAG;IAC5C,IAAI,EAAE,YAAY,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;IACnB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,gBAAgB,GACxB,MAAM,GACN,aAAa,GACb,gBAAgB,GAChB,cAAc,CAAC;AAEnB,MAAM,MAAM,WAAW,GAAG;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,OAAO,CAAC;IACjB,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IACpC,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,mBAAmB,CAAC,EAAE,OAAO,CAAC;CAC/B,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IACzB,MAAM,EAAE,cAAc,CAAC;IACvB,IAAI,EAAE,WAAW,CAAC;IAClB,eAAe,CAAC,EAAE,cAAc,EAAE,CAAC;IACnC,QAAQ,CAAC,EAAE,sBAAsB,EAAE,CAAC;IACpC,IAAI,CAAC,EAAE,cAAc,CAAC;IACtB,qBAAqB,CAAC,EAAE,qBAAqB,CAAC;IAC9C,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,eAAe,CAAC,EAAE,oBAAoB,CAAC;CACxC,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,QAAQ,EAAE,cAAc,CAAC;IACzB,IAAI,EAAE,cAAc,CAAC;IACrB,SAAS,EAAE,YAAY,CAAC;IACxB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,aAAa,EAAE,cAAc,EAAE,CAAC;IAChC,4EAA4E;IAC5E,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,0EAA0E;IAC1E,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,gEAAgE;IAChE,mBAAmB,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,YAAY,EAAE,cAAc,CAAC;IAC7B;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC"}
|
|
@@ -32,8 +32,8 @@ export type SessionSummary = {
|
|
|
32
32
|
routeCount: number;
|
|
33
33
|
localCount: number;
|
|
34
34
|
frontierCount: number;
|
|
35
|
-
estimatedCostUSD: number;
|
|
36
|
-
estimatedSavingsUSD: number;
|
|
35
|
+
estimatedCostUSD: number | null;
|
|
36
|
+
estimatedSavingsUSD: number | null;
|
|
37
37
|
realCostUSD: number;
|
|
38
38
|
messageCount: number;
|
|
39
39
|
tokensIn: number;
|
|
@@ -76,8 +76,8 @@ export type EventTotals = {
|
|
|
76
76
|
routeCount: number;
|
|
77
77
|
localCount: number;
|
|
78
78
|
frontierCount: number;
|
|
79
|
-
estimatedCostUSD: number;
|
|
80
|
-
estimatedSavingsUSD: number;
|
|
79
|
+
estimatedCostUSD: number | null;
|
|
80
|
+
estimatedSavingsUSD: number | null;
|
|
81
81
|
realCostUSD: number;
|
|
82
82
|
messageCount: number;
|
|
83
83
|
tokensIn: number;
|