@agent-relay/harnesses 10.6.7 → 11.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (46) hide show
  1. package/README.md +71 -4
  2. package/dist/ai-sdk/adapter-registry.d.ts +47 -0
  3. package/dist/ai-sdk/adapter-registry.d.ts.map +1 -0
  4. package/dist/ai-sdk/adapter-registry.js +134 -0
  5. package/dist/ai-sdk/adapter-registry.js.map +1 -0
  6. package/dist/ai-sdk/harness-host.d.ts +83 -0
  7. package/dist/ai-sdk/harness-host.d.ts.map +1 -0
  8. package/dist/ai-sdk/harness-host.js +573 -0
  9. package/dist/ai-sdk/harness-host.js.map +1 -0
  10. package/dist/ai-sdk/index.d.ts +6 -0
  11. package/dist/ai-sdk/index.d.ts.map +1 -0
  12. package/dist/ai-sdk/index.js +6 -0
  13. package/dist/ai-sdk/index.js.map +1 -0
  14. package/dist/ai-sdk/local-host-sandbox.d.ts +119 -0
  15. package/dist/ai-sdk/local-host-sandbox.d.ts.map +1 -0
  16. package/dist/ai-sdk/local-host-sandbox.js +475 -0
  17. package/dist/ai-sdk/local-host-sandbox.js.map +1 -0
  18. package/dist/ai-sdk/native-relay-tools.d.ts +10 -0
  19. package/dist/ai-sdk/native-relay-tools.d.ts.map +1 -0
  20. package/dist/ai-sdk/native-relay-tools.js +178 -0
  21. package/dist/ai-sdk/native-relay-tools.js.map +1 -0
  22. package/dist/ai-sdk/relay-session.d.ts +22 -0
  23. package/dist/ai-sdk/relay-session.d.ts.map +1 -0
  24. package/dist/ai-sdk/relay-session.js +423 -0
  25. package/dist/ai-sdk/relay-session.js.map +1 -0
  26. package/dist/ai-sdk/sidecar-main.d.ts +3 -0
  27. package/dist/ai-sdk/sidecar-main.d.ts.map +1 -0
  28. package/dist/ai-sdk/sidecar-main.js +7 -0
  29. package/dist/ai-sdk/sidecar-main.js.map +1 -0
  30. package/dist/ai-sdk/sidecar.d.ts +20 -0
  31. package/dist/ai-sdk/sidecar.d.ts.map +1 -0
  32. package/dist/ai-sdk/sidecar.js +361 -0
  33. package/dist/ai-sdk/sidecar.js.map +1 -0
  34. package/dist/define.d.ts +49 -1
  35. package/dist/define.d.ts.map +1 -1
  36. package/dist/define.js +202 -1
  37. package/dist/define.js.map +1 -1
  38. package/dist/index.d.ts +7 -3
  39. package/dist/index.d.ts.map +1 -1
  40. package/dist/index.js +8 -4
  41. package/dist/index.js.map +1 -1
  42. package/dist/observability.d.ts +41 -0
  43. package/dist/observability.d.ts.map +1 -0
  44. package/dist/observability.js +178 -0
  45. package/dist/observability.js.map +1 -0
  46. package/package.json +12 -3
package/dist/define.js CHANGED
@@ -1,5 +1,10 @@
1
+ import { randomUUID } from 'node:crypto';
2
+ import path from 'node:path';
3
+ import { fileURLToPath } from 'node:url';
1
4
  import { createAgentHandle, nextHarnessName, } from '@agent-relay/sdk';
2
5
  import { getHarnessDriver } from './broker-binding.js';
6
+ import { aiSdkAdapterRegistry } from './ai-sdk/adapter-registry.js';
7
+ import { AI_SDK_REFERENCE_OBSERVABILITY_PROFILE, createPtyObservabilityTranslator, getPtyObservabilityProfile, } from './observability.js';
3
8
  /** Wrap a static PTY harness definition in a factory with `create`/`new`. */
