openmeld 0.3.232 → 0.3.233

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 (102) hide show
  1. package/dist/{add-me-membership-ChntsjGm.js → add-me-membership-_O3IzRLn.js} +2 -2
  2. package/dist/{add-me-membership-ChntsjGm.js.map → add-me-membership-_O3IzRLn.js.map} +1 -1
  3. package/dist/{agents-DruPcNSg.js → agents-B5E7c7sQ.js} +9 -9
  4. package/dist/{agents-DruPcNSg.js.map → agents-B5E7c7sQ.js.map} +1 -1
  5. package/dist/{api-client-foundation-CDj_9Rks.js → api-client-foundation-1p1VVFJ_.js} +1 -1
  6. package/dist/{api-client-foundation-EZpFLGVC.js → api-client-foundation-C-RPnq_p.js} +3 -3
  7. package/dist/{api-client-foundation-EZpFLGVC.js.map → api-client-foundation-C-RPnq_p.js.map} +1 -1
  8. package/dist/auth-session-CmjjkLiB.js +4 -0
  9. package/dist/{auth-session-DhSHCYvl.js → auth-session-iXCJO5oB.js} +4 -4
  10. package/dist/{auth-session-DhSHCYvl.js.map → auth-session-iXCJO5oB.js.map} +1 -1
  11. package/dist/{channel-tvFZSSVr.js → channel-BciBrA3Y.js} +4 -4
  12. package/dist/{channel-tvFZSSVr.js.map → channel-BciBrA3Y.js.map} +1 -1
  13. package/dist/{cli-binary-manifest-Bjf6T7Ef.js → cli-binary-manifest-ETxqCzfS.js} +8 -1
  14. package/dist/cli-binary-manifest-ETxqCzfS.js.map +1 -0
  15. package/dist/{command-0yoZa1GT.js → command-D0pcAIoE.js} +16 -16
  16. package/dist/{command-0yoZa1GT.js.map → command-D0pcAIoE.js.map} +1 -1
  17. package/dist/{computer-connection-CoBDorh6.js → computer-connection-CHP1-0rK.js} +2 -2
  18. package/dist/{computer-connection-CoBDorh6.js.map → computer-connection-CHP1-0rK.js.map} +1 -1
  19. package/dist/{computer-connection-review-Dy7p1LXZ.js → computer-connection-review-dHotFqmD.js} +5 -5
  20. package/dist/{computer-connection-review-Dy7p1LXZ.js.map → computer-connection-review-dHotFqmD.js.map} +1 -1
  21. package/dist/{computer-disconnect-4Ks_DVXV.js → computer-disconnect-B2DLDxWx.js} +7 -7
  22. package/dist/{computer-disconnect-4Ks_DVXV.js.map → computer-disconnect-B2DLDxWx.js.map} +1 -1
  23. package/dist/{computer-setup-continuation-ZcQb7MvI.js → computer-setup-continuation-Cv_c1B-7.js} +3 -3
  24. package/dist/{computer-setup-continuation-ZcQb7MvI.js.map → computer-setup-continuation-Cv_c1B-7.js.map} +1 -1
  25. package/dist/{context-BPIoofMa.js → context-BnhlFS8m.js} +3 -3
  26. package/dist/{context-BPIoofMa.js.map → context-BnhlFS8m.js.map} +1 -1
  27. package/dist/{control-plane-rTE2rHZ5.js → control-plane-QqGL-jtT.js} +2 -2
  28. package/dist/{control-plane-rTE2rHZ5.js.map → control-plane-QqGL-jtT.js.map} +1 -1
  29. package/dist/{daemon-device-id-DDazRZUV.js → daemon-device-id-DbSIqHoZ.js} +5 -5
  30. package/dist/{daemon-device-id-DDazRZUV.js.map → daemon-device-id-DbSIqHoZ.js.map} +1 -1
  31. package/dist/{daemon-lifecycle-journal-CRxQL9m6.js → daemon-lifecycle-journal-DsVVvKJe.js} +6 -6
  32. package/dist/{daemon-lifecycle-journal-CRxQL9m6.js.map → daemon-lifecycle-journal-DsVVvKJe.js.map} +1 -1
  33. package/dist/{daemon-service-runtime-BTzL0w6s.js → daemon-service-runtime-DZI6Ke3_.js} +4 -4
  34. package/dist/{daemon-service-runtime-BTzL0w6s.js.map → daemon-service-runtime-DZI6Ke3_.js.map} +1 -1
  35. package/dist/{daemon-service-update-coordinator-BDs0p4bA.js → daemon-service-update-coordinator-BgVBlJ4d.js} +13 -13
  36. package/dist/{daemon-service-update-coordinator-BDs0p4bA.js.map → daemon-service-update-coordinator-BgVBlJ4d.js.map} +1 -1
  37. package/dist/{dispatch-owned-runtime-CK2YJ2Oo.js → dispatch-owned-runtime-BeIQetEt.js} +9 -9
  38. package/dist/{dispatch-owned-runtime-CK2YJ2Oo.js.map → dispatch-owned-runtime-BeIQetEt.js.map} +1 -1
  39. package/dist/{dist-Bw6OBFYo.js → dist-BgYBvEBB.js} +13 -7
  40. package/dist/dist-BgYBvEBB.js.map +1 -0
  41. package/dist/{dist--TaSMxQz.js → dist-DQS0XYkb.js} +3 -3
  42. package/dist/{dist--TaSMxQz.js.map → dist-DQS0XYkb.js.map} +1 -1
  43. package/dist/{dist-B12upl5l.js → dist-z72xYz5Z.js} +1 -1
  44. package/dist/{elapsed-time-C3nfbdd9.js → elapsed-time-C7S-6bWV.js} +6 -6
  45. package/dist/{elapsed-time-C3nfbdd9.js.map → elapsed-time-C7S-6bWV.js.map} +1 -1
  46. package/dist/{entry-De__5RVq.js → entry-CX24qHnm.js} +7 -7
  47. package/dist/{entry-De__5RVq.js.map → entry-CX24qHnm.js.map} +1 -1
  48. package/dist/{installation-inventory-Bq8iZfSa.js → installation-inventory-B3mwQFEA.js} +3 -3
  49. package/dist/{installation-inventory-Bq8iZfSa.js.map → installation-inventory-B3mwQFEA.js.map} +1 -1
  50. package/dist/{installer-C7iSAOSz.js → installer-DnIJ4y3l.js} +2 -2
  51. package/dist/{installer-C7iSAOSz.js.map → installer-DnIJ4y3l.js.map} +1 -1
  52. package/dist/{local-components-DleLEzSU.js → local-components-DJiMS67S.js} +36 -3
  53. package/dist/local-components-DJiMS67S.js.map +1 -0
  54. package/dist/{meta-api-BpwJWE22.js → meta-api-DgHkiIdr.js} +4 -4
  55. package/dist/{meta-api-BpwJWE22.js.map → meta-api-DgHkiIdr.js.map} +1 -1
  56. package/dist/{openmeld-C0OSZJtn.js → openmeld-kYp99hOl.js} +32 -32
  57. package/dist/{openmeld-C0OSZJtn.js.map → openmeld-kYp99hOl.js.map} +1 -1
  58. package/dist/{openmeld-maintenance-worker-DY90mkWW.js → openmeld-maintenance-worker-BqU1Asrm.js} +9 -9
  59. package/dist/{openmeld-maintenance-worker-DY90mkWW.js.map → openmeld-maintenance-worker-BqU1Asrm.js.map} +1 -1
  60. package/dist/{openmeld-tools-update-join-DgzNuaDy.js → openmeld-tools-update-join-BKJnGR5h.js} +4 -4
  61. package/dist/{openmeld-tools-update-join-DgzNuaDy.js.map → openmeld-tools-update-join-BKJnGR5h.js.map} +1 -1
  62. package/dist/{openmeld-tools-update-process-frame-DbEZ3fEh.js → openmeld-tools-update-process-frame-Csy2XKUf.js} +1 -1
  63. package/dist/{openmeld-tools-update-process-frame-BtFKp70p.js → openmeld-tools-update-process-frame-YLOS82E3.js} +2 -2
  64. package/dist/{openmeld-tools-update-process-frame-BtFKp70p.js.map → openmeld-tools-update-process-frame-YLOS82E3.js.map} +1 -1
  65. package/dist/openmeld.js +5 -5
  66. package/dist/{prepare-provider-runtime-BGdfbFyZ.js → prepare-provider-runtime-CD6XRt7X.js} +374 -175
  67. package/dist/prepare-provider-runtime-CD6XRt7X.js.map +1 -0
  68. package/dist/{prepare-session-executor-CA1gq8dR.js → prepare-session-executor-DY2s4FuY.js} +19 -19
  69. package/dist/{prepare-session-executor-CA1gq8dR.js.map → prepare-session-executor-DY2s4FuY.js.map} +1 -1
  70. package/dist/{process-channel-C1wRGUmk.js → process-channel-CzgOWiuh.js} +2 -2
  71. package/dist/{process-channel-C1wRGUmk.js.map → process-channel-CzgOWiuh.js.map} +1 -1
  72. package/dist/{runtime-DFlEdls4.js → runtime-Br4Ga0rJ.js} +17 -17
  73. package/dist/{runtime-DFlEdls4.js.map → runtime-Br4Ga0rJ.js.map} +1 -1
  74. package/dist/{runtime-agent-controller-reporting-submission-C_xD2A-P.js → runtime-agent-controller-reporting-submission-CQjbBiHh.js} +139 -33
  75. package/dist/runtime-agent-controller-reporting-submission-CQjbBiHh.js.map +1 -0
  76. package/dist/{runtime-reporting-health-state-_bvJcV1y.js → runtime-reporting-health-state-a1FUE1S-.js} +13 -12
  77. package/dist/{runtime-reporting-health-state-_bvJcV1y.js.map → runtime-reporting-health-state-a1FUE1S-.js.map} +1 -1
  78. package/dist/{runtime-transport-DH8Ks-AU.js → runtime-transport-D4CVffnp.js} +3 -3
  79. package/dist/{runtime-transport-DH8Ks-AU.js.map → runtime-transport-D4CVffnp.js.map} +1 -1
  80. package/dist/{service-KHA_Yv8q.js → service-D9QVc4_y.js} +56 -20
  81. package/dist/service-D9QVc4_y.js.map +1 -0
  82. package/dist/{service-account-authorization-BHWs8cRP.js → service-account-authorization-DLhUgGDb.js} +2 -2
  83. package/dist/{service-account-authorization-BHWs8cRP.js.map → service-account-authorization-DLhUgGDb.js.map} +1 -1
  84. package/dist/{service-account-control-BcHjpVid.js → service-account-control-DIdQILmo.js} +9 -9
  85. package/dist/{service-account-control-BcHjpVid.js.map → service-account-control-DIdQILmo.js.map} +1 -1
  86. package/dist/{service-control-capabilities-DTKD2-o0.js → service-control-capabilities-BvHU_NcX.js} +1 -1
  87. package/dist/{service-control-capabilities-B4433dGT.js → service-control-capabilities-CGv5Cuxo.js} +3 -3
  88. package/dist/{service-control-capabilities-B4433dGT.js.map → service-control-capabilities-CGv5Cuxo.js.map} +1 -1
  89. package/dist/{state-iJqU2XWw.js → state-AWe5DSV8.js} +2 -2
  90. package/dist/{state-iJqU2XWw.js.map → state-AWe5DSV8.js.map} +1 -1
  91. package/dist/upgrade-CLnZ4WBF.js +4 -0
  92. package/dist/{upgrade-DlBDEvs4.js → upgrade-CcnlL7FH.js} +8 -8
  93. package/dist/{upgrade-DlBDEvs4.js.map → upgrade-CcnlL7FH.js.map} +1 -1
  94. package/package.json +14 -14
  95. package/dist/auth-session-BOG3gV2K2.js +0 -4
  96. package/dist/cli-binary-manifest-Bjf6T7Ef.js.map +0 -1
  97. package/dist/dist-Bw6OBFYo.js.map +0 -1
  98. package/dist/local-components-DleLEzSU.js.map +0 -1
  99. package/dist/prepare-provider-runtime-BGdfbFyZ.js.map +0 -1
  100. package/dist/runtime-agent-controller-reporting-submission-C_xD2A-P.js.map +0 -1
  101. package/dist/service-KHA_Yv8q.js.map +0 -1
  102. package/dist/upgrade-CuzsgsKh.js +0 -4
