@pome-sh/cli 0.21.14 → 0.21.16

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.
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "package": "pome-sh",
3
- "version": "0.21.14",
4
- "git_sha": "a10831c796ed4f4dd26bf82f7b2dbc9db906a390",
5
- "build_time": "2026-08-07T23:35:58.555Z"
3
+ "version": "0.21.16",
4
+ "git_sha": "19f47532359d604ec1ad36a4920a293dbbc6bad9",
5
+ "build_time": "2026-08-09T12:30:48.699Z"
6
6
  }
@@ -183,7 +183,7 @@ async function checkTwinReachable(_configDir) {
183
183
  });
184
184
  let harness;
185
185
  try {
186
- const { bootTwin } = await import('./twinHarness-AHRNZB6Y.js');
186
+ const { bootTwin } = await import('./twinHarness-W2PMGB4D.js');
187
187
  harness = await bootTwin({
188
188
  twin: "github",
189
189
  seedState: void 0,
@@ -56,6 +56,7 @@ function declareRouteInputs(spec) {
56
56
  throw new Error(`route-inputs: path must start with '/' (got '${spec.path}')`);
57
57
  }
58
58
  const surface = `${spec.method} ${spec.path}`;
59
+ const undeclared = spec.undeclared ?? "refuse";
59
60
  const pathShape = spec.pathParams ?? {};
60
61
  const queryShape = spec.query ?? {};
61
62
  const headerShape = spec.headers ?? {};
@@ -106,6 +107,7 @@ function declareRouteInputs(spec) {
106
107
  path: spec.path,
107
108
  surface,
108
109
  bodyEncoding,
110
+ undeclared,
109
111
  inputs,
110
112
  // Deduplicated: pome-cloud's comparator diffs NAME sets, and a name that
111
113
  // arrives in two locations is still one name to it.
@@ -113,16 +115,28 @@ function declareRouteInputs(spec) {
113
115
  async parse(request) {
114
116
  const path = pathSchema.parse(readPathParams(request, named, wildcard, spec.path));
115
117
  const searchParams = new URL(request.url, "http://twin.invalid").searchParams;
116
- refuseUndeclared("query", surface, [...searchParams.keys()], declaredQuery, bracketedQueryNames);
118
+ if (undeclared === "refuse") {
119
+ refuseUndeclared("query", surface, [...searchParams.keys()], declaredQuery, bracketedQueryNames);
120
+ }
117
121
  const query = querySchema.parse(readQuery(searchParams, declaredQuery, bracketedQueryNames, arrayQuery));
118
122
  const header = headerSchema.parse(Object.fromEntries(Object.keys(headerShape).map((name) => [name, request.header(name)])));
119
123
  const raw = await decodeBody(request, bodyEncoding, surface, spec.mediaField);
120
- refuseUndeclared("body", surface, Object.keys(raw), declaredBody, /* @__PURE__ */ new Set());
124
+ if (undeclared === "refuse") {
125
+ refuseUndeclared("body", surface, Object.keys(raw), declaredBody, /* @__PURE__ */ new Set());
126
+ }
121
127
  const body = bodySchema.parse(raw);
122
128
  return { path, query, header, body };
123
129
  }
124
130
  };
125
131
  }
132
+ function routeInputDeclarer(undeclared) {
133
+ return (spec) => {
134
+ if (spec.undeclared !== void 0) {
135
+ throw new Error(`route-inputs: ${spec.method} ${spec.path} sets undeclared: '${spec.undeclared}' on its own spec, but its twin already rules '${undeclared}' for every route \u2014 the disposition is one ruling per twin (F-1372)`);
136
+ }
137
+ return declareRouteInputs({ ...spec, undeclared });
138
+ };
139
+ }
126
140
  function mapShape(shape) {
127
141
  return Object.fromEntries(Object.entries(shape).map(([name, schema]) => [name, unwrapBracketed(schema)]));
128
142
  }
@@ -424,4 +438,4 @@ z.strictObject({
424
438
  graphql_surfaces: z.array(graphqlArgumentSurfaceSchema).optional()
425
439
  });
426
440
 
427
- export { MalformedBodyError, UndeclaredInputError, booleanInput, bracketedQuery, declareRouteInputs, integerInput, mountDeclaredRoute, repeatedInput };
441
+ export { MalformedBodyError, UndeclaredInputError, booleanInput, bracketedQuery, integerInput, mountDeclaredRoute, repeatedInput, routeInputDeclarer };
@@ -1,4 +1,4 @@
1
- import { oneOf, statePath, defineCheck, VACUITY_SENTINEL, childStatePath } from './chunk-NY55QTVQ.js';
1
+ import { oneOf, statePath, defineCheck, VACUITY_SENTINEL, childStatePath } from './chunk-JWJYNAWI.js';
2
2
 
3
3
  // ../packages/twin-slack/dist/src/check-params.js
4
4
  var channelName = {
@@ -177,7 +177,23 @@ var noReactionAdded = defineCheck({
177
177
  params: { reaction: emojiName, channel: channelName },
178
178
  substrate: "final",
179
179
  polarity: () => "negative",
180
- subject: () => null,
180
+ // The reaction name, because that is the literal this predicate compares
181
+ // against `reactions[].name` — the line below has said so since the check
182
+ // shipped, and this field said `null` anyway (F-1157).
183
+ //
184
+ // It is the sharpest case in the vocabulary for why that mattered. A NEGATIVE
185
+ // criterion asserting a scanned literal is absent reads a redactor's work as
186
+ // its own verdict: mask `reactions[].name` and the filter matches nothing, so
187
+ // `No "white_check_mark" reaction was added` passes — over an export where the
188
+ // agent added exactly that reaction. `probeRedactionSurvival` found it by
189
+ // destroying this literal in the FAILING world declared below and watching
190
+ // that world start to pass; it was the one `vacuous_pass` across all five
191
+ // twins' 45 declarations.
192
+ //
193
+ // Contrast `slack.no-message-posted` above, whose null is deliberate: its only
194
+ // literal RESOLVES a channel and the count it asserts on is derived. This one
195
+ // scans.
196
+ subject: ({ reaction }) => reaction,
181
197
  // The channel RESOLVES (a miss already skips); the reaction name is SCANNED.
182
198
  // D10: falsify the scanned one.
183
199
  vacuityMutant: (args) => ({ ...args, reaction: VACUITY_SENTINEL }),
@@ -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-LKN7DYCG.js';
2
+ import { createHostedClient, perTwinReturnedByCloud, parseTaskFile, runAgentCommand, writeRunArtifactsCore, toTwinHttpEvent, redactJsonl, uploadRunBlobs, scoreFromFinalizeResponse, scoreStatus } from './chunk-TFH6A3MX.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';
@@ -4,7 +4,7 @@ var package_default = {
4
4
 
5
5
  // ../packages/twin-slack/package.json
6
6
  var package_default2 = {
7
- version: "0.3.5"};
7
+ version: "0.3.6"};
8
8
 
9
9
  // ../packages/twin-stripe/package.json
10
10
  var package_default3 = {
@@ -12,7 +12,7 @@ var package_default3 = {
12
12
 
13
13
  // ../packages/twin-gmail/package.json
14
14
  var package_default4 = {
15
- version: "0.3.5"};
15
+ version: "0.3.6"};
16
16
 
17
17
  // ../packages/twin-linear/package.json
18
18
  var package_default5 = {
@@ -39,7 +39,7 @@ var TWIN_REGISTRY = {
39
39
  defaultSeedState,
40
40
  GitHubDomain,
41
41
  openGitHubCloneDatabase
42
- } = await import('./src-GIKWIJM2.js');
42
+ } = await import('./src-SZSXWHUI.js');
43
43
  const db = openGitHubCloneDatabase();
44
44
  const domain = new GitHubDomain(db);
45
45
  domain.seed(seedState === void 0 ? defaultSeedState() : seedState);
@@ -59,9 +59,9 @@ var TWIN_REGISTRY = {
59
59
  envName: "SLACK",
60
60
  defaultPort: 3333,
61
61
  version: package_default2.version,
62
- defaultSeed: async () => (await import('./src-MX3THU4R.js')).defaultSeedState(),
62
+ defaultSeed: async () => (await import('./src-T5I5JGEK.js')).defaultSeedState(),
63
63
  async boot({ seedState, runId, recorder }) {
64
- const { createSlackTwinApp, openSlackTwinDatabase, SlackDomain } = await import('./src-MX3THU4R.js');
64
+ const { createSlackTwinApp, openSlackTwinDatabase, SlackDomain } = await import('./src-T5I5JGEK.js');
65
65
  const db = openSlackTwinDatabase(":memory:");
66
66
  const domain = new SlackDomain(db);
67
67
  domain.applySeed(seedState);
@@ -84,9 +84,9 @@ var TWIN_REGISTRY = {
84
84
  envName: "STRIPE",
85
85
  defaultPort: 3333,
86
86
  version: package_default3.version,
87
- defaultSeed: async () => (await import('./src-566DJYOC.js')).defaultSeed(),
87
+ defaultSeed: async () => (await import('./src-C2SRMLET.js')).defaultSeed(),
88
88
  async boot({ seedState, runId, recorder, twinBaseUrl }) {
89
- const stripeTwin = await import('./src-566DJYOC.js');
89
+ const stripeTwin = await import('./src-C2SRMLET.js');
90
90
  const { createApp } = await import('./server-DR56XIGP.js');
91
91
  const {
92
92
  applySeed: applyStripeSeed,
@@ -128,9 +128,9 @@ var TWIN_REGISTRY = {
128
128
  portEnvName: "GMAIL_TWIN_PORT",
129
129
  tokenEnvName: "POME_GMAIL_TOKEN",
130
130
  version: package_default4.version,
131
- defaultSeed: async () => (await import('./src-WS5PCGRC.js')).defaultSeedState(),
131
+ defaultSeed: async () => (await import('./src-RK3UVW3W.js')).defaultSeedState(),
132
132
  async boot({ seedState, runId, recorder }) {
133
- const { createGmailTwinApp, GmailDomain, openGmailTwinDatabase, parseSeed } = await import('./src-WS5PCGRC.js');
133
+ const { createGmailTwinApp, GmailDomain, openGmailTwinDatabase, parseSeed } = await import('./src-RK3UVW3W.js');
134
134
  const db = openGmailTwinDatabase(":memory:");
135
135
  const seed = parseSeed(seedState);
136
136
  const domain = new GmailDomain(db);
@@ -149,7 +149,7 @@ var TWIN_REGISTRY = {
149
149
  portEnvName: "LINEAR_TWIN_PORT",
150
150
  tokenEnvName: "POME_LINEAR_TOKEN",
151
151
  version: package_default5.version,
152
- defaultSeed: async () => (await import('./src-EAA6L4CV.js')).defaultSeedState(),
152
+ defaultSeed: async () => (await import('./src-F4J75FHJ.js')).defaultSeedState(),
153
153
  async boot({ seedState, runId, recorder }) {
154
154
  const {
155
155
  createLinearTwinApp,
@@ -157,7 +157,7 @@ var TWIN_REGISTRY = {
157
157
  LinearDomain,
158
158
  openLinearTwinDatabase,
159
159
  parseSeed
160
- } = await import('./src-EAA6L4CV.js');
160
+ } = await import('./src-F4J75FHJ.js');
161
161
  const db = openLinearTwinDatabase(":memory:");
162
162
  const seed = parseSeed(seedState);
163
163
  const domain = new LinearDomain(db);
@@ -173,7 +173,7 @@ var TWIN_REGISTRY = {
173
173
  }
174
174
  };
175
175
  async function createGitHubSmokeApp() {
176
- const { createGitHubCloneApp } = await import('./src-GIKWIJM2.js');
176
+ const { createGitHubCloneApp } = await import('./src-SZSXWHUI.js');
177
177
  return createGitHubCloneApp();
178
178
  }
179
179
  function defaultPortFor(twin, env = process.env) {
@@ -1,7 +1,7 @@
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-LKN7DYCG.js';
4
- import { createRecorder, bootTwin } from './chunk-TIY2TZAD.js';
3
+ import { parseTaskFile, seedStateForTwin, runAgentCommand, writeRunArtifactsCore } from './chunk-TFH6A3MX.js';
4
+ import { createRecorder, bootTwin } from './chunk-MN23RUGG.js';
5
5
  import { eventSchema } from './chunk-VBATFCWR.js';
6
6
  import { redactSecrets, redactEvent } from './chunk-SG6ZTIMT.js';
7
7
  import { serve } from '@hono/node-server';
@@ -13,6 +13,12 @@ function childStatePath(base, ...segments) {
13
13
  return `${base}${statePath(...segments)}`;
14
14
  }
15
15
 
16
+ // ../packages/sdk/dist/check-redaction.js
17
+ var REDACTION_PLACEHOLDER = "[REDACTED]";
18
+ function isRedacted(value) {
19
+ return value === REDACTION_PLACEHOLDER;
20
+ }
21
+
16
22
  // ../packages/sdk/dist/checks.js
17
23
  var VACUITY_SENTINEL = "pome-vacuity-never";
18
24
  var VACUITY_SENTINEL_NUMBER = 987654321;
@@ -117,4 +123,4 @@ function checkNearMissPattern(def) {
117
123
  return buildPattern(def.template, () => ".+?");
118
124
  }
119
125
 
120
- export { VACUITY_SENTINEL, VACUITY_SENTINEL_NUMBER, checkNearMissPattern, checkPattern, checksDigest, childStatePath, defineCheck, oneOf, renderCheck, repoRef, statePath, templateSlots };
126
+ export { VACUITY_SENTINEL, VACUITY_SENTINEL_NUMBER, checkNearMissPattern, checkPattern, checksDigest, childStatePath, defineCheck, isRedacted, oneOf, renderCheck, repoRef, statePath, templateSlots };
@@ -1,4 +1,4 @@
1
- import { TWIN_NAMES, isTwinName, TWIN_REGISTRY } from './chunk-BTDWCUMP.js';
1
+ import { TWIN_NAMES, isTwinName, TWIN_REGISTRY } from './chunk-GPLI6UFI.js';
2
2
  import { createFileBackedRecorderStore, createRecorderStore } from './chunk-TV5S6WQV.js';
3
3
 
4
4
  // src/recorder/recorder.ts
@@ -1,4 +1,4 @@
1
- import { statePath, defineCheck, VACUITY_SENTINEL, childStatePath, VACUITY_SENTINEL_NUMBER } from './chunk-NY55QTVQ.js';
1
+ import { statePath, defineCheck, VACUITY_SENTINEL, childStatePath, VACUITY_SENTINEL_NUMBER, isRedacted } from './chunk-JWJYNAWI.js';
2
2
 
3
3
  // ../packages/twin-gmail/dist/src/check-params.js
4
4
  var messageId = {
@@ -436,7 +436,12 @@ var mailboxLabelCount = defineCheck({
436
436
  return { passed: false, status: "skipped", reason: "collection_truncated" };
437
437
  }
438
438
  if (final.mailboxes != null && !final.mailboxes.some((mb) => (mb.email ?? "").toLowerCase() === mailbox.toLowerCase())) {
439
- return { passed: false, status: "skipped", reason: `mailbox_not_found ("${mailbox}")` };
439
+ const eaten = final.mailboxes.some((mb) => isRedacted(mb.email));
440
+ return {
441
+ passed: false,
442
+ status: "skipped",
443
+ reason: eaten ? `mailbox_redacted ("${mailbox}")` : `mailbox_not_found ("${mailbox}")`
444
+ };
440
445
  }
441
446
  const ids = labelIdsFor(final, label);
442
447
  const labeled = new Set(final.messageLabels.filter((row) => ids.has((row.labelId ?? "").toLowerCase())).map((row) => (row.messageId ?? "").toLowerCase()));
@@ -2,7 +2,7 @@ import { criterionSchema, finalizeResponseSchema, HostedDiscardRefusedError, Hos
2
2
  import { seedSchema, parseSeed, defaultSeedState as defaultSeedState$2 } from './chunk-SGDUD7KK.js';
3
3
  import { gmailSeedSchema, defaultSeedState } from './chunk-NJ246QPJ.js';
4
4
  import { linearSeedSchema, defaultSeedState as defaultSeedState$1 } from './chunk-ZKID2HS3.js';
5
- import { isTwinName, TWIN_REGISTRY } from './chunk-BTDWCUMP.js';
5
+ import { isTwinName, TWIN_REGISTRY } from './chunk-GPLI6UFI.js';
6
6
  import { toTwinHttpEventRow } from './chunk-TV5S6WQV.js';
7
7
  import { redactEvent, redactSecrets } from './chunk-SG6ZTIMT.js';
8
8
  import { mkdir, appendFile, writeFile, readFile } from 'node:fs/promises';
@@ -1,4 +1,4 @@
1
- import { statePath, defineCheck, VACUITY_SENTINEL, VACUITY_SENTINEL_NUMBER, childStatePath } from './chunk-NY55QTVQ.js';
1
+ import { statePath, defineCheck, VACUITY_SENTINEL, VACUITY_SENTINEL_NUMBER, childStatePath } from './chunk-JWJYNAWI.js';
2
2
 
3
3
  // ../packages/twin-linear/dist/src/check-params.js
4
4
  var issueTitle = {
@@ -1,16 +1,16 @@
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-DSQNW2ZT.js';
3
+ import { runTask, demoTaskPath, DEMO_TASK_NAME, DEMO_REPO } from './chunk-GW2SMCUT.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-LKN7DYCG.js';
6
+ import { createHostedClient, parseTaskFile, uploadRunBlobs, scoreFromFinalizeResponse, scoreStatus, outcomeOf } from './chunk-TFH6A3MX.js';
7
7
  import './chunk-NW7HGA2K.js';
8
8
  import { HostedQuotaError, HostedOrchError } from './chunk-PQYIAA6K.js';
9
9
  import './chunk-SGDUD7KK.js';
10
10
  import './chunk-NJ246QPJ.js';
11
11
  import './chunk-ZKID2HS3.js';
12
- import { bootTwin } from './chunk-TIY2TZAD.js';
13
- import './chunk-BTDWCUMP.js';
12
+ import { bootTwin } from './chunk-MN23RUGG.js';
13
+ import './chunk-GPLI6UFI.js';
14
14
  import './chunk-TV5S6WQV.js';
15
15
  import './chunk-VBATFCWR.js';
16
16
  import './chunk-SG6ZTIMT.js';
@@ -1,13 +1,13 @@
1
1
  import { newGroupId, criterionPhrase } from './chunk-RGZBC7NF.js';
2
- import { runTaskHosted, resolveRunAgentIdentity } from './chunk-P6RAEIIU.js';
2
+ import { runTaskHosted, resolveRunAgentIdentity } from './chunk-FKMSYT5H.js';
3
3
  import './chunk-KUVTL4NZ.js';
4
- import { createHostedClient, parseTaskFile, outcomeOf } from './chunk-LKN7DYCG.js';
4
+ import { createHostedClient, parseTaskFile, outcomeOf } from './chunk-TFH6A3MX.js';
5
5
  import './chunk-NW7HGA2K.js';
6
6
  import { HostedQuotaError, HostedTrialError } from './chunk-PQYIAA6K.js';
7
7
  import './chunk-SGDUD7KK.js';
8
8
  import './chunk-NJ246QPJ.js';
9
9
  import './chunk-ZKID2HS3.js';
10
- import './chunk-BTDWCUMP.js';
10
+ import './chunk-GPLI6UFI.js';
11
11
  import './chunk-TV5S6WQV.js';
12
12
  import './chunk-VBATFCWR.js';
13
13
  import './chunk-SG6ZTIMT.js';
@@ -1,22 +1,22 @@
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-P6RAEIIU.js';
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-FKMSYT5H.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-DSQNW2ZT.js';
4
+ import { assetPath, runTask, resolvePackageRoot, DEMO_TASK_NAME, demoTaskPath } from '../../chunk-GW2SMCUT.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-LKN7DYCG.js';
7
+ import { parseTaskFile, scoreStatus, runScoreLine, readLatestRun, readMetaSummary, readConfigTwins, scoreCountsSummary, markerFor, outcomeOf, criterionMarkerLabel, twinSkipSuffix, readCodeCriteria, createHostedClient, toTwinHttpEvent, redactJsonl, scoreFromFinalizeResponse, parseGitHubSeedState, uploadRunBlobs } from '../../chunk-TFH6A3MX.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';
11
11
  import { seedSchema } from '../../chunk-SGDUD7KK.js';
12
- import { SLACK_CHECKS } from '../../chunk-LH4EGGQW.js';
13
- import { GMAIL_CHECKS } from '../../chunk-EU6SGN7A.js';
12
+ import { SLACK_CHECKS } from '../../chunk-6OT4IW25.js';
13
+ import { GMAIL_CHECKS } from '../../chunk-SE44FKWH.js';
14
14
  import '../../chunk-NJ246QPJ.js';
15
- import { LINEAR_CHECKS } from '../../chunk-3QVSXFJI.js';
15
+ import { LINEAR_CHECKS } from '../../chunk-XBT6ZLBG.js';
16
16
  import '../../chunk-ZKID2HS3.js';
17
- import { oneOf, defineCheck, repoRef, VACUITY_SENTINEL_NUMBER, childStatePath, VACUITY_SENTINEL, statePath, templateSlots, renderCheck, checksDigest, checkPattern, checkNearMissPattern } from '../../chunk-NY55QTVQ.js';
18
- import '../../chunk-TIY2TZAD.js';
19
- import { TWIN_NAME_LIST, isTwinName, createGitHubSmokeApp } from '../../chunk-BTDWCUMP.js';
17
+ import { oneOf, defineCheck, repoRef, VACUITY_SENTINEL_NUMBER, childStatePath, VACUITY_SENTINEL, statePath, templateSlots, renderCheck, checksDigest, checkPattern, checkNearMissPattern } from '../../chunk-JWJYNAWI.js';
18
+ import '../../chunk-MN23RUGG.js';
19
+ import { TWIN_NAME_LIST, isTwinName, createGitHubSmokeApp } from '../../chunk-GPLI6UFI.js';
20
20
  import '../../chunk-TV5S6WQV.js';
21
21
  import { isLegacyEventRow, eventSchema } from '../../chunk-VBATFCWR.js';
22
22
  import { redactEvent, redactSecrets } from '../../chunk-SG6ZTIMT.js';
@@ -850,7 +850,7 @@ async function throwForStatus(res) {
850
850
 
851
851
  // src/task/seed-verifier.ts
852
852
  async function verifySeedWithTwin(seed) {
853
- const { GitHubDomain, openGitHubCloneDatabase } = await import('../../src-GIKWIJM2.js');
853
+ const { GitHubDomain, openGitHubCloneDatabase } = await import('../../src-SZSXWHUI.js');
854
854
  const db = openGitHubCloneDatabase(":memory:");
855
855
  try {
856
856
  new GitHubDomain(db).seed(seed);
@@ -4490,7 +4490,7 @@ var DEFAULT_AGENT_FILE = "examples/agents/scripted-triage-agent.ts";
4490
4490
  var DEFAULT_AGENT_COMMAND = `node ${DEFAULT_AGENT_FILE}`;
4491
4491
  var MANIFEST_SCHEMA_URL = "https://pome.sh/schemas/v1/pome.json";
4492
4492
  function readPackageVersion() {
4493
- if ("0.21.14".length > 0) return "0.21.14";
4493
+ if ("0.21.16".length > 0) return "0.21.16";
4494
4494
  try {
4495
4495
  const here = dirname(fileURLToPath(import.meta.url));
4496
4496
  const candidates = [
@@ -4945,7 +4945,7 @@ function createProgram() {
4945
4945
  return;
4946
4946
  }
4947
4947
  {
4948
- const { runDoctorChecks } = await import('../../checks-6E6OKTHQ.js');
4948
+ const { runDoctorChecks } = await import('../../checks-TZ4BVN5S.js');
4949
4949
  const { renderDoctorReport } = await import('../../render-ZQQ4UMNO.js');
4950
4950
  const doctorReport = await runDoctorChecks({ mode: useLocal ? "full" : "hosted" });
4951
4951
  if (!doctorReport.ok) {
@@ -4983,7 +4983,7 @@ function createProgram() {
4983
4983
  taskForRuns.config.runs
4984
4984
  );
4985
4985
  if (k > 1) {
4986
- const { runTrialGroup } = await import('../../runTrialGroup-JHZ4LPKF.js');
4986
+ const { runTrialGroup } = await import('../../runTrialGroup-SFGCMNXD.js');
4987
4987
  const fileForRerun = relative(process.cwd(), file);
4988
4988
  const rerunCommand = defaultTask ? options.trials !== void 0 ? `pome run -n ${k}` : "pome run" : `pome run ${fileForRerun && !fileForRerun.startsWith("..") ? fileForRerun : file} -n ${k}`;
4989
4989
  const groupResult = await runTrialGroup({
@@ -5077,7 +5077,7 @@ function createProgram() {
5077
5077
  process.exitCode = 5;
5078
5078
  return;
5079
5079
  }
5080
- const { runDemo } = await import('../../runDemo-JPIZBQ2W.js');
5080
+ const { runDemo } = await import('../../runDemo-77JUEOSA.js');
5081
5081
  const result = await runDemo({
5082
5082
  apiBase: opts.apiUrl.replace(/\/$/, ""),
5083
5083
  dashboardBase: process.env.POME_DASHBOARD_URL ?? DEFAULT_DASHBOARD_URL,
@@ -5095,7 +5095,7 @@ function createProgram() {
5095
5095
  program.command("doctor").description(
5096
5096
  "Check the agent\u2194twin wiring: pome.json (or pome.yaml) present + valid, the local twin boots + serves, requests routed to the twin (not a hardcoded production host), egress floor active. On failure prints one named cause (file:line where knowable) + one concrete fix and exits non-zero."
5097
5097
  ).action(async () => {
5098
- const { runDoctorChecks } = await import('../../checks-6E6OKTHQ.js');
5098
+ const { runDoctorChecks } = await import('../../checks-TZ4BVN5S.js');
5099
5099
  const { renderDoctorReport } = await import('../../render-ZQQ4UMNO.js');
5100
5100
  const report = await runDoctorChecks();
5101
5101
  for (const line of renderDoctorReport(report, { passNote: true })) console.error(line);
@@ -5227,7 +5227,7 @@ function createProgram() {
5227
5227
  ).description(
5228
5228
  "Start a standalone twin as a long-lived foreground server (Ctrl-C to stop)"
5229
5229
  ).action(async (name, options) => {
5230
- const { runTwinStartCommand } = await import('../../twinStart-4EYV577J.js');
5230
+ const { runTwinStartCommand } = await import('../../twinStart-53YUOJVD.js');
5231
5231
  await runTwinStartCommand(name, options);
5232
5232
  });
5233
5233
  twin.command("reset").argument("[name]", "Twin name (default: github)", "github").description("Reset standalone twin state").action(async (name) => {