estela 0.1.40 → 0.2.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 +45 -2
- package/dist/billing/assign.d.ts +45 -0
- package/dist/billing/assign.d.ts.map +1 -0
- package/dist/billing/assign.js +159 -0
- package/dist/billing/assign.js.map +1 -0
- package/dist/billing/assign.test.d.ts +2 -0
- package/dist/billing/assign.test.d.ts.map +1 -0
- package/dist/billing/assign.test.js +153 -0
- package/dist/billing/assign.test.js.map +1 -0
- package/dist/bin.js +23 -1
- package/dist/bin.js.map +1 -1
- package/dist/cli-import-recover.test.d.ts +2 -0
- package/dist/cli-import-recover.test.d.ts.map +1 -0
- package/dist/cli-import-recover.test.js +191 -0
- package/dist/cli-import-recover.test.js.map +1 -0
- package/dist/cli-quota.test.js +66 -1
- package/dist/cli-quota.test.js.map +1 -1
- package/dist/cli-statusline.test.d.ts +2 -0
- package/dist/cli-statusline.test.d.ts.map +1 -0
- package/dist/cli-statusline.test.js +333 -0
- package/dist/cli-statusline.test.js.map +1 -0
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +220 -57
- package/dist/cli.js.map +1 -1
- package/dist/db/store.d.ts +2 -0
- package/dist/db/store.d.ts.map +1 -1
- package/dist/db/store.js +24 -1
- package/dist/db/store.js.map +1 -1
- package/dist/demo.js +1 -1
- package/dist/i18n/en.d.ts.map +1 -1
- package/dist/i18n/en.js +39 -0
- package/dist/i18n/en.js.map +1 -1
- package/dist/metrics/quota.d.ts +44 -4
- package/dist/metrics/quota.d.ts.map +1 -1
- package/dist/metrics/quota.js +60 -14
- package/dist/metrics/quota.js.map +1 -1
- package/dist/metrics/quota.test.js +65 -2
- package/dist/metrics/quota.test.js.map +1 -1
- package/dist/project-of.d.ts +52 -0
- package/dist/project-of.d.ts.map +1 -0
- package/dist/project-of.js +124 -0
- package/dist/project-of.js.map +1 -0
- package/dist/project-of.test.d.ts +2 -0
- package/dist/project-of.test.d.ts.map +1 -0
- package/dist/project-of.test.js +203 -0
- package/dist/project-of.test.js.map +1 -0
- package/dist/quota.d.ts +10 -1
- package/dist/quota.d.ts.map +1 -1
- package/dist/quota.js +14 -20
- package/dist/quota.js.map +1 -1
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +10 -27
- package/dist/server.js.map +1 -1
- package/dist/statusline-cache.d.ts +35 -0
- package/dist/statusline-cache.d.ts.map +1 -0
- package/dist/statusline-cache.js +57 -0
- package/dist/statusline-cache.js.map +1 -0
- package/dist/statusline-install.d.ts +52 -0
- package/dist/statusline-install.d.ts.map +1 -0
- package/dist/statusline-install.js +115 -0
- package/dist/statusline-install.js.map +1 -0
- package/dist/statusline-run.d.ts +8 -0
- package/dist/statusline-run.d.ts.map +1 -0
- package/dist/statusline-run.js +256 -0
- package/dist/statusline-run.js.map +1 -0
- package/dist/statusline.d.ts +71 -0
- package/dist/statusline.d.ts.map +1 -0
- package/dist/statusline.js +139 -0
- package/dist/statusline.js.map +1 -0
- package/dist/statusline.test.d.ts +2 -0
- package/dist/statusline.test.d.ts.map +1 -0
- package/dist/statusline.test.js +197 -0
- package/dist/statusline.test.js.map +1 -0
- package/dist/watchers/claude.d.ts +11 -1
- package/dist/watchers/claude.d.ts.map +1 -1
- package/dist/watchers/claude.js +32 -15
- package/dist/watchers/claude.js.map +1 -1
- package/package.json +1 -1
|
@@ -164,7 +164,7 @@ const local = (y, m, d, h = 0, min = 0) => new Date(y, m - 1, d, h, min);
|
|
|
164
164
|
{ ...turnoGuardado("t2", null, "2026-10-07T10:05:00") },
|
|
165
165
|
]);
|
|
166
166
|
const filas = (0, quota_js_1.loadQuotaReport)(db, local(2026, 10, 7, 12)).agents[0].week.rows.map((x) => x.bucket);
|
|
167
|
-
strict_1.default.deepEqual(filas, [{ kind: "folder", folder: "notas" }, { kind: "none" }]);
|
|
167
|
+
strict_1.default.deepEqual(filas, [{ kind: "folder", folder: "notas", path: "/home/yo/notas" }, { kind: "none" }]);
|
|
168
168
|
}
|
|
169
169
|
finally {
|
|
170
170
|
db.close();
|
|
@@ -247,7 +247,7 @@ const semanal = (n) => Array.from({ length: n }, (_, i) => ({ at: (0, quota_js_2
|
|
|
247
247
|
});
|
|
248
248
|
const j = (0, quota_js_2.quotaToJson)(r);
|
|
249
249
|
strict_1.default.equal(j.windowIsEstimate, true);
|
|
250
|
-
strict_1.default.deepEqual(Object.keys(j.agents[0].week.projects[0]).sort(), ["cacheRead", "cacheWrite", "folder", "input", "output", "projectId", "projectName", "share", "total"]);
|
|
250
|
+
strict_1.default.deepEqual(Object.keys(j.agents[0].week.projects[0]).sort(), ["cacheRead", "cacheWrite", "folder", "input", "listCostMicroUsd", "output", "projectId", "projectName", "share", "total"]);
|
|
251
251
|
strict_1.default.equal(j.agents[0].week.projects[1]["projectId"], null);
|
|
252
252
|
strict_1.default.deepEqual(j.excluded, []);
|
|
253
253
|
strict_1.default.doesNotThrow(() => JSON.parse(JSON.stringify(j)));
|
|
@@ -259,4 +259,67 @@ function turnoGuardado(turnId, repoPath, at, cacheRead = 100) {
|
|
|
259
259
|
repoPath, branch: "main", tokens: tok(cacheRead), producerVersion: null,
|
|
260
260
|
};
|
|
261
261
|
}
|
|
262
|
+
// ── La ventana que dio Claude Code (resets_at) ──────────────────────────
|
|
263
|
+
(0, node_test_1.test)("con un resets_at de hace menos de 5 h, la ventana empieza 5 h antes del reinicio", () => {
|
|
264
|
+
const now = local(2026, 10, 7, 15, 0);
|
|
265
|
+
const w = (0, quota_js_2.officialWindow)({ resetsAt: local(2026, 10, 7, 17, 30), seenAt: local(2026, 10, 7, 14, 50) }, now);
|
|
266
|
+
strict_1.default.deepEqual(w, { start: local(2026, 10, 7, 12, 30), end: local(2026, 10, 7, 17, 30) });
|
|
267
|
+
});
|
|
268
|
+
(0, node_test_1.test)("un resets_at visto hace 5 h o más, o ya pasado, no vale: se estima", () => {
|
|
269
|
+
const now = local(2026, 10, 7, 15, 0);
|
|
270
|
+
strict_1.default.equal((0, quota_js_2.officialWindow)({ resetsAt: local(2026, 10, 7, 17, 0), seenAt: local(2026, 10, 7, 10, 0) }, now), null, "visto hace 5 h justas");
|
|
271
|
+
strict_1.default.equal((0, quota_js_2.officialWindow)({ resetsAt: local(2026, 10, 7, 14, 59), seenAt: local(2026, 10, 7, 14, 0) }, now), null, "el reinicio ya pasó: la ventana de ahora es otra que nadie ha visto");
|
|
272
|
+
strict_1.default.equal((0, quota_js_2.officialWindow)(null, now), null);
|
|
273
|
+
});
|
|
274
|
+
(0, node_test_1.test)("buildQuota usa la ventana oficial solo para Claude Code, y la marca como no estimada", () => {
|
|
275
|
+
const now = local(2026, 10, 7, 15, 0);
|
|
276
|
+
const r = (0, quota_js_2.buildQuota)({
|
|
277
|
+
turns: [
|
|
278
|
+
{ agent: "claude-code", at: local(2026, 10, 7, 12, 0), repoPath: "/a", tokens: tok(5) }, // antes de la ventana oficial
|
|
279
|
+
{ agent: "claude-code", at: local(2026, 10, 7, 13, 0), repoPath: "/a", tokens: tok(7) },
|
|
280
|
+
{ agent: "codex", at: local(2026, 10, 7, 14, 0), repoPath: "/a", tokens: tok(3) },
|
|
281
|
+
],
|
|
282
|
+
firstTurnAt: new Map(), now, bucketOf: porCarpeta,
|
|
283
|
+
claudeWindow: { start: local(2026, 10, 7, 12, 30), end: local(2026, 10, 7, 17, 30) },
|
|
284
|
+
});
|
|
285
|
+
const claude = r.agents.find((a) => a.agent === "claude-code");
|
|
286
|
+
const codex = r.agents.find((a) => a.agent === "codex");
|
|
287
|
+
strict_1.default.equal(claude.window.estimated, false);
|
|
288
|
+
strict_1.default.deepEqual(claude.window.start, local(2026, 10, 7, 12, 30));
|
|
289
|
+
strict_1.default.equal(claude.window.total.total, 7, "lo de antes del inicio oficial no entra");
|
|
290
|
+
strict_1.default.equal(codex.window.estimated, true, "Codex tiene su propia cuota: sigue estimada");
|
|
291
|
+
const j = (0, quota_js_2.quotaToJson)(r);
|
|
292
|
+
strict_1.default.equal(j.windowIsEstimate, true, "hay una ventana estimada (Codex)");
|
|
293
|
+
});
|
|
294
|
+
// ── --weighted ──────────────────────────────────────────────────────────
|
|
295
|
+
(0, node_test_1.test)("ponderado: el % sale del precio de lista de cada modelo, no de los tokens", () => {
|
|
296
|
+
const at = local(2026, 10, 7, 10);
|
|
297
|
+
const opus = { agent: "claude-code", at, repoPath: "/caro", model: "claude-opus-4-8",
|
|
298
|
+
tokens: { input: 0, output: 10_000, cacheRead: 0, cacheWrite5m: 0, cacheWrite1h: 0 } }; // 10k × 25 $/M = 0,25 $
|
|
299
|
+
const lectura = { agent: "claude-code", at, repoPath: "/barato", model: "claude-sonnet-4-6",
|
|
300
|
+
tokens: { input: 0, output: 0, cacheRead: 100_000, cacheWrite5m: 0, cacheWrite1h: 0 } }; // 100k × 3 $/M × 0,1 = 0,03 $
|
|
301
|
+
const desde = local(2026, 10, 7), hasta = local(2026, 10, 8);
|
|
302
|
+
const tokens = (0, quota_js_2.breakdown)([opus, lectura], desde, hasta, porCarpeta);
|
|
303
|
+
strict_1.default.equal(tokens.weighted, false);
|
|
304
|
+
strict_1.default.equal(tokens.rows[0].bucket.projectId, "/barato", "por tokens gana la caché");
|
|
305
|
+
const precio = (0, quota_js_2.breakdown)([opus, lectura], desde, hasta, porCarpeta, { weighted: true });
|
|
306
|
+
strict_1.default.equal(precio.weighted, true);
|
|
307
|
+
strict_1.default.ok(precio.listCost > 0);
|
|
308
|
+
const caro = precio.rows[0];
|
|
309
|
+
strict_1.default.equal(caro.bucket.projectId, "/caro", "por precio gana Opus: el orden se invierte");
|
|
310
|
+
strict_1.default.equal(caro.listCost, 250_000);
|
|
311
|
+
strict_1.default.equal(precio.rows[1].listCost, 30_000);
|
|
312
|
+
strict_1.default.equal(caro.share, 250_000 / 280_000);
|
|
313
|
+
// Mismos tokens en las dos: ponderar solo cambia el %, no las columnas.
|
|
314
|
+
strict_1.default.deepEqual(precio.total, tokens.total);
|
|
315
|
+
});
|
|
316
|
+
(0, node_test_1.test)("ponderado: un modelo sin precio cuenta como 0 y se cuenta aparte", () => {
|
|
317
|
+
const at = local(2026, 10, 7, 10);
|
|
318
|
+
const b = (0, quota_js_2.breakdown)([
|
|
319
|
+
{ agent: "claude-code", at, repoPath: "/a", model: "modelo-que-no-existe", tokens: tok(1000) },
|
|
320
|
+
{ agent: "claude-code", at, repoPath: "/b", model: "claude-sonnet-4-6", tokens: tok(10) },
|
|
321
|
+
], local(2026, 10, 7), local(2026, 10, 8), porCarpeta, { weighted: true });
|
|
322
|
+
strict_1.default.equal(b.unpriced, 1);
|
|
323
|
+
strict_1.default.equal(b.rows[0].share, 1, "todo el % es del único con precio");
|
|
324
|
+
});
|
|
262
325
|
//# sourceMappingURL=quota.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"quota.test.js","sourceRoot":"","sources":["../../src/metrics/quota.test.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"quota.test.js","sourceRoot":"","sources":["../../src/metrics/quota.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import type { DatabaseSync } from "node:sqlite";
|
|
2
|
+
/**
|
|
3
|
+
* A qué proyecto pertenece una carpeta de trabajo: lo comparten `estela quota`
|
|
4
|
+
* y `estela statusline`.
|
|
5
|
+
*
|
|
6
|
+
* El `cwd` de una sesión no siempre está dentro de la carpeta registrada:
|
|
7
|
+
* un worktree vive al lado del repositorio (`../web-feature`), y una sesión
|
|
8
|
+
* abierta en `repo/src` de un repo sin registrar se llamaba "src". Por eso,
|
|
9
|
+
* en este orden:
|
|
10
|
+
*
|
|
11
|
+
* 1. La carpeta tal cual contra los proyectos registrados (el prefijo más
|
|
12
|
+
* largo gana). Cubre `repo/src` y también un subproyecto registrado
|
|
13
|
+
* dentro de un monorepo (`repo/packages/x`), que resolviendo antes a la
|
|
14
|
+
* raíz git se perdería.
|
|
15
|
+
* 2. La raíz git — y si es un worktree, la del repositorio principal —
|
|
16
|
+
* contra los proyectos registrados.
|
|
17
|
+
* 3. Si nada coincide, "sin proyecto" con el nombre de la raíz git, nunca
|
|
18
|
+
* el de una subcarpeta. Fuera de git, la propia carpeta.
|
|
19
|
+
*/
|
|
20
|
+
export type Owner = {
|
|
21
|
+
readonly kind: "project";
|
|
22
|
+
readonly projectId: string;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* `path` agrupa (dos repos pueden llamarse igual); `name` es lo que se
|
|
26
|
+
* enseña; `inGit` dice si es la raíz de un repo o una carpeta suelta.
|
|
27
|
+
*/
|
|
28
|
+
| {
|
|
29
|
+
readonly kind: "folder";
|
|
30
|
+
readonly path: string;
|
|
31
|
+
readonly name: string;
|
|
32
|
+
readonly inGit: boolean;
|
|
33
|
+
} | {
|
|
34
|
+
readonly kind: "none";
|
|
35
|
+
};
|
|
36
|
+
/** Un resolvedor con caché: una semana tiene miles de turnos y pocas carpetas. */
|
|
37
|
+
export declare function ownerResolver(db: DatabaseSync): (dir: string | null) => Owner;
|
|
38
|
+
/** El nombre de una carpeta para enseñarlo: la última parte de la ruta. */
|
|
39
|
+
export declare function folderName(path: string): string;
|
|
40
|
+
/**
|
|
41
|
+
* La raíz del repositorio git que contiene `dir`, o null si no está en git.
|
|
42
|
+
*
|
|
43
|
+
* Se sube hasta encontrar `.git`. Si es una carpeta, esa es la raíz. Si es un
|
|
44
|
+
* fichero (`gitdir: …`), es un worktree o un submódulo: un worktree tiene un
|
|
45
|
+
* `commondir` que apunta al `.git` del repositorio principal, y la raíz es la
|
|
46
|
+
* de ese; un submódulo no lo tiene, y es su propio repositorio.
|
|
47
|
+
*
|
|
48
|
+
* Solo lee el disco, sin ejecutar git: se llama en cada evento de la status
|
|
49
|
+
* line. Si la carpeta ya no existe (un worktree borrado), sube igualmente.
|
|
50
|
+
*/
|
|
51
|
+
export declare function gitRoot(dir: string): string | null;
|
|
52
|
+
//# sourceMappingURL=project-of.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"project-of.d.ts","sourceRoot":"","sources":["../src/project-of.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAKhD;;;;;;;;;;;;;;;;;GAiBG;AAEH,MAAM,MAAM,KAAK,GACb;IAAE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IAAC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;CAAE;AAC1D;;;GAGG;GACD;IAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAA;CAAE,GAClG;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AAE9B,kFAAkF;AAClF,wBAAgB,aAAa,CAAC,EAAE,EAAE,YAAY,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,KAAK,KAAK,CAW7E;AAcD,2EAA2E;AAC3E,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE/C;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAiBlD"}
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.ownerResolver = ownerResolver;
|
|
37
|
+
exports.folderName = folderName;
|
|
38
|
+
exports.gitRoot = gitRoot;
|
|
39
|
+
const node_fs_1 = require("node:fs");
|
|
40
|
+
const node_path_1 = require("node:path");
|
|
41
|
+
const store = __importStar(require("./db/store.js"));
|
|
42
|
+
const paths_js_1 = require("./paths.js");
|
|
43
|
+
/** Un resolvedor con caché: una semana tiene miles de turnos y pocas carpetas. */
|
|
44
|
+
function ownerResolver(db) {
|
|
45
|
+
const cache = new Map();
|
|
46
|
+
return (dir) => {
|
|
47
|
+
if (!dir)
|
|
48
|
+
return { kind: "none" };
|
|
49
|
+
let owner = cache.get(dir);
|
|
50
|
+
if (!owner) {
|
|
51
|
+
owner = resolveOwner(db, dir);
|
|
52
|
+
cache.set(dir, owner);
|
|
53
|
+
}
|
|
54
|
+
return owner;
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
function resolveOwner(db, dir) {
|
|
58
|
+
const direct = store.projectForRepo(db, dir);
|
|
59
|
+
if (direct)
|
|
60
|
+
return { kind: "project", projectId: direct };
|
|
61
|
+
const root = gitRoot(dir);
|
|
62
|
+
if (root && root !== dir) {
|
|
63
|
+
const viaRoot = store.projectForRepo(db, root);
|
|
64
|
+
if (viaRoot)
|
|
65
|
+
return { kind: "project", projectId: viaRoot };
|
|
66
|
+
}
|
|
67
|
+
const path = root ?? (0, paths_js_1.normalizePath)(dir);
|
|
68
|
+
return { kind: "folder", path, name: folderName(path), inGit: root !== null };
|
|
69
|
+
}
|
|
70
|
+
/** El nombre de una carpeta para enseñarlo: la última parte de la ruta. */
|
|
71
|
+
function folderName(path) {
|
|
72
|
+
return (0, node_path_1.basename)(path.replace(/[\\/]+$/, "")) || path;
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* La raíz del repositorio git que contiene `dir`, o null si no está en git.
|
|
76
|
+
*
|
|
77
|
+
* Se sube hasta encontrar `.git`. Si es una carpeta, esa es la raíz. Si es un
|
|
78
|
+
* fichero (`gitdir: …`), es un worktree o un submódulo: un worktree tiene un
|
|
79
|
+
* `commondir` que apunta al `.git` del repositorio principal, y la raíz es la
|
|
80
|
+
* de ese; un submódulo no lo tiene, y es su propio repositorio.
|
|
81
|
+
*
|
|
82
|
+
* Solo lee el disco, sin ejecutar git: se llama en cada evento de la status
|
|
83
|
+
* line. Si la carpeta ya no existe (un worktree borrado), sube igualmente.
|
|
84
|
+
*/
|
|
85
|
+
function gitRoot(dir) {
|
|
86
|
+
// Una ruta relativa (o "~/…", como en la demo) se resolvería contra la
|
|
87
|
+
// carpeta desde la que se ejecuta Estela, y acabaría en el repo de quien la
|
|
88
|
+
// ejecuta. Los cwd de verdad son absolutos.
|
|
89
|
+
if (!(0, node_path_1.isAbsolute)(dir))
|
|
90
|
+
return null;
|
|
91
|
+
let d = (0, node_path_1.resolve)(dir);
|
|
92
|
+
for (;;) {
|
|
93
|
+
const dotGit = (0, node_path_1.join)(d, ".git");
|
|
94
|
+
try {
|
|
95
|
+
const st = (0, node_fs_1.statSync)(dotGit);
|
|
96
|
+
if (st.isDirectory())
|
|
97
|
+
return (0, paths_js_1.normalizePath)(d);
|
|
98
|
+
if (st.isFile())
|
|
99
|
+
return (0, paths_js_1.normalizePath)(worktreeMain(dotGit) ?? d);
|
|
100
|
+
}
|
|
101
|
+
catch { /* no hay .git aquí: se sube */ }
|
|
102
|
+
const parent = (0, node_path_1.dirname)(d);
|
|
103
|
+
if (parent === d)
|
|
104
|
+
return null;
|
|
105
|
+
d = parent;
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
/** La raíz del repositorio principal de un worktree, o null si no lo es. */
|
|
109
|
+
function worktreeMain(dotGitFile) {
|
|
110
|
+
try {
|
|
111
|
+
const m = /^gitdir:\s*(.+?)\s*$/m.exec((0, node_fs_1.readFileSync)(dotGitFile, "utf8"));
|
|
112
|
+
if (!m)
|
|
113
|
+
return null;
|
|
114
|
+
const gitdir = (0, node_path_1.isAbsolute)(m[1]) ? m[1] : (0, node_path_1.resolve)((0, node_path_1.dirname)(dotGitFile), m[1]);
|
|
115
|
+
const common = (0, node_fs_1.readFileSync)((0, node_path_1.join)(gitdir, "commondir"), "utf8").trim();
|
|
116
|
+
const commonDir = (0, node_path_1.isAbsolute)(common) ? common : (0, node_path_1.resolve)(gitdir, common);
|
|
117
|
+
// El .git del principal: su carpeta padre es la raíz del repositorio.
|
|
118
|
+
return (0, node_path_1.basename)(commonDir) === ".git" ? (0, node_path_1.dirname)(commonDir) : null;
|
|
119
|
+
}
|
|
120
|
+
catch {
|
|
121
|
+
return null;
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
//# sourceMappingURL=project-of.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"project-of.js","sourceRoot":"","sources":["../src/project-of.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"project-of.test.d.ts","sourceRoot":"","sources":["../src/project-of.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,203 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
36
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
37
|
+
};
|
|
38
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
+
const strict_1 = __importDefault(require("node:assert/strict"));
|
|
40
|
+
const node_child_process_1 = require("node:child_process");
|
|
41
|
+
const node_fs_1 = require("node:fs");
|
|
42
|
+
const node_os_1 = require("node:os");
|
|
43
|
+
const node_path_1 = require("node:path");
|
|
44
|
+
const node_test_1 = require("node:test");
|
|
45
|
+
const schema_js_1 = require("./db/schema.js");
|
|
46
|
+
const store = __importStar(require("./db/store.js"));
|
|
47
|
+
const quota_js_1 = require("./metrics/quota.js");
|
|
48
|
+
const quota_js_2 = require("./quota.js");
|
|
49
|
+
const paths_js_1 = require("./paths.js");
|
|
50
|
+
const project_of_js_1 = require("./project-of.js");
|
|
51
|
+
/**
|
|
52
|
+
* A qué proyecto va una sesión según su carpeta. El fallo de antes: una sesión
|
|
53
|
+
* en `repo/src` de un repo sin registrar salía como "src", y una en un
|
|
54
|
+
* worktree (que vive al lado del repo) no contaba para su proyecto.
|
|
55
|
+
*/
|
|
56
|
+
/** Un directorio temporal con la ruta real (en macOS /var es un enlace a /private/var). */
|
|
57
|
+
function tmp() {
|
|
58
|
+
return (0, node_fs_1.realpathSync)((0, node_fs_1.mkdtempSync)((0, node_path_1.join)((0, node_os_1.tmpdir)(), "estela-root-")));
|
|
59
|
+
}
|
|
60
|
+
/** Un repo de mentira: basta la carpeta .git, no hace falta git. */
|
|
61
|
+
function repo(base, name) {
|
|
62
|
+
const r = (0, node_path_1.join)(base, name);
|
|
63
|
+
(0, node_fs_1.mkdirSync)((0, node_path_1.join)(r, ".git", "worktrees"), { recursive: true });
|
|
64
|
+
(0, node_fs_1.mkdirSync)((0, node_path_1.join)(r, "src"), { recursive: true });
|
|
65
|
+
(0, node_fs_1.mkdirSync)((0, node_path_1.join)(r, "packages", "x", "src"), { recursive: true });
|
|
66
|
+
return r;
|
|
67
|
+
}
|
|
68
|
+
/** Un worktree como lo deja `git worktree add`: un fichero .git que apunta al principal. */
|
|
69
|
+
function worktree(main, at, name, relative = false) {
|
|
70
|
+
const meta = (0, node_path_1.join)(main, ".git", "worktrees", name);
|
|
71
|
+
(0, node_fs_1.mkdirSync)(meta, { recursive: true });
|
|
72
|
+
(0, node_fs_1.writeFileSync)((0, node_path_1.join)(meta, "commondir"), "../..\n");
|
|
73
|
+
(0, node_fs_1.mkdirSync)((0, node_path_1.join)(at, "lib"), { recursive: true });
|
|
74
|
+
const gitdir = relative ? (0, node_path_1.join)("..", "web", ".git", "worktrees", name) : meta;
|
|
75
|
+
(0, node_fs_1.writeFileSync)((0, node_path_1.join)(at, ".git"), `gitdir: ${gitdir}\n`);
|
|
76
|
+
return at;
|
|
77
|
+
}
|
|
78
|
+
const n = (p) => (0, paths_js_1.normalizePath)(p);
|
|
79
|
+
// ── gitRoot ─────────────────────────────────────────────────────────────
|
|
80
|
+
(0, node_test_1.test)("subcarpetas: repo/src y repo/packages/x llevan a la raíz del repo", () => {
|
|
81
|
+
const base = tmp();
|
|
82
|
+
const r = repo(base, "web");
|
|
83
|
+
strict_1.default.equal((0, project_of_js_1.gitRoot)(r), n(r));
|
|
84
|
+
strict_1.default.equal((0, project_of_js_1.gitRoot)((0, node_path_1.join)(r, "src")), n(r));
|
|
85
|
+
strict_1.default.equal((0, project_of_js_1.gitRoot)((0, node_path_1.join)(r, "packages", "x", "src")), n(r));
|
|
86
|
+
});
|
|
87
|
+
(0, node_test_1.test)("worktree: lleva al repositorio principal, con gitdir absoluto o relativo", () => {
|
|
88
|
+
const base = tmp();
|
|
89
|
+
const main = repo(base, "web");
|
|
90
|
+
const wt = worktree(main, (0, node_path_1.join)(base, "web-feature"), "web-feature");
|
|
91
|
+
strict_1.default.equal((0, project_of_js_1.gitRoot)(wt), n(main));
|
|
92
|
+
strict_1.default.equal((0, project_of_js_1.gitRoot)((0, node_path_1.join)(wt, "lib")), n(main));
|
|
93
|
+
const rel = worktree(main, (0, node_path_1.join)(base, "web-fix"), "web-fix", true);
|
|
94
|
+
strict_1.default.equal((0, project_of_js_1.gitRoot)(rel), n(main));
|
|
95
|
+
});
|
|
96
|
+
(0, node_test_1.test)("submódulo: un .git fichero sin commondir es su propio repositorio", () => {
|
|
97
|
+
const base = tmp();
|
|
98
|
+
const main = repo(base, "web");
|
|
99
|
+
const sub = (0, node_path_1.join)(main, "vendor", "lib");
|
|
100
|
+
(0, node_fs_1.mkdirSync)((0, node_path_1.join)(main, ".git", "modules", "lib"), { recursive: true });
|
|
101
|
+
(0, node_fs_1.mkdirSync)(sub, { recursive: true });
|
|
102
|
+
(0, node_fs_1.writeFileSync)((0, node_path_1.join)(sub, ".git"), `gitdir: ${(0, node_path_1.join)(main, ".git", "modules", "lib")}\n`);
|
|
103
|
+
strict_1.default.equal((0, project_of_js_1.gitRoot)(sub), n(sub));
|
|
104
|
+
});
|
|
105
|
+
(0, node_test_1.test)("fuera de git: null; y una carpeta que ya no existe no rompe nada", () => {
|
|
106
|
+
const base = tmp();
|
|
107
|
+
(0, node_fs_1.mkdirSync)((0, node_path_1.join)(base, "suelta"), { recursive: true });
|
|
108
|
+
strict_1.default.equal((0, project_of_js_1.gitRoot)((0, node_path_1.join)(base, "suelta")), null);
|
|
109
|
+
const r = repo(base, "web");
|
|
110
|
+
strict_1.default.equal((0, project_of_js_1.gitRoot)((0, node_path_1.join)(r, "borrada", "hace", "tiempo")), n(r), "sube aunque la carpeta no exista");
|
|
111
|
+
});
|
|
112
|
+
(0, node_test_1.test)("una ruta relativa o con ~ no busca raíz git: no puede caer en el repo de quien ejecuta", () => {
|
|
113
|
+
strict_1.default.equal((0, project_of_js_1.gitRoot)("~/code/web"), null);
|
|
114
|
+
strict_1.default.equal((0, project_of_js_1.gitRoot)("src"), null);
|
|
115
|
+
});
|
|
116
|
+
(0, node_test_1.test)("con git de verdad: un worktree creado con git worktree add", (t) => {
|
|
117
|
+
if ((0, node_child_process_1.spawnSync)("git", ["--version"]).status !== 0) {
|
|
118
|
+
t.skip("sin git");
|
|
119
|
+
return;
|
|
120
|
+
}
|
|
121
|
+
const base = tmp();
|
|
122
|
+
const main = (0, node_path_1.join)(base, "app");
|
|
123
|
+
const git = (...args) => {
|
|
124
|
+
const r = (0, node_child_process_1.spawnSync)("git", args, { cwd: main, encoding: "utf8" });
|
|
125
|
+
strict_1.default.equal(r.status, 0, r.stderr);
|
|
126
|
+
};
|
|
127
|
+
(0, node_fs_1.mkdirSync)(main);
|
|
128
|
+
git("init", "-q");
|
|
129
|
+
git("-c", "user.email=t@t", "-c", "user.name=t", "commit", "-q", "--allow-empty", "-m", "x");
|
|
130
|
+
git("worktree", "add", "-q", (0, node_path_1.join)(base, "app-feature"));
|
|
131
|
+
strict_1.default.equal((0, project_of_js_1.gitRoot)((0, node_path_1.join)(base, "app-feature")), n(main));
|
|
132
|
+
});
|
|
133
|
+
// ── A qué proyecto va ───────────────────────────────────────────────────
|
|
134
|
+
function base() {
|
|
135
|
+
const b = tmp();
|
|
136
|
+
const web = repo(b, "web");
|
|
137
|
+
const db = (0, schema_js_1.openDatabase)(":memory:");
|
|
138
|
+
store.upsertClient(db, { id: "c", name: "C", currency: "EUR" });
|
|
139
|
+
store.upsertProject(db, { id: "web", clientId: "c", name: "Web", repoPaths: [n(web)], billable: true,
|
|
140
|
+
roundingMinutes: 0, aiCostPolicy: "absorbed", kind: "client" });
|
|
141
|
+
return { b, web, db };
|
|
142
|
+
}
|
|
143
|
+
(0, node_test_1.test)("una sesión en una subcarpeta o en un worktree cuenta para el proyecto del repo", () => {
|
|
144
|
+
const { b, web, db } = base();
|
|
145
|
+
try {
|
|
146
|
+
const owner = (0, project_of_js_1.ownerResolver)(db);
|
|
147
|
+
const wt = worktree(web, (0, node_path_1.join)(b, "web-feature"), "web-feature");
|
|
148
|
+
for (const dir of [web, (0, node_path_1.join)(web, "src"), (0, node_path_1.join)(web, "packages", "x"), wt, (0, node_path_1.join)(wt, "lib")]) {
|
|
149
|
+
strict_1.default.deepEqual(owner(n(dir)), { kind: "project", projectId: "web" }, dir);
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
finally {
|
|
153
|
+
db.close();
|
|
154
|
+
}
|
|
155
|
+
});
|
|
156
|
+
(0, node_test_1.test)("un subproyecto registrado dentro del monorepo no se pierde al subir a la raíz", () => {
|
|
157
|
+
const { web, db } = base();
|
|
158
|
+
try {
|
|
159
|
+
store.upsertProject(db, { id: "x", clientId: "c", name: "X", repoPaths: [n((0, node_path_1.join)(web, "packages", "x"))],
|
|
160
|
+
billable: true, roundingMinutes: 0, aiCostPolicy: "absorbed", kind: "client" });
|
|
161
|
+
const owner = (0, project_of_js_1.ownerResolver)(db);
|
|
162
|
+
strict_1.default.deepEqual(owner(n((0, node_path_1.join)(web, "packages", "x", "src"))), { kind: "project", projectId: "x" });
|
|
163
|
+
strict_1.default.deepEqual(owner(n((0, node_path_1.join)(web, "src"))), { kind: "project", projectId: "web" });
|
|
164
|
+
}
|
|
165
|
+
finally {
|
|
166
|
+
db.close();
|
|
167
|
+
}
|
|
168
|
+
});
|
|
169
|
+
(0, node_test_1.test)("sin proyecto: el nombre de la raíz git, nunca el de una subcarpeta; fuera de git, la carpeta", () => {
|
|
170
|
+
const { b, db } = base();
|
|
171
|
+
try {
|
|
172
|
+
const otro = repo(b, "otro-repo");
|
|
173
|
+
const owner = (0, project_of_js_1.ownerResolver)(db);
|
|
174
|
+
strict_1.default.deepEqual(owner(n((0, node_path_1.join)(otro, "packages", "x", "src"))), { kind: "folder", path: n(otro), name: "otro-repo", inGit: true });
|
|
175
|
+
(0, node_fs_1.mkdirSync)((0, node_path_1.join)(b, "notas"));
|
|
176
|
+
strict_1.default.deepEqual(owner(n((0, node_path_1.join)(b, "notas"))), { kind: "folder", path: n((0, node_path_1.join)(b, "notas")), name: "notas", inGit: false });
|
|
177
|
+
}
|
|
178
|
+
finally {
|
|
179
|
+
db.close();
|
|
180
|
+
}
|
|
181
|
+
});
|
|
182
|
+
(0, node_test_1.test)("en quota, las subcarpetas de un repo sin registrar son una sola fila con su nombre", () => {
|
|
183
|
+
const { b, db } = base();
|
|
184
|
+
try {
|
|
185
|
+
const otro = repo(b, "otro-repo");
|
|
186
|
+
// Dentro de esta semana a cualquier hora, también un lunes a las 00:05.
|
|
187
|
+
const at = new Date(Math.max((0, quota_js_1.weekStart)(new Date()).getTime(), Date.now() - 10 * 60_000));
|
|
188
|
+
const turno = (id, cwd) => ({
|
|
189
|
+
agent: "claude-code", turnId: id, sessionId: "s", at, model: "claude-sonnet-4-6",
|
|
190
|
+
repoPath: n(cwd), branch: null, producerVersion: null,
|
|
191
|
+
tokens: { input: 0, output: 0, cacheRead: 100, cacheWrite5m: 0, cacheWrite1h: 0 },
|
|
192
|
+
});
|
|
193
|
+
store.saveTurns(db, [turno("a", (0, node_path_1.join)(otro, "src")), turno("b", (0, node_path_1.join)(otro, "packages", "x")), turno("c", otro)]);
|
|
194
|
+
const filas = (0, quota_js_2.loadQuotaReport)(db).agents[0].week.rows;
|
|
195
|
+
strict_1.default.equal(filas.length, 1);
|
|
196
|
+
strict_1.default.deepEqual(filas[0].bucket, { kind: "folder", folder: "otro-repo", path: n(otro) });
|
|
197
|
+
strict_1.default.equal(filas[0].usage.total, 300);
|
|
198
|
+
}
|
|
199
|
+
finally {
|
|
200
|
+
db.close();
|
|
201
|
+
}
|
|
202
|
+
});
|
|
203
|
+
//# sourceMappingURL=project-of.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"project-of.test.js","sourceRoot":"","sources":["../src/project-of.test.ts"],"names":[],"mappings":"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"}
|
package/dist/quota.d.ts
CHANGED
|
@@ -4,7 +4,16 @@ import { type QuotaReport } from "./metrics/quota.js";
|
|
|
4
4
|
* La cuota sobre la base: lo que comparten `estela quota` y el panel web.
|
|
5
5
|
* El cálculo vive en `metrics/quota.ts`; aquí solo se leen los datos.
|
|
6
6
|
*/
|
|
7
|
-
export
|
|
7
|
+
export interface QuotaLoadOptions {
|
|
8
|
+
/** % por precio de lista en vez de por tokens (`--weighted`). */
|
|
9
|
+
readonly weighted?: boolean;
|
|
10
|
+
/**
|
|
11
|
+
* La base de la que se lee, para encontrar al lado lo que guardó la status
|
|
12
|
+
* line (el `resets_at` de Claude Code). Sin ella, la ventana se estima.
|
|
13
|
+
*/
|
|
14
|
+
readonly dbPath?: string;
|
|
15
|
+
}
|
|
16
|
+
export declare function loadQuotaReport(db: DatabaseSync, now?: Date, options?: QuotaLoadOptions): QuotaReport;
|
|
8
17
|
/**
|
|
9
18
|
* Trae los turnos de esta semana antes de calcular.
|
|
10
19
|
*
|
package/dist/quota.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"quota.d.ts","sourceRoot":"","sources":["../src/quota.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"quota.d.ts","sourceRoot":"","sources":["../src/quota.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAGhD,OAAO,EAA4D,KAAK,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAKhH;;;GAGG;AAEH,MAAM,WAAW,gBAAgB;IAC/B,iEAAiE;IACjE,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAC5B;;;OAGG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,wBAAgB,eAAe,CAAC,EAAE,EAAE,YAAY,EAAE,GAAG,GAAE,IAAiB,EAAE,OAAO,GAAE,gBAAqB,GAAG,WAAW,CAsBrH;AAED;;;;;;;;GAQG;AACH,wBAAsB,iBAAiB,CAAC,EAAE,EAAE,YAAY,EAAE,KAAK,EAAE,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAGtF"}
|