@corbat-tech/coco 2.37.0 → 2.39.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/dist/index.d.ts CHANGED
@@ -1,6 +1,17 @@
1
+ import { Q as QualityScores, a as QualityDimensions } from './index-Dp1o8c9g.js';
2
+ export { b as QualityThresholds, c as createFullToolRegistry, r as registerAllTools } from './index-Dp1o8c9g.js';
1
3
  import { z } from 'zod';
2
- import { Server } from 'node:http';
4
+ import { L as LLMProvider, P as ProviderConfig, M as Message$1, C as ChatOptions, a as ChatResponse$1, b as ChatWithToolsOptions, c as ChatWithToolsResponse$1, S as StreamChunk } from './agent-runtime-DJY9FzL_.js';
5
+ export { A as AGENT_MODES, d as AgentArtifact, e as AgentArtifactKind, f as AgentBudget, g as AgentCapability, h as AgentCard, i as AgentDefinition, j as AgentGateDefinition, k as AgentGateKind, l as AgentGraphDefinition, m as AgentGraphEdge, n as AgentGraphEngine, o as AgentGraphEngineOptions, p as AgentGraphNode, q as AgentGraphNodeExecution, r as AgentGraphNodeExecutor, s as AgentGraphRunInput, t as AgentGraphRunResult, u as AgentGraphRunStatus, v as AgentGraphValidationIssue, w as AgentGraphValidationResult, x as AgentGuardrailPolicy, y as AgentHandoff, z as AgentMessage, B as AgentMessageRole, D as AgentModeDefinition, E as AgentModeId, F as AgentRole, G as AgentRunResult, H as AgentRunStatus, I as AgentRuntime, J as AgentRuntimeOptions, K as AgentRuntimeSnapshot, N as AgentToolPolicyDecision, O as AgentTraceContext, Q as DEFAULT_WORKFLOWS, R as EventLog, T as FileSharedWorkspaceStore, U as InMemorySharedWorkspaceStore, V as LegacyAgentRoleMapping, W as PermissionDecision, X as PermissionPolicy, Y as ProviderRegistry, Z as ProviderRuntimeSelection, _ as ReasoningEffort, $ as RuntimeAgentTask, a0 as RuntimeEvent, a1 as RuntimeEventType, a2 as RuntimeMode, a3 as RuntimeSession, a4 as RuntimeSessionCreateOptions, a5 as RuntimeSessionStore, a6 as RuntimeToolExecutionInput, a7 as RuntimeToolExecutionResult, a8 as RuntimeTurnContext, a9 as RuntimeTurnInput, aa as RuntimeTurnResult, ab as RuntimeTurnRunner, ac as RuntimeTurnStreamEvent, ad as SharedWorkspaceProvenance, ae as SharedWorkspaceRecord, af as SharedWorkspaceRecordKind, ag as SharedWorkspaceState, ah as SharedWorkspaceStateSnapshot, ai as SharedWorkspaceStore, aj as SharedWorkspaceWriteInput, ak as ToolRiskLevel, al as ToolRiskManifest, am as ToolRiskManifestEntry, an as WorkflowCatalog, ao as WorkflowDefinition, ap as WorkflowEngine, aq as WorkflowHandler, ar as WorkflowPlan, as as WorkflowRegistry, at as WorkflowRetryPolicy, au as WorkflowRisk, av as WorkflowRunContext, aw as WorkflowRunInput, ax as WorkflowRunResult, ay as WorkflowRunStatus, az as WorkflowStepDefinition, aA as createAgentArtifact, aB as createAgentGraphEngine, aC as createAgentRuntime, aD as createAgentTraceContext, aE as createProvider, aF as createProviderRegistry, aG as createSummaryArtifact, aH as createWorkflowCatalog, aI as createWorkflowEngine, aJ as createWorkflowRegistry, aK as evaluateAgentToolPolicy, aL as getAgentMode, aM as isAgentMode, aN as listAgentModes, aO as listLegacyAgentRoleMappings, aP as mapLegacyAgentRole, aQ as normalizeAgentRunResult, aR as validateAgentCapabilities, aS as validateAgentGraph, aT as workflowToAgentGraph } from './agent-runtime-DJY9FzL_.js';
6
+ export { A as AgentRunner, a as AgentRunnerExecutionContext, b as AgentRunnerExecutionInput, c as AgentRunnerExecutor, d as AgentRunnerOptions, e as AgentRunnerRawResult, f as AgentSurface, D as DefaultPermissionPolicy, g as DefaultRuntimeTurnRunner, E as ExtensionRisk, F as FileEventLog, h as FileRuntimeSessionStore, I as InMemoryEventLog, i as InMemoryRuntimeSessionStore, M as McpToolPolicy, R as RecipeManifest, j as RecipeStep, k as RuntimeHttpServerOptions, S as SkillManifest, T as ToolCallingRuntimeTurnRunner, l as ToolCallingRuntimeTurnRunnerOptions, m as createAgentRunner, n as createDefaultRuntimeTurnRunner, o as createEventLog, p as createFileEventLog, q as createFileRuntimeSessionStore, r as createMcpToolPolicy, s as createPermissionPolicy, t as createRuntimeHttpServer, u as createRuntimeSessionStore, v as createToolCallingRuntimeTurnRunner } from './extension-manifests-CAQQILhE.js';
7
+ export { A as AgentActionMode, a as AgentBlueprint, b as AgentDeploymentSurface, c as AgentMaturity, d as AgentPreset, e as AgentRuntimeFactoryOptions, f as ApprovalPolicy, B as BlueprintAgent, G as GuardrailConfig, g as GuardrailFinding, h as GuardrailResult, i as GuardrailSeverity, j as GuardrailStage, M as MemoryConfig, O as ObservabilityConfig, S as SecretRedactionConfig, T as TopicBoundaryConfig, k as createAgentFromBlueprint, l as createBaseBlueprint, m as createSafeToolRegistry, n as defaultPublicGuardrails, o as mapActionModeToRuntimeMode, r as redactSecrets, p as runGuardrails, v as validateStructuredOutput } from './blueprints-DYgm3K65.js';
8
+ export { I as InMemoryKnowledgeDocument, a as InMemoryKnowledgeRetriever, K as KnowledgeRetriever, R as RetrievalOptions, b as RetrievedSource, c as createInMemoryKnowledgeRetriever, f as formatRetrievedSourcesForPrompt } from './rag-BakFRE-u.js';
9
+ export { H as HumanEscalationHandler, a as HumanEscalationInput, b as HumanEscalationOutput, S as SupportDraftHandler, c as SupportDraftInput, d as SupportDraftOutput, e as SupportRagToolRegistryOptions, f as createCodingToolRegistry, g as createCustomerSupportToolRegistry, h as createNoToolRegistry, i as createPublicWebToolRegistry, j as createRagToolRegistry, k as createSupportRagToolRegistry } from './profiles-BcyL-gQ9.js';
10
+ export { AGENT_PRESETS, AppointmentPresetConfig, BrandPresetConfig, RagPresetConfig, SupportRagPresetConfig, appointmentBookingAssistantPreset, codingAgentPreset, customerSupportAssistantPreset, internalOpsAssistantPreset, publicWebsiteAssistantPreset, ragKnowledgeAssistantPreset, salesIntakeAssistantPreset, supportRagAssistantPreset } from './presets/index.js';
11
+ export { ChannelAdapter, ChannelInput, ChannelOutput, HttpAssistantAdapter, StreamingHttpAssistantAdapter, createHttpAssistantAdapter, createStreamingHttpAssistantAdapter, createWebhookAssistantAdapter } from './adapters/index.js';
3
12
  import { Logger, ILogObj } from 'tslog';
