@copilotkit/aimock 1.39.0 → 1.40.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 (50) hide show
  1. package/.claude-plugin/marketplace.json +1 -1
  2. package/.claude-plugin/plugin.json +1 -1
  3. package/CHANGELOG.md +30 -0
  4. package/README.md +1 -0
  5. package/dist/agui-handler.d.cts.map +1 -1
  6. package/dist/agui-stub.d.cts +2 -2
  7. package/dist/agui-stub.d.ts +2 -2
  8. package/dist/agui-types.d.cts +66 -3
  9. package/dist/agui-types.d.cts.map +1 -1
  10. package/dist/agui-types.d.ts +66 -3
  11. package/dist/agui-types.d.ts.map +1 -1
  12. package/dist/config-loader.d.cts.map +1 -1
  13. package/dist/config-loader.d.ts.map +1 -1
  14. package/dist/helpers.cjs +8 -4
  15. package/dist/helpers.cjs.map +1 -1
  16. package/dist/helpers.d.cts.map +1 -1
  17. package/dist/helpers.d.ts.map +1 -1
  18. package/dist/helpers.js +8 -4
  19. package/dist/helpers.js.map +1 -1
  20. package/dist/index.d.cts +2 -2
  21. package/dist/index.d.ts +2 -2
  22. package/dist/openrouter-chat.cjs +41 -0
  23. package/dist/openrouter-chat.cjs.map +1 -1
  24. package/dist/openrouter-chat.js +41 -0
  25. package/dist/openrouter-chat.js.map +1 -1
  26. package/dist/recorder.cjs +77 -8
  27. package/dist/recorder.cjs.map +1 -1
  28. package/dist/recorder.d.cts.map +1 -1
  29. package/dist/recorder.d.ts.map +1 -1
  30. package/dist/recorder.js +77 -8
  31. package/dist/recorder.js.map +1 -1
  32. package/dist/server.cjs +46 -0
  33. package/dist/server.cjs.map +1 -1
  34. package/dist/server.d.cts.map +1 -1
  35. package/dist/server.d.ts.map +1 -1
  36. package/dist/server.js +46 -0
  37. package/dist/server.js.map +1 -1
  38. package/dist/stream-collapse.cjs +20 -6
  39. package/dist/stream-collapse.cjs.map +1 -1
  40. package/dist/stream-collapse.d.cts +16 -0
  41. package/dist/stream-collapse.d.cts.map +1 -1
  42. package/dist/stream-collapse.d.ts +16 -0
  43. package/dist/stream-collapse.d.ts.map +1 -1
  44. package/dist/stream-collapse.js +20 -6
  45. package/dist/stream-collapse.js.map +1 -1
  46. package/dist/types.d.cts +22 -3
  47. package/dist/types.d.cts.map +1 -1
  48. package/dist/types.d.ts +22 -3
  49. package/dist/types.d.ts.map +1 -1
  50. package/package.json +3 -2
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.cts","names":[],"sources":["../src/server.ts"],"sourcesContent":[],"mappings":";;;;;;;;;;;;UAyHiB,cAAA;EAAA,MAAA,EACP,MAAA,CAAK,MADgB;EAAA,OAAA,EAEpB,OAFoB;KACrB,EAAA,MAAK;UACJ,EAEC,eAFD;aAEC,EACG,aADH;qBACG,EACQ,qBADR;cACQ,EACP,cADO;eACP,EACC,eADD;;;AAorChB;;;;;UAAiB,eAAA;UACP;UACA;cACI;;iBAMQ,YAAA,WACV,qBACA,4BACD;;WAA+B;sBACtB,kBACjB,QAAQ"}
1
+ {"version":3,"file":"server.d.cts","names":[],"sources":["../src/server.ts"],"sourcesContent":[],"mappings":";;;;;;;;;;;;UAyHiB,cAAA;EAAA,MAAA,EACP,MAAA,CAAK,MADgB;EAAA,OAAA,EAEpB,OAFoB;KACrB,EAAA,MAAK;UACJ,EAEC,eAFD;aAEC,EACG,aADH;qBACG,EACQ,qBADR;cACQ,EACP,cADO;eACP,EACC,eADD;;;AA2rChB;;;;;UAAiB,eAAA;UACP;UACA;cACI;;iBAMQ,YAAA,WACV,qBACA,4BACD;;WAA+B;sBACtB,kBACjB,QAAQ"}
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","names":[],"sources":["../src/server.ts"],"sourcesContent":[],"mappings":";;;;;;;;;;;;UAyHiB,cAAA;EAAA,MAAA,EACP,MAAA,CAAK,MADgB;EAAA,OAAA,EAEpB,OAFoB;KACrB,EAAA,MAAK;UACJ,EAEC,eAFD;aAEC,EACG,aADH;qBACG,EACQ,qBADR;cACQ,EACP,cADO;eACP,EACC,eADD;;;AAorChB;;;;;UAAiB,eAAA;UACP;UACA;cACI;;iBAMQ,YAAA,WACV,qBACA,4BACD;;WAA+B;sBACtB,kBACjB,QAAQ"}
1
+ {"version":3,"file":"server.d.ts","names":[],"sources":["../src/server.ts"],"sourcesContent":[],"mappings":";;;;;;;;;;;;UAyHiB,cAAA;EAAA,MAAA,EACP,MAAA,CAAK,MADgB;EAAA,OAAA,EAEpB,OAFoB;KACrB,EAAA,MAAK;UACJ,EAEC,eAFD;aAEC,EACG,aADH;qBACG,EACQ,qBADR;cACQ,EACP,cADO;eACP,EACC,eADD;;;AA2rChB;;;;;UAAiB,eAAA;UACP;UACA;cACI;;iBAMQ,YAAA,WACV,qBACA,4BACD;;WAA+B;sBACtB,kBACjB,QAAQ"}
package/dist/server.js CHANGED
@@ -187,6 +187,11 @@ async function handleControlAPI(req, res, pathname, fixtures, journal, videoStat
187
187
  res.end(JSON.stringify(journal.getAll()));
188
188
  return true;
189
189
  }
