@agent-harness-experimental/protocol 0.0.0 → 0.0.1

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.js ADDED
@@ -0,0 +1,301 @@
1
+ import { z } from 'zod';
2
+ export const PROTOCOL_VERSION = 1;
3
+ const jsonSchemaBrand = Symbol('JsonSchema');
4
+ export const ADAPTER_KEYS = ['claude-code', 'codex', 'goose', 'mastra', 'opencode', 'deepagents', 'pi', 'openai-agents'];
5
+ export const adapterKeySchema = z.enum(ADAPTER_KEYS);
6
+ export function isAdapterKey(value) {
7
+ return adapterKeySchema.safeParse(value).success;
8
+ }
9
+ export function assertAdapterKey(value) {
10
+ return adapterKeySchema.parse(value);
11
+ }
12
+ export const protocolRecordSchema = z.record(z.string(), z.unknown());
13
+ export const jsonSchemaSchema = protocolRecordSchema;
14
+ const toolInputSchema = z.unknown();
15
+ const toolOutputSchema = z.unknown();
16
+ export function jsonSchema(value) {
17
+ return value;
18
+ }
19
+ export function toolInput(value) {
20
+ return value;
21
+ }
22
+ export function toolOutput(value) {
23
+ return value;
24
+ }
25
+ export const toolSchemaSchema = z.object({
26
+ name: z.string(),
27
+ nativeName: z.string().optional(),
28
+ description: z.string().optional(),
29
+ inputSchema: jsonSchemaSchema,
30
+ });
31
+ export const bridgePrepareStepConfigSchema = z.object({
32
+ activeTools: z.array(z.string()).optional(),
33
+ activeSkillNames: z.array(z.string()).optional(),
34
+ forcedSkillNames: z.array(z.string()).optional(),
35
+ instructions: z.string().optional(),
36
+ responseFormat: z.unknown().optional(),
37
+ });
38
+ export const agentConfigSchema = z.object({
39
+ model: z.string().optional(),
40
+ maxTurns: z.number().optional(),
41
+ interceptBuiltinTools: z.union([z.boolean(), z.array(z.string())]).optional(),
42
+ builtinToolMappings: z.array(z.object({ name: z.string(), nativeName: z.string().optional() })).optional(),
43
+ toolTimeout: z.number().optional(),
44
+ contextWindow: z.number().optional(),
45
+ toolSearchMode: z.boolean().optional(),
46
+ traceContext: z
47
+ .object({
48
+ traceparent: z.string().optional(),
49
+ tracestate: z.string().optional(),
50
+ })
51
+ .optional(),
52
+ instructions: z.string().optional(),
53
+ responseFormat: z.unknown().optional(),
54
+ watch: z.string().optional(),
55
+ debug: protocolRecordSchema.optional(),
56
+ });
57
+ export const usageSchema = z.object({
58
+ inputTokens: z.number(),
59
+ outputTokens: z.number(),
60
+ costUsd: z.number().optional(),
61
+ });
62
+ export const todoTaskSchema = z.object({
63
+ id: z.string(),
64
+ content: z.string(),
65
+ status: z.enum(['pending', 'in_progress', 'completed']),
66
+ priority: z.enum(['low', 'medium', 'high']).optional(),
67
+ });
68
+ export const httpPathRuleSchema = z.object({
69
+ origin: z.string(),
70
+ pathPrefix: z.string(),
71
+ });
72
+ export const harnessMessageSchema = z.discriminatedUnion('type', [
73
+ z.object({
74
+ type: z.literal('start'),
75
+ protocolVersion: z.literal(PROTOCOL_VERSION),
76
+ prompt: z.string(),
77
+ tools: z.array(toolSchemaSchema),
78
+ config: agentConfigSchema.catchall(z.unknown()),
79
+ }),
80
+ z.object({
81
+ type: z.literal('resume'),
82
+ lastSeenEventId: z.number(),
83
+ }),
84
+ z.object({
85
+ type: z.literal('prepare-step-response'),
86
+ stepNumber: z.number(),
87
+ config: bridgePrepareStepConfigSchema.optional(),
88
+ error: z.string().optional(),
89
+ }),
90
+ z.object({
91
+ type: z.literal('tool-result'),
92
+ requestId: z.string(),
93
+ output: toolOutputSchema,
94
+ }),
95
+ z.object({
96
+ type: z.literal('tool-result-response'),
97
+ requestId: z.string(),
98
+ output: toolOutputSchema,
99
+ config: bridgePrepareStepConfigSchema.optional(),
100
+ }),
101
+ z.object({
102
+ type: z.literal('tool-decision'),
103
+ requestId: z.string(),
104
+ approved: z.boolean(),
105
+ reason: z.string().optional(),
106
+ config: bridgePrepareStepConfigSchema.optional(),
107
+ }),
108
+ z.object({
109
+ type: z.literal('user-message'),
110
+ text: z.string(),
111
+ }),
112
+ z.object({
113
+ type: z.literal('compact'),
114
+ }),
115
+ z.object({
116
+ type: z.literal('update-network'),
117
+ allowedHosts: z.array(z.string()).optional(),
118
+ deniedHosts: z.array(z.string()).optional(),
119
+ allowedHttpPaths: z.array(httpPathRuleSchema).optional(),
120
+ deniedHttpPaths: z.array(httpPathRuleSchema).optional(),
121
+ }),
122
+ z.object({
123
+ type: z.literal('abort'),
124
+ }),
125
+ z.object({
126
+ type: z.literal('ping'),
127
+ }),
128
+ ]);
129
+ export const bridgeStartMessageSchema = z.object({
130
+ protocolVersion: z.literal(PROTOCOL_VERSION),
131
+ prompt: z.string(),
132
+ tools: z.array(toolSchemaSchema),
133
+ config: agentConfigSchema.catchall(z.unknown()),
134
+ });
135
+ export const bridgeReadyMessageSchema = z.object({
136
+ type: z.literal('bridge-ready'),
137
+ protocolVersion: z.literal(PROTOCOL_VERSION),
138
+ port: z.number(),
139
+ state: z.string(),
140
+ });
141
+ export const sandboxMessageSchema = z.discriminatedUnion('type', [
142
+ z.object({ id: z.number(), type: z.literal('text-delta'), delta: z.string() }),
143
+ z.object({ id: z.number(), type: z.literal('reasoning-delta'), delta: z.string() }),
144
+ z.object({
145
+ id: z.number(),
146
+ type: z.literal('subagent-start'),
147
+ agentName: z.string(),
148
+ parentToolCallId: z.string(),
149
+ }),
150
+ z.object({
151
+ id: z.number(),
152
+ type: z.literal('subagent-finish'),
153
+ agentName: z.string(),
154
+ parentToolCallId: z.string(),
155
+ output: z.unknown().optional(),
156
+ usage: usageSchema.optional(),
157
+ }),
158
+ z.object({
159
+ id: z.number(),
160
+ type: z.literal('tool-call'),
161
+ requestId: z.string(),
162
+ toolName: z.string(),
163
+ toolCallId: z.string(),
164
+ input: toolInputSchema,
165
+ observeOnly: z.boolean().optional(),
166
+ }),
167
+ z.object({
168
+ id: z.number(),
169
+ type: z.literal('tool-result'),
170
+ toolName: z.string(),
171
+ toolCallId: z.string(),
172
+ output: toolOutputSchema,
173
+ }),
174
+ z.object({
175
+ id: z.number(),
176
+ type: z.literal('host-approval-request'),
177
+ approvalId: z.string(),
178
+ requestId: z.string(),
179
+ toolCallId: z.string(),
180
+ host: z.string(),
181
+ access: z.enum(['proxy', 'direct']),
182
+ protocol: z.enum(['http', 'https', 'connect']),
183
+ port: z.number().optional(),
184
+ url: z.string().optional(),
185
+ }),
186
+ z.object({ id: z.number(), type: z.literal('step-finish'), stepIndex: z.number() }),
187
+ z.object({
188
+ id: z.number(),
189
+ type: z.literal('finish'),
190
+ finishReason: z.string(),
191
+ usage: usageSchema,
192
+ }),
193
+ z.object({ id: z.number(), type: z.literal('error'), message: z.string() }),
194
+ z.object({ id: z.number(), type: z.literal('pong') }),
195
+ z.object({
196
+ id: z.number(),
197
+ type: z.literal('task-update'),
198
+ tasks: z.array(todoTaskSchema),
199
+ }),
200
+ z.object({
201
+ id: z.number(),
202
+ type: z.literal('file-change'),
203
+ event: z.enum(['create', 'modify', 'delete']),
204
+ path: z.string(),
205
+ content: z.string().optional(),
206
+ }),
207
+ ]);
208
+ export const debugErrorSchema = z.object({
209
+ name: z.string().optional(),
210
+ message: z.string(),
211
+ stack: z.string().optional(),
212
+ cause: z.string().optional(),
213
+ });
214
+ export const bridgeInboundMessageSchema = z.discriminatedUnion('type', [
215
+ sandboxMessageSchema,
216
+ z.object({
217
+ type: z.literal('debug'),
218
+ message: z.string(),
219
+ }),
220
+ z.object({
221
+ type: z.literal('debug-event'),
222
+ level: z.enum(['error', 'warn', 'info', 'debug', 'trace']),
223
+ subsystem: z.string(),
224
+ event: z.string(),
225
+ status: z.enum(['start', 'ok', 'error', 'timeout', 'retry', 'blocked', 'slow']).optional(),
226
+ durationMs: z.number().optional(),
227
+ traceId: z.string().optional(),
228
+ spanId: z.string().optional(),
229
+ parentSpanId: z.string().optional(),
230
+ attrs: protocolRecordSchema.optional(),
231
+ error: debugErrorSchema.optional(),
232
+ }),
233
+ z.object({
234
+ type: z.literal('sandbox-log'),
235
+ source: z.string(),
236
+ stream: z.enum(['stdout', 'stderr']),
237
+ line: z.string(),
238
+ }),
239
+ z.object({
240
+ type: z.literal('prepare-step-request'),
241
+ stepNumber: z.number(),
242
+ }),
243
+ ]);
244
+ export function createToolCallMessage(message) {
245
+ return { ...message, type: 'tool-call' };
246
+ }
247
+ export function createToolResultMessage(message) {
248
+ return { ...message, type: 'tool-result' };
249
+ }
250
+ export function createFinishMessage(message) {
251
+ return { ...message, type: 'finish' };
252
+ }
253
+ export function createErrorMessage(message) {
254
+ return { ...message, type: 'error' };
255
+ }
256
+ export function createTextDeltaMessage(message) {
257
+ return { ...message, type: 'text-delta' };
258
+ }
259
+ export function createReasoningDeltaMessage(message) {
260
+ return { ...message, type: 'reasoning-delta' };
261
+ }
262
+ export function createSubagentStartMessage(message) {
263
+ return { ...message, type: 'subagent-start' };
264
+ }
265
+ export function createSubagentFinishMessage(message) {
266
+ return { ...message, type: 'subagent-finish' };
267
+ }
268
+ export function createHostApprovalRequestMessage(message) {
269
+ return { ...message, type: 'host-approval-request' };
270
+ }
271
+ export function createStepFinishMessage(message) {
272
+ return { ...message, type: 'step-finish' };
273
+ }
274
+ export function createPongMessage(_message = {}) {
275
+ return { type: 'pong' };
276
+ }
277
+ export function createTaskUpdateMessage(message) {
278
+ return { ...message, type: 'task-update' };
279
+ }
280
+ export function createFileChangeMessage(message) {
281
+ return { ...message, type: 'file-change' };
282
+ }
283
+ export const msg = {
284
+ toolCall: createToolCallMessage,
285
+ toolResult: createToolResultMessage,
286
+ finish: createFinishMessage,
287
+ error: createErrorMessage,
288
+ textDelta: createTextDeltaMessage,
289
+ reasoningDelta: createReasoningDeltaMessage,
290
+ subagentStart: createSubagentStartMessage,
291
+ subagentFinish: createSubagentFinishMessage,
292
+ hostApprovalRequest: createHostApprovalRequestMessage,
293
+ stepFinish: createStepFinishMessage,
294
+ pong: createPongMessage,
295
+ taskUpdate: createTaskUpdateMessage,
296
+ fileChange: createFileChangeMessage,
297
+ };
298
+ export function assertNever(value) {
299
+ throw new Error(`Unexpected protocol variant: ${JSON.stringify(value)}`);
300
+ }
301
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}