@copilotkit/aimock 1.11.0 → 1.12.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 (117) hide show
  1. package/README.md +4 -2
  2. package/dist/a2a-types.d.cts.map +1 -1
  3. package/dist/a2a-types.d.ts.map +1 -1
  4. package/dist/agui-types.d.cts.map +1 -1
  5. package/dist/bedrock-converse.cjs +2 -0
  6. package/dist/bedrock-converse.cjs.map +1 -1
  7. package/dist/bedrock-converse.d.cts.map +1 -1
  8. package/dist/bedrock-converse.d.ts.map +1 -1
  9. package/dist/bedrock-converse.js +2 -0
  10. package/dist/bedrock-converse.js.map +1 -1
  11. package/dist/bedrock.cjs +2 -0
  12. package/dist/bedrock.cjs.map +1 -1
  13. package/dist/bedrock.d.cts.map +1 -1
  14. package/dist/bedrock.d.ts.map +1 -1
  15. package/dist/bedrock.js +2 -0
  16. package/dist/bedrock.js.map +1 -1
  17. package/dist/cohere.cjs +1 -0
  18. package/dist/cohere.cjs.map +1 -1
  19. package/dist/cohere.js +1 -0
  20. package/dist/cohere.js.map +1 -1
  21. package/dist/embeddings.cjs +2 -1
  22. package/dist/embeddings.cjs.map +1 -1
  23. package/dist/embeddings.js +2 -1
  24. package/dist/embeddings.js.map +1 -1
  25. package/dist/gemini.cjs +1 -0
  26. package/dist/gemini.cjs.map +1 -1
  27. package/dist/gemini.js +1 -0
  28. package/dist/gemini.js.map +1 -1
  29. package/dist/helpers.cjs +16 -0
  30. package/dist/helpers.cjs.map +1 -1
  31. package/dist/helpers.d.cts +6 -2
  32. package/dist/helpers.d.cts.map +1 -1
  33. package/dist/helpers.d.ts +6 -2
  34. package/dist/helpers.d.ts.map +1 -1
  35. package/dist/helpers.js +13 -1
  36. package/dist/helpers.js.map +1 -1
  37. package/dist/images.cjs +166 -0
  38. package/dist/images.cjs.map +1 -0
  39. package/dist/images.d.cts +11 -0
  40. package/dist/images.d.cts.map +1 -0
  41. package/dist/images.d.ts +11 -0
  42. package/dist/images.d.ts.map +1 -0
  43. package/dist/images.js +166 -0
  44. package/dist/images.js.map +1 -0
  45. package/dist/index.cjs +13 -0
  46. package/dist/index.d.cts +7 -3
  47. package/dist/index.d.ts +7 -3
  48. package/dist/index.js +6 -2
  49. package/dist/llmock.cjs +37 -1
  50. package/dist/llmock.cjs.map +1 -1
  51. package/dist/llmock.d.cts +5 -1
  52. package/dist/llmock.d.cts.map +1 -1
  53. package/dist/llmock.d.ts +5 -1
  54. package/dist/llmock.d.ts.map +1 -1
  55. package/dist/llmock.js +37 -1
  56. package/dist/llmock.js.map +1 -1
  57. package/dist/messages.cjs +1 -0
  58. package/dist/messages.cjs.map +1 -1
  59. package/dist/messages.js +1 -0
  60. package/dist/messages.js.map +1 -1
  61. package/dist/ollama.cjs +2 -0
  62. package/dist/ollama.cjs.map +1 -1
  63. package/dist/ollama.d.cts.map +1 -1
  64. package/dist/ollama.d.ts.map +1 -1
  65. package/dist/ollama.js +2 -0
  66. package/dist/ollama.js.map +1 -1
  67. package/dist/recorder.cjs +50 -7
  68. package/dist/recorder.cjs.map +1 -1
  69. package/dist/recorder.js +50 -7
  70. package/dist/recorder.js.map +1 -1
  71. package/dist/responses.cjs +1 -0
  72. package/dist/responses.cjs.map +1 -1
  73. package/dist/responses.js +1 -0
  74. package/dist/responses.js.map +1 -1
  75. package/dist/router.cjs +8 -0
  76. package/dist/router.cjs.map +1 -1
  77. package/dist/router.d.cts.map +1 -1
  78. package/dist/router.d.ts.map +1 -1
  79. package/dist/router.js +9 -0
  80. package/dist/router.js.map +1 -1
  81. package/dist/server.cjs +80 -3
  82. package/dist/server.cjs.map +1 -1
  83. package/dist/server.d.cts +2 -0
  84. package/dist/server.d.cts.map +1 -1
  85. package/dist/server.d.ts +2 -0
  86. package/dist/server.d.ts.map +1 -1
  87. package/dist/server.js +80 -3
  88. package/dist/server.js.map +1 -1
  89. package/dist/speech.cjs +144 -0
  90. package/dist/speech.cjs.map +1 -0
  91. package/dist/speech.d.cts +11 -0
  92. package/dist/speech.d.cts.map +1 -0
  93. package/dist/speech.d.ts +11 -0
  94. package/dist/speech.d.ts.map +1 -0
  95. package/dist/speech.js +144 -0
  96. package/dist/speech.js.map +1 -0
  97. package/dist/transcription.cjs +134 -0
  98. package/dist/transcription.cjs.map +1 -0
  99. package/dist/transcription.d.cts +11 -0
  100. package/dist/transcription.d.cts.map +1 -0
  101. package/dist/transcription.d.ts +11 -0
  102. package/dist/transcription.d.ts.map +1 -0
  103. package/dist/transcription.js +134 -0
  104. package/dist/transcription.js.map +1 -0
  105. package/dist/types.d.cts +44 -2
  106. package/dist/types.d.cts.map +1 -1
  107. package/dist/types.d.ts +44 -2
  108. package/dist/types.d.ts.map +1 -1
  109. package/dist/video.cjs +196 -0
  110. package/dist/video.cjs.map +1 -0
  111. package/dist/video.d.cts +14 -0
  112. package/dist/video.d.cts.map +1 -0
  113. package/dist/video.d.ts +14 -0
  114. package/dist/video.d.ts.map +1 -0
  115. package/dist/video.js +195 -0
  116. package/dist/video.js.map +1 -0
  117. package/package.json +2 -2