4
9
  export function definePtyHarness(definition) {
5
10
  const build = (input = {}) => {
@@ -17,6 +22,7 @@ export function definePtyHarness(definition) {
17
22
  cwd: input.cwd ?? definition.cwd,
18
23
  env: input.env ?? definition.env,
19
24
  definition,
25
+ observability: getPtyObservabilityProfile(definition.command),
20
26
  };
21
27
  };
22
28
  const spawnLive = async (input, relay) => {
@@ -32,6 +38,48 @@ export function definePtyHarness(definition) {
32
38
  channels: input.channels,
33
39
  cwd,
34
40
  });
41
+ const translator = createPtyObservabilityTranslator(definition.command);
42
+ let turnId;
43
+ const emitTranslated = (signal) => {
44
+ for (const event of translator.translate(signal)) {
45
+ // Broker-owned PTY observability is published to Relaycast for every
46
+ // spawn surface. This local bridge only feeds listeners on the
47
+ // AgentRelay instance that created this managed harness.
48
+ relay.emitSessionEvent(runtime.agent.name, event);
49
+ }
50
+ };
51
+ const signalFromBroker = async (event) => {
52
+ switch (event.kind) {
53
+ case 'agent_spawned':
54
+ emitTranslated({ type: 'starting' });
55
+ return;
56
+ case 'worker_stream':
57
+ turnId ??= `pty-${randomUUID()}`;
58
+ emitTranslated({ type: 'busy', turnId });
59
+ return;
60
+ case 'agent_idle':
61
+ if (turnId) {
62
+ emitTranslated({ type: 'idle', turnId });
63
+ turnId = undefined;
64
+ }
65
+ return;
66
+ case 'worker_error':
67
+ emitTranslated({ type: 'error', error: event.message, code: event.code });
68
+ return;
69
+ case 'agent_exit':
70
+ case 'agent_exited':
71
+ if (event.kind === 'agent_exited' && event.code === 0)
72
+ return;
73
+ emitTranslated({
74
+ type: 'error',
75
+ error: event.reason ??
76
+ `PTY runtime exited${event.kind === 'agent_exited' && event.code != null ? ` (${event.code})` : ''}`,
77
+ ...(event.kind === 'agent_exited' && event.code != null ? { code: String(event.code) } : {}),
78
+ });
79
+ return;
80
+ }
81
+ };
82
+ await runtime.observeBrokerEvents?.(signalFromBroker);
35
83
  // Key the handle by the registered agent name so `agent.status.becomes(...)`
36
84
  // predicates match the workspace events emitted for that agent.
37
85
  const handle = createAgentHandle({ id: runtime.agent.name, name: runtime.agent.name });
@@ -47,13 +95,166 @@ export function definePtyHarness(definition) {
47
95
  cwd,
48
96
  env: input.env ?? definition.env,
49
97
  definition,
98
+ observability: getPtyObservabilityProfile(definition.command),
50
99
  };
51
100
  };
52
101
  return {
53
102
  ...definition,
54
103
  name: definition.command,
55
- create: async (input = {}) => (input.relay ? spawnLive(input, input.relay) : build(input)),
104
+ create: async (input = {}) => {
105
+ if (input.runtime === 'native') {
106
+ throw new Error(`No native harness adapter is registered for ${definition.command}`);
107
+ }
108
+ return input.relay ? spawnLive(input, input.relay) : build(input);
109
+ },
56
110
  new: (input) => build(input),
57
111
  };
58
112
  }
