chofex-cli 0.1.191 → 0.1.192
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/index.js +18 -45
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -60238,31 +60238,17 @@ var challengeTestText = (result3) => {
|
|
|
60238
60238
|
`);
|
|
60239
60239
|
};
|
|
60240
60240
|
var challengeEvaluateText = (result3) => {
|
|
60241
|
-
if (result3.
|
|
60242
|
-
const executionCost = result3.executionCost ?? result3.runtimeMs;
|
|
60243
|
-
const capabilityLines = [
|
|
60244
|
-
["Comportamiento base", result3.breakdown.coreBehavior],
|
|
60245
|
-
["Persistencia", result3.breakdown.persistence],
|
|
60246
|
-
["Concurrencia", result3.breakdown.concurrency],
|
|
60247
|
-
["Recuperación", result3.breakdown.failureRecovery],
|
|
60248
|
-
["Idempotencia", result3.breakdown.idempotency],
|
|
60249
|
-
["Sin regresiones", result3.breakdown.regressionSafety],
|
|
60250
|
-
["Rendimiento", result3.breakdown.performance]
|
|
60251
|
-
];
|
|
60241
|
+
if (result3.rankingPath === "/challenges/broken-agent") {
|
|
60252
60242
|
const lines3 = [
|
|
60253
60243
|
"VEREDICTO OFICIAL — BROKEN AGENT — PREPARACIÓN PARA PRODUCCIÓN",
|
|
60254
|
-
`Puntaje ${(result3.accuracy * 100).toFixed(2)} / ${result3.sampleSize}
|
|
60255
|
-
`Costo determinístico ${executionCost} ops`,
|
|
60256
|
-
"",
|
|
60257
|
-
"Puntajes por capacidad",
|
|
60258
|
-
...capabilityLines.map(([label, score]) => `${label.padEnd(20)}${score.earned.toFixed(2)} / ${score.available}`)
|
|
60244
|
+
`Puntaje ${(result3.accuracy * 100).toFixed(2)} / ${result3.sampleSize}`
|
|
60259
60245
|
];
|
|
60260
60246
|
if (result3.rank !== undefined) {
|
|
60261
60247
|
lines3.push(`Puesto #${result3.rank}`);
|
|
60262
60248
|
}
|
|
60263
60249
|
lines3.push(`Evaluaciones oficiales restantes ${result3.evaluationsRemaining} / ${result3.evaluationsLimit}`, "", result3.shareText, "", "Siguiente: consulta el ranking", " chofex challenge ranking --challenge broken-agent");
|
|
60264
60250
|
if (result3.evaluationsRemaining > 0) {
|
|
60265
|
-
lines3.push("", "El
|
|
60251
|
+
lines3.push("", "El veredicto es un solo puntaje. No dice qué caso falló. Razona antes de volver a enviar.", " chofex challenge test --challenge broken-agent --source ./scheduler.js");
|
|
60266
60252
|
}
|
|
60267
60253
|
return lines3.join(`
|
|
60268
60254
|
`);
|
|
@@ -60298,16 +60284,14 @@ var challengeRankingText = (ranking, now3 = new Date) => {
|
|
|
60298
60284
|
`);
|
|
60299
60285
|
}
|
|
60300
60286
|
if (ranking.challenge.slug === "broken-agent") {
|
|
60301
|
-
lines2.push("Psto Puntaje Puntos
|
|
60287
|
+
lines2.push("Psto Puntaje Puntos Nombre");
|
|
60302
60288
|
for (const entry of ranking.entries.slice(0, 20)) {
|
|
60303
60289
|
const rank = String(entry.rank).padStart(4, " ");
|
|
60304
60290
|
const accuracy = percent(entry.accuracy).padStart(8, " ");
|
|
60305
60291
|
const points = `${entry.exactCount}/${entry.sampleSize}`.padStart(11, " ");
|
|
60306
|
-
const executionCost = entry.executionCost ?? entry.runtimeMs;
|
|
60307
|
-
const runtime = `${executionCost}ops`.padStart(8, " ");
|
|
60308
60292
|
const profileLinks = [entry.githubUrl, entry.linkedInUrl].filter(Boolean);
|
|
60309
60293
|
const participant = [entry.displayName, ...profileLinks].join(" ");
|
|
60310
|
-
lines2.push(`${rank} ${accuracy} ${points} ${
|
|
60294
|
+
lines2.push(`${rank} ${accuracy} ${points} ${participant}`);
|
|
60311
60295
|
}
|
|
60312
60296
|
return lines2.join(`
|
|
60313
60297
|
`);
|
|
@@ -60619,13 +60603,13 @@ aprobación nueva; la sesión OAuth del CLI no puede aprobarla.
|
|
|
60619
60603
|
- El store sobrevive nuevas instancias del scheduler y reinicios del proceso.
|
|
60620
60604
|
- Varios workers, incluso instancias que reutilizan un \`workerId\` después de
|
|
60621
60605
|
reiniciar, pueden llamar \`runDue()\` contra el mismo store.
|
|
60622
|
-
- \`runDue()\`
|
|
60623
|
-
|
|
60624
|
-
- Cada ejecución debe reclamarse atómicamente
|
|
60625
|
-
|
|
60626
|
-
|
|
60627
|
-
|
|
60628
|
-
|
|
60606
|
+
- \`runDue()\` reclama un job antes de llamar al executor. Un job que falla
|
|
60607
|
+
queda pendiente para una llamada posterior y no bloquea otros jobs.
|
|
60608
|
+
- Cada ejecución debe reclamarse atómicamente. El claim dura 30 segundos.
|
|
60609
|
+
Cuando \`clock.now()\` alcanza ese deadline, otro worker puede reclamar el
|
|
60610
|
+
job. Un worker que ya no es dueño del claim, incluido un proceso que vuelve
|
|
60611
|
+
con el mismo \`workerId\`, no puede completarlo, marcarlo como fallido ni
|
|
60612
|
+
reabrirlo.
|
|
60629
60613
|
- Un intento se cuenta al reclamar el job. Después de 3 ejecuciones fallidas el
|
|
60630
60614
|
job queda failed.
|
|
60631
60615
|
- \`execute(job)\` puede fallar antes o después de aplicar el efecto. El adapter
|
|
@@ -60642,24 +60626,13 @@ ofrece operaciones síncronas \`get(id)\`, \`put(job)\`, \`delete(id)\` y
|
|
|
60642
60626
|
|
|
60643
60627
|
## Evaluación
|
|
60644
60628
|
|
|
60645
|
-
El evaluador usa variantes determinísticas por participante
|
|
60646
|
-
|
|
60647
|
-
|
|
60648
|
-
|
|
60649
|
-
- Comportamiento base: 10 puntos
|
|
60650
|
-
- Persistencia: 15 puntos
|
|
60651
|
-
- Concurrencia: 20 puntos
|
|
60652
|
-
- Recuperación ante fallas: 20 puntos
|
|
60653
|
-
- Idempotencia: 15 puntos
|
|
60654
|
-
- Seguridad contra regresiones: 15 puntos
|
|
60655
|
-
- Rendimiento: 5 puntos, solo si la carga termina correctamente y sin perder
|
|
60656
|
-
seguridad de concurrencia
|
|
60629
|
+
El evaluador usa variantes determinísticas por participante. El veredicto
|
|
60630
|
+
oficial es un solo puntaje sobre 100. No incluye casos ocultos, un desglose por
|
|
60631
|
+
capacidad ni un costo de ejecución.
|
|
60657
60632
|
|
|
60658
60633
|
El ranking exige una postulación enviada o revisada. Ordena por puntaje total,
|
|
60659
|
-
menos evaluaciones oficiales,
|
|
60660
|
-
envío.
|
|
60661
|
-
una carga equivalente para todos; no usa tiempo de servidor. Todos los puntajes
|
|
60662
|
-
válidos aparecen en el ranking.
|
|
60634
|
+
luego por menos evaluaciones oficiales y, al final, por la hora del mejor
|
|
60635
|
+
envío. Todos los puntajes válidos aparecen en el ranking.
|
|
60663
60636
|
`;
|
|
60664
60637
|
var brokenAgentPublicTestSource = `const test = require("node:test");
|
|
60665
60638
|
const assert = require("node:assert/strict");
|
|
@@ -61014,7 +60987,7 @@ var challengeQuickstart = {
|
|
|
61014
60987
|
"Los mejores resultados de los rankings serán seleccionados para el evento.",
|
|
61015
60988
|
"Tienes 5 evaluaciones oficiales contra variantes ocultas y determinísticas por participante.",
|
|
61016
60989
|
"Los tests locales y públicos son ilimitados.",
|
|
61017
|
-
"Gana el puntaje total; los empates usan menos evaluaciones
|
|
60990
|
+
"Gana el puntaje total; los empates usan menos evaluaciones y la hora del mejor envío.",
|
|
61018
60991
|
"Las herramientas de AI están permitidas, pero el participante toma las decisiones de ingeniería."
|
|
61019
60992
|
],
|
|
61020
60993
|
workflow: [
|