koneck 2.25.1 → 2.25.3

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/dist/usage.js ADDED
@@ -0,0 +1,201 @@
1
+ import fs from 'fs';
2
+ import os from 'os';
3
+ import path from 'path';
4
+ /** Context windows, in tokens, for models whose size is documented. */
5
+ const CONTEXT_WINDOWS = [
6
+ { match: /claude-(?:opus|sonnet)-?5/i, tokens: 200_000 },
7
+ { match: /claude-.*-500k/i, tokens: 500_000 },
8
+ { match: /claude-(?:opus|sonnet|haiku)/i, tokens: 200_000 },
9
+ { match: /gpt-?5/i, tokens: 400_000 },
10
+ { match: /gpt-4o|gpt-4\.1/i, tokens: 128_000 },
11
+ { match: /gemini-?[23]/i, tokens: 1_000_000 },
12
+ { match: /deepseek/i, tokens: 128_000 },
13
+ { match: /qwen/i, tokens: 128_000 },
14
+ { match: /llama-?3/i, tokens: 128_000 },
15
+ { match: /mistral|codestral/i, tokens: 128_000 },
16
+ { match: /grok/i, tokens: 128_000 },
17
+ ];
18
+ /**
19
+ * Context window for a model, or null when it is not known. Null is returned rather than a
20
+ * guess: a bar drawn against an invented denominator is worse than no bar.
21
+ */
22
+ export function contextWindowFor(model) {
23
+ const bare = model.split('/').at(-1) ?? model;
24
+ for (const { match, tokens } of CONTEXT_WINDOWS) {
25
+ if (match.test(bare))
26
+ return tokens;
27
+ }
28
+ return null;
29
+ }
30
+ const STATUS_FILE = path.join(os.homedir(), '.koneck', 'model-status.json');
31
+ const STATUS_TTL_MS = 30 * 60 * 1000;
32
+ export function readModelStatus() {
33
+ try {
34
+ const raw = JSON.parse(fs.readFileSync(STATUS_FILE, 'utf-8'));
35
+ return raw && typeof raw === 'object' ? raw : {};
36
+ }
37
+ catch {
38
+ return {};
39
+ }
40
+ }
41
+ export function writeModelStatus(all) {
42
+ try {
43
+ fs.mkdirSync(path.dirname(STATUS_FILE), { recursive: true });
44
+ fs.writeFileSync(STATUS_FILE, JSON.stringify(all, null, 2) + '\n', { mode: 0o600 });
45
+ }
46
+ catch { /* status is a convenience; failing to cache it is not worth an error */ }
47
+ }
48
+ /** A cached status, unless it has gone stale. */
49
+ export function cachedStatus(key) {
50
+ const s = readModelStatus()[key];
51
+ return s && Date.now() - s.checkedAt < STATUS_TTL_MS ? s : undefined;
52
+ }
53
+ export function recordStatus(key, state, detail) {
54
+ const all = readModelStatus();
55
+ all[key] = { model: key, state, checkedAt: Date.now(), ...(detail ? { detail } : {}) };
56
+ writeModelStatus(all);
57
+ }
58
+ /**
59
+ * Classifies what a provider said into a state a user can act on.
60
+ *
61
+ * Gateways report an exhausted account in several shapes — an HTTP 401 whose body mentions
62
+ * credits, or a perfectly successful completion whose *content* is "You have run out of
63
+ * credits". Both mean the same thing to somebody deciding which model to pick.
64
+ */
65
+ export function classifyResponse(status, text) {
66
+ const t = text.toLowerCase();
67
+ if (/run out of credits|no payment method|insufficient (?:credits|balance)|add funds|billing/.test(t))
68
+ return 'no-credit';
69
+ if (/not supported|no such model|unknown model|unsupported model/.test(t))
70
+ return 'unsupported';
71
+ if (/missing api key|requires a session cookie|unauthorized|invalid api key/.test(t))
72
+ return 'unauthorized';
73
+ if (/rate limit|quota|too many requests|anti-abuse|challenge failed/.test(t))
74
+ return 'limited';
75
+ if (status === 429)
76
+ return 'limited';
77
+ if (status === 401 || status === 403)
78
+ return 'unauthorized';
79
+ if (status !== undefined && status >= 400)
80
+ return 'unsupported';
81
+ return 'ok';
82
+ }
83
+ /** How a state reads in a list, kept short enough to sit beside a model name. */
84
+ export function stateLabel(state) {
85
+ switch (state) {
86
+ case 'ok': return 'ready';
87
+ case 'no-credit': return 'no credit';
88
+ case 'unauthorized': return 'no key';
89
+ case 'unsupported': return 'unsupported';
90
+ case 'limited': return 'limited';
91
+ default: return '';
92
+ }
93
+ }
94
+ /**
95
+ * A proportion drawn as a bar. Uses eighth-blocks so a value can move without the bar changing
96
+ * length, which keeps a column of them aligned.
97
+ */
98
+ export function bar(fraction, width = 28) {
99
+ const clamped = Math.max(0, Math.min(1, Number.isFinite(fraction) ? fraction : 0));
100
+ const eighths = Math.round(clamped * width * 8);
101
+ const full = Math.floor(eighths / 8);
102
+ const rest = eighths % 8;
103
+ const partial = rest === 0 ? '' : ['', '▏', '▎', '▍', '▌', '▋', '▊', '▉'][rest];
104
+ const filled = '█'.repeat(full) + partial;
105
+ return filled + '░'.repeat(Math.max(0, width - filled.length));
106
+ }
107
+ /** "1.2k", "18.4k", "200k", "1M", "204" — token counts as people quote them. */
108
+ export function humanTokens(n) {
109
+ // A trailing ".0" reads as spurious precision, so a round figure is written round.
110
+ const trim = (s) => s.replace(/\.0$/, '');
111
+ if (n >= 1_000_000)
112
+ return trim((n / 1_000_000).toFixed(1)) + 'M';
113
+ if (n >= 1_000)
114
+ return trim((n / 1_000).toFixed(1)) + 'k';
115
+ return String(n);
116
+ }
117
+ /** "2m 14s", "45s" — a duration at the precision anyone reads it. */
118
+ export function humanDuration(ms) {
119
+ const s = Math.round(ms / 1000);
120
+ if (s < 60)
121
+ return `${s}s`;
122
+ const m = Math.floor(s / 60);
123
+ if (m < 60)
124
+ return `${m}m ${s % 60}s`;
125
+ return `${Math.floor(m / 60)}h ${m % 60}m`;
126
+ }
127
+ /**
128
+ * Gateways signal a zero-cost model in the only place the OpenAI listing schema leaves them:
129
+ * the id. `:free` and `-free` are the two spellings in use.
130
+ */
131
+ export function looksFree(id) {
132
+ return /(?::|-)free$/i.test(id) || /\bfree\b/i.test(id.split('/').at(-1) ?? '');
133
+ }
134
+ /** Reads whatever a listing entry actually carries, without inventing the parts it omits. */
135
+ export function modelInfoFrom(raw, fallbackVendor) {
136
+ const id = String(raw['id'] ?? '');
137
+ const caps = (raw['capabilities'] ?? {});
138
+ const num = (v) => typeof v === 'number' && Number.isFinite(v) && v > 0 ? v : undefined;
139
+ const context = num(raw['context_length']) ?? num(raw['max_input_tokens']) ?? contextWindowFor(id) ?? undefined;
140
+ const maxOut = num(raw['max_output_tokens']);
141
+ const vendor = id.includes('/') ? id.split('/')[0] : String(raw['owned_by'] ?? fallbackVendor);
142
+ return {
143
+ id,
144
+ vendor,
145
+ free: looksFree(id),
146
+ ...(context !== undefined ? { contextLength: context } : {}),
147
+ ...(maxOut !== undefined ? { maxOutput: maxOut } : {}),
148
+ ...(typeof caps['tool_calling'] === 'boolean' ? { toolCalling: caps['tool_calling'] } : {}),
149
+ ...(typeof caps['reasoning'] === 'boolean' ? { reasoning: caps['reasoning'] } : {}),
150
+ };
151
+ }
152
+ /**
153
+ * Lines added and removed since a tree hash, straight from git.
154
+ *
155
+ * Counting edits as the agent makes them would drift — an edit later reverted, or a file written
156
+ * twice, would each be counted twice. Comparing two states cannot drift, because it ignores the
157
+ * journey between them.
158
+ *
159
+ * The comparison is tree against tree, never tree against the working directory. `git diff
160
+ * <tree>` consults the real index to decide which paths are tracked, so every untracked file the
161
+ * snapshot captured comes back as a deletion — which reported 2102 lines removed for a session
162
+ * that had changed nothing. Snapshotting both sides the same way removes the index from the
163
+ * question entirely.
164
+ */
165
+ export async function diffStatSince(cwd, baseTree) {
166
+ if (!baseTree)
167
+ return null;
168
+ const { snapshotTree } = await import('./checkpoint.js');
169
+ const nowTree = await snapshotTree(cwd);
170
+ if (!nowTree)
171
+ return null;
172
+ if (nowTree === baseTree)
173
+ return { added: 0, removed: 0, files: 0 };
174
+ const { execFile } = await import('child_process');
175
+ const { promisify } = await import('util');
176
+ const run = promisify(execFile);
177
+ try {
178
+ const { stdout } = await run('git', ['diff', '--numstat', baseTree, nowTree], { cwd, maxBuffer: 8 << 20 });
179
+ let added = 0, removed = 0, files = 0;
180
+ for (const line of stdout.split('\n')) {
181
+ const m = /^(\d+|-)\t(\d+|-)\t(.+)$/.exec(line.trim());
182
+ if (!m)
183
+ continue;
184
+ if (isAgentStatePath(m[3]))
185
+ continue; // KONECK's own journal is not the user's diff
186
+ files++;
187
+ if (m[1] !== '-')
188
+ added += Number(m[1]);
189
+ if (m[2] !== '-')
190
+ removed += Number(m[2]);
191
+ }
192
+ return { added, removed, files };
193
+ }
194
+ catch {
195
+ return null;
196
+ }
197
+ }
198
+ function isAgentStatePath(p) {
199
+ return p.startsWith('.koneck/') || p.startsWith('.git/');
200
+ }
201
+ //# sourceMappingURL=usage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"usage.js","sourceRoot":"","sources":["../src/usage.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "koneck",
3
- "version": "2.25.1",
3
+ "version": "2.25.3",
4
4
  "description": "Kinetically Orchestrated Neural Execution Engine for Code",
5
5
  "type": "module",
6
6
  "bin": {