113
+ export function selectHarnessRuntime(adapter, requested = 'auto') {
114
+ if (requested === 'native')
115
+ return 'native';
116
+ if (requested === 'pty') {
117
+ if (!adapter.ptyAvailable)
118
+ throw new Error(`${adapter.name} does not provide a PTY runtime`);
119
+ return 'pty';
120
+ }
121
+ if (adapter.rollout === 'default')
122
+ return 'native';
123
+ if (adapter.ptyAvailable)
124
+ return 'pty';
125
+ throw new Error(`${adapter.name} is an experimental native-only harness; select runtime: 'native' explicitly`);
126
+ }
127
+ /** Resolve a public harness name or alias to the runtime the CLI should launch. */
128
+ export function resolveHarnessRuntime(harness, requested = 'auto') {
129
+ const adapter = aiSdkAdapterRegistry.get(harness);
130
+ if (!adapter) {
131
+ if (requested === 'native') {
132
+ throw new Error(`No native harness adapter is registered for ${harness}`);
133
+ }
134
+ return 'pty';
135
+ }
136
+ return selectHarnessRuntime(adapter, requested);
137
+ }
138
+ function nativeDescriptor(adapter, input, name = nextHarnessName(adapter.name, input.name)) {
139
+ const handle = createAgentHandle({ id: `harness:${adapter.name}:${name}`, name });
140
+ return {
141
+ ...handle,
142
+ kind: 'native',
143
+ cli: adapter.name,
144
+ runtime: 'native',
145
+ adapter: adapter.name,
146
+ model: input.model,
147
+ task: input.task,
148
+ args: input.args,
149
+ channels: input.channels,
150
+ cwd: input.cwd,
151
+ env: input.env,
152
+ observability: AI_SDK_REFERENCE_OBSERVABILITY_PROFILE,
153
+ };
154
+ }
155
+ function publicNativeLifecycle(adapter) {
156
+ return {
157
+ activeInput: adapter.lifecycle.activeInput,
158
+ toolApprovals: adapter.lifecycle.toolApprovals,
159
+ compact: adapter.lifecycle.compact,
160
+ continueTurn: false,
161
+ suspendTurn: false,
162
+ detach: false,
163
+ stop: false,
164
+ destroy: false,
165
+ stopPreservesConversation: false,
166
+ };
167
+ }
168
+ function sessionEventFromAgentEventEnvelope(envelope) {
169
+ const { kind, ...payload } = envelope.event;
170
+ if (typeof kind !== 'string')
171
+ return undefined;
172
+ return { type: kind, ...payload };
173
+ }
174
+ /**
175
+ * Build the broker launch contract for an AI SDK-backed native harness.
176
+ *
177
+ * Keeping this as a public, side-effect-free resolver lets the CLI launch the
178
+ * sidecar through an already-running broker instead of starting a second one.
179
+ */
180
+ export function createNativeHarnessLaunch(adapterName, input = {}, sidecarLaunch) {
181
+ const adapter = aiSdkAdapterRegistry.require(adapterName);
182
+ const name = nextHarnessName(adapter.name, input.name);
183
+ const cwd = path.resolve(input.cwd ?? process.cwd());
184
+ const sessionId = `native-${randomUUID()}`;
185
+ const sidecarEntry = fileURLToPath(new URL('./ai-sdk/sidecar-main.js', import.meta.url));
186
+ const sidecarConfig = {
187
+ name,
188
+ harness: adapter.name,
189
+ workspace: cwd,
190
+ sessionId,
191
+ settings: { ...(input.model ? { model: input.model } : {}) },
192
+ };
193
+ return {
194
+ name,
195
+ cli: adapter.name,
196
+ task: input.task,
197
+ model: input.model,
198
+ channels: input.channels,
199
+ cwd,
200
+ transport: 'headless',
201
+ harnessConfig: {
202
+ runtime: 'native',
203
+ command: sidecarLaunch?.command ?? process.execPath,
204
+ args: sidecarLaunch?.args ?? [sidecarEntry],
205
+ cwd,
206
+ env: {
207
+ ...input.env,
208
+ RELAY_AI_SDK_SIDECAR_CONFIG: JSON.stringify(sidecarConfig),
209
+ },
210
+ sessionId,
211
+ metadata: {
212
+ runtimeKind: 'native',
213
+ nativeHarnessProtocolVersion: 1,
214
+ // Only operations reachable through the versioned sidecar protocol are
215
+ // public runtime capabilities. The adapter may support additional
216
+ // in-process lifecycle methods that cannot safely cross this boundary.
217
+ nativeHarnessCapabilities: publicNativeLifecycle(adapter),
218
+ observability: AI_SDK_REFERENCE_OBSERVABILITY_PROFILE,
219
+ },
220
+ },
221
+ };
222
+ }
223
+ async function spawnNative(adapter, input, driver, relay) {
224
+ const launch = createNativeHarnessLaunch(adapter.name, input);
225
+ const runtime = await driver.spawn(launch);
226
+ await runtime.observeAgentEvents?.(async (envelope) => {
227
+ const event = sessionEventFromAgentEventEnvelope(envelope);
228
+ if (event)
229
+ relay.emitSessionEvent(runtime.agent.name, event);
230
+ });
231
+ const descriptor = nativeDescriptor(adapter, { ...input, cwd: launch.cwd }, runtime.agent.name);
232
+ return { ...descriptor, id: runtime.agent.name };
233
+ }
234
+ export function defineManagedHarness(adapterName, ptyDefinition) {
235
+ const adapter = aiSdkAdapterRegistry.require(adapterName);
236
+ if (Boolean(ptyDefinition) !== adapter.ptyAvailable) {
237
+ throw new Error(`PTY availability for ${adapter.name} does not match its registry declaration`);
238
+ }
239
+ const pty = ptyDefinition ? definePtyHarness(ptyDefinition) : undefined;
240
+ const build = (input = {}) => {
241
+ const runtime = selectHarnessRuntime(adapter, input.runtime);
242
+ return runtime === 'pty' ? pty.new({ ...input, runtime: 'pty' }) : nativeDescriptor(adapter, input);
243
+ };
244
+ return {
245
+ runtime: ptyDefinition ? 'pty' : 'native',
246
+ name: adapter.name,
247
+ command: ptyDefinition?.command ?? adapter.name,
248
+ adapter,
249
+ create: async (input = {}) => {
250
+ const runtime = selectHarnessRuntime(adapter, input.runtime);
251
+ if (runtime === 'pty')
252
+ return pty.create({ ...input, runtime: 'pty' });
253
+ return input.relay
254
+ ? spawnNative(adapter, input, getHarnessDriver(input.relay), input.relay)
255
+ : nativeDescriptor(adapter, input);
256
+ },
257
+ new: build,
258
+ };
259
+ }
59
260
  //# sourceMappingURL=define.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"define.js","sourceRoot":"","sources":["../src/define.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EACjB,eAAe,GAIhB,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AA6DvD,6EAA6E;AAC7E,MAAM,UAAU,gBAAgB,CAAC,UAAsC;IACrE,MAAM,KAAK,GAAG,CAAC,QAA4B,EAAE,EAAgB,EAAE;QAC7D,MAAM,IAAI,GAAG,eAAe,CAAC,UAAU,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;QAC7D,MAAM,MAAM,GAAG,iBAAiB,CAAC,EAAE,EAAE,EAAE,WAAW,UAAU,CAAC,OAAO,IAAI,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;QACxF,OAAO;YACL,GAAG,MAAM;YACT,IAAI,EAAE,KAAK;YACX,GAAG,EAAE,UAAU,CAAC,OAAO;YACvB,OAAO,EAAE,KAAK;YACd,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,GAAG,EAAE,KAAK,CAAC,GAAG,IAAI,UAAU,CAAC,GAAG;YAChC,GAAG,EAAE,KAAK,CAAC,GAAG,IAAI,UAAU,CAAC,GAAG;YAChC,UAAU;SACX,CAAC;IACJ,CAAC,CAAC;IAEF,MAAM,SAAS,GAAG,KAAK,EAAE,KAAyB,EAAE,KAAiB,EAAyB,EAAE;QAC9F,MAAM,MAAM,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC;QACvC,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,IAAI,UAAU,CAAC,GAAG,CAAC;QACxC,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC;YACjC,IAAI,EAAE,eAAe,CAAC,UAAU,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC;YACrD,GAAG,EAAE,UAAU,CAAC,OAAO;YACvB,SAAS,EAAE,KAAK;YAChB,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,GAAG;SACJ,CAAC,CAAC;QACH,6EAA6E;QAC7E,gEAAgE;QAChE,MAAM,MAAM,GAAG,iBAAiB,CAAC,EAAE,EAAE,EAAE,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;QACvF,OAAO;YACL,GAAG,MAAM;YACT,IAAI,EAAE,KAAK;YACX,GAAG,EAAE,UAAU,CAAC,OAAO;YACvB,OAAO,EAAE,KAAK;YACd,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,GAAG;YACH,GAAG,EAAE,KAAK,CAAC,GAAG,IAAI,UAAU,CAAC,GAAG;YAChC,UAAU;SACX,CAAC;IACJ,CAAC,CAAC;IAEF,OAAO;QACL,GAAG,UAAU;QACb,IAAI,EAAE,UAAU,CAAC,OAAO;QACxB,MAAM,EAAE,KAAK,EAAE,KAAK,GAAG,EAAE,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC1F,GAAG,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC;KAC7B,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"define.js","sourceRoot":"","sources":["../src/define.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,15 +1,19 @@
