@openlimiter/core 1.3.5 → 2.0.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 (82) hide show
  1. package/dist/acquire/cadence.d.ts +5 -3
  2. package/dist/acquire/cadence.d.ts.map +1 -1
  3. package/dist/acquire/cadence.js +14 -9
  4. package/dist/acquire/cadence.js.map +1 -1
  5. package/dist/acquire/coordination.d.ts.map +1 -1
  6. package/dist/acquire/coordination.js +3 -4
  7. package/dist/acquire/coordination.js.map +1 -1
  8. package/dist/acquire/credentials.d.ts +5 -2
  9. package/dist/acquire/credentials.d.ts.map +1 -1
  10. package/dist/acquire/credentials.js +45 -11
  11. package/dist/acquire/credentials.js.map +1 -1
  12. package/dist/acquire/cursor.d.ts +8 -0
  13. package/dist/acquire/cursor.d.ts.map +1 -0
  14. package/dist/acquire/cursor.js +60 -0
  15. package/dist/acquire/cursor.js.map +1 -0
  16. package/dist/acquire/identity.d.ts +16 -2
  17. package/dist/acquire/identity.d.ts.map +1 -1
  18. package/dist/acquire/identity.js +64 -1
  19. package/dist/acquire/identity.js.map +1 -1
  20. package/dist/acquire/index.d.ts +1 -0
  21. package/dist/acquire/index.d.ts.map +1 -1
  22. package/dist/acquire/index.js +1 -0
  23. package/dist/acquire/index.js.map +1 -1
  24. package/dist/acquire/providers.d.ts +1 -0
  25. package/dist/acquire/providers.d.ts.map +1 -1
  26. package/dist/acquire/providers.js +10 -1
  27. package/dist/acquire/providers.js.map +1 -1
  28. package/dist/acquire/runner.d.ts +7 -14
  29. package/dist/acquire/runner.d.ts.map +1 -1
  30. package/dist/acquire/runner.js +151 -9
  31. package/dist/acquire/runner.js.map +1 -1
  32. package/dist/acquire/transport.d.ts +7 -1
  33. package/dist/acquire/transport.d.ts.map +1 -1
  34. package/dist/acquire/transport.js +30 -4
  35. package/dist/acquire/transport.js.map +1 -1
  36. package/dist/activity/contract.d.ts +108 -0
  37. package/dist/activity/contract.d.ts.map +1 -0
  38. package/dist/activity/contract.js +281 -0
  39. package/dist/activity/contract.js.map +1 -0
  40. package/dist/activity/spool.d.ts +20 -0
  41. package/dist/activity/spool.d.ts.map +1 -0
  42. package/dist/activity/spool.js +305 -0
  43. package/dist/activity/spool.js.map +1 -0
  44. package/dist/cache.d.ts +41 -2
  45. package/dist/cache.d.ts.map +1 -1
  46. package/dist/cache.js +134 -4
  47. package/dist/cache.js.map +1 -1
  48. package/dist/collection.d.ts.map +1 -1
  49. package/dist/collection.js +6 -0
  50. package/dist/collection.js.map +1 -1
  51. package/dist/connection-state.d.ts +15 -0
  52. package/dist/connection-state.d.ts.map +1 -1
  53. package/dist/connection-state.js +18 -0
  54. package/dist/connection-state.js.map +1 -1
  55. package/dist/contracts/notify.d.ts +47 -0
  56. package/dist/contracts/notify.d.ts.map +1 -0
  57. package/dist/contracts/notify.js +83 -0
  58. package/dist/contracts/notify.js.map +1 -0
  59. package/dist/contracts/surfaces.d.ts +61 -0
  60. package/dist/contracts/surfaces.d.ts.map +1 -0
  61. package/dist/contracts/surfaces.js +73 -0
  62. package/dist/contracts/surfaces.js.map +1 -0
  63. package/dist/contracts/wire.d.ts +108 -0
  64. package/dist/contracts/wire.d.ts.map +1 -0
  65. package/dist/contracts/wire.js +202 -0
  66. package/dist/contracts/wire.js.map +1 -0
  67. package/dist/data-rules.d.ts +30 -0
  68. package/dist/data-rules.d.ts.map +1 -0
  69. package/dist/data-rules.js +57 -0
  70. package/dist/data-rules.js.map +1 -0
  71. package/dist/index.d.ts +5 -0
  72. package/dist/index.d.ts.map +1 -1
  73. package/dist/index.js +5 -0
  74. package/dist/index.js.map +1 -1
  75. package/dist/normalizer.d.ts.map +1 -1
  76. package/dist/normalizer.js +42 -7
  77. package/dist/normalizer.js.map +1 -1
  78. package/dist/types.d.ts +44 -10
  79. package/dist/types.d.ts.map +1 -1
  80. package/dist/types.js +7 -0
  81. package/dist/types.js.map +1 -1
  82. package/package.json +16 -1
@@ -14,7 +14,70 @@
14
14
  * package's own version, so the constant cannot drift.
15
15
  */
16
16
  /** The published version this build identifies as. */
17
- export const ACQUISITION_CLIENT_VERSION = "1.3.5";
17
+ import { createHash } from "node:crypto";
18
+ export const ACQUISITION_CLIENT_VERSION = "2.0.2";
18
19
  /** The only user agent any acquisition request may carry. */
19
20
  export const OPENLIMITER_USER_AGENT = "OpenLimiter/" + ACQUISITION_CLIENT_VERSION + " (+https://openlimiter.com)";
