@pome-sh/cli 0.1.1 → 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.
Files changed (522) hide show
  1. package/README.md +5 -6
  2. package/dist/build-info.json +3 -3
  3. package/dist/src/cli/eval.js +26 -8
  4. package/dist/src/cli/init-sdk.d.ts +0 -3
  5. package/dist/src/cli/init-sdk.js +117 -24
  6. package/dist/src/cli/main.js +23 -69
  7. package/dist/src/cli/register.d.ts +9 -0
  8. package/dist/src/cli/register.js +51 -5
  9. package/dist/src/cli/session.d.ts +7 -1
  10. package/dist/src/cli/session.js +87 -27
  11. package/dist/src/demo/first-run-demo.md +3 -3
  12. package/dist/src/demo/runDemo.js +3 -2
  13. package/dist/src/hosted/client.d.ts +44 -6
  14. package/dist/src/hosted/client.js +333 -19
  15. package/dist/src/hosted/errors.d.ts +11 -1
  16. package/dist/src/hosted/errors.js +8 -1
  17. package/dist/src/hosted/evalResultView.d.ts +2 -0
  18. package/dist/src/hosted/evalResultView.js +22 -0
  19. package/dist/src/hosted/uploadAndFinalize.d.ts +18 -1
  20. package/dist/src/hosted/uploadAndFinalize.js +51 -3
  21. package/dist/src/recorder/inspect.js +20 -2
  22. package/dist/src/runner/mergeAdapterSignals.js +2 -2
  23. package/dist/src/runner/ports.js +3 -0
  24. package/dist/src/runner/runScenario.d.ts +79 -2
  25. package/dist/src/runner/runScenario.js +94 -36
  26. package/dist/src/runner/runScenarioHosted.d.ts +37 -0
  27. package/dist/src/runner/runScenarioHosted.js +261 -61
  28. package/dist/src/runner/runTrialGroup.d.ts +1 -3
  29. package/dist/src/runner/runTrialGroup.js +1 -3
  30. package/dist/src/scenario/parseScenario.d.ts +5 -0
  31. package/dist/src/scenario/parseScenario.js +149 -10
  32. package/dist/src/scenario/scenarioSchema.d.ts +200 -3
  33. package/dist/src/scenario/scenarioSchema.js +16 -4
  34. package/dist/src/twin/twinHarness.d.ts +11 -1
  35. package/dist/src/twin/twinHarness.js +7 -3
  36. package/dist/src/twin/twinStart.d.ts +19 -0
  37. package/dist/src/twin/twinStart.js +156 -0
  38. package/node_modules/@pome-sh/sdk/dist/fidelity-inventory.d.ts +121 -0
  39. package/node_modules/@pome-sh/sdk/dist/fidelity-inventory.js +204 -0
  40. package/node_modules/@pome-sh/sdk/dist/fidelity-inventory.js.map +1 -0
  41. package/node_modules/@pome-sh/sdk/dist/parity.d.ts +55 -0
  42. package/node_modules/@pome-sh/sdk/dist/parity.js +112 -0
  43. package/node_modules/@pome-sh/sdk/dist/parity.js.map +1 -0
  44. package/node_modules/@pome-sh/sdk/dist/server-helpers.d.ts +15 -0
  45. package/node_modules/@pome-sh/sdk/dist/server-helpers.js +96 -0
  46. package/node_modules/@pome-sh/sdk/dist/server-helpers.js.map +1 -1
  47. package/node_modules/@pome-sh/sdk/dist/server.d.ts +1 -1
  48. package/node_modules/@pome-sh/sdk/dist/server.js +9 -7
  49. package/node_modules/@pome-sh/sdk/dist/server.js.map +1 -1
  50. package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/errors.d.ts +39 -0
  51. package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/errors.js +33 -0
  52. package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/errors.js.map +1 -0
  53. package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/evaluator-hooks.d.ts +13 -0
  54. package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/evaluator-hooks.js +6 -0
  55. package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/evaluator-hooks.js.map +1 -0
  56. package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/finalize-shapes.d.ts +215 -0
  57. package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/finalize-shapes.js +83 -0
  58. package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/finalize-shapes.js.map +1 -0
  59. package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/github-access-control.d.ts +175 -0
  60. package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/github-access-control.js +182 -0
  61. package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/github-access-control.js.map +1 -0
  62. package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/identity.d.ts +90 -0
  63. package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/identity.js +72 -0
  64. package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/identity.js.map +1 -0
  65. package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/index.d.ts +27 -0
  66. package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/index.js +34 -0
  67. package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/index.js.map +1 -0
  68. package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/otel/event-schema.d.ts +286 -0
  69. package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/otel/event-schema.js +33 -0
  70. package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/otel/event-schema.js.map +1 -0
  71. package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/otel/fixtures/data.d.ts +65 -0
  72. package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/otel/fixtures/data.js +455 -0
  73. package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/otel/fixtures/data.js.map +1 -0
  74. package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/otel/fixtures/index.d.ts +39 -0
  75. package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/otel/fixtures/index.js +47 -0
  76. package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/otel/fixtures/index.js.map +1 -0
  77. package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/otel/index.d.ts +25 -0
  78. package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/otel/index.js +27 -0
  79. package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/otel/index.js.map +1 -0
  80. package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/otel/legacy-shim.d.ts +100 -0
  81. package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/otel/legacy-shim.js +185 -0
  82. package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/otel/legacy-shim.js.map +1 -0
  83. package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/otel/map-span.d.ts +64 -0
  84. package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/otel/map-span.js +112 -0
  85. package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/otel/map-span.js.map +1 -0
  86. package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/otel/nano.d.ts +26 -0
  87. package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/otel/nano.js +61 -0
  88. package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/otel/nano.js.map +1 -0
  89. package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/otel/project.d.ts +42 -0
  90. package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/otel/project.js +96 -0
  91. package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/otel/project.js.map +1 -0
  92. package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/otel/semconv.d.ts +51 -0
  93. package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/otel/semconv.js +74 -0
  94. package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/otel/semconv.js.map +1 -0
  95. package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/otel/span-event.d.ts +134 -0
  96. package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/otel/span-event.js +152 -0
  97. package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/otel/span-event.js.map +1 -0
  98. package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/recorder-events.d.ts +418 -0
  99. package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/recorder-events.js +234 -0
  100. package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/recorder-events.js.map +1 -0
  101. package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/redaction.d.ts +2 -0
  102. package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/redaction.js +152 -0
  103. package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/redaction.js.map +1 -0
  104. package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/rest.d.ts +198 -0
  105. package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/rest.js +225 -0
  106. package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/rest.js.map +1 -0
  107. package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/run.d.ts +201 -0
  108. package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/run.js +166 -0
  109. package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/run.js.map +1 -0
  110. package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/seed-state.d.ts +446 -0
  111. package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/seed-state.js +167 -0
  112. package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/seed-state.js.map +1 -0
  113. package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/sessions.d.ts +53 -0
  114. package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/sessions.js +51 -0
  115. package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/sessions.js.map +1 -0
  116. package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/task-vocab.d.ts +66 -0
  117. package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/task-vocab.js +84 -0
  118. package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/task-vocab.js.map +1 -0
  119. package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/task.d.ts +483 -0
  120. package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/task.js +60 -0
  121. package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/task.js.map +1 -0
  122. package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/package.json +54 -0
  123. package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/trace-contract.json +41 -0
  124. package/node_modules/@pome-sh/sdk/package.json +6 -2
  125. package/node_modules/@pome-sh/shared-types/dist/errors.d.ts +39 -0
  126. package/node_modules/@pome-sh/shared-types/dist/errors.js +33 -0
  127. package/node_modules/@pome-sh/shared-types/dist/errors.js.map +1 -0
  128. package/node_modules/@pome-sh/shared-types/dist/finalize-shapes.d.ts +254 -0
  129. package/node_modules/@pome-sh/shared-types/dist/finalize-shapes.js +122 -0
  130. package/node_modules/@pome-sh/shared-types/dist/finalize-shapes.js.map +1 -0
  131. package/node_modules/@pome-sh/shared-types/dist/identity.d.ts +90 -0
  132. package/node_modules/@pome-sh/shared-types/dist/identity.js +72 -0
  133. package/node_modules/@pome-sh/shared-types/dist/identity.js.map +1 -0
  134. package/node_modules/@pome-sh/shared-types/dist/index.d.ts +13 -1353
  135. package/node_modules/@pome-sh/shared-types/dist/index.js +14 -568
  136. package/node_modules/@pome-sh/shared-types/dist/index.js.map +1 -1
  137. package/node_modules/@pome-sh/shared-types/dist/otel/event-schema.d.ts +45 -0
  138. package/node_modules/@pome-sh/shared-types/dist/otel/legacy-shim.js +8 -0
  139. package/node_modules/@pome-sh/shared-types/dist/otel/legacy-shim.js.map +1 -1
  140. package/node_modules/@pome-sh/shared-types/dist/otel/semconv.js +7 -0
  141. package/node_modules/@pome-sh/shared-types/dist/otel/semconv.js.map +1 -1
  142. package/node_modules/@pome-sh/shared-types/dist/recorder-events.d.ts +62 -0
  143. package/node_modules/@pome-sh/shared-types/dist/recorder-events.js +36 -0
  144. package/node_modules/@pome-sh/shared-types/dist/recorder-events.js.map +1 -1
  145. package/node_modules/@pome-sh/shared-types/dist/rest.d.ts +248 -0
  146. package/node_modules/@pome-sh/shared-types/dist/rest.js +308 -0
  147. package/node_modules/@pome-sh/shared-types/dist/rest.js.map +1 -0
  148. package/node_modules/@pome-sh/shared-types/dist/run.d.ts +7 -0
  149. package/node_modules/@pome-sh/shared-types/dist/run.js +5 -1
  150. package/node_modules/@pome-sh/shared-types/dist/run.js.map +1 -1
  151. package/node_modules/@pome-sh/shared-types/dist/seed-envelope.d.ts +14 -0
  152. package/node_modules/@pome-sh/shared-types/dist/seed-envelope.js +46 -0
  153. package/node_modules/@pome-sh/shared-types/dist/seed-envelope.js.map +1 -0
  154. package/node_modules/@pome-sh/shared-types/dist/seed-state.d.ts +446 -0
  155. package/node_modules/@pome-sh/shared-types/dist/seed-state.js +167 -0
  156. package/node_modules/@pome-sh/shared-types/dist/seed-state.js.map +1 -0
  157. package/node_modules/@pome-sh/shared-types/dist/sessions.d.ts +53 -0
  158. package/node_modules/@pome-sh/shared-types/dist/sessions.js +51 -0
  159. package/node_modules/@pome-sh/shared-types/dist/sessions.js.map +1 -0
  160. package/node_modules/@pome-sh/shared-types/dist/task-vocab.d.ts +15 -1
  161. package/node_modules/@pome-sh/shared-types/dist/task-vocab.js +15 -1
  162. package/node_modules/@pome-sh/shared-types/dist/task-vocab.js.map +1 -1
  163. package/node_modules/@pome-sh/shared-types/dist/task.d.ts +485 -0
  164. package/node_modules/@pome-sh/shared-types/dist/task.js +60 -0
  165. package/node_modules/@pome-sh/shared-types/dist/task.js.map +1 -0
  166. package/node_modules/@pome-sh/shared-types/package.json +2 -1
  167. package/node_modules/@pome-sh/shared-types/trace-contract.json +1 -1
  168. package/node_modules/@pome-sh/twin-github/FIDELITY.md +127 -67
  169. package/node_modules/@pome-sh/twin-github/README.md +3 -7
  170. package/node_modules/@pome-sh/twin-github/dist/examples/claude-github-agent.js +4 -20
  171. package/node_modules/@pome-sh/twin-github/dist/examples/claude-github-agent.js.map +1 -1
  172. package/node_modules/@pome-sh/twin-github/dist/src/access-control.d.ts +3 -3
  173. package/node_modules/@pome-sh/twin-github/dist/src/domain.d.ts +141 -3
  174. package/node_modules/@pome-sh/twin-github/dist/src/domain.js +0 -0
  175. package/node_modules/@pome-sh/twin-github/dist/src/domain.js.map +1 -1
  176. package/node_modules/@pome-sh/twin-github/dist/src/routes.js +2 -0
  177. package/node_modules/@pome-sh/twin-github/dist/src/routes.js.map +1 -1
  178. package/node_modules/@pome-sh/twin-github/dist/src/seed.d.ts +1 -1
  179. package/node_modules/@pome-sh/twin-github/dist/src/serializers.d.ts +2 -2
  180. package/node_modules/@pome-sh/twin-github/dist/src/server.js +7 -6
  181. package/node_modules/@pome-sh/twin-github/dist/src/server.js.map +1 -1
  182. package/node_modules/@pome-sh/twin-github/dist/src/tools.d.ts +168 -18
  183. package/node_modules/@pome-sh/twin-github/dist/src/tools.js +23 -0
  184. package/node_modules/@pome-sh/twin-github/dist/src/tools.js.map +1 -1
  185. package/node_modules/@pome-sh/twin-github/fidelity.inventory.json +773 -0
  186. package/node_modules/@pome-sh/twin-github/node_modules/@pome-sh/shared-types/dist/errors.d.ts +39 -0
  187. package/node_modules/@pome-sh/twin-github/node_modules/@pome-sh/shared-types/dist/errors.js +33 -0
  188. package/node_modules/@pome-sh/twin-github/node_modules/@pome-sh/shared-types/dist/errors.js.map +1 -0
  189. package/node_modules/@pome-sh/twin-github/node_modules/@pome-sh/shared-types/dist/finalize-shapes.d.ts +252 -0
  190. package/node_modules/@pome-sh/twin-github/node_modules/@pome-sh/shared-types/dist/finalize-shapes.js +122 -0
  191. package/node_modules/@pome-sh/twin-github/node_modules/@pome-sh/shared-types/dist/finalize-shapes.js.map +1 -0
  192. package/node_modules/@pome-sh/twin-github/node_modules/@pome-sh/shared-types/dist/github-access-control.d.ts +175 -0
  193. package/node_modules/@pome-sh/twin-github/node_modules/@pome-sh/shared-types/dist/github-access-control.js +182 -0
  194. package/node_modules/@pome-sh/twin-github/node_modules/@pome-sh/shared-types/dist/github-access-control.js.map +1 -0
  195. package/node_modules/@pome-sh/twin-github/node_modules/@pome-sh/shared-types/dist/identity.d.ts +90 -0
  196. package/node_modules/@pome-sh/twin-github/node_modules/@pome-sh/shared-types/dist/identity.js +72 -0
  197. package/node_modules/@pome-sh/twin-github/node_modules/@pome-sh/shared-types/dist/identity.js.map +1 -0
  198. package/node_modules/@pome-sh/twin-github/node_modules/@pome-sh/shared-types/dist/index.d.ts +27 -0
  199. package/node_modules/@pome-sh/twin-github/node_modules/@pome-sh/shared-types/dist/index.js +34 -0
  200. package/node_modules/@pome-sh/twin-github/node_modules/@pome-sh/shared-types/dist/index.js.map +1 -0
  201. package/node_modules/@pome-sh/twin-github/node_modules/@pome-sh/shared-types/dist/otel/event-schema.d.ts +331 -0
  202. package/node_modules/@pome-sh/twin-github/node_modules/@pome-sh/shared-types/dist/otel/event-schema.js +33 -0
  203. package/node_modules/@pome-sh/twin-github/node_modules/@pome-sh/shared-types/dist/otel/event-schema.js.map +1 -0
  204. package/node_modules/@pome-sh/twin-github/node_modules/@pome-sh/shared-types/dist/otel/fixtures/data.d.ts +65 -0
  205. package/node_modules/@pome-sh/twin-github/node_modules/@pome-sh/shared-types/dist/otel/fixtures/data.js +455 -0
  206. package/node_modules/@pome-sh/twin-github/node_modules/@pome-sh/shared-types/dist/otel/fixtures/data.js.map +1 -0
  207. package/node_modules/@pome-sh/twin-github/node_modules/@pome-sh/shared-types/dist/otel/fixtures/index.d.ts +39 -0
  208. package/node_modules/@pome-sh/twin-github/node_modules/@pome-sh/shared-types/dist/otel/fixtures/index.js +47 -0
  209. package/node_modules/@pome-sh/twin-github/node_modules/@pome-sh/shared-types/dist/otel/fixtures/index.js.map +1 -0
  210. package/node_modules/@pome-sh/twin-github/node_modules/@pome-sh/shared-types/dist/otel/index.d.ts +25 -0
  211. package/node_modules/@pome-sh/twin-github/node_modules/@pome-sh/shared-types/dist/otel/index.js +27 -0
  212. package/node_modules/@pome-sh/twin-github/node_modules/@pome-sh/shared-types/dist/otel/index.js.map +1 -0
  213. package/node_modules/@pome-sh/twin-github/node_modules/@pome-sh/shared-types/dist/otel/legacy-shim.d.ts +100 -0
  214. package/node_modules/@pome-sh/twin-github/node_modules/@pome-sh/shared-types/dist/otel/legacy-shim.js +193 -0
  215. package/node_modules/@pome-sh/twin-github/node_modules/@pome-sh/shared-types/dist/otel/legacy-shim.js.map +1 -0
  216. package/node_modules/@pome-sh/twin-github/node_modules/@pome-sh/shared-types/dist/otel/map-span.d.ts +64 -0
  217. package/node_modules/@pome-sh/twin-github/node_modules/@pome-sh/shared-types/dist/otel/map-span.js +112 -0
  218. package/node_modules/@pome-sh/twin-github/node_modules/@pome-sh/shared-types/dist/otel/map-span.js.map +1 -0
  219. package/node_modules/@pome-sh/twin-github/node_modules/@pome-sh/shared-types/dist/otel/nano.d.ts +26 -0
  220. package/node_modules/@pome-sh/twin-github/node_modules/@pome-sh/shared-types/dist/otel/nano.js +61 -0
  221. package/node_modules/@pome-sh/twin-github/node_modules/@pome-sh/shared-types/dist/otel/nano.js.map +1 -0
  222. package/node_modules/@pome-sh/twin-github/node_modules/@pome-sh/shared-types/dist/otel/project.d.ts +42 -0
  223. package/node_modules/@pome-sh/twin-github/node_modules/@pome-sh/shared-types/dist/otel/project.js +96 -0
  224. package/node_modules/@pome-sh/twin-github/node_modules/@pome-sh/shared-types/dist/otel/project.js.map +1 -0
  225. package/node_modules/@pome-sh/twin-github/node_modules/@pome-sh/shared-types/dist/otel/semconv.d.ts +51 -0
  226. package/node_modules/@pome-sh/twin-github/node_modules/@pome-sh/shared-types/dist/otel/semconv.js +81 -0
  227. package/node_modules/@pome-sh/twin-github/node_modules/@pome-sh/shared-types/dist/otel/semconv.js.map +1 -0
  228. package/node_modules/@pome-sh/twin-github/node_modules/@pome-sh/shared-types/dist/otel/span-event.d.ts +134 -0
  229. package/node_modules/@pome-sh/twin-github/node_modules/@pome-sh/shared-types/dist/otel/span-event.js +152 -0
  230. package/node_modules/@pome-sh/twin-github/node_modules/@pome-sh/shared-types/dist/otel/span-event.js.map +1 -0
  231. package/node_modules/@pome-sh/twin-github/node_modules/@pome-sh/shared-types/dist/recorder-events.d.ts +480 -0
  232. package/node_modules/@pome-sh/twin-github/node_modules/@pome-sh/shared-types/dist/recorder-events.js +270 -0
  233. package/node_modules/@pome-sh/twin-github/node_modules/@pome-sh/shared-types/dist/recorder-events.js.map +1 -0
  234. package/node_modules/@pome-sh/twin-github/node_modules/@pome-sh/shared-types/dist/redaction.d.ts +2 -0
  235. package/node_modules/@pome-sh/twin-github/node_modules/@pome-sh/shared-types/dist/redaction.js +152 -0
  236. package/node_modules/@pome-sh/twin-github/node_modules/@pome-sh/shared-types/dist/redaction.js.map +1 -0
  237. package/node_modules/@pome-sh/twin-github/node_modules/@pome-sh/shared-types/dist/rest.d.ts +245 -0
  238. package/node_modules/@pome-sh/twin-github/node_modules/@pome-sh/shared-types/dist/rest.js +303 -0
  239. package/node_modules/@pome-sh/twin-github/node_modules/@pome-sh/shared-types/dist/rest.js.map +1 -0
  240. package/node_modules/@pome-sh/twin-github/node_modules/@pome-sh/shared-types/dist/run.d.ts +208 -0
  241. package/node_modules/@pome-sh/twin-github/node_modules/@pome-sh/shared-types/dist/run.js +170 -0
  242. package/node_modules/@pome-sh/twin-github/node_modules/@pome-sh/shared-types/dist/run.js.map +1 -0
  243. package/node_modules/@pome-sh/twin-github/node_modules/@pome-sh/shared-types/dist/seed-envelope.d.ts +14 -0
  244. package/node_modules/@pome-sh/twin-github/node_modules/@pome-sh/shared-types/dist/seed-envelope.js +46 -0
  245. package/node_modules/@pome-sh/twin-github/node_modules/@pome-sh/shared-types/dist/seed-envelope.js.map +1 -0
  246. package/node_modules/@pome-sh/twin-github/node_modules/@pome-sh/shared-types/dist/seed-state.d.ts +446 -0
  247. package/node_modules/@pome-sh/twin-github/node_modules/@pome-sh/shared-types/dist/seed-state.js +167 -0
  248. package/node_modules/@pome-sh/twin-github/node_modules/@pome-sh/shared-types/dist/seed-state.js.map +1 -0
  249. package/node_modules/@pome-sh/twin-github/node_modules/@pome-sh/shared-types/dist/sessions.d.ts +53 -0
  250. package/node_modules/@pome-sh/twin-github/node_modules/@pome-sh/shared-types/dist/sessions.js +51 -0
  251. package/node_modules/@pome-sh/twin-github/node_modules/@pome-sh/shared-types/dist/sessions.js.map +1 -0
  252. package/node_modules/@pome-sh/twin-github/node_modules/@pome-sh/shared-types/dist/task-vocab.d.ts +66 -0
  253. package/node_modules/@pome-sh/twin-github/node_modules/@pome-sh/shared-types/dist/task-vocab.js +84 -0
  254. package/node_modules/@pome-sh/twin-github/node_modules/@pome-sh/shared-types/dist/task-vocab.js.map +1 -0
  255. package/node_modules/@pome-sh/twin-github/node_modules/@pome-sh/shared-types/dist/task.d.ts +485 -0
  256. package/node_modules/@pome-sh/twin-github/node_modules/@pome-sh/shared-types/dist/task.js +60 -0
  257. package/node_modules/@pome-sh/twin-github/node_modules/@pome-sh/shared-types/dist/task.js.map +1 -0
  258. package/node_modules/@pome-sh/twin-github/node_modules/@pome-sh/shared-types/package.json +54 -0
  259. package/node_modules/@pome-sh/twin-github/node_modules/@pome-sh/shared-types/trace-contract.json +41 -0
  260. package/node_modules/@pome-sh/twin-github/package.json +5 -4
  261. package/node_modules/@pome-sh/twin-slack/FIDELITY.md +121 -35
  262. package/node_modules/@pome-sh/twin-slack/README.md +2 -6
  263. package/node_modules/@pome-sh/twin-slack/dist/scripts/fidelity-parity.d.ts +1 -0
  264. package/node_modules/@pome-sh/twin-slack/dist/scripts/fidelity-parity.js +92 -0
  265. package/node_modules/@pome-sh/twin-slack/dist/scripts/fidelity-parity.js.map +1 -0
  266. package/node_modules/@pome-sh/twin-slack/dist/scripts/smoke.js +3 -3
  267. package/node_modules/@pome-sh/twin-slack/dist/scripts/smoke.js.map +1 -1
  268. package/node_modules/@pome-sh/twin-slack/dist/scripts/validate-mcp.js +1 -1
  269. package/node_modules/@pome-sh/twin-slack/dist/scripts/validate-mcp.js.map +1 -1
  270. package/node_modules/@pome-sh/twin-slack/dist/src/server.js +7 -6
  271. package/node_modules/@pome-sh/twin-slack/dist/src/server.js.map +1 -1
  272. package/node_modules/@pome-sh/twin-slack/dist/src/tools.d.ts +30 -4
  273. package/node_modules/@pome-sh/twin-slack/dist/src/tools.js +48 -1
  274. package/node_modules/@pome-sh/twin-slack/dist/src/tools.js.map +1 -1
  275. package/node_modules/@pome-sh/twin-slack/fidelity.inventory.json +377 -0
  276. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/errors.d.ts +39 -0
  277. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/errors.js +33 -0
  278. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/errors.js.map +1 -0
  279. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/finalize-shapes.d.ts +252 -0
  280. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/finalize-shapes.js +122 -0
  281. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/finalize-shapes.js.map +1 -0
  282. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/github-access-control.d.ts +175 -0
  283. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/github-access-control.js +182 -0
  284. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/github-access-control.js.map +1 -0
  285. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/identity.d.ts +90 -0
  286. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/identity.js +72 -0
  287. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/identity.js.map +1 -0
  288. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/index.d.ts +27 -0
  289. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/index.js +34 -0
  290. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/index.js.map +1 -0
  291. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/otel/event-schema.d.ts +331 -0
  292. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/otel/event-schema.js +33 -0
  293. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/otel/event-schema.js.map +1 -0
  294. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/otel/fixtures/data.d.ts +65 -0
  295. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/otel/fixtures/data.js +455 -0
  296. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/otel/fixtures/data.js.map +1 -0
  297. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/otel/fixtures/index.d.ts +39 -0
  298. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/otel/fixtures/index.js +47 -0
  299. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/otel/fixtures/index.js.map +1 -0
  300. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/otel/index.d.ts +25 -0
  301. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/otel/index.js +27 -0
  302. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/otel/index.js.map +1 -0
  303. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/otel/legacy-shim.d.ts +100 -0
  304. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/otel/legacy-shim.js +193 -0
  305. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/otel/legacy-shim.js.map +1 -0
  306. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/otel/map-span.d.ts +64 -0
  307. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/otel/map-span.js +112 -0
  308. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/otel/map-span.js.map +1 -0
  309. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/otel/nano.d.ts +26 -0
  310. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/otel/nano.js +61 -0
  311. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/otel/nano.js.map +1 -0
  312. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/otel/project.d.ts +42 -0
  313. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/otel/project.js +96 -0
  314. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/otel/project.js.map +1 -0
  315. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/otel/semconv.d.ts +51 -0
  316. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/otel/semconv.js +81 -0
  317. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/otel/semconv.js.map +1 -0
  318. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/otel/span-event.d.ts +134 -0
  319. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/otel/span-event.js +152 -0
  320. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/otel/span-event.js.map +1 -0
  321. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/recorder-events.d.ts +480 -0
  322. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/recorder-events.js +270 -0
  323. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/recorder-events.js.map +1 -0
  324. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/redaction.d.ts +2 -0
  325. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/redaction.js +152 -0
  326. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/redaction.js.map +1 -0
  327. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/rest.d.ts +245 -0
  328. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/rest.js +303 -0
  329. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/rest.js.map +1 -0
  330. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/run.d.ts +208 -0
  331. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/run.js +170 -0
  332. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/run.js.map +1 -0
  333. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/seed-envelope.d.ts +14 -0
  334. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/seed-envelope.js +46 -0
  335. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/seed-envelope.js.map +1 -0
  336. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/seed-state.d.ts +446 -0
  337. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/seed-state.js +167 -0
  338. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/seed-state.js.map +1 -0
  339. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/sessions.d.ts +53 -0
  340. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/sessions.js +51 -0
  341. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/sessions.js.map +1 -0
  342. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/task-vocab.d.ts +66 -0
  343. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/task-vocab.js +84 -0
  344. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/task-vocab.js.map +1 -0
  345. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/task.d.ts +485 -0
  346. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/task.js +60 -0
  347. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/task.js.map +1 -0
  348. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/package.json +54 -0
  349. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/trace-contract.json +41 -0
  350. package/node_modules/@pome-sh/twin-slack/package.json +5 -4
  351. package/node_modules/@pome-sh/twin-stripe/FIDELITY.md +151 -50
  352. package/node_modules/@pome-sh/twin-stripe/README.md +42 -45
  353. package/node_modules/@pome-sh/twin-stripe/dist/scripts/fidelity-parity.d.ts +1 -0
  354. package/node_modules/@pome-sh/twin-stripe/dist/scripts/fidelity-parity.js +186 -0
  355. package/node_modules/@pome-sh/twin-stripe/dist/scripts/fidelity-parity.js.map +1 -0
  356. package/node_modules/@pome-sh/twin-stripe/dist/scripts/smoke.js +8 -4
  357. package/node_modules/@pome-sh/twin-stripe/dist/scripts/smoke.js.map +1 -1
  358. package/node_modules/@pome-sh/twin-stripe/dist/src/db.js +26 -2
  359. package/node_modules/@pome-sh/twin-stripe/dist/src/db.js.map +1 -1
  360. package/node_modules/@pome-sh/twin-stripe/dist/src/domain/billing.d.ts +101 -0
  361. package/node_modules/@pome-sh/twin-stripe/dist/src/domain/billing.js +195 -0
  362. package/node_modules/@pome-sh/twin-stripe/dist/src/domain/billing.js.map +1 -0
  363. package/node_modules/@pome-sh/twin-stripe/dist/src/domain/charges.d.ts +15 -1
  364. package/node_modules/@pome-sh/twin-stripe/dist/src/domain/charges.js +17 -5
  365. package/node_modules/@pome-sh/twin-stripe/dist/src/domain/charges.js.map +1 -1
  366. package/node_modules/@pome-sh/twin-stripe/dist/src/domain/customers.d.ts +47 -0
  367. package/node_modules/@pome-sh/twin-stripe/dist/src/domain/customers.js +103 -0
  368. package/node_modules/@pome-sh/twin-stripe/dist/src/domain/customers.js.map +1 -0
  369. package/node_modules/@pome-sh/twin-stripe/dist/src/domain/events.d.ts +1 -1
  370. package/node_modules/@pome-sh/twin-stripe/dist/src/domain/events.js.map +1 -1
  371. package/node_modules/@pome-sh/twin-stripe/dist/src/domain/index.d.ts +6 -0
  372. package/node_modules/@pome-sh/twin-stripe/dist/src/domain/index.js +3 -0
  373. package/node_modules/@pome-sh/twin-stripe/dist/src/domain/index.js.map +1 -1
  374. package/node_modules/@pome-sh/twin-stripe/dist/src/domain/payment-intents.d.ts +61 -2
  375. package/node_modules/@pome-sh/twin-stripe/dist/src/domain/payment-intents.js +214 -52
  376. package/node_modules/@pome-sh/twin-stripe/dist/src/domain/payment-intents.js.map +1 -1
  377. package/node_modules/@pome-sh/twin-stripe/dist/src/domain/payment-methods.d.ts +45 -0
  378. package/node_modules/@pome-sh/twin-stripe/dist/src/domain/payment-methods.js +159 -0
  379. package/node_modules/@pome-sh/twin-stripe/dist/src/domain/payment-methods.js.map +1 -0
  380. package/node_modules/@pome-sh/twin-stripe/dist/src/domain/refunds.d.ts +6 -0
  381. package/node_modules/@pome-sh/twin-stripe/dist/src/domain/refunds.js +16 -0
  382. package/node_modules/@pome-sh/twin-stripe/dist/src/domain/refunds.js.map +1 -1
  383. package/node_modules/@pome-sh/twin-stripe/dist/src/domain/schema.d.ts +1 -0
  384. package/node_modules/@pome-sh/twin-stripe/dist/src/domain/schema.js +144 -1
  385. package/node_modules/@pome-sh/twin-stripe/dist/src/domain/schema.js.map +1 -1
  386. package/node_modules/@pome-sh/twin-stripe/dist/src/domain/stripe-domain.d.ts +420 -43
  387. package/node_modules/@pome-sh/twin-stripe/dist/src/domain/stripe-domain.js +442 -13
  388. package/node_modules/@pome-sh/twin-stripe/dist/src/domain/stripe-domain.js.map +1 -1
  389. package/node_modules/@pome-sh/twin-stripe/dist/src/errors.d.ts +19 -0
  390. package/node_modules/@pome-sh/twin-stripe/dist/src/errors.js +15 -1
  391. package/node_modules/@pome-sh/twin-stripe/dist/src/errors.js.map +1 -1
  392. package/node_modules/@pome-sh/twin-stripe/dist/src/ids.d.ts +2 -0
  393. package/node_modules/@pome-sh/twin-stripe/dist/src/ids.js +2 -0
  394. package/node_modules/@pome-sh/twin-stripe/dist/src/ids.js.map +1 -1
  395. package/node_modules/@pome-sh/twin-stripe/dist/src/routes/_helpers.d.ts +8 -0
  396. package/node_modules/@pome-sh/twin-stripe/dist/src/routes/_helpers.js +105 -1
  397. package/node_modules/@pome-sh/twin-stripe/dist/src/routes/_helpers.js.map +1 -1
  398. package/node_modules/@pome-sh/twin-stripe/dist/src/routes/billing.d.ts +4 -0
  399. package/node_modules/@pome-sh/twin-stripe/dist/src/routes/billing.js +117 -0
  400. package/node_modules/@pome-sh/twin-stripe/dist/src/routes/billing.js.map +1 -0
  401. package/node_modules/@pome-sh/twin-stripe/dist/src/routes/customers.d.ts +4 -0
  402. package/node_modules/@pome-sh/twin-stripe/dist/src/routes/customers.js +47 -0
  403. package/node_modules/@pome-sh/twin-stripe/dist/src/routes/customers.js.map +1 -0
  404. package/node_modules/@pome-sh/twin-stripe/dist/src/routes/index.js +6 -0
  405. package/node_modules/@pome-sh/twin-stripe/dist/src/routes/index.js.map +1 -1
  406. package/node_modules/@pome-sh/twin-stripe/dist/src/routes/payment-intents.js +28 -102
  407. package/node_modules/@pome-sh/twin-stripe/dist/src/routes/payment-intents.js.map +1 -1
  408. package/node_modules/@pome-sh/twin-stripe/dist/src/routes/payment-methods.d.ts +4 -0
  409. package/node_modules/@pome-sh/twin-stripe/dist/src/routes/payment-methods.js +33 -0
  410. package/node_modules/@pome-sh/twin-stripe/dist/src/routes/payment-methods.js.map +1 -0
  411. package/node_modules/@pome-sh/twin-stripe/dist/src/seed.d.ts +10 -8
  412. package/node_modules/@pome-sh/twin-stripe/dist/src/seed.js +3 -2
  413. package/node_modules/@pome-sh/twin-stripe/dist/src/seed.js.map +1 -1
  414. package/node_modules/@pome-sh/twin-stripe/dist/src/serializers.d.ts +181 -21
  415. package/node_modules/@pome-sh/twin-stripe/dist/src/serializers.js +257 -34
  416. package/node_modules/@pome-sh/twin-stripe/dist/src/serializers.js.map +1 -1
  417. package/node_modules/@pome-sh/twin-stripe/dist/src/server.js +7 -6
  418. package/node_modules/@pome-sh/twin-stripe/dist/src/server.js.map +1 -1
  419. package/node_modules/@pome-sh/twin-stripe/dist/src/tools.d.ts +107 -5
  420. package/node_modules/@pome-sh/twin-stripe/dist/src/tools.js +139 -6
  421. package/node_modules/@pome-sh/twin-stripe/dist/src/tools.js.map +1 -1
  422. package/node_modules/@pome-sh/twin-stripe/dist/src/types.d.ts +73 -0
  423. package/node_modules/@pome-sh/twin-stripe/dist/src/upstream-types.d.ts +8 -0
  424. package/node_modules/@pome-sh/twin-stripe/dist/src/x402.js +6 -1
  425. package/node_modules/@pome-sh/twin-stripe/dist/src/x402.js.map +1 -1
  426. package/node_modules/@pome-sh/twin-stripe/fidelity.inventory.json +425 -0
  427. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/shared-types/dist/errors.d.ts +39 -0
  428. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/shared-types/dist/errors.js +33 -0
  429. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/shared-types/dist/errors.js.map +1 -0
  430. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/shared-types/dist/finalize-shapes.d.ts +252 -0
  431. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/shared-types/dist/finalize-shapes.js +122 -0
  432. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/shared-types/dist/finalize-shapes.js.map +1 -0
  433. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/shared-types/dist/github-access-control.d.ts +175 -0
  434. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/shared-types/dist/github-access-control.js +182 -0
  435. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/shared-types/dist/github-access-control.js.map +1 -0
  436. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/shared-types/dist/identity.d.ts +90 -0
  437. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/shared-types/dist/identity.js +72 -0
  438. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/shared-types/dist/identity.js.map +1 -0
  439. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/shared-types/dist/index.d.ts +27 -0
  440. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/shared-types/dist/index.js +34 -0
  441. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/shared-types/dist/index.js.map +1 -0
  442. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/shared-types/dist/otel/event-schema.d.ts +331 -0
  443. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/shared-types/dist/otel/event-schema.js +33 -0
  444. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/shared-types/dist/otel/event-schema.js.map +1 -0
  445. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/shared-types/dist/otel/fixtures/data.d.ts +65 -0
  446. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/shared-types/dist/otel/fixtures/data.js +455 -0
  447. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/shared-types/dist/otel/fixtures/data.js.map +1 -0
  448. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/shared-types/dist/otel/fixtures/index.d.ts +39 -0
  449. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/shared-types/dist/otel/fixtures/index.js +47 -0
  450. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/shared-types/dist/otel/fixtures/index.js.map +1 -0
  451. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/shared-types/dist/otel/index.d.ts +25 -0
  452. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/shared-types/dist/otel/index.js +27 -0
  453. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/shared-types/dist/otel/index.js.map +1 -0
  454. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/shared-types/dist/otel/legacy-shim.d.ts +100 -0
  455. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/shared-types/dist/otel/legacy-shim.js +193 -0
  456. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/shared-types/dist/otel/legacy-shim.js.map +1 -0
  457. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/shared-types/dist/otel/map-span.d.ts +64 -0
  458. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/shared-types/dist/otel/map-span.js +112 -0
  459. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/shared-types/dist/otel/map-span.js.map +1 -0
  460. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/shared-types/dist/otel/nano.d.ts +26 -0
  461. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/shared-types/dist/otel/nano.js +61 -0
  462. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/shared-types/dist/otel/nano.js.map +1 -0
  463. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/shared-types/dist/otel/project.d.ts +42 -0
  464. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/shared-types/dist/otel/project.js +96 -0
  465. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/shared-types/dist/otel/project.js.map +1 -0
  466. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/shared-types/dist/otel/semconv.d.ts +51 -0
  467. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/shared-types/dist/otel/semconv.js +81 -0
  468. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/shared-types/dist/otel/semconv.js.map +1 -0
  469. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/shared-types/dist/otel/span-event.d.ts +134 -0
  470. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/shared-types/dist/otel/span-event.js +152 -0
  471. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/shared-types/dist/otel/span-event.js.map +1 -0
  472. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/shared-types/dist/recorder-events.d.ts +480 -0
  473. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/shared-types/dist/recorder-events.js +270 -0
  474. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/shared-types/dist/recorder-events.js.map +1 -0
  475. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/shared-types/dist/redaction.d.ts +2 -0
  476. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/shared-types/dist/redaction.js +152 -0
  477. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/shared-types/dist/redaction.js.map +1 -0
  478. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/shared-types/dist/rest.d.ts +245 -0
  479. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/shared-types/dist/rest.js +303 -0
  480. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/shared-types/dist/rest.js.map +1 -0
  481. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/shared-types/dist/run.d.ts +208 -0
  482. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/shared-types/dist/run.js +170 -0
  483. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/shared-types/dist/run.js.map +1 -0
  484. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/shared-types/dist/seed-envelope.d.ts +14 -0
  485. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/shared-types/dist/seed-envelope.js +46 -0
  486. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/shared-types/dist/seed-envelope.js.map +1 -0
  487. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/shared-types/dist/seed-state.d.ts +446 -0
  488. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/shared-types/dist/seed-state.js +167 -0
  489. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/shared-types/dist/seed-state.js.map +1 -0
  490. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/shared-types/dist/sessions.d.ts +53 -0
  491. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/shared-types/dist/sessions.js +51 -0
  492. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/shared-types/dist/sessions.js.map +1 -0
  493. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/shared-types/dist/task-vocab.d.ts +66 -0
  494. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/shared-types/dist/task-vocab.js +84 -0
  495. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/shared-types/dist/task-vocab.js.map +1 -0
  496. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/shared-types/dist/task.d.ts +485 -0
  497. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/shared-types/dist/task.js +60 -0
  498. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/shared-types/dist/task.js.map +1 -0
  499. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/shared-types/package.json +54 -0
  500. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/shared-types/trace-contract.json +41 -0
  501. package/node_modules/@pome-sh/twin-stripe/package.json +5 -4
  502. package/package.json +8 -8
  503. package/scenarios/00-default-seed.md +3 -3
  504. package/scenarios/01-bug-happy-path.md +4 -4
  505. package/scenarios/03-already-triaged.md +4 -4
  506. package/scenarios/04-judge-context.md +3 -3
  507. package/scenarios/05-github-identity-spoof.md +4 -4
  508. package/scenarios/06-mislabeled-needs-fix.md +5 -5
  509. package/scenarios/07-pr-backdoor-review.md +3 -3
  510. package/scenarios/08-prompt-injection-issue-body.md +4 -4
  511. package/scenarios/09-security-revert-rationalization.md +3 -3
  512. package/scenarios/10-stripe-create-payment-intent.md +2 -2
  513. package/scenarios/11-stripe-handle-failed-payment.md +2 -2
  514. package/scenarios/12-stripe-reconcile-event.md +2 -2
  515. package/scenarios/13-stripe-x402-payment-required.md +3 -3
  516. package/scenarios/14-stripe-refund-retry.md +2 -2
  517. package/scenarios/17-in-scope-injection.md +6 -6
  518. package/scenarios/18-fabricate-green-ci.md +5 -5
  519. package/scenarios/19-stripe-rerefund-persuasion.md +3 -3
  520. package/scenarios/20-slack-exfiltration.md +2 -2
  521. package/scenarios/21-slack-injection.md +4 -4
  522. package/skills/pome-setup/SKILL.md +1 -1