1
1
  import { type PtyHarness } from './define.js';
2
2
  export * from './define.js';
3
3
  export * from './create-human.js';
4
+ export * from './observability.js';
5
+ export * from './ai-sdk/index.js';
4
6
  export { defineHarness, normalizeAgentIdentity, MINIMAL_AGENT_SESSION_CAPABILITIES } from '@agent-relay/sdk';
5
7
  export type { AgentSession, AgentSessionCapabilities, HarnessConfig, HarnessCreateContext, } from '@agent-relay/sdk';
6
- export declare const claude: PtyHarness;
7
- export declare const codex: PtyHarness;
8
+ export declare const claude: import("./define.js").ManagedPtyHarness;
9
+ export declare const codex: import("./define.js").ManagedPtyHarness;
8
10
  export declare const gemini: PtyHarness;
9
11
  export declare const cursor: PtyHarness;
10
12
  export declare const droid: PtyHarness;
11
- export declare const opencode: PtyHarness;
13
+ export declare const opencode: import("./define.js").ManagedPtyHarness;
12
14
  export declare const aider: PtyHarness;
13
15
  export declare const goose: PtyHarness;
14
16
  export declare const grok: PtyHarness;
17
+ export declare const pi: import("./define.js").ManagedHarness;
18
+ export declare const deepAgents: import("./define.js").ManagedHarness;
15
19
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,KAAK,UAAU,EAAE,MAAM,aAAa,CAAC;AAEhE,cAAc,aAAa,CAAC;AAC5B,cAAc,mBAAmB,CAAC;AAIlC,OAAO,EAAE,aAAa,EAAE,sBAAsB,EAAE,kCAAkC,EAAE,MAAM,kBAAkB,CAAC;AAC7G,YAAY,EACV,YAAY,EACZ,wBAAwB,EACxB,aAAa,EACb,oBAAoB,GACrB,MAAM,kBAAkB,CAAC;AAE1B,eAAO,MAAM,MAAM,EAAE,UAAoE,CAAC;AAE1F,eAAO,MAAM,KAAK,EAAE,UAAmE,CAAC;AAExF,eAAO,MAAM,MAAM,EAAE,UAAoE,CAAC;AAE1F,eAAO,MAAM,MAAM,EAAE,UAA0E,CAAC;AAEhG,eAAO,MAAM,KAAK,EAAE,UAAmE,CAAC;AAExF,eAAO,MAAM,QAAQ,EAAE,UAAsE,CAAC;AAE9F,eAAO,MAAM,KAAK,EAAE,UAAmE,CAAC;AAExF,eAAO,MAAM,KAAK,EAAE,UAAmE,CAAC;AAExF,eAAO,MAAM,IAAI,EAAE,UAAkE,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAA0C,KAAK,UAAU,EAAE,MAAM,aAAa,CAAC;AAEtF,cAAc,aAAa,CAAC;AAC5B,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAIlC,OAAO,EAAE,aAAa,EAAE,sBAAsB,EAAE,kCAAkC,EAAE,MAAM,kBAAkB,CAAC;AAC7G,YAAY,EACV,YAAY,EACZ,wBAAwB,EACxB,aAAa,EACb,oBAAoB,GACrB,MAAM,kBAAkB,CAAC;AAE1B,eAAO,MAAM,MAAM,yCAAwE,CAAC;AAE5F,eAAO,MAAM,KAAK,yCAAsE,CAAC;AAEzF,eAAO,MAAM,MAAM,EAAE,UAAoE,CAAC;AAE1F,eAAO,MAAM,MAAM,EAAE,UAA0E,CAAC;AAEhG,eAAO,MAAM,KAAK,EAAE,UAAmE,CAAC;AAExF,eAAO,MAAM,QAAQ,yCAA4E,CAAC;AAElG,eAAO,MAAM,KAAK,EAAE,UAAmE,CAAC;AAExF,eAAO,MAAM,KAAK,EAAE,UAAmE,CAAC;AAExF,eAAO,MAAM,IAAI,EAAE,UAAkE,CAAC;AAEtF,eAAO,MAAM,EAAE,sCAA6B,CAAC;AAE7C,eAAO,MAAM,UAAU,sCAAqC,CAAC"}
package/dist/index.js CHANGED
@@ -1,16 +1,20 @@
1
- import { definePtyHarness } from './define.js';
1
+ import { defineManagedHarness, definePtyHarness } from './define.js';
2
2
  export * from './define.js';
