@ai-matrx/api 0.1.9 → 0.1.10

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 (135) hide show
  1. package/CHANGELOG.md +5 -0
  2. package/README.md +1 -1
  3. package/dist/account.d.cts +1 -1
  4. package/dist/account.d.ts +1 -1
  5. package/dist/agents.cjs +12 -12
  6. package/dist/agents.d.cts +1 -1
  7. package/dist/agents.d.ts +1 -1
  8. package/dist/agents.js +2 -2
  9. package/dist/ai.cjs +3 -3
  10. package/dist/ai.d.cts +1 -1
  11. package/dist/ai.d.ts +1 -1
  12. package/dist/ai.js +2 -2
  13. package/dist/apps.cjs +6 -6
  14. package/dist/apps.d.cts +1 -1
  15. package/dist/apps.d.ts +1 -1
  16. package/dist/apps.js +2 -2
  17. package/dist/architecture.cjs +11 -11
  18. package/dist/architecture.d.cts +1 -1
  19. package/dist/architecture.d.ts +1 -1
  20. package/dist/architecture.js +2 -2
  21. package/dist/audio.cjs +5 -5
  22. package/dist/audio.d.cts +1 -1
  23. package/dist/audio.d.ts +1 -1
  24. package/dist/audio.js +2 -2
  25. package/dist/chat.cjs +12 -12
  26. package/dist/chat.d.cts +1 -1
  27. package/dist/chat.d.ts +1 -1
  28. package/dist/chat.js +2 -2
  29. package/dist/{chunk-PIVTHTVR.js → chunk-FLANGLCG.js} +260 -36
  30. package/dist/{chunk-KIEAFMKB.js → chunk-PIPE5OML.js} +100 -46
  31. package/dist/{chunk-2SXAAKGV.cjs → chunk-PKYPPATQ.cjs} +100 -45
  32. package/dist/{chunk-PMGKZ4FT.cjs → chunk-SPASYIUH.cjs} +268 -34
  33. package/dist/code.cjs +7 -7
  34. package/dist/code.d.cts +1 -1
  35. package/dist/code.d.ts +1 -1
  36. package/dist/code.js +2 -2
  37. package/dist/commerce.d.cts +1 -1
  38. package/dist/commerce.d.ts +1 -1
  39. package/dist/communications.cjs +5 -5
  40. package/dist/communications.d.cts +1 -1
  41. package/dist/communications.d.ts +1 -1
  42. package/dist/communications.js +2 -2
  43. package/dist/computer.cjs +4 -4
  44. package/dist/computer.d.cts +1 -1
  45. package/dist/computer.d.ts +1 -1
  46. package/dist/computer.js +2 -2
  47. package/dist/content.cjs +5 -5
  48. package/dist/content.d.cts +1 -1
  49. package/dist/content.d.ts +1 -1
  50. package/dist/content.js +2 -2
  51. package/dist/crm.cjs +3 -3
  52. package/dist/crm.d.cts +1 -1
  53. package/dist/crm.d.ts +1 -1
  54. package/dist/crm.js +2 -2
  55. package/dist/data.d.cts +1 -1
  56. package/dist/data.d.ts +1 -1
  57. package/dist/education.cjs +5 -5
  58. package/dist/education.d.cts +1 -1
  59. package/dist/education.d.ts +1 -1
  60. package/dist/education.js +2 -2
  61. package/dist/files.cjs +21 -21
  62. package/dist/files.d.cts +1 -1
  63. package/dist/files.d.ts +1 -1
  64. package/dist/files.js +2 -2
  65. package/dist/human-resources.d.cts +1 -1
  66. package/dist/human-resources.d.ts +1 -1
  67. package/dist/{index-C3ZlP3BI.d.cts → index-Gj30ybjE.d.cts} +42 -3
  68. package/dist/{index-C3ZlP3BI.d.ts → index-Gj30ybjE.d.ts} +42 -3
  69. package/dist/index.cjs +183 -288
  70. package/dist/index.d.cts +129 -180
  71. package/dist/index.d.ts +129 -180
  72. package/dist/index.js +76 -206
  73. package/dist/integrations.cjs +4 -4
  74. package/dist/integrations.d.cts +1 -1
  75. package/dist/integrations.d.ts +1 -1
  76. package/dist/integrations.js +2 -2
  77. package/dist/intelligence.cjs +10 -8
  78. package/dist/intelligence.d.cts +13 -13
  79. package/dist/intelligence.d.ts +13 -13
  80. package/dist/intelligence.js +5 -3
  81. package/dist/{keys.generated-CK_C5UXG.d.cts → keys.generated-DZUiM-uA.d.cts} +5 -3
  82. package/dist/{keys.generated-CK_C5UXG.d.ts → keys.generated-DZUiM-uA.d.ts} +5 -3
  83. package/dist/knowledge.cjs +43 -43
  84. package/dist/knowledge.d.cts +13 -13
  85. package/dist/knowledge.d.ts +13 -13
  86. package/dist/knowledge.js +2 -2
  87. package/dist/legal.cjs +7 -7
  88. package/dist/legal.d.cts +1 -1
  89. package/dist/legal.d.ts +1 -1
  90. package/dist/legal.js +2 -2
  91. package/dist/marketing.cjs +77 -77
  92. package/dist/marketing.d.cts +27 -27
  93. package/dist/marketing.d.ts +27 -27
  94. package/dist/marketing.js +2 -2
  95. package/dist/masterwork.cjs +33 -33
  96. package/dist/masterwork.d.cts +1 -1
  97. package/dist/masterwork.d.ts +1 -1
  98. package/dist/masterwork.js +2 -2
  99. package/dist/media.cjs +12 -12
  100. package/dist/media.d.cts +1 -1
  101. package/dist/media.d.ts +1 -1
  102. package/dist/media.js +2 -2
  103. package/dist/net.cjs +19 -20
  104. package/dist/net.d.cts +41 -41
  105. package/dist/net.d.ts +41 -41
  106. package/dist/net.js +1 -2
  107. package/dist/platform.cjs +4 -4
  108. package/dist/platform.d.cts +1 -1
  109. package/dist/platform.d.ts +1 -1
  110. package/dist/platform.js +2 -2
  111. package/dist/publish.cjs +8 -8
  112. package/dist/publish.d.cts +1 -1
  113. package/dist/publish.d.ts +1 -1
  114. package/dist/publish.js +2 -2
  115. package/dist/schemas.d.cts +78 -15
  116. package/dist/schemas.d.ts +78 -15
  117. package/dist/stream.cjs +11 -11
  118. package/dist/stream.d.cts +1 -1
  119. package/dist/stream.d.ts +1 -1
  120. package/dist/stream.js +2 -2
  121. package/dist/types.cjs +2 -0
  122. package/dist/types.d.cts +49823 -0
  123. package/dist/types.d.ts +49823 -0
  124. package/dist/types.js +1 -0
  125. package/dist/web.cjs +27 -27
  126. package/dist/web.d.cts +17 -17
  127. package/dist/web.d.ts +17 -17
  128. package/dist/web.js +2 -2
  129. package/dist/workflows.cjs +14 -14
  130. package/dist/workflows.d.cts +23 -26
  131. package/dist/workflows.d.ts +23 -26
  132. package/dist/workflows.js +2 -2
  133. package/package.json +14 -4
  134. package/dist/chunk-FNIYADWI.cjs +0 -59
  135. package/dist/chunk-YTEOFGFC.js +0 -57
