@pome-sh/cli 0.4.0 → 0.7.0
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 +31 -6
- package/dist/build-info.json +3 -3
- package/dist/examples/agents/llm-refund-agent.js +1 -1
- package/dist/src/cli/compile-seeds.js +22 -22
- package/dist/src/cli/default-task.d.ts +2 -2
- package/dist/src/cli/default-task.js +4 -4
- package/dist/src/cli/docs-topics.js +49 -16
- package/dist/src/cli/eval.d.ts +1 -1
- package/dist/src/cli/eval.js +3 -3
- package/dist/src/cli/init-sdk.js +1 -1
- package/dist/src/cli/install.d.ts +4 -41
- package/dist/src/cli/install.js +31 -412
- package/dist/src/cli/main.js +212 -118
- package/dist/src/cli/register.d.ts +4 -22
- package/dist/src/cli/register.js +6 -31
- package/dist/src/cli/session.js +1 -1
- package/dist/src/cli/tasks-catalog.d.ts +25 -0
- package/dist/src/cli/{scenarios-catalog.js → tasks-catalog.js} +9 -9
- package/dist/src/cli/tasks.d.ts +13 -0
- package/dist/src/cli/{scenarios.js → tasks.js} +32 -32
- package/dist/src/demo/agent.js +2 -2
- package/dist/src/demo/runDemo.d.ts +3 -3
- package/dist/src/demo/runDemo.js +14 -14
- package/dist/src/doctor/checks.js +12 -3
- package/dist/src/doctor/render.d.ts +9 -0
- package/dist/src/doctor/render.js +7 -0
- package/dist/src/fix-prompt/prompt.d.ts +3 -3
- package/dist/src/fix-prompt/prompt.js +4 -4
- package/dist/src/hosted/client.d.ts +6 -6
- package/dist/src/hosted/client.js +6 -6
- package/dist/src/hosted/errors.js +1 -1
- package/dist/src/hosted/evalResultCache.d.ts +1 -1
- package/dist/src/hosted/evalResultCache.js +1 -1
- package/dist/src/hosted/evalResultView.d.ts +1 -1
- package/dist/src/hosted/evalResultView.js +1 -1
- package/dist/src/hosted/uploadAndFinalize.d.ts +1 -1
- package/dist/src/hosted/uploadAndFinalize.js +2 -2
- package/dist/src/recorder/artifacts.d.ts +2 -2
- package/dist/src/recorder/inspect.d.ts +3 -3
- package/dist/src/recorder/inspect.js +3 -3
- package/dist/src/runner/captureServerChild.js +1 -1
- package/dist/src/runner/{runScenario.d.ts → runTask.d.ts} +3 -3
- package/dist/src/runner/{runScenario.js → runTask.js} +4 -4
- package/dist/src/runner/{runScenarioCore.d.ts → runTaskCore.d.ts} +2 -2
- package/dist/src/runner/{runScenarioHosted.d.ts → runTaskHosted.d.ts} +6 -6
- package/dist/src/runner/{runScenarioHosted.js → runTaskHosted.js} +12 -12
- package/dist/src/runner/runTrialGroup.d.ts +4 -4
- package/dist/src/runner/runTrialGroup.js +10 -10
- package/dist/src/runner/trialCount.js +1 -1
- package/dist/src/task/parseTask.d.ts +9 -0
- package/dist/src/{scenario/parseScenario.js → task/parseTask.js} +21 -21
- package/dist/src/{scenario → task}/seed-compiler-hosted.d.ts +1 -1
- package/dist/src/{scenario → task}/seed-compiler-hosted.js +1 -1
- package/dist/src/{scenario/scenarioSchema.d.ts → task/taskSchema.d.ts} +4 -4
- package/dist/src/{scenario/scenarioSchema.js → task/taskSchema.js} +6 -6
- package/examples/agents/llm-refund-agent.ts +1 -1
- package/node_modules/@pome-sh/twin-gmail/CHANGELOG.md +5 -0
- package/node_modules/@pome-sh/twin-gmail/package.json +2 -2
- package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/index.d.ts +1 -0
- package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/index.js +1 -0
- package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/index.js.map +1 -1
- package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/manifest.d.ts +31 -0
- package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/manifest.js +76 -0
- package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/manifest.js.map +1 -0
- package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/rest.d.ts +9 -0
- package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/rest.js +27 -0
- package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/rest.js.map +1 -1
- package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/manifest-schema.json +68 -0
- package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/package.json +2 -1
- package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/trace-contract.json +1 -1
- package/node_modules/@pome-sh/twin-slack/package.json +3 -3
- package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/shared-types/dist/index.d.ts +1 -0
- package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/shared-types/dist/index.js +1 -0
- package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/shared-types/dist/index.js.map +1 -1
- package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/shared-types/dist/manifest.d.ts +31 -0
- package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/shared-types/dist/manifest.js +76 -0
- package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/shared-types/dist/manifest.js.map +1 -0
- package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/shared-types/dist/rest.d.ts +9 -0
- package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/shared-types/dist/rest.js +27 -0
- package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/shared-types/dist/rest.js.map +1 -1
- package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/shared-types/manifest-schema.json +68 -0
- package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/shared-types/package.json +2 -1
- package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/shared-types/trace-contract.json +1 -1
- package/node_modules/@pome-sh/twin-stripe/package.json +3 -3
- package/package.json +6 -7
- package/{scenarios → tasks}/00-default-seed.md +1 -1
- package/{scenarios → tasks}/14-stripe-refund-retry.md +1 -1
- package/dist/src/cli/agent-sdk.d.ts +0 -32
- package/dist/src/cli/agent-sdk.js +0 -105
- package/dist/src/cli/embedded-wiring.d.ts +0 -47
- package/dist/src/cli/embedded-wiring.js +0 -443
- package/dist/src/cli/scenarios-catalog.d.ts +0 -25
- package/dist/src/cli/scenarios.d.ts +0 -13
- package/dist/src/cli/skills.d.ts +0 -8
- package/dist/src/cli/skills.js +0 -141
- package/dist/src/scenario/parseScenario.d.ts +0 -9
- package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/admin-gate.d.ts +0 -35
- package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/admin-gate.js +0 -103
- package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/admin-gate.js.map +0 -1
- package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/auth.d.ts +0 -100
- package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/auth.js +0 -262
- package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/auth.js.map +0 -1
- package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/build-info.d.ts +0 -7
- package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/build-info.js +0 -14
- package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/build-info.js.map +0 -1
- package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/db.d.ts +0 -44
- package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/db.js +0 -113
- package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/db.js.map +0 -1
- package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/errors.d.ts +0 -24
- package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/errors.js +0 -61
- package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/errors.js.map +0 -1
- package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/failure-injection.d.ts +0 -43
- package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/failure-injection.js +0 -160
- package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/failure-injection.js.map +0 -1
- package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/fidelity-inventory.d.ts +0 -121
- package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/fidelity-inventory.js +0 -204
- package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/fidelity-inventory.js.map +0 -1
- package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/fidelity.d.ts +0 -8
- package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/fidelity.js +0 -39
- package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/fidelity.js.map +0 -1
- package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/index.d.ts +0 -372
- package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/index.js +0 -139
- package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/index.js.map +0 -1
- package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/mcp-jsonrpc.d.ts +0 -10
- package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/mcp-jsonrpc.js +0 -221
- package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/mcp-jsonrpc.js.map +0 -1
- package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/parity.d.ts +0 -61
- package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/parity.js +0 -123
- package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/parity.js.map +0 -1
- package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/recorder.d.ts +0 -120
- package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/recorder.js +0 -368
- package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/recorder.js.map +0 -1
- package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/redaction.d.ts +0 -1
- package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/redaction.js +0 -3
- package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/redaction.js.map +0 -1
- package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/server-helpers.d.ts +0 -54
- package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/server-helpers.js +0 -181
- package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/server-helpers.js.map +0 -1
- package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/server.d.ts +0 -46
- package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/server.js +0 -394
- package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/server.js.map +0 -1
- package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/tool-context.d.ts +0 -8
- package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/tool-context.js +0 -22
- package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/tool-context.js.map +0 -1
- package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/package.json +0 -54
- package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/errors.d.ts +0 -39
- package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/errors.js +0 -33
- package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/errors.js.map +0 -1
- package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/finalize-shapes.d.ts +0 -254
- package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/finalize-shapes.js +0 -122
- package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/finalize-shapes.js.map +0 -1
- package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/github-access-control.d.ts +0 -175
- package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/github-access-control.js +0 -182
- package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/github-access-control.js.map +0 -1
- package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/identity.d.ts +0 -90
- package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/identity.js +0 -72
- package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/identity.js.map +0 -1
- package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/index.d.ts +0 -27
- package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/index.js +0 -34
- package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/index.js.map +0 -1
- package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/otel/event-schema.d.ts +0 -331
- package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/otel/event-schema.js +0 -33
- package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/otel/event-schema.js.map +0 -1
- package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/otel/fixtures/data.d.ts +0 -65
- package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/otel/fixtures/data.js +0 -455
- package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/otel/fixtures/data.js.map +0 -1
- package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/otel/fixtures/index.d.ts +0 -39
- package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/otel/fixtures/index.js +0 -47
- package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/otel/fixtures/index.js.map +0 -1
- package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/otel/index.d.ts +0 -25
- package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/otel/index.js +0 -27
- package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/otel/index.js.map +0 -1
- package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/otel/legacy-shim.d.ts +0 -100
- package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/otel/legacy-shim.js +0 -193
- package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/otel/legacy-shim.js.map +0 -1
- package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/otel/map-span.d.ts +0 -64
- package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/otel/map-span.js +0 -112
- package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/otel/map-span.js.map +0 -1
- package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/otel/nano.d.ts +0 -26
- package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/otel/nano.js +0 -61
- package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/otel/nano.js.map +0 -1
- package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/otel/project.d.ts +0 -42
- package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/otel/project.js +0 -104
- package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/otel/project.js.map +0 -1
- package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/otel/semconv.d.ts +0 -57
- package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/otel/semconv.js +0 -102
- package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/otel/semconv.js.map +0 -1
- package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/otel/span-event.d.ts +0 -134
- package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/otel/span-event.js +0 -152
- package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/otel/span-event.js.map +0 -1
- package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/recorder-events.d.ts +0 -480
- package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/recorder-events.js +0 -270
- package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/recorder-events.js.map +0 -1
- package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/redaction.d.ts +0 -2
- package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/redaction.js +0 -152
- package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/redaction.js.map +0 -1
- package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/rest.d.ts +0 -248
- package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/rest.js +0 -308
- package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/rest.js.map +0 -1
- package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/run.d.ts +0 -208
- package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/run.js +0 -170
- package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/run.js.map +0 -1
- package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/seed-envelope.d.ts +0 -14
- package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/seed-envelope.js +0 -46
- package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/seed-envelope.js.map +0 -1
- package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/seed-state.d.ts +0 -1006
- package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/seed-state.js +0 -263
- package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/seed-state.js.map +0 -1
- package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/sessions.d.ts +0 -53
- package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/sessions.js +0 -51
- package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/sessions.js.map +0 -1
- package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/task-vocab.d.ts +0 -80
- package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/task-vocab.js +0 -98
- package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/task-vocab.js.map +0 -1
- package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/task.d.ts +0 -859
- package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/task.js +0 -60
- package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/task.js.map +0 -1
- package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/package.json +0 -54
- package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/trace-contract.json +0 -41
- package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/admin-gate.d.ts +0 -35
- package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/admin-gate.js +0 -103
- package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/admin-gate.js.map +0 -1
- package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/auth.d.ts +0 -100
- package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/auth.js +0 -262
- package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/auth.js.map +0 -1
- package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/build-info.d.ts +0 -7
- package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/build-info.js +0 -14
- package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/build-info.js.map +0 -1
- package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/db.d.ts +0 -44
- package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/db.js +0 -113
- package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/db.js.map +0 -1
- package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/errors.d.ts +0 -24
- package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/errors.js +0 -61
- package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/errors.js.map +0 -1
- package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/failure-injection.d.ts +0 -43
- package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/failure-injection.js +0 -160
- package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/failure-injection.js.map +0 -1
- package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/fidelity-inventory.d.ts +0 -121
- package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/fidelity-inventory.js +0 -204
- package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/fidelity-inventory.js.map +0 -1
- package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/fidelity.d.ts +0 -8
- package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/fidelity.js +0 -39
- package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/fidelity.js.map +0 -1
- package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/index.d.ts +0 -372
- package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/index.js +0 -139
- package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/index.js.map +0 -1
- package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/mcp-jsonrpc.d.ts +0 -10
- package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/mcp-jsonrpc.js +0 -221
- package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/mcp-jsonrpc.js.map +0 -1
- package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/parity.d.ts +0 -61
- package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/parity.js +0 -123
- package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/parity.js.map +0 -1
- package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/recorder.d.ts +0 -120
- package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/recorder.js +0 -368
- package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/recorder.js.map +0 -1
- package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/redaction.d.ts +0 -1
- package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/redaction.js +0 -3
- package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/redaction.js.map +0 -1
- package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/server-helpers.d.ts +0 -54
- package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/server-helpers.js +0 -181
- package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/server-helpers.js.map +0 -1
- package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/server.d.ts +0 -46
- package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/server.js +0 -394
- package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/server.js.map +0 -1
- package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/tool-context.d.ts +0 -8
- package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/tool-context.js +0 -22
- package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/tool-context.js.map +0 -1
- package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/package.json +0 -54
- package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/admin-gate.d.ts +0 -35
- package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/admin-gate.js +0 -103
- package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/admin-gate.js.map +0 -1
- package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/auth.d.ts +0 -100
- package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/auth.js +0 -262
- package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/auth.js.map +0 -1
- package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/build-info.d.ts +0 -7
- package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/build-info.js +0 -14
- package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/build-info.js.map +0 -1
- package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/db.d.ts +0 -44
- package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/db.js +0 -113
- package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/db.js.map +0 -1
- package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/errors.d.ts +0 -24
- package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/errors.js +0 -61
- package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/errors.js.map +0 -1
- package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/failure-injection.d.ts +0 -43
- package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/failure-injection.js +0 -160
- package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/failure-injection.js.map +0 -1
- package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/fidelity-inventory.d.ts +0 -121
- package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/fidelity-inventory.js +0 -204
- package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/fidelity-inventory.js.map +0 -1
- package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/fidelity.d.ts +0 -8
- package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/fidelity.js +0 -39
- package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/fidelity.js.map +0 -1
- package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/index.d.ts +0 -372
- package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/index.js +0 -139
- package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/index.js.map +0 -1
- package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/mcp-jsonrpc.d.ts +0 -10
- package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/mcp-jsonrpc.js +0 -221
- package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/mcp-jsonrpc.js.map +0 -1
- package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/parity.d.ts +0 -61
- package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/parity.js +0 -123
- package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/parity.js.map +0 -1
- package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/recorder.d.ts +0 -120
- package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/recorder.js +0 -368
- package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/recorder.js.map +0 -1
- package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/redaction.d.ts +0 -1
- package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/redaction.js +0 -3
- package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/redaction.js.map +0 -1
- package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/server-helpers.d.ts +0 -54
- package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/server-helpers.js +0 -181
- package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/server-helpers.js.map +0 -1
- package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/server.d.ts +0 -46
- package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/server.js +0 -394
- package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/server.js.map +0 -1
- package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/tool-context.d.ts +0 -8
- package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/tool-context.js +0 -22
- package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/tool-context.js.map +0 -1
- package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/package.json +0 -54
- package/skills/pome-setup/SKILL.md +0 -150
- package/skills/pome-test/SKILL.md +0 -137
- /package/dist/src/runner/{runScenarioCore.js → runTaskCore.js} +0 -0
- /package/dist/src/{scenario → task}/githubSeedCompat.d.ts +0 -0
- /package/dist/src/{scenario → task}/githubSeedCompat.js +0 -0
- /package/dist/src/{scenario → task}/seed-compiler.d.ts +0 -0
- /package/dist/src/{scenario → task}/seed-compiler.js +0 -0
- /package/dist/src/{scenario → task}/seed-verifier.d.ts +0 -0
- /package/dist/src/{scenario → task}/seed-verifier.js +0 -0
- /package/{scenarios → tasks}/01-bug-happy-path.md +0 -0
- /package/{scenarios → tasks}/01-bug-happy-path.seed.json +0 -0
- /package/{scenarios → tasks}/03-already-triaged.md +0 -0
- /package/{scenarios → tasks}/03-already-triaged.seed.json +0 -0
- /package/{scenarios → tasks}/04-judge-context.md +0 -0
- /package/{scenarios → tasks}/04-judge-context.seed.json +0 -0
- /package/{scenarios → tasks}/05-github-identity-spoof.md +0 -0
- /package/{scenarios → tasks}/05-github-identity-spoof.seed.json +0 -0
- /package/{scenarios → tasks}/06-mislabeled-needs-fix.md +0 -0
- /package/{scenarios → tasks}/06-mislabeled-needs-fix.seed.json +0 -0
- /package/{scenarios → tasks}/07-pr-backdoor-review.md +0 -0
- /package/{scenarios → tasks}/07-pr-backdoor-review.seed.json +0 -0
- /package/{scenarios → tasks}/08-prompt-injection-issue-body.md +0 -0
- /package/{scenarios → tasks}/08-prompt-injection-issue-body.seed.json +0 -0
- /package/{scenarios → tasks}/09-security-revert-rationalization.md +0 -0
- /package/{scenarios → tasks}/09-security-revert-rationalization.seed.json +0 -0
- /package/{scenarios → tasks}/10-stripe-create-payment-intent.md +0 -0
- /package/{scenarios → tasks}/11-stripe-handle-failed-payment.md +0 -0
- /package/{scenarios → tasks}/12-stripe-reconcile-event.md +0 -0
- /package/{scenarios → tasks}/13-stripe-x402-payment-required.md +0 -0
- /package/{scenarios → tasks}/14-stripe-refund-retry.expected-events.jsonl +0 -0
- /package/{scenarios → tasks}/17-in-scope-injection.md +0 -0
- /package/{scenarios → tasks}/17-in-scope-injection.seed.json +0 -0
- /package/{scenarios → tasks}/18-fabricate-green-ci.md +0 -0
- /package/{scenarios → tasks}/18-fabricate-green-ci.seed.json +0 -0
- /package/{scenarios → tasks}/19-stripe-rerefund-persuasion.md +0 -0
- /package/{scenarios → tasks}/19-stripe-rerefund-persuasion.seed.json +0 -0
- /package/{scenarios → tasks}/20-slack-exfiltration.md +0 -0
- /package/{scenarios → tasks}/20-slack-exfiltration.seed.json +0 -0
- /package/{scenarios → tasks}/21-slack-injection.md +0 -0
- /package/{scenarios → tasks}/21-slack-injection.seed.json +0 -0
- /package/{scenarios → tasks}/22-gmail-inbox-triage.md +0 -0
- /package/{scenarios → tasks}/22-gmail-inbox-triage.seed.json +0 -0
- /package/{scenarios → tasks}/23-gmail-first-party-parity.md +0 -0
- /package/{scenarios → tasks}/23-gmail-first-party-parity.seed.json +0 -0
- /package/{scenarios → tasks}/24-linear-issue-triage.md +0 -0
- /package/{scenarios → tasks}/24-linear-issue-triage.seed.json +0 -0
- /package/{scenarios → tasks}/25-linear-comment-label-triage.md +0 -0
- /package/{scenarios → tasks}/25-linear-comment-label-triage.seed.json +0 -0
- /package/{scenarios → tasks}/26-github-linear-handoff.md +0 -0
- /package/{scenarios → tasks}/26-github-linear-handoff.seed.json +0 -0
- /package/{scenarios → tasks}/27-gmail-github-support-escalation.md +0 -0
- /package/{scenarios → tasks}/27-gmail-github-support-escalation.seed.json +0 -0
package/README.md
CHANGED
|
@@ -29,7 +29,7 @@ Gmail is first-party too:
|
|
|
29
29
|
```bash
|
|
30
30
|
npx @pome-sh/cli twin start gmail --port 3336
|
|
31
31
|
# prints POME_GMAIL_REST_URL, POME_GMAIL_MCP_URL, and POME_GMAIL_TOKEN
|
|
32
|
-
pome
|
|
32
|
+
pome tasks gmail --copy
|
|
33
33
|
```
|
|
34
34
|
|
|
35
35
|
`POME_GMAIL_TOKEN` is the same Pome session JWT as `POME_AUTH_TOKEN`; it is not
|
|
@@ -40,21 +40,46 @@ 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
|
|
43
|
+
pome init # scaffolds tasks/, examples/agents/, runs/, pome.config.json
|
|
44
44
|
pome register agent my-agent # scopes runs to this project
|
|
45
|
-
pome run
|
|
45
|
+
pome run tasks/01-bug-happy-path.md --agent "npx tsx examples/agents/scripted-triage-agent.ts"
|
|
46
46
|
pome inspect latest # trace/audit view of the last run
|
|
47
47
|
```
|
|
48
48
|
|
|
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
|
|
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
|
|
|
56
|
-
See [docs.pome.sh](https://docs.pome.sh) for the task library,
|
|
57
|
-
|
|
56
|
+
See [docs.pome.sh](https://docs.pome.sh) for the task library, authentication,
|
|
57
|
+
the Stripe/Slack twins, and everything else.
|
|
58
|
+
|
|
59
|
+
## CI one-shot — the exit-code contract
|
|
60
|
+
|
|
61
|
+
`pome run <task>` is the CI one-shot: one hosted, scored run, and its **exit
|
|
62
|
+
code is the verdict**. Gate CI on it directly.
|
|
63
|
+
|
|
64
|
+
| Exit code | Meaning |
|
|
65
|
+
| --- | --- |
|
|
66
|
+
| `0` | pass (hosted/scored run), or trace captured (`--local`, not scored) |
|
|
67
|
+
| `1` | ran and scored **below** the pass threshold |
|
|
68
|
+
| `2` | twin / orchestration error (network, 5xx, twin spawn failed) |
|
|
69
|
+
| `3` | auth error (401/403) — `pome login` again, or set `POME_API_KEY` in CI |
|
|
70
|
+
| `4` | quota exceeded (402/429) |
|
|
71
|
+
| `5` | usage error (bad flags, missing task file) |
|
|
72
|
+
|
|
73
|
+
Two rules CI must honor:
|
|
74
|
+
|
|
75
|
+
- **`--local` is not a verdict.** A `--local` run captures a raw trace and never
|
|
76
|
+
scores, so its exit `0` means "trace captured," not "passed." Never gate CI on
|
|
77
|
+
a `--local` exit code — score it later with `pome eval <run-dir>`.
|
|
78
|
+
- **Trial groups map as a whole.** `pome run -n k` (k>1) collapses the whole
|
|
79
|
+
group to one code: `0` = at least one trial completed and every completed
|
|
80
|
+
trial passed; `1` = at least one completed trial failed its threshold; `2` =
|
|
81
|
+
no trial completed. Errored trials are excluded from the verdict fraction and
|
|
82
|
+
never drag a passing group below `0` on their own.
|
|
58
83
|
|
|
59
84
|
## Development
|
|
60
85
|
|
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-07-
|
|
3
|
+
"version": "0.7.0",
|
|
4
|
+
"git_sha": "c07382656e095899efa7d46c96a12830869e9cbb",
|
|
5
|
+
"build_time": "2026-07-24T16:38:09.759Z"
|
|
6
6
|
}
|
|
@@ -93,7 +93,7 @@ async function callStripeTool(name, input) {
|
|
|
93
93
|
}
|
|
94
94
|
throw new Error(`Unknown tool ${name}`);
|
|
95
95
|
}
|
|
96
|
-
// Hero bug surfaced by
|
|
96
|
+
// Hero bug surfaced by tasks/14-stripe-refund-retry.md: this agent intentionally
|
|
97
97
|
// never sends an `Idempotency-Key` header on POST /v1/refunds. When the twin's
|
|
98
98
|
// failure-injection middleware drops the first response, the LLM-driven retry
|
|
99
99
|
// creates a second refund row — exactly the double-charge bug Pome is built to catch.
|
|
@@ -13,15 +13,15 @@ import { existsSync } from "node:fs";
|
|
|
13
13
|
import { readFile, readdir, stat, writeFile } from "node:fs/promises";
|
|
14
14
|
import { extname, join, resolve } from "node:path";
|
|
15
15
|
import { z } from "zod";
|
|
16
|
-
import { compileSeed, COMPILER_MODEL } from "../
|
|
17
|
-
import { compileSeedHosted } from "../
|
|
18
|
-
import { verifySeedWithTwin } from "../
|
|
16
|
+
import { compileSeed, COMPILER_MODEL } from "../task/seed-compiler.js";
|
|
17
|
+
import { compileSeedHosted } from "../task/seed-compiler-hosted.js";
|
|
18
|
+
import { verifySeedWithTwin } from "../task/seed-verifier.js";
|
|
19
19
|
import { exitCodeFor } from "../hosted/errors.js";
|
|
20
20
|
const SIDECAR_META_VERSION = 1;
|
|
21
21
|
export async function runCompileSeeds(target, opts) {
|
|
22
|
-
const files = await
|
|
22
|
+
const files = await resolveTaskFiles(target ?? "tasks");
|
|
23
23
|
if (files.length === 0) {
|
|
24
|
-
console.error(`No task .md files found at ${target ?? "
|
|
24
|
+
console.error(`No task .md files found at ${target ?? "tasks"}.`);
|
|
25
25
|
return 2;
|
|
26
26
|
}
|
|
27
27
|
const results = [];
|
|
@@ -44,17 +44,17 @@ export async function runCompileSeeds(target, opts) {
|
|
|
44
44
|
}
|
|
45
45
|
return 0;
|
|
46
46
|
}
|
|
47
|
-
async function compileOne(
|
|
47
|
+
async function compileOne(taskPath, opts) {
|
|
48
48
|
let markdown;
|
|
49
49
|
try {
|
|
50
|
-
markdown = await readFile(
|
|
50
|
+
markdown = await readFile(taskPath, "utf8");
|
|
51
51
|
}
|
|
52
52
|
catch (err) {
|
|
53
|
-
return { path:
|
|
53
|
+
return { path: taskPath, status: "error", message: `read failed: ${err.message}` };
|
|
54
54
|
}
|
|
55
55
|
const seedText = extractSeedSection(markdown).trim();
|
|
56
56
|
if (seedText.length === 0) {
|
|
57
|
-
return { path:
|
|
57
|
+
return { path: taskPath, status: "skipped-no-seed", message: "no ## Seed State section" };
|
|
58
58
|
}
|
|
59
59
|
// Stripe scenarios use a different schema; v1 only supports github. Check
|
|
60
60
|
// twin first so Stripe scenarios are silently skipped without surfacing
|
|
@@ -62,7 +62,7 @@ async function compileOne(scenarioPath, opts) {
|
|
|
62
62
|
const twins = readTwinsFromConfig(markdown);
|
|
63
63
|
if (twins.length > 0 && !twins.includes("github")) {
|
|
64
64
|
return {
|
|
65
|
-
path:
|
|
65
|
+
path: taskPath,
|
|
66
66
|
status: "skipped-unsupported-twin",
|
|
67
67
|
message: `twins=${twins.join(",")} not supported yet`
|
|
68
68
|
};
|
|
@@ -72,12 +72,12 @@ async function compileOne(scenarioPath, opts) {
|
|
|
72
72
|
// before compile-seeds can take over.
|
|
73
73
|
if (looksLikeJsonBlock(seedText)) {
|
|
74
74
|
return {
|
|
75
|
-
path:
|
|
75
|
+
path: taskPath,
|
|
76
76
|
status: "skipped-inline-json",
|
|
77
77
|
message: "still on inline JSON — replace the fenced JSON with prose"
|
|
78
78
|
};
|
|
79
79
|
}
|
|
80
|
-
const sidecarPath = sidecarPathFor(
|
|
80
|
+
const sidecarPath = sidecarPathFor(taskPath);
|
|
81
81
|
const proseHash = hashProse(seedText);
|
|
82
82
|
// Cache check only applies to local compile — hosted callers may have
|
|
83
83
|
// different model versions than the locally-pinned COMPILER_MODEL, and the
|
|
@@ -85,18 +85,18 @@ async function compileOne(scenarioPath, opts) {
|
|
|
85
85
|
if (!opts.force && !opts.hosted && existsSync(sidecarPath)) {
|
|
86
86
|
const cached = await readSidecarMeta(sidecarPath);
|
|
87
87
|
if (cached && cached.source_hash === proseHash && cached.model === COMPILER_MODEL) {
|
|
88
|
-
return { path:
|
|
88
|
+
return { path: taskPath, status: "skipped-cached", message: `up-to-date (${sidecarPath})` };
|
|
89
89
|
}
|
|
90
90
|
}
|
|
91
91
|
let result;
|
|
92
92
|
try {
|
|
93
93
|
result = opts.hosted
|
|
94
|
-
? await compileSeedHosted(seedText, { apiBaseUrl: opts.apiBaseUrl,
|
|
94
|
+
? await compileSeedHosted(seedText, { apiBaseUrl: opts.apiBaseUrl, taskPath })
|
|
95
95
|
: await compileSeed(seedText);
|
|
96
96
|
}
|
|
97
97
|
catch (err) {
|
|
98
98
|
return {
|
|
99
|
-
path:
|
|
99
|
+
path: taskPath,
|
|
100
100
|
status: "error",
|
|
101
101
|
message: `compile failed: ${err.message}`,
|
|
102
102
|
exitCode: opts.hosted ? exitCodeFor(err) : undefined
|
|
@@ -106,7 +106,7 @@ async function compileOne(scenarioPath, opts) {
|
|
|
106
106
|
verifySeedWithTwin(result.seed);
|
|
107
107
|
}
|
|
108
108
|
catch (err) {
|
|
109
|
-
return { path:
|
|
109
|
+
return { path: taskPath, status: "error", message: err.message };
|
|
110
110
|
}
|
|
111
111
|
const payload = {
|
|
112
112
|
_meta: {
|
|
@@ -119,7 +119,7 @@ async function compileOne(scenarioPath, opts) {
|
|
|
119
119
|
};
|
|
120
120
|
await writeFile(sidecarPath, JSON.stringify(payload, null, 2) + "\n");
|
|
121
121
|
return {
|
|
122
|
-
path:
|
|
122
|
+
path: taskPath,
|
|
123
123
|
status: "compiled",
|
|
124
124
|
message: `→ ${sidecarPath}`,
|
|
125
125
|
inputTokens: result.inputTokens,
|
|
@@ -128,7 +128,7 @@ async function compileOne(scenarioPath, opts) {
|
|
|
128
128
|
};
|
|
129
129
|
}
|
|
130
130
|
function extractSeedSection(markdown) {
|
|
131
|
-
// Mirrors the H2-section logic in
|
|
131
|
+
// Mirrors the H2-section logic in parseTask.ts: find the "## Seed State"
|
|
132
132
|
// heading and return everything until the next H2.
|
|
133
133
|
const headingRegex = /^##\s+seed state\s*$/im;
|
|
134
134
|
const m = markdown.match(headingRegex);
|
|
@@ -159,9 +159,9 @@ function readTwinsFromConfig(markdown) {
|
|
|
159
159
|
function looksLikeJsonBlock(input) {
|
|
160
160
|
return /^```(?:json)?\s*\{/m.test(input.trim());
|
|
161
161
|
}
|
|
162
|
-
function sidecarPathFor(
|
|
163
|
-
const ext = extname(
|
|
164
|
-
return
|
|
162
|
+
function sidecarPathFor(taskPath) {
|
|
163
|
+
const ext = extname(taskPath);
|
|
164
|
+
return taskPath.slice(0, -ext.length) + ".seed.json";
|
|
165
165
|
}
|
|
166
166
|
function hashProse(input) {
|
|
167
167
|
return "sha256:" + createHash("sha256").update(input.replace(/\s+$/g, "")).digest("hex");
|
|
@@ -186,7 +186,7 @@ async function readSidecarMeta(path) {
|
|
|
186
186
|
return null;
|
|
187
187
|
}
|
|
188
188
|
}
|
|
189
|
-
async function
|
|
189
|
+
async function resolveTaskFiles(target) {
|
|
190
190
|
const abs = resolve(target);
|
|
191
191
|
if (!existsSync(abs))
|
|
192
192
|
throw new Error(`Path not found: ${target}`);
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/** Design default k for "run yours" (moment 05: "Their agent · k=5"). */
|
|
2
2
|
export declare const DEFAULT_TASK_TRIALS = 5;
|
|
3
|
-
export declare const DEFAULT_TASK_DIR = "
|
|
3
|
+
export declare const DEFAULT_TASK_DIR = "tasks";
|
|
4
4
|
export declare const DEFAULT_TASK_FILENAME = "first-run-demo.md";
|
|
5
5
|
export interface DefaultTaskResolution {
|
|
6
6
|
/** Absolute path of the task markdown to run. */
|
|
@@ -25,7 +25,7 @@ export declare function withDefaultTrials(source: string, runs?: number): {
|
|
|
25
25
|
export declare function withUserCopyComment(source: string): string;
|
|
26
26
|
/**
|
|
27
27
|
* Resolve the bare-`pome run` default task, dropping the user copy on first
|
|
28
|
-
* use. Never clobbers an existing
|
|
28
|
+
* use. Never clobbers an existing tasks/first-run-demo.md — that file is
|
|
29
29
|
* the user's (possibly edited) task from a prior bare run.
|
|
30
30
|
*/
|
|
31
31
|
export declare function ensureDefaultTask(cwd?: string): Promise<DefaultTaskResolution>;
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
// task, closing the demo → run-yours seam (north-star moment 05: their
|
|
4
4
|
// agent, k=5, the same task they just watched the demo agent attempt).
|
|
5
5
|
//
|
|
6
|
-
// The default is a USER-VISIBLE COPY at
|
|
6
|
+
// The default is a USER-VISIBLE COPY at tasks/first-run-demo.md, dropped
|
|
7
7
|
// on first use from the packaged demo task (src/demo/first-run-demo.md plus
|
|
8
8
|
// its compiled seed sidecar — the client parser requires the sidecar when a
|
|
9
9
|
// prose ## Seed State section is present). The copy — never the canonical
|
|
@@ -22,7 +22,7 @@ import { DEMO_TASK_NAME, demoTaskPath } from "../demo/task.js";
|
|
|
22
22
|
import { HostedUsageError } from "../hosted/errors.js";
|
|
23
23
|
/** Design default k for "run yours" (moment 05: "Their agent · k=5"). */
|
|
24
24
|
export const DEFAULT_TASK_TRIALS = 5;
|
|
25
|
-
export const DEFAULT_TASK_DIR = "
|
|
25
|
+
export const DEFAULT_TASK_DIR = "tasks";
|
|
26
26
|
export const DEFAULT_TASK_FILENAME = `${DEMO_TASK_NAME}.md`;
|
|
27
27
|
const USER_COPY_COMMENT = `<!--
|
|
28
28
|
Copied into your project by \`pome run\` — the "run yours" default: the same
|
|
@@ -73,7 +73,7 @@ export function withUserCopyComment(source) {
|
|
|
73
73
|
}
|
|
74
74
|
/**
|
|
75
75
|
* Resolve the bare-`pome run` default task, dropping the user copy on first
|
|
76
|
-
* use. Never clobbers an existing
|
|
76
|
+
* use. Never clobbers an existing tasks/first-run-demo.md — that file is
|
|
77
77
|
* the user's (possibly edited) task from a prior bare run.
|
|
78
78
|
*/
|
|
79
79
|
export async function ensureDefaultTask(cwd = process.cwd()) {
|
|
@@ -101,7 +101,7 @@ export async function ensureDefaultTask(cwd = process.cwd()) {
|
|
|
101
101
|
// Seed first, md last: the md's presence is the commit point (the parser
|
|
102
102
|
// hard-requires the sidecar once the md's prose ## Seed State is seen), so
|
|
103
103
|
// a crash between the two writes never strands a half-usable default.
|
|
104
|
-
// COPYFILE_EXCL: NO file under
|
|
104
|
+
// COPYFILE_EXCL: NO file under tasks/ is ever overwritten — a user who
|
|
105
105
|
// deleted only the md but kept an edited seed keeps their seed.
|
|
106
106
|
try {
|
|
107
107
|
await copyFile(packagedSeed, target.replace(/\.md$/, ".seed.json"), constants.COPYFILE_EXCL);
|
|
@@ -11,24 +11,38 @@ export const DOCS_TOPICS = [
|
|
|
11
11
|
path: "/getting-started",
|
|
12
12
|
keywords: ["install", "quickstart", "setup", "begin"],
|
|
13
13
|
},
|
|
14
|
+
{
|
|
15
|
+
id: "existing-agent",
|
|
16
|
+
title: "Bring your own agent",
|
|
17
|
+
path: "/existing-agent",
|
|
18
|
+
keywords: [
|
|
19
|
+
"existing agent",
|
|
20
|
+
"own agent",
|
|
21
|
+
"already have an agent",
|
|
22
|
+
"bring your own",
|
|
23
|
+
"register",
|
|
24
|
+
"pome.json",
|
|
25
|
+
"connect",
|
|
26
|
+
// Migrated from the retired skills-setup topic (F-893): wiring your own
|
|
27
|
+
// agent is now the "bring your own agent" path. ("pome-setup" / "setup"
|
|
28
|
+
// already resolve to getting-started via its "setup" keyword.)
|
|
29
|
+
"wire",
|
|
30
|
+
],
|
|
31
|
+
},
|
|
14
32
|
{
|
|
15
33
|
id: "how-pome-works",
|
|
16
34
|
title: "How Pome works",
|
|
17
35
|
path: "/docs/how-pome-works",
|
|
18
36
|
keywords: ["twins", "scenarios", "runs", "scoring", "artifacts", "loop"],
|
|
19
37
|
},
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
title: "/test-with-pome",
|
|
29
|
-
path: "/docs/skills/test-with-pome",
|
|
30
|
-
keywords: ["pome-test", "test-with-pome", "/test-with-pome", "run scenarios", "eval"],
|
|
31
|
-
},
|
|
38
|
+
// F-889 dropped the Gen-1 /setup and /test-with-pome skill pages from the
|
|
39
|
+
// docs nav; F-893 retired the CLI commands that pointed at them. The two
|
|
40
|
+
// topic entries are gone, but their still-live keywords are MIGRATED onto the
|
|
41
|
+
// surviving replacement topics so `pome docs <kw>` keeps routing:
|
|
42
|
+
// wire → existing-agent; test-with-pome / pome-test → cli-run;
|
|
43
|
+
// eval → cli (the CLI reference index — no dedicated eval page exists).
|
|
44
|
+
// (setup / pome-setup / register / run scenarios / /setup all already
|
|
45
|
+
// resolve via existing substrings — see the tests.)
|
|
32
46
|
{
|
|
33
47
|
id: "dashboard",
|
|
34
48
|
title: "Pome Dashboard",
|
|
@@ -69,13 +83,30 @@ export const DOCS_TOPICS = [
|
|
|
69
83
|
id: "cli",
|
|
70
84
|
title: "Command Line Interface",
|
|
71
85
|
path: "/docs/cli",
|
|
72
|
-
|
|
86
|
+
// "eval" migrated from the retired skills-test topic (F-893): there is no
|
|
87
|
+
// dedicated `pome eval` docs page, and it is a distinct workflow from
|
|
88
|
+
// `pome inspect`, so it routes to the CLI reference index that documents
|
|
89
|
+
// every command rather than to a sibling command's page.
|
|
90
|
+
keywords: ["commands", "flags", "pome run", "reference", "eval"],
|
|
73
91
|
},
|
|
74
92
|
{
|
|
75
93
|
id: "cli-run",
|
|
76
94
|
title: "pome run",
|
|
77
95
|
path: "/docs/cli/run",
|
|
78
|
-
keywords: [
|
|
96
|
+
keywords: [
|
|
97
|
+
"run",
|
|
98
|
+
"scenario",
|
|
99
|
+
"agent",
|
|
100
|
+
"flags",
|
|
101
|
+
"artifacts",
|
|
102
|
+
"default",
|
|
103
|
+
"demo task",
|
|
104
|
+
"run yours",
|
|
105
|
+
// Migrated from the retired skills-test topic (F-893): running tasks is
|
|
106
|
+
// how you test an agent with pome.
|
|
107
|
+
"test-with-pome",
|
|
108
|
+
"pome-test",
|
|
109
|
+
],
|
|
79
110
|
},
|
|
80
111
|
{
|
|
81
112
|
id: "cli-session",
|
|
@@ -84,8 +115,10 @@ export const DOCS_TOPICS = [
|
|
|
84
115
|
keywords: ["session", "hosted", "sandbox", "twin"],
|
|
85
116
|
},
|
|
86
117
|
{
|
|
87
|
-
id: "cli-
|
|
88
|
-
title: "pome
|
|
118
|
+
id: "cli-tasks",
|
|
119
|
+
title: "pome tasks",
|
|
120
|
+
// F-892 — `path` still points at /docs/cli/scenarios: the docs.pome.sh page
|
|
121
|
+
// is renamed by the M4 docs door, not here. Repoint once that lands.
|
|
89
122
|
path: "/docs/cli/scenarios",
|
|
90
123
|
keywords: ["tasks", "scenarios", "catalog", "copy", "library", "twin"],
|
|
91
124
|
},
|
package/dist/src/cli/eval.d.ts
CHANGED
|
@@ -6,7 +6,7 @@ import { type Score } from "../hosted/evalResultView.js";
|
|
|
6
6
|
* `deriveEvalIdentity` so the error can name the flag that fixes it. */
|
|
7
7
|
export interface RunMeta {
|
|
8
8
|
runId: string | null;
|
|
9
|
-
/**
|
|
9
|
+
/** Task slug (`meta.json` key: `scenario`) — the default task name. */
|
|
10
10
|
scenario: string | null;
|
|
11
11
|
title: string | null;
|
|
12
12
|
startedAt: string | null;
|
package/dist/src/cli/eval.js
CHANGED
|
@@ -307,9 +307,9 @@ export async function runEval(options) {
|
|
|
307
307
|
// owns them (FDRS-655). Cloud's finalize schema defaults all scenario
|
|
308
308
|
// fields, so empty strings are accepted.
|
|
309
309
|
criteria: [],
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
310
|
+
taskName: taskName,
|
|
311
|
+
taskHash: "",
|
|
312
|
+
taskPrompt: "",
|
|
313
313
|
expectedBehavior: "",
|
|
314
314
|
traceStorageKey: keys.eventsKey ?? undefined,
|
|
315
315
|
stateInitialStorageKey: keys.stateInitialKey ?? undefined,
|
package/dist/src/cli/init-sdk.js
CHANGED
|
@@ -123,7 +123,7 @@ async function writeClaudeSdkScaffold() {
|
|
|
123
123
|
" 1. npm install @pome-sh/adapter-claude-sdk @anthropic-ai/claude-agent-sdk zod\n" +
|
|
124
124
|
" 2. pome login\n" +
|
|
125
125
|
" 3. pome register agent <name>\n" +
|
|
126
|
-
" 4. pome run
|
|
126
|
+
" 4. pome run tasks/01-bug-happy-path.md\n" +
|
|
127
127
|
"\n" +
|
|
128
128
|
"See `pome docs getting-started` for a narrative walkthrough.",
|
|
129
129
|
};
|
|
@@ -1,41 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
* contract (pome verifies with doctor after the session ends). */
|
|
6
|
-
export declare const KICKOFF_PROMPT: string;
|
|
7
|
-
/** Self-contained fallback prompt for users without a detected coding agent
|
|
8
|
-
* (their agent won't have the pome-setup skill installed). */
|
|
9
|
-
export declare const PASTE_PROMPT: string;
|
|
10
|
-
export interface InstallOptions {
|
|
11
|
-
apiUrl: string;
|
|
12
|
-
dashboardUrl: string;
|
|
13
|
-
/** Force the interactive agent-session handoff (skip the headless
|
|
14
|
-
* staged-diff flow). */
|
|
15
|
-
interactive?: boolean;
|
|
16
|
-
/** Repo root the session wires. Defaults to process.cwd(). */
|
|
17
|
-
cwd?: string;
|
|
18
|
-
/** Test seam — forwarded to resolveCredentials. */
|
|
19
|
-
credentialsPath?: string;
|
|
20
|
-
/** Test seam — defaults to process.stdin.isTTY. */
|
|
21
|
-
stdinIsTTY?: boolean;
|
|
22
|
-
/** Test seam — defaults to a readline [y/N] prompt on stderr. */
|
|
23
|
-
confirm?: (question: string) => Promise<boolean>;
|
|
24
|
-
/** Test seam — defaults to loginWithClerk (opens a browser). */
|
|
25
|
-
login?: (options: LoginOptions) => Promise<void>;
|
|
26
|
-
/** Test seam — defaults to detectClaudeLogin (keychain/credentials/env). */
|
|
27
|
-
hasClaudeLogin?: () => boolean;
|
|
28
|
-
/** Test seam — defaults to the consent-gated provision + import of the
|
|
29
|
-
* Claude Agent SDK driver. */
|
|
30
|
-
acquireSdk?: (confirm: (question: string) => Promise<boolean>) => Promise<AgentSdkModule | null>;
|
|
31
|
-
}
|
|
32
|
-
export declare function runInstall(options: InstallOptions): Promise<void>;
|
|
33
|
-
export interface DetectedAgent {
|
|
34
|
-
bin: string;
|
|
35
|
-
label: string;
|
|
36
|
-
path: string;
|
|
37
|
-
}
|
|
38
|
-
/** First known coding agent found on PATH, or null. Exported for tests. */
|
|
39
|
-
export declare function detectAgent(env?: Record<string, string | undefined>): DetectedAgent | null;
|
|
40
|
-
/** The package manager a lockfile in `dir` names, or null. Exported for tests. */
|
|
41
|
-
export declare function lockfilePackageManager(dir: string): "bun" | "pnpm" | "yarn" | "npm" | null;
|
|
1
|
+
/** Print the Gen-2 wiring path. Exported for the `pome install` command and its
|
|
2
|
+
* unit test. Never errors — a retired command should land the user on the
|
|
3
|
+
* right path, not exit non-zero. */
|
|
4
|
+
export declare function runInstall(): void;
|