21
+ /** Mirrors provider_detection::opaque_account_id, including the zero separator. */
22
+ export function opaqueAccountId(provider, material) {
23
+ const slug = provider.toLowerCase().replaceAll("_", "-");
24
+ return slug + "-" + createHash("sha256").update(slug).update(new Uint8Array([0]))
25
+ .update(material).digest("hex").slice(0, 24);
26
+ }
27
+ export const PROVIDER_SINGLETON_MATERIAL = "one-active-account-without-stable-identity";
28
+ function object(value) {
29
+ return value !== null && typeof value === "object" && !Array.isArray(value)
30
+ ? value : {};
31
+ }
32
+ function field(value, names) {
33
+ const source = object(value);
34
+ for (const name of names) {
35
+ const found = source[name];
36
+ if (typeof found === "string" && found.trim().length > 0 && Buffer.byteLength(found.trim()) <= 512 && !/[\u0000-\u001f\u007f]/u.test(found))
37
+ return found.trim();
38
+ }
39
+ return null;
40
+ }
41
+ export function jwtIdentity(token) {
42
+ try {
43
+ const parts = token.split(".");
44
+ if (parts.length !== 3 || token.length > 4096)
45
+ return null;
46
+ const claims = JSON.parse(Buffer.from(parts[1], "base64url").toString("utf8"));
47
+ return field(claims, ["chatgpt_account_id", "account_id", "accountId", "organization_id", "organizationId"])
48
+ ?? field(claims, ["sub", "user_id", "userId"]);
49
+ }
50
+ catch {
51
+ return null;
52
+ }
53
+ }
54
+ /** Header identity and cache identity are separate, matching Rust's provider_account_id. */
55
+ export function credentialProviderAccount(provider, container, root, secret) {
56
+ const names = ["account_id", "accountId", "accountUuid", "workspace_id", "workspaceId", "user_id", "userId"];
57
+ const explicit = field(container, names) ?? field(root, names);
58
+ if (explicit !== null)
59
+ return explicit;
60
+ try {
61
+ const parts = secret.split(".");
62
+ if (parts.length !== 3 || secret.length > 4096)
63
+ return null;
64
+ const claims = JSON.parse(Buffer.from(parts[1], "base64url").toString("utf8"));
65
+ return provider === "CODEX" ? field(claims, ["chatgpt_account_id", "account_id"])
66
+ : provider === "GROK" ? field(claims, ["user_id", "userId", "sub"]) : null;
67
+ }
68
+ catch {
69
+ return null;
70
+ }
71
+ }
72
+ /** Capture at acquisition time. Never assign an old observation to the current login. */
73
+ export function credentialIdentityMaterial(container, root, secret, hint = null) {
74
+ const names = ["account_id", "accountId", "accountUuid", "workspace_id", "workspaceId", "user_id", "userId"];
75
+ return field(container, names) ?? field(root, names) ?? hint ?? jwtIdentity(secret)
76
+ ?? jwtIdentity(field(container, ["id_token", "idToken"]) ?? "");
77
+ }
78
+ export function acquisitionAccountId(provider, credential) {
79
+ if (provider === "ANTIGRAVITY" && credential.origin === "vendor_store")
80
+ return opaqueAccountId(provider, PROVIDER_SINGLETON_MATERIAL);
81
+ return opaqueAccountId(provider, credential.identityMaterial ?? credential.accountId ?? jwtIdentity(credential.secret) ?? PROVIDER_SINGLETON_MATERIAL);
82
+ }
20
83
  //# sourceMappingURL=identity.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"identity.js","sourceRoot":"","sources":["../../src/acquire/identity.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,sDAAsD;AACtD,MAAM,CAAC,MAAM,0BAA0B,GAAG,OAAO,CAAC;AAElD,6DAA6D;AAC7D,MAAM,CAAC,MAAM,sBAAsB,GACjC,cAAc,GAAG,0BAA0B,GAAG,6BAA6B,CAAC"}
