@a5c-ai/agent-mux-harness-mock 0.3.0 → 0.4.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.
Files changed (58) hide show
  1. package/README.md +26 -4
  2. package/dist/bin/mock-harness.d.ts.map +1 -1
  3. package/dist/bin/mock-harness.js +11 -9
  4. package/dist/bin/mock-harness.js.map +1 -1
  5. package/dist/http-mock.d.ts +40 -0
  6. package/dist/http-mock.d.ts.map +1 -0
  7. package/dist/http-mock.js +206 -0
  8. package/dist/http-mock.js.map +1 -0
  9. package/dist/index.d.ts +9 -24
  10. package/dist/index.d.ts.map +1 -1
  11. package/dist/index.js +9 -31
  12. package/dist/index.js.map +1 -1
  13. package/dist/mock-process.d.ts +9 -4
  14. package/dist/mock-process.d.ts.map +1 -1
  15. package/dist/mock-process.js +106 -27
  16. package/dist/mock-process.js.map +1 -1
  17. package/dist/mocks/index.d.ts +50 -0
  18. package/dist/mocks/index.d.ts.map +1 -0
  19. package/dist/mocks/index.js +134 -0
  20. package/dist/mocks/index.js.map +1 -0
  21. package/dist/mocks/mock-types.d.ts +145 -0
  22. package/dist/mocks/mock-types.d.ts.map +1 -0
  23. package/dist/mocks/mock-types.js +2 -0
  24. package/dist/mocks/mock-types.js.map +1 -0
  25. package/dist/mocks/programmatic-mocks.d.ts +41 -0
  26. package/dist/mocks/programmatic-mocks.d.ts.map +1 -0
  27. package/dist/mocks/programmatic-mocks.js +229 -0
  28. package/dist/mocks/programmatic-mocks.js.map +1 -0
  29. package/dist/mocks/remote-mocks.d.ts +44 -0
  30. package/dist/mocks/remote-mocks.d.ts.map +1 -0
  31. package/dist/mocks/remote-mocks.js +332 -0
  32. package/dist/mocks/remote-mocks.js.map +1 -0
  33. package/dist/multi-execution.d.ts +2 -0
  34. package/dist/multi-execution.d.ts.map +1 -0
  35. package/dist/multi-execution.js +2 -0
  36. package/dist/multi-execution.js.map +1 -0
  37. package/dist/scenarios/hooks.d.ts +5 -0
  38. package/dist/scenarios/hooks.d.ts.map +1 -1
  39. package/dist/scenarios/hooks.js +68 -0
  40. package/dist/scenarios/hooks.js.map +1 -1
  41. package/dist/scenarios/index.d.ts.map +1 -1
  42. package/dist/scenarios/index.js +4 -0
  43. package/dist/scenarios/index.js.map +1 -1
  44. package/dist/scenarios/per-agent.d.ts +9 -44
  45. package/dist/scenarios/per-agent.d.ts.map +1 -1
  46. package/dist/scenarios/per-agent.js +272 -143
  47. package/dist/scenarios/per-agent.js.map +1 -1
  48. package/dist/scenarios/wire-format.d.ts +21 -0
  49. package/dist/scenarios/wire-format.d.ts.map +1 -1
  50. package/dist/scenarios/wire-format.js +165 -0
  51. package/dist/scenarios/wire-format.js.map +1 -1
  52. package/dist/types.d.ts +305 -13
  53. package/dist/types.d.ts.map +1 -1
  54. package/dist/websocket-mock.d.ts +46 -0
  55. package/dist/websocket-mock.d.ts.map +1 -0
  56. package/dist/websocket-mock.js +212 -0
  57. package/dist/websocket-mock.js.map +1 -0
  58. package/package.json +2 -2
package/README.md CHANGED
@@ -1,6 +1,10 @@
1
1
  # @a5c-ai/agent-mux-harness-mock
2
2
 
