@pome-sh/cli 0.23.0 → 0.23.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/build-info.json +3 -3
- package/dist/{chunk-S3RNVG6R.js → chunk-54OLERUK.js} +1 -1
- package/dist/{chunk-OX2CRKHX.js → chunk-BCI7KJRH.js} +1 -1
- package/dist/{chunk-KS4DD6JC.js → chunk-Z32CZ45D.js} +22 -5
- package/dist/{runDemo-7QCEWKQJ.js → runDemo-Q3WATCYJ.js} +2 -2
- package/dist/{runTrialGroup-PGDK4KZ2.js → runTrialGroup-O7DQIB7T.js} +2 -2
- package/dist/src/cli/main.js +16 -9
- package/package.json +1 -1
package/dist/build-info.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"package": "pome-sh",
|
|
3
|
-
"version": "0.23.
|
|
4
|
-
"git_sha": "
|
|
5
|
-
"build_time": "2026-08-
|
|
3
|
+
"version": "0.23.1",
|
|
4
|
+
"git_sha": "f57142b584d0bbeaa6b1c3e6194daf2723ed6d3c",
|
|
5
|
+
"build_time": "2026-08-10T12:44:52.803Z"
|
|
6
6
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { getAvailablePort } from './chunk-XDU6TD4O.js';
|
|
2
2
|
import { buildEgressAllowlist, readBlockedEgress } from './chunk-CBFKZZBR.js';
|
|
3
|
-
import { parseTaskFile, seedStateForTwin, runAgentCommand, writeRunArtifactsCore } from './chunk-
|
|
3
|
+
import { parseTaskFile, seedStateForTwin, runAgentCommand, writeRunArtifactsCore } from './chunk-Z32CZ45D.js';
|
|
4
4
|
import { createRecorder, bootTwin } from './chunk-TG22SRUL.js';
|
|
5
5
|
import { eventSchema } from './chunk-VBATFCWR.js';
|
|
6
6
|
import { redactSecrets, redactEvent } from './chunk-SG6ZTIMT.js';
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { readManifest, normalizeManifestTwins } from './chunk-KUVTL4NZ.js';
|
|
2
|
-
import { createHostedClient, perTwinReturnedByCloud, parseTaskFile, runAgentCommand, writeRunArtifactsCore, toTwinHttpEvent, redactJsonl, uploadRunBlobs, scoreFromFinalizeResponse, scoreStatus } from './chunk-
|
|
2
|
+
import { createHostedClient, perTwinReturnedByCloud, parseTaskFile, runAgentCommand, writeRunArtifactsCore, toTwinHttpEvent, redactJsonl, uploadRunBlobs, scoreFromFinalizeResponse, scoreStatus } from './chunk-Z32CZ45D.js';
|
|
3
3
|
import { MOUNTED_TWINS, HostedAuthError, HostedDiscardRefusedError, HostedQuotaError, HostedOrchError, HostedTrialError, agentResponseSchema } from './chunk-PQYIAA6K.js';
|
|
4
4
|
import { redactSecrets, redactEvent } from './chunk-SG6ZTIMT.js';
|
|
5
5
|
import { existsSync } from 'node:fs';
|
|
@@ -1232,6 +1232,10 @@ function outcomeOf(result) {
|
|
|
1232
1232
|
if (result.skipped) return "skipped";
|
|
1233
1233
|
return result.passed ? "passed" : "failed";
|
|
1234
1234
|
}
|
|
1235
|
+
var PRE_SATISFIED_REASON = "already_true_in_seed";
|
|
1236
|
+
function isPreSatisfied(result) {
|
|
1237
|
+
return result.skipped && result.reason === PRE_SATISFIED_REASON;
|
|
1238
|
+
}
|
|
1235
1239
|
function scoreStatus(score, passThreshold) {
|
|
1236
1240
|
if (!score.evaluated || !score.can_pass) return "incomplete";
|
|
1237
1241
|
return score.satisfaction >= passThreshold ? "pass" : "fail";
|
|
@@ -1258,15 +1262,23 @@ function twinSkipSuffix(result) {
|
|
|
1258
1262
|
const twinRelated = outcome === "skipped" || outcome === "errored" || /no_matching_predicate|no matching predicate/i.test(result.reason);
|
|
1259
1263
|
return twinRelated ? ` (twin: ${twin})` : "";
|
|
1260
1264
|
}
|
|
1265
|
+
function criteriaWord(n) {
|
|
1266
|
+
return n === 1 ? "criterion" : "criteria";
|
|
1267
|
+
}
|
|
1261
1268
|
function scoreCountsSummary(score) {
|
|
1262
1269
|
return `${score.passed ?? 0} passed, ${score.failed ?? 0} failed, ${score.skipped ?? 0} skipped, ${score.errored ?? 0} errored`;
|
|
1263
1270
|
}
|
|
1264
1271
|
function runScoreLine(score, passThreshold, unevaluatedNumericLabel) {
|
|
1265
1272
|
const status = scoreStatus(score, passThreshold);
|
|
1266
1273
|
if (status === "incomplete") {
|
|
1267
|
-
const
|
|
1268
|
-
const
|
|
1269
|
-
|
|
1274
|
+
const allExcluded = score.skipped + score.errored;
|
|
1275
|
+
const unreached = allExcluded - score.preSatisfied;
|
|
1276
|
+
const total = score.total_required + allExcluded;
|
|
1277
|
+
if (score.total_required === 0 && unreached === 0 && score.preSatisfied > 0) {
|
|
1278
|
+
return `score: incomplete \u2014 nothing was at risk (${score.preSatisfied} ${criteriaWord(score.preSatisfied)} already true in the seed); ${scoreCountsSummary(score)}; ${unevaluatedNumericLabel}: ${score.satisfaction}/100`;
|
|
1279
|
+
}
|
|
1280
|
+
const preSatisfiedClause = score.preSatisfied > 0 ? ` (${score.preSatisfied} already true in the seed)` : "";
|
|
1281
|
+
return `score: incomplete \u2014 ${unreached} of ${total} criteria not evaluated${preSatisfiedClause}; ${scoreCountsSummary(score)}; ${unevaluatedNumericLabel}: ${score.satisfaction}/100`;
|
|
1270
1282
|
}
|
|
1271
1283
|
return `score: ${score.satisfaction}/100`;
|
|
1272
1284
|
}
|
|
@@ -1434,16 +1446,21 @@ function scoreFromFinalizeResponse(finalized) {
|
|
|
1434
1446
|
const failed = results.filter((r) => outcomeOf(r) === "failed").length;
|
|
1435
1447
|
const errored = results.filter((r) => outcomeOf(r) === "errored").length;
|
|
1436
1448
|
const skipped = results.filter((r) => outcomeOf(r) === "skipped").length;
|
|
1449
|
+
const preSatisfied = results.filter(
|
|
1450
|
+
(r) => outcomeOf(r) === "skipped" && isPreSatisfied(r)
|
|
1451
|
+
).length;
|
|
1437
1452
|
const totalRequired = passed + failed;
|
|
1453
|
+
const unresolvedAbstentions = skipped - preSatisfied + errored;
|
|
1438
1454
|
return {
|
|
1439
1455
|
satisfaction: finalized.score,
|
|
1440
1456
|
passed,
|
|
1441
1457
|
failed,
|
|
1442
1458
|
skipped,
|
|
1443
1459
|
errored,
|
|
1460
|
+
preSatisfied,
|
|
1444
1461
|
total_required: totalRequired,
|
|
1445
1462
|
evaluated: hasCriteriaResults ? totalRequired > 0 : true,
|
|
1446
|
-
can_pass: hasCriteriaResults ? totalRequired > 0 &&
|
|
1463
|
+
can_pass: hasCriteriaResults ? totalRequired > 0 && unresolvedAbstentions === 0 : true,
|
|
1447
1464
|
results,
|
|
1448
1465
|
judge_model: finalized.judge_model ?? null,
|
|
1449
1466
|
judge_tokens_in: null,
|
|
@@ -1613,4 +1630,4 @@ function splitCommand(command) {
|
|
|
1613
1630
|
return file ? { file, args } : null;
|
|
1614
1631
|
}
|
|
1615
1632
|
|
|
1616
|
-
export { createHostedClient, criterionMarkerLabel, markerFor, outcomeOf, parseGitHubSeedState, parseTaskFile, perTwinReturnedByCloud, readCodeCriteria, readConfigTwins, readLatestRun, readMetaSummary, redactJsonl, runAgentCommand, runScoreLine, scoreCountsSummary, scoreFromFinalizeResponse, scoreStatus, seedStateForTwin, toTwinHttpEvent, twinSkipSuffix, uploadRunBlobs, writeRunArtifactsCore };
|
|
1633
|
+
export { createHostedClient, criterionMarkerLabel, isPreSatisfied, markerFor, outcomeOf, parseGitHubSeedState, parseTaskFile, perTwinReturnedByCloud, readCodeCriteria, readConfigTwins, readLatestRun, readMetaSummary, redactJsonl, runAgentCommand, runScoreLine, scoreCountsSummary, scoreFromFinalizeResponse, scoreStatus, seedStateForTwin, toTwinHttpEvent, twinSkipSuffix, uploadRunBlobs, writeRunArtifactsCore };
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { newGroupId, reassuranceBox, twinReadyLine, trialsHeaderLine, trialLine, summaryLines, evaluatingLine, criterionPhrase } from './chunk-RGZBC7NF.js';
|
|
2
2
|
import { DemoCapacityError, capacityLabel, parseCapacityMarker, capacityKindFrom } from './chunk-ZX4WNSZ5.js';
|
|
3
|
-
import { runTask, demoTaskPath, DEMO_TASK_NAME, DEMO_REPO } from './chunk-
|
|
3
|
+
import { runTask, demoTaskPath, DEMO_TASK_NAME, DEMO_REPO } from './chunk-54OLERUK.js';
|
|
4
4
|
import { getAvailablePort } from './chunk-XDU6TD4O.js';
|
|
5
5
|
import './chunk-CBFKZZBR.js';
|
|
6
|
-
import { createHostedClient, parseTaskFile, uploadRunBlobs, scoreFromFinalizeResponse, scoreStatus, outcomeOf } from './chunk-
|
|
6
|
+
import { createHostedClient, parseTaskFile, uploadRunBlobs, scoreFromFinalizeResponse, scoreStatus, outcomeOf } from './chunk-Z32CZ45D.js';
|
|
7
7
|
import './chunk-NW7HGA2K.js';
|
|
8
8
|
import { HostedQuotaError, HostedOrchError } from './chunk-PQYIAA6K.js';
|
|
9
9
|
import './chunk-SGDUD7KK.js';
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { newGroupId, criterionPhrase } from './chunk-RGZBC7NF.js';
|
|
2
|
-
import { runTaskHosted, resolveRunAgentIdentity } from './chunk-
|
|
2
|
+
import { runTaskHosted, resolveRunAgentIdentity } from './chunk-BCI7KJRH.js';
|
|
3
3
|
import './chunk-KUVTL4NZ.js';
|
|
4
|
-
import { createHostedClient, parseTaskFile, outcomeOf } from './chunk-
|
|
4
|
+
import { createHostedClient, parseTaskFile, outcomeOf } from './chunk-Z32CZ45D.js';
|
|
5
5
|
import './chunk-NW7HGA2K.js';
|
|
6
6
|
import { HostedQuotaError, HostedTrialError } from './chunk-PQYIAA6K.js';
|
|
7
7
|
import './chunk-SGDUD7KK.js';
|
package/dist/src/cli/main.js
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import { DEFAULT_CONTROL_PLANE_URL, DEFAULT_DASHBOARD_URL, clearLocalCredentials, friendlyHostedError, runSessionCreate, runSessionList, runSessionStop, resolveCredentials, runTaskHosted, discoverRunSet, loadTrialEvents, persistCredentialsAfterLogin, DEFAULT_DOCS_SITE_ORIGIN, resolveSeams, resolveCachedAgentId, readLinkCache, postAgentResolver, writeLinkCache, ensurePomeGitignored } from '../../chunk-
|
|
2
|
+
import { DEFAULT_CONTROL_PLANE_URL, DEFAULT_DASHBOARD_URL, clearLocalCredentials, friendlyHostedError, runSessionCreate, runSessionList, runSessionStop, resolveCredentials, runTaskHosted, discoverRunSet, loadTrialEvents, persistCredentialsAfterLogin, DEFAULT_DOCS_SITE_ORIGIN, resolveSeams, resolveCachedAgentId, readLinkCache, postAgentResolver, writeLinkCache, ensurePomeGitignored } from '../../chunk-BCI7KJRH.js';
|
|
3
3
|
import { readManifest, writeManifest, MANIFEST_JSON, readRequiredManifest, normalizeManifestTwins } from '../../chunk-KUVTL4NZ.js';
|
|
4
|
-
import { assetPath, runTask, resolvePackageRoot, DEMO_TASK_NAME, demoTaskPath } from '../../chunk-
|
|
4
|
+
import { assetPath, runTask, resolvePackageRoot, DEMO_TASK_NAME, demoTaskPath } from '../../chunk-54OLERUK.js';
|
|
5
5
|
import '../../chunk-XDU6TD4O.js';
|
|
6
6
|
import '../../chunk-CBFKZZBR.js';
|
|
7
|
-
import { parseTaskFile, scoreStatus, runScoreLine, readLatestRun, readMetaSummary, readConfigTwins, scoreCountsSummary, markerFor, outcomeOf, criterionMarkerLabel, twinSkipSuffix, readCodeCriteria, createHostedClient, toTwinHttpEvent, redactJsonl, scoreFromFinalizeResponse, parseGitHubSeedState, uploadRunBlobs } from '../../chunk-
|
|
7
|
+
import { parseTaskFile, scoreStatus, runScoreLine, readLatestRun, readMetaSummary, readConfigTwins, scoreCountsSummary, markerFor, outcomeOf, criterionMarkerLabel, twinSkipSuffix, readCodeCriteria, createHostedClient, toTwinHttpEvent, redactJsonl, scoreFromFinalizeResponse, parseGitHubSeedState, uploadRunBlobs, isPreSatisfied } from '../../chunk-Z32CZ45D.js';
|
|
8
8
|
import '../../chunk-NW7HGA2K.js';
|
|
9
9
|
import { MOUNTED_TWINS, deriveAgentSlug, exitCodeFor, HostedUsageError, HostedOrchError, HostedAuthError, HostedQuotaError } from '../../chunk-PQYIAA6K.js';
|
|
10
10
|
import { TAPE_ASSERTABLE_TOOLS } from '../../chunk-FKZZWWYC.js';
|
|
@@ -4360,7 +4360,7 @@ function renderGroupedSignatures(trials) {
|
|
|
4360
4360
|
for (const trial of trials) {
|
|
4361
4361
|
for (const result of trial.verdict.criteria_results) {
|
|
4362
4362
|
const key = result.criterion.text;
|
|
4363
|
-
const outcome = outcomeOf(result);
|
|
4363
|
+
const outcome = isPreSatisfied(result) ? "excluded" : outcomeOf(result);
|
|
4364
4364
|
if (outcome === "failed") {
|
|
4365
4365
|
const entry = byCriterion.get(key) ?? {
|
|
4366
4366
|
marker: criterionMarker(result.criterion),
|
|
@@ -4375,10 +4375,12 @@ function renderGroupedSignatures(trials) {
|
|
|
4375
4375
|
}
|
|
4376
4376
|
}
|
|
4377
4377
|
const passedEverywhere = [];
|
|
4378
|
+
const preSatisfiedEverywhere = [];
|
|
4378
4379
|
const notUniformlyEvaluated = [];
|
|
4379
4380
|
for (const [key, seen] of outcomesSeen) {
|
|
4380
4381
|
if (byCriterion.has(key)) continue;
|
|
4381
4382
|
if (seen.size === 1 && seen.has("passed")) passedEverywhere.push(key);
|
|
4383
|
+
else if (seen.size === 1 && seen.has("excluded")) preSatisfiedEverywhere.push(key);
|
|
4382
4384
|
else notUniformlyEvaluated.push(key);
|
|
4383
4385
|
}
|
|
4384
4386
|
const completed = trials.length;
|
|
@@ -4389,7 +4391,7 @@ function renderGroupedSignatures(trials) {
|
|
|
4389
4391
|
return `${idx + 1}. ${marker} ${flattenLine(text)} \u2014 failed in ${hits.length} of ${completed} completed trials
|
|
4390
4392
|
${lines.join("\n")}`;
|
|
4391
4393
|
});
|
|
4392
|
-
if (blocks.length === 0 && passedEverywhere.length === 0 && notUniformlyEvaluated.length === 0) {
|
|
4394
|
+
if (blocks.length === 0 && passedEverywhere.length === 0 && preSatisfiedEverywhere.length === 0 && notUniformlyEvaluated.length === 0) {
|
|
4393
4395
|
return "(no criteria recorded)";
|
|
4394
4396
|
}
|
|
4395
4397
|
const notes = [];
|
|
@@ -4401,9 +4403,14 @@ ${lines.join("\n")}`;
|
|
|
4401
4403
|
`passed in every completed trial: ${passedEverywhere.map((t) => `"${flattenLine(t)}"`).join(" \xB7 ")}`
|
|
4402
4404
|
);
|
|
4403
4405
|
}
|
|
4406
|
+
if (preSatisfiedEverywhere.length > 0) {
|
|
4407
|
+
notes.push(
|
|
4408
|
+
`already true in the seed in every completed trial \u2014 excluded from the score, nothing here to fix: ${preSatisfiedEverywhere.map((t) => `"${flattenLine(t)}"`).join(" \xB7 ")}`
|
|
4409
|
+
);
|
|
4410
|
+
}
|
|
4404
4411
|
if (notUniformlyEvaluated.length > 0) {
|
|
4405
4412
|
notes.push(
|
|
4406
|
-
`not uniformly evaluated (
|
|
4413
|
+
`not uniformly evaluated (not evaluated in some trials \u2014 no pass is claimed for these): ${notUniformlyEvaluated.map((t) => `"${flattenLine(t)}"`).join(" \xB7 ")}`
|
|
4407
4414
|
);
|
|
4408
4415
|
}
|
|
4409
4416
|
return [...blocks, ...notes].join("\n");
|
|
@@ -4490,7 +4497,7 @@ var DEFAULT_AGENT_FILE = "examples/agents/scripted-triage-agent.ts";
|
|
|
4490
4497
|
var DEFAULT_AGENT_COMMAND = `node ${DEFAULT_AGENT_FILE}`;
|
|
4491
4498
|
var MANIFEST_SCHEMA_URL = "https://pome.sh/schemas/v1/pome.json";
|
|
4492
4499
|
function readPackageVersion() {
|
|
4493
|
-
if ("0.23.
|
|
4500
|
+
if ("0.23.1".length > 0) return "0.23.1";
|
|
4494
4501
|
try {
|
|
4495
4502
|
const here = dirname(fileURLToPath(import.meta.url));
|
|
4496
4503
|
const candidates = [
|
|
@@ -4983,7 +4990,7 @@ function createProgram() {
|
|
|
4983
4990
|
taskForRuns.config.runs
|
|
4984
4991
|
);
|
|
4985
4992
|
if (k > 1) {
|
|
4986
|
-
const { runTrialGroup } = await import('../../runTrialGroup-
|
|
4993
|
+
const { runTrialGroup } = await import('../../runTrialGroup-O7DQIB7T.js');
|
|
4987
4994
|
const fileForRerun = relative(process.cwd(), file);
|
|
4988
4995
|
const rerunCommand = defaultTask ? options.trials !== void 0 ? `pome run -n ${k}` : "pome run" : `pome run ${fileForRerun && !fileForRerun.startsWith("..") ? fileForRerun : file} -n ${k}`;
|
|
4989
4996
|
const groupResult = await runTrialGroup({
|
|
@@ -5077,7 +5084,7 @@ function createProgram() {
|
|
|
5077
5084
|
process.exitCode = 5;
|
|
5078
5085
|
return;
|
|
5079
5086
|
}
|
|
5080
|
-
const { runDemo } = await import('../../runDemo-
|
|
5087
|
+
const { runDemo } = await import('../../runDemo-Q3WATCYJ.js');
|
|
5081
5088
|
const result = await runDemo({
|
|
5082
5089
|
apiBase: opts.apiUrl.replace(/\/$/, ""),
|
|
5083
5090
|
dashboardBase: process.env.POME_DASHBOARD_URL ?? DEFAULT_DASHBOARD_URL,
|
package/package.json
CHANGED