zcode-acp-server 0.69.3 → 0.70.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.
- package/README.md +1 -1
- package/dist/bin/quota.d.ts +1 -1
- package/dist/bin/quota.d.ts.map +1 -1
- package/dist/bin/quota.js +23 -5
- package/dist/bin/quota.js.map +1 -1
- package/dist/code-fingerprint.json +2 -2
- package/dist/config/user-config.d.ts +8 -0
- package/dist/config/user-config.d.ts.map +1 -1
- package/dist/config/user-config.js +2 -0
- package/dist/config/user-config.js.map +1 -1
- package/dist/handlers/account.d.ts +35 -4
- package/dist/handlers/account.d.ts.map +1 -1
- package/dist/handlers/account.js +69 -6
- package/dist/handlers/account.js.map +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -3
- package/dist/index.js.map +1 -1
- package/dist/quota/cliproxy/client.d.ts +45 -0
- package/dist/quota/cliproxy/client.d.ts.map +1 -0
- package/dist/quota/cliproxy/client.js +134 -0
- package/dist/quota/cliproxy/client.js.map +1 -0
- package/dist/quota/cliproxy/config.d.ts +24 -0
- package/dist/quota/cliproxy/config.d.ts.map +1 -0
- package/dist/quota/cliproxy/config.js +27 -0
- package/dist/quota/cliproxy/config.js.map +1 -0
- package/dist/quota/cliproxy/format.d.ts +18 -0
- package/dist/quota/cliproxy/format.d.ts.map +1 -0
- package/dist/quota/cliproxy/format.js +64 -0
- package/dist/quota/cliproxy/format.js.map +1 -0
- package/dist/quota/cliproxy/index.d.ts +34 -0
- package/dist/quota/cliproxy/index.d.ts.map +1 -0
- package/dist/quota/cliproxy/index.js +110 -0
- package/dist/quota/cliproxy/index.js.map +1 -0
- package/dist/quota/cliproxy/parse.d.ts +48 -0
- package/dist/quota/cliproxy/parse.d.ts.map +1 -0
- package/dist/quota/cliproxy/parse.js +193 -0
- package/dist/quota/cliproxy/parse.js.map +1 -0
- package/dist/quota/cliproxy/types.d.ts +74 -0
- package/dist/quota/cliproxy/types.d.ts.map +1 -0
- package/dist/quota/cliproxy/types.js +33 -0
- package/dist/quota/cliproxy/types.js.map +1 -0
- package/dist/quota/combined.d.ts +5 -1
- package/dist/quota/combined.d.ts.map +1 -1
- package/dist/quota/combined.js +24 -6
- package/dist/quota/combined.js.map +1 -1
- package/dist/quota/format.d.ts +10 -0
- package/dist/quota/format.d.ts.map +1 -1
- package/dist/quota/format.js +26 -0
- package/dist/quota/format.js.map +1 -1
- package/dist/quota/live.d.ts.map +1 -1
- package/dist/quota/live.js +12 -5
- package/dist/quota/live.js.map +1 -1
- package/dist/quota/ollama-cloud/client.d.ts +5 -3
- package/dist/quota/ollama-cloud/client.d.ts.map +1 -1
- package/dist/quota/ollama-cloud/client.js +5 -3
- package/dist/quota/ollama-cloud/client.js.map +1 -1
- package/dist/quota/ollama-cloud/format.js +23 -4
- package/dist/quota/ollama-cloud/format.js.map +1 -1
- package/dist/quota/ollama-cloud/index.d.ts +39 -0
- package/dist/quota/ollama-cloud/index.d.ts.map +1 -1
- package/dist/quota/ollama-cloud/index.js +117 -6
- package/dist/quota/ollama-cloud/index.js.map +1 -1
- package/dist/quota/ollama-cloud/types.d.ts +28 -8
- package/dist/quota/ollama-cloud/types.d.ts.map +1 -1
- package/dist/quota/ollama-cloud/types.js +10 -3
- package/dist/quota/ollama-cloud/types.js.map +1 -1
- package/dist/quota/thresholds.d.ts +19 -7
- package/dist/quota/thresholds.d.ts.map +1 -1
- package/dist/quota/thresholds.js +85 -48
- package/dist/quota/thresholds.js.map +1 -1
- package/dist/remote/hub-server.d.ts.map +1 -1
- package/dist/remote/hub-server.js +7 -3
- package/dist/remote/hub-server.js.map +1 -1
- package/package.json +1 -1
package/dist/quota/live.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"live.js","sourceRoot":"","sources":["../../src/quota/live.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAIH,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AAExC,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EACL,gBAAgB,EAChB,mBAAmB,EACnB,mBAAmB,EACnB,eAAe,GAChB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAEtD,6CAA6C;AAC7C,MAAM,CAAC,MAAM,yBAAyB,GAAG,MAAM,CAAC;AAChD,6EAA6E;AAC7E,MAAM,cAAc,GAAG,GAAG,CAAC;AAS3B,IAAI,KAAK,GAA0B,IAAI,CAAC;AAExC;;;;;;GAMG;AACH,MAAM,UAAU,mBAAmB,CAAC,MAAsB;IACxD,IAAI,KAAK,IAAI,CAAC,CAAC,MAAM,CAAC,gBAAgB,IAAI,CAAC,UAAU,EAAE,CAAC;QAAE,OAAO;IACjE,MAAM,KAAK,GAAmB;QAC5B,MAAM;QACN,KAAK,EAAE,WAAW,CAAC,GAAG,EAAE,CAAC,KAAK,OAAO,CAAC,KAAK,CAAC,EAAE,yBAAyB,CAAC;QACxE,QAAQ,EAAE,IAAI;KACf,CAAC;IACF,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,EAAE,CAAC;IACtB,KAAK,GAAG,KAAK,CAAC;IACd,KAAK,OAAO,CAAC,KAAK,CAAC,CAAC;AACtB,CAAC;AAED,+EAA+E;AAC/E,MAAM,UAAU,iBAAiB;IAC/B,IAAI,CAAC,KAAK;QAAE,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IACrC,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC;AACxB,CAAC;AAED,mDAAmD;AACnD,MAAM,UAAU,0BAA0B;IACxC,IAAI,KAAK;QAAE,aAAa,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACtC,KAAK,GAAG,IAAI,CAAC;AACf,CAAC;AAED,KAAK,UAAU,OAAO,CAAC,KAAqB;IAC1C,IAAI,KAAK,CAAC,QAAQ;QAAE,OAAO,KAAK,CAAC,QAAQ,CAAC;IAC1C,KAAK,CAAC,QAAQ,GAAG,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC;SACtC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE;QACX,GAAG,CAAC,+BAA+B,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IACpF,CAAC,CAAC;SACD,OAAO,CAAC,GAAG,EAAE;QACZ,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC;IACxB,CAAC,CAAC,CAAC;IACL,OAAO,KAAK,CAAC,QAAQ,CAAC;AACxB,CAAC;AAED,KAAK,UAAU,UAAU,CAAC,MAAsB;IAC9C,MAAM,IAAI,GAAG,MAAM,aAAa,EAAE,CAAC;IACnC,uEAAuE;IACvE,uEAAuE;IACvE,yEAAyE;IACzE,2EAA2E;IAC3E,wEAAwE;IACxE,sEAAsE;IACtE,IAAI,IAAI,KAAK,IAAI;QAAE,OAAO;IAC1B,MAAM,IAAI,GAAG,MAAM,CAAC,SAAS,CAAC;IAC9B,MAAM,CAAC,SAAS,GAAG,IAAI,CAAC;IACxB,IAAI,IAAI,KAAK,IAAI;QAAE,OAAO;IAC1B,MAAM,gBAAgB,CAAC,MAAM,CAAC,CAAC;AACjC,CAAC;AAED,6DAA6D;AAC7D,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,MAAyB,OAAO,CAAC,GAAG;IACtE,MAAM,MAAM,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAC;IACtC,IAAI,MAAM,EAAE,CAAC;QACX,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,UAAU,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,OAAO,iBAAiB,EAAE;gBACpF,OAAO,EAAE,EAAE,aAAa,EAAE,UAAU,MAAM,CAAC,KAAK,EAAE,EAAE;gBACpD,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,cAAc,CAAC;aAC5C,CAAC,CAAC;YACH,IAAI,IAAI,CAAC,EAAE,EAAE,CAAC;gBACZ,MAAM,IAAI,GAAG,CAAC,MAAM,IAAI,CAAC,IAAI,EAAE,CAA4B,CAAC;gBAC5D,IAAI,IAAI,CAAC,SAAS,KAAK,IAAI;oBAAE,OAAO,IAAI,CAAC;gBACzC,IAAI,OAAO,IAAI,CAAC,SAAS,KAAK,QAAQ;oBAAE,OAAO,IAAI,CAAC,SAAS,CAAC;YAChE,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,gDAAgD;QAClD,CAAC;IACH,CAAC;IACD,2EAA2E;IAC3E,
|
|
1
|
+
{"version":3,"file":"live.js","sourceRoot":"","sources":["../../src/quota/live.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAIH,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AAExC,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EACL,gBAAgB,EAChB,mBAAmB,EACnB,mBAAmB,EACnB,mBAAmB,EACnB,eAAe,GAChB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAEtD,6CAA6C;AAC7C,MAAM,CAAC,MAAM,yBAAyB,GAAG,MAAM,CAAC;AAChD,6EAA6E;AAC7E,MAAM,cAAc,GAAG,GAAG,CAAC;AAS3B,IAAI,KAAK,GAA0B,IAAI,CAAC;AAExC;;;;;;GAMG;AACH,MAAM,UAAU,mBAAmB,CAAC,MAAsB;IACxD,IAAI,KAAK,IAAI,CAAC,CAAC,MAAM,CAAC,gBAAgB,IAAI,CAAC,UAAU,EAAE,CAAC;QAAE,OAAO;IACjE,MAAM,KAAK,GAAmB;QAC5B,MAAM;QACN,KAAK,EAAE,WAAW,CAAC,GAAG,EAAE,CAAC,KAAK,OAAO,CAAC,KAAK,CAAC,EAAE,yBAAyB,CAAC;QACxE,QAAQ,EAAE,IAAI;KACf,CAAC;IACF,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,EAAE,CAAC;IACtB,KAAK,GAAG,KAAK,CAAC;IACd,KAAK,OAAO,CAAC,KAAK,CAAC,CAAC;AACtB,CAAC;AAED,+EAA+E;AAC/E,MAAM,UAAU,iBAAiB;IAC/B,IAAI,CAAC,KAAK;QAAE,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IACrC,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC;AACxB,CAAC;AAED,mDAAmD;AACnD,MAAM,UAAU,0BAA0B;IACxC,IAAI,KAAK;QAAE,aAAa,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACtC,KAAK,GAAG,IAAI,CAAC;AACf,CAAC;AAED,KAAK,UAAU,OAAO,CAAC,KAAqB;IAC1C,IAAI,KAAK,CAAC,QAAQ;QAAE,OAAO,KAAK,CAAC,QAAQ,CAAC;IAC1C,KAAK,CAAC,QAAQ,GAAG,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC;SACtC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE;QACX,GAAG,CAAC,+BAA+B,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IACpF,CAAC,CAAC;SACD,OAAO,CAAC,GAAG,EAAE;QACZ,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC;IACxB,CAAC,CAAC,CAAC;IACL,OAAO,KAAK,CAAC,QAAQ,CAAC;AACxB,CAAC;AAED,KAAK,UAAU,UAAU,CAAC,MAAsB;IAC9C,MAAM,IAAI,GAAG,MAAM,aAAa,EAAE,CAAC;IACnC,uEAAuE;IACvE,uEAAuE;IACvE,yEAAyE;IACzE,2EAA2E;IAC3E,wEAAwE;IACxE,sEAAsE;IACtE,IAAI,IAAI,KAAK,IAAI;QAAE,OAAO;IAC1B,MAAM,IAAI,GAAG,MAAM,CAAC,SAAS,CAAC;IAC9B,MAAM,CAAC,SAAS,GAAG,IAAI,CAAC;IACxB,IAAI,IAAI,KAAK,IAAI;QAAE,OAAO;IAC1B,MAAM,gBAAgB,CAAC,MAAM,CAAC,CAAC;AACjC,CAAC;AAED,6DAA6D;AAC7D,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,MAAyB,OAAO,CAAC,GAAG;IACtE,MAAM,MAAM,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAC;IACtC,IAAI,MAAM,EAAE,CAAC;QACX,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,UAAU,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,OAAO,iBAAiB,EAAE;gBACpF,OAAO,EAAE,EAAE,aAAa,EAAE,UAAU,MAAM,CAAC,KAAK,EAAE,EAAE;gBACpD,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,cAAc,CAAC;aAC5C,CAAC,CAAC;YACH,IAAI,IAAI,CAAC,EAAE,EAAE,CAAC;gBACZ,MAAM,IAAI,GAAG,CAAC,MAAM,IAAI,CAAC,IAAI,EAAE,CAA4B,CAAC;gBAC5D,IAAI,IAAI,CAAC,SAAS,KAAK,IAAI;oBAAE,OAAO,IAAI,CAAC;gBACzC,IAAI,OAAO,IAAI,CAAC,SAAS,KAAK,QAAQ;oBAAE,OAAO,IAAI,CAAC,SAAS,CAAC;YAChE,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,gDAAgD;QAClD,CAAC;IACH,CAAC;IACD,mEAAmE;IACnE,2EAA2E;IAC3E,wEAAwE;IACxE,sEAAsE;IACtE,yBAAyB;IACzB,MAAM,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QAC1C,UAAU,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC;QAClC,YAAY,EAAE;aACX,IAAI,CAAC,mBAAmB,CAAC;aACzB,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC;QACpB,YAAY,EAAE;aACX,IAAI,CAAC,mBAAmB,CAAC;aACzB,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC;QACpB,YAAY,EAAE;aACX,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,mBAAmB,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;aAC5C,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC;KACrB,CAAC,CAAC;IACH,OAAO,gBAAgB,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;AAC3C,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,yBAAyB,CAAC,MAAsB;IAC9D,IAAI,MAAM,CAAC,SAAS,KAAK,IAAI;QAAE,OAAO;IACtC,YAAY,CAAC,GAAG,EAAE;QAChB,IAAI,MAAM,CAAC,SAAS,KAAK,IAAI;YAAE,KAAK,gBAAgB,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;IAC/E,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;;;GAIG;AACH,KAAK,UAAU,gBAAgB,CAAC,MAAsB;IACpD,IAAI,MAAM,CAAC,qBAAqB,CAAC,IAAI,KAAK,CAAC;QAAE,OAAO;IACpD,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO;SAC3B,QAAQ,EAAE;SACV,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,MAAM,CAAC,qBAAqB,CAAC,GAAG,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAC1E,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO;IAEjC,0EAA0E;IAC1E,MAAM,UAAU,GAAG,IAAI,GAAG,EAA4C,CAAC;IACvE,MAAM,OAAO,GAAG,KAAK,EAAE,MAAc,EAAiB,EAAE;QACtD,MAAM,QAAQ,GAAG,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC;QACnD,IAAI,OAAO,GAAG,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACvC,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,oEAAoE;YACpE,qEAAqE;YACrE,OAAO,GAAG,MAAM,kBAAkB,CAAC,MAAM,EAAE,QAAQ,EAAE,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAE,CAAC,CAAC,CAAC;YACpF,UAAU,CAAC,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QACpC,CAAC;QACD,MAAM,kBAAkB,CAAC,MAAM,EAAE,KAAK,IAAI,EAAE;YAC1C,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,UAAU,CACtC,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CACjB,EAAE,CAAC,MAAM,CAAC,gBAAgB,EAAE;gBAC1B,SAAS,EAAE,MAAM;gBACjB,MAAM,EAAE,EAAE,aAAa,EAAE,sBAAsB,EAAE,aAAa,EAAE,OAAO,EAAE;aAC1E,CAAC,CACH,CACF,CAAC;YACF,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;gBACxB,IAAI,CAAC,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;oBAC5B,IAAI,CACF,yDAAyD;wBACvD,GAAG,CAAC,CAAC,MAAM,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CACvE,CAAC;gBACJ,CAAC;YACH,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC;IAEF,MAAM,OAAO,GAAG,CAAC,GAAG,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,EAAE,GAAG,MAAM,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC,CAAC;IAChF,KAAK,MAAM,MAAM,IAAI,OAAO;QAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC;AACtD,CAAC;AAED,2EAA2E;AAC3E,SAAS,gBAAgB,CAAC,EAAW;IACnC,OAAQ,EAAsC,CAAC,iBAAiB,CAAC;AACnE,CAAC"}
|
|
@@ -13,9 +13,11 @@
|
|
|
13
13
|
/** The undocumented usage endpoint (verified live 2026-09). */
|
|
14
14
|
export declare const USAGE_URL = "https://ollama.com/api/usage";
|
|
15
15
|
/**
|
|
16
|
-
* The rolling window we request
|
|
17
|
-
* monthly percent
|
|
18
|
-
*
|
|
16
|
+
* The rolling window we request. Its `buckets` (day granularity) are the
|
|
17
|
+
* primary source: the monthly percent sums them back to the billing-period
|
|
18
|
+
* start (reset-aware). The window's `totals` are the FALLBACK numerator — the
|
|
19
|
+
* API offers no billing-period range, and 30d is the widest window, so it
|
|
20
|
+
* covers a monthly period start except for at most the period's first day.
|
|
19
21
|
*/
|
|
20
22
|
export declare const USAGE_RANGE = "30d";
|
|
21
23
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../src/quota/ollama-cloud/client.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAKH,+DAA+D;AAC/D,eAAO,MAAM,SAAS,iCAAiC,CAAC;AAExD
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../src/quota/ollama-cloud/client.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAKH,+DAA+D;AAC/D,eAAO,MAAM,SAAS,iCAAiC,CAAC;AAExD;;;;;;GAMG;AACH,eAAO,MAAM,WAAW,QAAQ,CAAC;AAEjC;;;;;;GAMG;AACH,wBAAsB,YAAY,CAChC,MAAM,EAAE,MAAM,EACd,SAAS,GAAE,OAAO,UAAU,CAAC,KAAwB,GACpD,OAAO,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,CAW3C;AAED,wEAAwE;AACxE,eAAO,MAAM,MAAM,8BAA8B,CAAC;AAElD;;;;;;GAMG;AACH,wBAAsB,SAAS,CAC7B,MAAM,EAAE,MAAM,EACd,SAAS,GAAE,OAAO,UAAU,CAAC,KAAwB,GACpD,OAAO,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,CAa3C"}
|
|
@@ -15,9 +15,11 @@ const TIMEOUT_MS = 10_000;
|
|
|
15
15
|
/** The undocumented usage endpoint (verified live 2026-09). */
|
|
16
16
|
export const USAGE_URL = "https://ollama.com/api/usage";
|
|
17
17
|
/**
|
|
18
|
-
* The rolling window we request
|
|
19
|
-
* monthly percent
|
|
20
|
-
*
|
|
18
|
+
* The rolling window we request. Its `buckets` (day granularity) are the
|
|
19
|
+
* primary source: the monthly percent sums them back to the billing-period
|
|
20
|
+
* start (reset-aware). The window's `totals` are the FALLBACK numerator — the
|
|
21
|
+
* API offers no billing-period range, and 30d is the widest window, so it
|
|
22
|
+
* covers a monthly period start except for at most the period's first day.
|
|
21
23
|
*/
|
|
22
24
|
export const USAGE_RANGE = "30d";
|
|
23
25
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../../src/quota/ollama-cloud/client.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,gEAAgE;AAChE,MAAM,UAAU,GAAG,MAAM,CAAC;AAE1B,+DAA+D;AAC/D,MAAM,CAAC,MAAM,SAAS,GAAG,8BAA8B,CAAC;AAExD
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../../src/quota/ollama-cloud/client.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,gEAAgE;AAChE,MAAM,UAAU,GAAG,MAAM,CAAC;AAE1B,+DAA+D;AAC/D,MAAM,CAAC,MAAM,SAAS,GAAG,8BAA8B,CAAC;AAExD;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,KAAK,CAAC;AAEjC;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,MAAc,EACd,YAAqC,UAAU,CAAC,KAAK;IAErD,MAAM,IAAI,GAAG,MAAM,SAAS,CAAC,GAAG,SAAS,UAAU,WAAW,EAAE,EAAE;QAChE,MAAM,EAAE,KAAK;QACb,OAAO,EAAE;YACP,aAAa,EAAE,UAAU,MAAM,EAAE;YACjC,MAAM,EAAE,kBAAkB;SAC3B;QACD,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,UAAU,CAAC;KACxC,CAAC,CAAC;IACH,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;IAC/B,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC;AACvC,CAAC;AAED,wEAAwE;AACxE,MAAM,CAAC,MAAM,MAAM,GAAG,2BAA2B,CAAC;AAElD;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS,CAC7B,MAAc,EACd,YAAqC,UAAU,CAAC,KAAK;IAErD,MAAM,IAAI,GAAG,MAAM,SAAS,CAAC,MAAM,EAAE;QACnC,MAAM,EAAE,MAAM;QACd,OAAO,EAAE;YACP,aAAa,EAAE,UAAU,MAAM,EAAE;YACjC,MAAM,EAAE,kBAAkB;YAC1B,cAAc,EAAE,kBAAkB;SACnC;QACD,IAAI,EAAE,IAAI;QACV,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,UAAU,CAAC;KACxC,CAAC,CAAC;IACH,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;IAC/B,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC;AACvC,CAAC"}
|
|
@@ -59,12 +59,24 @@ export function formatOcSection(result, color = false) {
|
|
|
59
59
|
return { header, body };
|
|
60
60
|
}
|
|
61
61
|
/**
|
|
62
|
-
* Spend detail line for the analytics API (2026-10+)
|
|
63
|
-
*
|
|
64
|
-
*
|
|
65
|
-
* response shape) — the card then
|
|
62
|
+
* Spend detail line for the analytics API (2026-10+). Prefers the
|
|
63
|
+
* BILLING-PERIOD spend (`since MM-DD`, matching the Month bar's numerator);
|
|
64
|
+
* the rolling-30d form only when the period buckets were unavailable. `null`
|
|
65
|
+
* when the result carries no spend (legacy response shape) — the card then
|
|
66
|
+
* stays exactly as before.
|
|
66
67
|
*/
|
|
67
68
|
function formatOcSpendLine(result) {
|
|
69
|
+
if (result.periodUsageUsd !== undefined) {
|
|
70
|
+
const spend = `$${result.periodUsageUsd.toFixed(2)}`;
|
|
71
|
+
const of = result.creditUsd !== undefined ? ` of $${result.creditUsd}` : " spent";
|
|
72
|
+
const req = result.periodRequestCount !== undefined
|
|
73
|
+
? ` · ${result.periodRequestCount.toLocaleString("en-US")} req`
|
|
74
|
+
: "";
|
|
75
|
+
const since = result.periodStartAt !== undefined
|
|
76
|
+
? ` (since ${formatPeriodDate(result.periodStartAt)})`
|
|
77
|
+
: "";
|
|
78
|
+
return ` ${spend}${of}${req}${since}`;
|
|
79
|
+
}
|
|
68
80
|
if (result.usageUsd === undefined)
|
|
69
81
|
return null;
|
|
70
82
|
const spend = `$${result.usageUsd.toFixed(2)}`;
|
|
@@ -74,4 +86,11 @@ function formatOcSpendLine(result) {
|
|
|
74
86
|
: "";
|
|
75
87
|
return ` ${spend}${of}${req} (30d)`;
|
|
76
88
|
}
|
|
89
|
+
/** `MM-DD` (local time, same clock as the reset stamp) for the period anchor. */
|
|
90
|
+
function formatPeriodDate(ms) {
|
|
91
|
+
const d = new Date(ms);
|
|
92
|
+
const mm = String(d.getMonth() + 1).padStart(2, "0");
|
|
93
|
+
const dd = String(d.getDate()).padStart(2, "0");
|
|
94
|
+
return `${mm}-${dd}`;
|
|
95
|
+
}
|
|
77
96
|
//# sourceMappingURL=format.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"format.js","sourceRoot":"","sources":["../../../src/quota/ollama-cloud/format.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC1D,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAG5C;;uCAEuC;AACvC,MAAM,WAAW,GAIZ;IACH,EAAE,GAAG,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,gBAAgB,EAAE;IAC3D,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,eAAe,EAAE;IAC3D,EAAE,GAAG,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,gBAAgB,EAAE;CAC/D,CAAC;AAQF;;;;;;;;;;GAUG;AACH,MAAM,UAAU,eAAe,CAAC,MAAqB,EAAE,KAAK,GAAG,KAAK;IAClE,MAAM,MAAM,GAAG,cAAc,CAAC;IAE9B,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QAC9B,MAAM,GAAG,GACP,MAAM,CAAC,IAAI,KAAK,gBAAgB;YAC9B,CAAC,CAAC,qCAAqC;YACvC,CAAC,CAAC,MAAM,CAAC,IAAI,KAAK,YAAY;gBAC5B,CAAC,CAAC,yCAAyC;gBAC3C,CAAC,CAAC,aAAa,CAAC;QACtB,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC;IACjC,CAAC;IAED,MAAM,IAAI,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QAC5E,MAAM,QAAQ,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,CAAE,CAAC;QAChC,MAAM,GAAG,GAAG,UAAU,CAAC,QAAQ,GAAG,GAAG,CAAC,CAAC;QACvC,MAAM,KAAK,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;QAClD,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAC,MAAM,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC5C,IAAI,KAAK,EAAE,CAAC;YACV,MAAM,GAAG,GAAG,cAAc,CAAC,GAAG,EAAE,EAAE,OAAO,EAAE,WAAW,CAAC,EAAE,WAAW,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;YAChF,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,GAAG,GAAG,QAAQ,EAAE,CAAC;QAClD,CAAC;QACD,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,SAAS,CAAC,GAAG,CAAC,KAAK,MAAM,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,QAAQ,EAAE,CAAC;IAC1F,CAAC,CAAC,CAAC;IAEH,MAAM,MAAM,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC;IACzC,IAAI,MAAM;QAAE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAE9B,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;AAC1B,CAAC;AAED
|
|
1
|
+
{"version":3,"file":"format.js","sourceRoot":"","sources":["../../../src/quota/ollama-cloud/format.ts"],"names":[],"mappings":"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"}
|
|
@@ -39,6 +39,45 @@ export declare const PLAN_CREDIT_USD: Record<string, number>;
|
|
|
39
39
|
* the target month's length (a 31st signup rolls to the 30th/28th).
|
|
40
40
|
*/
|
|
41
41
|
export declare function nextMonthlyAnniversary(createdMs: number, now: number): number;
|
|
42
|
+
/**
|
|
43
|
+
* Latest monthly anniversary of `createdMs` at or before `now` (NaN when none
|
|
44
|
+
* exists — e.g. a malformed future-dated creation). The START of the current
|
|
45
|
+
* billing period; together with {@link nextMonthlyAnniversary} it brackets
|
|
46
|
+
* [periodStart, nextReset).
|
|
47
|
+
*/
|
|
48
|
+
export declare function prevMonthlyAnniversary(createdMs: number, now: number): number;
|
|
49
|
+
/**
|
|
50
|
+
* One month before `ms`, clamped to the previous month's last day (a Mar-31
|
|
51
|
+
* period end clamps its start to Feb 28/29). `Date.UTC` normalizes
|
|
52
|
+
* `month - 1`, so January flows into December of the previous year.
|
|
53
|
+
*/
|
|
54
|
+
export declare function subtractOneMonthClamped(ms: number): number;
|
|
55
|
+
/** A raw daily bucket from the analytics response (keys observed 2026-10). */
|
|
56
|
+
export interface OcUsageBucket {
|
|
57
|
+
from?: unknown;
|
|
58
|
+
until?: unknown;
|
|
59
|
+
usage_usd?: unknown;
|
|
60
|
+
request_count?: unknown;
|
|
61
|
+
}
|
|
62
|
+
/** Spend summed from the daily buckets over the current billing period. */
|
|
63
|
+
export interface OcPeriodSpend {
|
|
64
|
+
usageUsd: number;
|
|
65
|
+
requestCount?: number;
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Sum the daily buckets' spend over `[periodStartAt, ∞)` — the honest monthly
|
|
69
|
+
* numerator: a reset empties the window instead of keeping the rolling-30d
|
|
70
|
+
* spend (observed 2026-10-14: 81% shown two days past the reset vs 1.4%
|
|
71
|
+
* actual). The bucket straddling the period start is split proportionally by
|
|
72
|
+
* its time overlap (day granularity is all the API offers).
|
|
73
|
+
*
|
|
74
|
+
* Returns `undefined` — the caller then falls back to the rolling-30d
|
|
75
|
+
* `totals.usage_usd` — when no `periodStartAt` is known, no bucket parses, or
|
|
76
|
+
* the buckets do not reach back to the period start (the 30d window opens up
|
|
77
|
+
* to a day later than a monthly period start, so the tail day of the period
|
|
78
|
+
* can sit outside the response).
|
|
79
|
+
*/
|
|
80
|
+
export declare function periodSpend(buckets: OcUsageBucket[], periodStartAt: number | undefined): OcPeriodSpend | undefined;
|
|
42
81
|
/**
|
|
43
82
|
* Query Ollama Cloud usage and return a normalised {@link OcQueryResult}.
|
|
44
83
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/quota/ollama-cloud/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAMH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEhD,6EAA6E;AAC7E,eAAO,MAAM,iBAAiB,QAAgB,CAAC;AAC/C;;wBAEwB;AACxB,eAAO,MAAM,cAAc,QAAiB,CAAC;AAG7C;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAElD;AAED,0EAA0E;AAC1E,wBAAgB,eAAe,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAGjD;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/quota/ollama-cloud/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAMH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEhD,6EAA6E;AAC7E,eAAO,MAAM,iBAAiB,QAAgB,CAAC;AAC/C;;wBAEwB;AACxB,eAAO,MAAM,cAAc,QAAiB,CAAC;AAG7C;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAElD;AAED,0EAA0E;AAC1E,wBAAgB,eAAe,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAGjD;AAkED;;;;;;;GAOG;AACH,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAIlD,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAqB7E;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAmB7E;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAY1D;AAED,8EAA8E;AAC9E,MAAM,WAAW,aAAa;IAC5B,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,2EAA2E;AAC3E,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,WAAW,CACzB,OAAO,EAAE,aAAa,EAAE,EACxB,aAAa,EAAE,MAAM,GAAG,SAAS,GAChC,aAAa,GAAG,SAAS,CAiC3B;AAoBD;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,YAAY,IAAI,OAAO,CAAC,aAAa,CAAC,CAsG3D;AAGD,OAAO,EAAE,UAAU,EAAE,UAAU,IAAI,YAAY,EAAE,MAAM,YAAY,CAAC;AACpE,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACtF,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AACtD,YAAY,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC"}
|
|
@@ -49,8 +49,13 @@ async function lookupAccountInfo(apiKey) {
|
|
|
49
49
|
period.valid;
|
|
50
50
|
if (valid !== false && typeof raw === "string") {
|
|
51
51
|
const ms = Date.parse(raw);
|
|
52
|
-
if (Number.isFinite(ms))
|
|
52
|
+
if (Number.isFinite(ms)) {
|
|
53
53
|
info.monthlyResetAt = ms;
|
|
54
|
+
// The billing period runs up TO the (future) period end; its start
|
|
55
|
+
// sits one month earlier, clamped to that month's last day.
|
|
56
|
+
if (ms > Date.now())
|
|
57
|
+
info.periodStartAt = subtractOneMonthClamped(ms);
|
|
58
|
+
}
|
|
54
59
|
}
|
|
55
60
|
}
|
|
56
61
|
if (info.monthlyResetAt === undefined) {
|
|
@@ -58,7 +63,11 @@ async function lookupAccountInfo(apiKey) {
|
|
|
58
63
|
if (typeof createdRaw === "string") {
|
|
59
64
|
const created = Date.parse(createdRaw);
|
|
60
65
|
if (Number.isFinite(created)) {
|
|
61
|
-
|
|
66
|
+
const now = Date.now();
|
|
67
|
+
info.monthlyResetAt = nextMonthlyAnniversary(created, now);
|
|
68
|
+
const start = prevMonthlyAnniversary(created, now);
|
|
69
|
+
if (Number.isFinite(start))
|
|
70
|
+
info.periodStartAt = start;
|
|
62
71
|
}
|
|
63
72
|
}
|
|
64
73
|
}
|
|
@@ -106,6 +115,94 @@ export function nextMonthlyAnniversary(createdMs, now) {
|
|
|
106
115
|
}
|
|
107
116
|
return Number.NaN;
|
|
108
117
|
}
|
|
118
|
+
/**
|
|
119
|
+
* Latest monthly anniversary of `createdMs` at or before `now` (NaN when none
|
|
120
|
+
* exists — e.g. a malformed future-dated creation). The START of the current
|
|
121
|
+
* billing period; together with {@link nextMonthlyAnniversary} it brackets
|
|
122
|
+
* [periodStart, nextReset).
|
|
123
|
+
*/
|
|
124
|
+
export function prevMonthlyAnniversary(createdMs, now) {
|
|
125
|
+
const created = new Date(createdMs);
|
|
126
|
+
const nowDate = new Date(now);
|
|
127
|
+
if (Number.isNaN(created.getTime()) || Number.isNaN(nowDate.getTime()))
|
|
128
|
+
return Number.NaN;
|
|
129
|
+
const day = created.getUTCDate();
|
|
130
|
+
const h = created.getUTCHours();
|
|
131
|
+
const min = created.getUTCMinutes();
|
|
132
|
+
const sec = created.getUTCSeconds();
|
|
133
|
+
const ms = created.getUTCMilliseconds();
|
|
134
|
+
let best = Number.NaN;
|
|
135
|
+
for (let year = nowDate.getUTCFullYear() - 1; year <= nowDate.getUTCFullYear(); year++) {
|
|
136
|
+
for (let month = 0; month < 12; month++) {
|
|
137
|
+
// Clamp to the month's last day (UTC months are 0-based).
|
|
138
|
+
const lastDay = new Date(Date.UTC(year, month + 1, 0)).getUTCDate();
|
|
139
|
+
const candidate = Date.UTC(year, month, Math.min(day, lastDay), h, min, sec, ms);
|
|
140
|
+
if (candidate <= now && (Number.isNaN(best) || candidate > best))
|
|
141
|
+
best = candidate;
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
return best;
|
|
145
|
+
}
|
|
146
|
+
/**
|
|
147
|
+
* One month before `ms`, clamped to the previous month's last day (a Mar-31
|
|
148
|
+
* period end clamps its start to Feb 28/29). `Date.UTC` normalizes
|
|
149
|
+
* `month - 1`, so January flows into December of the previous year.
|
|
150
|
+
*/
|
|
151
|
+
export function subtractOneMonthClamped(ms) {
|
|
152
|
+
const d = new Date(ms);
|
|
153
|
+
const lastDayOfPrev = new Date(Date.UTC(d.getUTCFullYear(), d.getUTCMonth(), 0)).getUTCDate();
|
|
154
|
+
return Date.UTC(d.getUTCFullYear(), d.getUTCMonth() - 1, Math.min(d.getUTCDate(), lastDayOfPrev), d.getUTCHours(), d.getUTCMinutes(), d.getUTCSeconds(), d.getUTCMilliseconds());
|
|
155
|
+
}
|
|
156
|
+
/**
|
|
157
|
+
* Sum the daily buckets' spend over `[periodStartAt, ∞)` — the honest monthly
|
|
158
|
+
* numerator: a reset empties the window instead of keeping the rolling-30d
|
|
159
|
+
* spend (observed 2026-10-14: 81% shown two days past the reset vs 1.4%
|
|
160
|
+
* actual). The bucket straddling the period start is split proportionally by
|
|
161
|
+
* its time overlap (day granularity is all the API offers).
|
|
162
|
+
*
|
|
163
|
+
* Returns `undefined` — the caller then falls back to the rolling-30d
|
|
164
|
+
* `totals.usage_usd` — when no `periodStartAt` is known, no bucket parses, or
|
|
165
|
+
* the buckets do not reach back to the period start (the 30d window opens up
|
|
166
|
+
* to a day later than a monthly period start, so the tail day of the period
|
|
167
|
+
* can sit outside the response).
|
|
168
|
+
*/
|
|
169
|
+
export function periodSpend(buckets, periodStartAt) {
|
|
170
|
+
if (periodStartAt === undefined || !Number.isFinite(periodStartAt) || buckets.length === 0) {
|
|
171
|
+
return undefined;
|
|
172
|
+
}
|
|
173
|
+
let usageUsd = 0;
|
|
174
|
+
let requestCount = 0;
|
|
175
|
+
let anyUsage = false;
|
|
176
|
+
let anyRequest = false;
|
|
177
|
+
let minFrom = Number.POSITIVE_INFINITY;
|
|
178
|
+
for (const raw of buckets) {
|
|
179
|
+
const from = typeof raw.from === "string" ? Date.parse(raw.from) : Number.NaN;
|
|
180
|
+
const until = typeof raw.until === "string" ? Date.parse(raw.until) : Number.NaN;
|
|
181
|
+
if (!Number.isFinite(from) || !Number.isFinite(until) || until <= from)
|
|
182
|
+
continue;
|
|
183
|
+
minFrom = Math.min(minFrom, from);
|
|
184
|
+
if (until <= periodStartAt)
|
|
185
|
+
continue; // entirely before the period
|
|
186
|
+
// Fraction of the bucket inside the period (the reset-day straddler).
|
|
187
|
+
const frac = from >= periodStartAt ? 1 : (until - periodStartAt) / (until - from);
|
|
188
|
+
if (validCount(raw.usage_usd)) {
|
|
189
|
+
usageUsd += raw.usage_usd * frac;
|
|
190
|
+
anyUsage = true;
|
|
191
|
+
}
|
|
192
|
+
if (validCount(raw.request_count)) {
|
|
193
|
+
requestCount += raw.request_count * frac;
|
|
194
|
+
anyRequest = true;
|
|
195
|
+
}
|
|
196
|
+
}
|
|
197
|
+
// Coverage: the earliest usable bucket must sit at/before the period start,
|
|
198
|
+
// else the sum silently undercounts the period's first day(s).
|
|
199
|
+
if (!anyUsage || minFrom > periodStartAt)
|
|
200
|
+
return undefined;
|
|
201
|
+
return {
|
|
202
|
+
usageUsd,
|
|
203
|
+
...(anyRequest && { requestCount: Math.round(requestCount) }),
|
|
204
|
+
};
|
|
205
|
+
}
|
|
109
206
|
/**
|
|
110
207
|
* Validate a usage value from the legacy response body: a finite number in
|
|
111
208
|
* [0, 1].
|
|
@@ -162,16 +259,30 @@ export async function queryOcUsage() {
|
|
|
162
259
|
const totals = parsed.totals ?? {};
|
|
163
260
|
const usageUsd = validCount(totals.usage_usd) ? totals.usage_usd : undefined;
|
|
164
261
|
if (usageUsd !== undefined) {
|
|
165
|
-
// Analytics shape: spend over the rolling 30d window. The
|
|
166
|
-
//
|
|
262
|
+
// Analytics shape: spend over the rolling 30d window. The monthly
|
|
263
|
+
// percent prefers the bucket-summed CURRENT-PERIOD spend (reset-aware)
|
|
264
|
+
// and falls back to the rolling total only when the buckets cannot
|
|
265
|
+
// bracket the period (no /api/me period, no coverage — see
|
|
266
|
+
// {@link periodSpend}).
|
|
167
267
|
const fetchedAt = Date.now();
|
|
168
|
-
const { plan, monthlyResetAt } = await lookupAccountInfo(apiKey);
|
|
268
|
+
const { plan, monthlyResetAt, periodStartAt } = await lookupAccountInfo(apiKey);
|
|
169
269
|
const creditUsd = plan !== undefined ? PLAN_CREDIT_USD[plan.toLowerCase()] : undefined;
|
|
270
|
+
const buckets = Array.isArray(parsed.buckets)
|
|
271
|
+
? parsed.buckets
|
|
272
|
+
: [];
|
|
273
|
+
const period = periodSpend(buckets, periodStartAt);
|
|
274
|
+
const monthlyNumerator = period !== undefined ? period.usageUsd : usageUsd;
|
|
170
275
|
result = {
|
|
171
276
|
kind: "success",
|
|
172
|
-
...(creditUsd !== undefined && { monthly: Math.min(1,
|
|
277
|
+
...(creditUsd !== undefined && { monthly: Math.min(1, monthlyNumerator / creditUsd) }),
|
|
173
278
|
...(monthlyResetAt !== undefined && { monthlyResetAt }),
|
|
174
279
|
usageUsd,
|
|
280
|
+
...(period !== undefined &&
|
|
281
|
+
periodStartAt !== undefined && {
|
|
282
|
+
periodUsageUsd: period.usageUsd,
|
|
283
|
+
periodStartAt,
|
|
284
|
+
...(period.requestCount !== undefined && { periodRequestCount: period.requestCount }),
|
|
285
|
+
}),
|
|
175
286
|
...(plan !== undefined && { plan }),
|
|
176
287
|
...(creditUsd !== undefined && { creditUsd }),
|
|
177
288
|
...(validCount(totals.request_count) && { requestCount: totals.request_count }),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/quota/ollama-cloud/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/quota/ollama-cloud/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,9 +8,16 @@
|
|
|
8
8
|
* (`{range, totals:{usage_usd, request_count, …}, buckets}`) — it now reports
|
|
9
9
|
* SPEND in USD, not usage fractions, and exposes no plan limit. The percent
|
|
10
10
|
* windows on the success variant are therefore DERIVED:
|
|
11
|
-
* - `monthly` =
|
|
12
|
-
*
|
|
13
|
-
*
|
|
11
|
+
* - `monthly` = the CURRENT BILLING PERIOD's `usage_usd` (summed from the
|
|
12
|
+
* response's daily buckets back to the period start, per-model pricing
|
|
13
|
+
* already applied upstream) ÷ the plan's monthly credit (pricing table in
|
|
14
|
+
* index.js, keyed by POST /api/me's `Plan`); absent when the plan's credit
|
|
15
|
+
* is unknown (e.g. the Free tier's starter credit is unlisted). Falls
|
|
16
|
+
* back to the rolling-30d `usage_usd` only when the buckets cannot
|
|
17
|
+
* bracket the period (no /api/me period, or the 30d window opens after
|
|
18
|
+
* the period start) — a rolling numerator NEVER resets on the billing
|
|
19
|
+
* day (observed 2026-10-14: 81% shown two days past the reset vs 1.4%
|
|
20
|
+
* actual), so the bucket sum is not an optimization but the fix.
|
|
14
21
|
* - resets from the /api/me billing-period lookup (SubscriptionPeriodEnd,
|
|
15
22
|
* else the CreatedAt monthly anniversary).
|
|
16
23
|
* The pre-2026-10 `limits` shape is still parsed when the server returns it,
|
|
@@ -30,9 +37,10 @@
|
|
|
30
37
|
*/
|
|
31
38
|
export type OcQueryResult = {
|
|
32
39
|
kind: "success";
|
|
33
|
-
/** Present windows only. Fractions in [0, 1]. `monthly`
|
|
34
|
-
*
|
|
35
|
-
*
|
|
40
|
+
/** Present windows only. Fractions in [0, 1]. `monthly` = the current
|
|
41
|
+
* billing period's spend ÷ plan credit (bucket-summed, see the module
|
|
42
|
+
* header) with a rolling-30d fallback — undefined when the plan's
|
|
43
|
+
* credit is unknown. `session`/`weekly` only ever come from the
|
|
36
44
|
* pre-2026-10 legacy response shape. */
|
|
37
45
|
session?: number;
|
|
38
46
|
weekly?: number;
|
|
@@ -45,9 +53,21 @@ export type OcQueryResult = {
|
|
|
45
53
|
sessionResetAt?: number;
|
|
46
54
|
weeklyResetAt?: number;
|
|
47
55
|
monthlyResetAt?: number;
|
|
48
|
-
/** Spend over the rolling 30d window (USD) — the API's own numerator
|
|
49
|
-
* for the
|
|
56
|
+
/** Spend over the rolling 30d window (USD) — the API's own numerator,
|
|
57
|
+
* kept raw for the spend detail even when `monthly` uses the bucket
|
|
58
|
+
* sum. */
|
|
50
59
|
usageUsd?: number;
|
|
60
|
+
/** Spend within the CURRENT billing period (USD), summed from the
|
|
61
|
+
* response's daily buckets back to `periodStartAt` (the reset-day
|
|
62
|
+
* straddling bucket split proportionally). Present only when the
|
|
63
|
+
* buckets bracket the period; `monthly`'s numerator then matches this,
|
|
64
|
+
* not `usageUsd`. */
|
|
65
|
+
periodUsageUsd?: number;
|
|
66
|
+
/** Request count over the same billing-period window. */
|
|
67
|
+
periodRequestCount?: number;
|
|
68
|
+
/** Start of the current billing period (epoch ms) — the bucket-sum
|
|
69
|
+
* anchor (last reset that already happened). */
|
|
70
|
+
periodStartAt?: number;
|
|
51
71
|
/** Plan id from POST /api/me ("pro" / "max" / "team" / …). */
|
|
52
72
|
plan?: string;
|
|
53
73
|
/** The plan's monthly usage credit (USD) — the denominator of the
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/quota/ollama-cloud/types.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/quota/ollama-cloud/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAEH;;;;;;;GAOG;AACH,MAAM,MAAM,aAAa,GACrB;IACE,IAAI,EAAE,SAAS,CAAC;IAChB;;;;6CAIyC;IACzC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;;4BAIwB;IACxB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB;;eAEW;IACX,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;;0BAIsB;IACtB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,yDAAyD;IACzD,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B;qDACiD;IACjD,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,8DAA8D;IAC9D,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;iBAEa;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;qDACiD;IACjD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,0EAA0E;IAC1E,SAAS,EAAE,MAAM,CAAC;CACnB,GACD;IAAE,IAAI,EAAE,gBAAgB,CAAA;CAAE,GAC1B;IAAE,IAAI,EAAE,YAAY,CAAA;CAAE,GACtB;IAAE,IAAI,EAAE,aAAa,CAAA;CAAE,CAAC;AAE5B,wDAAwD;AACxD,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;CACd"}
|
|
@@ -8,9 +8,16 @@
|
|
|
8
8
|
* (`{range, totals:{usage_usd, request_count, …}, buckets}`) — it now reports
|
|
9
9
|
* SPEND in USD, not usage fractions, and exposes no plan limit. The percent
|
|
10
10
|
* windows on the success variant are therefore DERIVED:
|
|
11
|
-
* - `monthly` =
|
|
12
|
-
*
|
|
13
|
-
*
|
|
11
|
+
* - `monthly` = the CURRENT BILLING PERIOD's `usage_usd` (summed from the
|
|
12
|
+
* response's daily buckets back to the period start, per-model pricing
|
|
13
|
+
* already applied upstream) ÷ the plan's monthly credit (pricing table in
|
|
14
|
+
* index.js, keyed by POST /api/me's `Plan`); absent when the plan's credit
|
|
15
|
+
* is unknown (e.g. the Free tier's starter credit is unlisted). Falls
|
|
16
|
+
* back to the rolling-30d `usage_usd` only when the buckets cannot
|
|
17
|
+
* bracket the period (no /api/me period, or the 30d window opens after
|
|
18
|
+
* the period start) — a rolling numerator NEVER resets on the billing
|
|
19
|
+
* day (observed 2026-10-14: 81% shown two days past the reset vs 1.4%
|
|
20
|
+
* actual), so the bucket sum is not an optimization but the fix.
|
|
14
21
|
* - resets from the /api/me billing-period lookup (SubscriptionPeriodEnd,
|
|
15
22
|
* else the CreatedAt monthly anniversary).
|
|
16
23
|
* The pre-2026-10 `limits` shape is still parsed when the server returns it,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/quota/ollama-cloud/types.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/quota/ollama-cloud/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG"}
|
|
@@ -12,12 +12,17 @@
|
|
|
12
12
|
* reset card, weekly rollover).
|
|
13
13
|
*
|
|
14
14
|
* The per-key highest-notified tier is PERSISTED next to the user config
|
|
15
|
-
* (`quota-push-state.json`)
|
|
16
|
-
*
|
|
17
|
-
*
|
|
18
|
-
*
|
|
19
|
-
*
|
|
20
|
-
*
|
|
15
|
+
* (`quota-push-state.json`) under the SHARED FILE LOCK, re-read from disk on
|
|
16
|
+
* EVERY check: several processes observe the same crossing (observed live
|
|
17
|
+
* 2026-10-14: one "5h quota 60% used" delivered three times — hub + bridges,
|
|
18
|
+
* two of them 80ms apart). A per-process in-memory mirror cannot dedupe
|
|
19
|
+
* across processes: a bridge that booted before the hub persisted a tier
|
|
20
|
+
* keeps its stale mirror forever and pushes the same crossing again. The
|
|
21
|
+
* lock makes read→advance→persist atomic between processes, and the push
|
|
22
|
+
* fires only AFTER the advanced state is durable — a crash between the two
|
|
23
|
+
* never re-pushes. The state advances even when the push itself is switched
|
|
24
|
+
* off or suppressed, so re-enabling never replays old crossings. Everything
|
|
25
|
+
* here is fire-and-forget from the caller's view: failures warn, never throw.
|
|
21
26
|
*/
|
|
22
27
|
import type { QuotaResult } from "./types.js";
|
|
23
28
|
/** Highest tier crossed by a used percentage (0 = below all). */
|
|
@@ -25,8 +30,15 @@ export declare function quotaTier(usedPercent: number): number;
|
|
|
25
30
|
/**
|
|
26
31
|
* Check one fresh quota result against the persisted tiers and push each
|
|
27
32
|
* newly-crossed tier once. Callers fire-and-forget this; it never throws.
|
|
33
|
+
*
|
|
34
|
+
* The read→advance→persist section runs under the shared file lock on the
|
|
35
|
+
* state file (re-reading disk every check): hub + bridges all funnel quota
|
|
36
|
+
* results, and without the lock two processes observe one crossing
|
|
37
|
+
* concurrently and each pushes it. The push fires after the lock releases,
|
|
38
|
+
* so a crash between persist and send never replays the crossing.
|
|
28
39
|
*/
|
|
29
40
|
export declare function checkQuotaThresholds(result: QuotaResult): Promise<void>;
|
|
30
|
-
/** Test hook:
|
|
41
|
+
/** Test hook: no in-process mirror remains (disk is re-read every check) —
|
|
42
|
+
* kept for call-site compatibility; the disk state is the only state. */
|
|
31
43
|
export declare function resetQuotaThresholdsForTest(): void;
|
|
32
44
|
//# sourceMappingURL=thresholds.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"thresholds.d.ts","sourceRoot":"","sources":["../../src/quota/thresholds.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"thresholds.d.ts","sourceRoot":"","sources":["../../src/quota/thresholds.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAWH,OAAO,KAAK,EAAa,WAAW,EAAE,MAAM,YAAY,CAAC;AAazD,iEAAiE;AACjE,wBAAgB,SAAS,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAIrD;AAiDD;;;;;;;;;GASG;AACH,wBAAsB,oBAAoB,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAiD7E;AAED;0EAC0E;AAC1E,wBAAgB,2BAA2B,IAAI,IAAI,CAAG"}
|