@nac3/forge-cli 1.23.7 → 1.24.1
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/chat/claude.d.ts +8 -0
- package/dist/chat/claude.d.ts.map +1 -1
- package/dist/chat/claude.js.map +1 -1
- package/dist/chat/claude_cli.d.ts +23 -0
- package/dist/chat/claude_cli.d.ts.map +1 -1
- package/dist/chat/claude_cli.js +76 -2
- package/dist/chat/claude_cli.js.map +1 -1
- package/dist/chat/doctrine_digest.d.ts.map +1 -1
- package/dist/chat/doctrine_digest.js +2 -1
- package/dist/chat/doctrine_digest.js.map +1 -1
- package/dist/chat/server.d.ts.map +1 -1
- package/dist/chat/server.js +11 -0
- package/dist/chat/server.js.map +1 -1
- package/dist/chat/tools/pending.d.ts +11 -0
- package/dist/chat/tools/pending.d.ts.map +1 -1
- package/dist/chat/tools/pending.js +55 -8
- package/dist/chat/tools/pending.js.map +1 -1
- package/dist/chat/tools/shell.d.ts +39 -4
- package/dist/chat/tools/shell.d.ts.map +1 -1
- package/dist/chat/tools/shell.js +167 -7
- package/dist/chat/tools/shell.js.map +1 -1
- package/dist/chat/tools/urazuke.d.ts.map +1 -1
- package/dist/chat/tools/urazuke.js +8 -5
- package/dist/chat/tools/urazuke.js.map +1 -1
- package/dist/chat/urazuke_section.d.ts +26 -4
- package/dist/chat/urazuke_section.d.ts.map +1 -1
- package/dist/chat/urazuke_section.js +115 -9
- package/dist/chat/urazuke_section.js.map +1 -1
- package/dist/commands/pending.d.ts.map +1 -1
- package/dist/commands/pending.js +116 -12
- package/dist/commands/pending.js.map +1 -1
- package/dist/commands/urazuke.d.ts +3 -0
- package/dist/commands/urazuke.d.ts.map +1 -1
- package/dist/commands/urazuke.js +80 -3
- package/dist/commands/urazuke.js.map +1 -1
- package/dist/core/ascii_purity.d.ts +69 -0
- package/dist/core/ascii_purity.d.ts.map +1 -0
- package/dist/core/ascii_purity.js +141 -0
- package/dist/core/ascii_purity.js.map +1 -0
- package/dist/core/battery_stamp.d.ts +111 -0
- package/dist/core/battery_stamp.d.ts.map +1 -0
- package/dist/core/battery_stamp.js +287 -0
- package/dist/core/battery_stamp.js.map +1 -0
- package/dist/core/ci_gaps.d.ts +130 -0
- package/dist/core/ci_gaps.d.ts.map +1 -0
- package/dist/core/ci_gaps.js +353 -0
- package/dist/core/ci_gaps.js.map +1 -0
- package/dist/core/doc_citations.d.ts +133 -0
- package/dist/core/doc_citations.d.ts.map +1 -0
- package/dist/core/doc_citations.js +271 -0
- package/dist/core/doc_citations.js.map +1 -0
- package/dist/core/hook_budget.d.ts +60 -0
- package/dist/core/hook_budget.d.ts.map +1 -0
- package/dist/core/hook_budget.js +163 -0
- package/dist/core/hook_budget.js.map +1 -0
- package/dist/docs/doctrine/urazuke.md +173 -2
- package/dist/nac3/internal_manifest.d.ts.map +1 -1
- package/dist/nac3/internal_manifest.js +28 -2
- package/dist/nac3/internal_manifest.js.map +1 -1
- package/dist/pending/store.d.ts +29 -0
- package/dist/pending/store.d.ts.map +1 -1
- package/dist/pending/store.js +51 -1
- package/dist/pending/store.js.map +1 -1
- package/dist/pending/types.d.ts +23 -0
- package/dist/pending/types.d.ts.map +1 -1
- package/dist/pending/types.js.map +1 -1
- package/dist/telemetry/usage.d.ts +18 -0
- package/dist/telemetry/usage.d.ts.map +1 -1
- package/dist/telemetry/usage.js +16 -1
- package/dist/telemetry/usage.js.map +1 -1
- package/dist/urazuke/announce.d.ts +7 -0
- package/dist/urazuke/announce.d.ts.map +1 -1
- package/dist/urazuke/announce.js +20 -0
- package/dist/urazuke/announce.js.map +1 -1
- package/dist/urazuke/catalog.d.ts +1 -1
- package/dist/urazuke/catalog.d.ts.map +1 -1
- package/dist/urazuke/catalog.js.map +1 -1
- package/dist/urazuke/close_gate.d.ts +31 -4
- package/dist/urazuke/close_gate.d.ts.map +1 -1
- package/dist/urazuke/close_gate.js +70 -13
- package/dist/urazuke/close_gate.js.map +1 -1
- package/dist/urazuke/current.d.ts +28 -0
- package/dist/urazuke/current.d.ts.map +1 -1
- package/dist/urazuke/current.js +18 -5
- package/dist/urazuke/current.js.map +1 -1
- package/dist/urazuke/cycle.d.ts +3 -0
- package/dist/urazuke/cycle.d.ts.map +1 -1
- package/dist/urazuke/cycle.js +5 -3
- package/dist/urazuke/cycle.js.map +1 -1
- package/dist/urazuke/evidence.d.ts +14 -1
- package/dist/urazuke/evidence.d.ts.map +1 -1
- package/dist/urazuke/evidence.js +88 -2
- package/dist/urazuke/evidence.js.map +1 -1
- package/dist/urazuke/evidence_env.d.ts +78 -0
- package/dist/urazuke/evidence_env.d.ts.map +1 -0
- package/dist/urazuke/evidence_env.js +341 -0
- package/dist/urazuke/evidence_env.js.map +1 -0
- package/dist/urazuke/freeze.d.ts.map +1 -1
- package/dist/urazuke/freeze.js +16 -9
- package/dist/urazuke/freeze.js.map +1 -1
- package/dist/urazuke/gate.d.ts +48 -0
- package/dist/urazuke/gate.d.ts.map +1 -1
- package/dist/urazuke/gate.js +251 -25
- package/dist/urazuke/gate.js.map +1 -1
- package/dist/urazuke/gates_data.d.ts +30 -3
- package/dist/urazuke/gates_data.d.ts.map +1 -1
- package/dist/urazuke/gates_data.js +51 -5
- package/dist/urazuke/gates_data.js.map +1 -1
- package/dist/urazuke/gates_pull.d.ts +40 -0
- package/dist/urazuke/gates_pull.d.ts.map +1 -1
- package/dist/urazuke/gates_pull.js +118 -8
- package/dist/urazuke/gates_pull.js.map +1 -1
- package/dist/urazuke/manual_cases.d.ts +11 -1
- package/dist/urazuke/manual_cases.d.ts.map +1 -1
- package/dist/urazuke/manual_cases.js +1 -0
- package/dist/urazuke/manual_cases.js.map +1 -1
- package/dist/urazuke/overrides.d.ts +107 -0
- package/dist/urazuke/overrides.d.ts.map +1 -0
- package/dist/urazuke/overrides.js +128 -0
- package/dist/urazuke/overrides.js.map +1 -0
- package/dist/urazuke/probes.d.ts.map +1 -1
- package/dist/urazuke/probes.js +51 -0
- package/dist/urazuke/probes.js.map +1 -1
- package/dist/urazuke/profiles.d.ts +135 -0
- package/dist/urazuke/profiles.d.ts.map +1 -0
- package/dist/urazuke/profiles.js +470 -0
- package/dist/urazuke/profiles.js.map +1 -0
- package/dist/urazuke/receipt_audit.d.ts +67 -0
- package/dist/urazuke/receipt_audit.d.ts.map +1 -0
- package/dist/urazuke/receipt_audit.js +103 -0
- package/dist/urazuke/receipt_audit.js.map +1 -0
- package/dist/urazuke/receipts.d.ts +22 -0
- package/dist/urazuke/receipts.d.ts.map +1 -1
- package/dist/urazuke/receipts.js +44 -0
- package/dist/urazuke/receipts.js.map +1 -1
- package/dist/urazuke/report.d.ts +30 -0
- package/dist/urazuke/report.d.ts.map +1 -1
- package/dist/urazuke/report.js +39 -0
- package/dist/urazuke/report.js.map +1 -1
- package/dist/urazuke/reset.d.ts +35 -0
- package/dist/urazuke/reset.d.ts.map +1 -0
- package/dist/urazuke/reset.js +150 -0
- package/dist/urazuke/reset.js.map +1 -0
- package/dist/urazuke/retro.d.ts +5 -1
- package/dist/urazuke/retro.d.ts.map +1 -1
- package/dist/urazuke/retro.js +21 -8
- package/dist/urazuke/retro.js.map +1 -1
- package/dist/urazuke/section.d.ts.map +1 -1
- package/dist/urazuke/section.js +17 -2
- package/dist/urazuke/section.js.map +1 -1
- package/dist/urazuke/semantics.d.ts +173 -0
- package/dist/urazuke/semantics.d.ts.map +1 -0
- package/dist/urazuke/semantics.js +232 -0
- package/dist/urazuke/semantics.js.map +1 -0
- package/dist/urazuke/start.d.ts +8 -0
- package/dist/urazuke/start.d.ts.map +1 -1
- package/dist/urazuke/start.js +10 -2
- package/dist/urazuke/start.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/dist/workflow/orchestrator.d.ts.map +1 -1
- package/dist/workflow/orchestrator.js +6 -7
- package/dist/workflow/orchestrator.js.map +1 -1
- package/docs/doctrine/urazuke.md +173 -2
- package/package.json +9 -2
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* AUDITORIA DE RECIBOS YA PRODUCIDOS -- F-02c (pedido del dueno,
|
|
3
|
+
* 2026-11-01, segunda vuelta).
|
|
4
|
+
*
|
|
5
|
+
* LA PREGUNTA. El defecto F-02c era el runner de evidencia spawneando por
|
|
6
|
+
* cmd.exe sin las dos guardas: un comando con un salto de linea salia VERDE
|
|
7
|
+
* habiendo corrido solo la primera linea, y uno por encima del tope de
|
|
8
|
+
* cmd.exe se truncaba. Arreglado. Queda saber si algun recibio YA PRODUCIDO
|
|
9
|
+
* paso por ese camino, porque si paso, hay retrabajo.
|
|
10
|
+
*
|
|
11
|
+
* Y LA PREGUNTA DE LA PREGUNTA, que es la que decide si el numero vale.
|
|
12
|
+
* Palabras del dueno: "una medicion que puede informar cero tiene que
|
|
13
|
+
* distinguir cero porque no hay de cero porque no mire". La marca que se
|
|
14
|
+
* busca es el COMANDO TEXTUAL guardado en el recibo. Entonces un cero sobre
|
|
15
|
+
* 821 recibos solo significa "no hay" si los 821 registran el comando. Los
|
|
16
|
+
* que no lo registran NO son limpios: son no auditables por esta via, y eso
|
|
17
|
+
* se informa como un numero propio.
|
|
18
|
+
*
|
|
19
|
+
* Por eso esto es un modulo con casos y no un grep: el numero va a un
|
|
20
|
+
* paper.
|
|
21
|
+
*
|
|
22
|
+
* ASCII-only.
|
|
23
|
+
*/
|
|
24
|
+
/** El tope de una linea de comando en cmd.exe, medido en esta maquina el
|
|
25
|
+
* 2026-11-01: 8150 caracteres pasan, 8180 fallan. El limite documentado
|
|
26
|
+
* por Microsoft es 8191 incluyendo el `cmd /c `. */
|
|
27
|
+
export const CMD_LINE_CEILING = 8150;
|
|
28
|
+
export function auditReceipts(stores) {
|
|
29
|
+
const rows = [];
|
|
30
|
+
const unreadable = [];
|
|
31
|
+
let total = 0;
|
|
32
|
+
for (const s of stores) {
|
|
33
|
+
if (s.error || !Array.isArray(s.items)) {
|
|
34
|
+
unreadable.push({ store: s.store, reason: s.error ?? 'sin lista de items' });
|
|
35
|
+
continue;
|
|
36
|
+
}
|
|
37
|
+
for (const item of s.items) {
|
|
38
|
+
total++;
|
|
39
|
+
const cmd = item['command'];
|
|
40
|
+
const hasCommand = typeof cmd === 'string' && cmd.length > 0;
|
|
41
|
+
const text = hasCommand ? cmd : '';
|
|
42
|
+
rows.push({
|
|
43
|
+
store: s.store,
|
|
44
|
+
id: typeof item['id'] === 'string' ? item['id'] : '(sin id)',
|
|
45
|
+
has_command: hasCommand,
|
|
46
|
+
multiline: hasCommand && /[\r\n]/.test(text),
|
|
47
|
+
over_ceiling: hasCommand && text.length > CMD_LINE_CEILING,
|
|
48
|
+
length: text.length,
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
const auditable = rows.filter((r) => r.has_command);
|
|
53
|
+
const longest = auditable.length
|
|
54
|
+
? auditable.reduce((a, b) => (b.length > a.length ? b : a))
|
|
55
|
+
: null;
|
|
56
|
+
return {
|
|
57
|
+
stores: stores.length,
|
|
58
|
+
total,
|
|
59
|
+
auditable: auditable.length,
|
|
60
|
+
not_auditable: rows.length - auditable.length,
|
|
61
|
+
multiline: rows.filter((r) => r.multiline),
|
|
62
|
+
over_ceiling: rows.filter((r) => r.over_ceiling),
|
|
63
|
+
longest,
|
|
64
|
+
unreadable,
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
export function renderReceiptAudit(r) {
|
|
68
|
+
const out = [];
|
|
69
|
+
out.push('recibos auditados: ' + r.total + ' en ' + r.stores + ' stores.');
|
|
70
|
+
out.push(' registran el comando (auditables por esta via): ' + r.auditable);
|
|
71
|
+
out.push(' NO registran el comando (no auditables): ' + r.not_auditable);
|
|
72
|
+
out.push('con salto de linea: ' + r.multiline.length
|
|
73
|
+
+ ' | por encima del tope de cmd.exe (' + CMD_LINE_CEILING + '): ' + r.over_ceiling.length);
|
|
74
|
+
for (const row of [...r.multiline, ...r.over_ceiling]) {
|
|
75
|
+
out.push(' ' + row.store + ' ' + row.id + ' (' + row.length + ' chars)');
|
|
76
|
+
}
|
|
77
|
+
if (r.longest) {
|
|
78
|
+
out.push('el comando mas largo encontrado: ' + r.longest.length + ' chars ('
|
|
79
|
+
+ r.longest.store + ' ' + r.longest.id + '), margen contra el tope: '
|
|
80
|
+
+ (CMD_LINE_CEILING - r.longest.length) + '.');
|
|
81
|
+
}
|
|
82
|
+
if (r.unreadable.length) {
|
|
83
|
+
out.push('STORES QUE NO SE PUDIERON LEER (' + r.unreadable.length + '):');
|
|
84
|
+
for (const u of r.unreadable)
|
|
85
|
+
out.push(' ' + u.store + ': ' + u.reason);
|
|
86
|
+
out.push('Un store ilegible NO cuenta como limpio.');
|
|
87
|
+
}
|
|
88
|
+
if (r.not_auditable === 0 && r.total > 0) {
|
|
89
|
+
out.push('');
|
|
90
|
+
out.push('Los ' + r.total + ' registran el comando, asi que un cero aca es');
|
|
91
|
+
out.push('"cero porque no hay" y no "cero porque no mire".');
|
|
92
|
+
}
|
|
93
|
+
else if (r.not_auditable > 0) {
|
|
94
|
+
out.push('');
|
|
95
|
+
out.push('ATENCION: ' + r.not_auditable + ' recibos no registran el comando. Sobre esos el');
|
|
96
|
+
out.push('cero es "cero porque no mire": la frase correcta es "ninguno de los '
|
|
97
|
+
+ r.auditable + ' que');
|
|
98
|
+
out.push('registran el comando paso por ahi, y hay ' + r.not_auditable + ' que no se pueden');
|
|
99
|
+
out.push('auditar por esta via".');
|
|
100
|
+
}
|
|
101
|
+
return out.join('\n');
|
|
102
|
+
}
|
|
103
|
+
//# sourceMappingURL=receipt_audit.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"receipt_audit.js","sourceRoot":"","sources":["../../src/urazuke/receipt_audit.ts"],"names":[],"mappings":"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"}
|
|
@@ -42,6 +42,18 @@ export interface Receipt {
|
|
|
42
42
|
/** The unified diff of the planted defect (mutation mode), bounded. The
|
|
43
43
|
* owner sees in the receipt that the mutant was not trivial. */
|
|
44
44
|
mutation_diff?: string;
|
|
45
|
+
/** F-13 -- what the evidence worktree got from the environment, and what
|
|
46
|
+
* it did NOT get. `absent` is the load-bearing field: while it has an
|
|
47
|
+
* entry, this receipt ran WITHOUT part of the project's environment, so
|
|
48
|
+
* its red cannot be certified as one that tells behaviour apart. Absent
|
|
49
|
+
* on a receipt written before 2026-11-01, and that reads as "nobody
|
|
50
|
+
* measured it", never as "the environment was complete". */
|
|
51
|
+
env?: {
|
|
52
|
+
carried?: string[];
|
|
53
|
+
declared_missing?: string[];
|
|
54
|
+
rejected?: string[];
|
|
55
|
+
absent?: string[];
|
|
56
|
+
};
|
|
45
57
|
/** The verdict Forge derived: for red_proof, failed > 0 and exit != 0;
|
|
46
58
|
* for green/regression/e2e, exit == 0 and failed == 0. */
|
|
47
59
|
verdict: 'ok' | 'not_ok';
|
|
@@ -133,6 +145,11 @@ export interface ReceiptSummary {
|
|
|
133
145
|
* no test counts were reported. Not a fault: a check script is legitimate
|
|
134
146
|
* evidence. Counted so the reader can tell the weight of what they have. */
|
|
135
147
|
exit_only: number;
|
|
148
|
+
/** F-13 -- reds that would have counted as strong but ran in a worktree
|
|
149
|
+
* missing part of the project's environment. Surfaced instead of
|
|
150
|
+
* dropped: a close gate that just says "no strong red" after the owner
|
|
151
|
+
* produced one is the silence the fix was for. */
|
|
152
|
+
env_incomplete_reds: number;
|
|
136
153
|
last_at?: number;
|
|
137
154
|
}
|
|
138
155
|
/** A red that tells behaviour apart (D-037): tests failed, or a mutant was
|
|
@@ -141,6 +158,11 @@ export interface ReceiptSummary {
|
|
|
141
158
|
* ship on its own. Uses the EFFECTIVE verdict and counts (re-derived, not
|
|
142
159
|
* the stored ones), same reason as summarizeReceipts below. */
|
|
143
160
|
export declare function isStrongRed(r: Receipt): boolean;
|
|
161
|
+
/** Un rojo que HABRIA sido fuerte si el worktree hubiera tenido el entorno
|
|
162
|
+
* completo. Se cuenta aparte para que la compuerta del cierre pueda decir
|
|
163
|
+
* el MOTIVO en vez de "falta un rojo fuerte": el dueno pidio explicitamente
|
|
164
|
+
* que el recibo diga por que, y la compuerta es donde se lee. */
|
|
165
|
+
export declare function isEnvIncompleteRed(r: Receipt): boolean;
|
|
144
166
|
/** Count the receipts whose EFFECTIVE verdict is ok, per kind (a not_ok
|
|
145
167
|
* receipt is evidence of the opposite; it never counts towards a step).
|
|
146
168
|
* Never filters by the stored `r.verdict`: that field is a write-time
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"receipts.d.ts","sourceRoot":"","sources":["../../src/urazuke/receipts.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"receipts.d.ts","sourceRoot":"","sources":["../../src/urazuke/receipts.ts"],"names":[],"mappings":"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"}
|
package/dist/urazuke/receipts.js
CHANGED
|
@@ -155,6 +155,35 @@ export async function appendReceipt(slug, input) {
|
|
|
155
155
|
export function isStrongRed(r) {
|
|
156
156
|
if (r.kind !== 'red_proof' || effectiveVerdict(r) !== 'ok')
|
|
157
157
|
return false;
|
|
158
|
+
/* F-13 -- UN ROJO CON EL ENTORNO INCOMPLETO NO ES UN ROJO FUERTE.
|
|
159
|
+
*
|
|
160
|
+
* Es la mitad que el dueno puso PRIMERO, y por que: un rojo que fallo por
|
|
161
|
+
* falta de entorno, aceptado como rojo fuerte, es lavado de evidencia --
|
|
162
|
+
* la compuerta del cierre lo cuenta como prueba de que la mutacion fue
|
|
163
|
+
* detectada, cuando lo unico que se detecto fue un archivo ausente. Ese
|
|
164
|
+
* recibo existe y fue medido (RCP-074 del experimento): salia con
|
|
165
|
+
* veredicto ok, con sus conteos de fallas y con su cola de salida, igual
|
|
166
|
+
* que un rojo bueno.
|
|
167
|
+
*
|
|
168
|
+
* No se afirma que el rojo FUE CAUSADO por el archivo ausente: eso no se
|
|
169
|
+
* puede medir. Se afirma que corrio con el entorno incompleto, que si se
|
|
170
|
+
* puede, y que alcanza para no certificarlo. El rojo sigue siendo un rojo
|
|
171
|
+
* (el veredicto no cambia); lo que no es, es evidencia de que la conducta
|
|
172
|
+
* se distinguio. */
|
|
173
|
+
if (r.env?.absent?.length)
|
|
174
|
+
return false;
|
|
175
|
+
const c = effectiveCounts(r);
|
|
176
|
+
return (c.failed ?? 0) > 0 || r.mode === 'mutation';
|
|
177
|
+
}
|
|
178
|
+
/** Un rojo que HABRIA sido fuerte si el worktree hubiera tenido el entorno
|
|
179
|
+
* completo. Se cuenta aparte para que la compuerta del cierre pueda decir
|
|
180
|
+
* el MOTIVO en vez de "falta un rojo fuerte": el dueno pidio explicitamente
|
|
181
|
+
* que el recibo diga por que, y la compuerta es donde se lee. */
|
|
182
|
+
export function isEnvIncompleteRed(r) {
|
|
183
|
+
if (r.kind !== 'red_proof' || effectiveVerdict(r) !== 'ok')
|
|
184
|
+
return false;
|
|
185
|
+
if (!r.env?.absent?.length)
|
|
186
|
+
return false;
|
|
158
187
|
const c = effectiveCounts(r);
|
|
159
188
|
return (c.failed ?? 0) > 0 || r.mode === 'mutation';
|
|
160
189
|
}
|
|
@@ -183,6 +212,7 @@ export function summarizeReceipts(items, filter = {}) {
|
|
|
183
212
|
false_reds: scoped.filter(isFalseRed).length,
|
|
184
213
|
empty_runs: scoped.filter(isEmptyRun).length,
|
|
185
214
|
exit_only: sel.filter((r) => POSITIVE_KINDS.has(r.kind) && exitOnlyEvidence(effectiveCounts(r))).length,
|
|
215
|
+
env_incomplete_reds: sel.filter(isEnvIncompleteRed).length,
|
|
186
216
|
...(last ? { last_at: last } : {}),
|
|
187
217
|
};
|
|
188
218
|
}
|
|
@@ -341,6 +371,20 @@ export function renderReceipt(r) {
|
|
|
341
371
|
...(isEmptyRun(r) ? [' WHY : the runner reported ZERO tests. The command succeeded at running nothing, so this is not evidence of anything. Check the test path or glob (a quoted glob does not expand in cmd.exe).'] : []),
|
|
342
372
|
...(verdict === 'ok' && POSITIVE_KINDS.has(r.kind) && exitOnlyEvidence(counts)
|
|
343
373
|
? [' weight : exit code only -- the command reported no test counts. Valid evidence for a check script, weaker than a suite.'] : []),
|
|
374
|
+
/* F-13 -- el recibo tiene que DECIR que corrio sin entorno. Sin esta
|
|
375
|
+
* linea el rojo descartado y el rojo debil se leen igual, y el dueno
|
|
376
|
+
* que produjo un rojo perfectamente bueno no sabe que le falto. */
|
|
377
|
+
...(r.env?.absent?.length
|
|
378
|
+
? [' env : INCOMPLETO -- al worktree le falto ' + r.env.absent.join(', ')
|
|
379
|
+
+ '. Este rojo NO cuenta como fuerte: corrio sin parte del entorno del proyecto,'
|
|
380
|
+
+ ' asi que no prueba que la conducta se distinguio. Declaralo en yujin.forge.json'
|
|
381
|
+
+ ' (urazuke.evidence_env.include) y volve a correrlo.'] : []),
|
|
382
|
+
...(r.env?.declared_missing?.length
|
|
383
|
+
? [' env : DECLARADO Y AUSENTE EN DISCO: ' + r.env.declared_missing.join(', ')] : []),
|
|
384
|
+
...(r.env?.rejected?.length
|
|
385
|
+
? [' env : RECHAZADO (tope o ruta): ' + r.env.rejected.join('; ')] : []),
|
|
386
|
+
...(r.env?.carried?.length
|
|
387
|
+
? [' env : acarreado al worktree: ' + r.env.carried.join(', ')] : []),
|
|
344
388
|
' ruleset : ' + renderStamp(r.ruleset),
|
|
345
389
|
' when : ' + new Date(r.started_at).toISOString() + ' (' + r.duration_ms + ' ms)',
|
|
346
390
|
].join('\n');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"receipts.js","sourceRoot":"","sources":["../../src/urazuke/receipts.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"receipts.js","sourceRoot":"","sources":["../../src/urazuke/receipts.ts"],"names":[],"mappings":"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"}
|
package/dist/urazuke/report.d.ts
CHANGED
|
@@ -19,5 +19,35 @@ export interface ReportInput {
|
|
|
19
19
|
functional?: string;
|
|
20
20
|
}
|
|
21
21
|
export declare function buildHonestReport(slug: string, item: PendingItem, input: ReportInput): Promise<PendingReport>;
|
|
22
|
+
/** RECOLECTAR EL INFORME DE UN ITEM YA CERRADO.
|
|
23
|
+
*
|
|
24
|
+
* POR QUE EXISTE (medido el 2026-11-01, punto 8 del dueno). El dueno pidio
|
|
25
|
+
* verificar con el mecanismo de evidencia el lote que arreglo el mecanismo
|
|
26
|
+
* de evidencia: tres pendientes cerrados con todo en BELIEVED porque la
|
|
27
|
+
* bateria se habia corrido con `vitest` y no por `yujin.evidence.run`. Los
|
|
28
|
+
* recibos se produjeron despues, quedaron en el registro con su
|
|
29
|
+
* `pending_id`... y el expediente siguio diciendo "creido, sin recibo".
|
|
30
|
+
* `buildHonestReport` se llamaba una sola vez, en el cierre, y
|
|
31
|
+
* `closePending` rechaza un item ya cerrado: no habia ninguna puerta por
|
|
32
|
+
* la que la evidencia posterior entrara.
|
|
33
|
+
*
|
|
34
|
+
* Un informe que no puede alcanzar al registro del que sale es una cita
|
|
35
|
+
* vencida con cara de vigente -- la misma familia que este lote persiguio
|
|
36
|
+
* en la prosa (F-14) y en los numeros de los comentarios. Asi que se
|
|
37
|
+
* recolecta, con tres limites:
|
|
38
|
+
*
|
|
39
|
+
* 1. Las DECLARACIONES no se vuelven a pedir: salen del expediente
|
|
40
|
+
* guardado (tests, use_cases, functional). Recolectar no es una
|
|
41
|
+
* oportunidad de reescribir lo que se declaro.
|
|
42
|
+
* 2. El veredicto lo sigue dando el registro de recibos. Recolectar
|
|
43
|
+
* puede EMPEORAR el informe (un recibo con veredicto no_ok aparece
|
|
44
|
+
* como punto ciego) y eso es correcto: es dato derivado, no un
|
|
45
|
+
* ascenso.
|
|
46
|
+
* 3. El cierre no se toca. Ver `setPendingReport`. */
|
|
47
|
+
export declare function recollectHonestReport(slug: string, id: string): Promise<{
|
|
48
|
+
before?: PendingReport;
|
|
49
|
+
after: PendingReport;
|
|
50
|
+
changed: boolean;
|
|
51
|
+
}>;
|
|
22
52
|
export declare function renderHonestReport(r: PendingReport): string;
|
|
23
53
|
//# sourceMappingURL=report.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"report.d.ts","sourceRoot":"","sources":["../../src/urazuke/report.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,OAAO,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AActE,MAAM,WAAW,WAAW;IAC1B,YAAY,CAAC,EAAE,OAAO,GAAG,KAAK,GAAG,SAAS,GAAG,MAAM,CAAC;IACpD,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,WAAW,GAAG,OAAO,CAAC,aAAa,CAAC,CAwCnH;AAED,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,aAAa,GAAG,MAAM,CAG3D"}
|
|
1
|
+
{"version":3,"file":"report.d.ts","sourceRoot":"","sources":["../../src/urazuke/report.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,OAAO,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AActE,MAAM,WAAW,WAAW;IAC1B,YAAY,CAAC,EAAE,OAAO,GAAG,KAAK,GAAG,SAAS,GAAG,MAAM,CAAC;IACpD,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,WAAW,GAAG,OAAO,CAAC,aAAa,CAAC,CAwCnH;AAED;;;;;;;;;;;;;;;;;;;;;;;;yDAwByD;AACzD,wBAAsB,qBAAqB,CACzC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GACvB,OAAO,CAAC;IAAE,MAAM,CAAC,EAAE,aAAa,CAAC;IAAC,KAAK,EAAE,aAAa,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,CAAC,CAY7E;AAED,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,aAAa,GAAG,MAAM,CAG3D"}
|
package/dist/urazuke/report.js
CHANGED
|
@@ -55,6 +55,45 @@ export async function buildHonestReport(slug, item, input) {
|
|
|
55
55
|
blind.push('the item has no spec (acceptance + how_verified): nothing to verify against');
|
|
56
56
|
return { verified, believed, blind_spots: blind, receipts: all.map((r) => r.id), built_at: Date.now() };
|
|
57
57
|
}
|
|
58
|
+
/** RECOLECTAR EL INFORME DE UN ITEM YA CERRADO.
|
|
59
|
+
*
|
|
60
|
+
* POR QUE EXISTE (medido el 2026-11-01, punto 8 del dueno). El dueno pidio
|
|
61
|
+
* verificar con el mecanismo de evidencia el lote que arreglo el mecanismo
|
|
62
|
+
* de evidencia: tres pendientes cerrados con todo en BELIEVED porque la
|
|
63
|
+
* bateria se habia corrido con `vitest` y no por `yujin.evidence.run`. Los
|
|
64
|
+
* recibos se produjeron despues, quedaron en el registro con su
|
|
65
|
+
* `pending_id`... y el expediente siguio diciendo "creido, sin recibo".
|
|
66
|
+
* `buildHonestReport` se llamaba una sola vez, en el cierre, y
|
|
67
|
+
* `closePending` rechaza un item ya cerrado: no habia ninguna puerta por
|
|
68
|
+
* la que la evidencia posterior entrara.
|
|
69
|
+
*
|
|
70
|
+
* Un informe que no puede alcanzar al registro del que sale es una cita
|
|
71
|
+
* vencida con cara de vigente -- la misma familia que este lote persiguio
|
|
72
|
+
* en la prosa (F-14) y en los numeros de los comentarios. Asi que se
|
|
73
|
+
* recolecta, con tres limites:
|
|
74
|
+
*
|
|
75
|
+
* 1. Las DECLARACIONES no se vuelven a pedir: salen del expediente
|
|
76
|
+
* guardado (tests, use_cases, functional). Recolectar no es una
|
|
77
|
+
* oportunidad de reescribir lo que se declaro.
|
|
78
|
+
* 2. El veredicto lo sigue dando el registro de recibos. Recolectar
|
|
79
|
+
* puede EMPEORAR el informe (un recibo con veredicto no_ok aparece
|
|
80
|
+
* como punto ciego) y eso es correcto: es dato derivado, no un
|
|
81
|
+
* ascenso.
|
|
82
|
+
* 3. El cierre no se toca. Ver `setPendingReport`. */
|
|
83
|
+
export async function recollectHonestReport(slug, id) {
|
|
84
|
+
const { findPending } = await import('../pending/store.js');
|
|
85
|
+
const item = await findPending(slug, id);
|
|
86
|
+
if (!item)
|
|
87
|
+
throw new Error('recollectHonestReport: no existe ' + id + ' en ' + slug);
|
|
88
|
+
const before = item.implementation?.report;
|
|
89
|
+
const after = await buildHonestReport(slug, item, {
|
|
90
|
+
...(item.implementation?.tests?.status ? { tests_status: item.implementation.tests.status } : {}),
|
|
91
|
+
...(item.implementation?.tests?.summary ? { tests_summary: item.implementation.tests.summary } : {}),
|
|
92
|
+
});
|
|
93
|
+
const key = (r) => r
|
|
94
|
+
? JSON.stringify([r.verified, r.believed, r.blind_spots, r.receipts]) : '';
|
|
95
|
+
return { ...(before ? { before } : {}), after, changed: key(before) !== key(after) };
|
|
96
|
+
}
|
|
58
97
|
export function renderHonestReport(r) {
|
|
59
98
|
const sec = (title, xs) => title + ' (' + xs.length + ')' + (xs.length ? '\n' + xs.map((x) => ' - ' + x).join('\n') : ' -- none');
|
|
60
99
|
return [sec('VERIFIED', r.verified), sec('BELIEVED', r.believed), sec('BLIND SPOTS', r.blind_spots)].join('\n');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"report.js","sourceRoot":"","sources":["../../src/urazuke/report.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"report.js","sourceRoot":"","sources":["../../src/urazuke/report.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
export interface ProjectStateHistory {
|
|
2
|
+
/** Hay estado de antes para este slug. */
|
|
3
|
+
has_history: boolean;
|
|
4
|
+
/** Archivos encontrados, ordenados. */
|
|
5
|
+
files: string[];
|
|
6
|
+
/** Items en el registro de pendientes (abiertos + cerrados). */
|
|
7
|
+
pendings: number;
|
|
8
|
+
/** Recibos de evidencia. */
|
|
9
|
+
receipts: number;
|
|
10
|
+
/** Hay un dimensionamiento registrado (el que contamino la corrida). */
|
|
11
|
+
sizing: boolean;
|
|
12
|
+
/** Instancias de workflow (escaleras incluidas). */
|
|
13
|
+
workflows: number;
|
|
14
|
+
/** El directorio, para poder nombrarlo en el aviso. */
|
|
15
|
+
dir: string;
|
|
16
|
+
}
|
|
17
|
+
export interface ResetResult {
|
|
18
|
+
ok: boolean;
|
|
19
|
+
reason: string;
|
|
20
|
+
/** Donde quedo lo anterior. Ausente cuando no habia nada que archivar. */
|
|
21
|
+
archived_to?: string;
|
|
22
|
+
/** Lo que no se pudo mover (un archivo tomado por otro proceso). Vacio
|
|
23
|
+
* en el camino normal; cuando no lo esta, el reset fue PARCIAL y el
|
|
24
|
+
* resultado lo dice en vez de dar por limpio lo que sigue ahi. */
|
|
25
|
+
left_behind?: string[];
|
|
26
|
+
}
|
|
27
|
+
/** Que quedo del slug de antes. Nunca tira: un registro ilegible se
|
|
28
|
+
* reporta como presente con cero items, que es la respuesta prudente --
|
|
29
|
+
* "hay algo aca y no lo entiendo" nunca puede salir como "no hay nada". */
|
|
30
|
+
export declare function projectStateHistory(slug: string): Promise<ProjectStateHistory>;
|
|
31
|
+
/** Una linea para el dueno. Devuelve '' cuando no hay nada que avisar. */
|
|
32
|
+
export declare function renderHistoryNotice(slug: string, h: ProjectStateHistory): string;
|
|
33
|
+
/** Mueve el estado del slug al archivo. */
|
|
34
|
+
export declare function resetProjectState(slug: string): Promise<ResetResult>;
|
|
35
|
+
//# sourceMappingURL=reset.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reset.d.ts","sourceRoot":"","sources":["../../src/urazuke/reset.ts"],"names":[],"mappings":"AAkCA,MAAM,WAAW,mBAAmB;IAClC,0CAA0C;IAC1C,WAAW,EAAE,OAAO,CAAC;IACrB,uCAAuC;IACvC,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,gEAAgE;IAChE,QAAQ,EAAE,MAAM,CAAC;IACjB,4BAA4B;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,wEAAwE;IACxE,MAAM,EAAE,OAAO,CAAC;IAChB,oDAAoD;IACpD,SAAS,EAAE,MAAM,CAAC;IAClB,uDAAuD;IACvD,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,OAAO,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,0EAA0E;IAC1E,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;uEAEmE;IACnE,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;CACxB;AAYD;;4EAE4E;AAC5E,wBAAsB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAsBpF;AAED,0EAA0E;AAC1E,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,mBAAmB,GAAG,MAAM,CAYhF;AAED,2CAA2C;AAC3C,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CA6C1E"}
|
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* EL ESTADO DEL PROYECTO SOBREVIVE AL WORKSPACE -- y eso hay que decirlo.
|
|
3
|
+
*
|
|
4
|
+
* F-08 del experimento Urazuke (2026-11-01). Todo el estado de un proyecto
|
|
5
|
+
* (pendientes, instancias de workflow, recibos, dimensionamiento, grafo,
|
|
6
|
+
* config del cerebro) vive en `~/.yujin-forge/projects/<slug>/`, FUERA del
|
|
7
|
+
* repositorio, indexado por slug. Eso es deliberado y es lo correcto: el
|
|
8
|
+
* registro no se pierde porque alguien hizo un `git clean`.
|
|
9
|
+
*
|
|
10
|
+
* Lo que no era correcto es que nadie lo dijera. En el experimento se vacio
|
|
11
|
+
* un workspace entero y el dimensionamiento de la corrida anterior seguia
|
|
12
|
+
* ahi: la corrida nueva heredo datos de la vieja SIN QUE SE VIERA. En un
|
|
13
|
+
* experimento eso es contaminacion -- invalida la medicion y nadie se
|
|
14
|
+
* entera --; en un proyecto normal es un estado fantasma que no se explica
|
|
15
|
+
* con nada que haya en el repositorio, y que por eso se diagnostica mal.
|
|
16
|
+
*
|
|
17
|
+
* Dos piezas, y las dos importan:
|
|
18
|
+
*
|
|
19
|
+
* - projectStateHistory(slug): que quedo de antes, con numeros. La usa el
|
|
20
|
+
* hint de arranque de la escalera para AVISAR en vez de heredar en
|
|
21
|
+
* silencio.
|
|
22
|
+
* - resetProjectState(slug): limpia el estado. ARCHIVA, no destruye: el
|
|
23
|
+
* estado anterior queda en `projects/.archived/<slug>-<fecha>/`, porque
|
|
24
|
+
* "la corrida anterior contamino esta" y "borrame tres meses de
|
|
25
|
+
* pendientes" se piden con el mismo comando y solo uno de los dos es
|
|
26
|
+
* recuperable si nos equivocamos.
|
|
27
|
+
*
|
|
28
|
+
* ASCII-only.
|
|
29
|
+
*/
|
|
30
|
+
import { promises as fs } from 'node:fs';
|
|
31
|
+
import path from 'node:path';
|
|
32
|
+
import { projectStateDir, projectsRootDir } from '../pending/store.js';
|
|
33
|
+
import { renameWithRetry } from '../core/atomic_write.js';
|
|
34
|
+
/** Cuantos items tiene un registro JSON con forma { items: [...] }. */
|
|
35
|
+
async function countItems(file) {
|
|
36
|
+
try {
|
|
37
|
+
const raw = await fs.readFile(file, 'utf-8');
|
|
38
|
+
const j = JSON.parse(raw);
|
|
39
|
+
const arr = Array.isArray(j.items) ? j.items : Array.isArray(j.instances) ? j.instances : [];
|
|
40
|
+
return arr.length;
|
|
41
|
+
}
|
|
42
|
+
catch {
|
|
43
|
+
return 0;
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
/** Que quedo del slug de antes. Nunca tira: un registro ilegible se
|
|
47
|
+
* reporta como presente con cero items, que es la respuesta prudente --
|
|
48
|
+
* "hay algo aca y no lo entiendo" nunca puede salir como "no hay nada". */
|
|
49
|
+
export async function projectStateHistory(slug) {
|
|
50
|
+
const empty = {
|
|
51
|
+
has_history: false, files: [], pendings: 0, receipts: 0, sizing: false, workflows: 0, dir: '',
|
|
52
|
+
};
|
|
53
|
+
let dir = '';
|
|
54
|
+
try {
|
|
55
|
+
dir = projectStateDir(slug);
|
|
56
|
+
}
|
|
57
|
+
catch {
|
|
58
|
+
return empty;
|
|
59
|
+
}
|
|
60
|
+
let names = [];
|
|
61
|
+
try {
|
|
62
|
+
names = (await fs.readdir(dir)).sort();
|
|
63
|
+
}
|
|
64
|
+
catch {
|
|
65
|
+
return { ...empty, dir };
|
|
66
|
+
}
|
|
67
|
+
/* Los respaldos (.bak) cuentan como historia: son exactamente el rastro
|
|
68
|
+
* de una corrida anterior. */
|
|
69
|
+
const files = names.filter((n) => !n.startsWith('.'));
|
|
70
|
+
return {
|
|
71
|
+
has_history: files.length > 0,
|
|
72
|
+
files,
|
|
73
|
+
pendings: files.includes('pending.json') ? await countItems(path.join(dir, 'pending.json')) : 0,
|
|
74
|
+
receipts: files.includes('receipts.json') ? await countItems(path.join(dir, 'receipts.json')) : 0,
|
|
75
|
+
sizing: files.includes('sizing.json'),
|
|
76
|
+
workflows: files.includes('workflow_instances.json') ? await countItems(path.join(dir, 'workflow_instances.json')) : 0,
|
|
77
|
+
dir,
|
|
78
|
+
};
|
|
79
|
+
}
|
|
80
|
+
/** Una linea para el dueno. Devuelve '' cuando no hay nada que avisar. */
|
|
81
|
+
export function renderHistoryNotice(slug, h) {
|
|
82
|
+
if (!h.has_history)
|
|
83
|
+
return '';
|
|
84
|
+
const bits = [];
|
|
85
|
+
if (h.pendings)
|
|
86
|
+
bits.push(h.pendings + ' pendientes');
|
|
87
|
+
if (h.receipts)
|
|
88
|
+
bits.push(h.receipts + ' recibos de evidencia');
|
|
89
|
+
if (h.workflows)
|
|
90
|
+
bits.push(h.workflows + ' workflows');
|
|
91
|
+
if (h.sizing)
|
|
92
|
+
bits.push('un dimensionamiento registrado');
|
|
93
|
+
if (!bits.length)
|
|
94
|
+
bits.push(h.files.length + ' archivos de estado');
|
|
95
|
+
return 'El slug "' + slug + '" YA TIENE historia de antes: ' + bits.join(', ')
|
|
96
|
+
+ '. Ese estado vive en ' + h.dir + ', fuera del repositorio, asi que vaciar el '
|
|
97
|
+
+ 'workspace no lo borra y esta corrida lo HEREDA. Si queres arrancar limpio: '
|
|
98
|
+
+ 'yf urazuke reset ' + slug + ' --yes (archiva, no destruye).';
|
|
99
|
+
}
|
|
100
|
+
/** Mueve el estado del slug al archivo. */
|
|
101
|
+
export async function resetProjectState(slug) {
|
|
102
|
+
const h = await projectStateHistory(slug);
|
|
103
|
+
if (!h.has_history) {
|
|
104
|
+
return { ok: true, reason: 'el slug "' + slug + '" esta sin estado: no hay nada que resetear' };
|
|
105
|
+
}
|
|
106
|
+
const stamp = new Date().toISOString().replace(/[:.]/g, '-');
|
|
107
|
+
const dest = path.join(projectsRootDir(), '.archived', slug + '-' + stamp);
|
|
108
|
+
await fs.mkdir(path.dirname(dest), { recursive: true });
|
|
109
|
+
/* Primero el rename, que es atomico y no copia bytes. Falla cuando otro
|
|
110
|
+
* proceso tiene un archivo del directorio abierto -- en Windows, el panel
|
|
111
|
+
* con semantic_graph.db -- y ahi se cae al camino de a uno, que puede
|
|
112
|
+
* dejar cosas atras y LO DICE. */
|
|
113
|
+
try {
|
|
114
|
+
/* renameWithRetry y no fs.rename: en Windows un rename sobre algo que
|
|
115
|
+
* otro proceso acaba de soltar devuelve EPERM por unos milisegundos, y
|
|
116
|
+
* el primitivo con reintento es la regla del repo (PND-197) justamente
|
|
117
|
+
* porque ese EPERM ya mato un `yf chat`. Aca la carpeta puede tener el
|
|
118
|
+
* SQLite del grafo abierto por el panel. */
|
|
119
|
+
await renameWithRetry(h.dir, dest);
|
|
120
|
+
return {
|
|
121
|
+
ok: true, archived_to: dest,
|
|
122
|
+
reason: 'estado de "' + slug + '" archivado en ' + dest + ' (' + h.files.length + ' archivos)',
|
|
123
|
+
};
|
|
124
|
+
}
|
|
125
|
+
catch { /* al camino de a uno */ }
|
|
126
|
+
await fs.mkdir(dest, { recursive: true });
|
|
127
|
+
const left = [];
|
|
128
|
+
for (const name of h.files) {
|
|
129
|
+
const from = path.join(h.dir, name);
|
|
130
|
+
const to = path.join(dest, name);
|
|
131
|
+
try {
|
|
132
|
+
await fs.cp(from, to, { recursive: true, force: true });
|
|
133
|
+
await fs.rm(from, { recursive: true, force: true });
|
|
134
|
+
}
|
|
135
|
+
catch {
|
|
136
|
+
left.push(name);
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
return {
|
|
140
|
+
ok: left.length === 0,
|
|
141
|
+
archived_to: dest,
|
|
142
|
+
...(left.length ? { left_behind: left } : {}),
|
|
143
|
+
reason: left.length
|
|
144
|
+
? 'reset PARCIAL de "' + slug + '": se archivo en ' + dest + ' pero quedaron '
|
|
145
|
+
+ left.length + ' archivo(s) sin mover (' + left.join(', ') + '); '
|
|
146
|
+
+ 'probablemente los tenga abiertos el panel -- cerralo y volve a correrlo'
|
|
147
|
+
: 'estado de "' + slug + '" archivado en ' + dest + ' (' + h.files.length + ' archivos)',
|
|
148
|
+
};
|
|
149
|
+
}
|
|
150
|
+
//# sourceMappingURL=reset.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reset.js","sourceRoot":"","sources":["../../src/urazuke/reset.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,OAAO,EAAE,QAAQ,IAAI,EAAE,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACvE,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AA8B1D,uEAAuE;AACvE,KAAK,UAAU,UAAU,CAAC,IAAY;IACpC,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAC7C,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAiD,CAAC;QAC1E,MAAM,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7F,OAAO,GAAG,CAAC,MAAM,CAAC;IACpB,CAAC;IAAC,MAAM,CAAC;QAAC,OAAO,CAAC,CAAC;IAAC,CAAC;AACvB,CAAC;AAED;;4EAE4E;AAC5E,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,IAAY;IACpD,MAAM,KAAK,GAAwB;QACjC,WAAW,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE;KAC9F,CAAC;IACF,IAAI,GAAG,GAAG,EAAE,CAAC;IACb,IAAI,CAAC;QAAC,GAAG,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC;IAAC,CAAC;IAAC,MAAM,CAAC;QAAC,OAAO,KAAK,CAAC;IAAC,CAAC;IAC5D,IAAI,KAAK,GAAa,EAAE,CAAC;IACzB,IAAI,CAAC;QACH,KAAK,GAAG,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IACzC,CAAC;IAAC,MAAM,CAAC;QAAC,OAAO,EAAE,GAAG,KAAK,EAAE,GAAG,EAAE,CAAC;IAAC,CAAC;IACrC;kCAC8B;IAC9B,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;IACtD,OAAO;QACL,WAAW,EAAE,KAAK,CAAC,MAAM,GAAG,CAAC;QAC7B,KAAK;QACL,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,MAAM,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/F,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,MAAM,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACjG,MAAM,EAAE,KAAK,CAAC,QAAQ,CAAC,aAAa,CAAC;QACrC,SAAS,EAAE,KAAK,CAAC,QAAQ,CAAC,yBAAyB,CAAC,CAAC,CAAC,CAAC,MAAM,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,yBAAyB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACtH,GAAG;KACJ,CAAC;AACJ,CAAC;AAED,0EAA0E;AAC1E,MAAM,UAAU,mBAAmB,CAAC,IAAY,EAAE,CAAsB;IACtE,IAAI,CAAC,CAAC,CAAC,WAAW;QAAE,OAAO,EAAE,CAAC;IAC9B,MAAM,IAAI,GAAa,EAAE,CAAC;IAC1B,IAAI,CAAC,CAAC,QAAQ;QAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,GAAG,aAAa,CAAC,CAAC;IACtD,IAAI,CAAC,CAAC,QAAQ;QAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,GAAG,uBAAuB,CAAC,CAAC;IAChE,IAAI,CAAC,CAAC,SAAS;QAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,GAAG,YAAY,CAAC,CAAC;IACvD,IAAI,CAAC,CAAC,MAAM;QAAE,IAAI,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC;IAC1D,IAAI,CAAC,IAAI,CAAC,MAAM;QAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,GAAG,qBAAqB,CAAC,CAAC;IACpE,OAAO,WAAW,GAAG,IAAI,GAAG,gCAAgC,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;UAC1E,uBAAuB,GAAG,CAAC,CAAC,GAAG,GAAG,6CAA6C;UAC/E,6EAA6E;UAC7E,mBAAmB,GAAG,IAAI,GAAG,gCAAgC,CAAC;AACpE,CAAC;AAED,2CAA2C;AAC3C,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,IAAY;IAClD,MAAM,CAAC,GAAG,MAAM,mBAAmB,CAAC,IAAI,CAAC,CAAC;IAC1C,IAAI,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;QACnB,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,GAAG,IAAI,GAAG,6CAA6C,EAAE,CAAC;IAClG,CAAC;IACD,MAAM,KAAK,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;IAC7D,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,EAAE,WAAW,EAAE,IAAI,GAAG,GAAG,GAAG,KAAK,CAAC,CAAC;IAC3E,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACxD;;;sCAGkC;IAClC,IAAI,CAAC;QACH;;;;oDAI4C;QAC5C,MAAM,eAAe,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QACnC,OAAO;YACL,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI;YAC3B,MAAM,EAAE,aAAa,GAAG,IAAI,GAAG,iBAAiB,GAAG,IAAI,GAAG,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,MAAM,GAAG,YAAY;SAC/F,CAAC;IACJ,CAAC;IAAC,MAAM,CAAC,CAAC,wBAAwB,CAAC,CAAC;IAEpC,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC1C,MAAM,IAAI,GAAa,EAAE,CAAC;IAC1B,KAAK,MAAM,IAAI,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC;QAC3B,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QACpC,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QACjC,IAAI,CAAC;YACH,MAAM,EAAE,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YACxD,MAAM,EAAE,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QACtD,CAAC;QAAC,MAAM,CAAC;YAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAAC,CAAC;IAC9B,CAAC;IACD,OAAO;QACL,EAAE,EAAE,IAAI,CAAC,MAAM,KAAK,CAAC;QACrB,WAAW,EAAE,IAAI;QACjB,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7C,MAAM,EAAE,IAAI,CAAC,MAAM;YACjB,CAAC,CAAC,oBAAoB,GAAG,IAAI,GAAG,mBAAmB,GAAG,IAAI,GAAG,iBAAiB;kBAC1E,IAAI,CAAC,MAAM,GAAG,yBAAyB,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,KAAK;kBACjE,yEAAyE;YAC7E,CAAC,CAAC,aAAa,GAAG,IAAI,GAAG,iBAAiB,GAAG,IAAI,GAAG,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,MAAM,GAAG,YAAY;KAC3F,CAAC;AACJ,CAAC"}
|
package/dist/urazuke/retro.d.ts
CHANGED
|
@@ -20,10 +20,14 @@ export interface RetroNumbers {
|
|
|
20
20
|
quality: number;
|
|
21
21
|
mutation: number;
|
|
22
22
|
false_reds: number;
|
|
23
|
+
env_incomplete_reds: number;
|
|
23
24
|
not_ok: number;
|
|
24
25
|
total: number;
|
|
25
26
|
};
|
|
26
|
-
|
|
27
|
+
/** M-02: por tipo del catalogo, por compuerta salteada, y los anteriores
|
|
28
|
+
* al tipo en su propia fila. Un total suelto no contesta ninguna
|
|
29
|
+
* pregunta. */
|
|
30
|
+
overrides: import('./overrides.js').OverrideCounts;
|
|
27
31
|
ladder: {
|
|
28
32
|
closed: number;
|
|
29
33
|
green: number;
|