@jmanuelcorral/openteam 0.18.1 → 0.20.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.
Files changed (162) hide show
  1. package/.opencode/openteam.example.json +23 -14
  2. package/AGENTS.md +16 -2
  3. package/README.es.md +300 -209
  4. package/README.md +300 -139
  5. package/dist/capabilities/classify.d.ts.map +1 -1
  6. package/dist/capabilities/normalize.d.ts.map +1 -1
  7. package/dist/certificates/graph-release-certificate.json +2 -2
  8. package/dist/certificates/graph-shadow-certificate.json +2 -2
  9. package/dist/cli/consoleServe.d.ts +16 -0
  10. package/dist/cli/consoleServe.d.ts.map +1 -1
  11. package/dist/cli/graphOperator.d.ts +10 -1
  12. package/dist/cli/graphOperator.d.ts.map +1 -1
  13. package/dist/cli/lifecycleHistoryProvider.d.ts +21 -0
  14. package/dist/cli/lifecycleHistoryProvider.d.ts.map +1 -0
  15. package/dist/cli.d.ts +3 -1
  16. package/dist/cli.d.ts.map +1 -1
  17. package/dist/cli.js +6841 -1555
  18. package/dist/commands/agents.d.ts +16 -4
  19. package/dist/commands/agents.d.ts.map +1 -1
  20. package/dist/commands/dispatch.d.ts.map +1 -1
  21. package/dist/commands/doctor.d.ts.map +1 -1
  22. package/dist/commands/local.d.ts +4 -5
  23. package/dist/commands/local.d.ts.map +1 -1
  24. package/dist/commands/report.d.ts +6 -6
  25. package/dist/commands/report.d.ts.map +1 -1
  26. package/dist/commands/rolesInit.d.ts +10 -12
  27. package/dist/commands/rolesInit.d.ts.map +1 -1
  28. package/dist/commands/setup.d.ts +5 -13
  29. package/dist/commands/setup.d.ts.map +1 -1
  30. package/dist/commands/yolo.d.ts +2 -4
  31. package/dist/commands/yolo.d.ts.map +1 -1
  32. package/dist/config/errors.d.ts.map +1 -1
  33. package/dist/config/executionPolicyDomains.d.ts +18 -0
  34. package/dist/config/executionPolicyDomains.d.ts.map +1 -0
  35. package/dist/config/migrations.d.ts +9 -2
  36. package/dist/config/migrations.d.ts.map +1 -1
  37. package/dist/config/persist.d.ts.map +1 -1
  38. package/dist/config/runtime.d.ts +2 -0
  39. package/dist/config/runtime.d.ts.map +1 -1
  40. package/dist/config/schema.d.ts +128 -13
  41. package/dist/config/schema.d.ts.map +1 -1
  42. package/dist/console/assets.d.ts +22 -1
  43. package/dist/console/assets.d.ts.map +1 -1
  44. package/dist/console/configView.d.ts +2 -7
  45. package/dist/console/configView.d.ts.map +1 -1
  46. package/dist/console/render.d.ts +12 -0
  47. package/dist/console/render.d.ts.map +1 -1
  48. package/dist/console/types.d.ts +2 -2
  49. package/dist/console/types.d.ts.map +1 -1
  50. package/dist/context/schema.d.ts +13 -7
  51. package/dist/context/schema.d.ts.map +1 -1
  52. package/dist/graph/certificate.d.ts.map +1 -1
  53. package/dist/graph/langgraph/adapter.d.ts +7 -8
  54. package/dist/graph/langgraph/adapter.d.ts.map +1 -1
  55. package/dist/graph/langgraph/certification.d.ts +5 -0
  56. package/dist/graph/langgraph/certification.d.ts.map +1 -1
  57. package/dist/graph/langgraph/checkpointReplay.d.ts.map +1 -1
  58. package/dist/graph/langgraph/engine.d.ts +2 -2
  59. package/dist/graph/langgraph/engine.d.ts.map +1 -1
  60. package/dist/graph/langgraph/types.d.ts +11 -6
  61. package/dist/graph/langgraph/types.d.ts.map +1 -1
  62. package/dist/graph/privacyPolicy.d.ts +6 -30
  63. package/dist/graph/privacyPolicy.d.ts.map +1 -1
  64. package/dist/index.d.ts +1 -9
  65. package/dist/index.d.ts.map +1 -1
  66. package/dist/index.js +5992 -1390
  67. package/dist/lifecycle/contracts.d.ts +618 -0
  68. package/dist/lifecycle/contracts.d.ts.map +1 -0
  69. package/dist/lifecycle/historyReader.d.ts +11 -0
  70. package/dist/lifecycle/historyReader.d.ts.map +1 -0
  71. package/dist/lifecycle/historySourceError.d.ts +7 -0
  72. package/dist/lifecycle/historySourceError.d.ts.map +1 -0
  73. package/dist/lifecycle/project.d.ts +3 -0
  74. package/dist/lifecycle/project.d.ts.map +1 -0
  75. package/dist/lifecycle/root.d.ts +3 -0
  76. package/dist/lifecycle/root.d.ts.map +1 -0
  77. package/dist/lifecycle/runtimeRecorder.d.ts +6 -0
  78. package/dist/lifecycle/runtimeRecorder.d.ts.map +1 -0
  79. package/dist/lifecycle/schema.d.ts +487 -0
  80. package/dist/lifecycle/schema.d.ts.map +1 -0
  81. package/dist/mcp/teamMemory.d.ts +2 -2
  82. package/dist/mcp/teamMemory.d.ts.map +1 -1
  83. package/dist/messages/commands.d.ts +22 -35
  84. package/dist/messages/commands.d.ts.map +1 -1
  85. package/dist/messages/executionSetup.d.ts +116 -0
  86. package/dist/messages/executionSetup.d.ts.map +1 -0
  87. package/dist/messages/index.d.ts +2 -0
  88. package/dist/messages/index.d.ts.map +1 -1
  89. package/dist/messages/lifecycle.d.ts +95 -0
  90. package/dist/messages/lifecycle.d.ts.map +1 -0
  91. package/dist/messages/lifecycleRuntime.d.ts +4 -0
  92. package/dist/messages/lifecycleRuntime.d.ts.map +1 -0
  93. package/dist/messages/lifecycleStorage.d.ts +4 -0
  94. package/dist/messages/lifecycleStorage.d.ts.map +1 -0
  95. package/dist/messages/memoryTool.d.ts +17 -0
  96. package/dist/messages/memoryTool.d.ts.map +1 -0
  97. package/dist/messages/orchestration.d.ts +16 -0
  98. package/dist/messages/orchestration.d.ts.map +1 -0
  99. package/dist/messages/routing.d.ts +9 -0
  100. package/dist/messages/routing.d.ts.map +1 -0
  101. package/dist/opencodeArtifacts/orchestratorAgent.d.ts +3 -5
  102. package/dist/opencodeArtifacts/orchestratorAgent.d.ts.map +1 -1
  103. package/dist/orchestrator/coordinator.d.ts +30 -13
  104. package/dist/orchestrator/coordinator.d.ts.map +1 -1
  105. package/dist/orchestrator/graphEffects.d.ts +10 -11
  106. package/dist/orchestrator/graphEffects.d.ts.map +1 -1
  107. package/dist/orchestrator/graphIngress.d.ts +5 -0
  108. package/dist/orchestrator/graphIngress.d.ts.map +1 -1
  109. package/dist/orchestrator/graphRuntime.d.ts +13 -1
  110. package/dist/orchestrator/graphRuntime.d.ts.map +1 -1
  111. package/dist/orchestrator/outputContract.d.ts +5 -6
  112. package/dist/orchestrator/outputContract.d.ts.map +1 -1
  113. package/dist/orchestrator/roles.d.ts +25 -2
  114. package/dist/orchestrator/roles.d.ts.map +1 -1
  115. package/dist/orchestrator/runtimeSelection.d.ts.map +1 -1
  116. package/dist/orchestrator/subsessions.d.ts +52 -1
  117. package/dist/orchestrator/subsessions.d.ts.map +1 -1
  118. package/dist/plugin/availability.d.ts +15 -2
  119. package/dist/plugin/availability.d.ts.map +1 -1
  120. package/dist/plugin/diagnostics.d.ts +1 -0
  121. package/dist/plugin/diagnostics.d.ts.map +1 -1
  122. package/dist/plugin/hooks.d.ts +21 -2
  123. package/dist/plugin/hooks.d.ts.map +1 -1
  124. package/dist/plugin/memoryTool.d.ts +3 -3
  125. package/dist/plugin/memoryTool.d.ts.map +1 -1
  126. package/dist/plugin/modelOwnership.d.ts +15 -0
  127. package/dist/plugin/modelOwnership.d.ts.map +1 -0
  128. package/dist/plugin/orchestrateTool.d.ts +53 -3
  129. package/dist/plugin/orchestrateTool.d.ts.map +1 -1
  130. package/dist/router/chooseModel.d.ts.map +1 -1
  131. package/dist/router/cost.d.ts +1 -1
  132. package/dist/router/cost.d.ts.map +1 -1
  133. package/dist/router/executionPolicy.d.ts +44 -0
  134. package/dist/router/executionPolicy.d.ts.map +1 -0
  135. package/dist/router/frontierBaseline.d.ts.map +1 -1
  136. package/dist/router/types.d.ts +10 -4
  137. package/dist/router/types.d.ts.map +1 -1
  138. package/dist/storage/lifecycle/codec.d.ts +19 -0
  139. package/dist/storage/lifecycle/codec.d.ts.map +1 -0
  140. package/dist/storage/lifecycle/fsLifecycleJournal.d.ts +3 -0
  141. package/dist/storage/lifecycle/fsLifecycleJournal.d.ts.map +1 -0
  142. package/dist/storage/lifecycle/fsLifecycleSupport.d.ts +17 -0
  143. package/dist/storage/lifecycle/fsLifecycleSupport.d.ts.map +1 -0
  144. package/dist/storage/lifecycle/fsLifecycleWriterLivenessProbe.d.ts +3 -0
  145. package/dist/storage/lifecycle/fsLifecycleWriterLivenessProbe.d.ts.map +1 -0
  146. package/dist/telemetry/aggregate.d.ts +4 -4
  147. package/dist/telemetry/aggregate.d.ts.map +1 -1
  148. package/dist/telemetry/diagnostics.d.ts.map +1 -1
  149. package/dist/telemetry/events.d.ts +6 -6
  150. package/dist/telemetry/otel.d.ts.map +1 -1
  151. package/dist/telemetry/types.d.ts +3 -3
  152. package/dist/web/configApi.d.ts +3 -1
  153. package/dist/web/configApi.d.ts.map +1 -1
  154. package/dist/web/graphRoute.d.ts +39 -1
  155. package/dist/web/graphRoute.d.ts.map +1 -1
  156. package/dist/web/server.d.ts +19 -0
  157. package/dist/web/server.d.ts.map +1 -1
  158. package/dist/web/start.d.ts +11 -0
  159. package/dist/web/start.d.ts.map +1 -1
  160. package/dist/web/watch.d.ts +17 -2
  161. package/dist/web/watch.d.ts.map +1 -1
  162. package/package.json +1 -1
