@ai-matrx/api 0.1.31 → 0.1.33

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 (132) hide show
  1. package/CHANGELOG.md +43 -1
  2. package/dist/account.d.cts +2 -2
  3. package/dist/account.d.ts +2 -2
  4. package/dist/agents.cjs +91 -13
  5. package/dist/agents.d.cts +444 -16
  6. package/dist/agents.d.ts +444 -16
  7. package/dist/agents.js +67 -2
  8. package/dist/ai.cjs +2 -2
  9. package/dist/ai.d.cts +2 -2
  10. package/dist/ai.d.ts +2 -2
  11. package/dist/ai.js +1 -1
  12. package/dist/apps.cjs +5 -5
  13. package/dist/apps.d.cts +2 -2
  14. package/dist/apps.d.ts +2 -2
  15. package/dist/apps.js +1 -1
  16. package/dist/architecture.cjs +30 -12
  17. package/dist/architecture.d.cts +103 -5
  18. package/dist/architecture.d.ts +103 -5
  19. package/dist/architecture.js +17 -2
  20. package/dist/audio.cjs +39 -39
  21. package/dist/audio.d.cts +2 -2
  22. package/dist/audio.d.ts +2 -2
  23. package/dist/audio.js +2 -2
  24. package/dist/chat.cjs +11 -11
  25. package/dist/chat.d.cts +2 -2
  26. package/dist/chat.d.ts +2 -2
  27. package/dist/chat.js +1 -1
  28. package/dist/{chunk-45PIBJ3K.cjs → chunk-2XQZ7UUM.cjs} +8 -2
  29. package/dist/{chunk-7GMHDVF5.js → chunk-4DIKNTZ5.js} +1 -1
  30. package/dist/{chunk-QDFU72YV.cjs → chunk-BO4DXT4E.cjs} +37 -37
  31. package/dist/{chunk-YK5KJICX.js → chunk-DVYCIFMH.js} +8 -2
  32. package/dist/{chunk-FHHE5FNM.cjs → chunk-EC2LWEXH.cjs} +4 -4
  33. package/dist/{chunk-BO5HWECS.cjs → chunk-N72EQZ4X.cjs} +3 -3
  34. package/dist/{chunk-YRZAOYRE.js → chunk-PVQZBXTU.js} +1 -1
  35. package/dist/{chunk-MY5RKVCY.js → chunk-QGHXBN6P.js} +1 -1
  36. package/dist/code.cjs +6 -6
  37. package/dist/code.d.cts +2 -2
  38. package/dist/code.d.ts +2 -2
  39. package/dist/code.js +1 -1
  40. package/dist/commerce.d.cts +2 -2
  41. package/dist/commerce.d.ts +2 -2
  42. package/dist/communications.cjs +4 -4
  43. package/dist/communications.d.cts +2 -2
  44. package/dist/communications.d.ts +2 -2
  45. package/dist/communications.js +1 -1
  46. package/dist/computer.cjs +4 -4
  47. package/dist/computer.d.cts +2 -2
  48. package/dist/computer.d.ts +2 -2
  49. package/dist/computer.js +1 -1
  50. package/dist/content.cjs +4 -4
  51. package/dist/content.d.cts +2 -2
  52. package/dist/content.d.ts +2 -2
  53. package/dist/content.js +1 -1
  54. package/dist/crm.cjs +2 -2
  55. package/dist/crm.d.cts +2 -2
  56. package/dist/crm.d.ts +2 -2
  57. package/dist/crm.js +1 -1
  58. package/dist/data.cjs +4 -4
  59. package/dist/data.d.cts +4 -2
  60. package/dist/data.d.ts +4 -2
  61. package/dist/data.js +1 -1
  62. package/dist/education.cjs +4 -4
  63. package/dist/education.d.cts +2 -2
  64. package/dist/education.d.ts +2 -2
  65. package/dist/education.js +1 -1
  66. package/dist/files.cjs +228 -228
  67. package/dist/files.d.cts +2 -2
  68. package/dist/files.d.ts +2 -2
  69. package/dist/files.js +2 -2
  70. package/dist/human-resources.d.cts +2 -2
  71. package/dist/human-resources.d.ts +2 -2
  72. package/dist/{index-BneRZdQz.d.cts → index-A1nOdg4F.d.cts} +2 -2
  73. package/dist/{index-BneRZdQz.d.ts → index-A1nOdg4F.d.ts} +2 -2
  74. package/dist/index.cjs +69 -59
  75. package/dist/index.d.cts +9 -4
  76. package/dist/index.d.ts +9 -4
  77. package/dist/index.js +13 -3
  78. package/dist/integrations.cjs +5 -5
  79. package/dist/integrations.d.cts +2 -2
  80. package/dist/integrations.d.ts +2 -2
  81. package/dist/integrations.js +1 -1
  82. package/dist/intelligence.cjs +7 -7
  83. package/dist/intelligence.d.cts +2 -2
  84. package/dist/intelligence.d.ts +2 -2
  85. package/dist/intelligence.js +1 -1
  86. package/dist/knowledge.cjs +42 -42
  87. package/dist/knowledge.d.cts +2 -2
  88. package/dist/knowledge.d.ts +2 -2
  89. package/dist/knowledge.js +1 -1
  90. package/dist/legal.cjs +6 -6
  91. package/dist/legal.d.cts +2 -2
  92. package/dist/legal.d.ts +2 -2
  93. package/dist/legal.js +1 -1
  94. package/dist/marketing.cjs +82 -82
  95. package/dist/marketing.d.cts +2 -2
  96. package/dist/marketing.d.ts +2 -2
  97. package/dist/marketing.js +1 -1
  98. package/dist/masterwork.cjs +32 -32
  99. package/dist/masterwork.d.cts +2 -2
  100. package/dist/masterwork.d.ts +2 -2
  101. package/dist/masterwork.js +1 -1
  102. package/dist/media.cjs +11 -11
  103. package/dist/media.d.cts +2 -2
  104. package/dist/media.d.ts +2 -2
  105. package/dist/media.js +1 -1
  106. package/dist/platform.cjs +27 -27
  107. package/dist/platform.d.cts +2 -2
  108. package/dist/platform.d.ts +2 -2
  109. package/dist/platform.js +2 -2
  110. package/dist/publish.cjs +7 -7
  111. package/dist/publish.d.cts +2 -2
  112. package/dist/publish.d.ts +2 -2
  113. package/dist/publish.js +1 -1
  114. package/dist/recording.cjs +17 -17
  115. package/dist/recording.js +4 -4
  116. package/dist/schemas.d.cts +1 -1
  117. package/dist/schemas.d.ts +1 -1
  118. package/dist/stream.cjs +10 -10
  119. package/dist/stream.d.cts +1 -1
  120. package/dist/stream.d.ts +1 -1
  121. package/dist/stream.js +1 -1
  122. package/dist/types.d.cts +375 -6
  123. package/dist/types.d.ts +375 -6
  124. package/dist/web.cjs +27 -27
  125. package/dist/web.d.cts +2 -2
  126. package/dist/web.d.ts +2 -2
  127. package/dist/web.js +1 -1
  128. package/dist/workflows.cjs +13 -13
  129. package/dist/workflows.d.cts +2 -2
  130. package/dist/workflows.d.ts +2 -2
  131. package/dist/workflows.js +1 -1
  132. package/package.json +2 -2
package/dist/files.d.cts CHANGED
@@ -1,10 +1,10 @@
1
- import { A as Api, C as CallOptions, a as ApiStream, N as NdjsonEvent, J as JsonOrStream, S as SseEvent } from './index-BneRZdQz.cjs';
1
+ import { A as Api, C as CallOptions, a as ApiStream, N as NdjsonEvent, J as JsonOrStream, S as SseEvent } from './index-A1nOdg4F.cjs';
2
2
  import { JsonValue, Asset, MediaRef, UserAnalysisPreferencesResponse, StorageImportResult } from './schemas.cjs';
3
3
  import '@ai-matrx/auth/credentials';
4
4
 