13
+ export { T as ToolRegistry, c as createToolRegistry } from './registry-CEpl9Jq0.js';
14
+ import 'node:http';
4
15
 
5
16
  declare const VERSION: string;
6
17
 
@@ -118,8 +129,8 @@ interface PhaseTools {
118
129
  * LLM interface for phases
119
130
  */
120
131
  interface LLMInterface {
121
- chat(messages: Message$1[]): Promise<ChatResponse$1>;
122
- chatWithTools(messages: Message$1[], tools: ToolDefinition$2[]): Promise<ChatWithToolsResponse$1>;
132
+ chat(messages: Message[]): Promise<ChatResponse>;
133
+ chatWithTools(messages: Message[], tools: ToolDefinition[]): Promise<ChatWithToolsResponse>;
123
134
  }
124
135
  /**
125
136
  * Phase checkpoint for recovery
@@ -153,26 +164,26 @@ interface QualityTools {
153
164
  complexity(files: string[]): Promise<ComplexityResult>;
154
165
  security(files: string[]): Promise<SecurityResult>;
155
166
  }
156
- interface Message$1 {
167
+ interface Message {
157
168
  role: "system" | "user" | "assistant";
158
169
  content: string;
159
170
  }
160
- interface ChatResponse$1 {
171
+ interface ChatResponse {
161
172
  content: string;
162
173
  usage: {
163
174
  inputTokens: number;
164
175
  outputTokens: number;
165
176
  };
166
177
  }
167
- interface ToolDefinition$2 {
178
+ interface ToolDefinition {
168
179
  name: string;
169
180
  description: string;
170
181
  parameters: Record<string, unknown>;
171
182
  }
172
- interface ChatWithToolsResponse$1 extends ChatResponse$1 {
173
- toolCalls?: ToolCall$1[];
183
+ interface ChatWithToolsResponse extends ChatResponse {
184
+ toolCalls?: ToolCall[];
174
185
  }
175
- interface ToolCall$1 {
186
+ interface ToolCall {
176
187
  name: string;
177
188
  arguments: Record<string, unknown>;
178
189
  }
@@ -251,113 +262,6 @@ interface SecurityIssue {
251
262
  line?: number;
252
263
  }
253
264
 
254
- /**
255
- * Quality system types for Corbat-Coco
256
- */
257
- /**
258
- * Multi-dimensional quality scores
259
- */
260
- interface QualityScores {
261
- /**
262
- * Overall weighted score (0-100)
263
- */
264
- overall: number;
265
- /**
266
- * Individual dimension scores
267
- */
268
- dimensions: QualityDimensions;
269
- /**
270
- * Metadata
271
- */
272
- evaluatedAt: Date;
273
- evaluationDurationMs: number;
274
- }
275
- /**
276
- * Quality dimensions
277
- */
278
- interface QualityDimensions {
279
- /**
280
- * Does the code work correctly? (tests pass, logic correct)
281
- */
282
- correctness: number;
283
- /**
284
- * Are all requirements met?
285
- */
286
- completeness: number;
287
- /**
288
- * Are edge cases handled?
289
- */
290
- robustness: number;
291
- /**
292
- * Is the code clear and understandable?
293
- */
294
- readability: number;
295
- /**
296
- * Is the code easy to modify?
297
- */
298
- maintainability: number;
299
- /**
300
- * Cyclomatic complexity score (inverted - higher is better)
301
- */
302
- complexity: number;
303
- /**
304
- * DRY score - code duplication (inverted - higher is better)
305
- */
306
- duplication: number;
307
- /**
308
- * Line and branch coverage
309
- */
310
- testCoverage: number;
311
- /**
312
- * Test meaningfulness and quality
313
- */
314
- testQuality: number;
315
- /**
316
- * Security vulnerability score (100 = no vulnerabilities)
317
- */
318
- security: number;
319
- /**
320
- * Documentation coverage
321
- */
322
- documentation: number;
323
- /**
324
- * Linting and style compliance
325
- */
326
- style: number;
327
- }
328
- /**
329
- * Quality thresholds
330
- */
331
- interface QualityThresholds {
332
- /**
333
- * Minimum acceptable scores (must achieve to pass)
334
- */
335
- minimum: {
336
- overall: number;
337
- testCoverage: number;
338
- security: number;
339
- };
340
- /**
341
- * Target scores (excellent quality)
342
- */
343
- target: {
344
- overall: number;
345
- testCoverage: number;
346
- };
347
- /**
348
- * Convergence threshold (max score delta to consider converged)
349
- */
350
- convergenceThreshold: number;
351
- /**
352
- * Maximum iterations before forced completion
353
- */
354
- maxIterations: number;
355
- /**
356
- * Minimum iterations before checking convergence
357
- */
358
- minIterations: number;
359
- }
360
-
361
265
  /**
362
266
  * Main orchestrator interface
363
267
  */
@@ -936,226 +840,6 @@ interface InputAnalysis {
936
840
  */
937
841
  type ProjectType = "cli" | "api" | "web_app" | "library" | "service" | "full_stack" | "automation" | "unknown";
938
842
 
939
- /**
940
- * Unified thinking/reasoning mode support for all LLM providers.
941
- *
942
- * Normalizes three distinct API surfaces:
943
- * - Anthropic: thinking.budget_tokens
944
- * - OpenAI Chat Completions: reasoning_effort
945
- * - OpenAI Responses API: reasoning.effort
946
- * - Gemini: thinkingConfig.thinkingBudget
947
- * - Kimi: thinking.type enabled/disabled
948
- */
949
- /**
950
- * Provider-agnostic thinking mode.
951
- * "off" — disable thinking entirely (or keep disabled for models like Kimi)
952
- * "auto" — provider default / dynamic budget
953
- * "low" — minimal reasoning
954
- * "medium" — balanced reasoning
955
- * "high" — maximum reasoning
956
- * { budget: N } — explicit token budget (Anthropic / Gemini only; rejected for effort-only providers)
957
- */
958
- type ThinkingMode = "off" | "auto" | "low" | "medium" | "high" | {
959
- budget: number;
960
- };
961
- /**
962
- * Whether this provider/model uses effort buckets (OpenAI) or token budgets (Anthropic, Gemini).
963
- */
964
- type ThinkingKind = "effort" | "budget";
965
-
966
- /**
967
- * LLM Provider types for Corbat-Coco
968
- */
969
-
970
- /**
971
- * Message role
972
- */
973
- type MessageRole = "system" | "user" | "assistant";
974
- /**
975
- * Message content types
976
- */
977
- type MessageContent = string | Array<TextContent | ImageContent | ToolUseContent | ToolResultContent>;
978
- /**
979
- * Text content block
980
- */
981
- interface TextContent {
982
- type: "text";
983
- text: string;
984
- }
985
- /**
986
- * Image content block
987
- */
988
- interface ImageContent {
989
- type: "image";
990
- source: {
991
- type: "base64";
992
- media_type: string;
993
- data: string;
994
- };
995
- }
996
- /**
997
- * Tool use content block
998
- */
999
- interface ToolUseContent {
1000
- type: "tool_use";
1001
- id: string;
1002
- name: string;
1003
- input: Record<string, unknown>;
1004
- /** Gemini-specific: preserve function-call thought signature across tool turns */
1005
- geminiThoughtSignature?: string;
1006
- }
1007
- /**
1008
- * Tool result content block
1009
- */
1010
- interface ToolResultContent {
1011
- type: "tool_result";
1012
- tool_use_id: string;
1013
- content: string;
1014
- is_error?: boolean;
1015
- }
1016
- /**
1017
- * Chat message
1018
- */
1019
- interface Message {
1020
- role: MessageRole;
1021
- content: MessageContent;
1022
- }
1023
- /**
1024
- * Tool definition for LLM
1025
- */
1026
- interface ToolDefinition$1 {
1027
- name: string;
1028
- description: string;
1029
- input_schema: {
1030
- type: "object";
1031
- properties: Record<string, unknown>;
1032
- required?: string[];
1033
- };
1034
- }
1035
- /**
1036
- * Tool call from LLM
1037
- */
1038
- interface ToolCall {
1039
- id: string;
1040
- name: string;
1041
- input: Record<string, unknown>;
1042
- /** Gemini-specific: preserve function-call thought signature across tool turns */
1043
- geminiThoughtSignature?: string;
1044
- }
1045
- /**
1046
- * Chat options
1047
- */
1048
- interface ChatOptions {
1049
- model?: string;
1050
- maxTokens?: number;
1051
- temperature?: number;
1052
- stopSequences?: string[];
1053
- system?: string;
1054
- timeout?: number;
1055
- /** Abort signal to cancel in-flight requests */
1056
- signal?: AbortSignal;
1057
- /** Thinking/reasoning mode to pass to the model (if supported) */
1058
- thinking?: ThinkingMode;
1059
- }
1060
- /**
1061
- * Chat response
1062
- */
1063
- interface ChatResponse {
1064
- id: string;
1065
- content: string;
1066
- stopReason: "end_turn" | "max_tokens" | "stop_sequence" | "tool_use";
1067
- usage: {
1068
- inputTokens: number;
1069
- outputTokens: number;
1070
- };
1071
- model: string;
1072
- }
1073
- /**
1074
- * Chat with tools options
1075
- */
1076
- interface ChatWithToolsOptions extends ChatOptions {
1077
- tools: ToolDefinition$1[];
1078
- toolChoice?: "auto" | "any" | {
1079
- type: "tool";
1080
- name: string;
1081
- };
1082
- }
1083
- /**
1084
- * Chat with tools response
1085
- */
1086
- interface ChatWithToolsResponse extends ChatResponse {
1087
- toolCalls: ToolCall[];
1088
- }
1089
- /**
1090
- * Stream chunk
1091
- */
1092
- interface StreamChunk {
1093
- type: "text" | "tool_use_start" | "tool_use_delta" | "tool_use_end" | "done";
1094
- text?: string;
1095
- toolCall?: Partial<ToolCall>;
1096
- stopReason?: "end_turn" | "max_tokens" | "stop_sequence" | "tool_use";
1097
- }
1098
- /**
1099
- * LLM Provider interface
1100
- */
1101
- interface LLMProvider {
1102
- /**
1103
- * Provider identifier
1104
- */
1105
- id: string;
1106
- /**
1107
- * Provider display name
1108
- */
1109
- name: string;
1110
- /**
1111
- * Initialize the provider
1112
- */
1113
- initialize(config: ProviderConfig): Promise<void>;
1114
- /**
1115
- * Send a chat message
1116
- */
1117
- chat(messages: Message[], options?: ChatOptions): Promise<ChatResponse>;
1118
- /**
1119
- * Send a chat message with tool use
1120
- */
1121
- chatWithTools(messages: Message[], options: ChatWithToolsOptions): Promise<ChatWithToolsResponse>;
1122
- /**
1123
- * Stream a chat response
1124
- */
1125
- stream(messages: Message[], options?: ChatOptions): AsyncIterable<StreamChunk>;
1126
- /**
1127
- * Stream a chat response with tool use
1128
- */
1129
- streamWithTools(messages: Message[], options: ChatWithToolsOptions): AsyncIterable<StreamChunk>;
1130
- /**
1131
- * Count tokens in text
1132
- */
1133
- countTokens(text: string): number;
1134
- /**
1135
- * Get context window size
1136
- */
1137
- getContextWindow(): number;
1138
- /**
1139
- * Check if provider is available
1140
- */
1141
- isAvailable(): Promise<boolean>;
1142
- }
1143
- /**
1144
- * Provider configuration
1145
- */
1146
- interface ProviderConfig {
1147
- apiKey?: string;
1148
- baseUrl?: string;
1149
- model?: string;
1150
- maxTokens?: number;
1151
- temperature?: number;
1152
- timeout?: number;
1153
- project?: string;
1154
- location?: string;
1155
- /** Internal: flag to indicate using Google Cloud ADC */
1156
- useADC?: boolean;
1157
- }
1158
-
1159
843
  /**
1160
844
  * Discovery Engine for the CONVERGE phase
1161
845
  *
@@ -2990,19 +2674,19 @@ declare class AnthropicProvider implements LLMProvider {
2990
2674
  /**
2991
2675
  * Send a chat message
2992
2676
  */
2993
- chat(messages: Message[], options?: ChatOptions): Promise<ChatResponse>;
2677
+ chat(messages: Message$1[], options?: ChatOptions): Promise<ChatResponse$1>;
2994
2678
  /**
2995
2679
  * Send a chat message with tool use
2996
2680
  */
2997
- chatWithTools(messages: Message[], options: ChatWithToolsOptions): Promise<ChatWithToolsResponse>;
2681
+ chatWithTools(messages: Message$1[], options: ChatWithToolsOptions): Promise<ChatWithToolsResponse$1>;
2998
2682
  /**
2999
2683
  * Stream a chat response
3000
2684
  */
3001
- stream(messages: Message[], options?: ChatOptions): AsyncIterable<StreamChunk>;
2685
+ stream(messages: Message$1[], options?: ChatOptions): AsyncIterable<StreamChunk>;
3002
2686
  /**
3003
2687
  * Stream a chat response with tool use
3004
2688
  */
3005
- streamWithTools(messages: Message[], options: ChatWithToolsOptions): AsyncIterable<StreamChunk>;
2689
+ streamWithTools(messages: Message$1[], options: ChatWithToolsOptions): AsyncIterable<StreamChunk>;
3006
2690
  /**
3007
2691
  * Count tokens (improved heuristic for Claude models)
3008
2692
  *
@@ -3141,578 +2825,6 @@ declare class TaskError extends CocoError {
3141
2825
  });
3142
2826
  }
3143
2827
 
3144
- /**
3145
- * Provider and model catalog.
3146
- *
3147
- * This is the source of truth for model IDs, defaults, context windows,
3148
- * pricing metadata, and provider capabilities. Endpoint adapters still own
3149
- * request/response conversion, but they should read model metadata from here.
3150
- */
3151
-
3152
- type ModelStatus = "current" | "legacy" | "deprecated" | "experimental";
3153
- type ModelCapability = "streaming" | "tool-use" | "vision" | "reasoning-effort" | "adaptive-thinking" | "thinking-budget" | "openai-responses" | "openai-chat" | "anthropic-messages" | "gemini-generate-content";
3154
- interface ProviderSource {
3155
- name: string;
3156
- url: string;
3157
- verifiedAt: string;
3158
- }
3159
- interface ModelPricing {
3160
- inputPerMillion: number;
3161
- outputPerMillion: number;
3162
- }
3163
- interface ModelCatalogEntry {
3164
- id: string;
3165
- name: string;
3166
- description?: string;
3167
- contextWindow: number;
3168
- maxOutputTokens?: number;
3169
- recommended?: boolean;
3170
- status: ModelStatus;
3171
- capabilities: ModelCapability[];
3172
- pricing?: ModelPricing;
3173
- source: ProviderSource;
3174
- }
3175
- interface ProviderCatalogEntry {
3176
- id: ProviderType;
3177
- defaultModel: string;
3178
- models: ModelCatalogEntry[];
3179
- }
3180
-
3181
- /**
3182
- * Runtime compatibility view derived from the static provider catalog.
3183
- *
3184
- * The catalog records what a model is; this module records how Coco should use it
3185
- * safely at runtime, including endpoint selection and reasoning/tooling limits.
3186
- */
3187
-
3188
- type ProviderEndpointStrategy = "anthropic-messages" | "openai-responses" | "openai-chat" | "gemini-generate-content";
3189
- type ModelCompatibilityStatus = ModelStatus | "unverified";
3190
- interface ProviderRuntimeCapability {
3191
- provider: ProviderType;
3192
- model: string;
3193
- catalogModel?: ModelCatalogEntry;
3194
- status: ModelCompatibilityStatus;
3195
- endpoint: ProviderEndpointStrategy;
3196
- supportsStreaming: boolean;
3197
- supportsToolUse: boolean;
3198
- supportsVision: boolean;
3199
- supportsReasoning: boolean;
3200
- reasoningKinds: ThinkingKind[];
3201
- defaultReasoning: ThinkingMode;
3202
- contextWindow: number;
3203
- maxOutputTokens?: number;
3204
- sourceUrl?: string;
3205
- restrictions: string[];
3206
- }
3207
- interface ProviderProbeResult extends ProviderRuntimeCapability {
3208
- available: boolean | "not-checked";
3209
- checkedAt: string;
3210
- error?: string;
3211
- }
3212
-
3213
- /**
3214
- * Provider exports for Corbat-Coco
3215
- */
3216
-
3217
- /**
3218
- * Supported provider types
3219
- */
3220
- type ProviderType = "anthropic" | "openai" | "codex" | "copilot" | "gemini" | "vertex" | "kimi" | "kimi-code" | "lmstudio" | "ollama" | "groq" | "openrouter" | "mistral" | "deepseek" | "together" | "huggingface" | "qwen";
3221
- /**
3222
- * Create a provider by type
3223
- */
3224
- declare function createProvider(type: ProviderType, config?: ProviderConfig): Promise<LLMProvider>;
3225
-
3226
- /**
3227
- * Tool Registry for Corbat-Coco
3228
- * Central management of all available tools
3229
- */
3230
-
3231
- /**
3232
- * Tool definition
3233
- */
3234
- interface ToolDefinition<TInput = unknown, TOutput = unknown> {
3235
- name: string;
3236
- description: string;
3237
- category: ToolCategory;
3238
- parameters: z.ZodType<TInput, any, any>;
3239
- execute: (params: TInput) => Promise<TOutput>;
3240
- }
3241
- /**
3242
- * Tool categories
3243
- */
3244
- type ToolCategory = "file" | "bash" | "git" | "test" | "quality" | "build" | "deploy" | "config" | "web" | "search" | "memory" | "document";
3245
- /**
3246
- * Tool execution result
3247
- */
3248
- interface ToolResult<T = unknown> {
3249
- success: boolean;
3250
- data?: T;
3251
- error?: string;
3252
- duration: number;
3253
- }
3254
- /**
3255
- * Progress callback for long-running operations
3256
- */
3257
- type ProgressCallback = (progress: ProgressInfo) => void;
3258
- /**
3259
- * Progress information
3260
- */
3261
- interface ProgressInfo {
3262
- /** Current step or phase name */
3263
- phase: string;
3264
- /** Progress percentage (0-100), null if indeterminate */
3265
- percent: number | null;
3266
- /** Human-readable message */
3267
- message?: string;
3268
- /** Estimated time remaining in ms, null if unknown */
3269
- estimatedTimeRemaining?: number | null;
3270
- /** Additional metadata */
3271
- metadata?: Record<string, unknown>;
3272
- }
3273
- /**
3274
- * Options for tool execution
3275
- */
3276
- interface ExecuteOptions {
3277
- /** Progress callback for long operations */
3278
- onProgress?: ProgressCallback;
3279
- /** Abort signal for cancellation */
3280
- signal?: AbortSignal;
3281
- }
3282
- /**
3283
- * Tool registry
3284
- */
3285
- declare class ToolRegistry {
3286
- private tools;
3287
- private logger;
3288
- /**
3289
- * Register a tool
3290
- */
3291
- register<TInput, TOutput>(tool: ToolDefinition<TInput, TOutput>): void;
3292
- /**
3293
- * Unregister a tool
3294
- */
3295
- unregister(name: string): boolean;
3296
- /**
3297
- * Get a tool by name
3298
- */
3299
- get<TInput = unknown, TOutput = unknown>(name: string): ToolDefinition<TInput, TOutput> | undefined;
3300
- /**
3301
- * Check if a tool exists
3302
- */
3303
- has(name: string): boolean;
3304
- /**
3305
- * Get all tools
3306
- */
3307
- getAll(): ToolDefinition[];
3308
- /**
3309
- * Get tools by category
3310
- */
3311
- getByCategory(category: ToolCategory): ToolDefinition[];
3312
- /**
3313
- * Execute a tool
3314
- */
3315
- execute<TInput, TOutput>(name: string, params: TInput, options?: ExecuteOptions): Promise<ToolResult<TOutput>>;
3316
- /**
3317
- * Get tool definitions for LLM (simplified format)
3318
- */
3319
- getToolDefinitionsForLLM(): Array<{
3320
- name: string;
3321
- description: string;
3322
- input_schema: Record<string, unknown>;
3323
- }>;
3324
- }
3325
- /**
3326
- * Create a new tool registry
3327
- */
3328
- declare function createToolRegistry(): ToolRegistry;
3329
-
3330
- /** Catalog-backed provider/model registry used by runtime consumers. */
3331
- declare class ProviderRegistry {
3332
- listProviders(): ProviderCatalogEntry[];
3333
- getProvider(provider: ProviderType): ProviderCatalogEntry;
3334
- listModels(provider: ProviderType): ModelCatalogEntry[];
3335
- getModel(provider: ProviderType, model: string): ModelCatalogEntry | undefined;
3336
- getDefaultModel(provider: ProviderType): string;
3337
- getRecommendedModel(provider: ProviderType): ModelCatalogEntry;
3338
- getCapability(provider: ProviderType, model?: string): ProviderRuntimeCapability;
3339
- createProvider(provider: ProviderType, config?: ProviderConfig): Promise<LLMProvider>;
3340
- probe(provider: ProviderType, model: string | undefined, checkAvailability?: () => Promise<boolean>): Promise<ProviderProbeResult>;
3341
- }
3342
- declare function createProviderRegistry(): ProviderRegistry;
3343
-
3344
- /**
3345
- * Agent mode registry.
3346
- *
3347
- * Modes describe the intended control flow for a runtime turn without changing
3348
- * the provider interface. CLI, headless, and embedders share this registry.
3349
- */
3350
- type AgentModeId = "ask" | "plan" | "build" | "debug" | "review" | "architect";
3351
- interface AgentModeDefinition {
3352
- id: AgentModeId;
3353
- label: string;
3354
- description: string;
3355
- readOnly: boolean;
3356
- preferredTools: string[];
3357
- requiresVerification: boolean;
3358
- }
3359
- declare const AGENT_MODES: Record<AgentModeId, AgentModeDefinition>;
3360
- declare function getAgentMode(mode: AgentModeId): AgentModeDefinition;
3361
- declare function listAgentModes(): AgentModeDefinition[];
3362
- declare function isAgentMode(value: string): value is AgentModeId;
3363
-
3364
- type ReasoningEffort = "auto" | "low" | "medium" | "high" | "max";
3365
- type RuntimeMode = AgentModeId;
3366
- interface AgentRuntimeOptions {
3367
- providerType: ProviderType;
3368
- model?: string;
3369
- providerConfig?: ProviderConfig;
3370
- provider?: LLMProvider;
3371
- toolRegistry?: ToolRegistry;
3372
- /** Legacy CLI session store passthrough. Runtime APIs use runtimeSessionStore. */
3373
- sessionStore?: unknown;
3374
- runtimeSessionStore?: RuntimeSessionStore;
3375
- workflowEngine?: WorkflowEngine;
3376
- permissionPolicy?: PermissionPolicy;
3377
- eventLog?: EventLog;
3378
- eventLogPath?: string;
3379
- turnRunner?: RuntimeTurnRunner;
3380
- /**
3381
- * Publish provider/tools into Coco's legacy process-global subagent bridge.
3382
- * CLI/headless use this for compatibility; embedders should leave it false.
3383
- */
3384
- publishToGlobalBridge?: boolean;
3385
- }
3386
- interface AgentRuntimeSnapshot {
3387
- provider: {
3388
- type: ProviderType;
3389
- model: string;
3390
- capability: ProviderRuntimeCapability;
3391
- };
3392
- tools: {
3393
- count: number;
3394
- names: string[];
3395
- };
3396
- modes: AgentModeDefinition[];
3397
- }
3398
- type RuntimeEventType = "runtime.initialized" | "provider.attached" | "provider.created" | "provider.updated" | "turn.started" | "turn.completed" | "turn.cancelled" | "turn.failed" | "tool.started" | "tool.completed" | "tool.allowed" | "tool.blocked" | "tool.skipped" | "workflow.planned" | "workflow.started" | "workflow.completed" | "workflow.failed" | "session.created" | "session.updated" | "checkpoint.created" | "error";
3399
- interface RuntimeEvent {
3400
- id: string;
3401
- type: RuntimeEventType;
3402
- timestamp: string;
3403
- data: Record<string, unknown>;
3404
- }
3405
- interface EventLog {
3406
- record(type: RuntimeEventType, data?: Record<string, unknown>): RuntimeEvent;
3407
- list(): RuntimeEvent[];
3408
- count(): number;
3409
- clear(): void;
3410
- }
3411
- interface PermissionDecision {
3412
- allowed: boolean;
3413
- reason?: string;
3414
- requiresConfirmation?: boolean;
3415
- risk: "read-only" | "write" | "network" | "destructive" | "secrets-sensitive";
3416
- }
3417
- interface PermissionPolicy {
3418
- canExecuteTool(mode: RuntimeMode, tool: ToolDefinition): PermissionDecision;
3419
- canExecuteToolInput?(mode: RuntimeMode, tool: ToolDefinition, input: Record<string, unknown>): PermissionDecision;
3420
- }
3421
- interface ProviderRuntimeSelection {
3422
- provider: ProviderType;
3423
- model: string;
3424
- thinking?: ThinkingMode;
3425
- }
3426
- interface RuntimeSession {
3427
- id: string;
3428
- createdAt: string;
3429
- updatedAt: string;
3430
- mode: RuntimeMode;
3431
- messages: Message[];
3432
- instructions?: string;
3433
- metadata: Record<string, unknown>;
3434
- }
3435
- interface RuntimeSessionCreateOptions {
3436
- id?: string;
3437
- mode?: RuntimeMode;
3438
- instructions?: string;
3439
- metadata?: Record<string, unknown>;
3440
- messages?: Message[];
3441
- }
3442
- interface RuntimeSessionStore {
3443
- create(options?: RuntimeSessionCreateOptions): RuntimeSession;
3444
- get(id: string): RuntimeSession | undefined;
3445
- update(session: RuntimeSession): RuntimeSession;
3446
- list(): RuntimeSession[];
3447
- delete(id: string): boolean;
3448
- }
3449
- interface RuntimeTurnInput {
3450
- content: string;
3451
- sessionId?: string;
3452
- mode?: RuntimeMode;
3453
- options?: ChatOptions;
3454
- metadata?: Record<string, unknown>;
3455
- }
3456
- interface RuntimeTurnResult {
3457
- sessionId: string;
3458
- content: string;
3459
- usage: {
3460
- inputTokens: number;
3461
- outputTokens: number;
3462
- estimated?: boolean;
3463
- };
3464
- model: string;
3465
- mode: RuntimeMode;
3466
- }
3467
- type RuntimeTurnStreamEvent = {
3468
- type: "text";
3469
- sessionId: string;
3470
- text: string;
3471
- } | {
3472
- type: "done";
3473
- sessionId: string;
3474
- result: RuntimeTurnResult;
3475
- } | {
3476
- type: "error";
3477
- sessionId: string;
3478
- error: string;
3479
- };
3480
- interface RuntimeTurnContext {
3481
- runtime: unknown;
3482
- session: RuntimeSession;
3483
- provider: LLMProvider;
3484
- toolRegistry: ToolRegistry;
3485
- permissionPolicy: PermissionPolicy;
3486
- eventLog: EventLog;
3487
- }
3488
- interface RuntimeTurnRunner {
3489
- run(input: RuntimeTurnInput, context: RuntimeTurnContext): Promise<RuntimeTurnResult>;
3490
- }
3491
- interface RuntimeToolExecutionInput {
3492
- sessionId?: string;
3493
- mode?: RuntimeMode;
3494
- toolName: string;
3495
- input: Record<string, unknown>;
3496
- confirmed?: boolean;
3497
- metadata?: Record<string, unknown>;
3498
- }
3499
- interface RuntimeToolExecutionResult {
3500
- toolName: string;
3501
- success: boolean;
3502
- output?: unknown;
3503
- error?: string;
3504
- duration: number;
3505
- decision: PermissionDecision;
3506
- }
3507
-
3508
- type WorkflowRisk = "read-only" | "write" | "network" | "destructive" | "secrets-sensitive";
3509
- interface WorkflowStepDefinition {
3510
- id: string;
3511
- description: string;
3512
- requiredTools: string[];
3513
- risk: WorkflowRisk;
3514
- }
3515
- interface WorkflowDefinition {
3516
- id: string;
3517
- name: string;
3518
- description: string;
3519
- inputSchema: string;
3520
- steps: WorkflowStepDefinition[];
3521
- checks: string[];
3522
- outputKind: "markdown" | "json" | "patch" | "pull-request" | "release";
3523
- replayable: boolean;
3524
- }
3525
- interface WorkflowPlan {
3526
- id: string;
3527
- workflowId: string;
3528
- input: Record<string, unknown>;
3529
- status: "planned";
3530
- createdAt: string;
3531
- }
3532
- /** Descriptive catalog of reusable workflow definitions; it does not execute workflows. */
3533
- declare class WorkflowCatalog {
3534
- private workflows;
3535
- constructor(workflows?: WorkflowDefinition[]);
3536
- register(workflow: WorkflowDefinition): void;
3537
- get(id: string): WorkflowDefinition | undefined;
3538
- list(): WorkflowDefinition[];
3539
- createPlan(workflowId: string, input: Record<string, unknown>, eventLog?: EventLog): WorkflowPlan;
3540
- }
3541
- declare const DEFAULT_WORKFLOWS: WorkflowDefinition[];
3542
- declare const WorkflowRegistry: typeof WorkflowCatalog;
3543
- declare function createWorkflowCatalog(workflows?: WorkflowDefinition[]): WorkflowCatalog;
3544
- declare function createWorkflowRegistry(workflows?: WorkflowDefinition[]): WorkflowCatalog;
3545
-
3546
- type WorkflowRunStatus = "completed" | "failed";
3547
- interface WorkflowRunInput {
3548
- workflowId: string;
3549
- input: Record<string, unknown>;
3550
- plan?: WorkflowPlan;
3551
- }
3552
- interface WorkflowRunResult {
3553
- id: string;
3554
- workflowId: string;
3555
- status: WorkflowRunStatus;
3556
- output: unknown;
3557
- startedAt: string;
3558
- completedAt: string;
3559
- error?: string;
3560
- }
3561
- interface WorkflowRunContext {
3562
- workflow: WorkflowDefinition;
3563
- plan: WorkflowPlan;
3564
- eventLog: EventLog;
3565
- }
3566
- type WorkflowHandler = (input: Record<string, unknown>, context: WorkflowRunContext) => Promise<unknown>;
3567
- declare class WorkflowEngine {
3568
- private readonly catalog;
3569
- private readonly eventLog;
3570
- private handlers;
3571
- constructor(catalog?: WorkflowCatalog, eventLog?: EventLog);
3572
- registerHandler(workflowId: string, handler: WorkflowHandler): void;
3573
- createPlan(workflowId: string, input: Record<string, unknown>): WorkflowPlan;
3574
- run(request: WorkflowRunInput): Promise<WorkflowRunResult>;
3575
- }
3576
- declare function createWorkflowEngine(catalog?: WorkflowCatalog, eventLog?: EventLog): WorkflowEngine;
3577
-
3578
- /**
3579
- * Reusable runtime facade for wiring providers, tools, permissions, sessions,
3580
- * and observability. It does not own the CLI loop; CLI/headless are adapters on
3581
- * top of this boundary.
3582
- */
3583
- declare class AgentRuntime {
3584
- private readonly options;
3585
- readonly providerRegistry: ProviderRegistry;
3586
- readonly toolRegistry: ToolRegistry;
3587
- readonly sessionStore: unknown;
3588
- readonly runtimeSessionStore: RuntimeSessionStore;
3589
- readonly workflowEngine: WorkflowEngine;
3590
- readonly permissionPolicy: PermissionPolicy;
3591
- readonly eventLog: EventLog;
3592
- readonly turnRunner: RuntimeTurnRunner;
3593
- private providerType;
3594
- private model;
3595
- private provider?;
3596
- constructor(options: AgentRuntimeOptions);
3597
- initialize(): Promise<void>;
3598
- getModel(): string;
3599
- updateProvider(providerType: ProviderType, model: string | undefined, provider: LLMProvider): void;
3600
- private publishToGlobalBridge;
3601
- snapshot(): AgentRuntimeSnapshot;
3602
- createSession(options?: RuntimeSessionCreateOptions): RuntimeSession;
3603
- getSession(sessionId: string): RuntimeSession | undefined;
3604
- listSessions(): RuntimeSession[];
3605
- runTurn(input: RuntimeTurnInput): Promise<RuntimeTurnResult>;
3606
- streamTurn(input: RuntimeTurnInput): AsyncIterable<RuntimeTurnStreamEvent>;
3607
- executeTool(input: RuntimeToolExecutionInput): Promise<RuntimeToolExecutionResult>;
3608
- assertToolAllowed(mode: RuntimeMode, toolName: string, input?: Record<string, unknown>): boolean;
3609
- }
3610
- declare function createAgentRuntime(options: AgentRuntimeOptions): Promise<AgentRuntime>;
3611
-
3612
- declare class DefaultRuntimeTurnRunner implements RuntimeTurnRunner {
3613
- run(input: RuntimeTurnInput, context: RuntimeTurnContext): Promise<RuntimeTurnResult>;
3614
- }
3615
- declare function createDefaultRuntimeTurnRunner(): RuntimeTurnRunner;
3616
-
3617
- declare class InMemoryEventLog implements EventLog {
3618
- private events;
3619
- record(type: RuntimeEventType, data?: Record<string, unknown>): RuntimeEvent;
3620
- list(): RuntimeEvent[];
3621
- count(): number;
3622
- clear(): void;
3623
- }
3624
- declare class FileEventLog implements EventLog {
3625
- private readonly filePath;
3626
- private memory;
3627
- private writable;
3628
- constructor(filePath: string);
3629
- record(type: RuntimeEventType, data?: Record<string, unknown>): RuntimeEvent;
3630
- list(): RuntimeEvent[];
3631
- count(): number;
3632
- clear(): void;
3633
- }
3634
- declare function createEventLog(): EventLog;
3635
- declare function createFileEventLog(filePath: string): EventLog;
3636
-
3637
- interface RuntimeHttpServerOptions {
3638
- maxBodyBytes?: number;
3639
- }
3640
- declare function createRuntimeHttpServer(runtime: AgentRuntime, options?: RuntimeHttpServerOptions): Server;
3641
-
3642
- declare class DefaultPermissionPolicy implements PermissionPolicy {
3643
- canExecuteTool(mode: RuntimeMode, tool: ToolDefinition): PermissionDecision;
3644
- canExecuteToolInput(mode: RuntimeMode, tool: ToolDefinition, input: Record<string, unknown>): PermissionDecision;
3645
- }
3646
- declare function createPermissionPolicy(): PermissionPolicy;
3647
-
3648
- declare class InMemoryRuntimeSessionStore implements RuntimeSessionStore {
3649
- private sessions;
3650
- create(options?: RuntimeSessionCreateOptions): RuntimeSession;
3651
- get(id: string): RuntimeSession | undefined;
3652
- update(session: RuntimeSession): RuntimeSession;
3653
- list(): RuntimeSession[];
3654
- delete(id: string): boolean;
3655
- }
3656
- declare class FileRuntimeSessionStore implements RuntimeSessionStore {
3657
- private readonly filePath;
3658
- private sessions;
3659
- constructor(filePath: string);
3660
- create(options?: RuntimeSessionCreateOptions): RuntimeSession;
3661
- get(id: string): RuntimeSession | undefined;
3662
- update(session: RuntimeSession): RuntimeSession;
3663
- list(): RuntimeSession[];
3664
- delete(id: string): boolean;
3665
- private readSessionsFromDisk;
3666
- private persist;
3667
- }
3668
- declare function createRuntimeSessionStore(): RuntimeSessionStore;
3669
- declare function createFileRuntimeSessionStore(filePath: string): RuntimeSessionStore;
3670
-
3671
- type ExtensionRisk = "read-only" | "write" | "network" | "destructive" | "secrets-sensitive";
3672
- type AgentSurface = "coco" | "claude" | "codex" | "gemini" | "opencode";
3673
- interface SkillManifest {
3674
- name: string;
3675
- description: string;
3676
- triggers: string[];
3677
- requiredTools: string[];
3678
- risk: ExtensionRisk;
3679
- compatibleAgents: AgentSurface[];
3680
- sourcePath?: string;
3681
- }
3682
- interface RecipeStep {
3683
- id: string;
3684
- description: string;
3685
- requiredTools?: string[];
3686
- check?: string;
3687
- }
3688
- interface RecipeManifest {
3689
- name: string;
3690
- description: string;
3691
- inputs: string[];
3692
- suggestedModels?: string[];
3693
- steps: RecipeStep[];
3694
- checks: string[];
3695
- risk: ExtensionRisk;
3696
- }
3697
- interface McpToolPolicy {
3698
- server: string;
3699
- tool: string;
3700
- risk: ExtensionRisk;
3701
- requiresConfirmation: boolean;
3702
- allowedModes: string[];
3703
- }
3704
- declare function createMcpToolPolicy(server: string, tool: string, risk: ExtensionRisk, allowedModes?: string[]): McpToolPolicy;
3705
-
3706
- /**
3707
- * Tool exports for Corbat-Coco
3708
- */
3709
-
3710
- declare function registerAllTools(registry: ToolRegistry): void;
3711
- /**
3712
- * Create a registry with all tools registered
3713
- */
3714
- declare function createFullToolRegistry(): ToolRegistry;
3715
-
3716
2828
  /**
3717
2829
  * Logging system for Corbat-Coco
3718
2830
  * Based on tslog with structured output
@@ -3750,4 +2862,4 @@ interface SystemProxyConfig {
3750
2862
  */
3751
2863
  declare function installProxyDispatcher(resolveSystem?: () => SystemProxyConfig | null): string | null;
3752
2864
 
3753
- export { ADRGenerator, AGENT_MODES, type AgentModeDefinition, type AgentModeId, AgentRuntime, type AgentRuntimeOptions, type AgentRuntimeSnapshot, type AgentSurface, AnthropicProvider, ArchitectureGenerator, type Backlog, BacklogGenerator, CICDGenerator, type ChatOptions, type ChatResponse, type CocoConfig, CocoError, CodeGenerator, CodeReviewer, CompleteExecutor, ConfigError, ConvergeExecutor, DEFAULT_WORKFLOWS, DefaultPermissionPolicy, DefaultRuntimeTurnRunner, DiscoveryEngine, DockerGenerator, DocsGenerator, type Epic, type EventLog, type ExtensionRisk, FileEventLog, FileRuntimeSessionStore, InMemoryEventLog, InMemoryRuntimeSessionStore, type LLMProvider, type McpToolPolicy, type Message, OrchestrateExecutor, type Orchestrator, type OrchestratorConfig, OutputExecutor, type PermissionDecision, type PermissionPolicy, type Phase, type PhaseContext, PhaseError, type PhaseExecutor, type PhaseResult, type Progress, type ProjectState, ProviderRegistry, type ProviderRuntimeSelection, type QualityDimensions, type QualityScores, type QualityThresholds, type ReasoningEffort, type RecipeManifest, type RecipeStep, type RuntimeEvent, type RuntimeEventType, type RuntimeHttpServerOptions, type RuntimeMode, type RuntimeSession, type RuntimeSessionCreateOptions, type RuntimeSessionStore, type RuntimeToolExecutionInput, type RuntimeToolExecutionResult, type RuntimeTurnContext, type RuntimeTurnInput, type RuntimeTurnResult, type RuntimeTurnRunner, type RuntimeTurnStreamEvent, SessionManager, type SkillManifest, SpecificationGenerator, type Sprint, type Story, type Task, TaskError, type TaskHistory, TaskIterator, type TaskVersion, ToolRegistry, VERSION, WorkflowCatalog, type WorkflowDefinition, WorkflowEngine, type WorkflowHandler, type WorkflowPlan, WorkflowRegistry, type WorkflowRisk, type WorkflowRunContext, type WorkflowRunInput, type WorkflowRunResult, type WorkflowRunStatus, type WorkflowStepDefinition, configExists, createADRGenerator, createAgentRuntime, createAnthropicProvider, createArchitectureGenerator, createBacklogGenerator, createCICDGenerator, createCodeGenerator, createCodeReviewer, createCompleteExecutor, createConvergeExecutor, createDefaultConfig, createDefaultRuntimeTurnRunner, createDiscoveryEngine, createDockerGenerator, createDocsGenerator, createEventLog, createFileEventLog, createFileRuntimeSessionStore, createFullToolRegistry, createLogger, createMcpToolPolicy, createOrchestrateExecutor, createOrchestrator, createOutputExecutor, createPermissionPolicy, createProvider, createProviderRegistry, createRuntimeHttpServer, createRuntimeSessionStore, createSessionManager, createSpecificationGenerator, createTaskIterator, createToolRegistry, createWorkflowCatalog, createWorkflowEngine, createWorkflowRegistry, getAgentMode, installProxyDispatcher, isAgentMode, listAgentModes, loadConfig, registerAllTools, saveConfig };
2865
+ export { ADRGenerator, AnthropicProvider, ArchitectureGenerator, type Backlog, BacklogGenerator, CICDGenerator, ChatOptions, ChatResponse$1 as ChatResponse, type CocoConfig, CocoError, CodeGenerator, CodeReviewer, CompleteExecutor, ConfigError, ConvergeExecutor, DiscoveryEngine, DockerGenerator, DocsGenerator, type Epic, LLMProvider, Message$1 as Message, OrchestrateExecutor, type Orchestrator, type OrchestratorConfig, OutputExecutor, type Phase, type PhaseContext, PhaseError, type PhaseExecutor, type PhaseResult, type Progress, type ProjectState, QualityDimensions, QualityScores, SessionManager, SpecificationGenerator, type Sprint, type Story, type Task, TaskError, type TaskHistory, TaskIterator, type TaskVersion, VERSION, configExists, createADRGenerator, createAnthropicProvider, createArchitectureGenerator, createBacklogGenerator, createCICDGenerator, createCodeGenerator, createCodeReviewer, createCompleteExecutor, createConvergeExecutor, createDefaultConfig, createDiscoveryEngine, createDockerGenerator, createDocsGenerator, createLogger, createOrchestrateExecutor, createOrchestrator, createOutputExecutor, createSessionManager, createSpecificationGenerator, createTaskIterator, installProxyDispatcher, loadConfig, saveConfig };