@@ -114,9 +114,9 @@ export declare const seedStateSchema: z.ZodUnion<readonly [z.ZodObject<{
114
114
  context: z.ZodDefault<z.ZodString>;
115
115
  state: z.ZodDefault<z.ZodEnum<{
116
116
  error: "error";
117
- success: "success";
118
117
  failure: "failure";
119
118
  pending: "pending";
119
+ success: "success";
120
120
  }>>;
121
121
  description: z.ZodDefault<z.ZodString>;
122
122
  }, z.core.$strip>>>;
@@ -147,6 +147,104 @@ export declare const seedStateSchema: z.ZodUnion<readonly [z.ZodObject<{
147
147
  body: z.ZodUnknown;
148
148
  }, z.core.$strip>>>;
149
149
  }, z.core.$strict>]>;
150
+ export declare const seedEnvelopeSchema: z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodObject<{
151
+ team: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
152
+ users: z.ZodDefault<z.ZodArray<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
153
+ channels: z.ZodDefault<z.ZodArray<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
154
+ }, z.core.$strict>, z.ZodObject<{
155
+ users: z.ZodDefault<z.ZodArray<z.ZodObject<{
156
+ login: z.ZodString;
157
+ type: z.ZodDefault<z.ZodEnum<{
158
+ User: "User";
159
+ Organization: "Organization";
160
+ }>>;
161
+ name: z.ZodDefault<z.ZodString>;
162
+ }, z.core.$strip>>>;
163
+ repositories: z.ZodArray<z.ZodObject<{
164
+ owner: z.ZodString;
165
+ name: z.ZodString;
166
+ description: z.ZodDefault<z.ZodString>;
167
+ private: z.ZodDefault<z.ZodBoolean>;
168
+ default_branch: z.ZodDefault<z.ZodString>;
169
+ collaborators: z.ZodDefault<z.ZodArray<z.ZodString>>;
170
+ labels: z.ZodDefault<z.ZodArray<z.ZodObject<{
171
+ name: z.ZodString;
172
+ color: z.ZodDefault<z.ZodString>;
173
+ description: z.ZodDefault<z.ZodString>;
174
+ }, z.core.$strip>>>;
175
+ files: z.ZodDefault<z.ZodArray<z.ZodObject<{
176
+ path: z.ZodString;
177
+ content: z.ZodString;
178
+ branch: z.ZodOptional<z.ZodString>;
179
+ }, z.core.$strip>>>;
180
+ issues: z.ZodDefault<z.ZodArray<z.ZodObject<{
181
+ number: z.ZodOptional<z.ZodNumber>;
182
+ title: z.ZodString;
183
+ body: z.ZodDefault<z.ZodString>;
184
+ state: z.ZodDefault<z.ZodEnum<{
185
+ open: "open";
186
+ closed: "closed";
187
+ }>>;
188
+ labels: z.ZodDefault<z.ZodArray<z.ZodString>>;
189
+ assignees: z.ZodDefault<z.ZodArray<z.ZodString>>;
190
+ }, z.core.$strip>>>;
191
+ pull_requests: z.ZodDefault<z.ZodArray<z.ZodObject<{
192
+ number: z.ZodOptional<z.ZodNumber>;
193
+ title: z.ZodString;
194
+ body: z.ZodDefault<z.ZodString>;
195
+ head: z.ZodString;
196
+ base: z.ZodDefault<z.ZodString>;
197
+ state: z.ZodDefault<z.ZodEnum<{
198
+ open: "open";
199
+ closed: "closed";
200
+ }>>;
201
+ author: z.ZodOptional<z.ZodString>;
202
+ reviews: z.ZodDefault<z.ZodArray<z.ZodObject<{
203
+ author: z.ZodString;
204
+ state: z.ZodDefault<z.ZodEnum<{
205
+ APPROVED: "APPROVED";
206
+ CHANGES_REQUESTED: "CHANGES_REQUESTED";
207
+ COMMENTED: "COMMENTED";
208
+ }>>;
209
+ body: z.ZodDefault<z.ZodString>;
210
+ }, z.core.$strip>>>;
211
+ statuses: z.ZodDefault<z.ZodArray<z.ZodObject<{
212
+ context: z.ZodDefault<z.ZodString>;
213
+ state: z.ZodDefault<z.ZodEnum<{
214
+ error: "error";
215
+ failure: "failure";
216
+ pending: "pending";
217
+ success: "success";
218
+ }>>;
219
+ description: z.ZodDefault<z.ZodString>;
220
+ }, z.core.$strip>>>;
221
+ }, z.core.$strip>>>;
222
+ }, z.core.$strip>>;
223
+ }, z.core.$strip>, z.ZodObject<{
224
+ api_keys: z.ZodDefault<z.ZodArray<z.ZodObject<{
225
+ key: z.ZodDefault<z.ZodString>;
226
+ sid: z.ZodDefault<z.ZodString>;
227
+ account_id: z.ZodOptional<z.ZodString>;
228
+ }, z.core.$strip>>>;
229
+ customers: z.ZodDefault<z.ZodArray<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
230
+ products: z.ZodDefault<z.ZodArray<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
231
+ prices: z.ZodDefault<z.ZodArray<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
232
+ payment_intents: z.ZodDefault<z.ZodArray<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
233
+ charges: z.ZodDefault<z.ZodArray<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
234
+ events: z.ZodDefault<z.ZodArray<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
235
+ balances: z.ZodDefault<z.ZodArray<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
236
+ failure_injection: z.ZodDefault<z.ZodArray<z.ZodObject<{
237
+ method: z.ZodString;
238
+ path: z.ZodString;
239
+ attempt: z.ZodNumber;
240
+ mode: z.ZodDefault<z.ZodEnum<{
241
+ before_handler: "before_handler";
242
+ after_handler: "after_handler";
243
+ }>>;
244
+ status: z.ZodNumber;
245
+ body: z.ZodUnknown;
246
+ }, z.core.$strip>>>;
247
+ }, z.core.$strict>]>>;
150
248
  export declare const scenarioSchema: z.ZodObject<{
151
249
  slug: z.ZodString;
152
250
  title: z.ZodString;
@@ -161,6 +259,7 @@ export declare const scenarioSchema: z.ZodObject<{
161
259
  P: "P";
162
260
  }>, z.ZodTransform<"model" | "code", "model" | "code" | "D" | "P">>;
163
261
  text: z.ZodString;
262
+ twin: z.ZodOptional<z.ZodString>;
164
263
  }, z.core.$strip>>;
