@pome-sh/cli 0.1.0 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (738) 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/runDemo.js +3 -2
  12. package/dist/src/doctor/checks.js +2 -2
  13. package/dist/src/hosted/client.d.ts +41 -5
  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 +257 -58
  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 +135 -8
  32. package/dist/src/scenario/scenarioSchema.d.ts +200 -3
  33. package/dist/src/scenario/scenarioSchema.js +12 -1
  34. package/dist/src/twin/twinHarness.d.ts +10 -0
  35. package/dist/src/twin/twinHarness.js +6 -2
  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/db.d.ts +4 -4
  39. package/node_modules/@pome-sh/sdk/dist/db.js +93 -25
  40. package/node_modules/@pome-sh/sdk/dist/db.js.map +1 -1
  41. package/node_modules/@pome-sh/sdk/dist/fidelity-inventory.d.ts +121 -0
  42. package/node_modules/@pome-sh/sdk/dist/fidelity-inventory.js +204 -0
  43. package/node_modules/@pome-sh/sdk/dist/fidelity-inventory.js.map +1 -0
  44. package/node_modules/@pome-sh/sdk/dist/parity.d.ts +55 -0
  45. package/node_modules/@pome-sh/sdk/dist/parity.js +112 -0
  46. package/node_modules/@pome-sh/sdk/dist/parity.js.map +1 -0
  47. package/node_modules/@pome-sh/sdk/dist/server-helpers.d.ts +15 -0
  48. package/node_modules/@pome-sh/sdk/dist/server-helpers.js +96 -0
  49. package/node_modules/@pome-sh/sdk/dist/server-helpers.js.map +1 -1
  50. package/node_modules/@pome-sh/sdk/dist/server.d.ts +1 -1
  51. package/node_modules/@pome-sh/sdk/dist/server.js +9 -7
  52. package/node_modules/@pome-sh/sdk/dist/server.js.map +1 -1
  53. package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/errors.d.ts +39 -0
  54. package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/errors.js +33 -0
  55. package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/errors.js.map +1 -0
  56. package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/evaluator-hooks.d.ts +13 -0
  57. package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/evaluator-hooks.js +6 -0
  58. package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/evaluator-hooks.js.map +1 -0
  59. package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/finalize-shapes.d.ts +215 -0
  60. package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/finalize-shapes.js +83 -0
  61. package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/finalize-shapes.js.map +1 -0
  62. package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/github-access-control.d.ts +175 -0
  63. package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/github-access-control.js +182 -0
  64. package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/github-access-control.js.map +1 -0
  65. package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/identity.d.ts +90 -0
  66. package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/identity.js +72 -0
  67. package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/identity.js.map +1 -0
  68. package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/index.d.ts +27 -0
  69. package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/index.js +34 -0
  70. package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/index.js.map +1 -0
  71. package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/otel/event-schema.d.ts +286 -0
  72. package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/otel/event-schema.js +33 -0
  73. package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/otel/event-schema.js.map +1 -0
  74. package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/otel/fixtures/data.d.ts +65 -0
  75. package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/otel/fixtures/data.js +455 -0
  76. package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/otel/fixtures/data.js.map +1 -0
  77. package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/otel/fixtures/index.d.ts +39 -0
  78. package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/otel/fixtures/index.js +47 -0
  79. package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/otel/fixtures/index.js.map +1 -0
  80. package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/otel/index.d.ts +25 -0
  81. package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/otel/index.js +27 -0
  82. package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/otel/index.js.map +1 -0
  83. package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/otel/legacy-shim.d.ts +100 -0
  84. package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/otel/legacy-shim.js +185 -0
  85. package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/otel/legacy-shim.js.map +1 -0
  86. package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/otel/map-span.d.ts +64 -0
  87. package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/otel/map-span.js +112 -0
  88. package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/otel/map-span.js.map +1 -0
  89. package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/otel/nano.d.ts +26 -0
  90. package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/otel/nano.js +61 -0
  91. package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/otel/nano.js.map +1 -0
  92. package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/otel/project.d.ts +42 -0
  93. package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/otel/project.js +96 -0
  94. package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/otel/project.js.map +1 -0
  95. package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/otel/semconv.d.ts +51 -0
  96. package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/otel/semconv.js +74 -0
  97. package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/otel/semconv.js.map +1 -0
  98. package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/otel/span-event.d.ts +134 -0
  99. package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/otel/span-event.js +152 -0
  100. package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/otel/span-event.js.map +1 -0
  101. package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/recorder-events.d.ts +418 -0
  102. package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/recorder-events.js +234 -0
  103. package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/recorder-events.js.map +1 -0
  104. package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/redaction.d.ts +2 -0
  105. package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/redaction.js +152 -0
  106. package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/redaction.js.map +1 -0
  107. package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/rest.d.ts +198 -0
  108. package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/rest.js +225 -0
  109. package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/rest.js.map +1 -0
  110. package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/run.d.ts +201 -0
  111. package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/run.js +166 -0
  112. package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/run.js.map +1 -0
  113. package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/seed-state.d.ts +446 -0
  114. package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/seed-state.js +167 -0
  115. package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/seed-state.js.map +1 -0
  116. package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/sessions.d.ts +53 -0
  117. package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/sessions.js +51 -0
  118. package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/sessions.js.map +1 -0
  119. package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/task-vocab.d.ts +66 -0
  120. package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/task-vocab.js +84 -0
  121. package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/task-vocab.js.map +1 -0
  122. package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/task.d.ts +483 -0
  123. package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/task.js +60 -0
  124. package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/task.js.map +1 -0
  125. package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/package.json +54 -0
  126. package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/trace-contract.json +41 -0
  127. package/node_modules/@pome-sh/sdk/package.json +7 -7
  128. package/node_modules/@pome-sh/shared-types/dist/errors.d.ts +39 -0
  129. package/node_modules/@pome-sh/shared-types/dist/errors.js +33 -0
  130. package/node_modules/@pome-sh/shared-types/dist/errors.js.map +1 -0
  131. package/node_modules/@pome-sh/shared-types/dist/finalize-shapes.d.ts +252 -0
  132. package/node_modules/@pome-sh/shared-types/dist/finalize-shapes.js +122 -0
  133. package/node_modules/@pome-sh/shared-types/dist/finalize-shapes.js.map +1 -0
  134. package/node_modules/@pome-sh/shared-types/dist/identity.d.ts +90 -0
  135. package/node_modules/@pome-sh/shared-types/dist/identity.js +72 -0
  136. package/node_modules/@pome-sh/shared-types/dist/identity.js.map +1 -0
  137. package/node_modules/@pome-sh/shared-types/dist/index.d.ts +13 -1353
  138. package/node_modules/@pome-sh/shared-types/dist/index.js +14 -568
  139. package/node_modules/@pome-sh/shared-types/dist/index.js.map +1 -1
  140. package/node_modules/@pome-sh/shared-types/dist/otel/event-schema.d.ts +45 -0
  141. package/node_modules/@pome-sh/shared-types/dist/otel/legacy-shim.js +8 -0
  142. package/node_modules/@pome-sh/shared-types/dist/otel/legacy-shim.js.map +1 -1
  143. package/node_modules/@pome-sh/shared-types/dist/otel/semconv.js +7 -0
  144. package/node_modules/@pome-sh/shared-types/dist/otel/semconv.js.map +1 -1
  145. package/node_modules/@pome-sh/shared-types/dist/recorder-events.d.ts +62 -0
  146. package/node_modules/@pome-sh/shared-types/dist/recorder-events.js +36 -0
  147. package/node_modules/@pome-sh/shared-types/dist/recorder-events.js.map +1 -1
  148. package/node_modules/@pome-sh/shared-types/dist/rest.d.ts +245 -0
  149. package/node_modules/@pome-sh/shared-types/dist/rest.js +303 -0
  150. package/node_modules/@pome-sh/shared-types/dist/rest.js.map +1 -0
  151. package/node_modules/@pome-sh/shared-types/dist/run.d.ts +7 -0
  152. package/node_modules/@pome-sh/shared-types/dist/run.js +4 -0
  153. package/node_modules/@pome-sh/shared-types/dist/run.js.map +1 -1
  154. package/node_modules/@pome-sh/shared-types/dist/seed-envelope.d.ts +14 -0
  155. package/node_modules/@pome-sh/shared-types/dist/seed-envelope.js +46 -0
  156. package/node_modules/@pome-sh/shared-types/dist/seed-envelope.js.map +1 -0
  157. package/node_modules/@pome-sh/shared-types/dist/seed-state.d.ts +446 -0
  158. package/node_modules/@pome-sh/shared-types/dist/seed-state.js +167 -0
  159. package/node_modules/@pome-sh/shared-types/dist/seed-state.js.map +1 -0
  160. package/node_modules/@pome-sh/shared-types/dist/sessions.d.ts +53 -0
  161. package/node_modules/@pome-sh/shared-types/dist/sessions.js +51 -0
  162. package/node_modules/@pome-sh/shared-types/dist/sessions.js.map +1 -0
  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 +5 -8
  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/package.json +5 -5
  187. package/node_modules/@pome-sh/twin-slack/FIDELITY.md +121 -35
  188. package/node_modules/@pome-sh/twin-slack/README.md +2 -6
  189. package/node_modules/@pome-sh/twin-slack/dist/scripts/fidelity-parity.js +92 -0
  190. package/node_modules/@pome-sh/twin-slack/dist/scripts/fidelity-parity.js.map +1 -0
  191. package/node_modules/@pome-sh/twin-slack/dist/scripts/smoke.js +3 -3
  192. package/node_modules/@pome-sh/twin-slack/dist/scripts/smoke.js.map +1 -1
  193. package/node_modules/@pome-sh/twin-slack/dist/scripts/validate-mcp.js +1 -1
  194. package/node_modules/@pome-sh/twin-slack/dist/scripts/validate-mcp.js.map +1 -1
  195. package/node_modules/@pome-sh/twin-slack/dist/src/server.js +7 -6
  196. package/node_modules/@pome-sh/twin-slack/dist/src/server.js.map +1 -1
  197. package/node_modules/@pome-sh/twin-slack/dist/src/tools.d.ts +30 -4
  198. package/node_modules/@pome-sh/twin-slack/dist/src/tools.js +48 -1
  199. package/node_modules/@pome-sh/twin-slack/dist/src/tools.js.map +1 -1
  200. package/node_modules/@pome-sh/twin-slack/fidelity.inventory.json +377 -0
  201. package/node_modules/@pome-sh/twin-slack/package.json +5 -5
  202. package/node_modules/@pome-sh/twin-stripe/FIDELITY.md +151 -50
  203. package/node_modules/@pome-sh/twin-stripe/README.md +44 -47
  204. package/node_modules/@pome-sh/twin-stripe/dist/scripts/fidelity-parity.js +186 -0
  205. package/node_modules/@pome-sh/twin-stripe/dist/scripts/fidelity-parity.js.map +1 -0
  206. package/node_modules/@pome-sh/twin-stripe/dist/scripts/smoke.js +8 -4
  207. package/node_modules/@pome-sh/twin-stripe/dist/scripts/smoke.js.map +1 -1
  208. package/node_modules/@pome-sh/twin-stripe/dist/src/db.js +26 -2
  209. package/node_modules/@pome-sh/twin-stripe/dist/src/db.js.map +1 -1
  210. package/node_modules/@pome-sh/twin-stripe/dist/src/domain/billing.d.ts +101 -0
  211. package/node_modules/@pome-sh/twin-stripe/dist/src/domain/billing.js +195 -0
  212. package/node_modules/@pome-sh/twin-stripe/dist/src/domain/billing.js.map +1 -0
  213. package/node_modules/@pome-sh/twin-stripe/dist/src/domain/charges.d.ts +15 -1
  214. package/node_modules/@pome-sh/twin-stripe/dist/src/domain/charges.js +17 -5
  215. package/node_modules/@pome-sh/twin-stripe/dist/src/domain/charges.js.map +1 -1
  216. package/node_modules/@pome-sh/twin-stripe/dist/src/domain/customers.d.ts +47 -0
  217. package/node_modules/@pome-sh/twin-stripe/dist/src/domain/customers.js +103 -0
  218. package/node_modules/@pome-sh/twin-stripe/dist/src/domain/customers.js.map +1 -0
  219. package/node_modules/@pome-sh/twin-stripe/dist/src/domain/events.d.ts +1 -1
  220. package/node_modules/@pome-sh/twin-stripe/dist/src/domain/events.js.map +1 -1
  221. package/node_modules/@pome-sh/twin-stripe/dist/src/domain/index.d.ts +6 -0
  222. package/node_modules/@pome-sh/twin-stripe/dist/src/domain/index.js +3 -0
  223. package/node_modules/@pome-sh/twin-stripe/dist/src/domain/index.js.map +1 -1
  224. package/node_modules/@pome-sh/twin-stripe/dist/src/domain/payment-intents.d.ts +61 -2
  225. package/node_modules/@pome-sh/twin-stripe/dist/src/domain/payment-intents.js +214 -52
  226. package/node_modules/@pome-sh/twin-stripe/dist/src/domain/payment-intents.js.map +1 -1
  227. package/node_modules/@pome-sh/twin-stripe/dist/src/domain/payment-methods.d.ts +45 -0
  228. package/node_modules/@pome-sh/twin-stripe/dist/src/domain/payment-methods.js +159 -0
  229. package/node_modules/@pome-sh/twin-stripe/dist/src/domain/payment-methods.js.map +1 -0
  230. package/node_modules/@pome-sh/twin-stripe/dist/src/domain/refunds.d.ts +6 -0
  231. package/node_modules/@pome-sh/twin-stripe/dist/src/domain/refunds.js +16 -0
  232. package/node_modules/@pome-sh/twin-stripe/dist/src/domain/refunds.js.map +1 -1
  233. package/node_modules/@pome-sh/twin-stripe/dist/src/domain/schema.d.ts +1 -0
  234. package/node_modules/@pome-sh/twin-stripe/dist/src/domain/schema.js +144 -1
  235. package/node_modules/@pome-sh/twin-stripe/dist/src/domain/schema.js.map +1 -1
  236. package/node_modules/@pome-sh/twin-stripe/dist/src/domain/stripe-domain.d.ts +420 -43
  237. package/node_modules/@pome-sh/twin-stripe/dist/src/domain/stripe-domain.js +442 -13
  238. package/node_modules/@pome-sh/twin-stripe/dist/src/domain/stripe-domain.js.map +1 -1
  239. package/node_modules/@pome-sh/twin-stripe/dist/src/errors.d.ts +19 -0
  240. package/node_modules/@pome-sh/twin-stripe/dist/src/errors.js +15 -1
  241. package/node_modules/@pome-sh/twin-stripe/dist/src/errors.js.map +1 -1
  242. package/node_modules/@pome-sh/twin-stripe/dist/src/ids.d.ts +2 -0
  243. package/node_modules/@pome-sh/twin-stripe/dist/src/ids.js +2 -0
  244. package/node_modules/@pome-sh/twin-stripe/dist/src/ids.js.map +1 -1
  245. package/node_modules/@pome-sh/twin-stripe/dist/src/routes/_helpers.d.ts +8 -0
  246. package/node_modules/@pome-sh/twin-stripe/dist/src/routes/_helpers.js +105 -1
  247. package/node_modules/@pome-sh/twin-stripe/dist/src/routes/_helpers.js.map +1 -1
  248. package/node_modules/@pome-sh/twin-stripe/dist/src/routes/billing.d.ts +4 -0
  249. package/node_modules/@pome-sh/twin-stripe/dist/src/routes/billing.js +117 -0
  250. package/node_modules/@pome-sh/twin-stripe/dist/src/routes/billing.js.map +1 -0
  251. package/node_modules/@pome-sh/twin-stripe/dist/src/routes/customers.d.ts +4 -0
  252. package/node_modules/@pome-sh/twin-stripe/dist/src/routes/customers.js +47 -0
  253. package/node_modules/@pome-sh/twin-stripe/dist/src/routes/customers.js.map +1 -0
  254. package/node_modules/@pome-sh/twin-stripe/dist/src/routes/index.js +6 -0
  255. package/node_modules/@pome-sh/twin-stripe/dist/src/routes/index.js.map +1 -1
  256. package/node_modules/@pome-sh/twin-stripe/dist/src/routes/payment-intents.js +28 -102
  257. package/node_modules/@pome-sh/twin-stripe/dist/src/routes/payment-intents.js.map +1 -1
  258. package/node_modules/@pome-sh/twin-stripe/dist/src/routes/payment-methods.d.ts +4 -0
  259. package/node_modules/@pome-sh/twin-stripe/dist/src/routes/payment-methods.js +33 -0
  260. package/node_modules/@pome-sh/twin-stripe/dist/src/routes/payment-methods.js.map +1 -0
  261. package/node_modules/@pome-sh/twin-stripe/dist/src/seed.d.ts +10 -8
  262. package/node_modules/@pome-sh/twin-stripe/dist/src/seed.js +3 -2
  263. package/node_modules/@pome-sh/twin-stripe/dist/src/seed.js.map +1 -1
  264. package/node_modules/@pome-sh/twin-stripe/dist/src/serializers.d.ts +181 -21
  265. package/node_modules/@pome-sh/twin-stripe/dist/src/serializers.js +257 -34
  266. package/node_modules/@pome-sh/twin-stripe/dist/src/serializers.js.map +1 -1
  267. package/node_modules/@pome-sh/twin-stripe/dist/src/server.js +7 -6
  268. package/node_modules/@pome-sh/twin-stripe/dist/src/server.js.map +1 -1
  269. package/node_modules/@pome-sh/twin-stripe/dist/src/tools.d.ts +107 -5
  270. package/node_modules/@pome-sh/twin-stripe/dist/src/tools.js +139 -6
  271. package/node_modules/@pome-sh/twin-stripe/dist/src/tools.js.map +1 -1
  272. package/node_modules/@pome-sh/twin-stripe/dist/src/types.d.ts +73 -0
  273. package/node_modules/@pome-sh/twin-stripe/dist/src/upstream-types.d.ts +8 -0
  274. package/node_modules/@pome-sh/twin-stripe/dist/src/x402.js +6 -1
  275. package/node_modules/@pome-sh/twin-stripe/dist/src/x402.js.map +1 -1
  276. package/node_modules/@pome-sh/twin-stripe/fidelity.inventory.json +425 -0
  277. package/node_modules/@pome-sh/twin-stripe/package.json +5 -5
  278. package/package.json +9 -10
  279. package/skills/pome-setup/SKILL.md +1 -1
  280. package/dist/src/recorder/verdictArtifact.d.ts +0 -71
  281. package/dist/src/recorder/verdictArtifact.js +0 -207
  282. package/dist/src/score/view.d.ts +0 -38
  283. package/dist/src/score/view.js +0 -59
  284. package/dist/src/twin/github/app.d.ts +0 -10
  285. package/dist/src/twin/github/app.js +0 -316
  286. package/dist/src/twin/github/db/migrations.d.ts +0 -2
  287. package/dist/src/twin/github/db/migrations.js +0 -64
  288. package/dist/src/twin/github/db/openDatabase.d.ts +0 -2
  289. package/dist/src/twin/github/db/openDatabase.js +0 -13
  290. package/dist/src/twin/github/db/queries.d.ts +0 -77
  291. package/dist/src/twin/github/db/queries.js +0 -93
  292. package/dist/src/twin/github/domain/seed.d.ts +0 -74
  293. package/dist/src/twin/github/domain/seed.js +0 -104
  294. package/dist/src/twin/github/domain/serializers.d.ts +0 -113
  295. package/dist/src/twin/github/domain/serializers.js +0 -76
  296. package/dist/src/twin/github/types.d.ts +0 -66
  297. package/dist/src/twin/github/types.js +0 -1
  298. package/dist/src/twin-github/app.d.ts +0 -9
  299. package/dist/src/twin-github/app.js +0 -327
  300. package/dist/src/twin-github/auth.d.ts +0 -16
  301. package/dist/src/twin-github/auth.js +0 -142
  302. package/dist/src/twin-github/build-info.d.ts +0 -7
  303. package/dist/src/twin-github/build-info.js +0 -52
  304. package/dist/src/twin-github/db.d.ts +0 -4
  305. package/dist/src/twin-github/db.js +0 -362
  306. package/dist/src/twin-github/domain.d.ts +0 -1649
  307. package/dist/src/twin-github/domain.js +0 -957
  308. package/dist/src/twin-github/errors.d.ts +0 -14
  309. package/dist/src/twin-github/errors.js +0 -34
  310. package/dist/src/twin-github/index.d.ts +0 -9
  311. package/dist/src/twin-github/index.js +0 -7
  312. package/dist/src/twin-github/mcp.d.ts +0 -17
  313. package/dist/src/twin-github/mcp.js +0 -281
  314. package/dist/src/twin-github/recorder.d.ts +0 -2
  315. package/dist/src/twin-github/recorder.js +0 -29
  316. package/dist/src/twin-github/seed.d.ts +0 -74
  317. package/dist/src/twin-github/seed.js +0 -107
  318. package/dist/src/twin-github/serializers.d.ts +0 -449
  319. package/dist/src/twin-github/serializers.js +0 -429
  320. package/dist/src/twin-github/server.js +0 -34
  321. package/dist/src/twin-github/tools.d.ts +0 -1545
  322. package/dist/src/twin-github/tools.js +0 -347
  323. package/dist/src/twin-github/types.d.ts +0 -198
  324. package/dist/src/twin-github/unsupported-envelope.d.ts +0 -10
  325. package/dist/src/twin-github/unsupported-envelope.js +0 -29
  326. package/dist/src/twin-github/util.d.ts +0 -13
  327. package/dist/src/twin-github/util.js +0 -61
  328. package/dist/src/twin-slack/app.d.ts +0 -17
  329. package/dist/src/twin-slack/app.js +0 -683
  330. package/dist/src/twin-slack/auth.d.ts +0 -38
  331. package/dist/src/twin-slack/auth.js +0 -219
  332. package/dist/src/twin-slack/build-info.d.ts +0 -7
  333. package/dist/src/twin-slack/build-info.js +0 -9
  334. package/dist/src/twin-slack/db.d.ts +0 -4
  335. package/dist/src/twin-slack/db.js +0 -213
  336. package/dist/src/twin-slack/domain.d.ts +0 -236
  337. package/dist/src/twin-slack/domain.js +0 -1293
  338. package/dist/src/twin-slack/errors.d.ts +0 -16
  339. package/dist/src/twin-slack/errors.js +0 -60
  340. package/dist/src/twin-slack/index.d.ts +0 -8
  341. package/dist/src/twin-slack/index.js +0 -8
  342. package/dist/src/twin-slack/mcp.d.ts +0 -17
  343. package/dist/src/twin-slack/mcp.js +0 -226
  344. package/dist/src/twin-slack/recorder.d.ts +0 -2
  345. package/dist/src/twin-slack/recorder.js +0 -15
  346. package/dist/src/twin-slack/seed.d.ts +0 -49
  347. package/dist/src/twin-slack/seed.js +0 -139
  348. package/dist/src/twin-slack/serializers.d.ts +0 -141
  349. package/dist/src/twin-slack/serializers.js +0 -377
  350. package/dist/src/twin-slack/tools.d.ts +0 -97
  351. package/dist/src/twin-slack/tools.js +0 -171
  352. package/dist/src/twin-slack/types.d.ts +0 -164
  353. package/dist/src/twin-slack/types.js +0 -1
  354. package/dist/src/twin-slack/unsupported-envelope.d.ts +0 -12
  355. package/dist/src/twin-slack/unsupported-envelope.js +0 -61
  356. package/dist/src/twin-slack/upstream-types.d.ts +0 -19
  357. package/dist/src/twin-slack/upstream-types.js +0 -1
  358. package/dist/src/twin-slack/util.d.ts +0 -31
  359. package/dist/src/twin-slack/util.js +0 -136
  360. package/node_modules/base64-js/LICENSE +0 -21
  361. package/node_modules/base64-js/README.md +0 -34
  362. package/node_modules/base64-js/base64js.min.js +0 -1
  363. package/node_modules/base64-js/index.d.ts +0 -3
  364. package/node_modules/base64-js/index.js +0 -150
  365. package/node_modules/base64-js/package.json +0 -47
  366. package/node_modules/better-sqlite3/LICENSE +0 -21
  367. package/node_modules/better-sqlite3/README.md +0 -99
  368. package/node_modules/better-sqlite3/binding.gyp +0 -38
  369. package/node_modules/better-sqlite3/build/Release/better_sqlite3.node +0 -0
  370. package/node_modules/better-sqlite3/deps/common.gypi +0 -68
  371. package/node_modules/better-sqlite3/deps/copy.js +0 -31
  372. package/node_modules/better-sqlite3/deps/defines.gypi +0 -42
  373. package/node_modules/better-sqlite3/deps/download.sh +0 -123
  374. package/node_modules/better-sqlite3/deps/patches/1208.patch +0 -15
  375. package/node_modules/better-sqlite3/deps/sqlite3/sqlite3.c +0 -269395
  376. package/node_modules/better-sqlite3/deps/sqlite3/sqlite3.h +0 -14347
  377. package/node_modules/better-sqlite3/deps/sqlite3/sqlite3ext.h +0 -739
  378. package/node_modules/better-sqlite3/deps/sqlite3.gyp +0 -80
  379. package/node_modules/better-sqlite3/deps/test_extension.c +0 -21
  380. package/node_modules/better-sqlite3/lib/database.js +0 -90
  381. package/node_modules/better-sqlite3/lib/index.js +0 -3
  382. package/node_modules/better-sqlite3/lib/methods/aggregate.js +0 -43
  383. package/node_modules/better-sqlite3/lib/methods/backup.js +0 -67
  384. package/node_modules/better-sqlite3/lib/methods/function.js +0 -31
  385. package/node_modules/better-sqlite3/lib/methods/inspect.js +0 -7
  386. package/node_modules/better-sqlite3/lib/methods/pragma.js +0 -12
  387. package/node_modules/better-sqlite3/lib/methods/serialize.js +0 -16
  388. package/node_modules/better-sqlite3/lib/methods/table.js +0 -189
  389. package/node_modules/better-sqlite3/lib/methods/transaction.js +0 -78
  390. package/node_modules/better-sqlite3/lib/methods/wrappers.js +0 -54
  391. package/node_modules/better-sqlite3/lib/sqlite-error.js +0 -20
  392. package/node_modules/better-sqlite3/lib/util.js +0 -12
  393. package/node_modules/better-sqlite3/package.json +0 -59
  394. package/node_modules/better-sqlite3/src/addon.cpp +0 -47
  395. package/node_modules/better-sqlite3/src/better_sqlite3.cpp +0 -74
  396. package/node_modules/better-sqlite3/src/objects/backup.cpp +0 -120
  397. package/node_modules/better-sqlite3/src/objects/backup.hpp +0 -36
  398. package/node_modules/better-sqlite3/src/objects/database.cpp +0 -417
  399. package/node_modules/better-sqlite3/src/objects/database.hpp +0 -103
  400. package/node_modules/better-sqlite3/src/objects/statement-iterator.cpp +0 -113
  401. package/node_modules/better-sqlite3/src/objects/statement-iterator.hpp +0 -50
  402. package/node_modules/better-sqlite3/src/objects/statement.cpp +0 -383
  403. package/node_modules/better-sqlite3/src/objects/statement.hpp +0 -58
  404. package/node_modules/better-sqlite3/src/util/bind-map.cpp +0 -73
  405. package/node_modules/better-sqlite3/src/util/binder.cpp +0 -193
  406. package/node_modules/better-sqlite3/src/util/constants.cpp +0 -172
  407. package/node_modules/better-sqlite3/src/util/custom-aggregate.cpp +0 -121
  408. package/node_modules/better-sqlite3/src/util/custom-function.cpp +0 -59
  409. package/node_modules/better-sqlite3/src/util/custom-table.cpp +0 -409
  410. package/node_modules/better-sqlite3/src/util/data-converter.cpp +0 -17
  411. package/node_modules/better-sqlite3/src/util/data.cpp +0 -194
  412. package/node_modules/better-sqlite3/src/util/helpers.cpp +0 -109
  413. package/node_modules/better-sqlite3/src/util/macros.cpp +0 -90
  414. package/node_modules/better-sqlite3/src/util/query-macros.cpp +0 -71
  415. package/node_modules/better-sqlite3/src/util/row-builder.cpp +0 -49
  416. package/node_modules/bindings/LICENSE.md +0 -22
  417. package/node_modules/bindings/README.md +0 -98
  418. package/node_modules/bindings/bindings.js +0 -221
  419. package/node_modules/bindings/package.json +0 -28
  420. package/node_modules/bl/.travis.yml +0 -17
  421. package/node_modules/bl/BufferList.js +0 -396
  422. package/node_modules/bl/LICENSE.md +0 -13
  423. package/node_modules/bl/README.md +0 -247
  424. package/node_modules/bl/bl.js +0 -84
  425. package/node_modules/bl/package.json +0 -37
  426. package/node_modules/bl/test/convert.js +0 -21
  427. package/node_modules/bl/test/indexOf.js +0 -492
  428. package/node_modules/bl/test/isBufferList.js +0 -32
  429. package/node_modules/bl/test/test.js +0 -869
  430. package/node_modules/buffer/AUTHORS.md +0 -70
  431. package/node_modules/buffer/LICENSE +0 -21
  432. package/node_modules/buffer/README.md +0 -410
  433. package/node_modules/buffer/index.d.ts +0 -186
  434. package/node_modules/buffer/index.js +0 -1817
  435. package/node_modules/buffer/package.json +0 -96
  436. package/node_modules/chownr/LICENSE +0 -15
  437. package/node_modules/chownr/README.md +0 -3
  438. package/node_modules/chownr/chownr.js +0 -167
  439. package/node_modules/chownr/package.json +0 -29
  440. package/node_modules/decompress-response/index.d.ts +0 -22
  441. package/node_modules/decompress-response/index.js +0 -58
  442. package/node_modules/decompress-response/license +0 -9
  443. package/node_modules/decompress-response/package.json +0 -56
  444. package/node_modules/decompress-response/readme.md +0 -48
  445. package/node_modules/deep-extend/CHANGELOG.md +0 -46
  446. package/node_modules/deep-extend/LICENSE +0 -20
  447. package/node_modules/deep-extend/README.md +0 -91
  448. package/node_modules/deep-extend/index.js +0 -1
  449. package/node_modules/deep-extend/lib/deep-extend.js +0 -150
  450. package/node_modules/deep-extend/package.json +0 -62
  451. package/node_modules/detect-libc/LICENSE +0 -201
  452. package/node_modules/detect-libc/README.md +0 -163
  453. package/node_modules/detect-libc/index.d.ts +0 -14
  454. package/node_modules/detect-libc/lib/detect-libc.js +0 -313
  455. package/node_modules/detect-libc/lib/elf.js +0 -39
  456. package/node_modules/detect-libc/lib/filesystem.js +0 -51
  457. package/node_modules/detect-libc/lib/process.js +0 -24
  458. package/node_modules/detect-libc/package.json +0 -44
  459. package/node_modules/end-of-stream/LICENSE +0 -21
  460. package/node_modules/end-of-stream/README.md +0 -54
  461. package/node_modules/end-of-stream/index.js +0 -96
  462. package/node_modules/end-of-stream/package.json +0 -37
  463. package/node_modules/expand-template/.travis.yml +0 -6
  464. package/node_modules/expand-template/LICENSE +0 -21
  465. package/node_modules/expand-template/README.md +0 -43
  466. package/node_modules/expand-template/index.js +0 -26
  467. package/node_modules/expand-template/package.json +0 -29
  468. package/node_modules/expand-template/test.js +0 -67
  469. package/node_modules/file-uri-to-path/.npmignore +0 -1
  470. package/node_modules/file-uri-to-path/.travis.yml +0 -30
  471. package/node_modules/file-uri-to-path/History.md +0 -21
  472. package/node_modules/file-uri-to-path/LICENSE +0 -20
  473. package/node_modules/file-uri-to-path/README.md +0 -74
  474. package/node_modules/file-uri-to-path/index.d.ts +0 -2
  475. package/node_modules/file-uri-to-path/index.js +0 -66
  476. package/node_modules/file-uri-to-path/package.json +0 -32
  477. package/node_modules/file-uri-to-path/test/test.js +0 -24
  478. package/node_modules/file-uri-to-path/test/tests.json +0 -13
  479. package/node_modules/fs-constants/LICENSE +0 -21
  480. package/node_modules/fs-constants/README.md +0 -26
  481. package/node_modules/fs-constants/browser.js +0 -1
  482. package/node_modules/fs-constants/index.js +0 -1
  483. package/node_modules/fs-constants/package.json +0 -19
  484. package/node_modules/github-from-package/.travis.yml +0 -4
  485. package/node_modules/github-from-package/LICENSE +0 -18
  486. package/node_modules/github-from-package/example/package.json +0 -8
  487. package/node_modules/github-from-package/example/url.js +0 -3
  488. package/node_modules/github-from-package/index.js +0 -17
  489. package/node_modules/github-from-package/package.json +0 -30
  490. package/node_modules/github-from-package/readme.markdown +0 -53
  491. package/node_modules/github-from-package/test/a.json +0 -8
  492. package/node_modules/github-from-package/test/b.json +0 -5
  493. package/node_modules/github-from-package/test/c.json +0 -5
  494. package/node_modules/github-from-package/test/d.json +0 -7
  495. package/node_modules/github-from-package/test/e.json +0 -5
  496. package/node_modules/github-from-package/test/url.js +0 -19
  497. package/node_modules/ieee754/LICENSE +0 -11
  498. package/node_modules/ieee754/README.md +0 -51
  499. package/node_modules/ieee754/index.d.ts +0 -10
  500. package/node_modules/ieee754/index.js +0 -85
  501. package/node_modules/ieee754/package.json +0 -52
  502. package/node_modules/inherits/LICENSE +0 -16
  503. package/node_modules/inherits/README.md +0 -42
  504. package/node_modules/inherits/inherits.js +0 -9
  505. package/node_modules/inherits/inherits_browser.js +0 -27
  506. package/node_modules/inherits/package.json +0 -29
  507. package/node_modules/ini/LICENSE +0 -15
  508. package/node_modules/ini/README.md +0 -102
  509. package/node_modules/ini/ini.js +0 -206
  510. package/node_modules/ini/package.json +0 -33
  511. package/node_modules/mimic-response/index.d.ts +0 -17
  512. package/node_modules/mimic-response/index.js +0 -77
  513. package/node_modules/mimic-response/license +0 -9
  514. package/node_modules/mimic-response/package.json +0 -42
  515. package/node_modules/mimic-response/readme.md +0 -78
  516. package/node_modules/minimist/.eslintrc +0 -29
  517. package/node_modules/minimist/.github/FUNDING.yml +0 -12
  518. package/node_modules/minimist/.nycrc +0 -14
  519. package/node_modules/minimist/CHANGELOG.md +0 -298
  520. package/node_modules/minimist/LICENSE +0 -18
  521. package/node_modules/minimist/README.md +0 -121
  522. package/node_modules/minimist/example/parse.js +0 -4
  523. package/node_modules/minimist/index.js +0 -263
  524. package/node_modules/minimist/package.json +0 -75
  525. package/node_modules/minimist/test/all_bool.js +0 -34
  526. package/node_modules/minimist/test/bool.js +0 -177
  527. package/node_modules/minimist/test/dash.js +0 -43
  528. package/node_modules/minimist/test/default_bool.js +0 -37
  529. package/node_modules/minimist/test/dotted.js +0 -24
  530. package/node_modules/minimist/test/kv_short.js +0 -32
  531. package/node_modules/minimist/test/long.js +0 -33
  532. package/node_modules/minimist/test/num.js +0 -38
  533. package/node_modules/minimist/test/parse.js +0 -209
  534. package/node_modules/minimist/test/parse_modified.js +0 -11
  535. package/node_modules/minimist/test/proto.js +0 -64
  536. package/node_modules/minimist/test/short.js +0 -69
  537. package/node_modules/minimist/test/stop_early.js +0 -17
  538. package/node_modules/minimist/test/unknown.js +0 -104
  539. package/node_modules/minimist/test/whitespace.js +0 -10
  540. package/node_modules/mkdirp-classic/LICENSE +0 -21
  541. package/node_modules/mkdirp-classic/README.md +0 -18
  542. package/node_modules/mkdirp-classic/index.js +0 -98
  543. package/node_modules/mkdirp-classic/package.json +0 -18
  544. package/node_modules/napi-build-utils/.github/workflows/run-npm-tests.yml +0 -31
  545. package/node_modules/napi-build-utils/LICENSE +0 -21
  546. package/node_modules/napi-build-utils/README.md +0 -52
  547. package/node_modules/napi-build-utils/index.js +0 -214
  548. package/node_modules/napi-build-utils/index.md +0 -0
  549. package/node_modules/napi-build-utils/package.json +0 -42
  550. package/node_modules/node-abi/LICENSE +0 -21
  551. package/node_modules/node-abi/README.md +0 -54
  552. package/node_modules/node-abi/abi_registry.json +0 -453
  553. package/node_modules/node-abi/index.js +0 -179
  554. package/node_modules/node-abi/package.json +0 -45
  555. package/node_modules/once/LICENSE +0 -15
  556. package/node_modules/once/README.md +0 -79
  557. package/node_modules/once/once.js +0 -42
  558. package/node_modules/once/package.json +0 -33
  559. package/node_modules/prebuild-install/CHANGELOG.md +0 -131
  560. package/node_modules/prebuild-install/CONTRIBUTING.md +0 -6
  561. package/node_modules/prebuild-install/LICENSE +0 -21
  562. package/node_modules/prebuild-install/README.md +0 -163
  563. package/node_modules/prebuild-install/asset.js +0 -44
  564. package/node_modules/prebuild-install/bin.js +0 -78
  565. package/node_modules/prebuild-install/download.js +0 -142
  566. package/node_modules/prebuild-install/error.js +0 -14
  567. package/node_modules/prebuild-install/help.txt +0 -16
  568. package/node_modules/prebuild-install/index.js +0 -1
  569. package/node_modules/prebuild-install/log.js +0 -33
  570. package/node_modules/prebuild-install/package.json +0 -67
  571. package/node_modules/prebuild-install/proxy.js +0 -35
  572. package/node_modules/prebuild-install/rc.js +0 -64
  573. package/node_modules/prebuild-install/util.js +0 -143
  574. package/node_modules/pump/.github/FUNDING.yml +0 -2
  575. package/node_modules/pump/.travis.yml +0 -5
  576. package/node_modules/pump/LICENSE +0 -21
  577. package/node_modules/pump/README.md +0 -74
  578. package/node_modules/pump/SECURITY.md +0 -5
  579. package/node_modules/pump/empty.js +0 -1
  580. package/node_modules/pump/index.js +0 -86
  581. package/node_modules/pump/package.json +0 -30
  582. package/node_modules/pump/test-browser.js +0 -66
  583. package/node_modules/pump/test-node.js +0 -53
  584. package/node_modules/rc/LICENSE.APACHE2 +0 -15
  585. package/node_modules/rc/LICENSE.BSD +0 -26
  586. package/node_modules/rc/LICENSE.MIT +0 -24
  587. package/node_modules/rc/README.md +0 -227
  588. package/node_modules/rc/browser.js +0 -7
  589. package/node_modules/rc/cli.js +0 -4
  590. package/node_modules/rc/index.js +0 -53
  591. package/node_modules/rc/lib/utils.js +0 -104
  592. package/node_modules/rc/package.json +0 -29
  593. package/node_modules/rc/test/ini.js +0 -16
  594. package/node_modules/rc/test/nested-env-vars.js +0 -50
  595. package/node_modules/rc/test/test.js +0 -59
  596. package/node_modules/readable-stream/CONTRIBUTING.md +0 -38
  597. package/node_modules/readable-stream/GOVERNANCE.md +0 -136
  598. package/node_modules/readable-stream/LICENSE +0 -47
  599. package/node_modules/readable-stream/README.md +0 -106
  600. package/node_modules/readable-stream/errors-browser.js +0 -127
  601. package/node_modules/readable-stream/errors.js +0 -116
  602. package/node_modules/readable-stream/experimentalWarning.js +0 -17
  603. package/node_modules/readable-stream/lib/_stream_duplex.js +0 -126
  604. package/node_modules/readable-stream/lib/_stream_passthrough.js +0 -37
  605. package/node_modules/readable-stream/lib/_stream_readable.js +0 -1027
  606. package/node_modules/readable-stream/lib/_stream_transform.js +0 -190
  607. package/node_modules/readable-stream/lib/_stream_writable.js +0 -641
  608. package/node_modules/readable-stream/lib/internal/streams/async_iterator.js +0 -180
  609. package/node_modules/readable-stream/lib/internal/streams/buffer_list.js +0 -183
  610. package/node_modules/readable-stream/lib/internal/streams/destroy.js +0 -96
  611. package/node_modules/readable-stream/lib/internal/streams/end-of-stream.js +0 -86
  612. package/node_modules/readable-stream/lib/internal/streams/from-browser.js +0 -3
  613. package/node_modules/readable-stream/lib/internal/streams/from.js +0 -52
  614. package/node_modules/readable-stream/lib/internal/streams/pipeline.js +0 -86
  615. package/node_modules/readable-stream/lib/internal/streams/state.js +0 -22
  616. package/node_modules/readable-stream/lib/internal/streams/stream-browser.js +0 -1
  617. package/node_modules/readable-stream/lib/internal/streams/stream.js +0 -1
  618. package/node_modules/readable-stream/package.json +0 -68
  619. package/node_modules/readable-stream/readable-browser.js +0 -9
  620. package/node_modules/readable-stream/readable.js +0 -16
  621. package/node_modules/safe-buffer/LICENSE +0 -21
  622. package/node_modules/safe-buffer/README.md +0 -584
  623. package/node_modules/safe-buffer/index.d.ts +0 -187
  624. package/node_modules/safe-buffer/index.js +0 -65
  625. package/node_modules/safe-buffer/package.json +0 -51
  626. package/node_modules/semver/LICENSE +0 -15
  627. package/node_modules/semver/README.md +0 -680
  628. package/node_modules/semver/bin/semver.js +0 -195
  629. package/node_modules/semver/classes/comparator.js +0 -143
  630. package/node_modules/semver/classes/index.js +0 -7
  631. package/node_modules/semver/classes/range.js +0 -577
  632. package/node_modules/semver/classes/semver.js +0 -350
  633. package/node_modules/semver/functions/clean.js +0 -8
  634. package/node_modules/semver/functions/cmp.js +0 -54
  635. package/node_modules/semver/functions/coerce.js +0 -62
  636. package/node_modules/semver/functions/compare-build.js +0 -9
  637. package/node_modules/semver/functions/compare-loose.js +0 -5
  638. package/node_modules/semver/functions/compare.js +0 -7
  639. package/node_modules/semver/functions/diff.js +0 -60
  640. package/node_modules/semver/functions/eq.js +0 -5
  641. package/node_modules/semver/functions/gt.js +0 -5
  642. package/node_modules/semver/functions/gte.js +0 -5
  643. package/node_modules/semver/functions/inc.js +0 -21
  644. package/node_modules/semver/functions/lt.js +0 -5
  645. package/node_modules/semver/functions/lte.js +0 -5
  646. package/node_modules/semver/functions/major.js +0 -5
  647. package/node_modules/semver/functions/minor.js +0 -5
  648. package/node_modules/semver/functions/neq.js +0 -5
  649. package/node_modules/semver/functions/parse.js +0 -18
  650. package/node_modules/semver/functions/patch.js +0 -5
  651. package/node_modules/semver/functions/prerelease.js +0 -8
  652. package/node_modules/semver/functions/rcompare.js +0 -5
  653. package/node_modules/semver/functions/rsort.js +0 -5
  654. package/node_modules/semver/functions/satisfies.js +0 -12
  655. package/node_modules/semver/functions/sort.js +0 -5
  656. package/node_modules/semver/functions/truncate.js +0 -48
  657. package/node_modules/semver/functions/valid.js +0 -8
  658. package/node_modules/semver/index.js +0 -93
  659. package/node_modules/semver/internal/constants.js +0 -37
  660. package/node_modules/semver/internal/debug.js +0 -11
  661. package/node_modules/semver/internal/identifiers.js +0 -29
  662. package/node_modules/semver/internal/lrucache.js +0 -42
  663. package/node_modules/semver/internal/parse-options.js +0 -17
  664. package/node_modules/semver/internal/re.js +0 -223
  665. package/node_modules/semver/package.json +0 -78
  666. package/node_modules/semver/preload.js +0 -4
  667. package/node_modules/semver/range.bnf +0 -17
  668. package/node_modules/semver/ranges/gtr.js +0 -6
  669. package/node_modules/semver/ranges/intersects.js +0 -9
  670. package/node_modules/semver/ranges/ltr.js +0 -6
  671. package/node_modules/semver/ranges/max-satisfying.js +0 -27
  672. package/node_modules/semver/ranges/min-satisfying.js +0 -26
  673. package/node_modules/semver/ranges/min-version.js +0 -63
  674. package/node_modules/semver/ranges/outside.js +0 -82
  675. package/node_modules/semver/ranges/simplify.js +0 -49
  676. package/node_modules/semver/ranges/subset.js +0 -249
  677. package/node_modules/semver/ranges/to-comparators.js +0 -10
  678. package/node_modules/semver/ranges/valid.js +0 -13
  679. package/node_modules/simple-concat/.travis.yml +0 -3
  680. package/node_modules/simple-concat/LICENSE +0 -20
  681. package/node_modules/simple-concat/README.md +0 -44
  682. package/node_modules/simple-concat/index.js +0 -15
  683. package/node_modules/simple-concat/package.json +0 -47
  684. package/node_modules/simple-concat/test/basic.js +0 -41
  685. package/node_modules/simple-get/.github/dependabot.yml +0 -15
  686. package/node_modules/simple-get/.github/workflows/ci.yml +0 -23
  687. package/node_modules/simple-get/LICENSE +0 -20
  688. package/node_modules/simple-get/README.md +0 -333
  689. package/node_modules/simple-get/index.js +0 -108
  690. package/node_modules/simple-get/package.json +0 -67
  691. package/node_modules/string_decoder/LICENSE +0 -48
  692. package/node_modules/string_decoder/README.md +0 -47
  693. package/node_modules/string_decoder/lib/string_decoder.js +0 -296
  694. package/node_modules/string_decoder/package.json +0 -34
  695. package/node_modules/strip-json-comments/index.js +0 -70
  696. package/node_modules/strip-json-comments/license +0 -21
  697. package/node_modules/strip-json-comments/package.json +0 -42
  698. package/node_modules/strip-json-comments/readme.md +0 -64
  699. package/node_modules/tar-fs/.travis.yml +0 -6
  700. package/node_modules/tar-fs/LICENSE +0 -21
  701. package/node_modules/tar-fs/README.md +0 -165
  702. package/node_modules/tar-fs/index.js +0 -392
  703. package/node_modules/tar-fs/package.json +0 -46
  704. package/node_modules/tar-fs/test/fixtures/a/hello.txt +0 -1
  705. package/node_modules/tar-fs/test/fixtures/b/a/test.txt +0 -1
  706. package/node_modules/tar-fs/test/fixtures/d/file1 +0 -0
  707. package/node_modules/tar-fs/test/fixtures/d/file2 +0 -0
  708. package/node_modules/tar-fs/test/fixtures/d/sub-dir/file5 +0 -0
  709. package/node_modules/tar-fs/test/fixtures/d/sub-files/file3 +0 -0
  710. package/node_modules/tar-fs/test/fixtures/d/sub-files/file4 +0 -0
  711. package/node_modules/tar-fs/test/fixtures/e/directory/.ignore +0 -0
  712. package/node_modules/tar-fs/test/fixtures/e/file +0 -0
  713. package/node_modules/tar-fs/test/fixtures/invalid.tar +0 -0
  714. package/node_modules/tar-fs/test/index.js +0 -457
  715. package/node_modules/tar-stream/LICENSE +0 -21
  716. package/node_modules/tar-stream/README.md +0 -168
  717. package/node_modules/tar-stream/extract.js +0 -257
  718. package/node_modules/tar-stream/headers.js +0 -295
  719. package/node_modules/tar-stream/index.js +0 -2
  720. package/node_modules/tar-stream/pack.js +0 -255
  721. package/node_modules/tar-stream/package.json +0 -58
  722. package/node_modules/tar-stream/sandbox.js +0 -11
  723. package/node_modules/tunnel-agent/LICENSE +0 -55
  724. package/node_modules/tunnel-agent/README.md +0 -4
  725. package/node_modules/tunnel-agent/index.js +0 -244
  726. package/node_modules/tunnel-agent/package.json +0 -22
  727. package/node_modules/util-deprecate/History.md +0 -16
  728. package/node_modules/util-deprecate/LICENSE +0 -24
  729. package/node_modules/util-deprecate/README.md +0 -53
  730. package/node_modules/util-deprecate/browser.js +0 -67
  731. package/node_modules/util-deprecate/node.js +0 -6
  732. package/node_modules/util-deprecate/package.json +0 -27
  733. package/node_modules/wrappy/LICENSE +0 -15
  734. package/node_modules/wrappy/README.md +0 -36
  735. package/node_modules/wrappy/package.json +0 -29
  736. package/node_modules/wrappy/wrappy.js +0 -33
  737. /package/{dist/src/twin-github/server.d.ts → node_modules/@pome-sh/twin-slack/dist/scripts/fidelity-parity.d.ts} +0 -0
  738. /package/{dist/src/twin-github/types.js → node_modules/@pome-sh/twin-stripe/dist/scripts/fidelity-parity.d.ts} +0 -0
