@a5c-ai/adapters-harness-mock 5.1.1-staging.52898ebfc24f

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 (91) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +227 -0
  3. package/dist/bin/adapters-harness-mock.d.ts +32 -0
  4. package/dist/bin/adapters-harness-mock.d.ts.map +1 -0
  5. package/dist/bin/adapters-harness-mock.js +155 -0
  6. package/dist/bin/adapters-harness-mock.js.map +1 -0
  7. package/dist/bin/mock-harness.d.ts +2 -0
  8. package/dist/bin/mock-harness.d.ts.map +1 -0
  9. package/dist/bin/mock-harness.js +25 -0
  10. package/dist/bin/mock-harness.js.map +1 -0
  11. package/dist/http-mock.d.ts +39 -0
  12. package/dist/http-mock.d.ts.map +1 -0
  13. package/dist/http-mock.js +206 -0
  14. package/dist/http-mock.js.map +1 -0
  15. package/dist/index.d.ts +9 -0
  16. package/dist/index.d.ts.map +1 -0
  17. package/dist/index.js +10 -0
  18. package/dist/index.js.map +1 -0
  19. package/dist/mock-process.d.ts +57 -0
  20. package/dist/mock-process.d.ts.map +1 -0
  21. package/dist/mock-process.js +388 -0
  22. package/dist/mock-process.js.map +1 -0
  23. package/dist/mocks/index.d.ts +53 -0
  24. package/dist/mocks/index.d.ts.map +1 -0
  25. package/dist/mocks/index.js +140 -0
  26. package/dist/mocks/index.js.map +1 -0
  27. package/dist/mocks/mock-types.d.ts +170 -0
  28. package/dist/mocks/mock-types.d.ts.map +1 -0
  29. package/dist/mocks/mock-types.js +2 -0
  30. package/dist/mocks/mock-types.js.map +1 -0
  31. package/dist/mocks/programmatic-mocks.d.ts +40 -0
  32. package/dist/mocks/programmatic-mocks.d.ts.map +1 -0
  33. package/dist/mocks/programmatic-mocks.js +229 -0
  34. package/dist/mocks/programmatic-mocks.js.map +1 -0
  35. package/dist/mocks/remote-mocks.d.ts +43 -0
  36. package/dist/mocks/remote-mocks.d.ts.map +1 -0
  37. package/dist/mocks/remote-mocks.js +332 -0
  38. package/dist/mocks/remote-mocks.js.map +1 -0
  39. package/dist/mocks/scriptable-transport.d.ts +23 -0
  40. package/dist/mocks/scriptable-transport.d.ts.map +1 -0
  41. package/dist/mocks/scriptable-transport.js +83 -0
  42. package/dist/mocks/scriptable-transport.js.map +1 -0
  43. package/dist/multi-execution.d.ts +1 -0
  44. package/dist/multi-execution.d.ts.map +1 -0
  45. package/dist/multi-execution.js +2 -0
  46. package/dist/multi-execution.js.map +1 -0
  47. package/dist/probe.d.ts +113 -0
  48. package/dist/probe.d.ts.map +1 -0
  49. package/dist/probe.js +722 -0
  50. package/dist/probe.js.map +1 -0
  51. package/dist/scenarios/errors.d.ts +21 -0
  52. package/dist/scenarios/errors.d.ts.map +1 -0
  53. package/dist/scenarios/errors.js +73 -0
  54. package/dist/scenarios/errors.js.map +1 -0
  55. package/dist/scenarios/hooks.d.ts +17 -0
  56. package/dist/scenarios/hooks.d.ts.map +1 -0
  57. package/dist/scenarios/hooks.js +129 -0
  58. package/dist/scenarios/hooks.js.map +1 -0
  59. package/dist/scenarios/index.d.ts +22 -0
  60. package/dist/scenarios/index.d.ts.map +1 -0
  61. package/dist/scenarios/index.js +65 -0
  62. package/dist/scenarios/index.js.map +1 -0
  63. package/dist/scenarios/interactive.d.ts +17 -0
  64. package/dist/scenarios/interactive.d.ts.map +1 -0
  65. package/dist/scenarios/interactive.js +65 -0
  66. package/dist/scenarios/interactive.js.map +1 -0
  67. package/dist/scenarios/per-agent.d.ts +17 -0
  68. package/dist/scenarios/per-agent.d.ts.map +1 -0
  69. package/dist/scenarios/per-agent.js +597 -0
  70. package/dist/scenarios/per-agent.js.map +1 -0
  71. package/dist/scenarios/wire-format.d.ts +56 -0
  72. package/dist/scenarios/wire-format.d.ts.map +1 -0
  73. package/dist/scenarios/wire-format.js +261 -0
  74. package/dist/scenarios/wire-format.js.map +1 -0
  75. package/dist/scenarios.d.ts +29 -0
  76. package/dist/scenarios.d.ts.map +1 -0
  77. package/dist/scenarios.js +141 -0
  78. package/dist/scenarios.js.map +1 -0
  79. package/dist/types.d.ts +463 -0
  80. package/dist/types.d.ts.map +1 -0
  81. package/dist/types.js +9 -0
  82. package/dist/types.js.map +1 -0
  83. package/dist/websocket-mock.d.ts +58 -0
  84. package/dist/websocket-mock.d.ts.map +1 -0
  85. package/dist/websocket-mock.js +367 -0
  86. package/dist/websocket-mock.js.map +1 -0
  87. package/dist/workspace.d.ts +52 -0
  88. package/dist/workspace.d.ts.map +1 -0
  89. package/dist/workspace.js +157 -0
  90. package/dist/workspace.js.map +1 -0
  91. package/package.json +71 -0