5
5
  /**
6
6
  * GENERATED by @ai-matrx/api scripts/generate.mjs from aidream/api-contract — never edit by hand.
7
- * CONTRACT_SHA256 28595dcf14903c62d8dfd5a95f8a0a3f823d695979b05cdb7787f1e00b2dc3fe
7
+ * CONTRACT_SHA256 c230b6e38690f213eb5f2eb413a9dbe72f3882595e8652c6e24c7a89139a0640
8
8
  */
9
9
 
10
10
  /** ActivePageIdsResponse */
package/dist/files.d.ts CHANGED
@@ -1,10 +1,10 @@
1
- import { A as Api, C as CallOptions, a as ApiStream, N as NdjsonEvent, J as JsonOrStream, S as SseEvent } from './index-BneRZdQz.js';
1
+ import { A as Api, C as CallOptions, a as ApiStream, N as NdjsonEvent, J as JsonOrStream, S as SseEvent } from './index-A1nOdg4F.js';
2
2
  import { JsonValue, Asset, MediaRef, UserAnalysisPreferencesResponse, StorageImportResult } from './schemas.js';
3
3
  import '@ai-matrx/auth/credentials';
4
4
 
5
5
  /**
6
6
  * GENERATED by @ai-matrx/api scripts/generate.mjs from aidream/api-contract — never edit by hand.
7
- * CONTRACT_SHA256 28595dcf14903c62d8dfd5a95f8a0a3f823d695979b05cdb7787f1e00b2dc3fe
7
+ * CONTRACT_SHA256 c230b6e38690f213eb5f2eb413a9dbe72f3882595e8652c6e24c7a89139a0640
8
8
  */
9
9
 
10
10
  /** ActivePageIdsResponse */
package/dist/files.js CHANGED
@@ -1,3 +1,3 @@
1
- export { activePagesEndpoint, addGroupMember, appGenerateDirectoryStructure, appGenerateDirectoryStructurePost, assetsPdfCompress, assetsPdfCompressMultipart, assetsPreview, assetsPreviewMultipart, authorizeStorage, batchExtract, boxCallback, browseProviderFolder, bulkDeleteFiles, bulkFromCandidatesEndpoint, bulkMoveFiles, bulkMoveFolders, bulkOpDiscriminator, call, cancelDownload, childFileShare, classifyPagesEndpoint, cleanDocumentContent, cloudDebug, cloudFilesBridgeDeleteFile, cloudFilesBridgeGetFile, cloudFilesBridgeListFiles, cloudInstanceDryRun, compressPdf, configureSync, convertOfficePdf, copyFile, createAnnotationEndpoint, createEntityEndpoint, createFileShareLink, createFolder, createFolderShareLink, createGroup, createMapping, createNode, createPresignedUpload, cropPages, deactivateShareLink, deleteAnnotationEndpoint, deleteEntityEndpoint, deleteFolder, deleteMapping, deleteNode, deletePages, detectRepeatedRegionsEndpoint, disconnectStorage, dismissDownload, downloadFile, downloadShare, downloadSharedChildFile, downloadSharedFile, downloadStream, downloadVersion, drainMediaHealQueue, dropboxCallback, duplicatePages, enqueueDownload, escrowRecover, escrowWrappingKey, excludePageEndpoint, extractAtBboxEndpoint, extractAudio, extractAudioOnFiles, extractPages, extractReadingOrderEndpoint, extractRegionEndpoint, extractTables, extractTextFromPdf, extractTextRemote, extractedTextEndpoint, fetchAnalysis, fetchLabelCatalog, filesDeleteFile, filesGetFile, filesListFiles, filesystemIndexAction, filesystemStatus, finalizePresignedUpload, findPaths, findSimilarEndpoint, flattenAnnotationsEndpoint, fullPipeline, generateDirectoryStructureJson, getAnalysisPreferences, getAsset, getCloudSettings, getDocument, getDownload, getFileAsAsset, getFileAsAssetOnFiles, getFileByPath, getFileDocument, getFileLineageSummary, getFileRagStatus, getFileTree, getFolder, getIndexingSettings, getInstanceInfo, getPageEndpoint, getPlaces, getQuota, getStorageUsage, getVersion, grantFilePermission, grantFolderPermission, health, heartbeat, importProviderFile, includePageEndpoint, ingestFileForRag, ingestFileForRagStream, insertPages, integrationsAidream, keyFindingsEndpoint, listAdapters, listAnnotationsEndpoint, listChanges, listDirectory, listDocuments, listDownloads, listEntitiesEndpoint, listFilePermissions, listFileShareLinks, listFiles, listFolderPermissions, listFolderShareLinks, listFolders, listGroupMembers, listGroupsIndex, listInstances, listMappings, listNodes, listOverridesEndpoint, listPagesEndpoint, listPresets, listTrash, manifestEndpoint, mergePdfs, mintFileSession, mintFileSessionOnFiles, moveNode, overridePageTextEndpoint, patchAsset, patchFolder, pdfFromImages, prepareOpen, processWithAi, promoteToEntityEndpoint, pullSettings, pushSettings, putAnalysisPreferences, putFile, readContent, readiness, reconfigureSync, redactMask, redactPatternEndpoint, redactPatternsCatalog, redactRegionsEndpoint, redactRepeatedRegionsEndpoint, redactRestore, refreshAnalysis, refreshFileRag, refreshStorage, removeGroupMember, renameFile, renameNode, renderAllPages, renderMoreVariants, renderPage, renderPageWithOverlayEndpoint, renderThumbnail, reorderPages, reportObservation, resetSettings, resolve, restoreFile, revokeFilePermission, revokeFolderPermission, revokeSession, rotatePageEndpoint, rotatePages, saveContent, saveNewVersion, scrubEndpoint, searchContent, searchEndpoint, searchFiles, searchSemantic, selectPdfPages, snapBboxEndpoint, splitPdf, stripMetadataEndpoint, stripRepeatedRegionsEndpoint, studioPresets, studioRender, syncChanges, syncFolders, triggerSync, tusCreate, tusCreateOnFiles, tusDelete, tusDeleteOnFiles, tusHead, tusHeadOnFiles, tusOptions, tusOptionsOnFiles, tusPatch, tusPatchOnFiles, updateAnnotationEndpoint, updateCloudSettings, updateEntityEndpoint, updateFileMetadata, updateIndexingSettings, updateInstanceName, updatePriorityRoots, uploadAsset, uploadFile, versionsListVersions, versionsRestoreVersion, virtualListVersions, virtualRestoreVersion } from './chunk-YRZAOYRE.js';
2
- import './chunk-YK5KJICX.js';
1
+ export { activePagesEndpoint, addGroupMember, appGenerateDirectoryStructure, appGenerateDirectoryStructurePost, assetsPdfCompress, assetsPdfCompressMultipart, assetsPreview, assetsPreviewMultipart, authorizeStorage, batchExtract, boxCallback, browseProviderFolder, bulkDeleteFiles, bulkFromCandidatesEndpoint, bulkMoveFiles, bulkMoveFolders, bulkOpDiscriminator, call, cancelDownload, childFileShare, classifyPagesEndpoint, cleanDocumentContent, cloudDebug, cloudFilesBridgeDeleteFile, cloudFilesBridgeGetFile, cloudFilesBridgeListFiles, cloudInstanceDryRun, compressPdf, configureSync, convertOfficePdf, copyFile, createAnnotationEndpoint, createEntityEndpoint, createFileShareLink, createFolder, createFolderShareLink, createGroup, createMapping, createNode, createPresignedUpload, cropPages, deactivateShareLink, deleteAnnotationEndpoint, deleteEntityEndpoint, deleteFolder, deleteMapping, deleteNode, deletePages, detectRepeatedRegionsEndpoint, disconnectStorage, dismissDownload, downloadFile, downloadShare, downloadSharedChildFile, downloadSharedFile, downloadStream, downloadVersion, drainMediaHealQueue, dropboxCallback, duplicatePages, enqueueDownload, escrowRecover, escrowWrappingKey, excludePageEndpoint, extractAtBboxEndpoint, extractAudio, extractAudioOnFiles, extractPages, extractReadingOrderEndpoint, extractRegionEndpoint, extractTables, extractTextFromPdf, extractTextRemote, extractedTextEndpoint, fetchAnalysis, fetchLabelCatalog, filesDeleteFile, filesGetFile, filesListFiles, filesystemIndexAction, filesystemStatus, finalizePresignedUpload, findPaths, findSimilarEndpoint, flattenAnnotationsEndpoint, fullPipeline, generateDirectoryStructureJson, getAnalysisPreferences, getAsset, getCloudSettings, getDocument, getDownload, getFileAsAsset, getFileAsAssetOnFiles, getFileByPath, getFileDocument, getFileLineageSummary, getFileRagStatus, getFileTree, getFolder, getIndexingSettings, getInstanceInfo, getPageEndpoint, getPlaces, getQuota, getStorageUsage, getVersion, grantFilePermission, grantFolderPermission, health, heartbeat, importProviderFile, includePageEndpoint, ingestFileForRag, ingestFileForRagStream, insertPages, integrationsAidream, keyFindingsEndpoint, listAdapters, listAnnotationsEndpoint, listChanges, listDirectory, listDocuments, listDownloads, listEntitiesEndpoint, listFilePermissions, listFileShareLinks, listFiles, listFolderPermissions, listFolderShareLinks, listFolders, listGroupMembers, listGroupsIndex, listInstances, listMappings, listNodes, listOverridesEndpoint, listPagesEndpoint, listPresets, listTrash, manifestEndpoint, mergePdfs, mintFileSession, mintFileSessionOnFiles, moveNode, overridePageTextEndpoint, patchAsset, patchFolder, pdfFromImages, prepareOpen, processWithAi, promoteToEntityEndpoint, pullSettings, pushSettings, putAnalysisPreferences, putFile, readContent, readiness, reconfigureSync, redactMask, redactPatternEndpoint, redactPatternsCatalog, redactRegionsEndpoint, redactRepeatedRegionsEndpoint, redactRestore, refreshAnalysis, refreshFileRag, refreshStorage, removeGroupMember, renameFile, renameNode, renderAllPages, renderMoreVariants, renderPage, renderPageWithOverlayEndpoint, renderThumbnail, reorderPages, reportObservation, resetSettings, resolve, restoreFile, revokeFilePermission, revokeFolderPermission, revokeSession, rotatePageEndpoint, rotatePages, saveContent, saveNewVersion, scrubEndpoint, searchContent, searchEndpoint, searchFiles, searchSemantic, selectPdfPages, snapBboxEndpoint, splitPdf, stripMetadataEndpoint, stripRepeatedRegionsEndpoint, studioPresets, studioRender, syncChanges, syncFolders, triggerSync, tusCreate, tusCreateOnFiles, tusDelete, tusDeleteOnFiles, tusHead, tusHeadOnFiles, tusOptions, tusOptionsOnFiles, tusPatch, tusPatchOnFiles, updateAnnotationEndpoint, updateCloudSettings, updateEntityEndpoint, updateFileMetadata, updateIndexingSettings, updateInstanceName, updatePriorityRoots, uploadAsset, uploadFile, versionsListVersions, versionsRestoreVersion, virtualListVersions, virtualRestoreVersion } from './chunk-PVQZBXTU.js';
2
+ import './chunk-DVYCIFMH.js';
3
3
  import './chunk-KIEAFMKB.js';