@@ -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>;
@@ -78,6 +78,14 @@ export const seedStateSchema = z.union([
78
78
  githubSeedStateSchema,
79
79
  stripeSeedStateSchema
80
80
  ]);
81
+ // Multi-twin (M3): a per-twin seed envelope `{ <twin>: <flat seed> }`, produced
82
+ // ONLY for scenarios whose `config.twins` has >1 entry (the envelope-iff-multi-twin
83
+ // rule, decided from `twins` alone — never by sniffing the seed shape). Each value
84
+ // is one twin's flat seed, the same shapes `seedStateSchema` unions. Single-twin
85
+ // scenarios keep the flat shape byte-identical. parseScenario builds and validates
86
+ // the envelope value-by-value with each twin's own schema; this record is the outer
87
+ // shape scenarioSchema re-validates against.
88
+ export const seedEnvelopeSchema = z.record(z.string(), seedStateSchema);
81
89
  export const scenarioSchema = z.object({
82
90
  slug: z.string().min(1),
83
91
  title: z.string().min(1),
@@ -86,5 +94,8 @@ export const scenarioSchema = z.object({
86
94
  expectedBehavior: z.string().default(""),
87
95
  criteria: z.array(criterionSchema).min(1),
88
96
  config: scenarioConfigSchema,
89
- seedState: seedStateSchema
97
+ // Flat single-twin seed OR the multi-twin per-twin envelope. Flat is tried
98
+ // first so single-twin seeds match their strict arms; the envelope only
99
+ // matches when the flat union can't (its keys are twin ids, not seed fields).
100
+ seedState: z.union([seedStateSchema, seedEnvelopeSchema])
90
101
  });
@@ -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 = {
@@ -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>;
@@ -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
+ }
@@ -1,7 +1,8 @@
1
1
  /**
2
2
  * Mutation outcome — the shape both better-sqlite3's `RunResult` and
3
- * node:sqlite's `StatementResultingChanges` return, so the M2 swap (F-703)
4
- * keeps this interface as-is.
3
+ * node:sqlite's `StatementResultingChanges` return; `changes` is coerced to
4
+ * number, `lastInsertRowid` may be a bigint for rowids beyond safe-integer
5
+ * range.
5
6
  */
6
7
  export interface TwinRunResult {
7
8
  changes: number;
@@ -15,8 +16,7 @@ export interface TwinStatement {
15
16
  /**
16
17
  * A wrapped transaction function (better-sqlite3's shape). The `.immediate`
17
18
  * variant takes the write lock up front (BEGIN IMMEDIATE) — github's domain
18
- * runs its mutations under it. The M2 node:sqlite implementation backs both
19
- * call forms with explicit BEGIN [IMMEDIATE]/COMMIT/ROLLBACK.
19
+ * runs its mutations under it.
20
20
  */
21
21
  export type TwinTransaction<F extends (...args: never[]) => unknown> = F & {
22
22
  immediate: F;
@@ -1,28 +1,97 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  //
3
- // Engine SQLite driver wrapper (F-681). Twins never import a sqlite driver
4
- // directly they call `openTwinDatabase()` and consume the `TwinDatabase`
5
- // interface below. The interface is a same-shape subset of better-sqlite3
6
- // (prepare/exec/pragma/transaction/close), which is exactly the surface the
7
- // M2 node:sqlite swap (F-703) re-implements: swapping the driver is a change
8
- // to THIS file only. `transaction(fn)` keeps better-sqlite3's shape (returns
9
- // a callable running fn atomically) because twin domain code has dozens of
10
- // call sites relying on it and node:sqlite ships no equivalent — the M2
11
- // implementation backs it with BEGIN IMMEDIATE/COMMIT/ROLLBACK.
12
- //
13
- // The driver is loaded lazily via createRequire so @pome-sh/sdk can declare
14
- // better-sqlite3 as an optional peer dependency: twins that bring their own
15
- // database never pay for (or compile) the native module.
3
+ // Engine SQLite driver wrapper (F-681), backed by node:sqlite since F-703
4
+ // zero native deps, no compiler toolchain at install. Twins never import a
5
+ // sqlite driver directly they call `openTwinDatabase()` and consume the
6
+ // `TwinDatabase` interface below. The interface keeps better-sqlite3's shape
7
+ // (prepare/exec/pragma/transaction/close) because twin domain code has dozens
8
+ // of call sites relying on it; node:sqlite ships no pragma()/transaction()
9
+ // equivalents, so this file emulates them: `pragma()` prepares a `PRAGMA …`
10
+ // statement, `transaction(fn)` (+ `.immediate`) wraps fn in explicit
11
+ // BEGIN [IMMEDIATE]/COMMIT/ROLLBACK at the outermost level and in a SAVEPOINT
12
+ // when called inside an open transaction — better-sqlite3's nesting semantics,
13
+ // which twin-github's seed() relies on (it wraps createIssue et al., each of
14
+ // which opens its own transaction).
16
15
  import { mkdirSync } from "node:fs";
17
- import { createRequire } from "node:module";
18
16
  import { dirname } from "node:path";
19
- let driver;
20
- function loadDriver() {
21
- if (!driver) {
22
- const require = createRequire(import.meta.url);
23
- driver = require("better-sqlite3");
17
+ import { DatabaseSync } from "node:sqlite";
18
+ class NodeSqliteTwinDatabase {
19
+ #db;
20
+ #savepointId = 0;
21
+ constructor(path) {
22
+ this.#db = new DatabaseSync(path);
23
+ }
24
+ prepare(sql) {
25
+ const statement = this.#db.prepare(sql);
26
+ return {
27
+ run: (...params) => {
28
+ const result = statement.run(...params);
29
+ return { changes: Number(result.changes), lastInsertRowid: result.lastInsertRowid };
30
+ },
31
+ get: (...params) => statement.get(...params),
32
+ all: (...params) => statement.all(...params),
33
+ };
34
+ }
35
+ exec(sql) {
36
+ this.#db.exec(sql);
37
+ }
38
+ pragma(statement, options = {}) {
39
+ const rows = this.#db.prepare(`PRAGMA ${statement}`).all();
40
+ if (!options.simple)
41
+ return rows;
42
+ const row = rows[0];
43
+ if (row === undefined)
44
+ return undefined;
45
+ return row[Object.keys(row)[0]];
46
+ }
47
+ transaction(fn) {
48
+ const wrap = (begin) => ((...args) => {
49
+ if (this.#db.isTransaction)
50
+ return this.#nested(fn, args);
51
+ this.#db.exec(begin);
52
+ try {
53
+ const out = fn(...args);
54
+ this.#db.exec("COMMIT");
55
+ return out;
56
+ }
57
+ catch (error) {
58
+ // Certain failures (e.g. ON CONFLICT ROLLBACK) end the transaction
59
+ // themselves — only roll back when one is still open.
60
+ if (this.#db.isTransaction)
61
+ this.#db.exec("ROLLBACK");
62
+ throw error;
63
+ }
64
+ });
65
+ const tx = wrap("BEGIN");
66
+ tx.immediate = wrap("BEGIN IMMEDIATE");
67
+ return tx;
68
+ }
69
+ /**
70
+ * A transaction function called inside an open transaction joins it under a
71
+ * SAVEPOINT (better-sqlite3's semantics): success releases the savepoint,
72
+ * failure rolls back only the inner work. The BEGIN variant is irrelevant
73
+ * here — the outermost transaction already holds the lock mode.
74
+ */
75
+ #nested(fn, args) {
76
+ const name = `_pome_tx_${this.#savepointId++}`;
77
+ this.#db.exec(`SAVEPOINT ${name}`);
78
+ try {
79
+ const out = fn(...args);
80
+ this.#db.exec(`RELEASE ${name}`);
81
+ return out;
82
+ }
83
+ catch (error) {
84
+ if (this.#db.isTransaction) {
85
+ this.#db.exec(`ROLLBACK TO ${name}`);
86
+ this.#db.exec(`RELEASE ${name}`);
87
+ }
88
+ throw error;
89
+ }
90
+ }
91
+ close() {
92
+ if (this.#db.isOpen)
93
+ this.#db.close();
24
94
  }
25
- return driver;
26
95
  }
27
96
  /**
28
97
  * Open a twin database with the pome pragma set applied:
@@ -34,11 +103,10 @@ export function openTwinDatabase(path = ":memory:", options = {}) {
34
103
  if (path !== ":memory:") {
35
104
  mkdirSync(dirname(path), { recursive: true });
36
105
  }
37
- const Database = loadDriver();
38
- const db = new Database(path);
39
- db.pragma("busy_timeout = 5000");
40
- db.pragma("journal_mode = WAL");
41
- db.pragma("foreign_keys = ON");
106
+ const db = new NodeSqliteTwinDatabase(path);
107
+ db.exec("PRAGMA busy_timeout = 5000");
108
+ db.exec("PRAGMA journal_mode = WAL");
109
+ db.exec("PRAGMA foreign_keys = ON");
42
110
  options.migrate?.(db);
43
111
  return db;
44
112
  }