package/dist/video.js ADDED
@@ -0,0 +1,195 @@
1
+ import { flattenHeaders, getTestId, isErrorResponse, isVideoResponse } from "./helpers.js";
2
+ import { matchFixture } from "./router.js";
3
+ import { writeErrorResponse } from "./sse-writer.js";
4
+ import { applyChaos } from "./chaos.js";
5
+ import { proxyAndRecord } from "./recorder.js";
6
+
7
+ //#region src/video.ts
8
+ async function handleVideoCreate(req, res, raw, fixtures, journal, defaults, setCorsHeaders, videoStates) {
9
+ setCorsHeaders(res);
10
+ const path = req.url ?? "/v1/videos";
11
+ const method = req.method ?? "POST";
12
+ let videoReq;
13
+ try {
14
+ videoReq = JSON.parse(raw);
15
+ } catch {
16
+ journal.add({
17
+ method,
18
+ path,
19
+ headers: flattenHeaders(req.headers),
20
+ body: null,
21
+ response: {
22
+ status: 400,
23
+ fixture: null
24
+ }
25
+ });
26
+ writeErrorResponse(res, 400, JSON.stringify({ error: {
27
+ message: "Malformed JSON",
28
+ type: "invalid_request_error",
29
+ code: "invalid_json"
30
+ } }));
31
+ return;
32
+ }
33
+ const syntheticReq = {
34
+ model: videoReq.model ?? "sora-2",
35
+ messages: [{
36
+ role: "user",
37
+ content: videoReq.prompt
38
+ }],
39
+ _endpointType: "video"
40
+ };
41
+ const testId = getTestId(req);
42
+ const fixture = matchFixture(fixtures, syntheticReq, journal.getFixtureMatchCountsForTest(testId), defaults.requestTransform);
43
+ if (fixture) journal.incrementFixtureMatchCount(fixture, fixtures, testId);
44
+ if (applyChaos(res, fixture, defaults.chaos, req.headers, journal, {
45
+ method,
46
+ path,
47
+ headers: flattenHeaders(req.headers),
48
+ body: syntheticReq
49
+ }, defaults.registry, defaults.logger)) return;
50
+ if (!fixture) {
51
+ if (defaults.record) {
52
+ if (await proxyAndRecord(req, res, syntheticReq, "openai", req.url ?? "/v1/videos", fixtures, defaults, raw)) {
53
+ journal.add({
54
+ method,
55
+ path,
56
+ headers: flattenHeaders(req.headers),
57
+ body: syntheticReq,
58
+ response: {
59
+ status: res.statusCode ?? 200,
60
+ fixture: null
61
+ }
62
+ });
63
+ return;
64
+ }
65
+ }
66
+ const strictStatus = defaults.strict ? 503 : 404;
67
+ const strictMessage = defaults.strict ? "Strict mode: no fixture matched" : "No fixture matched";
68
+ journal.add({
69
+ method,
70
+ path,
71
+ headers: flattenHeaders(req.headers),
72
+ body: syntheticReq,
73
+ response: {
74
+ status: strictStatus,
75
+ fixture: null
76
+ }
77
+ });
78
+ writeErrorResponse(res, strictStatus, JSON.stringify({ error: {
79
+ message: strictMessage,
80
+ type: "invalid_request_error",
81
+ code: "no_fixture_match"
82
+ } }));
83
+ return;
84
+ }
85
+ const response = fixture.response;
86
+ if (isErrorResponse(response)) {
87
+ const status = response.status ?? 500;
88
+ journal.add({
89
+ method,
90
+ path,
91
+ headers: flattenHeaders(req.headers),
92
+ body: syntheticReq,
93
+ response: {
94
+ status,
95
+ fixture
96
+ }
97
+ });
98
+ writeErrorResponse(res, status, JSON.stringify(response));
99
+ return;
100
+ }
101
+ if (!isVideoResponse(response)) {
102
+ journal.add({
103
+ method,
104
+ path,
105
+ headers: flattenHeaders(req.headers),
106
+ body: syntheticReq,
107
+ response: {
108
+ status: 500,
109
+ fixture
110
+ }
111
+ });
112
+ writeErrorResponse(res, 500, JSON.stringify({ error: {
113
+ message: "Fixture response is not a video type",
114
+ type: "server_error"
115
+ } }));
116
+ return;
117
+ }
118
+ journal.add({
119
+ method,
120
+ path,
121
+ headers: flattenHeaders(req.headers),
122
+ body: syntheticReq,
123
+ response: {
124
+ status: 200,
125
+ fixture
126
+ }
127
+ });
128
+ const video = response.video;
129
+ const created_at = Math.floor(Date.now() / 1e3);
130
+ const stateKey = `${testId}:${video.id}`;
131
+ videoStates.set(stateKey, video);
132
+ if (video.status === "completed") {
133
+ res.writeHead(200, { "Content-Type": "application/json" });
134
+ res.end(JSON.stringify({
135
+ id: video.id,
136
+ status: video.status,
137
+ url: video.url,
138
+ created_at
139
+ }));
140
+ } else {
141
+ res.writeHead(200, { "Content-Type": "application/json" });
142
+ res.end(JSON.stringify({
143
+ id: video.id,
144
+ status: video.status,
145
+ created_at
146
+ }));
147
+ }
148
+ }
149
+ function handleVideoStatus(req, res, videoId, journal, setCorsHeaders, videoStates) {
150
+ setCorsHeaders(res);
151
+ const path = req.url ?? `/v1/videos/${videoId}`;
152
+ const method = req.method ?? "GET";
153
+ const stateKey = `${getTestId(req)}:${videoId}`;
154
+ const video = videoStates.get(stateKey);
155
+ if (!video) {
156
+ journal.add({
157
+ method,
158
+ path,
159
+ headers: flattenHeaders(req.headers),
160
+ body: null,
161
+ response: {
162
+ status: 404,
163
+ fixture: null
164
+ }
165
+ });
166
+ writeErrorResponse(res, 404, JSON.stringify({ error: {
167
+ message: `Video ${videoId} not found`,
168
+ type: "not_found"
169
+ } }));
170
+ return;
171
+ }
172
+ journal.add({
173
+ method,
174
+ path,
175
+ headers: flattenHeaders(req.headers),
176
+ body: null,
177
+ response: {
178
+ status: 200,
179
+ fixture: null
180
+ }
181
+ });
182
+ const created_at = Math.floor(Date.now() / 1e3);
183
+ const body = {
184
+ id: video.id,
185
+ status: video.status,
186
+ created_at
187
+ };
188
+ if (video.url) body.url = video.url;
189
+ res.writeHead(200, { "Content-Type": "application/json" });
190
+ res.end(JSON.stringify(body));
191
+ }
192
+
193
+ //#endregion
194
+ export { handleVideoCreate, handleVideoStatus };
195
+ //# sourceMappingURL=video.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"video.js","names":[],"sources":["../src/video.ts"],"sourcesContent":["import type * as http from \"node:http\";\nimport type { ChatCompletionRequest, Fixture, HandlerDefaults, VideoResponse } from \"./types.js\";\nimport { isVideoResponse, isErrorResponse, flattenHeaders, getTestId } from \"./helpers.js\";\nimport { matchFixture } from \"./router.js\";\nimport { writeErrorResponse } from \"./sse-writer.js\";\nimport type { Journal } from \"./journal.js\";\nimport { applyChaos } from \"./chaos.js\";\nimport { proxyAndRecord } from \"./recorder.js\";\n\ninterface VideoRequest {\n model?: string;\n prompt: string;\n [key: string]: unknown;\n}\n\n/** Stored video state for GET status checks. Key: `${testId}:${videoId}` */\nexport type VideoStateMap = Map<string, VideoResponse[\"video\"]>;\n\nexport async function handleVideoCreate(\n req: http.IncomingMessage,\n res: http.ServerResponse,\n raw: string,\n fixtures: Fixture[],\n journal: Journal,\n defaults: HandlerDefaults,\n setCorsHeaders: (res: http.ServerResponse) => void,\n videoStates: VideoStateMap,\n): Promise<void> {\n setCorsHeaders(res);\n const path = req.url ?? \"/v1/videos\";\n const method = req.method ?? \"POST\";\n\n let videoReq: VideoRequest;\n try {\n videoReq = JSON.parse(raw) as VideoRequest;\n } catch {\n journal.add({\n method,\n path,\n headers: flattenHeaders(req.headers),\n body: null,\n response: { status: 400, fixture: null },\n });\n writeErrorResponse(\n res,\n 400,\n JSON.stringify({\n error: { message: \"Malformed JSON\", type: \"invalid_request_error\", code: \"invalid_json\" },\n }),\n );\n return;\n }\n\n const syntheticReq: ChatCompletionRequest = {\n model: videoReq.model ?? \"sora-2\",\n messages: [{ role: \"user\", content: videoReq.prompt }],\n _endpointType: \"video\",\n };\n\n const testId = getTestId(req);\n const fixture = matchFixture(\n fixtures,\n syntheticReq,\n journal.getFixtureMatchCountsForTest(testId),\n defaults.requestTransform,\n );\n\n if (fixture) {\n journal.incrementFixtureMatchCount(fixture, fixtures, testId);\n }\n\n if (\n applyChaos(\n res,\n fixture,\n defaults.chaos,\n req.headers,\n journal,\n { method, path, headers: flattenHeaders(req.headers), body: syntheticReq },\n defaults.registry,\n defaults.logger,\n )\n )\n return;\n\n if (!fixture) {\n if (defaults.record) {\n const proxied = await proxyAndRecord(\n req,\n res,\n syntheticReq,\n \"openai\",\n req.url ?? \"/v1/videos\",\n fixtures,\n defaults,\n raw,\n );\n if (proxied) {\n journal.add({\n method,\n path,\n headers: flattenHeaders(req.headers),\n body: syntheticReq,\n response: { status: res.statusCode ?? 200, fixture: null },\n });\n return;\n }\n }\n\n const strictStatus = defaults.strict ? 503 : 404;\n const strictMessage = defaults.strict\n ? \"Strict mode: no fixture matched\"\n : \"No fixture matched\";\n journal.add({\n method,\n path,\n headers: flattenHeaders(req.headers),\n body: syntheticReq,\n response: { status: strictStatus, fixture: null },\n });\n writeErrorResponse(\n res,\n strictStatus,\n JSON.stringify({\n error: { message: strictMessage, type: \"invalid_request_error\", code: \"no_fixture_match\" },\n }),\n );\n return;\n }\n\n const response = fixture.response;\n\n if (isErrorResponse(response)) {\n const status = response.status ?? 500;\n journal.add({\n method,\n path,\n headers: flattenHeaders(req.headers),\n body: syntheticReq,\n response: { status, fixture },\n });\n writeErrorResponse(res, status, JSON.stringify(response));\n return;\n }\n\n if (!isVideoResponse(response)) {\n journal.add({\n method,\n path,\n headers: flattenHeaders(req.headers),\n body: syntheticReq,\n response: { status: 500, fixture },\n });\n writeErrorResponse(\n res,\n 500,\n JSON.stringify({\n error: { message: \"Fixture response is not a video type\", type: \"server_error\" },\n }),\n );\n return;\n }\n\n journal.add({\n method,\n path,\n headers: flattenHeaders(req.headers),\n body: syntheticReq,\n response: { status: 200, fixture },\n });\n\n const video = response.video;\n const created_at = Math.floor(Date.now() / 1000);\n\n // Store for GET status checks\n const stateKey = `${testId}:${video.id}`;\n videoStates.set(stateKey, video);\n\n if (video.status === \"completed\") {\n res.writeHead(200, { \"Content-Type\": \"application/json\" });\n res.end(JSON.stringify({ id: video.id, status: video.status, url: video.url, created_at }));\n } else {\n res.writeHead(200, { \"Content-Type\": \"application/json\" });\n res.end(JSON.stringify({ id: video.id, status: video.status, created_at }));\n }\n}\n\nexport function handleVideoStatus(\n req: http.IncomingMessage,\n res: http.ServerResponse,\n videoId: string,\n journal: Journal,\n setCorsHeaders: (res: http.ServerResponse) => void,\n videoStates: VideoStateMap,\n): void {\n setCorsHeaders(res);\n const path = req.url ?? `/v1/videos/${videoId}`;\n const method = req.method ?? \"GET\";\n\n const testId = getTestId(req);\n const stateKey = `${testId}:${videoId}`;\n const video = videoStates.get(stateKey);\n\n if (!video) {\n journal.add({\n method,\n path,\n headers: flattenHeaders(req.headers),\n body: null,\n response: { status: 404, fixture: null },\n });\n writeErrorResponse(\n res,\n 404,\n JSON.stringify({ error: { message: `Video ${videoId} not found`, type: \"not_found\" } }),\n );\n return;\n }\n\n journal.add({\n method,\n path,\n headers: flattenHeaders(req.headers),\n body: null,\n response: { status: 200, fixture: null },\n });\n\n const created_at = Math.floor(Date.now() / 1000);\n const body: Record<string, unknown> = {\n id: video.id,\n status: video.status,\n created_at,\n };\n if (video.url) body.url = video.url;\n\n res.writeHead(200, { \"Content-Type\": \"application/json\" });\n res.end(JSON.stringify(body));\n}\n"],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@copilotkit/aimock",
3
- "version": "1.11.0",
4
- "description": "Mock infrastructure for AI application testing — LLM APIs, MCP tools, A2A agents, vector databases, search, and more. Zero dependencies.",
3
+ "version": "1.12.0",
4
+ "description": "Mock infrastructure for AI application testing — LLM APIs, image generation, text-to-speech, transcription, video generation, MCP tools, A2A agents, AG-UI event streams, vector databases, search, rerank, and moderation. One package, one port, zero dependencies.",
5
5
  "license": "MIT",
6
6
  "repository": {
7
7
  "type": "git",