@@ -1,9 +1,92 @@
1
1
  'use strict';
2
2
 
3
- var chunk2SXAAKGV_cjs = require('./chunk-2SXAAKGV.cjs');
3
+ var chunkPKYPPATQ_cjs = require('./chunk-PKYPPATQ.cjs');
4
4
  var uuid = require('@ai-matrx/kit/uuid');
5
5
  var credentials = require('@ai-matrx/auth/credentials');
6
6
 
7
+ // src/core/protocol.ts
8
+ var MATRX_AI_API_VERSION_DEFAULT = "v2";
9
+ var V2_COVERED_AI_PATH_TEMPLATES = [
10
+ "/ai/manual",
11
+ "/ai/chat",
12
+ "/ai/agents/{agent_id}",
13
+ "/ai/agent/{agent_id}",
14
+ // singular alias — behaves identically
15
+ "/ai/conversations/{conversation_id}",
16
+ "/ai/conversation/{conversation_id}",
17
+ // singular alias
18
+ "/ai/prompts/{prompt_id}",
19
+ // saved-prompt execution
20
+ "/ai/mandates/{mandate_key}"
21
+ // THE MANDATE DOOR — `/v2` sibling exists (routers/v2.py)
22
+ ];
23
+ function toV2Path(path) {
24
+ const withLead = path.startsWith("/") ? path : `/${path}`;
25
+ if (withLead.startsWith("/api/")) {
26
+ const rest = withLead.slice("/api".length);
27
+ return rest.startsWith("/v2/") ? withLead : `/api/v2${rest}`;
28
+ }
29
+ return withLead.startsWith("/v2/") ? withLead : `/v2${withLead}`;
30
+ }
31
+ var COVERED_INTERPOLATED_PATH = [
32
+ /^(?:\/api)?\/ai\/manual$/,
33
+ /^(?:\/api)?\/ai\/chat$/,
34
+ /^(?:\/api)?\/ai\/agents\/[^/]+$/,
35
+ /^(?:\/api)?\/ai\/agent\/[^/]+$/,
36
+ /^(?:\/api)?\/ai\/conversations\/[^/]+$/,
37
+ /^(?:\/api)?\/ai\/conversation\/[^/]+$/,
38
+ /^(?:\/api)?\/ai\/prompts\/[^/]+$/,
39
+ // `/warm` etc. deliberately don't match
40
+ /^(?:\/api)?\/ai\/mandates\/[^/]+$/
41
+ // the mandate door
42
+ ];
43
+ function isCoveredAiPath(path) {
44
+ return COVERED_INTERPOLATED_PATH.some((re) => re.test(path));
45
+ }
46
+ function isV2Path(pathOrUrl) {
47
+ return /\/v2\/ai\//.test(pathOrUrl);
48
+ }
49
+ function toV1FallbackUrl(url) {
50
+ return url.replace(/\/v2\/ai\//, "/ai/");
51
+ }
52
+ function applyAiApiVersion(path, version) {
53
+ if (version !== "v2") return path;
54
+ return isCoveredAiPath(path) ? toV2Path(path) : path;
55
+ }
56
+ async function fetchWithMatrxProtocolFallback(url, init, opts = {}) {
57
+ const { onDowngrade, ...fetchOpts } = opts;
58
+ const logDowngrade = (reason, status2) => {
59
+ console.warn(
60
+ `[matrx] ai_v2_downgrade \u2192 retrying on v1. v2=${url} reason=${reason}`
61
+ );
62
+ onDowngrade?.({ url, reason, ...status2 !== void 0 ? { status: status2 } : {} });
63
+ };
64
+ if (!isV2Path(url)) return chunkPKYPPATQ_cjs.resilientFetch(url, init, fetchOpts);
65
+ let result;
66
+ try {
67
+ result = await chunkPKYPPATQ_cjs.resilientFetch(url, init, fetchOpts);
68
+ } catch (err) {
69
+ const isAbort = chunkPKYPPATQ_cjs.isNetError(err) && err.code === "aborted" || err instanceof Error && err.name === "AbortError";
70
+ if (isAbort) throw err;
71
+ logDowngrade(String(err));
72
+ return chunkPKYPPATQ_cjs.resilientFetch(toV1FallbackUrl(url), init, fetchOpts);
73
+ }
74
+ const status = result.response.status;
75
+ if (status === 404 || status === 405 || status >= 500) {
76
+ logDowngrade(`HTTP ${status}`, status);
77
+ return chunkPKYPPATQ_cjs.resilientFetch(toV1FallbackUrl(url), init, fetchOpts);
78
+ }
79
+ return result;
80
+ }
81
+ function aiVersionPathOverrides(version) {
82
+ if (version !== "v2") return {};
83
+ const map = {};
84
+ for (const template of V2_COVERED_AI_PATH_TEMPLATES) {
85
+ map[template] = toV2Path(template);
86
+ }
87
+ return map;
88
+ }
89
+
7
90
  // src/core/backend-errors.ts
8
91
  var BackendApiError = class extends Error {
9
92
  /** Machine-readable error code */
@@ -824,7 +907,167 @@ var DEPLOYMENTS = {
824
907
  }
825
908
  };
826
909
  var DOMAINS = ["account", "agents", "ai", "apps", "architecture", "audio", "chat", "code", "commerce", "communications", "computer", "content", "crm", "data", "education", "files", "human-resources", "integrations", "intelligence", "knowledge", "legal", "marketing", "masterwork", "media", "platform", "publish", "web", "workflows"];
910
+ var SESSION_READY_TIMEOUT_MS = 3e3;
827
911
  var DEFAULT_CONNECT_TIMEOUT_MS = 15e3;
912
+ function isBodyInit(body) {
913
+ return typeof body === "string" || typeof Blob !== "undefined" && body instanceof Blob || typeof FormData !== "undefined" && body instanceof FormData || typeof URLSearchParams !== "undefined" && body instanceof URLSearchParams || body instanceof ArrayBuffer || ArrayBuffer.isView(body) || typeof ReadableStream !== "undefined" && body instanceof ReadableStream;
914
+ }
915
+ async function waitForSessionReady(credentials, timeoutMs = SESSION_READY_TIMEOUT_MS) {
916
+ const ready = credentials?.ready;
917
+ if (!ready) return;
918
+ let timer;
919
+ try {
920
+ await Promise.race([
921
+ ready.call(credentials).catch(() => void 0),
922
+ new Promise((resolve) => {
923
+ timer = setTimeout(resolve, Math.max(0, timeoutMs));
924
+ })
925
+ ]);
926
+ } finally {
927
+ if (timer !== void 0) clearTimeout(timer);
928
+ }
929
+ }
930
+ function headerBag(headers) {
931
+ return { ...headers ?? {} };
932
+ }
933
+ function hasHeader(headers, name) {
934
+ const lower = name.toLowerCase();
935
+ return Object.keys(headers).some((key) => key.toLowerCase() === lower);
936
+ }
937
+ function encodeBody(method, body, headers) {
938
+ const upper = method.toUpperCase();
939
+ if (body === void 0 || upper === "GET" || upper === "HEAD") return void 0;
940
+ if (isBodyInit(body)) return body;
941
+ if (!hasHeader(headers, "content-type")) headers["Content-Type"] = "application/json";
942
+ return JSON.stringify(body);
943
+ }
944
+ function bodySize(body) {
945
+ if (body === void 0) return 0;
946
+ if (typeof body === "string") return new TextEncoder().encode(body).byteLength;
947
+ if (typeof Blob !== "undefined" && body instanceof Blob) return body.size;
948
+ if (body instanceof ArrayBuffer) return body.byteLength;
949
+ if (ArrayBuffer.isView(body)) return body.byteLength;
950
+ return 0;
951
+ }
952
+ function parseXhrHeaders(raw) {
953
+ const headers = new Headers();
954
+ for (const line of raw.trim().split(/[\r\n]+/)) {
955
+ const index = line.indexOf(":");
956
+ if (index <= 0) continue;
957
+ try {
958
+ headers.append(line.slice(0, index).trim(), line.slice(index + 1).trim());
959
+ } catch {
960
+ }
961
+ }
962
+ return headers;
963
+ }
964
+ function sendWithXhr(url, init, signal, totalTimeoutMs, onUploadProgress) {
965
+ const controller = new AbortController();
966
+ return new Promise((resolve, reject) => {
967
+ const xhr = new XMLHttpRequest();
968
+ xhr.open(init.method, url, true);
969
+ xhr.responseType = "arraybuffer";
970
+ for (const [name, value] of Object.entries(init.headers)) xhr.setRequestHeader(name, value);
971
+ if (totalTimeoutMs !== null && totalTimeoutMs > 0) xhr.timeout = totalTimeoutMs;
972
+ let lastLoaded = 0;
973
+ xhr.upload.onprogress = (event) => {
974
+ const loaded = Math.max(lastLoaded, event.loaded);
975
+ lastLoaded = loaded;
976
+ onUploadProgress({ loaded, total: event.lengthComputable ? event.total : 0 });
977
+ };
978
+ const onAbort = () => xhr.abort();
979
+ signal?.addEventListener("abort", onAbort, { once: true });
980
+ controller.signal.addEventListener("abort", onAbort, { once: true });
981
+ const cleanup = () => signal?.removeEventListener("abort", onAbort);
982
+ xhr.onload = () => {
983
+ cleanup();
984
+ const status = xhr.status === 0 ? 200 : xhr.status;
985
+ const nullBody = status === 204 || status === 205 || status === 304;
986
+ const response = new Response(nullBody ? null : xhr.response, {
987
+ status,
988
+ statusText: xhr.statusText,
989
+ headers: parseXhrHeaders(xhr.getAllResponseHeaders())
990
+ });
991
+ resolve({ response, controller });
992
+ };
993
+ xhr.onerror = () => {
994
+ cleanup();
995
+ reject(new TypeError(`Network failure uploading to ${url}`));
996
+ };
997
+ xhr.ontimeout = () => {
998
+ cleanup();
999
+ reject(new DOMException(`Upload to ${url} exceeded ${totalTimeoutMs}ms`, "TimeoutError"));
1000
+ };
1001
+ xhr.onabort = () => {
1002
+ cleanup();
1003
+ reject(new DOMException("The upload was cancelled.", "AbortError"));
1004
+ };
1005
+ if (signal?.aborted) {
1006
+ xhr.abort();
1007
+ return;
1008
+ }
1009
+ xhr.send(init.body ?? null);
1010
+ });
1011
+ }
1012
+ async function sendOnWire(request, auth = {}) {
1013
+ const method = request.method.toUpperCase();
1014
+ const headers = headerBag(request.headers);
1015
+ const body = encodeBody(method, request.body, headers);
1016
+ await waitForSessionReady(auth.credentials, auth.readyTimeoutMs);
1017
+ const credentialHeaders = auth.credentials ? credentials.credentialToHeaders(await auth.credentials.get()) : {};
1018
+ const attempt = (sendHeaders) => {
1019
+ if (request.signal?.aborted) return Promise.reject(new chunkPKYPPATQ_cjs.AbortedError(request.signal.reason));
1020
+ const merged = { ...sendHeaders };
1021
+ if (request.onUploadProgress && body !== void 0) {
1022
+ if (typeof XMLHttpRequest !== "undefined" && !(typeof ReadableStream !== "undefined" && body instanceof ReadableStream)) {
1023
+ return sendWithXhr(
1024
+ request.url,
1025
+ { method, headers: merged, body },
1026
+ request.signal,
1027
+ request.totalTimeoutMs ?? null,
1028
+ request.onUploadProgress
1029
+ );
1030
+ }
1031
+ }
1032
+ return fetchWithMatrxProtocolFallback(
1033
+ request.url,
1034
+ { method, headers: merged, ...body !== void 0 ? { body } : {} },
1035
+ {
1036
+ ...request.signal ? { signal: request.signal } : {},
1037
+ connectTimeoutMs: request.connectTimeoutMs ?? DEFAULT_CONNECT_TIMEOUT_MS,
1038
+ totalTimeoutMs: request.totalTimeoutMs !== void 0 ? request.totalTimeoutMs : null,
1039
+ throwOnHttpError: false,
1040
+ ...request.onProtocolDowngrade ? { onDowngrade: request.onProtocolDowngrade } : {}
1041
+ }
1042
+ ).then((result) => {
1043
+ if (request.onUploadProgress && body !== void 0) {
1044
+ const total = bodySize(body);
1045
+ request.onUploadProgress({ loaded: total, total });
1046
+ }
1047
+ return result;
1048
+ });
1049
+ };
1050
+ const over = Object.fromEntries(
1051
+ Object.entries(request.overHeaders ?? {}).filter(([name]) => name.toLowerCase() !== "content-type")
1052
+ );
1053
+ const firstHeaders = { ...headers, ...credentialHeaders, ...over };
1054
+ const idempotent = method === "GET" || method === "HEAD";
1055
+ const attempts = Math.max(1, request.retryAttempts ?? 1);
1056
+ const first = idempotent && attempts > 1 && !request.stream ? await chunkPKYPPATQ_cjs.withRetry(() => attempt(firstHeaders), {
1057
+ attempts,
1058
+ retryOn: chunkPKYPPATQ_cjs.isTransportFailure,
1059
+ ...request.signal ? { signal: request.signal } : {}
1060
+ }) : await attempt(firstHeaders);
1061
+ if (first.response.status !== 401 || !auth.refreshCredentials) return first;
1062
+ if (!await auth.refreshCredentials()) return first;
1063
+ await first.response.body?.cancel().catch(() => void 0);
1064
+ const retryHeaders = { ...headers };
1065
+ Object.assign(retryHeaders, auth.credentials ? credentials.credentialToHeaders(await auth.credentials.get()) : {}, over);
1066
+ return attempt(retryHeaders);
1067
+ }
1068
+
1069
+ // src/api.ts
1070
+ var DEFAULT_CONNECT_TIMEOUT_MS2 = 15e3;
828
1071
  function defaultRequestId() {
829
1072
  const c = globalThis.crypto;
830
1073
  if (c?.randomUUID) return c.randomUUID();
@@ -853,9 +1096,6 @@ function queryString(query) {
853
1096
  }
854
1097
  return parts.length ? `?${parts.join("&")}` : "";
855
1098
  }
856
- function isBodyInit(body) {
857
- return typeof body === "string" || typeof Blob !== "undefined" && body instanceof Blob || typeof FormData !== "undefined" && body instanceof FormData || typeof URLSearchParams !== "undefined" && body instanceof URLSearchParams || body instanceof ArrayBuffer || ArrayBuffer.isView(body) || typeof ReadableStream !== "undefined" && body instanceof ReadableStream;
858
- }
859
1099
  function acceptFor(stream) {
860
1100
  switch (stream) {
861
1101
  case "ndjson":
@@ -921,43 +1161,27 @@ function createApi(options = {}) {
921
1161
  Accept: acceptFor(op.s),
922
1162
  [credentials.MATRX_HEADERS.requestId]: requestId
923
1163
  };
924
- let body;
925
- if (args?.body !== void 0 && op.m !== "GET" && op.m !== "HEAD") {
926
- if (isBodyInit(args.body)) {
927
- body = args.body;
928
- } else {
929
- body = JSON.stringify(args.body);
930
- headers["Content-Type"] = "application/json";
931
- }
932
- }
933
- const credentialHeaders = credentials.credentialToHeaders(await credentials$1.get());
934
- Object.assign(headers, credentialHeaders);
935
1164
  if (orgId !== null) headers[credentials.MATRX_HEADERS.organization] = orgId;
936
1165
  options.onRequest?.({ operation: op.n, method: op.m, url, requestId, deployment: op.d });
937
- const attempt = (sendHeaders = headers) => chunk2SXAAKGV_cjs.resilientFetch(
938
- url,
939
- { method: op.m, headers: sendHeaders, ...body !== void 0 ? { body } : {} },
1166
+ const { response, controller } = await sendOnWire(
940
1167
  {
1168
+ url,
1169
+ method: op.m,
1170
+ headers,
1171
+ body: args?.body,
941
1172
  ...call?.signal ? { signal: call.signal } : {},
942
- connectTimeoutMs: call?.connectTimeoutMs ?? options.connectTimeoutMs ?? DEFAULT_CONNECT_TIMEOUT_MS,
1173
+ connectTimeoutMs: call?.connectTimeoutMs ?? options.connectTimeoutMs ?? DEFAULT_CONNECT_TIMEOUT_MS2,
943
1174
  totalTimeoutMs: call?.totalTimeoutMs !== void 0 ? call.totalTimeoutMs : options.totalTimeoutMs ?? null,
944
- throwOnHttpError: false
1175
+ stream: Boolean(op.s),
1176
+ retryAttempts,
1177
+ ...call?.onUploadProgress ? { onUploadProgress: call.onUploadProgress } : {}
1178
+ },
1179
+ {
1180
+ credentials: credentials$1,
1181
+ ...options.readyTimeoutMs !== void 0 ? { readyTimeoutMs: options.readyTimeoutMs } : {},
1182
+ ...options.refreshCredentials ? { refreshCredentials: options.refreshCredentials } : {}
945
1183
  }
946
1184
  );
947
- const idempotent = op.m === "GET" || op.m === "HEAD";
948
- const { response, controller } = idempotent && retryAttempts > 1 && !op.s ? await chunk2SXAAKGV_cjs.withRetry(() => attempt(), {
949
- attempts: retryAttempts,
950
- retryOn: chunk2SXAAKGV_cjs.isTransportFailure,
951
- ...call?.signal ? { signal: call.signal } : {}
952
- }) : await attempt();
953
- if (response.status === 401 && options.refreshCredentials && await options.refreshCredentials()) {
954
- const retryHeaders = { ...headers };
955
- for (const name of Object.keys(credentialHeaders)) delete retryHeaders[name];
956
- Object.assign(retryHeaders, credentials.credentialToHeaders(await credentials$1.get()));
957
- const retried = await attempt(retryHeaders);
958
- if (!retried.response.ok) throw await errorFrom(retried.response, interpolate(op.p, args?.path));
959
- return { response: retried.response, requestId, controller: retried.controller };
960
- }
961
1185
  if (!response.ok) throw await errorFrom(response, interpolate(op.p, args?.path));
962
1186
  return { response, requestId, controller };
963
1187
  };
@@ -1029,9 +1253,13 @@ exports.CONTRACT_SHA256 = CONTRACT_SHA256;
1029
1253
  exports.DEFAULT_MATRX_NDJSON_READ_AHEAD = DEFAULT_MATRX_NDJSON_READ_AHEAD;
1030
1254
  exports.DEPLOYMENTS = DEPLOYMENTS;
1031
1255
  exports.DOMAINS = DOMAINS;
1256
+ exports.MATRX_AI_API_VERSION_DEFAULT = MATRX_AI_API_VERSION_DEFAULT;
1032
1257
  exports.MatrxApiError = MatrxApiError;
1033
1258
  exports.OrganizationContextError = OrganizationContextError;
1034
1259
  exports.StreamTransportError = StreamTransportError;
1260
+ exports.V2_COVERED_AI_PATH_TEMPLATES = V2_COVERED_AI_PATH_TEMPLATES;
1261
+ exports.aiVersionPathOverrides = aiVersionPathOverrides;
1262
+ exports.applyAiApiVersion = applyAiApiVersion;
1035
1263
  exports.applyOrganizationContextHeader = applyOrganizationContextHeader;
1036
1264
  exports.assertOrganizationMatchesOperation = assertOrganizationMatchesOperation;
1037
1265
  exports.assertQueryOrganizationMatchesContext = assertQueryOrganizationMatchesContext;
@@ -1042,9 +1270,12 @@ exports.createOrganizationOperation = createOrganizationOperation;
1042
1270
  exports.describeBackendFailure = describeBackendFailure;
1043
1271
  exports.extractMatrxErrorCode = extractMatrxErrorCode;
1044
1272
  exports.extractMatrxErrorMessage = extractMatrxErrorMessage;
1273
+ exports.fetchWithMatrxProtocolFallback = fetchWithMatrxProtocolFallback;
1045
1274
  exports.getUserMessage = getUserMessage;
1275
+ exports.isCoveredAiPath = isCoveredAiPath;
1046
1276
  exports.isGenericUserMessage = isGenericUserMessage;
1047
1277
  exports.isStreamTransportLost = isStreamTransportLost;
1278
+ exports.isV2Path = isV2Path;
1048
1279
  exports.normalizeMatrxStreamEnvelope = normalizeMatrxStreamEnvelope;
1049
1280
  exports.openJsonOrStream = openJsonOrStream;
1050
1281
  exports.openStream = openStream;
@@ -1057,4 +1288,7 @@ exports.parseStreamError = parseStreamError;
1057
1288
  exports.readMatrxNdjsonStream = readMatrxNdjsonStream;
1058
1289
  exports.readMatrxSseStream = readMatrxSseStream;
1059
1290
  exports.requireOrganizationContext = requireOrganizationContext;
1291
+ exports.sendOnWire = sendOnWire;
1292
+ exports.toV1FallbackUrl = toV1FallbackUrl;
1293
+ exports.toV2Path = toV2Path;
1060
1294
  exports.unwrapUpstreamError = unwrapUpstreamError;
package/dist/code.cjs CHANGED
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
- var chunkPMGKZ4FT_cjs = require('./chunk-PMGKZ4FT.cjs');
4
- require('./chunk-2SXAAKGV.cjs');
3
+ var chunkSPASYIUH_cjs = require('./chunk-SPASYIUH.cjs');
4
+ require('./chunk-PKYPPATQ.cjs');
5
5
 
6
6
  // src/generated/code.ts
7
7
  var $codingSessionBridge = { m: "POST", p: "/coding-sessions/bridge", d: "aidream", a: "user", o: "exempt", n: "code.coding_session_bridge" };
@@ -46,7 +46,7 @@ function claudeManagedCapabilities(api, args, options) {
46
46
  }
47
47
  var $claudeManagedStream = { m: "POST", p: "/coding-sessions/claude/stream", d: "aidream", a: "user", o: "required", s: "ndjson", n: "code.claude_managed_stream" };
48
48
  function claudeManagedStream(api, args, options) {
49
- return chunkPMGKZ4FT_cjs.openStream(api, $claudeManagedStream, args, options);
49
+ return chunkSPASYIUH_cjs.openStream(api, $claudeManagedStream, args, options);
50
50
  }
51
51
  var $cancelClaudeManagedRuntime = { m: "POST", p: "/coding-sessions/claude/runtimes/{runtime_id}/cancel", d: "aidream", a: "user", o: "required", n: "code.cancel_claude_managed_runtime" };
52
52
  function cancelClaudeManagedRuntime(api, args, options) {
@@ -58,7 +58,7 @@ function codexManagedCapabilities(api, args, options) {
58
58
  }
59
59
  var $codexManagedStream = { m: "POST", p: "/coding-sessions/codex/stream", d: "aidream", a: "user", o: "required", s: "ndjson", n: "code.codex_managed_stream" };
60
60
  function codexManagedStream(api, args, options) {
61
- return chunkPMGKZ4FT_cjs.openStream(api, $codexManagedStream, args, options);
61
+ return chunkSPASYIUH_cjs.openStream(api, $codexManagedStream, args, options);
62
62
  }
63
63
  var $cancelCodexManagedRuntime = { m: "POST", p: "/coding-sessions/codex/runtimes/{runtime_id}/cancel", d: "aidream", a: "user", o: "required", n: "code.cancel_codex_managed_runtime" };
64
64
  function cancelCodexManagedRuntime(api, args, options) {
@@ -134,7 +134,7 @@ function claudeManagedCapabilitiesOnHostedBox(api, args, options) {
134
134
  }
135
135
  var $claudeManagedStreamOnHostedBox = { m: "POST", p: "/coding-sessions/claude/stream", d: "hosted-box", a: "user", o: "required", s: "ndjson", n: "code.claude_managed_stream" };
136
136
  function claudeManagedStreamOnHostedBox(api, args, options) {
137
- return chunkPMGKZ4FT_cjs.openStream(api, $claudeManagedStreamOnHostedBox, args, options);
137
+ return chunkSPASYIUH_cjs.openStream(api, $claudeManagedStreamOnHostedBox, args, options);
138
138
  }
139
139
  var $cancelClaudeManagedRuntimeOnHostedBox = { m: "POST", p: "/coding-sessions/claude/runtimes/{runtime_id}/cancel", d: "hosted-box", a: "user", o: "required", n: "code.cancel_claude_managed_runtime" };
140
140
  function cancelClaudeManagedRuntimeOnHostedBox(api, args, options) {
@@ -146,7 +146,7 @@ function codexManagedCapabilitiesOnHostedBox(api, args, options) {
146
146
  }
147
147
  var $codexManagedStreamOnHostedBox = { m: "POST", p: "/coding-sessions/codex/stream", d: "hosted-box", a: "user", o: "required", s: "ndjson", n: "code.codex_managed_stream" };
148
148
  function codexManagedStreamOnHostedBox(api, args, options) {
149
- return chunkPMGKZ4FT_cjs.openStream(api, $codexManagedStreamOnHostedBox, args, options);
149
+ return chunkSPASYIUH_cjs.openStream(api, $codexManagedStreamOnHostedBox, args, options);
150
150
  }
151
151
  var $cancelCodexManagedRuntimeOnHostedBox = { m: "POST", p: "/coding-sessions/codex/runtimes/{runtime_id}/cancel", d: "hosted-box", a: "user", o: "required", n: "code.cancel_codex_managed_runtime" };
152
152
  function cancelCodexManagedRuntimeOnHostedBox(api, args, options) {
@@ -370,7 +370,7 @@ function runtimeResumable(api, args, options) {
370
370
  }
371
371
  var $runtimeEvents = { m: "GET", p: "/coding-session/runtime/{runtime_id}/events", d: "matrx-local", a: "loopback_token", o: "exempt", s: "sse", n: "code.runtime_events" };
372
372
  function runtimeEvents(api, args, options) {
373
- return chunkPMGKZ4FT_cjs.openStream(api, $runtimeEvents, args, options);
373
+ return chunkSPASYIUH_cjs.openStream(api, $runtimeEvents, args, options);
374
374
  }
375
375
  var $getCodexUsageAllowance = { m: "GET", p: "/codex-usage/allowance", d: "matrx-local", a: "loopback_token", o: "exempt", n: "code.get_codex_usage_allowance" };
376
376
  function getCodexUsageAllowance(api, args, options) {
package/dist/code.d.cts CHANGED
@@ -1,4 +1,4 @@
1
- import { A as Api, C as CallOptions, a as ApiStream, N as NdjsonEvent, S as SseEvent } from './index-C3ZlP3BI.cjs';
1
+ import { A as Api, C as CallOptions, a as ApiStream, N as NdjsonEvent, S as SseEvent } from './index-Gj30ybjE.cjs';
2
2
  import { JsonValue } from './schemas.cjs';
3
3
  import '@ai-matrx/auth/credentials';
4
4
 
package/dist/code.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { A as Api, C as CallOptions, a as ApiStream, N as NdjsonEvent, S as SseEvent } from './index-C3ZlP3BI.js';
1
+ import { A as Api, C as CallOptions, a as ApiStream, N as NdjsonEvent, S as SseEvent } from './index-Gj30ybjE.js';
2
2
  import { JsonValue } from './schemas.js';
3
3
  import '@ai-matrx/auth/credentials';
4
4
 
package/dist/code.js CHANGED
@@ -1,5 +1,5 @@
1
- import { openStream } from './chunk-PIVTHTVR.js';
2
- import './chunk-KIEAFMKB.js';
1
+ import { openStream } from './chunk-FLANGLCG.js';
2
+ import './chunk-PIPE5OML.js';
3
3
 
4
4
  // src/generated/code.ts
5
5
  var $codingSessionBridge = { m: "POST", p: "/coding-sessions/bridge", d: "aidream", a: "user", o: "exempt", n: "code.coding_session_bridge" };
@@ -1,4 +1,4 @@
1
- import { A as Api, C as CallOptions } from './index-C3ZlP3BI.cjs';
1
+ import { A as Api, C as CallOptions } from './index-Gj30ybjE.cjs';
2
2
  import '@ai-matrx/auth/credentials';
3
3
 
4
4
  /**
@@ -1,4 +1,4 @@
1
- import { A as Api, C as CallOptions } from './index-C3ZlP3BI.js';
1
+ import { A as Api, C as CallOptions } from './index-Gj30ybjE.js';
2
2
  import '@ai-matrx/auth/credentials';
3
3
 
4
4
  /**
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
- var chunkPMGKZ4FT_cjs = require('./chunk-PMGKZ4FT.cjs');
4
- require('./chunk-2SXAAKGV.cjs');
3
+ var chunkSPASYIUH_cjs = require('./chunk-SPASYIUH.cjs');
4
+ require('./chunk-PKYPPATQ.cjs');
5
5
 
6
6
  // src/generated/communications.ts
7
7
  var $conversationRelayPreparation = { m: "POST", p: "/communications/voice/conversation-relay/session-reference", d: "aidream", a: "scoped", o: "required", n: "communications.conversation_relay_preparation" };
@@ -102,7 +102,7 @@ function agentStop(api, args, options) {
102
102
  }
103
103
  var $intelligenceAsk = { m: "POST", p: "/v1/meet/intelligence/ask", d: "aidream", a: "scoped", o: "required", s: "ndjson", n: "communications.intelligence_ask" };
104
104
  function intelligenceAsk(api, args, options) {
105
- return chunkPMGKZ4FT_cjs.openStream(api, $intelligenceAsk, args, options);
105
+ return chunkSPASYIUH_cjs.openStream(api, $intelligenceAsk, args, options);
106
106
  }
107
107
  var $meetingRecord = { m: "GET", p: "/v1/meet/record", d: "aidream", a: "scoped", o: "required", n: "communications.meeting_record" };
108
108
  function meetingRecord(api, args, options) {
@@ -142,11 +142,11 @@ function meetingGoogleCalendar(api, args, options) {
142
142
  }
143
143
  var $meetingBrief = { m: "POST", p: "/v1/meet/meetings/{meeting_id}/brief", d: "aidream", a: "user", o: "required", s: "ndjson", n: "communications.meeting_brief" };
144
144
  function meetingBrief(api, args, options) {
145
- return chunkPMGKZ4FT_cjs.openStream(api, $meetingBrief, args, options);
145
+ return chunkSPASYIUH_cjs.openStream(api, $meetingBrief, args, options);
146
146
  }
147
147
  var $agendaDraft = { m: "POST", p: "/v1/meet/agenda-draft", d: "aidream", a: "user", o: "required", s: "ndjson", n: "communications.agenda_draft" };
148
148
  function agendaDraft(api, args, options) {
149
- return chunkPMGKZ4FT_cjs.openStream(api, $agendaDraft, args, options);
149
+ return chunkSPASYIUH_cjs.openStream(api, $agendaDraft, args, options);
150
150
  }
151
151
  var $meetingModerate = { m: "POST", p: "/v1/meet/moderate", d: "aidream", a: "scoped", o: "required", n: "communications.meeting_moderate" };
152
152
  function meetingModerate(api, args, options) {
@@ -1,4 +1,4 @@
1
- import { A as Api, C as CallOptions, a as ApiStream, N as NdjsonEvent } from './index-C3ZlP3BI.cjs';
1
+ import { A as Api, C as CallOptions, a as ApiStream, N as NdjsonEvent } from './index-Gj30ybjE.cjs';
2
2
  import { JsonValue, CalendarCreateResult } from './schemas.cjs';
3
3
  import '@ai-matrx/auth/credentials';
4
4
 
@@ -1,4 +1,4 @@
1
- import { A as Api, C as CallOptions, a as ApiStream, N as NdjsonEvent } from './index-C3ZlP3BI.js';
1
+ import { A as Api, C as CallOptions, a as ApiStream, N as NdjsonEvent } from './index-Gj30ybjE.js';
2
2
  import { JsonValue, CalendarCreateResult } from './schemas.js';
3
3
  import '@ai-matrx/auth/credentials';
4
4
 
@@ -1,5 +1,5 @@
1
- import { openStream } from './chunk-PIVTHTVR.js';
2
- import './chunk-KIEAFMKB.js';
1
+ import { openStream } from './chunk-FLANGLCG.js';
2
+ import './chunk-PIPE5OML.js';
3
3
 
4
4
  // src/generated/communications.ts
5
5
  var $conversationRelayPreparation = { m: "POST", p: "/communications/voice/conversation-relay/session-reference", d: "aidream", a: "scoped", o: "required", n: "communications.conversation_relay_preparation" };
package/dist/computer.cjs CHANGED
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
- var chunkPMGKZ4FT_cjs = require('./chunk-PMGKZ4FT.cjs');
4
- require('./chunk-2SXAAKGV.cjs');
3
+ var chunkSPASYIUH_cjs = require('./chunk-SPASYIUH.cjs');
4
+ require('./chunk-PKYPPATQ.cjs');
5
5
 
6
6
  // src/generated/computer.ts
7
7
  var $localProxyProxyToLocalPc = { m: "GET", p: "/local-proxy/{app_instance_id}/{path}", d: "aidream", a: "guest", o: "required", n: "computer.local_proxy_proxy_to_local_pc" };
@@ -50,11 +50,11 @@ function getAccessLogs(api, args, options) {
50
50
  }
51
51
  var $streamSystemLog = { m: "GET", p: "/logs/stream", d: "matrx-local", a: "loopback_token", o: "exempt", s: "sse", n: "computer.stream_system_log" };
52
52
  function streamSystemLog(api, args, options) {
53
- return chunkPMGKZ4FT_cjs.openStream(api, $streamSystemLog, args, options);
53
+ return chunkSPASYIUH_cjs.openStream(api, $streamSystemLog, args, options);
54
54
  }
55
55
  var $streamAccessLog = { m: "GET", p: "/logs/access/stream", d: "matrx-local", a: "loopback_token", o: "exempt", s: "sse", n: "computer.stream_access_log" };
56
56
  function streamAccessLog(api, args, options) {
57
- return chunkPMGKZ4FT_cjs.openStream(api, $streamAccessLog, args, options);
57
+ return chunkSPASYIUH_cjs.openStream(api, $streamAccessLog, args, options);
58
58
  }
59
59
  var $pushNotification = { m: "POST", p: "/notify", d: "matrx-local", a: "loopback_token", o: "exempt", n: "computer.push_notification" };
60
60
  function pushNotification(api, args, options) {
@@ -1,4 +1,4 @@
1
- import { A as Api, C as CallOptions, a as ApiStream, S as SseEvent } from './index-C3ZlP3BI.cjs';
1
+ import { A as Api, C as CallOptions, a as ApiStream, S as SseEvent } from './index-Gj30ybjE.cjs';
2
2
  import '@ai-matrx/auth/credentials';
3
3
 
4
4
  /**
@@ -1,4 +1,4 @@
1
- import { A as Api, C as CallOptions, a as ApiStream, S as SseEvent } from './index-C3ZlP3BI.js';
1
+ import { A as Api, C as CallOptions, a as ApiStream, S as SseEvent } from './index-Gj30ybjE.js';
2
2
  import '@ai-matrx/auth/credentials';
3
3
 
4
4
  /**
package/dist/computer.js CHANGED
@@ -1,5 +1,5 @@
1
- import { openStream } from './chunk-PIVTHTVR.js';
2
- import './chunk-KIEAFMKB.js';
1
+ import { openStream } from './chunk-FLANGLCG.js';
2
+ import './chunk-PIPE5OML.js';
3
3
 
4
4
  // src/generated/computer.ts
5
5
  var $localProxyProxyToLocalPc = { m: "GET", p: "/local-proxy/{app_instance_id}/{path}", d: "aidream", a: "guest", o: "required", n: "computer.local_proxy_proxy_to_local_pc" };
package/dist/content.cjs CHANGED
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
- var chunkPMGKZ4FT_cjs = require('./chunk-PMGKZ4FT.cjs');
4
- require('./chunk-2SXAAKGV.cjs');
3
+ var chunkSPASYIUH_cjs = require('./chunk-SPASYIUH.cjs');
4
+ require('./chunk-PKYPPATQ.cjs');
5
5
 
6
6
  // src/generated/content.ts
7
7
  var $esignOutsiderOpen = { m: "POST", p: "/esign/signing/outsider/open", d: "aidream", a: "scoped", o: "exempt", n: "content.esign_outsider_open" };
@@ -122,15 +122,15 @@ function processBlocks(api, args, options) {
122
122
  }
123
123
  var $processBlocksStream = { m: "POST", p: "/utilities/block-processing/process/stream", d: "aidream", a: "guest", o: "exempt", s: "ndjson", n: "content.process_blocks_stream" };
124
124
  function processBlocksStream(api, args, options) {
125
- return chunkPMGKZ4FT_cjs.openStream(api, $processBlocksStream, args, options);
125
+ return chunkSPASYIUH_cjs.openStream(api, $processBlocksStream, args, options);
126
126
  }
127
127
  var $simulateProviderRetryStream = { m: "POST", p: "/utilities/block-processing/simulate/provider-retry", d: "aidream", a: "guest", o: "required", s: "ndjson", n: "content.simulate_provider_retry_stream" };
128
128
  function simulateProviderRetryStream(api, args, options) {
129
- return chunkPMGKZ4FT_cjs.openStream(api, $simulateProviderRetryStream, args, options);
129
+ return chunkSPASYIUH_cjs.openStream(api, $simulateProviderRetryStream, args, options);
130
130
  }
131
131
  var $processFile = { m: "POST", p: "/content-processing/{cld_file_id}", d: "aidream", a: "guest", o: "required", s: "ndjson", n: "content.process_file" };
132
132
  function processFile(api, args, options) {
133
- return chunkPMGKZ4FT_cjs.openStream(api, $processFile, args, options);
133
+ return chunkSPASYIUH_cjs.openStream(api, $processFile, args, options);
134
134
  }
135
135
  var $generateOffice = { m: "POST", p: "/office/generate", d: "aidream", a: "guest", o: "required", n: "content.generate_office" };
136
136
  function generateOffice(api, args, options) {
@@ -1,4 +1,4 @@
1
- import { A as Api, C as CallOptions, a as ApiStream, N as NdjsonEvent } from './index-C3ZlP3BI.cjs';
1
+ import { A as Api, C as CallOptions, a as ApiStream, N as NdjsonEvent } from './index-Gj30ybjE.cjs';
2
2
  import { JsonValue } from './schemas.cjs';
3
3
  import '@ai-matrx/auth/credentials';
4
4
 
package/dist/content.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { A as Api, C as CallOptions, a as ApiStream, N as NdjsonEvent } from './index-C3ZlP3BI.js';
1
+ import { A as Api, C as CallOptions, a as ApiStream, N as NdjsonEvent } from './index-Gj30ybjE.js';
2
2
  import { JsonValue } from './schemas.js';
3
3
  import '@ai-matrx/auth/credentials';
4
4
 
package/dist/content.js CHANGED
@@ -1,5 +1,5 @@
1
- import { openStream } from './chunk-PIVTHTVR.js';
2
- import './chunk-KIEAFMKB.js';
1
+ import { openStream } from './chunk-FLANGLCG.js';
2
+ import './chunk-PIPE5OML.js';
3
3
 
4
4
  // src/generated/content.ts
5
5
  var $esignOutsiderOpen = { m: "POST", p: "/esign/signing/outsider/open", d: "aidream", a: "scoped", o: "exempt", n: "content.esign_outsider_open" };
package/dist/crm.cjs CHANGED
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
- var chunkPMGKZ4FT_cjs = require('./chunk-PMGKZ4FT.cjs');
4
- require('./chunk-2SXAAKGV.cjs');
3
+ var chunkSPASYIUH_cjs = require('./chunk-SPASYIUH.cjs');
4
+ require('./chunk-PKYPPATQ.cjs');
5
5
 
6
6
  // src/generated/crm.ts
7
7
  var $listSendingIdentities = { m: "GET", p: "/sending-identities", d: "aidream", a: "user", o: "optional", n: "crm.list_sending_identities" };
@@ -130,7 +130,7 @@ function mediaResearchPreviewDoor(api, args, options) {
130
130
  }
131
131
  var $mediaResearchRunDoor = { m: "POST", p: "/crm/outreach-lists/{list_id}/media-research/run", d: "aidream", a: "guest", o: "required", s: "ndjson", n: "crm.media_research_run_door" };
132
132
  function mediaResearchRunDoor(api, args, options) {
133
- return chunkPMGKZ4FT_cjs.openStream(api, $mediaResearchRunDoor, args, options);
133
+ return chunkSPASYIUH_cjs.openStream(api, $mediaResearchRunDoor, args, options);
134
134
  }
135
135
  var $previewBulkEnrichment = { m: "POST", p: "/crm/enrichment/bulk/preview", d: "aidream", a: "guest", o: "required", n: "crm.preview_bulk_enrichment" };
136
136
  function previewBulkEnrichment(api, args, options) {
package/dist/crm.d.cts CHANGED
@@ -1,4 +1,4 @@
1
- import { A as Api, C as CallOptions, a as ApiStream, N as NdjsonEvent } from './index-C3ZlP3BI.cjs';
1
+ import { A as Api, C as CallOptions, a as ApiStream, N as NdjsonEvent } from './index-Gj30ybjE.cjs';
2
2
  import { JsonValue } from './schemas.cjs';
3
3
  import '@ai-matrx/auth/credentials';
4
4