@@ -1,13 +1,13 @@
1
1
  #!/usr/bin/env node
2
2
 
3
- import { Bn as toStructuredApiClientFailure, fn as createRuntimeReportingApi } from "./dist-Bw6OBFYo.js";
4
- import { Gn as createUnavailableProviderUsageLimits, I as listAgentTargetStates, Jn as buildCliLaunchInvocation, Kn as createUnsupportedProviderUsageLimits, Qn as createProviderOriginalError, Tn as parseAntigravityUsageLimits, Yn as materializeCliLaunchCommand, at as isHomebrewCommandPath, fn as parseOpenCodeGoUsageResponse, gn as probeGrokBuildAcpInterface, hn as GrokBuildAcpTransportError, it as isBunGlobalCommandPath, j as resolveAgentProfilePrimaryAgentControllerReport, nr as areAgentControllerInterfaceAccountsSame, nt as EMPTY_AGENT_CONTROLLER_INTERFACE_CAPABILITIES, ot as isNpmGlobalCommandPath, rr as buildAgentControllerRef, rt as resolveBuiltinAgentControllerDefinition, st as isPnpmGlobalCommandPath, vn as projectCodexUsageLimits, x as resolveLocalRuntimeControllerSupport } from "./prepare-provider-runtime-BGdfbFyZ.js";
5
- import { nt as resolvePublicAgentAvailabilityCopy } from "./runtime-transport-DH8Ks-AU.js";
6
- import { d as getAuthSessionState } from "./auth-session-DhSHCYvl.js";
7
- import { B as buildAgentControllerInterfaceKeeperKey, G as readLastSuccessfulAgentControllerInterfaceCheckAt, H as didAgentControllerCommandFingerprintRemainStable, J as recordAgentControllerInterfaceProbeSuccess, K as readReusableAgentControllerInterfaceSnapshot, U as readLastKnownAgentControllerAuthSnapshot, W as readLastKnownAgentControllerUsageLimits, X as resolveAgentControllerCommandFingerprint, Y as recordAgentControllerUsageLimitsObservation, q as recordAgentControllerInterfaceProbeFailure, w as resolveOpenCodeAuthPath } from "./dispatch-owned-runtime-CK2YJ2Oo.js";
8
- import { v as warnDaemonEvent } from "./daemon-device-id-DDazRZUV.js";
3
+ import { Bn as toStructuredApiClientFailure, fn as createRuntimeReportingApi } from "./dist-BgYBvEBB.js";
4
+ import { $n as materializeCliLaunchCommand, Cn as probeCodexAppServerAccount, Dn as probeClaudeCodeUsageLimits, En as projectCodexUsageLimits, I as listAgentTargetStates, Qn as buildCliLaunchInvocation, Xn as createUnsupportedProviderUsageLimits, Yn as createUnavailableProviderUsageLimits, _n as probeGrokBuildAcpInterface, at as isHomebrewCommandPath, fn as parseOpenRouterUsageResponse, gn as GrokBuildAcpTransportError, gr as isAgentControllerUsageRefreshUnavailable, it as isBunGlobalCommandPath, j as resolveAgentProfilePrimaryAgentControllerReport, kn as parseAntigravityUsageLimits, nr as createProviderOriginalError, nt as EMPTY_AGENT_CONTROLLER_INTERFACE_CAPABILITIES, or as areAgentControllerInterfaceAccountsSame, ot as isNpmGlobalCommandPath, pn as parseOpenCodeGoUsageResponse, rt as resolveBuiltinAgentControllerDefinition, sr as buildAgentControllerRef, st as isPnpmGlobalCommandPath, x as resolveLocalRuntimeControllerSupport, yn as projectCursorUsageLimits } from "./prepare-provider-runtime-CD6XRt7X.js";
5
+ import { nt as resolvePublicAgentAvailabilityCopy } from "./runtime-transport-D4CVffnp.js";
6
+ import { T as readMacOsNativeKeychainToken, d as getAuthSessionState } from "./auth-session-iXCJO5oB.js";
7
+ import { B as buildAgentControllerInterfaceKeeperKey, G as readLastSuccessfulAgentControllerInterfaceCheckAt, H as didAgentControllerCommandFingerprintRemainStable, J as recordAgentControllerInterfaceProbeSuccess, K as readReusableAgentControllerInterfaceSnapshot, U as readLastKnownAgentControllerAuthSnapshot, W as readLastKnownAgentControllerUsageLimits, X as resolveAgentControllerCommandFingerprint, Y as recordAgentControllerUsageLimitsObservation, q as recordAgentControllerInterfaceProbeFailure, w as resolveOpenCodeAuthPath } from "./dispatch-owned-runtime-BeIQetEt.js";
8
+ import { v as warnDaemonEvent } from "./daemon-device-id-DbSIqHoZ.js";
9
9
  import { i as readDaemonServiceContract } from "./daemon-service-contract-COPKbCy_.js";
