@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/dist/src/cli/install.js
CHANGED
|
@@ -1,417 +1,36 @@
|
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
|
2
|
-
//
|
|
3
|
-
// coding agent's own edit-approval UI.
|
|
2
|
+
// F-893 — `pome install` (Gen-1 agent-driven wiring) is retired.
|
|
4
3
|
//
|
|
5
|
-
//
|
|
6
|
-
//
|
|
7
|
-
//
|
|
8
|
-
//
|
|
4
|
+
// It used to run a headless coding-agent session whose knowledge layer was the
|
|
5
|
+
// `pome-setup` skill, staging the edits in a shadow copy and gating them behind
|
|
6
|
+
// a terminal diff (FDRS-642/661). F-859 turned `pome-setup` into a redirect
|
|
7
|
+
// tombstone — so the wiring no longer actually ran, it just injected a pointer.
|
|
8
|
+
// This command is now a thin redirect to the Gen-2 path; the shadow-diff engine
|
|
9
|
+
// (`embedded-wiring.ts`) and the Agent SDK provisioning (`agent-sdk.ts`) were
|
|
10
|
+
// deleted with it.
|
|
9
11
|
//
|
|
10
|
-
//
|
|
11
|
-
//
|
|
12
|
-
//
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
import { runEmbeddedWiring } from "./embedded-wiring.js";
|
|
34
|
-
import { loginWithClerk } from "./login.js";
|
|
35
|
-
import { resolvePackageRoot } from "./resolve-package-root.js";
|
|
36
|
-
import { runSkillsInstall } from "./skills.js";
|
|
37
|
-
const execFileAsync = promisify(execFile);
|
|
38
|
-
/** Coding agents `pome install` can hand off to, in detection order. */
|
|
39
|
-
const KNOWN_AGENTS = [{ bin: "claude", label: "Claude Code" }];
|
|
40
|
-
/** First message of the interactive session. The skill carries the wiring
|
|
41
|
-
* knowledge; this only names it, sets adapter-first, and fixes the exit
|
|
42
|
-
* contract (pome verifies with doctor after the session ends). */
|
|
43
|
-
export const KICKOFF_PROMPT = "Use the pome-setup skill to wire this repository to pome (adapter-first: " +
|
|
44
|
-
"withPome() + env-injected base URL). Follow the skill's steps and show me " +
|
|
45
|
-
"each edit for approval before applying. When the wiring is done, exit " +
|
|
46
|
-
"this session — pome will verify it with `pome doctor`.";
|
|
47
|
-
/** Self-contained fallback prompt for users without a detected coding agent
|
|
48
|
-
* (their agent won't have the pome-setup skill installed). */
|
|
49
|
-
export const PASTE_PROMPT = [
|
|
50
|
-
"Wire this repository to pome (https://pome.sh) so its agent runs against a twin in test:",
|
|
51
|
-
"1. If pome.json is missing, run `pome init`; set the top-level command to how this agent starts.",
|
|
52
|
-
"2. Claude Agent SDK repos: add @pome-sh/adapter-claude-sdk, import query/tool from it (drop-in replacements), and call withPome() once at startup.",
|
|
53
|
-
"3. Replace every hardcoded production API host (e.g. https://api.github.com) with the env the pome runner injects: read POME_GITHUB_REST_URL / POME_GITHUB_MCP_URL and POME_AUTH_TOKEN from process.env. Never write secrets or URLs into source.",
|
|
54
|
-
"4. Make minimal, targeted edits and show each diff for approval before applying.",
|
|
55
|
-
"5. Finish by running `pome doctor` and fixing its named cause until it exits green.",
|
|
56
|
-
].join("\n");
|
|
57
|
-
export async function runInstall(options) {
|
|
58
|
-
const cwd = options.cwd ?? process.cwd();
|
|
59
|
-
const stdinIsTTY = options.stdinIsTTY ?? Boolean(process.stdin.isTTY);
|
|
60
|
-
const confirm = options.confirm ?? promptYesNo;
|
|
61
|
-
const login = options.login ?? loginWithClerk;
|
|
62
|
-
// Interactive by design: the whole point is handing THIS terminal to an
|
|
63
|
-
// agent session the user supervises. A pipe can't approve edits.
|
|
64
|
-
if (!stdinIsTTY) {
|
|
65
|
-
console.error("pome install is interactive — it hands your terminal to a coding agent session.");
|
|
66
|
-
console.error("Run it from a terminal. For unattended setups, wire manually: see `pome docs`.");
|
|
67
|
-
process.exitCode = 2;
|
|
68
|
-
return;
|
|
69
|
-
}
|
|
70
|
-
console.error("pome will wire your agent to a twin in test.");
|
|
71
|
-
console.error("");
|
|
72
|
-
// 1. Auth first — auth happens at this journey stage (Done-when bullet 1).
|
|
73
|
-
// Logging in here means neither the agent session nor anything after it
|
|
74
|
-
// trips over missing credentials.
|
|
75
|
-
try {
|
|
76
|
-
await resolveCredentials({
|
|
77
|
-
apiBaseUrl: options.apiUrl,
|
|
78
|
-
credentialsPath: options.credentialsPath,
|
|
79
|
-
});
|
|
80
|
-
console.error("✓ signed in");
|
|
81
|
-
}
|
|
82
|
-
catch (err) {
|
|
83
|
-
if (!(err instanceof HostedAuthError))
|
|
84
|
-
throw err;
|
|
85
|
-
console.error("no pome credentials found — routing through pome login first.");
|
|
86
|
-
await login({
|
|
87
|
-
apiUrl: options.apiUrl,
|
|
88
|
-
dashboardUrl: options.dashboardUrl,
|
|
89
|
-
keyName: "pome install",
|
|
90
|
-
});
|
|
91
|
-
}
|
|
92
|
-
// 2. Detect the coding agent before the git guard: the fallback path edits
|
|
93
|
-
// nothing, so an unclean tree shouldn't block it.
|
|
94
|
-
const agent = detectAgent(process.env);
|
|
95
|
-
if (!agent) {
|
|
96
|
-
// FDRS-669 — a previously-inited repo still gets its agent registered on
|
|
97
|
-
// the fallback path; a truly fresh repo has no config yet (the manual
|
|
98
|
-
// steps below start with `pome init`), so this is a silent no-op there.
|
|
99
|
-
await registerAgentStep({
|
|
100
|
-
apiBaseUrl: options.apiUrl,
|
|
101
|
-
cwd,
|
|
102
|
-
credentialsPath: options.credentialsPath,
|
|
103
|
-
});
|
|
104
|
-
printManualFallback();
|
|
105
|
-
return; // exit 0 — the designed no-agent outcome, not a failure.
|
|
106
|
-
}
|
|
107
|
-
// 3. Git-as-undo guard. The session edits files and git is the only
|
|
108
|
-
// rollback — make that precondition explicit instead of assuming it.
|
|
109
|
-
const tree = await inspectWorkingTree(cwd);
|
|
110
|
-
if (tree === "dirty") {
|
|
111
|
-
console.error("");
|
|
112
|
-
console.error("this repo has uncommitted changes. the agent session edits files, and its");
|
|
113
|
-
console.error("edits will mix with yours — git is the only undo for an agent mis-edit.");
|
|
114
|
-
if (!(await confirm("continue anyway? (commit or stash first is safer) [y/N] "))) {
|
|
115
|
-
console.error("aborted — nothing changed. commit or stash, then re-run pome install.");
|
|
116
|
-
return;
|
|
117
|
-
}
|
|
118
|
-
}
|
|
119
|
-
else if (tree === "not-a-repo") {
|
|
120
|
-
console.error("");
|
|
121
|
-
console.error("this directory is not a git repository — if the agent session mis-edits a");
|
|
122
|
-
console.error("file, there is NO undo.");
|
|
123
|
-
if (!(await confirm("continue without version control? [y/N] "))) {
|
|
124
|
-
console.error("aborted — nothing changed. git init && git add -A && git commit, then re-run.");
|
|
125
|
-
return;
|
|
126
|
-
}
|
|
127
|
-
}
|
|
128
|
-
// 4. The default path: embed the agent headless and gate its edits behind
|
|
129
|
-
// pome's own terminal diff (moment 02). Falls back to the interactive
|
|
130
|
-
// handoff when the pieces aren't there or the user asked for it.
|
|
131
|
-
let stagedApplied = false;
|
|
132
|
-
if (!options.interactive) {
|
|
133
|
-
const hasLogin = options.hasClaudeLogin ?? (() => detectClaudeLogin());
|
|
134
|
-
if (!hasLogin()) {
|
|
135
|
-
console.error("");
|
|
136
|
-
console.error("no Claude login or ANTHROPIC_API_KEY found for the headless staged-diff flow —");
|
|
137
|
-
console.error("handing off to an interactive session instead.");
|
|
138
|
-
}
|
|
139
|
-
else {
|
|
140
|
-
const skillSourceDir = packagedSkillDir();
|
|
141
|
-
const acquireSdk = options.acquireSdk ?? acquireAgentSdkWithConsent;
|
|
142
|
-
const sdk = skillSourceDir ? await acquireSdk(confirm) : null;
|
|
143
|
-
if (!skillSourceDir) {
|
|
144
|
-
console.error("");
|
|
145
|
-
console.error("bundled pome-setup skill missing from this install — using the interactive session.");
|
|
146
|
-
}
|
|
147
|
-
else if (!sdk) {
|
|
148
|
-
console.error("continuing with the interactive session instead.");
|
|
149
|
-
}
|
|
150
|
-
else {
|
|
151
|
-
console.error("");
|
|
152
|
-
console.error(`wiring with ${agent.label} (headless) — nothing is written until you approve the diff.`);
|
|
153
|
-
const outcome = await runEmbeddedWiring({
|
|
154
|
-
cwd,
|
|
155
|
-
claudePath: agent.path,
|
|
156
|
-
skillSourceDir,
|
|
157
|
-
query: sdk.query,
|
|
158
|
-
confirm,
|
|
159
|
-
});
|
|
160
|
-
if (outcome.kind === "declined") {
|
|
161
|
-
console.error("aborted — nothing changed. re-run pome install to try again, or");
|
|
162
|
-
console.error("`pome install --interactive` to drive the session yourself.");
|
|
163
|
-
return;
|
|
164
|
-
}
|
|
165
|
-
if (outcome.kind === "no-diff") {
|
|
166
|
-
// Never a silent no-op: name the reason the session produced no
|
|
167
|
-
// applicable diff (Done-when bullet 2).
|
|
168
|
-
console.error("");
|
|
169
|
-
console.error("the session staged no changes — nothing to apply.");
|
|
170
|
-
console.error(`reason: ${outcome.reason}`);
|
|
171
|
-
console.error("re-run pome install, or `pome install --interactive` to drive the session yourself.");
|
|
172
|
-
process.exitCode = 1;
|
|
173
|
-
return;
|
|
174
|
-
}
|
|
175
|
-
if (outcome.kind === "session-error") {
|
|
176
|
-
console.error("");
|
|
177
|
-
console.error(outcome.reason);
|
|
178
|
-
console.error("re-run pome install, or `pome install --interactive` to drive the session yourself.");
|
|
179
|
-
process.exitCode = 1;
|
|
180
|
-
return;
|
|
181
|
-
}
|
|
182
|
-
// applied — the session never runs installs itself (no Bash in the
|
|
183
|
-
// staging tool set); dependencies it added land here, before doctor.
|
|
184
|
-
if (outcome.packageJsonChanged) {
|
|
185
|
-
await runPackageInstall(cwd);
|
|
186
|
-
}
|
|
187
|
-
stagedApplied = true;
|
|
188
|
-
}
|
|
189
|
-
}
|
|
190
|
-
}
|
|
191
|
-
if (!stagedApplied) {
|
|
192
|
-
// 4b. Interactive fallback — the FDRS-642 flow, unchanged: ensure the
|
|
193
|
-
// pome-setup skill where the agent looks for it (~/.claude/skills/),
|
|
194
|
-
// then hand this terminal to the agent; the diff gate is the agent's
|
|
195
|
-
// own edit-approval UI.
|
|
196
|
-
console.error("");
|
|
197
|
-
await runSkillsInstall({});
|
|
198
|
-
if (process.exitCode === 2) {
|
|
199
|
-
// runSkillsInstall signals failure (no ~/.claude, packaging problem) via
|
|
200
|
-
// exitCode — the session would run without the skill, so hand the user
|
|
201
|
-
// the manual path instead. Keep exit 2: unlike the no-agent fallback,
|
|
202
|
-
// this is a real environment problem.
|
|
203
|
-
console.error("");
|
|
204
|
-
console.error("couldn't install the pome-setup skill — falling back to manual steps.");
|
|
205
|
-
printManualFallback();
|
|
206
|
-
return;
|
|
207
|
-
}
|
|
208
|
-
console.error("");
|
|
209
|
-
console.error(`handing off to ${agent.label} — review and approve its edits in the session.`);
|
|
210
|
-
console.error("exit the session when the wiring is done; pome verifies it after.");
|
|
211
|
-
console.error("");
|
|
212
|
-
const sessionExit = await runAgentSession(agent.path, [KICKOFF_PROMPT], cwd);
|
|
213
|
-
if (sessionExit !== 0) {
|
|
214
|
-
console.error(`(${agent.label} exited ${sessionExit} — verifying anyway; doctor is the source of truth.)`);
|
|
215
|
-
}
|
|
216
|
-
}
|
|
217
|
-
// 6. FDRS-669 — register the agent (idempotent) now that the session has
|
|
218
|
-
// had its chance to create pome.json. Runs before the doctor verify
|
|
219
|
-
// so even a red-doctor install leaves the repo registered: the first bare
|
|
220
|
-
// `pome run` submits under this agent, and "Default agent" stays a
|
|
221
|
-
// migration-era state only (Reliability IA v1, decision 2).
|
|
222
|
-
console.error("");
|
|
223
|
-
await registerAgentStep({
|
|
224
|
-
apiBaseUrl: options.apiUrl,
|
|
225
|
-
cwd,
|
|
226
|
-
credentialsPath: options.credentialsPath,
|
|
227
|
-
});
|
|
228
|
-
// 7. The ending pome's terminal owns: doctor verify to green (moment 02).
|
|
229
|
-
// Dynamic import keeps the twin harness out of the way until needed —
|
|
230
|
-
// same pattern as the `doctor` and `run` commands.
|
|
231
|
-
console.error("");
|
|
232
|
-
const { runDoctorChecks } = await import("../doctor/checks.js");
|
|
233
|
-
const { renderDoctorReport } = await import("../doctor/render.js");
|
|
234
|
-
const report = await runDoctorChecks({ mode: "full", cwd });
|
|
235
|
-
for (const line of renderDoctorReport(report, { header: "verifying the wiring …" })) {
|
|
12
|
+
// Wiring your own agent to pome is now: connect the pome control MCP, install
|
|
13
|
+
// the Gen-2 coach skill set, then run `pome-intake` (managed agents) or the
|
|
14
|
+
// coach's REST-launch preflight (self-hosted REST agents).
|
|
15
|
+
/** The Gen-2 wiring path `pome install` now points at. Printed to stderr,
|
|
16
|
+
* matching the rest of the CLI's informational output. */
|
|
17
|
+
const GEN2_REDIRECT = [
|
|
18
|
+
"pome install (Gen-1 agent-driven wiring) is retired.",
|
|
19
|
+
"",
|
|
20
|
+
"Wire your own agent to pome the Gen-2 way:",
|
|
21
|
+
" 1. claude mcp add --transport http pome https://mcp.pome.sh/mcp",
|
|
22
|
+
" # connect the pome control MCP",
|
|
23
|
+
" 2. npx skills add pome-sh/digital-twins # install the Gen-2 coach skills",
|
|
24
|
+
" 3. run the pome-intake skill to register the examinee and check twin",
|
|
25
|
+
" coverage (self-hosted REST agent: use the coach's REST-launch preflight).",
|
|
26
|
+
"",
|
|
27
|
+
"Already have pome.json? `pome register agent <name>` and `pome doctor` still apply.",
|
|
28
|
+
"See `pome docs getting-started`.",
|
|
29
|
+
];
|
|
30
|
+
/** Print the Gen-2 wiring path. Exported for the `pome install` command and its
|
|
31
|
+
* unit test. Never errors — a retired command should land the user on the
|
|
32
|
+
* right path, not exit non-zero. */
|
|
33
|
+
export function runInstall() {
|
|
34
|
+
for (const line of GEN2_REDIRECT)
|
|
236
35
|
console.error(line);
|
|
237
|
-
}
|
|
238
|
-
console.error("");
|
|
239
|
-
if (report.ok) {
|
|
240
|
-
console.error("wiring verified — your agent is ready.");
|
|
241
|
-
console.error("");
|
|
242
|
-
console.error("next: pome scenarios github --copy # pull runnable tasks into ./scenarios/");
|
|
243
|
-
console.error(" pome run scenarios/01-bug-happy-path.md");
|
|
244
|
-
return;
|
|
245
|
-
}
|
|
246
|
-
console.error("the agent session ended but the wiring isn't green — fix the cause above,");
|
|
247
|
-
console.error("or re-run pome install to hand the fix back to your agent.");
|
|
248
|
-
process.exitCode = 1;
|
|
249
|
-
}
|
|
250
|
-
/** First known coding agent found on PATH, or null. Exported for tests. */
|
|
251
|
-
export function detectAgent(env = process.env) {
|
|
252
|
-
for (const agent of KNOWN_AGENTS) {
|
|
253
|
-
const found = findExecutableOnPath(agent.bin, env);
|
|
254
|
-
if (found)
|
|
255
|
-
return { ...agent, path: found };
|
|
256
|
-
}
|
|
257
|
-
return null;
|
|
258
|
-
}
|
|
259
|
-
function findExecutableOnPath(bin, env) {
|
|
260
|
-
const names = process.platform === "win32" ? [`${bin}.cmd`, `${bin}.exe`, bin] : [bin];
|
|
261
|
-
for (const dir of (env.PATH ?? "").split(delimiter)) {
|
|
262
|
-
if (!dir)
|
|
263
|
-
continue;
|
|
264
|
-
for (const name of names) {
|
|
265
|
-
const candidate = join(dir, name);
|
|
266
|
-
try {
|
|
267
|
-
accessSync(candidate, constants.X_OK);
|
|
268
|
-
if (statSync(candidate).isFile())
|
|
269
|
-
return candidate;
|
|
270
|
-
}
|
|
271
|
-
catch {
|
|
272
|
-
/* keep looking */
|
|
273
|
-
}
|
|
274
|
-
}
|
|
275
|
-
}
|
|
276
|
-
return null;
|
|
277
|
-
}
|
|
278
|
-
/** FDRS-669 — the install-time registration bracket. Registration failing
|
|
279
|
-
* must not fail the install (runs would just land under "Default agent"
|
|
280
|
-
* until the user re-runs install or `pome register agent`), so every
|
|
281
|
-
* outcome renders as a line, never an exit code. */
|
|
282
|
-
async function registerAgentStep(input) {
|
|
283
|
-
const { ensureAgentRegistered } = await import("./register.js");
|
|
284
|
-
try {
|
|
285
|
-
const result = await ensureAgentRegistered(input);
|
|
286
|
-
if (result.status === "registered") {
|
|
287
|
-
console.error(`✓ registered agent (slug=${result.agentSlug}) — runs submit under it.`);
|
|
288
|
-
}
|
|
289
|
-
else if (result.status === "already-registered") {
|
|
290
|
-
console.error(`✓ agent already registered (${result.agentSlug ?? result.agentId}).`);
|
|
291
|
-
}
|
|
292
|
-
// no-config: silent — the session/manual steps own creating the config;
|
|
293
|
-
// registration happens on the next `pome install` once it exists.
|
|
294
|
-
}
|
|
295
|
-
catch (err) {
|
|
296
|
-
console.error(`couldn't register the agent: ${err instanceof Error ? err.message : String(err)}`);
|
|
297
|
-
console.error("runs will record under \"Default agent\" until `pome register agent <name>` or a re-run of pome install succeeds.");
|
|
298
|
-
}
|
|
299
|
-
}
|
|
300
|
-
async function inspectWorkingTree(cwd) {
|
|
301
|
-
try {
|
|
302
|
-
const { stdout } = await execFileAsync("git", ["status", "--porcelain"], {
|
|
303
|
-
cwd,
|
|
304
|
-
});
|
|
305
|
-
return stdout.trim().length === 0 ? "clean" : "dirty";
|
|
306
|
-
}
|
|
307
|
-
catch {
|
|
308
|
-
// Not a git repo, or no git binary — either way there is no undo.
|
|
309
|
-
return "not-a-repo";
|
|
310
|
-
}
|
|
311
|
-
}
|
|
312
|
-
async function promptYesNo(question) {
|
|
313
|
-
const rl = createInterface({ input: process.stdin, output: process.stderr });
|
|
314
|
-
try {
|
|
315
|
-
const answer = await new Promise((resolve) => rl.question(question, resolve));
|
|
316
|
-
return /^y(es)?$/i.test(answer.trim());
|
|
317
|
-
}
|
|
318
|
-
finally {
|
|
319
|
-
rl.close();
|
|
320
|
-
}
|
|
321
|
-
}
|
|
322
|
-
function runAgentSession(command, args, cwd) {
|
|
323
|
-
return new Promise((resolvePromise, rejectPromise) => {
|
|
324
|
-
const child = spawn(command, args, { cwd, stdio: "inherit" });
|
|
325
|
-
child.once("error", rejectPromise);
|
|
326
|
-
child.once("exit", (code, signal) => {
|
|
327
|
-
resolvePromise(code ?? (signal ? 1 : 0));
|
|
328
|
-
});
|
|
329
|
-
});
|
|
330
|
-
}
|
|
331
|
-
/** The bundled pome-setup skill inside this pome install — the knowledge
|
|
332
|
-
* layer the embedded session loads from the shadow's .claude/skills. */
|
|
333
|
-
function packagedSkillDir() {
|
|
334
|
-
const root = resolvePackageRoot(import.meta.url);
|
|
335
|
-
if (!root)
|
|
336
|
-
return null;
|
|
337
|
-
const dir = join(root, "skills", "pome-setup");
|
|
338
|
-
return existsSync(dir) ? dir : null;
|
|
339
|
-
}
|
|
340
|
-
/** Consent-gated one-time download of the Claude Agent SDK driver into
|
|
341
|
-
* ~/.pome/agent-sdk (a few MB — the ~244 MB platform runtime is skipped;
|
|
342
|
-
* the session runs on the user's own `claude` binary). */
|
|
343
|
-
async function acquireAgentSdkWithConsent(confirm) {
|
|
344
|
-
const dir = agentSdkDir();
|
|
345
|
-
if (!isAgentSdkProvisioned(dir)) {
|
|
346
|
-
console.error("");
|
|
347
|
-
console.error("pome can run the wiring headless and show you one reviewable diff before");
|
|
348
|
-
console.error("anything is written. this needs a one-time download of the Claude Agent");
|
|
349
|
-
console.error(`SDK driver (a few MB) into ${dir}.`);
|
|
350
|
-
if (!(await confirm("download it now? [y/N] ")))
|
|
351
|
-
return null;
|
|
352
|
-
if (!(await provisionAgentSdk(dir)))
|
|
353
|
-
return null;
|
|
354
|
-
}
|
|
355
|
-
const sdk = await loadAgentSdk(dir);
|
|
356
|
-
if (!sdk)
|
|
357
|
-
console.error("couldn't load the Claude Agent SDK driver.");
|
|
358
|
-
return sdk;
|
|
359
|
-
}
|
|
360
|
-
/** The package manager a lockfile in `dir` names, or null. Exported for tests. */
|
|
361
|
-
export function lockfilePackageManager(dir) {
|
|
362
|
-
if (existsSync(join(dir, "bun.lock")) || existsSync(join(dir, "bun.lockb")))
|
|
363
|
-
return "bun";
|
|
364
|
-
if (existsSync(join(dir, "pnpm-lock.yaml")))
|
|
365
|
-
return "pnpm";
|
|
366
|
-
if (existsSync(join(dir, "yarn.lock")))
|
|
367
|
-
return "yarn";
|
|
368
|
-
if (existsSync(join(dir, "package-lock.json")))
|
|
369
|
-
return "npm";
|
|
370
|
-
return null;
|
|
371
|
-
}
|
|
372
|
-
/** Install dependencies the staged diff added to package.json, with the
|
|
373
|
-
* repo's own package manager. The lockfile names it — checked in `cwd`
|
|
374
|
-
* first, then up the ancestor chain, because in a workspace the lockfile
|
|
375
|
-
* lives at the workspace root, not the package being wired. The install
|
|
376
|
-
* itself still runs in `cwd`; every manager resolves its own workspace
|
|
377
|
-
* root upward from there. */
|
|
378
|
-
async function runPackageInstall(cwd) {
|
|
379
|
-
let pm = null;
|
|
380
|
-
for (let dir = cwd;;) {
|
|
381
|
-
pm = lockfilePackageManager(dir);
|
|
382
|
-
if (pm)
|
|
383
|
-
break;
|
|
384
|
-
const parent = join(dir, "..");
|
|
385
|
-
if (parent === dir)
|
|
386
|
-
break;
|
|
387
|
-
dir = parent;
|
|
388
|
-
}
|
|
389
|
-
pm ??= "npm";
|
|
390
|
-
console.error("");
|
|
391
|
-
console.error(`package.json changed — running ${pm} install …`);
|
|
392
|
-
const exit = await new Promise((resolvePromise, rejectPromise) => {
|
|
393
|
-
const child = spawn(pm, ["install"], { cwd, stdio: "inherit" });
|
|
394
|
-
child.once("error", rejectPromise);
|
|
395
|
-
child.once("exit", (code, signal) => resolvePromise(code ?? (signal ? 1 : 0)));
|
|
396
|
-
}).catch(() => 1);
|
|
397
|
-
if (exit !== 0) {
|
|
398
|
-
console.error(`(${pm} install exited ${exit} — doctor will name what's missing.)`);
|
|
399
|
-
}
|
|
400
|
-
}
|
|
401
|
-
function printManualFallback() {
|
|
402
|
-
console.error(`no coding agent found on PATH (looked for: ${KNOWN_AGENTS.map((a) => a.bin).join(", ")}).`);
|
|
403
|
-
console.error("");
|
|
404
|
-
console.error("wire it manually:");
|
|
405
|
-
console.error(" 1. config pome init # if pome.json is missing;");
|
|
406
|
-
console.error(" # then set the top-level command to your agent's start command");
|
|
407
|
-
console.error(" 2. adapter npm install @pome-sh/adapter-claude-sdk");
|
|
408
|
-
console.error(' 3. hook + env import { withPome } from "@pome-sh/adapter-claude-sdk"; withPome();');
|
|
409
|
-
console.error(" read the twin URL from env, never hardcode:");
|
|
410
|
-
console.error(" const { POME_GITHUB_REST_URL: baseUrl, POME_AUTH_TOKEN: token } = process.env;");
|
|
411
|
-
console.error(" 4. verify pome doctor # must end green");
|
|
412
|
-
console.error("");
|
|
413
|
-
console.error("or paste this into any coding agent:");
|
|
414
|
-
console.error("─".repeat(72));
|
|
415
|
-
console.error(PASTE_PROMPT);
|
|
416
|
-
console.error("─".repeat(72));
|
|
417
36
|
}
|