190
+ if (subPath === "/fixtures" && req.method === "GET") {
191
+ res.writeHead(200, { "Content-Type": "application/json" });
192
+ res.end(JSON.stringify({ count: fixtures.length }));
193
+ return true;
194
+ }
190
195
  if (subPath === "/fixtures" && req.method === "POST") {
191
196
  let raw;
192
197
  try {
@@ -1853,7 +1858,48 @@ async function createServerWithResolvedAuth(fixtures, options, resolvedAuth, mou
1853
1858
  if (!socket.destroyed) socket.destroy();
1854
1859
  });
1855
1860
  });
1861
+ /**
1862
+ * Body bytes the platform already parsed onto `req` for an upgrade request.
1863
+ *
1864
+ * Node >= 26 delivers an upgrade request's body here and leaves `head`
1865
+ * empty; Node <= 24 leaves the body in `head` and ends `req` with nothing.
1866
+ * The stream has already ended in both cases, so this resolves on the next
1867
+ * tick either way — it never waits on the network.
1868
+ */
1869
+ function drainParsedRequestBody(req) {
1870
+ return new Promise((resolve) => {
1871
+ const chunks = [];
1872
+ let settled = false;
1873
+ const done = () => {
1874
+ if (settled) return;
1875
+ settled = true;
1876
+ resolve(Buffer.concat(chunks));
1877
+ };
1878
+ req.on("data", (c) => chunks.push(c));
1879
+ req.on("end", done);
1880
+ req.on("error", done);
1881
+ req.on("close", done);
1882
+ req.resume();
1883
+ });
1884
+ }
1856
1885
  async function handleUpgradeRequest(req, socket, head) {
1886
+ if ((req.headers.upgrade ?? "").toLowerCase() !== "websocket") {
1887
+ const parsedBody = await drainParsedRequestBody(req);
1888
+ const requestLine = `${req.method} ${req.url} HTTP/${req.httpVersion}\r\n`;
1889
+ const headerLines = [];
1890
+ for (let i = 0; i < req.rawHeaders.length; i += 2) {
1891
+ if (/^(?:upgrade|connection)$/i.test(req.rawHeaders[i])) continue;
1892
+ headerLines.push(`${req.rawHeaders[i]}: ${req.rawHeaders[i + 1]}`);
1893
+ }
1894
+ const rebuilt = Buffer.from(requestLine + headerLines.join("\r\n") + "\r\n\r\n");
1895
+ socket.unshift(Buffer.concat([
1896
+ rebuilt,
1897
+ parsedBody,
1898
+ head
1899
+ ]));
1900
+ server.emit("connection", socket);
1901
+ return;
1902
+ }
1857
1903
  const parsedUrl = new URL(req.url ?? "/", `http://${req.headers.host ?? "localhost"}`);
1858
1904
  let pathname = parsedUrl.pathname;
1859
1905
  if (!validateRequestApiKey(req, resolvedAuth.policy).ok) {