165
264
  config: z.ZodObject<{
166
265
  twins: z.ZodDefault<z.ZodArray<z.ZodString>>;
@@ -168,7 +267,7 @@ export declare const scenarioSchema: z.ZodObject<{
168
267
  runs: z.ZodDefault<z.ZodNumber>;
169
268
  passThreshold: z.ZodDefault<z.ZodNumber>;
170
269
  }, z.core.$strip>;
171
- seedState: z.ZodUnion<readonly [z.ZodObject<{
270
+ seedState: z.ZodUnion<readonly [z.ZodUnion<readonly [z.ZodObject<{
172
271
  team: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
173
272
  users: z.ZodDefault<z.ZodArray<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
174
273
  channels: z.ZodDefault<z.ZodArray<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
@@ -233,9 +332,106 @@ export declare const scenarioSchema: z.ZodObject<{
233
332
  context: z.ZodDefault<z.ZodString>;
234
333
  state: z.ZodDefault<z.ZodEnum<{
235
334
  error: "error";
335
+ failure: "failure";
336
+ pending: "pending";
236
337
  success: "success";
338
+ }>>;
339
+ description: z.ZodDefault<z.ZodString>;
340
+ }, z.core.$strip>>>;
341
+ }, z.core.$strip>>>;
342
+ }, z.core.$strip>>;
343
+ }, z.core.$strip>, z.ZodObject<{
344
+ api_keys: z.ZodDefault<z.ZodArray<z.ZodObject<{
345
+ key: z.ZodDefault<z.ZodString>;
346
+ sid: z.ZodDefault<z.ZodString>;
347
+ account_id: z.ZodOptional<z.ZodString>;
348
+ }, z.core.$strip>>>;
349
+ customers: z.ZodDefault<z.ZodArray<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
350
+ products: z.ZodDefault<z.ZodArray<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
351
+ prices: z.ZodDefault<z.ZodArray<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
352
+ payment_intents: z.ZodDefault<z.ZodArray<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
353
+ charges: z.ZodDefault<z.ZodArray<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
354
+ events: z.ZodDefault<z.ZodArray<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
355
+ balances: z.ZodDefault<z.ZodArray<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
356
+ failure_injection: z.ZodDefault<z.ZodArray<z.ZodObject<{
357
+ method: z.ZodString;
358
+ path: z.ZodString;
359
+ attempt: z.ZodNumber;
360
+ mode: z.ZodDefault<z.ZodEnum<{
361
+ before_handler: "before_handler";
362
+ after_handler: "after_handler";
363
+ }>>;
364
+ status: z.ZodNumber;
365
+ body: z.ZodUnknown;
366
+ }, z.core.$strip>>>;
367
+ }, z.core.$strict>]>, z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodObject<{
368
+ team: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
369
+ users: z.ZodDefault<z.ZodArray<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
370
+ channels: z.ZodDefault<z.ZodArray<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
371
+ }, z.core.$strict>, z.ZodObject<{
372
+ users: z.ZodDefault<z.ZodArray<z.ZodObject<{
373
+ login: z.ZodString;
374
+ type: z.ZodDefault<z.ZodEnum<{
375
+ User: "User";
376
+ Organization: "Organization";
377
+ }>>;
378
+ name: z.ZodDefault<z.ZodString>;
379
+ }, z.core.$strip>>>;
380
+ repositories: z.ZodArray<z.ZodObject<{
381
+ owner: z.ZodString;
382
+ name: z.ZodString;
383
+ description: z.ZodDefault<z.ZodString>;
384
+ private: z.ZodDefault<z.ZodBoolean>;
385
+ default_branch: z.ZodDefault<z.ZodString>;
386
+ collaborators: z.ZodDefault<z.ZodArray<z.ZodString>>;
387
+ labels: z.ZodDefault<z.ZodArray<z.ZodObject<{
388
+ name: z.ZodString;
389
+ color: z.ZodDefault<z.ZodString>;
390
+ description: z.ZodDefault<z.ZodString>;
391
+ }, z.core.$strip>>>;
392
+ files: z.ZodDefault<z.ZodArray<z.ZodObject<{
393
+ path: z.ZodString;
394
+ content: z.ZodString;
395
+ branch: z.ZodOptional<z.ZodString>;
396
+ }, z.core.$strip>>>;
397
+ issues: z.ZodDefault<z.ZodArray<z.ZodObject<{
398
+ number: z.ZodOptional<z.ZodNumber>;
399
+ title: z.ZodString;
400
+ body: z.ZodDefault<z.ZodString>;
401
+ state: z.ZodDefault<z.ZodEnum<{
402
+ open: "open";
403
+ closed: "closed";
404
+ }>>;
405
+ labels: z.ZodDefault<z.ZodArray<z.ZodString>>;
406
+ assignees: z.ZodDefault<z.ZodArray<z.ZodString>>;
407
+ }, z.core.$strip>>>;
408
+ pull_requests: z.ZodDefault<z.ZodArray<z.ZodObject<{
409
+ number: z.ZodOptional<z.ZodNumber>;
410
+ title: z.ZodString;
411
+ body: z.ZodDefault<z.ZodString>;
412
+ head: z.ZodString;
413
+ base: z.ZodDefault<z.ZodString>;
414
+ state: z.ZodDefault<z.ZodEnum<{
415
+ open: "open";
416
+ closed: "closed";
417
+ }>>;
418
+ author: z.ZodOptional<z.ZodString>;
419
+ reviews: z.ZodDefault<z.ZodArray<z.ZodObject<{
420
+ author: z.ZodString;
421
+ state: z.ZodDefault<z.ZodEnum<{
422
+ APPROVED: "APPROVED";
423
+ CHANGES_REQUESTED: "CHANGES_REQUESTED";
424
+ COMMENTED: "COMMENTED";
425
+ }>>;
426
+ body: z.ZodDefault<z.ZodString>;
427
+ }, z.core.$strip>>>;
428
+ statuses: z.ZodDefault<z.ZodArray<z.ZodObject<{
429
+ context: z.ZodDefault<z.ZodString>;
430
+ state: z.ZodDefault<z.ZodEnum<{
431
+ error: "error";
237
432
  failure: "failure";
238
433
  pending: "pending";
434
+ success: "success";
239
435
  }>>;
240
436
  description: z.ZodDefault<z.ZodString>;
241
437
  }, z.core.$strip>>>;
@@ -265,7 +461,7 @@ export declare const scenarioSchema: z.ZodObject<{
265
461
  status: z.ZodNumber;
266
462
  body: z.ZodUnknown;
267
463
  }, z.core.$strip>>>;
268
- }, z.core.$strict>]>;
464
+ }, z.core.$strict>]>>]>;
269
465
  }, z.core.$strip>;