10
- import { l as canAttachAuthTokenToRequest, t as createCliApiClientFoundation, u as fingerprintRequestAuthorization } from "./api-client-foundation-EZpFLGVC.js";
10
+ import { l as canAttachAuthTokenToRequest, t as createCliApiClientFoundation, u as fingerprintRequestAuthorization } from "./api-client-foundation-C-RPnq_p.js";
11
11
  import { homedir, loadavg, tmpdir } from "node:os";
12
12
  import { join } from "node:path";
13
13
  import { mkdtemp, readFile, realpath, rm } from "node:fs/promises";
@@ -400,6 +400,60 @@ function parsePlainVersion(body) {
400
400
  return version.length > 0 ? version : null;
401
401
  }
402
402
  //#endregion
403
+ //#region src/local-service/inventory/cursor-usage-probe.ts
404
+ const CURSOR_ENDPOINT = "https://api2.cursor.sh";
405
+ const TRAILING_SLASH_RE$1 = /\/$/u;
406
+ async function probeCursorUsageLimits(input) {
407
+ const env = input.environment ?? process.env;
408
+ const platform = input.platform ?? process.platform;
409
+ const unavailable = (reason) => createUnavailableProviderUsageLimits(input.observedAt, void 0, { reason });
410
+ const endpoint = env.CURSOR_API_ENDPOINT?.trim().replace(TRAILING_SLASH_RE$1, "");
411
+ if (endpoint && endpoint !== CURSOR_ENDPOINT) return unavailable("not_applicable");
412
+ let token = env.CURSOR_AUTH_TOKEN?.trim();
413
+ if (!token && (env.CURSOR_API_KEY?.trim() || env.AGENT_CLI_CREDENTIAL_STORE === "memory")) return unavailable("not_applicable");
414
+ try {
415
+ if (!token) token = await readStoredCursorToken({
416
+ ...input,
417
+ environment: env,
418
+ platform
419
+ });
420
+ if (!token) return unavailable("not_reported");
421
+ const response = await (input.fetchFn ?? fetch)(`${CURSOR_ENDPOINT}/aiserver.v1.DashboardService/GetCurrentPeriodUsage`, {
422
+ method: "POST",
423
+ redirect: "error",
424
+ signal: AbortSignal.timeout(4e3),
425
+ headers: {
426
+ authorization: `Bearer ${token}`,
427
+ "content-type": "application/json",
428
+ "connect-protocol-version": "1",
429
+ "x-cursor-client-type": "cli"
430
+ },
431
+ body: "{}"
432
+ });
433
+ if (!response.ok) return unavailable(response.status === 401 || response.status === 403 ? "not_applicable" : "refresh_failed");
434
+ return projectCursorUsageLimits({
435
+ observedAt: input.observedAt,
436
+ value: await response.json()
437
+ });
438
+ } catch {
439
+ return unavailable("refresh_failed");
440
+ }
441
+ }
442
+ async function readStoredCursorToken(input) {
443
+ const env = input.environment;
444
+ if (input.platform === "darwin" && env.AGENT_CLI_CREDENTIAL_STORE !== "file") return (await (input.readKeychain ?? (() => readMacOsNativeKeychainToken({
445
+ service: "cursor-access-token",
446
+ account: "cursor-user"
447
+ })))())?.trim();
448
+ const home = (input.platform === "win32" ? env.USERPROFILE : env.HOME) || homedir();
449
+ let directory = join(env.XDG_CONFIG_HOME || join(home, ".config"), "cursor");
450
+ if (input.platform === "darwin") directory = join(home, ".cursor");
451
+ else if (input.platform === "win32") directory = join(env.APPDATA || join(home, "AppData", "Roaming"), "Cursor");
452
+ const content = await (input.readCredentials ?? ((path) => readFile(path, "utf8")))(join(directory, "auth.json"));
453
+ const credentials = JSON.parse(content);
454
+ return credentials && typeof credentials === "object" && "accessToken" in credentials && typeof credentials.accessToken === "string" ? credentials.accessToken.trim() : void 0;
455
+ }
456
+ //#endregion
403
457
  //#region src/local-service/inventory/opencode-readiness-probe.ts
