@vybestack/llxprt-code-core 0.4.8 → 0.5.0-nightly.251102.6bb3db7a
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/prompt-config/defaults/default-prompts.json +4 -17
- package/dist/src/auth/precedence.d.ts +69 -9
- package/dist/src/auth/precedence.js +467 -69
- package/dist/src/auth/precedence.js.map +1 -1
- package/dist/src/auth/types.d.ts +2 -2
- package/dist/src/config/config.d.ts +15 -1
- package/dist/src/config/config.js +118 -6
- package/dist/src/config/config.js.map +1 -1
- package/dist/src/config/index.d.ts +6 -0
- package/dist/src/config/index.js +5 -0
- package/dist/src/config/index.js.map +1 -1
- package/dist/src/config/profileManager.d.ts +23 -3
- package/dist/src/config/profileManager.js +54 -7
- package/dist/src/config/profileManager.js.map +1 -1
- package/dist/src/config/subagentManager.d.ts +96 -0
- package/dist/src/config/subagentManager.js +371 -0
- package/dist/src/config/subagentManager.js.map +1 -0
- package/dist/src/config/types.d.ts +18 -0
- package/dist/src/config/types.js +3 -0
- package/dist/src/config/types.js.map +1 -0
- package/dist/src/core/client.d.ts +27 -7
- package/dist/src/core/client.js +231 -55
- package/dist/src/core/client.js.map +1 -1
- package/dist/src/core/contentGenerator.d.ts +3 -1
- package/dist/src/core/contentGenerator.js +3 -0
- package/dist/src/core/contentGenerator.js.map +1 -1
- package/dist/src/core/coreToolScheduler.d.ts +1 -5
- package/dist/src/core/coreToolScheduler.js +95 -23
- package/dist/src/core/coreToolScheduler.js.map +1 -1
- package/dist/src/core/geminiChat.d.ts +42 -12
- package/dist/src/core/geminiChat.js +405 -205
- package/dist/src/core/geminiChat.js.map +1 -1
- package/dist/src/core/nonInteractiveToolExecutor.d.ts +3 -2
- package/dist/src/core/nonInteractiveToolExecutor.js +94 -10
- package/dist/src/core/nonInteractiveToolExecutor.js.map +1 -1
- package/dist/src/core/subagent.d.ts +86 -7
- package/dist/src/core/subagent.js +809 -79
- package/dist/src/core/subagent.js.map +1 -1
- package/dist/src/core/subagentOrchestrator.d.ts +73 -0
- package/dist/src/core/subagentOrchestrator.js +383 -0
- package/dist/src/core/subagentOrchestrator.js.map +1 -0
- package/dist/src/core/subagentScheduler.d.ts +16 -0
- package/dist/src/core/subagentScheduler.js +7 -0
- package/dist/src/core/subagentScheduler.js.map +1 -0
- package/dist/src/core/turn.d.ts +5 -1
- package/dist/src/core/turn.js +5 -1
- package/dist/src/core/turn.js.map +1 -1
- package/dist/src/hooks/tool-render-suppression-hook.js +6 -1
- package/dist/src/hooks/tool-render-suppression-hook.js.map +1 -1
- package/dist/src/ide/ideContext.d.ts +32 -32
- package/dist/src/index.d.ts +19 -1
- package/dist/src/index.js +15 -2
- package/dist/src/index.js.map +1 -1
- package/dist/src/interfaces/index.d.ts +1 -0
- package/dist/src/interfaces/index.js +4 -0
- package/dist/src/interfaces/index.js.map +1 -0
- package/dist/src/interfaces/nodejs-error.interface.d.ts +4 -0
- package/dist/src/interfaces/nodejs-error.interface.js +2 -0
- package/dist/src/interfaces/nodejs-error.interface.js.map +1 -0
- package/dist/src/parsers/TextToolCallParser.d.ts +17 -1
- package/dist/src/parsers/TextToolCallParser.js +542 -148
- package/dist/src/parsers/TextToolCallParser.js.map +1 -1
- package/dist/src/prompt-config/defaults/core.md +15 -0
- package/dist/src/prompt-config/defaults/providers/gemini/core.md +203 -119
- package/dist/src/prompt-config/defaults/tool-defaults.js +2 -0
- package/dist/src/prompt-config/defaults/tool-defaults.js.map +1 -1
- package/dist/src/prompt-config/defaults/tools/list-subagents.md +7 -0
- package/dist/src/prompt-config/defaults/tools/task.md +8 -0
- package/dist/src/providers/BaseProvider.d.ts +115 -30
- package/dist/src/providers/BaseProvider.js +445 -109
- package/dist/src/providers/BaseProvider.js.map +1 -1
- package/dist/src/providers/IProvider.d.ts +50 -18
- package/dist/src/providers/LoggingProviderWrapper.d.ts +60 -16
- package/dist/src/providers/LoggingProviderWrapper.js +213 -60
- package/dist/src/providers/LoggingProviderWrapper.js.map +1 -1
- package/dist/src/providers/ProviderManager.d.ts +73 -2
- package/dist/src/providers/ProviderManager.js +492 -40
- package/dist/src/providers/ProviderManager.js.map +1 -1
- package/dist/src/providers/anthropic/AnthropicProvider.d.ts +35 -38
- package/dist/src/providers/anthropic/AnthropicProvider.js +222 -227
- package/dist/src/providers/anthropic/AnthropicProvider.js.map +1 -1
- package/dist/src/providers/errors.d.ts +86 -0
- package/dist/src/providers/errors.js +89 -0
- package/dist/src/providers/errors.js.map +1 -1
- package/dist/src/providers/gemini/GeminiProvider.d.ts +101 -41
- package/dist/src/providers/gemini/GeminiProvider.js +386 -311
- package/dist/src/providers/gemini/GeminiProvider.js.map +1 -1
- package/dist/src/providers/openai/ConversationCache.d.ts +5 -3
- package/dist/src/providers/openai/ConversationCache.js +93 -32
- package/dist/src/providers/openai/ConversationCache.js.map +1 -1
- package/dist/src/providers/openai/OpenAIProvider.d.ts +82 -42
- package/dist/src/providers/openai/OpenAIProvider.js +391 -536
- package/dist/src/providers/openai/OpenAIProvider.js.map +1 -1
- package/dist/src/providers/openai/getOpenAIProviderInfo.d.ts +1 -1
- package/dist/src/providers/openai/getOpenAIProviderInfo.js +52 -22
- package/dist/src/providers/openai/getOpenAIProviderInfo.js.map +1 -1
- package/dist/src/providers/openai/openaiRequestParams.d.ts +7 -0
- package/dist/src/providers/openai/openaiRequestParams.js +66 -0
- package/dist/src/providers/openai/openaiRequestParams.js.map +1 -0
- package/dist/src/providers/openai-responses/OpenAIResponsesProvider.d.ts +6 -33
- package/dist/src/providers/openai-responses/OpenAIResponsesProvider.js +84 -183
- package/dist/src/providers/openai-responses/OpenAIResponsesProvider.js.map +1 -1
- package/dist/src/providers/types/providerRuntime.d.ts +17 -0
- package/dist/src/providers/types/providerRuntime.js +7 -0
- package/dist/src/providers/types/providerRuntime.js.map +1 -0
- package/dist/src/providers/utils/authToken.d.ts +12 -0
- package/dist/src/providers/utils/authToken.js +17 -0
- package/dist/src/providers/utils/authToken.js.map +1 -0
- package/dist/src/providers/utils/userMemory.d.ts +8 -0
- package/dist/src/providers/utils/userMemory.js +34 -0
- package/dist/src/providers/utils/userMemory.js.map +1 -0
- package/dist/src/runtime/AgentRuntimeContext.d.ts +213 -0
- package/dist/src/runtime/AgentRuntimeContext.js +17 -0
- package/dist/src/runtime/AgentRuntimeContext.js.map +1 -0
- package/dist/src/runtime/AgentRuntimeLoader.d.ts +47 -0
- package/dist/src/runtime/AgentRuntimeLoader.js +122 -0
- package/dist/src/runtime/AgentRuntimeLoader.js.map +1 -0
- package/dist/src/runtime/AgentRuntimeState.d.ts +232 -0
- package/dist/src/runtime/AgentRuntimeState.js +439 -0
- package/dist/src/runtime/AgentRuntimeState.js.map +1 -0
- package/dist/src/runtime/RuntimeInvocationContext.d.ts +51 -0
- package/dist/src/runtime/RuntimeInvocationContext.js +52 -0
- package/dist/src/runtime/RuntimeInvocationContext.js.map +1 -0
- package/dist/src/runtime/createAgentRuntimeContext.d.ts +7 -0
- package/dist/src/runtime/createAgentRuntimeContext.js +65 -0
- package/dist/src/runtime/createAgentRuntimeContext.js.map +1 -0
- package/dist/src/runtime/index.d.ts +13 -0
- package/dist/src/runtime/index.js +14 -0
- package/dist/src/runtime/index.js.map +1 -0
- package/dist/src/runtime/providerRuntimeContext.d.ts +30 -0
- package/dist/src/runtime/providerRuntimeContext.js +70 -0
- package/dist/src/runtime/providerRuntimeContext.js.map +1 -0
- package/dist/src/runtime/runtimeAdapters.d.ts +22 -0
- package/dist/src/runtime/runtimeAdapters.js +81 -0
- package/dist/src/runtime/runtimeAdapters.js.map +1 -0
- package/dist/src/runtime/runtimeStateFactory.d.ts +21 -0
- package/dist/src/runtime/runtimeStateFactory.js +104 -0
- package/dist/src/runtime/runtimeStateFactory.js.map +1 -0
- package/dist/src/services/todo-context-tracker.d.ts +10 -8
- package/dist/src/services/todo-context-tracker.js +26 -10
- package/dist/src/services/todo-context-tracker.js.map +1 -1
- package/dist/src/services/tool-call-tracker-service.d.ts +11 -7
- package/dist/src/services/tool-call-tracker-service.js +89 -29
- package/dist/src/services/tool-call-tracker-service.js.map +1 -1
- package/dist/src/settings/SettingsService.d.ts +4 -0
- package/dist/src/settings/SettingsService.js +65 -2
- package/dist/src/settings/SettingsService.js.map +1 -1
- package/dist/src/settings/settingsServiceInstance.d.ts +6 -1
- package/dist/src/settings/settingsServiceInstance.js +28 -8
- package/dist/src/settings/settingsServiceInstance.js.map +1 -1
- package/dist/src/telemetry/loggers.d.ts +5 -1
- package/dist/src/telemetry/loggers.js.map +1 -1
- package/dist/src/telemetry/loggers.test.circular.js +4 -0
- package/dist/src/telemetry/loggers.test.circular.js.map +1 -1
- package/dist/src/telemetry/metrics.d.ts +3 -1
- package/dist/src/telemetry/metrics.js.map +1 -1
- package/dist/src/telemetry/types.d.ts +1 -0
- package/dist/src/telemetry/types.js +3 -0
- package/dist/src/telemetry/types.js.map +1 -1
- package/dist/src/test-utils/index.d.ts +2 -0
- package/dist/src/test-utils/index.js +2 -0
- package/dist/src/test-utils/index.js.map +1 -1
- package/dist/src/test-utils/mockWorkspaceContext.d.ts +0 -3
- package/dist/src/test-utils/mockWorkspaceContext.js +3 -4
- package/dist/src/test-utils/mockWorkspaceContext.js.map +1 -1
- package/dist/src/test-utils/providerCallOptions.d.ts +43 -0
- package/dist/src/test-utils/providerCallOptions.js +137 -0
- package/dist/src/test-utils/providerCallOptions.js.map +1 -0
- package/dist/src/test-utils/runtime.d.ts +92 -0
- package/dist/src/test-utils/runtime.js +226 -0
- package/dist/src/test-utils/runtime.js.map +1 -0
- package/dist/src/test-utils/tools.d.ts +4 -4
- package/dist/src/test-utils/tools.js +20 -10
- package/dist/src/test-utils/tools.js.map +1 -1
- package/dist/src/tools/list-subagents.d.ts +31 -0
- package/dist/src/tools/list-subagents.js +109 -0
- package/dist/src/tools/list-subagents.js.map +1 -0
- package/dist/src/tools/task.d.ts +87 -0
- package/dist/src/tools/task.js +427 -0
- package/dist/src/tools/task.js.map +1 -0
- package/dist/src/tools/todo-read.js +1 -1
- package/dist/src/tools/todo-read.js.map +1 -1
- package/dist/src/tools/todo-store.js +4 -2
- package/dist/src/tools/todo-store.js.map +1 -1
- package/dist/src/tools/todo-write.js +4 -2
- package/dist/src/tools/todo-write.js.map +1 -1
- package/dist/src/tools/tool-error.d.ts +1 -0
- package/dist/src/tools/tool-error.js +1 -0
- package/dist/src/tools/tool-error.js.map +1 -1
- package/dist/src/tools/tool-registry.d.ts +2 -0
- package/dist/src/tools/tool-registry.js +46 -21
- package/dist/src/tools/tool-registry.js.map +1 -1
- package/dist/src/types/modelParams.d.ts +4 -0
- package/dist/src/utils/editor.js +10 -8
- package/dist/src/utils/editor.js.map +1 -1
- package/dist/src/utils/gitIgnoreParser.js +15 -3
- package/dist/src/utils/gitIgnoreParser.js.map +1 -1
- package/package.json +1 -1
- package/dist/src/prompt-config/defaults/providers/anthropic/core.md +0 -97
- package/dist/src/prompt-config/defaults/providers/anthropic/tools/glob.md +0 -34
- package/dist/src/prompt-config/defaults/providers/anthropic/tools/list-directory.md +0 -11
- package/dist/src/prompt-config/defaults/providers/anthropic/tools/read-file.md +0 -14
- package/dist/src/prompt-config/defaults/providers/anthropic/tools/read-many-files.md +0 -31
- package/dist/src/prompt-config/defaults/providers/anthropic/tools/replace.md +0 -41
- package/dist/src/prompt-config/defaults/providers/anthropic/tools/run-shell-command.md +0 -32
- package/dist/src/prompt-config/defaults/providers/anthropic/tools/save-memory.md +0 -35
- package/dist/src/prompt-config/defaults/providers/anthropic/tools/search-file-content.md +0 -44
- package/dist/src/prompt-config/defaults/providers/anthropic/tools/todo-write.md +0 -45
- package/dist/src/prompt-config/defaults/providers/anthropic/tools/write-file.md +0 -11
- package/dist/src/prompt-config/defaults/providers/openai/core.md +0 -97
- package/dist/src/prompt-config/defaults/providers/openai/tools/todo-pause.md +0 -28
- package/dist/src/prompt-config/defaults/providers/openai/tools/todo-read.md +0 -5
- package/dist/src/prompt-config/defaults/providers/openai/tools/todo-write.md +0 -45
|
@@ -0,0 +1,213 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2025 Vybestack LLC
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* @plan PLAN-20251028-STATELESS6.P06
|
|
8
|
+
* @requirement REQ-STAT6-001.1, REQ-STAT6-002.2
|
|
9
|
+
* @pseudocode agent-runtime-context.md lines 5-17
|
|
10
|
+
*
|
|
11
|
+
* Immutable snapshot of ephemeral settings for agent runtime.
|
|
12
|
+
* These settings can change frequently and are not part of core runtime state.
|
|
13
|
+
*/
|
|
14
|
+
export interface ReadonlySettingsSnapshot {
|
|
15
|
+
/** Compression threshold for history (0.0-1.0), default 0.8 */
|
|
16
|
+
compressionThreshold?: number;
|
|
17
|
+
/** Context window limit in tokens (provider default when unspecified) */
|
|
18
|
+
contextLimit?: number;
|
|
19
|
+
/** Preserve threshold for compression (0.0-1.0), default 0.2 */
|
|
20
|
+
preserveThreshold?: number;
|
|
21
|
+
/** Override for tool format string, optional */
|
|
22
|
+
toolFormatOverride?: string;
|
|
23
|
+
/** Telemetry configuration */
|
|
24
|
+
telemetry?: {
|
|
25
|
+
enabled: boolean;
|
|
26
|
+
target: TelemetryTarget | null;
|
|
27
|
+
redaction?: TelemetryRedactionConfig;
|
|
28
|
+
};
|
|
29
|
+
/** Tool governance derived from profile ephemerals */
|
|
30
|
+
tools?: {
|
|
31
|
+
allowed?: string[];
|
|
32
|
+
disabled?: string[];
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* @plan PLAN-20251028-STATELESS6.P06
|
|
37
|
+
* @requirement REQ-STAT6-002.3
|
|
38
|
+
*
|
|
39
|
+
* Redaction configuration for telemetry data.
|
|
40
|
+
*/
|
|
41
|
+
export interface TelemetryRedactionConfig {
|
|
42
|
+
redactPrompts?: boolean;
|
|
43
|
+
redactToolParams?: boolean;
|
|
44
|
+
redactToolResults?: boolean;
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* @plan PLAN-20251028-STATELESS6.P06
|
|
48
|
+
* @requirement REQ-STAT6-002.3
|
|
49
|
+
*
|
|
50
|
+
* Telemetry target enumeration.
|
|
51
|
+
*/
|
|
52
|
+
export declare enum TelemetryTarget {
|
|
53
|
+
GCP = "gcp",
|
|
54
|
+
LOCAL = "local"
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* @plan PLAN-20251028-STATELESS6.P06
|
|
58
|
+
* @requirement REQ-STAT6-001.1
|
|
59
|
+
* @pseudocode agent-runtime-context.md lines 20-26
|
|
60
|
+
*
|
|
61
|
+
* Read-only view of tool registry.
|
|
62
|
+
* Provides immutable access to tool metadata without exposing full registry.
|
|
63
|
+
*/
|
|
64
|
+
export interface ToolRegistryView {
|
|
65
|
+
/** List all registered tool names */
|
|
66
|
+
listToolNames(): string[];
|
|
67
|
+
/** Get metadata for a specific tool by name */
|
|
68
|
+
getToolMetadata(name: string): ToolMetadata | undefined;
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* @plan PLAN-20251028-STATELESS6.P06
|
|
72
|
+
* @requirement REQ-STAT6-001.1
|
|
73
|
+
*
|
|
74
|
+
* Tool metadata interface.
|
|
75
|
+
*/
|
|
76
|
+
export interface ToolMetadata {
|
|
77
|
+
name: string;
|
|
78
|
+
description: string;
|
|
79
|
+
parameterSchema?: Record<string, unknown>;
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* @plan PLAN-20251028-STATELESS6.P06
|
|
83
|
+
* @requirement REQ-STAT6-002.3
|
|
84
|
+
*
|
|
85
|
+
* API request event metadata for telemetry.
|
|
86
|
+
*/
|
|
87
|
+
export interface ApiRequestEvent {
|
|
88
|
+
model: string;
|
|
89
|
+
promptId?: string;
|
|
90
|
+
requestText?: string;
|
|
91
|
+
sessionId?: string;
|
|
92
|
+
runtimeId?: string;
|
|
93
|
+
provider?: string;
|
|
94
|
+
authType?: string;
|
|
95
|
+
timestamp?: number;
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* @plan PLAN-20251028-STATELESS6.P06
|
|
99
|
+
* @requirement REQ-STAT6-002.3
|
|
100
|
+
*
|
|
101
|
+
* API response event metadata for telemetry.
|
|
102
|
+
*/
|
|
103
|
+
export interface ApiResponseEvent {
|
|
104
|
+
model: string;
|
|
105
|
+
promptId?: string;
|
|
106
|
+
durationMs: number;
|
|
107
|
+
authType?: string;
|
|
108
|
+
sessionId?: string;
|
|
109
|
+
runtimeId?: string;
|
|
110
|
+
provider?: string;
|
|
111
|
+
timestamp?: number;
|
|
112
|
+
usageMetadata?: GenerateContentResponseUsageMetadata;
|
|
113
|
+
usage?: {
|
|
114
|
+
inputTokens: number;
|
|
115
|
+
outputTokens: number;
|
|
116
|
+
totalTokens: number;
|
|
117
|
+
};
|
|
118
|
+
responseText?: string;
|
|
119
|
+
error?: string;
|
|
120
|
+
}
|
|
121
|
+
/**
|
|
122
|
+
* @plan PLAN-20251028-STATELESS6.P06
|
|
123
|
+
* @requirement REQ-STAT6-002.3
|
|
124
|
+
*
|
|
125
|
+
* API error event metadata for telemetry.
|
|
126
|
+
*/
|
|
127
|
+
export interface ApiErrorEvent {
|
|
128
|
+
model: string;
|
|
129
|
+
promptId?: string;
|
|
130
|
+
durationMs: number;
|
|
131
|
+
error: string;
|
|
132
|
+
authType?: string;
|
|
133
|
+
errorType?: string;
|
|
134
|
+
statusCode?: number | string;
|
|
135
|
+
sessionId?: string;
|
|
136
|
+
runtimeId?: string;
|
|
137
|
+
provider?: string;
|
|
138
|
+
timestamp?: number;
|
|
139
|
+
}
|
|
140
|
+
/**
|
|
141
|
+
* @plan PLAN-20251028-STATELESS6.P06
|
|
142
|
+
* @requirement REQ-STAT6-001.2, REQ-STAT6-002.2, REQ-STAT6-002.3
|
|
143
|
+
* @pseudocode agent-runtime-context.md lines 28-49
|
|
144
|
+
*
|
|
145
|
+
* Immutable runtime context for agent execution.
|
|
146
|
+
* Provides all runtime data and adapters without Config dependency.
|
|
147
|
+
* All nested objects are frozen for deep immutability.
|
|
148
|
+
*/
|
|
149
|
+
export interface AgentRuntimeContext {
|
|
150
|
+
/** Immutable runtime state (provider, model, auth, session) */
|
|
151
|
+
readonly state: AgentRuntimeState;
|
|
152
|
+
/** Isolated history service instance */
|
|
153
|
+
readonly history: HistoryService;
|
|
154
|
+
/** Ephemeral settings with fallback defaults */
|
|
155
|
+
readonly ephemerals: {
|
|
156
|
+
compressionThreshold(): number;
|
|
157
|
+
contextLimit(): number;
|
|
158
|
+
preserveThreshold(): number;
|
|
159
|
+
toolFormatOverride(): string | undefined;
|
|
160
|
+
};
|
|
161
|
+
/** Telemetry logging adapter with metadata enrichment */
|
|
162
|
+
readonly telemetry: AgentRuntimeTelemetryAdapter;
|
|
163
|
+
/** Provider adapter (read-only or mutable based on context) */
|
|
164
|
+
readonly provider: AgentRuntimeProviderAdapter;
|
|
165
|
+
/** Tool registry read-only view */
|
|
166
|
+
readonly tools: ToolRegistryView;
|
|
167
|
+
/** Provider runtime snapshot for downstream provider calls */
|
|
168
|
+
readonly providerRuntime: ProviderRuntimeContext;
|
|
169
|
+
}
|
|
170
|
+
/**
|
|
171
|
+
* @plan PLAN-20251028-STATELESS6.P06
|
|
172
|
+
* @requirement REQ-STAT6-001.1
|
|
173
|
+
* @pseudocode agent-runtime-context.md lines 52-62
|
|
174
|
+
*
|
|
175
|
+
* Factory options for creating agent runtime contexts.
|
|
176
|
+
* Supports both foreground (Config-backed) and subagent (isolated) modes.
|
|
177
|
+
*/
|
|
178
|
+
export interface AgentRuntimeContextFactoryOptions {
|
|
179
|
+
/** Required: immutable runtime state */
|
|
180
|
+
state: AgentRuntimeState;
|
|
181
|
+
/** Required: snapshot of ephemeral settings */
|
|
182
|
+
settings: ReadonlySettingsSnapshot;
|
|
183
|
+
/** Required: provider adapter for active provider access */
|
|
184
|
+
provider: AgentRuntimeProviderAdapter;
|
|
185
|
+
/** Required: telemetry adapter */
|
|
186
|
+
telemetry: AgentRuntimeTelemetryAdapter;
|
|
187
|
+
/** Required: tools view */
|
|
188
|
+
tools: ToolRegistryView;
|
|
189
|
+
/** Optional: history service (creates isolated instance if not provided) */
|
|
190
|
+
history?: HistoryService;
|
|
191
|
+
/** Required: provider runtime context */
|
|
192
|
+
providerRuntime: ProviderRuntimeContext;
|
|
193
|
+
}
|
|
194
|
+
import type { AgentRuntimeState } from './AgentRuntimeState.js';
|
|
195
|
+
import type { HistoryService } from '../services/history/HistoryService.js';
|
|
196
|
+
import type { IProvider } from '../providers/IProvider.js';
|
|
197
|
+
import type { GenerateContentResponseUsageMetadata } from '@google/genai';
|
|
198
|
+
import type { ProviderRuntimeContext } from './providerRuntimeContext.js';
|
|
199
|
+
/**
|
|
200
|
+
* Provider adapter interface supplied to runtime context.
|
|
201
|
+
*/
|
|
202
|
+
export interface AgentRuntimeProviderAdapter {
|
|
203
|
+
getActiveProvider(): IProvider;
|
|
204
|
+
setActiveProvider(name: string): void;
|
|
205
|
+
}
|
|
206
|
+
/**
|
|
207
|
+
* Telemetry adapter interface supplied to runtime context.
|
|
208
|
+
*/
|
|
209
|
+
export interface AgentRuntimeTelemetryAdapter {
|
|
210
|
+
logApiRequest(event: ApiRequestEvent): void;
|
|
211
|
+
logApiResponse(event: ApiResponseEvent): void;
|
|
212
|
+
logApiError(event: ApiErrorEvent): void;
|
|
213
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2025 Vybestack LLC
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* @plan PLAN-20251028-STATELESS6.P06
|
|
8
|
+
* @requirement REQ-STAT6-002.3
|
|
9
|
+
*
|
|
10
|
+
* Telemetry target enumeration.
|
|
11
|
+
*/
|
|
12
|
+
export var TelemetryTarget;
|
|
13
|
+
(function (TelemetryTarget) {
|
|
14
|
+
TelemetryTarget["GCP"] = "gcp";
|
|
15
|
+
TelemetryTarget["LOCAL"] = "local";
|
|
16
|
+
})(TelemetryTarget || (TelemetryTarget = {}));
|
|
17
|
+
//# sourceMappingURL=AgentRuntimeContext.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AgentRuntimeContext.js","sourceRoot":"","sources":["../../../src/runtime/AgentRuntimeContext.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AA4CH;;;;;GAKG;AACH,MAAM,CAAN,IAAY,eAGX;AAHD,WAAY,eAAe;IACzB,8BAAW,CAAA;IACX,kCAAe,CAAA;AACjB,CAAC,EAHW,eAAe,KAAf,eAAe,QAG1B"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2025 Vybestack LLC
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import { HistoryService } from '../services/history/HistoryService.js';
|
|
7
|
+
import type { Config } from '../config/config.js';
|
|
8
|
+
import type { ToolRegistry } from '../tools/tool-registry.js';
|
|
9
|
+
import type { ProviderManager } from '../providers/ProviderManager.js';
|
|
10
|
+
import type { IProviderManager } from '../providers/IProviderManager.js';
|
|
11
|
+
import type { AgentRuntimeContext, AgentRuntimeProviderAdapter, AgentRuntimeTelemetryAdapter, ToolRegistryView, ReadonlySettingsSnapshot } from './AgentRuntimeContext.js';
|
|
12
|
+
import type { AgentRuntimeState } from './AgentRuntimeState.js';
|
|
13
|
+
import type { ProviderRuntimeContext } from './providerRuntimeContext.js';
|
|
14
|
+
import { type ContentGenerator, type ContentGeneratorConfig } from '../core/contentGenerator.js';
|
|
15
|
+
export interface AgentRuntimeProfileSnapshot {
|
|
16
|
+
config: Config;
|
|
17
|
+
state: AgentRuntimeState;
|
|
18
|
+
settings: ReadonlySettingsSnapshot;
|
|
19
|
+
providerRuntime: ProviderRuntimeContext;
|
|
20
|
+
contentGeneratorConfig?: ContentGeneratorConfig;
|
|
21
|
+
toolRegistry?: ToolRegistry;
|
|
22
|
+
providerManager?: ProviderManager | IProviderManager;
|
|
23
|
+
}
|
|
24
|
+
export interface AgentRuntimeLoaderOverrides {
|
|
25
|
+
providerAdapter?: AgentRuntimeProviderAdapter;
|
|
26
|
+
telemetryAdapter?: AgentRuntimeTelemetryAdapter;
|
|
27
|
+
toolsView?: ToolRegistryView;
|
|
28
|
+
historyService?: HistoryService;
|
|
29
|
+
contentGenerator?: ContentGenerator;
|
|
30
|
+
contentGeneratorFactory?: ContentGeneratorFactory;
|
|
31
|
+
}
|
|
32
|
+
export interface AgentRuntimeLoaderOptions {
|
|
33
|
+
profile: AgentRuntimeProfileSnapshot;
|
|
34
|
+
overrides?: AgentRuntimeLoaderOverrides;
|
|
35
|
+
}
|
|
36
|
+
export interface AgentRuntimeLoaderResult {
|
|
37
|
+
runtimeContext: AgentRuntimeContext;
|
|
38
|
+
history: HistoryService;
|
|
39
|
+
providerAdapter: AgentRuntimeProviderAdapter;
|
|
40
|
+
telemetryAdapter: AgentRuntimeTelemetryAdapter;
|
|
41
|
+
toolsView: ToolRegistryView;
|
|
42
|
+
contentGenerator: ContentGenerator;
|
|
43
|
+
toolRegistry?: ToolRegistry;
|
|
44
|
+
settingsSnapshot?: ReadonlySettingsSnapshot;
|
|
45
|
+
}
|
|
46
|
+
export type ContentGeneratorFactory = (config: ContentGeneratorConfig, context: Config, sessionId: string) => Promise<ContentGenerator>;
|
|
47
|
+
export declare function loadAgentRuntime(options: AgentRuntimeLoaderOptions): Promise<AgentRuntimeLoaderResult>;
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2025 Vybestack LLC
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import { HistoryService } from '../services/history/HistoryService.js';
|
|
7
|
+
import { createProviderAdapterFromManager, createTelemetryAdapterFromConfig, } from './runtimeAdapters.js';
|
|
8
|
+
import { createAgentRuntimeContext } from './createAgentRuntimeContext.js';
|
|
9
|
+
import { createContentGenerator, } from '../core/contentGenerator.js';
|
|
10
|
+
const defaultContentGeneratorFactory = (contentConfig, config, sessionId) => createContentGenerator(contentConfig, config, sessionId);
|
|
11
|
+
const normalizeToolName = (name) => name.trim().toLowerCase();
|
|
12
|
+
function buildToolGovernance(profile) {
|
|
13
|
+
const allowedRaw = Array.isArray(profile.settings.tools?.allowed)
|
|
14
|
+
? profile.settings.tools?.allowed
|
|
15
|
+
: undefined;
|
|
16
|
+
const disabledRaw = Array.isArray(profile.settings.tools?.disabled)
|
|
17
|
+
? profile.settings.tools?.disabled
|
|
18
|
+
: undefined;
|
|
19
|
+
const excludedRaw = profile.config.getExcludeTools?.() ?? [];
|
|
20
|
+
return {
|
|
21
|
+
allowed: new Set((allowedRaw ?? []).map((tool) => normalizeToolName(tool))),
|
|
22
|
+
disabled: new Set((disabledRaw ?? []).map((tool) => normalizeToolName(tool))),
|
|
23
|
+
excluded: new Set(excludedRaw.map((tool) => normalizeToolName(tool))),
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
function isToolPermitted(toolName, governance) {
|
|
27
|
+
const canonical = normalizeToolName(toolName);
|
|
28
|
+
if (governance.excluded.has(canonical)) {
|
|
29
|
+
return false;
|
|
30
|
+
}
|
|
31
|
+
if (governance.disabled.has(canonical)) {
|
|
32
|
+
return false;
|
|
33
|
+
}
|
|
34
|
+
if (governance.allowed.size > 0 && !governance.allowed.has(canonical)) {
|
|
35
|
+
return false;
|
|
36
|
+
}
|
|
37
|
+
return true;
|
|
38
|
+
}
|
|
39
|
+
function createFilteredToolRegistryView(registry, governance) {
|
|
40
|
+
if (!registry) {
|
|
41
|
+
return {
|
|
42
|
+
listToolNames: () => [],
|
|
43
|
+
getToolMetadata: () => undefined,
|
|
44
|
+
};
|
|
45
|
+
}
|
|
46
|
+
const getTools = () => registry.getAllTools();
|
|
47
|
+
return {
|
|
48
|
+
listToolNames: () => getTools()
|
|
49
|
+
.filter((tool) => isToolPermitted(tool.name, governance))
|
|
50
|
+
.map((tool) => tool.name),
|
|
51
|
+
getToolMetadata: (name) => {
|
|
52
|
+
if (!isToolPermitted(name, governance)) {
|
|
53
|
+
return undefined;
|
|
54
|
+
}
|
|
55
|
+
const tool = getTools().find((candidate) => candidate.name === name);
|
|
56
|
+
if (!tool) {
|
|
57
|
+
return undefined;
|
|
58
|
+
}
|
|
59
|
+
const schema = tool
|
|
60
|
+
.schema;
|
|
61
|
+
const description = typeof schema?.description === 'string'
|
|
62
|
+
? schema.description
|
|
63
|
+
: typeof tool.description === 'string'
|
|
64
|
+
? tool.description
|
|
65
|
+
: '';
|
|
66
|
+
const parameterSchema = schema?.parameters ??
|
|
67
|
+
schema
|
|
68
|
+
?.parametersJsonSchema;
|
|
69
|
+
return {
|
|
70
|
+
name: tool.name ?? name,
|
|
71
|
+
description,
|
|
72
|
+
parameterSchema,
|
|
73
|
+
};
|
|
74
|
+
},
|
|
75
|
+
};
|
|
76
|
+
}
|
|
77
|
+
export async function loadAgentRuntime(options) {
|
|
78
|
+
const { profile, overrides = {} } = options;
|
|
79
|
+
if (!profile) {
|
|
80
|
+
throw new Error('AgentRuntimeLoader requires a profile option.');
|
|
81
|
+
}
|
|
82
|
+
const history = overrides.historyService ?? new HistoryService();
|
|
83
|
+
const providerAdapter = overrides.providerAdapter ??
|
|
84
|
+
createProviderAdapterFromManager(profile.providerManager ?? profile.config.getProviderManager?.());
|
|
85
|
+
const telemetryAdapter = overrides.telemetryAdapter ??
|
|
86
|
+
createTelemetryAdapterFromConfig(profile.config);
|
|
87
|
+
const governance = buildToolGovernance(profile);
|
|
88
|
+
const toolsView = overrides.toolsView ??
|
|
89
|
+
createFilteredToolRegistryView(profile.toolRegistry ?? profile.config.getToolRegistry?.(), governance);
|
|
90
|
+
const runtimeContext = createAgentRuntimeContext({
|
|
91
|
+
state: profile.state,
|
|
92
|
+
settings: profile.settings,
|
|
93
|
+
provider: providerAdapter,
|
|
94
|
+
telemetry: telemetryAdapter,
|
|
95
|
+
tools: toolsView,
|
|
96
|
+
history,
|
|
97
|
+
providerRuntime: profile.providerRuntime,
|
|
98
|
+
});
|
|
99
|
+
let contentGenerator;
|
|
100
|
+
if (overrides.contentGenerator) {
|
|
101
|
+
contentGenerator = overrides.contentGenerator;
|
|
102
|
+
}
|
|
103
|
+
else {
|
|
104
|
+
const contentConfig = profile.contentGeneratorConfig;
|
|
105
|
+
if (!contentConfig) {
|
|
106
|
+
throw new Error('AgentRuntimeLoader requires contentGeneratorConfig when no contentGenerator override is supplied.');
|
|
107
|
+
}
|
|
108
|
+
const factory = overrides.contentGeneratorFactory ?? defaultContentGeneratorFactory;
|
|
109
|
+
contentGenerator = await factory(contentConfig, profile.config, profile.state.sessionId);
|
|
110
|
+
}
|
|
111
|
+
return {
|
|
112
|
+
runtimeContext,
|
|
113
|
+
history,
|
|
114
|
+
providerAdapter,
|
|
115
|
+
telemetryAdapter,
|
|
116
|
+
toolsView,
|
|
117
|
+
contentGenerator,
|
|
118
|
+
toolRegistry: profile.toolRegistry,
|
|
119
|
+
settingsSnapshot: profile.settings,
|
|
120
|
+
};
|
|
121
|
+
}
|
|
122
|
+
//# sourceMappingURL=AgentRuntimeLoader.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AgentRuntimeLoader.js","sourceRoot":"","sources":["../../../src/runtime/AgentRuntimeLoader.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,232 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2025 Vybestack LLC
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* @plan PLAN-20251027-STATELESS5.P03
|
|
8
|
+
* @requirement REQ-STAT5-001
|
|
9
|
+
* @pseudocode runtime-state.md lines 18-48
|
|
10
|
+
*
|
|
11
|
+
* AgentRuntimeState abstraction to replace stateful Config usage.
|
|
12
|
+
* This is a STUB implementation for Phase 03 (TDD preparation).
|
|
13
|
+
* Actual implementation happens in Phase 05.
|
|
14
|
+
*/
|
|
15
|
+
import { AuthType } from '../core/contentGenerator.js';
|
|
16
|
+
/**
|
|
17
|
+
* @plan PLAN-20251027-STATELESS5.P03
|
|
18
|
+
* @requirement REQ-STAT5-001.1
|
|
19
|
+
* @pseudocode runtime-state.md lines 18-48
|
|
20
|
+
*
|
|
21
|
+
* Core runtime state interface representing provider/model/auth configuration.
|
|
22
|
+
*/
|
|
23
|
+
export interface AgentRuntimeState {
|
|
24
|
+
readonly runtimeId: string;
|
|
25
|
+
readonly provider: string;
|
|
26
|
+
readonly model: string;
|
|
27
|
+
readonly authType: AuthType;
|
|
28
|
+
readonly authPayload?: AuthPayload;
|
|
29
|
+
readonly baseUrl?: string;
|
|
30
|
+
readonly proxyUrl?: string;
|
|
31
|
+
readonly modelParams?: ModelParams;
|
|
32
|
+
readonly sessionId: string;
|
|
33
|
+
readonly updatedAt: number;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* @plan PLAN-20251027-STATELESS5.P03
|
|
37
|
+
* @requirement REQ-STAT5-001.1
|
|
38
|
+
*
|
|
39
|
+
* Auth payload union type for different authentication mechanisms.
|
|
40
|
+
*/
|
|
41
|
+
export interface AuthPayload {
|
|
42
|
+
apiKey?: string;
|
|
43
|
+
token?: string;
|
|
44
|
+
[key: string]: unknown;
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* @plan PLAN-20251027-STATELESS5.P03
|
|
48
|
+
* @requirement REQ-STAT5-001.1
|
|
49
|
+
*
|
|
50
|
+
* Model parameters for generation configuration.
|
|
51
|
+
*/
|
|
52
|
+
export interface ModelParams {
|
|
53
|
+
temperature?: number;
|
|
54
|
+
topP?: number;
|
|
55
|
+
maxTokens?: number;
|
|
56
|
+
[key: string]: unknown;
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* @plan PLAN-20251027-STATELESS5.P03
|
|
60
|
+
* @requirement REQ-STAT5-001.1
|
|
61
|
+
* @pseudocode runtime-state.md lines 73-105
|
|
62
|
+
*
|
|
63
|
+
* Parameters for creating a new runtime state instance.
|
|
64
|
+
*/
|
|
65
|
+
export interface RuntimeStateParams {
|
|
66
|
+
runtimeId: string;
|
|
67
|
+
provider: string;
|
|
68
|
+
model: string;
|
|
69
|
+
authType: AuthType;
|
|
70
|
+
authPayload?: AuthPayload;
|
|
71
|
+
baseUrl?: string;
|
|
72
|
+
proxyUrl?: string;
|
|
73
|
+
modelParams?: ModelParams;
|
|
74
|
+
sessionId?: string;
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* @plan PLAN-20251027-STATELESS5.P03
|
|
78
|
+
* @requirement REQ-STAT5-001.3
|
|
79
|
+
* @pseudocode runtime-state.md lines 329-355
|
|
80
|
+
*
|
|
81
|
+
* Serializable snapshot of runtime state for diagnostics.
|
|
82
|
+
*/
|
|
83
|
+
export interface RuntimeStateSnapshot {
|
|
84
|
+
runtimeId: string;
|
|
85
|
+
provider: string;
|
|
86
|
+
model: string;
|
|
87
|
+
authType: AuthType;
|
|
88
|
+
authPayload?: SanitizedAuthPayload;
|
|
89
|
+
baseUrl?: string;
|
|
90
|
+
proxyUrl?: string;
|
|
91
|
+
modelParams?: ModelParams;
|
|
92
|
+
sessionId: string;
|
|
93
|
+
updatedAt: number;
|
|
94
|
+
version: number;
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* @plan PLAN-20251027-STATELESS5.P03
|
|
98
|
+
* @requirement REQ-STAT5-001.3
|
|
99
|
+
*
|
|
100
|
+
* Sanitized auth payload with sensitive data redacted.
|
|
101
|
+
*/
|
|
102
|
+
export interface SanitizedAuthPayload {
|
|
103
|
+
type?: string;
|
|
104
|
+
apiKey?: string;
|
|
105
|
+
token?: string;
|
|
106
|
+
[key: string]: unknown;
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* @plan PLAN-20251027-STATELESS5.P03
|
|
110
|
+
* @requirement REQ-STAT5-001.2
|
|
111
|
+
* @pseudocode runtime-state.md lines 209-243
|
|
112
|
+
*
|
|
113
|
+
* Event payload emitted when runtime state changes.
|
|
114
|
+
*/
|
|
115
|
+
export interface RuntimeStateChangedEvent {
|
|
116
|
+
runtimeId: string;
|
|
117
|
+
changes: Record<string, {
|
|
118
|
+
old: unknown;
|
|
119
|
+
new: unknown;
|
|
120
|
+
}>;
|
|
121
|
+
snapshot: RuntimeStateSnapshot;
|
|
122
|
+
timestamp: number;
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* @plan PLAN-20251027-STATELESS5.P03
|
|
126
|
+
* @requirement REQ-STAT5-003.2
|
|
127
|
+
* @pseudocode runtime-state.md lines 289-318
|
|
128
|
+
*
|
|
129
|
+
* Callback for runtime state change events.
|
|
130
|
+
*/
|
|
131
|
+
export type RuntimeStateChangeCallback = (event: RuntimeStateChangedEvent) => void;
|
|
132
|
+
/**
|
|
133
|
+
* @plan PLAN-20251027-STATELESS5.P03
|
|
134
|
+
* @requirement REQ-STAT5-003.2
|
|
135
|
+
*
|
|
136
|
+
* Function to unsubscribe from runtime state changes.
|
|
137
|
+
*/
|
|
138
|
+
export type UnsubscribeFunction = () => void;
|
|
139
|
+
/**
|
|
140
|
+
* @plan PLAN-20251027-STATELESS5.P03
|
|
141
|
+
* @requirement REQ-STAT5-001.1
|
|
142
|
+
* @pseudocode runtime-state.md lines 366-381
|
|
143
|
+
*
|
|
144
|
+
* Error codes for runtime state validation failures.
|
|
145
|
+
*/
|
|
146
|
+
export declare enum RuntimeStateErrorCode {
|
|
147
|
+
RUNTIME_ID_MISSING = "runtimeId.missing",
|
|
148
|
+
PROVIDER_MISSING = "provider.missing",
|
|
149
|
+
PROVIDER_INVALID = "provider.invalid",
|
|
150
|
+
MODEL_MISSING = "model.missing",
|
|
151
|
+
MODEL_INVALID = "model.invalid",
|
|
152
|
+
AUTH_TYPE_INVALID = "authType.invalid",
|
|
153
|
+
AUTH_API_KEY_MISSING = "auth.apiKey.missing",
|
|
154
|
+
AUTH_TOKEN_MISSING = "auth.token.missing",
|
|
155
|
+
BASE_URL_INVALID = "baseUrl.invalid",
|
|
156
|
+
UPDATE_UNSUPPORTED = "update.unsupported",
|
|
157
|
+
NOT_IMPLEMENTED = "not.implemented"
|
|
158
|
+
}
|
|
159
|
+
/**
|
|
160
|
+
* @plan PLAN-20251027-STATELESS5.P03
|
|
161
|
+
* @requirement REQ-STAT5-001.1
|
|
162
|
+
* @pseudocode runtime-state.md lines 366-381
|
|
163
|
+
*
|
|
164
|
+
* Error thrown during runtime state validation or update.
|
|
165
|
+
*/
|
|
166
|
+
export declare class RuntimeStateError extends Error {
|
|
167
|
+
readonly code: RuntimeStateErrorCode;
|
|
168
|
+
readonly details?: Record<string, unknown> | undefined;
|
|
169
|
+
constructor(code: RuntimeStateErrorCode, details?: Record<string, unknown> | undefined);
|
|
170
|
+
}
|
|
171
|
+
/**
|
|
172
|
+
* @plan PLAN-20251027-STATELESS5.P05
|
|
173
|
+
* @requirement REQ-STAT5-001.1
|
|
174
|
+
* @pseudocode runtime-state.md lines 73-105
|
|
175
|
+
*
|
|
176
|
+
* Creates a new immutable runtime state instance.
|
|
177
|
+
* Validates all required fields and auth consistency.
|
|
178
|
+
*/
|
|
179
|
+
export declare function createAgentRuntimeState(params: RuntimeStateParams): AgentRuntimeState;
|
|
180
|
+
/**
|
|
181
|
+
* @plan PLAN-20251027-STATELESS5.P05
|
|
182
|
+
* @requirement REQ-STAT5-001.2
|
|
183
|
+
* @pseudocode runtime-state.md lines 209-243
|
|
184
|
+
*
|
|
185
|
+
* Updates runtime state immutably, returning a new instance.
|
|
186
|
+
* Validates updates and emits synchronous change events.
|
|
187
|
+
*/
|
|
188
|
+
export declare function updateAgentRuntimeState(oldState: AgentRuntimeState, updates: Partial<RuntimeStateParams>): AgentRuntimeState;
|
|
189
|
+
/**
|
|
190
|
+
* @plan PLAN-20251027-STATELESS5.P05
|
|
191
|
+
* @requirement REQ-STAT5-002.3
|
|
192
|
+
* @pseudocode runtime-state.md lines 252-278
|
|
193
|
+
*
|
|
194
|
+
* Batch update for atomic multi-field changes (e.g., provider switch).
|
|
195
|
+
* All updates validated together, single event emitted.
|
|
196
|
+
*/
|
|
197
|
+
export declare function updateAgentRuntimeStateBatch(oldState: AgentRuntimeState, updates: Partial<RuntimeStateParams>): AgentRuntimeState;
|
|
198
|
+
/**
|
|
199
|
+
* @plan PLAN-20251027-STATELESS5.P05
|
|
200
|
+
* @requirement REQ-STAT5-001.3
|
|
201
|
+
* @pseudocode runtime-state.md lines 329-355
|
|
202
|
+
*
|
|
203
|
+
* Returns a frozen snapshot of runtime state for diagnostics.
|
|
204
|
+
* Sanitizes sensitive auth data.
|
|
205
|
+
*/
|
|
206
|
+
export declare function getAgentRuntimeStateSnapshot(state: AgentRuntimeState): RuntimeStateSnapshot;
|
|
207
|
+
/**
|
|
208
|
+
* @plan PLAN-20251027-STATELESS5.P05
|
|
209
|
+
* @requirement REQ-STAT5-003.2
|
|
210
|
+
* @pseudocode runtime-state.md lines 289-318
|
|
211
|
+
*
|
|
212
|
+
* Subscribes to runtime state change events.
|
|
213
|
+
* Returns unsubscribe function to remove callback.
|
|
214
|
+
*/
|
|
215
|
+
export declare function subscribeToAgentRuntimeState(runtimeId: string, callback: RuntimeStateChangeCallback, options?: {
|
|
216
|
+
async: boolean;
|
|
217
|
+
}): UnsubscribeFunction;
|
|
218
|
+
/**
|
|
219
|
+
* @plan PLAN-20251027-STATELESS5.P03
|
|
220
|
+
* @requirement REQ-STAT5-003.1
|
|
221
|
+
* @pseudocode runtime-state.md lines 150-173
|
|
222
|
+
*
|
|
223
|
+
* Synchronous accessors for runtime state fields.
|
|
224
|
+
* STUB: Minimal implementations for type safety.
|
|
225
|
+
*/
|
|
226
|
+
export declare function getProvider(state: AgentRuntimeState): string;
|
|
227
|
+
export declare function getModel(state: AgentRuntimeState): string;
|
|
228
|
+
export declare function getAuthType(state: AgentRuntimeState): AuthType;
|
|
229
|
+
export declare function getAuthPayload(state: AgentRuntimeState): Readonly<AuthPayload> | undefined;
|
|
230
|
+
export declare function getBaseUrl(state: AgentRuntimeState): string | undefined;
|
|
231
|
+
export declare function getSessionId(state: AgentRuntimeState): string;
|
|
232
|
+
export declare function getModelParams(state: AgentRuntimeState): Readonly<ModelParams> | undefined;
|