@pome-sh/cli 0.1.0 → 0.2.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 +5 -6
- package/dist/build-info.json +3 -3
- package/dist/src/cli/eval.js +26 -8
- package/dist/src/cli/init-sdk.d.ts +0 -3
- package/dist/src/cli/init-sdk.js +117 -24
- package/dist/src/cli/main.js +23 -69
- package/dist/src/cli/register.d.ts +9 -0
- package/dist/src/cli/register.js +51 -5
- package/dist/src/cli/session.d.ts +7 -1
- package/dist/src/cli/session.js +87 -27
- package/dist/src/demo/runDemo.js +3 -2
- package/dist/src/doctor/checks.js +2 -2
- package/dist/src/hosted/client.d.ts +41 -5
- package/dist/src/hosted/client.js +333 -19
- package/dist/src/hosted/errors.d.ts +11 -1
- package/dist/src/hosted/errors.js +8 -1
- package/dist/src/hosted/evalResultView.d.ts +2 -0
- package/dist/src/hosted/evalResultView.js +22 -0
- package/dist/src/hosted/uploadAndFinalize.d.ts +18 -1
- package/dist/src/hosted/uploadAndFinalize.js +51 -3
- package/dist/src/recorder/inspect.js +20 -2
- package/dist/src/runner/mergeAdapterSignals.js +2 -2
- package/dist/src/runner/ports.js +3 -0
- package/dist/src/runner/runScenario.d.ts +79 -2
- package/dist/src/runner/runScenario.js +94 -36
- package/dist/src/runner/runScenarioHosted.d.ts +37 -0
- package/dist/src/runner/runScenarioHosted.js +257 -58
- package/dist/src/runner/runTrialGroup.d.ts +1 -3
- package/dist/src/runner/runTrialGroup.js +1 -3
- package/dist/src/scenario/parseScenario.d.ts +5 -0
- package/dist/src/scenario/parseScenario.js +135 -8
- package/dist/src/scenario/scenarioSchema.d.ts +200 -3
- package/dist/src/scenario/scenarioSchema.js +12 -1
- package/dist/src/twin/twinHarness.d.ts +10 -0
- package/dist/src/twin/twinHarness.js +6 -2
- package/dist/src/twin/twinStart.d.ts +19 -0
- package/dist/src/twin/twinStart.js +156 -0
- package/node_modules/@pome-sh/sdk/dist/db.d.ts +4 -4
- package/node_modules/@pome-sh/sdk/dist/db.js +93 -25
- package/node_modules/@pome-sh/sdk/dist/db.js.map +1 -1
- package/node_modules/@pome-sh/sdk/dist/fidelity-inventory.d.ts +121 -0
- package/node_modules/@pome-sh/sdk/dist/fidelity-inventory.js +204 -0
- package/node_modules/@pome-sh/sdk/dist/fidelity-inventory.js.map +1 -0
- package/node_modules/@pome-sh/sdk/dist/parity.d.ts +55 -0
- package/node_modules/@pome-sh/sdk/dist/parity.js +112 -0
- package/node_modules/@pome-sh/sdk/dist/parity.js.map +1 -0
- package/node_modules/@pome-sh/sdk/dist/server-helpers.d.ts +15 -0
- package/node_modules/@pome-sh/sdk/dist/server-helpers.js +96 -0
- package/node_modules/@pome-sh/sdk/dist/server-helpers.js.map +1 -1
- package/node_modules/@pome-sh/sdk/dist/server.d.ts +1 -1
- package/node_modules/@pome-sh/sdk/dist/server.js +9 -7
- package/node_modules/@pome-sh/sdk/dist/server.js.map +1 -1
- package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/errors.d.ts +39 -0
- package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/errors.js +33 -0
- package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/errors.js.map +1 -0
- package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/evaluator-hooks.d.ts +13 -0
- package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/evaluator-hooks.js +6 -0
- package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/evaluator-hooks.js.map +1 -0
- package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/finalize-shapes.d.ts +215 -0
- package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/finalize-shapes.js +83 -0
- package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/finalize-shapes.js.map +1 -0
- package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/github-access-control.d.ts +175 -0
- package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/github-access-control.js +182 -0
- package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/github-access-control.js.map +1 -0
- package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/identity.d.ts +90 -0
- package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/identity.js +72 -0
- package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/identity.js.map +1 -0
- package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/index.d.ts +27 -0
- package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/index.js +34 -0
- package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/index.js.map +1 -0
- package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/otel/event-schema.d.ts +286 -0
- package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/otel/event-schema.js +33 -0
- package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/otel/event-schema.js.map +1 -0
- package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/otel/fixtures/data.d.ts +65 -0
- package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/otel/fixtures/data.js +455 -0
- package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/otel/fixtures/data.js.map +1 -0
- package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/otel/fixtures/index.d.ts +39 -0
- package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/otel/fixtures/index.js +47 -0
- package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/otel/fixtures/index.js.map +1 -0
- package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/otel/index.d.ts +25 -0
- package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/otel/index.js +27 -0
- package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/otel/index.js.map +1 -0
- package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/otel/legacy-shim.d.ts +100 -0
- package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/otel/legacy-shim.js +185 -0
- package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/otel/legacy-shim.js.map +1 -0
- package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/otel/map-span.d.ts +64 -0
- package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/otel/map-span.js +112 -0
- package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/otel/map-span.js.map +1 -0
- package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/otel/nano.d.ts +26 -0
- package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/otel/nano.js +61 -0
- package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/otel/nano.js.map +1 -0
- package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/otel/project.d.ts +42 -0
- package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/otel/project.js +96 -0
- package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/otel/project.js.map +1 -0
- package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/otel/semconv.d.ts +51 -0
- package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/otel/semconv.js +74 -0
- package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/otel/semconv.js.map +1 -0
- package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/otel/span-event.d.ts +134 -0
- package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/otel/span-event.js +152 -0
- package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/otel/span-event.js.map +1 -0
- package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/recorder-events.d.ts +418 -0
- package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/recorder-events.js +234 -0
- package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/recorder-events.js.map +1 -0
- package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/redaction.d.ts +2 -0
- package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/redaction.js +152 -0
- package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/redaction.js.map +1 -0
- package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/rest.d.ts +198 -0
- package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/rest.js +225 -0
- package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/rest.js.map +1 -0
- package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/run.d.ts +201 -0
- package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/run.js +166 -0
- package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/run.js.map +1 -0
- package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/seed-state.d.ts +446 -0
- package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/seed-state.js +167 -0
- package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/seed-state.js.map +1 -0
- package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/sessions.d.ts +53 -0
- package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/sessions.js +51 -0
- package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/sessions.js.map +1 -0
- package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/task-vocab.d.ts +66 -0
- package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/task-vocab.js +84 -0
- package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/task-vocab.js.map +1 -0
- package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/task.d.ts +483 -0
- package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/task.js +60 -0
- package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/task.js.map +1 -0
- package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/package.json +54 -0
- package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/trace-contract.json +41 -0
- package/node_modules/@pome-sh/sdk/package.json +7 -7
- package/node_modules/@pome-sh/shared-types/dist/errors.d.ts +39 -0
- package/node_modules/@pome-sh/shared-types/dist/errors.js +33 -0
- package/node_modules/@pome-sh/shared-types/dist/errors.js.map +1 -0
- package/node_modules/@pome-sh/shared-types/dist/finalize-shapes.d.ts +252 -0
- package/node_modules/@pome-sh/shared-types/dist/finalize-shapes.js +122 -0
- package/node_modules/@pome-sh/shared-types/dist/finalize-shapes.js.map +1 -0
- package/node_modules/@pome-sh/shared-types/dist/identity.d.ts +90 -0
- package/node_modules/@pome-sh/shared-types/dist/identity.js +72 -0
- package/node_modules/@pome-sh/shared-types/dist/identity.js.map +1 -0
- package/node_modules/@pome-sh/shared-types/dist/index.d.ts +13 -1353
- package/node_modules/@pome-sh/shared-types/dist/index.js +14 -568
- package/node_modules/@pome-sh/shared-types/dist/index.js.map +1 -1
- package/node_modules/@pome-sh/shared-types/dist/otel/event-schema.d.ts +45 -0
- package/node_modules/@pome-sh/shared-types/dist/otel/legacy-shim.js +8 -0
- package/node_modules/@pome-sh/shared-types/dist/otel/legacy-shim.js.map +1 -1
- package/node_modules/@pome-sh/shared-types/dist/otel/semconv.js +7 -0
- package/node_modules/@pome-sh/shared-types/dist/otel/semconv.js.map +1 -1
- package/node_modules/@pome-sh/shared-types/dist/recorder-events.d.ts +62 -0
- package/node_modules/@pome-sh/shared-types/dist/recorder-events.js +36 -0
- package/node_modules/@pome-sh/shared-types/dist/recorder-events.js.map +1 -1
- package/node_modules/@pome-sh/shared-types/dist/rest.d.ts +245 -0
- package/node_modules/@pome-sh/shared-types/dist/rest.js +303 -0
- package/node_modules/@pome-sh/shared-types/dist/rest.js.map +1 -0
- package/node_modules/@pome-sh/shared-types/dist/run.d.ts +7 -0
- package/node_modules/@pome-sh/shared-types/dist/run.js +4 -0
- package/node_modules/@pome-sh/shared-types/dist/run.js.map +1 -1
- package/node_modules/@pome-sh/shared-types/dist/seed-envelope.d.ts +14 -0
- package/node_modules/@pome-sh/shared-types/dist/seed-envelope.js +46 -0
- package/node_modules/@pome-sh/shared-types/dist/seed-envelope.js.map +1 -0
- package/node_modules/@pome-sh/shared-types/dist/seed-state.d.ts +446 -0
- package/node_modules/@pome-sh/shared-types/dist/seed-state.js +167 -0
- package/node_modules/@pome-sh/shared-types/dist/seed-state.js.map +1 -0
- package/node_modules/@pome-sh/shared-types/dist/sessions.d.ts +53 -0
- package/node_modules/@pome-sh/shared-types/dist/sessions.js +51 -0
- package/node_modules/@pome-sh/shared-types/dist/sessions.js.map +1 -0
- package/node_modules/@pome-sh/shared-types/dist/task.d.ts +485 -0
- package/node_modules/@pome-sh/shared-types/dist/task.js +60 -0
- package/node_modules/@pome-sh/shared-types/dist/task.js.map +1 -0
- package/node_modules/@pome-sh/shared-types/package.json +2 -1
- package/node_modules/@pome-sh/shared-types/trace-contract.json +1 -1
- package/node_modules/@pome-sh/twin-github/FIDELITY.md +127 -67
- package/node_modules/@pome-sh/twin-github/README.md +5 -8
- package/node_modules/@pome-sh/twin-github/dist/examples/claude-github-agent.js +4 -20
- package/node_modules/@pome-sh/twin-github/dist/examples/claude-github-agent.js.map +1 -1
- package/node_modules/@pome-sh/twin-github/dist/src/access-control.d.ts +3 -3
- package/node_modules/@pome-sh/twin-github/dist/src/domain.d.ts +141 -3
- 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 +1 -1
- package/node_modules/@pome-sh/twin-github/dist/src/routes.js +2 -0
- package/node_modules/@pome-sh/twin-github/dist/src/routes.js.map +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 +2 -2
- package/node_modules/@pome-sh/twin-github/dist/src/server.js +7 -6
- package/node_modules/@pome-sh/twin-github/dist/src/server.js.map +1 -1
- package/node_modules/@pome-sh/twin-github/dist/src/tools.d.ts +168 -18
- package/node_modules/@pome-sh/twin-github/dist/src/tools.js +23 -0
- package/node_modules/@pome-sh/twin-github/dist/src/tools.js.map +1 -1
- package/node_modules/@pome-sh/twin-github/fidelity.inventory.json +773 -0
- package/node_modules/@pome-sh/twin-github/package.json +5 -5
- package/node_modules/@pome-sh/twin-slack/FIDELITY.md +121 -35
- package/node_modules/@pome-sh/twin-slack/README.md +2 -6
- package/node_modules/@pome-sh/twin-slack/dist/scripts/fidelity-parity.js +92 -0
- package/node_modules/@pome-sh/twin-slack/dist/scripts/fidelity-parity.js.map +1 -0
- package/node_modules/@pome-sh/twin-slack/dist/scripts/smoke.js +3 -3
- package/node_modules/@pome-sh/twin-slack/dist/scripts/smoke.js.map +1 -1
- package/node_modules/@pome-sh/twin-slack/dist/scripts/validate-mcp.js +1 -1
- package/node_modules/@pome-sh/twin-slack/dist/scripts/validate-mcp.js.map +1 -1
- package/node_modules/@pome-sh/twin-slack/dist/src/server.js +7 -6
- package/node_modules/@pome-sh/twin-slack/dist/src/server.js.map +1 -1
- package/node_modules/@pome-sh/twin-slack/dist/src/tools.d.ts +30 -4
- package/node_modules/@pome-sh/twin-slack/dist/src/tools.js +48 -1
- package/node_modules/@pome-sh/twin-slack/dist/src/tools.js.map +1 -1
- package/node_modules/@pome-sh/twin-slack/fidelity.inventory.json +377 -0
- package/node_modules/@pome-sh/twin-slack/package.json +5 -5
- package/node_modules/@pome-sh/twin-stripe/FIDELITY.md +151 -50
- package/node_modules/@pome-sh/twin-stripe/README.md +44 -47
- package/node_modules/@pome-sh/twin-stripe/dist/scripts/fidelity-parity.js +186 -0
- package/node_modules/@pome-sh/twin-stripe/dist/scripts/fidelity-parity.js.map +1 -0
- package/node_modules/@pome-sh/twin-stripe/dist/scripts/smoke.js +8 -4
- package/node_modules/@pome-sh/twin-stripe/dist/scripts/smoke.js.map +1 -1
- package/node_modules/@pome-sh/twin-stripe/dist/src/db.js +26 -2
- package/node_modules/@pome-sh/twin-stripe/dist/src/db.js.map +1 -1
- package/node_modules/@pome-sh/twin-stripe/dist/src/domain/billing.d.ts +101 -0
- package/node_modules/@pome-sh/twin-stripe/dist/src/domain/billing.js +195 -0
- package/node_modules/@pome-sh/twin-stripe/dist/src/domain/billing.js.map +1 -0
- package/node_modules/@pome-sh/twin-stripe/dist/src/domain/charges.d.ts +15 -1
- package/node_modules/@pome-sh/twin-stripe/dist/src/domain/charges.js +17 -5
- package/node_modules/@pome-sh/twin-stripe/dist/src/domain/charges.js.map +1 -1
- package/node_modules/@pome-sh/twin-stripe/dist/src/domain/customers.d.ts +47 -0
- package/node_modules/@pome-sh/twin-stripe/dist/src/domain/customers.js +103 -0
- package/node_modules/@pome-sh/twin-stripe/dist/src/domain/customers.js.map +1 -0
- package/node_modules/@pome-sh/twin-stripe/dist/src/domain/events.d.ts +1 -1
- package/node_modules/@pome-sh/twin-stripe/dist/src/domain/events.js.map +1 -1
- package/node_modules/@pome-sh/twin-stripe/dist/src/domain/index.d.ts +6 -0
- package/node_modules/@pome-sh/twin-stripe/dist/src/domain/index.js +3 -0
- package/node_modules/@pome-sh/twin-stripe/dist/src/domain/index.js.map +1 -1
- package/node_modules/@pome-sh/twin-stripe/dist/src/domain/payment-intents.d.ts +61 -2
- package/node_modules/@pome-sh/twin-stripe/dist/src/domain/payment-intents.js +214 -52
- package/node_modules/@pome-sh/twin-stripe/dist/src/domain/payment-intents.js.map +1 -1
- package/node_modules/@pome-sh/twin-stripe/dist/src/domain/payment-methods.d.ts +45 -0
- package/node_modules/@pome-sh/twin-stripe/dist/src/domain/payment-methods.js +159 -0
- package/node_modules/@pome-sh/twin-stripe/dist/src/domain/payment-methods.js.map +1 -0
- package/node_modules/@pome-sh/twin-stripe/dist/src/domain/refunds.d.ts +6 -0
- package/node_modules/@pome-sh/twin-stripe/dist/src/domain/refunds.js +16 -0
- package/node_modules/@pome-sh/twin-stripe/dist/src/domain/refunds.js.map +1 -1
- package/node_modules/@pome-sh/twin-stripe/dist/src/domain/schema.d.ts +1 -0
- package/node_modules/@pome-sh/twin-stripe/dist/src/domain/schema.js +144 -1
- package/node_modules/@pome-sh/twin-stripe/dist/src/domain/schema.js.map +1 -1
- package/node_modules/@pome-sh/twin-stripe/dist/src/domain/stripe-domain.d.ts +420 -43
- package/node_modules/@pome-sh/twin-stripe/dist/src/domain/stripe-domain.js +442 -13
- package/node_modules/@pome-sh/twin-stripe/dist/src/domain/stripe-domain.js.map +1 -1
- package/node_modules/@pome-sh/twin-stripe/dist/src/errors.d.ts +19 -0
- package/node_modules/@pome-sh/twin-stripe/dist/src/errors.js +15 -1
- package/node_modules/@pome-sh/twin-stripe/dist/src/errors.js.map +1 -1
- package/node_modules/@pome-sh/twin-stripe/dist/src/ids.d.ts +2 -0
- package/node_modules/@pome-sh/twin-stripe/dist/src/ids.js +2 -0
- package/node_modules/@pome-sh/twin-stripe/dist/src/ids.js.map +1 -1
- package/node_modules/@pome-sh/twin-stripe/dist/src/routes/_helpers.d.ts +8 -0
- package/node_modules/@pome-sh/twin-stripe/dist/src/routes/_helpers.js +105 -1
- package/node_modules/@pome-sh/twin-stripe/dist/src/routes/_helpers.js.map +1 -1
- package/node_modules/@pome-sh/twin-stripe/dist/src/routes/billing.d.ts +4 -0
- package/node_modules/@pome-sh/twin-stripe/dist/src/routes/billing.js +117 -0
- package/node_modules/@pome-sh/twin-stripe/dist/src/routes/billing.js.map +1 -0
- package/node_modules/@pome-sh/twin-stripe/dist/src/routes/customers.d.ts +4 -0
- package/node_modules/@pome-sh/twin-stripe/dist/src/routes/customers.js +47 -0
- package/node_modules/@pome-sh/twin-stripe/dist/src/routes/customers.js.map +1 -0
- package/node_modules/@pome-sh/twin-stripe/dist/src/routes/index.js +6 -0
- package/node_modules/@pome-sh/twin-stripe/dist/src/routes/index.js.map +1 -1
- package/node_modules/@pome-sh/twin-stripe/dist/src/routes/payment-intents.js +28 -102
- package/node_modules/@pome-sh/twin-stripe/dist/src/routes/payment-intents.js.map +1 -1
- package/node_modules/@pome-sh/twin-stripe/dist/src/routes/payment-methods.d.ts +4 -0
- package/node_modules/@pome-sh/twin-stripe/dist/src/routes/payment-methods.js +33 -0
- package/node_modules/@pome-sh/twin-stripe/dist/src/routes/payment-methods.js.map +1 -0
- package/node_modules/@pome-sh/twin-stripe/dist/src/seed.d.ts +10 -8
- package/node_modules/@pome-sh/twin-stripe/dist/src/seed.js +3 -2
- package/node_modules/@pome-sh/twin-stripe/dist/src/seed.js.map +1 -1
- package/node_modules/@pome-sh/twin-stripe/dist/src/serializers.d.ts +181 -21
- package/node_modules/@pome-sh/twin-stripe/dist/src/serializers.js +257 -34
- package/node_modules/@pome-sh/twin-stripe/dist/src/serializers.js.map +1 -1
- package/node_modules/@pome-sh/twin-stripe/dist/src/server.js +7 -6
- package/node_modules/@pome-sh/twin-stripe/dist/src/server.js.map +1 -1
- package/node_modules/@pome-sh/twin-stripe/dist/src/tools.d.ts +107 -5
- package/node_modules/@pome-sh/twin-stripe/dist/src/tools.js +139 -6
- package/node_modules/@pome-sh/twin-stripe/dist/src/tools.js.map +1 -1
- package/node_modules/@pome-sh/twin-stripe/dist/src/types.d.ts +73 -0
- package/node_modules/@pome-sh/twin-stripe/dist/src/upstream-types.d.ts +8 -0
- package/node_modules/@pome-sh/twin-stripe/dist/src/x402.js +6 -1
- package/node_modules/@pome-sh/twin-stripe/dist/src/x402.js.map +1 -1
- package/node_modules/@pome-sh/twin-stripe/fidelity.inventory.json +425 -0
- package/node_modules/@pome-sh/twin-stripe/package.json +5 -5
- package/package.json +9 -10
- package/skills/pome-setup/SKILL.md +1 -1
- package/dist/src/recorder/verdictArtifact.d.ts +0 -71
- package/dist/src/recorder/verdictArtifact.js +0 -207
- package/dist/src/score/view.d.ts +0 -38
- package/dist/src/score/view.js +0 -59
- package/dist/src/twin/github/app.d.ts +0 -10
- package/dist/src/twin/github/app.js +0 -316
- package/dist/src/twin/github/db/migrations.d.ts +0 -2
- package/dist/src/twin/github/db/migrations.js +0 -64
- package/dist/src/twin/github/db/openDatabase.d.ts +0 -2
- package/dist/src/twin/github/db/openDatabase.js +0 -13
- package/dist/src/twin/github/db/queries.d.ts +0 -77
- package/dist/src/twin/github/db/queries.js +0 -93
- package/dist/src/twin/github/domain/seed.d.ts +0 -74
- package/dist/src/twin/github/domain/seed.js +0 -104
- package/dist/src/twin/github/domain/serializers.d.ts +0 -113
- package/dist/src/twin/github/domain/serializers.js +0 -76
- package/dist/src/twin/github/types.d.ts +0 -66
- package/dist/src/twin/github/types.js +0 -1
- package/dist/src/twin-github/app.d.ts +0 -9
- package/dist/src/twin-github/app.js +0 -327
- package/dist/src/twin-github/auth.d.ts +0 -16
- package/dist/src/twin-github/auth.js +0 -142
- package/dist/src/twin-github/build-info.d.ts +0 -7
- package/dist/src/twin-github/build-info.js +0 -52
- package/dist/src/twin-github/db.d.ts +0 -4
- package/dist/src/twin-github/db.js +0 -362
- package/dist/src/twin-github/domain.d.ts +0 -1649
- package/dist/src/twin-github/domain.js +0 -957
- package/dist/src/twin-github/errors.d.ts +0 -14
- package/dist/src/twin-github/errors.js +0 -34
- package/dist/src/twin-github/index.d.ts +0 -9
- package/dist/src/twin-github/index.js +0 -7
- package/dist/src/twin-github/mcp.d.ts +0 -17
- package/dist/src/twin-github/mcp.js +0 -281
- package/dist/src/twin-github/recorder.d.ts +0 -2
- package/dist/src/twin-github/recorder.js +0 -29
- package/dist/src/twin-github/seed.d.ts +0 -74
- package/dist/src/twin-github/seed.js +0 -107
- package/dist/src/twin-github/serializers.d.ts +0 -449
- package/dist/src/twin-github/serializers.js +0 -429
- package/dist/src/twin-github/server.js +0 -34
- package/dist/src/twin-github/tools.d.ts +0 -1545
- package/dist/src/twin-github/tools.js +0 -347
- package/dist/src/twin-github/types.d.ts +0 -198
- package/dist/src/twin-github/unsupported-envelope.d.ts +0 -10
- package/dist/src/twin-github/unsupported-envelope.js +0 -29
- package/dist/src/twin-github/util.d.ts +0 -13
- package/dist/src/twin-github/util.js +0 -61
- package/dist/src/twin-slack/app.d.ts +0 -17
- package/dist/src/twin-slack/app.js +0 -683
- package/dist/src/twin-slack/auth.d.ts +0 -38
- package/dist/src/twin-slack/auth.js +0 -219
- package/dist/src/twin-slack/build-info.d.ts +0 -7
- package/dist/src/twin-slack/build-info.js +0 -9
- package/dist/src/twin-slack/db.d.ts +0 -4
- package/dist/src/twin-slack/db.js +0 -213
- package/dist/src/twin-slack/domain.d.ts +0 -236
- package/dist/src/twin-slack/domain.js +0 -1293
- package/dist/src/twin-slack/errors.d.ts +0 -16
- package/dist/src/twin-slack/errors.js +0 -60
- package/dist/src/twin-slack/index.d.ts +0 -8
- package/dist/src/twin-slack/index.js +0 -8
- package/dist/src/twin-slack/mcp.d.ts +0 -17
- package/dist/src/twin-slack/mcp.js +0 -226
- package/dist/src/twin-slack/recorder.d.ts +0 -2
- package/dist/src/twin-slack/recorder.js +0 -15
- package/dist/src/twin-slack/seed.d.ts +0 -49
- package/dist/src/twin-slack/seed.js +0 -139
- package/dist/src/twin-slack/serializers.d.ts +0 -141
- package/dist/src/twin-slack/serializers.js +0 -377
- package/dist/src/twin-slack/tools.d.ts +0 -97
- package/dist/src/twin-slack/tools.js +0 -171
- package/dist/src/twin-slack/types.d.ts +0 -164
- package/dist/src/twin-slack/types.js +0 -1
- package/dist/src/twin-slack/unsupported-envelope.d.ts +0 -12
- package/dist/src/twin-slack/unsupported-envelope.js +0 -61
- package/dist/src/twin-slack/upstream-types.d.ts +0 -19
- package/dist/src/twin-slack/upstream-types.js +0 -1
- package/dist/src/twin-slack/util.d.ts +0 -31
- package/dist/src/twin-slack/util.js +0 -136
- package/node_modules/base64-js/LICENSE +0 -21
- package/node_modules/base64-js/README.md +0 -34
- package/node_modules/base64-js/base64js.min.js +0 -1
- package/node_modules/base64-js/index.d.ts +0 -3
- package/node_modules/base64-js/index.js +0 -150
- package/node_modules/base64-js/package.json +0 -47
- package/node_modules/better-sqlite3/LICENSE +0 -21
- package/node_modules/better-sqlite3/README.md +0 -99
- package/node_modules/better-sqlite3/binding.gyp +0 -38
- package/node_modules/better-sqlite3/build/Release/better_sqlite3.node +0 -0
- package/node_modules/better-sqlite3/deps/common.gypi +0 -68
- package/node_modules/better-sqlite3/deps/copy.js +0 -31
- package/node_modules/better-sqlite3/deps/defines.gypi +0 -42
- package/node_modules/better-sqlite3/deps/download.sh +0 -123
- package/node_modules/better-sqlite3/deps/patches/1208.patch +0 -15
- package/node_modules/better-sqlite3/deps/sqlite3/sqlite3.c +0 -269395
- package/node_modules/better-sqlite3/deps/sqlite3/sqlite3.h +0 -14347
- package/node_modules/better-sqlite3/deps/sqlite3/sqlite3ext.h +0 -739
- package/node_modules/better-sqlite3/deps/sqlite3.gyp +0 -80
- package/node_modules/better-sqlite3/deps/test_extension.c +0 -21
- package/node_modules/better-sqlite3/lib/database.js +0 -90
- package/node_modules/better-sqlite3/lib/index.js +0 -3
- package/node_modules/better-sqlite3/lib/methods/aggregate.js +0 -43
- package/node_modules/better-sqlite3/lib/methods/backup.js +0 -67
- package/node_modules/better-sqlite3/lib/methods/function.js +0 -31
- package/node_modules/better-sqlite3/lib/methods/inspect.js +0 -7
- package/node_modules/better-sqlite3/lib/methods/pragma.js +0 -12
- package/node_modules/better-sqlite3/lib/methods/serialize.js +0 -16
- package/node_modules/better-sqlite3/lib/methods/table.js +0 -189
- package/node_modules/better-sqlite3/lib/methods/transaction.js +0 -78
- package/node_modules/better-sqlite3/lib/methods/wrappers.js +0 -54
- package/node_modules/better-sqlite3/lib/sqlite-error.js +0 -20
- package/node_modules/better-sqlite3/lib/util.js +0 -12
- package/node_modules/better-sqlite3/package.json +0 -59
- package/node_modules/better-sqlite3/src/addon.cpp +0 -47
- package/node_modules/better-sqlite3/src/better_sqlite3.cpp +0 -74
- package/node_modules/better-sqlite3/src/objects/backup.cpp +0 -120
- package/node_modules/better-sqlite3/src/objects/backup.hpp +0 -36
- package/node_modules/better-sqlite3/src/objects/database.cpp +0 -417
- package/node_modules/better-sqlite3/src/objects/database.hpp +0 -103
- package/node_modules/better-sqlite3/src/objects/statement-iterator.cpp +0 -113
- package/node_modules/better-sqlite3/src/objects/statement-iterator.hpp +0 -50
- package/node_modules/better-sqlite3/src/objects/statement.cpp +0 -383
- package/node_modules/better-sqlite3/src/objects/statement.hpp +0 -58
- package/node_modules/better-sqlite3/src/util/bind-map.cpp +0 -73
- package/node_modules/better-sqlite3/src/util/binder.cpp +0 -193
- package/node_modules/better-sqlite3/src/util/constants.cpp +0 -172
- package/node_modules/better-sqlite3/src/util/custom-aggregate.cpp +0 -121
- package/node_modules/better-sqlite3/src/util/custom-function.cpp +0 -59
- package/node_modules/better-sqlite3/src/util/custom-table.cpp +0 -409
- package/node_modules/better-sqlite3/src/util/data-converter.cpp +0 -17
- package/node_modules/better-sqlite3/src/util/data.cpp +0 -194
- package/node_modules/better-sqlite3/src/util/helpers.cpp +0 -109
- package/node_modules/better-sqlite3/src/util/macros.cpp +0 -90
- package/node_modules/better-sqlite3/src/util/query-macros.cpp +0 -71
- package/node_modules/better-sqlite3/src/util/row-builder.cpp +0 -49
- package/node_modules/bindings/LICENSE.md +0 -22
- package/node_modules/bindings/README.md +0 -98
- package/node_modules/bindings/bindings.js +0 -221
- package/node_modules/bindings/package.json +0 -28
- package/node_modules/bl/.travis.yml +0 -17
- package/node_modules/bl/BufferList.js +0 -396
- package/node_modules/bl/LICENSE.md +0 -13
- package/node_modules/bl/README.md +0 -247
- package/node_modules/bl/bl.js +0 -84
- package/node_modules/bl/package.json +0 -37
- package/node_modules/bl/test/convert.js +0 -21
- package/node_modules/bl/test/indexOf.js +0 -492
- package/node_modules/bl/test/isBufferList.js +0 -32
- package/node_modules/bl/test/test.js +0 -869
- package/node_modules/buffer/AUTHORS.md +0 -70
- package/node_modules/buffer/LICENSE +0 -21
- package/node_modules/buffer/README.md +0 -410
- package/node_modules/buffer/index.d.ts +0 -186
- package/node_modules/buffer/index.js +0 -1817
- package/node_modules/buffer/package.json +0 -96
- package/node_modules/chownr/LICENSE +0 -15
- package/node_modules/chownr/README.md +0 -3
- package/node_modules/chownr/chownr.js +0 -167
- package/node_modules/chownr/package.json +0 -29
- package/node_modules/decompress-response/index.d.ts +0 -22
- package/node_modules/decompress-response/index.js +0 -58
- package/node_modules/decompress-response/license +0 -9
- package/node_modules/decompress-response/package.json +0 -56
- package/node_modules/decompress-response/readme.md +0 -48
- package/node_modules/deep-extend/CHANGELOG.md +0 -46
- package/node_modules/deep-extend/LICENSE +0 -20
- package/node_modules/deep-extend/README.md +0 -91
- package/node_modules/deep-extend/index.js +0 -1
- package/node_modules/deep-extend/lib/deep-extend.js +0 -150
- package/node_modules/deep-extend/package.json +0 -62
- package/node_modules/detect-libc/LICENSE +0 -201
- package/node_modules/detect-libc/README.md +0 -163
- package/node_modules/detect-libc/index.d.ts +0 -14
- package/node_modules/detect-libc/lib/detect-libc.js +0 -313
- package/node_modules/detect-libc/lib/elf.js +0 -39
- package/node_modules/detect-libc/lib/filesystem.js +0 -51
- package/node_modules/detect-libc/lib/process.js +0 -24
- package/node_modules/detect-libc/package.json +0 -44
- package/node_modules/end-of-stream/LICENSE +0 -21
- package/node_modules/end-of-stream/README.md +0 -54
- package/node_modules/end-of-stream/index.js +0 -96
- package/node_modules/end-of-stream/package.json +0 -37
- package/node_modules/expand-template/.travis.yml +0 -6
- package/node_modules/expand-template/LICENSE +0 -21
- package/node_modules/expand-template/README.md +0 -43
- package/node_modules/expand-template/index.js +0 -26
- package/node_modules/expand-template/package.json +0 -29
- package/node_modules/expand-template/test.js +0 -67
- package/node_modules/file-uri-to-path/.npmignore +0 -1
- package/node_modules/file-uri-to-path/.travis.yml +0 -30
- package/node_modules/file-uri-to-path/History.md +0 -21
- package/node_modules/file-uri-to-path/LICENSE +0 -20
- package/node_modules/file-uri-to-path/README.md +0 -74
- package/node_modules/file-uri-to-path/index.d.ts +0 -2
- package/node_modules/file-uri-to-path/index.js +0 -66
- package/node_modules/file-uri-to-path/package.json +0 -32
- package/node_modules/file-uri-to-path/test/test.js +0 -24
- package/node_modules/file-uri-to-path/test/tests.json +0 -13
- package/node_modules/fs-constants/LICENSE +0 -21
- package/node_modules/fs-constants/README.md +0 -26
- package/node_modules/fs-constants/browser.js +0 -1
- package/node_modules/fs-constants/index.js +0 -1
- package/node_modules/fs-constants/package.json +0 -19
- package/node_modules/github-from-package/.travis.yml +0 -4
- package/node_modules/github-from-package/LICENSE +0 -18
- package/node_modules/github-from-package/example/package.json +0 -8
- package/node_modules/github-from-package/example/url.js +0 -3
- package/node_modules/github-from-package/index.js +0 -17
- package/node_modules/github-from-package/package.json +0 -30
- package/node_modules/github-from-package/readme.markdown +0 -53
- package/node_modules/github-from-package/test/a.json +0 -8
- package/node_modules/github-from-package/test/b.json +0 -5
- package/node_modules/github-from-package/test/c.json +0 -5
- package/node_modules/github-from-package/test/d.json +0 -7
- package/node_modules/github-from-package/test/e.json +0 -5
- package/node_modules/github-from-package/test/url.js +0 -19
- package/node_modules/ieee754/LICENSE +0 -11
- package/node_modules/ieee754/README.md +0 -51
- package/node_modules/ieee754/index.d.ts +0 -10
- package/node_modules/ieee754/index.js +0 -85
- package/node_modules/ieee754/package.json +0 -52
- package/node_modules/inherits/LICENSE +0 -16
- package/node_modules/inherits/README.md +0 -42
- package/node_modules/inherits/inherits.js +0 -9
- package/node_modules/inherits/inherits_browser.js +0 -27
- package/node_modules/inherits/package.json +0 -29
- package/node_modules/ini/LICENSE +0 -15
- package/node_modules/ini/README.md +0 -102
- package/node_modules/ini/ini.js +0 -206
- package/node_modules/ini/package.json +0 -33
- package/node_modules/mimic-response/index.d.ts +0 -17
- package/node_modules/mimic-response/index.js +0 -77
- package/node_modules/mimic-response/license +0 -9
- package/node_modules/mimic-response/package.json +0 -42
- package/node_modules/mimic-response/readme.md +0 -78
- package/node_modules/minimist/.eslintrc +0 -29
- package/node_modules/minimist/.github/FUNDING.yml +0 -12
- package/node_modules/minimist/.nycrc +0 -14
- package/node_modules/minimist/CHANGELOG.md +0 -298
- package/node_modules/minimist/LICENSE +0 -18
- package/node_modules/minimist/README.md +0 -121
- package/node_modules/minimist/example/parse.js +0 -4
- package/node_modules/minimist/index.js +0 -263
- package/node_modules/minimist/package.json +0 -75
- package/node_modules/minimist/test/all_bool.js +0 -34
- package/node_modules/minimist/test/bool.js +0 -177
- package/node_modules/minimist/test/dash.js +0 -43
- package/node_modules/minimist/test/default_bool.js +0 -37
- package/node_modules/minimist/test/dotted.js +0 -24
- package/node_modules/minimist/test/kv_short.js +0 -32
- package/node_modules/minimist/test/long.js +0 -33
- package/node_modules/minimist/test/num.js +0 -38
- package/node_modules/minimist/test/parse.js +0 -209
- package/node_modules/minimist/test/parse_modified.js +0 -11
- package/node_modules/minimist/test/proto.js +0 -64
- package/node_modules/minimist/test/short.js +0 -69
- package/node_modules/minimist/test/stop_early.js +0 -17
- package/node_modules/minimist/test/unknown.js +0 -104
- package/node_modules/minimist/test/whitespace.js +0 -10
- package/node_modules/mkdirp-classic/LICENSE +0 -21
- package/node_modules/mkdirp-classic/README.md +0 -18
- package/node_modules/mkdirp-classic/index.js +0 -98
- package/node_modules/mkdirp-classic/package.json +0 -18
- package/node_modules/napi-build-utils/.github/workflows/run-npm-tests.yml +0 -31
- package/node_modules/napi-build-utils/LICENSE +0 -21
- package/node_modules/napi-build-utils/README.md +0 -52
- package/node_modules/napi-build-utils/index.js +0 -214
- package/node_modules/napi-build-utils/index.md +0 -0
- package/node_modules/napi-build-utils/package.json +0 -42
- package/node_modules/node-abi/LICENSE +0 -21
- package/node_modules/node-abi/README.md +0 -54
- package/node_modules/node-abi/abi_registry.json +0 -453
- package/node_modules/node-abi/index.js +0 -179
- package/node_modules/node-abi/package.json +0 -45
- package/node_modules/once/LICENSE +0 -15
- package/node_modules/once/README.md +0 -79
- package/node_modules/once/once.js +0 -42
- package/node_modules/once/package.json +0 -33
- package/node_modules/prebuild-install/CHANGELOG.md +0 -131
- package/node_modules/prebuild-install/CONTRIBUTING.md +0 -6
- package/node_modules/prebuild-install/LICENSE +0 -21
- package/node_modules/prebuild-install/README.md +0 -163
- package/node_modules/prebuild-install/asset.js +0 -44
- package/node_modules/prebuild-install/bin.js +0 -78
- package/node_modules/prebuild-install/download.js +0 -142
- package/node_modules/prebuild-install/error.js +0 -14
- package/node_modules/prebuild-install/help.txt +0 -16
- package/node_modules/prebuild-install/index.js +0 -1
- package/node_modules/prebuild-install/log.js +0 -33
- package/node_modules/prebuild-install/package.json +0 -67
- package/node_modules/prebuild-install/proxy.js +0 -35
- package/node_modules/prebuild-install/rc.js +0 -64
- package/node_modules/prebuild-install/util.js +0 -143
- package/node_modules/pump/.github/FUNDING.yml +0 -2
- package/node_modules/pump/.travis.yml +0 -5
- package/node_modules/pump/LICENSE +0 -21
- package/node_modules/pump/README.md +0 -74
- package/node_modules/pump/SECURITY.md +0 -5
- package/node_modules/pump/empty.js +0 -1
- package/node_modules/pump/index.js +0 -86
- package/node_modules/pump/package.json +0 -30
- package/node_modules/pump/test-browser.js +0 -66
- package/node_modules/pump/test-node.js +0 -53
- package/node_modules/rc/LICENSE.APACHE2 +0 -15
- package/node_modules/rc/LICENSE.BSD +0 -26
- package/node_modules/rc/LICENSE.MIT +0 -24
- package/node_modules/rc/README.md +0 -227
- package/node_modules/rc/browser.js +0 -7
- package/node_modules/rc/cli.js +0 -4
- package/node_modules/rc/index.js +0 -53
- package/node_modules/rc/lib/utils.js +0 -104
- package/node_modules/rc/package.json +0 -29
- package/node_modules/rc/test/ini.js +0 -16
- package/node_modules/rc/test/nested-env-vars.js +0 -50
- package/node_modules/rc/test/test.js +0 -59
- package/node_modules/readable-stream/CONTRIBUTING.md +0 -38
- package/node_modules/readable-stream/GOVERNANCE.md +0 -136
- package/node_modules/readable-stream/LICENSE +0 -47
- package/node_modules/readable-stream/README.md +0 -106
- package/node_modules/readable-stream/errors-browser.js +0 -127
- package/node_modules/readable-stream/errors.js +0 -116
- package/node_modules/readable-stream/experimentalWarning.js +0 -17
- package/node_modules/readable-stream/lib/_stream_duplex.js +0 -126
- package/node_modules/readable-stream/lib/_stream_passthrough.js +0 -37
- package/node_modules/readable-stream/lib/_stream_readable.js +0 -1027
- package/node_modules/readable-stream/lib/_stream_transform.js +0 -190
- package/node_modules/readable-stream/lib/_stream_writable.js +0 -641
- package/node_modules/readable-stream/lib/internal/streams/async_iterator.js +0 -180
- package/node_modules/readable-stream/lib/internal/streams/buffer_list.js +0 -183
- package/node_modules/readable-stream/lib/internal/streams/destroy.js +0 -96
- package/node_modules/readable-stream/lib/internal/streams/end-of-stream.js +0 -86
- package/node_modules/readable-stream/lib/internal/streams/from-browser.js +0 -3
- package/node_modules/readable-stream/lib/internal/streams/from.js +0 -52
- package/node_modules/readable-stream/lib/internal/streams/pipeline.js +0 -86
- package/node_modules/readable-stream/lib/internal/streams/state.js +0 -22
- package/node_modules/readable-stream/lib/internal/streams/stream-browser.js +0 -1
- package/node_modules/readable-stream/lib/internal/streams/stream.js +0 -1
- package/node_modules/readable-stream/package.json +0 -68
- package/node_modules/readable-stream/readable-browser.js +0 -9
- package/node_modules/readable-stream/readable.js +0 -16
- package/node_modules/safe-buffer/LICENSE +0 -21
- package/node_modules/safe-buffer/README.md +0 -584
- package/node_modules/safe-buffer/index.d.ts +0 -187
- package/node_modules/safe-buffer/index.js +0 -65
- package/node_modules/safe-buffer/package.json +0 -51
- package/node_modules/semver/LICENSE +0 -15
- package/node_modules/semver/README.md +0 -680
- package/node_modules/semver/bin/semver.js +0 -195
- package/node_modules/semver/classes/comparator.js +0 -143
- package/node_modules/semver/classes/index.js +0 -7
- package/node_modules/semver/classes/range.js +0 -577
- package/node_modules/semver/classes/semver.js +0 -350
- package/node_modules/semver/functions/clean.js +0 -8
- package/node_modules/semver/functions/cmp.js +0 -54
- package/node_modules/semver/functions/coerce.js +0 -62
- package/node_modules/semver/functions/compare-build.js +0 -9
- package/node_modules/semver/functions/compare-loose.js +0 -5
- package/node_modules/semver/functions/compare.js +0 -7
- package/node_modules/semver/functions/diff.js +0 -60
- package/node_modules/semver/functions/eq.js +0 -5
- package/node_modules/semver/functions/gt.js +0 -5
- package/node_modules/semver/functions/gte.js +0 -5
- package/node_modules/semver/functions/inc.js +0 -21
- package/node_modules/semver/functions/lt.js +0 -5
- package/node_modules/semver/functions/lte.js +0 -5
- package/node_modules/semver/functions/major.js +0 -5
- package/node_modules/semver/functions/minor.js +0 -5
- package/node_modules/semver/functions/neq.js +0 -5
- package/node_modules/semver/functions/parse.js +0 -18
- package/node_modules/semver/functions/patch.js +0 -5
- package/node_modules/semver/functions/prerelease.js +0 -8
- package/node_modules/semver/functions/rcompare.js +0 -5
- package/node_modules/semver/functions/rsort.js +0 -5
- package/node_modules/semver/functions/satisfies.js +0 -12
- package/node_modules/semver/functions/sort.js +0 -5
- package/node_modules/semver/functions/truncate.js +0 -48
- package/node_modules/semver/functions/valid.js +0 -8
- package/node_modules/semver/index.js +0 -93
- package/node_modules/semver/internal/constants.js +0 -37
- package/node_modules/semver/internal/debug.js +0 -11
- package/node_modules/semver/internal/identifiers.js +0 -29
- package/node_modules/semver/internal/lrucache.js +0 -42
- package/node_modules/semver/internal/parse-options.js +0 -17
- package/node_modules/semver/internal/re.js +0 -223
- package/node_modules/semver/package.json +0 -78
- package/node_modules/semver/preload.js +0 -4
- package/node_modules/semver/range.bnf +0 -17
- package/node_modules/semver/ranges/gtr.js +0 -6
- package/node_modules/semver/ranges/intersects.js +0 -9
- package/node_modules/semver/ranges/ltr.js +0 -6
- package/node_modules/semver/ranges/max-satisfying.js +0 -27
- package/node_modules/semver/ranges/min-satisfying.js +0 -26
- package/node_modules/semver/ranges/min-version.js +0 -63
- package/node_modules/semver/ranges/outside.js +0 -82
- package/node_modules/semver/ranges/simplify.js +0 -49
- package/node_modules/semver/ranges/subset.js +0 -249
- package/node_modules/semver/ranges/to-comparators.js +0 -10
- package/node_modules/semver/ranges/valid.js +0 -13
- package/node_modules/simple-concat/.travis.yml +0 -3
- package/node_modules/simple-concat/LICENSE +0 -20
- package/node_modules/simple-concat/README.md +0 -44
- package/node_modules/simple-concat/index.js +0 -15
- package/node_modules/simple-concat/package.json +0 -47
- package/node_modules/simple-concat/test/basic.js +0 -41
- package/node_modules/simple-get/.github/dependabot.yml +0 -15
- package/node_modules/simple-get/.github/workflows/ci.yml +0 -23
- package/node_modules/simple-get/LICENSE +0 -20
- package/node_modules/simple-get/README.md +0 -333
- package/node_modules/simple-get/index.js +0 -108
- package/node_modules/simple-get/package.json +0 -67
- package/node_modules/string_decoder/LICENSE +0 -48
- package/node_modules/string_decoder/README.md +0 -47
- package/node_modules/string_decoder/lib/string_decoder.js +0 -296
- package/node_modules/string_decoder/package.json +0 -34
- package/node_modules/strip-json-comments/index.js +0 -70
- package/node_modules/strip-json-comments/license +0 -21
- package/node_modules/strip-json-comments/package.json +0 -42
- package/node_modules/strip-json-comments/readme.md +0 -64
- package/node_modules/tar-fs/.travis.yml +0 -6
- package/node_modules/tar-fs/LICENSE +0 -21
- package/node_modules/tar-fs/README.md +0 -165
- package/node_modules/tar-fs/index.js +0 -392
- package/node_modules/tar-fs/package.json +0 -46
- package/node_modules/tar-fs/test/fixtures/a/hello.txt +0 -1
- package/node_modules/tar-fs/test/fixtures/b/a/test.txt +0 -1
- package/node_modules/tar-fs/test/fixtures/d/file1 +0 -0
- package/node_modules/tar-fs/test/fixtures/d/file2 +0 -0
- package/node_modules/tar-fs/test/fixtures/d/sub-dir/file5 +0 -0
- package/node_modules/tar-fs/test/fixtures/d/sub-files/file3 +0 -0
- package/node_modules/tar-fs/test/fixtures/d/sub-files/file4 +0 -0
- package/node_modules/tar-fs/test/fixtures/e/directory/.ignore +0 -0
- package/node_modules/tar-fs/test/fixtures/e/file +0 -0
- package/node_modules/tar-fs/test/fixtures/invalid.tar +0 -0
- package/node_modules/tar-fs/test/index.js +0 -457
- package/node_modules/tar-stream/LICENSE +0 -21
- package/node_modules/tar-stream/README.md +0 -168
- package/node_modules/tar-stream/extract.js +0 -257
- package/node_modules/tar-stream/headers.js +0 -295
- package/node_modules/tar-stream/index.js +0 -2
- package/node_modules/tar-stream/pack.js +0 -255
- package/node_modules/tar-stream/package.json +0 -58
- package/node_modules/tar-stream/sandbox.js +0 -11
- package/node_modules/tunnel-agent/LICENSE +0 -55
- package/node_modules/tunnel-agent/README.md +0 -4
- package/node_modules/tunnel-agent/index.js +0 -244
- package/node_modules/tunnel-agent/package.json +0 -22
- package/node_modules/util-deprecate/History.md +0 -16
- package/node_modules/util-deprecate/LICENSE +0 -24
- package/node_modules/util-deprecate/README.md +0 -53
- package/node_modules/util-deprecate/browser.js +0 -67
- package/node_modules/util-deprecate/node.js +0 -6
- package/node_modules/util-deprecate/package.json +0 -27
- package/node_modules/wrappy/LICENSE +0 -15
- package/node_modules/wrappy/README.md +0 -36
- package/node_modules/wrappy/package.json +0 -29
- package/node_modules/wrappy/wrappy.js +0 -33
- /package/{dist/src/twin-github/server.d.ts → node_modules/@pome-sh/twin-slack/dist/scripts/fidelity-parity.d.ts} +0 -0
- /package/{dist/src/twin-github/types.js → node_modules/@pome-sh/twin-stripe/dist/scripts/fidelity-parity.d.ts} +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pome-sh/twin-github",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.2.0",
|
|
4
4
|
"description": "Deterministic GitHub-shaped twin for agent testing — REST + MCP, SQLite-backed state.",
|
|
5
5
|
"private": false,
|
|
6
6
|
"type": "module",
|
|
@@ -26,16 +26,16 @@
|
|
|
26
26
|
"files": [
|
|
27
27
|
"dist",
|
|
28
28
|
"FIDELITY.md",
|
|
29
|
-
"README.md"
|
|
29
|
+
"README.md",
|
|
30
|
+
"fidelity.inventory.json"
|
|
30
31
|
],
|
|
31
32
|
"publishConfig": {
|
|
32
33
|
"access": "public"
|
|
33
34
|
},
|
|
34
35
|
"dependencies": {
|
|
35
36
|
"@hono/node-server": "^2.0.8",
|
|
36
|
-
"@pome-sh/sdk": "0.
|
|
37
|
-
"@pome-sh/shared-types": "0.
|
|
38
|
-
"better-sqlite3": "^12.5.0",
|
|
37
|
+
"@pome-sh/sdk": "0.4.0",
|
|
38
|
+
"@pome-sh/shared-types": "0.9.0",
|
|
39
39
|
"hono": "^4.12.27",
|
|
40
40
|
"zod": "^4.1.13"
|
|
41
41
|
},
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
not a universal clone. This page documents exactly which surfaces are
|
|
5
5
|
faithful to real Slack today, at what tier, and how fidelity is verified.
|
|
6
6
|
|
|
7
|
-
Last verified: 2026-
|
|
7
|
+
Last verified: 2026-07-12.
|
|
8
8
|
|
|
9
9
|
## What "fidelity" means here
|
|
10
10
|
|
|
@@ -21,6 +21,18 @@ Each MCP tool and REST route is classified into one of three tiers:
|
|
|
21
21
|
with `_twin.fidelity: "unsupported"` so an agent never silently succeeds
|
|
22
22
|
against a missing surface.
|
|
23
23
|
|
|
24
|
+
Fidelity ("how deep a surface *is*") is one of two orthogonal dimensions; the
|
|
25
|
+
other is **heat** ("how deep it *should* be", `hot`/`warm`/`cold`, ruled per
|
|
26
|
+
milestone). The engine-level rubric — tier criteria, target mapping, gap and
|
|
27
|
+
tier-mismatch semantics — lives at
|
|
28
|
+
[`packages/sdk/ENDPOINT-TIERS.md`](../sdk/ENDPOINT-TIERS.md). The `Tier`
|
|
29
|
+
column below means fidelity; the `Heat` column carries the twin-slack ruling
|
|
30
|
+
(F-729 `[DECISION]`, 2026-07-11, implemented by F-736). Where ruled heat is
|
|
31
|
+
below current fidelity, the surface is listed in the
|
|
32
|
+
[tier-mismatch ledger](#tier-mismatch-ledger); ruled-but-unimplemented warm
|
|
33
|
+
surfaces and named cold surfaces live in
|
|
34
|
+
[their own table](#ruled-gaps-and-named-cold-surfaces).
|
|
35
|
+
|
|
24
36
|
The bar is: **agents written against real Slack run unchanged against the
|
|
25
37
|
local twin for the surfaces below**, and trip a loud failure for anything
|
|
26
38
|
outside them.
|
|
@@ -34,47 +46,102 @@ in the package README. Changing any of those is a breaking change for
|
|
|
34
46
|
|
|
35
47
|
## MCP Tools
|
|
36
48
|
|
|
37
|
-
| Tool | Backing surface | Tier | Tests | Known deviations |
|
|
38
|
-
| --- | --- | --- | --- | --- |
|
|
39
|
-
| `slack_post_message` | SQLite messages | semantic | `mcp-contract.test.ts`, `domain-chat.test.ts`, `recorder-state-delta.test.ts` | Block-kit rendering is not validated; emoji shortcodes are preserved literally. |
|
|
40
|
-
| `slack_reply_to_thread` | SQLite messages (thread_ts FK) | semantic | `mcp-contract.test.ts`, `domain.test.ts` | Routes via `chat.postMessage({thread_ts})`; `reply_broadcast` is recorded but not re-fanned out. |
|
|
41
|
-
| `slack_add_reaction` | SQLite reactions | semantic | `mcp-contract.test.ts`, `domain.test.ts`, `concurrency.test.ts` | Reactions are unique per `(channel, ts, name, user)`; skin-tone modifier suffixes are preserved as-is. |
|
|
42
|
-
| `slack_get_channel_history` | SQLite messages | semantic | `mcp-contract.test.ts`, `domain.test.ts`, `performance.test.ts` | `oldest`/`latest`/`inclusive` filters supported; per-message metadata follows real Slack envelope. |
|
|
43
|
-
| `slack_get_thread_replies` | SQLite messages | semantic | `mcp-contract.test.ts`, `domain.test.ts`, `domain-chat.test.ts` | Parent decorated with `thread_ts === ts`, `subscribed: false`, `is_locked: false` per real Slack invariant. |
|
|
44
|
-
| `slack_list_channels` | SQLite channels | semantic | `mcp-contract.test.ts`, `domain.test.ts`, `performance.test.ts` | `types` filter supports `public_channel,private_channel,mpim,im`; cursor pagination via base64url offsets. |
|
|
45
|
-
| `slack_get_users` | SQLite users | semantic | `mcp-contract.test.ts`, `domain.test.ts` | Deleted users are included with `deleted: true`; profile pagination matches real Slack envelope. |
|
|
46
|
-
| `slack_get_user_profile` | SQLite users.profile_json | semantic | `mcp-contract.test.ts`, `domain.test.ts` | Returns the full profile JSON; custom fields preserved verbatim through the round-trip. |
|
|
47
|
-
|
|
48
|
-
|
|
49
|
+
| Tool | Backing surface | Heat | Tier | Tests | Known deviations |
|
|
50
|
+
| --- | --- | --- | --- | --- | --- |
|
|
51
|
+
| `slack_post_message` | SQLite messages | hot | semantic | `mcp-contract.test.ts`, `domain-chat.test.ts`, `recorder-state-delta.test.ts` | Block-kit rendering is not validated; emoji shortcodes are preserved literally. |
|
|
52
|
+
| `slack_reply_to_thread` | SQLite messages (thread_ts FK) | hot | semantic | `mcp-contract.test.ts`, `domain.test.ts` | Routes via `chat.postMessage({thread_ts})`; `reply_broadcast` is recorded but not re-fanned out. |
|
|
53
|
+
| `slack_add_reaction` | SQLite reactions | hot | semantic | `mcp-contract.test.ts`, `domain.test.ts`, `concurrency.test.ts` | Reactions are unique per `(channel, ts, name, user)`; skin-tone modifier suffixes are preserved as-is. |
|
|
54
|
+
| `slack_get_channel_history` | SQLite messages | hot | semantic | `mcp-contract.test.ts`, `domain.test.ts`, `performance.test.ts` | `oldest`/`latest`/`inclusive` filters supported; per-message metadata follows real Slack envelope. |
|
|
55
|
+
| `slack_get_thread_replies` | SQLite messages | hot | semantic | `mcp-contract.test.ts`, `domain.test.ts`, `domain-chat.test.ts` | Parent decorated with `thread_ts === ts`, `subscribed: false`, `is_locked: false` per real Slack invariant. |
|
|
56
|
+
| `slack_list_channels` | SQLite channels | hot | semantic | `mcp-contract.test.ts`, `domain.test.ts`, `performance.test.ts` | `types` filter supports `public_channel,private_channel,mpim,im`; cursor pagination via base64url offsets. |
|
|
57
|
+
| `slack_get_users` | SQLite users | hot | semantic | `mcp-contract.test.ts`, `domain.test.ts` | Deleted users are included with `deleted: true`; profile pagination matches real Slack envelope. |
|
|
58
|
+
| `slack_get_user_profile` | SQLite users.profile_json | hot | semantic | `mcp-contract.test.ts`, `domain.test.ts` | Returns the full profile JSON; custom fields preserved verbatim through the round-trip. |
|
|
59
|
+
| `slack_search_messages` | SQLite messages (LIKE search) | hot | semantic | `mcp-contract.test.ts`, `tools-execute.test.ts` | F-736 hot-gap fill over `search.messages`: substring match, not Slack's query grammar (divergence #8). |
|
|
60
|
+
| `slack_get_reactions` | SQLite reactions | hot | semantic | `mcp-contract.test.ts`, `tools-execute.test.ts` | F-736 hot-gap fill over `reactions.get`; returns the message with its grouped reactions. |
|
|
61
|
+
| `slack_list_channel_members` | SQLite channel_members | hot | semantic | `mcp-contract.test.ts`, `tools-execute.test.ts` | F-736 hot-gap fill over `conversations.members`; returns user IDs with cursor pagination. |
|
|
62
|
+
|
|
63
|
+
The visible MCP tool count is pinned at 11 in `test/mcp-contract.test.ts`
|
|
64
|
+
(8 pre-M5 tools + the 3 F-736 hot-gap read tools ruled in F-729/SL2);
|
|
49
65
|
descriptions, required fields, mutating set, and `additionalProperties:false`
|
|
50
66
|
are all locked. Any drift breaks the contract test loudly.
|
|
51
67
|
|
|
52
68
|
## REST routes
|
|
53
69
|
|
|
54
|
-
| Endpoint | Tier | Tests | Notes |
|
|
55
|
-
| --- | --- | --- | --- |
|
|
56
|
-
| `auth.test` | semantic | `app.test.ts`, `auth.test.ts` | Returns `{ok, url, team, user, team_id, user_id, bot_id?}`. |
|
|
57
|
-
| `chat.postMessage` | semantic | `app.test.ts`, `domain-chat.test.ts`, `recorder-state-delta.test.ts` | Form-encoded + JSON body; persists `username`, `icon_emoji`, `icon_url`; emits `bot_id`, `bot_profile`, `app_id` for bot authors. |
|
|
58
|
-
| `chat.update` | semantic | `domain-chat.test.ts`, `app-routes.test.ts` | `edited_ts` allocated via the workspace-unique ts counter — no collisions. |
|
|
59
|
-
| `chat.delete` | semantic | `app.test.ts`, `actor-session.test.ts`, `domain.test.ts` | Hard delete (matches real Slack); thread parent `reply_count` decrements transactionally. No admin override. |
|
|
60
|
-
| `chat.scheduleMessage` / `chat.deleteScheduledMessage` | semantic | `domain.test.ts`, `app-routes.test.ts` | No fire path — scheduled messages persist until explicit delete. |
|
|
61
|
-
| `conversations.list` | semantic | `app.test.ts`, `recorder-state-delta.test.ts` | Cursor pagination, `types` filter, `exclude_archived`. |
|
|
62
|
-
| `conversations.info` | semantic | `app-routes.test.ts` | `include_num_members` supported. |
|
|
63
|
-
| `conversations.create` | semantic | `app.test.ts`, `domain-conversations.test.ts` | Granular error codes: `invalid_name_required` / `_maxlength` / `_specials` / `_punctuation`. |
|
|
64
|
-
| `conversations.history` | semantic | `app.test.ts`, `performance.test.ts` | Newest-first ordering; `pin_count` included. |
|
|
65
|
-
| `conversations.replies` | semantic | `domain-chat.test.ts`, `domain.test.ts` | Parent decorated with `thread_ts === ts`, `subscribed:false`, `is_locked:false`. |
|
|
66
|
-
| `conversations.invite` / `join` / `
|
|
67
|
-
| `conversations.
|
|
68
|
-
| `
|
|
69
|
-
| `
|
|
70
|
-
| `
|
|
71
|
-
| `
|
|
72
|
-
| `
|
|
73
|
-
| `
|
|
74
|
-
| `
|
|
70
|
+
| Endpoint | Heat | Tier | Tests | Notes |
|
|
71
|
+
| --- | --- | --- | --- | --- |
|
|
72
|
+
| `auth.test` | hot | semantic | `app.test.ts`, `auth.test.ts` | Returns `{ok, url, team, user, team_id, user_id, bot_id?}`. |
|
|
73
|
+
| `chat.postMessage` | hot | semantic | `app.test.ts`, `domain-chat.test.ts`, `recorder-state-delta.test.ts` | Form-encoded + JSON body; persists `username`, `icon_emoji`, `icon_url`; emits `bot_id`, `bot_profile`, `app_id` for bot authors. |
|
|
74
|
+
| `chat.update` | hot | semantic | `domain-chat.test.ts`, `app-routes.test.ts` | `edited_ts` allocated via the workspace-unique ts counter — no collisions. Hot per SL1: agents edit their own progress messages. |
|
|
75
|
+
| `chat.delete` | hot | semantic | `app.test.ts`, `actor-session.test.ts`, `domain.test.ts` | Hard delete (matches real Slack); thread parent `reply_count` decrements transactionally. No admin override. Hot per SL1. |
|
|
76
|
+
| `chat.scheduleMessage` / `chat.deleteScheduledMessage` | hot | semantic | `domain.test.ts`, `app-routes.test.ts` | No fire path — scheduled messages persist until explicit delete. |
|
|
77
|
+
| `conversations.list` | hot | semantic | `app.test.ts`, `recorder-state-delta.test.ts` | Cursor pagination, `types` filter, `exclude_archived`. |
|
|
78
|
+
| `conversations.info` | hot | semantic | `app-routes.test.ts` | `include_num_members` supported. |
|
|
79
|
+
| `conversations.create` | hot | semantic | `app.test.ts`, `domain-conversations.test.ts` | Granular error codes: `invalid_name_required` / `_maxlength` / `_specials` / `_punctuation`. |
|
|
80
|
+
| `conversations.history` | hot | semantic | `app.test.ts`, `performance.test.ts` | Newest-first ordering; `pin_count` included. |
|
|
81
|
+
| `conversations.replies` | hot | semantic | `domain-chat.test.ts`, `domain.test.ts` | Parent decorated with `thread_ts === ts`, `subscribed:false`, `is_locked:false`. |
|
|
82
|
+
| `conversations.invite` / `join` / `members` | hot | semantic | `app-routes.test.ts`, `domain.test.ts`, `domain-conversations.test.ts` | Membership setup + the member read behind `slack_list_channel_members`. |
|
|
83
|
+
| `conversations.leave` / `kick` / `archive` | warm | semantic | `app-routes.test.ts`, `domain.test.ts`, `domain-conversations.test.ts` | `cant_kick_self`, `cant_kick_from_general`, `cant_leave_general`, `cant_archive_general` matched. Warm-ruled: see the tier-mismatch ledger. |
|
|
84
|
+
| `conversations.open` | hot | semantic | `domain-conversations.test.ts`, `concurrency.test.ts` | Deterministic DM channel id by sorted member-id signature with a partial UNIQUE index. |
|
|
85
|
+
| `reactions.add` / `get` | hot | semantic | `app.test.ts`, `domain.test.ts`, `concurrency.test.ts` | `already_reacted` error code; `get` backs `slack_get_reactions`. |
|
|
86
|
+
| `reactions.remove` | warm | semantic | `app.test.ts`, `domain.test.ts` | `no_reaction` error code. Warm-ruled undo step: see the tier-mismatch ledger. |
|
|
87
|
+
| `users.list` / `users.info` / `users.lookupByEmail` / `users.profile.get` | hot | semantic | `domain.test.ts`, `app-routes.test.ts` | `users_not_found` error code on email miss. |
|
|
88
|
+
| `users.profile.set` | warm | semantic | `domain.test.ts`, `app-routes.test.ts` | Warm-ruled (no vendor MCP write): see the tier-mismatch ledger. |
|
|
89
|
+
| `pins.add` / `remove` / `list` | warm | semantic | `domain.test.ts`, `app-routes.test.ts` | `already_pinned` / `no_pin` codes; SQL constraint-mapped on race. Warm-ruled: see the tier-mismatch ledger. |
|
|
90
|
+
| `search.messages` | hot | semantic | `domain.test.ts`, `performance.test.ts` | Substring (LIKE-based) match; query syntax is intentionally smaller than real Slack search. |
|
|
91
|
+
| `files.upload` / `info` / `list` / `delete` | warm | shape | `domain.test.ts`, `app-routes.test.ts` | Metadata-only; no binary storage. URL fields point to deterministic `pome-twin-files.slack.com` hosts. Shape is at the warm target (SL5). |
|
|
92
|
+
| `bookmarks.add` / `remove` / `list` | warm | semantic | `domain.test.ts`, `app-routes.test.ts` | `link` type accepted; other bookmark types are unsupported per real Slack 2024 changelog. Warm-ruled: see the tier-mismatch ledger. |
|
|
93
|
+
| `team.info` | warm | semantic | `app-routes.test.ts` | Returns workspace metadata; enterprise fields are NULL for non-Enterprise twins. Warm-ruled context read: see the tier-mismatch ledger. |
|
|
75
94
|
|
|
76
95
|
Routes not listed return **501 + `_twin.fidelity:"unsupported"`** so agents
|
|
77
|
-
fail loudly rather than silently no-op.
|
|
96
|
+
fail loudly rather than silently no-op. Cold surfaces agents plausibly probe
|
|
97
|
+
carry named rows below, so the loud 501 is documented and test-backed; the
|
|
98
|
+
rest of the upstream API is implicitly cold via the catch-all.
|
|
99
|
+
|
|
100
|
+
## Ruled gaps and named cold surfaces
|
|
101
|
+
|
|
102
|
+
Per the F-729 twin-slack ruling, the hot and warm sets are exhaustive: warm
|
|
103
|
+
surfaces the twin does not implement yet appear here as explicit gaps
|
|
104
|
+
(fidelity below the `shape` target) with their defer rationale — F-736 filled
|
|
105
|
+
hot gaps only (SL2); warm gaps were ruled defer (SL3/SL4). Named cold rows
|
|
106
|
+
document the loud 501 for surfaces agents plausibly probe. Message drafts are
|
|
107
|
+
deliberately absent: a client-UI concept with no Web API analog to name a row
|
|
108
|
+
for (PS).
|
|
109
|
+
|
|
110
|
+
| Endpoint | Heat | Tier | Notes |
|
|
111
|
+
| --- | --- | --- | --- |
|
|
112
|
+
| `canvases.create` / `canvases.edit` / `canvases.delete` | warm | unsupported | Deferred post-M5 (SL3). Strongest promotion candidate: Slack's first-party MCP server ships 3 canvas tools. |
|
|
113
|
+
| `conversations.setTopic` / `conversations.setPurpose` | warm | unsupported | Deferred post-M5 (SL4). "Set the channel topic" is a classic agent task; no vendor MCP tool. |
|
|
114
|
+
| `emoji.list` | warm | unsupported | Deferred post-M5 (SL4). Vendor ships an emoji-search tool; trivial read when filled. |
|
|
115
|
+
| `chat.postEphemeral` | cold | unsupported | The twin has no per-viewer visibility model (PS). 501 test-backed. |
|
|
116
|
+
| `files.getUploadURLExternal` / `files.completeUploadExternal` | cold | unsupported | Modern upload flow; the twin serves legacy v1 upload (divergence #7). Promotion candidate when v1 sunsets. 501 test-backed. |
|
|
117
|
+
| `admin.*` | cold | unsupported | No admin scopes modeled (divergence #6) (PS). Representative 501 probes test-backed. |
|
|
118
|
+
| `usergroups.*` | cold | unsupported | Outside the single-workspace twin scope (PS). 501 test-backed. |
|
|
119
|
+
| `views.*` | cold | unsupported | Client-UI modal surface, not on an agent chain (PS). 501 test-backed. |
|
|
120
|
+
|
|
121
|
+
## Tier-mismatch ledger
|
|
122
|
+
|
|
123
|
+
Surfaces whose ruled heat is **warm** but whose measured fidelity is
|
|
124
|
+
`semantic` — implementation deeper than the ruling demands. Per the M5
|
|
125
|
+
additive-only project `[DECISION]` (2026-07-11), nothing here is demoted in
|
|
126
|
+
code this milestone (the Twin Fidelity Watch launch gate F-440 is counting
|
|
127
|
+
consecutive green runs); each entry becomes a demotion-review follow-up
|
|
128
|
+
ticket after that gate closes. The ledger makes over-investment visible; it
|
|
129
|
+
does not trigger removals.
|
|
130
|
+
|
|
131
|
+
| Surface | Heat | Fidelity today | Target | Why it stays for now |
|
|
132
|
+
| --- | --- | --- | --- | --- |
|
|
133
|
+
| `reactions.remove` | warm | semantic | shape | Undo step; F-440 additive-only window. |
|
|
134
|
+
| `conversations.leave` | warm | semantic | shape | Rare cleanup chain; F-440 additive-only window. |
|
|
135
|
+
| `conversations.kick` | warm | semantic | shape | Rare moderation chain; F-440 additive-only window. |
|
|
136
|
+
| `conversations.archive` | warm | semantic | shape | Rare cleanup chain; F-440 additive-only window. |
|
|
137
|
+
| `users.profile.set` | warm | semantic | shape | Plausible set-own-status chain, no vendor write tool; F-440 additive-only window. |
|
|
138
|
+
| `pins.add` | warm | semantic | shape | Occasional chain, absent from the vendor server; F-440 additive-only window. |
|
|
139
|
+
| `pins.remove` | warm | semantic | shape | Occasional chain, absent from the vendor server; F-440 additive-only window. |
|
|
140
|
+
| `pins.list` | warm | semantic | shape | Occasional chain, absent from the vendor server; F-440 additive-only window. |
|
|
141
|
+
| `bookmarks.add` | warm | semantic | shape | Occasional chain, absent from the vendor server; F-440 additive-only window. |
|
|
142
|
+
| `bookmarks.remove` | warm | semantic | shape | Occasional chain, absent from the vendor server; F-440 additive-only window. |
|
|
143
|
+
| `bookmarks.list` | warm | semantic | shape | Occasional chain, absent from the vendor server; F-440 additive-only window. |
|
|
144
|
+
| `team.info` | warm | semantic | shape | Context read adjacent to hot chains; F-440 additive-only window. |
|
|
78
145
|
|
|
79
146
|
## Fidelity-watch coverage (status.pome.sh)
|
|
80
147
|
|
|
@@ -82,6 +149,15 @@ The daily watchdog reports twin-slack at **19 of 45 semantic surfaces**, 26 roll
|
|
|
82
149
|
out. The number is built from source, never hand-typed
|
|
83
150
|
(the Twin Fidelity Watch in pome-cloud); here is exactly what it counts.
|
|
84
151
|
|
|
152
|
+
> **Denominator reconcile deferred (SL5).** The 45 predates the F-736 re-cut:
|
|
153
|
+
> it counts `files.info` / `files.list` / `files.delete` as semantic (the
|
|
154
|
+
> table above rules them shape ×4 — the table wins) and does not yet include
|
|
155
|
+
> the three F-736 MCP read tools (`slack_search_messages`,
|
|
156
|
+
> `slack_get_reactions`, `slack_list_channel_members`). Reconciling
|
|
157
|
+
> pome-cloud's `sandboxes/slack/surfaces.ts` is deliberately deferred until
|
|
158
|
+
> the F-440 launch gate finishes its consecutive-green count (additive-only
|
|
159
|
+
> collision), tracked by F-737.
|
|
160
|
+
|
|
85
161
|
- **Denominator (45)** — the full semantic surface inventory: 8 MCP tools + 37
|
|
86
162
|
semantic REST methods (`files.upload` is shape-tier, excluded). MCP tools and
|
|
87
163
|
REST methods are counted as **distinct public contracts**: an agent calls
|
|
@@ -254,6 +330,16 @@ npm run typecheck # zero TS errors
|
|
|
254
330
|
npm run test # all tests pass
|
|
255
331
|
npm run test:coverage # ≥ 90% lines, ≥ 90% funcs
|
|
256
332
|
npm run validate:mcp # JSON-RPC SDK round-trip
|
|
333
|
+
npm run fidelity:parity # every MCP tool through /mcp/call (F-730)
|
|
257
334
|
TWIN_AUTH_SECRET=dev SLACK_DETERMINISTIC_TS=1 npm run smoke
|
|
258
335
|
npm run verify:cloud-token # cloud xoxb-pome-* token validates
|
|
259
336
|
```
|
|
337
|
+
|
|
338
|
+
The tables above are 1:1-linted against the structured inventory
|
|
339
|
+
[`fidelity.inventory.json`](fidelity.inventory.json) (which also carries the
|
|
340
|
+
hot/warm/cold heat tier per F-729) by `test/fidelity-contract.test.ts`; the
|
|
341
|
+
same test enforces the heat discipline (no unclassified surfaces, hot ⇒
|
|
342
|
+
semantic, cold ⇒ unsupported, and the tier-mismatch ledger exactly matching
|
|
343
|
+
the warm-above-target set). The shared parity runner (`@pome-sh/sdk/parity`)
|
|
344
|
+
asserts the same inventory matches the live tool list and that a declarative
|
|
345
|
+
scenario exercises every tool.
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
> One of three twins in this repository (GitHub, Stripe x402, Slack).
|
|
4
4
|
|
|
5
|
-
`@pome-sh/twin-slack` is a local, stateful Slack twin for agent testing. It exposes Slack Web API–shaped REST routes plus an
|
|
5
|
+
`@pome-sh/twin-slack` is a local, stateful Slack twin for agent testing. It exposes Slack Web API–shaped REST routes plus an 11-tool MCP-style API backed by the same SQLite domain services. The 11 visible MCP tools mirror the canonical Slack agent toolset (post message, reply to thread, add reaction, get channel history, get thread replies, list channels, list users, get user profile, search messages, get reactions, list channel members).
|
|
6
6
|
|
|
7
7
|
## Quickstart
|
|
8
8
|
|
|
@@ -11,10 +11,6 @@ npm install
|
|
|
11
11
|
npm run seed
|
|
12
12
|
export TWIN_AUTH_SECRET=$(openssl rand -hex 32)
|
|
13
13
|
npm run dev
|
|
14
|
-
|
|
15
|
-
# Docker (from monorepo root; host port 3335):
|
|
16
|
-
# docker compose --profile twins up -d twin-slack
|
|
17
|
-
# curl http://127.0.0.1:3335/healthz
|
|
18
14
|
```
|
|
19
15
|
|
|
20
16
|
Slack-shaped REST + MCP routes live under `/s/:sid/*` and require a
|
|
@@ -57,7 +53,7 @@ The default seed creates:
|
|
|
57
53
|
- **Real MCP (JSON-RPC, Streamable HTTP, stateless):** `POST /s/:sid/mcp`
|
|
58
54
|
— speaks the protocol the `@modelcontextprotocol/sdk` `Client` +
|
|
59
55
|
`StreamableHTTPClientTransport` expect (`initialize`, `tools/list`,
|
|
60
|
-
`tools/call`, `ping`, `notifications/*`).
|
|
56
|
+
`tools/call`, `ping`, `notifications/*`). 11 visible tools returned via
|
|
61
57
|
`tools/list` with camelCase `inputSchema`.
|
|
62
58
|
- Legacy custom MCP routes:
|
|
63
59
|
- `GET /s/:sid/mcp/tools` — returns `{ tools: [{ name, description, input_schema }, ...] }`
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
2
|
+
//
|
|
3
|
+
// fidelity:parity — declarative parity scenario for twin-slack (F-730).
|
|
4
|
+
// The runner lives in @pome-sh/sdk/parity; this file is scenario data only:
|
|
5
|
+
// an ordered, stateful chain (post → thread → reaction → reads) that
|
|
6
|
+
// exercises every MCP tool in fidelity.inventory.json against the seeded
|
|
7
|
+
// workspace, plus the loud-501 probe for an unsupported Web API method.
|
|
8
|
+
//
|
|
9
|
+
// Slack answers HTTP 200 with `{ok:false, error}` on API errors, so every
|
|
10
|
+
// step also asserts the Slack envelope's own ok flag.
|
|
11
|
+
import { join } from "node:path";
|
|
12
|
+
import { loadFidelityInventory, runParityCli } from "@pome-sh/sdk/parity";
|
|
13
|
+
import { defaultSeedState } from "../src/seed.js";
|
|
14
|
+
import { createSlackTwinApp } from "../src/twin.js";
|
|
15
|
+
import { listTools } from "../src/tools.js";
|
|
16
|
+
const steps = [
|
|
17
|
+
{
|
|
18
|
+
tool: "slack_list_channels",
|
|
19
|
+
capture: (body, state) => {
|
|
20
|
+
const channels = body.channels ?? [];
|
|
21
|
+
state.channelId = channels.find((channel) => channel.name === "general")?.id;
|
|
22
|
+
},
|
|
23
|
+
},
|
|
24
|
+
{
|
|
25
|
+
tool: "slack_post_message",
|
|
26
|
+
arguments: (state) => ({ channel_id: state.channelId, text: "Parity message" }),
|
|
27
|
+
capture: (body, state) => {
|
|
28
|
+
state.ts = body.ts;
|
|
29
|
+
},
|
|
30
|
+
},
|
|
31
|
+
{ tool: "slack_reply_to_thread", arguments: (state) => ({ channel_id: state.channelId, thread_ts: state.ts, text: "Parity reply" }) },
|
|
32
|
+
{ tool: "slack_add_reaction", arguments: (state) => ({ channel_id: state.channelId, timestamp: state.ts, reaction: "thumbsup" }) },
|
|
33
|
+
{ tool: "slack_get_channel_history", arguments: (state) => ({ channel_id: state.channelId }) },
|
|
34
|
+
{ tool: "slack_get_thread_replies", arguments: (state) => ({ channel_id: state.channelId, thread_ts: state.ts }) },
|
|
35
|
+
{
|
|
36
|
+
tool: "slack_get_users",
|
|
37
|
+
capture: (body, state) => {
|
|
38
|
+
const members = body.members ?? [];
|
|
39
|
+
state.aliceId = members.find((member) => member.name === "alice")?.id;
|
|
40
|
+
},
|
|
41
|
+
},
|
|
42
|
+
{ tool: "slack_get_user_profile", arguments: (state) => ({ user_id: state.aliceId }) },
|
|
43
|
+
// F-736 hot-gap read tools: search the posted message, read back the
|
|
44
|
+
// reaction added above, list the members of the channel we posted into.
|
|
45
|
+
{
|
|
46
|
+
tool: "slack_search_messages",
|
|
47
|
+
arguments: { query: "Parity" },
|
|
48
|
+
verify: (body) => {
|
|
49
|
+
const matches = body.messages?.matches ?? [];
|
|
50
|
+
return matches.length > 0 ? undefined : "search returned no match for the posted message";
|
|
51
|
+
},
|
|
52
|
+
},
|
|
53
|
+
{
|
|
54
|
+
tool: "slack_get_reactions",
|
|
55
|
+
arguments: (state) => ({ channel_id: state.channelId, timestamp: state.ts }),
|
|
56
|
+
verify: (body) => {
|
|
57
|
+
const reactions = body.message?.reactions ?? [];
|
|
58
|
+
return reactions.some((r) => r.name === "thumbsup")
|
|
59
|
+
? undefined
|
|
60
|
+
: "reactions read did not include the thumbsup added earlier";
|
|
61
|
+
},
|
|
62
|
+
},
|
|
63
|
+
{
|
|
64
|
+
tool: "slack_list_channel_members",
|
|
65
|
+
arguments: (state) => ({ channel_id: state.channelId }),
|
|
66
|
+
verify: (body) => {
|
|
67
|
+
const members = body.members ?? [];
|
|
68
|
+
return members.length > 0 ? undefined : "channel member list came back empty";
|
|
69
|
+
},
|
|
70
|
+
},
|
|
71
|
+
];
|
|
72
|
+
await runParityCli({
|
|
73
|
+
app: createSlackTwinApp({ seed: defaultSeedState() }),
|
|
74
|
+
twin: "slack",
|
|
75
|
+
inventory: loadFidelityInventory(join(import.meta.dirname, "..", "fidelity.inventory.json")),
|
|
76
|
+
liveToolNames: listTools().map((tool) => tool.name),
|
|
77
|
+
steps,
|
|
78
|
+
claims: { team_id: "T_POME", login: "pome-agent" },
|
|
79
|
+
stepVerify: (body) => {
|
|
80
|
+
const envelope = body;
|
|
81
|
+
return envelope.ok === false ? `slack error envelope: ${envelope.error ?? "unknown"}` : undefined;
|
|
82
|
+
},
|
|
83
|
+
restProbes: [
|
|
84
|
+
{ surface: "unsupported-rest", method: "POST", path: "/admin.conversations.search", status: 501, expectUnsupportedEnvelope: true },
|
|
85
|
+
// Named cold rows (F-729 ruling / F-736): the loud 501 is part of the contract.
|
|
86
|
+
{ surface: "cold:chat.postEphemeral", method: "POST", path: "/chat.postEphemeral", status: 501, expectUnsupportedEnvelope: true },
|
|
87
|
+
{ surface: "cold:files.getUploadURLExternal", method: "GET", path: "/files.getUploadURLExternal", status: 501, expectUnsupportedEnvelope: true },
|
|
88
|
+
{ surface: "cold:usergroups.list", method: "GET", path: "/usergroups.list", status: 501, expectUnsupportedEnvelope: true },
|
|
89
|
+
{ surface: "cold:views.publish", method: "POST", path: "/views.publish", status: 501, expectUnsupportedEnvelope: true },
|
|
90
|
+
],
|
|
91
|
+
});
|
|
92
|
+
//# sourceMappingURL=fidelity-parity.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fidelity-parity.js","sourceRoot":"","sources":["../../scripts/fidelity-parity.ts"],"names":[],"mappings":"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"}
|
|
@@ -42,7 +42,7 @@ function assert(condition, message) {
|
|
|
42
42
|
const body = (await res.json());
|
|
43
43
|
assert(res.status === 200, "GET /healthz returns 200");
|
|
44
44
|
assert(body.twin === "slack", "healthz reports twin=slack");
|
|
45
|
-
assert(body.tools ===
|
|
45
|
+
assert(body.tools === 11, "healthz reports 11 tools");
|
|
46
46
|
}
|
|
47
47
|
// 2. auth.test
|
|
48
48
|
{
|
|
@@ -126,7 +126,7 @@ let threadParentTs = "";
|
|
|
126
126
|
const { status, body } = await call("/mcp/tools");
|
|
127
127
|
assert(status === 200, "GET /mcp/tools 200");
|
|
128
128
|
const tools = body.tools;
|
|
129
|
-
assert(tools.length ===
|
|
129
|
+
assert(tools.length === 11, `11 tools listed (got ${tools.length})`);
|
|
130
130
|
assert(tools.every((t) => t.name.startsWith("slack_")), "all tools prefixed slack_");
|
|
131
131
|
}
|
|
132
132
|
// 10. MCP JSON-RPC tools/list
|
|
@@ -138,7 +138,7 @@ let threadParentTs = "";
|
|
|
138
138
|
});
|
|
139
139
|
const body = (await res.json());
|
|
140
140
|
assert(res.status === 200, "MCP tools/list 200");
|
|
141
|
-
assert(body.result.tools.length ===
|
|
141
|
+
assert(body.result.tools.length === 11, "MCP lists 11 tools");
|
|
142
142
|
assert(body.result.tools.every((t) => t.inputSchema?.additionalProperties === false), "all tools have additionalProperties:false");
|
|
143
143
|
}
|
|
144
144
|
// 11. MCP tools/call
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"smoke.js","sourceRoot":"","sources":["../../scripts/smoke.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"smoke.js","sourceRoot":"","sources":["../../scripts/smoke.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
// `@modelcontextprotocol/sdk` `Client` over `StreamableHTTPClientTransport`
|
|
7
7
|
// with a Bearer header, and:
|
|
8
8
|
//
|
|
9
|
-
// 1. Verifies tools/list returns the
|
|
9
|
+
// 1. Verifies tools/list returns the 11 visible Slack-agent tools via
|
|
10
10
|
// real JSON-RPC framing.
|
|
11
11
|
// 2. Calls slack_list_channels and slack_post_message end-to-end.
|
|
12
12
|
// 3. Calls the same tools via the legacy `/mcp/call` REST shim and diffs
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validate-mcp.js","sourceRoot":"","sources":["../../scripts/validate-mcp.ts"],"names":[],"mappings":"AAAA,sCAAsC;AACtC,EAAE;AACF,mEAAmE;AACnE,EAAE;AACF,4EAA4E;AAC5E,4EAA4E;AAC5E,6BAA6B;AAC7B,EAAE;AACF,
|
|
1
|
+
{"version":3,"file":"validate-mcp.js","sourceRoot":"","sources":["../../scripts/validate-mcp.ts"],"names":[],"mappings":"AAAA,sCAAsC;AACtC,EAAE;AACF,mEAAmE;AACnE,EAAE;AACF,4EAA4E;AAC5E,4EAA4E;AAC5E,6BAA6B;AAC7B,EAAE;AACF,wEAAwE;AACxE,8BAA8B;AAC9B,oEAAoE;AACpE,2EAA2E;AAC3E,wDAAwD;AACxD,EAAE;AACF,4EAA4E;AAE5E,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACxC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC1C,OAAO,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAChC,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AACnE,OAAO,EAAE,6BAA6B,EAAE,MAAM,oDAAoD,CAAC;AACnG,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAGlD,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,yBAAyB,CAAC,CAAC;AAC7F,MAAM,GAAG,GAAG,sBAAsB,CAAC;AACnC,MAAM,MAAM,GAAG,0CAA0C,CAAC;AAE1D,OAAO,CAAC,GAAG,CAAC,gBAAgB,GAAG,MAAM,CAAC;AACtC,OAAO,CAAC,GAAG,CAAC,sBAAsB,GAAG,GAAG,CAAC;AAEzC,MAAM,GAAG,GAAa,EAAE,CAAC;AACzB,SAAS,MAAM,CAAC,IAAY;IAC1B,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACf,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AACpB,CAAC;AAED,SAAS,OAAO,CAAC,KAAa;IAC5B,MAAM,CAAC,EAAE,CAAC,CAAC;IACX,MAAM,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC;AAC7B,CAAC;AAED,SAAS,MAAM,CAAC,KAAc;IAC5B,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;AACxC,CAAC;AAED,KAAK,UAAU,SAAS;IACtB,OAAO,IAAI,CACT,EAAE,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,YAAY,EAAE,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,IAAI,EAAE,EACpG,MAAM,CACP,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,IAAI;IACjB,MAAM,EAAE,GAAG,qBAAqB,CAAC,UAAU,CAAC,CAAC;IAC7C,MAAM,MAAM,GAAG,IAAI,WAAW,CAAC,EAAE,CAAC,CAAC;IACnC,MAAM,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAC;IAChC,MAAM,QAAQ,GAAG,mBAAmB,EAAE,CAAC;IACvC,MAAM,GAAG,GAAG,kBAAkB,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,cAAc,EAAE,CAAC,CAAC;IAChF,sEAAsE;IACtE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,OAAO,CACxC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QAClB,MAAM,CAAC,GAAG,KAAK,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,WAAW,EAAE,EAAE,CAAC,IAAI,EAAE,EAAE;YAC7E,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QAC1C,CAAC,CAAC,CAAC;QACH,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IACxB,CAAC,CACF,CAAC;IACF,MAAM,OAAO,GAAG,oBAAoB,IAAI,EAAE,CAAC;IAC3C,MAAM,MAAM,GAAG,GAAG,OAAO,MAAM,GAAG,MAAM,CAAC;IACzC,MAAM,KAAK,GAAG,MAAM,SAAS,EAAE,CAAC;IAChC,MAAM,CAAC,WAAW,OAAO,EAAE,CAAC,CAAC;IAC7B,MAAM,CAAC,WAAW,MAAM,EAAE,CAAC,CAAC;IAE5B,OAAO,CAAC,wBAAwB,CAAC,CAAC;IAClC,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC;IACtE,MAAM,SAAS,GAAG,IAAI,6BAA6B,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,EAAE;QACnE,WAAW,EAAE,EAAE,OAAO,EAAE,EAAE,aAAa,EAAE,UAAU,KAAK,EAAE,EAAE,EAAE;KAC/D,CAAC,CAAC;IACH,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAChC,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,SAAS,EAAE,CAAC;IACvC,MAAM,CAAC,uBAAuB,KAAK,CAAC,KAAK,CAAC,MAAM,oBAAoB,eAAe,CAAC,MAAM,GAAG,CAAC,CAAC;IAC/F,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,KAAK,eAAe,CAAC,MAAM,EAAE,CAAC;QAClD,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;IAChD,CAAC;IACD,KAAK,MAAM,CAAC,IAAI,KAAK,CAAC,KAAK;QAAE,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;IAEvE,OAAO,CAAC,gDAAgD,CAAC,CAAC;IAC1D,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,qBAAqB,EAAE,SAAS,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;IACjG,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;IAExB,OAAO,CAAC,+CAA+C,CAAC,CAAC;IACzD,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC;QACpC,IAAI,EAAE,oBAAoB;QAC1B,SAAS,EAAE,EAAE,UAAU,EAAE,WAAW,EAAE,IAAI,EAAE,kBAAkB,EAAE;KACjE,CAAC,CAAC;IACH,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;IAExB,OAAO,CAAC,kCAAkC,CAAC,CAAC;IAC5C,MAAM,SAAS,GAAG,MAAM,KAAK,CAAC,GAAG,OAAO,MAAM,GAAG,WAAW,EAAE;QAC5D,MAAM,EAAE,MAAM;QACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE,aAAa,EAAE,UAAU,KAAK,EAAE,EAAE;QACjF,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,qBAAqB,EAAE,SAAS,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,CAAC;KAChF,CAAC,CAAC;IACH,MAAM,UAAU,GAAG,MAAM,SAAS,CAAC,IAAI,EAAE,CAAC;IAC1C,MAAM,CAAC,2BAA2B,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC;IACtD,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC;IAE3B,OAAO,CAAC,sFAAsF,CAAC,CAAC;IAChG,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,EAAqB,CAAC;IACpD,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,IAAI,OAAO,CAAC,CAAC,YAAY,KAAK,QAAQ,IAAI,MAAM,IAAK,CAAC,CAAC,YAAuB,CAAC,CAAC;IACtI,MAAM,CAAC,qBAAqB,UAAU,CAAC,MAAM,cAAc,CAAC,CAAC;IAC7D,KAAK,MAAM,EAAE,IAAI,UAAU,EAAE,CAAC;QAC5B,MAAM,IAAI,GAAG,EAAE,CAAC,YAAgC,CAAC;QACjD,MAAM,CAAC,OAAO,EAAE,CAAC,IAAI,WAAW,IAAI,CAAC,IAAI,WAAW,EAAE,CAAC,MAAM,mBAAmB,EAAE,CAAC,cAAc,EAAE,CAAC,CAAC;IACvG,CAAC;IAED,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;IACrB,MAAM,CAAC,KAAK,EAAE,CAAC;IAEf,aAAa,CAAC,WAAW,EAAE,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;IAClD,MAAM,CAAC,EAAE,CAAC,CAAC;IACX,MAAM,CAAC,qBAAqB,WAAW,EAAE,CAAC,CAAC;AAC7C,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;IACnB,OAAO,CAAC,KAAK,CAAC,sBAAsB,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IAC7F,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
|
|
@@ -5,18 +5,19 @@
|
|
|
5
5
|
// root). Thin by design: read the env surface, open the db through the
|
|
6
6
|
// engine driver, load the boot seed, hand everything to the engine's
|
|
7
7
|
// `serve()`.
|
|
8
|
-
import {
|
|
8
|
+
import { ensureTwinAuthSecret, serve } from "@pome-sh/sdk/server";
|
|
9
9
|
import { openSlackTwinDatabase } from "./db.js";
|
|
10
10
|
import { loadSeedFromEnv } from "./seed.js";
|
|
11
11
|
import { slackTwinDefinition } from "./twin.js";
|
|
12
12
|
const port = Number(process.env.PORT ?? process.env.SLACK_CLONE_PORT ?? 3333);
|
|
13
13
|
const host = process.env.SLACK_CLONE_HOST ?? "127.0.0.1";
|
|
14
14
|
const dbPath = process.env.SLACK_CLONE_DB ?? ".slack_clone/slack.db";
|
|
15
|
-
//
|
|
16
|
-
//
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
15
|
+
// F-708: an env-injected TWIN_AUTH_SECRET always wins; a non-loopback bind
|
|
16
|
+
// with no env self-generates a secret and persists it at the compose-era
|
|
17
|
+
// contract location (.pome-data/slack/secret). The engine's serve() runs
|
|
18
|
+
// the same guard; calling it here first keeps a failed boot from touching
|
|
19
|
+
// the filesystem (no db file is created).
|
|
20
|
+
ensureTwinAuthSecret("slack", host);
|
|
20
21
|
const db = openSlackTwinDatabase(dbPath);
|
|
21
22
|
// POME_SEED_JSON (FDRS-353) is strict-parsed: a malformed cloud seed fails
|
|
22
23
|
// the boot loudly instead of silently serving the default world.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/server.ts"],"names":[],"mappings":";AACA,sCAAsC;AACtC,EAAE;AACF,wEAAwE;AACxE,uEAAuE;AACvE,qEAAqE;AACrE,aAAa;AAEb,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/server.ts"],"names":[],"mappings":";AACA,sCAAsC;AACtC,EAAE;AACF,wEAAwE;AACxE,uEAAuE;AACvE,qEAAqE;AACrE,aAAa;AAEb,OAAO,EAAE,oBAAoB,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAClE,OAAO,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAC;AAChD,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAEhD,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,OAAO,CAAC,GAAG,CAAC,gBAAgB,IAAI,IAAI,CAAC,CAAC;AAC9E,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,gBAAgB,IAAI,WAAW,CAAC;AACzD,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,uBAAuB,CAAC;AAErE,2EAA2E;AAC3E,yEAAyE;AACzE,yEAAyE;AACzE,0EAA0E;AAC1E,0CAA0C;AAC1C,oBAAoB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;AAEpC,MAAM,EAAE,GAAG,qBAAqB,CAAC,MAAM,CAAC,CAAC;AACzC,2EAA2E;AAC3E,iEAAiE;AACjE,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,mBAAmB,KAAK,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC;AAErF,gFAAgF;AAChF,MAAM,KAAK,CAAC,mBAAmB,EAAE;IAC/B,IAAI;IACJ,QAAQ,EAAE,IAAI;IACd,EAAE;IACF,IAAI;IACJ,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,OAAO;CAC1C,CAAC,CAAC;AAEH,OAAO,CAAC,GAAG,CAAC,kCAAkC,IAAI,IAAI,IAAI,EAAE,CAAC,CAAC;AAC9D,OAAO,CAAC,GAAG,CAAC,gBAAgB,IAAI,IAAI,IAAI,EAAE,CAAC,CAAC;AAC5C,OAAO,CAAC,GAAG,CAAC,gBAAgB,IAAI,IAAI,IAAI,cAAc,CAAC,CAAC;AAExD,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;IAC3E,OAAO,CAAC,IAAI,CACV,2EAA2E;QACzE,6EAA6E;QAC7E,4EAA4E;QAC5E,iDAAiD,CACpD,CAAC;AACJ,CAAC"}
|
|
@@ -66,6 +66,32 @@ export declare const toolDefinitions: readonly [{
|
|
|
66
66
|
readonly schema: z.ZodObject<{
|
|
67
67
|
user_id: z.ZodString;
|
|
68
68
|
}, z.core.$strict>;
|
|
69
|
+
}, {
|
|
70
|
+
readonly name: "slack_search_messages";
|
|
71
|
+
readonly description: "Search messages in the workspace by text query";
|
|
72
|
+
readonly readOnly: true;
|
|
73
|
+
readonly schema: z.ZodObject<{
|
|
74
|
+
query: z.ZodString;
|
|
75
|
+
count: z.ZodOptional<z.ZodNumber>;
|
|
76
|
+
page: z.ZodOptional<z.ZodNumber>;
|
|
77
|
+
}, z.core.$strict>;
|
|
78
|
+
}, {
|
|
79
|
+
readonly name: "slack_get_reactions";
|
|
80
|
+
readonly description: "Get all reactions on a specific message";
|
|
81
|
+
readonly readOnly: true;
|
|
82
|
+
readonly schema: z.ZodObject<{
|
|
83
|
+
channel_id: z.ZodString;
|
|
84
|
+
timestamp: z.ZodString;
|
|
85
|
+
}, z.core.$strict>;
|
|
86
|
+
}, {
|
|
87
|
+
readonly name: "slack_list_channel_members";
|
|
88
|
+
readonly description: "List the member user IDs of a channel with pagination";
|
|
89
|
+
readonly readOnly: true;
|
|
90
|
+
readonly schema: z.ZodObject<{
|
|
91
|
+
channel_id: z.ZodString;
|
|
92
|
+
limit: z.ZodOptional<z.ZodNumber>;
|
|
93
|
+
cursor: z.ZodOptional<z.ZodString>;
|
|
94
|
+
}, z.core.$strict>;
|
|
69
95
|
}];
|
|
70
96
|
export declare const MUTATING_TOOL_NAMES: Set<string>;
|
|
71
97
|
export declare function isMutatingTool(name: string): boolean;
|
|
@@ -79,16 +105,16 @@ export declare function listTools(): {
|
|
|
79
105
|
annotations?: {
|
|
80
106
|
readOnlyHint: boolean;
|
|
81
107
|
} | undefined;
|
|
82
|
-
name: "slack_post_message" | "slack_reply_to_thread" | "slack_add_reaction" | "slack_get_channel_history" | "slack_get_thread_replies" | "slack_list_channels" | "slack_get_users" | "slack_get_user_profile";
|
|
83
|
-
description: "Post a new message to a Slack channel" | "Reply to a specific message thread in Slack" | "Add a reaction emoji to a message" | "Get recent messages from a channel" | "Get all replies in a message thread" | "List public or pre-defined channels in the workspace with pagination" | "Get a list of all users in the workspace with their basic profile information" | "Get detailed profile information for a specific user";
|
|
108
|
+
name: "slack_post_message" | "slack_reply_to_thread" | "slack_add_reaction" | "slack_get_channel_history" | "slack_get_thread_replies" | "slack_list_channels" | "slack_get_users" | "slack_get_user_profile" | "slack_search_messages" | "slack_get_reactions" | "slack_list_channel_members";
|
|
109
|
+
description: "Post a new message to a Slack channel" | "Reply to a specific message thread in Slack" | "Add a reaction emoji to a message" | "Get recent messages from a channel" | "Get all replies in a message thread" | "List public or pre-defined channels in the workspace with pagination" | "Get a list of all users in the workspace with their basic profile information" | "Get detailed profile information for a specific user" | "Search messages in the workspace by text query" | "Get all reactions on a specific message" | "List the member user IDs of a channel with pagination";
|
|
84
110
|
input_schema: ToolJsonSchema;
|
|
85
111
|
}[];
|
|
86
112
|
export declare function listToolsForMcp(): {
|
|
87
113
|
annotations?: {
|
|
88
114
|
readOnlyHint: boolean;
|
|
89
115
|
} | undefined;
|
|
90
|
-
name: "slack_post_message" | "slack_reply_to_thread" | "slack_add_reaction" | "slack_get_channel_history" | "slack_get_thread_replies" | "slack_list_channels" | "slack_get_users" | "slack_get_user_profile";
|
|
91
|
-
description: "Post a new message to a Slack channel" | "Reply to a specific message thread in Slack" | "Add a reaction emoji to a message" | "Get recent messages from a channel" | "Get all replies in a message thread" | "List public or pre-defined channels in the workspace with pagination" | "Get a list of all users in the workspace with their basic profile information" | "Get detailed profile information for a specific user";
|
|
116
|
+
name: "slack_post_message" | "slack_reply_to_thread" | "slack_add_reaction" | "slack_get_channel_history" | "slack_get_thread_replies" | "slack_list_channels" | "slack_get_users" | "slack_get_user_profile" | "slack_search_messages" | "slack_get_reactions" | "slack_list_channel_members";
|
|
117
|
+
description: "Post a new message to a Slack channel" | "Reply to a specific message thread in Slack" | "Add a reaction emoji to a message" | "Get recent messages from a channel" | "Get all replies in a message thread" | "List public or pre-defined channels in the workspace with pagination" | "Get a list of all users in the workspace with their basic profile information" | "Get detailed profile information for a specific user" | "Search messages in the workspace by text query" | "Get all reactions on a specific message" | "List the member user IDs of a channel with pagination";
|
|
92
118
|
inputSchema: ToolJsonSchema;
|
|
93
119
|
}[];
|
|
94
120
|
export declare function executeTool(domain: SlackDomain, name: string, args: Record<string, unknown>, onDelta?: (delta: StateDelta) => void, actor?: {
|