@@ -0,0 +1,170 @@
1
+ import type { AgentEvent } from '@a5c-ai/comm-adapter';
2
+ export interface ProgrammaticMockConfig {
3
+ name?: string;
4
+ authSucceeds: boolean;
5
+ events: MockStreamEvent[];
6
+ startDelayMs?: number;
7
+ simulateError?: {
8
+ errorCode: string;
9
+ message: string;
10
+ delayMs?: number;
11
+ };
12
+ cost?: {
13
+ inputTokens: number;
14
+ outputTokens: number;
15
+ thinkingTokens?: number;
16
+ totalUsd: number;
17
+ };
18
+ }
19
+ export interface MockStreamEvent {
20
+ type: string;
21
+ data: Record<string, unknown>;
22
+ delayMs?: number;
23
+ }
24
+ export interface RemoteMockConfig {
25
+ name?: string;
26
+ server?: {
27
+ startupDelayMs?: number;
28
+ port?: number;
29
+ startupFails?: boolean;
30
+ };
31
+ connection?: {
32
+ connectDelayMs?: number;
33
+ connectFails?: boolean;
34
+ disconnectAfterEvents?: number;
35
+ };
36
+ websocket?: {
37
+ channels?: string[];
38
+ pingIntervalMs?: number;
39
+ dropConnection?: {
40
+ afterMs: number;
41
+ reconnectDelayMs?: number;
42
+ };
43
+ };
44
+ http?: {
45
+ baseUrl?: string;
46
+ endpointDelays?: Record<string, number>;
47
+ statusCodes?: Record<string, number>;
48
+ };
49
+ events: MockStreamEvent[];
50
+ simulateErrors?: {
51
+ networkTimeout?: boolean;
52
+ connectionReset?: boolean;
53
+ invalidResponse?: boolean;
54
+ authFailure?: boolean;
55
+ };
56
+ }
57
+ export interface ProgrammaticMockResponse {
58
+ events: AgentEvent[];
59
+ durationMs: number;
60
+ success: boolean;
61
+ error?: {
62
+ code: string;
63
+ message: string;
64
+ };
65
+ }
66
+ export interface MockServerInfo {
67
+ serverId: string;
68
+ endpoint: string;
69
+ port: number;
70
+ startedAt: Date;
71
+ status: 'starting' | 'running' | 'stopped' | 'error';
72
+ }
73
+ export interface MockConnection {
74
+ connectionId: string;
75
+ connectionType: 'http' | 'websocket';
76
+ endpoint: string;
77
+ state: 'connecting' | 'connected' | 'disconnected' | 'error';
78
+ send(data: unknown): Promise<void>;
79
+ receive(): AsyncIterableIterator<AgentEvent>;
80
+ close(): Promise<void>;
81
+ getStats(): {
82
+ eventsReceived: number;
83
+ eventsSent: number;
84
+ connectTime: Date;
85
+ lastActivity: Date;
86
+ };
87
+ }
88
+ export interface ProgrammaticMockBuilder {
89
+ name(name: string): this;
90
+ withAuth(succeeds: boolean): this;
91
+ addEvents(events: MockStreamEvent[]): this;
92
+ addEvent(type: string, data: Record<string, unknown>, delayMs?: number): this;
93
+ addTextStream(text: string, chunkSize?: number, delayBetweenChunks?: number): this;
94
+ addToolCall(toolName: string, input: string, output: unknown, processingTimeMs?: number): this;
95
+ addThinking(thinkingContent: string, delayMs?: number): this;
96
+ withCost(inputTokens: number, outputTokens: number, thinkingTokens?: number): this;
97
+ withError(code: string, message: string, delayMs?: number): this;
98
+ build(): ProgrammaticMockConfig;
99
+ }
100
+ export interface RemoteMockBuilder {
101
+ name(name: string): this;
102
+ withServer(config: RemoteMockConfig['server']): this;
103
+ withConnection(config: RemoteMockConfig['connection']): this;
104
+ withWebSocket(config: RemoteMockConfig['websocket']): this;
105
+ withHttp(config: RemoteMockConfig['http']): this;
106
+ addEvents(events: MockStreamEvent[]): this;
107
+ withErrors(errors: RemoteMockConfig['simulateErrors']): this;
108
+ build(): RemoteMockConfig;
109
+ }
110
+ export interface ScriptableTransportResponse {
111
+ status?: number;
112
+ headers?: Record<string, string>;
113
+ body?: string | object | ((req: unknown) => unknown);
114
+ delayMs?: number;
115
+ }
116
+ export interface ScriptableTransportStep {
117
+ method?: string;
118
+ path: string;
119
+ response?: ScriptableTransportResponse;
120
+ }
121
+ export interface ScriptableTransportBuilder {
122
+ name(name: string): this;
123
+ http(config?: {
124
+ port?: number;
125
+ enableCors?: boolean;
126
+ }): this;
127
+ websocket(config?: {
128
+ port?: number;
129
+ reconnectDelayMs?: number;
130
+ }): this;
131
+ onRequest(path: string, response: ScriptableTransportResponse, method?: string): this;
132
+ emitEvent(type: string, data: Record<string, unknown>, delayMs?: number): this;
133
+ build(): import('../types.js').HarnessScenario;
134
+ }
135
+ export interface MockConfigFactory {
136
+ claudeAgentSdk(): ProgrammaticMockBuilder;
137
+ codexSdk(): ProgrammaticMockBuilder;
138
+ piSdk(): ProgrammaticMockBuilder;
139
+ opencodeHttp(): RemoteMockBuilder;
140
+ codexWebSocket(): RemoteMockBuilder;
141
+ programmatic(): ProgrammaticMockBuilder;
142
+ remote(): RemoteMockBuilder;
143
+ scriptedTransport(): ScriptableTransportBuilder;
144
+ }
145
+ export interface MockScenarios {
146
+ basicSuccess: {
147
+ programmatic: ProgrammaticMockConfig;
148
+ remote: RemoteMockConfig;
149
+ };
150
+ toolCalling: {
151
+ programmatic: ProgrammaticMockConfig;
152
+ remote: RemoteMockConfig;
153
+ };
154
+ errors: {
155
+ authFailure: ProgrammaticMockConfig;
156
+ networkTimeout: RemoteMockConfig;
157
+ connectionDrop: RemoteMockConfig;
158
+ invalidResponse: RemoteMockConfig;
159
+ };
160
+ performance: {
161
+ highThroughput: RemoteMockConfig;
162
+ lowLatency: ProgrammaticMockConfig;
163
+ largeBatch: ProgrammaticMockConfig;
164
+ };
165
+ edgeCases: {
166
+ emptyResponse: ProgrammaticMockConfig;
167
+ malformedEvents: RemoteMockConfig;
168
+ reconnection: RemoteMockConfig;
169
+ };
170
+ }
@@ -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,2 @@
1
+ export {};
2
+ //# sourceMappingURL=mock-types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mock-types.js","sourceRoot":"","sources":["../../src/mocks/mock-types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,40 @@
1
+ import type { AgentEvent, RunOptions } from '@a5c-ai/comm-adapter';
2
+ import type { MockStreamEvent, ProgrammaticMockBuilder, ProgrammaticMockConfig } from './mock-types.js';
3
+ export declare class ProgrammaticMockBuilderImpl implements ProgrammaticMockBuilder {
4
+ private config;
5
+ name(name: string): this;
6
+ withAuth(succeeds: boolean): this;
7
+ addEvents(events: MockStreamEvent[]): this;
8
+ addEvent(type: string, data: Record<string, unknown>, delayMs?: number): this;
9
+ addTextStream(text: string, chunkSize?: number, delayBetweenChunks?: number): this;
10
+ addToolCall(toolName: string, input: string, output: unknown, processingTimeMs?: number): this;
11
+ addThinking(thinkingContent: string, delayMs?: number): this;
12
+ withCost(inputTokens: number, outputTokens: number, thinkingTokens?: number): this;
13
+ withError(code: string, message: string, delayMs?: number): this;
14
+ build(): ProgrammaticMockConfig;
15
+ }
16
+ export declare class ProgrammaticMockEngine {
17
+ execute(config: ProgrammaticMockConfig, options: RunOptions): Promise<AsyncIterableIterator<AgentEvent>>;
18
+ private createEventStream;
19
+ }
20
+ export declare class ClaudeAgentSdkMock {
21
+ static basicSuccess(): ProgrammaticMockConfig;
22
+ static toolCalling(): ProgrammaticMockConfig;
23
+ static authFailure(): ProgrammaticMockConfig;
24
+ }
25
+ export declare class CodexSdkMock {
26
+ static basicSuccess(): ProgrammaticMockConfig;
27
+ static codeGeneration(): ProgrammaticMockConfig;
28
+ }
29
+ export declare class PiSdkMock {
30
+ static basicSuccess(): ProgrammaticMockConfig;
31
+ static webSearch(): ProgrammaticMockConfig;
32
+ }
33
+ export declare function createProgrammaticMockBuilder(): ProgrammaticMockBuilder;
34
+ export declare const programmaticMocks: {
35
+ claude: typeof ClaudeAgentSdkMock;
36
+ codex: typeof CodexSdkMock;
37
+ pi: typeof PiSdkMock;
38
+ engine: ProgrammaticMockEngine;
39
+ builder: typeof createProgrammaticMockBuilder;
40
+ };
@@ -0,0 +1 @@
1
+ {"version":3,"file":"programmatic-mocks.d.ts","sourceRoot":"","sources":["../../src/mocks/programmatic-mocks.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AACnE,OAAO,KAAK,EACV,eAAe,EACf,uBAAuB,EACvB,sBAAsB,EACvB,MAAM,iBAAiB,CAAC;AAmBzB,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;IAKxE,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,SAAK,EAAE,kBAAkB,SAAK,GAAG,IAAI;IAiB1E,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,gBAAgB,SAAM,GAAG,IAAI;IAU3F,WAAW,CAAC,eAAe,EAAE,MAAM,EAAE,OAAO,SAAM,GAAG,IAAI;IAQzD,QAAQ,CAAC,WAAW,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,cAAc,SAAI,GAAG,IAAI;IAM7E,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,SAAM,GAAG,IAAI;IAK7D,KAAK,IAAI,sBAAsB;CAOhC;AAED,qBAAa,sBAAsB;IAC3B,OAAO,CACX,MAAM,EAAE,sBAAsB,EAC9B,OAAO,EAAE,UAAU,GAClB,OAAO,CAAC,qBAAqB,CAAC,UAAU,CAAC,CAAC;YAI9B,iBAAiB;CAuEjC;AAED,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;AAED,wBAAgB,6BAA6B,IAAI,uBAAuB,CAEvE;AAED,eAAO,MAAM,iBAAiB;;;;;;CAM7B,CAAC"}
@@ -0,0 +1,229 @@
1
+ function delay(ms) {
2
+ return new Promise((resolve) => setTimeout(resolve, ms));
3
+ }
4
+ function generateRunId() {
5
+ return `mock_run_${Date.now()}_${Math.random().toString(36).substring(2, 9)}`;
6
+ }
7
+ function createBaseEvent(type, runId, agent = 'mock-agent') {
8
+ return {
9
+ timestamp: new Date().toISOString(),
10
+ runId,
11
+ type,
12
+ agent,
13
+ };
14
+ }
15
+ export class ProgrammaticMockBuilderImpl {
16
+ config = {
17
+ authSucceeds: true,
18
+ events: [],
19
+ startDelayMs: 0,
20
+ };
21
+ name(name) {
22
+ this.config.name = name;
23
+ return this;
24
+ }
25
+ withAuth(succeeds) {
26
+ this.config.authSucceeds = succeeds;
27
+ return this;
28
+ }
29
+ addEvents(events) {
30
+ this.config.events = [...(this.config.events || []), ...events];
31
+ return this;
32
+ }
33
+ addEvent(type, data, delayMs = 0) {
34
+ this.config.events = [...(this.config.events || []), { type, data, delayMs }];
35
+ return this;
36
+ }
37
+ addTextStream(text, chunkSize = 10, delayBetweenChunks = 50) {
38
+ const chunks = [];
39
+ let accumulated = '';
40
+ for (let i = 0; i < text.length; i += chunkSize) {
41
+ const chunk = text.slice(i, i + chunkSize);
42
+ accumulated += chunk;
43
+ chunks.push({
44
+ type: 'text_delta',
45
+ data: { delta: chunk, accumulated },
46
+ delayMs: i === 0 ? 100 : delayBetweenChunks,
47
+ });
48
+ }
49
+ return this.addEvents(chunks);
50
+ }
51
+ addToolCall(toolName, input, output, processingTimeMs = 200) {
52
+ const toolCallId = `tool_${Date.now()}_${Math.random().toString(36).substring(2, 6)}`;
53
+ return this.addEvents([
54
+ { type: 'tool_call_start', data: { toolCallId, toolName }, delayMs: 50 },
55
+ { type: 'tool_input_delta', data: { toolCallId, delta: input, inputAccumulated: input }, delayMs: 30 },
56
+ { type: 'tool_call_ready', data: { toolCallId, toolName, input }, delayMs: 20 },
57
+ { type: 'tool_result', data: { toolCallId, toolName, output, durationMs: processingTimeMs }, delayMs: processingTimeMs },
58
+ ]);
59
+ }
60
+ addThinking(thinkingContent, delayMs = 100) {
61
+ return this.addEvents([
62
+ { type: 'thinking_start', data: {}, delayMs: 50 },
63
+ { type: 'thinking_delta', data: { delta: thinkingContent, accumulated: thinkingContent }, delayMs },
64
+ { type: 'thinking_stop', data: { accumulated: thinkingContent }, delayMs: 30 },
65
+ ]);
66
+ }
67
+ withCost(inputTokens, outputTokens, thinkingTokens = 0) {
68
+ const totalUsd = (inputTokens * 0.015 / 1000) + (outputTokens * 0.075 / 1000) + (thinkingTokens * 0.015 / 1000);
69
+ this.config.cost = { inputTokens, outputTokens, thinkingTokens, totalUsd };
70
+ return this;
71
+ }
72
+ withError(code, message, delayMs = 100) {
73
+ this.config.simulateError = { errorCode: code, message, delayMs };
74
+ return this;
75
+ }
76
+ build() {
77
+ return {
78
+ authSucceeds: true,
79
+ events: [],
80
+ ...this.config,
81
+ };
82
+ }
83
+ }
84
+ export class ProgrammaticMockEngine {
85
+ async execute(config, options) {
86
+ return this.createEventStream(config, generateRunId(), options);
87
+ }
88
+ async *createEventStream(config, runId, options) {
89
+ try {
90
+ if (!config.authSucceeds) {
91
+ yield {
92
+ ...createBaseEvent('error', runId, options.agent),
93
+ code: 'AUTH_MISSING',
94
+ message: 'Mock authentication failed',
95
+ fatal: false,
96
+ recoverable: false,
97
+ };
98
+ return;
99
+ }
100
+ yield {
101
+ ...createBaseEvent('session_start', runId, options.agent),
102
+ sessionId: `mock_session_${runId}`,
103
+ turnCount: 0,
104
+ };
105
+ if (config.startDelayMs) {
106
+ await delay(config.startDelayMs);
107
+ }
108
+ if (config.simulateError) {
109
+ if (config.simulateError.delayMs) {
110
+ await delay(config.simulateError.delayMs);
111
+ }
112
+ yield {
113
+ ...createBaseEvent('error', runId, options.agent),
114
+ code: config.simulateError.errorCode,
115
+ message: config.simulateError.message,
116
+ fatal: true,
117
+ recoverable: false,
118
+ };
119
+ return;
120
+ }
121
+ for (const mockEvent of config.events) {
122
+ if (mockEvent.delayMs) {
123
+ await delay(mockEvent.delayMs);
124
+ }
125
+ yield {
126
+ ...createBaseEvent(mockEvent.type, runId, options.agent),
127
+ ...mockEvent.data,
128
+ };
129
+ }
130
+ if (config.cost) {
131
+ yield {
132
+ ...createBaseEvent('cost', runId, options.agent),
133
+ cost: config.cost,
134
+ };
135
+ }
136
+ yield {
137
+ ...createBaseEvent('message_stop', runId, options.agent),
138
+ };
139
+ }
140
+ catch (error) {
141
+ yield {
142
+ ...createBaseEvent('error', runId, options.agent),
143
+ code: 'INTERNAL',
144
+ message: error instanceof Error ? error.message : String(error),
145
+ fatal: true,
146
+ recoverable: false,
147
+ };
148
+ }
149
+ }
150
+ }
151
+ export class ClaudeAgentSdkMock {
152
+ static basicSuccess() {
153
+ return new ProgrammaticMockBuilderImpl()
154
+ .name('claude-agent-sdk-basic')
155
+ .withAuth(true)
156
+ .addThinking('I need to help the user with their request...')
157
+ .addTextStream('Hello! I can help you with that.')
158
+ .withCost(50, 20, 15)
159
+ .build();
160
+ }
161
+ static toolCalling() {
162
+ return new ProgrammaticMockBuilderImpl()
163
+ .name('claude-agent-sdk-tools')
164
+ .withAuth(true)
165
+ .addThinking('I should use the read_file tool to get the information...')
166
+ .addToolCall('read_file', '{"path": "/tmp/test.txt"}', 'File contents here')
167
+ .addTextStream('Based on the file contents, here is my response...')
168
+ .withCost(75, 45, 25)
169
+ .build();
170
+ }
171
+ static authFailure() {
172
+ return new ProgrammaticMockBuilderImpl()
173
+ .name('claude-agent-sdk-auth-fail')
174
+ .withAuth(false)
175
+ .build();
176
+ }
177
+ }
178
+ export class CodexSdkMock {
179
+ static basicSuccess() {
180
+ return new ProgrammaticMockBuilderImpl()
181
+ .name('codex-sdk-basic')
182
+ .withAuth(true)
183
+ .addTextStream('```python\\ndef hello():\\n print("Hello, World!")\\n```')
184
+ .withCost(40, 60)
185
+ .build();
186
+ }
187
+ static codeGeneration() {
188
+ return new ProgrammaticMockBuilderImpl()
189
+ .name('codex-sdk-codegen')
190
+ .withAuth(true)
191
+ .addToolCall('code_execute', '{"code": "print(\\"test\\")"}', 'test')
192
+ .addTextStream('The code executed successfully and produced the output above.')
193
+ .withCost(80, 35)
194
+ .build();
195
+ }
196
+ }
197
+ export class PiSdkMock {
198
+ static basicSuccess() {
199
+ return new ProgrammaticMockBuilderImpl()
200
+ .name('pi-sdk-basic')
201
+ .withAuth(true)
202
+ .addTextStream('I understand your question. Let me help you with that.')
203
+ .withCost(30, 25)
204
+ .build();
205
+ }
206
+ static webSearch() {
207
+ return new ProgrammaticMockBuilderImpl()
208
+ .name('pi-sdk-web-search')
209
+ .withAuth(true)
210
+ .addToolCall('search_web', '{"query": "latest news"}', [
211
+ { title: 'News Article 1', url: 'https://example.com/1' },
212
+ { title: 'News Article 2', url: 'https://example.com/2' },
213
+ ])
214
+ .addTextStream('Based on the search results, here are the latest news...')
215
+ .withCost(45, 40)
216
+ .build();
217
+ }
218
+ }
219
+ export function createProgrammaticMockBuilder() {
220
+ return new ProgrammaticMockBuilderImpl();
221
+ }
222
+ export const programmaticMocks = {
223
+ claude: ClaudeAgentSdkMock,
224
+ codex: CodexSdkMock,
225
+ pi: PiSdkMock,
226
+ engine: new ProgrammaticMockEngine(),
227
+ builder: createProgrammaticMockBuilder,
228
+ };
229
+ //# sourceMappingURL=programmatic-mocks.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"programmatic-mocks.js","sourceRoot":"","sources":["../../src/mocks/programmatic-mocks.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,43 @@
1
+ import { EventEmitter } from 'node:events';
2
+ import type { MockConnection, MockServerInfo, MockStreamEvent, RemoteMockBuilder, RemoteMockConfig } from './mock-types.js';
3
+ export declare class MockServer extends EventEmitter {
4
+ private info;
5
+ private readonly config;
6
+ private readonly connections;
7
+ private _started;
8
+ constructor(config: RemoteMockConfig);
9
+ start(): Promise<MockServerInfo>;
10
+ stop(): Promise<void>;
11
+ createConnection(connectionType: 'http' | 'websocket'): Promise<MockConnection>;
12
+ getInfo(): MockServerInfo;
13
+ getConnections(): MockConnection[];
14
+ }
15
+ export declare class RemoteMockBuilderImpl implements RemoteMockBuilder {
16
+ private config;
17
+ name(name: string): this;
18
+ withServer(serverConfig: RemoteMockConfig['server']): this;
19
+ withConnection(connectionConfig: RemoteMockConfig['connection']): this;
20
+ withWebSocket(wsConfig: RemoteMockConfig['websocket']): this;
21
+ withHttp(httpConfig: RemoteMockConfig['http']): this;
22
+ addEvents(events: MockStreamEvent[]): this;
23
+ withErrors(errors: RemoteMockConfig['simulateErrors']): this;
24
+ build(): RemoteMockConfig;
25
+ }
26
+ export declare class OpenCodeHttpMock {
27
+ static basicSuccess(): RemoteMockConfig;
28
+ static serverStartupFailure(): RemoteMockConfig;
29
+ static networkTimeout(): RemoteMockConfig;
30
+ }
31
+ export declare class CodexWebSocketMock {
32
+ static basicSuccess(): RemoteMockConfig;
33
+ static connectionDrop(): RemoteMockConfig;
34
+ static highThroughput(): RemoteMockConfig;
35
+ }
36
+ export declare function createRemoteMockBuilder(): RemoteMockBuilder;
37
+ export declare function createMockServer(config: RemoteMockConfig): MockServer;
38
+ export declare const remoteMocks: {
39
+ opencode: typeof OpenCodeHttpMock;
40
+ codex: typeof CodexWebSocketMock;
41
+ builder: typeof createRemoteMockBuilder;
42
+ server: typeof createMockServer;
43
+ };
@@ -0,0 +1 @@
1
+ {"version":3,"file":"remote-mocks.d.ts","sourceRoot":"","sources":["../../src/mocks/remote-mocks.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3C,OAAO,KAAK,EACV,cAAc,EACd,cAAc,EACd,eAAe,EACf,iBAAiB,EACjB,gBAAgB,EACjB,MAAM,iBAAiB,CAAC;AAmBzB,qBAAa,UAAW,SAAQ,YAAY;IAC1C,OAAO,CAAC,IAAI,CAAiB;IAC7B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAmB;IAC1C,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAqC;IACjE,OAAO,CAAC,QAAQ,CAAS;gBAEb,MAAM,EAAE,gBAAgB;IAY9B,KAAK,IAAI,OAAO,CAAC,cAAc,CAAC;IAkBhC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAarB,gBAAgB,CAAC,cAAc,EAAE,MAAM,GAAG,WAAW,GAAG,OAAO,CAAC,cAAc,CAAC;IAUrF,OAAO,IAAI,cAAc;IAIzB,cAAc,IAAI,cAAc,EAAE;CAGnC;AA2ID,qBAAa,qBAAsB,YAAW,iBAAiB;IAC7D,OAAO,CAAC,MAAM,CAEZ;IAEF,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAKxB,UAAU,CAAC,YAAY,EAAE,gBAAgB,CAAC,QAAQ,CAAC,GAAG,IAAI;IAK1D,cAAc,CAAC,gBAAgB,EAAE,gBAAgB,CAAC,YAAY,CAAC,GAAG,IAAI;IAKtE,aAAa,CAAC,QAAQ,EAAE,gBAAgB,CAAC,WAAW,CAAC,GAAG,IAAI;IAK5D,QAAQ,CAAC,UAAU,EAAE,gBAAgB,CAAC,MAAM,CAAC,GAAG,IAAI;IAKpD,SAAS,CAAC,MAAM,EAAE,eAAe,EAAE,GAAG,IAAI;IAK1C,UAAU,CAAC,MAAM,EAAE,gBAAgB,CAAC,gBAAgB,CAAC,GAAG,IAAI;IAK5D,KAAK,IAAI,gBAAgB;CAM1B;AAED,qBAAa,gBAAgB;IAC3B,MAAM,CAAC,YAAY,IAAI,gBAAgB;IAkBvC,MAAM,CAAC,oBAAoB,IAAI,gBAAgB;IAO/C,MAAM,CAAC,cAAc,IAAI,gBAAgB;CAQ1C;AAED,qBAAa,kBAAkB;IAC7B,MAAM,CAAC,YAAY,IAAI,gBAAgB;IAevC,MAAM,CAAC,cAAc,IAAI,gBAAgB;IAczC,MAAM,CAAC,cAAc,IAAI,gBAAgB;CAkB1C;AAED,wBAAgB,uBAAuB,IAAI,iBAAiB,CAE3D;AAED,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,gBAAgB,GAAG,UAAU,CAErE;AAED,eAAO,MAAM,WAAW;;;;;CAKvB,CAAC"}