@pome-sh/cli 0.9.0 → 0.10.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/dist/build-info.json +3 -3
- package/dist/src/cli/agent-resolver.d.ts +3 -0
- package/dist/src/cli/agent-resolver.js +10 -0
- package/dist/src/cli/checks-add.d.ts +32 -0
- package/dist/src/cli/checks-add.js +236 -0
- package/dist/src/cli/checks.d.ts +21 -0
- package/dist/src/cli/checks.js +150 -0
- package/dist/src/cli/main.js +28 -0
- package/dist/src/runner/runTask.d.ts +10 -10
- package/dist/src/task/insertCriterion.d.ts +15 -0
- package/dist/src/task/insertCriterion.js +62 -0
- package/dist/src/task/parseTask.d.ts +5 -0
- package/dist/src/task/parseTask.js +11 -0
- package/dist/src/task/taskSchema.d.ts +4 -4
- package/node_modules/@pome-sh/sdk/dist/checks.d.ts +54 -0
- package/node_modules/@pome-sh/sdk/dist/checks.js +143 -0
- package/node_modules/@pome-sh/sdk/dist/checks.js.map +1 -0
- package/node_modules/@pome-sh/sdk/package.json +7 -3
- package/node_modules/@pome-sh/twin-github/dist/src/access-control.d.ts +3 -3
- package/node_modules/@pome-sh/twin-github/dist/src/checks.d.ts +21 -0
- package/node_modules/@pome-sh/twin-github/dist/src/checks.js +90 -0
- package/node_modules/@pome-sh/twin-github/dist/src/checks.js.map +1 -0
- package/node_modules/@pome-sh/twin-github/dist/src/domain/checks.d.ts +153 -0
- package/node_modules/@pome-sh/twin-github/dist/src/domain/checks.js +66 -0
- package/node_modules/@pome-sh/twin-github/dist/src/domain/checks.js.map +1 -0
- package/node_modules/@pome-sh/twin-github/dist/src/domain/git.d.ts +567 -0
- package/node_modules/@pome-sh/twin-github/dist/src/domain/git.js +198 -0
- package/node_modules/@pome-sh/twin-github/dist/src/domain/git.js.map +1 -0
- package/node_modules/@pome-sh/twin-github/dist/src/{domain.d.ts → domain/github-domain.d.ts} +340 -71
- package/node_modules/@pome-sh/twin-github/dist/src/domain/github-domain.js +794 -0
- package/node_modules/@pome-sh/twin-github/dist/src/domain/github-domain.js.map +1 -0
- package/node_modules/@pome-sh/twin-github/dist/src/domain/helpers.d.ts +5 -0
- package/node_modules/@pome-sh/twin-github/dist/src/domain/helpers.js +15 -0
- package/node_modules/@pome-sh/twin-github/dist/src/domain/helpers.js.map +1 -0
- package/node_modules/@pome-sh/twin-github/dist/src/domain/index.d.ts +2 -0
- package/node_modules/@pome-sh/twin-github/dist/src/domain/index.js +5 -0
- package/node_modules/@pome-sh/twin-github/dist/src/domain/index.js.map +1 -0
- package/node_modules/@pome-sh/twin-github/dist/src/domain/issues.d.ts +545 -0
- package/node_modules/@pome-sh/twin-github/dist/src/domain/issues.js +272 -0
- package/node_modules/@pome-sh/twin-github/dist/src/domain/issues.js.map +1 -0
- package/node_modules/@pome-sh/twin-github/dist/src/domain/pulls.d.ts +816 -0
- package/node_modules/@pome-sh/twin-github/dist/src/domain/pulls.js +256 -0
- package/node_modules/@pome-sh/twin-github/dist/src/domain/pulls.js.map +1 -0
- package/node_modules/@pome-sh/twin-github/dist/src/domain/releases.d.ts +160 -0
- package/node_modules/@pome-sh/twin-github/dist/src/domain/releases.js +63 -0
- package/node_modules/@pome-sh/twin-github/dist/src/domain/releases.js.map +1 -0
- package/node_modules/@pome-sh/twin-github/dist/src/domain/repos.d.ts +219 -0
- package/node_modules/@pome-sh/twin-github/dist/src/domain/repos.js +131 -0
- package/node_modules/@pome-sh/twin-github/dist/src/domain/repos.js.map +1 -0
- package/node_modules/@pome-sh/twin-github/dist/src/domain/search.d.ts +252 -0
- package/node_modules/@pome-sh/twin-github/dist/src/domain/search.js +83 -0
- package/node_modules/@pome-sh/twin-github/dist/src/domain/search.js.map +1 -0
- package/node_modules/@pome-sh/twin-github/dist/src/domain/types.d.ts +15 -0
- package/node_modules/@pome-sh/twin-github/dist/src/domain/types.js +2 -0
- package/node_modules/@pome-sh/twin-github/dist/src/domain/types.js.map +1 -0
- package/node_modules/@pome-sh/twin-github/dist/src/index.d.ts +2 -1
- package/node_modules/@pome-sh/twin-github/dist/src/index.js +1 -1
- package/node_modules/@pome-sh/twin-github/dist/src/index.js.map +1 -1
- package/node_modules/@pome-sh/twin-github/dist/src/routes.d.ts +1 -1
- package/node_modules/@pome-sh/twin-github/dist/src/seed.d.ts +1 -1
- package/node_modules/@pome-sh/twin-github/dist/src/serializers.d.ts +3 -3
- package/node_modules/@pome-sh/twin-github/dist/src/tools.d.ts +188 -188
- package/node_modules/@pome-sh/twin-github/dist/src/twin.d.ts +1 -1
- package/node_modules/@pome-sh/twin-github/dist/src/twin.js +1 -1
- package/node_modules/@pome-sh/twin-github/dist/src/twin.js.map +1 -1
- package/node_modules/@pome-sh/twin-github/package.json +4 -4
- package/node_modules/@pome-sh/{twin-github → twin-gmail}/node_modules/@pome-sh/sdk/package.json +2 -2
- package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/sdk/dist/admin-gate.d.ts +35 -0
- package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/sdk/dist/admin-gate.js +103 -0
- package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/sdk/dist/admin-gate.js.map +1 -0
- package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/sdk/dist/auth.d.ts +100 -0
- package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/sdk/dist/auth.js +262 -0
- package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/sdk/dist/auth.js.map +1 -0
- package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/sdk/dist/build-info.d.ts +7 -0
- package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/sdk/dist/build-info.js +14 -0
- package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/sdk/dist/build-info.js.map +1 -0
- package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/sdk/dist/db.d.ts +44 -0
- package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/sdk/dist/db.js +113 -0
- package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/sdk/dist/db.js.map +1 -0
- package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/sdk/dist/errors.d.ts +24 -0
- package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/sdk/dist/errors.js +61 -0
- package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/sdk/dist/errors.js.map +1 -0
- package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/sdk/dist/failure-injection.d.ts +43 -0
- package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/sdk/dist/failure-injection.js +160 -0
- package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/sdk/dist/failure-injection.js.map +1 -0
- package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/sdk/dist/fidelity-inventory.d.ts +121 -0
- package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/sdk/dist/fidelity-inventory.js +204 -0
- package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/sdk/dist/fidelity-inventory.js.map +1 -0
- package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/sdk/dist/fidelity.d.ts +8 -0
- package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/sdk/dist/fidelity.js +39 -0
- package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/sdk/dist/fidelity.js.map +1 -0
- package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/sdk/dist/index.d.ts +372 -0
- package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/sdk/dist/index.js +139 -0
- package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/sdk/dist/index.js.map +1 -0
- package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/sdk/dist/mcp-jsonrpc.d.ts +10 -0
- package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/sdk/dist/mcp-jsonrpc.js +221 -0
- package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/sdk/dist/mcp-jsonrpc.js.map +1 -0
- package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/sdk/dist/parity.d.ts +61 -0
- package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/sdk/dist/parity.js +123 -0
- package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/sdk/dist/parity.js.map +1 -0
- package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/sdk/dist/recorder.d.ts +120 -0
- package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/sdk/dist/recorder.js +368 -0
- package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/sdk/dist/recorder.js.map +1 -0
- package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/sdk/dist/redaction.d.ts +1 -0
- package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/sdk/dist/redaction.js +3 -0
- package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/sdk/dist/redaction.js.map +1 -0
- package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/sdk/dist/server-helpers.d.ts +54 -0
- package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/sdk/dist/server-helpers.js +181 -0
- package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/sdk/dist/server-helpers.js.map +1 -0
- package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/sdk/dist/server.d.ts +46 -0
- package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/sdk/dist/server.js +394 -0
- package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/sdk/dist/server.js.map +1 -0
- package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/sdk/dist/tool-context.d.ts +8 -0
- package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/sdk/dist/tool-context.js +22 -0
- package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/sdk/dist/tool-context.js.map +1 -0
- package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/sdk/package.json +54 -0
- package/node_modules/@pome-sh/{twin-github → twin-linear}/node_modules/@pome-sh/shared-types/dist/index.d.ts +1 -0
- package/node_modules/@pome-sh/{twin-github → twin-linear}/node_modules/@pome-sh/shared-types/dist/index.js +1 -0
- package/node_modules/@pome-sh/{twin-github → twin-linear}/node_modules/@pome-sh/shared-types/dist/index.js.map +1 -1
- package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/shared-types/dist/manifest.d.ts +31 -0
- package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/shared-types/dist/manifest.js +76 -0
- package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/shared-types/dist/manifest.js.map +1 -0
- package/node_modules/@pome-sh/{twin-github → twin-linear}/node_modules/@pome-sh/shared-types/dist/rest.d.ts +9 -0
- package/node_modules/@pome-sh/{twin-github → twin-linear}/node_modules/@pome-sh/shared-types/dist/rest.js +27 -0
- package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/shared-types/dist/rest.js.map +1 -0
- package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/shared-types/manifest-schema.json +68 -0
- package/node_modules/@pome-sh/{twin-github → twin-linear}/node_modules/@pome-sh/shared-types/package.json +2 -1
- package/node_modules/@pome-sh/{twin-github → twin-linear}/node_modules/@pome-sh/shared-types/trace-contract.json +1 -1
- package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/admin-gate.d.ts +35 -0
- package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/admin-gate.js +103 -0
- package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/admin-gate.js.map +1 -0
- package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/auth.d.ts +100 -0
- package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/auth.js +262 -0
- package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/auth.js.map +1 -0
- package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/build-info.d.ts +7 -0
- package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/build-info.js +14 -0
- package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/build-info.js.map +1 -0
- package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/db.d.ts +44 -0
- package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/db.js +113 -0
- package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/db.js.map +1 -0
- package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/errors.d.ts +24 -0
- package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/errors.js +61 -0
- package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/errors.js.map +1 -0
- package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/failure-injection.d.ts +43 -0
- package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/failure-injection.js +160 -0
- package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/failure-injection.js.map +1 -0
- package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/fidelity-inventory.d.ts +121 -0
- package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/fidelity-inventory.js +204 -0
- package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/fidelity-inventory.js.map +1 -0
- package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/fidelity.d.ts +8 -0
- package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/fidelity.js +39 -0
- package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/fidelity.js.map +1 -0
- package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/index.d.ts +372 -0
- package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/index.js +139 -0
- package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/index.js.map +1 -0
- package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/mcp-jsonrpc.d.ts +10 -0
- package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/mcp-jsonrpc.js +221 -0
- package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/mcp-jsonrpc.js.map +1 -0
- package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/parity.d.ts +61 -0
- package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/parity.js +123 -0
- package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/parity.js.map +1 -0
- package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/recorder.d.ts +120 -0
- package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/recorder.js +368 -0
- package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/recorder.js.map +1 -0
- package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/redaction.d.ts +1 -0
- package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/redaction.js +3 -0
- package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/redaction.js.map +1 -0
- package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/server-helpers.d.ts +54 -0
- package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/server-helpers.js +181 -0
- package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/server-helpers.js.map +1 -0
- package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/server.d.ts +46 -0
- package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/server.js +394 -0
- package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/server.js.map +1 -0
- package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/tool-context.d.ts +8 -0
- package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/tool-context.js +22 -0
- package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/tool-context.js.map +1 -0
- package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/package.json +54 -0
- package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/admin-gate.d.ts +35 -0
- package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/admin-gate.js +103 -0
- package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/admin-gate.js.map +1 -0
- package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/auth.d.ts +100 -0
- package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/auth.js +262 -0
- package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/auth.js.map +1 -0
- package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/build-info.d.ts +7 -0
- package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/build-info.js +14 -0
- package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/build-info.js.map +1 -0
- package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/db.d.ts +44 -0
- package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/db.js +113 -0
- package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/db.js.map +1 -0
- package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/errors.d.ts +24 -0
- package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/errors.js +61 -0
- package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/errors.js.map +1 -0
- package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/failure-injection.d.ts +43 -0
- package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/failure-injection.js +160 -0
- package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/failure-injection.js.map +1 -0
- package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/fidelity-inventory.d.ts +121 -0
- package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/fidelity-inventory.js +204 -0
- package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/fidelity-inventory.js.map +1 -0
- package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/fidelity.d.ts +8 -0
- package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/fidelity.js +39 -0
- package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/fidelity.js.map +1 -0
- package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/index.d.ts +372 -0
- package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/index.js +139 -0
- package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/index.js.map +1 -0
- package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/mcp-jsonrpc.d.ts +10 -0
- package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/mcp-jsonrpc.js +221 -0
- package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/mcp-jsonrpc.js.map +1 -0
- package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/parity.d.ts +61 -0
- package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/parity.js +123 -0
- package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/parity.js.map +1 -0
- package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/recorder.d.ts +120 -0
- package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/recorder.js +368 -0
- package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/recorder.js.map +1 -0
- package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/redaction.d.ts +1 -0
- package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/redaction.js +3 -0
- package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/redaction.js.map +1 -0
- package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/server-helpers.d.ts +54 -0
- package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/server-helpers.js +181 -0
- package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/server-helpers.js.map +1 -0
- package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/server.d.ts +46 -0
- package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/server.js +394 -0
- package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/server.js.map +1 -0
- package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/tool-context.d.ts +8 -0
- package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/tool-context.js +22 -0
- package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/tool-context.js.map +1 -0
- package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/package.json +54 -0
- package/package.json +3 -3
- package/tasks/00-default-seed.md +1 -1
- package/tasks/01-bug-happy-path.md +1 -1
- package/tasks/03-already-triaged.md +1 -1
- package/tasks/06-mislabeled-needs-fix.md +1 -1
- package/tasks/17-in-scope-injection.md +1 -1
- package/node_modules/@pome-sh/twin-github/dist/src/domain.js +0 -0
- package/node_modules/@pome-sh/twin-github/dist/src/domain.js.map +0 -1
- package/node_modules/@pome-sh/twin-github/node_modules/@pome-sh/shared-types/dist/rest.js.map +0 -1
- /package/node_modules/@pome-sh/{twin-github → twin-gmail}/node_modules/@pome-sh/sdk/dist/admin-gate.d.ts +0 -0
- /package/node_modules/@pome-sh/{twin-github → twin-gmail}/node_modules/@pome-sh/sdk/dist/admin-gate.js +0 -0
- /package/node_modules/@pome-sh/{twin-github → twin-gmail}/node_modules/@pome-sh/sdk/dist/admin-gate.js.map +0 -0
- /package/node_modules/@pome-sh/{twin-github → twin-gmail}/node_modules/@pome-sh/sdk/dist/auth.d.ts +0 -0
- /package/node_modules/@pome-sh/{twin-github → twin-gmail}/node_modules/@pome-sh/sdk/dist/auth.js +0 -0
- /package/node_modules/@pome-sh/{twin-github → twin-gmail}/node_modules/@pome-sh/sdk/dist/auth.js.map +0 -0
- /package/node_modules/@pome-sh/{twin-github → twin-gmail}/node_modules/@pome-sh/sdk/dist/build-info.d.ts +0 -0
- /package/node_modules/@pome-sh/{twin-github → twin-gmail}/node_modules/@pome-sh/sdk/dist/build-info.js +0 -0
- /package/node_modules/@pome-sh/{twin-github → twin-gmail}/node_modules/@pome-sh/sdk/dist/build-info.js.map +0 -0
- /package/node_modules/@pome-sh/{twin-github → twin-gmail}/node_modules/@pome-sh/sdk/dist/db.d.ts +0 -0
- /package/node_modules/@pome-sh/{twin-github → twin-gmail}/node_modules/@pome-sh/sdk/dist/db.js +0 -0
- /package/node_modules/@pome-sh/{twin-github → twin-gmail}/node_modules/@pome-sh/sdk/dist/db.js.map +0 -0
- /package/node_modules/@pome-sh/{twin-github → twin-gmail}/node_modules/@pome-sh/sdk/dist/errors.d.ts +0 -0
- /package/node_modules/@pome-sh/{twin-github → twin-gmail}/node_modules/@pome-sh/sdk/dist/errors.js +0 -0
- /package/node_modules/@pome-sh/{twin-github → twin-gmail}/node_modules/@pome-sh/sdk/dist/errors.js.map +0 -0
- /package/node_modules/@pome-sh/{twin-github → twin-gmail}/node_modules/@pome-sh/sdk/dist/failure-injection.d.ts +0 -0
- /package/node_modules/@pome-sh/{twin-github → twin-gmail}/node_modules/@pome-sh/sdk/dist/failure-injection.js +0 -0
- /package/node_modules/@pome-sh/{twin-github → twin-gmail}/node_modules/@pome-sh/sdk/dist/failure-injection.js.map +0 -0
- /package/node_modules/@pome-sh/{twin-github → twin-gmail}/node_modules/@pome-sh/sdk/dist/fidelity-inventory.d.ts +0 -0
- /package/node_modules/@pome-sh/{twin-github → twin-gmail}/node_modules/@pome-sh/sdk/dist/fidelity-inventory.js +0 -0
- /package/node_modules/@pome-sh/{twin-github → twin-gmail}/node_modules/@pome-sh/sdk/dist/fidelity-inventory.js.map +0 -0
- /package/node_modules/@pome-sh/{twin-github → twin-gmail}/node_modules/@pome-sh/sdk/dist/fidelity.d.ts +0 -0
- /package/node_modules/@pome-sh/{twin-github → twin-gmail}/node_modules/@pome-sh/sdk/dist/fidelity.js +0 -0
- /package/node_modules/@pome-sh/{twin-github → twin-gmail}/node_modules/@pome-sh/sdk/dist/fidelity.js.map +0 -0
- /package/node_modules/@pome-sh/{twin-github → twin-gmail}/node_modules/@pome-sh/sdk/dist/index.d.ts +0 -0
- /package/node_modules/@pome-sh/{twin-github → twin-gmail}/node_modules/@pome-sh/sdk/dist/index.js +0 -0
- /package/node_modules/@pome-sh/{twin-github → twin-gmail}/node_modules/@pome-sh/sdk/dist/index.js.map +0 -0
- /package/node_modules/@pome-sh/{twin-github → twin-gmail}/node_modules/@pome-sh/sdk/dist/mcp-jsonrpc.d.ts +0 -0
- /package/node_modules/@pome-sh/{twin-github → twin-gmail}/node_modules/@pome-sh/sdk/dist/mcp-jsonrpc.js +0 -0
- /package/node_modules/@pome-sh/{twin-github → twin-gmail}/node_modules/@pome-sh/sdk/dist/mcp-jsonrpc.js.map +0 -0
- /package/node_modules/@pome-sh/{twin-github → twin-gmail}/node_modules/@pome-sh/sdk/dist/parity.d.ts +0 -0
- /package/node_modules/@pome-sh/{twin-github → twin-gmail}/node_modules/@pome-sh/sdk/dist/parity.js +0 -0
- /package/node_modules/@pome-sh/{twin-github → twin-gmail}/node_modules/@pome-sh/sdk/dist/parity.js.map +0 -0
- /package/node_modules/@pome-sh/{twin-github → twin-gmail}/node_modules/@pome-sh/sdk/dist/recorder.d.ts +0 -0
- /package/node_modules/@pome-sh/{twin-github → twin-gmail}/node_modules/@pome-sh/sdk/dist/recorder.js +0 -0
- /package/node_modules/@pome-sh/{twin-github → twin-gmail}/node_modules/@pome-sh/sdk/dist/recorder.js.map +0 -0
- /package/node_modules/@pome-sh/{twin-github → twin-gmail}/node_modules/@pome-sh/sdk/dist/redaction.d.ts +0 -0
- /package/node_modules/@pome-sh/{twin-github → twin-gmail}/node_modules/@pome-sh/sdk/dist/redaction.js +0 -0
- /package/node_modules/@pome-sh/{twin-github → twin-gmail}/node_modules/@pome-sh/sdk/dist/redaction.js.map +0 -0
- /package/node_modules/@pome-sh/{twin-github → twin-gmail}/node_modules/@pome-sh/sdk/dist/server-helpers.d.ts +0 -0
- /package/node_modules/@pome-sh/{twin-github → twin-gmail}/node_modules/@pome-sh/sdk/dist/server-helpers.js +0 -0
- /package/node_modules/@pome-sh/{twin-github → twin-gmail}/node_modules/@pome-sh/sdk/dist/server-helpers.js.map +0 -0
- /package/node_modules/@pome-sh/{twin-github → twin-gmail}/node_modules/@pome-sh/sdk/dist/server.d.ts +0 -0
- /package/node_modules/@pome-sh/{twin-github → twin-gmail}/node_modules/@pome-sh/sdk/dist/server.js +0 -0
- /package/node_modules/@pome-sh/{twin-github → twin-gmail}/node_modules/@pome-sh/sdk/dist/server.js.map +0 -0
- /package/node_modules/@pome-sh/{twin-github → twin-gmail}/node_modules/@pome-sh/sdk/dist/tool-context.d.ts +0 -0
- /package/node_modules/@pome-sh/{twin-github → twin-gmail}/node_modules/@pome-sh/sdk/dist/tool-context.js +0 -0
- /package/node_modules/@pome-sh/{twin-github → twin-gmail}/node_modules/@pome-sh/sdk/dist/tool-context.js.map +0 -0
- /package/node_modules/@pome-sh/{sdk → twin-gmail}/node_modules/@pome-sh/shared-types/dist/errors.d.ts +0 -0
- /package/node_modules/@pome-sh/{sdk → twin-gmail}/node_modules/@pome-sh/shared-types/dist/errors.js +0 -0
- /package/node_modules/@pome-sh/{sdk → twin-gmail}/node_modules/@pome-sh/shared-types/dist/errors.js.map +0 -0
- /package/node_modules/@pome-sh/{sdk → twin-gmail}/node_modules/@pome-sh/shared-types/dist/finalize-shapes.d.ts +0 -0
- /package/node_modules/@pome-sh/{sdk → twin-gmail}/node_modules/@pome-sh/shared-types/dist/finalize-shapes.js +0 -0
- /package/node_modules/@pome-sh/{sdk → twin-gmail}/node_modules/@pome-sh/shared-types/dist/finalize-shapes.js.map +0 -0
- /package/node_modules/@pome-sh/{sdk → twin-gmail}/node_modules/@pome-sh/shared-types/dist/github-access-control.d.ts +0 -0
- /package/node_modules/@pome-sh/{sdk → twin-gmail}/node_modules/@pome-sh/shared-types/dist/github-access-control.js +0 -0
- /package/node_modules/@pome-sh/{sdk → twin-gmail}/node_modules/@pome-sh/shared-types/dist/github-access-control.js.map +0 -0
- /package/node_modules/@pome-sh/{sdk → twin-gmail}/node_modules/@pome-sh/shared-types/dist/identity.d.ts +0 -0
- /package/node_modules/@pome-sh/{sdk → twin-gmail}/node_modules/@pome-sh/shared-types/dist/identity.js +0 -0
- /package/node_modules/@pome-sh/{sdk → twin-gmail}/node_modules/@pome-sh/shared-types/dist/identity.js.map +0 -0
- /package/node_modules/@pome-sh/{sdk → twin-gmail}/node_modules/@pome-sh/shared-types/dist/index.d.ts +0 -0
- /package/node_modules/@pome-sh/{sdk → twin-gmail}/node_modules/@pome-sh/shared-types/dist/index.js +0 -0
- /package/node_modules/@pome-sh/{sdk → twin-gmail}/node_modules/@pome-sh/shared-types/dist/index.js.map +0 -0
- /package/node_modules/@pome-sh/{sdk → twin-gmail}/node_modules/@pome-sh/shared-types/dist/manifest.d.ts +0 -0
- /package/node_modules/@pome-sh/{sdk → twin-gmail}/node_modules/@pome-sh/shared-types/dist/manifest.js +0 -0
- /package/node_modules/@pome-sh/{sdk → twin-gmail}/node_modules/@pome-sh/shared-types/dist/manifest.js.map +0 -0
- /package/node_modules/@pome-sh/{sdk → twin-gmail}/node_modules/@pome-sh/shared-types/dist/otel/event-schema.d.ts +0 -0
- /package/node_modules/@pome-sh/{sdk → twin-gmail}/node_modules/@pome-sh/shared-types/dist/otel/event-schema.js +0 -0
- /package/node_modules/@pome-sh/{sdk → twin-gmail}/node_modules/@pome-sh/shared-types/dist/otel/event-schema.js.map +0 -0
- /package/node_modules/@pome-sh/{sdk → twin-gmail}/node_modules/@pome-sh/shared-types/dist/otel/fixtures/data.d.ts +0 -0
- /package/node_modules/@pome-sh/{sdk → twin-gmail}/node_modules/@pome-sh/shared-types/dist/otel/fixtures/data.js +0 -0
- /package/node_modules/@pome-sh/{sdk → twin-gmail}/node_modules/@pome-sh/shared-types/dist/otel/fixtures/data.js.map +0 -0
- /package/node_modules/@pome-sh/{sdk → twin-gmail}/node_modules/@pome-sh/shared-types/dist/otel/fixtures/index.d.ts +0 -0
- /package/node_modules/@pome-sh/{sdk → twin-gmail}/node_modules/@pome-sh/shared-types/dist/otel/fixtures/index.js +0 -0
- /package/node_modules/@pome-sh/{sdk → twin-gmail}/node_modules/@pome-sh/shared-types/dist/otel/fixtures/index.js.map +0 -0
- /package/node_modules/@pome-sh/{sdk → twin-gmail}/node_modules/@pome-sh/shared-types/dist/otel/index.d.ts +0 -0
- /package/node_modules/@pome-sh/{sdk → twin-gmail}/node_modules/@pome-sh/shared-types/dist/otel/index.js +0 -0
- /package/node_modules/@pome-sh/{sdk → twin-gmail}/node_modules/@pome-sh/shared-types/dist/otel/index.js.map +0 -0
- /package/node_modules/@pome-sh/{sdk → twin-gmail}/node_modules/@pome-sh/shared-types/dist/otel/legacy-shim.d.ts +0 -0
- /package/node_modules/@pome-sh/{sdk → twin-gmail}/node_modules/@pome-sh/shared-types/dist/otel/legacy-shim.js +0 -0
- /package/node_modules/@pome-sh/{sdk → twin-gmail}/node_modules/@pome-sh/shared-types/dist/otel/legacy-shim.js.map +0 -0
- /package/node_modules/@pome-sh/{sdk → twin-gmail}/node_modules/@pome-sh/shared-types/dist/otel/map-span.d.ts +0 -0
- /package/node_modules/@pome-sh/{sdk → twin-gmail}/node_modules/@pome-sh/shared-types/dist/otel/map-span.js +0 -0
- /package/node_modules/@pome-sh/{sdk → twin-gmail}/node_modules/@pome-sh/shared-types/dist/otel/map-span.js.map +0 -0
- /package/node_modules/@pome-sh/{sdk → twin-gmail}/node_modules/@pome-sh/shared-types/dist/otel/nano.d.ts +0 -0
- /package/node_modules/@pome-sh/{sdk → twin-gmail}/node_modules/@pome-sh/shared-types/dist/otel/nano.js +0 -0
- /package/node_modules/@pome-sh/{sdk → twin-gmail}/node_modules/@pome-sh/shared-types/dist/otel/nano.js.map +0 -0
- /package/node_modules/@pome-sh/{sdk → twin-gmail}/node_modules/@pome-sh/shared-types/dist/otel/project.d.ts +0 -0
- /package/node_modules/@pome-sh/{sdk → twin-gmail}/node_modules/@pome-sh/shared-types/dist/otel/project.js +0 -0
- /package/node_modules/@pome-sh/{sdk → twin-gmail}/node_modules/@pome-sh/shared-types/dist/otel/project.js.map +0 -0
- /package/node_modules/@pome-sh/{sdk → twin-gmail}/node_modules/@pome-sh/shared-types/dist/otel/semconv.d.ts +0 -0
- /package/node_modules/@pome-sh/{sdk → twin-gmail}/node_modules/@pome-sh/shared-types/dist/otel/semconv.js +0 -0
- /package/node_modules/@pome-sh/{sdk → twin-gmail}/node_modules/@pome-sh/shared-types/dist/otel/semconv.js.map +0 -0
- /package/node_modules/@pome-sh/{sdk → twin-gmail}/node_modules/@pome-sh/shared-types/dist/otel/span-event.d.ts +0 -0
- /package/node_modules/@pome-sh/{sdk → twin-gmail}/node_modules/@pome-sh/shared-types/dist/otel/span-event.js +0 -0
- /package/node_modules/@pome-sh/{sdk → twin-gmail}/node_modules/@pome-sh/shared-types/dist/otel/span-event.js.map +0 -0
- /package/node_modules/@pome-sh/{sdk → twin-gmail}/node_modules/@pome-sh/shared-types/dist/recorder-events.d.ts +0 -0
- /package/node_modules/@pome-sh/{sdk → twin-gmail}/node_modules/@pome-sh/shared-types/dist/recorder-events.js +0 -0
- /package/node_modules/@pome-sh/{sdk → twin-gmail}/node_modules/@pome-sh/shared-types/dist/recorder-events.js.map +0 -0
- /package/node_modules/@pome-sh/{sdk → twin-gmail}/node_modules/@pome-sh/shared-types/dist/redaction.d.ts +0 -0
- /package/node_modules/@pome-sh/{sdk → twin-gmail}/node_modules/@pome-sh/shared-types/dist/redaction.js +0 -0
- /package/node_modules/@pome-sh/{sdk → twin-gmail}/node_modules/@pome-sh/shared-types/dist/redaction.js.map +0 -0
- /package/node_modules/@pome-sh/{sdk → twin-gmail}/node_modules/@pome-sh/shared-types/dist/rest.d.ts +0 -0
- /package/node_modules/@pome-sh/{sdk → twin-gmail}/node_modules/@pome-sh/shared-types/dist/rest.js +0 -0
- /package/node_modules/@pome-sh/{sdk → twin-gmail}/node_modules/@pome-sh/shared-types/dist/rest.js.map +0 -0
- /package/node_modules/@pome-sh/{sdk → twin-gmail}/node_modules/@pome-sh/shared-types/dist/run.d.ts +0 -0
- /package/node_modules/@pome-sh/{sdk → twin-gmail}/node_modules/@pome-sh/shared-types/dist/run.js +0 -0
- /package/node_modules/@pome-sh/{sdk → twin-gmail}/node_modules/@pome-sh/shared-types/dist/run.js.map +0 -0
- /package/node_modules/@pome-sh/{sdk → twin-gmail}/node_modules/@pome-sh/shared-types/dist/seed-envelope.d.ts +0 -0
- /package/node_modules/@pome-sh/{sdk → twin-gmail}/node_modules/@pome-sh/shared-types/dist/seed-envelope.js +0 -0
- /package/node_modules/@pome-sh/{sdk → twin-gmail}/node_modules/@pome-sh/shared-types/dist/seed-envelope.js.map +0 -0
- /package/node_modules/@pome-sh/{sdk → twin-gmail}/node_modules/@pome-sh/shared-types/dist/seed-state.d.ts +0 -0
- /package/node_modules/@pome-sh/{sdk → twin-gmail}/node_modules/@pome-sh/shared-types/dist/seed-state.js +0 -0
- /package/node_modules/@pome-sh/{sdk → twin-gmail}/node_modules/@pome-sh/shared-types/dist/seed-state.js.map +0 -0
- /package/node_modules/@pome-sh/{sdk → twin-gmail}/node_modules/@pome-sh/shared-types/dist/sessions.d.ts +0 -0
- /package/node_modules/@pome-sh/{sdk → twin-gmail}/node_modules/@pome-sh/shared-types/dist/sessions.js +0 -0
- /package/node_modules/@pome-sh/{sdk → twin-gmail}/node_modules/@pome-sh/shared-types/dist/sessions.js.map +0 -0
- /package/node_modules/@pome-sh/{sdk → twin-gmail}/node_modules/@pome-sh/shared-types/dist/task-vocab.d.ts +0 -0
- /package/node_modules/@pome-sh/{sdk → twin-gmail}/node_modules/@pome-sh/shared-types/dist/task-vocab.js +0 -0
- /package/node_modules/@pome-sh/{sdk → twin-gmail}/node_modules/@pome-sh/shared-types/dist/task-vocab.js.map +0 -0
- /package/node_modules/@pome-sh/{sdk → twin-gmail}/node_modules/@pome-sh/shared-types/dist/task.d.ts +0 -0
- /package/node_modules/@pome-sh/{sdk → twin-gmail}/node_modules/@pome-sh/shared-types/dist/task.js +0 -0
- /package/node_modules/@pome-sh/{sdk → twin-gmail}/node_modules/@pome-sh/shared-types/dist/task.js.map +0 -0
- /package/node_modules/@pome-sh/{sdk → twin-gmail}/node_modules/@pome-sh/shared-types/manifest-schema.json +0 -0
- /package/node_modules/@pome-sh/{sdk → twin-gmail}/node_modules/@pome-sh/shared-types/package.json +0 -0
- /package/node_modules/@pome-sh/{sdk → twin-gmail}/node_modules/@pome-sh/shared-types/trace-contract.json +0 -0
- /package/node_modules/@pome-sh/{twin-github → twin-linear}/node_modules/@pome-sh/shared-types/dist/errors.d.ts +0 -0
- /package/node_modules/@pome-sh/{twin-github → twin-linear}/node_modules/@pome-sh/shared-types/dist/errors.js +0 -0
- /package/node_modules/@pome-sh/{twin-github → twin-linear}/node_modules/@pome-sh/shared-types/dist/errors.js.map +0 -0
- /package/node_modules/@pome-sh/{twin-github → twin-linear}/node_modules/@pome-sh/shared-types/dist/finalize-shapes.d.ts +0 -0
- /package/node_modules/@pome-sh/{twin-github → twin-linear}/node_modules/@pome-sh/shared-types/dist/finalize-shapes.js +0 -0
- /package/node_modules/@pome-sh/{twin-github → twin-linear}/node_modules/@pome-sh/shared-types/dist/finalize-shapes.js.map +0 -0
- /package/node_modules/@pome-sh/{twin-github → twin-linear}/node_modules/@pome-sh/shared-types/dist/github-access-control.d.ts +0 -0
- /package/node_modules/@pome-sh/{twin-github → twin-linear}/node_modules/@pome-sh/shared-types/dist/github-access-control.js +0 -0
- /package/node_modules/@pome-sh/{twin-github → twin-linear}/node_modules/@pome-sh/shared-types/dist/github-access-control.js.map +0 -0
- /package/node_modules/@pome-sh/{twin-github → twin-linear}/node_modules/@pome-sh/shared-types/dist/identity.d.ts +0 -0
- /package/node_modules/@pome-sh/{twin-github → twin-linear}/node_modules/@pome-sh/shared-types/dist/identity.js +0 -0
- /package/node_modules/@pome-sh/{twin-github → twin-linear}/node_modules/@pome-sh/shared-types/dist/identity.js.map +0 -0
- /package/node_modules/@pome-sh/{twin-github → twin-linear}/node_modules/@pome-sh/shared-types/dist/otel/event-schema.d.ts +0 -0
- /package/node_modules/@pome-sh/{twin-github → twin-linear}/node_modules/@pome-sh/shared-types/dist/otel/event-schema.js +0 -0
- /package/node_modules/@pome-sh/{twin-github → twin-linear}/node_modules/@pome-sh/shared-types/dist/otel/event-schema.js.map +0 -0
- /package/node_modules/@pome-sh/{twin-github → twin-linear}/node_modules/@pome-sh/shared-types/dist/otel/fixtures/data.d.ts +0 -0
- /package/node_modules/@pome-sh/{twin-github → twin-linear}/node_modules/@pome-sh/shared-types/dist/otel/fixtures/data.js +0 -0
- /package/node_modules/@pome-sh/{twin-github → twin-linear}/node_modules/@pome-sh/shared-types/dist/otel/fixtures/data.js.map +0 -0
- /package/node_modules/@pome-sh/{twin-github → twin-linear}/node_modules/@pome-sh/shared-types/dist/otel/fixtures/index.d.ts +0 -0
- /package/node_modules/@pome-sh/{twin-github → twin-linear}/node_modules/@pome-sh/shared-types/dist/otel/fixtures/index.js +0 -0
- /package/node_modules/@pome-sh/{twin-github → twin-linear}/node_modules/@pome-sh/shared-types/dist/otel/fixtures/index.js.map +0 -0
- /package/node_modules/@pome-sh/{twin-github → twin-linear}/node_modules/@pome-sh/shared-types/dist/otel/index.d.ts +0 -0
- /package/node_modules/@pome-sh/{twin-github → twin-linear}/node_modules/@pome-sh/shared-types/dist/otel/index.js +0 -0
- /package/node_modules/@pome-sh/{twin-github → twin-linear}/node_modules/@pome-sh/shared-types/dist/otel/index.js.map +0 -0
- /package/node_modules/@pome-sh/{twin-github → twin-linear}/node_modules/@pome-sh/shared-types/dist/otel/legacy-shim.d.ts +0 -0
- /package/node_modules/@pome-sh/{twin-github → twin-linear}/node_modules/@pome-sh/shared-types/dist/otel/legacy-shim.js +0 -0
- /package/node_modules/@pome-sh/{twin-github → twin-linear}/node_modules/@pome-sh/shared-types/dist/otel/legacy-shim.js.map +0 -0
- /package/node_modules/@pome-sh/{twin-github → twin-linear}/node_modules/@pome-sh/shared-types/dist/otel/map-span.d.ts +0 -0
- /package/node_modules/@pome-sh/{twin-github → twin-linear}/node_modules/@pome-sh/shared-types/dist/otel/map-span.js +0 -0
- /package/node_modules/@pome-sh/{twin-github → twin-linear}/node_modules/@pome-sh/shared-types/dist/otel/map-span.js.map +0 -0
- /package/node_modules/@pome-sh/{twin-github → twin-linear}/node_modules/@pome-sh/shared-types/dist/otel/nano.d.ts +0 -0
- /package/node_modules/@pome-sh/{twin-github → twin-linear}/node_modules/@pome-sh/shared-types/dist/otel/nano.js +0 -0
- /package/node_modules/@pome-sh/{twin-github → twin-linear}/node_modules/@pome-sh/shared-types/dist/otel/nano.js.map +0 -0
- /package/node_modules/@pome-sh/{twin-github → twin-linear}/node_modules/@pome-sh/shared-types/dist/otel/project.d.ts +0 -0
- /package/node_modules/@pome-sh/{twin-github → twin-linear}/node_modules/@pome-sh/shared-types/dist/otel/project.js +0 -0
- /package/node_modules/@pome-sh/{twin-github → twin-linear}/node_modules/@pome-sh/shared-types/dist/otel/project.js.map +0 -0
- /package/node_modules/@pome-sh/{twin-github → twin-linear}/node_modules/@pome-sh/shared-types/dist/otel/semconv.d.ts +0 -0
- /package/node_modules/@pome-sh/{twin-github → twin-linear}/node_modules/@pome-sh/shared-types/dist/otel/semconv.js +0 -0
- /package/node_modules/@pome-sh/{twin-github → twin-linear}/node_modules/@pome-sh/shared-types/dist/otel/semconv.js.map +0 -0
- /package/node_modules/@pome-sh/{twin-github → twin-linear}/node_modules/@pome-sh/shared-types/dist/otel/span-event.d.ts +0 -0
- /package/node_modules/@pome-sh/{twin-github → twin-linear}/node_modules/@pome-sh/shared-types/dist/otel/span-event.js +0 -0
- /package/node_modules/@pome-sh/{twin-github → twin-linear}/node_modules/@pome-sh/shared-types/dist/otel/span-event.js.map +0 -0
- /package/node_modules/@pome-sh/{twin-github → twin-linear}/node_modules/@pome-sh/shared-types/dist/recorder-events.d.ts +0 -0
- /package/node_modules/@pome-sh/{twin-github → twin-linear}/node_modules/@pome-sh/shared-types/dist/recorder-events.js +0 -0
- /package/node_modules/@pome-sh/{twin-github → twin-linear}/node_modules/@pome-sh/shared-types/dist/recorder-events.js.map +0 -0
- /package/node_modules/@pome-sh/{twin-github → twin-linear}/node_modules/@pome-sh/shared-types/dist/redaction.d.ts +0 -0
- /package/node_modules/@pome-sh/{twin-github → twin-linear}/node_modules/@pome-sh/shared-types/dist/redaction.js +0 -0
- /package/node_modules/@pome-sh/{twin-github → twin-linear}/node_modules/@pome-sh/shared-types/dist/redaction.js.map +0 -0
- /package/node_modules/@pome-sh/{twin-github → twin-linear}/node_modules/@pome-sh/shared-types/dist/run.d.ts +0 -0
- /package/node_modules/@pome-sh/{twin-github → twin-linear}/node_modules/@pome-sh/shared-types/dist/run.js +0 -0
- /package/node_modules/@pome-sh/{twin-github → twin-linear}/node_modules/@pome-sh/shared-types/dist/run.js.map +0 -0
- /package/node_modules/@pome-sh/{twin-github → twin-linear}/node_modules/@pome-sh/shared-types/dist/seed-envelope.d.ts +0 -0
- /package/node_modules/@pome-sh/{twin-github → twin-linear}/node_modules/@pome-sh/shared-types/dist/seed-envelope.js +0 -0
- /package/node_modules/@pome-sh/{twin-github → twin-linear}/node_modules/@pome-sh/shared-types/dist/seed-envelope.js.map +0 -0
- /package/node_modules/@pome-sh/{twin-github → twin-linear}/node_modules/@pome-sh/shared-types/dist/seed-state.d.ts +0 -0
- /package/node_modules/@pome-sh/{twin-github → twin-linear}/node_modules/@pome-sh/shared-types/dist/seed-state.js +0 -0
- /package/node_modules/@pome-sh/{twin-github → twin-linear}/node_modules/@pome-sh/shared-types/dist/seed-state.js.map +0 -0
- /package/node_modules/@pome-sh/{twin-github → twin-linear}/node_modules/@pome-sh/shared-types/dist/sessions.d.ts +0 -0
- /package/node_modules/@pome-sh/{twin-github → twin-linear}/node_modules/@pome-sh/shared-types/dist/sessions.js +0 -0
- /package/node_modules/@pome-sh/{twin-github → twin-linear}/node_modules/@pome-sh/shared-types/dist/sessions.js.map +0 -0
- /package/node_modules/@pome-sh/{twin-github → twin-linear}/node_modules/@pome-sh/shared-types/dist/task-vocab.d.ts +0 -0
- /package/node_modules/@pome-sh/{twin-github → twin-linear}/node_modules/@pome-sh/shared-types/dist/task-vocab.js +0 -0
- /package/node_modules/@pome-sh/{twin-github → twin-linear}/node_modules/@pome-sh/shared-types/dist/task-vocab.js.map +0 -0
- /package/node_modules/@pome-sh/{twin-github → twin-linear}/node_modules/@pome-sh/shared-types/dist/task.d.ts +0 -0
- /package/node_modules/@pome-sh/{twin-github → twin-linear}/node_modules/@pome-sh/shared-types/dist/task.js +0 -0
- /package/node_modules/@pome-sh/{twin-github → twin-linear}/node_modules/@pome-sh/shared-types/dist/task.js.map +0 -0
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.10.0",
|
|
4
|
+
"git_sha": "14613c1a69d37441adc719248f0a506d7db76da9",
|
|
5
|
+
"build_time": "2026-07-28T23:09:18.070Z"
|
|
6
6
|
}
|
|
@@ -4,6 +4,9 @@ import type { ResolvedCredentials } from "./credentials.js";
|
|
|
4
4
|
export interface InteractiveSeams {
|
|
5
5
|
stdinIsTTY?: boolean;
|
|
6
6
|
confirm?: (question: string) => Promise<boolean>;
|
|
7
|
+
/** Free-text prompt. Added by F-1074: picking a check from a numbered list and
|
|
8
|
+
* filling its typed parameters needs an answer, not a yes/no. */
|
|
9
|
+
ask?: (question: string) => Promise<string>;
|
|
7
10
|
}
|
|
8
11
|
/** The manifest identity fields POSTed to the resolver. */
|
|
9
12
|
export interface AgentPostBody {
|
|
@@ -11,6 +11,7 @@ export function resolveSeams(opts) {
|
|
|
11
11
|
return {
|
|
12
12
|
stdinIsTTY: opts.stdinIsTTY ?? Boolean(process.stdin.isTTY),
|
|
13
13
|
confirm: opts.confirm ?? promptYesNo,
|
|
14
|
+
ask: opts.ask ?? promptLine,
|
|
14
15
|
};
|
|
15
16
|
}
|
|
16
17
|
async function requestAgent(creds, body) {
|
|
@@ -119,3 +120,12 @@ async function promptYesNo(question) {
|
|
|
119
120
|
rl.close();
|
|
120
121
|
}
|
|
121
122
|
}
|
|
123
|
+
async function promptLine(question) {
|
|
124
|
+
const rl = createInterface({ input: process.stdin, output: process.stderr });
|
|
125
|
+
try {
|
|
126
|
+
return (await new Promise((resolve) => rl.question(question, resolve))).trim();
|
|
127
|
+
}
|
|
128
|
+
finally {
|
|
129
|
+
rl.close();
|
|
130
|
+
}
|
|
131
|
+
}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { type InteractiveSeams } from "./agent-resolver.js";
|
|
2
|
+
export interface RemoteChecks {
|
|
3
|
+
twin: string;
|
|
4
|
+
digest: string;
|
|
5
|
+
checks: Array<{
|
|
6
|
+
id: string;
|
|
7
|
+
template: string;
|
|
8
|
+
substrate: string;
|
|
9
|
+
}>;
|
|
10
|
+
}
|
|
11
|
+
export type HandshakeResult = {
|
|
12
|
+
kind: "match";
|
|
13
|
+
} | {
|
|
14
|
+
kind: "skew";
|
|
15
|
+
message: string;
|
|
16
|
+
} | {
|
|
17
|
+
kind: "unverified";
|
|
18
|
+
note: string;
|
|
19
|
+
};
|
|
20
|
+
export declare function parseArgFlags(pairs: string[]): Record<string, string> | {
|
|
21
|
+
error: string;
|
|
22
|
+
};
|
|
23
|
+
export declare function handshake(twin: string, fetchRemote: (twin: string) => Promise<RemoteChecks>): Promise<HandshakeResult>;
|
|
24
|
+
export interface ChecksAddOptions extends InteractiveSeams {
|
|
25
|
+
check?: string;
|
|
26
|
+
arg: string[];
|
|
27
|
+
apiBaseUrl?: string;
|
|
28
|
+
/** Test seam — defaults to the live GET /v1/checks handshake. */
|
|
29
|
+
fetchRemote?: (twin: string) => Promise<RemoteChecks>;
|
|
30
|
+
credentialsPath?: string;
|
|
31
|
+
}
|
|
32
|
+
export declare function runChecksAddCommand(file: string, opts: ChecksAddOptions): Promise<void>;
|
|
@@ -0,0 +1,236 @@
|
|
|
1
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
2
|
+
/**
|
|
3
|
+
* `pome checks add <file>` — pick a declared check, fill its typed parameters,
|
|
4
|
+
* and let pome write the English into the task file. The author never types the
|
|
5
|
+
* sentence, so it cannot fail to bind.
|
|
6
|
+
*
|
|
7
|
+
* The digest handshake: this CLI resolves declarations from its own npm pin and
|
|
8
|
+
* the cloud resolves them from a different one. Before writing, ask the cloud
|
|
9
|
+
* for the vocabulary it GRADES against and compare digests.
|
|
10
|
+
* equal → write, silently
|
|
11
|
+
* different → REFUSE, and name which check moved
|
|
12
|
+
* unreachable → write from the local pin with a named note on stderr
|
|
13
|
+
* Offline authoring is real, and the degraded path's worst case is bounded: a
|
|
14
|
+
* stale sentence that keeps a template's literal segments fails at finalize as
|
|
15
|
+
* `corrupted_check_instance:<id>` — named, not a silent unmatched.
|
|
16
|
+
*/
|
|
17
|
+
import { readFile, writeFile } from "node:fs/promises";
|
|
18
|
+
import { renderCheck, templateSlots } from "@pome-sh/sdk/checks";
|
|
19
|
+
import { DuplicateCriterionError, MissingCriteriaSectionError, insertCriterion, } from "../task/insertCriterion.js";
|
|
20
|
+
import { readConfigTwins } from "../task/parseTask.js";
|
|
21
|
+
import { resolveSeams } from "./agent-resolver.js";
|
|
22
|
+
import { SUBSTRATE_HELP, checksFor, displaySentence, findCheck, localDigest, pinnedVersion, twinOf, } from "./checks.js";
|
|
23
|
+
import { resolveCredentials } from "./credentials.js";
|
|
24
|
+
export function parseArgFlags(pairs) {
|
|
25
|
+
const args = {};
|
|
26
|
+
for (const pair of pairs) {
|
|
27
|
+
const eq = pair.indexOf("=");
|
|
28
|
+
if (eq <= 0)
|
|
29
|
+
return { error: `--arg must be key=value, got ${JSON.stringify(pair)}` };
|
|
30
|
+
args[pair.slice(0, eq)] = pair.slice(eq + 1);
|
|
31
|
+
}
|
|
32
|
+
return args;
|
|
33
|
+
}
|
|
34
|
+
export async function handshake(twin, fetchRemote) {
|
|
35
|
+
const pin = pinnedVersion(`@pome-sh/twin-${twin}`);
|
|
36
|
+
let remote;
|
|
37
|
+
try {
|
|
38
|
+
remote = await fetchRemote(twin);
|
|
39
|
+
}
|
|
40
|
+
catch (err) {
|
|
41
|
+
return {
|
|
42
|
+
kind: "unverified",
|
|
43
|
+
note: `Not verified against the cloud (${err instanceof Error ? err.message : "unreachable"}). ` +
|
|
44
|
+
`Writing from the local pin: @pome-sh/twin-${twin} ${pin}.`,
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
if (localDigest(twin) === remote.digest)
|
|
48
|
+
return { kind: "match" };
|
|
49
|
+
const here = new Map(checksFor(twin).map((check) => [check.id, check.template]));
|
|
50
|
+
const there = new Map(remote.checks.map((check) => [check.id, check.template]));
|
|
51
|
+
const moved = [];
|
|
52
|
+
for (const [id, template] of here) {
|
|
53
|
+
if (!there.has(id))
|
|
54
|
+
moved.push(`${id} — this CLI has it, the cloud does not`);
|
|
55
|
+
else if (there.get(id) !== template) {
|
|
56
|
+
moved.push(`${id} — the sentence differs\n here: ${template}\n cloud: ${there.get(id)}`);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
for (const id of there.keys()) {
|
|
60
|
+
if (!here.has(id))
|
|
61
|
+
moved.push(`${id} — the cloud has it, this CLI does not`);
|
|
62
|
+
}
|
|
63
|
+
return {
|
|
64
|
+
kind: "skew",
|
|
65
|
+
message: `Refusing to write: this CLI and the cloud disagree about ${twin}'s vocabulary, so a ` +
|
|
66
|
+
`sentence written here might not be graded there.\n` +
|
|
67
|
+
moved.map((line) => ` - ${line}`).join("\n") +
|
|
68
|
+
`\n\n local @pome-sh/twin-${twin} ${pin}` +
|
|
69
|
+
`\n Update with \`npm i -g @pome-sh/cli@latest\`. If this CLI is already current, the ` +
|
|
70
|
+
`cloud is behind — that is a deploy, not something you can fix here.`,
|
|
71
|
+
};
|
|
72
|
+
}
|
|
73
|
+
async function liveFetch(creds, twin) {
|
|
74
|
+
const res = await fetch(`${creds.apiBaseUrl}/v1/checks?twin=${encodeURIComponent(twin)}`, {
|
|
75
|
+
headers: { "x-api-key": creds.apiKey },
|
|
76
|
+
});
|
|
77
|
+
if (!res.ok)
|
|
78
|
+
throw new Error(`GET /v1/checks returned ${res.status}`);
|
|
79
|
+
return (await res.json());
|
|
80
|
+
}
|
|
81
|
+
async function pickInteractively(source, seams) {
|
|
82
|
+
// CI is not interactive even when stdin happens to be a TTY — the same guard
|
|
83
|
+
// as agent-resolver's, so a pipeline gets a named refusal, never a hang.
|
|
84
|
+
if (!seams.stdinIsTTY || process.env.CI) {
|
|
85
|
+
console.error("Not an interactive terminal. Pass `--check <id> --arg key=value` " +
|
|
86
|
+
"(run `pome checks <twin>` to see both).");
|
|
87
|
+
process.exitCode = 2;
|
|
88
|
+
return undefined;
|
|
89
|
+
}
|
|
90
|
+
const twins = readConfigTwins(source);
|
|
91
|
+
const available = twins.flatMap((twin) => [...checksFor(twin)]);
|
|
92
|
+
if (available.length === 0) {
|
|
93
|
+
console.error(`No declared checks for this task's twins (${twins.join(", ")}). ` +
|
|
94
|
+
`Use a [model] criterion, or run \`pome checks\` to see which twins declare one.`);
|
|
95
|
+
process.exitCode = 2;
|
|
96
|
+
return undefined;
|
|
97
|
+
}
|
|
98
|
+
console.log("Which check?");
|
|
99
|
+
available.forEach((def, i) => {
|
|
100
|
+
console.log(` ${i + 1}) ${displaySentence(def)}`);
|
|
101
|
+
console.log(` ${def.description}`);
|
|
102
|
+
console.log(` needs: ${SUBSTRATE_HELP[def.substrate] ?? def.substrate}`);
|
|
103
|
+
console.log("");
|
|
104
|
+
});
|
|
105
|
+
const answer = await seams.ask("> ");
|
|
106
|
+
const index = Number.parseInt(answer, 10);
|
|
107
|
+
const picked = Number.isInteger(index) ? available[index - 1] : undefined;
|
|
108
|
+
if (!picked) {
|
|
109
|
+
console.error(`"${answer}" is not one of 1-${available.length}.`);
|
|
110
|
+
process.exitCode = 2;
|
|
111
|
+
return undefined;
|
|
112
|
+
}
|
|
113
|
+
return picked;
|
|
114
|
+
}
|
|
115
|
+
async function promptArgs(def, seams) {
|
|
116
|
+
const args = {};
|
|
117
|
+
for (const name of templateSlots(def.template).params) {
|
|
118
|
+
const type = def.params[name];
|
|
119
|
+
// The example, never the pattern. A regex source is not a prompt.
|
|
120
|
+
const valid = new RegExp(`^${type.pattern}$`);
|
|
121
|
+
for (let attempt = 0; attempt < 3; attempt += 1) {
|
|
122
|
+
const value = await seams.ask(`${name} (e.g. ${type.example})\n> `);
|
|
123
|
+
if (valid.test(value)) {
|
|
124
|
+
args[name] = value;
|
|
125
|
+
break;
|
|
126
|
+
}
|
|
127
|
+
console.error(` not a valid ${name} — it should look like ${type.example}`);
|
|
128
|
+
}
|
|
129
|
+
if (args[name] === undefined)
|
|
130
|
+
return { error: `Gave up on \`${name}\` after three tries.` };
|
|
131
|
+
}
|
|
132
|
+
return args;
|
|
133
|
+
}
|
|
134
|
+
export async function runChecksAddCommand(file, opts) {
|
|
135
|
+
let source;
|
|
136
|
+
try {
|
|
137
|
+
source = await readFile(file, "utf8");
|
|
138
|
+
}
|
|
139
|
+
catch {
|
|
140
|
+
console.error(`Could not read ${file}.`);
|
|
141
|
+
process.exitCode = 2;
|
|
142
|
+
return;
|
|
143
|
+
}
|
|
144
|
+
const seams = resolveSeams(opts);
|
|
145
|
+
let picked;
|
|
146
|
+
if (opts.check) {
|
|
147
|
+
picked = findCheck(opts.check);
|
|
148
|
+
if (!picked) {
|
|
149
|
+
console.error(`Unknown check "${opts.check}". Run \`pome checks <twin>\` to see the declared set; ` +
|
|
150
|
+
`github declares: ${checksFor("github")
|
|
151
|
+
.map((c) => c.id)
|
|
152
|
+
.join(", ")}.`);
|
|
153
|
+
process.exitCode = 2;
|
|
154
|
+
return;
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
else {
|
|
158
|
+
picked = await pickInteractively(source, seams);
|
|
159
|
+
if (!picked)
|
|
160
|
+
return; // already reported why
|
|
161
|
+
}
|
|
162
|
+
const parsed = opts.check ? parseArgFlags(opts.arg) : await promptArgs(picked, seams);
|
|
163
|
+
if ("error" in parsed) {
|
|
164
|
+
console.error(parsed.error);
|
|
165
|
+
process.exitCode = 2;
|
|
166
|
+
return;
|
|
167
|
+
}
|
|
168
|
+
const args = parsed;
|
|
169
|
+
const slots = templateSlots(picked.template).params;
|
|
170
|
+
for (const name of slots) {
|
|
171
|
+
const type = picked.params[name];
|
|
172
|
+
const value = args[name];
|
|
173
|
+
if (value === undefined) {
|
|
174
|
+
console.error(`${picked.id} needs a \`${name}\` — add \`--arg ${name}=${type.example}\`.`);
|
|
175
|
+
process.exitCode = 2;
|
|
176
|
+
return;
|
|
177
|
+
}
|
|
178
|
+
if (!new RegExp(`^${type.pattern}$`).test(value)) {
|
|
179
|
+
console.error(`\`${name}\` = ${JSON.stringify(value)} is not valid for ${picked.id}. ` +
|
|
180
|
+
`Example: ${type.example}`);
|
|
181
|
+
process.exitCode = 2;
|
|
182
|
+
return;
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
const extra = Object.keys(args).filter((key) => !slots.includes(key));
|
|
186
|
+
if (extra.length > 0) {
|
|
187
|
+
console.error(`${picked.id} does not declare: ${extra.join(", ")}. It takes: ${slots.join(", ")}.`);
|
|
188
|
+
process.exitCode = 2;
|
|
189
|
+
return;
|
|
190
|
+
}
|
|
191
|
+
const twin = twinOf(picked.id);
|
|
192
|
+
const fetchRemote = opts.fetchRemote ??
|
|
193
|
+
(async (t) => liveFetch(await resolveCredentials({
|
|
194
|
+
apiBaseUrl: opts.apiBaseUrl,
|
|
195
|
+
credentialsPath: opts.credentialsPath,
|
|
196
|
+
}), t));
|
|
197
|
+
const gate = await handshake(twin, fetchRemote);
|
|
198
|
+
if (gate.kind === "skew") {
|
|
199
|
+
console.error(gate.message);
|
|
200
|
+
process.exitCode = 2;
|
|
201
|
+
return;
|
|
202
|
+
}
|
|
203
|
+
if (gate.kind === "unverified")
|
|
204
|
+
console.error(gate.note);
|
|
205
|
+
const tagged = readConfigTwins(source).length > 1;
|
|
206
|
+
const line = `- [code${tagged ? `:${twin}` : ""}] ${renderCheck(picked, args)}`;
|
|
207
|
+
if (!opts.check) {
|
|
208
|
+
console.log("");
|
|
209
|
+
console.log("Appending to ## Success Criteria:");
|
|
210
|
+
console.log("");
|
|
211
|
+
console.log(` ${line}`);
|
|
212
|
+
console.log("");
|
|
213
|
+
if (!(await seams.confirm(`Write it? ${line} [Y/n] `))) {
|
|
214
|
+
console.log("Nothing written.");
|
|
215
|
+
return;
|
|
216
|
+
}
|
|
217
|
+
}
|
|
218
|
+
let next;
|
|
219
|
+
try {
|
|
220
|
+
next = insertCriterion(source, line, file);
|
|
221
|
+
}
|
|
222
|
+
catch (err) {
|
|
223
|
+
if (err instanceof MissingCriteriaSectionError || err instanceof DuplicateCriterionError) {
|
|
224
|
+
console.error(err.message);
|
|
225
|
+
process.exitCode = 2;
|
|
226
|
+
return;
|
|
227
|
+
}
|
|
228
|
+
throw err;
|
|
229
|
+
}
|
|
230
|
+
await writeFile(file, next, "utf8");
|
|
231
|
+
console.log(`Wrote ${file}:`);
|
|
232
|
+
console.log(` ${line}`);
|
|
233
|
+
console.log(picked.polarity(args) === "negative"
|
|
234
|
+
? " negative — this should PASS on an untouched seed; only the examinee can break it."
|
|
235
|
+
: " positive — this should FAIL on an untouched seed; the examinee has to make it true.");
|
|
236
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { type CheckDefinition } from "@pome-sh/sdk/checks";
|
|
2
|
+
export type DeclaredCheck = CheckDefinition<unknown, Record<string, string>>;
|
|
3
|
+
export declare function twinsWithChecks(): string[];
|
|
4
|
+
export declare function checksFor(twin: string): readonly DeclaredCheck[];
|
|
5
|
+
export declare function findCheck(id: string): DeclaredCheck | undefined;
|
|
6
|
+
export declare function twinOf(id: string): string | undefined;
|
|
7
|
+
export declare function isKnownTwin(twin: string): boolean;
|
|
8
|
+
/** `` No new labels were created in `<repo>` `` — every slot shown as its own
|
|
9
|
+
* name. Derived from the template, so no `title` field has to exist. */
|
|
10
|
+
export declare function displaySentence(def: DeclaredCheck): string;
|
|
11
|
+
export declare function localDigest(twin: string): string;
|
|
12
|
+
/** Read the pin from OUR OWN manifest. The twin's exports map sends
|
|
13
|
+
* `./package.json` through its `"./*"` wildcard and fails to resolve — and the
|
|
14
|
+
* pin we control is the one that matters anyway. */
|
|
15
|
+
export declare function pinnedVersion(pkg: string): string;
|
|
16
|
+
export declare const SUBSTRATE_HELP: Record<string, string>;
|
|
17
|
+
export declare function argFlagsFor(def: DeclaredCheck): string;
|
|
18
|
+
export interface ChecksCommandOptions {
|
|
19
|
+
json?: boolean;
|
|
20
|
+
}
|
|
21
|
+
export declare function runChecksCommand(twinArg: string | undefined, opts: ChecksCommandOptions): Promise<void>;
|
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
2
|
+
/**
|
|
3
|
+
* `pome checks` — the assertable vocabulary a twin declares.
|
|
4
|
+
*
|
|
5
|
+
* Discovery is offline, like `pome tasks`: the declaration comes from the twin
|
|
6
|
+
* package this CLI is pinned to. That is a SECOND resolution point (pome-cloud's
|
|
7
|
+
* `resolveDeclaredChecks` is the first), accepted so authoring works without a
|
|
8
|
+
* network, and gated by the digest handshake in `checks-add.ts` — which refuses
|
|
9
|
+
* to write a sentence when the two pins disagree.
|
|
10
|
+
*/
|
|
11
|
+
import { readFileSync } from "node:fs";
|
|
12
|
+
import { join } from "node:path";
|
|
13
|
+
import { checksDigest, templateSlots } from "@pome-sh/sdk/checks";
|
|
14
|
+
import { GITHUB_CHECKS } from "@pome-sh/twin-github/checks";
|
|
15
|
+
import { resolvePackageRoot } from "./resolve-package-root.js";
|
|
16
|
+
const REGISTRIES = {
|
|
17
|
+
github: GITHUB_CHECKS,
|
|
18
|
+
};
|
|
19
|
+
// Twins that EXIST but declare nothing yet. Listed separately so `pome checks
|
|
20
|
+
// slack` answers "not migrated yet" instead of "no such twin" — a typo and an
|
|
21
|
+
// empty vocabulary are different facts.
|
|
22
|
+
const TWINS_WITHOUT_CHECKS = ["slack", "stripe", "gmail", "linear"];
|
|
23
|
+
export function twinsWithChecks() {
|
|
24
|
+
return Object.keys(REGISTRIES).sort();
|
|
25
|
+
}
|
|
26
|
+
export function checksFor(twin) {
|
|
27
|
+
return REGISTRIES[twin] ?? [];
|
|
28
|
+
}
|
|
29
|
+
export function findCheck(id) {
|
|
30
|
+
for (const checks of Object.values(REGISTRIES)) {
|
|
31
|
+
const hit = checks.find((check) => check.id === id);
|
|
32
|
+
if (hit)
|
|
33
|
+
return hit;
|
|
34
|
+
}
|
|
35
|
+
return undefined;
|
|
36
|
+
}
|
|
37
|
+
export function twinOf(id) {
|
|
38
|
+
for (const [twin, checks] of Object.entries(REGISTRIES)) {
|
|
39
|
+
if (checks.some((check) => check.id === id))
|
|
40
|
+
return twin;
|
|
41
|
+
}
|
|
42
|
+
return undefined;
|
|
43
|
+
}
|
|
44
|
+
export function isKnownTwin(twin) {
|
|
45
|
+
return twinsWithChecks().includes(twin) || TWINS_WITHOUT_CHECKS.includes(twin);
|
|
46
|
+
}
|
|
47
|
+
/** `` No new labels were created in `<repo>` `` — every slot shown as its own
|
|
48
|
+
* name. Derived from the template, so no `title` field has to exist. */
|
|
49
|
+
export function displaySentence(def) {
|
|
50
|
+
const { literals, params } = templateSlots(def.template);
|
|
51
|
+
return params.reduce((out, param, i) => `${out}<${param}>${literals[i + 1]}`, literals[0]);
|
|
52
|
+
}
|
|
53
|
+
export function localDigest(twin) {
|
|
54
|
+
return checksDigest(checksFor(twin));
|
|
55
|
+
}
|
|
56
|
+
/** Read the pin from OUR OWN manifest. The twin's exports map sends
|
|
57
|
+
* `./package.json` through its `"./*"` wildcard and fails to resolve — and the
|
|
58
|
+
* pin we control is the one that matters anyway. */
|
|
59
|
+
export function pinnedVersion(pkg) {
|
|
60
|
+
const root = resolvePackageRoot(import.meta.url);
|
|
61
|
+
if (!root)
|
|
62
|
+
return "unknown";
|
|
63
|
+
try {
|
|
64
|
+
const manifest = JSON.parse(readFileSync(join(root, "package.json"), "utf8"));
|
|
65
|
+
return manifest.dependencies?.[pkg] ?? "unknown";
|
|
66
|
+
}
|
|
67
|
+
catch {
|
|
68
|
+
return "unknown";
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
export const SUBSTRATE_HELP = {
|
|
72
|
+
final: "the final state",
|
|
73
|
+
"seed+final": "the seed and the final state",
|
|
74
|
+
tape: "the recorded call tape",
|
|
75
|
+
};
|
|
76
|
+
function useColor() {
|
|
77
|
+
return Boolean(process.stdout.isTTY && !process.env.NO_COLOR);
|
|
78
|
+
}
|
|
79
|
+
function dim(s) {
|
|
80
|
+
return useColor() ? `\x1b[2m${s}\x1b[0m` : s;
|
|
81
|
+
}
|
|
82
|
+
function bold(s) {
|
|
83
|
+
return useColor() ? `\x1b[1m${s}\x1b[0m` : s;
|
|
84
|
+
}
|
|
85
|
+
export function argFlagsFor(def) {
|
|
86
|
+
return templateSlots(def.template)
|
|
87
|
+
.params.map((name) => `--arg ${name}=${def.params[name].example}`)
|
|
88
|
+
.join(" ");
|
|
89
|
+
}
|
|
90
|
+
function jsonView(twin) {
|
|
91
|
+
return {
|
|
92
|
+
twin,
|
|
93
|
+
digest: localDigest(twin),
|
|
94
|
+
checks: checksFor(twin).map((def) => ({
|
|
95
|
+
id: def.id,
|
|
96
|
+
template: def.template,
|
|
97
|
+
description: def.description,
|
|
98
|
+
substrate: def.substrate,
|
|
99
|
+
params: templateSlots(def.template).params.map((name) => ({
|
|
100
|
+
name,
|
|
101
|
+
pattern: def.params[name].pattern,
|
|
102
|
+
example: def.params[name].example,
|
|
103
|
+
})),
|
|
104
|
+
})),
|
|
105
|
+
};
|
|
106
|
+
}
|
|
107
|
+
export async function runChecksCommand(twinArg, opts) {
|
|
108
|
+
if (!twinArg) {
|
|
109
|
+
if (opts.json) {
|
|
110
|
+
console.log(JSON.stringify({ twins: twinsWithChecks() }, null, 2));
|
|
111
|
+
return;
|
|
112
|
+
}
|
|
113
|
+
console.log(bold("Pome checks"));
|
|
114
|
+
console.log(dim("Twins that declare an assertable vocabulary."));
|
|
115
|
+
console.log("");
|
|
116
|
+
for (const twin of twinsWithChecks()) {
|
|
117
|
+
console.log(` ${bold(twin)} ${dim(`(${checksFor(twin).length} checks)`)}`);
|
|
118
|
+
}
|
|
119
|
+
console.log("");
|
|
120
|
+
console.log(dim("Run `pome checks <twin>` to list them."));
|
|
121
|
+
return;
|
|
122
|
+
}
|
|
123
|
+
const twin = twinArg.trim();
|
|
124
|
+
if (!isKnownTwin(twin)) {
|
|
125
|
+
console.error(`Unknown twin "${twin}". Twins that declare checks: ${twinsWithChecks().join(", ")}.`);
|
|
126
|
+
process.exitCode = 2;
|
|
127
|
+
return;
|
|
128
|
+
}
|
|
129
|
+
if (opts.json) {
|
|
130
|
+
console.log(JSON.stringify(jsonView(twin), null, 2));
|
|
131
|
+
return;
|
|
132
|
+
}
|
|
133
|
+
const checks = checksFor(twin);
|
|
134
|
+
if (checks.length === 0) {
|
|
135
|
+
console.log(bold(`${twin} — no declared checks yet`));
|
|
136
|
+
console.log(dim(`Its vocabulary has not been migrated. Use [model] criteria for ${twin} for now.`));
|
|
137
|
+
return;
|
|
138
|
+
}
|
|
139
|
+
console.log(`${bold(`${twin} — ${checks.length} declared check${checks.length === 1 ? "" : "s"}`)} ` +
|
|
140
|
+
dim(`(@pome-sh/twin-${twin} ${pinnedVersion(`@pome-sh/twin-${twin}`)})`));
|
|
141
|
+
console.log("");
|
|
142
|
+
for (const def of checks) {
|
|
143
|
+
console.log(` ${bold(def.id)}`);
|
|
144
|
+
console.log(` ${displaySentence(def)}`);
|
|
145
|
+
console.log(` ${dim(def.description)}`);
|
|
146
|
+
console.log(` ${dim(`needs: ${SUBSTRATE_HELP[def.substrate] ?? def.substrate}`)}`);
|
|
147
|
+
console.log(` ${dim(`pome checks add <file> --check ${def.id} ${argFlagsFor(def)}`)}`);
|
|
148
|
+
console.log("");
|
|
149
|
+
}
|
|
150
|
+
}
|
package/dist/src/cli/main.js
CHANGED
|
@@ -17,6 +17,8 @@ import { loginWithClerk } from "./login.js";
|
|
|
17
17
|
import { runDocsCommand } from "./docs.js";
|
|
18
18
|
import { runCompileSeeds } from "./compile-seeds.js";
|
|
19
19
|
import { runTasksCommand } from "./tasks.js";
|
|
20
|
+
import { runChecksCommand } from "./checks.js";
|
|
21
|
+
import { runChecksAddCommand } from "./checks-add.js";
|
|
20
22
|
import { runEvalCommand } from "./eval.js";
|
|
21
23
|
import { copyAnnounceLine, ensureDefaultTask, runYoursFrameLines, trialsPinFallbackLine, } from "./default-task.js";
|
|
22
24
|
import { findTwin, runnableTasks, } from "./tasks-catalog.js";
|
|
@@ -245,6 +247,32 @@ export function createProgram() {
|
|
|
245
247
|
};
|
|
246
248
|
registerTasksCommand("tasks", false);
|
|
247
249
|
registerTasksCommand("scenarios", true);
|
|
250
|
+
// F-1074 — `pome checks` is a TOP-LEVEL group, not `pome tasks checks`:
|
|
251
|
+
// `pome tasks` already takes `[twin]` positionally, so `tasks checks` would
|
|
252
|
+
// parse "checks" as a twin id, and `pome task` one letter from `pome tasks`
|
|
253
|
+
// is a trap.
|
|
254
|
+
const checks = program
|
|
255
|
+
.command("checks")
|
|
256
|
+
.argument("[twin]", "Twin id (e.g. github). Omit to list twins that declare checks.")
|
|
257
|
+
.option("--json", "Emit the declaration as JSON (for skills and agents).", false)
|
|
258
|
+
.description("Browse the typed checks a twin declares — the closed set [code] criteria come from")
|
|
259
|
+
.action(async (twin, opts) => {
|
|
260
|
+
await runChecksCommand(twin, { json: opts.json });
|
|
261
|
+
});
|
|
262
|
+
checks
|
|
263
|
+
.command("add")
|
|
264
|
+
.argument("<file>", "Task markdown file to append a criterion to")
|
|
265
|
+
.option("--check <id>", "Check id (run `pome checks <twin>` to list them)")
|
|
266
|
+
.option("--arg <key=value>", "One per declared parameter. Repeat the flag.", (value, previous = []) => [...previous, value], [])
|
|
267
|
+
.option("--api-url <url>", "Control-plane URL", process.env.POME_API_URL ?? DEFAULT_CONTROL_PLANE_URL)
|
|
268
|
+
.description("Add one [code] criterion by picking a declared check — pome writes the English")
|
|
269
|
+
.action(async (file, opts) => {
|
|
270
|
+
await runChecksAddCommand(file, {
|
|
271
|
+
check: opts.check,
|
|
272
|
+
arg: opts.arg,
|
|
273
|
+
apiBaseUrl: opts.apiUrl,
|
|
274
|
+
});
|
|
275
|
+
});
|
|
248
276
|
program
|
|
249
277
|
.command("compile-seeds")
|
|
250
278
|
.argument("[target]", "Task .md file or directory (defaults to ./tasks)")
|
|
@@ -75,7 +75,7 @@ export declare function runTask(options: RunTaskOptions): Promise<{
|
|
|
75
75
|
}[];
|
|
76
76
|
statuses: {
|
|
77
77
|
context: string;
|
|
78
|
-
state: "error" | "
|
|
78
|
+
state: "error" | "failure" | "pending" | "success";
|
|
79
79
|
description: string;
|
|
80
80
|
}[];
|
|
81
81
|
number?: number | undefined;
|
|
@@ -321,7 +321,7 @@ export declare function runTask(options: RunTaskOptions): Promise<{
|
|
|
321
321
|
states?: {
|
|
322
322
|
name: string;
|
|
323
323
|
id?: string | undefined;
|
|
324
|
-
type?: "
|
|
324
|
+
type?: "backlog" | "unstarted" | "started" | "completed" | "canceled" | undefined;
|
|
325
325
|
position?: number | undefined;
|
|
326
326
|
}[] | undefined;
|
|
327
327
|
}[];
|
|
@@ -334,7 +334,7 @@ export declare function runTask(options: RunTaskOptions): Promise<{
|
|
|
334
334
|
}[];
|
|
335
335
|
projects: {
|
|
336
336
|
name: string;
|
|
337
|
-
state: "
|
|
337
|
+
state: "started" | "completed" | "canceled" | "planned";
|
|
338
338
|
id?: string | undefined;
|
|
339
339
|
description?: string | null | undefined;
|
|
340
340
|
team?: string | undefined;
|
|
@@ -394,7 +394,7 @@ export declare function runTask(options: RunTaskOptions): Promise<{
|
|
|
394
394
|
clientSecret: string;
|
|
395
395
|
name: string;
|
|
396
396
|
redirectUris: string[];
|
|
397
|
-
actor: "
|
|
397
|
+
actor: "app" | "user";
|
|
398
398
|
assignable: boolean;
|
|
399
399
|
mentionable: boolean;
|
|
400
400
|
id?: string | undefined;
|
|
@@ -407,7 +407,7 @@ export declare function runTask(options: RunTaskOptions): Promise<{
|
|
|
407
407
|
user?: string | undefined;
|
|
408
408
|
app?: string | undefined;
|
|
409
409
|
scopes?: string | string[] | undefined;
|
|
410
|
-
actor?: "
|
|
410
|
+
actor?: "app" | "user" | undefined;
|
|
411
411
|
sid?: string | undefined;
|
|
412
412
|
expiresAt?: string | null | undefined;
|
|
413
413
|
}[];
|
|
@@ -470,7 +470,7 @@ export declare function runTask(options: RunTaskOptions): Promise<{
|
|
|
470
470
|
}[];
|
|
471
471
|
statuses: {
|
|
472
472
|
context: string;
|
|
473
|
-
state: "error" | "
|
|
473
|
+
state: "error" | "failure" | "pending" | "success";
|
|
474
474
|
description: string;
|
|
475
475
|
}[];
|
|
476
476
|
number?: number | undefined;
|
|
@@ -716,7 +716,7 @@ export declare function runTask(options: RunTaskOptions): Promise<{
|
|
|
716
716
|
states?: {
|
|
717
717
|
name: string;
|
|
718
718
|
id?: string | undefined;
|
|
719
|
-
type?: "
|
|
719
|
+
type?: "backlog" | "unstarted" | "started" | "completed" | "canceled" | undefined;
|
|
720
720
|
position?: number | undefined;
|
|
721
721
|
}[] | undefined;
|
|
722
722
|
}[];
|
|
@@ -729,7 +729,7 @@ export declare function runTask(options: RunTaskOptions): Promise<{
|
|
|
729
729
|
}[];
|
|
730
730
|
projects: {
|
|
731
731
|
name: string;
|
|
732
|
-
state: "
|
|
732
|
+
state: "started" | "completed" | "canceled" | "planned";
|
|
733
733
|
id?: string | undefined;
|
|
734
734
|
description?: string | null | undefined;
|
|
735
735
|
team?: string | undefined;
|
|
@@ -789,7 +789,7 @@ export declare function runTask(options: RunTaskOptions): Promise<{
|
|
|
789
789
|
clientSecret: string;
|
|
790
790
|
name: string;
|
|
791
791
|
redirectUris: string[];
|
|
792
|
-
actor: "
|
|
792
|
+
actor: "app" | "user";
|
|
793
793
|
assignable: boolean;
|
|
794
794
|
mentionable: boolean;
|
|
795
795
|
id?: string | undefined;
|
|
@@ -802,7 +802,7 @@ export declare function runTask(options: RunTaskOptions): Promise<{
|
|
|
802
802
|
user?: string | undefined;
|
|
803
803
|
app?: string | undefined;
|
|
804
804
|
scopes?: string | string[] | undefined;
|
|
805
|
-
actor?: "
|
|
805
|
+
actor?: "app" | "user" | undefined;
|
|
806
806
|
sid?: string | undefined;
|
|
807
807
|
expiresAt?: string | null | undefined;
|
|
808
808
|
}[];
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* F-1074 — append one rendered criterion to a task file's `## Success Criteria`,
|
|
3
|
+
* touching nothing else.
|
|
4
|
+
*
|
|
5
|
+
* It does NOT parse and re-serialize the markdown. Re-serializing is how the
|
|
6
|
+
* readable artifact drifts, and the north-star check on this ticket is that it
|
|
7
|
+
* does not: authoring a criterion changes exactly one line.
|
|
8
|
+
*/
|
|
9
|
+
export declare class MissingCriteriaSectionError extends Error {
|
|
10
|
+
constructor(path: string);
|
|
11
|
+
}
|
|
12
|
+
export declare class DuplicateCriterionError extends Error {
|
|
13
|
+
constructor(path: string, line: string);
|
|
14
|
+
}
|
|
15
|
+
export declare function insertCriterion(source: string, line: string, path?: string): string;
|