@a5c-ai/agent-mux-adapters 0.3.0 → 0.4.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 (111) hide show
  1. package/dist/amp-adapter.d.ts +31 -0
  2. package/dist/amp-adapter.d.ts.map +1 -0
  3. package/dist/amp-adapter.js +336 -0
  4. package/dist/amp-adapter.js.map +1 -0
  5. package/dist/base-adapter-helpers.d.ts +8 -0
  6. package/dist/base-adapter-helpers.d.ts.map +1 -0
  7. package/dist/base-adapter-helpers.js +68 -0
  8. package/dist/base-adapter-helpers.js.map +1 -0
  9. package/dist/base-adapter.d.ts +14 -9
  10. package/dist/base-adapter.d.ts.map +1 -1
  11. package/dist/base-adapter.js +23 -66
  12. package/dist/base-adapter.js.map +1 -1
  13. package/dist/claude-adapter.d.ts.map +1 -1
  14. package/dist/claude-adapter.js +5 -2
  15. package/dist/claude-adapter.js.map +1 -1
  16. package/dist/claude-agent-sdk-adapter.d.ts +53 -0
  17. package/dist/claude-agent-sdk-adapter.d.ts.map +1 -0
  18. package/dist/claude-agent-sdk-adapter.js +607 -0
  19. package/dist/claude-agent-sdk-adapter.js.map +1 -0
  20. package/dist/codex-adapter.d.ts.map +1 -1
  21. package/dist/codex-adapter.js +99 -11
  22. package/dist/codex-adapter.js.map +1 -1
  23. package/dist/codex-sdk-adapter.d.ts +32 -0
  24. package/dist/codex-sdk-adapter.d.ts.map +1 -0
  25. package/dist/codex-sdk-adapter.js +384 -0
  26. package/dist/codex-sdk-adapter.js.map +1 -0
  27. package/dist/codex-sdk-mocks.d.ts +51 -0
  28. package/dist/codex-sdk-mocks.d.ts.map +1 -0
  29. package/dist/codex-sdk-mocks.js +97 -0
  30. package/dist/codex-sdk-mocks.js.map +1 -0
  31. package/dist/codex-websocket-adapter.d.ts +41 -0
  32. package/dist/codex-websocket-adapter.d.ts.map +1 -0
  33. package/dist/codex-websocket-adapter.js +289 -0
  34. package/dist/codex-websocket-adapter.js.map +1 -0
  35. package/dist/codex-websocket-connection.d.ts +58 -0
  36. package/dist/codex-websocket-connection.d.ts.map +1 -0
  37. package/dist/codex-websocket-connection.js +244 -0
  38. package/dist/codex-websocket-connection.js.map +1 -0
  39. package/dist/copilot-adapter.d.ts.map +1 -1
  40. package/dist/copilot-adapter.js +7 -3
  41. package/dist/copilot-adapter.js.map +1 -1
  42. package/dist/cursor-adapter.d.ts.map +1 -1
  43. package/dist/cursor-adapter.js +5 -2
  44. package/dist/cursor-adapter.js.map +1 -1
  45. package/dist/droid-adapter.d.ts +30 -0
  46. package/dist/droid-adapter.d.ts.map +1 -0
  47. package/dist/droid-adapter.js +377 -0
  48. package/dist/droid-adapter.js.map +1 -0
  49. package/dist/gemini-adapter.d.ts.map +1 -1
  50. package/dist/gemini-adapter.js +5 -2
  51. package/dist/gemini-adapter.js.map +1 -1
  52. package/dist/hermes-adapter.d.ts.map +1 -1
  53. package/dist/hermes-adapter.js +6 -2
  54. package/dist/hermes-adapter.js.map +1 -1
  55. package/dist/index.d.ts +10 -0
  56. package/dist/index.d.ts.map +1 -1
  57. package/dist/index.js +20 -1
  58. package/dist/index.js.map +1 -1
  59. package/dist/mocks/index.d.ts +60 -0
  60. package/dist/mocks/index.d.ts.map +1 -0
  61. package/dist/mocks/index.js +203 -0
  62. package/dist/mocks/index.js.map +1 -0
  63. package/dist/mocks/mock-types.d.ts +260 -0
  64. package/dist/mocks/mock-types.d.ts.map +1 -0
  65. package/dist/mocks/mock-types.js +12 -0
  66. package/dist/mocks/mock-types.js.map +1 -0
  67. package/dist/mocks/programmatic-mocks.d.ts +50 -0
  68. package/dist/mocks/programmatic-mocks.d.ts.map +1 -0
  69. package/dist/mocks/programmatic-mocks.js +330 -0
  70. package/dist/mocks/programmatic-mocks.js.map +1 -0
  71. package/dist/mocks/remote-mocks.d.ts +52 -0
  72. package/dist/mocks/remote-mocks.d.ts.map +1 -0
  73. package/dist/mocks/remote-mocks.js +436 -0
  74. package/dist/mocks/remote-mocks.js.map +1 -0
  75. package/dist/omp-adapter.d.ts.map +1 -1
  76. package/dist/omp-adapter.js +6 -3
  77. package/dist/omp-adapter.js.map +1 -1
  78. package/dist/openclaw-adapter.d.ts.map +1 -1
  79. package/dist/openclaw-adapter.js +6 -3
  80. package/dist/openclaw-adapter.js.map +1 -1
  81. package/dist/opencode-adapter.d.ts +2 -2
  82. package/dist/opencode-adapter.d.ts.map +1 -1
  83. package/dist/opencode-adapter.js +172 -60
  84. package/dist/opencode-adapter.js.map +1 -1
  85. package/dist/opencode-http-adapter.d.ts +41 -0
  86. package/dist/opencode-http-adapter.d.ts.map +1 -0
  87. package/dist/opencode-http-adapter.js +370 -0
  88. package/dist/opencode-http-adapter.js.map +1 -0
  89. package/dist/opencode-http-connection.d.ts +33 -0
  90. package/dist/opencode-http-connection.d.ts.map +1 -0
  91. package/dist/opencode-http-connection.js +198 -0
  92. package/dist/opencode-http-connection.js.map +1 -0
  93. package/dist/pi-adapter.d.ts.map +1 -1
  94. package/dist/pi-adapter.js +5 -2
  95. package/dist/pi-adapter.js.map +1 -1
  96. package/dist/pi-sdk-adapter.d.ts +46 -0
  97. package/dist/pi-sdk-adapter.d.ts.map +1 -0
  98. package/dist/pi-sdk-adapter.js +549 -0
  99. package/dist/pi-sdk-adapter.js.map +1 -0
  100. package/dist/programmatic-adapter-base.d.ts +88 -0
  101. package/dist/programmatic-adapter-base.d.ts.map +1 -0
  102. package/dist/programmatic-adapter-base.js +169 -0
  103. package/dist/programmatic-adapter-base.js.map +1 -0
  104. package/dist/qwen-adapter.d.ts.map +1 -1
  105. package/dist/qwen-adapter.js +5 -2
  106. package/dist/qwen-adapter.js.map +1 -1
  107. package/dist/remote-adapter-base.d.ts +85 -0
  108. package/dist/remote-adapter-base.d.ts.map +1 -0
  109. package/dist/remote-adapter-base.js +102 -0
  110. package/dist/remote-adapter-base.js.map +1 -0
  111. package/package.json +2 -2