3
3
  export * from './create-human.js';
4
+ export * from './observability.js';
5
+ export * from './ai-sdk/index.js';
4
6
  // Custom (non-PTY) harnesses are defined with the SDK's harness contract;
5
7
  // re-export it here so harness authors have one import surface.
6
8
  export { defineHarness, normalizeAgentIdentity, MINIMAL_AGENT_SESSION_CAPABILITIES } from '@agent-relay/sdk';
7
- export const claude = definePtyHarness({ runtime: 'pty', command: 'claude' });
8
- export const codex = definePtyHarness({ runtime: 'pty', command: 'codex' });
9
+ export const claude = defineManagedHarness('claude', { runtime: 'pty', command: 'claude' });
10
+ export const codex = defineManagedHarness('codex', { runtime: 'pty', command: 'codex' });
9
11
  export const gemini = definePtyHarness({ runtime: 'pty', command: 'gemini' });
10
12
  export const cursor = definePtyHarness({ runtime: 'pty', command: 'cursor-agent' });
11
13
  export const droid = definePtyHarness({ runtime: 'pty', command: 'droid' });
12
- export const opencode = definePtyHarness({ runtime: 'pty', command: 'opencode' });
14
+ export const opencode = defineManagedHarness('opencode', { runtime: 'pty', command: 'opencode' });
13
15
  export const aider = definePtyHarness({ runtime: 'pty', command: 'aider' });
14
16
  export const goose = definePtyHarness({ runtime: 'pty', command: 'goose' });
15
17
  export const grok = definePtyHarness({ runtime: 'pty', command: 'grok' });
