@slkiser/opencode-quota 4.3.0 → 4.4.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 (81) hide show
  1. package/README.md +48 -49
  2. package/dist/lib/entries.d.ts +3 -1
  3. package/dist/lib/entries.d.ts.map +1 -1
  4. package/dist/lib/entries.js.map +1 -1
  5. package/dist/lib/grouped-entry-normalization.js +1 -1
  6. package/dist/lib/grouped-entry-normalization.js.map +1 -1
  7. package/dist/lib/jsonc.d.ts +8 -6
  8. package/dist/lib/jsonc.d.ts.map +1 -1
  9. package/dist/lib/jsonc.js +9 -52
  10. package/dist/lib/jsonc.js.map +1 -1
  11. package/dist/lib/kilo-config.d.ts +15 -0
  12. package/dist/lib/kilo-config.d.ts.map +1 -0
  13. package/dist/lib/kilo-config.js +26 -0
  14. package/dist/lib/kilo-config.js.map +1 -0
  15. package/dist/lib/kilo.d.ts +19 -0
  16. package/dist/lib/kilo.d.ts.map +1 -0
  17. package/dist/lib/kilo.js +75 -0
  18. package/dist/lib/kilo.js.map +1 -0
  19. package/dist/lib/ollama-cloud-config.d.ts +12 -34
  20. package/dist/lib/ollama-cloud-config.d.ts.map +1 -1
  21. package/dist/lib/ollama-cloud-config.js +24 -146
  22. package/dist/lib/ollama-cloud-config.js.map +1 -1
  23. package/dist/lib/ollama-cloud.d.ts +6 -10
  24. package/dist/lib/ollama-cloud.d.ts.map +1 -1
  25. package/dist/lib/ollama-cloud.js +142 -116
  26. package/dist/lib/ollama-cloud.js.map +1 -1
  27. package/dist/lib/provider-metadata.d.ts +16 -3
  28. package/dist/lib/provider-metadata.d.ts.map +1 -1
  29. package/dist/lib/provider-metadata.js +16 -3
  30. package/dist/lib/provider-metadata.js.map +1 -1
  31. package/dist/lib/quota-command-format.d.ts.map +1 -1
  32. package/dist/lib/quota-command-format.js +11 -9
  33. package/dist/lib/quota-command-format.js.map +1 -1
  34. package/dist/lib/quota-render-data.js +1 -1
  35. package/dist/lib/quota-render-data.js.map +1 -1
  36. package/dist/lib/quota-state.d.ts.map +1 -1
  37. package/dist/lib/quota-state.js +2 -1
  38. package/dist/lib/quota-state.js.map +1 -1
  39. package/dist/lib/quota-stats-format.d.ts.map +1 -1
  40. package/dist/lib/quota-stats-format.js +5 -3
  41. package/dist/lib/quota-stats-format.js.map +1 -1
  42. package/dist/lib/quota-status.js +2 -2
  43. package/dist/lib/quota-status.js.map +1 -1
  44. package/dist/lib/toast-format-grouped.js +3 -3
  45. package/dist/lib/toast-format-grouped.js.map +1 -1
  46. package/dist/lib/tui-compact-format.d.ts.map +1 -1
  47. package/dist/lib/tui-compact-format.js +16 -7
  48. package/dist/lib/tui-compact-format.js.map +1 -1
  49. package/dist/lib/types.d.ts +13 -6
  50. package/dist/lib/types.d.ts.map +1 -1
  51. package/dist/lib/types.js.map +1 -1
  52. package/dist/providers/copilot.js +1 -1
  53. package/dist/providers/google-account-format.d.ts +3 -2
  54. package/dist/providers/google-account-format.d.ts.map +1 -1
  55. package/dist/providers/google-account-format.js +41 -10
  56. package/dist/providers/google-account-format.js.map +1 -1
  57. package/dist/providers/google-agy.d.ts.map +1 -1
  58. package/dist/providers/google-agy.js +11 -6
  59. package/dist/providers/google-agy.js.map +1 -1
  60. package/dist/providers/google-antigravity.d.ts.map +1 -1
  61. package/dist/providers/google-antigravity.js +17 -5
  62. package/dist/providers/google-antigravity.js.map +1 -1
  63. package/dist/providers/google-gemini-cli.d.ts.map +1 -1
  64. package/dist/providers/google-gemini-cli.js +12 -4
  65. package/dist/providers/google-gemini-cli.js.map +1 -1
  66. package/dist/providers/kilo.d.ts +6 -0
  67. package/dist/providers/kilo.d.ts.map +1 -0
  68. package/dist/providers/kilo.js +52 -0
  69. package/dist/providers/kilo.js.map +1 -0
  70. package/dist/providers/mimo.js +1 -1
  71. package/dist/providers/mimo.js.map +1 -1
  72. package/dist/providers/minimax-coding-plan.js +1 -1
  73. package/dist/providers/minimax-coding-plan.js.map +1 -1
  74. package/dist/providers/ollama-cloud.d.ts +2 -2
  75. package/dist/providers/ollama-cloud.d.ts.map +1 -1
  76. package/dist/providers/ollama-cloud.js +68 -47
  77. package/dist/providers/ollama-cloud.js.map +1 -1
  78. package/dist/providers/registry.d.ts.map +1 -1
  79. package/dist/providers/registry.js +2 -0
  80. package/dist/providers/registry.js.map +1 -1
  81. package/package.json +3 -9