@@ -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,CA4BpB"}
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"}
@@ -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
- estimatedCostUSD: number;
45
- baselineCostUSD: number;
46
- estimatedSavingsUSD: number;
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;AAEvD,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,WAAW,CAAC,EAAE,WAAW,CAAC;CAC3B,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,gBAAgB,EAAE,MAAM,CAAC;IACzB,eAAe,EAAE,MAAM,CAAC;IACxB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,YAAY,EAAE,cAAc,CAAC;IAC7B;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,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"}
@@ -0,0 +1,19 @@
1
+ import type { LifecycleEventV1 } from "../../lifecycle/contracts";
2
+ export declare const LIFECYCLE_CODEC_VERSION: 1;
3
+ export declare const LIFECYCLE_GENESIS_DIGEST: string;
4
+ export type LifecycleCodecErrorCode = "bad-frame" | "bad-version" | "bad-sequence" | "chain-break" | "bad-checksum";
5
+ export declare class LifecycleCodecError extends Error {
6
+ readonly code: LifecycleCodecErrorCode;
7
+ constructor(code: LifecycleCodecErrorCode);
8
+ }
9
+ export declare function encodeLifecycleFrame(previousDigest: string, event: LifecycleEventV1): {
10
+ readonly line: string;
11
+ readonly digest: string;
12
+ };
13
+ export declare function encodeLifecycleJournal(events: readonly LifecycleEventV1[]): string;
14
+ export declare function decodeLifecycleJournal(text: string): {
15
+ readonly events: readonly LifecycleEventV1[];
16
+ readonly digest: string;
17
+ readonly partialTail: boolean;
18
+ };
19
+ //# sourceMappingURL=codec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"codec.d.ts","sourceRoot":"","sources":["../../../src/storage/lifecycle/codec.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAGlE,eAAO,MAAM,uBAAuB,EAAG,CAAU,CAAC;AAClD,eAAO,MAAM,wBAAwB,QAEpC,CAAC;AAmCF,MAAM,MAAM,uBAAuB,GAC/B,WAAW,GACX,aAAa,GACb,cAAc,GACd,aAAa,GACb,cAAc,CAAC;AAEnB,qBAAa,mBAAoB,SAAQ,KAAK;IAC5C,QAAQ,CAAC,IAAI,EAAE,uBAAuB,CAAC;IAEvC,YAAY,IAAI,EAAE,uBAAuB,EAIxC;CACF;AAED,wBAAgB,oBAAoB,CAClC,cAAc,EAAE,MAAM,EACtB,KAAK,EAAE,gBAAgB,GACtB;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAYpD;AAED,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,SAAS,gBAAgB,EAAE,GAClC,MAAM,CASR;AAED,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,GAAG;IACpD,QAAQ,CAAC,MAAM,EAAE,SAAS,gBAAgB,EAAE,CAAC;IAC7C,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC;CAC/B,CAkDA"}
@@ -0,0 +1,3 @@
1
+ import type { CreateFsLifecycleJournal } from "../../lifecycle/contracts";
2
+ export declare const createFsLifecycleJournal: CreateFsLifecycleJournal;
3
+ //# sourceMappingURL=fsLifecycleJournal.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fsLifecycleJournal.d.ts","sourceRoot":"","sources":["../../../src/storage/lifecycle/fsLifecycleJournal.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EACV,wBAAwB,EAWzB,MAAM,2BAA2B,CAAC;AA6NnC,eAAO,MAAM,wBAAwB,EAAE,wBA2YtC,CAAC"}
@@ -0,0 +1,17 @@
1
+ export declare class LifecycleFsError extends Error {
2
+ readonly kind: "conflict" | "corrupt" | "missing" | "unavailable";
3
+ constructor(kind: LifecycleFsError["kind"]);
4
+ }
5
+ export declare function isMissingFsError(error: unknown): boolean;
6
+ export declare function validateRunID(runID: string): void;
7
+ export declare function resolvedLifecycleRoot(root: string): string;
8
+ export declare function directRunPath(root: string, runID: string): string;
9
+ export declare function assertExistingSafeRun(root: string, runID: string): string;
10
+ export declare function assertSafeRegularFile(path: string): void;
11
+ export declare function readUtf8(path: string): string | undefined;
12
+ export declare function writeDurable(path: string, content: string): void;
13
+ export declare function appendDurable(path: string, content: string): void;
14
+ export declare function writeDurableAtomically(path: string, content: string): void;
15
+ export declare function readLockContents(path: string): string | undefined;
16
+ export declare function withRunMutationLock<T>(runDir: string, mutate: () => T): T;
17
+ //# sourceMappingURL=fsLifecycleSupport.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fsLifecycleSupport.d.ts","sourceRoot":"","sources":["../../../src/storage/lifecycle/fsLifecycleSupport.ts"],"names":[],"mappings":"AAqBA,qBAAa,gBAAiB,SAAQ,KAAK;IACzC,QAAQ,CAAC,IAAI,EAAE,UAAU,GAAG,SAAS,GAAG,SAAS,GAAG,aAAa,CAAC;IAElE,YAAY,IAAI,EAAE,gBAAgB,CAAC,MAAM,CAAC,EAIzC;CACF;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAOxD;AAWD,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAIjD;AAED,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAe1D;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAOjE;AAED,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CA8BzE;AAED,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAaxD;AAED,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAUzD;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAQhE;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAQjE;AAED,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAW1E;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAYjE;AAED,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,CA+BzE"}
@@ -0,0 +1,3 @@
1
+ import type { CreateFsLifecycleWriterLivenessProbe } from "../../lifecycle/contracts";
2
+ export declare const createFsLifecycleWriterLivenessProbe: CreateFsLifecycleWriterLivenessProbe;
3
+ //# sourceMappingURL=fsLifecycleWriterLivenessProbe.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fsLifecycleWriterLivenessProbe.d.ts","sourceRoot":"","sources":["../../../src/storage/lifecycle/fsLifecycleWriterLivenessProbe.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,oCAAoC,EAGrC,MAAM,2BAA2B,CAAC;AASnC,eAAO,MAAM,oCAAoC,EAAE,oCAiD/C,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;
@@ -1 +1 @@
1
- {"version":3,"file":"aggregate.d.ts","sourceRoot":"","sources":["../../src/telemetry/aggregate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"aggregate.d.ts","sourceRoot":"","sources":["../../src/telemetry/aggregate.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"diagnostics.d.ts","sourceRoot":"","sources":["../../src/telemetry/diagnostics.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,gBAAgB,YAC3B,6BAA6B,EAC7B,gBAAgB,EAChB,qBAAqB,EACrB,mBAAmB,EACnB,2BAA2B,EAC3B,wBAAwB,EACxB,uBAAuB,EACvB,qBAAqB,EACrB,8BAA8B,EAC9B,eAAe,EACf,wBAAwB,EACxB,mBAAmB,EACnB,wBAAwB,EACxB,cAAc,CACN,CAAC;AAEX,MAAM,MAAM,cAAc,GAAG,CAAC,OAAO,gBAAgB,CAAC,CAAC,MAAM,CAAC,CAAC;AAE/D;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,cAAc,GAAG,MAAM,CA+BlE"}
1
+ {"version":3,"file":"diagnostics.d.ts","sourceRoot":"","sources":["../../src/telemetry/diagnostics.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,gBAAgB,YAC3B,6BAA6B,EAC7B,gBAAgB,EAChB,qBAAqB,EACrB,mBAAmB,EACnB,2BAA2B,EAC3B,wBAAwB,EACxB,uBAAuB,EACvB,qBAAqB,EACrB,8BAA8B,EAC9B,eAAe,EACf,wBAAwB,EACxB,mBAAmB,EACnB,wBAAwB,EACxB,cAAc,CACN,CAAC;AAEX,MAAM,MAAM,cAAc,GAAG,CAAC,OAAO,gBAAgB,CAAC,CAAC,MAAM,CAAC,CAAC;AAE/D;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,cAAc,GAAG,MAAM,CA+BlE"}
@@ -35,9 +35,9 @@ export declare const RouteEventSchema: z.ZodObject<{
35
35
  modelID: z.ZodString;
36
36
  }, z.core.$strict>;
37
37
  rationale: z.ZodString;
38
- estimatedCostUSD: z.ZodNumber;
39
- baselineCostUSD: z.ZodNumber;
40
- estimatedSavingsUSD: z.ZodNumber;
38
+ estimatedCostUSD: z.ZodNullable<z.ZodNumber>;
39
+ baselineCostUSD: z.ZodNullable<z.ZodNumber>;
40
+ estimatedSavingsUSD: z.ZodNullable<z.ZodNumber>;
41
41
  budgetAction: z.ZodString;
42
42
  tokensIn: z.ZodOptional<z.ZodNumber>;
43
43
  tokensOut: z.ZodOptional<z.ZodNumber>;
@@ -271,9 +271,9 @@ export declare const OpenTeamEventSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
271
271
  modelID: z.ZodString;
272
272
  }, z.core.$strict>;
273
273
  rationale: z.ZodString;
274
- estimatedCostUSD: z.ZodNumber;
275
- baselineCostUSD: z.ZodNumber;
276
- estimatedSavingsUSD: z.ZodNumber;
274
+ estimatedCostUSD: z.ZodNullable<z.ZodNumber>;
275
+ baselineCostUSD: z.ZodNullable<z.ZodNumber>;
276
+ estimatedSavingsUSD: z.ZodNullable<z.ZodNumber>;
277
277
  budgetAction: z.ZodString;
278
278
  tokensIn: z.ZodOptional<z.ZodNumber>;
279
279
  tokensOut: z.ZodOptional<z.ZodNumber>;
@@ -1 +1 @@
1
- {"version":3,"file":"otel.d.ts","sourceRoot":"","sources":["../../src/telemetry/otel.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAE9C;;;;;;;;;;;;;;GAcG;AAEH;;;;GAIG;AACH,MAAM,MAAM,cAAc,GAAG;IAC3B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,UAAU,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC;CAC1E,CAAC;AAEF;;;;GAIG;AACH,MAAM,MAAM,gBAAgB,GAAG;IAC7B,MAAM,EAAE,CAAC,MAAM,EAAE,cAAc,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;CAC1D,CAAC;AAEF;;;;GAIG;AACH,MAAM,MAAM,YAAY,GAAG;IACzB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAC/C,CAAC;AAEF;;;;;GAKG;AACH,MAAM,MAAM,iBAAiB,GAAG;IAC9B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,SAAS,EAAE,WAAW,GAAG,QAAQ,CAAC;CAC5C,CAAC;AAYF;;;;;;;;;GASG;AACH,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,aAAa,EACpB,OAAO,CAAC,EAAE,iBAAiB,GAC1B,cAAc,CA8BhB;AAED,oDAAoD;AACpD,MAAM,MAAM,YAAY,GAAG;IACzB,+BAA+B;IAC/B,QAAQ,CAAC,QAAQ,EAAE,gBAAgB,CAAC;IACpC,oEAAoE;IACpE,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IAC5C,0EAA0E;IAC1E,QAAQ,CAAC,QAAQ,CAAC,EAAE,YAAY,CAAC;IACjC,8DAA8D;IAC9D,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,cAAc,CAAC;CAC7D,CAAC;AAEF;;;;;;;;GAQG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,YAAY,GAAG,SAAS,CA2B5D"}
1
+ {"version":3,"file":"otel.d.ts","sourceRoot":"","sources":["../../src/telemetry/otel.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAE9C;;;;;;;;;;;;;;GAcG;AAEH;;;;GAIG;AACH,MAAM,MAAM,cAAc,GAAG;IAC3B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,UAAU,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC;CAC1E,CAAC;AAEF;;;;GAIG;AACH,MAAM,MAAM,gBAAgB,GAAG;IAC7B,MAAM,EAAE,CAAC,MAAM,EAAE,cAAc,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;CAC1D,CAAC;AAEF;;;;GAIG;AACH,MAAM,MAAM,YAAY,GAAG;IACzB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAC/C,CAAC;AAEF;;;;;GAKG;AACH,MAAM,MAAM,iBAAiB,GAAG;IAC9B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,SAAS,EAAE,WAAW,GAAG,QAAQ,CAAC;CAC5C,CAAC;AAYF;;;;;;;;;GASG;AACH,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,aAAa,EACpB,OAAO,CAAC,EAAE,iBAAiB,GAC1B,cAAc,CAkChB;AAED,oDAAoD;AACpD,MAAM,MAAM,YAAY,GAAG;IACzB,+BAA+B;IAC/B,QAAQ,CAAC,QAAQ,EAAE,gBAAgB,CAAC;IACpC,oEAAoE;IACpE,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IAC5C,0EAA0E;IAC1E,QAAQ,CAAC,QAAQ,CAAC,EAAE,YAAY,CAAC;IACjC,8DAA8D;IAC9D,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,cAAc,CAAC;CAC7D,CAAC;AAEF;;;;;;;;GAQG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,YAAY,GAAG,SAAS,CA2B5D"}
@@ -20,9 +20,9 @@ export declare const CostRecordSchema: z.ZodObject<{
20
20
  modelID: z.ZodString;
21
21
  }, z.core.$strict>;
22
22
  rationale: z.ZodString;
23
- estimatedCostUSD: z.ZodNumber;
24
- baselineCostUSD: z.ZodNumber;
25
- estimatedSavingsUSD: z.ZodNumber;
23
+ estimatedCostUSD: z.ZodNullable<z.ZodNumber>;
24
+ baselineCostUSD: z.ZodNullable<z.ZodNumber>;
25
+ estimatedSavingsUSD: z.ZodNullable<z.ZodNumber>;
26
26
  budgetAction: z.ZodString;
27
27
  tokensIn: z.ZodOptional<z.ZodNumber>;
28
28
  tokensOut: z.ZodOptional<z.ZodNumber>;
@@ -67,6 +67,8 @@ export declare function auditValue(value: unknown): Omit<ConfigAuditEntry, "path
67
67
  * never round-trip through the read endpoint even if one ever leaked into config.
68
68
  */
69
69
  export declare function scrubSecretStrings(value: unknown, secrets: readonly string[]): unknown;
70
+ /** Removes the retired routing setting from the editable representation. */
71
+ export declare function withoutDeprecatedPrivacyMode(config: OpenTeamConfig): OpenTeamConfig;
70
72
  export type ConfigSecretDescriptor = {
71
73
  readonly key: string;
72
74
  readonly source: typeof SET_VIA_ENVIRONMENT;
@@ -150,5 +152,5 @@ export type ConfigEditor = ReturnType<typeof createConfigEditor>;
150
152
  * once at load. Kept beside `HOT_RELOADABLE_KEYS` as the single classification
151
153
  * source of truth (#193).
152
154
  */
153
- export declare const RESTART_REQUIRED_KEYS: readonly ["baseline", "router", "local", "privacyMode", "graph", "orchestrator", "memory", "console.host", "console.port"];
155
+ export declare const RESTART_REQUIRED_KEYS: readonly ["baseline", "router", "local", "graph", "orchestrator", "memory", "console.host", "console.port"];
154
156
  //# sourceMappingURL=configApi.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"configApi.d.ts","sourceRoot":"","sources":["../../src/web/configApi.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"configApi.d.ts","sourceRoot":"","sources":["../../src/web/configApi.ts"],"names":[],"mappings":"AASA,OAAO,EACL,KAAK,cAAc,EAEpB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AA6B3D;;;;;;;GAOG;AACH,eAAO,MAAM,qBAAqB,YAChC,gBAAgB,EAChB,cAAc,EACd,cAAc,CACN,CAAC;AAEX;;;;;;;;GAQG;AACH,eAAO,MAAM,mBAAmB,YAAI,mBAAmB,CAAU,CAAC;AAElE;;;GAGG;AACH,eAAO,MAAM,iBAAiB;aAE1B,GAAG,EAAE,4BAA4B;aACjC,MAAM,EAAE,uCAAuC;aAC/C,KAAK,EAAE,wCAAwC;EAEzC,CAAC;AAEX,eAAO,MAAM,mBAAmB,EAAG,qBAA8B,CAAC;AAElE,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAI3D;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEzD;AAwBD;;;;GAIG;AACH,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,OAAO,EACb,IAAI,EAAE,OAAO,EACb,IAAI,SAAK,GACR,MAAM,EAAE,CAgBV;AA8BD,+EAA+E;AAC/E,MAAM,MAAM,gBAAgB,GAAG;IAC7B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,IAAI,CAAC;CAC1C,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAC;IAC9B,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IACpC,QAAQ,CAAC,OAAO,EAAE,SAAS,gBAAgB,EAAE,CAAC;IAC9C,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC;CAChC,CAAC;AAEF;;;;;;GAMG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAYzE;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,OAAO,EACd,OAAO,EAAE,SAAS,MAAM,EAAE,GACzB,OAAO,CAyBT;AAED,4EAA4E;AAC5E,wBAAgB,4BAA4B,CAC1C,MAAM,EAAE,cAAc,GACrB,cAAc,CAGhB;AAED,MAAM,MAAM,sBAAsB,GAAG;IACnC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,MAAM,EAAE,OAAO,mBAAmB,CAAC;IAC5C,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC;IAChC,QAAQ,CAAC,MAAM,EAAE;QACf,QAAQ,CAAC,aAAa,EAAE,SAAS,MAAM,EAAE,CAAC;QAC1C,QAAQ,CAAC,eAAe,EAAE,SAAS,MAAM,EAAE,CAAC;KAC7C,CAAC;IACF,QAAQ,CAAC,OAAO,EAAE;QAChB,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;QACzB,QAAQ,CAAC,mBAAmB,EAAE,SAAS,MAAM,EAAE,CAAC;KACjD,CAAC;IACF,QAAQ,CAAC,OAAO,EAAE,SAAS,sBAAsB,EAAE,CAAC;CACrD,CAAC;AAEF,MAAM,MAAM,iBAAiB,GACzB;IACE,QAAQ,CAAC,MAAM,EAAE,GAAG,CAAC;IACrB,QAAQ,CAAC,IAAI,EAAE;QACb,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAC;QAClB,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;QACpC,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;QACpC,QAAQ,CAAC,cAAc,EAAE,SAAS,MAAM,EAAE,CAAC;QAC3C,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;QAC5B,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC;KAChC,CAAC;CACH,GACD;IACE,QAAQ,CAAC,MAAM,EAAE,GAAG,CAAC;IACrB,QAAQ,CAAC,IAAI,EAAE;QAAE,QAAQ,CAAC,EAAE,EAAE,KAAK,CAAC;QAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;CAC/D,CAAC;AAEN,MAAM,MAAM,iBAAiB,GAAG;IAC9B,OAAO,EAAE,eAAe,CAAC;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,iFAAiF;IACjF,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,CAAC;IAC3C,yEAAyE;IACzE,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,iBAAiB,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5D,+DAA+D;IAC/D,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;IACnB;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC1C,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,yBAAyB,gDACS,CAAC;AAEhD;;;;;;;GAOG;AACH,MAAM,MAAM,gBAAgB,GAAG;IAC7B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,IAAI,EAAE,iBAAiB,GAAG,gBAAgB,CAAC;IACpD,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC;CACvB,CAAC;AAEF,wBAAgB,eAAe,IAAI,SAAS,gBAAgB,EAAE,CAS7D;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,iBAAiB;;YAgCzC,OAAO,CAAC,gBAAgB,CAAC;wBA4Bb,OAAO,GAAG,OAAO,CAAC,iBAAiB,CAAC;EA+FjE;AAED,MAAM,MAAM,YAAY,GAAG,UAAU,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAEjE;;;;;GAKG;AACH,eAAO,MAAM,qBAAqB,YAChC,UAAU,EACV,QAAQ,EACR,OAAO,EACP,OAAO,EACP,cAAc,EACd,QAAQ,EACR,cAAc,EACd,cAAc,CACN,CAAC"}
@@ -1,4 +1,5 @@
1
1
  import type { IncomingMessage, ServerResponse } from "node:http";
2
+ import type { LifecycleHistoryReader, LifecycleHistoryResponseV1 } from "../lifecycle/contracts";
2
3
  import type { GraphViewProjectionV1 } from "../telemetry/graphView";
3
4
  /**
4
5
  * Additive HTTP endpoint serving the graph view's reference-only projection
@@ -39,10 +40,20 @@ export type GraphDisabledEnvelope = {
39
40
  /** Remediation text naming both flags the operator has to set. */
40
41
  export declare const GRAPH_DISABLED_REMEDIATION: 'Agent tree is off. In .opencode/openteam.json set graph.mode to a value other than "off" and console.graphView.enabled to true, then restart the console.';
41
42
  export declare const GRAPH_DISABLED_ENVELOPE: GraphDisabledEnvelope;
42
- /** SSE event type for the graph channel, multiplexed over `/events`. */
43
+ /** SSE event type for the legacy graph channel, multiplexed over `/events`. */
43
44
  export declare const GRAPH_SSE_EVENT: "graph";
45
+ /**
46
+ * SSE event type for lifecycle head-advance invalidation hints.
47
+ * Format: `event: graph-append\nid: <runID>:<head>\ndata: {...}\n\n`
48
+ */
49
+ export declare const GRAPH_APPEND_SSE_EVENT: "graph-append";
44
50
  /** Graph-channel SSE frame for an already serialized JSON payload. */
45
51
  export declare function graphSseMessage(json: string): string;
52
+ /**
53
+ * Lifecycle head-advance SSE frame.
54
+ * The `id` field enables the `Last-Event-ID` reconnect mechanism.
55
+ */
56
+ export declare function graphAppendSseMessage(runID: string, head: number): string;
46
57
  /**
47
58
  * Enruta `GET /api/graph`. Devuelve `true` si atendió (y respondió) la petición,
48
59
  * `false` para que el servidor siga con sus rutas. Método ≠ GET → 405; sin token
@@ -50,4 +61,31 @@ export declare function graphSseMessage(json: string): string;
50
61
  * (o `null` si no hay run activo).
51
62
  */
52
63
  export declare function handleGraphRoute(request: IncomingMessage, response: ServerResponse, url: URL, deps: GraphRouteDeps): Promise<boolean>;
64
+ /**
65
+ * Dependencies for the lifecycle history endpoint.
66
+ * When present in server deps, `handleLifecycleHistoryRoute` supersedes
67
+ * `handleGraphRoute` for `GET /api/graph` requests, returning
68
+ * `LifecycleHistoryResponseV1` instead of `GraphViewProjectionV1`.
69
+ */
70
+ export type LifecycleHistoryRouteDeps = {
71
+ reader: LifecycleHistoryReader;
72
+ /** Remote-exposure token (same parity as `/api/state`). */
73
+ remoteToken?: string;
74
+ };
75
+ /** HTTP status codes for lifecycle history error codes per ADR. */
76
+ export declare const LIFECYCLE_HTTP_STATUS: Readonly<Record<string, number>>;
77
+ /** Shared URL boundary for API and the first server-rendered prefix. */
78
+ export declare function readLifecycleHistoryQuery(reader: LifecycleHistoryReader, params: URLSearchParams): Promise<LifecycleHistoryResponseV1>;
79
+ /**
80
+ * Handles `GET /api/graph?run=<runID>&cursor=<n>` for the lifecycle history
81
+ * endpoint. Returns `true` when the request was handled, `false` to fall
82
+ * through to the next handler.
83
+ *
84
+ * Implements ADR endpoint semantics:
85
+ * - Missing `run` → select newest run by lifecycle `updatedAt` / `runID`.
86
+ * - Missing `cursor` → follow live (current head).
87
+ * - Explicit `cursor` → paused historical prefix.
88
+ * - Returns `LifecycleHistoryResponseV1` (replaces old `GraphViewProjectionV1`).
89
+ */
90
+ export declare function handleLifecycleHistoryRoute(request: IncomingMessage, response: ServerResponse, url: URL, deps: LifecycleHistoryRouteDeps): Promise<boolean>;
53
91
  //# sourceMappingURL=graphRoute.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"graphRoute.d.ts","sourceRoot":"","sources":["../../src/web/graphRoute.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAGjE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAEpE;;;;;;;;;;;;GAYG;AACH,MAAM,MAAM,cAAc,GAAG;IAC3B,4EAA4E;IAC5E,QAAQ,EAAE,MAAM,OAAO,CAAC,qBAAqB,GAAG,IAAI,CAAC,CAAC;IACtD;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF;;;;;;;;GAQG;AACH,MAAM,MAAM,qBAAqB,GAAG;IAClC,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,gBAAgB,CAAC;IAClC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;CAC9B,CAAC;AAEF,kEAAkE;AAClE,eAAO,MAAM,0BAA0B,EACrC,2JAAoK,CAAC;AAEvK,eAAO,MAAM,uBAAuB,EAAE,qBAIrC,CAAC;AAIF,wEAAwE;AACxE,eAAO,MAAM,eAAe,EAAG,OAAgB,CAAC;AAEhD,sEAAsE;AACtE,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEpD;AAoBD;;;;;GAKG;AACH,wBAAsB,gBAAgB,CACpC,OAAO,EAAE,eAAe,EACxB,QAAQ,EAAE,cAAc,EACxB,GAAG,EAAE,GAAG,EACR,IAAI,EAAE,cAAc,GACnB,OAAO,CAAC,OAAO,CAAC,CAsBlB"}
1
+ {"version":3,"file":"graphRoute.d.ts","sourceRoot":"","sources":["../../src/web/graphRoute.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAGjE,OAAO,KAAK,EACV,sBAAsB,EACtB,0BAA0B,EAC3B,MAAM,wBAAwB,CAAC;AAChC,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAEpE;;;;;;;;;;;;GAYG;AACH,MAAM,MAAM,cAAc,GAAG;IAC3B,4EAA4E;IAC5E,QAAQ,EAAE,MAAM,OAAO,CAAC,qBAAqB,GAAG,IAAI,CAAC,CAAC;IACtD;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF;;;;;;;;GAQG;AACH,MAAM,MAAM,qBAAqB,GAAG;IAClC,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,gBAAgB,CAAC;IAClC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;CAC9B,CAAC;AAEF,kEAAkE;AAClE,eAAO,MAAM,0BAA0B,EACrC,2JAAoK,CAAC;AAEvK,eAAO,MAAM,uBAAuB,EAAE,qBAIrC,CAAC;AAIF,+EAA+E;AAC/E,eAAO,MAAM,eAAe,EAAG,OAAgB,CAAC;AAEhD;;;GAGG;AACH,eAAO,MAAM,sBAAsB,EAAG,cAAuB,CAAC;AAE9D,sEAAsE;AACtE,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEpD;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAGzE;AAoBD;;;;;GAKG;AACH,wBAAsB,gBAAgB,CACpC,OAAO,EAAE,eAAe,EACxB,QAAQ,EAAE,cAAc,EACxB,GAAG,EAAE,GAAG,EACR,IAAI,EAAE,cAAc,GACnB,OAAO,CAAC,OAAO,CAAC,CAsBlB;AAMD;;;;;GAKG;AACH,MAAM,MAAM,yBAAyB,GAAG;IACtC,MAAM,EAAE,sBAAsB,CAAC;IAC/B,2DAA2D;IAC3D,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,mEAAmE;AACnE,eAAO,MAAM,qBAAqB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAOlE,CAAC;AAaF,wEAAwE;AACxE,wBAAsB,yBAAyB,CAC7C,MAAM,EAAE,sBAAsB,EAC9B,MAAM,EAAE,eAAe,GACtB,OAAO,CAAC,0BAA0B,CAAC,CAmBrC;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,2BAA2B,CAC/C,OAAO,EAAE,eAAe,EACxB,QAAQ,EAAE,cAAc,EACxB,GAAG,EAAE,GAAG,EACR,IAAI,EAAE,yBAAyB,GAC9B,OAAO,CAAC,OAAO,CAAC,CAgClB"}
@@ -3,6 +3,7 @@ import type { ConsoleConfig, GraphMode } from "../config/schema";
3
3
  import type { ConsoleClient } from "../console/opencodeClient";
4
4
  import type { PtyClient } from "../console/pty";
5
5
  import type { ConsoleInputs } from "../console/state";
6
+ import type { LifecycleHistoryReader } from "../lifecycle/contracts";
6
7
  import type { GraphViewProjectionV1 } from "../telemetry/graphView";
7
8
  import { type ConfigRouteDeps } from "./configRoute";
8
9
  import { type StorageRouteDeps } from "./storageRoute";
@@ -74,12 +75,30 @@ export type ConsoleServerDeps = {
74
75
  * `graphApi`. Absent/`false` means the tree is not marked disabled.
75
76
  */
76
77
  graphDisabled?: boolean;
78
+ /**
79
+ * Lifecycle history reader for the new `GET /api/graph?run=&cursor=` endpoint
80
+ * and `event: graph-append` SSE invalidation hints. When provided, the
81
+ * lifecycle history route supersedes the legacy `graphApi` route so that
82
+ * `GET /api/graph` returns `LifecycleHistoryResponseV1` instead of a raw
83
+ * `GraphViewProjectionV1`. The legacy `graphApi` can remain for other
84
+ * consumers; both coexist in `ConsoleServerDeps`.
85
+ */
86
+ lifecycleHistoryApi?: {
87
+ reader: LifecycleHistoryReader;
88
+ };
77
89
  };
78
90
  export type ConsoleServer = {
79
91
  url: string;
80
92
  port: number;
81
93
  /** Reevalúa el estado y lo empuja a los clientes SSE conectados. */
82
94
  notify: () => Promise<void>;
95
+ /**
96
+ * Pushes a `graph-append` SSE invalidation hint to connected browsers.
97
+ * Called by the lifecycle filesystem watcher when a durable head advance is
98
+ * observed. The browser ignores stale/duplicate notices and always fetches
99
+ * the full prefix from the endpoint.
100
+ */
101
+ notifyLifecycleAppend: (runID: string, head: number) => void;
83
102
  close: () => void;
84
103
  };
85
104
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/web/server.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,IAAI,gBAAgB,EAIjC,MAAM,WAAW,CAAC;AACnB,OAAO,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACjE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAEhD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAGtD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AACpE,OAAO,EAAE,KAAK,eAAe,EAAqB,MAAM,eAAe,CAAC;AAQxE,OAAO,EAAsB,KAAK,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAW3E,MAAM,MAAM,iBAAiB,GAAG;IAC9B,iEAAiE;IACjE,YAAY,EAAE,MAAM,OAAO,CAAC,aAAa,CAAC,CAAC;IAC3C,MAAM,EAAE,aAAa,CAAC;IACtB;;;;;OAKG;IACH,gBAAgB,CAAC,EAAE,MAAM,aAAa,CAAC;IACvC;;;OAGG;IACH,SAAS,CAAC,EAAE,eAAe,CAAC;IAC5B,2EAA2E;IAC3E,YAAY,CAAC,EAAE,OAAO,gBAAgB,CAAC;IACvC,sCAAsC;IACtC,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAChC,8EAA8E;IAC9E,OAAO,CAAC,EAAE;QACR,KAAK,EAAE,MAAM,CAAC;QACd,eAAe,EAAE,OAAO,CAAC;QACzB;;;;;WAKG;QACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;QAC3B,+DAA+D;QAC/D,UAAU,CAAC,EAAE,OAAO,CAAC;QACrB;;;;WAIG;QACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;QAC5B,YAAY,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,aAAa,CAAC;QAClD,eAAe,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,SAAS,CAAC;KACnD,CAAC;IACF;;;OAGG;IACH,UAAU,CAAC,EAAE,gBAAgB,CAAC;IAC9B;;;;;OAKG;IACH,QAAQ,CAAC,EAAE;QACT,QAAQ,EAAE,MAAM,OAAO,CAAC,qBAAqB,GAAG,IAAI,CAAC,CAAC;KACvD,CAAC;IACF,oFAAoF;IACpF,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB;;;;;;;;OAQG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,oEAAoE;IACpE,MAAM,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5B,KAAK,EAAE,MAAM,IAAI,CAAC;CACnB,CAAC;AA0GF;;;;;;;;;;;GAWG;AACH,wBAAsB,mBAAmB,CACvC,IAAI,EAAE,iBAAiB,GACtB,OAAO,CAAC,aAAa,CAAC,CAuNxB"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/web/server.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,IAAI,gBAAgB,EAIjC,MAAM,WAAW,CAAC;AACnB,OAAO,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACjE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAEhD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAGtD,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AACrE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AACpE,OAAO,EAAE,KAAK,eAAe,EAAqB,MAAM,eAAe,CAAC;AAYxE,OAAO,EAAsB,KAAK,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAW3E,MAAM,MAAM,iBAAiB,GAAG;IAC9B,iEAAiE;IACjE,YAAY,EAAE,MAAM,OAAO,CAAC,aAAa,CAAC,CAAC;IAC3C,MAAM,EAAE,aAAa,CAAC;IACtB;;;;;OAKG;IACH,gBAAgB,CAAC,EAAE,MAAM,aAAa,CAAC;IACvC;;;OAGG;IACH,SAAS,CAAC,EAAE,eAAe,CAAC;IAC5B,2EAA2E;IAC3E,YAAY,CAAC,EAAE,OAAO,gBAAgB,CAAC;IACvC,sCAAsC;IACtC,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAChC,8EAA8E;IAC9E,OAAO,CAAC,EAAE;QACR,KAAK,EAAE,MAAM,CAAC;QACd,eAAe,EAAE,OAAO,CAAC;QACzB;;;;;WAKG;QACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;QAC3B,+DAA+D;QAC/D,UAAU,CAAC,EAAE,OAAO,CAAC;QACrB;;;;WAIG;QACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;QAC5B,YAAY,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,aAAa,CAAC;QAClD,eAAe,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,SAAS,CAAC;KACnD,CAAC;IACF;;;OAGG;IACH,UAAU,CAAC,EAAE,gBAAgB,CAAC;IAC9B;;;;;OAKG;IACH,QAAQ,CAAC,EAAE;QACT,QAAQ,EAAE,MAAM,OAAO,CAAC,qBAAqB,GAAG,IAAI,CAAC,CAAC;KACvD,CAAC;IACF,oFAAoF;IACpF,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB;;;;;;;;OAQG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB;;;;;;;OAOG;IACH,mBAAmB,CAAC,EAAE;QACpB,MAAM,EAAE,sBAAsB,CAAC;KAChC,CAAC;CACH,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,oEAAoE;IACpE,MAAM,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5B;;;;;OAKG;IACH,qBAAqB,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7D,KAAK,EAAE,MAAM,IAAI,CAAC;CACnB,CAAC;AAmIF;;;;;;;;;;;GAWG;AACH,wBAAsB,mBAAmB,CACvC,IAAI,EAAE,iBAAiB,GACtB,OAAO,CAAC,aAAa,CAAC,CA6PxB"}
@@ -4,6 +4,7 @@ import type { ConsoleConfig, GraphMode } from "../config/schema";
4
4
  import type { ConsoleClient } from "../console/opencodeClient";
5
5
  import type { PtyClient } from "../console/pty";
6
6
  import type { CommitView } from "../console/types";
7
+ import type { LifecycleHistoryReader } from "../lifecycle/contracts";
7
8
  import type { StorageProvider } from "../storage/provider";
8
9
  import type { GraphViewProjectionV1 } from "../telemetry/graphView";
9
10
  import type { StorageRouteDeps } from "./storageRoute";
@@ -61,6 +62,16 @@ export type ConsoleRuntimeDeps = {
61
62
  };
62
63
  /** Effective graph mode resolved by the CLI/plugin composition root. */
63
64
  graphMode?: GraphMode;
65
+ /**
66
+ * Lifecycle history reader for `GET /api/graph?run=&cursor=` and SSE
67
+ * `graph-append` events. When provided, takes priority over `graphView` for
68
+ * the `/api/graph` route. Optional and injectable for testing.
69
+ */
70
+ lifecycleHistoryApi?: {
71
+ reader: LifecycleHistoryReader;
72
+ /** Lifecycle run root to watch for head advances. Absent = no file watcher. */
73
+ lifecycleRoot?: string;
74
+ };
64
75
  /** Inyectables para tests. */
65
76
  serve?: typeof import("./server").createConsoleServer;
66
77
  watch?: (path: string, listener: () => void) => ReturnType<typeof fsWatch>;
@@ -1 +1 @@
1
- {"version":3,"file":"start.d.ts","sourceRoot":"","sources":["../../src/web/start.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"start.d.ts","sourceRoot":"","sources":["../../src/web/start.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,5 @@
1
- import type { FSWatcher } from "node:fs";
2
1
  /** Firma mínima de `fs.watch` que necesitamos (inyectable en tests). */
3
- export type WatchFn = (path: string, listener: () => void) => FSWatcher;
2
+ export type WatchFn = (path: string, listener: () => void) => import("node:fs").FSWatcher;
4
3
  export type WatchDeps = {
5
4
  watch: WatchFn;
6
5
  /** Programa un callback tras `ms`; por defecto `setTimeout`. */
@@ -16,4 +15,20 @@ export type FileWatcher = {
16
15
  * (`fs.watch`) se inyecta para poder testear el debounce sin tocar disco.
17
16
  */
18
17
  export declare function watchSources(paths: readonly string[], onChange: () => void, deps: WatchDeps, debounceMs?: number): FileWatcher;
18
+ /**
19
+ * Reads the confirmed, digest-checked event count. An unfinished final frame
20
+ * is not committed; unreadable or corrupt confirmed frames return `null`.
21
+ */
22
+ export declare function readLifecycleHead(eventsFile: string): number | null;
23
+ /**
24
+ * Watches the lifecycle root directory for new run subdirectories and their
25
+ * `events.ndjson` files. Fires `onHeadAdvance(runID, head)` only when a
26
+ * confirmed head advance is observed.
27
+ *
28
+ * - Tolerates a missing root at startup; re-watches when the root appears.
29
+ * - A single cancellable reconciliation timer discovers missing roots/files and
30
+ * catches coalesced filesystem notifications independently of browser polling.
31
+ * - Does not modify the journal; this is observation only.
32
+ */
33
+ export declare function watchLifecycleRoot(root: string, onHeadAdvance: (runID: string, head: number) => void, deps: WatchDeps, debounceMs?: number): FileWatcher;
19
34
  //# sourceMappingURL=watch.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"watch.d.ts","sourceRoot":"","sources":["../../src/web/watch.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAEzC,wEAAwE;AACxE,MAAM,MAAM,OAAO,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,IAAI,KAAK,SAAS,CAAC;AAExE,MAAM,MAAM,SAAS,GAAG;IACtB,KAAK,EAAE,OAAO,CAAC;IACf,gEAAgE;IAChE,QAAQ,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,IAAI,EAAE,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC;IACzD,UAAU,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;CACxC,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IACxB,KAAK,EAAE,MAAM,IAAI,CAAC;CACnB,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,YAAY,CAC1B,KAAK,EAAE,SAAS,MAAM,EAAE,EACxB,QAAQ,EAAE,MAAM,IAAI,EACpB,IAAI,EAAE,SAAS,EACf,UAAU,SAAM,GACf,WAAW,CAqCb"}
1
+ {"version":3,"file":"watch.d.ts","sourceRoot":"","sources":["../../src/web/watch.ts"],"names":[],"mappings":"AAIA,wEAAwE;AACxE,MAAM,MAAM,OAAO,GAAG,CACpB,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,IAAI,KACjB,OAAO,SAAS,EAAE,SAAS,CAAC;AAEjC,MAAM,MAAM,SAAS,GAAG;IACtB,KAAK,EAAE,OAAO,CAAC;IACf,gEAAgE;IAChE,QAAQ,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,IAAI,EAAE,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC;IACzD,UAAU,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;CACxC,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IACxB,KAAK,EAAE,MAAM,IAAI,CAAC;CACnB,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,YAAY,CAC1B,KAAK,EAAE,SAAS,MAAM,EAAE,EACxB,QAAQ,EAAE,MAAM,IAAI,EACpB,IAAI,EAAE,SAAS,EACf,UAAU,SAAM,GACf,WAAW,CAqCb;AAMD;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAOnE;AAED;;;;;;;;;GASG;AACH,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,MAAM,EACZ,aAAa,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,IAAI,EACpD,IAAI,EAAE,SAAS,EACf,UAAU,SAAM,GACf,WAAW,CAkIb"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jmanuelcorral/openteam",
3
- "version": "0.18.1",
3
+ "version": "0.20.0",
4
4
  "packageManager": "bun@1.3.14",
5
5
  "description": "Cost-aware, local-first routing plugin for opencode with cheapest-capable frontier fallback and multi-agent orchestration.",
6
6
  "license": "MIT",