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
|
@@ -0,0 +1,333 @@
|
|
|
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 shared_1 = require("@estela/shared");
|
|
46
|
+
const schema_js_1 = require("./db/schema.js");
|
|
47
|
+
const store = __importStar(require("./db/store.js"));
|
|
48
|
+
const statusline_js_1 = require("./statusline.js");
|
|
49
|
+
/**
|
|
50
|
+
* `estela statusline` como la ejecuta Claude Code: el JSON por stdin y la
|
|
51
|
+
* línea por stdout. Cada prueba con su HOME temporal: ni se lee ni se escribe
|
|
52
|
+
* nada de quien corre los tests.
|
|
53
|
+
*/
|
|
54
|
+
const BIN = (0, node_path_1.join)(__dirname, "bin.js");
|
|
55
|
+
function estela(home, args, input, env = {}) {
|
|
56
|
+
const t0 = performance.now();
|
|
57
|
+
const r = (0, node_child_process_1.spawnSync)(process.execPath, [BIN, ...args], {
|
|
58
|
+
encoding: "utf8", input: input ?? "",
|
|
59
|
+
env: { ...process.env, HOME: home, USERPROFILE: home, ESTELA_LANG: "es", COLUMNS: "", NO_COLOR: "",
|
|
60
|
+
CLAUDE_CONFIG_DIR: (0, node_path_1.join)(home, ".claude"), ...env },
|
|
61
|
+
});
|
|
62
|
+
return { code: r.status, out: r.stdout, err: r.stderr, ms: performance.now() - t0 };
|
|
63
|
+
}
|
|
64
|
+
function entorno() {
|
|
65
|
+
const home = (0, node_fs_1.mkdtempSync)((0, node_path_1.join)((0, node_os_1.tmpdir)(), "estela-sl-"));
|
|
66
|
+
const repo = (0, node_path_1.join)(home, "repos", "web");
|
|
67
|
+
(0, node_fs_1.mkdirSync)(repo, { recursive: true });
|
|
68
|
+
return { home, repo, db: (0, node_path_1.join)(home, ".estela", "estela.db") };
|
|
69
|
+
}
|
|
70
|
+
function proyecto(db, repo, kind = "client") {
|
|
71
|
+
(0, node_fs_1.mkdirSync)((0, node_path_1.join)(db, ".."), { recursive: true });
|
|
72
|
+
const conn = (0, schema_js_1.openDatabase)(db);
|
|
73
|
+
try {
|
|
74
|
+
store.upsertClient(conn, { id: "acme", name: "ACME", currency: "EUR" });
|
|
75
|
+
store.upsertProject(conn, { id: "web", clientId: "acme", name: "Web", repoPaths: [repo],
|
|
76
|
+
billable: true, roundingMinutes: 0, aiCostPolicy: "absorbed", kind });
|
|
77
|
+
}
|
|
78
|
+
finally {
|
|
79
|
+
conn.close();
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
/** Una línea de transcript de Claude Code, a `minutos` de ahora (hacia atrás). */
|
|
83
|
+
function linea(id, cwd, minutos, cacheRead = 1000) {
|
|
84
|
+
// Nunca antes de las 00:01 de hoy: el test no puede depender de la hora.
|
|
85
|
+
const hoy = new Date();
|
|
86
|
+
hoy.setHours(0, 1, 0, 0);
|
|
87
|
+
const at = new Date(Math.max(hoy.getTime(), Date.now() - minutos * 60_000));
|
|
88
|
+
return JSON.stringify({
|
|
89
|
+
type: "assistant", timestamp: at.toISOString(), cwd, gitBranch: "main", version: "2.1.238", sessionId: "s1",
|
|
90
|
+
message: { id, model: "claude-sonnet-4-6",
|
|
91
|
+
usage: { input_tokens: 10, output_tokens: 100, cache_read_input_tokens: cacheRead, cache_creation_input_tokens: 0 } },
|
|
92
|
+
}) + "\n";
|
|
93
|
+
}
|
|
94
|
+
function transcript(home) {
|
|
95
|
+
const dir = (0, node_path_1.join)(home, ".claude", "projects", "-repos-web");
|
|
96
|
+
(0, node_fs_1.mkdirSync)(dir, { recursive: true });
|
|
97
|
+
return (0, node_path_1.join)(dir, "sesion.jsonl");
|
|
98
|
+
}
|
|
99
|
+
const entrada = (dir, extra = {}) => JSON.stringify({ workspace: { current_dir: dir, project_dir: dir }, ...extra });
|
|
100
|
+
const nc = ["statusline", "--no-color"];
|
|
101
|
+
// ── Lo que se enseña ────────────────────────────────────────────────────
|
|
102
|
+
(0, node_test_1.test)("con rate_limits enseña los dos porcentajes; sin ellos, ninguno", () => {
|
|
103
|
+
const { home, repo, db } = entorno();
|
|
104
|
+
proyecto(db, repo);
|
|
105
|
+
const con = estela(home, nc, entrada(repo, {
|
|
106
|
+
rate_limits: { five_hour: { used_percentage: 62, resets_at: 1 }, seven_day: { used_percentage: 38, resets_at: 2 } },
|
|
107
|
+
}));
|
|
108
|
+
strict_1.default.equal(con.code, 0);
|
|
109
|
+
strict_1.default.match(con.out, /^estela · ACME › Web · hoy 0m · semana 38 % · 5 h 62 %\n$/);
|
|
110
|
+
const sin = estela(home, nc, entrada(repo));
|
|
111
|
+
strict_1.default.equal(sin.out, "estela · ACME › Web · hoy 0m\n");
|
|
112
|
+
});
|
|
113
|
+
(0, node_test_1.test)("un directorio sin proyecto de Estela", () => {
|
|
114
|
+
const { home, repo, db } = entorno();
|
|
115
|
+
proyecto(db, repo);
|
|
116
|
+
// Fuera de git: no hay nada que configurar ahí, así que sin pista.
|
|
117
|
+
const r = estela(home, nc, entrada((0, node_path_1.join)(home, "otro")));
|
|
118
|
+
strict_1.default.equal(r.out, "estela · sin proyecto\n");
|
|
119
|
+
});
|
|
120
|
+
(0, node_test_1.test)("un repo sin proyecto: su raíz, también desde una subcarpeta, con la pista de setup", () => {
|
|
121
|
+
const { home, repo, db } = entorno();
|
|
122
|
+
proyecto(db, repo);
|
|
123
|
+
const otro = (0, node_path_1.join)(home, "repos", "facturas");
|
|
124
|
+
(0, node_fs_1.mkdirSync)((0, node_path_1.join)(otro, ".git"), { recursive: true });
|
|
125
|
+
(0, node_fs_1.mkdirSync)((0, node_path_1.join)(otro, "src", "api"), { recursive: true });
|
|
126
|
+
strict_1.default.equal(estela(home, nc, entrada((0, node_path_1.join)(otro, "src", "api"))).out, "estela · facturas (sin proyecto) · estela setup\n");
|
|
127
|
+
});
|
|
128
|
+
(0, node_test_1.test)("sin base de Estela todavía: sin proyecto, y no se crea ninguna base", () => {
|
|
129
|
+
const { home, repo, db } = entorno();
|
|
130
|
+
const r = estela(home, nc, entrada(repo));
|
|
131
|
+
strict_1.default.equal(r.code, 0);
|
|
132
|
+
strict_1.default.equal(r.out, "estela · sin proyecto\n");
|
|
133
|
+
strict_1.default.ok(!(0, node_fs_1.existsSync)(db), "la status line no es quien empieza a guardar datos");
|
|
134
|
+
// Sin base pero dentro de un repo, se nombra igualmente.
|
|
135
|
+
(0, node_fs_1.mkdirSync)((0, node_path_1.join)(repo, ".git"));
|
|
136
|
+
strict_1.default.equal(estela(home, nc, entrada((0, node_path_1.join)(repo, "src"))).out, "estela · web (sin proyecto) · estela setup\n");
|
|
137
|
+
});
|
|
138
|
+
(0, node_test_1.test)("JSON inválido por stdin: imprime estela y sale con 0, sin trazas", () => {
|
|
139
|
+
const { home } = entorno();
|
|
140
|
+
for (const malo of ["esto no es json", "[1,2]", "{\"workspace\":"]) {
|
|
141
|
+
const r = estela(home, nc, malo);
|
|
142
|
+
strict_1.default.equal(r.code, 0, malo);
|
|
143
|
+
strict_1.default.equal(r.out, "estela\n", malo);
|
|
144
|
+
strict_1.default.equal(r.err, "", "ni por stderr");
|
|
145
|
+
}
|
|
146
|
+
});
|
|
147
|
+
(0, node_test_1.test)("una base corrupta tampoco rompe la línea", () => {
|
|
148
|
+
const { home, repo, db } = entorno();
|
|
149
|
+
(0, node_fs_1.mkdirSync)((0, node_path_1.join)(db, ".."), { recursive: true });
|
|
150
|
+
(0, node_fs_1.writeFileSync)(db, "esto no es una base sqlite");
|
|
151
|
+
const r = estela(home, nc, entrada(repo));
|
|
152
|
+
strict_1.default.equal(r.code, 0);
|
|
153
|
+
strict_1.default.equal(r.out, "estela\n");
|
|
154
|
+
});
|
|
155
|
+
(0, node_test_1.test)("se recorta a COLUMNS", () => {
|
|
156
|
+
const { home, repo, db } = entorno();
|
|
157
|
+
proyecto(db, repo);
|
|
158
|
+
const limites = { rate_limits: { five_hour: { used_percentage: 62 }, seven_day: { used_percentage: 38 } } };
|
|
159
|
+
const ancho = estela(home, nc, entrada(repo, limites), { COLUMNS: "200" }).out.trimEnd();
|
|
160
|
+
const estrecho = estela(home, nc, entrada(repo, limites), { COLUMNS: "30" }).out.trimEnd();
|
|
161
|
+
strict_1.default.match(ancho, /5 h 62 %$/);
|
|
162
|
+
strict_1.default.ok(estrecho.length <= 30, estrecho);
|
|
163
|
+
strict_1.default.ok(estrecho.startsWith("estela · "), estrecho);
|
|
164
|
+
});
|
|
165
|
+
(0, node_test_1.test)("con color: estela en el verde de la marca", () => {
|
|
166
|
+
const { home, repo, db } = entorno();
|
|
167
|
+
proyecto(db, repo);
|
|
168
|
+
const r = estela(home, ["statusline"], entrada(repo));
|
|
169
|
+
strict_1.default.ok(r.out.startsWith("\x1b[38;2;70;192;167mestela"), JSON.stringify(r.out));
|
|
170
|
+
strict_1.default.doesNotMatch(estela(home, ["statusline"], entrada(repo), { NO_COLOR: "1" }).out, /\x1b/);
|
|
171
|
+
});
|
|
172
|
+
// ── Lectura incremental y horas ─────────────────────────────────────────
|
|
173
|
+
(0, node_test_1.test)("las horas de hoy son exactamente las que guarda import para los mismos turnos", () => {
|
|
174
|
+
const { home, repo, db } = entorno();
|
|
175
|
+
proyecto(db, repo);
|
|
176
|
+
const file = transcript(home);
|
|
177
|
+
(0, node_fs_1.writeFileSync)(file, [50, 44, 38, 31, 25, 12, 6].map((m, i) => linea(`msg_${i}`, repo, m)).join(""));
|
|
178
|
+
const linea1 = estela(home, nc, entrada(repo, { transcript_path: file }));
|
|
179
|
+
const hoy = /hoy (\S+)/.exec(linea1.out)?.[1];
|
|
180
|
+
strict_1.default.ok(hoy && hoy !== "0m", linea1.out);
|
|
181
|
+
// Ahora el import de verdad sobre esos mismos transcripts.
|
|
182
|
+
const imp = estela(home, ["import", "--db", db]);
|
|
183
|
+
strict_1.default.equal(imp.code, 0, imp.out + imp.err);
|
|
184
|
+
const conn = (0, schema_js_1.openDatabase)(db);
|
|
185
|
+
try {
|
|
186
|
+
const medidas = store.getTimeEntries(conn, "web")
|
|
187
|
+
.filter((e) => e.source === "agent" && (0, shared_1.localDate)(e.startedAt) === (0, shared_1.localDate)(new Date()))
|
|
188
|
+
.reduce((s, e) => s + e.seconds, 0);
|
|
189
|
+
strict_1.default.equal(hoy, (0, statusline_js_1.compactDuration)(medidas), "la status line y el informe dan la misma cifra");
|
|
190
|
+
}
|
|
191
|
+
finally {
|
|
192
|
+
conn.close();
|
|
193
|
+
}
|
|
194
|
+
});
|
|
195
|
+
(0, node_test_1.test)("lee solo lo nuevo: una línea a medias no se pierde ni se duplica", () => {
|
|
196
|
+
const { home, repo, db } = entorno();
|
|
197
|
+
proyecto(db, repo);
|
|
198
|
+
const file = transcript(home);
|
|
199
|
+
const a = linea("msg_a", repo, 20, 1000);
|
|
200
|
+
const b = linea("msg_b", repo, 10, 2000);
|
|
201
|
+
// La segunda línea aún se está escribiendo: le falta el final.
|
|
202
|
+
(0, node_fs_1.writeFileSync)(file, a + b.slice(0, 40));
|
|
203
|
+
estela(home, nc, entrada(repo, { transcript_path: file }));
|
|
204
|
+
const contar = () => {
|
|
205
|
+
const c = (0, schema_js_1.openDatabase)(db);
|
|
206
|
+
try {
|
|
207
|
+
return store.turnsBetween(c, new Date(0), new Date(Date.now() + 60_000)).map((t) => t.turnId).sort();
|
|
208
|
+
}
|
|
209
|
+
finally {
|
|
210
|
+
c.close();
|
|
211
|
+
}
|
|
212
|
+
};
|
|
213
|
+
strict_1.default.deepEqual(contar(), ["msg_a"]);
|
|
214
|
+
(0, node_fs_1.appendFileSync)(file, b.slice(40));
|
|
215
|
+
estela(home, nc, entrada(repo, { transcript_path: file }));
|
|
216
|
+
estela(home, nc, entrada(repo, { transcript_path: file }));
|
|
217
|
+
strict_1.default.deepEqual(contar(), ["msg_a", "msg_b"], "la línea completada entra una vez");
|
|
218
|
+
// El mismo turno repetido en el transcript (Claude Code lo hace) cuenta una vez.
|
|
219
|
+
(0, node_fs_1.appendFileSync)(file, b);
|
|
220
|
+
const r = JSON.parse(estela(home, ["quota", "--db", db, "--no-refresh", "--json"]).out);
|
|
221
|
+
strict_1.default.equal(r.agents[0].week.total.total, 110 + 1000 + 110 + 2000);
|
|
222
|
+
});
|
|
223
|
+
(0, node_test_1.test)("caché vacía y transcript que encoge: se vuelve a leer desde el principio", () => {
|
|
224
|
+
const { home, repo, db } = entorno();
|
|
225
|
+
proyecto(db, repo);
|
|
226
|
+
const file = transcript(home);
|
|
227
|
+
(0, node_fs_1.writeFileSync)(file, linea("msg_1", repo, 20) + linea("msg_2", repo, 15));
|
|
228
|
+
estela(home, nc, entrada(repo, { transcript_path: file }));
|
|
229
|
+
(0, node_fs_1.writeFileSync)(file, linea("msg_3", repo, 5));
|
|
230
|
+
const r = estela(home, nc, entrada(repo, { transcript_path: file }));
|
|
231
|
+
strict_1.default.equal(r.code, 0);
|
|
232
|
+
const c = (0, schema_js_1.openDatabase)(db);
|
|
233
|
+
try {
|
|
234
|
+
strict_1.default.ok(store.turnsBetween(c, new Date(0), new Date(Date.now() + 60_000)).some((t) => t.turnId === "msg_3"));
|
|
235
|
+
}
|
|
236
|
+
finally {
|
|
237
|
+
c.close();
|
|
238
|
+
}
|
|
239
|
+
});
|
|
240
|
+
(0, node_test_1.test)("este proyecto: su parte de los tokens de Claude Code de la semana", () => {
|
|
241
|
+
const { home, repo, db } = entorno();
|
|
242
|
+
proyecto(db, repo);
|
|
243
|
+
const otro = (0, node_path_1.join)(home, "repos", "otro");
|
|
244
|
+
const file = transcript(home);
|
|
245
|
+
(0, node_fs_1.writeFileSync)(file, linea("m1", repo, 30, 2890) + linea("m2", otro, 20, 8890));
|
|
246
|
+
const r = estela(home, nc, entrada(repo, { transcript_path: file }));
|
|
247
|
+
// 3000 de 12000 tokens: el 25 %.
|
|
248
|
+
strict_1.default.match(r.out, /este proyecto 25 %/);
|
|
249
|
+
});
|
|
250
|
+
(0, node_test_1.test)("rápida: por debajo de 100 ms en una máquina normal", () => {
|
|
251
|
+
const { home, repo, db } = entorno();
|
|
252
|
+
proyecto(db, repo);
|
|
253
|
+
const file = transcript(home);
|
|
254
|
+
(0, node_fs_1.writeFileSync)(file, Array.from({ length: 300 }, (_, i) => linea(`p${i}`, repo, 300 - i)).join(""));
|
|
255
|
+
estela(home, nc, entrada(repo, { transcript_path: file })); // la primera lee el fichero entero
|
|
256
|
+
// El mejor de cinco: los tests corren en paralelo y comparten CPU, así que
|
|
257
|
+
// se mide con margen. La medida limpia, a mano, da unos 50 ms.
|
|
258
|
+
const mejor = Math.min(...Array.from({ length: 5 }, () => estela(home, nc, entrada(repo, { transcript_path: file })).ms));
|
|
259
|
+
strict_1.default.ok(mejor < 250, `${mejor.toFixed(0)} ms`);
|
|
260
|
+
});
|
|
261
|
+
// ── install / uninstall de verdad ───────────────────────────────────────
|
|
262
|
+
(0, node_test_1.test)("install fusiona en ~/.claude/settings.json con copia; uninstall lo deja como estaba", () => {
|
|
263
|
+
const { home } = entorno();
|
|
264
|
+
const dir = (0, node_path_1.join)(home, ".claude");
|
|
265
|
+
(0, node_fs_1.mkdirSync)(dir, { recursive: true });
|
|
266
|
+
const path = (0, node_path_1.join)(dir, "settings.json");
|
|
267
|
+
const original = JSON.stringify({ model: "opus", permissions: { allow: ["Bash(ls)"] } }, null, 2) + "\n";
|
|
268
|
+
(0, node_fs_1.writeFileSync)(path, original);
|
|
269
|
+
const i = estela(home, ["statusline", "install"]);
|
|
270
|
+
strict_1.default.equal(i.code, 0, i.out + i.err);
|
|
271
|
+
const tras = JSON.parse((0, node_fs_1.readFileSync)(path, "utf8"));
|
|
272
|
+
strict_1.default.deepEqual(tras["statusLine"], { type: "command", command: "estela statusline", padding: 0 });
|
|
273
|
+
strict_1.default.deepEqual(tras["permissions"], { allow: ["Bash(ls)"] });
|
|
274
|
+
const copias = (0, node_fs_1.readdirSync)(dir).filter((n) => n.startsWith("settings.json.bak-"));
|
|
275
|
+
strict_1.default.equal(copias.length, 1);
|
|
276
|
+
strict_1.default.equal((0, node_fs_1.readFileSync)((0, node_path_1.join)(dir, copias[0]), "utf8"), original, "la copia es el original");
|
|
277
|
+
const u = estela(home, ["statusline", "uninstall"]);
|
|
278
|
+
strict_1.default.equal(u.code, 0, u.out + u.err);
|
|
279
|
+
strict_1.default.deepEqual(JSON.parse((0, node_fs_1.readFileSync)(path, "utf8")), JSON.parse(original));
|
|
280
|
+
});
|
|
281
|
+
(0, node_test_1.test)("install con otra status line: la enseña, no escribe nada y sale con 1", () => {
|
|
282
|
+
const { home } = entorno();
|
|
283
|
+
const path = (0, node_path_1.join)(home, ".claude", "settings.json");
|
|
284
|
+
(0, node_fs_1.mkdirSync)((0, node_path_1.join)(home, ".claude"), { recursive: true });
|
|
285
|
+
const ajena = JSON.stringify({ statusLine: { type: "command", command: "ccstatusline" } });
|
|
286
|
+
(0, node_fs_1.writeFileSync)(path, ajena);
|
|
287
|
+
const r = estela(home, ["statusline", "install"]);
|
|
288
|
+
strict_1.default.equal(r.code, 1);
|
|
289
|
+
strict_1.default.match(r.out, /ccstatusline/);
|
|
290
|
+
strict_1.default.match(r.out, /--append/);
|
|
291
|
+
strict_1.default.match(r.out, /--force/);
|
|
292
|
+
strict_1.default.equal((0, node_fs_1.readFileSync)(path, "utf8"), ajena, "no se tocó");
|
|
293
|
+
});
|
|
294
|
+
(0, node_test_1.test)("--append ejecuta la otra con el mismo stdin y enseña las dos", () => {
|
|
295
|
+
const { home, repo, db } = entorno();
|
|
296
|
+
proyecto(db, repo);
|
|
297
|
+
const r = estela(home, ["statusline", "--no-color", "--append", "cat >/dev/null; echo otra linea"], entrada(repo));
|
|
298
|
+
strict_1.default.equal(r.out, "estela · ACME › Web · hoy 0m | otra linea\n");
|
|
299
|
+
});
|
|
300
|
+
(0, node_test_1.test)("un turno de scratchpad se devuelve a su repo; si no se puede, no se guarda", () => {
|
|
301
|
+
// Guardarlo con la ruta del scratchpad lo dejaría así para siempre: el
|
|
302
|
+
// `import`, que sí sabría devolverlo, ya no podría reescribirlo (INSERT OR IGNORE).
|
|
303
|
+
const { home, repo, db } = entorno();
|
|
304
|
+
proyecto(db, repo);
|
|
305
|
+
const slug = repo.replace(/[/_.]/g, "-");
|
|
306
|
+
const delRepo = `/private/tmp/claude-502/${slug}/sesion/scratchpad`;
|
|
307
|
+
const ajeno = "/private/tmp/claude-502/-otro-sitio/sesion/scratchpad";
|
|
308
|
+
const file = transcript(home);
|
|
309
|
+
(0, node_fs_1.writeFileSync)(file, linea("sp_ok", delRepo, 20) + linea("sp_no", ajeno, 10));
|
|
310
|
+
estela(home, nc, entrada(repo, { transcript_path: file }));
|
|
311
|
+
const c = (0, schema_js_1.openDatabase)(db);
|
|
312
|
+
try {
|
|
313
|
+
const guardados = store.turnsBetween(c, new Date(0), new Date(Date.now() + 60_000));
|
|
314
|
+
strict_1.default.deepEqual(guardados.map((t) => [t.turnId, t.repoPath]), [["sp_ok", repo]]);
|
|
315
|
+
}
|
|
316
|
+
finally {
|
|
317
|
+
c.close();
|
|
318
|
+
}
|
|
319
|
+
});
|
|
320
|
+
(0, node_test_1.test)("una sesión en un worktree o en una subcarpeta enseña el proyecto del repo", () => {
|
|
321
|
+
const { home, repo, db } = entorno();
|
|
322
|
+
(0, node_fs_1.mkdirSync)((0, node_path_1.join)(repo, ".git", "worktrees", "web-fix"), { recursive: true });
|
|
323
|
+
(0, node_fs_1.writeFileSync)((0, node_path_1.join)(repo, ".git", "worktrees", "web-fix", "commondir"), "../..\n");
|
|
324
|
+
const wt = (0, node_path_1.join)(home, "repos", "web-fix");
|
|
325
|
+
(0, node_fs_1.mkdirSync)((0, node_path_1.join)(wt, "src"), { recursive: true });
|
|
326
|
+
(0, node_fs_1.writeFileSync)((0, node_path_1.join)(wt, ".git"), `gitdir: ${(0, node_path_1.join)(repo, ".git", "worktrees", "web-fix")}\n`);
|
|
327
|
+
(0, node_fs_1.mkdirSync)((0, node_path_1.join)(repo, "packages", "api"), { recursive: true });
|
|
328
|
+
proyecto(db, repo);
|
|
329
|
+
for (const dir of [(0, node_path_1.join)(wt, "src"), (0, node_path_1.join)(repo, "packages", "api")]) {
|
|
330
|
+
strict_1.default.match(estela(home, nc, entrada(dir)).out, /^estela · ACME › Web · hoy/, dir);
|
|
331
|
+
}
|
|
332
|
+
});
|
|
333
|
+
//# sourceMappingURL=cli-statusline.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli-statusline.test.js","sourceRoot":"","sources":["../src/cli-statusline.test.ts"],"names":[],"mappings":"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"}
|
package/dist/cli.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AA8CA,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAyxEpD,OAAO,EAAE,eAAe,EAAE,CAAC"}
|