@@ -1,148 +1,26 @@
1
- import { readFile } from "fs/promises";
2
- import { join } from "path";
3
- import { homedir } from "os";
4
- import { xdgConfig } from "xdg-basedir";
5
- import { getOpencodeRuntimeDirCandidates } from "./opencode-runtime-paths.js";
6
- function getConfigCandidatePaths() {
7
- const { configDirs } = getOpencodeRuntimeDirCandidates();
8
- const paths = configDirs.map((dir) => join(dir, "opencode-quota", "ollama-cloud.json"));
9
- const xdgConfigDir = xdgConfig || join(homedir(), ".config");
10
- paths.push(join(xdgConfigDir, "ollama-usage", "config.yaml"));
11
- const home = homedir();
12
- paths.push(join(home, ".ollama-usage", "config.yaml"));
13
- return paths;
1
+ import { getAuthPaths, readAuthFile } from "./opencode-auth.js";
2
+ import { createProviderApiKeyResolver, getGlobalOpencodeConfigCandidatePaths, } from "./api-key-resolver.js";
3
+ export { getGlobalOpencodeConfigCandidatePaths as getOpencodeConfigCandidatePaths } from "./api-key-resolver.js";
4
+ const ollamaCloudApiKeyResolver = createProviderApiKeyResolver({
5
+ envVars: [{ name: "OLLAMA_API_KEY", source: "env:OLLAMA_API_KEY" }],
6
+ providerKeys: ["ollama-cloud"],
7
+ allowedEnvVars: ["OLLAMA_API_KEY"],
8
+ configJsonSource: "opencode.json",
9
+ configJsoncSource: "opencode.jsonc",
10
+ getConfigCandidates: getGlobalOpencodeConfigCandidatePaths,
11
+ auth: {
12
+ readAuth: readAuthFile,
13
+ getAuthPaths,
14
+ authSource: "auth.json",
15
+ },
16
+ });
17
+ export async function resolveOllamaCloudApiKey() {
18
+ return ollamaCloudApiKeyResolver.resolve();
19
+ }
20
+ export async function hasOllamaCloudApiKey() {
21
+ return ollamaCloudApiKeyResolver.has();
22
+ }
23
+ export async function getOllamaCloudKeyDiagnostics() {
24
+ return ollamaCloudApiKeyResolver.diagnostics();
14
25
  }
15
- function getOllamaUsageConfigPath() {
16
- const xdgConfigDir = xdgConfig || join(homedir(), ".config");
17
- return join(xdgConfigDir, "ollama-usage", "config.yaml");
18
- }
19
- function getOllamaUsageLegacyPath() {
20
- return join(homedir(), ".ollama-usage", "config.yaml");
21
- }
22
- function getConfigFileError(error) {
23
- if (error instanceof SyntaxError) {
24
- return `Failed to parse config: ${error.message}`;
25
- }
26
- if (error instanceof Error && error.message) {
27
- return `Failed to read config file: ${error.message}`;
28
- }
29
- return `Failed to read config file: ${String(error)}`;
30
- }
31
- async function readJsonConfigFile(path) {
32
- try {
33
- const data = await readFile(path, "utf-8");
34
- const parsed = JSON.parse(data);
35
- if (!parsed || typeof parsed !== "object" || Array.isArray(parsed)) {
36
- return { state: "invalid", error: "Config file must contain a JSON object" };
37
- }
38
- return { state: "loaded", config: parsed };
39
- }
40
- catch (error) {
41
- if (error?.code === "ENOENT") {
42
- return { state: "missing" };
43
- }
44
- return { state: "invalid", error: getConfigFileError(error) };
45
- }
46
- }
47
- async function readYamlConfigFile(path) {
48
- try {
49
- const data = await readFile(path, "utf-8");
50
- const cookieMatch = data.match(/(?:^|\n)\s*cookie\s*:\s*["']?\s*(.+?)\s*["']?\s*(?:\n|$)/);
51
- if (cookieMatch && cookieMatch[1]) {
52
- return { state: "loaded", config: { cookie: cookieMatch[1].trim() } };
53
- }
54
- return { state: "missing" };
55
- }
56
- catch (error) {
57
- if (error?.code === "ENOENT") {
58
- return { state: "missing" };
59
- }
60
- return { state: "invalid", error: getConfigFileError(error) };
61
- }
62
- }
63
- export function resolveOllamaCloudConfigFromEnv(env = process.env) {
64
- const cookie = env.OLLAMA_USAGE_COOKIE?.trim();
65
- if (!cookie)
66
- return null;
67
- return {
68
- state: "configured",
69
- config: { cookie },
70
- source: "env",
71
- };
72
- }
73
- export async function resolveOllamaCloudConfig() {
74
- const envResult = resolveOllamaCloudConfigFromEnv();
75
- if (envResult)
76
- return envResult;
77
- const candidates = getConfigCandidatePaths();
78
- for (const path of candidates) {
79
- const isYaml = path.endsWith(".yaml");
80
- const fileResult = isYaml
81
- ? await readYamlConfigFile(path)
82
- : await readJsonConfigFile(path);
83
- if (fileResult.state === "missing")
84
- continue;
85
- if (fileResult.state === "invalid") {
86
- return { state: "invalid", source: path, error: fileResult.error };
87
- }
88
- const config = fileResult.config;
89
- const cookie = typeof config.cookie === "string" ? config.cookie.trim() : "";
90
- if (cookie) {
91
- return {
92
- state: "configured",
93
- config: { cookie },
94
- source: path,
95
- };
96
- }
97
- return { state: "incomplete", source: path, missing: "cookie" };
98
- }
99
- return { state: "none" };
100
- }
101
- let cachedConfig = null;
102
- let cachedAt = 0;
103
- const DEFAULT_CACHE_MAX_AGE_MS = 30_000;
104
- export { DEFAULT_CACHE_MAX_AGE_MS as DEFAULT_OLLAMA_CLOUD_CONFIG_CACHE_MAX_AGE_MS };
105
- export async function resolveOllamaCloudConfigCached(params) {
106
- const maxAgeMs = Math.max(0, params?.maxAgeMs ?? DEFAULT_CACHE_MAX_AGE_MS);
107
- const now = Date.now();
108
- if (cachedConfig && now - cachedAt < maxAgeMs) {
109
- return cachedConfig;
110
- }
111
- cachedConfig = await resolveOllamaCloudConfig();
112
- cachedAt = now;
113
- return cachedConfig;
114
- }
115
- export async function getOllamaCloudConfigDiagnostics() {
116
- const resolved = await resolveOllamaCloudConfig();
117
- const checkedPaths = getConfigCandidatePaths();
118
- if (resolved.state === "none") {
119
- return { state: "none", source: null, missing: null, error: null, checkedPaths };
120
- }
121
- if (resolved.state === "incomplete") {
122
- return {
123
- state: "incomplete",
124
- source: resolved.source,
125
- missing: resolved.missing,
126
- error: null,
127
- checkedPaths,
128
- };
129
- }
130
- if (resolved.state === "invalid") {
131
- return {
132
- state: "invalid",
133
- source: resolved.source,
134
- missing: null,
135
- error: resolved.error,
136
- checkedPaths,
137
- };
138
- }
139
- return {
140
- state: "configured",
141
- source: resolved.source,
142
- missing: null,
143
- error: null,
144
- checkedPaths,
145
- };
146
- }
147
- export { getOllamaUsageConfigPath, getOllamaUsageLegacyPath };
148
26
  //# sourceMappingURL=ollama-cloud-config.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ollama-cloud-config.js","sourceRoot":"","sources":["../../src/lib/ollama-cloud-config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ollama-cloud-config.js","sourceRoot":"","sources":["../../src/lib/ollama-cloud-config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAChE,OAAO,EACL,4BAA4B,EAC5B,qCAAqC,GACtC,MAAM,uBAAuB,CAAC;AAa/B,OAAO,EAAE,qCAAqC,IAAI,+BAA+B,EAAE,MAAM,uBAAuB,CAAC;AAEjH,MAAM,yBAAyB,GAAG,4BAA4B,CAAuB;IACnF,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,gBAAgB,EAAE,MAAM,EAAE,oBAAoB,EAAE,CAAC;IACnE,YAAY,EAAE,CAAC,cAAc,CAAC;IAC9B,cAAc,EAAE,CAAC,gBAAgB,CAAC;IAClC,gBAAgB,EAAE,eAAe;IACjC,iBAAiB,EAAE,gBAAgB;IACnC,mBAAmB,EAAE,qCAAqC;IAC1D,IAAI,EAAE;QACJ,QAAQ,EAAE,YAAY;QACtB,YAAY;QACZ,UAAU,EAAE,WAAW;KACxB;CACF,CAAC,CAAC;AAEH,MAAM,CAAC,KAAK,UAAU,wBAAwB;IAC5C,OAAO,yBAAyB,CAAC,OAAO,EAAE,CAAC;AAC7C,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,oBAAoB;IACxC,OAAO,yBAAyB,CAAC,GAAG,EAAE,CAAC;AACzC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,4BAA4B;IAMhD,OAAO,yBAAyB,CAAC,WAAW,EAAE,CAAC;AACjD,CAAC"}
@@ -1,17 +1,13 @@
1
1
  /**
2
- * Ollama Cloud settings page scraper.
2
+ * Ollama Cloud usage API client.
3
3
  *
4
- * Fetches the Ollama Cloud settings page and parses the HTML for session
5
- * and weekly usage percentages, plan tier, and reset times from the
6
- * `data-usage-track` aria-labels, `usage-meter__fill` style attributes,
7
- * and `.local-time` data-time attributes.
4
+ * Fetches session and weekly usage fractions plus per-model request counts
5
+ * from the authenticated Ollama Cloud usage endpoint.
8
6
  */
9
7
  import type { OllamaCloudResult } from "./types.js";
10
- declare function extractUsagePercentFromTrack(trackHtml: string): number | null;
11
- declare function extractResetTimes(html: string): string[];
12
- declare function extractPlanTier(html: string): string | null;
13
- export declare function queryOllamaCloudQuota(cookie: string, options?: {
8
+ declare function parseOllamaCloudUsage(payload: unknown): OllamaCloudResult;
9
+ export declare function queryOllamaCloudQuota(options?: {
14
10
  requestTimeoutMs?: number;
15
11
  }): Promise<OllamaCloudResult>;
16
- export { extractUsagePercentFromTrack as _extractUsagePercentFromTrack, extractResetTimes as _extractResetTimes, extractPlanTier as _extractPlanTier, };
12
+ export { parseOllamaCloudUsage as _parseOllamaCloudUsage };
17
13
  //# sourceMappingURL=ollama-cloud.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ollama-cloud.d.ts","sourceRoot":"","sources":["../../src/lib/ollama-cloud.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAkBpD,iBAAS,4BAA4B,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAqBtE;AAED,iBAAS,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAQjD;AAED,iBAAS,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAGpD;AAeD,wBAAsB,qBAAqB,CACzC,MAAM,EAAE,MAAM,EACd,OAAO,GAAE;IAAE,gBAAgB,CAAC,EAAE,MAAM,CAAA;CAAO,GAC1C,OAAO,CAAC,iBAAiB,CAAC,CAmG5B;AAED,OAAO,EACL,4BAA4B,IAAI,6BAA6B,EAC7D,iBAAiB,IAAI,kBAAkB,EACvC,eAAe,IAAI,gBAAgB,GACpC,CAAC"}
1
+ {"version":3,"file":"ollama-cloud.d.ts","sourceRoot":"","sources":["../../src/lib/ollama-cloud.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,OAAO,KAAK,EAAyB,iBAAiB,EAAqB,MAAM,YAAY,CAAC;AAkH9F,iBAAS,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,iBAAiB,CA6ClE;AAED,wBAAsB,qBAAqB,CACzC,OAAO,GAAE;IAAE,gBAAgB,CAAC,EAAE,MAAM,CAAA;CAAO,GAC1C,OAAO,CAAC,iBAAiB,CAAC,CAkC5B;AAED,OAAO,EAAE,qBAAqB,IAAI,sBAAsB,EAAE,CAAC"}
@@ -1,155 +1,181 @@
1
1
  /**
2
- * Ollama Cloud settings page scraper.
2
+ * Ollama Cloud usage API client.
3
3
  *
4
- * Fetches the Ollama Cloud settings page and parses the HTML for session
5
- * and weekly usage percentages, plan tier, and reset times from the
6
- * `data-usage-track` aria-labels, `usage-meter__fill` style attributes,
7
- * and `.local-time` data-time attributes.
4
+ * Fetches session and weekly usage fractions plus per-model request counts
5
+ * from the authenticated Ollama Cloud usage endpoint.
8
6
  */
9
- import { fetchWithTimeout } from "./http.js";
10
7
  import { sanitizeSingleLineDisplayText } from "./display-sanitize.js";
11
- const SETTINGS_URL = "https://ollama.com/settings";
12
- const USER_AGENT = "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) Gecko/20100101 Firefox/148.0";
13
- const SCRAPE_TIMEOUT_MS = 10_000;
14
- const USAGE_PERCENT_RE = /(\d+(?:\.\d+)?)%\s*used/;
15
- const WIDTH_PERCENT_RE = /(?:^|;)\s*width\s*:\s*([0-9.]+)%/;
16
- const DATA_USAGE_TRACK_RE = /<[^>]*\bdata-usage-track\b[^>]*>/gs;
17
- const LOCAL_TIME_RE = /class="[^"]*local-time[^"]*"[^>]*data-time="([^"]*)"/gs;
18
- const PLAN_TIER_RE = /class="[^"]*capitalize[^"]*"[^>]*>([^<]*)</;
19
- function extractUsagePercentFromTrack(trackHtml) {
20
- const ariaMatch = trackHtml.match(USAGE_PERCENT_RE);
21
- if (ariaMatch) {
22
- const pct = Number(ariaMatch[1]);
23
- if (Number.isFinite(pct) && pct >= 0 && pct <= 100) {
24
- return pct;
8
+ import { fetchWithTimeout } from "./http.js";
9
+ import { resolveOllamaCloudApiKey } from "./ollama-cloud-config.js";
10
+ const OLLAMA_CLOUD_USAGE_URL = "https://ollama.com/api/usage";
11
+ const MAX_RESPONSE_BYTES = 256 * 1024;
12
+ const MAX_MODEL_ROWS = 100;
13
+ function isRecord(value) {
14
+ return Boolean(value) && typeof value === "object" && !Array.isArray(value);
15
+ }
16
+ function sanitizeRemoteSingleLineText(text) {
17
+ return sanitizeSingleLineDisplayText(text).replace(/\p{Cf}/gu, "");
18
+ }
19
+ function sanitizeMessage(text, secret, maxLength = 200) {
20
+ const redacted = secret ? text.split(secret).join("[redacted]") : text;
21
+ const sanitized = sanitizeRemoteSingleLineText(redacted);
22
+ return (sanitized || "unknown").slice(0, maxLength);
23
+ }
24
+ async function readBoundedText(response, maxBytes) {
25
+ if (!response.body) {
26
+ const text = await response.text();
27
+ if (new TextEncoder().encode(text).byteLength > maxBytes) {
28
+ throw new Error(`Ollama Cloud usage API response exceeded ${maxBytes} bytes`);
25
29
  }
30
+ return text;
26
31
  }
27
- const styleMatch = trackHtml.match(/style="([^"]*)"/);
28
- if (styleMatch) {
29
- const widthMatch = styleMatch[1].match(WIDTH_PERCENT_RE);
30
- if (widthMatch) {
31
- const pct = Number(widthMatch[1]);
32
- if (Number.isFinite(pct) && pct >= 0 && pct <= 100) {
33
- return pct;
32
+ const reader = response.body.getReader();
33
+ const decoder = new TextDecoder();
34
+ let text = "";
35
+ let byteLength = 0;
36
+ try {
37
+ while (true) {
38
+ const { done, value } = await reader.read();
39
+ if (done)
40
+ break;
41
+ byteLength += value.byteLength;
42
+ if (byteLength > maxBytes) {
43
+ await reader.cancel();
44
+ throw new Error(`Ollama Cloud usage API response exceeded ${maxBytes} bytes`);
34
45
  }
46
+ text += decoder.decode(value, { stream: true });
35
47
  }
48
+ return text + decoder.decode();
36
49
  }
37
- return null;
38
- }
39
- function extractResetTimes(html) {
40
- const times = [];
41
- let match;
42
- const re = new RegExp(LOCAL_TIME_RE.source, LOCAL_TIME_RE.flags);
43
- while ((match = re.exec(html)) !== null) {
44
- times.push(match[1]);
50
+ finally {
51
+ reader.releaseLock();
45
52
  }
46
- return times;
47
- }
48
- function extractPlanTier(html) {
49
- const match = html.match(PLAN_TIER_RE);
50
- return match ? match[1].trim() : null;
51
53
  }
52
- function sanitizeMessage(text, maxLength = 200) {
53
- const sanitized = sanitizeSingleLineDisplayText(text);
54
- return (sanitized || "unknown").slice(0, maxLength);
54
+ function parseWindow(value) {
55
+ if (!isRecord(value))
56
+ return undefined;
57
+ const usageFraction = value.usage;
58
+ if (typeof usageFraction !== "number" ||
59
+ !Number.isFinite(usageFraction) ||
60
+ usageFraction < 0 ||
61
+ usageFraction > 1) {
62
+ return undefined;
63
+ }
64
+ const usagePercent = usageFraction * 100;
65
+ return {
66
+ usageFraction,
67
+ usagePercent,
68
+ percentRemaining: 100 - usagePercent,
69
+ };
55
70
  }
56
- const COOKIE_NAME_PREFIX = "__Secure-session=";
57
- function normalizeCookie(raw) {
58
- let value = raw.trim();
59
- if (value.startsWith(COOKIE_NAME_PREFIX))
60
- value = value.slice(COOKIE_NAME_PREFIX.length);
61
- return value;
71
+ function parseModels(value, rowErrors) {
72
+ if (!Array.isArray(value)) {
73
+ rowErrors.push("Models: expected an array");
74
+ return [];
75
+ }
76
+ const models = [];
77
+ const seenModels = new Set();
78
+ for (const candidate of value) {
79
+ if (!isRecord(candidate)) {
80
+ rowErrors.push("Models: ignored an invalid row");
81
+ continue;
82
+ }
83
+ const model = typeof candidate.model === "string"
84
+ ? sanitizeRemoteSingleLineText(candidate.model).slice(0, 160)
85
+ : "";
86
+ const requests = candidate.requests;
87
+ if (!model) {
88
+ rowErrors.push("Models: ignored a row without a model name");
89
+ continue;
90
+ }
91
+ if (typeof requests !== "number" || !Number.isSafeInteger(requests) || requests < 0) {
92
+ rowErrors.push(`Models: ignored invalid request count for ${model}`);
93
+ continue;
94
+ }
95
+ if (seenModels.has(model)) {
96
+ rowErrors.push(`Models: ignored duplicate model ${model}`);
97
+ continue;
98
+ }
99
+ seenModels.add(model);
100
+ models.push({ model, requests });
101
+ }
102
+ return models.sort((left, right) => left.model.localeCompare(right.model));
62
103
  }
63
- export async function queryOllamaCloudQuota(cookie, options = {}) {
64
- if (cookie.includes("\r") || cookie.includes("\n")) {
104
+ function parseOllamaCloudUsage(payload) {
105
+ if (!isRecord(payload)) {
106
+ return {
107
+ success: false,
108
+ error: "Ollama Cloud usage API returned an unexpected response shape",
109
+ };
110
+ }
111
+ if (Array.isArray(payload.models) && payload.models.length > MAX_MODEL_ROWS) {
65
112
  return {
66
113
  success: false,
67
- error: "Cookie contains invalid CRLF characters",
114
+ error: `Ollama Cloud usage API returned more than ${MAX_MODEL_ROWS} model rows`,
68
115
  };
69
116
  }
117
+ const rowErrors = [];
118
+ const limits = isRecord(payload.limits) ? payload.limits : undefined;
119
+ const session = parseWindow(limits?.session);
120
+ const weekly = parseWindow(limits?.weekly);
121
+ if (limits?.session !== undefined && !session) {
122
+ rowErrors.push("Session: ignored invalid usage fraction");
123
+ }
124
+ if (limits?.weekly !== undefined && !weekly) {
125
+ rowErrors.push("Weekly: ignored invalid usage fraction");
126
+ }
127
+ if (!limits) {
128
+ rowErrors.push("Limits: expected an object");
129
+ }
130
+ const models = parseModels(payload.models, rowErrors);
131
+ if (!session && !weekly && models.length === 0) {
132
+ return {
133
+ success: false,
134
+ error: "Ollama Cloud usage API returned no usable usage data",
135
+ };
136
+ }
137
+ return {
138
+ success: true,
139
+ ...(session ? { session } : {}),
140
+ ...(weekly ? { weekly } : {}),
141
+ models,
142
+ ...(rowErrors.length > 0 ? { rowErrors } : {}),
143
+ };
144
+ }
145
+ export async function queryOllamaCloudQuota(options = {}) {
146
+ const resolved = await resolveOllamaCloudApiKey();
147
+ if (!resolved)
148
+ return null;
70
149
  try {
71
- return await fetchWithTimeout(SETTINGS_URL, {
150
+ return await fetchWithTimeout(OLLAMA_CLOUD_USAGE_URL, {
72
151
  request: {
73
152
  method: "GET",
74
153
  headers: {
75
- "User-Agent": USER_AGENT,
76
- Accept: "text/html",
77
- Cookie: `${COOKIE_NAME_PREFIX}${normalizeCookie(cookie)}`,
154
+ Accept: "application/json",
155
+ Authorization: resolved.key,
78
156
  },
79
157
  redirect: "manual",
80
158
  },
81
- timeoutMs: options.requestTimeoutMs ?? SCRAPE_TIMEOUT_MS,
159
+ timeoutMs: options.requestTimeoutMs,
82
160
  consume: async (response) => {
83
- if (response.status >= 300 && response.status < 400) {
84
- const location = response.headers.get("location") || "";
85
- return {
86
- success: false,
87
- error: `Authentication error: redirected to ${sanitizeMessage(location, 80)} — cookie may be expired`,
88
- };
89
- }
161
+ const text = await readBoundedText(response, MAX_RESPONSE_BYTES);
90
162
  if (!response.ok) {
91
- const text = await response.text();
92
- return {
93
- success: false,
94
- error: `Ollama Cloud settings error ${response.status}: ${sanitizeMessage(text)}`,
95
- };
96
- }
97
- const html = await response.text();
98
- const planTier = extractPlanTier(html);
99
- const tracks = [];
100
- let trackMatch;
101
- const trackRe = new RegExp(DATA_USAGE_TRACK_RE.source, DATA_USAGE_TRACK_RE.flags);
102
- while ((trackMatch = trackRe.exec(html)) !== null) {
103
- tracks.push(trackMatch[0]);
104
- }
105
- if (tracks.length === 0) {
106
- return {
107
- success: false,
108
- error: "Could not parse usage tracks from Ollama Cloud settings page (found 0)",
109
- };
110
- }
111
- const sessionPercent = tracks[0] ? extractUsagePercentFromTrack(tracks[0]) : null;
112
- const weeklyPercent = tracks[1] ? extractUsagePercentFromTrack(tracks[1]) : null;
113
- if (sessionPercent === null && weeklyPercent === null) {
163
+ const snippet = sanitizeMessage(text, resolved.key);
114
164
  return {
115
165
  success: false,
116
- error: "Could not extract any usage percentages from Ollama Cloud settings page",
166
+ error: `Ollama Cloud usage API error ${response.status}: ${snippet}`,
117
167
  };
118
168
  }
119
- const resetTimes = extractResetTimes(html);
120
- const sessionResetsAt = resetTimes[0] || undefined;
121
- const weeklyResetsAt = resetTimes[1] || undefined;
122
- return {
123
- success: true,
124
- ...(sessionPercent !== null
125
- ? {
126
- session: {
127
- usagePercent: sessionPercent,
128
- percentRemaining: 100 - sessionPercent,
129
- resetTimeIso: sessionResetsAt,
130
- },
131
- }
132
- : {}),
133
- ...(weeklyPercent !== null
134
- ? {
135
- weekly: {
136
- usagePercent: weeklyPercent,
137
- percentRemaining: 100 - weeklyPercent,
138
- resetTimeIso: weeklyResetsAt,
139
- },
140
- }
141
- : {}),
142
- ...(planTier ? { planTier } : {}),
143
- };
169
+ return parseOllamaCloudUsage(JSON.parse(text));
144
170
  },
145
171
  });
146
172
  }
147
- catch (err) {
173
+ catch (error) {
148
174
  return {
149
175
  success: false,
150
- error: sanitizeMessage(err instanceof Error ? err.message : String(err)),
176
+ error: sanitizeMessage(error instanceof Error ? error.message : String(error), resolved.key),
151
177
  };
152
178
  }
153
179
  }
154
- export { extractUsagePercentFromTrack as _extractUsagePercentFromTrack, extractResetTimes as _extractResetTimes, extractPlanTier as _extractPlanTier, };
180
+ export { parseOllamaCloudUsage as _parseOllamaCloudUsage };
155
181
  //# sourceMappingURL=ollama-cloud.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ollama-cloud.js","sourceRoot":"","sources":["../../src/lib/ollama-cloud.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ollama-cloud.js","sourceRoot":"","sources":["../../src/lib/ollama-cloud.ts"],"names":[],"mappings":"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"}
@@ -46,6 +46,18 @@ declare const PROVIDER_CATALOG_SOURCE: {
46
46
  readonly quota: "remote_api";
47
47
  };
48
48
  };
49
+ readonly kilo: {
50
+ readonly label: "Kilo Gateway";
51
+ readonly runtimeIds: readonly ["kilo"];
52
+ readonly synonyms: readonly [];
53
+ readonly shape: {
54
+ readonly autoSetup: "usually";
55
+ readonly authentication: "opencode_auth_api_key";
56
+ readonly authFallbacks: readonly ["env_api_key", "global_opencode_config"];
57
+ readonly quota: "remote_api";
58
+ readonly notes: "Queries the documented Kilo profile balance API; reports personal USD balance only";
59
+ };
60
+ };
49
61
  readonly cursor: {
50
62
  readonly label: "Cursor";
51
63
  readonly runtimeIds: readonly ["cursor", "cursor-acp"];
@@ -271,10 +283,11 @@ declare const PROVIDER_CATALOG_SOURCE: {
271
283
  readonly runtimeIds: readonly ["ollama-cloud"];
272
284
  readonly synonyms: readonly [];
273
285
  readonly shape: {
274
- readonly autoSetup: "manual_env_config";
275
- readonly authentication: "state_only";
286
+ readonly autoSetup: "usually";
287
+ readonly authentication: "opencode_auth_api_key";
288
+ readonly authFallbacks: readonly ["env_api_key", "global_opencode_config"];
276
289
  readonly quota: "remote_api";
277
- readonly notes: "Scrapes the Ollama Cloud settings page; requires __Secure-session cookie via OLLAMA_USAGE_COOKIE env or ollama-usage config";
290
+ readonly notes: "Queries the Ollama Cloud usage API; reports session and weekly quota plus model request counts";
278
291
  };
279
292
  };
280
293
  readonly "quota-providers": {
@@ -1 +1 @@
1
- {"version":3,"file":"provider-metadata.d.ts","sourceRoot":"","sources":["../../src/lib/provider-metadata.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,sBAAsB,GAAG,KAAK,GAAG,SAAS,GAAG,mBAAmB,GAAG,mBAAmB,CAAC;AAEnG,MAAM,MAAM,2BAA2B,GACnC,2BAA2B,GAC3B,uBAAuB,GACvB,4BAA4B,GAC5B,gBAAgB,GAChB,qBAAqB,GACrB,kBAAkB,GAClB,YAAY,CAAC;AAEjB,MAAM,MAAM,yBAAyB,GAAG,aAAa,GAAG,wBAAwB,CAAC;AAEjF,MAAM,MAAM,wBAAwB,GAChC,YAAY,GACZ,kBAAkB,GAClB,0BAA0B,GAC1B,kBAAkB,CAAC;AAsBvB,QAAA,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA0SuC,CAAC;AAErE,MAAM,MAAM,wBAAwB,GAAG,MAAM,OAAO,uBAAuB,CAAC;AAE5E,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,wBAAwB,CAAC;IAC7B,SAAS,CAAC,EAAE,YAAY,CAAC;IACzB,wBAAwB,CAAC,EAAE,wBAAwB,CAAC;IACpD,SAAS,EAAE,sBAAsB,CAAC;IAClC,cAAc,EAAE,2BAA2B,CAAC;IAC5C,aAAa,CAAC,EAAE,yBAAyB,EAAE,CAAC;IAC5C,KAAK,EAAE,wBAAwB,CAAC;IAChC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,yBAAyB;IACxC,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,SAAS,MAAM,EAAE,CAAC;IAChC,UAAU,EAAE,SAAS,MAAM,EAAE,CAAC;IAC9B,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAC;IAC5B,KAAK,EAAE,kBAAkB,CAAC;CAC3B;AAED,MAAM,MAAM,uBAAuB,GAAG,QAAQ,CAAC,MAAM,CAAC,wBAAwB,EAAE,SAAS,MAAM,EAAE,CAAC,CAAC,CAAC;AAuCpG,eAAO,MAAM,sBAAsB,EAAE,QAAQ,CAC3C,MAAM,CAAC,wBAAwB,EAAE,yBAAyB,CAAC,CAe5D,CAAC;AAEF,eAAO,MAAM,qBAAqB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAKlE,CAAC;AAEF,eAAO,MAAM,0BAA0B,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAIvE,CAAC;AAEF,eAAO,MAAM,0BAA0B,EAAE,uBAExC,CAAC;AAEF,eAAO,MAAM,qBAAqB,EAAE,SAAS,kBAAkB,EAE9D,CAAC;AASF,wBAAgB,wBAAwB,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAG3D;AAED,wBAAgB,qBAAqB,CAAC,EAAE,EAAE,MAAM,GAAG,kBAAkB,GAAG,SAAS,CAKhF;AAED,wBAAgB,4BAA4B,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAG/D;AAED,wBAAgB,0BAA0B,CAAC,EAAE,EAAE,MAAM,GAAG,SAAS,MAAM,EAAE,CAOxE;AAED,wBAAgB,0BAA0B,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAE9D"}
1
+ {"version":3,"file":"provider-metadata.d.ts","sourceRoot":"","sources":["../../src/lib/provider-metadata.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,sBAAsB,GAAG,KAAK,GAAG,SAAS,GAAG,mBAAmB,GAAG,mBAAmB,CAAC;AAEnG,MAAM,MAAM,2BAA2B,GACnC,2BAA2B,GAC3B,uBAAuB,GACvB,4BAA4B,GAC5B,gBAAgB,GAChB,qBAAqB,GACrB,kBAAkB,GAClB,YAAY,CAAC;AAEjB,MAAM,MAAM,yBAAyB,GAAG,aAAa,GAAG,wBAAwB,CAAC;AAEjF,MAAM,MAAM,wBAAwB,GAChC,YAAY,GACZ,kBAAkB,GAClB,0BAA0B,GAC1B,kBAAkB,CAAC;AAsBvB,QAAA,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAuTuC,CAAC;AAErE,MAAM,MAAM,wBAAwB,GAAG,MAAM,OAAO,uBAAuB,CAAC;AAE5E,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,wBAAwB,CAAC;IAC7B,SAAS,CAAC,EAAE,YAAY,CAAC;IACzB,wBAAwB,CAAC,EAAE,wBAAwB,CAAC;IACpD,SAAS,EAAE,sBAAsB,CAAC;IAClC,cAAc,EAAE,2BAA2B,CAAC;IAC5C,aAAa,CAAC,EAAE,yBAAyB,EAAE,CAAC;IAC5C,KAAK,EAAE,wBAAwB,CAAC;IAChC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,yBAAyB;IACxC,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,SAAS,MAAM,EAAE,CAAC;IAChC,UAAU,EAAE,SAAS,MAAM,EAAE,CAAC;IAC9B,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAC;IAC5B,KAAK,EAAE,kBAAkB,CAAC;CAC3B;AAED,MAAM,MAAM,uBAAuB,GAAG,QAAQ,CAAC,MAAM,CAAC,wBAAwB,EAAE,SAAS,MAAM,EAAE,CAAC,CAAC,CAAC;AAuCpG,eAAO,MAAM,sBAAsB,EAAE,QAAQ,CAC3C,MAAM,CAAC,wBAAwB,EAAE,yBAAyB,CAAC,CAe5D,CAAC;AAEF,eAAO,MAAM,qBAAqB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAKlE,CAAC;AAEF,eAAO,MAAM,0BAA0B,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAIvE,CAAC;AAEF,eAAO,MAAM,0BAA0B,EAAE,uBAExC,CAAC;AAEF,eAAO,MAAM,qBAAqB,EAAE,SAAS,kBAAkB,EAE9D,CAAC;AASF,wBAAgB,wBAAwB,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAG3D;AAED,wBAAgB,qBAAqB,CAAC,EAAE,EAAE,MAAM,GAAG,kBAAkB,GAAG,SAAS,CAKhF;AAED,wBAAgB,4BAA4B,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAG/D;AAED,wBAAgB,0BAA0B,CAAC,EAAE,EAAE,MAAM,GAAG,SAAS,MAAM,EAAE,CAOxE;AAED,wBAAgB,0BAA0B,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAE9D"}