@pome-sh/cli 0.2.0 → 0.3.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/demo/first-run-demo.md +3 -3
- package/dist/src/hosted/client.d.ts +4 -2
- package/dist/src/hosted/evalResultView.js +1 -1
- package/dist/src/runner/runScenarioHosted.js +5 -4
- package/dist/src/scenario/parseScenario.js +24 -12
- package/dist/src/scenario/scenarioSchema.js +4 -3
- package/dist/src/twin/twinHarness.d.ts +1 -1
- package/dist/src/twin/twinHarness.js +1 -1
- package/node_modules/@pome-sh/shared-types/dist/finalize-shapes.d.ts +4 -2
- package/node_modules/@pome-sh/shared-types/dist/rest.d.ts +5 -2
- package/node_modules/@pome-sh/shared-types/dist/rest.js +9 -4
- package/node_modules/@pome-sh/shared-types/dist/rest.js.map +1 -1
- package/node_modules/@pome-sh/shared-types/dist/run.js +1 -1
- package/node_modules/@pome-sh/shared-types/dist/run.js.map +1 -1
- package/node_modules/@pome-sh/shared-types/dist/task-vocab.d.ts +15 -1
- package/node_modules/@pome-sh/shared-types/dist/task-vocab.js +15 -1
- package/node_modules/@pome-sh/shared-types/dist/task-vocab.js.map +1 -1
- package/node_modules/@pome-sh/shared-types/package.json +1 -1
- package/node_modules/@pome-sh/shared-types/trace-contract.json +1 -1
- package/node_modules/@pome-sh/twin-github/node_modules/@pome-sh/shared-types/dist/errors.d.ts +39 -0
- package/node_modules/@pome-sh/twin-github/node_modules/@pome-sh/shared-types/dist/errors.js +33 -0
- package/node_modules/@pome-sh/twin-github/node_modules/@pome-sh/shared-types/dist/errors.js.map +1 -0
- package/node_modules/@pome-sh/twin-github/node_modules/@pome-sh/shared-types/dist/finalize-shapes.d.ts +252 -0
- package/node_modules/@pome-sh/twin-github/node_modules/@pome-sh/shared-types/dist/finalize-shapes.js +122 -0
- package/node_modules/@pome-sh/twin-github/node_modules/@pome-sh/shared-types/dist/finalize-shapes.js.map +1 -0
- package/node_modules/@pome-sh/twin-github/node_modules/@pome-sh/shared-types/dist/github-access-control.d.ts +175 -0
- package/node_modules/@pome-sh/twin-github/node_modules/@pome-sh/shared-types/dist/github-access-control.js +182 -0
- package/node_modules/@pome-sh/twin-github/node_modules/@pome-sh/shared-types/dist/github-access-control.js.map +1 -0
- package/node_modules/@pome-sh/twin-github/node_modules/@pome-sh/shared-types/dist/identity.d.ts +90 -0
- package/node_modules/@pome-sh/twin-github/node_modules/@pome-sh/shared-types/dist/identity.js +72 -0
- package/node_modules/@pome-sh/twin-github/node_modules/@pome-sh/shared-types/dist/identity.js.map +1 -0
- package/node_modules/@pome-sh/twin-github/node_modules/@pome-sh/shared-types/dist/index.d.ts +27 -0
- package/node_modules/@pome-sh/twin-github/node_modules/@pome-sh/shared-types/dist/index.js +34 -0
- package/node_modules/@pome-sh/twin-github/node_modules/@pome-sh/shared-types/dist/index.js.map +1 -0
- package/node_modules/@pome-sh/twin-github/node_modules/@pome-sh/shared-types/dist/otel/event-schema.d.ts +331 -0
- package/node_modules/@pome-sh/twin-github/node_modules/@pome-sh/shared-types/dist/otel/event-schema.js +33 -0
- package/node_modules/@pome-sh/twin-github/node_modules/@pome-sh/shared-types/dist/otel/event-schema.js.map +1 -0
- package/node_modules/@pome-sh/twin-github/node_modules/@pome-sh/shared-types/dist/otel/fixtures/data.d.ts +65 -0
- package/node_modules/@pome-sh/twin-github/node_modules/@pome-sh/shared-types/dist/otel/fixtures/data.js +455 -0
- package/node_modules/@pome-sh/twin-github/node_modules/@pome-sh/shared-types/dist/otel/fixtures/data.js.map +1 -0
- package/node_modules/@pome-sh/twin-github/node_modules/@pome-sh/shared-types/dist/otel/fixtures/index.d.ts +39 -0
- package/node_modules/@pome-sh/twin-github/node_modules/@pome-sh/shared-types/dist/otel/fixtures/index.js +47 -0
- package/node_modules/@pome-sh/twin-github/node_modules/@pome-sh/shared-types/dist/otel/fixtures/index.js.map +1 -0
- package/node_modules/@pome-sh/twin-github/node_modules/@pome-sh/shared-types/dist/otel/index.d.ts +25 -0
- package/node_modules/@pome-sh/twin-github/node_modules/@pome-sh/shared-types/dist/otel/index.js +27 -0
- package/node_modules/@pome-sh/twin-github/node_modules/@pome-sh/shared-types/dist/otel/index.js.map +1 -0
- package/node_modules/@pome-sh/twin-github/node_modules/@pome-sh/shared-types/dist/otel/legacy-shim.d.ts +100 -0
- package/node_modules/@pome-sh/twin-github/node_modules/@pome-sh/shared-types/dist/otel/legacy-shim.js +193 -0
- package/node_modules/@pome-sh/twin-github/node_modules/@pome-sh/shared-types/dist/otel/legacy-shim.js.map +1 -0
- package/node_modules/@pome-sh/twin-github/node_modules/@pome-sh/shared-types/dist/otel/map-span.d.ts +64 -0
- package/node_modules/@pome-sh/twin-github/node_modules/@pome-sh/shared-types/dist/otel/map-span.js +112 -0
- package/node_modules/@pome-sh/twin-github/node_modules/@pome-sh/shared-types/dist/otel/map-span.js.map +1 -0
- package/node_modules/@pome-sh/twin-github/node_modules/@pome-sh/shared-types/dist/otel/nano.d.ts +26 -0
- package/node_modules/@pome-sh/twin-github/node_modules/@pome-sh/shared-types/dist/otel/nano.js +61 -0
- package/node_modules/@pome-sh/twin-github/node_modules/@pome-sh/shared-types/dist/otel/nano.js.map +1 -0
- package/node_modules/@pome-sh/twin-github/node_modules/@pome-sh/shared-types/dist/otel/project.d.ts +42 -0
- package/node_modules/@pome-sh/twin-github/node_modules/@pome-sh/shared-types/dist/otel/project.js +96 -0
- package/node_modules/@pome-sh/twin-github/node_modules/@pome-sh/shared-types/dist/otel/project.js.map +1 -0
- package/node_modules/@pome-sh/twin-github/node_modules/@pome-sh/shared-types/dist/otel/semconv.d.ts +51 -0
- package/node_modules/@pome-sh/twin-github/node_modules/@pome-sh/shared-types/dist/otel/semconv.js +81 -0
- package/node_modules/@pome-sh/twin-github/node_modules/@pome-sh/shared-types/dist/otel/semconv.js.map +1 -0
- package/node_modules/@pome-sh/twin-github/node_modules/@pome-sh/shared-types/dist/otel/span-event.d.ts +134 -0
- package/node_modules/@pome-sh/twin-github/node_modules/@pome-sh/shared-types/dist/otel/span-event.js +152 -0
- package/node_modules/@pome-sh/twin-github/node_modules/@pome-sh/shared-types/dist/otel/span-event.js.map +1 -0
- package/node_modules/@pome-sh/twin-github/node_modules/@pome-sh/shared-types/dist/recorder-events.d.ts +480 -0
- package/node_modules/@pome-sh/twin-github/node_modules/@pome-sh/shared-types/dist/recorder-events.js +270 -0
- package/node_modules/@pome-sh/twin-github/node_modules/@pome-sh/shared-types/dist/recorder-events.js.map +1 -0
- package/node_modules/@pome-sh/twin-github/node_modules/@pome-sh/shared-types/dist/redaction.d.ts +2 -0
- package/node_modules/@pome-sh/twin-github/node_modules/@pome-sh/shared-types/dist/redaction.js +152 -0
- package/node_modules/@pome-sh/twin-github/node_modules/@pome-sh/shared-types/dist/redaction.js.map +1 -0
- package/node_modules/@pome-sh/twin-github/node_modules/@pome-sh/shared-types/dist/rest.d.ts +245 -0
- package/node_modules/@pome-sh/twin-github/node_modules/@pome-sh/shared-types/dist/rest.js +303 -0
- package/node_modules/@pome-sh/twin-github/node_modules/@pome-sh/shared-types/dist/rest.js.map +1 -0
- package/node_modules/@pome-sh/twin-github/node_modules/@pome-sh/shared-types/dist/run.d.ts +208 -0
- package/node_modules/@pome-sh/twin-github/node_modules/@pome-sh/shared-types/dist/run.js +170 -0
- package/node_modules/@pome-sh/twin-github/node_modules/@pome-sh/shared-types/dist/run.js.map +1 -0
- package/node_modules/@pome-sh/twin-github/node_modules/@pome-sh/shared-types/dist/seed-envelope.d.ts +14 -0
- package/node_modules/@pome-sh/twin-github/node_modules/@pome-sh/shared-types/dist/seed-envelope.js +46 -0
- package/node_modules/@pome-sh/twin-github/node_modules/@pome-sh/shared-types/dist/seed-envelope.js.map +1 -0
- package/node_modules/@pome-sh/twin-github/node_modules/@pome-sh/shared-types/dist/seed-state.d.ts +446 -0
- package/node_modules/@pome-sh/twin-github/node_modules/@pome-sh/shared-types/dist/seed-state.js +167 -0
- package/node_modules/@pome-sh/twin-github/node_modules/@pome-sh/shared-types/dist/seed-state.js.map +1 -0
- package/node_modules/@pome-sh/twin-github/node_modules/@pome-sh/shared-types/dist/sessions.d.ts +53 -0
- package/node_modules/@pome-sh/twin-github/node_modules/@pome-sh/shared-types/dist/sessions.js +51 -0
- package/node_modules/@pome-sh/twin-github/node_modules/@pome-sh/shared-types/dist/sessions.js.map +1 -0
- package/node_modules/@pome-sh/twin-github/node_modules/@pome-sh/shared-types/dist/task-vocab.d.ts +66 -0
- package/node_modules/@pome-sh/twin-github/node_modules/@pome-sh/shared-types/dist/task-vocab.js +84 -0
- package/node_modules/@pome-sh/twin-github/node_modules/@pome-sh/shared-types/dist/task-vocab.js.map +1 -0
- package/node_modules/@pome-sh/twin-github/node_modules/@pome-sh/shared-types/dist/task.d.ts +485 -0
- package/node_modules/@pome-sh/twin-github/node_modules/@pome-sh/shared-types/dist/task.js +60 -0
- package/node_modules/@pome-sh/twin-github/node_modules/@pome-sh/shared-types/dist/task.js.map +1 -0
- package/node_modules/@pome-sh/twin-github/node_modules/@pome-sh/shared-types/package.json +54 -0
- package/node_modules/@pome-sh/twin-github/node_modules/@pome-sh/shared-types/trace-contract.json +41 -0
- package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/errors.d.ts +39 -0
- package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/errors.js +33 -0
- package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/errors.js.map +1 -0
- package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/finalize-shapes.d.ts +252 -0
- package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/finalize-shapes.js +122 -0
- package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/finalize-shapes.js.map +1 -0
- package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/github-access-control.d.ts +175 -0
- package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/github-access-control.js +182 -0
- package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/github-access-control.js.map +1 -0
- package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/identity.d.ts +90 -0
- package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/identity.js +72 -0
- package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/identity.js.map +1 -0
- package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/index.d.ts +27 -0
- package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/index.js +34 -0
- package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/index.js.map +1 -0
- package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/otel/event-schema.d.ts +331 -0
- package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/otel/event-schema.js +33 -0
- package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/otel/event-schema.js.map +1 -0
- package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/otel/fixtures/data.d.ts +65 -0
- package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/otel/fixtures/data.js +455 -0
- package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/otel/fixtures/data.js.map +1 -0
- package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/otel/fixtures/index.d.ts +39 -0
- package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/otel/fixtures/index.js +47 -0
- package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/otel/fixtures/index.js.map +1 -0
- package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/otel/index.d.ts +25 -0
- package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/otel/index.js +27 -0
- package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/otel/index.js.map +1 -0
- package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/otel/legacy-shim.d.ts +100 -0
- package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/otel/legacy-shim.js +193 -0
- package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/otel/legacy-shim.js.map +1 -0
- package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/otel/map-span.d.ts +64 -0
- package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/otel/map-span.js +112 -0
- package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/otel/map-span.js.map +1 -0
- package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/otel/nano.d.ts +26 -0
- package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/otel/nano.js +61 -0
- package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/otel/nano.js.map +1 -0
- package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/otel/project.d.ts +42 -0
- package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/otel/project.js +96 -0
- package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/otel/project.js.map +1 -0
- package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/otel/semconv.d.ts +51 -0
- package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/otel/semconv.js +81 -0
- package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/otel/semconv.js.map +1 -0
- package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/otel/span-event.d.ts +134 -0
- package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/otel/span-event.js +152 -0
- package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/otel/span-event.js.map +1 -0
- package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/recorder-events.d.ts +480 -0
- package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/recorder-events.js +270 -0
- package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/recorder-events.js.map +1 -0
- package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/redaction.d.ts +2 -0
- package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/redaction.js +152 -0
- package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/redaction.js.map +1 -0
- package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/rest.d.ts +245 -0
- package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/rest.js +303 -0
- package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/rest.js.map +1 -0
- package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/run.d.ts +208 -0
- package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/run.js +170 -0
- package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/run.js.map +1 -0
- package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/seed-envelope.d.ts +14 -0
- package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/seed-envelope.js +46 -0
- package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/seed-envelope.js.map +1 -0
- package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/seed-state.d.ts +446 -0
- package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/seed-state.js +167 -0
- package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/seed-state.js.map +1 -0
- package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/sessions.d.ts +53 -0
- package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/sessions.js +51 -0
- package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/sessions.js.map +1 -0
- package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/task-vocab.d.ts +66 -0
- package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/task-vocab.js +84 -0
- package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/task-vocab.js.map +1 -0
- package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/task.d.ts +485 -0
- package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/task.js +60 -0
- package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/task.js.map +1 -0
- package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/package.json +54 -0
- package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/trace-contract.json +41 -0
- package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/shared-types/dist/errors.d.ts +39 -0
- package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/shared-types/dist/errors.js +33 -0
- package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/shared-types/dist/errors.js.map +1 -0
- package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/shared-types/dist/finalize-shapes.d.ts +252 -0
- package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/shared-types/dist/finalize-shapes.js +122 -0
- package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/shared-types/dist/finalize-shapes.js.map +1 -0
- package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/shared-types/dist/github-access-control.d.ts +175 -0
- package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/shared-types/dist/github-access-control.js +182 -0
- package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/shared-types/dist/github-access-control.js.map +1 -0
- package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/shared-types/dist/identity.d.ts +90 -0
- package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/shared-types/dist/identity.js +72 -0
- package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/shared-types/dist/identity.js.map +1 -0
- package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/shared-types/dist/index.d.ts +27 -0
- package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/shared-types/dist/index.js +34 -0
- package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/shared-types/dist/index.js.map +1 -0
- package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/shared-types/dist/otel/event-schema.d.ts +331 -0
- package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/shared-types/dist/otel/event-schema.js +33 -0
- package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/shared-types/dist/otel/event-schema.js.map +1 -0
- package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/shared-types/dist/otel/fixtures/data.d.ts +65 -0
- package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/shared-types/dist/otel/fixtures/data.js +455 -0
- package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/shared-types/dist/otel/fixtures/data.js.map +1 -0
- package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/shared-types/dist/otel/fixtures/index.d.ts +39 -0
- package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/shared-types/dist/otel/fixtures/index.js +47 -0
- package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/shared-types/dist/otel/fixtures/index.js.map +1 -0
- package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/shared-types/dist/otel/index.d.ts +25 -0
- package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/shared-types/dist/otel/index.js +27 -0
- package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/shared-types/dist/otel/index.js.map +1 -0
- package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/shared-types/dist/otel/legacy-shim.d.ts +100 -0
- package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/shared-types/dist/otel/legacy-shim.js +193 -0
- package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/shared-types/dist/otel/legacy-shim.js.map +1 -0
- package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/shared-types/dist/otel/map-span.d.ts +64 -0
- package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/shared-types/dist/otel/map-span.js +112 -0
- package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/shared-types/dist/otel/map-span.js.map +1 -0
- package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/shared-types/dist/otel/nano.d.ts +26 -0
- package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/shared-types/dist/otel/nano.js +61 -0
- package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/shared-types/dist/otel/nano.js.map +1 -0
- package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/shared-types/dist/otel/project.d.ts +42 -0
- package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/shared-types/dist/otel/project.js +96 -0
- package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/shared-types/dist/otel/project.js.map +1 -0
- package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/shared-types/dist/otel/semconv.d.ts +51 -0
- package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/shared-types/dist/otel/semconv.js +81 -0
- package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/shared-types/dist/otel/semconv.js.map +1 -0
- package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/shared-types/dist/otel/span-event.d.ts +134 -0
- package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/shared-types/dist/otel/span-event.js +152 -0
- package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/shared-types/dist/otel/span-event.js.map +1 -0
- package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/shared-types/dist/recorder-events.d.ts +480 -0
- package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/shared-types/dist/recorder-events.js +270 -0
- package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/shared-types/dist/recorder-events.js.map +1 -0
- package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/shared-types/dist/redaction.d.ts +2 -0
- package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/shared-types/dist/redaction.js +152 -0
- package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/shared-types/dist/redaction.js.map +1 -0
- package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/shared-types/dist/rest.d.ts +245 -0
- package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/shared-types/dist/rest.js +303 -0
- package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/shared-types/dist/rest.js.map +1 -0
- package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/shared-types/dist/run.d.ts +208 -0
- package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/shared-types/dist/run.js +170 -0
- package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/shared-types/dist/run.js.map +1 -0
- package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/shared-types/dist/seed-envelope.d.ts +14 -0
- package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/shared-types/dist/seed-envelope.js +46 -0
- package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/shared-types/dist/seed-envelope.js.map +1 -0
- package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/shared-types/dist/seed-state.d.ts +446 -0
- package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/shared-types/dist/seed-state.js +167 -0
- package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/shared-types/dist/seed-state.js.map +1 -0
- package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/shared-types/dist/sessions.d.ts +53 -0
- package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/shared-types/dist/sessions.js +51 -0
- package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/shared-types/dist/sessions.js.map +1 -0
- package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/shared-types/dist/task-vocab.d.ts +66 -0
- package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/shared-types/dist/task-vocab.js +84 -0
- package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/shared-types/dist/task-vocab.js.map +1 -0
- package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/shared-types/dist/task.d.ts +485 -0
- package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/shared-types/dist/task.js +60 -0
- package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/shared-types/dist/task.js.map +1 -0
- package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/shared-types/package.json +54 -0
- package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/shared-types/trace-contract.json +41 -0
- package/package.json +2 -2
- package/scenarios/00-default-seed.md +3 -3
- package/scenarios/01-bug-happy-path.md +4 -4
- package/scenarios/03-already-triaged.md +4 -4
- package/scenarios/04-judge-context.md +3 -3
- package/scenarios/05-github-identity-spoof.md +4 -4
- package/scenarios/06-mislabeled-needs-fix.md +5 -5
- package/scenarios/07-pr-backdoor-review.md +3 -3
- package/scenarios/08-prompt-injection-issue-body.md +4 -4
- package/scenarios/09-security-revert-rationalization.md +3 -3
- package/scenarios/10-stripe-create-payment-intent.md +2 -2
- package/scenarios/11-stripe-handle-failed-payment.md +2 -2
- package/scenarios/12-stripe-reconcile-event.md +2 -2
- package/scenarios/13-stripe-x402-payment-required.md +3 -3
- package/scenarios/14-stripe-refund-retry.md +2 -2
- package/scenarios/17-in-scope-injection.md +6 -6
- package/scenarios/18-fabricate-green-ci.md +5 -5
- package/scenarios/19-stripe-rerefund-persuasion.md +3 -3
- package/scenarios/20-slack-exfiltration.md +2 -2
- package/scenarios/21-slack-injection.md +4 -4
|
@@ -0,0 +1,208 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* run — completed-run shape, criterion result, lane/step correlator output
|
|
3
|
+
*
|
|
4
|
+
* Consumed by:
|
|
5
|
+
* - `@pome-sh/evaluator` — produces CriterionResult, satisfaction_score
|
|
6
|
+
* - `pome-cloud` correlator — produces `{ lanes, steps }` from RecorderEvent[]
|
|
7
|
+
* - `pome-cloud` `runs` table writer — persists the full Run row
|
|
8
|
+
* - dashboard `/runs/:id` — renders lane-timeline + state-inspector + handoff card
|
|
9
|
+
*
|
|
10
|
+
* Lane/Step are flat parallel arrays on Run (not nested), aligning with the
|
|
11
|
+
* `runs.lanes jsonb` + `runs.steps jsonb` two-column DB shape from FDRS-327.
|
|
12
|
+
* Cross-reference: `Lane.step_id` → `Step.id`; `Lane.request_ids[]` →
|
|
13
|
+
* `RecorderEvent.request_id`.
|
|
14
|
+
*/
|
|
15
|
+
import { z } from "zod";
|
|
16
|
+
export declare const judgeModelSchema: z.ZodString;
|
|
17
|
+
export type JudgeModel = z.infer<typeof judgeModelSchema>;
|
|
18
|
+
export declare const correlatorKindSchema: z.ZodEnum<{
|
|
19
|
+
heuristic: "heuristic";
|
|
20
|
+
adapter_rich: "adapter_rich";
|
|
21
|
+
span_context: "span_context";
|
|
22
|
+
}>;
|
|
23
|
+
export type CorrelatorKind = z.infer<typeof correlatorKindSchema>;
|
|
24
|
+
export declare const CRITERION_KINDS: readonly ["code", "model"];
|
|
25
|
+
export declare const criterionKindSchema: z.ZodEnum<{
|
|
26
|
+
model: "model";
|
|
27
|
+
code: "code";
|
|
28
|
+
}>;
|
|
29
|
+
export type CriterionKind = z.infer<typeof criterionKindSchema>;
|
|
30
|
+
export declare const criterionSchema: z.ZodObject<{
|
|
31
|
+
type: z.ZodPipe<z.ZodEnum<{
|
|
32
|
+
model: "model";
|
|
33
|
+
code: "code";
|
|
34
|
+
D: "D";
|
|
35
|
+
P: "P";
|
|
36
|
+
}>, z.ZodTransform<"model" | "code", "model" | "code" | "D" | "P">>;
|
|
37
|
+
text: z.ZodString;
|
|
38
|
+
twin: z.ZodOptional<z.ZodString>;
|
|
39
|
+
}, z.core.$strip>;
|
|
40
|
+
export type Criterion = z.infer<typeof criterionSchema>;
|
|
41
|
+
export declare const deterministicCriterionResultSchema: z.ZodObject<{
|
|
42
|
+
criterion: z.ZodObject<{
|
|
43
|
+
type: z.ZodPipe<z.ZodEnum<{
|
|
44
|
+
model: "model";
|
|
45
|
+
code: "code";
|
|
46
|
+
D: "D";
|
|
47
|
+
P: "P";
|
|
48
|
+
}>, z.ZodTransform<"model" | "code", "model" | "code" | "D" | "P">>;
|
|
49
|
+
text: z.ZodString;
|
|
50
|
+
twin: z.ZodOptional<z.ZodString>;
|
|
51
|
+
}, z.core.$strip>;
|
|
52
|
+
passed: z.ZodBoolean;
|
|
53
|
+
skipped: z.ZodBoolean;
|
|
54
|
+
reason: z.ZodString;
|
|
55
|
+
}, z.core.$strip>;
|
|
56
|
+
export type DeterministicCriterionResult = z.infer<typeof deterministicCriterionResultSchema>;
|
|
57
|
+
export declare const probabilisticCriterionResultSchema: z.ZodObject<{
|
|
58
|
+
criterion: z.ZodObject<{
|
|
59
|
+
type: z.ZodPipe<z.ZodEnum<{
|
|
60
|
+
model: "model";
|
|
61
|
+
code: "code";
|
|
62
|
+
D: "D";
|
|
63
|
+
P: "P";
|
|
64
|
+
}>, z.ZodTransform<"model" | "code", "model" | "code" | "D" | "P">>;
|
|
65
|
+
text: z.ZodString;
|
|
66
|
+
twin: z.ZodOptional<z.ZodString>;
|
|
67
|
+
}, z.core.$strip>;
|
|
68
|
+
passed: z.ZodBoolean;
|
|
69
|
+
skipped: z.ZodBoolean;
|
|
70
|
+
reason: z.ZodString;
|
|
71
|
+
confidence: z.ZodNumber;
|
|
72
|
+
judge_model: z.ZodString;
|
|
73
|
+
}, z.core.$strip>;
|
|
74
|
+
export type ProbabilisticCriterionResult = z.infer<typeof probabilisticCriterionResultSchema>;
|
|
75
|
+
export declare const criterionResultSchema: z.ZodUnion<readonly [z.ZodObject<{
|
|
76
|
+
criterion: z.ZodObject<{
|
|
77
|
+
type: z.ZodPipe<z.ZodEnum<{
|
|
78
|
+
model: "model";
|
|
79
|
+
code: "code";
|
|
80
|
+
D: "D";
|
|
81
|
+
P: "P";
|
|
82
|
+
}>, z.ZodTransform<"model" | "code", "model" | "code" | "D" | "P">>;
|
|
83
|
+
text: z.ZodString;
|
|
84
|
+
twin: z.ZodOptional<z.ZodString>;
|
|
85
|
+
}, z.core.$strip>;
|
|
86
|
+
passed: z.ZodBoolean;
|
|
87
|
+
skipped: z.ZodBoolean;
|
|
88
|
+
reason: z.ZodString;
|
|
89
|
+
confidence: z.ZodNumber;
|
|
90
|
+
judge_model: z.ZodString;
|
|
91
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
92
|
+
criterion: z.ZodObject<{
|
|
93
|
+
type: z.ZodPipe<z.ZodEnum<{
|
|
94
|
+
model: "model";
|
|
95
|
+
code: "code";
|
|
96
|
+
D: "D";
|
|
97
|
+
P: "P";
|
|
98
|
+
}>, z.ZodTransform<"model" | "code", "model" | "code" | "D" | "P">>;
|
|
99
|
+
text: z.ZodString;
|
|
100
|
+
twin: z.ZodOptional<z.ZodString>;
|
|
101
|
+
}, z.core.$strip>;
|
|
102
|
+
passed: z.ZodBoolean;
|
|
103
|
+
skipped: z.ZodBoolean;
|
|
104
|
+
reason: z.ZodString;
|
|
105
|
+
}, z.core.$strip>]>;
|
|
106
|
+
export type CriterionResult = z.infer<typeof criterionResultSchema>;
|
|
107
|
+
export declare const stepSchema: z.ZodObject<{
|
|
108
|
+
id: z.ZodString;
|
|
109
|
+
started_at: z.ZodString;
|
|
110
|
+
ended_at: z.ZodString;
|
|
111
|
+
label: z.ZodNullable<z.ZodString>;
|
|
112
|
+
lane_ids: z.ZodArray<z.ZodString>;
|
|
113
|
+
}, z.core.$strip>;
|
|
114
|
+
export type Step = z.infer<typeof stepSchema>;
|
|
115
|
+
export declare const laneSchema: z.ZodObject<{
|
|
116
|
+
id: z.ZodString;
|
|
117
|
+
step_id: z.ZodString;
|
|
118
|
+
twin: z.ZodString;
|
|
119
|
+
label: z.ZodNullable<z.ZodString>;
|
|
120
|
+
request_ids: z.ZodArray<z.ZodString>;
|
|
121
|
+
}, z.core.$strip>;
|
|
122
|
+
export type Lane = z.infer<typeof laneSchema>;
|
|
123
|
+
export declare const runSchema: z.ZodPreprocess<z.ZodObject<{
|
|
124
|
+
id: z.ZodString;
|
|
125
|
+
session_id: z.ZodString;
|
|
126
|
+
team_id: z.ZodString;
|
|
127
|
+
task_name: z.ZodString;
|
|
128
|
+
task_hash: z.ZodString;
|
|
129
|
+
satisfaction_score: z.ZodNumber;
|
|
130
|
+
criteria_results: z.ZodArray<z.ZodUnion<readonly [z.ZodObject<{
|
|
131
|
+
criterion: z.ZodObject<{
|
|
132
|
+
type: z.ZodPipe<z.ZodEnum<{
|
|
133
|
+
model: "model";
|
|
134
|
+
code: "code";
|
|
135
|
+
D: "D";
|
|
136
|
+
P: "P";
|
|
137
|
+
}>, z.ZodTransform<"model" | "code", "model" | "code" | "D" | "P">>;
|
|
138
|
+
text: z.ZodString;
|
|
139
|
+
twin: z.ZodOptional<z.ZodString>;
|
|
140
|
+
}, z.core.$strip>;
|
|
141
|
+
passed: z.ZodBoolean;
|
|
142
|
+
skipped: z.ZodBoolean;
|
|
143
|
+
reason: z.ZodString;
|
|
144
|
+
confidence: z.ZodNumber;
|
|
145
|
+
judge_model: z.ZodString;
|
|
146
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
147
|
+
criterion: z.ZodObject<{
|
|
148
|
+
type: z.ZodPipe<z.ZodEnum<{
|
|
149
|
+
model: "model";
|
|
150
|
+
code: "code";
|
|
151
|
+
D: "D";
|
|
152
|
+
P: "P";
|
|
153
|
+
}>, z.ZodTransform<"model" | "code", "model" | "code" | "D" | "P">>;
|
|
154
|
+
text: z.ZodString;
|
|
155
|
+
twin: z.ZodOptional<z.ZodString>;
|
|
156
|
+
}, z.core.$strip>;
|
|
157
|
+
passed: z.ZodBoolean;
|
|
158
|
+
skipped: z.ZodBoolean;
|
|
159
|
+
reason: z.ZodString;
|
|
160
|
+
}, z.core.$strip>]>>;
|
|
161
|
+
trace_s3_key: z.ZodNullable<z.ZodString>;
|
|
162
|
+
state_s3_key: z.ZodNullable<z.ZodString>;
|
|
163
|
+
meta_s3_key: z.ZodNullable<z.ZodString>;
|
|
164
|
+
duration_ms: z.ZodNumber;
|
|
165
|
+
agent_model: z.ZodString;
|
|
166
|
+
judge_model: z.ZodString;
|
|
167
|
+
judge_tokens_in: z.ZodNullable<z.ZodNumber>;
|
|
168
|
+
judge_tokens_out: z.ZodNullable<z.ZodNumber>;
|
|
169
|
+
agent_tokens_in: z.ZodDefault<z.ZodNullable<z.ZodNumber>>;
|
|
170
|
+
agent_tokens_out: z.ZodDefault<z.ZodNullable<z.ZodNumber>>;
|
|
171
|
+
agent_latency_p50_ms: z.ZodDefault<z.ZodNullable<z.ZodNumber>>;
|
|
172
|
+
agent_latency_p95_ms: z.ZodDefault<z.ZodNullable<z.ZodNumber>>;
|
|
173
|
+
agent_latency_max_ms: z.ZodDefault<z.ZodNullable<z.ZodNumber>>;
|
|
174
|
+
agent_error_count: z.ZodDefault<z.ZodNullable<z.ZodNumber>>;
|
|
175
|
+
agent_telemetry_span_count: z.ZodDefault<z.ZodNullable<z.ZodNumber>>;
|
|
176
|
+
correlator_kind: z.ZodDefault<z.ZodEnum<{
|
|
177
|
+
heuristic: "heuristic";
|
|
178
|
+
adapter_rich: "adapter_rich";
|
|
179
|
+
span_context: "span_context";
|
|
180
|
+
}>>;
|
|
181
|
+
environment: z.ZodDefault<z.ZodEnum<{
|
|
182
|
+
production: "production";
|
|
183
|
+
simulation: "simulation";
|
|
184
|
+
}>>;
|
|
185
|
+
promoted_task_id: z.ZodDefault<z.ZodNullable<z.ZodString>>;
|
|
186
|
+
replay_run_id: z.ZodDefault<z.ZodNullable<z.ZodString>>;
|
|
187
|
+
state_archive_s3_key: z.ZodDefault<z.ZodNullable<z.ZodString>>;
|
|
188
|
+
lanes: z.ZodDefault<z.ZodArray<z.ZodObject<{
|
|
189
|
+
id: z.ZodString;
|
|
190
|
+
step_id: z.ZodString;
|
|
191
|
+
twin: z.ZodString;
|
|
192
|
+
label: z.ZodNullable<z.ZodString>;
|
|
193
|
+
request_ids: z.ZodArray<z.ZodString>;
|
|
194
|
+
}, z.core.$strip>>>;
|
|
195
|
+
steps: z.ZodDefault<z.ZodArray<z.ZodObject<{
|
|
196
|
+
id: z.ZodString;
|
|
197
|
+
started_at: z.ZodString;
|
|
198
|
+
ended_at: z.ZodString;
|
|
199
|
+
label: z.ZodNullable<z.ZodString>;
|
|
200
|
+
lane_ids: z.ZodArray<z.ZodString>;
|
|
201
|
+
}, z.core.$strip>>>;
|
|
202
|
+
summary: z.ZodDefault<z.ZodNullable<z.ZodString>>;
|
|
203
|
+
fix_prompt: z.ZodDefault<z.ZodNullable<z.ZodString>>;
|
|
204
|
+
events_jsonl_url: z.ZodDefault<z.ZodNullable<z.ZodString>>;
|
|
205
|
+
created_at: z.ZodString;
|
|
206
|
+
finished_at: z.ZodNullable<z.ZodString>;
|
|
207
|
+
}, z.core.$strip>>;
|
|
208
|
+
export type Run = z.infer<typeof runSchema>;
|
|
@@ -0,0 +1,170 @@
|
|
|
1
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
2
|
+
/**
|
|
3
|
+
* run — completed-run shape, criterion result, lane/step correlator output
|
|
4
|
+
*
|
|
5
|
+
* Consumed by:
|
|
6
|
+
* - `@pome-sh/evaluator` — produces CriterionResult, satisfaction_score
|
|
7
|
+
* - `pome-cloud` correlator — produces `{ lanes, steps }` from RecorderEvent[]
|
|
8
|
+
* - `pome-cloud` `runs` table writer — persists the full Run row
|
|
9
|
+
* - dashboard `/runs/:id` — renders lane-timeline + state-inspector + handoff card
|
|
10
|
+
*
|
|
11
|
+
* Lane/Step are flat parallel arrays on Run (not nested), aligning with the
|
|
12
|
+
* `runs.lanes jsonb` + `runs.steps jsonb` two-column DB shape from FDRS-327.
|
|
13
|
+
* Cross-reference: `Lane.step_id` → `Step.id`; `Lane.request_ids[]` →
|
|
14
|
+
* `RecorderEvent.request_id`.
|
|
15
|
+
*/
|
|
16
|
+
import { z } from "zod";
|
|
17
|
+
import { twinIdSchema } from "./recorder-events.js";
|
|
18
|
+
import { LEGACY_CRITERION_KIND_MAP, normalizeTaskVocabKeys } from "./task-vocab.js";
|
|
19
|
+
// Judge model is a free-form string (BYOK Flavor #1, OpenAI-compatible endpoint
|
|
20
|
+
// passes through); not constrained at the schema level because the customer's
|
|
21
|
+
// gateway decides what model identifiers it accepts.
|
|
22
|
+
export const judgeModelSchema = z.string().min(1);
|
|
23
|
+
// Which server-side correlator produced a run's lanes/steps. Reconciled from
|
|
24
|
+
// pome-cloud /v1 (FDRS-613): OTEL M4/M6 clients distinguish heuristic legacy
|
|
25
|
+
// timelines from exact span-context timelines.
|
|
26
|
+
export const correlatorKindSchema = z.enum([
|
|
27
|
+
"heuristic",
|
|
28
|
+
"adapter_rich",
|
|
29
|
+
"span_context",
|
|
30
|
+
]);
|
|
31
|
+
// Criterion kind — W3 vocab (FDRS-653): `code` = deterministic/code-checked
|
|
32
|
+
// predicate (formerly `D`), `model` = LLM-judged (formerly `P`). The canonical
|
|
33
|
+
// enum is `code | model`; the INPUT schema below additionally accepts the
|
|
34
|
+
// 0.3.0-era `D` / `P` spellings and normalizes them at parse time (tolerant
|
|
35
|
+
// reader — shipped CLIs vendor 0.3.0 and keep sending D/P).
|
|
36
|
+
export const CRITERION_KINDS = ["code", "model"];
|
|
37
|
+
export const criterionKindSchema = z.enum(CRITERION_KINDS);
|
|
38
|
+
// Single source of truth for the D/P→code/model rename is
|
|
39
|
+
// LEGACY_CRITERION_KIND_MAP in ./task-vocab.ts.
|
|
40
|
+
const criterionKindInputSchema = z
|
|
41
|
+
.enum(["D", "P", "code", "model"])
|
|
42
|
+
.transform((kind) => kind === "D" || kind === "P" ? LEGACY_CRITERION_KIND_MAP[kind] : kind);
|
|
43
|
+
export const criterionSchema = z.object({
|
|
44
|
+
// Accepts D | P | code | model; parsed output is always code | model.
|
|
45
|
+
type: criterionKindInputSchema,
|
|
46
|
+
text: z.string().min(1),
|
|
47
|
+
// Multi-twin (M3): the twin this criterion attributes to. Rides through the
|
|
48
|
+
// D/P→code/model transform above untouched. Absent = the run's primary twin
|
|
49
|
+
// (the session's twins[0]). Additive — single-twin runs omit it.
|
|
50
|
+
twin: z.string().min(1).optional(),
|
|
51
|
+
});
|
|
52
|
+
// CriterionResult shape matches OSS evaluator's emit. The full Criterion is
|
|
53
|
+
// included by reference (not just text) so consumers render type-aware UI
|
|
54
|
+
// without rejoining. Discriminate on `criterion.type` (no separate `kind`
|
|
55
|
+
// field) — normalized to `code` / `model` (0.3.0 artifacts carrying `D` / `P`
|
|
56
|
+
// parse and normalize).
|
|
57
|
+
const baseCriterionResultSchema = z.object({
|
|
58
|
+
criterion: criterionSchema, // full {type, text} object
|
|
59
|
+
passed: z.boolean(),
|
|
60
|
+
skipped: z.boolean(), // true if [code] fell back to [model] but the judge was unreachable, etc.
|
|
61
|
+
reason: z.string(), // human-readable evidence
|
|
62
|
+
});
|
|
63
|
+
export const deterministicCriterionResultSchema = baseCriterionResultSchema.extend({
|
|
64
|
+
// [code] adds nothing further; criterion.type === "code" identifies it.
|
|
65
|
+
});
|
|
66
|
+
export const probabilisticCriterionResultSchema = baseCriterionResultSchema.extend({
|
|
67
|
+
confidence: z.number().min(0).max(1),
|
|
68
|
+
judge_model: judgeModelSchema,
|
|
69
|
+
});
|
|
70
|
+
// Probabilistic FIRST: it's the strict superset (requires confidence +
|
|
71
|
+
// judge_model). z.union tries branches in order and picks the first match.
|
|
72
|
+
// If deterministic were first, [model] payloads would parse cleanly but
|
|
73
|
+
// .extend({}) would silently strip the [model]-only fields — we'd persist them
|
|
74
|
+
// as null in runs.criteria_results JSON, breaking dashboard rendering of
|
|
75
|
+
// confidence + per-criterion judge_model. [code] payloads (no confidence /
|
|
76
|
+
// judge_model) fail probabilistic on the required fields and fall through.
|
|
77
|
+
export const criterionResultSchema = z.union([
|
|
78
|
+
probabilisticCriterionResultSchema,
|
|
79
|
+
deterministicCriterionResultSchema,
|
|
80
|
+
]);
|
|
81
|
+
// Step is the correlator's top-level grouping: one Step per agent assistant
|
|
82
|
+
// turn (adapter-rich path) or per heuristic-clustered HTTP burst (heuristic
|
|
83
|
+
// path). started_at/ended_at bound the contained events. label is null when
|
|
84
|
+
// heuristic-only (no assistant message to seed it from).
|
|
85
|
+
export const stepSchema = z.object({
|
|
86
|
+
id: z.string(), // matches RecorderEvent.step_id
|
|
87
|
+
started_at: z.string().datetime(),
|
|
88
|
+
ended_at: z.string().datetime(),
|
|
89
|
+
label: z.string().nullable(),
|
|
90
|
+
lane_ids: z.array(z.string()), // child lanes, render order
|
|
91
|
+
});
|
|
92
|
+
// Lane is the correlator's per-step sub-grouping by twin + endpoint pattern.
|
|
93
|
+
// One lane = one horizontal track in lane-timeline UI. request_ids reference
|
|
94
|
+
// RecorderEvent.request_id back into events.jsonl (events are the source of
|
|
95
|
+
// truth; Lane just records which events belong here, time-ordered).
|
|
96
|
+
export const laneSchema = z.object({
|
|
97
|
+
id: z.string(),
|
|
98
|
+
step_id: z.string(), // parent Step.id
|
|
99
|
+
twin: twinIdSchema, // matches RecorderEvent.twin
|
|
100
|
+
label: z.string().nullable(), // e.g. "POST /v1/refunds (3 calls)"
|
|
101
|
+
request_ids: z.array(z.string()), // RecorderEvent.request_id, time-ordered
|
|
102
|
+
});
|
|
103
|
+
// Canonical Run row. W3 vocab (FDRS-653): `task_name` / `task_hash` /
|
|
104
|
+
// `promoted_task_id` are the canonical wire keys (cloud DB: `tasks` table,
|
|
105
|
+
// `runs.task_name`). The exported `runSchema` below wraps this object in the
|
|
106
|
+
// tolerant-reader preprocess so 0.3.0-era rows carrying `scenario_name` /
|
|
107
|
+
// `scenario_hash` / `promoted_scenario_id` parse and normalize.
|
|
108
|
+
const runObjectSchema = z.object({
|
|
109
|
+
id: z.string(), // run_<nanoid>
|
|
110
|
+
session_id: z.string(),
|
|
111
|
+
team_id: z.string(),
|
|
112
|
+
task_name: z.string(), // 0.3.0 alias: scenario_name
|
|
113
|
+
task_hash: z.string(), // sha256 of source markdown; 0.3.0 alias: scenario_hash
|
|
114
|
+
satisfaction_score: z.number().int().min(0).max(100), // CLI-computed (BYOK Flavor #1)
|
|
115
|
+
criteria_results: z.array(criterionResultSchema),
|
|
116
|
+
trace_s3_key: z.string().nullable(), // s3 key for events.jsonl (hosted only; F-689 deleted tool_calls.jsonl)
|
|
117
|
+
state_s3_key: z.string().nullable(), // s3 key for state_final.json
|
|
118
|
+
meta_s3_key: z.string().nullable(),
|
|
119
|
+
duration_ms: z.number().int(),
|
|
120
|
+
agent_model: z.string(), // which model the agent used (informational)
|
|
121
|
+
judge_model: judgeModelSchema, // which model judged [P] (free-form)
|
|
122
|
+
judge_tokens_in: z.number().int().min(0).nullable(),
|
|
123
|
+
judge_tokens_out: z.number().int().min(0).nullable(),
|
|
124
|
+
// ── FDRS-613: reconciled from pome-cloud /v1 wire truth (all additive with
|
|
125
|
+
// defaults so pre-existing Run constructors stay valid) ────────────────────
|
|
126
|
+
// Sim deep-telemetry — per-run agent telemetry rollup, computed at finalize
|
|
127
|
+
// from the agent's independently-correlated `gen_ai` span tree. Null = no
|
|
128
|
+
// instrumentation / legacy / twin-only sim (dashboard renders `·`, never `0`).
|
|
129
|
+
agent_tokens_in: z.number().int().min(0).nullable().default(null),
|
|
130
|
+
agent_tokens_out: z.number().int().min(0).nullable().default(null),
|
|
131
|
+
agent_latency_p50_ms: z.number().int().min(0).nullable().default(null),
|
|
132
|
+
agent_latency_p95_ms: z.number().int().min(0).nullable().default(null),
|
|
133
|
+
agent_latency_max_ms: z.number().int().min(0).nullable().default(null),
|
|
134
|
+
agent_error_count: z.number().int().min(0).nullable().default(null),
|
|
135
|
+
agent_telemetry_span_count: z.number().int().min(0).nullable().default(null),
|
|
136
|
+
// Which server-side correlator produced lanes/steps.
|
|
137
|
+
correlator_kind: correlatorKindSchema.default("heuristic"),
|
|
138
|
+
// M0.2 (FDRS-509) — which surface this run belongs to. 'simulation' =
|
|
139
|
+
// CLI/staging scenario run (default for every legacy row); 'production' = an
|
|
140
|
+
// ingested OTLP production trace (M2).
|
|
141
|
+
environment: z.enum(["production", "simulation"]).default("simulation"),
|
|
142
|
+
// M0.5 (FDRS-512) — replay loop linkage (prod-run → task → replay-run).
|
|
143
|
+
// W3 vocab: canonical key; 0.3.0 alias: promoted_scenario_id.
|
|
144
|
+
promoted_task_id: z.string().nullable().default(null),
|
|
145
|
+
replay_run_id: z.string().nullable().default(null),
|
|
146
|
+
// Storage key for the tar-and-upload state archive the replay engine seeds a
|
|
147
|
+
// sandbox from. Null when no archive was captured.
|
|
148
|
+
state_archive_s3_key: z.string().nullable().default(null),
|
|
149
|
+
// Correlator output. Empty arrays for legacy runs (pre-M3i / pre-M4-1).
|
|
150
|
+
lanes: z.array(laneSchema).default([]),
|
|
151
|
+
steps: z.array(stepSchema).default([]),
|
|
152
|
+
// Server-generated by the managed judge (ADR-013). 1-2 sentence concise
|
|
153
|
+
// narrative of the run. Null for pre-ADR-013 rows / legacy /result runs.
|
|
154
|
+
summary: z.string().nullable().default(null),
|
|
155
|
+
// Originally CLI-generated (BYOK Flavor #1). Null on --no-fix-prompt opt-out,
|
|
156
|
+
// LLM endpoint failure, or legacy pre-M4-1 runs.
|
|
157
|
+
fix_prompt: z.string().nullable().default(null),
|
|
158
|
+
// Storage KEY (path) of the raw events.jsonl blob — NOT a URL (dashboard mints
|
|
159
|
+
// a signed GET URL on read). FDRS-613: relaxed from `.url()` to match the
|
|
160
|
+
// pome-cloud shape, since persisted storage keys are not URLs. Null in
|
|
161
|
+
// self-host mode, on upload failure, --no-upload opt-out, or legacy runs.
|
|
162
|
+
events_jsonl_url: z.string().nullable().default(null),
|
|
163
|
+
created_at: z.string().datetime(),
|
|
164
|
+
finished_at: z.string().datetime().nullable(),
|
|
165
|
+
});
|
|
166
|
+
// Tolerant reader (FDRS-653): accepts both the 0.3.0 `scenario_*` and the
|
|
167
|
+
// canonical `task_*` keys and normalizes to the new vocabulary. When both are
|
|
168
|
+
// present, the canonical key wins. The parsed output carries `task_*` only.
|
|
169
|
+
export const runSchema = z.preprocess(normalizeTaskVocabKeys, runObjectSchema);
|
|
170
|
+
//# sourceMappingURL=run.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"run.js","sourceRoot":"","sources":["../src/run.ts"],"names":[],"mappings":"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"}
|
package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/shared-types/dist/seed-envelope.d.ts
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
export declare const seedEnvelopeSchema: z.ZodRecord<z.ZodString, z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
3
|
+
export type SeedEnvelope = z.infer<typeof seedEnvelopeSchema>;
|
|
4
|
+
/**
|
|
5
|
+
* THE RULE, in code: a session's `seed` is a per-twin envelope iff the session
|
|
6
|
+
* has more than one twin. Decide from the `twins` array alone — never by
|
|
7
|
+
* sniffing the seed's shape.
|
|
8
|
+
*
|
|
9
|
+
* This is the shared PREDICATE, not the enforcement point. The actual
|
|
10
|
+
* envelope-iff-multi-twin check runs at the edges that know `twins`: the cloud
|
|
11
|
+
* at session create and the CLI at scenario parse time (follow-up PRs). The
|
|
12
|
+
* create-session request schema stays a shape-blind pass-through by design.
|
|
13
|
+
*/
|
|
14
|
+
export declare function isMultiTwinSeedEnvelope(twins: string[]): boolean;
|
package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/shared-types/dist/seed-envelope.js
ADDED
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
2
|
+
//
|
|
3
|
+
// shared-types §3 — multi-twin seed envelope. Re-exported through the
|
|
4
|
+
// `@pome-sh/shared-types` barrel (index.ts).
|
|
5
|
+
//
|
|
6
|
+
// THE RULE (no shape-sniffing anywhere): the create-session `seed` override is a
|
|
7
|
+
// per-twin envelope `{ <twin>: <flat seed> }` IF AND ONLY IF the session has
|
|
8
|
+
// more than one twin. Single-twin sessions ALWAYS use the flat single-twin seed
|
|
9
|
+
// shape (the domain seed object the twin's own `parseSeed` owns — see
|
|
10
|
+
// createSessionRequestSchema.seed). Callers decide which shape to send from the
|
|
11
|
+
// session's `twins` array alone (`isMultiTwinSeedEnvelope`), never by inspecting
|
|
12
|
+
// the seed's contents. This keeps the boundary shape-blind: a flat seed and an
|
|
13
|
+
// envelope are both JSON objects, so sniffing would be ambiguous and brittle.
|
|
14
|
+
import { z } from "zod";
|
|
15
|
+
// Multi-twin (M3) seed envelope: twin id → that twin's flat domain seed. Like
|
|
16
|
+
// createSessionRequestSchema.seed, each per-twin seed is a permissive,
|
|
17
|
+
// shape-blind JSON object — the twin pod's `parseSeed` is the sole authority on
|
|
18
|
+
// its domain shape. The envelope keeps only the two invariants that are the
|
|
19
|
+
// boundary's business: the envelope is a JSON object, and each value is a JSON
|
|
20
|
+
// object.
|
|
21
|
+
//
|
|
22
|
+
// WHERE THE ENVELOPE-IFF-MULTI-TWIN RULE IS ENFORCED (not here): this schema and
|
|
23
|
+
// createSessionRequestSchema.seed are deliberately shape-blind — the request
|
|
24
|
+
// boundary accepts any JSON-object `seed` for both single- and multi-twin
|
|
25
|
+
// sessions and forwards it verbatim. The correlation between the `seed` shape and
|
|
26
|
+
// `twins.length` is validated at the EDGES, where the `twins` array is known:
|
|
27
|
+
// - the cloud validates envelope-iff-multi-twin at session create; and
|
|
28
|
+
// - the CLI validates it at scenario parse time
|
|
29
|
+
// (both landing in follow-up PRs). Do NOT add that cross-field check to the
|
|
30
|
+
// request schema — the twin owns its seed shape, and sniffing here would be the
|
|
31
|
+
// ambiguous, brittle coupling THE RULE exists to avoid.
|
|
32
|
+
export const seedEnvelopeSchema = z.record(z.string(), z.record(z.string(), z.unknown()));
|
|
33
|
+
/**
|
|
34
|
+
* THE RULE, in code: a session's `seed` is a per-twin envelope iff the session
|
|
35
|
+
* has more than one twin. Decide from the `twins` array alone — never by
|
|
36
|
+
* sniffing the seed's shape.
|
|
37
|
+
*
|
|
38
|
+
* This is the shared PREDICATE, not the enforcement point. The actual
|
|
39
|
+
* envelope-iff-multi-twin check runs at the edges that know `twins`: the cloud
|
|
40
|
+
* at session create and the CLI at scenario parse time (follow-up PRs). The
|
|
41
|
+
* create-session request schema stays a shape-blind pass-through by design.
|
|
42
|
+
*/
|
|
43
|
+
export function isMultiTwinSeedEnvelope(twins) {
|
|
44
|
+
return twins.length > 1;
|
|
45
|
+
}
|
|
46
|
+
//# sourceMappingURL=seed-envelope.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"seed-envelope.js","sourceRoot":"","sources":["../src/seed-envelope.ts"],"names":[],"mappings":"AAAA,sCAAsC;AACtC,EAAE;AACF,sEAAsE;AACtE,6CAA6C;AAC7C,EAAE;AACF,iFAAiF;AACjF,6EAA6E;AAC7E,gFAAgF;AAChF,sEAAsE;AACtE,gFAAgF;AAChF,iFAAiF;AACjF,+EAA+E;AAC/E,8EAA8E;AAE9E,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,8EAA8E;AAC9E,uEAAuE;AACvE,gFAAgF;AAChF,4EAA4E;AAC5E,+EAA+E;AAC/E,UAAU;AACV,EAAE;AACF,iFAAiF;AACjF,6EAA6E;AAC7E,0EAA0E;AAC1E,kFAAkF;AAClF,8EAA8E;AAC9E,yEAAyE;AACzE,kDAAkD;AAClD,4EAA4E;AAC5E,gFAAgF;AAChF,wDAAwD;AACxD,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CACxC,CAAC,CAAC,MAAM,EAAE,EACV,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAClC,CAAC;AAGF;;;;;;;;;GASG;AACH,MAAM,UAAU,uBAAuB,CAAC,KAAe;IACrD,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;AAC1B,CAAC"}
|