@@ -0,0 +1,60 @@
1
+ /**
2
+ * Unified mock system for new adapter types (programmatic, remote, WebSocket).
3
+ *
4
+ * This package extends the existing harness-mock system to support:
5
+ * - Programmatic adapters (SDK integration mocking)
6
+ * - Remote HTTP adapters (server/API mocking)
7
+ * - WebSocket adapters (real-time connection mocking)
8
+ *
9
+ * Use this alongside @a5c-ai/agent-mux-harness-mock for subprocess adapters.
10
+ */
11
+ export type { ProgrammaticMockConfig, RemoteMockConfig, MockStreamEvent, ProgrammaticMockResponse, MockServerInfo, MockConnection, ProgrammaticMockBuilder, RemoteMockBuilder, MockConfigFactory, MockScenarios, } from './mock-types.js';
12
+ export { ProgrammaticMockEngine, createProgrammaticMockBuilder, ClaudeAgentSdkMock, CodexSdkMock, PiSdkMock, programmaticMocks, } from './programmatic-mocks.js';
13
+ export { MockServer, createMockServer, createRemoteMockBuilder, OpenCodeHttpMock, CodexWebSocketMock, remoteMocks, } from './remote-mocks.js';
14
+ import { createProgrammaticMockBuilder, ClaudeAgentSdkMock, CodexSdkMock, PiSdkMock } from './programmatic-mocks.js';
15
+ import { createRemoteMockBuilder, OpenCodeHttpMock, CodexWebSocketMock } from './remote-mocks.js';
16
+ import type { MockConfigFactory, MockScenarios } from './mock-types.js';
17
+ /**
18
+ * Unified factory for creating all types of adapter mocks.
19
+ */
20
+ export declare class AdapterMockFactory implements MockConfigFactory {
21
+ claudeAgentSdk(): import("./mock-types.js").ProgrammaticMockBuilder;
22
+ codexSdk(): import("./mock-types.js").ProgrammaticMockBuilder;
23
+ piSdk(): import("./mock-types.js").ProgrammaticMockBuilder;
24
+ opencodeHttp(): import("./mock-types.js").RemoteMockBuilder;
25
+ codexWebSocket(): import("./mock-types.js").RemoteMockBuilder;
26
+ programmatic(): import("./mock-types.js").ProgrammaticMockBuilder;
27
+ remote(): import("./mock-types.js").RemoteMockBuilder;
28
+ }
29
+ /**
30
+ * Pre-built mock scenarios for common testing patterns.
31
+ */
32
+ export declare const mockScenarios: MockScenarios;
33
+ /**
34
+ * Create a complete mock configuration for a specific adapter.
35
+ */
36
+ export declare function createAdapterMock(adapterName: 'claude-agent-sdk' | 'codex-sdk' | 'pi-sdk' | 'opencode-http' | 'codex-websocket', scenario?: 'basic' | 'tools' | 'error' | 'performance'): import("./mock-types.js").ProgrammaticMockConfig | import("./mock-types.js").RemoteMockConfig;
37
+ /**
38
+ * Test helper to verify mock behavior matches expected patterns.
39
+ */
40
+ export declare function testMockScenario(mockConfig: any, // ProgrammaticMockConfig | RemoteMockConfig
41
+ expectedEventTypes: string[], timeoutMs?: number): Promise<boolean>;
42
+ /**
43
+ * Main entry point for all adapter mocking functionality.
44
+ */
45
+ export declare const adapterMocks: {
46
+ factory: AdapterMockFactory;
47
+ claude: typeof ClaudeAgentSdkMock;
48
+ codex: {
49
+ sdk: typeof CodexSdkMock;
50
+ websocket: typeof CodexWebSocketMock;
51
+ };
52
+ pi: typeof PiSdkMock;
53
+ opencode: typeof OpenCodeHttpMock;
54
+ scenarios: MockScenarios;
55
+ createMock: typeof createAdapterMock;
56
+ testScenario: typeof testMockScenario;
57
+ programmatic: typeof createProgrammaticMockBuilder;
58
+ remote: typeof createRemoteMockBuilder;
59
+ };
60
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/mocks/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAMH,YAAY,EAEV,sBAAsB,EACtB,gBAAgB,EAChB,eAAe,EAGf,wBAAwB,EACxB,cAAc,EACd,cAAc,EAGd,uBAAuB,EACvB,iBAAiB,EACjB,iBAAiB,EAGjB,aAAa,GACd,MAAM,iBAAiB,CAAC;AAMzB,OAAO,EAEL,sBAAsB,EACtB,6BAA6B,EAG7B,kBAAkB,EAClB,YAAY,EACZ,SAAS,EAGT,iBAAiB,GAClB,MAAM,yBAAyB,CAAC;AAMjC,OAAO,EAEL,UAAU,EACV,gBAAgB,EAChB,uBAAuB,EAGvB,gBAAgB,EAChB,kBAAkB,EAGlB,WAAW,GACZ,MAAM,mBAAmB,CAAC;AAM3B,OAAO,EACL,6BAA6B,EAC7B,kBAAkB,EAClB,YAAY,EACZ,SAAS,EACV,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,uBAAuB,EACvB,gBAAgB,EAChB,kBAAkB,EACnB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAExE;;GAEG;AACH,qBAAa,kBAAmB,YAAW,iBAAiB;IAC1D,cAAc;IAKd,QAAQ;IAKR,KAAK;IAKL,YAAY;IAKZ,cAAc;IAKd,YAAY;IAIZ,MAAM;CAGP;AAMD;;GAEG;AACH,eAAO,MAAM,aAAa,EAAE,aAgD3B,CAAC;AAMF;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,WAAW,EAAE,kBAAkB,GAAG,WAAW,GAAG,QAAQ,GAAG,eAAe,GAAG,iBAAiB,EAC9F,QAAQ,GAAE,OAAO,GAAG,OAAO,GAAG,OAAO,GAAG,aAAuB,iGA6ChE;AAED;;GAEG;AACH,wBAAsB,gBAAgB,CACpC,UAAU,EAAE,GAAG,EAAE,4CAA4C;AAC7D,kBAAkB,EAAE,MAAM,EAAE,EAC5B,SAAS,SAAO,GACf,OAAO,CAAC,OAAO,CAAC,CAalB;AAMD;;GAEG;AACH,eAAO,MAAM,YAAY;;;;;;;;;;;;;;CAuBxB,CAAC"}
@@ -0,0 +1,203 @@
1
+ /**
2
+ * Unified mock system for new adapter types (programmatic, remote, WebSocket).
3
+ *
4
+ * This package extends the existing harness-mock system to support:
5
+ * - Programmatic adapters (SDK integration mocking)
6
+ * - Remote HTTP adapters (server/API mocking)
7
+ * - WebSocket adapters (real-time connection mocking)
8
+ *
9
+ * Use this alongside @a5c-ai/agent-mux-harness-mock for subprocess adapters.
10
+ */
11
+ // ---------------------------------------------------------------------------
12
+ // Programmatic Mocks
13
+ // ---------------------------------------------------------------------------
14
+ export {
15
+ // Engine and builders
16
+ ProgrammaticMockEngine, createProgrammaticMockBuilder,
17
+ // Adapter-specific factories
18
+ ClaudeAgentSdkMock, CodexSdkMock, PiSdkMock,
19
+ // Unified export
20
+ programmaticMocks, } from './programmatic-mocks.js';
21
+ // ---------------------------------------------------------------------------
22
+ // Remote Mocks
23
+ // ---------------------------------------------------------------------------
24
+ export {
25
+ // Server and connection mocking
26
+ MockServer, createMockServer, createRemoteMockBuilder,
27
+ // Adapter-specific factories
28
+ OpenCodeHttpMock, CodexWebSocketMock,
29
+ // Unified export
30
+ remoteMocks, } from './remote-mocks.js';
31
+ // ---------------------------------------------------------------------------
32
+ // Unified Mock Factory
33
+ // ---------------------------------------------------------------------------
34
+ import { createProgrammaticMockBuilder, ClaudeAgentSdkMock, CodexSdkMock, PiSdkMock } from './programmatic-mocks.js';
35
+ import { createRemoteMockBuilder, OpenCodeHttpMock, CodexWebSocketMock } from './remote-mocks.js';
36
+ /**
37
+ * Unified factory for creating all types of adapter mocks.
38
+ */
39
+ export class AdapterMockFactory {
40
+ claudeAgentSdk() {
41
+ return createProgrammaticMockBuilder()
42
+ .name('claude-agent-sdk-default');
43
+ }
44
+ codexSdk() {
45
+ return createProgrammaticMockBuilder()
46
+ .name('codex-sdk-default');
47
+ }
48
+ piSdk() {
49
+ return createProgrammaticMockBuilder()
50
+ .name('pi-sdk-default');
51
+ }
52
+ opencodeHttp() {
53
+ return createRemoteMockBuilder()
54
+ .name('opencode-http-default');
55
+ }
56
+ codexWebSocket() {
57
+ return createRemoteMockBuilder()
58
+ .name('codex-websocket-default');
59
+ }
60
+ programmatic() {
61
+ return createProgrammaticMockBuilder();
62
+ }
63
+ remote() {
64
+ return createRemoteMockBuilder();
65
+ }
66
+ }
67
+ // ---------------------------------------------------------------------------
68
+ // Preset Scenarios
69
+ // ---------------------------------------------------------------------------
70
+ /**
71
+ * Pre-built mock scenarios for common testing patterns.
72
+ */
73
+ export const mockScenarios = {
74
+ basicSuccess: {
75
+ programmatic: ClaudeAgentSdkMock.basicSuccess(),
76
+ remote: OpenCodeHttpMock.basicSuccess(),
77
+ },
78
+ toolCalling: {
79
+ programmatic: ClaudeAgentSdkMock.toolCalling(),
80
+ remote: OpenCodeHttpMock.basicSuccess(), // Remote doesn't have tool calling variant
81
+ },
82
+ errors: {
83
+ authFailure: ClaudeAgentSdkMock.authFailure(),
84
+ networkTimeout: OpenCodeHttpMock.networkTimeout(),
85
+ connectionDrop: CodexWebSocketMock.connectionDrop(),
86
+ invalidResponse: createRemoteMockBuilder()
87
+ .name('invalid-response')
88
+ .withErrors({ invalidResponse: true })
89
+ .build(),
90
+ },
91
+ performance: {
92
+ highThroughput: CodexWebSocketMock.highThroughput(),
93
+ lowLatency: createProgrammaticMockBuilder()
94
+ .name('low-latency')
95
+ .addTextStream('Fast response', 50, 10)
96
+ .withCost(10, 15)
97
+ .build(),
98
+ largeBatch: createProgrammaticMockBuilder()
99
+ .name('large-batch')
100
+ .addTextStream('Lorem ipsum '.repeat(100), 20, 25)
101
+ .withCost(500, 200)
102
+ .build(),
103
+ },
104
+ edgeCases: {
105
+ emptyResponse: createProgrammaticMockBuilder()
106
+ .name('empty-response')
107
+ .withCost(5, 0)
108
+ .build(),
109
+ malformedEvents: createRemoteMockBuilder()
110
+ .name('malformed-events')
111
+ .addEvents([
112
+ { type: 'invalid_event_type', data: { malformed: true }, delayMs: 100 },
113
+ ])
114
+ .build(),
115
+ reconnection: CodexWebSocketMock.connectionDrop(),
116
+ },
117
+ };
118
+ // ---------------------------------------------------------------------------
119
+ // Quick Access Functions
120
+ // ---------------------------------------------------------------------------
121
+ /**
122
+ * Create a complete mock configuration for a specific adapter.
123
+ */
124
+ export function createAdapterMock(adapterName, scenario = 'basic') {
125
+ const factory = new AdapterMockFactory();
126
+ switch (adapterName) {
127
+ case 'claude-agent-sdk':
128
+ switch (scenario) {
129
+ case 'basic': return ClaudeAgentSdkMock.basicSuccess();
130
+ case 'tools': return ClaudeAgentSdkMock.toolCalling();
131
+ case 'error': return ClaudeAgentSdkMock.authFailure();
132
+ default: return ClaudeAgentSdkMock.basicSuccess();
133
+ }
134
+ case 'codex-sdk':
135
+ switch (scenario) {
136
+ case 'basic': return CodexSdkMock.basicSuccess();
137
+ case 'tools': return CodexSdkMock.codeGeneration();
138
+ default: return CodexSdkMock.basicSuccess();
139
+ }
140
+ case 'pi-sdk':
141
+ switch (scenario) {
142
+ case 'basic': return PiSdkMock.basicSuccess();
143
+ case 'tools': return PiSdkMock.webSearch();
144
+ default: return PiSdkMock.basicSuccess();
145
+ }
146
+ case 'opencode-http':
147
+ switch (scenario) {
148
+ case 'basic': return OpenCodeHttpMock.basicSuccess();
149
+ case 'error': return OpenCodeHttpMock.networkTimeout();
150
+ default: return OpenCodeHttpMock.basicSuccess();
151
+ }
152
+ case 'codex-websocket':
153
+ switch (scenario) {
154
+ case 'basic': return CodexWebSocketMock.basicSuccess();
155
+ case 'performance': return CodexWebSocketMock.highThroughput();
156
+ case 'error': return CodexWebSocketMock.connectionDrop();
157
+ default: return CodexWebSocketMock.basicSuccess();
158
+ }
159
+ default:
160
+ throw new Error(`Unknown adapter: ${adapterName}`);
161
+ }
162
+ }
163
+ /**
164
+ * Test helper to verify mock behavior matches expected patterns.
165
+ */
166
+ export async function testMockScenario(mockConfig, // ProgrammaticMockConfig | RemoteMockConfig
167
+ expectedEventTypes, timeoutMs = 5000) {
168
+ // This would be implemented to validate that a mock config produces
169
+ // the expected sequence of events within the timeout period
170
+ // Basic validation - return false for null/undefined configs
171
+ if (!mockConfig) {
172
+ return false;
173
+ }
174
+ return (Array.isArray(mockConfig.events) &&
175
+ mockConfig.events.length > 0);
176
+ }
177
+ // ---------------------------------------------------------------------------
178
+ // Main Export
179
+ // ---------------------------------------------------------------------------
180
+ /**
181
+ * Main entry point for all adapter mocking functionality.
182
+ */
183
+ export const adapterMocks = {
184
+ // Factories
185
+ factory: new AdapterMockFactory(),
186
+ // Direct access to adapter-specific mocks
187
+ claude: ClaudeAgentSdkMock,
188
+ codex: {
189
+ sdk: CodexSdkMock,
190
+ websocket: CodexWebSocketMock,
191
+ },
192
+ pi: PiSdkMock,
193
+ opencode: OpenCodeHttpMock,
194
+ // Scenarios
195
+ scenarios: mockScenarios,
196
+ // Utilities
197
+ createMock: createAdapterMock,
198
+ testScenario: testMockScenario,
199
+ // Builders
200
+ programmatic: createProgrammaticMockBuilder,
201
+ remote: createRemoteMockBuilder,
202
+ };
203
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/mocks/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,260 @@
1
+ /**
2
+ * Mock types for new adapter architectures (programmatic, remote, WebSocket).
3
+ *
4
+ * These mocks complement the existing harness-mock package which focuses on
5
+ * subprocess adapters. These types handle:
6
+ * - Programmatic adapters (SDK integration)
7
+ * - Remote HTTP/WebSocket adapters
8
+ * - Connection lifecycle simulation
9
+ * - Real-time streaming behaviors
10
+ */
11
+ import type { AgentEvent } from '@a5c-ai/agent-mux-core';
12
+ /**
13
+ * Configuration for mocking SDK behavior in programmatic adapters.
14
+ */
15
+ export interface ProgrammaticMockConfig {
16
+ /** Mock scenario name for identification */
17
+ name?: string;
18
+ /** Whether authentication should succeed */
19
+ authSucceeds: boolean;
20
+ /** Sequence of events to emit during execution */
21
+ events: MockStreamEvent[];
22
+ /** Delay before starting to emit events (ms) */
23
+ startDelayMs?: number;
24
+ /** Whether to simulate SDK errors */
25
+ simulateError?: {
26
+ errorCode: string;
27
+ message: string;
28
+ delayMs?: number;
29
+ };
30
+ /** Cost information to return */
31
+ cost?: {
32
+ inputTokens: number;
33
+ outputTokens: number;
34
+ thinkingTokens?: number;
35
+ totalUsd: number;
36
+ };
37
+ }
38
+ /**
39
+ * A mock event in the stream with timing and content.
40
+ */
41
+ export interface MockStreamEvent {
42
+ /** Event type matching AgentEvent taxonomy */
43
+ type: string;
44
+ /** Event data/payload */
45
+ data: Record<string, unknown>;
46
+ /** Delay before this event (ms, relative to previous) */
47
+ delayMs?: number;
48
+ }
49
+ /**
50
+ * Configuration for mocking remote server/connection behavior.
51
+ */
52
+ export interface RemoteMockConfig {
53
+ /** Mock scenario name */
54
+ name?: string;
55
+ /** Server startup behavior */
56
+ server?: {
57
+ /** Delay before server becomes ready */
58
+ startupDelayMs?: number;
59
+ /** Port to simulate (for testing) */
60
+ port?: number;
61
+ /** Whether server startup should fail */
62
+ startupFails?: boolean;
63
+ };
64
+ /** Connection behavior */
65
+ connection?: {
66
+ /** Delay for connection establishment */
67
+ connectDelayMs?: number;
68
+ /** Whether connection should fail */
69
+ connectFails?: boolean;
70
+ /** Disconnect after N events (for testing reconnection) */
71
+ disconnectAfterEvents?: number;
72
+ };
73
+ /** WebSocket-specific behavior */
74
+ websocket?: {
75
+ /** Channels to simulate */
76
+ channels?: string[];
77
+ /** Ping/pong intervals (ms) */
78
+ pingIntervalMs?: number;
79
+ /** Simulated connection drops */
80
+ dropConnection?: {
81
+ afterMs: number;
82
+ reconnectDelayMs?: number;
83
+ };
84
+ };
85
+ /** HTTP-specific behavior */
86
+ http?: {
87
+ /** Base URL for simulation */
88
+ baseUrl?: string;
89
+ /** Response delays for different endpoints */
90
+ endpointDelays?: Record<string, number>;
91
+ /** Status codes to return */
92
+ statusCodes?: Record<string, number>;
93
+ };
94
+ /** Events to emit during session */
95
+ events: MockStreamEvent[];
96
+ /** Whether to simulate various error conditions */
97
+ simulateErrors?: {
98
+ networkTimeout?: boolean;
99
+ connectionReset?: boolean;
100
+ invalidResponse?: boolean;
101
+ authFailure?: boolean;
102
+ };
103
+ }
104
+ /**
105
+ * Response from a programmatic mock execution.
106
+ */
107
+ export interface ProgrammaticMockResponse {
108
+ /** All events that were emitted */
109
+ events: AgentEvent[];
110
+ /** Total duration of the mock execution */
111
+ durationMs: number;
112
+ /** Whether the execution completed successfully */
113
+ success: boolean;
114
+ /** Error information if execution failed */
115
+ error?: {
116
+ code: string;
117
+ message: string;
118
+ };
119
+ }
120
+ /**
121
+ * Information about a mock remote server instance.
122
+ */
123
+ export interface MockServerInfo {
124
+ /** Server ID for tracking */
125
+ serverId: string;
126
+ /** Simulated endpoint */
127
+ endpoint: string;
128
+ /** Port (simulated) */
129
+ port: number;
130
+ /** Server start time */
131
+ startedAt: Date;
132
+ /** Current status */
133
+ status: 'starting' | 'running' | 'stopped' | 'error';
134
+ }
135
+ /**
136
+ * Mock connection handle for remote adapters.
137
+ */
138
+ export interface MockConnection {
139
+ /** Connection ID */
140
+ connectionId: string;
141
+ /** Connection type */
142
+ connectionType: 'http' | 'websocket';
143
+ /** Endpoint URL */
144
+ endpoint: string;
145
+ /** Connection state */
146
+ state: 'connecting' | 'connected' | 'disconnected' | 'error';
147
+ /** Send data through the mock connection */
148
+ send(data: unknown): Promise<void>;
149
+ /** Receive events from the mock connection */
150
+ receive(): AsyncIterableIterator<AgentEvent>;
151
+ /** Close the mock connection */
152
+ close(): Promise<void>;
153
+ /** Get connection statistics */
154
+ getStats(): {
155
+ eventsReceived: number;
156
+ eventsSent: number;
157
+ connectTime: Date;
158
+ lastActivity: Date;
159
+ };
160
+ }
161
+ /**
162
+ * Builder interface for creating programmatic mocks.
163
+ */
164
+ export interface ProgrammaticMockBuilder {
165
+ /** Set mock name */
166
+ name(name: string): this;
167
+ /** Configure authentication behavior */
168
+ withAuth(succeeds: boolean): this;
169
+ /** Add events to the stream */
170
+ addEvents(events: MockStreamEvent[]): this;
171
+ /** Add a single event */
172
+ addEvent(type: string, data: Record<string, unknown>, delayMs?: number): this;
173
+ /** Add realistic text streaming events */
174
+ addTextStream(text: string, chunkSize?: number, delayBetweenChunks?: number): this;
175
+ /** Add tool calling sequence */
176
+ addToolCall(toolName: string, input: string, output: unknown, processingTimeMs?: number): this;
177
+ /** Add thinking sequence (for Claude) */
178
+ addThinking(thinkingContent: string, delayMs?: number): this;
179
+ /** Add cost information */
180
+ withCost(inputTokens: number, outputTokens: number, thinkingTokens?: number): this;
181
+ /** Simulate an error */
182
+ withError(code: string, message: string, delayMs?: number): this;
183
+ /** Build the final configuration */
184
+ build(): ProgrammaticMockConfig;
185
+ }
186
+ /**
187
+ * Builder interface for creating remote mocks.
188
+ */
189
+ export interface RemoteMockBuilder {
190
+ /** Set mock name */
191
+ name(name: string): this;
192
+ /** Configure server behavior */
193
+ withServer(config: RemoteMockConfig['server']): this;
194
+ /** Configure connection behavior */
195
+ withConnection(config: RemoteMockConfig['connection']): this;
196
+ /** Configure WebSocket-specific behavior */
197
+ withWebSocket(config: RemoteMockConfig['websocket']): this;
198
+ /** Configure HTTP-specific behavior */
199
+ withHttp(config: RemoteMockConfig['http']): this;
200
+ /** Add events to emit */
201
+ addEvents(events: MockStreamEvent[]): this;
202
+ /** Add error simulation */
203
+ withErrors(errors: RemoteMockConfig['simulateErrors']): this;
204
+ /** Build the final configuration */
205
+ build(): RemoteMockConfig;
206
+ }
207
+ /**
208
+ * Factory for creating adapter-specific mock configurations.
209
+ */
210
+ export interface MockConfigFactory {
211
+ /** Create Claude Agent SDK mock */
212
+ claudeAgentSdk(): ProgrammaticMockBuilder;
213
+ /** Create Codex SDK mock */
214
+ codexSdk(): ProgrammaticMockBuilder;
215
+ /** Create Pi SDK mock */
216
+ piSdk(): ProgrammaticMockBuilder;
217
+ /** Create OpenCode HTTP mock */
218
+ opencodeHttp(): RemoteMockBuilder;
219
+ /** Create Codex WebSocket mock */
220
+ codexWebSocket(): RemoteMockBuilder;
221
+ /** Create custom programmatic mock */
222
+ programmatic(): ProgrammaticMockBuilder;
223
+ /** Create custom remote mock */
224
+ remote(): RemoteMockBuilder;
225
+ }
226
+ /**
227
+ * Pre-built mock scenarios for common test cases.
228
+ */
229
+ export interface MockScenarios {
230
+ /** Basic successful text generation */
231
+ basicSuccess: {
232
+ programmatic: ProgrammaticMockConfig;
233
+ remote: RemoteMockConfig;
234
+ };
235
+ /** Tool calling scenarios */
236
+ toolCalling: {
237
+ programmatic: ProgrammaticMockConfig;
238
+ remote: RemoteMockConfig;
239
+ };
240
+ /** Error conditions */
241
+ errors: {
242
+ authFailure: ProgrammaticMockConfig;
243
+ networkTimeout: RemoteMockConfig;
244
+ connectionDrop: RemoteMockConfig;
245
+ invalidResponse: RemoteMockConfig;
246
+ };
247
+ /** Performance testing */
248
+ performance: {
249
+ highThroughput: RemoteMockConfig;
250
+ lowLatency: ProgrammaticMockConfig;
251
+ largeBatch: ProgrammaticMockConfig;
252
+ };
253
+ /** Edge cases */
254
+ edgeCases: {
255
+ emptyResponse: ProgrammaticMockConfig;
256
+ malformedEvents: RemoteMockConfig;
257
+ reconnection: RemoteMockConfig;
258
+ };
259
+ }
260
+ //# sourceMappingURL=mock-types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mock-types.d.ts","sourceRoot":"","sources":["../../src/mocks/mock-types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Mock types for new adapter architectures (programmatic, remote, WebSocket).
3
+ *
4
+ * These mocks complement the existing harness-mock package which focuses on
5
+ * subprocess adapters. These types handle:
6
+ * - Programmatic adapters (SDK integration)
7
+ * - Remote HTTP/WebSocket adapters
8
+ * - Connection lifecycle simulation
9
+ * - Real-time streaming behaviors
10
+ */
11
+ export {};
12
+ //# sourceMappingURL=mock-types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mock-types.js","sourceRoot":"","sources":["../../src/mocks/mock-types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG"}
@@ -0,0 +1,50 @@
1
+ /**
2
+ * Mock implementations for programmatic adapters (SDK-based).
3
+ *
4
+ * Provides realistic simulation of SDK behavior for:
5
+ * - Claude Agent SDK
6
+ * - Codex SDK
7
+ * - Pi SDK
8
+ * - Generic programmatic adapters
9
+ */
10
+ import type { AgentEvent, RunOptions } from '@a5c-ai/agent-mux-core';
11
+ import type { ProgrammaticMockConfig, ProgrammaticMockBuilder, MockStreamEvent } from './mock-types.js';
12
+ export declare class ProgrammaticMockBuilderImpl implements ProgrammaticMockBuilder {
13
+ private config;
14
+ name(name: string): this;
15
+ withAuth(succeeds: boolean): this;
16
+ addEvents(events: MockStreamEvent[]): this;
17
+ addEvent(type: string, data: Record<string, unknown>, delayMs?: number): this;
18
+ addTextStream(text: string, chunkSize?: number, delayBetweenChunks?: number): this;
19
+ addToolCall(toolName: string, input: string, output: unknown, processingTimeMs?: number): this;
20
+ addThinking(thinkingContent: string, delayMs?: number): this;
21
+ withCost(inputTokens: number, outputTokens: number, thinkingTokens?: number): this;
22
+ withError(code: string, message: string, delayMs?: number): this;
23
+ build(): ProgrammaticMockConfig;
24
+ }
25
+ export declare class ProgrammaticMockEngine {
26
+ execute(config: ProgrammaticMockConfig, options: RunOptions): Promise<AsyncIterableIterator<AgentEvent>>;
27
+ private createEventStream;
28
+ }
29
+ export declare class ClaudeAgentSdkMock {
30
+ static basicSuccess(): ProgrammaticMockConfig;
31
+ static toolCalling(): ProgrammaticMockConfig;
32
+ static authFailure(): ProgrammaticMockConfig;
33
+ }
34
+ export declare class CodexSdkMock {
35
+ static basicSuccess(): ProgrammaticMockConfig;
36
+ static codeGeneration(): ProgrammaticMockConfig;
37
+ }
38
+ export declare class PiSdkMock {
39
+ static basicSuccess(): ProgrammaticMockConfig;
40
+ static webSearch(): ProgrammaticMockConfig;
41
+ }
42
+ export declare function createProgrammaticMockBuilder(): ProgrammaticMockBuilder;
43
+ export declare const programmaticMocks: {
44
+ claude: typeof ClaudeAgentSdkMock;
45
+ codex: typeof CodexSdkMock;
46
+ pi: typeof PiSdkMock;
47
+ engine: ProgrammaticMockEngine;
48
+ builder: typeof createProgrammaticMockBuilder;
49
+ };
50
+ //# sourceMappingURL=programmatic-mocks.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"programmatic-mocks.d.ts","sourceRoot":"","sources":["../../src/mocks/programmatic-mocks.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACrE,OAAO,KAAK,EACV,sBAAsB,EAEtB,uBAAuB,EACvB,eAAe,EAChB,MAAM,iBAAiB,CAAC;AA2BzB,qBAAa,2BAA4B,YAAW,uBAAuB;IACzE,OAAO,CAAC,MAAM,CAIZ;IAEF,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAKxB,QAAQ,CAAC,QAAQ,EAAE,OAAO,GAAG,IAAI;IAKjC,SAAS,CAAC,MAAM,EAAE,eAAe,EAAE,GAAG,IAAI;IAK1C,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,SAAI,GAAG,IAAI;IAMxE,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,SAAK,EAAE,kBAAkB,SAAK,GAAG,IAAI;IAqB1E,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,gBAAgB,SAAM,GAAG,IAAI;IA6C3F,WAAW,CAAC,eAAe,EAAE,MAAM,EAAE,OAAO,SAAM,GAAG,IAAI;IA2BzD,QAAQ,CAAC,WAAW,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,cAAc,SAAI,GAAG,IAAI;IAiB7E,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,SAAM,GAAG,IAAI;IAS7D,KAAK,IAAI,sBAAsB;CAOhC;AAMD,qBAAa,sBAAsB;IAC3B,OAAO,CACX,MAAM,EAAE,sBAAsB,EAC9B,OAAO,EAAE,UAAU,GAClB,OAAO,CAAC,qBAAqB,CAAC,UAAU,CAAC,CAAC;YAO9B,iBAAiB;CAkFjC;AAMD,qBAAa,kBAAkB;IAC7B,MAAM,CAAC,YAAY,IAAI,sBAAsB;IAU7C,MAAM,CAAC,WAAW,IAAI,sBAAsB;IAW5C,MAAM,CAAC,WAAW,IAAI,sBAAsB;CAM7C;AAED,qBAAa,YAAY;IACvB,MAAM,CAAC,YAAY,IAAI,sBAAsB;IAS7C,MAAM,CAAC,cAAc,IAAI,sBAAsB;CAShD;AAED,qBAAa,SAAS;IACpB,MAAM,CAAC,YAAY,IAAI,sBAAsB;IAS7C,MAAM,CAAC,SAAS,IAAI,sBAAsB;CAY3C;AAMD,wBAAgB,6BAA6B,IAAI,uBAAuB,CAEvE;AAED,eAAO,MAAM,iBAAiB;;;;;;CAM7B,CAAC"}