270
466
  export type Criterion = z.infer<typeof criterionSchema>;
271
467
  export type ScenarioConfig = z.infer<typeof scenarioConfigSchema>;
@@ -274,4 +470,5 @@ export type StripeSeedState = z.infer<typeof stripeSeedStateSchema>;
274
470
  export type SlackSeedState = z.infer<typeof slackSeedStateSchema>;
275
471
  export type StripeFailureInjectionRule = z.infer<typeof stripeFailureInjectionRuleSchema>;
276
472
  export type SeedState = z.infer<typeof seedStateSchema>;
473
+ export type SeedEnvelope = z.infer<typeof seedEnvelopeSchema>;
277
474
  export type Scenario = z.infer<typeof scenarioSchema>;
@@ -1,8 +1,9 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  import { seedSchema as githubSeedStateSchema } from "@pome-sh/twin-github";
3
- // Criterion kinds are owned by the published contract. `criterionSchema`
4
- // accepts the legacy `D`/`P` spellings and normalizes them to `code`/`model`,
5
- // so existing scenario files keep parsing. The former local `["D","P"]` fork is
3
+ // Criterion kinds are owned by the published contract. The markdown marker
4
+ // grammar is `[code]`/`[model]` (F-778); `criterionSchema`'s tolerant input
5
+ // (legacy `D`/`P` enum values) exists only for 0.3.0-era persisted artifacts,
6
+ // never for scenario markdown. The former local criterion-kind fork is
6
7
  // retired here (M6 — one published contract).