404
458
  const DEFAULT_PROBE_TIMEOUT_MS = 8e3;
405
459
  const SDK_READ_TIMEOUT_MS = 4e3;
@@ -411,6 +465,7 @@ const OPENCODE_SERVER_URL_RE = /on\s+(https?:\/\/[^\s]+)/u;
411
465
  const ANSI_ESCAPE = String.fromCharCode(27);
412
466
  const OPENCODE_GO_PROVIDER_ID = "opencode-go";
413
467
  const OPENCODE_GO_USAGE_URL = "https://opencode.ai/zen/go/v1/usage";
468
+ const TRAILING_SLASH_RE = /\/$/u;
414
469
  async function probeOpenCodeReadiness(input) {
415
470
  let server = null;
416
471
  try {
@@ -459,42 +514,54 @@ async function readOpenCodeProviderUsageLimits(input) {
459
514
  }
460
515
  const providers = [...providersById.values()];
461
516
  return (await Promise.all(providers.map(async (provider) => {
462
- if (provider.id !== OPENCODE_GO_PROVIDER_ID) return createUnsupportedProviderUsageLimits(input.observedAt, provider);
463
- const apiKey = await resolveOpenCodeProviderApiKey({
517
+ if (provider.id !== OPENCODE_GO_PROVIDER_ID && provider.id !== "openrouter") return createUnsupportedProviderUsageLimits(input.observedAt, provider);
518
+ const config = input.providerList.all.find((item) => item.id === provider.id);
519
+ const defaultBaseUrl = provider.id === "openrouter" ? "https://openrouter.ai/api/v1" : "https://opencode.ai/zen/go/v1";
520
+ if (typeof config?.options.baseURL === "string" && config.options.baseURL.replace(TRAILING_SLASH_RE, "") !== defaultBaseUrl) return createUnavailableProviderUsageLimits(input.observedAt, provider, { reason: "not_applicable" });
521
+ const apiKey = normalizeOptionalText$1(config?.key) ?? await resolveOpenCodeProviderApiKey({
464
522
  authContent: input.authContent,
523
+ environment: input.environment,
465
524
  providerId: provider.id,
466
525
  readAuthFile: input.readAuthFile
467
526
  });
468
- if (!apiKey) return createUnavailableProviderUsageLimits(input.observedAt, provider);
527
+ if (!apiKey) return createUnavailableProviderUsageLimits(input.observedAt, provider, { reason: "not_authenticated" });
469
528
  try {
470
- const response = await (input.fetchFn ?? fetch)(OPENCODE_GO_USAGE_URL, {
529
+ const response = await (input.fetchFn ?? fetch)(provider.id === "openrouter" ? "https://openrouter.ai/api/v1/key" : OPENCODE_GO_USAGE_URL, {
530
+ redirect: "error",
471
531
  headers: { authorization: `Bearer ${apiKey}` },
472
532
  signal: AbortSignal.timeout(SDK_READ_TIMEOUT_MS)
473
533
  });
474
- if (!response.ok) return createUnavailableProviderUsageLimits(input.observedAt, provider);
475
- return parseOpenCodeGoUsageResponse({
534
+ if (!response.ok) return createUnavailableProviderUsageLimits(input.observedAt, provider, { reason: usageRequestFailureReason(response.status) });
535
+ return (provider.id === "openrouter" ? parseOpenRouterUsageResponse : parseOpenCodeGoUsageResponse)({
476
536
  observedAt: input.observedAt,
477
537
  value: await response.json()
478
538
  });
479
539
  } catch {
480
- return createUnavailableProviderUsageLimits(input.observedAt, provider);
540
+ return createUnavailableProviderUsageLimits(input.observedAt, provider, { reason: "refresh_failed" });
481
541
  }
482
542
  }))).flat().slice(0, 32);
483
543
  }
544
+ function usageRequestFailureReason(status) {
545
+ if (status === 403) return "not_applicable";
546
+ return status === 401 ? "not_authenticated" : "refresh_failed";
547
+ }
484
548
  async function resolveOpenCodeProviderApiKey(input) {
485
- let authContent = input.authContent ?? process.env.OPENCODE_AUTH_CONTENT;
549
+ const environment = input.environment ?? process.env;
550
+ let authContent = input.authContent ?? environment.OPENCODE_AUTH_CONTENT;
486
551
  if (!authContent) try {
487
552
  const authPath = resolveOpenCodeAuthPath({
488
553
  homeDir: homedir(),
489
- xdgDataHome: process.env.XDG_DATA_HOME
554
+ xdgDataHome: environment.XDG_DATA_HOME
490
555
  });
491
556
  authContent = input.readAuthFile ? await input.readAuthFile(authPath) : await readFile(authPath, "utf8");
492
557
  } catch {
493
- return null;
558
+ authContent = "{}";
494
559
  }
495
560
  try {
496
561
  const providerAuth = toRecord$1(JSON.parse(authContent)?.[input.providerId]);
497
- return providerAuth?.type === "api" ? normalizeOptionalText$1(providerAuth.key) : null;
562
+ if (providerAuth?.type === "api") return normalizeOptionalText$1(providerAuth.key);
563
+ if (providerAuth) return null;
564
+ return normalizeOptionalText$1(environment[input.providerId === OPENCODE_GO_PROVIDER_ID ? "OPENCODE_API_KEY" : "OPENROUTER_API_KEY"]);
498
565
  } catch {
499
566
  return null;
500
567
  }
@@ -862,11 +929,27 @@ async function resolveAntigravityInterfaceSnapshot(input) {
862
929
  };
863
930
  }
864
931
  async function probeAgentControllerUsageObservationAuth(input) {
932
+ if (input.agentId === "codex") try {
933
+ const account = await probeCodexAppServerAccount({
934
+ launchContract: input.launchContract,
935
+ timeoutMs: PROBE_TIMEOUT_MS
936
+ });
937
+ return {
938
+ status: account.authStatus,
939
+ ...account.email ? { email: account.email } : {}
940
+ };
941
+ } catch {
942
+ return { status: "unknown" };
943
+ }
865
944
  if (input.agentId !== "claude-code") return { status: "unknown" };
866
945
  return resolveClaudeAuthSnapshot(await withProbeWorkingDirectory((workingDirectory) => runLaunchContractCommand({
867
946
  workingDirectory,
868
947
  allowNonZeroExit: true,
869
- args: ["auth", "status"],
948
+ args: [
949
+ "auth",
950
+ "status",
951
+ "--json"
952
+ ],
870
953
  launchContract: input.launchContract
871
954
  })));
872
955
  }
@@ -951,8 +1034,7 @@ async function resolveAgentControllerInterfaceSnapshot(input) {
951
1034
  currentAuth: outcome.snapshot.auth,
952
1035
  current: outcome.snapshot.usageLimits,
953
1036
  previous: lastKnownUsageLimits,
954
- previousAuth: lastKnownAuth,
955
- support: controllerDefinition?.usageLimitSupport ?? "not_evaluated"
1037
+ previousAuth: lastKnownAuth
956
1038
  });
957
1039
  const completedSnapshot = withUsageLimits({
958
1040
  ...outcome.snapshot,
@@ -1011,11 +1093,11 @@ function withUsageLimits(snapshot, usageLimits) {
1011
1093
  }
1012
1094
  function resolveUsageLimitsAfterCompletedProbe(input) {
1013
1095
  if (!areAgentControllerInterfaceAccountsSame(input.previousAuth, input.currentAuth)) return input.current;
1014
- if (input.support === "passive") return input.previous ?? input.current;
1096
+ if (!input.current) return input.previous ?? void 0;
1015
1097
  return preserveLastKnownUsageLimitsAfterFailure(input);
1016
1098
  }
1017
1099
  function preserveLastKnownUsageLimitsAfterFailure(input) {
1018
- const currentIsUnavailable = input.current?.length === 1 && input.current[0]?.status === "unavailable";
1100
+ const currentIsUnavailable = isAgentControllerUsageRefreshUnavailable(input.current);
1019
1101
  const previousHasKnownCapacity = input.previous?.some((limit) => limit.status === "available" || limit.status === "exhausted" || limit.status === "stale");
1020
1102
  if (!(currentIsUnavailable && previousHasKnownCapacity && input.previous)) return input.current;
1021
1103
  return input.previous.map((limit) => limit.usedPercent === null ? limit : {
@@ -1028,7 +1110,7 @@ function resolveUsageLimitsAfterFailedProbe(input) {
1028
1110
  return preserveLastKnownUsageLimitsAfterFailure(input);
1029
1111
  }
1030
1112
  function resolveInitialProviderUsageLimits(input) {
1031
- if (input.support === "native") return createUnavailableProviderUsageLimits(input.checkedAt);
1113
+ if (input.support === "native" || input.support === "observational") return createUnavailableProviderUsageLimits(input.checkedAt);
1032
1114
  if (input.support === "unsupported") return createUnsupportedProviderUsageLimits(input.checkedAt);
1033
1115
  }
1034
1116
  function resolveLaunchSnapshot(state) {
@@ -1208,6 +1290,14 @@ async function resolveClaudeCodeInterfaceSnapshot(input) {
1208
1290
  })]);
1209
1291
  const auth = resolveClaudeAuthSnapshot(authProbe);
1210
1292
  const version = versionProbe.ok ? parseCliVersion(versionProbe.stdout) : null;
1293
+ let usageLimits = createUnavailableProviderUsageLimits(input.baseSnapshot.checkedAt, void 0, { reason: "not_reported" });
1294
+ if (auth.status !== "authenticated") usageLimits = createUnavailableProviderUsageLimits(input.baseSnapshot.checkedAt, void 0, { reason: auth.status === "unauthenticated" ? "not_authenticated" : "refresh_failed" });
1295
+ else if (auth.email && version && (compareSemverCore(version, "2.1.285") ?? -1) >= 0) usageLimits = await probeClaudeCodeUsageLimits({
1296
+ expectedEmail: auth.email,
1297
+ launchContract: input.launchContract,
1298
+ workingDirectory: input.workingDirectory,
1299
+ observedAt: input.baseSnapshot.checkedAt
1300
+ });
1211
1301
  let message = input.baseSnapshot.message;
1212
1302
  let status = input.baseSnapshot.status;
1213
1303
  if (auth.status === "unauthenticated") {
@@ -1222,6 +1312,7 @@ async function resolveClaudeCodeInterfaceSnapshot(input) {
1222
1312
  snapshot: {
1223
1313
  ...input.baseSnapshot,
1224
1314
  auth,
1315
+ usageLimits,
1225
1316
  message,
1226
1317
  status,
1227
1318
  version,
@@ -1251,6 +1342,7 @@ async function resolveCursorInterfaceSnapshot(input) {
1251
1342
  })]);
1252
1343
  const auth = resolveCursorAuthSnapshot(authProbe);
1253
1344
  const version = versionProbe.ok ? parseCliVersion(versionProbe.stdout) : null;
1345
+ const usageLimits = auth.status === "authenticated" ? await probeCursorUsageLimits({ observedAt: input.baseSnapshot.checkedAt }) : createUnavailableProviderUsageLimits(input.baseSnapshot.checkedAt, void 0, { reason: auth.status === "unauthenticated" ? "not_authenticated" : "refresh_failed" });
1254
1346
  let message = input.baseSnapshot.message;
1255
1347
  let status = input.baseSnapshot.status;
1256
1348
  if (auth.status === "unauthenticated") {
@@ -1265,6 +1357,7 @@ async function resolveCursorInterfaceSnapshot(input) {
1265
1357
  snapshot: {
1266
1358
  ...input.baseSnapshot,
1267
1359
  auth,
1360
+ usageLimits,
1268
1361
  message,
1269
1362
  status,
1270
1363
  version,
@@ -1768,11 +1861,15 @@ function resolveCursorAuthSnapshot(probe) {
1768
1861
  if (!probe.ok) return { status: "unknown" };
1769
1862
  const payload = parseJsonRecord(probe.stdout);
1770
1863
  if (payload?.status === "unauthenticated") return { status: "unauthenticated" };
1771
- if (payload?.status === "authenticated") return {
1772
- label: "Signed in",
1773
- status: "authenticated",
1774
- type: "cursor_login"
1775
- };
1864
+ if (payload?.status === "authenticated") {
1865
+ const email = normalizeOptionalText(payload.email);
1866
+ return {
1867
+ ...email ? { email } : {},
1868
+ label: email ?? "Signed in",
1869
+ status: "authenticated",
1870
+ type: "cursor_login"
1871
+ };
1872
+ }
1776
1873
  return { status: "unknown" };
1777
1874
  }
1778
1875
  function resolveOpenClawAuthProbe(probe) {
@@ -2021,10 +2118,19 @@ function projectAgentControllerInterfaceForCloud(snapshot) {
2021
2118
  skills: [],
2022
2119
  status: snapshot.status,
2023
2120
  ...snapshot.usageLimits ? { usageLimits: snapshot.usageLimits.map((limit) => ({
2024
- ...limit,
2025
- ...limit.provider ? { provider: { ...limit.provider } } : {}
2121
+ key: limit.key,
2122
+ label: limit.label,
2123
+ observedAt: limit.observedAt,
2124
+ ...limit.reason ? { reason: limit.reason } : {},
2125
+ ...limit.provider ? { provider: {
2126
+ displayName: limit.provider.displayName,
2127
+ id: limit.provider.id
2128
+ } } : {},
2129
+ resetsAt: limit.resetsAt,
2130
+ status: limit.status,
2131
+ usedPercent: limit.usedPercent
2026
2132
  })) } : {},
2027
- usageLimitsSupportMatrixVersion: 3,
2133
+ usageLimitsSupportMatrixVersion: 4,
2028
2134
  version: snapshot.version,
2029
2135
  ...snapshot.versionAdvisory ? { versionAdvisory: {
2030
2136
  checkedAt: snapshot.versionAdvisory.checkedAt,
@@ -2669,4 +2775,4 @@ function toErrorMessage(error) {
2669
2775
  //#endregion
2670
2776
  export { submitRuntimeProviderConversationProofs as a, resolveLocalAgentControllerLaunchability as c, resolveAgentControllerInterfaceSnapshot as d, recordRuntimeProviderUsageLimits as f, submitRuntimeAgentControllerReports as i, resolveLocalAgentControllerReportDecision as l, submitProfileRuntimeAgentControllerReport as n, collectLocalAgentControllerInventory as o, submitRuntimeAgentControllerReport as r, resolveLocalAgentControllerBlockerReasonCodes as s, notifyRuntimeReportingAttemptObserver as t, probeAgentControllerUsageObservationAuth as u };
2671
2777
 
2672
- //# sourceMappingURL=runtime-agent-controller-reporting-submission-C_xD2A-P.js.map
2778
+ //# sourceMappingURL=runtime-agent-controller-reporting-submission-CQjbBiHh.js.map