@1mcp/agent 0.40.0-beta.0 → 0.40.0-beta.2

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 (347) hide show
  1. package/README.md +8 -0
  2. package/build/admin/assets/{admin-OAuthServicesWorkspace-Bu74Bzt5.js → admin-OAuthServicesWorkspace-Cdoty-OD.js} +1 -1
  3. package/build/admin/assets/admin-console-XzkKAJze.js +3 -0
  4. package/build/admin/index.html +1 -1
  5. package/build/auth/oauthDiagnostics.d.ts +4 -0
  6. package/build/auth/oauthDiagnostics.d.ts.map +1 -1
  7. package/build/auth/oauthDiagnostics.js +4 -0
  8. package/build/auth/oauthDiagnostics.js.map +1 -1
  9. package/build/auth/oauthEndpointFetch.d.ts +2 -1
  10. package/build/auth/oauthEndpointFetch.d.ts.map +1 -1
  11. package/build/auth/oauthEndpointFetch.js +17 -6
  12. package/build/auth/oauthEndpointFetch.js.map +1 -1
  13. package/build/auth/sessionTypes.d.ts +1 -1
  14. package/build/cli.d.ts.map +1 -1
  15. package/build/cli.js +9 -1
  16. package/build/cli.js.map +1 -1
  17. package/build/commands/app/backups.d.ts.map +1 -1
  18. package/build/commands/app/backups.js +2 -1
  19. package/build/commands/app/backups.js.map +1 -1
  20. package/build/commands/app/consolidate.d.ts.map +1 -1
  21. package/build/commands/app/consolidate.js +5 -4
  22. package/build/commands/app/consolidate.js.map +1 -1
  23. package/build/commands/app/discover.d.ts.map +1 -1
  24. package/build/commands/app/discover.js +2 -1
  25. package/build/commands/app/discover.js.map +1 -1
  26. package/build/commands/app/index.d.ts.map +1 -1
  27. package/build/commands/app/index.js +30 -15
  28. package/build/commands/app/index.js.map +1 -1
  29. package/build/commands/app/restore.d.ts.map +1 -1
  30. package/build/commands/app/restore.js +6 -5
  31. package/build/commands/app/restore.js.map +1 -1
  32. package/build/commands/app/status.d.ts.map +1 -1
  33. package/build/commands/app/status.js +2 -1
  34. package/build/commands/app/status.js.map +1 -1
  35. package/build/commands/bootstrap/bootstrap.d.ts +2 -2
  36. package/build/commands/bootstrap/bootstrap.d.ts.map +1 -1
  37. package/build/commands/bootstrap/bootstrap.js +54 -31
  38. package/build/commands/bootstrap/bootstrap.js.map +1 -1
  39. package/build/commands/bootstrap/bootstrapOwnership.d.ts.map +1 -1
  40. package/build/commands/bootstrap/bootstrapOwnership.js +74 -42
  41. package/build/commands/bootstrap/bootstrapOwnership.js.map +1 -1
  42. package/build/commands/bootstrap/index.d.ts.map +1 -1
  43. package/build/commands/bootstrap/index.js +5 -2
  44. package/build/commands/bootstrap/index.js.map +1 -1
  45. package/build/commands/cliSetup/index.d.ts.map +1 -1
  46. package/build/commands/cliSetup/index.js +14 -11
  47. package/build/commands/cliSetup/index.js.map +1 -1
  48. package/build/commands/inspect/index.js +1 -1
  49. package/build/commands/inspect/index.js.map +1 -1
  50. package/build/commands/inspect/inspect.d.ts.map +1 -1
  51. package/build/commands/inspect/inspect.js +4 -1
  52. package/build/commands/inspect/inspect.js.map +1 -1
  53. package/build/commands/inspect/inspectUtils.d.ts +1 -0
  54. package/build/commands/inspect/inspectUtils.d.ts.map +1 -1
  55. package/build/commands/inspect/inspectUtils.js +10 -2
  56. package/build/commands/inspect/inspectUtils.js.map +1 -1
  57. package/build/commands/mcp/add.d.ts.map +1 -1
  58. package/build/commands/mcp/add.js +2 -1
  59. package/build/commands/mcp/add.js.map +1 -1
  60. package/build/commands/mcp/enable.d.ts.map +1 -1
  61. package/build/commands/mcp/enable.js +2 -1
  62. package/build/commands/mcp/enable.js.map +1 -1
  63. package/build/commands/mcp/index.d.ts.map +1 -1
  64. package/build/commands/mcp/index.js +85 -56
  65. package/build/commands/mcp/index.js.map +1 -1
  66. package/build/commands/mcp/install.d.ts.map +1 -1
  67. package/build/commands/mcp/install.js +6 -5
  68. package/build/commands/mcp/install.js.map +1 -1
  69. package/build/commands/mcp/list.d.ts.map +1 -1
  70. package/build/commands/mcp/list.js +2 -1
  71. package/build/commands/mcp/list.js.map +1 -1
  72. package/build/commands/mcp/remove.d.ts.map +1 -1
  73. package/build/commands/mcp/remove.js +2 -1
  74. package/build/commands/mcp/remove.js.map +1 -1
  75. package/build/commands/mcp/status.d.ts.map +1 -1
  76. package/build/commands/mcp/status.js +2 -1
  77. package/build/commands/mcp/status.js.map +1 -1
  78. package/build/commands/mcp/tokens.d.ts.map +1 -1
  79. package/build/commands/mcp/tokens.js +5 -4
  80. package/build/commands/mcp/tokens.js.map +1 -1
  81. package/build/commands/mcp/tools.d.ts.map +1 -1
  82. package/build/commands/mcp/tools.js +17 -8
  83. package/build/commands/mcp/tools.js.map +1 -1
  84. package/build/commands/preset/delete.d.ts.map +1 -1
  85. package/build/commands/preset/delete.js +2 -1
  86. package/build/commands/preset/delete.js.map +1 -1
  87. package/build/commands/preset/edit.d.ts.map +1 -1
  88. package/build/commands/preset/edit.js +3 -2
  89. package/build/commands/preset/edit.js.map +1 -1
  90. package/build/commands/preset/index.d.ts.map +1 -1
  91. package/build/commands/preset/index.js +34 -17
  92. package/build/commands/preset/index.js.map +1 -1
  93. package/build/commands/preset/interactive.d.ts.map +1 -1
  94. package/build/commands/preset/interactive.js +2 -1
  95. package/build/commands/preset/interactive.js.map +1 -1
  96. package/build/commands/preset/list.d.ts.map +1 -1
  97. package/build/commands/preset/list.js +2 -1
  98. package/build/commands/preset/list.js.map +1 -1
  99. package/build/commands/preset/show.d.ts.map +1 -1
  100. package/build/commands/preset/show.js +2 -1
  101. package/build/commands/preset/show.js.map +1 -1
  102. package/build/commands/preset/test.d.ts.map +1 -1
  103. package/build/commands/preset/test.js +2 -1
  104. package/build/commands/preset/test.js.map +1 -1
  105. package/build/commands/preset/url.d.ts.map +1 -1
  106. package/build/commands/preset/url.js +2 -1
  107. package/build/commands/preset/url.js.map +1 -1
  108. package/build/commands/proxy/proxy.d.ts.map +1 -1
  109. package/build/commands/proxy/proxy.js +4 -0
  110. package/build/commands/proxy/proxy.js.map +1 -1
  111. package/build/commands/registry/index.d.ts.map +1 -1
  112. package/build/commands/registry/index.js +21 -10
  113. package/build/commands/registry/index.js.map +1 -1
  114. package/build/commands/registry/search.d.ts.map +1 -1
  115. package/build/commands/registry/search.js +2 -1
  116. package/build/commands/registry/search.js.map +1 -1
  117. package/build/commands/registry/show.d.ts.map +1 -1
  118. package/build/commands/registry/show.js +2 -1
  119. package/build/commands/registry/show.js.map +1 -1
  120. package/build/commands/registry/status.d.ts.map +1 -1
  121. package/build/commands/registry/status.js +2 -1
  122. package/build/commands/registry/status.js.map +1 -1
  123. package/build/commands/registry/versions.d.ts.map +1 -1
  124. package/build/commands/registry/versions.js +2 -1
  125. package/build/commands/registry/versions.js.map +1 -1
  126. package/build/commands/run/index.d.ts.map +1 -1
  127. package/build/commands/run/index.js +9 -1
  128. package/build/commands/run/index.js.map +1 -1
  129. package/build/commands/run/run.d.ts +2 -0
  130. package/build/commands/run/run.d.ts.map +1 -1
  131. package/build/commands/run/run.js +23 -5
  132. package/build/commands/run/run.js.map +1 -1
  133. package/build/commands/run/stdoutBudget.d.ts +10 -0
  134. package/build/commands/run/stdoutBudget.d.ts.map +1 -0
  135. package/build/commands/run/stdoutBudget.js +102 -0
  136. package/build/commands/run/stdoutBudget.js.map +1 -0
  137. package/build/commands/serve/cooperativeRuntime.d.ts.map +1 -1
  138. package/build/commands/serve/cooperativeRuntime.js +7 -0
  139. package/build/commands/serve/cooperativeRuntime.js.map +1 -1
  140. package/build/commands/serve/index.d.ts.map +1 -1
  141. package/build/commands/serve/index.js +5 -0
  142. package/build/commands/serve/index.js.map +1 -1
  143. package/build/commands/serve/serveBackground.d.ts.map +1 -1
  144. package/build/commands/serve/serveBackground.js +12 -0
  145. package/build/commands/serve/serveBackground.js.map +1 -1
  146. package/build/commands/shared/commandRunner.d.ts +2 -1
  147. package/build/commands/shared/commandRunner.d.ts.map +1 -1
  148. package/build/commands/shared/commandRunner.js +15 -3
  149. package/build/commands/shared/commandRunner.js.map +1 -1
  150. package/build/commands/shared/inspectApiSchemas.d.ts +8 -8
  151. package/build/commands/shared/productCommandFamily.d.ts +4 -0
  152. package/build/commands/shared/productCommandFamily.d.ts.map +1 -0
  153. package/build/commands/shared/productCommandFamily.js +27 -0
  154. package/build/commands/shared/productCommandFamily.js.map +1 -0
  155. package/build/commands/shared/projectOwnerStore.d.ts +22 -5
  156. package/build/commands/shared/projectOwnerStore.d.ts.map +1 -1
  157. package/build/commands/shared/projectOwnerStore.js +125 -29
  158. package/build/commands/shared/projectOwnerStore.js.map +1 -1
  159. package/build/commands/telemetry/index.d.ts +3 -0
  160. package/build/commands/telemetry/index.d.ts.map +1 -0
  161. package/build/commands/telemetry/index.js +47 -0
  162. package/build/commands/telemetry/index.js.map +1 -0
  163. package/build/config/configManager.d.ts.map +1 -1
  164. package/build/config/configManager.js +10 -0
  165. package/build/config/configManager.js.map +1 -1
  166. package/build/config/productTelemetryBootstrap.d.ts +12 -0
  167. package/build/config/productTelemetryBootstrap.d.ts.map +1 -0
  168. package/build/config/productTelemetryBootstrap.js +40 -0
  169. package/build/config/productTelemetryBootstrap.js.map +1 -0
  170. package/build/constants/mcp.d.ts +1 -1
  171. package/build/constants/mcp.js +1 -1
  172. package/build/core/capabilities/lazyLoadingOrchestrator.d.ts +2 -0
  173. package/build/core/capabilities/lazyLoadingOrchestrator.d.ts.map +1 -1
  174. package/build/core/capabilities/lazyLoadingOrchestrator.js +4 -0
  175. package/build/core/capabilities/lazyLoadingOrchestrator.js.map +1 -1
  176. package/build/core/capabilities/runtimeCapabilityCatalog.d.ts.map +1 -1
  177. package/build/core/capabilities/runtimeCapabilityCatalog.js +10 -0
  178. package/build/core/capabilities/runtimeCapabilityCatalog.js.map +1 -1
  179. package/build/core/server/runtimeLaunchIpc.d.ts +19 -13
  180. package/build/core/server/runtimeLaunchIpc.d.ts.map +1 -1
  181. package/build/core/server/runtimeReplacementConfig.d.ts +19 -13
  182. package/build/core/server/runtimeReplacementConfig.d.ts.map +1 -1
  183. package/build/core/tools/handlers/serverManagementHandler.d.ts +23 -9
  184. package/build/core/tools/handlers/serverManagementHandler.d.ts.map +1 -1
  185. package/build/core/tools/internal/adapters/helpers/configTransformers.d.ts +4 -2
  186. package/build/core/tools/internal/adapters/helpers/configTransformers.d.ts.map +1 -1
  187. package/build/core/tools/internal/schemas/discovery.d.ts +3 -3
  188. package/build/core/tools/internal/schemas/edit.d.ts +5 -6
  189. package/build/core/tools/internal/schemas/edit.d.ts.map +1 -1
  190. package/build/core/tools/internal/schemas/edit.js +2 -10
  191. package/build/core/tools/internal/schemas/edit.js.map +1 -1
  192. package/build/core/tools/internal/schemas/index.d.ts +18 -13
  193. package/build/core/tools/internal/schemas/index.d.ts.map +1 -1
  194. package/build/core/tools/internal/schemas/installation.d.ts +1 -1
  195. package/build/core/tools/internal/schemas/management.d.ts +9 -9
  196. package/build/core/types/transport.d.ts +36 -24
  197. package/build/core/types/transport.d.ts.map +1 -1
  198. package/build/core/types/transport.js +13 -0
  199. package/build/core/types/transport.js.map +1 -1
  200. package/build/domains/admin/adminConfiguredServerService.d.ts.map +1 -1
  201. package/build/domains/admin/adminConfiguredServerService.js +30 -14
  202. package/build/domains/admin/adminConfiguredServerService.js.map +1 -1
  203. package/build/domains/admin/adminOperationService.d.ts +1 -0
  204. package/build/domains/admin/adminOperationService.d.ts.map +1 -1
  205. package/build/domains/admin/adminOperationService.js +38 -0
  206. package/build/domains/admin/adminOperationService.js.map +1 -1
  207. package/build/domains/installation/serverInstallationSourceResolution.js +1 -0
  208. package/build/domains/installation/serverInstallationSourceResolution.js.map +1 -1
  209. package/build/domains/installation/serverInstallationTypes.d.ts +1 -0
  210. package/build/domains/installation/serverInstallationTypes.d.ts.map +1 -1
  211. package/build/domains/preset/services/presetErrorHandler.d.ts.map +1 -1
  212. package/build/domains/preset/services/presetErrorHandler.js +3 -2
  213. package/build/domains/preset/services/presetErrorHandler.js.map +1 -1
  214. package/build/gateway/adapters/legacy/legacyOutboundEraAdapter.d.ts.map +1 -1
  215. package/build/gateway/adapters/legacy/legacyOutboundEraAdapter.js +2 -2
  216. package/build/gateway/adapters/legacy/legacyOutboundEraAdapter.js.map +1 -1
  217. package/build/gateway/adapters/modern/modernOutboundEraAdapter.js +2 -2
  218. package/build/gateway/adapters/modern/modernOutboundEraAdapter.js.map +1 -1
  219. package/build/gateway/contracts/gatewayFailure.d.ts.map +1 -1
  220. package/build/gateway/contracts/gatewayFailure.js +5 -0
  221. package/build/gateway/contracts/gatewayFailure.js.map +1 -1
  222. package/build/gateway/core/gatewayDispatcher.d.ts.map +1 -1
  223. package/build/gateway/core/gatewayDispatcher.js +2 -3
  224. package/build/gateway/core/gatewayDispatcher.js.map +1 -1
  225. package/build/globalOptions.d.ts +24 -11
  226. package/build/globalOptions.d.ts.map +1 -1
  227. package/build/globalOptions.js +60 -1
  228. package/build/globalOptions.js.map +1 -1
  229. package/build/productTelemetry/commandScope.d.ts +8 -0
  230. package/build/productTelemetry/commandScope.d.ts.map +1 -0
  231. package/build/productTelemetry/commandScope.js +50 -0
  232. package/build/productTelemetry/commandScope.js.map +1 -0
  233. package/build/productTelemetry/contract.d.ts +136 -0
  234. package/build/productTelemetry/contract.d.ts.map +1 -0
  235. package/build/productTelemetry/contract.js +103 -0
  236. package/build/productTelemetry/contract.js.map +1 -0
  237. package/build/productTelemetry/coordinationScope.d.ts +3 -0
  238. package/build/productTelemetry/coordinationScope.d.ts.map +1 -0
  239. package/build/productTelemetry/coordinationScope.js +92 -0
  240. package/build/productTelemetry/coordinationScope.js.map +1 -0
  241. package/build/productTelemetry/delivery.d.ts +8 -0
  242. package/build/productTelemetry/delivery.d.ts.map +1 -0
  243. package/build/productTelemetry/delivery.js +142 -0
  244. package/build/productTelemetry/delivery.js.map +1 -0
  245. package/build/productTelemetry/index.d.ts +15 -0
  246. package/build/productTelemetry/index.d.ts.map +1 -0
  247. package/build/productTelemetry/index.js +118 -0
  248. package/build/productTelemetry/index.js.map +1 -0
  249. package/build/productTelemetry/installationStore.d.ts +118 -0
  250. package/build/productTelemetry/installationStore.d.ts.map +1 -0
  251. package/build/productTelemetry/installationStore.js +579 -0
  252. package/build/productTelemetry/installationStore.js.map +1 -0
  253. package/build/productTelemetry/notice.d.ts +3 -0
  254. package/build/productTelemetry/notice.d.ts.map +1 -0
  255. package/build/productTelemetry/notice.js +13 -0
  256. package/build/productTelemetry/notice.js.map +1 -0
  257. package/build/productTelemetry/operation.d.ts +9 -0
  258. package/build/productTelemetry/operation.d.ts.map +1 -0
  259. package/build/productTelemetry/operation.js +51 -0
  260. package/build/productTelemetry/operation.js.map +1 -0
  261. package/build/productTelemetry/permissions.d.ts +8 -0
  262. package/build/productTelemetry/permissions.d.ts.map +1 -0
  263. package/build/productTelemetry/permissions.js +10 -0
  264. package/build/productTelemetry/permissions.js.map +1 -0
  265. package/build/productTelemetry/policy.d.ts +12 -0
  266. package/build/productTelemetry/policy.d.ts.map +1 -0
  267. package/build/productTelemetry/policy.js +31 -0
  268. package/build/productTelemetry/policy.js.map +1 -0
  269. package/build/productTelemetry/producer.d.ts +51 -0
  270. package/build/productTelemetry/producer.d.ts.map +1 -0
  271. package/build/productTelemetry/producer.js +214 -0
  272. package/build/productTelemetry/producer.js.map +1 -0
  273. package/build/sdk/contracts/jsonValue.d.ts +2 -0
  274. package/build/sdk/contracts/jsonValue.d.ts.map +1 -1
  275. package/build/sdk/contracts/jsonValue.js +5 -0
  276. package/build/sdk/contracts/jsonValue.js.map +1 -1
  277. package/build/sdk/contracts/protocol.d.ts +3 -1
  278. package/build/sdk/contracts/protocol.d.ts.map +1 -1
  279. package/build/sdk/contracts/protocol.js +9 -1
  280. package/build/sdk/contracts/protocol.js.map +1 -1
  281. package/build/sdk/legacy/auth/sdkOAuthClientProvider.d.ts +2 -0
  282. package/build/sdk/legacy/auth/sdkOAuthClientProvider.d.ts.map +1 -1
  283. package/build/sdk/legacy/auth/sdkOAuthClientProvider.js +30 -8
  284. package/build/sdk/legacy/auth/sdkOAuthClientProvider.js.map +1 -1
  285. package/build/sdk/legacy/client/runtime/legacyGatewayClientAdapter.d.ts.map +1 -1
  286. package/build/sdk/legacy/client/runtime/legacyGatewayClientAdapter.js +2 -2
  287. package/build/sdk/legacy/client/runtime/legacyGatewayClientAdapter.js.map +1 -1
  288. package/build/sdk/legacy/client/runtime/legacySdkClientAdapter.d.ts.map +1 -1
  289. package/build/sdk/legacy/client/runtime/legacySdkClientAdapter.js +3 -0
  290. package/build/sdk/legacy/client/runtime/legacySdkClientAdapter.js.map +1 -1
  291. package/build/sdk/legacy/client/runtime/modernSdkClientAdapter.d.ts.map +1 -1
  292. package/build/sdk/legacy/client/runtime/modernSdkClientAdapter.js +5 -3
  293. package/build/sdk/legacy/client/runtime/modernSdkClientAdapter.js.map +1 -1
  294. package/build/sdk/legacy/commands/serve.d.ts +1 -0
  295. package/build/sdk/legacy/commands/serve.d.ts.map +1 -1
  296. package/build/sdk/legacy/commands/serve.js +30 -1
  297. package/build/sdk/legacy/commands/serve.js.map +1 -1
  298. package/build/sdk/legacy/server/runtime/connectionManager.d.ts.map +1 -1
  299. package/build/sdk/legacy/server/runtime/connectionManager.js +1 -1
  300. package/build/sdk/legacy/server/runtime/connectionManager.js.map +1 -1
  301. package/build/sdk/legacy/server/runtime/legacySdkServerAdapter.d.ts +3 -1
  302. package/build/sdk/legacy/server/runtime/legacySdkServerAdapter.d.ts.map +1 -1
  303. package/build/sdk/legacy/server/runtime/legacySdkServerAdapter.js +52 -2
  304. package/build/sdk/legacy/server/runtime/legacySdkServerAdapter.js.map +1 -1
  305. package/build/sdk/legacy/shared/capabilityListCapture.d.ts.map +1 -1
  306. package/build/sdk/legacy/shared/capabilityListCapture.js +5 -2
  307. package/build/sdk/legacy/shared/capabilityListCapture.js.map +1 -1
  308. package/build/sdk/legacy/shared/schemaProjection.d.ts.map +1 -1
  309. package/build/sdk/legacy/shared/schemaProjection.js +8 -4
  310. package/build/sdk/legacy/shared/schemaProjection.js.map +1 -1
  311. package/build/sdk/legacy/transport/http/server.d.ts +1 -1
  312. package/build/sdk/legacy/transport/http/server.d.ts.map +1 -1
  313. package/build/sdk/legacy/transport/http/server.js +5 -1
  314. package/build/sdk/legacy/transport/http/server.js.map +1 -1
  315. package/build/sdk/legacy/transport/transportFactory.d.ts.map +1 -1
  316. package/build/sdk/legacy/transport/transportFactory.js +2 -0
  317. package/build/sdk/legacy/transport/transportFactory.js.map +1 -1
  318. package/build/transport/http/routes/adminRoutes.d.ts.map +1 -1
  319. package/build/transport/http/routes/adminRoutes.js +2 -0
  320. package/build/transport/http/routes/adminRoutes.js.map +1 -1
  321. package/build/transport/http/routes/inspectRoutes.d.ts +2 -0
  322. package/build/transport/http/routes/inspectRoutes.d.ts.map +1 -1
  323. package/build/transport/http/routes/inspectRoutes.js +28 -4
  324. package/build/transport/http/routes/inspectRoutes.js.map +1 -1
  325. package/build/transport/http/routes/modernHttpRoutes.d.ts.map +1 -1
  326. package/build/transport/http/routes/modernHttpRoutes.js +6 -5
  327. package/build/transport/http/routes/modernHttpRoutes.js.map +1 -1
  328. package/build/transport/http/routes/modernProductTelemetry.d.ts +4 -0
  329. package/build/transport/http/routes/modernProductTelemetry.d.ts.map +1 -0
  330. package/build/transport/http/routes/modernProductTelemetry.js +65 -0
  331. package/build/transport/http/routes/modernProductTelemetry.js.map +1 -0
  332. package/build/transport/http/routes/modernSubscriptions.d.ts.map +1 -1
  333. package/build/transport/http/routes/modernSubscriptions.js +28 -12
  334. package/build/transport/http/routes/modernSubscriptions.js.map +1 -1
  335. package/build/transport/http/routes/preparationRoutes.d.ts +2 -2
  336. package/build/transport/http/routes/projectRoutes.d.ts +1 -1
  337. package/build/transport/http/routes/streamableHttpRoutes.d.ts.map +1 -1
  338. package/build/transport/http/routes/streamableHttpRoutes.js +6 -0
  339. package/build/transport/http/routes/streamableHttpRoutes.js.map +1 -1
  340. package/build/utils/core/errorHandling.js +2 -2
  341. package/build/utils/core/errorHandling.js.map +1 -1
  342. package/build/utils/security/privateFileSystem.d.ts +12 -0
  343. package/build/utils/security/privateFileSystem.d.ts.map +1 -0
  344. package/build/utils/security/privateFileSystem.js +114 -0
  345. package/build/utils/security/privateFileSystem.js.map +1 -0
  346. package/package.json +9 -7
  347. package/build/admin/assets/admin-console-DVuqABnE.js +0 -3