1
+ {"version":3,"file":"identity.js","sourceRoot":"","sources":["../../src/acquire/identity.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,sDAAsD;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAGzC,MAAM,CAAC,MAAM,0BAA0B,GAAG,OAAO,CAAC;AAElD,6DAA6D;AAC7D,MAAM,CAAC,MAAM,sBAAsB,GACjC,cAAc,GAAG,0BAA0B,GAAG,6BAA6B,CAAC;AAE9E,mFAAmF;AACnF,MAAM,UAAU,eAAe,CAAC,QAAsB,EAAE,QAAgB;IACtE,MAAM,IAAI,GAAG,QAAQ,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IACzD,OAAO,IAAI,GAAG,GAAG,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;SAC9E,MAAM,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AACjD,CAAC;AAED,MAAM,CAAC,MAAM,2BAA2B,GAAG,4CAA4C,CAAC;AAExF,SAAS,MAAM,CAAC,KAAc;IAC5B,OAAO,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QACzE,CAAC,CAAC,KAAgC,CAAC,CAAC,CAAC,EAAE,CAAC;AAC5C,CAAC;AAED,SAAS,KAAK,CAAC,KAAc,EAAE,KAAwB;IACrD,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAC7B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;QAC3B,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,IAAI,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,KAAK,CAAC;YAAE,OAAO,KAAK,CAAC,IAAI,EAAE,CAAC;IACnK,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,KAAa;IACvC,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC/B,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,GAAG,IAAI;YAAE,OAAO,IAAI,CAAC;QAC3D,MAAM,MAAM,GAAY,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAE,EAAE,WAAW,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;QACzF,OAAO,KAAK,CAAC,MAAM,EAAE,CAAC,oBAAoB,EAAE,YAAY,EAAE,WAAW,EAAE,iBAAiB,EAAE,gBAAgB,CAAC,CAAC;eACvG,KAAK,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC;IACnD,CAAC;IAAC,MAAM,CAAC;QAAC,OAAO,IAAI,CAAC;IAAC,CAAC;AAC1B,CAAC;AAED,4FAA4F;AAC5F,MAAM,UAAU,yBAAyB,CAAC,QAAsB,EAAE,SAAkB,EAAE,IAAa,EAAE,MAAc;IACjH,MAAM,KAAK,GAAG,CAAC,YAAY,EAAE,WAAW,EAAE,aAAa,EAAE,cAAc,EAAE,aAAa,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;IAC7G,MAAM,QAAQ,GAAG,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAC/D,IAAI,QAAQ,KAAK,IAAI;QAAE,OAAO,QAAQ,CAAC;IACvC,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAChC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,MAAM,CAAC,MAAM,GAAG,IAAI;YAAE,OAAO,IAAI,CAAC;QAC5D,MAAM,MAAM,GAAY,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAE,EAAE,WAAW,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;QACzF,OAAO,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,oBAAoB,EAAE,YAAY,CAAC,CAAC;YAC/E,CAAC,CAAC,QAAQ,KAAK,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,SAAS,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAC/E,CAAC;IAAC,MAAM,CAAC;QAAC,OAAO,IAAI,CAAC;IAAC,CAAC;AAC1B,CAAC;AAED,yFAAyF;AACzF,MAAM,UAAU,0BAA0B,CAAC,SAAkB,EAAE,IAAa,EAAE,MAAc,EAAE,OAAsB,IAAI;IACtH,MAAM,KAAK,GAAG,CAAC,YAAY,EAAE,WAAW,EAAE,aAAa,EAAE,cAAc,EAAE,aAAa,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;IAC7G,OAAO,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,IAAI,IAAI,WAAW,CAAC,MAAM,CAAC;WAC9E,WAAW,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;AACpE,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,QAAsB,EAAE,UAA2G;IACtK,IAAI,QAAQ,KAAK,aAAa,IAAI,UAAU,CAAC,MAAM,KAAK,cAAc;QAAE,OAAO,eAAe,CAAC,QAAQ,EAAE,2BAA2B,CAAC,CAAC;IACtI,OAAO,eAAe,CAAC,QAAQ,EAAE,UAAU,CAAC,gBAAgB,IAAI,UAAU,CAAC,SAAS,IAAI,WAAW,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,2BAA2B,CAAC,CAAC;AACzJ,CAAC"}
@@ -1,6 +1,7 @@
1
1
  export * from "./cadence.js";
2
2
  export * from "./coordination.js";
3
3
  export * from "./credentials.js";
4
+ export * from "./cursor.js";
4
5
  export * from "./identity.js";
5
6
  export * from "./providers.js";
6
7
  export * from "./runner.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/acquire/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,yBAAyB,CAAC;AACxC,cAAc,wBAAwB,CAAC;AACvC,cAAc,yBAAyB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/acquire/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,yBAAyB,CAAC;AACxC,cAAc,wBAAwB,CAAC;AACvC,cAAc,yBAAyB,CAAC"}
@@ -1,6 +1,7 @@
1
1
  export * from "./cadence.js";
2
2
  export * from "./coordination.js";
3
3
  export * from "./credentials.js";
4
+ export * from "./cursor.js";
4
5
  export * from "./identity.js";
5
6
  export * from "./providers.js";
6
7
  export * from "./runner.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/acquire/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,yBAAyB,CAAC;AACxC,cAAc,wBAAwB,CAAC;AACvC,cAAc,yBAAyB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/acquire/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,yBAAyB,CAAC;AACxC,cAAc,wBAAwB,CAAC;AACvC,cAAc,yBAAyB,CAAC"}
@@ -76,6 +76,7 @@ export interface ClaudeSpecOptions {
76
76
  }
77
77
  export declare function claudeSpec(options: ClaudeSpecOptions): AcquisitionSpec;
78
78
  export declare function codexSpec(parse: PayloadParser): AcquisitionSpec;
79
+ export declare function cursorSpec(parse: PayloadParser): AcquisitionSpec;
79
80
  export declare function geminiCliSpec(parse: PayloadParser): AcquisitionSpec;
80
81
  /** Whether this credential is the Gemini CLI's, borrowed for the shared quota. */
