@rynfar/meridian 1.71.1 → 1.73.0

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 (125) hide show
  1. package/README.md +115 -162
  2. package/assets/desktop-dashboard.jpg +0 -0
  3. package/assets/trayTemplate.png +0 -0
  4. package/assets/trayTemplate@2x.png +0 -0
  5. package/assets/trayTemplate@3x.png +0 -0
  6. package/dist/cli-1jstkdj9.js +30 -0
  7. package/dist/{cli-9e5cxp89.js → cli-2h3w5n6g.js} +163 -65
  8. package/dist/cli-3zwfvexc.js +56 -0
  9. package/dist/{cli-hxxy0m1z.js → cli-82e2m44k.js} +2 -1
  10. package/dist/cli-8sw5wr9j.js +136 -0
  11. package/dist/{cli-khhjyk04.js → cli-chsp880k.js} +214 -21
  12. package/dist/cli-dh0a1bw4.js +619 -0
  13. package/dist/cli-eehk3052.js +57 -0
  14. package/dist/cli-grfp0s1j.js +330 -0
  15. package/dist/{cli-ryt69ryf.js → cli-p5zbk952.js} +2185 -358
  16. package/dist/{cli-8yp89fan.js → cli-p9ca4p13.js} +17 -2
  17. package/dist/cli-qpfky8wy.js +133 -0
  18. package/dist/cli.js +47 -12
  19. package/dist/cliDashboard-c0dvkj4y.js +325 -0
  20. package/dist/configDir.d.ts +30 -0
  21. package/dist/configDir.d.ts.map +1 -0
  22. package/dist/organizationName-90f0atkn.js +29 -0
  23. package/dist/{pluginPage-n3gdtbmj.js → pluginPage-3kxsrdpj.js} +1 -1
  24. package/dist/{profileCli-1eecbmgk.js → profileCli-1bfgc05h.js} +13 -3
  25. package/dist/{profilePage-vfj2dbhn.js → profilePage-etxqg3vn.js} +252 -60
  26. package/dist/profileRename-4a4km6g8.js +22 -0
  27. package/dist/{profiles-wch9h234.js → profiles-0mp32ek9.js} +16 -3
  28. package/dist/proxy/adapterInstances.d.ts +1 -1
  29. package/dist/proxy/adapterInstances.d.ts.map +1 -1
  30. package/dist/proxy/adapters/claudecode.d.ts.map +1 -1
  31. package/dist/proxy/adapters/droid.d.ts.map +1 -1
  32. package/dist/proxy/authDiscovery.d.ts +52 -0
  33. package/dist/proxy/authDiscovery.d.ts.map +1 -0
  34. package/dist/proxy/credentialsMode.d.ts +77 -0
  35. package/dist/proxy/credentialsMode.d.ts.map +1 -0
  36. package/dist/proxy/design.d.ts.map +1 -1
  37. package/dist/proxy/errors.d.ts.map +1 -1
  38. package/dist/proxy/followActive.d.ts +262 -0
  39. package/dist/proxy/followActive.d.ts.map +1 -0
  40. package/dist/proxy/limitDetection.d.ts +110 -0
  41. package/dist/proxy/limitDetection.d.ts.map +1 -0
  42. package/dist/proxy/models.d.ts.map +1 -1
  43. package/dist/proxy/oauthPlan.d.ts +63 -0
  44. package/dist/proxy/oauthPlan.d.ts.map +1 -0
  45. package/dist/proxy/oauthUsage.d.ts +65 -2
  46. package/dist/proxy/oauthUsage.d.ts.map +1 -1
  47. package/dist/proxy/openai.d.ts +4 -2
  48. package/dist/proxy/openai.d.ts.map +1 -1
  49. package/dist/proxy/organizationName.d.ts +71 -0
  50. package/dist/proxy/organizationName.d.ts.map +1 -0
  51. package/dist/proxy/passthroughEarlyStop.d.ts +10 -0
  52. package/dist/proxy/passthroughEarlyStop.d.ts.map +1 -1
  53. package/dist/proxy/planAllowance.d.ts +75 -0
  54. package/dist/proxy/planAllowance.d.ts.map +1 -0
  55. package/dist/proxy/probes.d.ts +85 -0
  56. package/dist/proxy/probes.d.ts.map +1 -0
  57. package/dist/proxy/profileCli.d.ts +53 -1
  58. package/dist/proxy/profileCli.d.ts.map +1 -1
  59. package/dist/proxy/profileHealth.d.ts +127 -0
  60. package/dist/proxy/profileHealth.d.ts.map +1 -0
  61. package/dist/proxy/profileRename.d.ts +83 -0
  62. package/dist/proxy/profileRename.d.ts.map +1 -0
  63. package/dist/proxy/profiles.d.ts +72 -6
  64. package/dist/proxy/profiles.d.ts.map +1 -1
  65. package/dist/proxy/query.d.ts +7 -0
  66. package/dist/proxy/query.d.ts.map +1 -1
  67. package/dist/proxy/routing.d.ts +59 -1
  68. package/dist/proxy/routing.d.ts.map +1 -1
  69. package/dist/proxy/sdkFeatures.d.ts +1 -1
  70. package/dist/proxy/sdkFeatures.d.ts.map +1 -1
  71. package/dist/proxy/server.d.ts.map +1 -1
  72. package/dist/proxy/session/fingerprint.d.ts +5 -0
  73. package/dist/proxy/session/fingerprint.d.ts.map +1 -1
  74. package/dist/proxy/session/lineage.d.ts.map +1 -1
  75. package/dist/proxy/session/processIncarnation.d.ts +7 -0
  76. package/dist/proxy/session/processIncarnation.d.ts.map +1 -1
  77. package/dist/proxy/sessionLifecycle.d.ts +8 -1
  78. package/dist/proxy/sessionLifecycle.d.ts.map +1 -1
  79. package/dist/proxy/sessionStore.d.ts.map +1 -1
  80. package/dist/proxy/setup.d.ts.map +1 -1
  81. package/dist/proxy/supervision.d.ts +41 -0
  82. package/dist/proxy/supervision.d.ts.map +1 -0
  83. package/dist/proxy/tokenRefresh.d.ts +38 -4
  84. package/dist/proxy/tokenRefresh.d.ts.map +1 -1
  85. package/dist/server.js +11 -7
  86. package/dist/settings.d.ts +83 -0
  87. package/dist/settings.d.ts.map +1 -0
  88. package/dist/{setup-ndmjpy23.js → setup-7fr49z92.js} +1 -1
  89. package/dist/statusProbe-9x9q261e.js +151 -0
  90. package/dist/telemetry/dashboard.d.ts.map +1 -1
  91. package/dist/telemetry/index.d.ts +20 -2
  92. package/dist/telemetry/index.d.ts.map +1 -1
  93. package/dist/telemetry/landing.d.ts +1 -1
  94. package/dist/telemetry/landing.d.ts.map +1 -1
  95. package/dist/telemetry/logStore.d.ts +11 -0
  96. package/dist/telemetry/logStore.d.ts.map +1 -1
  97. package/dist/telemetry/pricingStore.d.ts +2 -2
  98. package/dist/telemetry/pricingStore.d.ts.map +1 -1
  99. package/dist/telemetry/profileBar.d.ts +10 -2
  100. package/dist/telemetry/profileBar.d.ts.map +1 -1
  101. package/dist/telemetry/profileFacts.d.ts +17 -0
  102. package/dist/telemetry/profileFacts.d.ts.map +1 -0
  103. package/dist/telemetry/profileOrder.d.ts +68 -0
  104. package/dist/telemetry/profileOrder.d.ts.map +1 -0
  105. package/dist/telemetry/profilePage.d.ts.map +1 -1
  106. package/dist/telemetry/profileSort.d.ts +35 -0
  107. package/dist/telemetry/profileSort.d.ts.map +1 -0
  108. package/dist/telemetry/profileSpent.d.ts +68 -0
  109. package/dist/telemetry/profileSpent.d.ts.map +1 -0
  110. package/dist/telemetry/routeChain.d.ts +32 -0
  111. package/dist/telemetry/routeChain.d.ts.map +1 -0
  112. package/dist/telemetry/routes.d.ts.map +1 -1
  113. package/dist/telemetry/settingsPage.d.ts +1 -1
  114. package/dist/telemetry/settingsPage.d.ts.map +1 -1
  115. package/dist/telemetry/sqlite.d.ts.map +1 -1
  116. package/dist/telemetry/store.d.ts +6 -1
  117. package/dist/telemetry/store.d.ts.map +1 -1
  118. package/dist/telemetry/types.d.ts +132 -2
  119. package/dist/telemetry/types.d.ts.map +1 -1
  120. package/dist/{tokenRefresh-kzz08kea.js → tokenRefresh-eg9h83wd.js} +6 -1
  121. package/package.json +2 -1
  122. package/dist/cli-5jxyma6z.js +0 -277
  123. package/dist/cli-vj9cv18n.js +0 -38
  124. package/dist/proxy/settings.d.ts +0 -30
  125. package/dist/proxy/settings.d.ts.map +0 -1