@@ -1,10 +1,10 @@
1
- import { A as Api, C as CallOptions } from './index-BneRZdQz.cjs';
1
+ import { A as Api, C as CallOptions } from './index-A1nOdg4F.cjs';
2
2
  import { JsonValue } from './schemas.cjs';
3
3
  import '@ai-matrx/auth/credentials';
4
4
 
5
5
  /**
6
6
  * GENERATED by @ai-matrx/api scripts/generate.mjs from aidream/api-contract — never edit by hand.
7
- * CONTRACT_SHA256 28595dcf14903c62d8dfd5a95f8a0a3f823d695979b05cdb7787f1e00b2dc3fe
7
+ * CONTRACT_SHA256 c230b6e38690f213eb5f2eb413a9dbe72f3882595e8652c6e24c7a89139a0640
8
8
  */
9
9
 
10
10
  /** E-13's body, byte-for-byte against the frozen stub. */
@@ -1,10 +1,10 @@
1
- import { A as Api, C as CallOptions } from './index-BneRZdQz.js';
1
+ import { A as Api, C as CallOptions } from './index-A1nOdg4F.js';
2
2
  import { JsonValue } from './schemas.js';
3
3
  import '@ai-matrx/auth/credentials';
4
4
 
5
5
  /**
6
6
  * GENERATED by @ai-matrx/api scripts/generate.mjs from aidream/api-contract — never edit by hand.
7
- * CONTRACT_SHA256 28595dcf14903c62d8dfd5a95f8a0a3f823d695979b05cdb7787f1e00b2dc3fe
7
+ * CONTRACT_SHA256 c230b6e38690f213eb5f2eb413a9dbe72f3882595e8652c6e24c7a89139a0640
8
8
  */
9
9
 
10
10
  /** E-13's body, byte-for-byte against the frozen stub. */