81
82
  export declare function isSharedCodeAssist(credential: AcquiredCredential): boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"providers.d.ts","sourceRoot":"","sources":["../../src/acquire/providers.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAC3D,OAAO,KAAK,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAWpE,MAAM,MAAM,aAAa,GAAG,CAC1B,OAAO,EAAE,OAAO,EAChB,GAAG,EAAE,MAAM,KACR,SAAS,QAAQ,EAAE,GAAG,IAAI,CAAC;AAEhC;;;;;;;GAOG;AACH,eAAO,MAAM,sBAAsB;;;;;;;;;CAmBzB,CAAC;AAEX,oFAAoF;AACpF,eAAO,MAAM,yBAAyB,4BAA4B,CAAC;AAEnE,8EAA8E;AAC9E,eAAO,MAAM,0BAA0B,sBAAsB,CAAC;AAE9D,8EAA8E;AAC9E,eAAO,MAAM,wBAAwB,oCAAoC,CAAC;AAE1E,8EAA8E;AAC9E,eAAO,MAAM,uBAAuB,iBAAiB,CAAC;AAEtD;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,6BAA6B,QAEU,CAAC;AAMrD;;;;;;GAMG;AACH,wBAAgB,eAAe,IAAI,SAAS,eAAe,EAAE,CAwB5D;AAOD,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC;IAC9B;;;;;;;OAOG;IACH,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;CAC3B;AAED,wBAAgB,UAAU,CAAC,OAAO,EAAE,iBAAiB,GAAG,eAAe,CAWtE;AAED,wBAAgB,SAAS,CAAC,KAAK,EAAE,aAAa,GAAG,eAAe,CAY/D;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,aAAa,GAAG,eAAe,CASnE;AAED,kFAAkF;AAClF,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,kBAAkB,GAAG,OAAO,CAE1E;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,aAAa,GAAG,eAAe,CAkBrE;AAED,wBAAgB,QAAQ,CAAC,KAAK,EAAE,aAAa,GAAG,eAAe,CAU9D;AAED,wBAAgB,QAAQ,CAAC,KAAK,EAAE,aAAa,GAAG,eAAe,CAQ9D;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,aAAa,GAAG,eAAe,CAQpE"}