@@ -28,6 +28,8 @@ export interface SessionLifecycleOptions {
28
28
  deletingLeaseMs?: number;
29
29
  /** Quarantine after retirement so old readers and rolling upgrades can drain. */
30
30
  retiredGraceMs?: number;
31
+ /** Lifetime of an unarmed lease; sized by the caller's turn watchdog. */
32
+ unarmedLeaseTtlMs?: number;
31
33
  retryBaseMs?: number;
32
34
  retryMaxMs?: number;
33
35
  deletionTimeoutMs?: number;
@@ -35,6 +37,9 @@ export interface SessionLifecycleOptions {
35
37
  pinProvider?: () => readonly TranscriptLocator[];
36
38
  /** Bound one complete sweep, including all child deletions. */
37
39
  runTimeoutMs?: number;
40
+ /** Test seam. Overrides the resolved @anthropic-ai/claude-agent-sdk module the
41
+ * deletion child imports, so the fenced-delete path can run against a stub. */
42
+ sdkModuleUrl?: string;
38
43
  }
39
44
  export interface ActiveTranscriptLease {
40
45
  token: string;
@@ -105,7 +110,9 @@ export declare function abandonFork(locator: TranscriptLocator, options?: Sessio
105
110
  export declare function reconcile(pins: readonly TranscriptLocator[], options?: SessionLifecycleOptions): Promise<ReconcileResult>;
106
111
  /** Delete a bounded batch of unpinned retired transcripts through the supported SDK API. */
107
112
  export declare function runGc(pins: readonly TranscriptLocator[], options?: SessionLifecycleOptions): Promise<GcResult>;
113
+ /** Keep both ends of child output within the storage budget: the verdict sits
114
+ * at the head, while a Node crash report floods the tail with vendor source. */
115
+ export declare function clipChildOutput(output: string): string;
108
116
  export declare function canonicalizeTranscriptLocator(locator: TranscriptLocator): TranscriptLocator;
109
- /** Resolve a real Node runtime even when Meridian itself is bundled under Bun. */
110
117
  export declare function getSessionGcNodeExecutable(): string;
111
118
  //# sourceMappingURL=sessionLifecycle.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"sessionLifecycle.d.ts","sourceRoot":"","sources":["../../src/proxy/sessionLifecycle.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sessionLifecycle.d.ts","sourceRoot":"","sources":["../../src/proxy/sessionLifecycle.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"sessionStore.d.ts","sourceRoot":"","sources":["../../src/proxy/sessionStore.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sessionStore.d.ts","sourceRoot":"","sources":["../../src/proxy/sessionStore.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AA4BH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAgBnD,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,MAAM,CAAA;IACjB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,wEAAwE;IACxE,mBAAmB,CAAC,EAAE,MAAM,CAAA;CAC7B;AAED,MAAM,WAAW,aAAa;IAC5B,eAAe,EAAE,MAAM,CAAA;IACvB,0EAA0E;IAC1E,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,4EAA4E;IAC5E,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,SAAS,EAAE,MAAM,CAAA;IACjB,UAAU,EAAE,MAAM,CAAA;IAClB,YAAY,EAAE,MAAM,CAAA;IACpB,gFAAgF;IAChF,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,6EAA6E;IAC7E,aAAa,CAAC,EAAE,MAAM,EAAE,CAAA;IACxB,mFAAmF;IACnF,kBAAkB,CAAC,EAAE,MAAM,EAAE,EAAE,CAAA;IAC/B,iFAAiF;IACjF,eAAe,CAAC,EAAE,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,CAAA;IACtC;oFACgF;IAChF,gCAAgC,CAAC,EAAE,MAAM,CAAA;IACzC,qEAAqE;IACrE,sBAAsB,CAAC,EAAE,MAAM,EAAE,CAAA;IACjC,wDAAwD;IACxD,YAAY,CAAC,EAAE,UAAU,CAAA;IACzB;;kEAE8D;IAC9D,uBAAuB,CAAC,EAAE,MAAM,CAAA;IAChC,gEAAgE;IAChE,iBAAiB,CAAC,EAAE,iBAAiB,CAAA;IACrC,yEAAyE;IACzE,kBAAkB,CAAC,EAAE,iBAAiB,CAAA;CACvC;AAED,MAAM,MAAM,uBAAuB,GAAG,MAAM,CAAA;AAM5C,MAAM,WAAW,yBAAyB;IACxC,SAAS,EAAE,MAAM,CAAA;IACjB,mBAAmB,EAAE,MAAM,CAAA;IAC3B,0EAA0E;IAC1E,qBAAqB,EAAE,MAAM,CAAA;IAC7B,UAAU,EAAE,MAAM,CAAA;IAClB,qEAAqE;IACrE,iBAAiB,EAAE,uBAAuB,CAAA;IAC1C,wEAAwE;IACxE,YAAY,EAAE,MAAM,CAAA;IACpB,SAAS,EAAE,MAAM,CAAA;CAClB;AAED,MAAM,MAAM,4BAA4B,GAAG,MAAM,CAAA;AAEjD,MAAM,WAAW,sBAAsB;IACrC,4EAA4E;IAC5E,OAAO,EAAE,OAAO,CAAA;IAChB,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAA;IAChC,mBAAmB,EAAE,MAAM,GAAG,IAAI,CAAA;IAClC,2EAA2E;IAC3E,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAA;IAChC,mBAAmB,EAAE,MAAM,GAAG,IAAI,CAAA;IAClC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;IACzB,YAAY,EAAE,MAAM,CAAA;IACpB,SAAS,EAAE,MAAM,CAAA;CAClB;AA8CD,6EAA6E;AAC7E,wBAAgB,0BAA0B,CACxC,OAAO,EAAE,aAAa,EACtB,GAAG,EAAE,MAAM,GACV,uBAAuB,CAIzB;AAqBD,wBAAgB,+BAA+B,CAC7C,UAAU,EAAE,yBAAyB,EACrC,QAAQ,EAAE,MAAM,GACf,4BAA4B,CAE9B;AAgCD,wBAAgB,yBAAyB,IAAI,MAAM,CAMlD;AAED,wBAAgB,8BAA8B,IAAI,MAAM,CAMvD;AAED,wBAAgB,2BAA2B,IAAI,MAAM,CAMpD;AA4WD;;sEAEsE;AACtE,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,EAAE,KAAK,CAAC,EAAE;IAAE,WAAW,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,IAAI,CAE9F;AAED,uEAAuE;AACvE,wBAAgB,kBAAkB,IAAI,MAAM,CAK3C;AAwaD;2EAC2E;AAC3E,wBAAgB,wBAAwB,IAAI,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAExE;AAED,qFAAqF;AACrF,wBAAgB,kCAAkC,CAChD,gBAAgB,EAAE,MAAM,EACxB,UAAU,GAAE,SAAS,MAAM,EAAO,GACjC,MAAM,CAAC,MAAM,EAAE,uBAAuB,CAAC,CAezC;AA0ED,MAAM,MAAM,yBAAyB,GACjC;IAAE,MAAM,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,aAAa,CAAC;IAAC,UAAU,CAAC,EAAE,uBAAuB,CAAA;CAAE,GACjF;IAAE,MAAM,EAAE,SAAS,CAAC;IAAC,QAAQ,CAAC,EAAE,aAAa,CAAC;IAAC,UAAU,CAAC,EAAE,uBAAuB,CAAA;CAAE,GACrF;IAAE,MAAM,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,KAAK,CAAA;CAAE,CAAA;AAErC,0EAA0E;AAC1E,wBAAgB,yBAAyB,CAAC,GAAG,EAAE,MAAM,GAAG,yBAAyB,CAgBhF;AAED,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS,CAG1E;AAED,MAAM,MAAM,8BAA8B,GACtC;IACE,MAAM,EAAE,OAAO,CAAA;IACf,UAAU,EAAE,yBAAyB,CAAA;IACrC,UAAU,EAAE,4BAA4B,CAAA;IACxC,OAAO,CAAC,EAAE,sBAAsB,CAAA;CACjC,GACD;IAAE,MAAM,EAAE,SAAS,CAAC;IAAC,UAAU,EAAE,4BAA4B,CAAC;IAAC,OAAO,CAAC,EAAE,sBAAsB,CAAA;CAAE,GACjG;IAAE,MAAM,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,KAAK,CAAA;CAAE,CAAA;AAErC,+EAA+E;AAC/E,wBAAgB,8BAA8B,CAAC,QAAQ,EAAE,MAAM,GAAG,8BAA8B,CAkB/F;AAED,wBAAgB,mCAAmC,CAAC,eAAe,EAAE,MAAM,GAAG,yBAAyB,CAoBtG;AAED,wBAAgB,6BAA6B,CAAC,eAAe,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS,CAGhG;AAuBD,wBAAgB,kBAAkB,CAChC,GAAG,EAAE,MAAM,EACX,eAAe,EAAE,MAAM,EACvB,YAAY,CAAC,EAAE,MAAM,EACrB,WAAW,CAAC,EAAE,MAAM,EACpB,aAAa,CAAC,EAAE,MAAM,EAAE,EACxB,eAAe,CAAC,EAAE,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,EACtC,YAAY,CAAC,EAAE,UAAU,EACzB,kBAAkB,CAAC,EAAE,MAAM,EAAE,EAAE,EAC/B,gCAAgC,CAAC,EAAE,MAAM,GAAG,IAAI,EAChD,sBAAsB,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,EACxC,iBAAiB,CAAC,EAAE,iBAAiB,EACrC,gBAAgB,CAAC,EAAE,iBAAiB,EACpC,kBAAkB,CAAC,EAAE,uBAAuB,GAAG,IAAI,GAClD,uBAAuB,GAAG,KAAK,CAuGjC;AAED,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,EAAE,MAAM,CAAA;CACjB;AAED,MAAM,WAAW,oBAAoB;IACnC,UAAU,EAAE,MAAM,CAAA;CACnB;AAWD;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE;IAC5C,QAAQ,EAAE,MAAM,CAAA;IAChB,4BAA4B,EAAE,4BAA4B,CAAA;IAC1D,IAAI,CAAC,EAAE,mBAAmB,CAAA;CAC3B,GAAG,oBAAoB,GAAG,KAAK,CAiE/B;AAyCD,qEAAqE;AACrE,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAEpF;AAED,iFAAiF;AACjF,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAElF;AAED,MAAM,WAAW,gCAAgC;IAC/C,QAAQ,EAAE,MAAM,CAAA;IAChB,SAAS,EAAE,MAAM,CAAA;IACjB,mBAAmB,EAAE,MAAM,CAAA;IAC3B,qBAAqB,EAAE,MAAM,CAAA;IAC7B,4BAA4B,EAAE,4BAA4B,CAAA;CAC3D;AAED,MAAM,WAAW,yCAAyC;IACxD,GAAG,EAAE,MAAM,CAAA;IACX,eAAe,EAAE,MAAM,CAAA;IACvB,YAAY,EAAE,MAAM,CAAA;IACpB,WAAW,EAAE,MAAM,CAAA;IACnB,aAAa,EAAE,MAAM,EAAE,CAAA;IACvB,eAAe,CAAC,EAAE,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,CAAA;IACtC,YAAY,CAAC,EAAE,UAAU,CAAA;IACzB,kBAAkB,EAAE,MAAM,EAAE,EAAE,CAAA;IAC9B,gCAAgC,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAChD,sBAAsB,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,CAAA;IACxC,iBAAiB,CAAC,EAAE,iBAAiB,CAAA;IACrC,gBAAgB,CAAC,EAAE,iBAAiB,CAAA;IACpC,yBAAyB,EAAE,uBAAuB,CAAA;IAClD,iFAAiF;IACjF,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAC3B,4EAA4E;IAC5E,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,QAAQ,EAAE,gCAAgC,CAAA;CAC3C;AAED,MAAM,WAAW,wCAAwC;IACvD,iBAAiB,EAAE,uBAAuB,CAAA;IAC1C,oBAAoB,EAAE,4BAA4B,CAAA;IAClD,eAAe,EAAE,aAAa,GAAG,IAAI,CAAA;IACrC,kBAAkB,EAAE,yBAAyB,GAAG,IAAI,CAAA;CACrD;AAmCD;;;;GAIG;AACH,wBAAgB,uCAAuC,CACrD,OAAO,EAAE,yCAAyC,GACjD,wCAAwC,GAAG,KAAK,CA4KlD;AAED,MAAM,WAAW,iDAAiD;IAChE,GAAG,EAAE,MAAM,CAAA;IACX,QAAQ,EAAE,MAAM,CAAA;IAChB,yBAAyB,EAAE,uBAAuB,CAAA;IAClD,4BAA4B,EAAE,4BAA4B,CAAA;IAC1D,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAC3B,iBAAiB,CAAC,EAAE,MAAM,CAAA;CAC3B;AAED;;;GAGG;AACH,wBAAgB,0CAA0C,CACxD,OAAO,EAAE,iDAAiD,GACzD,OAAO,CAiDT;AAED,MAAM,WAAW,iDAAiD;IAChE,GAAG,EAAE,MAAM,CAAA;IACX,QAAQ,EAAE,MAAM,CAAA;IAChB,yBAAyB,EAAE,uBAAuB,CAAA;IAClD,4BAA4B,EAAE,4BAA4B,CAAA;IAC1D,eAAe,EAAE,aAAa,GAAG,IAAI,CAAA;IACrC,kBAAkB,EAAE,yBAAyB,GAAG,IAAI,CAAA;IACpD,iBAAiB,CAAC,EAAE,MAAM,CAAA;CAC3B;AAED,MAAM,WAAW,gDAAgD;IAC/D,iBAAiB,EAAE,uBAAuB,CAAA;IAC1C,oBAAoB,EAAE,4BAA4B,CAAA;IAClD,eAAe,EAAE,aAAa,GAAG,IAAI,CAAA;IACrC,kBAAkB,EAAE,yBAAyB,GAAG,IAAI,CAAA;CACrD;AAED,mFAAmF;AACnF,wBAAgB,0CAA0C,CACxD,OAAO,EAAE,iDAAiD,GACzD,gDAAgD,GAAG,KAAK,CAwE1D;AASD;mFACmF;AACnF,wBAAgB,6BAA6B,CAC3C,GAAG,EAAE,MAAM,EACX,uBAAuB,EAAE,MAAM,EAC/B,OAAO,EAAE,iBAAiB,EAC1B,kBAAkB,CAAC,EAAE,uBAAuB,GAC3C,uBAAuB,GAAG,KAAK,CA8BjC;AAED;;;yDAGyD;AACzD,wBAAgB,kBAAkB,CAChC,GAAG,EAAE,MAAM,EACX,kBAAkB,CAAC,EAAE,uBAAuB,GAC3C,OAAO,CAgBT;AAED;;6DAE6D;AAC7D,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,MAAM,GAAG;IAClD,eAAe,EAAE,MAAM,CAAA;IACvB,uBAAuB,CAAC,EAAE,MAAM,CAAA;IAChC,SAAS,EAAE,MAAM,CAAA;IACjB,UAAU,EAAE,MAAM,CAAA;IAClB,YAAY,EAAE,MAAM,CAAA;CACrB,GAAG,SAAS,CAWZ;AAED;uEACuE;AACvE,wBAAgB,kBAAkB,IAAI,KAAK,CAAC;IAC1C,GAAG,EAAE,MAAM,CAAA;IACX,eAAe,EAAE,MAAM,CAAA;IACvB,uBAAuB,CAAC,EAAE,MAAM,CAAA;IAChC,SAAS,EAAE,MAAM,CAAA;IACjB,UAAU,EAAE,MAAM,CAAA;IAClB,YAAY,EAAE,MAAM,CAAA;CACrB,CAAC,CAUD;AAED,wBAAgB,mBAAmB,IAAI,IAAI,CAmB1C"}
@@ -1 +1 @@
1
- {"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../../src/proxy/setup.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAWH;;;;GAIG;AACH,qBAAa,sBAAuB,SAAQ,KAAK;aACnB,UAAU,EAAE,MAAM;gBAAlB,UAAU,EAAE,MAAM;CAI/C;AAED,qBAAa,oBAAqB,SAAQ,KAAK;aACjB,YAAY,EAAE,MAAM;gBAApB,YAAY,EAAE,MAAM;CAIjD;AAED,qBAAa,oBAAqB,SAAQ,KAAK;aACjB,YAAY,EAAE,MAAM;gBAApB,YAAY,EAAE,MAAM;CAIjD;AAED,qBAAa,4BAA6B,SAAQ,KAAK;aAEnC,UAAU,EAAE,MAAM;aAClB,WAAW,EAAE,MAAM;gBADnB,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,MAAM;CAKtC;AA+BD,wBAAgB,sBAAsB,IAAI,MAAM,CAK/C;AASD;;;;;;;;;GASG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAgBtD;AAED,MAAM,MAAM,kBAAkB,GAAG,IAAI,GAAG,IAAI,CAAA;AAE5C,MAAM,WAAW,iBAAiB;IAChC,UAAU,EAAE,kBAAkB,CAAA;IAC9B,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAED,eAAO,MAAM,8BAA8B,aAGzC,CAAA;AAeF,gFAAgF;AAChF,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAgBxD;AAED,wEAAwE;AACxE,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,MAAM,GAAG,iBAAiB,GAAG,SAAS,CAYrF;AAED,KAAK,YAAY,GAAG,CAAC,OAAO,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,CAAA;AAE3D;;;;GAIG;AACH,wBAAgB,wBAAwB,CACtC,QAAQ,GAAE,SAAS,MAAM,EAEI,EAC7B,KAAK,GAAE,YASN,GACA,iBAAiB,CAQnB;AAED,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,kBAAkB,GAAG,MAAM,CAE/F;AAgCD;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,UAAU,CAAC,EAAE,MAAM,EAAE,kBAAkB,CAAC,EAAE,MAAM,GAAG,OAAO,CAgB/F;AAaD,sDAAsD;AACtD,wBAAgB,uBAAuB,IAAI,IAAI,CAE9C;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH;;;;;;;GAOG;AACH,wBAAgB,2BAA2B,CAAC,KAAK,EAAE;IACjD,SAAS,EAAE,MAAM,GAAG,SAAS,CAAA;IAC7B,mEAAmE;IACnE,eAAe,EAAE,MAAM,GAAG,SAAS,CAAA;CACpC,GAAG,OAAO,CAKV;AAED,wBAAgB,6BAA6B,CAAC,KAAK,EAAE;IACnD,SAAS,EAAE,MAAM,GAAG,SAAS,CAAA;IAC7B,mEAAmE;IACnE,eAAe,EAAE,MAAM,GAAG,SAAS,CAAA;IACnC,mEAAmE;IACnE,SAAS,EAAE,MAAM,GAAG,SAAS,CAAA;CAC9B,GAAG,MAAM,GAAG,SAAS,CAgBrB;AAMD,MAAM,WAAW,WAAW;IAC1B,UAAU,EAAE,MAAM,CAAA;IAClB,UAAU,EAAE,MAAM,CAAA;IAClB,iBAAiB,EAAE,OAAO,CAAA;IAC1B,YAAY,EAAE,MAAM,EAAE,CAAA;IACtB,OAAO,EAAE,OAAO,CAAA;CACjB;AAED;;;;;;;GAOG;AACH,wBAAgB,QAAQ,CACtB,UAAU,EAAE,MAAM,EAClB,UAAU,CAAC,EAAE,MAAM,EACnB,UAAU,GAAE,kBAAyB,GACpC,WAAW,CAiFb"}
1
+ {"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../../src/proxy/setup.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAWH;;;;GAIG;AACH,qBAAa,sBAAuB,SAAQ,KAAK;aACnB,UAAU,EAAE,MAAM;gBAAlB,UAAU,EAAE,MAAM;CAI/C;AAED,qBAAa,oBAAqB,SAAQ,KAAK;aACjB,YAAY,EAAE,MAAM;gBAApB,YAAY,EAAE,MAAM;CAIjD;AAED,qBAAa,oBAAqB,SAAQ,KAAK;aACjB,YAAY,EAAE,MAAM;gBAApB,YAAY,EAAE,MAAM;CAIjD;AAED,qBAAa,4BAA6B,SAAQ,KAAK;aAEnC,UAAU,EAAE,MAAM;aAClB,WAAW,EAAE,MAAM;gBADnB,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,MAAM;CAKtC;AA+BD,wBAAgB,sBAAsB,IAAI,MAAM,CAK/C;AASD;;;;;;;;;GASG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAgBtD;AAED,MAAM,MAAM,kBAAkB,GAAG,IAAI,GAAG,IAAI,CAAA;AAE5C,MAAM,WAAW,iBAAiB;IAChC,UAAU,EAAE,kBAAkB,CAAA;IAC9B,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAED,eAAO,MAAM,8BAA8B,aAIzC,CAAA;AAeF,gFAAgF;AAChF,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAgBxD;AAED,wEAAwE;AACxE,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,MAAM,GAAG,iBAAiB,GAAG,SAAS,CAYrF;AAED,KAAK,YAAY,GAAG,CAAC,OAAO,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,CAAA;AAE3D;;;;GAIG;AACH,wBAAgB,wBAAwB,CACtC,QAAQ,GAAE,SAAS,MAAM,EAEI,EAC7B,KAAK,GAAE,YASN,GACA,iBAAiB,CAQnB;AAED,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,kBAAkB,GAAG,MAAM,CAE/F;AAgCD;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,UAAU,CAAC,EAAE,MAAM,EAAE,kBAAkB,CAAC,EAAE,MAAM,GAAG,OAAO,CAgB/F;AAaD,sDAAsD;AACtD,wBAAgB,uBAAuB,IAAI,IAAI,CAE9C;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH;;;;;;;GAOG;AACH,wBAAgB,2BAA2B,CAAC,KAAK,EAAE;IACjD,SAAS,EAAE,MAAM,GAAG,SAAS,CAAA;IAC7B,mEAAmE;IACnE,eAAe,EAAE,MAAM,GAAG,SAAS,CAAA;CACpC,GAAG,OAAO,CAKV;AAED,wBAAgB,6BAA6B,CAAC,KAAK,EAAE;IACnD,SAAS,EAAE,MAAM,GAAG,SAAS,CAAA;IAC7B,mEAAmE;IACnE,eAAe,EAAE,MAAM,GAAG,SAAS,CAAA;IACnC,mEAAmE;IACnE,SAAS,EAAE,MAAM,GAAG,SAAS,CAAA;CAC9B,GAAG,MAAM,GAAG,SAAS,CAgBrB;AAMD,MAAM,WAAW,WAAW;IAC1B,UAAU,EAAE,MAAM,CAAA;IAClB,UAAU,EAAE,MAAM,CAAA;IAClB,iBAAiB,EAAE,OAAO,CAAA;IAC1B,YAAY,EAAE,MAAM,EAAE,CAAA;IACtB,OAAO,EAAE,OAAO,CAAA;CACjB;AAED;;;;;;;GAOG;AACH,wBAAgB,QAAQ,CACtB,UAAU,EAAE,MAAM,EAClB,UAAU,CAAC,EAAE,MAAM,EACnB,UAAU,GAAE,kBAAyB,GACpC,WAAW,CAiFb"}
@@ -0,0 +1,41 @@
1
+ /**
2
+ * How this proxy was started, so a page that needs a restart can say HOW.
3
+ *
4
+ * The telemetry stores are built once at startup, so changing where telemetry
5
+ * is kept takes effect on the next start and not before. A settings page that
6
+ * says "restart to apply" and stops there has handed the reader a puzzle: the
7
+ * unit is named by whoever installed it, `systemctl restart` without `--user`
8
+ * silently addresses a different manager, and a proxy started by hand has no
9
+ * unit at all. All of that is already written in /proc/self/cgroup.
10
+ *
11
+ * Linux-only by nature; everywhere else this reports `unknown` and the page
12
+ * falls back to "restart Meridian", which is the honest answer there.
13
+ *
14
+ * Leaf module: the parsing is pure and separately testable, and the single
15
+ * read is wrapped so a missing or unreadable cgroup file degrades to
16
+ * `unknown` rather than throwing during a settings fetch.
17
+ */
18
+ export type SupervisionKind = "systemd-user" | "systemd-system" | "unknown";
19
+ export interface Supervision {
20
+ kind: SupervisionKind;
21
+ /** Unit name, e.g. "meridian-dev.service". Null when not under a unit. */
22
+ unit: string | null;
23
+ /** Exactly what to run to apply a restart-scoped change, or null when
24
+ * nothing can be named with confidence. */
25
+ restartCommand: string | null;
26
+ }
27
+ /**
28
+ * Read the unit out of a cgroup file's contents.
29
+ *
30
+ * Handles both hierarchies: cgroup v2 writes one `0::/path` line, v1 writes
31
+ * several `id:controllers:/path` lines. Taking the substring after the last
32
+ * colon yields the path in either case.
33
+ *
34
+ * A `.scope` leaf (`session-2.scope`, `init.scope`) is deliberately NOT a
35
+ * match: a scope is how systemd accounts for a process it did not launch, so
36
+ * a proxy started by hand in a terminal lands in one. Reporting that as a unit
37
+ * would print a `systemctl restart session-2.scope` that fails.
38
+ */
39
+ export declare function parseSupervision(cgroup: string): Supervision;
40
+ export declare function detectSupervision(): Supervision;
41
+ //# sourceMappingURL=supervision.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"supervision.d.ts","sourceRoot":"","sources":["../../src/proxy/supervision.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAIH,MAAM,MAAM,eAAe,GAAG,cAAc,GAAG,gBAAgB,GAAG,SAAS,CAAA;AAE3E,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,eAAe,CAAA;IACrB,0EAA0E;IAC1E,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;IACnB;gDAC4C;IAC5C,cAAc,EAAE,MAAM,GAAG,IAAI,CAAA;CAC9B;AAQD;;;;;;;;;;;GAWG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,WAAW,CAsB5D;AAED,wBAAgB,iBAAiB,IAAI,WAAW,CAQ/C"}
@@ -25,7 +25,7 @@
25
25
  export declare function configDirToKeychainService(claudeConfigDir: string): string;
26
26
  /** Map `claudeConfigDir` to the file-based credentials path. */
27
27
  export declare function configDirToCredentialsFile(claudeConfigDir: string): string;
28
- interface OAuthCredentials {
28
+ export interface OAuthCredentials {
29
29
  accessToken: string;
30
30
  refreshToken: string;
31
31
  expiresAt: number;
@@ -42,8 +42,16 @@ interface OAuthCredentials {
42
42
  scopes?: string[];
43
43
  subscriptionType?: string;
44
44
  rateLimitTier?: string;
45
+ /**
46
+ * Which seat a Team member holds. The only field that separates a Premium
47
+ * seat from a Standard one: measured across twelve live accounts, every
48
+ * Premium seat reports `rate_limit_tier: "default_claude_max_5x"` — what a
49
+ * personal Max 5x reports — and a Standard seat reports `default_raven`,
50
+ * which names no published allotment at all.
51
+ */
52
+ seatTier?: string;
45
53
  }
46
- interface CredentialsFile {
54
+ export interface CredentialsFile {
47
55
  claudeAiOauth: OAuthCredentials;
48
56
  [key: string]: unknown;
49
57
  }
@@ -77,6 +85,18 @@ export declare function createPlatformCredentialStore(opts?: {
77
85
  }): CredentialStore;
78
86
  /** Look up the appropriate file path for a profile (Linux convention even on macOS for inspection). */
79
87
  export declare function credentialsFilePathForProfile(claudeConfigDir?: string): string;
88
+ /**
89
+ * What the stored credential says about this account's ability to authenticate.
90
+ *
91
+ * `unknown` is deliberately NOT a soft `absent`. `read()` answers `null` both
92
+ * for a credential that is not there and for one it could not parse, so from
93
+ * here the two are indistinguishable - and a Keychain that momentarily refuses,
94
+ * or a file caught mid-write, must never be allowed to report a working account
95
+ * as logged out. Only a credential that was read successfully and carries no
96
+ * access token is `absent`.
97
+ */
98
+ export type StoredCredentialPresence = "present" | "absent" | "unknown";
99
+ export declare function readStoredCredentialPresence(store: CredentialStore): Promise<StoredCredentialPresence>;
80
100
  /**
81
101
  * Refresh the Claude Code OAuth access token.
82
102
  *
@@ -132,8 +152,23 @@ export interface AuthRenewalStatus {
132
152
  /** True once inside the warning window — the field monitors should alert on. */
133
153
  renewalRequiredSoon: boolean;
134
154
  }
135
- /** Drop cached refresh-token expiries — for tests, and after a re-login. */
155
+ /** Drop cached credential facts — for tests, and after a re-login. */
136
156
  export declare function resetAuthRenewalCache(): void;
157
+ /**
158
+ * The plan fields a login persisted, as stored.
159
+ *
160
+ * `claude auth status` reports `subscriptionType` and nothing else, so the
161
+ * tier that separates Max 5x from Max 20x is only ever available here. Both
162
+ * fields are optional on disk — a credential file written before Meridian
163
+ * persisted them has neither — and absent keys are omitted rather than nulled
164
+ * so a caller can spread the result over a live status without erasing it.
165
+ */
166
+ export interface StoredPlanFields {
167
+ subscriptionType?: string;
168
+ rateLimitTier?: string;
169
+ seatTier?: string;
170
+ }
171
+ export declare function getStoredPlanFields(store?: CredentialStore): Promise<StoredPlanFields>;
137
172
  export declare function getAuthRenewalStatus(store?: CredentialStore, warnDays?: number): Promise<AuthRenewalStatus>;
138
173
  /**
139
174
  * Start a self-rescheduling timer that refreshes the access token shortly
@@ -163,5 +198,4 @@ export declare function stopBackgroundRefresh(): void;
163
198
  export declare function isBackgroundRefreshActive(): boolean;
164
199
  /** Reset in-flight state — for testing only. */
165
200
  export declare function resetInflightRefresh(): void;
166
- export {};
167
201
  //# sourceMappingURL=tokenRefresh.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"tokenRefresh.d.ts","sourceRoot":"","sources":["../../src/proxy/tokenRefresh.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAkBH;;;;;;;;GAQG;AACH,wBAAgB,0BAA0B,CAAC,eAAe,EAAE,MAAM,GAAG,MAAM,CAK1E;AAED,gEAAgE;AAChE,wBAAgB,0BAA0B,CAAC,eAAe,EAAE,MAAM,GAAG,MAAM,CAE1E;AAED,UAAU,gBAAgB;IACxB,WAAW,EAAE,MAAM,CAAA;IACnB,YAAY,EAAE,MAAM,CAAA;IACpB,SAAS,EAAE,MAAM,CAAA;IACjB;;;;;;;;OAQG;IACH,qBAAqB,CAAC,EAAE,MAAM,CAAA;IAC9B,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;IACjB,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,aAAa,CAAC,EAAE,MAAM,CAAA;CACvB;AAED,UAAU,eAAe;IACvB,aAAa,EAAE,gBAAgB,CAAA;IAC/B,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CACvB;AAMD,MAAM,WAAW,eAAe;IAC9B,kFAAkF;IAClF,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,IAAI,IAAI,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC,CAAA;IACvC,KAAK,CAAC,WAAW,EAAE,eAAe,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;CACtD;AAED;;;;;;;;;GASG;AACH,wBAAgB,oBAAoB,CAAC,WAAW,EAAE,eAAe,GAAG,MAAM,CAEzE;AA4GD;;;;;;;GAOG;AACH,wBAAgB,6BAA6B,CAAC,IAAI,CAAC,EAAE;IAAE,eAAe,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,eAAe,CAQlG;AAED,uGAAuG;AACvG,wBAAgB,6BAA6B,CAAC,eAAe,CAAC,EAAE,MAAM,GAAG,MAAM,CAE9E;AAUD;;;;;;;;;;GAUG;AACH,wBAAsB,iBAAiB,CAAC,KAAK,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,OAAO,CAAC,CAsBjF;AA6FD;;;;;;;;;;;;;GAaG;AACH,wBAAsB,gBAAgB,CACpC,KAAK,CAAC,EAAE,eAAe,EACvB,QAAQ,SAAgB,GACvB,OAAO,CAAC,OAAO,CAAC,CAOlB;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,yBAAyB,IAAI,CAAA;AAE1C;;;;;;;;;GASG;AACH,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAGtE;AAED,MAAM,WAAW,iBAAiB;IAChC,4DAA4D;IAC5D,qBAAqB,CAAC,EAAE,MAAM,CAAA;IAC9B,0DAA0D;IAC1D,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,gFAAgF;IAChF,mBAAmB,EAAE,OAAO,CAAA;CAC7B;AA6BD,4EAA4E;AAC5E,wBAAgB,qBAAqB,IAAI,IAAI,CAG5C;AA2CD,wBAAsB,oBAAoB,CACxC,KAAK,CAAC,EAAE,eAAe,EACvB,QAAQ,SAA4B,GACnC,OAAO,CAAC,iBAAiB,CAAC,CAkB5B;AAiBD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,sBAAsB,CACpC,KAAK,CAAC,EAAE,eAAe,EACvB,QAAQ,SAAgB,EACxB,cAAc,SAAgB,GAC7B,IAAI,CAKN;AAED,iDAAiD;AACjD,wBAAgB,qBAAqB,IAAI,IAAI,CAK5C;AAoED,wBAAwB;AACxB,wBAAgB,yBAAyB,IAAI,OAAO,CAEnD;AAED,gDAAgD;AAChD,wBAAgB,oBAAoB,IAAI,IAAI,CAE3C"}
1
+ {"version":3,"file":"tokenRefresh.d.ts","sourceRoot":"","sources":["../../src/proxy/tokenRefresh.ts"],"names":[],"mappings":"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"}
package/dist/server.js CHANGED
@@ -11,14 +11,18 @@ import {
11
11
  runObserveHook,
12
12
  runTransformHook,
13
13
  startProxyServer
14
- } from "./cli-ryt69ryf.js";
15
- import"./cli-5jxyma6z.js";
14
+ } from "./cli-p5zbk952.js";
15
+ import"./cli-82e2m44k.js";
16
+ import"./cli-dh0a1bw4.js";
17
+ import"./cli-8sw5wr9j.js";
18
+ import"./cli-grfp0s1j.js";
16
19
  import"./cli-sry5aqdj.js";
17
- import"./cli-8yp89fan.js";
18
- import"./cli-9e5cxp89.js";
19
- import"./cli-khhjyk04.js";
20
- import"./cli-vj9cv18n.js";
21
- import"./cli-hxxy0m1z.js";
20
+ import"./cli-p9ca4p13.js";
21
+ import"./cli-2h3w5n6g.js";
22
+ import"./cli-chsp880k.js";
23
+ import"./cli-1jstkdj9.js";
24
+ import"./cli-qpfky8wy.js";
25
+ import"./cli-eehk3052.js";
22
26
  import"./cli-p9swy5t3.js";
23
27
  export {
24
28
  startProxyServer,
@@ -0,0 +1,83 @@
1
+ /**
2
+ * Persistent server settings.
3
+ *
4
+ * Stored in ~/.config/meridian/settings.json (MERIDIAN_CONFIG_DIR moves the
5
+ * directory). Survives proxy restarts.
6
+ * Shared between CLI, UI, and API — browser localStorage is only used
7
+ * for client-only preferences (theme, collapsed sections, etc.).
8
+ *
9
+ * Lives at the src root, beside env.ts, rather than under proxy/, because
10
+ * telemetry reads it too and telemetry may not import from proxy —
11
+ * dependencies flow proxy → telemetry only. env.ts is the existing precedent
12
+ * for "configuration both layers need"; a copy of the path logic in each
13
+ * would be two things to keep agreeing about MERIDIAN_CONFIG_DIR.
14
+ *
15
+ * Leaf module: node builtins only, no imports from anywhere in the tree.
16
+ */
17
+ import type { PriorityFailbackPolicy } from "./proxy/routing";
18
+ export interface MeridianSettings {
19
+ /** Last active profile ID — restored on proxy startup */
20
+ activeProfile?: string;
21
+ /** Profile routing mode (#383, priority spec): "active" (default),
22
+ * "sticky", or "priority". MERIDIAN_ROUTING env var takes precedence. */
23
+ routing?: string;
24
+ /** Priority-mode pool order (highest priority first). Falls back to
25
+ * profiles.json order. MERIDIAN_PROFILE_ORDER env var takes precedence. */
26
+ profileOrder?: string[];
27
+ priorityFailback?: PriorityFailbackPolicy;
28
+ /**
29
+ * Keep telemetry in SQLite instead of memory, so it survives a restart.
30
+ * MERIDIAN_TELEMETRY_PERSIST takes precedence.
31
+ *
32
+ * The four telemetry keys below differ from every other setting here in one
33
+ * way that the UI must not hide: the stores are built once at startup, so a
34
+ * change to any of them does nothing until the proxy is restarted. Routing
35
+ * is re-read per request; these are not, and cannot be without swapping a
36
+ * store out from under in-flight writes.
37
+ */
38
+ telemetryPersist?: boolean;
39
+ /** Days before persisted telemetry is deleted. MERIDIAN_TELEMETRY_RETENTION_DAYS wins. */
40
+ telemetryRetentionDays?: number;
41
+ /** Rows the in-memory ring holds. Ignored when persisting. MERIDIAN_TELEMETRY_SIZE wins. */
42
+ telemetrySize?: number;
43
+ /** Entries the in-memory diagnostic log ring holds. MERIDIAN_DIAGNOSTIC_LOG_SIZE wins. */
44
+ diagnosticLogSize?: number;
45
+ }
46
+ /**
47
+ * Accepted range for each numeric telemetry setting, and the reason for it.
48
+ *
49
+ * Lives here rather than in the route so the form and the validator read the
50
+ * same numbers: a page that offers a value the API rejects is a worse bug than
51
+ * either bound being slightly wrong.
52
+ *
53
+ * The upper bounds guard a value that only takes effect on the next start, so
54
+ * a typo is not discovered until a restart that then fails or thrashes. Both
55
+ * ring sizes are whole request/log records held in memory; a million rows is
56
+ * hundreds of megabytes of resident heap, which is not a setting anyone means
57
+ * to type. Retention is capped at ten years because SQLite cleanup deletes by
58
+ * a cutoff, and a cutoff further out than the data's usefulness simply never
59
+ * deletes anything.
60
+ */
61
+ export declare const TELEMETRY_SETTING_LIMITS: {
62
+ readonly telemetryRetentionDays: {
63
+ readonly min: 1;
64
+ readonly max: 3650;
65
+ };
66
+ readonly telemetrySize: {
67
+ readonly min: 10;
68
+ readonly max: 1000000;
69
+ };
70
+ readonly diagnosticLogSize: {
71
+ readonly min: 10;
72
+ readonly max: 1000000;
73
+ };
74
+ };
75
+ /** Read settings from disk. Returns empty object if file doesn't exist or is invalid. */
76
+ export declare function loadSettings(): MeridianSettings;
77
+ /** Write settings to disk. Merges with existing settings (doesn't clobber unknown keys). */
78
+ export declare function saveSettings(patch: Partial<MeridianSettings>): MeridianSettings;
79
+ /** Get a single setting value, or undefined if not set. */
80
+ export declare function getSetting<K extends keyof MeridianSettings>(key: K): MeridianSettings[K];
81
+ /** Update a single setting. */
82
+ export declare function setSetting<K extends keyof MeridianSettings>(key: K, value: MeridianSettings[K]): MeridianSettings;
83
+ //# sourceMappingURL=settings.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"settings.d.ts","sourceRoot":"","sources":["../src/settings.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAKH,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAA;AAc7D,MAAM,WAAW,gBAAgB;IAC/B,yDAAyD;IACzD,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB;8EAC0E;IAC1E,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB;gFAC4E;IAC5E,YAAY,CAAC,EAAE,MAAM,EAAE,CAAA;IACvB,gBAAgB,CAAC,EAAE,sBAAsB,CAAA;IAEzC;;;;;;;;;OASG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAC1B,0FAA0F;IAC1F,sBAAsB,CAAC,EAAE,MAAM,CAAA;IAC/B,4FAA4F;IAC5F,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,0FAA0F;IAC1F,iBAAiB,CAAC,EAAE,MAAM,CAAA;CAC3B;AAED;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;CAI4B,CAAA;AAEjE,yFAAyF;AACzF,wBAAgB,YAAY,IAAI,gBAAgB,CAQ/C;AAED,4FAA4F;AAC5F,wBAAgB,YAAY,CAAC,KAAK,EAAE,OAAO,CAAC,gBAAgB,CAAC,GAAG,gBAAgB,CAO/E;AAED,2DAA2D;AAC3D,wBAAgB,UAAU,CAAC,CAAC,SAAS,MAAM,gBAAgB,EAAE,GAAG,EAAE,CAAC,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAExF;AAED,+BAA+B;AAC/B,wBAAgB,UAAU,CAAC,CAAC,SAAS,MAAM,gBAAgB,EAAE,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,gBAAgB,CAAC,CAAC,CAAC,GAAG,gBAAgB,CAEjH"}
@@ -15,7 +15,7 @@ import {
15
15
  notePluginlessOpenCodeRequest,
16
16
  pluginPathForGeneration,
17
17
  runSetup
18
- } from "./cli-hxxy0m1z.js";
18
+ } from "./cli-82e2m44k.js";
19
19
  import"./cli-p9swy5t3.js";
20
20
  export {
21
21
  runSetup,
@@ -0,0 +1,151 @@
1
+ import"./cli-p9swy5t3.js";
2
+
3
+ // src/proxy/statusProbe.ts
4
+ import { createServer } from "node:net";
5
+ var PROBE_TIMEOUT_MS = 2000;
6
+ function probeUrlBase(host, port) {
7
+ let target = host;
8
+ if (host === "0.0.0.0" || host === "")
9
+ target = "127.0.0.1";
10
+ else if (host === "::" || host === "[::]")
11
+ target = "::1";
12
+ const literal = target.includes(":") ? `[${target.replace(/^\[|\]$/g, "")}]` : target;
13
+ return `http://${literal}:${port}`;
14
+ }
15
+ var HEALTH_STATUSES = new Set(["healthy", "degraded", "unhealthy"]);
16
+ function isMeridianHealthBody(body) {
17
+ if (typeof body !== "object" || body === null)
18
+ return false;
19
+ const record = body;
20
+ if (typeof record["status"] === "string" && HEALTH_STATUSES.has(record["status"]) && typeof record["version"] === "string") {
21
+ return true;
22
+ }
23
+ const error = record["error"];
24
+ if (record["type"] === "error" && typeof error === "object" && error !== null) {
25
+ return error["type"] === "authentication_error";
26
+ }
27
+ return false;
28
+ }
29
+ function describeForeignResponse(status, statusText, headers) {
30
+ const parts = [`HTTP ${status}${statusText ? ` ${statusText}` : ""}`];
31
+ const server = headers.get("server");
32
+ if (server)
33
+ parts.push(`server: ${server}`);
34
+ const contentType = headers.get("content-type");
35
+ if (contentType)
36
+ parts.push(contentType.split(";")[0].trim());
37
+ return parts.join(", ");
38
+ }
39
+ function isPortAvailable(host, port) {
40
+ return new Promise((resolve) => {
41
+ const probe = createServer();
42
+ probe.once("error", () => resolve(false));
43
+ probe.once("listening", () => probe.close(() => resolve(true)));
44
+ probe.listen(port, host);
45
+ });
46
+ }
47
+ async function readJson(fetchImpl, url, timeoutMs, apiKey) {
48
+ try {
49
+ const response = await fetchImpl(url, {
50
+ signal: AbortSignal.timeout(timeoutMs),
51
+ headers: apiKey ? { "x-api-key": apiKey } : undefined
52
+ });
53
+ let body = null;
54
+ try {
55
+ body = await response.json();
56
+ } catch {
57
+ body = null;
58
+ }
59
+ return { ok: true, status: response.status, statusText: response.statusText, body, headers: response.headers };
60
+ } catch (err) {
61
+ return { ok: false, reason: err instanceof Error ? err.message : String(err) };
62
+ }
63
+ }
64
+ async function readSection(fetchImpl, url, timeoutMs, apiKey) {
65
+ const result = await readJson(fetchImpl, url, timeoutMs, apiKey);
66
+ if (!result.ok)
67
+ return { data: null, reason: result.reason };
68
+ if (result.status === 401) {
69
+ return {
70
+ data: null,
71
+ reason: apiKey ? "the running instance rejected this MERIDIAN_API_KEY" : "the running instance requires an API key — set MERIDIAN_API_KEY"
72
+ };
73
+ }
74
+ if (result.status >= 400)
75
+ return { data: null, reason: `HTTP ${result.status}` };
76
+ if (result.body == null)
77
+ return { data: null, reason: "unreadable response" };
78
+ return { data: result.body };
79
+ }
80
+ async function probeMeridian(host, port, options = {}) {
81
+ const timeoutMs = options.timeoutMs ?? PROBE_TIMEOUT_MS;
82
+ const apiKey = options.apiKey || undefined;
83
+ const fetchImpl = options.fetchImpl ?? fetch;
84
+ const base = probeUrlBase(host, port);
85
+ const health = await readJson(fetchImpl, `${base}/health`, timeoutMs, apiKey);
86
+ if (!health.ok)
87
+ return { kind: "unreachable", description: health.reason };
88
+ if (!isMeridianHealthBody(health.body)) {
89
+ return {
90
+ kind: "foreign",
91
+ description: describeForeignResponse(health.status, health.statusText, health.headers)
92
+ };
93
+ }
94
+ const authRejected = health.status === 401;
95
+ const [profileList, quota, summary] = await Promise.all([
96
+ readSection(fetchImpl, `${base}/profiles/list`, timeoutMs, apiKey),
97
+ readSection(fetchImpl, `${base}/v1/usage/quota/all`, timeoutMs, apiKey),
98
+ readSection(fetchImpl, `${base}/telemetry/summary?window=86400000`, timeoutMs, apiKey)
99
+ ]);
100
+ const unavailable = {};
101
+ const accountsReason = profileList.reason ?? quota.reason;
102
+ if (accountsReason)
103
+ unavailable.accounts = `accounts unavailable — ${accountsReason}`;
104
+ if (summary.reason)
105
+ unavailable.traffic = `traffic unavailable — ${summary.reason}`;
106
+ return {
107
+ kind: "meridian",
108
+ snapshot: {
109
+ health: authRejected ? null : health.body,
110
+ profileList: profileList.data,
111
+ quota: quota.data,
112
+ summary: summary.data,
113
+ ...Object.keys(unavailable).length > 0 ? { unavailable } : {}
114
+ }
115
+ };
116
+ }
117
+ function formatStatusMessage(result, host, port) {
118
+ if (result.kind === "foreign") {
119
+ return [
120
+ `Error: http://${host}:${port} is not Meridian (${result.description}).`,
121
+ ` Something else owns that port. Point at the right one: MERIDIAN_PORT=<port> meridian status`
122
+ ].join(`
123
+ `);
124
+ }
125
+ return [
126
+ `Error: no Meridian instance is listening on http://${host}:${port}.`,
127
+ ` Start one with: meridian`
128
+ ].join(`
129
+ `);
130
+ }
131
+ function formatConflictMessage(result, host, port) {
132
+ const found = result.kind === "foreign" ? `Something is listening there, and it is not Meridian (${result.description}).` : `Something is holding the port but did not answer (${result.description}).`;
133
+ return [
134
+ `Error: ${host}:${port} is already in use.`,
135
+ found,
136
+ "",
137
+ ` Identify it with: lsof -i :${port}`,
138
+ ` Or use a different port: MERIDIAN_PORT=4567 meridian`
139
+ ].join(`
140
+ `);
141
+ }
142
+ export {
143
+ probeUrlBase,
144
+ probeMeridian,
145
+ isPortAvailable,
146
+ isMeridianHealthBody,
147
+ formatStatusMessage,
148
+ formatConflictMessage,
149
+ describeForeignResponse,
150
+ PROBE_TIMEOUT_MS
151
+ };
@@ -1 +1 @@
1
- {"version":3,"file":"dashboard.d.ts","sourceRoot":"","sources":["../../src/telemetry/dashboard.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,eAAO,MAAM,aAAa,QAgalB,CAAA"}
1
+ {"version":3,"file":"dashboard.d.ts","sourceRoot":"","sources":["../../src/telemetry/dashboard.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,eAAO,MAAM,aAAa,QA8mBlB,CAAA"}
@@ -1,12 +1,30 @@
1
- import type { ITelemetryStore, IDiagnosticLogStore } from "./types";
1
+ import type { ITelemetryStore, IDiagnosticLogStore, ResolvedTelemetryConfig } from "./types";
2
+ /**
3
+ * What this process WOULD use if it started right now.
4
+ *
5
+ * Called at startup to build the stores, and again by the settings API to
6
+ * detect a pending restart — the same function both times on purpose. A
7
+ * second copy of this precedence chain living in the settings route is how a
8
+ * page ends up confidently reporting a state the proxy is not in.
9
+ */
10
+ export declare function resolveTelemetryConfig(): ResolvedTelemetryConfig;
2
11
  export declare const telemetryStore: ITelemetryStore;
3
12
  export declare const diagnosticLog: IDiagnosticLogStore;
13
+ /**
14
+ * Entries the running diagnostic ring holds, null when persisting.
15
+ *
16
+ * The metric store reports its own shape through `describe()`; the log store
17
+ * has no such method, and adding one to IDiagnosticLogStore for a single
18
+ * number would widen an interface two classes implement.
19
+ */
20
+ export declare const diagnosticLogCapacity: number | null;
4
21
  export { MemoryTelemetryStore } from "./store";
5
22
  export { MemoryDiagnosticLogStore } from "./logStore";
6
23
  export { createTelemetryRoutes } from "./routes";
7
24
  export { landingHtml } from "./landing";
8
25
  export { computePercentiles, computeSummary } from "./percentiles";
26
+ export { collapseRouteChains, summarizeRoutes } from "./routeChain";
9
27
  export { renderPrometheusMetrics } from "./prometheus";
10
28
  export { createSqliteStores } from "./sqlite";
11
- export type { RequestMetric, TelemetrySummary, PhaseTiming, ITelemetryStore, IDiagnosticLogStore, DiagnosticLog, } from "./types";
29
+ export type { RequestMetric, RouteHop, RouteKind, RouteProfileTally, RouteSummary, ResolvedTelemetryConfig, TelemetryRetention, TelemetrySummary, PhaseTiming, ITelemetryStore, IDiagnosticLogStore, DiagnosticLog, } from "./types";
12
30
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/telemetry/index.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAA;AA2CnE,eAAO,MAAM,cAAc,EAAE,eAAkC,CAAA;AAC/D,eAAO,MAAM,aAAa,EAAE,mBAAwC,CAAA;AAEpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAA;AAC9C,OAAO,EAAE,wBAAwB,EAAE,MAAM,YAAY,CAAA;AACrD,OAAO,EAAE,qBAAqB,EAAE,MAAM,UAAU,CAAA;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAA;AACvC,OAAO,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAClE,OAAO,EAAE,uBAAuB,EAAE,MAAM,cAAc,CAAA;AACtD,OAAO,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAA;AAC7C,YAAY,EACV,aAAa,EACb,gBAAgB,EAChB,WAAW,EACX,eAAe,EACf,mBAAmB,EACnB,aAAa,GACd,MAAM,SAAS,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/telemetry/index.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,eAAe,EAAE,mBAAmB,EAAE,uBAAuB,EAAE,MAAM,SAAS,CAAA;AA6B5F;;;;;;;GAOG;AACH,wBAAgB,sBAAsB,IAAI,uBAAuB,CAWhE;AA6CD,eAAO,MAAM,cAAc,EAAE,eAAkC,CAAA;AAC/D,eAAO,MAAM,aAAa,EAAE,mBAAwC,CAAA;AAEpE;;;;;;GAMG;AACH,eAAO,MAAM,qBAAqB,EAAE,MAAM,GAAG,IAAmC,CAAA;AAEhF,OAAO,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAA;AAC9C,OAAO,EAAE,wBAAwB,EAAE,MAAM,YAAY,CAAA;AACrD,OAAO,EAAE,qBAAqB,EAAE,MAAM,UAAU,CAAA;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAA;AACvC,OAAO,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAClE,OAAO,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AACnE,OAAO,EAAE,uBAAuB,EAAE,MAAM,cAAc,CAAA;AACtD,OAAO,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAA;AAC7C,YAAY,EACV,aAAa,EACb,QAAQ,EACR,SAAS,EACT,iBAAiB,EACjB,YAAY,EACZ,uBAAuB,EACvB,kBAAkB,EAClB,gBAAgB,EAChB,WAAW,EACX,eAAe,EACf,mBAAmB,EACnB,aAAa,GACd,MAAM,SAAS,CAAA"}
@@ -5,7 +5,7 @@
5
5
  * (usage + est. cost, click to switch the active profile), and a compact
6
6
  * 24h traffic strip. Site chrome (logo, nav, status) lives in the shared
7
7
  * header from profileBar.ts. Fetches /health, /telemetry/summary,
8
- * /v1/usage/quota/all and /profiles/list client-side for live data.
8
+ * /v1/usage/quota/all, /profiles/list and /settings/api/routing client-side for live data.
9
9
  */
10
10
  export declare const landingHtml: string;
11
11
  //# sourceMappingURL=landing.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"landing.d.ts","sourceRoot":"","sources":["../../src/telemetry/landing.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAIH,eAAO,MAAM,WAAW,QA8QhB,CAAA"}
1
+ {"version":3,"file":"landing.d.ts","sourceRoot":"","sources":["../../src/telemetry/landing.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAQH,eAAO,MAAM,WAAW,QAigBhB,CAAA"}
@@ -7,6 +7,17 @@
7
7
  */
8
8
  import type { DiagnosticLog, IDiagnosticLogStore } from "./types";
9
9
  export type { DiagnosticLog } from "./types";
10
+ /**
11
+ * Tunable for the same reason the metric ring is: 500 entries is the tightest
12
+ * window in the telemetry system - the metric ring holds twice as many rows of
13
+ * a rarer event - and it was the only one with no way to change it, so the
14
+ * logs a bug report needs had usually scrolled away by the time anyone looked.
15
+ *
16
+ * Env beats the saved setting, which beats the default. A value that is not
17
+ * positive is discarded rather than falling through, so a typo cannot produce
18
+ * a zero-length ring.
19
+ */
20
+ export declare function resolveDiagnosticLogCapacity(): number;
10
21
  export declare class MemoryDiagnosticLogStore implements IDiagnosticLogStore {
11
22
  private buffer;
12
23
  private head;
@@ -1 +1 @@
1
- {"version":3,"file":"logStore.d.ts","sourceRoot":"","sources":["../../src/telemetry/logStore.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAA;AACjE,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AAI5C,qBAAa,wBAAyB,YAAW,mBAAmB;IAClE,OAAO,CAAC,MAAM,CAA0B;IACxC,OAAO,CAAC,IAAI,CAAI;IAChB,OAAO,CAAC,KAAK,CAAI;IACjB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAQ;gBAErB,QAAQ,CAAC,EAAE,MAAM;IAK7B,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,aAAa,EAAE,WAAW,CAAC,GAAG,IAAI;IAMlD,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI;IAIlD,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI;IAIlD,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI;IAIhD,SAAS,CAAC,OAAO,GAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAO,GAAG,aAAa,EAAE;IAgB/F,KAAK,IAAI,IAAI;CAKd;AAED,4CAA4C;AAC5C,eAAO,MAAM,aAAa,0BAAiC,CAAA"}
1
+ {"version":3,"file":"logStore.d.ts","sourceRoot":"","sources":["../../src/telemetry/logStore.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,OAAO,KAAK,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAA;AACjE,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AAI5C;;;;;;;;;GASG;AACH,wBAAgB,4BAA4B,IAAI,MAAM,CAQrD;AAED,qBAAa,wBAAyB,YAAW,mBAAmB;IAClE,OAAO,CAAC,MAAM,CAA0B;IACxC,OAAO,CAAC,IAAI,CAAI;IAChB,OAAO,CAAC,KAAK,CAAI;IACjB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAQ;gBAErB,QAAQ,CAAC,EAAE,MAAM;IAK7B,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,aAAa,EAAE,WAAW,CAAC,GAAG,IAAI;IAMlD,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI;IAIlD,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI;IAIlD,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI;IAIhD,SAAS,CAAC,OAAO,GAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAO,GAAG,aAAa,EAAE;IAgB/F,KAAK,IAAI,IAAI;CAKd;AAED,4CAA4C;AAC5C,eAAO,MAAM,aAAa,0BAAiC,CAAA"}
@@ -5,8 +5,8 @@
5
5
  * static table in pricing.ts doesn't know about (custom routers, brand-new
6
6
  * releases). Overrides win over the built-in table in resolveModelPricing.
7
7
  *
8
- * Persisted to ~/.config/meridian/model-pricing.json (override the path with
9
- * MERIDIAN_PRICING_CONFIG). Read at request time with a short cache, so
8
+ * Persisted to model-pricing.json in the config directory (override the path
9
+ * with MERIDIAN_PRICING_CONFIG). Read at request time with a short cache, so
10
10
  * settings-page edits show up on the next dashboard refresh without a proxy
11
11
  * restart. Mirrors the sdkFeatures.ts persistence pattern.
12
12
  */
@@ -1 +1 @@
1
- {"version":3,"file":"pricingStore.d.ts","sourceRoot":"","sources":["../../src/telemetry/pricingStore.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAMH,OAAO,EAIL,KAAK,YAAY,EAClB,MAAM,WAAW,CAAA;AAElB,MAAM,MAAM,gBAAgB,GAAG,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAA;AA8D3D,gFAAgF;AAChF,wBAAgB,mBAAmB,IAAI,gBAAgB,CAEtD;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,OAAO,GAAG,YAAY,CAwBhE;AAED,uEAAuE;AACvE,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAOtD;AAED,0DAA0D;AAC1D,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,GAAG,IAAI,CAI7E;AAED,+EAA+E;AAC/E,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAKzD;AAED,4EAA4E;AAC5E,wBAAgB,0BAA0B,IAAI,IAAI,CAIjD"}
1
+ {"version":3,"file":"pricingStore.d.ts","sourceRoot":"","sources":["../../src/telemetry/pricingStore.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAMH,OAAO,EAIL,KAAK,YAAY,EAClB,MAAM,WAAW,CAAA;AAElB,MAAM,MAAM,gBAAgB,GAAG,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAA;AA6D3D,gFAAgF;AAChF,wBAAgB,mBAAmB,IAAI,gBAAgB,CAEtD;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,OAAO,GAAG,YAAY,CAwBhE;AAED,uEAAuE;AACvE,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAOtD;AAED,0DAA0D;AAC1D,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,GAAG,IAAI,CAI7E;AAED,+EAA+E;AAC/E,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAKzD;AAED,4EAA4E;AAC5E,wBAAgB,0BAA0B,IAAI,IAAI,CAIjD"}