@@ -190,10 +190,10 @@ declare function readMatrxSseStream(stream: ReadableStream<Uint8Array>, options?
190
190
 
191
191
  /**
192
192
  * GENERATED by @ai-matrx/api scripts/generate.mjs from aidream/api-contract — never edit by hand.
193
- * CONTRACT_SHA256 28595dcf14903c62d8dfd5a95f8a0a3f823d695979b05cdb7787f1e00b2dc3fe
193
+ * CONTRACT_SHA256 c230b6e38690f213eb5f2eb413a9dbe72f3882595e8652c6e24c7a89139a0640
194
194
  */
195
195
  /** The server contract's hash; the Python `matrx-api` and any native client carry the same value. */
196
- declare const CONTRACT_SHA256 = "28595dcf14903c62d8dfd5a95f8a0a3f823d695979b05cdb7787f1e00b2dc3fe";
196
+ declare const CONTRACT_SHA256 = "c230b6e38690f213eb5f2eb413a9dbe72f3882595e8652c6e24c7a89139a0640";
197
197
  /** Which deployment answers (api-deployments.json): default base URLs and the existing env names that override them. */
198
198
  declare const DEPLOYMENTS: {
199
199
  readonly files: {
@@ -190,10 +190,10 @@ declare function readMatrxSseStream(stream: ReadableStream<Uint8Array>, options?
190
190
 
191
191
  /**
192
192
  * GENERATED by @ai-matrx/api scripts/generate.mjs from aidream/api-contract — never edit by hand.
193
- * CONTRACT_SHA256 28595dcf14903c62d8dfd5a95f8a0a3f823d695979b05cdb7787f1e00b2dc3fe
193
+ * CONTRACT_SHA256 c230b6e38690f213eb5f2eb413a9dbe72f3882595e8652c6e24c7a89139a0640
194
194
  */
195
195
  /** The server contract's hash; the Python `matrx-api` and any native client carry the same value. */
196
- declare const CONTRACT_SHA256 = "28595dcf14903c62d8dfd5a95f8a0a3f823d695979b05cdb7787f1e00b2dc3fe";
196
+ declare const CONTRACT_SHA256 = "c230b6e38690f213eb5f2eb413a9dbe72f3882595e8652c6e24c7a89139a0640";
197
197
  /** Which deployment answers (api-deployments.json): default base URLs and the existing env names that override them. */
198
198
  declare const DEPLOYMENTS: {
199
199
  readonly files: {
package/dist/index.cjs CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  var chunkFNIYADWI_cjs = require('./chunk-FNIYADWI.cjs');
4
4
  var chunkMVXD6WI6_cjs = require('./chunk-MVXD6WI6.cjs');
5
- var chunk45PIBJ3K_cjs = require('./chunk-45PIBJ3K.cjs');
5
+ var chunk2XQZ7UUM_cjs = require('./chunk-2XQZ7UUM.cjs');
6
6
  var chunk2SXAAKGV_cjs = require('./chunk-2SXAAKGV.cjs');
7
7
  var format = require('@ai-matrx/kit/format');
8
8
 
@@ -44,7 +44,7 @@ function buildMatrxRequestBody(body, scope) {
44
44
  }
45
45
  const bodyOrganizationId = base.organization_id;
46
46
  if (scope.organization_id !== void 0 && bodyOrganizationId !== void 0 && (typeof bodyOrganizationId !== "string" || bodyOrganizationId.trim() !== scope.organization_id)) {
47
- throw new chunk45PIBJ3K_cjs.OrganizationContextError(
47
+ throw new chunk2XQZ7UUM_cjs.OrganizationContextError(
48
48
  "organization_context_mismatch",
49
49
  "Request body organization_id must match the request context organization."
50
50
  );
@@ -116,14 +116,14 @@ function parseMatrxNdjsonResponse(response, signal, hooks = {}) {
116
116
  };
117
117
  async function* events() {
118
118
  if (!response.body) {
119
- throw new chunk45PIBJ3K_cjs.BackendApiError({
119
+ throw new chunk2XQZ7UUM_cjs.BackendApiError({
120
120
  code: "internal_error",
121
121
  detail: "Response has no body",
122
122
  userMessage: "No response received from server"
123
123
  });
124
124
  }
125
125
  try {
126
- for await (const envelope of chunk45PIBJ3K_cjs.readMatrxNdjsonStream(response.body, {
126
+ for await (const envelope of chunk2XQZ7UUM_cjs.readMatrxNdjsonStream(response.body, {
127
127
  ...signal ? { signal } : {},
128
128
  ...hooks.onMalformedLine ? { onMalformedLine: hooks.onMalformedLine } : {},
129
129
  ...hooks.onUnknownEnvelope ? { onUnknownEnvelope: hooks.onUnknownEnvelope } : {}
@@ -135,7 +135,7 @@ function parseMatrxNdjsonResponse(response, signal, hooks = {}) {
135
135
  if (signal?.aborted || error instanceof Error && error.name === "AbortError") {
136
136
  return;
137
137
  }
138
- const transportError = error instanceof chunk45PIBJ3K_cjs.BackendApiError ? error : new chunk45PIBJ3K_cjs.StreamTransportError({
138
+ const transportError = error instanceof chunk2XQZ7UUM_cjs.BackendApiError ? error : new chunk2XQZ7UUM_cjs.StreamTransportError({
139
139
  detail: error instanceof Error ? error.message : "The response stream ended unexpectedly.",
140
140
  details: error,
141
141
  ...ids.requestId ? { requestId: ids.requestId } : {}
@@ -152,7 +152,7 @@ async function httpErrorFrom(response) {
152
152
  const serverDetail = await response.json().catch(() => void 0);
153
153
  return {
154
154
  type: response.status >= 400 && response.status < 500 ? "validation_error" : "http_error",
155
- message: chunk45PIBJ3K_cjs.extractMatrxErrorMessage(serverDetail) ?? bareStatusSentence(response.status),
155
+ message: chunk2XQZ7UUM_cjs.extractMatrxErrorMessage(serverDetail) ?? bareStatusSentence(response.status),
156
156
  status: response.status,
157
157
  serverDetail
158
158
  };
@@ -160,7 +160,7 @@ async function httpErrorFrom(response) {
160
160
  async function executeMatrxCall(request, hooks = {}) {
161
161
  const upper = request.method.toUpperCase();
162
162
  const sendsBody = request.stream || upper !== "GET" && upper !== "HEAD";
163
- const { response } = await chunk45PIBJ3K_cjs.sendOnWire({
163
+ const { response } = await chunk2XQZ7UUM_cjs.sendOnWire({
164
164
  url: request.url,
165
165
  method: request.method,
166
166
  headers: request.headers,
@@ -210,11 +210,11 @@ async function sendMatrxRequest(url, init = {}, options = {}) {
210
210
  headers[name] = value;
211
211
  });
212
212
  const fetchOptions = {};
213
- for (const key of chunk45PIBJ3K_cjs.WIRE_FETCH_OPTION_KEYS) {
213
+ for (const key of chunk2XQZ7UUM_cjs.WIRE_FETCH_OPTION_KEYS) {
214
214
  if (init[key] !== void 0) fetchOptions[key] = init[key];
215
215
  }
216
216
  try {
217
- const { response, controller } = await chunk45PIBJ3K_cjs.sendOnWire({
217
+ const { response, controller } = await chunk2XQZ7UUM_cjs.sendOnWire({
218
218
  url,
219
219
  method: init.method ?? "GET",
220
220
  fetchOptions,
@@ -237,7 +237,7 @@ async function sendMatrxRequest(url, init = {}, options = {}) {
237
237
  throw callerSignal?.reason instanceof Error ? callerSignal.reason : new DOMException("The request was cancelled.", "AbortError");
238
238
  }
239
239
  if (options.timeoutMs !== void 0 && chunk2SXAAKGV_cjs.isNetError(error) && (error.code === "connect-timeout" || error.code === "total-timeout")) {
240
- throw new chunk45PIBJ3K_cjs.BackendApiError({
240
+ throw new chunk2XQZ7UUM_cjs.BackendApiError({
241
241
  code: "request_timeout",
242
242
  detail: `${init.method ?? "GET"} ${url} exceeded ${options.timeoutMs}ms`,
243
243
  userMessage: "The request timed out \u2014 please retry.",
@@ -251,7 +251,7 @@ async function sendMatrxRequest(url, init = {}, options = {}) {
251
251
  }
252
252
  }
253
253
  async function readMatrxJsonResponse(response) {
254
- if (!response.ok) throw await chunk45PIBJ3K_cjs.parseHttpError(response);
254
+ if (!response.ok) throw await chunk2XQZ7UUM_cjs.parseHttpError(response);
255
255
  if (response.status === 204) return null;
256
256
  return await response.json();
257
257
  }
@@ -261,7 +261,7 @@ function classifyStatus(status) {
261
261
  return status >= 400 && status < 500 ? "validation_error" : "http_error";
262
262
  }
263
263
  function normalizeMatrxError(err) {
264
- if (err instanceof chunk45PIBJ3K_cjs.OrganizationContextError) {
264
+ if (err instanceof chunk2XQZ7UUM_cjs.OrganizationContextError) {
265
265
  return {
266
266
  type: "validation_error",
267
267
  message: err.message,
@@ -273,7 +273,7 @@ function normalizeMatrxError(err) {
273
273
  if (err instanceof DOMException && err.name === "AbortError") {
274
274
  return { type: "abort_error", message: "Request was cancelled." };
275
275
  }
276
- if (err instanceof chunk45PIBJ3K_cjs.MatrxApiError) {
276
+ if (err instanceof chunk2XQZ7UUM_cjs.MatrxApiError) {
277
277
  return {
278
278
  type: classifyStatus(err.status),
279
279
  message: honestTransportMessage(err.message, err.status),
@@ -283,7 +283,7 @@ function normalizeMatrxError(err) {
283
283
  name: err.name
284
284
  };
285
285
  }
286
- if (err instanceof chunk45PIBJ3K_cjs.BackendApiError) {
286
+ if (err instanceof chunk2XQZ7UUM_cjs.BackendApiError) {
287
287
  return {
288
288
  type: "network_error",
289
289
  message: honestTransportMessage(
@@ -379,9 +379,9 @@ function createMatrxTransport(options) {
379
379
  const resolve = resolveTarget ?? (() => ({ baseUrl }));
380
380
  const resolveOrganizationId = (callOrganizationId) => {
381
381
  if (organizationId === void 0) return null;
382
- if (callOrganizationId !== null) return chunk45PIBJ3K_cjs.requireOrganizationContext(callOrganizationId);
382
+ if (callOrganizationId !== null) return chunk2XQZ7UUM_cjs.requireOrganizationContext(callOrganizationId);
383
383
  const candidate = typeof organizationId === "function" ? organizationId() : organizationId;
384
- return chunk45PIBJ3K_cjs.requireOrganizationContext(candidate);
384
+ return chunk2XQZ7UUM_cjs.requireOrganizationContext(candidate);
385
385
  };
386
386
  return {
387
387
  async fetch(path, init) {
@@ -392,7 +392,7 @@ function createMatrxTransport(options) {
392
392
  let overHeaders = callOrganizationId === null ? policyHeaders : stripOrganizationHeader(policyHeaders);
393
393
  const orgId = resolveOrganizationId(callOrganizationId);
394
394
  if (orgId !== null) {
395
- overHeaders = chunk45PIBJ3K_cjs.applyOrganizationContextHeader(overHeaders, orgId);
395
+ overHeaders = chunk2XQZ7UUM_cjs.applyOrganizationContextHeader(overHeaders, orgId);
396
396
  }
397
397
  const wireHeaders = callOrganizationId === null ? { ...init.headers } : stripOrganizationHeader({ ...init.headers });
398
398
  const info = {
@@ -405,7 +405,7 @@ function createMatrxTransport(options) {
405
405
  diagnostics?.onRequest?.(info);
406
406
  let response;
407
407
  try {
408
- ({ response } = await chunk45PIBJ3K_cjs.sendOnWire(
408
+ ({ response } = await chunk2XQZ7UUM_cjs.sendOnWire(
409
409
  {
410
410
  url,
411
411
  method: init.method,
@@ -429,11 +429,11 @@ function createMatrxTransport(options) {
429
429
  }
430
430
  if (!response.ok && !expectedErrorStatuses?.includes(response.status)) {
431
431
  const serverDetail = await response.clone().json().catch(() => void 0);
432
- const code = chunk45PIBJ3K_cjs.extractMatrxErrorCode(serverDetail);
432
+ const code = chunk2XQZ7UUM_cjs.extractMatrxErrorCode(serverDetail);
433
433
  diagnostics?.onError?.(
434
434
  {
435
435
  type: classifyStatus(response.status),
436
- message: chunk45PIBJ3K_cjs.extractMatrxErrorMessage(serverDetail) ?? `HTTP ${response.status}`,
436
+ message: chunk2XQZ7UUM_cjs.extractMatrxErrorMessage(serverDetail) ?? `HTTP ${response.status}`,
437
437
  status: response.status,
438
438
  serverDetail,
439
439
  ...code ? { code } : {}
@@ -734,7 +734,7 @@ async function readServerDetail(response) {
734
734
  }
735
735
  }
736
736
  async function throwApiError(path, response) {
737
- throw new chunk45PIBJ3K_cjs.MatrxApiError({
737
+ throw new chunk2XQZ7UUM_cjs.MatrxApiError({
738
738
  status: response.status,
739
739
  path,
740
740
  serverDetail: await readServerDetail(response)
@@ -755,7 +755,7 @@ function toRunHandle(response, options) {
755
755
  return {
756
756
  requestId: response.headers.get("X-Request-ID"),
757
757
  conversationId: response.headers.get("X-Conversation-ID"),
758
- events: chunk45PIBJ3K_cjs.readMatrxNdjsonStream(response.body, {
758
+ events: chunk2XQZ7UUM_cjs.readMatrxNdjsonStream(response.body, {
759
759
  ...options.signal ? { signal: options.signal } : {},
760
760
  ...options.maxReadAhead !== void 0 ? { maxReadAhead: options.maxReadAhead } : {},
761
761
  ...options.onMalformedLine ? { onMalformedLine: options.onMalformedLine } : {},
@@ -778,7 +778,7 @@ async function requestStream(transport, path, options) {
778
778
  });
779
779
  if (!response.ok) return throwApiError(path, response);
780
780
  if (!response.body) {
781
- throw new chunk45PIBJ3K_cjs.MatrxApiError({
781
+ throw new chunk2XQZ7UUM_cjs.MatrxApiError({
782
782
  status: response.status,
783
783
  path,
784
784
  serverDetail: { code: "missing_response_body" },
@@ -838,7 +838,7 @@ async function getRuntimeOperationStatus(transport, requestId, options = {}) {
838
838
  { method: "GET", ...options.signal ? { signal: options.signal } : {} }
839
839
  );
840
840
  } catch (error) {
841
- if (error instanceof chunk45PIBJ3K_cjs.MatrxApiError && error.status === 404) return null;
841
+ if (error instanceof chunk2XQZ7UUM_cjs.MatrxApiError && error.status === 404) return null;
842
842
  throw error;
843
843
  }
844
844
  }
@@ -853,7 +853,7 @@ async function getRuntimeOperationsByLink(transport, linkKind, linkId, options =
853
853
  { method: "GET", ...options.signal ? { signal: options.signal } : {} }
854
854
  );
855
855
  } catch (error) {
856
- if (error instanceof chunk45PIBJ3K_cjs.MatrxApiError && error.status === 404) return null;
856
+ if (error instanceof chunk2XQZ7UUM_cjs.MatrxApiError && error.status === 404) return null;
857
857
  throw error;
858
858
  }
859
859
  }
@@ -894,7 +894,7 @@ async function* followRuntimeOperationEvents(transport, executionId, options = {
894
894
  ...options.signal ? { signal: options.signal } : {}
895
895
  }
896
896
  );
897
- const frames = chunk45PIBJ3K_cjs.readMatrxSseStream(
897
+ const frames = chunk2XQZ7UUM_cjs.readMatrxSseStream(
898
898
  response.body,
899
899
  options.onIncomplete ? { onIncomplete: options.onIncomplete } : {}
900
900
  );
@@ -1097,7 +1097,7 @@ async function openMatrxStream(transport, path, options = {}) {
1097
1097
  return toRunHandle(response, options);
1098
1098
  }
1099
1099
  function withRunOrganization(transport, organizationId) {
1100
- const orgId = chunk45PIBJ3K_cjs.requireOrganizationContext(organizationId);
1100
+ const orgId = chunk2XQZ7UUM_cjs.requireOrganizationContext(organizationId);
1101
1101
  return {
1102
1102
  fetch: (path, init) => transport.fetch(path, {
1103
1103
  ...init,
@@ -1124,7 +1124,7 @@ async function followWorkflowRunEvents(transport, runId, options) {
1124
1124
  throw error;
1125
1125
  }
1126
1126
  try {
1127
- for await (const frame of chunk45PIBJ3K_cjs.readMatrxSseStream(
1127
+ for await (const frame of chunk2XQZ7UUM_cjs.readMatrxSseStream(
1128
1128
  response.body
1129
1129
  )) {
1130
1130
  if (frame.event === "end") return { ended: true };
@@ -1170,7 +1170,7 @@ async function resumeOrRejoin(transport, resumeCall, options) {
1170
1170
  } catch (error) {
1171
1171
  const target = readLiveRunRejoin(error);
1172
1172
  if (!target) {
1173
- if (error instanceof chunk45PIBJ3K_cjs.MatrxApiError && isResumeConflict(error)) {
1173
+ if (error instanceof chunk2XQZ7UUM_cjs.MatrxApiError && isResumeConflict(error)) {
1174
1174
  return { kind: "resume_conflict", error };
1175
1175
  }
1176
1176
  throw error;
@@ -1571,9 +1571,19 @@ function providerSessionUsageBody(usage) {
1571
1571
  output_tokens: count(usage.output_tokens),
1572
1572
  cached_input_tokens: count(usage.cached_input_tokens),
1573
1573
  characters: count(usage.characters),
1574
- seconds
1574
+ seconds,
1575
+ ...componentsBody(usage.components)
1575
1576
  };
1576
1577
  }
1578
+ var COMPONENT_KEY = /^(input|cached_input|output)\.[a-z_]{1,32}$/;
1579
+ function componentsBody(components) {
1580
+ if (!components) return {};
1581
+ const out = {};
1582
+ for (const [key, value] of Object.entries(components)) {
1583
+ if (COMPONENT_KEY.test(key) && count(value) > 0) out[key] = count(value);
1584
+ }
1585
+ return Object.keys(out).length > 0 ? { components: out } : {};
1586
+ }
1577
1587
  function isEmptyProviderUsage(usage) {
1578
1588
  return !usage.usage_id?.trim() || !usage.model?.trim() || count(usage.input_tokens) === 0 && count(usage.output_tokens) === 0 && count(usage.cached_input_tokens) === 0 && count(usage.characters) === 0 && !(typeof usage.seconds === "number" && usage.seconds > 0);
1579
1589
  }
@@ -1586,7 +1596,7 @@ async function reportProviderSessionUsage(transport, usage, options = {}) {
1586
1596
  });
1587
1597
  return "ok";
1588
1598
  } catch (error) {
1589
- if (error instanceof chunk45PIBJ3K_cjs.MatrxApiError) {
1599
+ if (error instanceof chunk2XQZ7UUM_cjs.MatrxApiError) {
1590
1600
  const status = error.status;
1591
1601
  if (status >= 400 && status < 500 && status !== 401 && status !== 408 && status !== 425 && status !== 429) {
1592
1602
  console.warn(`[provider-usage] server refused ${usage.provider} usage ${usage.usage_id} (${status})`);
@@ -2282,115 +2292,115 @@ Object.defineProperty(exports, "toCredentialsPort", {
2282
2292
  });
2283
2293
  Object.defineProperty(exports, "BackendApiError", {
2284
2294
  enumerable: true,
2285
- get: function () { return chunk45PIBJ3K_cjs.BackendApiError; }
2295
+ get: function () { return chunk2XQZ7UUM_cjs.BackendApiError; }
2286
2296
  });
2287
2297
  Object.defineProperty(exports, "CONTRACT_SHA256", {
2288
2298
  enumerable: true,
2289
- get: function () { return chunk45PIBJ3K_cjs.CONTRACT_SHA256; }
2299
+ get: function () { return chunk2XQZ7UUM_cjs.CONTRACT_SHA256; }
2290
2300
  });
2291
2301
  Object.defineProperty(exports, "DEPLOYMENTS", {
2292
2302
  enumerable: true,
2293
- get: function () { return chunk45PIBJ3K_cjs.DEPLOYMENTS; }
2303
+ get: function () { return chunk2XQZ7UUM_cjs.DEPLOYMENTS; }
2294
2304
  });
2295
2305
  Object.defineProperty(exports, "DOMAINS", {
2296
2306
  enumerable: true,
2297
- get: function () { return chunk45PIBJ3K_cjs.DOMAINS; }
2307
+ get: function () { return chunk2XQZ7UUM_cjs.DOMAINS; }
2298
2308
  });
2299
2309
  Object.defineProperty(exports, "MatrxApiError", {
2300
2310
  enumerable: true,
2301
- get: function () { return chunk45PIBJ3K_cjs.MatrxApiError; }
2311
+ get: function () { return chunk2XQZ7UUM_cjs.MatrxApiError; }
2302
2312
  });
2303
2313
  Object.defineProperty(exports, "OrganizationContextError", {
2304
2314
  enumerable: true,
2305
- get: function () { return chunk45PIBJ3K_cjs.OrganizationContextError; }
2315
+ get: function () { return chunk2XQZ7UUM_cjs.OrganizationContextError; }
2306
2316
  });
2307
2317
  Object.defineProperty(exports, "StreamTransportError", {
2308
2318
  enumerable: true,
2309
- get: function () { return chunk45PIBJ3K_cjs.StreamTransportError; }
2319
+ get: function () { return chunk2XQZ7UUM_cjs.StreamTransportError; }
2310
2320
  });
2311
2321
  Object.defineProperty(exports, "applyOrganizationContextHeader", {
2312
2322
  enumerable: true,
2313
- get: function () { return chunk45PIBJ3K_cjs.applyOrganizationContextHeader; }
2323
+ get: function () { return chunk2XQZ7UUM_cjs.applyOrganizationContextHeader; }
2314
2324
  });
2315
2325
  Object.defineProperty(exports, "assertOrganizationMatchesOperation", {
2316
2326
  enumerable: true,
2317
- get: function () { return chunk45PIBJ3K_cjs.assertOrganizationMatchesOperation; }
2327
+ get: function () { return chunk2XQZ7UUM_cjs.assertOrganizationMatchesOperation; }
2318
2328
  });
2319
2329
  Object.defineProperty(exports, "assertQueryOrganizationMatchesContext", {
2320
2330
  enumerable: true,
2321
- get: function () { return chunk45PIBJ3K_cjs.assertQueryOrganizationMatchesContext; }
2331
+ get: function () { return chunk2XQZ7UUM_cjs.assertQueryOrganizationMatchesContext; }
2322
2332
  });
2323
2333
  Object.defineProperty(exports, "createApi", {
2324
2334
  enumerable: true,
2325
- get: function () { return chunk45PIBJ3K_cjs.createApi; }
2335
+ get: function () { return chunk2XQZ7UUM_cjs.createApi; }
2326
2336
  });
2327
2337
  Object.defineProperty(exports, "createOrganizationOperation", {
2328
2338
  enumerable: true,
2329
- get: function () { return chunk45PIBJ3K_cjs.createOrganizationOperation; }
2339
+ get: function () { return chunk2XQZ7UUM_cjs.createOrganizationOperation; }
2330
2340
  });
2331
2341
  Object.defineProperty(exports, "describeBackendFailure", {
2332
2342
  enumerable: true,
2333
- get: function () { return chunk45PIBJ3K_cjs.describeBackendFailure; }
2343
+ get: function () { return chunk2XQZ7UUM_cjs.describeBackendFailure; }
2334
2344
  });
2335
2345
  Object.defineProperty(exports, "extractMatrxErrorCode", {
2336
2346
  enumerable: true,
2337
- get: function () { return chunk45PIBJ3K_cjs.extractMatrxErrorCode; }
2347
+ get: function () { return chunk2XQZ7UUM_cjs.extractMatrxErrorCode; }
2338
2348
  });
2339
2349
  Object.defineProperty(exports, "extractMatrxErrorMessage", {
2340
2350
  enumerable: true,
2341
- get: function () { return chunk45PIBJ3K_cjs.extractMatrxErrorMessage; }
2351
+ get: function () { return chunk2XQZ7UUM_cjs.extractMatrxErrorMessage; }
2342
2352
  });
2343
2353
  Object.defineProperty(exports, "getUserMessage", {
2344
2354
  enumerable: true,
2345
- get: function () { return chunk45PIBJ3K_cjs.getUserMessage; }
2355
+ get: function () { return chunk2XQZ7UUM_cjs.getUserMessage; }
2346
2356
  });
2347
2357
  Object.defineProperty(exports, "isBinaryType", {
2348
2358
  enumerable: true,
2349
- get: function () { return chunk45PIBJ3K_cjs.isBinaryType; }
2359
+ get: function () { return chunk2XQZ7UUM_cjs.isBinaryType; }
2350
2360
  });
2351
2361
  Object.defineProperty(exports, "isGenericUserMessage", {
2352
2362
  enumerable: true,
2353
- get: function () { return chunk45PIBJ3K_cjs.isGenericUserMessage; }
2363
+ get: function () { return chunk2XQZ7UUM_cjs.isGenericUserMessage; }
2354
2364
  });
2355
2365
  Object.defineProperty(exports, "isStreamTransportLost", {
2356
2366
  enumerable: true,
2357
- get: function () { return chunk45PIBJ3K_cjs.isStreamTransportLost; }
2367
+ get: function () { return chunk2XQZ7UUM_cjs.isStreamTransportLost; }
2358
2368
  });
2359
2369
  Object.defineProperty(exports, "openJsonOrStream", {
2360
2370
  enumerable: true,
2361
- get: function () { return chunk45PIBJ3K_cjs.openJsonOrStream; }
2371
+ get: function () { return chunk2XQZ7UUM_cjs.openJsonOrStream; }
2362
2372
  });
2363
2373
  Object.defineProperty(exports, "openStream", {
2364
2374
  enumerable: true,
2365
- get: function () { return chunk45PIBJ3K_cjs.openStream; }
2375
+ get: function () { return chunk2XQZ7UUM_cjs.openStream; }
2366
2376
  });
2367
2377
  Object.defineProperty(exports, "parseCallApiError", {
2368
2378
  enumerable: true,
2369
- get: function () { return chunk45PIBJ3K_cjs.parseCallApiError; }
2379
+ get: function () { return chunk2XQZ7UUM_cjs.parseCallApiError; }
2370
2380
  });
2371
2381
  Object.defineProperty(exports, "parseHttpError", {
2372
2382
  enumerable: true,
2373
- get: function () { return chunk45PIBJ3K_cjs.parseHttpError; }
2383
+ get: function () { return chunk2XQZ7UUM_cjs.parseHttpError; }
2374
2384
  });
2375
2385
  Object.defineProperty(exports, "parseHttpErrorBody", {
2376
2386
  enumerable: true,
2377
- get: function () { return chunk45PIBJ3K_cjs.parseHttpErrorBody; }
2387
+ get: function () { return chunk2XQZ7UUM_cjs.parseHttpErrorBody; }
2378
2388
  });
2379
2389
  Object.defineProperty(exports, "parsePersistedBackendError", {
2380
2390
  enumerable: true,
2381
- get: function () { return chunk45PIBJ3K_cjs.parsePersistedBackendError; }
2391
+ get: function () { return chunk2XQZ7UUM_cjs.parsePersistedBackendError; }
2382
2392
  });
2383
2393
  Object.defineProperty(exports, "parseStreamError", {
2384
2394
  enumerable: true,
2385
- get: function () { return chunk45PIBJ3K_cjs.parseStreamError; }
2395
+ get: function () { return chunk2XQZ7UUM_cjs.parseStreamError; }
2386
2396
  });
2387
2397
  Object.defineProperty(exports, "requireOrganizationContext", {
2388
2398
  enumerable: true,
2389
- get: function () { return chunk45PIBJ3K_cjs.requireOrganizationContext; }
2399
+ get: function () { return chunk2XQZ7UUM_cjs.requireOrganizationContext; }
2390
2400
  });
2391
2401
  Object.defineProperty(exports, "unwrapUpstreamError", {
2392
2402
  enumerable: true,
2393
- get: function () { return chunk45PIBJ3K_cjs.unwrapUpstreamError; }
2403
+ get: function () { return chunk2XQZ7UUM_cjs.unwrapUpstreamError; }
2394
2404
  });
2395
2405
  Object.defineProperty(exports, "AbortedError", {
2396
2406
  enumerable: true,
package/dist/index.d.cts CHANGED
@@ -1,5 +1,5 @@
1
- import { M as MatrxStreamEnvelope, b as MatrxNdjsonIssue, U as UploadProgress, c as MatrxStreamEnvelopeObservation, d as MatrxSseFrame } from './index-BneRZdQz.cjs';
2
- export { A as Api, e as ApiRequestInfo, a as ApiStream, f as AuthTier, g as CONTRACT_SHA256, C as CallOptions, h as CreateApiOptions, D as DEPLOYMENTS, i as DOMAINS, j as DeploymentName, E as Environment, H as HttpMethod, J as JsonOrStream, N as NdjsonEvent, O as OperationArgs, k as OperationDescriptor, l as OrgRule, S as SseEvent, m as StreamKind, n as createApi, o as isBinaryType, p as openJsonOrStream, q as openStream } from './index-BneRZdQz.cjs';
1
+ import { M as MatrxStreamEnvelope, b as MatrxNdjsonIssue, U as UploadProgress, c as MatrxStreamEnvelopeObservation, d as MatrxSseFrame } from './index-A1nOdg4F.cjs';
2
+ export { A as Api, e as ApiRequestInfo, a as ApiStream, f as AuthTier, g as CONTRACT_SHA256, C as CallOptions, h as CreateApiOptions, D as DEPLOYMENTS, i as DOMAINS, j as DeploymentName, E as Environment, H as HttpMethod, J as JsonOrStream, N as NdjsonEvent, O as OperationArgs, k as OperationDescriptor, l as OrgRule, S as SseEvent, m as StreamKind, n as createApi, o as isBinaryType, p as openJsonOrStream, q as openStream } from './index-A1nOdg4F.cjs';
3
3
  import { CredentialsPort } from '@ai-matrx/auth/credentials';
4
4
  export { API_KEY_PREFIX, CredentialsPort, CredentialsSetting, MATRX_HEADERS, MatrxCredential, MatrxCredentialKind, credentialToHeaders, toCredentialsPort } from '@ai-matrx/auth/credentials';
5
5
  export { AbortedError, ConnectTimeoutError, HeartbeatTimeoutError, HttpError, NetError, NetErrorCode, NetworkError, OfflineError, ResilientFetchOptions, ResilientFetchResult, RetryOptions, StreamMonitorOptions, TotalTimeoutError, extractErrorMessage, isNetError, isTransportFailure, monitorStream, resilientFetch, toNetError, withRetry } from './net.cjs';
@@ -1819,7 +1819,7 @@ declare function followServerJob(transport: MatrxTransport, options: FollowServe
1819
1819
  */
1820
1820
 
1821
1821
  /** The providers whose sessions a browser holds directly (server allow-list). */
1822
- type MatrxClientSessionProvider = "openai" | "xai" | "cartesia";
1822
+ type MatrxClientSessionProvider = "openai" | "xai" | "google" | "cartesia";
1823
1823
  interface ProviderSessionFailure {
1824
1824
  provider: MatrxClientSessionProvider;
1825
1825
  model?: string | null;
@@ -1879,6 +1879,11 @@ interface ProviderSessionUsage {
1879
1879
  cached_input_tokens?: number;
1880
1880
  characters?: number;
1881
1881
  seconds?: number;
1882
+ /**
1883
+ * Per-modality token counts (`input.audio`, `cached_input.audio`, `output.audio`, `input.image`…),
1884
+ * each a subset of its flat count, priced at the catalog's `component_prices`.
1885
+ */
1886
+ components?: Record<string, number>;
1882
1887
  }
1883
1888
  interface ProviderSessionUsageReceipt {
1884
1889
  billed: boolean;
@@ -1888,7 +1893,7 @@ interface ProviderSessionUsageReceipt {
1888
1893
  /** `ok` = the server has it (billed or already had it). `retry` = transient. `drop` = refused for good. */
1889
1894
  type ProviderUsageSendResult = "ok" | "retry" | "drop";
1890
1895
  /** The body the server accepts — bounded exactly as its model bounds it. */
1891
- declare function providerSessionUsageBody(usage: ProviderSessionUsage): Record<string, string | number>;
1896
+ declare function providerSessionUsageBody(usage: ProviderSessionUsage): Record<string, string | number | Record<string, number>>;
1892
1897
  /** True when the unit carries nothing the server could price. */
1893
1898
  declare function isEmptyProviderUsage(usage: ProviderSessionUsage): boolean;
1894
1899
  /** One attempt over the transport. Never throws; the result says whether to try again. */
package/dist/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
- import { M as MatrxStreamEnvelope, b as MatrxNdjsonIssue, U as UploadProgress, c as MatrxStreamEnvelopeObservation, d as MatrxSseFrame } from './index-BneRZdQz.js';
2
- export { A as Api, e as ApiRequestInfo, a as ApiStream, f as AuthTier, g as CONTRACT_SHA256, C as CallOptions, h as CreateApiOptions, D as DEPLOYMENTS, i as DOMAINS, j as DeploymentName, E as Environment, H as HttpMethod, J as JsonOrStream, N as NdjsonEvent, O as OperationArgs, k as OperationDescriptor, l as OrgRule, S as SseEvent, m as StreamKind, n as createApi, o as isBinaryType, p as openJsonOrStream, q as openStream } from './index-BneRZdQz.js';
1
+ import { M as MatrxStreamEnvelope, b as MatrxNdjsonIssue, U as UploadProgress, c as MatrxStreamEnvelopeObservation, d as MatrxSseFrame } from './index-A1nOdg4F.js';
2
+ export { A as Api, e as ApiRequestInfo, a as ApiStream, f as AuthTier, g as CONTRACT_SHA256, C as CallOptions, h as CreateApiOptions, D as DEPLOYMENTS, i as DOMAINS, j as DeploymentName, E as Environment, H as HttpMethod, J as JsonOrStream, N as NdjsonEvent, O as OperationArgs, k as OperationDescriptor, l as OrgRule, S as SseEvent, m as StreamKind, n as createApi, o as isBinaryType, p as openJsonOrStream, q as openStream } from './index-A1nOdg4F.js';
3
3
  import { CredentialsPort } from '@ai-matrx/auth/credentials';
4
4
  export { API_KEY_PREFIX, CredentialsPort, CredentialsSetting, MATRX_HEADERS, MatrxCredential, MatrxCredentialKind, credentialToHeaders, toCredentialsPort } from '@ai-matrx/auth/credentials';
5
5
  export { AbortedError, ConnectTimeoutError, HeartbeatTimeoutError, HttpError, NetError, NetErrorCode, NetworkError, OfflineError, ResilientFetchOptions, ResilientFetchResult, RetryOptions, StreamMonitorOptions, TotalTimeoutError, extractErrorMessage, isNetError, isTransportFailure, monitorStream, resilientFetch, toNetError, withRetry } from './net.js';
@@ -1819,7 +1819,7 @@ declare function followServerJob(transport: MatrxTransport, options: FollowServe
1819
1819
  */
1820
1820
 
1821
1821
  /** The providers whose sessions a browser holds directly (server allow-list). */
1822
- type MatrxClientSessionProvider = "openai" | "xai" | "cartesia";
1822
+ type MatrxClientSessionProvider = "openai" | "xai" | "google" | "cartesia";
1823
1823
  interface ProviderSessionFailure {
1824
1824
  provider: MatrxClientSessionProvider;
1825
1825
  model?: string | null;
@@ -1879,6 +1879,11 @@ interface ProviderSessionUsage {
1879
1879
  cached_input_tokens?: number;
1880
1880
  characters?: number;
1881
1881
  seconds?: number;
1882
+ /**
1883
+ * Per-modality token counts (`input.audio`, `cached_input.audio`, `output.audio`, `input.image`…),
1884
+ * each a subset of its flat count, priced at the catalog's `component_prices`.
1885
+ */
1886
+ components?: Record<string, number>;
1882
1887
  }
1883
1888
  interface ProviderSessionUsageReceipt {
1884
1889
  billed: boolean;
@@ -1888,7 +1893,7 @@ interface ProviderSessionUsageReceipt {
1888
1893
  /** `ok` = the server has it (billed or already had it). `retry` = transient. `drop` = refused for good. */
1889
1894
  type ProviderUsageSendResult = "ok" | "retry" | "drop";
1890
1895
  /** The body the server accepts — bounded exactly as its model bounds it. */
1891
- declare function providerSessionUsageBody(usage: ProviderSessionUsage): Record<string, string | number>;
1896
+ declare function providerSessionUsageBody(usage: ProviderSessionUsage): Record<string, string | number | Record<string, number>>;
1892
1897
  /** True when the unit carries nothing the server could price. */
1893
1898
  declare function isEmptyProviderUsage(usage: ProviderSessionUsage): boolean;
1894
1899
  /** One attempt over the transport. Never throws; the result says whether to try again. */
package/dist/index.js CHANGED
@@ -1,7 +1,7 @@
1
1
  export { monitorStream } from './chunk-YTEOFGFC.js';
2
2
  export { API_KEY_PREFIX, MATRX_HEADERS, credentialToHeaders, toCredentialsPort } from './chunk-7MZPBCFV.js';
3
- import { OrganizationContextError, sendOnWire, WIRE_FETCH_OPTION_KEYS, BackendApiError, parseHttpError, MatrxApiError, applyOrganizationContextHeader, extractMatrxErrorCode, extractMatrxErrorMessage, readMatrxNdjsonStream, readMatrxSseStream, requireOrganizationContext, StreamTransportError } from './chunk-YK5KJICX.js';
4
- export { BackendApiError, CONTRACT_SHA256, DEPLOYMENTS, DOMAINS, MatrxApiError, OrganizationContextError, StreamTransportError, applyOrganizationContextHeader, assertOrganizationMatchesOperation, assertQueryOrganizationMatchesContext, createApi, createOrganizationOperation, describeBackendFailure, extractMatrxErrorCode, extractMatrxErrorMessage, getUserMessage, isBinaryType, isGenericUserMessage, isStreamTransportLost, openJsonOrStream, openStream, parseCallApiError, parseHttpError, parseHttpErrorBody, parsePersistedBackendError, parseStreamError, requireOrganizationContext, unwrapUpstreamError } from './chunk-YK5KJICX.js';
3
+ import { OrganizationContextError, sendOnWire, WIRE_FETCH_OPTION_KEYS, BackendApiError, parseHttpError, MatrxApiError, applyOrganizationContextHeader, extractMatrxErrorCode, extractMatrxErrorMessage, readMatrxNdjsonStream, readMatrxSseStream, requireOrganizationContext, StreamTransportError } from './chunk-DVYCIFMH.js';
4
+ export { BackendApiError, CONTRACT_SHA256, DEPLOYMENTS, DOMAINS, MatrxApiError, OrganizationContextError, StreamTransportError, applyOrganizationContextHeader, assertOrganizationMatchesOperation, assertQueryOrganizationMatchesContext, createApi, createOrganizationOperation, describeBackendFailure, extractMatrxErrorCode, extractMatrxErrorMessage, getUserMessage, isBinaryType, isGenericUserMessage, isStreamTransportLost, openJsonOrStream, openStream, parseCallApiError, parseHttpError, parseHttpErrorBody, parsePersistedBackendError, parseStreamError, requireOrganizationContext, unwrapUpstreamError } from './chunk-DVYCIFMH.js';
5
5
  import { isNetError, extractErrorMessage } from './chunk-KIEAFMKB.js';
6
6
  export { AbortedError, ConnectTimeoutError, HeartbeatTimeoutError, HttpError, NetError, NetworkError, OfflineError, TotalTimeoutError, extractErrorMessage, isNetError, isTransportFailure, resilientFetch, toNetError, withRetry } from './chunk-KIEAFMKB.js';
7
7
  import { formatDurationSeconds } from '@ai-matrx/kit/format';
@@ -1571,9 +1571,19 @@ function providerSessionUsageBody(usage) {
1571
1571
  output_tokens: count(usage.output_tokens),
1572
1572
  cached_input_tokens: count(usage.cached_input_tokens),
1573
1573
  characters: count(usage.characters),
1574
- seconds
1574
+ seconds,
1575
+ ...componentsBody(usage.components)
1575
1576
  };
1576
1577
  }
1578
+ var COMPONENT_KEY = /^(input|cached_input|output)\.[a-z_]{1,32}$/;
1579
+ function componentsBody(components) {
1580
+ if (!components) return {};
1581
+ const out = {};
1582
+ for (const [key, value] of Object.entries(components)) {
1583
+ if (COMPONENT_KEY.test(key) && count(value) > 0) out[key] = count(value);
1584
+ }
1585
+ return Object.keys(out).length > 0 ? { components: out } : {};
1586
+ }
1577
1587
  function isEmptyProviderUsage(usage) {
1578
1588
  return !usage.usage_id?.trim() || !usage.model?.trim() || count(usage.input_tokens) === 0 && count(usage.output_tokens) === 0 && count(usage.cached_input_tokens) === 0 && count(usage.characters) === 0 && !(typeof usage.seconds === "number" && usage.seconds > 0);
1579
1589
  }