1
+ {"version":3,"file":"providers.d.ts","sourceRoot":"","sources":["../../src/acquire/providers.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAE5C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAC3D,OAAO,KAAK,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAYpE,MAAM,MAAM,aAAa,GAAG,CAC1B,OAAO,EAAE,OAAO,EAChB,GAAG,EAAE,MAAM,KACR,SAAS,QAAQ,EAAE,GAAG,IAAI,CAAC;AAEhC;;;;;;;GAOG;AACH,eAAO,MAAM,sBAAsB;;;;;;;;;CAmBzB,CAAC;AAEX,oFAAoF;AACpF,eAAO,MAAM,yBAAyB,4BAA4B,CAAC;AAEnE,8EAA8E;AAC9E,eAAO,MAAM,0BAA0B,sBAAsB,CAAC;AAE9D,8EAA8E;AAC9E,eAAO,MAAM,wBAAwB,oCAAoC,CAAC;AAE1E,8EAA8E;AAC9E,eAAO,MAAM,uBAAuB,iBAAiB,CAAC;AAEtD;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,6BAA6B,QAEU,CAAC;AAMrD;;;;;;GAMG;AACH,wBAAgB,eAAe,IAAI,SAAS,eAAe,EAAE,CAwB5D;AAOD,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC;IAC9B;;;;;;;OAOG;IACH,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;CAC3B;AAED,wBAAgB,UAAU,CAAC,OAAO,EAAE,iBAAiB,GAAG,eAAe,CAWtE;AAED,wBAAgB,SAAS,CAAC,KAAK,EAAE,aAAa,GAAG,eAAe,CAY/D;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,aAAa,GAAG,eAAe,CAOhE;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,aAAa,GAAG,eAAe,CASnE;AAED,kFAAkF;AAClF,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,kBAAkB,GAAG,OAAO,CAE1E;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,aAAa,GAAG,eAAe,CAkBrE;AAED,wBAAgB,QAAQ,CAAC,KAAK,EAAE,aAAa,GAAG,eAAe,CAU9D;AAED,wBAAgB,QAAQ,CAAC,KAAK,EAAE,aAAa,GAAG,eAAe,CAQ9D;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,aAAa,GAAG,eAAe,CAQpE"}
@@ -1,4 +1,5 @@
1
- import { claudeUsageRequest, codeAssistLoadRequest, codeAssistQuotaRequest, codexUsageRequest, grokBillingRequest, kimiUsageRequest, openrouterKeyRequest } from "./transport.js";
1
+ import { cursorAccountId } from "./cursor.js";
2
+ import { claudeUsageRequest, codeAssistLoadRequest, codeAssistQuotaRequest, codexUsageRequest, cursorUsageRequest, grokBillingRequest, kimiUsageRequest, openrouterKeyRequest } from "./transport.js";
2
3
  /**
3
4
  * The sentence each row carries about how its number was obtained.
4
5
  *
@@ -113,6 +114,14 @@ export function codexSpec(parse) {
113
114
  disclosure: ACQUISITION_DISCLOSURE.codex
114
115
  };
115
116
  }
117
+ export function cursorSpec(parse) {
118
+ return {
119
+ provider: "CURSOR", credentialProvider: "CURSOR", parse,
120
+ accountIdFor: credential => credential.accountId === null ? null : cursorAccountId(credential.accountId),
121
+ steps: [({ credential }) => credential.accountId === null ? null : cursorUsageRequest(credential.secret, credential.accountId)],
122
+ disclosure: "Experimental: parser tested on fixtures; live acquisition unverified"
123
+ };
124
+ }
116
125
  export function geminiCliSpec(parse) {
117
126
  return {
118
127
  provider: "GEMINI_CLI",
@@ -1 +1 @@
1
- {"version":3,"file":"providers.js","sourceRoot":"","sources":["../../src/acquire/providers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"providers.js","sourceRoot":"","sources":["../../src/acquire/providers.ts"],"names":[],"mappings":"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"}
@@ -1,18 +1,5 @@
1
- /**
2
- * One round of acquisition: read what is on this machine, ask each provider
3
- * once, and say plainly what happened to every one of them.
4
- *
5
- * The parsers are injected rather than imported. This package sits underneath
6
- * the connector package that owns them, and inverting that dependency to save
7
- * one argument would put a provider response shape in the same module as the
8
- * cache. So a caller wires its parsers in, and this file stays about cadence,
9
- * ordering and honesty.
10
- *
11
- * Nothing here throws. A round that fails every provider still returns a row
12
- * per provider saying why, because the surfaces above are a status line and a
13
- * doctor command, and both of them owe a person an answer rather than a stack.
14
- */
15
1
  import type { CollectionFailureReason, CollectionReport } from "../collection.js";
2
+ import { type MachineLease } from "../cache.js";
16
3
  import type { ProviderCode, RawMeter } from "../types.js";
17
4
  import { type AcquisitionSchedule } from "./cadence.js";
18
5
  import { type AcquiredCredential, type AcquisitionProvider, type CredentialLookupOptions, type CredentialResult } from "./credentials.js";
@@ -80,6 +67,8 @@ export interface AcquisitionSpec {
80
67
  /** What one provider's row says after a round. */
81
68
  export type AcquisitionStatus = "read" | "stale" | "waiting" | "not_detected" | "off";
82
69
  export interface AcquisitionRow {
70
+ readonly availability?: "expired_credentials" | "access_denied" | "rate_limited";
71
+ readonly retryAt?: string;
83
72
  readonly provider: ProviderCode;
84
73
  /** The account these rows were filed under, when one was decided. */
85
74
  readonly accountId?: string;
@@ -99,6 +88,9 @@ export interface AcquisitionRunResult {
99
88
  readonly schedule: AcquisitionSchedule;
100
89
  }
101
90
  export interface AcquisitionRunOptions {
91
+ readonly clock?: () => number;
92
+ readonly stateDirectory?: string;
93
+ readonly lease?: MachineLease;
102
94
  readonly transport: AcquisitionTransport;
103
95
  readonly now: string;
104
96
  readonly schedule: AcquisitionSchedule;
@@ -134,6 +126,7 @@ export interface AcquisitionRunOptions {
134
126
  * a successful read changes anything.
135
127
  */
136
128
  export declare function collectionReasonFor(outcome: AcquisitionOutcome): CollectionFailureReason;
129
+ export declare function credentialExpired(credential: AcquiredCredential, now: number): boolean;
137
130
  /**
138
131
  * Run every spec once, honouring the schedule.
139
132
  *
@@ -1 +1 @@
1
- {"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../src/acquire/runner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../src/acquire/runner.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,27 @@
1
+ /**
2
+ * One round of acquisition: read what is on this machine, ask each provider
3
+ * once, and say plainly what happened to every one of them.
4
+ *
5
+ * The parsers are injected rather than imported. This package sits underneath
6
+ * the connector package that owns them, and inverting that dependency to save
7
+ * one argument would put a provider response shape in the same module as the
8
+ * cache. So a caller wires its parsers in, and this file stays about cadence,
9
+ * ordering and honesty.
10
+ *
11
+ * Nothing here throws. A round that fails every provider still returns a row
12
+ * per provider saying why, because the surfaces above are a status line and a
13
+ * doctor command, and both of them owe a person an answer rather than a stack.
14
+ */
15
+ import { createHash } from "node:crypto";
16
+ import { lstat } from "node:fs/promises";
1
17
  import { normalizeMeters } from "../normalizer.js";
18
+ import { acquireMachineLease, recordAcquisitionAvailability, withPolicyFreshness } from "../cache.js";
2
19
  import { ACQUISITION_OUTCOME_SENTENCE, isProviderDue, nextAttemptInstant } from "./cadence.js";
3
- import { CREDENTIAL_FAILURE_SENTENCE, readAcquisitionCredential } from "./credentials.js";
20
+ import { CREDENTIAL_FAILURE_SENTENCE, credentialCandidatePaths, readAcquisitionCredential } from "./credentials.js";
4
21
  import { outcomeForStatus } from "./transport.js";
5
22
  import { AGY_NOT_RUNNING_SENTENCE } from "./antigravity-probe.js";
6
23
  import { isSharedCodeAssist } from "./providers.js";
24
+ import { acquisitionAccountId } from "./identity.js";
7
25
  /**
8
26
  * The failure vocabulary the cache understands, from ours.
9
27
  *
@@ -24,10 +42,32 @@ export function collectionReasonFor(outcome) {
24
42
  return "network";
25
43
  return "remote_error";
26
44
  }
45
+ export function credentialExpired(credential, now) {
46
+ if (credential.expiresAtMilliseconds !== null && credential.expiresAtMilliseconds <= now)
47
+ return true;
48
+ try {
49
+ const part = credential.secret.split(".")[1];
50
+ if (!part)
51
+ return false;
52
+ const payload = JSON.parse(Buffer.from(part, "base64url").toString("utf8"));
53
+ return typeof payload.exp === "number" && Number.isFinite(payload.exp) && payload.exp * 1000 <= now;
54
+ }
55
+ catch {
56
+ return false;
57
+ }
58
+ }
27
59
  async function attempt(spec, credential, options) {
28
60
  const previous = [];
61
+ const started = Date.now();
29
62
  let retryAfter = null;
30
63
  for (const step of spec.steps) {
64
+ const at = options.clock?.() ?? Date.parse(options.now) + Date.now() - started;
65
+ if (credentialExpired(credential, at)) {
66
+ return { outcome: "unauthorized", meters: [], retryAfterSeconds: null, expiredCredentials: true };
67
+ }
68
+ if (options.lease && !(await options.lease.stillOwned(at))) {
69
+ return { outcome: "transport", meters: [], retryAfterSeconds: null };
70
+ }
31
71
  const decided = step({ credential, previous });
32
72
  if (decided === null) {
33
73
  return { outcome: "drift", meters: [], retryAfterSeconds: null };
@@ -97,11 +137,35 @@ export async function runAcquisition(specs, options) {
97
137
  ...options.schedule
98
138
  };
99
139
  const stamp = options.stamp ?? ((meters) => meters);
100
- const readCredential = options.readCredential ??
140
+ const credentialReader = options.readCredential ??
101
141
  ((provider) => readAcquisitionCredential(provider, {
102
142
  ...options.lookup,
103
143
  now: options.now
104
144
  }));
145
+ const observedCredentials = new Map();
146
+ const readCredential = async (provider) => {
147
+ const result = await credentialReader(provider);
148
+ if (result.ok)
149
+ observedCredentials.set(provider, result.credential);
150
+ return result;
151
+ };
152
+ const revisionFor = async (spec) => {
153
+ const credential = await readCredential(spec.credentialProvider);
154
+ const files = options.readCredential && !options.lookup ? [] : credentialCandidatePaths(spec.credentialProvider, options.lookup);
155
+ const mtimes = await Promise.all(files.map(async (file) => {
156
+ try {
157
+ return [file, (await lstat(file)).mtimeMs];
158
+ }
159
+ catch {
160
+ return [file, null];
161
+ }
162
+ }));
163
+ return createHash("sha256").update(JSON.stringify([credential, mtimes])).digest("hex");
164
+ };
165
+ const refused = (outcome) => outcome === "unauthorized" || outcome === "blocked" || outcome === "identity_refused";
166
+ const refusalAvailability = (outcome) => outcome === "unauthorized"
167
+ ? { availability: "expired_credentials" }
168
+ : outcome === "blocked" || outcome === "identity_refused" ? { availability: "access_denied" } : {};
105
169
  /**
106
170
  * One provider, start to finish.
107
171
  *
@@ -122,11 +186,13 @@ export async function runAcquisition(specs, options) {
122
186
  });
123
187
  return;
124
188
  }
125
- if (!isProviderDue(existing, options.now)) {
189
+ const changedRefusal = existing?.refusalRevision !== undefined && refused(existing.outcome) && existing.refusalRevision !== await revisionFor(spec);
190
+ if (!isProviderDue(existing, options.now) && !changedRefusal) {
126
191
  rows.push({
127
192
  provider: spec.provider,
128
193
  detected: true,
129
194
  status: "waiting",
195
+ ...(existing ? refusalAvailability(existing.outcome) : {}),
130
196
  reason: existing === undefined
131
197
  ? null
132
198
  : ACQUISITION_OUTCOME_SENTENCE[existing.outcome],
@@ -156,15 +222,17 @@ export async function runAcquisition(specs, options) {
156
222
  nextAttemptAt: nextAttemptAt ?? options.now,
157
223
  outcome: "ok"
158
224
  };
225
+ const accountId = acquisitionAccountId("ANTIGRAVITY", { secret: "", accountId: null, origin: "vendor_store" });
159
226
  const snapshots = normalizeMeters(stamp(probeResult.meters, {
160
227
  secret: "",
161
228
  accountId: null,
162
229
  expiresAtMilliseconds: null,
163
230
  origin: "vendor_store"
164
- }));
231
+ }).map(row => ({ ...row, accountId })));
165
232
  if (snapshots.length > 0) {
166
233
  rows.push({
167
234
  provider: spec.provider,
235
+ accountId,
168
236
  detected: true,
169
237
  status: "read",
170
238
  reason: null,
@@ -174,6 +242,7 @@ export async function runAcquisition(specs, options) {
174
242
  reports.push({
175
243
  ok: true,
176
244
  provider: spec.provider,
245
+ accountId,
177
246
  observedAt: options.now,
178
247
  snapshots
179
248
  });
@@ -184,8 +253,18 @@ export async function runAcquisition(specs, options) {
184
253
  const credential = await readCredential(spec.credentialProvider);
185
254
  if (credential.ok && isSharedCodeAssist(credential.credential)) {
186
255
  const fallbackResult = await attempt(spec, credential.credential, options);
256
+ if (fallbackResult.outcome !== "ok") {
257
+ const expired = fallbackResult.expiredCredentials === true;
258
+ const nextAttemptAt = expired ? null : nextAttemptInstant(fallbackResult.outcome, options.now, fallbackResult.retryAfterSeconds, existing?.attempts ?? options.lease?.attempts ?? 0);
259
+ if (nextAttemptAt)
260
+ schedule[spec.provider] = { lastAttemptAt: options.now, nextAttemptAt, outcome: fallbackResult.outcome, attempts: (existing?.attempts ?? options.lease?.attempts ?? 0) + 1,
261
+ ...(refused(fallbackResult.outcome) ? { refusalRevision: await revisionFor(spec) } : {}) };
262
+ rows.push({ provider: spec.provider, detected: true, status: "stale", reason: expired ? CREDENTIAL_FAILURE_SENTENCE.expired : ACQUISITION_OUTCOME_SENTENCE[fallbackResult.outcome], nextAttemptAt, disclosure: spec.disclosure,
263
+ ...(expired ? { availability: "expired_credentials" } : fallbackResult.outcome === "rate_limited" && nextAttemptAt ? { availability: "rate_limited", retryAt: nextAttemptAt } : refusalAvailability(fallbackResult.outcome)) });
264
+ return;
265
+ }
187
266
  if (fallbackResult.outcome === "ok" && fallbackResult.meters.length > 0) {
188
- const accountId = spec.accountIdFor?.(credential.credential) ?? null;
267
+ const accountId = spec.accountIdFor?.(credential.credential) ?? acquisitionAccountId(spec.provider, credential.credential);
189
268
  const accountLabel = spec.accountLabelFor?.(credential.credential) ?? null;
190
269
  const disclosure = spec.disclosureFor?.(credential.credential) ?? spec.disclosure;
191
270
  const nextAttemptAt = nextAttemptInstant("ok", options.now);
@@ -241,6 +320,7 @@ export async function runAcquisition(specs, options) {
241
320
  if (!credential.ok) {
242
321
  const absent = credential.reason === "absent";
243
322
  rows.push({
323
+ ...(credential.reason === "expired" ? { availability: "expired_credentials" } : {}),
244
324
  provider: spec.provider,
245
325
  detected: !absent,
246
326
  status: absent ? "not_detected" : "stale",
@@ -253,13 +333,22 @@ export async function runAcquisition(specs, options) {
253
333
  return;
254
334
  }
255
335
  const held = credential.credential;
256
- const accountId = spec.accountIdFor?.(held) ?? null;
336
+ if (credentialExpired(held, Date.parse(options.now))) {
337
+ rows.push({ provider: spec.provider, detected: true, status: "stale", accountId: acquisitionAccountId(spec.provider, held), availability: "expired_credentials", reason: CREDENTIAL_FAILURE_SENTENCE.expired, nextAttemptAt: null, disclosure: spec.disclosure });
338
+ return;
339
+ }
340
+ const accountId = spec.accountIdFor?.(held) ?? acquisitionAccountId(spec.provider, held);
257
341
  const accountLabel = spec.accountLabelFor?.(held) ?? null;
258
342
  const disclosure = spec.disclosureFor?.(held) ?? spec.disclosure;
259
343
  const sentence = (outcome) => spec.outcomeSentence?.[outcome] ?? ACQUISITION_OUTCOME_SENTENCE[outcome];
260
344
  const result = await attempt(spec, held, options);
261
- const nextAttemptAt = nextAttemptInstant(result.outcome, options.now, result.retryAfterSeconds);
345
+ if (result.expiredCredentials) {
346
+ rows.push({ provider: spec.provider, detected: true, status: "stale", accountId: acquisitionAccountId(spec.provider, held), availability: "expired_credentials", reason: CREDENTIAL_FAILURE_SENTENCE.expired, nextAttemptAt: null, disclosure });
347
+ return;
348
+ }
349
+ const nextAttemptAt = nextAttemptInstant(result.outcome, options.clock ? new Date(options.clock()).toISOString() : options.now, result.retryAfterSeconds, existing?.attempts ?? options.lease?.attempts ?? 0);
262
350
  schedule[spec.provider] = {
351
+ attempts: result.outcome === "ok" ? 0 : (existing?.attempts ?? options.lease?.attempts ?? 0) + 1,
263
352
  lastAttemptAt: options.now,
264
353
  nextAttemptAt: nextAttemptAt ?? options.now,
265
354
  outcome: result.outcome
@@ -301,6 +390,8 @@ export async function runAcquisition(specs, options) {
301
390
  ? "drift"
302
391
  : result.outcome;
303
392
  schedule[spec.provider] = {
393
+ attempts: (existing?.attempts ?? options.lease?.attempts ?? 0) + 1,
394
+ ...(refused(outcome) ? { refusalRevision: await revisionFor(spec) } : {}),
304
395
  lastAttemptAt: options.now,
305
396
  nextAttemptAt: nextAttemptAt ?? options.now,
306
397
  outcome
@@ -310,14 +401,62 @@ export async function runAcquisition(specs, options) {
310
401
  ...(accountId === null ? {} : { accountId }),
311
402
  detected: true,
312
403
  status: "stale",
404
+ ...(outcome === "rate_limited" && nextAttemptAt ? { availability: "rate_limited", retryAt: nextAttemptAt } : refusalAvailability(outcome)),
313
405
  reason: sentence(outcome),
314
406
  nextAttemptAt,
315
407
  disclosure
316
408
  });
317
409
  };
318
410
  for (const spec of specs) {
411
+ let lease = null;
319
412
  try {
320
- await readOne(spec);
413
+ if (options.stateDirectory !== undefined && spec.enabled !== false) {
414
+ lease = await acquireMachineLease(spec.provider, options.stateDirectory, options.clock?.() ?? Date.parse(options.now), await revisionFor(spec));
415
+ if (lease === null) {
416
+ // A borrowed Gemini login describes the same quota. Reuse the observation
417
+ // from this round, retaining its age, instead of polling Code Assist twice.
418
+ if (spec.provider === "ANTIGRAVITY") {
419
+ const originalCredential = observedCredentials.get("GEMINI_CLI");
420
+ const credential = await readCredential(spec.credentialProvider);
421
+ const source = reports.find((report) => report.ok && report.provider === "GEMINI_CLI");
422
+ if (credential.ok && originalCredential?.secret === credential.credential.secret && isSharedCodeAssist(credential.credential) && !credentialExpired(credential.credential, Date.parse(options.now)) && source?.ok) {
423
+ const accountId = spec.accountIdFor?.(credential.credential) ?? acquisitionAccountId(spec.provider, credential.credential);
424
+ const accountLabel = spec.accountLabelFor?.(credential.credential) ?? null;
425
+ const snapshots = source.snapshots.map((snapshot) => ({ ...snapshot, provider: spec.provider,
426
+ ...(accountId ? { accountId } : {}), ...(accountLabel ? { accountLabel } : {}) }));
427
+ reports.push({ ...source, provider: spec.provider, ...(accountId ? { accountId } : {}), snapshots });
428
+ const previous = schedule["GEMINI_CLI"];
429
+ if (previous)
430
+ schedule[spec.provider] = previous;
431
+ rows.push({ provider: spec.provider, ...(accountId ? { accountId } : {}), detected: true, status: "read", reason: null,
432
+ nextAttemptAt: previous?.nextAttemptAt ?? null, disclosure: spec.disclosureFor?.(credential.credential) ?? spec.disclosure });
433
+ continue;
434
+ }
435
+ }
436
+ rows.push({ provider: spec.provider, detected: true, status: "waiting", reason: "another acquisition owns this provider or its retry deadline is pending", nextAttemptAt: null, disclosure: spec.disclosure });
437
+ continue;
438
+ }
439
+ // Read and persist each provider while its shared machine lease is held.
440
+ const { stateDirectory: _directory, ...localOptions } = options;
441
+ const previous = schedule[spec.provider];
442
+ const localSchedule = previous ? { ...schedule, [spec.provider]: { ...previous, attempts: Math.max(previous.attempts ?? 0, lease.attempts) } } : schedule;
443
+ const single = await runAcquisition([spec], { ...localOptions, readCredential, now: options.clock ? new Date(options.clock()).toISOString() : options.now, schedule: localSchedule, lease });
444
+ rows.push(...single.rows);
445
+ reports.push(...single.reports);
446
+ const updated = single.schedule[spec.provider];
447
+ if (updated)
448
+ schedule[spec.provider] = updated;
449
+ const entry = schedule[spec.provider];
450
+ if (entry)
451
+ await lease.complete(Date.parse(entry.nextAttemptAt), entry.attempts ?? 0, entry.refusalRevision);
452
+ for (const row of single.rows) {
453
+ if (row.availability)
454
+ await recordAcquisitionAvailability(spec.provider, row.availability, options.now, row.retryAt, options.stateDirectory, row.accountId);
455
+ }
456
+ }
457
+ else {
458
+ await readOne(spec);
459
+ }
321
460
  }
322
461
  catch {
323
462
  /*
@@ -339,7 +478,10 @@ export async function runAcquisition(specs, options) {
339
478
  disclosure: spec.disclosure
340
479
  });
341
480
  }
481
+ finally {
482
+ await lease?.release();
483
+ }
342
484
  }
343
- return { rows, reports, schedule };
485
+ return { rows, reports: reports.map((report) => report.ok ? { ...report, snapshots: report.snapshots.map(withPolicyFreshness) } : report), schedule };
344
486
  }
345
487
  //# sourceMappingURL=runner.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"runner.js","sourceRoot":"","sources":["../../src/acquire/runner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runner.js","sourceRoot":"","sources":["../../src/acquire/runner.ts"],"names":[],"mappings":"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"}
@@ -14,6 +14,7 @@ export declare const GEMINI_CLI_QUOTA_URL = "https://cloudcode-pa.googleapis.com
14
14
  export declare const GROK_USAGE_URL = "https://cli-chat-proxy.grok.com/v1/billing?format=credits";
15
15
  /** The Kimi Code usage report the official Kimi CLI reads. */
16
16
  export declare const KIMI_USAGE_URL = "https://api.kimi.com/coding/v1/usages";
17
+ export declare const CURSOR_USAGE_URL = "https://cursor.com/api/usage-summary";
17
18
  /** The OpenRouter inference key report: limit, remaining and usage. */
18
19
  export declare const OPENROUTER_KEY_URL = "https://openrouter.ai/api/v1/key";
19
20
  /**
@@ -49,6 +50,10 @@ export declare const ACQUISITION_ENDPOINTS: {
49
50
  readonly url: "https://api.kimi.com/coding/v1/usages";
50
51
  readonly method: "GET";
51
52
  };
53
+ readonly cursor_usage: {
54
+ readonly url: "https://cursor.com/api/usage-summary";
55
+ readonly method: "GET";
56
+ };
52
57
  readonly openrouter_key: {
53
58
  readonly url: "https://openrouter.ai/api/v1/key";
54
59
  readonly method: "GET";
@@ -126,6 +131,7 @@ export declare function codeAssistQuotaRequest(secret: string, project: string):
126
131
  export declare function grokBillingRequest(secret: string, accountId: string | null): AcquisitionRequest | null;
127
132
  /** The Kimi Code usage request. */
128
133
  export declare function kimiUsageRequest(secret: string): AcquisitionRequest | null;
134
+ export declare function cursorUsageRequest(secret: string, authId: string): AcquisitionRequest | null;
129
135
  /** The OpenRouter key report, the one documented interface in this table. */
130
136
  export declare function openrouterKeyRequest(secret: string): AcquisitionRequest | null;
131
137
  /**
@@ -163,7 +169,7 @@ export type AcquisitionTransport = (request: AcquisitionRequest) => Promise<Acqu
163
169
  */
164
170
  export declare function outcomeForStatus(status: number): AcquisitionOutcome;
165
171
  /** Retry-After in seconds, when the header is a count of seconds we believe. */
166
- export declare function retryAfterSeconds(value: string | null): number | null;
172
+ export declare function retryAfterSeconds(value: string | null, now?: number): number | null;
167
173
  /**
168
174
  * The header names an acquisition request may carry.
169
175
  *