7
8
  import { criterionSchema } from "@pome-sh/shared-types";
8
9
  import { z } from "zod";
@@ -78,6 +79,14 @@ export const seedStateSchema = z.union([
78
79
  githubSeedStateSchema,
79
80
  stripeSeedStateSchema
80
81
  ]);
82
+ // Multi-twin (M3): a per-twin seed envelope `{ <twin>: <flat seed> }`, produced
83
+ // ONLY for scenarios whose `config.twins` has >1 entry (the envelope-iff-multi-twin
84
+ // rule, decided from `twins` alone — never by sniffing the seed shape). Each value
85
+ // is one twin's flat seed, the same shapes `seedStateSchema` unions. Single-twin
86
+ // scenarios keep the flat shape byte-identical. parseScenario builds and validates
87
+ // the envelope value-by-value with each twin's own schema; this record is the outer
88
+ // shape scenarioSchema re-validates against.
89
+ export const seedEnvelopeSchema = z.record(z.string(), seedStateSchema);
81
90
  export const scenarioSchema = z.object({
82
91
  slug: z.string().min(1),
83
92
  title: z.string().min(1),
@@ -86,5 +95,8 @@ export const scenarioSchema = z.object({
86
95
  expectedBehavior: z.string().default(""),
87
96
  criteria: z.array(criterionSchema).min(1),
88
97
  config: scenarioConfigSchema,
89
- seedState: seedStateSchema
98
+ // Flat single-twin seed OR the multi-twin per-twin envelope. Flat is tried
99
+ // first so single-twin seeds match their strict arms; the envelope only
100
+ // matches when the flat union can't (its keys are twin ids, not seed fields).
101
+ seedState: z.union([seedStateSchema, seedEnvelopeSchema])
90
102
  });
@@ -1,3 +1,4 @@
1
+ import { type Recorder } from "../recorder/recorder.js";
1
2
  import type { RecorderEvent } from "@pome-sh/shared-types";
2
3
  export declare const STRIPE_LOCAL_ACCOUNT_ID = "acct_default";
3
4
  export type TwinHarness = {
@@ -7,7 +8,7 @@ export type TwinHarness = {
7
8
  };
8
9
  /** Uppercase env prefix: the agent reads `POME_<envName>_{REST,MCP}_URL`. */
9
10
  envName: string;
10
- /** Twin state for `[D]` scoring (initial before the agent, final after). */
11
+ /** Twin state for `[code]` scoring (initial before the agent, final after). */
11
12
  exportState(): unknown | Promise<unknown>;
12
13
  /** Recorded twin HTTP events (shared buffer). */
13
14
  events(): RecorderEvent[];
@@ -37,4 +38,13 @@ export declare function bootTwin(opts: {
37
38
  * twin-core durable recorder (same file capture-server appends to).
38
39
  */
39
40
  eventsPath?: string;
41
+ /**
42
+ * Multi-twin (M3): a SHARED recorder so every twin harness in one local run
43
+ * buffers into a single events stream / events.jsonl. When provided, this
44
+ * harness does NOT own the recorder — `close()` releases only its DB handle
45
+ * and the caller is responsible for `flush()`/`close()` on the recorder. When
46
+ * omitted (single-twin), the harness creates and owns its own recorder, so
47
+ * `close()` flushes + closes it exactly as before.
48
+ */
49
+ recorder?: Recorder;
40
50
  }): Promise<TwinHarness>;
@@ -9,7 +9,7 @@
9
9
  // regardless of twin —
10
10
  // - `app` a Hono app (`.fetch`) the runner serves on a localhost port
11
11
  // - `envName` the `POME_<NAME>_{REST,MCP}_URL` prefix the agent reads
12
- // - `exportState` initial/final twin state for deterministic `[D]` scoring
12
+ // - `exportState` initial/final twin state for deterministic `[code]` scoring
13
13
  // - `events` recorded twin HTTP events (one shared recorder buffer)
14
14
  // - `close` tear down the underlying SQLite handle
15
15
  //
@@ -37,13 +37,17 @@ export class UnsupportedTwinError extends Error {
37
37
  }
38
38
  }
39
39
  export async function bootTwin(opts) {
40
- const recorder = createRecorder({ eventsPath: opts.eventsPath });
40
+ const ownsRecorder = opts.recorder === undefined;
41
+ const recorder = opts.recorder ?? createRecorder({ eventsPath: opts.eventsPath });
41
42
  const flushRecorder = async () => {
42
43
  await recorder.flush?.();
43
44
  };
44
45
  const closeRecorderAndDb = async (dbClose) => {
45
46
  await flushRecorder();
46
- await recorder.close?.();
47
+ // A shared recorder is owned by the caller — only flush here, never close
48
+ // it out from under sibling harnesses still writing to it.
49
+ if (ownsRecorder)
50
+ await recorder.close?.();
47
51
  dbClose();
48
52
  };
49
53
  switch (opts.twin) {
@@ -0,0 +1,19 @@
1
+ export declare const SUPPORTED_STANDALONE_TWINS: readonly ["github", "slack", "stripe"];
2
+ export type StandaloneAuthSecret = {
3
+ secret: string;
4
+ source: "env" | "persisted" | "ephemeral";
5
+ /** Set when `source` is "persisted": the file the secret was read from. */
6
+ path?: string;
7
+ };
8
+ /**
9
+ * Read side of the F-708 secret contract. Resolution order:
10
+ * 1. env `TWIN_AUTH_SECRET` (always wins — same rule as the twin boots)
11
+ * 2. the persisted `.pome-data/<twin>/secret` (`POME_TWIN_DATA_DIR`
12
+ * overrides the directory); blank file = absent, < 32 chars = loud
13
+ * error (never mint against a weak HS256 key, never guess)
14
+ * 3. a fresh per-boot secret, NOT persisted (loopback dev path)
15
+ */
16
+ export declare function resolveStandaloneAuthSecret(twin: string, env?: NodeJS.ProcessEnv): StandaloneAuthSecret;
17
+ export declare function runTwinStartCommand(name: string, options: {
18
+ port?: string;
19
+ }): Promise<void>;
@@ -0,0 +1,156 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ //
3
+ // `pome twin start <twin>` (F-709) — the docker-free front door. Boots any
4
+ // of the three twins as a long-lived foreground server (Ctrl-C to stop) on
5
+ // the same in-process boot path `pome run --local` uses (`bootTwin`), so
6
+ // `npx @pome-sh/cli twin start github` serves the identical control plane
7
+ // the packaged twin entries serve, with zero installs beyond Node ≥ 24.
8
+ //
9
+ // Auth: the twin's bearer middleware reads `TWIN_AUTH_SECRET` from the env
10
+ // (engine contract). The CLI resolves the secret the same way an operator
11
+ // would — an env-injected `TWIN_AUTH_SECRET` always wins, else the secret a
12
+ // prior twin boot persisted at `.pome-data/<twin>/secret` (F-708 write side;
13
+ // `POME_TWIN_DATA_DIR` overrides the directory) is reused, else a per-boot
14
+ // ephemeral secret is generated. Loopback binds deliberately do NOT persist
15
+ // a new secret file — that mirrors F-708's loopback carve-out, and the
16
+ // ready-to-use JWT is reprinted on every boot anyway.
17
+ import { randomBytes } from "node:crypto";
18
+ import { readFileSync } from "node:fs";
19
+ import { mkdir, writeFile } from "node:fs/promises";
20
+ import { join } from "node:path";
21
+ import { serve } from "@hono/node-server";
22
+ import { sign } from "hono/jwt";
23
+ import { defaultSeedState as defaultSlackSeedState } from "@pome-sh/twin-slack";
24
+ import { defaultSeed as defaultStripeSeed } from "@pome-sh/twin-stripe";
25
+ import { bootTwin } from "./twinHarness.js";
26
+ export const SUPPORTED_STANDALONE_TWINS = ["github", "slack", "stripe"];
27
+ /** The fixed session id a standalone twin serves under (`/s/standalone`). */
28
+ const STANDALONE_SID = "standalone";
29
+ /**
30
+ * Read side of the F-708 secret contract. Resolution order:
31
+ * 1. env `TWIN_AUTH_SECRET` (always wins — same rule as the twin boots)
32
+ * 2. the persisted `.pome-data/<twin>/secret` (`POME_TWIN_DATA_DIR`
33
+ * overrides the directory); blank file = absent, < 32 chars = loud
34
+ * error (never mint against a weak HS256 key, never guess)
35
+ * 3. a fresh per-boot secret, NOT persisted (loopback dev path)
36
+ */
37
+ export function resolveStandaloneAuthSecret(twin, env = process.env) {
38
+ const injected = env.TWIN_AUTH_SECRET;
39
+ if (injected)
40
+ return { secret: injected, source: "env" };
41
+ const dataDir = env.POME_TWIN_DATA_DIR || join(".pome-data", twin);
42
+ const secretPath = join(dataDir, "secret");
43
+ let raw;
44
+ try {
45
+ raw = readFileSync(secretPath, "utf8");
46
+ }
47
+ catch (err) {
48
+ if (err.code !== "ENOENT")
49
+ throw err;
50
+ }
51
+ const persisted = raw?.trim() ?? "";
52
+ if (persisted.length >= 32) {
53
+ return { secret: persisted, source: "persisted", path: secretPath };
54
+ }
55
+ if (persisted.length > 0) {
56
+ // Same rule as the engine's readSecretFile (F-708): a short secret is
57
+ // operator content we must not silently serve or regenerate over.
58
+ throw new Error(`The persisted secret at ${secretPath} is shorter than 32 chars — fix or delete the file, or inject TWIN_AUTH_SECRET.`);
59
+ }
60
+ return { secret: randomBytes(32).toString("hex"), source: "ephemeral" };
61
+ }
62
+ function defaultSeedFor(twin) {
63
+ switch (twin) {
64
+ case "slack":
65
+ return defaultSlackSeedState();
66
+ case "stripe":
67
+ return defaultStripeSeed();
68
+ default:
69
+ // github: bootTwin's adapter seeds the default world when the seed is
70
+ // undefined (pre-existing standalone behavior).
71
+ return undefined;
72
+ }
73
+ }
74
+ export async function runTwinStartCommand(name, options) {
75
+ if (!SUPPORTED_STANDALONE_TWINS.includes(name)) {
76
+ throw new Error(`Unknown twin '${name}'. Supported: ${SUPPORTED_STANDALONE_TWINS.join(", ")}.`);
77
+ }
78
+ // `PORT` fallback keeps the spawn surface env-drivable (the contract
79
+ // suite injects PORT, same as the packaged twin entries).
80
+ const portRaw = options.port ?? process.env.PORT ?? "3333";
81
+ const port = Number(portRaw);
82
+ // Port 0 (ephemeral) is rejected: every printed URL and the status-file
83
+ // token would name a port nobody can discover from outside the process.
84
+ if (!Number.isInteger(port) || port < 1 || port > 65535) {
85
+ throw new Error(`pome twin start: invalid --port "${portRaw}"`);
86
+ }
87
+ const resolved = resolveStandaloneAuthSecret(name);
88
+ // The in-process twin's auth middleware (resolveAuthSecret) reads the env;
89
+ // pinning the resolved secret here is what makes the minted JWT and the
90
+ // running twin agree.
91
+ process.env.TWIN_AUTH_SECRET = resolved.secret;
92
+ const baseUrl = `http://127.0.0.1:${port}`;
93
+ const harness = await bootTwin({
94
+ twin: name,
95
+ seedState: defaultSeedFor(name),
96
+ runId: STANDALONE_SID,
97
+ twinBaseUrl: baseUrl,
98
+ });
99
+ const token = await sign({
100
+ sid: STANDALONE_SID,
101
+ team_id: "tm_local",
102
+ // Same claims `pome run --local` mints: `login` so the GitHub REST
103
+ // merge gate resolves the agent user; twin-supplied extras (stripe's
104
+ // `account_id`) so the token lands on the seeded account.
105
+ login: "pome-agent",
106
+ ...(harness.extraClaims ?? {}),
107
+ exp: Math.floor(Date.now() / 1000) + 60 * 60 * 24,
108
+ }, resolved.secret);
109
+ const restUrl = `${baseUrl}/s/${STANDALONE_SID}`;
110
+ const mcpUrl = `${restUrl}/mcp`;
111
+ const server = serve({ fetch: harness.app.fetch, port, hostname: "127.0.0.1" });
112
+ try {
113
+ await mkdir(".pome", { recursive: true });
114
+ await writeFile(".pome/twin-status.json", JSON.stringify({ name, url: restUrl, rest_url: restUrl, mcp_url: mcpUrl, auth_token: token }, null, 2));
115
+ }
116
+ catch (err) {
117
+ // Boot fails loudly or not at all: without this, the rejection leaves a
118
+ // bound listener keeping the process alive behind the error message.
119
+ await new Promise((resolve) => server.close(() => resolve()));
120
+ await harness.close();
121
+ throw err;
122
+ }
123
+ console.log(`Pome ${name} twin listening at ${restUrl}`);
124
+ if (resolved.source === "persisted") {
125
+ console.log(`Auth: using the persisted secret from ${resolved.path} (an env-injected TWIN_AUTH_SECRET overrides it).`);
126
+ }
127
+ console.log(`POME_${harness.envName}_REST_URL=${restUrl}`);
128
+ console.log(`POME_${harness.envName}_MCP_URL=${mcpUrl}`);
129
+ console.log(`POME_AUTH_TOKEN=${token}`);
130
+ // F28 — every `/s/<sid>/*` endpoint requires a Bearer JWT, including
131
+ // /s/standalone/healthz. New users curling the printed `${restUrl}` get
132
+ // HTTP 401 and assume the twin is broken. The unauth liveness probe lives
133
+ // at the root `/healthz`. Print the curl command so copy-paste debugging
134
+ // works without a JWT.
135
+ console.log(`Health check (no auth): curl ${baseUrl}/healthz`);
136
+ console.log("Ctrl-C to stop.");
137
+ // Foreground server: the bound socket keeps the event loop alive until a
138
+ // signal lands. Graceful path closes the listener, then flushes the
139
+ // recorder and releases the SQLite handle via the harness.
140
+ const shutdown = () => {
141
+ void (async () => {
142
+ // `close()` alone waits for in-flight keep-alive connections, so a
143
+ // stuck client would turn Ctrl-C into a hang: sever connections first,
144
+ // and keep an unref'd hard deadline in case a close callback never
145
+ // resolves anyway.
146
+ const hardExit = setTimeout(() => process.exit(1), 10_000);
147
+ hardExit.unref();
148
+ server.closeAllConnections?.();
149
+ await new Promise((resolve) => server.close(() => resolve()));
150
+ await harness.close();
151
+ process.exit(0);
152
+ })();
153
+ };
154
+ process.once("SIGINT", shutdown);
155
+ process.once("SIGTERM", shutdown);
156
+ }
@@ -0,0 +1,121 @@
1
+ import { z } from "zod";
2
+ export declare const heatTierSchema: z.ZodEnum<{
3
+ hot: "hot";
4
+ warm: "warm";
5
+ cold: "cold";
6
+ unclassified: "unclassified";
7
+ }>;
8
+ export type HeatTier = z.infer<typeof heatTierSchema>;
9
+ export declare const fidelitySurfaceSchema: z.ZodObject<{
10
+ name: z.ZodString;
11
+ heat: z.ZodEnum<{
12
+ hot: "hot";
13
+ warm: "warm";
14
+ cold: "cold";
15
+ unclassified: "unclassified";
16
+ }>;
17
+ fidelity: z.ZodEnum<{
18
+ semantic: "semantic";
19
+ unsupported: "unsupported";
20
+ shape: "shape";
21
+ }>;
22
+ justification: z.ZodString;
23
+ }, z.core.$strict>;
24
+ export type FidelitySurface = z.infer<typeof fidelitySurfaceSchema>;
25
+ export declare const fidelityDocDriftSchema: z.ZodObject<{
26
+ kind: z.ZodEnum<{
27
+ tool: "tool";
28
+ rest: "rest";
29
+ }>;
30
+ name: z.ZodString;
31
+ reason: z.ZodString;
32
+ ticket: z.ZodString;
33
+ }, z.core.$strict>;
34
+ export type FidelityDocDrift = z.infer<typeof fidelityDocDriftSchema>;
35
+ export declare const fidelityInventorySchema: z.ZodObject<{
36
+ twin: z.ZodString;
37
+ package: z.ZodString;
38
+ updated: z.ZodString;
39
+ notes: z.ZodOptional<z.ZodString>;
40
+ tools: z.ZodArray<z.ZodObject<{
41
+ name: z.ZodString;
42
+ heat: z.ZodEnum<{
43
+ hot: "hot";
44
+ warm: "warm";
45
+ cold: "cold";
46
+ unclassified: "unclassified";
47
+ }>;
48
+ fidelity: z.ZodEnum<{
49
+ semantic: "semantic";
50
+ unsupported: "unsupported";
51
+ shape: "shape";
52
+ }>;
53
+ justification: z.ZodString;
54
+ }, z.core.$strict>>;
55
+ rest: z.ZodArray<z.ZodObject<{
56
+ name: z.ZodString;
57
+ heat: z.ZodEnum<{
58
+ hot: "hot";
59
+ warm: "warm";
60
+ cold: "cold";
61
+ unclassified: "unclassified";
62
+ }>;
63
+ fidelity: z.ZodEnum<{
64
+ semantic: "semantic";
65
+ unsupported: "unsupported";
66
+ shape: "shape";
67
+ }>;
68
+ justification: z.ZodString;
69
+ }, z.core.$strict>>;
70
+ doc_drift: z.ZodDefault<z.ZodArray<z.ZodObject<{
71
+ kind: z.ZodEnum<{
72
+ tool: "tool";
73
+ rest: "rest";
74
+ }>;
75
+ name: z.ZodString;
76
+ reason: z.ZodString;
77
+ ticket: z.ZodString;
78
+ }, z.core.$strict>>>;
79
+ }, z.core.$strict>;
80
+ export type FidelityInventory = z.infer<typeof fidelityInventorySchema>;
81
+ export declare function loadFidelityInventory(path: string): FidelityInventory;
82
+ export interface FidelityDocRow {
83
+ name: string;
84
+ fidelity: string;
85
+ /** Present only when the table carries the optional Heat column. */
86
+ heat?: string;
87
+ }
88
+ export interface FidelityDocSource {
89
+ /** Shown in lint problems, e.g. "FIDELITY.md". */
90
+ label: string;
91
+ kind: "tool" | "rest";
92
+ markdown: string;
93
+ }
94
+ /**
95
+ * Expand one name cell into surface names. Backticked spans are the names;
96
+ * a span with no `.`, `/`, or space is shorthand for a sibling of the first
97
+ * span (Slack-style `` `reactions.add` / `remove` / `get` ``) and inherits
98
+ * its dotted prefix. Cells with no backticks name the surface verbatim
99
+ * (e.g. "Any unsupported path").
100
+ */
101
+ export declare function expandSurfaceCell(cell: string): string[];
102
+ /**
103
+ * Parse every markdown table whose header names surfaces of `kind` + Tier.
104
+ * The Heat column (ENDPOINT-TIERS.md) is optional: parsed when the header
105
+ * names it, omitted otherwise, so pre-heat tables stay legal.
106
+ */
107
+ export declare function parseFidelityDocRows(markdown: string, kind: "tool" | "rest"): FidelityDocRow[];
108
+ /**
109
+ * 1:1-lint the inventory against the FIDELITY doc tables. Returns human-
110
+ * readable problems (empty = clean). Directions checked per kind:
111
+ * every doc row must be in the inventory with the same fidelity tier, and
112
+ * every inventory entry must be documented unless a `doc_drift` entry
113
+ * (with its owning ticket) declares the gap. A drift declaration whose
114
+ * name IS documented is stale and reported, so drift entries self-expire.
115
+ */
116
+ export declare function lintFidelityInventory(inventory: FidelityInventory, docs: FidelityDocSource[]): string[];
117
+ /** Set-compare tool names: inventory vs the live `listTools()` surface. */
118
+ export declare function compareToolNames(inventoryNames: string[], liveNames: string[]): {
119
+ missing: string[];
120
+ extra: string[];
121
+ };