3
- Mock harness simulator for [agent-mux](https://github.com/a5c-ai/agent-mux) adapter testing. Replays recorded/synthesized `claude-code`, `codex`, and other harness output streams so you can develop and test adapters without hitting real APIs.
3
+ Mock harness simulator for [agent-mux](https://github.com/a5c-ai/agent-mux) adapter testing. It is the canonical home for:
4
+
5
+ - adapter-faithful subprocess scenarios for the currently supported CLI harnesses: `claude`, `codex`, `gemini`, `copilot`, `cursor`, `opencode`, `pi`, `omp`, `openclaw`, `hermes`, `amp`, `droid`, and `qwen`
6
+ - programmatic SDK mock builders for `claude-agent-sdk`, `codex-sdk`, and `pi-sdk`
7
+ - remote transport mock builders for `opencode-http` and `codex-websocket`
4
8
 
5
9
  ## Install
6
10
 
@@ -14,15 +18,33 @@ Requires Node.js >= 20.9.0.
14
18
 
15
19
  ```bash
16
20
  mock-harness --list
17
- mock-harness --scenario claude-code-simple
21
+ mock-harness --scenario claude:stream-json
22
+ mock-harness --scenario codex:code-generation
18
23
  ```
19
24
 
20
25
  ## Programmatic
21
26
 
22
27
  ```ts
23
- import { createMockProcess, scenarios } from '@a5c-ai/agent-mux-harness-mock';
28
+ import { MockProcess, AGENT_SCENARIOS, SUBPROCESS_HARNESS_PROFILES } from '@a5c-ai/agent-mux-harness-mock';
29
+
30
+ const proc = new MockProcess(AGENT_SCENARIOS['claude:stream-json']);
31
+ const supported = Object.keys(SUBPROCESS_HARNESS_PROFILES);
32
+ ```
24
33
 
25
- const proc = createMockProcess(scenarios['claude-code-simple']);
34
+ ## SDK / Remote Mocks
35
+
36
+ ```ts
37
+ import {
38
+ createProgrammaticMockBuilder,
39
+ createRemoteMockBuilder,
40
+ ClaudeAgentSdkMock,
41
+ OpenCodeHttpMock,
42
+ } from '@a5c-ai/agent-mux-harness-mock';
43
+
44
+ const sdkMock = ClaudeAgentSdkMock.basicSuccess();
45
+ const remoteMock = OpenCodeHttpMock.basicSuccess();
46
+ const customProgrammatic = createProgrammaticMockBuilder().name('custom').addTextStream('hello').build();
47
+ const customRemote = createRemoteMockBuilder().name('custom-remote').addEvents([{ type: 'text_delta', data: { delta: 'hi' } }]).build();
26
48
  ```
27
49
 
28
50
  See the [repository README](https://github.com/a5c-ai/agent-mux#readme) for details.
@@ -1 +1 @@
1
- {"version":3,"file":"mock-harness.d.ts","sourceRoot":"","sources":["../../src/bin/mock-harness.ts"],"names":[],"mappings":";AACA;;;;;;;;;;;GAWG;AAGH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAEnD,UAAU,IAAI;IACZ,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,OAAO,CAAC;IACd,IAAI,EAAE,OAAO,CAAC;CACf;AAED,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,IAAI,CAwB9C;AAED,wBAAgB,cAAc,CAAC,QAAQ,EAAE,eAAe,EAAE,IAAI,EAAE,IAAI,GAAG,eAAe,CAcrF;AAED,wBAAsB,cAAc,CAClC,IAAI,EAAE,IAAI,EACV,OAAO,GAAE;IAAE,MAAM,EAAE,MAAM,CAAC,cAAc,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC,cAAc,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC,cAAc,CAAA;CAC5B,GACzE,OAAO,CAAC,MAAM,CAAC,CA+BjB"}
1
+ {"version":3,"file":"mock-harness.d.ts","sourceRoot":"","sources":["../../src/bin/mock-harness.ts"],"names":[],"mappings":";AACA;;;;;;;;;;;GAWG;AAGH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAEnD,UAAU,IAAI;IACZ,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,OAAO,CAAC;IACd,IAAI,EAAE,OAAO,CAAC;CACf;AAED,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,IAAI,CAwB9C;AAED,wBAAgB,cAAc,CAAC,QAAQ,EAAE,eAAe,EAAE,IAAI,EAAE,IAAI,GAAG,eAAe,CAerF;AAED,wBAAsB,cAAc,CAClC,IAAI,EAAE,IAAI,EACV,OAAO,GAAE;IAAE,MAAM,EAAE,MAAM,CAAC,cAAc,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC,cAAc,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC,cAAc,CAAA;CAC5B,GACzE,OAAO,CAAC,MAAM,CAAC,CA+BjB"}
@@ -56,17 +56,18 @@ export function parseArgs(argv) {
56
56
  return out;
57
57
  }
58
58
  export function applyOverrides(scenario, args) {
59
+ const baseProcess = scenario.process ?? { exitCode: 0 };
59
60
  const out = {
60
61
  ...scenario,
61
- output: scenario.output.map((c) => ({ ...c, delayMs: args.delay ?? c.delayMs })),
62
- process: { ...scenario.process },
62
+ output: (scenario.output ?? []).map((c) => ({ ...c, delayMs: args.delay ?? c.delayMs })),
63
+ process: { ...baseProcess, exitCode: baseProcess.exitCode ?? 0 },
63
64
  };
64
65
  if (args.exitCode !== undefined && Number.isFinite(args.exitCode)) {
65
66
  out.process = { ...out.process, exitCode: args.exitCode };
66
67
  }
67
68
  if (args.failAfter !== undefined && Number.isFinite(args.failAfter)) {
68
- out.output = out.output.slice(0, args.failAfter);
69
- out.process = { ...out.process, exitCode: out.process.exitCode || 1 };
69
+ out.output = (out.output ?? []).slice(0, args.failAfter);
70
+ out.process = { ...out.process, exitCode: out.process?.exitCode || 1 };
70
71
  }
71
72
  return out;
72
73
  }
@@ -99,13 +100,14 @@ export async function runMockHarness(args, streams = { stdout: process.stdout, s
99
100
  });
100
101
  }
101
102
  await replayScenario(scenario, streams);
102
- return scenario.process.exitCode;
103
+ return scenario.process?.exitCode ?? 0;
103
104
  }
104
105
  async function replayScenario(scenario, streams) {
105
- const startup = scenario.process.startupDelayMs ?? 0;
106
+ const proc = scenario.process;
107
+ const startup = proc?.startupDelayMs ?? 0;
106
108
  if (startup > 0)
107
109
  await wait(startup);
108
- for (const chunk of scenario.output) {
110
+ for (const chunk of scenario.output ?? []) {
109
111
  if (chunk.delayMs && chunk.delayMs > 0)
110
112
  await wait(chunk.delayMs);
111
113
  if (chunk.stream === 'stdout')
@@ -113,10 +115,10 @@ async function replayScenario(scenario, streams) {
113
115
  else
114
116
  streams.stderr.write(chunk.data);
115
117
  }
116
- if (scenario.process.hang) {
118
+ if (proc?.hang) {
117
119
  await new Promise(() => { });
118
120
  }
119
- const shutdown = scenario.process.shutdownDelayMs ?? 0;
121
+ const shutdown = proc?.shutdownDelayMs ?? 0;
120
122
  if (shutdown > 0)
121
123
  await wait(shutdown);
122
124
  }
@@ -1 +1 @@
1
- {"version":3,"file":"mock-harness.js","sourceRoot":"","sources":["../../src/bin/mock-harness.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mock-harness.js","sourceRoot":"","sources":["../../src/bin/mock-harness.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,40 @@
1
+ /**
2
+ * HTTP Server mock implementation for harness-mock.
3
+ */
4
+ import { EventEmitter } from 'node:events';
5
+ import type { HarnessScenario, HttpServerMockHandle, MockExecutionResult, FileOperation } from './types.js';
6
+ export declare class HttpServerMock extends EventEmitter implements HttpServerMockHandle {
7
+ readonly scenario: HarnessScenario;
8
+ readonly id: number;
9
+ readonly serverUrl: string;
10
+ readonly port: number;
11
+ private _exited;
12
+ private _fileChanges;
13
+ private _requestHistory;
14
+ private _server;
15
+ private _isRunning;
16
+ private _startTime;
17
+ constructor(scenario: HarnessScenario, id: number);
18
+ get exited(): boolean;
19
+ get fileChanges(): FileOperation[];
20
+ get isRunning(): boolean;
21
+ get requestHistory(): {
22
+ method: string;
23
+ path: string;
24
+ headers: Record<string, string>;
25
+ body: unknown;
26
+ timestamp: Date;
27
+ }[];
28
+ start(): Promise<void>;
29
+ private handleRequest;
30
+ getStatus(): {
31
+ isRunning: boolean;
32
+ requestCount: number;
33
+ uptime: number;
34
+ };
35
+ reset(): void;
36
+ stop(): Promise<void>;
37
+ forceStop(): void;
38
+ waitForCompletion(): Promise<MockExecutionResult>;
39
+ }
40
+ //# sourceMappingURL=http-mock.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"http-mock.d.ts","sourceRoot":"","sources":["../src/http-mock.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3C,OAAO,KAAK,EACV,eAAe,EACf,oBAAoB,EACpB,mBAAmB,EAEnB,aAAa,EACd,MAAM,YAAY,CAAC;AAEpB,qBAAa,cAAe,SAAQ,YAAa,YAAW,oBAAoB;IAC9E,QAAQ,CAAC,QAAQ,EAAE,eAAe,CAAC;IACnC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEtB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,YAAY,CAAuB;IAC3C,OAAO,CAAC,eAAe,CAMf;IACR,OAAO,CAAC,OAAO,CAAgD;IAC/D,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,UAAU,CAAc;gBAEpB,QAAQ,EAAE,eAAe,EAAE,EAAE,EAAE,MAAM;IAQjD,IAAI,MAAM,IAAI,OAAO,CAEpB;IAED,IAAI,WAAW,IAAI,aAAa,EAAE,CAEjC;IAED,IAAI,SAAS,IAAI,OAAO,CAEvB;IAED,IAAI,cAAc;gBA9BR,MAAM;cACR,MAAM;iBACH,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;cACzB,OAAO;mBACF,IAAI;QA4BhB;IAEK,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;YAgCd,aAAa;IAiG3B,SAAS;;;;;IAQT,KAAK,IAAI,IAAI;IAKP,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAa3B,SAAS,IAAI,IAAI;IAUX,iBAAiB,IAAI,OAAO,CAAC,mBAAmB,CAAC;CA2BxD"}
@@ -0,0 +1,206 @@
1
+ /**
2
+ * HTTP Server mock implementation for harness-mock.
3
+ */
4
+ import { EventEmitter } from 'node:events';
5
+ import { createServer } from 'node:http';
6
+ export class HttpServerMock extends EventEmitter {
7
+ scenario;
8
+ id;
9
+ serverUrl;
10
+ port;
11
+ _exited = false;
12
+ _fileChanges = [];
13
+ _requestHistory = [];
14
+ _server = null;
15
+ _isRunning = false;
16
+ _startTime = Date.now();
17
+ constructor(scenario, id) {
18
+ super();
19
+ this.scenario = scenario;
20
+ this.id = id;
21
+ this.port = scenario.httpServer?.port || 8080;
22
+ this.serverUrl = `http://localhost:${this.port}`;
23
+ }
24
+ get exited() {
25
+ return this._exited;
26
+ }
27
+ get fileChanges() {
28
+ return [...this._fileChanges];
29
+ }
30
+ get isRunning() {
31
+ return this._isRunning;
32
+ }
33
+ get requestHistory() {
34
+ return [...this._requestHistory];
35
+ }
36
+ async start() {
37
+ if (this._server) {
38
+ throw new Error('Server already started');
39
+ }
40
+ // Simulate startup delay
41
+ if (this.scenario.httpServer?.startupDelayMs) {
42
+ await new Promise(resolve => setTimeout(resolve, this.scenario.httpServer.startupDelayMs));
43
+ }
44
+ // Simulate startup failure
45
+ if (this.scenario.httpServer?.startupFails) {
46
+ throw new Error('Mock HTTP server startup failed');
47
+ }
48
+ this._server = createServer((req, res) => {
49
+ this.handleRequest(req, res);
50
+ });
51
+ return new Promise((resolve, reject) => {
52
+ this._server.listen(this.port, (err) => {
53
+ if (err) {
54
+ reject(err);
55
+ }
56
+ else {
57
+ this._isRunning = true;
58
+ this.emit('started');
59
+ resolve();
60
+ }
61
+ });
62
+ });
63
+ }
64
+ async handleRequest(req, res) {
65
+ // Collect request body
66
+ let body = '';
67
+ req.on('data', chunk => {
68
+ body += chunk;
69
+ });
70
+ req.on('end', async () => {
71
+ // Log request
72
+ this._requestHistory.push({
73
+ method: req.method || 'GET',
74
+ path: req.url || '/',
75
+ headers: req.headers,
76
+ body: body ? JSON.parse(body) : undefined,
77
+ timestamp: new Date(),
78
+ });
79
+ // Apply global delay
80
+ if (this.scenario.httpServer?.globalDelayMs) {
81
+ await new Promise(resolve => setTimeout(resolve, this.scenario.httpServer.globalDelayMs));
82
+ }
83
+ // Find route configuration
84
+ const routeKey = `${req.method} ${req.url}`;
85
+ const route = this.scenario.httpServer?.routes?.[routeKey] ||
86
+ this.scenario.httpServer?.routes?.[req.url || '/'];
87
+ // Apply route-specific delay
88
+ if (route?.delayMs) {
89
+ await new Promise(resolve => setTimeout(resolve, route.delayMs));
90
+ }
91
+ // Set headers
92
+ if (this.scenario.httpServer?.enableCors) {
93
+ res.setHeader('Access-Control-Allow-Origin', '*');
94
+ res.setHeader('Access-Control-Allow-Methods', 'GET,POST,PUT,DELETE,OPTIONS');
95
+ res.setHeader('Access-Control-Allow-Headers', 'Content-Type,Authorization');
96
+ }
97
+ if (route?.headers) {
98
+ Object.entries(route.headers).forEach(([key, value]) => {
99
+ res.setHeader(key, value);
100
+ });
101
+ }
102
+ // Set status code
103
+ res.statusCode = route?.status || 200;
104
+ // Generate response body
105
+ let responseBody = route?.body;
106
+ if (typeof route?.body === 'function') {
107
+ responseBody = route.body(req);
108
+ }
109
+ // Handle streaming responses
110
+ if (route?.streaming && route?.streamChunks) {
111
+ res.setHeader('Content-Type', 'text/event-stream');
112
+ res.setHeader('Cache-Control', 'no-cache');
113
+ res.setHeader('Connection', 'keep-alive');
114
+ for (const chunk of route.streamChunks) {
115
+ if (chunk.delayMs) {
116
+ await new Promise(resolve => setTimeout(resolve, chunk.delayMs));
117
+ }
118
+ res.write(`data: ${JSON.stringify(chunk.data)}\n\n`);
119
+ }
120
+ res.end();
121
+ }
122
+ else {
123
+ // Standard response
124
+ const response = typeof responseBody === 'string'
125
+ ? responseBody
126
+ : JSON.stringify(responseBody || { status: 'ok' });
127
+ res.setHeader('Content-Type', 'application/json');
128
+ res.end(response);
129
+ }
130
+ // Simulate file operations
131
+ if (this.scenario.fileOperations) {
132
+ this._fileChanges.push(...this.scenario.fileOperations);
133
+ }
134
+ // Emit events
135
+ if (this.scenario.events) {
136
+ for (const event of this.scenario.events) {
137
+ if (event.delayMs) {
138
+ setTimeout(() => {
139
+ this.emit('event', event);
140
+ }, event.delayMs);
141
+ }
142
+ else {
143
+ this.emit('event', event);
144
+ }
145
+ }
146
+ }
147
+ });
148
+ }
149
+ getStatus() {
150
+ return {
151
+ isRunning: this._isRunning,
152
+ requestCount: this._requestHistory.length,
153
+ uptime: Date.now() - this._startTime,
154
+ };
155
+ }
156
+ reset() {
157
+ this._requestHistory.length = 0;
158
+ this._fileChanges.length = 0;
159
+ }
160
+ async stop() {
161
+ if (this._server) {
162
+ return new Promise(resolve => {
163
+ this._server.close(() => {
164
+ this._isRunning = false;
165
+ this._exited = true;
166
+ this.emit('stopped');
167
+ resolve();
168
+ });
169
+ });
170
+ }
171
+ }
172
+ forceStop() {
173
+ if (this._server) {
174
+ this._server.closeAllConnections?.();
175
+ this._server.close();
176
+ this._isRunning = false;
177
+ this._exited = true;
178
+ this.emit('stopped');
179
+ }
180
+ }
181
+ async waitForCompletion() {
182
+ if (!this._exited) {
183
+ await new Promise(resolve => this.once('stopped', resolve));
184
+ }
185
+ const durationMs = Date.now() - this._startTime;
186
+ const averageResponseTime = this._requestHistory.length > 0
187
+ ? this._requestHistory.reduce((sum) => sum + 50, 0) / this._requestHistory.length // Mock timing
188
+ : 0;
189
+ const result = {
190
+ type: 'http',
191
+ requestCount: this._requestHistory.length,
192
+ requestHistory: this._requestHistory.map(req => ({
193
+ method: req.method,
194
+ path: req.path,
195
+ status: 200, // Mock successful responses
196
+ })),
197
+ averageResponseTimeMs: averageResponseTime,
198
+ };
199
+ return {
200
+ success: true,
201
+ durationMs,
202
+ results: result,
203
+ };
204
+ }
205
+ }
206
+ //# sourceMappingURL=http-mock.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"http-mock.js","sourceRoot":"","sources":["../src/http-mock.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,25 +1,10 @@
1
- /**
2
- * @a5c-ai/agent-mux-harness-mock
3
- *
4
- * Mock harness simulator for testing agent-mux adapters.
5
- * Simulates claude-code, codex, and other CLI harnesses without
6
- * requiring real installations or API keys.
7
- *
8
- * Main components:
9
- * - MockProcess: simulates a harness subprocess
10
- * - WorkspaceSandbox: isolated filesystem for file operation testing
11
- * - Scenarios: pre-built behavior configurations for common test cases
12
- * - Probe: tools for capturing real harness behavior profiles
13
- */
14
- export type { HarnessType, FileOperation, ProcessBehavior, OutputChunk, StdinInteraction, MockEvent, HarnessScenario, MockHarnessHandle, HarnessBehaviorProfile, } from './types.js';
15
- export { MockProcess } from './mock-process.js';
16
- export { WorkspaceSandbox } from './workspace.js';
17
- export type { WorkspaceOptions } from './workspace.js';
18
- export { claudeCodeSuccess, claudeCodeToolApproval, claudeCodeTimeout, claudeCodeCrash, claudeCodeFileOps, codexSuccess, codexFileOps, codexFailure, emptySuccess, slowStartup, largeOutput, } from './scenarios.js';
19
- export { resolveScenario, listScenarioNames, AGENT_SCENARIOS, ERROR_SCENARIOS, INTERACTION_SCENARIOS, claudeBasicText, claudeToolCall, claudeMultiTurn, codexBasicText, codexCodeGeneration, geminiBasicText, geminiStreaming, copilotScenarios, cursorScenarios, opencodeScenarios, piScenarios, ompScenarios, openclawScenarios, hermesScenarios, buildInteractiveScenario, claudeSystemInit, claudeAssistantText, claudeToolUse, claudeToolResult, claudeThinking, claudeResult, claudeError, codexMessage, codexFunctionCall, codexFunctionCallOutput, codexError, geminiText, geminiToolCall, geminiToolResult, geminiError, genericText, genericToolCall, genericError, stdoutChunk, stderrChunk, } from './scenarios/index.js';
20
- export type { InteractionMode } from './scenarios/interactive.js';
21
- export type { ErrorScenarioMeta } from './scenarios/errors.js';
22
- export type { ToolCall } from './scenarios/wire-format.js';
23
- export { probeHarness, probeAllHarnesses, compareProfiles, PROBE_CONFIGS, } from './probe.js';
24
- export type { ProbeConfig, ProbeResult, ProfileDiff, } from './probe.js';
1
+ export * from './mock-process.js';
2
+ export * from './scenarios/index.js';
3
+ export * from './probe.js';
4
+ export * from './types.js';
5
+ export * from './workspace.js';
6
+ export * from './multi-execution.js';
7
+ export * from './http-mock.js';
8
+ export * from './websocket-mock.js';
9
+ export * from './mocks/index.js';
25
10
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAGH,YAAY,EACV,WAAW,EACX,aAAa,EACb,eAAe,EACf,WAAW,EACX,gBAAgB,EAChB,SAAS,EACT,eAAe,EACf,iBAAiB,EACjB,sBAAsB,GACvB,MAAM,YAAY,CAAC;AAGpB,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAGhD,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,YAAY,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAGvD,OAAO,EACL,iBAAiB,EACjB,sBAAsB,EACtB,iBAAiB,EACjB,eAAe,EACf,iBAAiB,EACjB,YAAY,EACZ,YAAY,EACZ,YAAY,EACZ,YAAY,EACZ,WAAW,EACX,WAAW,GACZ,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EAEL,eAAe,EACf,iBAAiB,EACjB,eAAe,EACf,eAAe,EACf,qBAAqB,EAErB,eAAe,EACf,cAAc,EACd,eAAe,EACf,cAAc,EACd,mBAAmB,EACnB,eAAe,EACf,eAAe,EACf,gBAAgB,EAChB,eAAe,EACf,iBAAiB,EACjB,WAAW,EACX,YAAY,EACZ,iBAAiB,EACjB,eAAe,EAEf,wBAAwB,EAExB,gBAAgB,EAChB,mBAAmB,EACnB,aAAa,EACb,gBAAgB,EAChB,cAAc,EACd,YAAY,EACZ,WAAW,EACX,YAAY,EACZ,iBAAiB,EACjB,uBAAuB,EACvB,UAAU,EACV,UAAU,EACV,cAAc,EACd,gBAAgB,EAChB,WAAW,EACX,WAAW,EACX,eAAe,EACf,YAAY,EACZ,WAAW,EACX,WAAW,GACZ,MAAM,sBAAsB,CAAC;AAC9B,YAAY,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAClE,YAAY,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,YAAY,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AAG3D,OAAO,EACL,YAAY,EACZ,iBAAiB,EACjB,eAAe,EACf,aAAa,GACd,MAAM,YAAY,CAAC;AACpB,YAAY,EACV,WAAW,EACX,WAAW,EACX,WAAW,GACZ,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,sBAAsB,CAAC;AACrC,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,sBAAsB,CAAC;AACrC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,qBAAqB,CAAC;AACpC,cAAc,kBAAkB,CAAC"}
package/dist/index.js CHANGED
@@ -1,32 +1,10 @@
1
- /**
2
- * @a5c-ai/agent-mux-harness-mock
3
- *
4
- * Mock harness simulator for testing agent-mux adapters.
5
- * Simulates claude-code, codex, and other CLI harnesses without
6
- * requiring real installations or API keys.
7
- *
8
- * Main components:
9
- * - MockProcess: simulates a harness subprocess
10
- * - WorkspaceSandbox: isolated filesystem for file operation testing
11
- * - Scenarios: pre-built behavior configurations for common test cases
12
- * - Probe: tools for capturing real harness behavior profiles
13
- */
14
- // Mock process
15
- export { MockProcess } from './mock-process.js';
16
- // Workspace sandbox
17
- export { WorkspaceSandbox } from './workspace.js';
18
- // Pre-built scenarios
19
- export { claudeCodeSuccess, claudeCodeToolApproval, claudeCodeTimeout, claudeCodeCrash, claudeCodeFileOps, codexSuccess, codexFileOps, codexFailure, emptySuccess, slowStartup, largeOutput, } from './scenarios.js';
20
- // Scenario presets: per-agent, interactive, errors + wire-format helpers.
21
- export {
22
- // resolvers + registries
23
- resolveScenario, listScenarioNames, AGENT_SCENARIOS, ERROR_SCENARIOS, INTERACTION_SCENARIOS,
24
- // per-agent presets
25
- claudeBasicText, claudeToolCall, claudeMultiTurn, codexBasicText, codexCodeGeneration, geminiBasicText, geminiStreaming, copilotScenarios, cursorScenarios, opencodeScenarios, piScenarios, ompScenarios, openclawScenarios, hermesScenarios,
26
- // interactive
27
- buildInteractiveScenario,
28
- // wire-format
29
- claudeSystemInit, claudeAssistantText, claudeToolUse, claudeToolResult, claudeThinking, claudeResult, claudeError, codexMessage, codexFunctionCall, codexFunctionCallOutput, codexError, geminiText, geminiToolCall, geminiToolResult, geminiError, genericText, genericToolCall, genericError, stdoutChunk, stderrChunk, } from './scenarios/index.js';
30
- // Probe tools
31
- export { probeHarness, probeAllHarnesses, compareProfiles, PROBE_CONFIGS, } from './probe.js';
1
+ export * from './mock-process.js';
2
+ export * from './scenarios/index.js';
3
+ export * from './probe.js';
4
+ export * from './types.js';
5
+ export * from './workspace.js';
6
+ export * from './multi-execution.js';
7
+ export * from './http-mock.js';
8
+ export * from './websocket-mock.js';
9
+ export * from './mocks/index.js';
32
10
  //# 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;;;;;;;;;;;;GAYG;AAeH,eAAe;AACf,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,oBAAoB;AACpB,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAGlD,sBAAsB;AACtB,OAAO,EACL,iBAAiB,EACjB,sBAAsB,EACtB,iBAAiB,EACjB,eAAe,EACf,iBAAiB,EACjB,YAAY,EACZ,YAAY,EACZ,YAAY,EACZ,YAAY,EACZ,WAAW,EACX,WAAW,GACZ,MAAM,gBAAgB,CAAC;AAExB,0EAA0E;AAC1E,OAAO;AACL,yBAAyB;AACzB,eAAe,EACf,iBAAiB,EACjB,eAAe,EACf,eAAe,EACf,qBAAqB;AACrB,oBAAoB;AACpB,eAAe,EACf,cAAc,EACd,eAAe,EACf,cAAc,EACd,mBAAmB,EACnB,eAAe,EACf,eAAe,EACf,gBAAgB,EAChB,eAAe,EACf,iBAAiB,EACjB,WAAW,EACX,YAAY,EACZ,iBAAiB,EACjB,eAAe;AACf,cAAc;AACd,wBAAwB;AACxB,cAAc;AACd,gBAAgB,EAChB,mBAAmB,EACnB,aAAa,EACb,gBAAgB,EAChB,cAAc,EACd,YAAY,EACZ,WAAW,EACX,YAAY,EACZ,iBAAiB,EACjB,uBAAuB,EACvB,UAAU,EACV,UAAU,EACV,cAAc,EACd,gBAAgB,EAChB,WAAW,EACX,WAAW,EACX,eAAe,EACf,YAAY,EACZ,WAAW,EACX,WAAW,GACZ,MAAM,sBAAsB,CAAC;AAK9B,cAAc;AACd,OAAO,EACL,YAAY,EACZ,iBAAiB,EACjB,eAAe,EACf,aAAa,GACd,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,sBAAsB,CAAC;AACrC,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,sBAAsB,CAAC;AACrC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,qBAAqB,CAAC;AACpC,cAAc,kBAAkB,CAAC"}
@@ -5,24 +5,27 @@
5
5
  * simulates file operations, and exits with the configured code/timing.
6
6
  */
7
7
  import { EventEmitter } from 'node:events';
8
- import type { HarnessScenario, MockHarnessHandle, FileOperation } from './types.js';
9
- export declare class MockProcess extends EventEmitter implements MockHarnessHandle {
8
+ import type { HarnessScenario, MockExecutionResult, FileOperation, SubprocessMockHandle } from './types.js';
9
+ export declare class MockProcess extends EventEmitter implements SubprocessMockHandle {
10
10
  readonly scenario: HarnessScenario;
11
11
  readonly pid: number;
12
+ readonly id: number;
12
13
  private _exited;
13
14
  private _exitCode;
14
15
  private _stdout;
15
16
  private _stderr;
16
17
  private _fileChanges;
17
- private _killed;
18
18
  private _timers;
19
19
  private _stdinBuffer;
20
+ private readonly _startedAt;
20
21
  constructor(scenario: HarnessScenario);
21
22
  get exited(): boolean;
22
23
  get exitCode(): number | undefined;
23
24
  get stdout(): string;
24
25
  get stderr(): string;
25
26
  get fileChanges(): FileOperation[];
27
+ stop(): Promise<void>;
28
+ forceStop(): void;
26
29
  write(data: string): void;
27
30
  kill(signal?: string): void;
28
31
  waitForExit(): Promise<{
@@ -30,14 +33,16 @@ export declare class MockProcess extends EventEmitter implements MockHarnessHand
30
33
  stdout: string;
31
34
  stderr: string;
32
35
  }>;
36
+ waitForCompletion(): Promise<MockExecutionResult>;
33
37
  /**
34
38
  * Start the mock process. Call this after setting up event listeners.
35
39
  * Returns the handle for chaining.
36
40
  */
37
- start(): MockHarnessHandle;
41
+ start(): SubprocessMockHandle;
38
42
  private _emitOutputChunks;
39
43
  private _applyFileOperations;
40
44
  private _checkInteractions;
45
+ private _emitSimulatedTelemetry;
41
46
  private _scheduleExit;
42
47
  private _validateExpectations;
43
48
  private _exit;
@@ -1 +1 @@
1
- {"version":3,"file":"mock-process.d.ts","sourceRoot":"","sources":["../src/mock-process.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,KAAK,EACV,eAAe,EACf,iBAAiB,EAEjB,aAAa,EAEd,MAAM,YAAY,CAAC;AAYpB,qBAAa,WAAY,SAAQ,YAAa,YAAW,iBAAiB;IACxE,QAAQ,CAAC,QAAQ,EAAE,eAAe,CAAC;IACnC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IAErB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,SAAS,CAAqB;IACtC,OAAO,CAAC,OAAO,CAAM;IACrB,OAAO,CAAC,OAAO,CAAM;IACrB,OAAO,CAAC,YAAY,CAAuB;IAC3C,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,OAAO,CAAuC;IACtD,OAAO,CAAC,YAAY,CAAM;gBAEd,QAAQ,EAAE,eAAe;IAUrC,IAAI,MAAM,IAAI,OAAO,CAAyB;IAC9C,IAAI,QAAQ,IAAI,MAAM,GAAG,SAAS,CAA2B;IAC7D,IAAI,MAAM,IAAI,MAAM,CAAyB;IAC7C,IAAI,MAAM,IAAI,MAAM,CAAyB;IAC7C,IAAI,WAAW,IAAI,aAAa,EAAE,CAAmC;IAErE,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAMzB,IAAI,CAAC,MAAM,SAAY,GAAG,IAAI;IAO9B,WAAW,IAAI,OAAO,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAuB5E;;;OAGG;IACH,KAAK,IAAI,iBAAiB;IAgC1B,OAAO,CAAC,iBAAiB;IAkBzB,OAAO,CAAC,oBAAoB;IAY5B,OAAO,CAAC,kBAAkB;IAkB1B,OAAO,CAAC,aAAa;IAiBrB,OAAO,CAAC,qBAAqB;IAa7B,OAAO,CAAC,KAAK;IAQb,OAAO,CAAC,SAAS;IAWjB,OAAO,CAAC,QAAQ;CAMjB"}
1
+ {"version":3,"file":"mock-process.d.ts","sourceRoot":"","sources":["../src/mock-process.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,KAAK,EACV,eAAe,EACf,mBAAmB,EAEnB,aAAa,EACb,oBAAoB,EAErB,MAAM,YAAY,CAAC;AAapB,qBAAa,WAAY,SAAQ,YAAa,YAAW,oBAAoB;IAC3E,QAAQ,CAAC,QAAQ,EAAE,eAAe,CAAC;IACnC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IAEpB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,SAAS,CAAqB;IACtC,OAAO,CAAC,OAAO,CAAM;IACrB,OAAO,CAAC,OAAO,CAAM;IACrB,OAAO,CAAC,YAAY,CAAuB;IAC3C,OAAO,CAAC,OAAO,CAAuC;IACtD,OAAO,CAAC,YAAY,CAAM;IAC1B,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAc;gBAE7B,QAAQ,EAAE,eAAe;IAWrC,IAAI,MAAM,IAAI,OAAO,CAAyB;IAC9C,IAAI,QAAQ,IAAI,MAAM,GAAG,SAAS,CAA2B;IAC7D,IAAI,MAAM,IAAI,MAAM,CAAyB;IAC7C,IAAI,MAAM,IAAI,MAAM,CAAyB;IAC7C,IAAI,WAAW,IAAI,aAAa,EAAE,CAAmC;IAE/D,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAK3B,SAAS,IAAI,IAAI;IAIjB,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAMzB,IAAI,CAAC,MAAM,SAAY,GAAG,IAAI;IAM9B,WAAW,IAAI,OAAO,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAmBtE,iBAAiB,IAAI,OAAO,CAAC,mBAAmB,CAAC;IAyBvD;;;OAGG;IACH,KAAK,IAAI,oBAAoB;IAiC7B,OAAO,CAAC,iBAAiB;IAiDzB,OAAO,CAAC,oBAAoB;IAa5B,OAAO,CAAC,kBAAkB;IAkB1B,OAAO,CAAC,uBAAuB;IA0B/B,OAAO,CAAC,aAAa;IAYrB,OAAO,CAAC,qBAAqB;IAa7B,OAAO,CAAC,KAAK;IAQb,OAAO,CAAC,SAAS;IAWjB,OAAO,CAAC,QAAQ;CAMjB"}