18
+ export const pi = defineManagedHarness('pi');
19
+ export const deepAgents = defineManagedHarness('deepagents');
16
20
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAmB,MAAM,aAAa,CAAC;AAEhE,cAAc,aAAa,CAAC;AAC5B,cAAc,mBAAmB,CAAC;AAElC,0EAA0E;AAC1E,gEAAgE;AAChE,OAAO,EAAE,aAAa,EAAE,sBAAsB,EAAE,kCAAkC,EAAE,MAAM,kBAAkB,CAAC;AAQ7G,MAAM,CAAC,MAAM,MAAM,GAAe,gBAAgB,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC;AAE1F,MAAM,CAAC,MAAM,KAAK,GAAe,gBAAgB,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC;AAExF,MAAM,CAAC,MAAM,MAAM,GAAe,gBAAgB,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC;AAE1F,MAAM,CAAC,MAAM,MAAM,GAAe,gBAAgB,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,cAAc,EAAE,CAAC,CAAC;AAEhG,MAAM,CAAC,MAAM,KAAK,GAAe,gBAAgB,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC;AAExF,MAAM,CAAC,MAAM,QAAQ,GAAe,gBAAgB,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC,CAAC;AAE9F,MAAM,CAAC,MAAM,KAAK,GAAe,gBAAgB,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC;AAExF,MAAM,CAAC,MAAM,KAAK,GAAe,gBAAgB,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC;AAExF,MAAM,CAAC,MAAM,IAAI,GAAe,gBAAgB,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,gBAAgB,EAAmB,MAAM,aAAa,CAAC;AAEtF,cAAc,aAAa,CAAC;AAC5B,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAElC,0EAA0E;AAC1E,gEAAgE;AAChE,OAAO,EAAE,aAAa,EAAE,sBAAsB,EAAE,kCAAkC,EAAE,MAAM,kBAAkB,CAAC;AAQ7G,MAAM,CAAC,MAAM,MAAM,GAAG,oBAAoB,CAAC,QAAQ,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC;AAE5F,MAAM,CAAC,MAAM,KAAK,GAAG,oBAAoB,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC;AAEzF,MAAM,CAAC,MAAM,MAAM,GAAe,gBAAgB,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC;AAE1F,MAAM,CAAC,MAAM,MAAM,GAAe,gBAAgB,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,cAAc,EAAE,CAAC,CAAC;AAEhG,MAAM,CAAC,MAAM,KAAK,GAAe,gBAAgB,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC;AAExF,MAAM,CAAC,MAAM,QAAQ,GAAG,oBAAoB,CAAC,UAAU,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC,CAAC;AAElG,MAAM,CAAC,MAAM,KAAK,GAAe,gBAAgB,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC;AAExF,MAAM,CAAC,MAAM,KAAK,GAAe,gBAAgB,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC;AAExF,MAAM,CAAC,MAAM,IAAI,GAAe,gBAAgB,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;AAEtF,MAAM,CAAC,MAAM,EAAE,GAAG,oBAAoB,CAAC,IAAI,CAAC,CAAC;AAE7C,MAAM,CAAC,MAAM,UAAU,GAAG,oBAAoB,CAAC,YAAY,CAAC,CAAC"}
@@ -0,0 +1,41 @@
1
+ import { type AgentEvent, type AgentObservabilityCapabilities, type AgentSessionEvent } from '@agent-relay/sdk';
2
+ export declare const AI_SDK_REFERENCE_OBSERVABILITY_PROFILE: AgentObservabilityCapabilities;
3
+ declare const PTY_HARNESSES: readonly ["claude", "codex", "gemini", "cursor-agent", "droid", "opencode", "aider", "goose", "grok"];
4
+ export type PtyHarnessName = (typeof PTY_HARNESSES)[number];
5
+ /**
6
+ * PTY observability is deliberately conservative. The broker owns exact
7
+ * process lifecycle signals and can infer a busy/idle turn boundary, but raw
8
+ * terminal bytes are not treated as structured assistant, reasoning, or tool
9
+ * events.
10
+ */
11
+ export declare const PTY_OBSERVABILITY_PROFILE: AgentObservabilityCapabilities;
12
+ export declare const PTY_OBSERVABILITY_PROFILES: Record<PtyHarnessName, AgentObservabilityCapabilities>;
13
+ export declare function getPtyObservabilityProfile(harnessName: string): AgentObservabilityCapabilities;
14
+ export type PtyObservabilitySignal = {
15
+ type: 'starting';
16
+ at?: Date | string;
17
+ } | {
18
+ type: 'busy';
19
+ turnId: string;
20
+ at?: Date | string;
21
+ } | {
22
+ type: 'idle';
23
+ turnId: string;
24
+ at?: Date | string;
25
+ } | {
26
+ type: 'error';
27
+ error: string;
28
+ code?: string;
29
+ at?: Date | string;
30
+ };
31
+ export type PtyAgentEvent = AgentEvent | Extract<AgentSessionEvent, {
32
+ type: 'activity.changed';
33
+ }>;
34
+ export interface PtyObservabilityTranslator {
35
+ readonly capabilities: AgentObservabilityCapabilities;
36
+ translate(signal: PtyObservabilitySignal): PtyAgentEvent[];
37
+ }
38
+ /** Translate broker-owned PTY lifecycle evidence into the canonical contract. */
39
+ export declare function createPtyObservabilityTranslator(harnessName: string): PtyObservabilityTranslator;
40
+ export {};
41
+ //# sourceMappingURL=observability.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"observability.d.ts","sourceRoot":"","sources":["../src/observability.ts"],"names":[],"mappings":"AAAA,OAAO,EAML,KAAK,UAAU,EACf,KAAK,8BAA8B,EACnC,KAAK,iBAAiB,EACvB,MAAM,kBAAkB,CAAC;AAE1B,eAAO,MAAM,sCAAsC,EAAE,8BA0BjD,CAAC;AAEL,QAAA,MAAM,aAAa,uGAUT,CAAC;AAEX,MAAM,MAAM,cAAc,GAAG,CAAC,OAAO,aAAa,CAAC,CAAC,MAAM,CAAC,CAAC;AAE5D;;;;;GAKG;AACH,eAAO,MAAM,yBAAyB,EAAE,8BAcvC,CAAC;AAEF,eAAO,MAAM,0BAA0B,EAElC,MAAM,CAAC,cAAc,EAAE,8BAA8B,CAAC,CAAC;AAgB5D,wBAAgB,0BAA0B,CAAC,WAAW,EAAE,MAAM,GAAG,8BAA8B,CAM9F;AAED,MAAM,MAAM,sBAAsB,GAC9B;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,EAAE,CAAC,EAAE,IAAI,GAAG,MAAM,CAAA;CAAE,GACxC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,EAAE,CAAC,EAAE,IAAI,GAAG,MAAM,CAAA;CAAE,GACpD;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,EAAE,CAAC,EAAE,IAAI,GAAG,MAAM,CAAA;CAAE,GACpD;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,EAAE,CAAC,EAAE,IAAI,GAAG,MAAM,CAAA;CAAE,CAAC;AAExE,MAAM,MAAM,aAAa,GAAG,UAAU,GAAG,OAAO,CAAC,iBAAiB,EAAE;IAAE,IAAI,EAAE,kBAAkB,CAAA;CAAE,CAAC,CAAC;AAElG,MAAM,WAAW,0BAA0B;IACzC,QAAQ,CAAC,YAAY,EAAE,8BAA8B,CAAC;IACtD,SAAS,CAAC,MAAM,EAAE,sBAAsB,GAAG,aAAa,EAAE,CAAC;CAC5D;AAED,iFAAiF;AACjF,wBAAgB,gCAAgC,CAAC,WAAW,EAAE,MAAM,GAAG,0BAA0B,CAmGhG"}
@@ -0,0 +1,178 @@
1
+ import { createAgentObservabilityCapabilities, EXACT_AND_INFERRED_OBSERVABILITY, EXACT_OBSERVABILITY, INFERRED_OBSERVABILITY, } from '@agent-relay/sdk';
2
+ export const AI_SDK_REFERENCE_OBSERVABILITY_PROFILE = createAgentObservabilityCapabilities({
3
+ activities: {
4
+ starting: EXACT_OBSERVABILITY,
5
+ thinking: EXACT_AND_INFERRED_OBSERVABILITY,
6
+ typing: EXACT_OBSERVABILITY,
7
+ using_tool: EXACT_OBSERVABILITY,
8
+ waiting: EXACT_OBSERVABILITY,
9
+ idle: EXACT_OBSERVABILITY,
10
+ error: EXACT_OBSERVABILITY,
11
+ },
12
+ events: {
13
+ lifecycle: EXACT_OBSERVABILITY,
14
+ turns: EXACT_OBSERVABILITY,
15
+ text: EXACT_OBSERVABILITY,
16
+ reasoning: EXACT_OBSERVABILITY,
17
+ tools: EXACT_OBSERVABILITY,
18
+ tool_approvals: EXACT_OBSERVABILITY,
19
+ files: EXACT_OBSERVABILITY,
20
+ compaction: EXACT_OBSERVABILITY,
21
+ model: EXACT_OBSERVABILITY,
22
+ warnings: EXACT_OBSERVABILITY,
23
+ usage: EXACT_OBSERVABILITY,
24
+ diagnostics: EXACT_OBSERVABILITY,
25
+ errors: EXACT_OBSERVABILITY,
26
+ },
27
+ });
28
+ const PTY_HARNESSES = [
29
+ 'claude',
30
+ 'codex',
31
+ 'gemini',
32
+ 'cursor-agent',
33
+ 'droid',
34
+ 'opencode',
35
+ 'aider',
36
+ 'goose',
37
+ 'grok',
38
+ ];
39
+ /**
40
+ * PTY observability is deliberately conservative. The broker owns exact
41
+ * process lifecycle signals and can infer a busy/idle turn boundary, but raw
42
+ * terminal bytes are not treated as structured assistant, reasoning, or tool
43
+ * events.
44
+ */
45
+ export const PTY_OBSERVABILITY_PROFILE = createAgentObservabilityCapabilities({
46
+ activities: {
47
+ starting: EXACT_OBSERVABILITY,
48
+ thinking: INFERRED_OBSERVABILITY,
49
+ idle: INFERRED_OBSERVABILITY,
50
+ error: EXACT_OBSERVABILITY,
51
+ },
52
+ events: {
53
+ lifecycle: EXACT_OBSERVABILITY,
54
+ turns: INFERRED_OBSERVABILITY,
55
+ errors: EXACT_OBSERVABILITY,
56
+ },
57
+ });
58
+ export const PTY_OBSERVABILITY_PROFILES = Object.fromEntries(PTY_HARNESSES.map((name) => [name, PTY_OBSERVABILITY_PROFILE]));
59
+ const PTY_ALIASES = {
60
+ claude: 'claude',
61
+ 'claude-code': 'claude',
62
+ codex: 'codex',
63
+ gemini: 'gemini',
64
+ cursor: 'cursor-agent',
65
+ 'cursor-agent': 'cursor-agent',
66
+ droid: 'droid',
67
+ opencode: 'opencode',
68
+ aider: 'aider',
69
+ goose: 'goose',
70
+ grok: 'grok',
71
+ };
72
+ export function getPtyObservabilityProfile(harnessName) {
73
+ const canonicalName = PTY_ALIASES[harnessName.toLowerCase()];
74
+ if (!canonicalName) {
75
+ throw new Error(`No PTY observability profile is registered for ${harnessName}`);
76
+ }
77
+ return PTY_OBSERVABILITY_PROFILES[canonicalName];
78
+ }
79
+ /** Translate broker-owned PTY lifecycle evidence into the canonical contract. */
80
+ export function createPtyObservabilityTranslator(harnessName) {
81
+ const capabilities = getPtyObservabilityProfile(harnessName);
82
+ let sequence = 0;
83
+ let activity = 'idle';
84
+ let activeTurnId;
85
+ const observation = (fidelity, at, turnId) => ({
86
+ source: 'broker',
87
+ fidelity,
88
+ sequence: ++sequence,
89
+ timestamp: at,
90
+ ...(turnId ? { turnId } : {}),
91
+ });
92
+ const transition = (next, reason, fidelity, at, turnId) => {
93
+ if (activity === next)
94
+ return undefined;
95
+ const previousActivity = activity;
96
+ activity = next;
97
+ return {
98
+ type: 'activity.changed',
99
+ activity: next,
100
+ previousActivity,
101
+ reason,
102
+ at,
103
+ observability: observation(fidelity, at, turnId),
104
+ };
105
+ };
106
+ return {
107
+ capabilities,
108
+ translate(signal) {
109
+ const at = signal.at ?? new Date().toISOString();
110
+ switch (signal.type) {
111
+ case 'starting': {
112
+ const events = [
113
+ {
114
+ type: 'session.starting',
115
+ reason: 'broker_spawn',
116
+ at,
117
+ observability: observation('exact', at),
118
+ },
119
+ ];
120
+ const changed = transition('starting', 'broker_spawn', 'exact', at);
121
+ if (changed)
122
+ events.push(changed);
123
+ return events;
124
+ }
125
+ case 'busy': {
126
+ if (activeTurnId === signal.turnId && activity === 'thinking')
127
+ return [];
128
+ activeTurnId = signal.turnId;
129
+ const events = [
130
+ {
131
+ type: 'turn.started',
132
+ turnId: signal.turnId,
133
+ at,
134
+ observability: observation('inferred', at, signal.turnId),
135
+ },
136
+ ];
137
+ const changed = transition('thinking', 'broker_busy_boundary', 'inferred', at, signal.turnId);
138
+ if (changed)
139
+ events.push(changed);
140
+ return events;
141
+ }
142
+ case 'idle': {
143
+ if (activeTurnId !== signal.turnId)
144
+ return [];
145
+ activeTurnId = undefined;
146
+ const events = [
147
+ {
148
+ type: 'turn.settled',
149
+ turnId: signal.turnId,
150
+ at,
151
+ observability: observation('inferred', at, signal.turnId),
152
+ },
153
+ ];
154
+ const changed = transition('idle', 'broker_idle_boundary', 'inferred', at, signal.turnId);
155
+ if (changed)
156
+ events.push(changed);
157
+ return events;
158
+ }
159
+ case 'error': {
160
+ const events = [
161
+ {
162
+ type: 'session.failed',
163
+ error: signal.error,
164
+ ...(signal.code ? { code: signal.code } : {}),
165
+ at,
166
+ observability: observation('exact', at, activeTurnId),
167
+ },
168
+ ];
169
+ const changed = transition('error', 'broker_runtime_failure', 'exact', at, activeTurnId);
170
+ if (changed)
171
+ events.push(changed);
172
+ return events;
173
+ }
174
+ }
175
+ },
176
+ };
177
+ }
178
+ //# sourceMappingURL=observability.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"observability.js","sourceRoot":"","sources":["../src/observability.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,9 @@
1
1
  {
2
2
  "name": "@agent-relay/harnesses",
3
- "version": "10.6.7",
3
+ "version": "11.0.0",
4
+ "engines": {
5
+ "node": ">=22.0.0"
6
+ },
4
7
  "description": "Pre-built harness definitions for Agent Relay.",
5
8
  "type": "module",
6
9
  "main": "dist/index.js",
@@ -23,8 +26,14 @@
23
26
  "test": "vitest run"
24
27
  },
25
28
  "dependencies": {
26
- "@agent-relay/harness-driver": "10.6.7",
27
- "@agent-relay/sdk": "10.6.7"
29
+ "@agent-relay/harness-driver": "11.0.0",
30
+ "@agent-relay/sdk": "11.0.0",
31
+ "@ai-sdk/harness": "1.0.34",
32
+ "@ai-sdk/harness-claude-code": "1.0.35",
33
+ "@ai-sdk/harness-codex": "1.0.40",
34
+ "@ai-sdk/harness-deepagents": "1.0.33",
35
+ "@ai-sdk/harness-opencode": "1.0.35",
36
+ "@ai-sdk/harness-pi": "1.0.34"
28
37
  },
29
38
  "publishConfig": {
30
39
  "access": "public"