bopodev-agent-sdk 0.1.11 → 0.1.13
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/.turbo/turbo-build.log +1 -1
- package/.turbo/turbo-typecheck.log +1 -1
- package/dist/adapters/anthropic-api/src/cli/format-event.d.ts +1 -0
- package/dist/adapters/anthropic-api/src/cli/index.d.ts +1 -0
- package/dist/adapters/anthropic-api/src/index.d.ts +16 -0
- package/dist/adapters/anthropic-api/src/server/execute.d.ts +2 -0
- package/dist/adapters/anthropic-api/src/server/index.d.ts +6 -0
- package/dist/adapters/anthropic-api/src/server/parse.d.ts +1 -0
- package/dist/adapters/anthropic-api/src/server/test.d.ts +2 -0
- package/dist/adapters/anthropic-api/src/ui/build-config.d.ts +3 -0
- package/dist/adapters/anthropic-api/src/ui/index.d.ts +2 -0
- package/dist/adapters/anthropic-api/src/ui/parse-stdout.d.ts +6 -0
- package/dist/adapters/claude-code/src/cli/format-event.d.ts +1 -0
- package/dist/adapters/claude-code/src/cli/index.d.ts +1 -0
- package/dist/adapters/claude-code/src/index.d.ts +16 -0
- package/dist/adapters/claude-code/src/server/execute.d.ts +2 -0
- package/dist/adapters/claude-code/src/server/index.d.ts +6 -0
- package/dist/adapters/claude-code/src/server/parse.d.ts +2 -0
- package/dist/adapters/claude-code/src/server/test.d.ts +2 -0
- package/dist/adapters/claude-code/src/ui/build-config.d.ts +3 -0
- package/dist/adapters/claude-code/src/ui/index.d.ts +2 -0
- package/dist/adapters/claude-code/src/ui/parse-stdout.d.ts +6 -0
- package/dist/adapters/codex/src/cli/format-event.d.ts +1 -0
- package/dist/adapters/codex/src/cli/index.d.ts +1 -0
- package/dist/adapters/codex/src/index.d.ts +34 -0
- package/dist/adapters/codex/src/server/execute.d.ts +2 -0
- package/dist/adapters/codex/src/server/index.d.ts +6 -0
- package/dist/adapters/codex/src/server/parse.d.ts +2 -0
- package/dist/adapters/codex/src/server/test.d.ts +2 -0
- package/dist/adapters/codex/src/ui/build-config.d.ts +3 -0
- package/dist/adapters/codex/src/ui/index.d.ts +2 -0
- package/dist/adapters/codex/src/ui/parse-stdout.d.ts +6 -0
- package/dist/adapters/cursor/src/cli/format-event.d.ts +1 -0
- package/dist/adapters/cursor/src/cli/index.d.ts +1 -0
- package/dist/adapters/cursor/src/index.d.ts +22 -0
- package/dist/adapters/cursor/src/server/execute.d.ts +2 -0
- package/dist/adapters/cursor/src/server/index.d.ts +6 -0
- package/dist/adapters/cursor/src/server/parse.d.ts +2 -0
- package/dist/adapters/cursor/src/server/test.d.ts +2 -0
- package/dist/adapters/cursor/src/ui/build-config.d.ts +3 -0
- package/dist/adapters/cursor/src/ui/index.d.ts +2 -0
- package/dist/adapters/cursor/src/ui/parse-stdout.d.ts +6 -0
- package/dist/adapters/http/src/cli/format-event.d.ts +1 -0
- package/dist/adapters/http/src/cli/index.d.ts +1 -0
- package/dist/adapters/http/src/index.d.ts +7 -0
- package/dist/adapters/http/src/server/execute.d.ts +2 -0
- package/dist/adapters/http/src/server/index.d.ts +6 -0
- package/dist/adapters/http/src/server/parse.d.ts +1 -0
- package/dist/adapters/http/src/server/test.d.ts +2 -0
- package/dist/adapters/http/src/ui/build-config.d.ts +3 -0
- package/dist/adapters/http/src/ui/index.d.ts +2 -0
- package/dist/adapters/http/src/ui/parse-stdout.d.ts +6 -0
- package/dist/adapters/openai-api/src/cli/format-event.d.ts +1 -0
- package/dist/adapters/openai-api/src/cli/index.d.ts +1 -0
- package/dist/adapters/openai-api/src/index.d.ts +22 -0
- package/dist/adapters/openai-api/src/server/execute.d.ts +2 -0
- package/dist/adapters/openai-api/src/server/index.d.ts +6 -0
- package/dist/adapters/openai-api/src/server/parse.d.ts +1 -0
- package/dist/adapters/openai-api/src/server/test.d.ts +2 -0
- package/dist/adapters/openai-api/src/ui/build-config.d.ts +3 -0
- package/dist/adapters/openai-api/src/ui/index.d.ts +2 -0
- package/dist/adapters/openai-api/src/ui/parse-stdout.d.ts +6 -0
- package/dist/adapters/opencode/src/cli/format-event.d.ts +1 -0
- package/dist/adapters/opencode/src/cli/index.d.ts +1 -0
- package/dist/adapters/opencode/src/index.d.ts +7 -0
- package/dist/adapters/opencode/src/server/execute.d.ts +2 -0
- package/dist/adapters/opencode/src/server/index.d.ts +6 -0
- package/dist/adapters/opencode/src/server/parse.d.ts +1 -0
- package/dist/adapters/opencode/src/server/test.d.ts +2 -0
- package/dist/adapters/opencode/src/ui/build-config.d.ts +3 -0
- package/dist/adapters/opencode/src/ui/index.d.ts +2 -0
- package/dist/adapters/opencode/src/ui/parse-stdout.d.ts +6 -0
- package/dist/adapters/shell/src/cli/format-event.d.ts +1 -0
- package/dist/adapters/shell/src/cli/index.d.ts +1 -0
- package/dist/adapters/shell/src/index.d.ts +7 -0
- package/dist/adapters/shell/src/server/execute.d.ts +2 -0
- package/dist/adapters/shell/src/server/index.d.ts +6 -0
- package/dist/adapters/shell/src/server/parse.d.ts +1 -0
- package/dist/adapters/shell/src/server/test.d.ts +2 -0
- package/dist/adapters/shell/src/ui/build-config.d.ts +3 -0
- package/dist/adapters/shell/src/ui/index.d.ts +2 -0
- package/dist/adapters/shell/src/ui/parse-stdout.d.ts +6 -0
- package/dist/agent-sdk/src/adapters.d.ts +226 -1
- package/dist/agent-sdk/src/index.d.ts +2 -0
- package/dist/agent-sdk/src/registry.d.ts +2 -1
- package/dist/agent-sdk/src/runtime-core.d.ts +2 -0
- package/dist/agent-sdk/src/runtime-http.d.ts +38 -0
- package/dist/agent-sdk/src/runtime-parsers.d.ts +1 -0
- package/dist/agent-sdk/src/runtime.d.ts +36 -0
- package/dist/agent-sdk/src/types.d.ts +55 -0
- package/dist/contracts/src/index.d.ts +889 -12
- package/package.json +2 -2
- package/src/adapters.ts +385 -36
- package/src/index.ts +2 -0
- package/src/registry.ts +67 -18
- package/src/runtime-core.ts +7 -0
- package/src/runtime-http.ts +455 -0
- package/src/runtime-parsers.ts +6 -0
- package/src/runtime.ts +848 -33
- package/src/types.ts +61 -0
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import type { AdapterEnvironmentResult, AdapterExecutionResult, AdapterMetadata, AdapterModelOption, AgentAdapter, AgentProviderType, AgentRuntimeConfig, HeartbeatContext } from "./types";
|
|
1
|
+
import type { AdapterEnvironmentCheck, AdapterEnvironmentResult, AdapterExecutionResult, AdapterMetadata, AdapterModelOption, AgentAdapter, AgentProviderType, AgentRuntimeConfig, HeartbeatContext } from "./types";
|
|
2
|
+
import { type DirectApiProvider } from "./runtime-http";
|
|
2
3
|
export declare class ClaudeCodeAdapter implements AgentAdapter {
|
|
3
4
|
providerType: "claude_code";
|
|
4
5
|
execute(context: HeartbeatContext): Promise<AdapterExecutionResult>;
|
|
@@ -15,11 +16,235 @@ export declare class OpenCodeAdapter implements AgentAdapter {
|
|
|
15
16
|
providerType: "opencode";
|
|
16
17
|
execute(context: HeartbeatContext): Promise<AdapterExecutionResult>;
|
|
17
18
|
}
|
|
19
|
+
export declare class OpenAIApiAdapter implements AgentAdapter {
|
|
20
|
+
providerType: "openai_api";
|
|
21
|
+
execute(context: HeartbeatContext): Promise<AdapterExecutionResult>;
|
|
22
|
+
}
|
|
23
|
+
export declare class AnthropicApiAdapter implements AgentAdapter {
|
|
24
|
+
providerType: "anthropic_api";
|
|
25
|
+
execute(context: HeartbeatContext): Promise<AdapterExecutionResult>;
|
|
26
|
+
}
|
|
18
27
|
export declare class GenericHeartbeatAdapter implements AgentAdapter {
|
|
19
28
|
providerType: "http" | "shell";
|
|
20
29
|
constructor(providerType: "http" | "shell");
|
|
21
30
|
execute(context: HeartbeatContext): Promise<AdapterExecutionResult>;
|
|
22
31
|
}
|
|
32
|
+
type ProviderSessionUpdate = {
|
|
33
|
+
currentSessionId?: string | null;
|
|
34
|
+
resumedSessionId?: string | null;
|
|
35
|
+
resumeAttempted?: boolean;
|
|
36
|
+
resumeSkippedReason?: string | null;
|
|
37
|
+
clearedStaleSession?: boolean;
|
|
38
|
+
cwd?: string | null;
|
|
39
|
+
};
|
|
23
40
|
export declare function listAdapterMetadata(): AdapterMetadata[];
|
|
41
|
+
export declare function getAdapterMetadataByProviderType(providerType: AgentProviderType): AdapterMetadata;
|
|
24
42
|
export declare function listAdapterModels(providerType: AgentProviderType, runtime?: AgentRuntimeConfig): Promise<AdapterModelOption[]>;
|
|
25
43
|
export declare function testAdapterEnvironment(providerType: AgentProviderType, runtime?: AgentRuntimeConfig): Promise<AdapterEnvironmentResult>;
|
|
44
|
+
export declare function createSkippedResult(providerLabel: string, providerKey: string, context: HeartbeatContext): AdapterExecutionResult;
|
|
45
|
+
export declare function runDirectApiWork(context: HeartbeatContext, provider: "openai_api" | "anthropic_api"): Promise<AdapterExecutionResult>;
|
|
46
|
+
export declare function testDirectApiEnvironment(providerType: DirectApiProvider, runtime?: AgentRuntimeConfig): Promise<AdapterEnvironmentResult>;
|
|
47
|
+
export declare function runProviderWork(context: HeartbeatContext, provider: "claude_code" | "codex", pricing: {
|
|
48
|
+
inputRate: number;
|
|
49
|
+
outputRate: number;
|
|
50
|
+
}): Promise<AdapterExecutionResult>;
|
|
51
|
+
export declare function runCursorWork(context: HeartbeatContext): Promise<AdapterExecutionResult>;
|
|
52
|
+
export declare function runOpenCodeWork(context: HeartbeatContext): Promise<AdapterExecutionResult>;
|
|
53
|
+
export declare function resolveFailedUsage(runtime: {
|
|
54
|
+
parsedUsage?: {
|
|
55
|
+
tokenInput?: number;
|
|
56
|
+
tokenOutput?: number;
|
|
57
|
+
usdCost?: number;
|
|
58
|
+
summary?: string;
|
|
59
|
+
};
|
|
60
|
+
failureType?: "timeout" | "spawn_error" | "nonzero_exit";
|
|
61
|
+
stdout: string;
|
|
62
|
+
stderr: string;
|
|
63
|
+
}, prompt: string, pricing: {
|
|
64
|
+
inputRate: number;
|
|
65
|
+
outputRate: number;
|
|
66
|
+
}): {
|
|
67
|
+
tokenInput: number;
|
|
68
|
+
tokenOutput: number;
|
|
69
|
+
usdCost: number;
|
|
70
|
+
source: "structured";
|
|
71
|
+
} | {
|
|
72
|
+
tokenInput: number;
|
|
73
|
+
tokenOutput: number;
|
|
74
|
+
usdCost: number;
|
|
75
|
+
source: "none";
|
|
76
|
+
} | {
|
|
77
|
+
tokenInput: number;
|
|
78
|
+
tokenOutput: number;
|
|
79
|
+
usdCost: number;
|
|
80
|
+
source: "estimated";
|
|
81
|
+
};
|
|
82
|
+
export declare function toProviderResult(context: HeartbeatContext, provider: AgentProviderType, prompt: string, runtime: {
|
|
83
|
+
ok: boolean;
|
|
84
|
+
code: number | null;
|
|
85
|
+
stdout: string;
|
|
86
|
+
stderr: string;
|
|
87
|
+
timedOut: boolean;
|
|
88
|
+
elapsedMs: number;
|
|
89
|
+
attemptCount: number;
|
|
90
|
+
failureType?: "timeout" | "spawn_error" | "nonzero_exit";
|
|
91
|
+
attempts: Array<{
|
|
92
|
+
attempt: number;
|
|
93
|
+
code: number | null;
|
|
94
|
+
timedOut: boolean;
|
|
95
|
+
elapsedMs: number;
|
|
96
|
+
signal: NodeJS.Signals | null;
|
|
97
|
+
spawnErrorCode?: string;
|
|
98
|
+
forcedKill: boolean;
|
|
99
|
+
}>;
|
|
100
|
+
parsedUsage?: {
|
|
101
|
+
tokenInput?: number;
|
|
102
|
+
tokenOutput?: number;
|
|
103
|
+
usdCost?: number;
|
|
104
|
+
summary?: string;
|
|
105
|
+
};
|
|
106
|
+
structuredOutputSource?: "stdout" | "stderr";
|
|
107
|
+
structuredOutputDiagnostics?: {
|
|
108
|
+
stdoutJsonObjectCount: number;
|
|
109
|
+
stderrJsonObjectCount: number;
|
|
110
|
+
stderrStructuredUsageDetected: boolean;
|
|
111
|
+
stdoutBytes: number;
|
|
112
|
+
stderrBytes: number;
|
|
113
|
+
hasAnyOutput: boolean;
|
|
114
|
+
lastStdoutLine?: string;
|
|
115
|
+
lastStderrLine?: string;
|
|
116
|
+
likelyCause: "no_output_from_runtime" | "json_missing" | "json_on_stderr_only" | "schema_or_shape_mismatch";
|
|
117
|
+
claudeStopReason?: string;
|
|
118
|
+
claudeResultSubtype?: string;
|
|
119
|
+
claudeSessionId?: string;
|
|
120
|
+
claudeContract?: {
|
|
121
|
+
commandOverride: boolean;
|
|
122
|
+
commandLooksClaude: boolean;
|
|
123
|
+
commandWasProviderAlias: boolean;
|
|
124
|
+
hasPromptFlag: boolean;
|
|
125
|
+
hasOutputFormatJson: boolean;
|
|
126
|
+
outputFormat: string | null;
|
|
127
|
+
hasMaxTurnsFlag: boolean;
|
|
128
|
+
hasVerboseFlag: boolean;
|
|
129
|
+
hasDangerouslySkipPermissions: boolean;
|
|
130
|
+
hasJsonSchema: boolean;
|
|
131
|
+
missingRequiredArgs: string[];
|
|
132
|
+
};
|
|
133
|
+
};
|
|
134
|
+
commandUsed?: string;
|
|
135
|
+
argsUsed?: string[];
|
|
136
|
+
transcript?: Array<{
|
|
137
|
+
kind: "system" | "assistant" | "thinking" | "tool_call" | "tool_result" | "result" | "stderr";
|
|
138
|
+
label?: string;
|
|
139
|
+
text?: string;
|
|
140
|
+
payload?: string;
|
|
141
|
+
}>;
|
|
142
|
+
}, pricing: {
|
|
143
|
+
inputRate: number;
|
|
144
|
+
outputRate: number;
|
|
145
|
+
}, sessionUpdate?: ProviderSessionUpdate): AdapterExecutionResult;
|
|
146
|
+
export declare function resolveRuntimeFailureDetail(runtime: {
|
|
147
|
+
stderr: string;
|
|
148
|
+
stdout: string;
|
|
149
|
+
code: number | null;
|
|
150
|
+
failureType?: "timeout" | "spawn_error" | "nonzero_exit";
|
|
151
|
+
attempts: Array<{
|
|
152
|
+
spawnErrorCode?: string;
|
|
153
|
+
}>;
|
|
154
|
+
}): string;
|
|
155
|
+
export declare function parseOpenCodeOutput(stdout: string): {
|
|
156
|
+
sessionId: string | null;
|
|
157
|
+
};
|
|
158
|
+
export declare function resolveCursorResumeState(state: HeartbeatContext["state"], cwd: string): {
|
|
159
|
+
resumeSessionId: null;
|
|
160
|
+
resumeAttempted: boolean;
|
|
161
|
+
resumeSkippedReason: null;
|
|
162
|
+
} | {
|
|
163
|
+
resumeSessionId: null;
|
|
164
|
+
resumeAttempted: boolean;
|
|
165
|
+
resumeSkippedReason: string;
|
|
166
|
+
} | {
|
|
167
|
+
resumeSessionId: string;
|
|
168
|
+
resumeAttempted: boolean;
|
|
169
|
+
resumeSkippedReason: null;
|
|
170
|
+
};
|
|
171
|
+
export declare function readRuntimeSessionId(runtime: {
|
|
172
|
+
structuredOutputDiagnostics?: {
|
|
173
|
+
claudeSessionId?: string;
|
|
174
|
+
cursorSessionId?: string;
|
|
175
|
+
};
|
|
176
|
+
}, fallback: string | null): string | null;
|
|
177
|
+
export declare function isUnknownSessionError(stderr: string, stdout: string): boolean;
|
|
178
|
+
export declare function hasTrustFlag(args: string[]): boolean;
|
|
179
|
+
export declare function resolveRuntimeCommand(providerType: AgentProviderType, runtime?: AgentRuntimeConfig): string;
|
|
180
|
+
export declare function runRuntimeProbe(providerType: AgentProviderType, runtime?: AgentRuntimeConfig): Promise<import("./runtime").RuntimeExecutionOutput>;
|
|
181
|
+
export declare function discoverCursorModels(runtime?: AgentRuntimeConfig): Promise<AdapterModelOption[]>;
|
|
182
|
+
export declare function discoverOpenCodeModels(runtime?: AgentRuntimeConfig): Promise<AdapterModelOption[]>;
|
|
183
|
+
export declare function discoverOpenCodeModelsCached(runtime?: AgentRuntimeConfig): Promise<AdapterModelOption[]>;
|
|
184
|
+
export declare function ensureOpenCodeModelConfiguredAndAvailable(input: {
|
|
185
|
+
model?: string;
|
|
186
|
+
command?: string;
|
|
187
|
+
cwd?: string;
|
|
188
|
+
env?: Record<string, string>;
|
|
189
|
+
}): Promise<void>;
|
|
190
|
+
export declare function parseModelLines(text: string): AdapterModelOption[];
|
|
191
|
+
export declare function dedupeModels(models: AdapterModelOption[]): AdapterModelOption[];
|
|
192
|
+
export declare function resolveCursorLaunchConfig(runtime?: AgentRuntimeConfig): Promise<{
|
|
193
|
+
command: string;
|
|
194
|
+
prefixArgs: string[];
|
|
195
|
+
}>;
|
|
196
|
+
export declare function toEnvironmentStatus(checks: AdapterEnvironmentCheck[]): "pass" | "warn" | "fail";
|
|
197
|
+
export declare function createPrompt(context: HeartbeatContext): string;
|
|
198
|
+
export declare function withProviderMetadata(context: HeartbeatContext, provider: string, lastRuntimeMs?: number, lastExitCode?: number | null): {
|
|
199
|
+
metadata: {
|
|
200
|
+
lastExitCode?: number | null | undefined;
|
|
201
|
+
lastRuntimeMs?: number | undefined;
|
|
202
|
+
lastProvider: string;
|
|
203
|
+
lastHeartbeatRunId: string;
|
|
204
|
+
};
|
|
205
|
+
sessionId?: string;
|
|
206
|
+
cwd?: string;
|
|
207
|
+
cursorSession?: {
|
|
208
|
+
sessionId: string;
|
|
209
|
+
cwd?: string;
|
|
210
|
+
};
|
|
211
|
+
};
|
|
212
|
+
export declare function applyProviderSessionState(context: HeartbeatContext, provider: AgentProviderType, sessionUpdate?: ProviderSessionUpdate, lastRuntimeMs?: number, lastExitCode?: number | null): import("./types").AgentState & Record<string, unknown>;
|
|
213
|
+
export declare function toPreview(value: string, max?: number): string;
|
|
214
|
+
export declare function buildMissingStructuredOutputDetail(provider: string, runtime: {
|
|
215
|
+
structuredOutputSource?: "stdout" | "stderr";
|
|
216
|
+
structuredOutputDiagnostics?: {
|
|
217
|
+
stdoutJsonObjectCount: number;
|
|
218
|
+
stderrJsonObjectCount: number;
|
|
219
|
+
stderrStructuredUsageDetected: boolean;
|
|
220
|
+
stdoutBytes: number;
|
|
221
|
+
stderrBytes: number;
|
|
222
|
+
hasAnyOutput: boolean;
|
|
223
|
+
lastStdoutLine?: string;
|
|
224
|
+
lastStderrLine?: string;
|
|
225
|
+
likelyCause: "no_output_from_runtime" | "json_missing" | "json_on_stderr_only" | "schema_or_shape_mismatch";
|
|
226
|
+
claudeStopReason?: string;
|
|
227
|
+
claudeResultSubtype?: string;
|
|
228
|
+
claudeSessionId?: string;
|
|
229
|
+
claudeContract?: {
|
|
230
|
+
commandOverride: boolean;
|
|
231
|
+
commandLooksClaude: boolean;
|
|
232
|
+
commandWasProviderAlias: boolean;
|
|
233
|
+
hasPromptFlag: boolean;
|
|
234
|
+
hasOutputFormatJson: boolean;
|
|
235
|
+
outputFormat: string | null;
|
|
236
|
+
hasMaxTurnsFlag: boolean;
|
|
237
|
+
hasVerboseFlag: boolean;
|
|
238
|
+
hasDangerouslySkipPermissions: boolean;
|
|
239
|
+
hasJsonSchema: boolean;
|
|
240
|
+
missingRequiredArgs: string[];
|
|
241
|
+
};
|
|
242
|
+
};
|
|
243
|
+
}): string;
|
|
244
|
+
export declare function isClaudeRunIncomplete(runtime: {
|
|
245
|
+
structuredOutputDiagnostics?: {
|
|
246
|
+
claudeStopReason?: string;
|
|
247
|
+
claudeResultSubtype?: string;
|
|
248
|
+
};
|
|
249
|
+
}): boolean;
|
|
250
|
+
export {};
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import type { AdapterEnvironmentResult, AdapterMetadata, AdapterModelOption, AgentAdapter, AgentProviderType, AgentRuntimeConfig } from "./types";
|
|
1
|
+
import type { AdapterEnvironmentResult, AdapterMetadata, AdapterModule, AdapterModelOption, AgentAdapter, AgentProviderType, AgentRuntimeConfig } from "./types";
|
|
2
|
+
export declare function getRegisteredAdapterModules(): Record<AgentProviderType, AdapterModule>;
|
|
2
3
|
export declare function resolveAdapter(providerType: AgentProviderType): AgentAdapter;
|
|
3
4
|
export declare function getAdapterModels(providerType: AgentProviderType, runtime?: AgentRuntimeConfig): Promise<AdapterModelOption[]>;
|
|
4
5
|
export declare function getAdapterMetadata(): AdapterMetadata[];
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import type { AgentRuntimeConfig } from "./types";
|
|
2
|
+
export type DirectApiProvider = "openai_api" | "anthropic_api";
|
|
3
|
+
export type DirectApiExecutionOutput = {
|
|
4
|
+
ok: boolean;
|
|
5
|
+
provider: DirectApiProvider;
|
|
6
|
+
model: string;
|
|
7
|
+
endpoint: string;
|
|
8
|
+
elapsedMs: number;
|
|
9
|
+
statusCode: number;
|
|
10
|
+
summary?: string;
|
|
11
|
+
tokenInput?: number;
|
|
12
|
+
tokenOutput?: number;
|
|
13
|
+
usdCost?: number;
|
|
14
|
+
failureType?: "auth" | "rate_limit" | "timeout" | "network" | "bad_response" | "http_error";
|
|
15
|
+
error?: string;
|
|
16
|
+
responsePreview?: string;
|
|
17
|
+
attemptCount: number;
|
|
18
|
+
attempts: Array<{
|
|
19
|
+
attempt: number;
|
|
20
|
+
statusCode: number;
|
|
21
|
+
elapsedMs: number;
|
|
22
|
+
failureType?: "auth" | "rate_limit" | "timeout" | "network" | "bad_response" | "http_error";
|
|
23
|
+
error?: string;
|
|
24
|
+
}>;
|
|
25
|
+
};
|
|
26
|
+
type ProbeResult = {
|
|
27
|
+
ok: boolean;
|
|
28
|
+
statusCode: number;
|
|
29
|
+
elapsedMs: number;
|
|
30
|
+
message: string;
|
|
31
|
+
};
|
|
32
|
+
export declare function resolveDirectApiCredentials(provider: DirectApiProvider, runtime?: AgentRuntimeConfig): {
|
|
33
|
+
key: string;
|
|
34
|
+
baseUrl: string;
|
|
35
|
+
};
|
|
36
|
+
export declare function executeDirectApiRuntime(provider: DirectApiProvider, prompt: string, runtime?: AgentRuntimeConfig): Promise<DirectApiExecutionOutput>;
|
|
37
|
+
export declare function probeDirectApiEnvironment(provider: DirectApiProvider, runtime?: AgentRuntimeConfig): Promise<ProbeResult>;
|
|
38
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { parseClaudeStreamOutput, parseCursorStreamOutput, parseRuntimeTranscript, parseStructuredUsage } from "./runtime";
|
|
@@ -13,6 +13,20 @@ type ClaudeContractDiagnostics = {
|
|
|
13
13
|
hasJsonSchema: boolean;
|
|
14
14
|
missingRequiredArgs: string[];
|
|
15
15
|
};
|
|
16
|
+
type ParsedUsageRecord = {
|
|
17
|
+
tokenInput?: number;
|
|
18
|
+
tokenOutput?: number;
|
|
19
|
+
usdCost?: number;
|
|
20
|
+
summary?: string;
|
|
21
|
+
};
|
|
22
|
+
type CursorParsedStream = {
|
|
23
|
+
usage: ParsedUsageRecord;
|
|
24
|
+
sessionId?: string;
|
|
25
|
+
errorMessage?: string;
|
|
26
|
+
resultSubtype?: string;
|
|
27
|
+
};
|
|
28
|
+
type TranscriptSignalLevel = "high" | "medium" | "low" | "noise";
|
|
29
|
+
type TranscriptSource = "stdout" | "stderr" | "trace_fallback";
|
|
16
30
|
export interface RuntimeExecutionOutput {
|
|
17
31
|
ok: boolean;
|
|
18
32
|
code: number | null;
|
|
@@ -54,6 +68,9 @@ export interface RuntimeTranscriptEvent {
|
|
|
54
68
|
label?: string;
|
|
55
69
|
text?: string;
|
|
56
70
|
payload?: string;
|
|
71
|
+
signalLevel?: TranscriptSignalLevel;
|
|
72
|
+
groupKey?: string;
|
|
73
|
+
source?: TranscriptSource;
|
|
57
74
|
}
|
|
58
75
|
export interface RuntimeAttemptTrace {
|
|
59
76
|
attempt: number;
|
|
@@ -80,4 +97,23 @@ export declare function checkRuntimeCommandHealth(command: string, options?: {
|
|
|
80
97
|
cwd?: string;
|
|
81
98
|
timeoutMs?: number;
|
|
82
99
|
}): Promise<RuntimeCommandHealth>;
|
|
100
|
+
export declare function parseStructuredUsage(stdout: string): {
|
|
101
|
+
tokenInput: number | undefined;
|
|
102
|
+
tokenOutput: number | undefined;
|
|
103
|
+
usdCost: number | undefined;
|
|
104
|
+
summary: string | undefined;
|
|
105
|
+
} | undefined;
|
|
106
|
+
export declare function parseClaudeStreamOutput(stdout: string): {
|
|
107
|
+
usage: {
|
|
108
|
+
summary: string | undefined;
|
|
109
|
+
tokenInput: number | undefined;
|
|
110
|
+
tokenOutput: number | undefined;
|
|
111
|
+
usdCost: number | undefined;
|
|
112
|
+
};
|
|
113
|
+
stopReason: string | undefined;
|
|
114
|
+
resultSubtype: string | undefined;
|
|
115
|
+
sessionId: string | undefined;
|
|
116
|
+
} | undefined;
|
|
117
|
+
export declare function parseCursorStreamOutput(stdout: string): CursorParsedStream | undefined;
|
|
118
|
+
export declare function parseRuntimeTranscript(provider: LocalProvider | undefined, stdout: string, stderr: string): RuntimeTranscriptEvent[] | undefined;
|
|
83
119
|
export {};
|
|
@@ -10,6 +10,14 @@ export interface AgentWorkItem {
|
|
|
10
10
|
priority?: string;
|
|
11
11
|
labels?: string[];
|
|
12
12
|
tags?: string[];
|
|
13
|
+
attachments?: Array<{
|
|
14
|
+
id: string;
|
|
15
|
+
fileName: string;
|
|
16
|
+
mimeType?: string | null;
|
|
17
|
+
fileSizeBytes: number;
|
|
18
|
+
relativePath: string;
|
|
19
|
+
absolutePath: string;
|
|
20
|
+
}>;
|
|
13
21
|
}
|
|
14
22
|
export interface AgentState {
|
|
15
23
|
sessionId?: string;
|
|
@@ -20,6 +28,12 @@ export interface AgentState {
|
|
|
20
28
|
};
|
|
21
29
|
metadata?: Record<string, unknown>;
|
|
22
30
|
}
|
|
31
|
+
export interface AgentMemoryContext {
|
|
32
|
+
memoryRoot: string;
|
|
33
|
+
tacitNotes?: string;
|
|
34
|
+
durableFacts: string[];
|
|
35
|
+
dailyNotes: string[];
|
|
36
|
+
}
|
|
23
37
|
export interface HeartbeatContext {
|
|
24
38
|
companyId: string;
|
|
25
39
|
agentId: string;
|
|
@@ -41,6 +55,7 @@ export interface HeartbeatContext {
|
|
|
41
55
|
agentGoals: string[];
|
|
42
56
|
};
|
|
43
57
|
state: AgentState;
|
|
58
|
+
memoryContext?: AgentMemoryContext;
|
|
44
59
|
runtime?: AgentRuntimeConfig;
|
|
45
60
|
}
|
|
46
61
|
export interface AdapterExecutionResult {
|
|
@@ -57,6 +72,11 @@ export interface AgentAdapter {
|
|
|
57
72
|
providerType: AgentProviderType;
|
|
58
73
|
execute(context: HeartbeatContext): Promise<AdapterExecutionResult>;
|
|
59
74
|
}
|
|
75
|
+
export interface AdapterSessionCodec {
|
|
76
|
+
deserialize(raw: unknown): Record<string, unknown> | null;
|
|
77
|
+
serialize(params: Record<string, unknown> | null): Record<string, unknown> | null;
|
|
78
|
+
getDisplayId?(params: Record<string, unknown> | null): string | null;
|
|
79
|
+
}
|
|
60
80
|
export type AdapterEnvironmentCheckLevel = "info" | "warn" | "error";
|
|
61
81
|
export type AdapterEnvironmentStatus = "pass" | "warn" | "fail";
|
|
62
82
|
export interface AdapterEnvironmentCheck {
|
|
@@ -85,6 +105,32 @@ export interface AdapterMetadata {
|
|
|
85
105
|
supportsThinkingEffort: boolean;
|
|
86
106
|
requiresRuntimeCwd: boolean;
|
|
87
107
|
}
|
|
108
|
+
export interface ServerAdapterModule {
|
|
109
|
+
type: AgentProviderType;
|
|
110
|
+
execute(context: HeartbeatContext): Promise<AdapterExecutionResult>;
|
|
111
|
+
listModels?(runtime?: AgentRuntimeConfig): Promise<AdapterModelOption[]>;
|
|
112
|
+
testEnvironment?(runtime?: AgentRuntimeConfig): Promise<AdapterEnvironmentResult>;
|
|
113
|
+
sessionCodec?: AdapterSessionCodec;
|
|
114
|
+
}
|
|
115
|
+
export interface UIAdapterModule {
|
|
116
|
+
type: AgentProviderType;
|
|
117
|
+
parseStdoutLine?: (line: string, timestampIso: string) => Array<Record<string, unknown>>;
|
|
118
|
+
buildAdapterConfig?: (values: Record<string, unknown>) => Record<string, unknown>;
|
|
119
|
+
}
|
|
120
|
+
export interface CLIAdapterModule {
|
|
121
|
+
type: AgentProviderType;
|
|
122
|
+
formatStdoutEvent?: (line: string, debug: boolean) => void;
|
|
123
|
+
}
|
|
124
|
+
export interface AdapterModule {
|
|
125
|
+
type: AgentProviderType;
|
|
126
|
+
label: string;
|
|
127
|
+
metadata: AdapterMetadata;
|
|
128
|
+
models?: AdapterModelOption[];
|
|
129
|
+
agentConfigurationDoc?: string;
|
|
130
|
+
server: ServerAdapterModule;
|
|
131
|
+
ui?: UIAdapterModule;
|
|
132
|
+
cli?: CLIAdapterModule;
|
|
133
|
+
}
|
|
88
134
|
export interface AgentRuntimeConfig {
|
|
89
135
|
command?: string;
|
|
90
136
|
args?: string[];
|
|
@@ -102,6 +148,15 @@ export interface AgentRuntimeConfig {
|
|
|
102
148
|
sandboxMode?: "workspace_write" | "full_access";
|
|
103
149
|
allowWebSearch?: boolean;
|
|
104
150
|
};
|
|
151
|
+
onTranscriptEvent?: (event: {
|
|
152
|
+
kind: "system" | "assistant" | "thinking" | "tool_call" | "tool_result" | "result" | "stderr";
|
|
153
|
+
label?: string;
|
|
154
|
+
text?: string;
|
|
155
|
+
payload?: string;
|
|
156
|
+
signalLevel?: "high" | "medium" | "low" | "noise";
|
|
157
|
+
groupKey?: string;
|
|
158
|
+
source?: "stdout" | "stderr" | "trace_fallback";
|
|
159
|
+
}) => void;
|
|
105
160
|
}
|
|
106
161
|
export interface AdapterTrace {
|
|
107
162
|
command?: string;
|