@@ -0,0 +1,579 @@
1
+ import { randomUUID } from 'node:crypto';
2
+ import { constants } from 'node:fs';
3
+ import { lstat, mkdir, open, readdir, readFile, rename, rm } from 'node:fs/promises';
4
+ import path from 'node:path';
5
+ import { setTimeout as delay } from 'node:timers/promises';
6
+ import { z } from 'zod';
7
+ import { DAY, envelopeSchema, MAX_BODY, summarySchema } from './contract.js';
8
+ import { coordinationScope } from './coordinationScope.js';
9
+ import { secureNewInstallationEntry, verifyInstallationPrivacy } from './permissions.js';
10
+ const MAX_QUEUE = 256 * 1024;
11
+ const stateSchema = z.strictObject({
12
+ format: z.literal(1),
13
+ epoch: z.uuid(),
14
+ generation: z.number().int().nonnegative().safe(),
15
+ preference: z.enum(['default', 'enabled', 'disabled']),
16
+ installationId: z.uuid().optional(),
17
+ noticed: z.boolean(),
18
+ queue: z.array(summarySchema),
19
+ });
20
+ const ownerSchema = z.strictObject({
21
+ pid: z.number().int().positive(),
22
+ nonce: z.uuid(),
23
+ scope: z
24
+ .string()
25
+ .regex(/^[0-9a-f]{64}$/)
26
+ .optional(),
27
+ });
28
+ export class InstallationStore {
29
+ root;
30
+ options;
31
+ constructor(root, options) {
32
+ this.root = root;
33
+ this.options = options;
34
+ }
35
+ async status() {
36
+ await this.checkRoot(false);
37
+ const state = await this.read();
38
+ const recovery = await coordinationRecovery(this.root);
39
+ return {
40
+ preference: state?.preference ?? 'default',
41
+ identityPresent: Boolean(state?.installationId),
42
+ queuedSummaries: state?.queue.length ?? 0,
43
+ coordination: recovery === 'not-needed' ? 'available' : 'busy-or-ambiguous',
44
+ recovery,
45
+ };
46
+ }
47
+ async control(action) {
48
+ await this.transaction(async () => {
49
+ const state = (await this.read()) ?? freshState();
50
+ if (action === 'enable')
51
+ state.preference = 'enabled';
52
+ if (action === 'disable')
53
+ state.preference = 'disabled';
54
+ if (action !== 'enable') {
55
+ state.generation++;
56
+ state.queue = [];
57
+ }
58
+ if (action === 'reset')
59
+ delete state.installationId;
60
+ await this.commit(state);
61
+ });
62
+ }
63
+ async admit() {
64
+ return this.transaction(async () => {
65
+ const state = (await this.read()) ?? freshState();
66
+ if (state.preference === 'disabled')
67
+ return undefined;
68
+ if (!state.noticed) {
69
+ await this.options.notice();
70
+ state.noticed = true;
71
+ }
72
+ state.installationId ??= randomUUID();
73
+ await this.commit(state);
74
+ return { epoch: state.epoch, generation: state.generation, installationId: state.installationId };
75
+ });
76
+ }
77
+ /** Read-only live-control observation; never creates an identity or admits activity. */
78
+ async isCurrent(ticket) {
79
+ await this.checkRoot(false);
80
+ return matches(await this.read(), ticket);
81
+ }
82
+ async append(ticket, facts) {
83
+ const incoming = summarySchema.omit({ installation_id: true }).parse(facts);
84
+ return this.transaction(async () => {
85
+ const state = await this.read();
86
+ if (!matches(state, ticket))
87
+ return false;
88
+ const now = this.now();
89
+ const pruned = prune(state, now);
90
+ if (now - Date.parse(incoming.occurred_at) > 7 * DAY) {
91
+ if (pruned)
92
+ await this.commit(state);
93
+ return false;
94
+ }
95
+ if (Date.parse(incoming.occurred_at) - now > 300_000) {
96
+ if (pruned)
97
+ await this.commit(state);
98
+ return false;
99
+ }
100
+ for (const counter of incoming.counters) {
101
+ let remaining = counter.count;
102
+ while (remaining > 0) {
103
+ let summary = state.queue.find((s) => sameDimensions(s, incoming) && s.counters.some((c) => sameCounter(c, counter) && c.count < 1_000_000));
104
+ summary ??= state.queue.find((s) => sameDimensions(s, incoming) && s.counters.length < 16);
105
+ if (!summary) {
106
+ summary = { ...incoming, installation_id: ticket.installationId, counters: [] };
107
+ state.queue.push(summary);
108
+ }
109
+ const existing = summary.counters.find((c) => sameCounter(c, counter) && c.count < 1_000_000);
110
+ const increment = Math.min(remaining, 1_000_000 - (existing?.count ?? 0));
111
+ if (existing)
112
+ existing.count += increment;
113
+ else
114
+ summary.counters.push({ ...counter, count: increment });
115
+ if (incoming.occurred_at < summary.occurred_at)
116
+ summary.occurred_at = incoming.occurred_at;
117
+ remaining -= increment;
118
+ }
119
+ }
120
+ prune(state, now);
121
+ await this.commit(state);
122
+ return true;
123
+ });
124
+ }
125
+ /** A durable final claim precedes payload handoff, within the generation lock. Prepare outside that lock. */
126
+ async attemptSend(ticket, dispatch, prepare) {
127
+ let prepared;
128
+ let handedOff = false;
129
+ if (prepare) {
130
+ const hasQueuedData = await this.transaction(async () => {
131
+ const state = await this.read();
132
+ if (!matches(state, ticket))
133
+ return false;
134
+ if (prune(state, this.now()))
135
+ await this.commit(state);
136
+ return state.queue.length > 0;
137
+ });
138
+ if (!hasQueuedData)
139
+ return;
140
+ // DNS/TLS must not hold the generation lock or consume the durable queue.
141
+ prepared = await prepare();
142
+ if (!prepared)
143
+ return;
144
+ }
145
+ try {
146
+ await this.transaction(async () => {
147
+ const state = await this.read();
148
+ if (!matches(state, ticket))
149
+ return;
150
+ const pruned = prune(state, this.now());
151
+ const batch = { schema_version: 1, batch_id: randomUUID(), summaries: [] };
152
+ for (const summary of state.queue.slice(0, 100)) {
153
+ batch.summaries.push(summary);
154
+ if (Buffer.byteLength(JSON.stringify(batch), 'utf8') > MAX_BODY) {
155
+ batch.summaries.pop();
156
+ break;
157
+ }
158
+ }
159
+ if (!batch.summaries.length) {
160
+ if (pruned)
161
+ await this.commit(state);
162
+ return;
163
+ }
164
+ if (prepared && !prepared.isReady())
165
+ return;
166
+ const body = JSON.stringify(envelopeSchema.parse(batch));
167
+ state.queue.splice(0, batch.summaries.length);
168
+ await this.commit(state);
169
+ handedOff = true;
170
+ try {
171
+ void Promise.resolve((prepared?.dispatch ?? dispatch)(body)).catch(() => { });
172
+ }
173
+ catch {
174
+ /* Every attempt is final. */
175
+ }
176
+ });
177
+ }
178
+ finally {
179
+ if (!handedOff)
180
+ prepared?.cancel();
181
+ }
182
+ }
183
+ now() {
184
+ return this.options.now?.() ?? Date.now();
185
+ }
186
+ async checkRoot(create) {
187
+ const created = create ? await mkdir(this.root, { recursive: true, mode: 0o700 }) : undefined;
188
+ try {
189
+ await verifyInstallationPrivacy(this.root, {
190
+ background: this.options.background,
191
+ created: created !== undefined,
192
+ });
193
+ }
194
+ catch (error) {
195
+ if (!create && isMissing(error))
196
+ return;
197
+ throw error;
198
+ }
199
+ }
200
+ async read() {
201
+ const file = path.join(this.root, 'state.json');
202
+ try {
203
+ await checkPrivate(file, false);
204
+ const handle = await open(file, process.platform === 'win32' ? constants.O_RDONLY : constants.O_RDONLY | constants.O_NOFOLLOW, 0o600);
205
+ try {
206
+ if ((await handle.stat()).size > MAX_QUEUE + 4096)
207
+ throw new Error('Oversized product state');
208
+ return stateSchema.parse(JSON.parse(await handle.readFile('utf8')));
209
+ }
210
+ finally {
211
+ await handle.close();
212
+ }
213
+ }
214
+ catch (error) {
215
+ if (isMissing(error))
216
+ return undefined;
217
+ throw new Error('Product telemetry state unavailable; retain state and use offline recovery');
218
+ }
219
+ }
220
+ async commit(state) {
221
+ stateSchema.parse(state);
222
+ const temporary = path.join(this.root, `state-${randomUUID()}.tmp`);
223
+ try {
224
+ const handle = await open(temporary, 'wx', 0o600);
225
+ try {
226
+ await secureNewInstallationEntry(temporary, false, this.options.background);
227
+ await handle.writeFile(JSON.stringify(state));
228
+ await handle.sync();
229
+ }
230
+ finally {
231
+ await handle.close();
232
+ }
233
+ await rename(temporary, path.join(this.root, 'state.json'));
234
+ if (process.platform !== 'win32') {
235
+ const directory = await open(this.root, 'r');
236
+ try {
237
+ await directory.sync();
238
+ }
239
+ finally {
240
+ await directory.close();
241
+ }
242
+ }
243
+ }
244
+ finally {
245
+ await rm(temporary, { force: true });
246
+ }
247
+ }
248
+ async cleanOrphanedWrites() {
249
+ const entries = await readdir(this.root);
250
+ if (entries.length > 256)
251
+ throw new Error('Product telemetry temporary state requires offline recovery');
252
+ for (const entry of entries) {
253
+ if (!/^state-[0-9a-f-]{36}\.tmp$/.test(entry))
254
+ continue;
255
+ const file = path.join(this.root, entry);
256
+ await checkPrivate(file, false);
257
+ await rm(file);
258
+ }
259
+ }
260
+ /** Legacy producers still share this guard; only verified dead owners may be recovered. */
261
+ async transaction(work) {
262
+ await this.checkRoot(true);
263
+ const nonce = randomUUID();
264
+ const guard = path.join(this.root, 'guard');
265
+ const lock = path.join(this.root, 'lock');
266
+ const scope = await coordinationScope(this.options.background);
267
+ const acquisitionDeadline = performance.now() + (process.platform === 'win32' ? 5000 : 1000);
268
+ while (performance.now() < acquisitionDeadline) {
269
+ let guarded = false;
270
+ let locked = false;
271
+ try {
272
+ try {
273
+ await mkdir(guard, { mode: 0o700 });
274
+ }
275
+ catch (error) {
276
+ if (isExists(error)) {
277
+ await recoverGuard(this.root, acquisitionDeadline, this.options.background);
278
+ await delay(10, undefined, { ref: !this.options.background });
279
+ continue;
280
+ }
281
+ throw error;
282
+ }
283
+ await secureNewInstallationEntry(guard, true, this.options.background);
284
+ await writeOwner(guard, nonce, scope, this.options.background);
285
+ guarded = true;
286
+ if (await exists(lock)) {
287
+ const owner = ownerSchema.safeParse(await readOwner(lock));
288
+ if (!owner.success || !(await ownerIsDead(owner.data))) {
289
+ await delay(10, undefined, { ref: !this.options.background });
290
+ continue;
291
+ }
292
+ await rm(lock, { recursive: true });
293
+ }
294
+ await mkdir(lock, { mode: 0o700 });
295
+ await secureNewInstallationEntry(lock, true, this.options.background);
296
+ await writeOwner(lock, nonce, scope, this.options.background);
297
+ locked = true;
298
+ await release(guard, nonce);
299
+ guarded = false;
300
+ await this.cleanOrphanedWrites();
301
+ return await work();
302
+ }
303
+ finally {
304
+ if (locked)
305
+ await release(lock, nonce);
306
+ if (guarded)
307
+ await release(guard, nonce);
308
+ }
309
+ }
310
+ throw new Error('Product telemetry coordination busy or ambiguous; use offline recovery');
311
+ }
312
+ }
313
+ async function ownerRecovery(root) {
314
+ let recovery = 'not-needed';
315
+ for (const name of ['guard', 'lock']) {
316
+ const directory = path.join(root, name);
317
+ if (!(await exists(directory)))
318
+ continue;
319
+ const owner = ownerSchema.safeParse(await readOwner(directory));
320
+ if (!owner.success)
321
+ return 'offline-required';
322
+ if (!(await matchingScope(owner.data.scope)))
323
+ return 'offline-required';
324
+ if (!demonstrablyDead(owner.data.pid))
325
+ return 'wait';
326
+ recovery = 'automatic';
327
+ }
328
+ return recovery;
329
+ }
330
+ async function recoverGuard(root, deadline, background = false) {
331
+ const guard = path.join(root, 'guard');
332
+ const observed = ownerSchema.safeParse(await readOwner(guard));
333
+ if (!observed.success || !(await ownerIsDead(observed.data)))
334
+ return;
335
+ if ((await ownerRecovery(root)) !== 'automatic')
336
+ return;
337
+ await withGuardRecovery(root, deadline, background, async () => {
338
+ // Another reaper may already have completed. Never remove a replacement's guard.
339
+ const current = ownerSchema.safeParse(await readOwner(guard));
340
+ if (!current.success || current.data.nonce !== observed.data.nonce || current.data.pid !== observed.data.pid)
341
+ return;
342
+ if (!(await ownerIsDead(current.data)))
343
+ return;
344
+ if ((await ownerRecovery(root)) !== 'automatic')
345
+ return;
346
+ await rm(guard, { recursive: true });
347
+ });
348
+ }
349
+ const recoveryName = /^recovery-([1-9][0-9]*)-([0-9a-f-]{36})(?:-([0-9a-f]{64}))?$/;
350
+ async function coordinationRecovery(root) {
351
+ const owners = await ownerRecovery(root);
352
+ // Recovery tickets serialize reapers, not healthy guard-free admission.
353
+ if (owners === 'not-needed')
354
+ return owners;
355
+ if (owners === 'offline-required')
356
+ return owners;
357
+ let waiting = owners === 'wait';
358
+ try {
359
+ for (const name of await recoveryContenders(root)) {
360
+ const ticket = await recoveryTicket(root, name);
361
+ if (ticket !== undefined)
362
+ waiting = true;
363
+ }
364
+ }
365
+ catch (error) {
366
+ if (!isMissing(error))
367
+ return 'offline-required';
368
+ }
369
+ return waiting ? 'wait' : owners;
370
+ }
371
+ async function matchingScope(scope) {
372
+ if (!scope)
373
+ return false;
374
+ return scope === (await coordinationScope());
375
+ }
376
+ async function ownerIsDead(owner) {
377
+ if (!(await matchingScope(owner.scope)))
378
+ return false;
379
+ return demonstrablyDead(owner.pid);
380
+ }
381
+ /**
382
+ * Lamport bakery doorway for guard reapers. Each attempt owns an immutable name,
383
+ * so a dead contender can be discarded without deleting a replacement's lock.
384
+ * Normal transactions retain the legacy guard protocol and do not enter here.
385
+ */
386
+ async function withGuardRecovery(root, deadline, background, work) {
387
+ const scope = await coordinationScope(background);
388
+ if (!scope)
389
+ return;
390
+ const name = `recovery-${process.pid}-${randomUUID()}-${scope}`;
391
+ const directory = path.join(root, name);
392
+ await mkdir(directory, { mode: 0o700 });
393
+ try {
394
+ await secureNewInstallationEntry(directory, true, background);
395
+ const contenders = await recoveryContenders(root, name);
396
+ let number = 1;
397
+ for (const contender of contenders) {
398
+ const ticket = await recoveryTicket(root, contender, true);
399
+ number = Math.max(number, (ticket ?? 0) + 1);
400
+ }
401
+ if (!Number.isSafeInteger(number))
402
+ throw new Error('Product telemetry recovery ticket overflow');
403
+ const temporary = path.join(directory, 'ticket.tmp');
404
+ const handle = await open(temporary, 'wx', 0o600);
405
+ try {
406
+ await secureNewInstallationEntry(temporary, false, background);
407
+ await handle.writeFile(String(number));
408
+ }
409
+ finally {
410
+ await handle.close();
411
+ }
412
+ await rename(temporary, path.join(directory, 'ticket'));
413
+ while (performance.now() < deadline) {
414
+ let waiting = false;
415
+ for (const contender of await recoveryContenders(root, name)) {
416
+ if (contender === name)
417
+ continue;
418
+ const ticket = await recoveryTicket(root, contender, true);
419
+ if (ticket === undefined)
420
+ continue;
421
+ if (ticket === 0 || ticket < number || (ticket === number && contender < name)) {
422
+ waiting = true;
423
+ break;
424
+ }
425
+ }
426
+ if (!waiting) {
427
+ await work();
428
+ return;
429
+ }
430
+ await delay(10, undefined, { ref: !background });
431
+ }
432
+ throw new Error('Product telemetry recovery busy; retry after active producers finish');
433
+ }
434
+ finally {
435
+ await rm(directory, { recursive: true, force: true });
436
+ }
437
+ }
438
+ async function recoveryContenders(root, ownName) {
439
+ const entries = (await readdir(root)).filter((entry) => entry !== ownName);
440
+ if (entries.length > 256)
441
+ throw new Error('Product telemetry coordination requires offline recovery');
442
+ return entries.filter((entry) => recoveryName.test(entry));
443
+ }
444
+ /** Zero is a live contender choosing its ticket; undefined means it has left. */
445
+ async function recoveryTicket(root, name, cleanup = false) {
446
+ const match = recoveryName.exec(name);
447
+ const pid = Number(match[1]);
448
+ if (!Number.isSafeInteger(pid))
449
+ throw new Error('Invalid product telemetry recovery owner');
450
+ const directory = path.join(root, name);
451
+ try {
452
+ await checkPrivate(directory, true);
453
+ if (!(await matchingScope(match[3])))
454
+ throw new Error('Unverified telemetry recovery scope');
455
+ if (demonstrablyDead(pid)) {
456
+ if (cleanup)
457
+ await rm(directory, { recursive: true, force: true });
458
+ return undefined;
459
+ }
460
+ const file = path.join(directory, 'ticket');
461
+ try {
462
+ await checkPrivate(file, false);
463
+ const value = await readFile(file, 'utf8');
464
+ const ticket = Number(value);
465
+ if (!/^[1-9][0-9]*$/.test(value) || !Number.isSafeInteger(ticket))
466
+ throw new Error('Invalid product telemetry recovery ticket');
467
+ return ticket;
468
+ }
469
+ catch (error) {
470
+ if (!isMissing(error))
471
+ throw error;
472
+ return (await exists(directory)) ? 0 : undefined;
473
+ }
474
+ }
475
+ catch (error) {
476
+ if (isMissing(error))
477
+ return undefined;
478
+ throw error;
479
+ }
480
+ }
481
+ function freshState() {
482
+ return { format: 1, epoch: randomUUID(), generation: 0, preference: 'default', noticed: false, queue: [] };
483
+ }
484
+ function isMissing(error) {
485
+ return hasCode(error, 'ENOENT');
486
+ }
487
+ function isExists(error) {
488
+ return hasCode(error, 'EEXIST');
489
+ }
490
+ function hasCode(error, code) {
491
+ return error instanceof Error && 'code' in error && error.code === code;
492
+ }
493
+ async function exists(file) {
494
+ try {
495
+ await lstat(file);
496
+ return true;
497
+ }
498
+ catch (error) {
499
+ if (isMissing(error))
500
+ return false;
501
+ throw error;
502
+ }
503
+ }
504
+ async function checkPrivate(file, directory) {
505
+ const info = await lstat(file);
506
+ if (info.isSymbolicLink() || (directory ? !info.isDirectory() : !info.isFile()))
507
+ throw new Error('Product telemetry path is not private');
508
+ if (process.platform === 'win32')
509
+ return;
510
+ if (info.uid !== process.getuid?.() || (info.mode & 0o077) !== 0)
511
+ throw new Error('Product telemetry path is not owner-only');
512
+ }
513
+ async function writeOwner(directory, nonce, scope, background = false) {
514
+ const file = await open(path.join(directory, 'owner.json'), 'wx', 0o600);
515
+ try {
516
+ await secureNewInstallationEntry(path.join(directory, 'owner.json'), false, background);
517
+ await file.writeFile(JSON.stringify({ pid: process.pid, nonce, scope }));
518
+ await file.sync();
519
+ }
520
+ finally {
521
+ await file.close();
522
+ }
523
+ }
524
+ async function readOwner(directory) {
525
+ try {
526
+ await checkPrivate(directory, true);
527
+ await checkPrivate(path.join(directory, 'owner.json'), false);
528
+ return JSON.parse(await readFile(path.join(directory, 'owner.json'), 'utf8'));
529
+ }
530
+ catch {
531
+ return undefined;
532
+ }
533
+ }
534
+ async function release(directory, nonce) {
535
+ const owner = ownerSchema.safeParse(await readOwner(directory));
536
+ if (owner.success && owner.data.nonce === nonce && owner.data.pid === process.pid)
537
+ await rm(directory, { recursive: true });
538
+ }
539
+ function demonstrablyDead(pid) {
540
+ try {
541
+ process.kill(pid, 0);
542
+ return false;
543
+ }
544
+ catch (error) {
545
+ return hasCode(error, 'ESRCH');
546
+ }
547
+ }
548
+ function matches(state, ticket) {
549
+ if (!state || state.preference === 'disabled')
550
+ return false;
551
+ return (state.epoch === ticket.epoch &&
552
+ state.generation === ticket.generation &&
553
+ state.installationId === ticket.installationId);
554
+ }
555
+ function sameCounter(a, b) {
556
+ return (a.kind === b.kind &&
557
+ a.name === b.name &&
558
+ a.outcome === b.outcome &&
559
+ a.transport === b.transport &&
560
+ a.client === b.client &&
561
+ a.bucket === b.bucket);
562
+ }
563
+ function sameDimensions(a, b) {
564
+ return (a.occurred_at.slice(0, 10) === b.occurred_at.slice(0, 10) &&
565
+ a.version === b.version &&
566
+ a.os === b.os &&
567
+ a.arch === b.arch &&
568
+ a.node_major === b.node_major &&
569
+ a.ci === b.ci);
570
+ }
571
+ function prune(state, now) {
572
+ const previousLength = state.queue.length;
573
+ state.queue = state.queue.filter((s) => now - Date.parse(s.occurred_at) <= 7 * DAY);
574
+ state.queue.sort((a, b) => a.occurred_at.localeCompare(b.occurred_at));
575
+ while (Buffer.byteLength(JSON.stringify(state.queue), 'utf8') > MAX_QUEUE)
576
+ state.queue.shift();
577
+ return state.queue.length !== previousLength;
578
+ }
579
+ //# sourceMappingURL=installationStore.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"installationStore.js","sourceRoot":"","sources":["../../src/productTelemetry/installationStore.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export declare const PRODUCT_NOTICE = "1MCP collects aggregate product usage with a random local installation ID. No prompts, payloads, paths or credentials. Disable: 1mcp telemetry disable. Details: https://docs.1mcp.app/commands/telemetry\n";
2
+ export declare function writeProductNotice(): Promise<void>;
3
+ //# sourceMappingURL=notice.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"notice.d.ts","sourceRoot":"","sources":["../../src/productTelemetry/notice.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,cAAc,gNACoL,CAAC;AAEhN,wBAAgB,kBAAkB,IAAI,OAAO,CAAC,IAAI,CAAC,CAOlD"}
@@ -0,0 +1,13 @@
1
+ import { writeFile } from 'node:fs';
2
+ export const PRODUCT_NOTICE = '1MCP collects aggregate product usage with a random local installation ID. No prompts, payloads, paths or credentials. Disable: 1mcp telemetry disable. Details: https://docs.1mcp.app/commands/telemetry\n';
3
+ export function writeProductNotice() {
4
+ return new Promise((resolve, reject) => {
5
+ writeFile(process.stderr.fd, PRODUCT_NOTICE, { encoding: 'utf8', mode: 0o600 }, (error) => {
6
+ if (error)
7
+ reject(error);
8
+ else
9
+ resolve();
10
+ });
11
+ });
12
+ }
13
+ //# sourceMappingURL=notice.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"notice.js","sourceRoot":"","sources":["../../src/productTelemetry/notice.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAEpC,MAAM,CAAC,MAAM,cAAc,GACzB,6MAA6M,CAAC;AAEhN,MAAM,UAAU,kBAAkB;IAChC,OAAO,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QAC3C,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,EAAE,cAAc,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,EAAE,EAAE;YACxF,IAAI,KAAK;gBAAE,MAAM,CAAC,KAAK,CAAC,CAAC;;gBACpB,OAAO,EAAE,CAAC;QACjB,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,9 @@
1
+ import type { OperationName } from './producer.js';
2
+ export type ProductClientFamily = 'claude' | 'codex' | 'cursor' | 'vscode' | 'other';
3
+ export type ProductTransport = 'none' | 'stdio' | 'http' | 'sse';
4
+ /** Exact finite aliases only. Never stringify arbitrary client data or invoke getters. */
5
+ export declare function productClientFamily(info: unknown): ProductClientFamily;
6
+ export declare function productOperationName(method: unknown): OperationName;
7
+ /** Only terminal protocol/error flags determine this coarse outcome. */
8
+ export declare function productOperationOutcome(response: unknown): 'success' | 'failure';
9
+ //# sourceMappingURL=operation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"operation.d.ts","sourceRoot":"","sources":["../../src/productTelemetry/operation.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAEnD,MAAM,MAAM,mBAAmB,GAAG,QAAQ,GAAG,OAAO,GAAG,QAAQ,GAAG,QAAQ,GAAG,OAAO,CAAC;AACrF,MAAM,MAAM,gBAAgB,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,GAAG,KAAK,CAAC;AAEjE,0FAA0F;AAC1F,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,OAAO,GAAG,mBAAmB,CAiBtE;AAED,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,OAAO,GAAG,aAAa,CAqBnE;AAED,wEAAwE;AACxE,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,OAAO,GAAG,SAAS,GAAG,SAAS,CAIhF"}