@pome-sh/cli 0.32.0 → 0.33.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/README.md +3 -3
- package/dist/build-info.json +3 -3
- package/dist/{checks-KGDGQ35O.js → checks-CAP2CSEW.js} +1 -1
- package/dist/{chunk-BK42YBOX.js → chunk-A2VNLUP7.js} +2 -2
- package/dist/{chunk-SDBBGCE7.js → chunk-CNG6DQWX.js} +7 -7
- package/dist/{chunk-IHKUFGYW.js → chunk-DWOCTCSE.js} +1 -1
- package/dist/{chunk-KIADZ7UM.js → chunk-PNR7OHDC.js} +2 -2
- package/dist/{chunk-WJFRBXL5.js → chunk-T73VMABH.js} +2 -2
- package/dist/{chunk-E665XWYU.js → chunk-VOHTQV4J.js} +1 -23
- package/dist/{chunk-KNULR6S4.js → chunk-YJ5PASVX.js} +2 -2
- package/dist/{runDemo-3JEAM6CM.js → runDemo-6WD2RSIH.js} +5 -5
- package/dist/{runTrialGroup-W7C4Z5DN.js → runTrialGroup-UBN46ZEJ.js} +5 -5
- package/dist/{server-DMLORMOV.js → server-FBKFPGR4.js} +1 -1
- package/dist/src/cli/main.js +33 -33
- package/dist/{src-FK536BIR.js → src-5SOF4PDV.js} +1 -1
- package/dist/{src-PW7U25ZX.js → src-AMLUIPYO.js} +1 -1
- package/dist/{src-SKCWAMVQ.js → src-ANO374BX.js} +1 -7
- package/dist/{src-56Y2R7ZQ.js → src-DO3BEABU.js} +1 -1
- package/dist/{src-KSLAF3I4.js → src-YGMRIKFV.js} +1 -1
- package/dist/twinHarness-2OFWSVPK.js +6 -0
- package/dist/{twinSeed-QCYKAY3I.js → twinSeed-2MRVMNIT.js} +1 -1
- package/dist/{twinStart-VUCN4CFY.js → twinStart-2ZNLS3ON.js} +4 -4
- package/package.json +2 -2
- package/dist/twinHarness-TSAQYDC5.js +0 -6
package/README.md
CHANGED
|
@@ -11,7 +11,7 @@ prints it to the terminal and records it to the dashboard, and
|
|
|
11
11
|
|
|
12
12
|
**📚 Full documentation lives at [docs.pome.sh](https://docs.pome.sh).**
|
|
13
13
|
Run `pome --help` (or `pome help <command>`) for the CLI reference, and
|
|
14
|
-
`pome docs getting-started` to
|
|
14
|
+
`pome docs getting-started` to print the quickstart's URL.
|
|
15
15
|
|
|
16
16
|
## Install
|
|
17
17
|
|
|
@@ -40,7 +40,7 @@ local/OSS package release.
|
|
|
40
40
|
|
|
41
41
|
```bash
|
|
42
42
|
pome login # one-time; opens the dashboard to sign in
|
|
43
|
-
pome init # scaffolds tasks/, examples/agents/, runs/, pome.
|
|
43
|
+
pome init # scaffolds tasks/, examples/agents/, runs/, pome.json
|
|
44
44
|
pome register agent my-agent # scopes runs to this project
|
|
45
45
|
pome run tasks/01-bug-happy-path.md --agent "node examples/agents/scripted-triage-agent.ts"
|
|
46
46
|
pome inspect latest # trace/audit view of the last run
|
|
@@ -49,7 +49,7 @@ pome inspect latest # trace/audit view of the last run
|
|
|
49
49
|
To capture a trace without the cloud (self-host), then get a verdict later:
|
|
50
50
|
|
|
51
51
|
```bash
|
|
52
|
-
pome run --local tasks/01-bug-happy-path.md # captures a raw trace only
|
|
52
|
+
pome run --local tasks/01-bug-happy-path.md # captures a raw trace only, no verdict
|
|
53
53
|
pome eval runs/01-bug-happy-path/<run-id> # uploads it for a cloud verdict
|
|
54
54
|
```
|
|
55
55
|
|
package/dist/build-info.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"package": "pome-sh",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"git_sha": "
|
|
5
|
-
"build_time": "2026-08-
|
|
3
|
+
"version": "0.33.1",
|
|
4
|
+
"git_sha": "15d61b80f3fb2ee0df893ca81c0c9e4d0afd0076",
|
|
5
|
+
"build_time": "2026-08-28T11:26:59.938Z"
|
|
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-
|
|
186
|
+
const { bootTwin } = await import('./twinHarness-2OFWSVPK.js');
|
|
187
187
|
harness = await bootTwin({
|
|
188
188
|
twin: "github",
|
|
189
189
|
seedState: void 0,
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { createHostedClient, perTwinReturnedByCloud, parseTaskFile, runAgentCommand, writeRunArtifactsCore, toTwinHttpEvent, redactJsonl, uploadRunBlobs, scoreFromFinalizeResponse, scoreStatus, evaluationCounts } from './chunk-
|
|
2
|
-
import { readSeedFileText, parseSeedFileText, soleTwinOf, seedsForTwins } from './chunk-
|
|
1
|
+
import { createHostedClient, perTwinReturnedByCloud, parseTaskFile, runAgentCommand, writeRunArtifactsCore, toTwinHttpEvent, redactJsonl, uploadRunBlobs, scoreFromFinalizeResponse, scoreStatus, evaluationCounts } from './chunk-YJ5PASVX.js';
|
|
2
|
+
import { readSeedFileText, parseSeedFileText, soleTwinOf, seedsForTwins } from './chunk-DWOCTCSE.js';
|
|
3
3
|
import { readManifest, normalizeManifestTwins } from './chunk-2V5A7NWP.js';
|
|
4
4
|
import { MOUNTED_TWINS, HostedAuthError, HostedDiscardRefusedError, HostedQuotaError, HostedOrchError, HostedTrialError, agentResponseSchema, isMultiTwinSeedEnvelope } from './chunk-72CG3JNL.js';
|
|
5
5
|
import { redactSecrets, redactEvent } from './chunk-SG6ZTIMT.js';
|
|
@@ -39,7 +39,7 @@ var TWIN_REGISTRY = {
|
|
|
39
39
|
defaultSeedState,
|
|
40
40
|
GitHubDomain,
|
|
41
41
|
openGitHubCloneDatabase
|
|
42
|
-
} = await import('./src-
|
|
42
|
+
} = await import('./src-DO3BEABU.js');
|
|
43
43
|
const db = openGitHubCloneDatabase();
|
|
44
44
|
const domain = new GitHubDomain(db);
|
|
45
45
|
domain.seed(seedState === void 0 ? defaultSeedState() : seedState);
|
|
@@ -63,7 +63,7 @@ var TWIN_REGISTRY = {
|
|
|
63
63
|
parseSeed: async (input) => (await import('./seed-IIMBJHAJ.js')).parseSeed(input),
|
|
64
64
|
seedFields: async () => Object.keys((await import('./seed-IIMBJHAJ.js')).seedSchema.shape),
|
|
65
65
|
async boot({ seedState, runId, recorder }) {
|
|
66
|
-
const { createSlackTwinApp, openSlackTwinDatabase, SlackDomain } = await import('./src-
|
|
66
|
+
const { createSlackTwinApp, openSlackTwinDatabase, SlackDomain } = await import('./src-ANO374BX.js');
|
|
67
67
|
const db = openSlackTwinDatabase(":memory:");
|
|
68
68
|
const domain = new SlackDomain(db);
|
|
69
69
|
domain.applySeed(seedState);
|
|
@@ -90,8 +90,8 @@ var TWIN_REGISTRY = {
|
|
|
90
90
|
parseSeed: async (input) => (await import('./seed-YWDTT2WL.js')).parseSeed(input),
|
|
91
91
|
seedFields: async () => Object.keys((await import('./seed-YWDTT2WL.js')).seedSchema.shape),
|
|
92
92
|
async boot({ seedState, runId, recorder, twinBaseUrl }) {
|
|
93
|
-
const stripeTwin = await import('./src-
|
|
94
|
-
const { createApp } = await import('./server-
|
|
93
|
+
const stripeTwin = await import('./src-AMLUIPYO.js');
|
|
94
|
+
const { createApp } = await import('./server-FBKFPGR4.js');
|
|
95
95
|
const {
|
|
96
96
|
applySeed: applyStripeSeed,
|
|
97
97
|
createTwinStripeApp,
|
|
@@ -136,7 +136,7 @@ var TWIN_REGISTRY = {
|
|
|
136
136
|
parseSeed: async (input) => (await import('./seed-NR6RUKXV.js')).parseSeed(input),
|
|
137
137
|
seedFields: async () => Object.keys((await import('./seed-NR6RUKXV.js')).gmailSeedSchema.shape),
|
|
138
138
|
async boot({ seedState, runId, recorder }) {
|
|
139
|
-
const { createGmailTwinApp, GmailDomain, openGmailTwinDatabase, parseSeed } = await import('./src-
|
|
139
|
+
const { createGmailTwinApp, GmailDomain, openGmailTwinDatabase, parseSeed } = await import('./src-YGMRIKFV.js');
|
|
140
140
|
const db = openGmailTwinDatabase(":memory:");
|
|
141
141
|
const seed = parseSeed(seedState);
|
|
142
142
|
const domain = new GmailDomain(db);
|
|
@@ -165,7 +165,7 @@ var TWIN_REGISTRY = {
|
|
|
165
165
|
LinearDomain,
|
|
166
166
|
openLinearTwinDatabase,
|
|
167
167
|
parseSeed
|
|
168
|
-
} = await import('./src-
|
|
168
|
+
} = await import('./src-5SOF4PDV.js');
|
|
169
169
|
const db = openLinearTwinDatabase(":memory:");
|
|
170
170
|
const seed = parseSeed(seedState);
|
|
171
171
|
const domain = new LinearDomain(db);
|
|
@@ -181,7 +181,7 @@ var TWIN_REGISTRY = {
|
|
|
181
181
|
}
|
|
182
182
|
};
|
|
183
183
|
async function createGitHubSmokeApp() {
|
|
184
|
-
const { createGitHubCloneApp } = await import('./src-
|
|
184
|
+
const { createGitHubCloneApp } = await import('./src-DO3BEABU.js');
|
|
185
185
|
return createGitHubCloneApp();
|
|
186
186
|
}
|
|
187
187
|
function defaultPortFor(twin, env = process.env) {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { parseTaskFile, seedStateForTwin, runAgentCommand, writeRunArtifactsCore } from './chunk-
|
|
2
|
-
import { createRecorder, bootTwin } from './chunk-
|
|
1
|
+
import { parseTaskFile, seedStateForTwin, runAgentCommand, writeRunArtifactsCore } from './chunk-YJ5PASVX.js';
|
|
2
|
+
import { createRecorder, bootTwin } from './chunk-T73VMABH.js';
|
|
3
3
|
import { getAvailablePort } from './chunk-XDU6TD4O.js';
|
|
4
4
|
import { buildEgressAllowlist, readBlockedEgress } from './chunk-CBFKZZBR.js';
|
|
5
5
|
import { eventSchema } from './chunk-6KJC4BTO.js';
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { TWIN_NAMES, isTwinName, TWIN_REGISTRY } from './chunk-
|
|
2
|
-
import { createFileBackedRecorderStore, createRecorderStore } from './chunk-
|
|
1
|
+
import { TWIN_NAMES, isTwinName, TWIN_REGISTRY } from './chunk-CNG6DQWX.js';
|
|
2
|
+
import { createFileBackedRecorderStore, createRecorderStore } from './chunk-VOHTQV4J.js';
|
|
3
3
|
|
|
4
4
|
// src/recorder/recorder.ts
|
|
5
5
|
function createRecorder(options = {}) {
|
|
@@ -418,10 +418,6 @@ var twinMeta = z.object({
|
|
|
418
418
|
healthz: z.custom(isFunction).optional(),
|
|
419
419
|
bodyReader: z.custom(isFunction).optional(),
|
|
420
420
|
middleware: z.custom(isFunction).optional(),
|
|
421
|
-
legacyMcp: z.object({
|
|
422
|
-
aliases: z.boolean().optional(),
|
|
423
|
-
missingTool: z.custom(isFunction).optional()
|
|
424
|
-
}).optional(),
|
|
425
421
|
pomeHealth: z.custom(isFunction).optional(),
|
|
426
422
|
unsupported: z.custom(isFunction).optional(),
|
|
427
423
|
pomeRoutes: z.record(z.string(), z.custom(isFunction)).optional(),
|
|
@@ -1610,25 +1606,7 @@ function createApp(definition, options = {}) {
|
|
|
1610
1606
|
}));
|
|
1611
1607
|
session.post("/mcp/call", recorder.handle({ mutation: false }, async (c) => {
|
|
1612
1608
|
const raw = await readBody(c);
|
|
1613
|
-
|
|
1614
|
-
if (definition.legacyMcp?.aliases) {
|
|
1615
|
-
const rec = raw && typeof raw === "object" && !Array.isArray(raw) ? raw : {};
|
|
1616
|
-
const name = rec.tool ?? rec.name;
|
|
1617
|
-
if (typeof name !== "string" || name.length === 0) {
|
|
1618
|
-
const missing = definition.legacyMcp.missingTool;
|
|
1619
|
-
if (missing) {
|
|
1620
|
-
const envelope = missing();
|
|
1621
|
-
return { status: envelope.status, body: envelope.body };
|
|
1622
|
-
}
|
|
1623
|
-
z.object({ tool: z.string().min(1) }).parse(rec);
|
|
1624
|
-
}
|
|
1625
|
-
call = {
|
|
1626
|
-
tool: name,
|
|
1627
|
-
arguments: rec.arguments ?? rec.params ?? {}
|
|
1628
|
-
};
|
|
1629
|
-
} else {
|
|
1630
|
-
call = z.object({ tool: z.string().min(1), arguments: jsonRecord.default({}) }).parse(raw);
|
|
1631
|
-
}
|
|
1609
|
+
const call = z.object({ tool: z.string().min(1), arguments: jsonRecord.default({}) }).parse(raw);
|
|
1632
1610
|
setRecordedTool(c, call.tool);
|
|
1633
1611
|
const tool = findTool(definition, call.tool);
|
|
1634
1612
|
const parsed = tool.schema.parse(call.arguments);
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { gmailSeedSchema, defaultSeedState } from './chunk-3T5XN64P.js';
|
|
2
2
|
import { linearSeedSchema, defaultSeedState as defaultSeedState$1 } from './chunk-Q5NBPR57.js';
|
|
3
|
-
import { isTwinName, TWIN_REGISTRY } from './chunk-
|
|
3
|
+
import { isTwinName, TWIN_REGISTRY } from './chunk-CNG6DQWX.js';
|
|
4
4
|
import { criterionSchema, normalizeTaskConfigKeys, finalizeResponseSchema, HostedDiscardRefusedError, HostedOrchError, HostedAuthError, HostedQuotaError, submitResultResponseSchema, createEvalSessionResponseSchema, createSessionResponseSchema, sessionPublicSchema } from './chunk-72CG3JNL.js';
|
|
5
5
|
import { seedSchema, parseSeed, defaultSeedState as defaultSeedState$2 } from './chunk-HJX25USP.js';
|
|
6
|
-
import { toTwinHttpEventRow } from './chunk-
|
|
6
|
+
import { toTwinHttpEventRow } from './chunk-VOHTQV4J.js';
|
|
7
7
|
import { redactEvent, redactSecrets } from './chunk-SG6ZTIMT.js';
|
|
8
8
|
import { mkdir, appendFile, writeFile, readFile } from 'node:fs/promises';
|
|
9
9
|
import { existsSync } from 'node:fs';
|
|
@@ -1,17 +1,17 @@
|
|
|
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-
|
|
4
|
-
import { createHostedClient, parseTaskFile, uploadRunBlobs, scoreFromFinalizeResponse, scoreStatus, outcomeOf } from './chunk-
|
|
3
|
+
import { runTask, demoTaskPath, DEMO_TASK_NAME, DEMO_REPO } from './chunk-PNR7OHDC.js';
|
|
4
|
+
import { createHostedClient, parseTaskFile, uploadRunBlobs, scoreFromFinalizeResponse, scoreStatus, outcomeOf } from './chunk-YJ5PASVX.js';
|
|
5
5
|
import './chunk-NW7HGA2K.js';
|
|
6
6
|
import './chunk-3T5XN64P.js';
|
|
7
7
|
import './chunk-Q5NBPR57.js';
|
|
8
|
-
import { bootTwin } from './chunk-
|
|
9
|
-
import './chunk-
|
|
8
|
+
import { bootTwin } from './chunk-T73VMABH.js';
|
|
9
|
+
import './chunk-CNG6DQWX.js';
|
|
10
10
|
import { getAvailablePort } from './chunk-XDU6TD4O.js';
|
|
11
11
|
import { HostedQuotaError, HostedOrchError } from './chunk-72CG3JNL.js';
|
|
12
12
|
import './chunk-CBFKZZBR.js';
|
|
13
13
|
import './chunk-HJX25USP.js';
|
|
14
|
-
import './chunk-
|
|
14
|
+
import './chunk-VOHTQV4J.js';
|
|
15
15
|
import './chunk-6KJC4BTO.js';
|
|
16
16
|
import './chunk-SG6ZTIMT.js';
|
|
17
17
|
import './chunk-CF6EIU2U.js';
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
import { newGroupId, criterionPhrase } from './chunk-RGZBC7NF.js';
|
|
2
|
-
import { runTaskHosted, resolveRunAgentIdentity } from './chunk-
|
|
3
|
-
import { createHostedClient, parseTaskFile, outcomeOf } from './chunk-
|
|
4
|
-
import './chunk-
|
|
2
|
+
import { runTaskHosted, resolveRunAgentIdentity } from './chunk-A2VNLUP7.js';
|
|
3
|
+
import { createHostedClient, parseTaskFile, outcomeOf } from './chunk-YJ5PASVX.js';
|
|
4
|
+
import './chunk-DWOCTCSE.js';
|
|
5
5
|
import './chunk-NW7HGA2K.js';
|
|
6
6
|
import './chunk-3T5XN64P.js';
|
|
7
7
|
import './chunk-Q5NBPR57.js';
|
|
8
|
-
import './chunk-
|
|
8
|
+
import './chunk-CNG6DQWX.js';
|
|
9
9
|
import './chunk-2V5A7NWP.js';
|
|
10
10
|
import { HostedQuotaError, HostedTrialError } from './chunk-72CG3JNL.js';
|
|
11
11
|
import './chunk-HJX25USP.js';
|
|
12
|
-
import './chunk-
|
|
12
|
+
import './chunk-VOHTQV4J.js';
|
|
13
13
|
import './chunk-6KJC4BTO.js';
|
|
14
14
|
import './chunk-SG6ZTIMT.js';
|
|
15
15
|
import './chunk-CF6EIU2U.js';
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { POME_RECORDER_EVENTS_PATH, PROVIDER_SHAPED_TEAM_ID, TwinBootError, TwinError, UnknownToolError, bearerAuth, createAdminGate, createApp, createFileBackedRecorderStore, createRecorderHandle, createRecorderStore, created, ensureTwinAuthSecret, failureInjectionMiddleware, formTokenResolver, isLoopbackHost, mintProviderToken, ok, queryTokenResolver, recordedRequestHeaders, requireAdminAuth, resolveAuthSecret, resolveRecorderStore, serve, setClientIp, setRecordedTool, toTwinHttpEventRow, twinBuildInfo, verifyProviderToken } from './chunk-
|
|
1
|
+
export { POME_RECORDER_EVENTS_PATH, PROVIDER_SHAPED_TEAM_ID, TwinBootError, TwinError, UnknownToolError, bearerAuth, createAdminGate, createApp, createFileBackedRecorderStore, createRecorderHandle, createRecorderStore, created, ensureTwinAuthSecret, failureInjectionMiddleware, formTokenResolver, isLoopbackHost, mintProviderToken, ok, queryTokenResolver, recordedRequestHeaders, requireAdminAuth, resolveAuthSecret, resolveRecorderStore, serve, setClientIp, setRecordedTool, toTwinHttpEventRow, twinBuildInfo, verifyProviderToken } from './chunk-VOHTQV4J.js';
|
|
2
2
|
import './chunk-6KJC4BTO.js';
|
|
3
3
|
export { redactEvent, redactSecrets } from './chunk-SG6ZTIMT.js';
|
|
4
4
|
export { FAILURE_INJECTION_OVERRIDE_KEY, createFailureInjectionStore, failureInjectionRuleSchema } from './chunk-CF6EIU2U.js';
|
package/dist/src/cli/main.js
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import { DEFAULT_CONTROL_PLANE_URL, DEFAULT_DASHBOARD_URL, clearLocalCredentials, friendlyHostedError, SESSION_TWIN_NAMES, runSessionCreate, runSessionList, runSessionStop, resolveCredentials, runTaskHosted, discoverRunSet, VERDICT_ARTIFACT_VERSION, persistCredentialsAfterLogin, DEFAULT_DOCS_SITE_ORIGIN, resolveSeams, resolveCachedAgentId, readLinkCache, postAgentResolver, writeLinkCache, ensurePomeGitignored } from '../../chunk-
|
|
3
|
-
import { assetPath, runTask, resolvePackageRoot, DEMO_TASK_NAME, demoTaskPath } from '../../chunk-
|
|
4
|
-
import { parseTaskFile, scoreStatus, runScoreLine, readLatestRun, readMetaSummary, outcomeOf, readConfigTwins, scoreCountsSummary, markerFor, criterionMarkerLabel, twinSkipSuffix, readCodeCriteria, createHostedClient, toTwinHttpEvent, redactJsonl, scoreFromFinalizeResponse, parseGitHubSeedState, uploadRunBlobs, isPreSatisfied } from '../../chunk-
|
|
5
|
-
import '../../chunk-
|
|
2
|
+
import { DEFAULT_CONTROL_PLANE_URL, DEFAULT_DASHBOARD_URL, clearLocalCredentials, friendlyHostedError, SESSION_TWIN_NAMES, runSessionCreate, runSessionList, runSessionStop, resolveCredentials, runTaskHosted, discoverRunSet, VERDICT_ARTIFACT_VERSION, persistCredentialsAfterLogin, DEFAULT_DOCS_SITE_ORIGIN, resolveSeams, resolveCachedAgentId, readLinkCache, postAgentResolver, writeLinkCache, ensurePomeGitignored } from '../../chunk-A2VNLUP7.js';
|
|
3
|
+
import { assetPath, runTask, resolvePackageRoot, DEMO_TASK_NAME, demoTaskPath } from '../../chunk-PNR7OHDC.js';
|
|
4
|
+
import { parseTaskFile, scoreStatus, runScoreLine, readLatestRun, readMetaSummary, outcomeOf, readConfigTwins, scoreCountsSummary, markerFor, criterionMarkerLabel, twinSkipSuffix, readCodeCriteria, createHostedClient, toTwinHttpEvent, redactJsonl, scoreFromFinalizeResponse, parseGitHubSeedState, uploadRunBlobs, isPreSatisfied } from '../../chunk-YJ5PASVX.js';
|
|
5
|
+
import '../../chunk-DWOCTCSE.js';
|
|
6
6
|
import '../../chunk-NW7HGA2K.js';
|
|
7
7
|
import { GMAIL_CHECKS } from '../../chunk-JM6VS62R.js';
|
|
8
8
|
import '../../chunk-3T5XN64P.js';
|
|
9
9
|
import { LINEAR_CHECKS } from '../../chunk-TSOSDKXP.js';
|
|
10
10
|
import '../../chunk-Q5NBPR57.js';
|
|
11
|
-
import '../../chunk-
|
|
12
|
-
import { TWIN_NAME_LIST, isTwinName, createGitHubSmokeApp } from '../../chunk-
|
|
11
|
+
import '../../chunk-T73VMABH.js';
|
|
12
|
+
import { TWIN_NAME_LIST, isTwinName, createGitHubSmokeApp } from '../../chunk-CNG6DQWX.js';
|
|
13
13
|
import { readManifest, writeManifest, MANIFEST_JSON, readRequiredManifest, normalizeManifestTwins } from '../../chunk-2V5A7NWP.js';
|
|
14
14
|
import '../../chunk-XDU6TD4O.js';
|
|
15
15
|
import { MOUNTED_TWINS, deriveAgentSlug, exitCodeFor, HostedUsageError, HostedOrchError, HostedAuthError, HostedQuotaError } from '../../chunk-72CG3JNL.js';
|
|
@@ -18,7 +18,7 @@ import { TAPE_ASSERTABLE_TOOLS } from '../../chunk-C4BVTUA3.js';
|
|
|
18
18
|
import { seedSchema } from '../../chunk-HJX25USP.js';
|
|
19
19
|
import { SLACK_CHECKS } from '../../chunk-2ZGVDTJC.js';
|
|
20
20
|
import { oneOf, defineCheck, repoRef, VACUITY_SENTINEL_NUMBER, childStatePath, VACUITY_SENTINEL, statePath, templateSlots, renderCheck, checksDigest, checkPattern, checkNearMissPattern } from '../../chunk-JWJYNAWI.js';
|
|
21
|
-
import '../../chunk-
|
|
21
|
+
import '../../chunk-VOHTQV4J.js';
|
|
22
22
|
import { eventSchema, isLegacyEventRow } from '../../chunk-6KJC4BTO.js';
|
|
23
23
|
import { redactEvent, redactSecrets } from '../../chunk-SG6ZTIMT.js';
|
|
24
24
|
import '../../chunk-CF6EIU2U.js';
|
|
@@ -821,7 +821,7 @@ async function throwForStatus(res) {
|
|
|
821
821
|
|
|
822
822
|
// src/task/seed-verifier.ts
|
|
823
823
|
async function verifySeedWithTwin(seed) {
|
|
824
|
-
const { GitHubDomain, openGitHubCloneDatabase } = await import('../../src-
|
|
824
|
+
const { GitHubDomain, openGitHubCloneDatabase } = await import('../../src-DO3BEABU.js');
|
|
825
825
|
const db = openGitHubCloneDatabase(":memory:");
|
|
826
826
|
try {
|
|
827
827
|
new GitHubDomain(db).seed(seed);
|
|
@@ -4622,7 +4622,7 @@ var DEFAULT_AGENT_COMMAND = `node ${DEFAULT_AGENT_FILE}`;
|
|
|
4622
4622
|
var MANIFEST_SCHEMA_URL = "https://pome.sh/schemas/v1/pome.json";
|
|
4623
4623
|
var MAX_UNREADABLE_PATHS_SHOWN = 5;
|
|
4624
4624
|
function readPackageVersion() {
|
|
4625
|
-
if ("0.
|
|
4625
|
+
if ("0.33.1".length > 0) return "0.33.1";
|
|
4626
4626
|
try {
|
|
4627
4627
|
const here = dirname(fileURLToPath(import.meta.url));
|
|
4628
4628
|
const candidates = [
|
|
@@ -4643,9 +4643,9 @@ function readPackageVersion() {
|
|
|
4643
4643
|
function createProgram() {
|
|
4644
4644
|
const program = new Command();
|
|
4645
4645
|
program.name("pome").description(
|
|
4646
|
-
"
|
|
4646
|
+
"Test AI agents against digital twins of real SaaS APIs. Runs are recorded to app.pome.sh. Start with `pome demo`."
|
|
4647
4647
|
).version(PACKAGE_VERSION).showHelpAfterError("(add --help for usage)");
|
|
4648
|
-
program.command("init").description("Create starter
|
|
4648
|
+
program.command("init").summary("Set up Pome in this project").description("Create pome.json, plus starter files in a new project").option(
|
|
4649
4649
|
"--sdk <name>",
|
|
4650
4650
|
"Scaffold for a specific agent SDK (claude | claude-managed). Adds the SDK-specific example file and pre-fills agent.framework so the dashboard badges runs correctly."
|
|
4651
4651
|
).option(
|
|
@@ -4720,7 +4720,7 @@ function createProgram() {
|
|
|
4720
4720
|
}
|
|
4721
4721
|
console.error(postInitMessage);
|
|
4722
4722
|
});
|
|
4723
|
-
program.command("login").description("Sign in with Clerk and store a hosted team API key (macOS Keychain or ~/.pome/credentials.json)").option(
|
|
4723
|
+
program.command("login").summary("Sign in and save an API key").description("Sign in with Clerk and store a hosted team API key (macOS Keychain or ~/.pome/credentials.json)").option(
|
|
4724
4724
|
"--api-url <url>",
|
|
4725
4725
|
"Control-plane base URL.",
|
|
4726
4726
|
process.env.POME_API_URL ?? DEFAULT_CONTROL_PLANE_URL
|
|
@@ -4737,14 +4737,14 @@ function createProgram() {
|
|
|
4737
4737
|
await loginWithClerk(options);
|
|
4738
4738
|
}
|
|
4739
4739
|
);
|
|
4740
|
-
program.command("logout").description("Remove locally stored hosted credentials (Keychain entry and/or ~/.pome/credentials.json)").action(async () => {
|
|
4740
|
+
program.command("logout").summary("Delete the saved API key").description("Remove locally stored hosted credentials (Keychain entry and/or ~/.pome/credentials.json)").action(async () => {
|
|
4741
4741
|
await clearLocalCredentials();
|
|
4742
4742
|
console.error("Removed local Pome credentials.");
|
|
4743
4743
|
console.error(
|
|
4744
4744
|
"Server-side keys are not auto-revoked \u2014 revoke API keys from the dashboard if this device was lost."
|
|
4745
4745
|
);
|
|
4746
4746
|
});
|
|
4747
|
-
program.command("docs").argument("[topic]", "Topic id (e.g. getting-started, github, cli) \u2014 prints the docs.pome.sh URL").option(
|
|
4747
|
+
program.command("docs").summary("Print a docs.pome.sh URL by topic").argument("[topic]", "Topic id (e.g. getting-started, github, cli) \u2014 prints the docs.pome.sh URL").option(
|
|
4748
4748
|
"--site <origin>",
|
|
4749
4749
|
"Override docs site origin (default https://docs.pome.sh)"
|
|
4750
4750
|
).option(
|
|
@@ -4756,7 +4756,7 @@ function createProgram() {
|
|
|
4756
4756
|
).action(async (topic, opts) => {
|
|
4757
4757
|
await runDocsCommand(topic, { site: opts.site, urlOnly: Boolean(opts.url) });
|
|
4758
4758
|
});
|
|
4759
|
-
program.command("tasks").argument(
|
|
4759
|
+
program.command("tasks").summary("List or copy the bundled tasks").argument(
|
|
4760
4760
|
"[twin]",
|
|
4761
4761
|
"Twin id (e.g. github). Omit to list available twins."
|
|
4762
4762
|
).option(
|
|
@@ -4781,7 +4781,7 @@ function createProgram() {
|
|
|
4781
4781
|
});
|
|
4782
4782
|
}
|
|
4783
4783
|
);
|
|
4784
|
-
const checks = program.command("checks").argument("[twin]", "Twin id (e.g. github). Omit to list twins that declare checks.").option("--json", "Emit the declaration as JSON (for skills and agents).", false).description(
|
|
4784
|
+
const checks = program.command("checks").summary("List, add, and lint a twin's checks").argument("[twin]", "Twin id (e.g. github). Omit to list twins that declare checks.").option("--json", "Emit the declaration as JSON (for skills and agents).", false).description(
|
|
4785
4785
|
"Browse the typed checks a twin declares \u2014 the closed set a [code] criterion is graded by"
|
|
4786
4786
|
).action(async (twin2, opts) => {
|
|
4787
4787
|
await runChecksCommand(twin2, { json: opts.json });
|
|
@@ -4807,7 +4807,7 @@ function createProgram() {
|
|
|
4807
4807
|
checks.command("lint").argument("<file...>", "Task markdown file(s) \u2014 shell globs work: tasks/*.md").description("Report [code] criteria that bind no declared check, so are never graded").action(async (files) => {
|
|
4808
4808
|
await runChecksLintCommand(files);
|
|
4809
4809
|
});
|
|
4810
|
-
program.command("compile-seeds").argument("[target]", "Task .md file or directory (defaults to ./tasks)").option("--force", "Recompile even if the sidecar's source hash matches", false).option(
|
|
4810
|
+
program.command("compile-seeds").summary("Compile a task's seed state to JSON").argument("[target]", "Task .md file or directory (defaults to ./tasks)").option("--force", "Recompile even if the sidecar's source hash matches", false).option(
|
|
4811
4811
|
"--hosted",
|
|
4812
4812
|
"Compile via the Pome control plane instead of calling Anthropic directly (uses your Pome API key; no ANTHROPIC_API_KEY needed)",
|
|
4813
4813
|
false
|
|
@@ -4825,7 +4825,7 @@ function createProgram() {
|
|
|
4825
4825
|
});
|
|
4826
4826
|
if (code !== 0) process.exitCode = code;
|
|
4827
4827
|
});
|
|
4828
|
-
const register = program.command("register").description(
|
|
4828
|
+
const register = program.command("register").summary("Register an agent with Pome").description(
|
|
4829
4829
|
"Register a cloud entity (agent, ...) and link this project to it"
|
|
4830
4830
|
);
|
|
4831
4831
|
register.command("agent").argument("<name>", 'Human-readable agent name (e.g. "triage-bot")').option(
|
|
@@ -4857,7 +4857,7 @@ function createProgram() {
|
|
|
4857
4857
|
}
|
|
4858
4858
|
}
|
|
4859
4859
|
);
|
|
4860
|
-
const session = program.command("sandbox").description(
|
|
4860
|
+
const session = program.command("sandbox").summary("Create, list, and stop sandboxes").description(
|
|
4861
4861
|
"Hosted sandboxes (same API as the dashboard Twins page \u2014 requires login)"
|
|
4862
4862
|
);
|
|
4863
4863
|
session.command("create").description("Create a hosted sandbox for one or more twins and print its connection info").option(
|
|
@@ -4972,7 +4972,7 @@ function createProgram() {
|
|
|
4972
4972
|
}
|
|
4973
4973
|
}
|
|
4974
4974
|
);
|
|
4975
|
-
program.command("run").argument(
|
|
4975
|
+
program.command("run").summary("Run a task and print the score").argument(
|
|
4976
4976
|
"[path]",
|
|
4977
4977
|
'Task markdown file or directory. Omit to run the demo task ("that was ours, run yours"): tasks/first-run-demo.md is dropped into your project on first use with runs: 5 pinned.'
|
|
4978
4978
|
).option("--agent <command>", "Agent command to run").option(
|
|
@@ -5069,7 +5069,7 @@ function createProgram() {
|
|
|
5069
5069
|
return;
|
|
5070
5070
|
}
|
|
5071
5071
|
{
|
|
5072
|
-
const { runDoctorChecks } = await import('../../checks-
|
|
5072
|
+
const { runDoctorChecks } = await import('../../checks-CAP2CSEW.js');
|
|
5073
5073
|
const { renderDoctorReport } = await import('../../render-ZQQ4UMNO.js');
|
|
5074
5074
|
const doctorReport = await runDoctorChecks({ mode: useLocal ? "full" : "hosted" });
|
|
5075
5075
|
if (!doctorReport.ok) {
|
|
@@ -5107,7 +5107,7 @@ function createProgram() {
|
|
|
5107
5107
|
taskForRuns.config.runs
|
|
5108
5108
|
);
|
|
5109
5109
|
if (k > 1) {
|
|
5110
|
-
const { runTrialGroup } = await import('../../runTrialGroup-
|
|
5110
|
+
const { runTrialGroup } = await import('../../runTrialGroup-UBN46ZEJ.js');
|
|
5111
5111
|
const fileForRerun = relative(process.cwd(), file);
|
|
5112
5112
|
const rerunCommand = defaultTask ? options.trials !== void 0 ? `pome run -n ${k}` : "pome run" : `pome run ${fileForRerun && !fileForRerun.startsWith("..") ? fileForRerun : file} -n ${k}`;
|
|
5113
5113
|
const groupResult = await runTrialGroup({
|
|
@@ -5183,7 +5183,7 @@ function createProgram() {
|
|
|
5183
5183
|
process.exitCode = worstExit;
|
|
5184
5184
|
}
|
|
5185
5185
|
);
|
|
5186
|
-
program.command("demo").description(
|
|
5186
|
+
program.command("demo").summary("Run a sample task, no account needed").description(
|
|
5187
5187
|
"Zero-auth first-run demo: boots a local GitHub twin, runs the bundled demo agent for 5 isolated trials (model calls via pome's anonymous demo gateway), and prints per-trial verdicts evaluated in Pome cloud. No signup, no API keys; ends with a no-login preview link."
|
|
5188
5188
|
).option(
|
|
5189
5189
|
"--api-url <url>",
|
|
@@ -5201,7 +5201,7 @@ function createProgram() {
|
|
|
5201
5201
|
process.exitCode = 5;
|
|
5202
5202
|
return;
|
|
5203
5203
|
}
|
|
5204
|
-
const { runDemo } = await import('../../runDemo-
|
|
5204
|
+
const { runDemo } = await import('../../runDemo-6WD2RSIH.js');
|
|
5205
5205
|
const result = await runDemo({
|
|
5206
5206
|
apiBase: opts.apiUrl.replace(/\/$/, ""),
|
|
5207
5207
|
dashboardBase: process.env.POME_DASHBOARD_URL ?? DEFAULT_DASHBOARD_URL,
|
|
@@ -5216,16 +5216,16 @@ function createProgram() {
|
|
|
5216
5216
|
const code = await runDemoAgentCommand();
|
|
5217
5217
|
if (code !== 0) process.exitCode = code;
|
|
5218
5218
|
});
|
|
5219
|
-
program.command("doctor").description(
|
|
5219
|
+
program.command("doctor").summary("Check the agent and twin wiring").description(
|
|
5220
5220
|
"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."
|
|
5221
5221
|
).action(async () => {
|
|
5222
|
-
const { runDoctorChecks } = await import('../../checks-
|
|
5222
|
+
const { runDoctorChecks } = await import('../../checks-CAP2CSEW.js');
|
|
5223
5223
|
const { renderDoctorReport } = await import('../../render-ZQQ4UMNO.js');
|
|
5224
5224
|
const report = await runDoctorChecks();
|
|
5225
5225
|
for (const line of renderDoctorReport(report, { passNote: true })) console.error(line);
|
|
5226
5226
|
if (!report.ok) process.exitCode = 1;
|
|
5227
5227
|
});
|
|
5228
|
-
program.command("eval").argument(
|
|
5228
|
+
program.command("eval").summary("Score a trace recorded earlier").argument(
|
|
5229
5229
|
"[run-dir]",
|
|
5230
5230
|
"Existing run directory (runs/<task>/<run-id>). Omit to use <artifacts-dir>/latest.json."
|
|
5231
5231
|
).option(
|
|
@@ -5267,7 +5267,7 @@ function createProgram() {
|
|
|
5267
5267
|
for (const line of renderEvents(eventsResult.events)) console.log(line);
|
|
5268
5268
|
}
|
|
5269
5269
|
});
|
|
5270
|
-
program.command("fix-prompt").argument(
|
|
5270
|
+
program.command("fix-prompt").summary("Build a prompt for a failed run").argument(
|
|
5271
5271
|
"[target]",
|
|
5272
5272
|
"Artifacts root or a trial run dir (default: runs). Legacy form: a path to events.jsonl \u2014 then <task> is required."
|
|
5273
5273
|
).argument(
|
|
@@ -5383,7 +5383,7 @@ function createProgram() {
|
|
|
5383
5383
|
})
|
|
5384
5384
|
);
|
|
5385
5385
|
});
|
|
5386
|
-
const twin = program.command("twin").description("
|
|
5386
|
+
const twin = program.command("twin").summary("Run a twin on this machine").description("Start and reset a twin on this machine, print its status or a starter seed file");
|
|
5387
5387
|
twin.command("start").argument(
|
|
5388
5388
|
"[name]",
|
|
5389
5389
|
`Twin name (${TWIN_NAME_LIST.join(" | ")}). Optional when --seed names exactly one twin.`
|
|
@@ -5396,7 +5396,7 @@ function createProgram() {
|
|
|
5396
5396
|
).description(
|
|
5397
5397
|
"Start a standalone twin as a long-lived foreground server (Ctrl-C to stop)"
|
|
5398
5398
|
).action(async (name, options) => {
|
|
5399
|
-
const { runTwinStartCommand } = await import('../../twinStart-
|
|
5399
|
+
const { runTwinStartCommand } = await import('../../twinStart-2ZNLS3ON.js');
|
|
5400
5400
|
await runTwinStartCommand(name, options);
|
|
5401
5401
|
});
|
|
5402
5402
|
twin.command("seed").argument("<name...>", `Twin name (${TWIN_NAME_LIST.join(" | ")}). Repeat for one file covering several.`).option("--out <path>", "Write to this file instead of stdout. Refuses to overwrite.").option(
|
|
@@ -5405,7 +5405,7 @@ function createProgram() {
|
|
|
5405
5405
|
).description(
|
|
5406
5406
|
"Print a starter seed file for a twin, generated from the twin's own starting state"
|
|
5407
5407
|
).action(async (names, options) => {
|
|
5408
|
-
const { runTwinSeedCommand } = await import('../../twinSeed-
|
|
5408
|
+
const { runTwinSeedCommand } = await import('../../twinSeed-2MRVMNIT.js');
|
|
5409
5409
|
await runTwinSeedCommand(names, options);
|
|
5410
5410
|
});
|
|
5411
5411
|
twin.command("reset").argument("[name]", "Twin name (default: github)", "github").description("Reset standalone twin state").action(async (name) => {
|
|
@@ -5428,7 +5428,7 @@ function createProgram() {
|
|
|
5428
5428
|
}
|
|
5429
5429
|
console.log(await import('node:fs/promises').then((fs) => fs.readFile(".pome/twin-status.json", "utf8")));
|
|
5430
5430
|
});
|
|
5431
|
-
program.command("endpoints").argument("<name>", "Twin name").description("List
|
|
5431
|
+
program.command("endpoints").summary("List a twin's endpoints").argument("<name>", "Twin name").description("List the endpoints the github or gmail twin serves").action((name) => {
|
|
5432
5432
|
const endpoints = name === "github" ? SUPPORTED_GITHUB_ENDPOINTS : name === "gmail" ? SUPPORTED_GMAIL_ENDPOINTS : null;
|
|
5433
5433
|
if (!endpoints) {
|
|
5434
5434
|
throw new Error("Endpoint listing is available for: github, gmail.");
|
|
@@ -5437,7 +5437,7 @@ function createProgram() {
|
|
|
5437
5437
|
console.log(`${endpoint} semantic`);
|
|
5438
5438
|
}
|
|
5439
5439
|
});
|
|
5440
|
-
program.command("capture-server").description(
|
|
5440
|
+
program.command("capture-server").summary("Record the agent's model calls").description(
|
|
5441
5441
|
"Boot an HTTP CONNECT-tunnel proxy that appends one LlmCallEvent per tunnel to events.jsonl. Spawned by `pome run`; agent traffic flows via HTTPS_PROXY."
|
|
5442
5442
|
).option("--port <port>", "TCP port to listen on (0 = ephemeral).", "8910").option(
|
|
5443
5443
|
"--events-out <path>",
|
|
@@ -3,7 +3,7 @@ import { MCP_PAGE_MAX, defaultSeedState, linearSeedSchema, notFound, badUserInpu
|
|
|
3
3
|
export { DEFAULT_LINEAR_CLOCK, DEFAULT_LINEAR_EMAIL, DEFAULT_LINEAR_PORT, DEFAULT_LINEAR_SID, DEFAULT_LINEAR_TOKEN, LINEAR_PROVIDER_TOKEN_PREFIX, LinearTwinError, STATE_EXPORT_CAP, assertWebhookUrl, defaultSeedState, linearErrorEnvelope, linearSeedSchema, loadSeedFromEnv, parseSeed, unauthorizedEnvelope, unsupportedEnvelope, webhookUrlError } from './chunk-Q5NBPR57.js';
|
|
4
4
|
import './chunk-JWJYNAWI.js';
|
|
5
5
|
import { routeInputDeclarer, mountDeclaredRoute, UndeclaredInputError } from './chunk-IZFM7W2V.js';
|
|
6
|
-
import { loadMcpToolFixture, deriveMcpToolTable, openTwinDatabase, defineTwin, createApp } from './chunk-
|
|
6
|
+
import { loadMcpToolFixture, deriveMcpToolTable, openTwinDatabase, defineTwin, createApp } from './chunk-VOHTQV4J.js';
|
|
7
7
|
import './chunk-6KJC4BTO.js';
|
|
8
8
|
import './chunk-SG6ZTIMT.js';
|
|
9
9
|
import './chunk-CF6EIU2U.js';
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { routeInputDeclarer, bracketedQuery, integerInput, booleanInput, mountDeclaredRoute, UndeclaredInputError } from './chunk-IZFM7W2V.js';
|
|
2
|
-
import { loadMcpToolFixture, openTwinDatabase, defineTwin, twinBuildInfo, deriveMcpToolTable, failureInjectionMiddleware, createApp, recordedRequestHeaders, UnknownToolError } from './chunk-
|
|
2
|
+
import { loadMcpToolFixture, openTwinDatabase, defineTwin, twinBuildInfo, deriveMcpToolTable, failureInjectionMiddleware, createApp, recordedRequestHeaders, UnknownToolError } from './chunk-VOHTQV4J.js';
|
|
3
3
|
import './chunk-6KJC4BTO.js';
|
|
4
4
|
import './chunk-SG6ZTIMT.js';
|
|
5
5
|
import { defaultSeed, seedSchema, ensureMigratedColumns, ensureStripeTables, resetStripeTables, looksLikeApiKey, resolveSidFromKey, applySeed, newId, newClientSecret, nowUnix, requestId, nowIso } from './chunk-SLTBPJKZ.js';
|
|
@@ -3,7 +3,7 @@ import './chunk-JWJYNAWI.js';
|
|
|
3
3
|
import { defaultSeedState, parseSeed } from './chunk-ZDS25NS5.js';
|
|
4
4
|
export { defaultSeedState, loadSeedFromEnv, parseSeed, seedSchema } from './chunk-ZDS25NS5.js';
|
|
5
5
|
import { routeInputDeclarer, booleanInput, integerInput, mountDeclaredRoute, UndeclaredInputError } from './chunk-IZFM7W2V.js';
|
|
6
|
-
import { loadMcpToolFixture, defineTwin, queryTokenResolver, formTokenResolver, deriveMcpToolTable, UnknownToolError, openTwinDatabase, createApp, typeDisagreements } from './chunk-
|
|
6
|
+
import { loadMcpToolFixture, defineTwin, queryTokenResolver, formTokenResolver, deriveMcpToolTable, UnknownToolError, openTwinDatabase, createApp, typeDisagreements } from './chunk-VOHTQV4J.js';
|
|
7
7
|
import './chunk-6KJC4BTO.js';
|
|
8
8
|
import './chunk-SG6ZTIMT.js';
|
|
9
9
|
import './chunk-CF6EIU2U.js';
|
|
@@ -3101,12 +3101,6 @@ var slackTwinDefinition = defineTwin({
|
|
|
3101
3101
|
// engine-owned surface — official Slack SDKs default to
|
|
3102
3102
|
// application/x-www-form-urlencoded — and malformed JSON collapses to {}.
|
|
3103
3103
|
bodyReader: (c) => parseFormOrJson(c),
|
|
3104
|
-
// Frozen legacy /mcp/call surface: {name}/{params} alias keys; a body
|
|
3105
|
-
// naming no tool answers 400 {ok:false, error:"invalid_arguments"}.
|
|
3106
|
-
legacyMcp: {
|
|
3107
|
-
aliases: true,
|
|
3108
|
-
missingTool: () => ({ status: 400, body: slackError2("invalid_arguments") })
|
|
3109
|
-
},
|
|
3110
3104
|
// Frozen /_pome/health shape: exactly {ok, twin} — no extras.
|
|
3111
3105
|
pomeHealth: () => ({}),
|
|
3112
3106
|
state: ({ domain }) => domain.exportState(),
|
|
@@ -2,7 +2,7 @@ import './chunk-C4BVTUA3.js';
|
|
|
2
2
|
import { defaultSeedState, parseSeed } from './chunk-HJX25USP.js';
|
|
3
3
|
export { defaultSeedState, parseSeed, seedSchema } from './chunk-HJX25USP.js';
|
|
4
4
|
import { routeInputDeclarer, integerInput, mountDeclaredRoute, UndeclaredInputError, MalformedBodyError } from './chunk-IZFM7W2V.js';
|
|
5
|
-
import { loadMcpToolFixture, defineTwin, twinBuildInfo, deriveMcpToolTable, UnknownToolError, openTwinDatabase, createApp, typeDisagreements } from './chunk-
|
|
5
|
+
import { loadMcpToolFixture, defineTwin, twinBuildInfo, deriveMcpToolTable, UnknownToolError, openTwinDatabase, createApp, typeDisagreements } from './chunk-VOHTQV4J.js';
|
|
6
6
|
import './chunk-6KJC4BTO.js';
|
|
7
7
|
import './chunk-SG6ZTIMT.js';
|
|
8
8
|
import './chunk-CF6EIU2U.js';
|
|
@@ -3,7 +3,7 @@ import { gmailErrorEnvelope, gmailSeedSchema, parseSeed, defaultSeedState, notFo
|
|
|
3
3
|
export { DEFAULT_GMAIL_AGENT_EMAIL, GmailError, SEARCH_MAILBOX_MESSAGE_BUDGET, agentPathInboxMailbox, defaultSeedState, gmailErrorEnvelope, gmailSeedSchema, loadSeedFromEnv, parseSearchQuery, parseSeed, validateSearchQuery } from './chunk-3T5XN64P.js';
|
|
4
4
|
import './chunk-JWJYNAWI.js';
|
|
5
5
|
import { routeInputDeclarer, integerInput, booleanInput, repeatedInput, mountDeclaredRoute, UndeclaredInputError, MalformedBodyError } from './chunk-IZFM7W2V.js';
|
|
6
|
-
import { loadMcpToolFixture, deriveMcpToolTable, defineTwin, openTwinDatabase, createApp } from './chunk-
|
|
6
|
+
import { loadMcpToolFixture, deriveMcpToolTable, defineTwin, openTwinDatabase, createApp } from './chunk-VOHTQV4J.js';
|
|
7
7
|
import './chunk-6KJC4BTO.js';
|
|
8
8
|
import './chunk-SG6ZTIMT.js';
|
|
9
9
|
import './chunk-CF6EIU2U.js';
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { readSeedFileText, seedForTwin, parseSeedFileText, soleTwinOf, twinsNamedBy } from './chunk-
|
|
2
|
-
import { bootTwin } from './chunk-
|
|
3
|
-
import { TWIN_REGISTRY, isTwinName, TWIN_NAMES, defaultPortFor } from './chunk-
|
|
4
|
-
import './chunk-
|
|
1
|
+
import { readSeedFileText, seedForTwin, parseSeedFileText, soleTwinOf, twinsNamedBy } from './chunk-DWOCTCSE.js';
|
|
2
|
+
import { bootTwin } from './chunk-T73VMABH.js';
|
|
3
|
+
import { TWIN_REGISTRY, isTwinName, TWIN_NAMES, defaultPortFor } from './chunk-CNG6DQWX.js';
|
|
4
|
+
import './chunk-VOHTQV4J.js';
|
|
5
5
|
import './chunk-6KJC4BTO.js';
|
|
6
6
|
import './chunk-SG6ZTIMT.js';
|
|
7
7
|
import './chunk-CF6EIU2U.js';
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pome-sh/cli",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"description": "
|
|
3
|
+
"version": "0.33.1",
|
|
4
|
+
"description": "Test AI agents against digital twins of real SaaS APIs. Records tool-call traces and scores them on pome.sh.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"ai",
|
|
7
7
|
"agents",
|