@pome-sh/cli 0.1.1 → 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 (277) 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/hosted/client.d.ts +41 -5
  13. package/dist/src/hosted/client.js +333 -19
  14. package/dist/src/hosted/errors.d.ts +11 -1
  15. package/dist/src/hosted/errors.js +8 -1
  16. package/dist/src/hosted/evalResultView.d.ts +2 -0
  17. package/dist/src/hosted/evalResultView.js +22 -0
  18. package/dist/src/hosted/uploadAndFinalize.d.ts +18 -1
  19. package/dist/src/hosted/uploadAndFinalize.js +51 -3
  20. package/dist/src/recorder/inspect.js +20 -2
  21. package/dist/src/runner/mergeAdapterSignals.js +2 -2
  22. package/dist/src/runner/ports.js +3 -0
  23. package/dist/src/runner/runScenario.d.ts +79 -2
  24. package/dist/src/runner/runScenario.js +94 -36
  25. package/dist/src/runner/runScenarioHosted.d.ts +37 -0
  26. package/dist/src/runner/runScenarioHosted.js +257 -58
  27. package/dist/src/runner/runTrialGroup.d.ts +1 -3
  28. package/dist/src/runner/runTrialGroup.js +1 -3
  29. package/dist/src/scenario/parseScenario.d.ts +5 -0
  30. package/dist/src/scenario/parseScenario.js +135 -8
  31. package/dist/src/scenario/scenarioSchema.d.ts +200 -3
  32. package/dist/src/scenario/scenarioSchema.js +12 -1
  33. package/dist/src/twin/twinHarness.d.ts +10 -0
  34. package/dist/src/twin/twinHarness.js +6 -2
  35. package/dist/src/twin/twinStart.d.ts +19 -0
  36. package/dist/src/twin/twinStart.js +156 -0
  37. package/node_modules/@pome-sh/sdk/dist/fidelity-inventory.d.ts +121 -0
  38. package/node_modules/@pome-sh/sdk/dist/fidelity-inventory.js +204 -0
  39. package/node_modules/@pome-sh/sdk/dist/fidelity-inventory.js.map +1 -0
  40. package/node_modules/@pome-sh/sdk/dist/parity.d.ts +55 -0
  41. package/node_modules/@pome-sh/sdk/dist/parity.js +112 -0
  42. package/node_modules/@pome-sh/sdk/dist/parity.js.map +1 -0
  43. package/node_modules/@pome-sh/sdk/dist/server-helpers.d.ts +15 -0
  44. package/node_modules/@pome-sh/sdk/dist/server-helpers.js +96 -0
  45. package/node_modules/@pome-sh/sdk/dist/server-helpers.js.map +1 -1
  46. package/node_modules/@pome-sh/sdk/dist/server.d.ts +1 -1
  47. package/node_modules/@pome-sh/sdk/dist/server.js +9 -7
  48. package/node_modules/@pome-sh/sdk/dist/server.js.map +1 -1
  49. package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/errors.d.ts +39 -0
  50. package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/errors.js +33 -0
  51. package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/errors.js.map +1 -0
  52. package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/evaluator-hooks.d.ts +13 -0
  53. package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/evaluator-hooks.js +6 -0
  54. package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/evaluator-hooks.js.map +1 -0
  55. package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/finalize-shapes.d.ts +215 -0
  56. package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/finalize-shapes.js +83 -0
  57. package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/finalize-shapes.js.map +1 -0
  58. package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/github-access-control.d.ts +175 -0
  59. package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/github-access-control.js +182 -0
  60. package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/github-access-control.js.map +1 -0
  61. package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/identity.d.ts +90 -0
  62. package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/identity.js +72 -0
  63. package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/identity.js.map +1 -0
  64. package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/index.d.ts +27 -0
  65. package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/index.js +34 -0
  66. package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/index.js.map +1 -0
  67. package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/otel/event-schema.d.ts +286 -0
  68. package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/otel/event-schema.js +33 -0
  69. package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/otel/event-schema.js.map +1 -0
  70. package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/otel/fixtures/data.d.ts +65 -0
  71. package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/otel/fixtures/data.js +455 -0
  72. package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/otel/fixtures/data.js.map +1 -0
  73. package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/otel/fixtures/index.d.ts +39 -0
  74. package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/otel/fixtures/index.js +47 -0
  75. package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/otel/fixtures/index.js.map +1 -0
  76. package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/otel/index.d.ts +25 -0
  77. package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/otel/index.js +27 -0
  78. package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/otel/index.js.map +1 -0
  79. package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/otel/legacy-shim.d.ts +100 -0
  80. package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/otel/legacy-shim.js +185 -0
  81. package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/otel/legacy-shim.js.map +1 -0
  82. package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/otel/map-span.d.ts +64 -0
  83. package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/otel/map-span.js +112 -0
  84. package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/otel/map-span.js.map +1 -0
  85. package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/otel/nano.d.ts +26 -0
  86. package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/otel/nano.js +61 -0
  87. package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/otel/nano.js.map +1 -0
  88. package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/otel/project.d.ts +42 -0
  89. package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/otel/project.js +96 -0
  90. package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/otel/project.js.map +1 -0
  91. package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/otel/semconv.d.ts +51 -0
  92. package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/otel/semconv.js +74 -0
  93. package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/otel/semconv.js.map +1 -0
  94. package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/otel/span-event.d.ts +134 -0
  95. package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/otel/span-event.js +152 -0
  96. package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/otel/span-event.js.map +1 -0
  97. package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/recorder-events.d.ts +418 -0
  98. package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/recorder-events.js +234 -0
  99. package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/recorder-events.js.map +1 -0
  100. package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/redaction.d.ts +2 -0
  101. package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/redaction.js +152 -0
  102. package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/redaction.js.map +1 -0
  103. package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/rest.d.ts +198 -0
  104. package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/rest.js +225 -0
  105. package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/rest.js.map +1 -0
  106. package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/run.d.ts +201 -0
  107. package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/run.js +166 -0
  108. package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/run.js.map +1 -0
  109. package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/seed-state.d.ts +446 -0
  110. package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/seed-state.js +167 -0
  111. package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/seed-state.js.map +1 -0
  112. package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/sessions.d.ts +53 -0
  113. package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/sessions.js +51 -0
  114. package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/sessions.js.map +1 -0
  115. package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/task-vocab.d.ts +66 -0
  116. package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/task-vocab.js +84 -0
  117. package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/task-vocab.js.map +1 -0
  118. package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/task.d.ts +483 -0
  119. package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/task.js +60 -0
  120. package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/dist/task.js.map +1 -0
  121. package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/package.json +54 -0
  122. package/node_modules/@pome-sh/sdk/node_modules/@pome-sh/shared-types/trace-contract.json +41 -0
  123. package/node_modules/@pome-sh/sdk/package.json +6 -2
  124. package/node_modules/@pome-sh/shared-types/dist/errors.d.ts +39 -0
  125. package/node_modules/@pome-sh/shared-types/dist/errors.js +33 -0
  126. package/node_modules/@pome-sh/shared-types/dist/errors.js.map +1 -0
  127. package/node_modules/@pome-sh/shared-types/dist/finalize-shapes.d.ts +252 -0
  128. package/node_modules/@pome-sh/shared-types/dist/finalize-shapes.js +122 -0
  129. package/node_modules/@pome-sh/shared-types/dist/finalize-shapes.js.map +1 -0
  130. package/node_modules/@pome-sh/shared-types/dist/identity.d.ts +90 -0
  131. package/node_modules/@pome-sh/shared-types/dist/identity.js +72 -0
  132. package/node_modules/@pome-sh/shared-types/dist/identity.js.map +1 -0
  133. package/node_modules/@pome-sh/shared-types/dist/index.d.ts +13 -1353
  134. package/node_modules/@pome-sh/shared-types/dist/index.js +14 -568
  135. package/node_modules/@pome-sh/shared-types/dist/index.js.map +1 -1
  136. package/node_modules/@pome-sh/shared-types/dist/otel/event-schema.d.ts +45 -0
  137. package/node_modules/@pome-sh/shared-types/dist/otel/legacy-shim.js +8 -0
  138. package/node_modules/@pome-sh/shared-types/dist/otel/legacy-shim.js.map +1 -1
  139. package/node_modules/@pome-sh/shared-types/dist/otel/semconv.js +7 -0
  140. package/node_modules/@pome-sh/shared-types/dist/otel/semconv.js.map +1 -1
  141. package/node_modules/@pome-sh/shared-types/dist/recorder-events.d.ts +62 -0
  142. package/node_modules/@pome-sh/shared-types/dist/recorder-events.js +36 -0
  143. package/node_modules/@pome-sh/shared-types/dist/recorder-events.js.map +1 -1
  144. package/node_modules/@pome-sh/shared-types/dist/rest.d.ts +245 -0
  145. package/node_modules/@pome-sh/shared-types/dist/rest.js +303 -0
  146. package/node_modules/@pome-sh/shared-types/dist/rest.js.map +1 -0
  147. package/node_modules/@pome-sh/shared-types/dist/run.d.ts +7 -0
  148. package/node_modules/@pome-sh/shared-types/dist/run.js +4 -0
  149. package/node_modules/@pome-sh/shared-types/dist/run.js.map +1 -1
  150. package/node_modules/@pome-sh/shared-types/dist/seed-envelope.d.ts +14 -0
  151. package/node_modules/@pome-sh/shared-types/dist/seed-envelope.js +46 -0
  152. package/node_modules/@pome-sh/shared-types/dist/seed-envelope.js.map +1 -0
  153. package/node_modules/@pome-sh/shared-types/dist/seed-state.d.ts +446 -0
  154. package/node_modules/@pome-sh/shared-types/dist/seed-state.js +167 -0
  155. package/node_modules/@pome-sh/shared-types/dist/seed-state.js.map +1 -0
  156. package/node_modules/@pome-sh/shared-types/dist/sessions.d.ts +53 -0
  157. package/node_modules/@pome-sh/shared-types/dist/sessions.js +51 -0
  158. package/node_modules/@pome-sh/shared-types/dist/sessions.js.map +1 -0
  159. package/node_modules/@pome-sh/shared-types/dist/task.d.ts +485 -0
  160. package/node_modules/@pome-sh/shared-types/dist/task.js +60 -0
  161. package/node_modules/@pome-sh/shared-types/dist/task.js.map +1 -0
  162. package/node_modules/@pome-sh/shared-types/package.json +2 -1
  163. package/node_modules/@pome-sh/shared-types/trace-contract.json +1 -1
  164. package/node_modules/@pome-sh/twin-github/FIDELITY.md +127 -67
  165. package/node_modules/@pome-sh/twin-github/README.md +3 -7
  166. package/node_modules/@pome-sh/twin-github/dist/examples/claude-github-agent.js +4 -20
  167. package/node_modules/@pome-sh/twin-github/dist/examples/claude-github-agent.js.map +1 -1
  168. package/node_modules/@pome-sh/twin-github/dist/src/access-control.d.ts +3 -3
  169. package/node_modules/@pome-sh/twin-github/dist/src/domain.d.ts +141 -3
  170. package/node_modules/@pome-sh/twin-github/dist/src/domain.js +0 -0
  171. package/node_modules/@pome-sh/twin-github/dist/src/domain.js.map +1 -1
  172. package/node_modules/@pome-sh/twin-github/dist/src/routes.js +2 -0
  173. package/node_modules/@pome-sh/twin-github/dist/src/routes.js.map +1 -1
  174. package/node_modules/@pome-sh/twin-github/dist/src/seed.d.ts +1 -1
  175. package/node_modules/@pome-sh/twin-github/dist/src/serializers.d.ts +2 -2
  176. package/node_modules/@pome-sh/twin-github/dist/src/server.js +7 -6
  177. package/node_modules/@pome-sh/twin-github/dist/src/server.js.map +1 -1
  178. package/node_modules/@pome-sh/twin-github/dist/src/tools.d.ts +168 -18
  179. package/node_modules/@pome-sh/twin-github/dist/src/tools.js +23 -0
  180. package/node_modules/@pome-sh/twin-github/dist/src/tools.js.map +1 -1
  181. package/node_modules/@pome-sh/twin-github/fidelity.inventory.json +773 -0
  182. package/node_modules/@pome-sh/twin-github/package.json +5 -4
  183. package/node_modules/@pome-sh/twin-slack/FIDELITY.md +121 -35
  184. package/node_modules/@pome-sh/twin-slack/README.md +2 -6
  185. package/node_modules/@pome-sh/twin-slack/dist/scripts/fidelity-parity.d.ts +1 -0
  186. package/node_modules/@pome-sh/twin-slack/dist/scripts/fidelity-parity.js +92 -0
  187. package/node_modules/@pome-sh/twin-slack/dist/scripts/fidelity-parity.js.map +1 -0
  188. package/node_modules/@pome-sh/twin-slack/dist/scripts/smoke.js +3 -3
  189. package/node_modules/@pome-sh/twin-slack/dist/scripts/smoke.js.map +1 -1
  190. package/node_modules/@pome-sh/twin-slack/dist/scripts/validate-mcp.js +1 -1
  191. package/node_modules/@pome-sh/twin-slack/dist/scripts/validate-mcp.js.map +1 -1
  192. package/node_modules/@pome-sh/twin-slack/dist/src/server.js +7 -6
  193. package/node_modules/@pome-sh/twin-slack/dist/src/server.js.map +1 -1
  194. package/node_modules/@pome-sh/twin-slack/dist/src/tools.d.ts +30 -4
  195. package/node_modules/@pome-sh/twin-slack/dist/src/tools.js +48 -1
  196. package/node_modules/@pome-sh/twin-slack/dist/src/tools.js.map +1 -1
  197. package/node_modules/@pome-sh/twin-slack/fidelity.inventory.json +377 -0
  198. package/node_modules/@pome-sh/twin-slack/package.json +5 -4
  199. package/node_modules/@pome-sh/twin-stripe/FIDELITY.md +151 -50
  200. package/node_modules/@pome-sh/twin-stripe/README.md +42 -45
  201. package/node_modules/@pome-sh/twin-stripe/dist/scripts/fidelity-parity.d.ts +1 -0
  202. package/node_modules/@pome-sh/twin-stripe/dist/scripts/fidelity-parity.js +186 -0
  203. package/node_modules/@pome-sh/twin-stripe/dist/scripts/fidelity-parity.js.map +1 -0
  204. package/node_modules/@pome-sh/twin-stripe/dist/scripts/smoke.js +8 -4
  205. package/node_modules/@pome-sh/twin-stripe/dist/scripts/smoke.js.map +1 -1
  206. package/node_modules/@pome-sh/twin-stripe/dist/src/db.js +26 -2
  207. package/node_modules/@pome-sh/twin-stripe/dist/src/db.js.map +1 -1
  208. package/node_modules/@pome-sh/twin-stripe/dist/src/domain/billing.d.ts +101 -0
  209. package/node_modules/@pome-sh/twin-stripe/dist/src/domain/billing.js +195 -0
  210. package/node_modules/@pome-sh/twin-stripe/dist/src/domain/billing.js.map +1 -0
  211. package/node_modules/@pome-sh/twin-stripe/dist/src/domain/charges.d.ts +15 -1
  212. package/node_modules/@pome-sh/twin-stripe/dist/src/domain/charges.js +17 -5
  213. package/node_modules/@pome-sh/twin-stripe/dist/src/domain/charges.js.map +1 -1
  214. package/node_modules/@pome-sh/twin-stripe/dist/src/domain/customers.d.ts +47 -0
  215. package/node_modules/@pome-sh/twin-stripe/dist/src/domain/customers.js +103 -0
  216. package/node_modules/@pome-sh/twin-stripe/dist/src/domain/customers.js.map +1 -0
  217. package/node_modules/@pome-sh/twin-stripe/dist/src/domain/events.d.ts +1 -1
  218. package/node_modules/@pome-sh/twin-stripe/dist/src/domain/events.js.map +1 -1
  219. package/node_modules/@pome-sh/twin-stripe/dist/src/domain/index.d.ts +6 -0
  220. package/node_modules/@pome-sh/twin-stripe/dist/src/domain/index.js +3 -0
  221. package/node_modules/@pome-sh/twin-stripe/dist/src/domain/index.js.map +1 -1
  222. package/node_modules/@pome-sh/twin-stripe/dist/src/domain/payment-intents.d.ts +61 -2
  223. package/node_modules/@pome-sh/twin-stripe/dist/src/domain/payment-intents.js +214 -52
  224. package/node_modules/@pome-sh/twin-stripe/dist/src/domain/payment-intents.js.map +1 -1
  225. package/node_modules/@pome-sh/twin-stripe/dist/src/domain/payment-methods.d.ts +45 -0
  226. package/node_modules/@pome-sh/twin-stripe/dist/src/domain/payment-methods.js +159 -0
  227. package/node_modules/@pome-sh/twin-stripe/dist/src/domain/payment-methods.js.map +1 -0
  228. package/node_modules/@pome-sh/twin-stripe/dist/src/domain/refunds.d.ts +6 -0
  229. package/node_modules/@pome-sh/twin-stripe/dist/src/domain/refunds.js +16 -0
  230. package/node_modules/@pome-sh/twin-stripe/dist/src/domain/refunds.js.map +1 -1
  231. package/node_modules/@pome-sh/twin-stripe/dist/src/domain/schema.d.ts +1 -0
  232. package/node_modules/@pome-sh/twin-stripe/dist/src/domain/schema.js +144 -1
  233. package/node_modules/@pome-sh/twin-stripe/dist/src/domain/schema.js.map +1 -1
  234. package/node_modules/@pome-sh/twin-stripe/dist/src/domain/stripe-domain.d.ts +420 -43
  235. package/node_modules/@pome-sh/twin-stripe/dist/src/domain/stripe-domain.js +442 -13
  236. package/node_modules/@pome-sh/twin-stripe/dist/src/domain/stripe-domain.js.map +1 -1
  237. package/node_modules/@pome-sh/twin-stripe/dist/src/errors.d.ts +19 -0
  238. package/node_modules/@pome-sh/twin-stripe/dist/src/errors.js +15 -1
  239. package/node_modules/@pome-sh/twin-stripe/dist/src/errors.js.map +1 -1
  240. package/node_modules/@pome-sh/twin-stripe/dist/src/ids.d.ts +2 -0
  241. package/node_modules/@pome-sh/twin-stripe/dist/src/ids.js +2 -0
  242. package/node_modules/@pome-sh/twin-stripe/dist/src/ids.js.map +1 -1
  243. package/node_modules/@pome-sh/twin-stripe/dist/src/routes/_helpers.d.ts +8 -0
  244. package/node_modules/@pome-sh/twin-stripe/dist/src/routes/_helpers.js +105 -1
  245. package/node_modules/@pome-sh/twin-stripe/dist/src/routes/_helpers.js.map +1 -1
  246. package/node_modules/@pome-sh/twin-stripe/dist/src/routes/billing.d.ts +4 -0
  247. package/node_modules/@pome-sh/twin-stripe/dist/src/routes/billing.js +117 -0
  248. package/node_modules/@pome-sh/twin-stripe/dist/src/routes/billing.js.map +1 -0
  249. package/node_modules/@pome-sh/twin-stripe/dist/src/routes/customers.d.ts +4 -0
  250. package/node_modules/@pome-sh/twin-stripe/dist/src/routes/customers.js +47 -0
  251. package/node_modules/@pome-sh/twin-stripe/dist/src/routes/customers.js.map +1 -0
  252. package/node_modules/@pome-sh/twin-stripe/dist/src/routes/index.js +6 -0
  253. package/node_modules/@pome-sh/twin-stripe/dist/src/routes/index.js.map +1 -1
  254. package/node_modules/@pome-sh/twin-stripe/dist/src/routes/payment-intents.js +28 -102
  255. package/node_modules/@pome-sh/twin-stripe/dist/src/routes/payment-intents.js.map +1 -1
  256. package/node_modules/@pome-sh/twin-stripe/dist/src/routes/payment-methods.d.ts +4 -0
  257. package/node_modules/@pome-sh/twin-stripe/dist/src/routes/payment-methods.js +33 -0
  258. package/node_modules/@pome-sh/twin-stripe/dist/src/routes/payment-methods.js.map +1 -0
  259. package/node_modules/@pome-sh/twin-stripe/dist/src/seed.d.ts +10 -8
  260. package/node_modules/@pome-sh/twin-stripe/dist/src/seed.js +3 -2
  261. package/node_modules/@pome-sh/twin-stripe/dist/src/seed.js.map +1 -1
  262. package/node_modules/@pome-sh/twin-stripe/dist/src/serializers.d.ts +181 -21
  263. package/node_modules/@pome-sh/twin-stripe/dist/src/serializers.js +257 -34
  264. package/node_modules/@pome-sh/twin-stripe/dist/src/serializers.js.map +1 -1
  265. package/node_modules/@pome-sh/twin-stripe/dist/src/server.js +7 -6
  266. package/node_modules/@pome-sh/twin-stripe/dist/src/server.js.map +1 -1
  267. package/node_modules/@pome-sh/twin-stripe/dist/src/tools.d.ts +107 -5
  268. package/node_modules/@pome-sh/twin-stripe/dist/src/tools.js +139 -6
  269. package/node_modules/@pome-sh/twin-stripe/dist/src/tools.js.map +1 -1
  270. package/node_modules/@pome-sh/twin-stripe/dist/src/types.d.ts +73 -0
  271. package/node_modules/@pome-sh/twin-stripe/dist/src/upstream-types.d.ts +8 -0
  272. package/node_modules/@pome-sh/twin-stripe/dist/src/x402.js +6 -1
  273. package/node_modules/@pome-sh/twin-stripe/dist/src/x402.js.map +1 -1
  274. package/node_modules/@pome-sh/twin-stripe/fidelity.inventory.json +425 -0
  275. package/node_modules/@pome-sh/twin-stripe/package.json +5 -4
  276. package/package.json +8 -8
  277. package/skills/pome-setup/SKILL.md +1 -1
@@ -0,0 +1,303 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ //
3
+ // shared-types §4 — PUBLIC REST API (api.pome.sh/v1) request/response shapes,
4
+ // excluding the /finalize response family (see `./finalize-shapes.ts`). The two
5
+ // module-private helpers (`normalizeCreateSessionResponse` and the
6
+ // `*ObjectSchema` consts wrapped by z.preprocess) stay co-located with their
7
+ // exported consumers here. Re-exported through the `@pome-sh/shared-types` barrel.
8
+ import { z } from "zod";
9
+ import { apiKeySchema, planTierSchema, teamInviteSchema, teamRoleSchema, teamSchema, userSchema, } from "./identity.js";
10
+ import { criterionResultSchema, judgeModelSchema, laneSchema, stepSchema } from "./run.js";
11
+ import { normalizeTaskVocabKeys } from "./task-vocab.js";
12
+ // ─────────────────────────────────────────────────────────────────────────────
13
+ // 4. PUBLIC REST API (api.pome.sh/v1) request/response shapes
14
+ // ─────────────────────────────────────────────────────────────────────────────
15
+ // GET /v1/me
16
+ export const meResponseSchema = z.object({
17
+ user: userSchema.pick({ id: true, email: true }),
18
+ team: teamSchema.pick({ id: true, slug: true, plan_tier: true }),
19
+ api_key: apiKeySchema.pick({ id: true, name: true }),
20
+ });
21
+ // POST /v1/sessions
22
+ //
23
+ // W3 vocab (FDRS-653): `task_source` / `task_id` are canonical; the exported
24
+ // schema wraps this object in the tolerant-reader preprocess so 0.3.0 CLIs
25
+ // sending `scenario_source` / `scenario_id` keep working unchanged.
26
+ const createSessionRequestObjectSchema = z
27
+ .object({
28
+ // Multi-twin (M3): multi-twin arrays are now honored — the cloud provisions
29
+ // one isolated sandbox per twin. Max 3 twins per session; the cap is
30
+ // enforced cloud-side, so we deliberately do NOT add a `.max()` here (the
31
+ // boundary stays permissive and the cloud owns the quota rule). `twins[0]`
32
+ // is the session's primary twin — the default attribution for criteria and
33
+ // state that omit an explicit twin.
34
+ //
35
+ // Back-compat (the whole M3 contract): a single-twin `twins` array plus none
36
+ // of the new optional fields below is byte-identical to pre-M3 behavior, so
37
+ // (old CLI × new cloud) is unchanged. (new CLI × old cloud) with >1 twin is
38
+ // rejected by the cloud with 422 `multi_twin_unsupported`; a single-twin
39
+ // request degrades gracefully because every new field is optional and
40
+ // non-strict readers strip unknown keys rather than erroring.
41
+ twins: z.array(z.string()).min(1).default(["github"]),
42
+ task_source: z.string().optional(), // base64-encoded UTF-8 markdown; 0.3.0 alias: scenario_source
43
+ task_id: z.string().optional(), // alternative: stored task; 0.3.0 alias: scenario_id
44
+ // FDRS-580 / ADR-015 (adopted from pome-cloud, FDRS-613): the seed override
45
+ // is a PERMISSIVE, shape-blind boundary. The twin pod's own `parseSeed` is
46
+ // the sole authority on the seed's domain shape; the cloud forwards it
47
+ // verbatim. `z.record` keeps the one invariant that is the boundary's
48
+ // business — "the seed is a JSON object" — while forwarding every domain
49
+ // field, known or not, untouched. Do NOT re-narrow to `seedStateSchema`
50
+ // here: a narrow `.object()` strips unknown keys, which is how PR-based
51
+ // scenarios lost their `users` / `pull_requests` / `files`.
52
+ seed: z.record(z.string(), z.unknown()).optional(), // optional override
53
+ // M3: client-supplied UUID v4 used for 30s server-side dedupe of
54
+ // POST /v1/sessions. The dashboard generates one per Start-button click;
55
+ // legacy clients work without it.
56
+ idempotency_key: z.string().uuid().optional(),
57
+ // M3 / FDRS-636: client-minted trial-group identity — `pome run -n k`
58
+ // (and `pome demo`) stamp one id per invocation, shared by all k trial
59
+ // sessions. The cloud copies it onto sessions.group_id at mint and onto
60
+ // runs.group_id at finalize; the demo/eval mints already accept the same
61
+ // field. Format mirrors the cloud's GROUP_ID_RE. Legacy clients omit it.
62
+ group_id: z.string().regex(/^[A-Za-z0-9_-]{6,64}$/).optional(),
63
+ })
64
+ .refine((v) => Boolean(v.task_source) !== Boolean(v.task_id), { message: "Provide exactly one of task_source or task_id (scenario_source / scenario_id are accepted 0.3.0 aliases)" });
65
+ // Tolerant reader (FDRS-653): accepts both vocabularies, normalizes to task_*.
66
+ export const createSessionRequestSchema = z.preprocess(normalizeTaskVocabKeys, createSessionRequestObjectSchema);
67
+ function normalizeCreateSessionResponse(value) {
68
+ if (value === null || typeof value !== "object" || Array.isArray(value)) {
69
+ return value;
70
+ }
71
+ const record = value;
72
+ if (typeof record.session_id !== "string" ||
73
+ typeof record.twin_url !== "string" ||
74
+ typeof record.openapi_url !== "string") {
75
+ return value;
76
+ }
77
+ let twin = "github";
78
+ try {
79
+ const [, parsedTwin] = new URL(record.twin_url).pathname.split("/");
80
+ if (parsedTwin !== undefined && parsedTwin.length > 0)
81
+ twin = parsedTwin;
82
+ }
83
+ catch {
84
+ // Schema validation below will report the invalid URL.
85
+ }
86
+ const apiUrl = record.twin_url;
87
+ const mcpUrl = typeof apiUrl === "string" && apiUrl.startsWith("https://api.pome.sh/")
88
+ ? apiUrl.replace("https://api.pome.sh/", "https://mcp.pome.sh/")
89
+ : apiUrl;
90
+ return {
91
+ ...record,
92
+ session_token: record.session_token ?? record.session_id,
93
+ per_twin: record.per_twin ??
94
+ {
95
+ [twin]: {
96
+ api_url: apiUrl,
97
+ mcp_url: mcpUrl,
98
+ openapi_url: record.openapi_url,
99
+ },
100
+ },
101
+ };
102
+ }
103
+ // M3 response shape: one session, N twins, one set of URLs per twin under
104
+ // `per_twin{}`. Legacy single-twin fields `twin_url` + `openapi_url` continue
105
+ // to be populated as `per_twin[twins[0]].api_url` / `.openapi_url` for ≥1 OSS
106
+ // CLI release. `session_token` is the public token used in URLs — same value as
107
+ // `session_id` in V1, but named separately so URL-shaped consumers stop reading
108
+ // internal-id-shaped fields. Both `session_token` and `per_twin` reconciled
109
+ // from pome-cloud /v1 wire truth (FDRS-613).
110
+ export const createSessionResponseSchema = z.preprocess(normalizeCreateSessionResponse, z.object({
111
+ session_id: z.string(),
112
+ session_token: z.string(), // = session_id in V1; public URL token
113
+ twin_url: z.string().url(), // legacy: = per_twin[twins[0]].api_url
114
+ expires_at: z.string().datetime(),
115
+ agent_token: z.string(), // edt_<jwt>; SENSITIVE — never log; CLI memory only; bearer scoped to session TTL
116
+ provider_credentials: z
117
+ .object({
118
+ github: z
119
+ .object({
120
+ token: z.string(),
121
+ header: z.literal("Authorization"),
122
+ scheme: z.literal("Bearer"),
123
+ })
124
+ .optional(),
125
+ stripe: z
126
+ .object({
127
+ api_key: z.string(),
128
+ header: z.literal("Authorization"),
129
+ scheme: z.literal("Bearer"),
130
+ })
131
+ .optional(),
132
+ slack: z
133
+ .object({
134
+ token: z.string(),
135
+ header: z.literal("Authorization"),
136
+ scheme: z.literal("Bearer"),
137
+ })
138
+ .optional(),
139
+ })
140
+ .default({}),
141
+ openapi_url: z.string().url(), // legacy: = per_twin[twins[0]].openapi_url
142
+ per_twin: z.record(z.string(), z.object({
143
+ api_url: z.string().url(), // api.pome.sh/<twin>/<session_token>
144
+ mcp_url: z.string().url(), // mcp.pome.sh/<twin>/<session_token> (501 stub in V1)
145
+ openapi_url: z.string().url(),
146
+ })),
147
+ }));
148
+ // POST /v1/sessions/{id}/result — SYNCHRONOUS. CLI scores locally (BYOK Flavor #1) then POSTs.
149
+ //
150
+ // Cloud never sees the customer's LLM key, never invokes any LLM provider,
151
+ // never holds `agent_stdout` (which would contain the agent's prompts and
152
+ // completions). Trace blobs (twin's HTTP request/response captures) ARE
153
+ // uploaded — those are the agent's tool calls against the twin, not LLM data.
154
+ //
155
+ // (Cloud-side note: cloud V1 treats /result as a legacy shim — new CLIs upload
156
+ // blobs via presigned URLs and call /finalize with ADR-013's managed judge.
157
+ // The shape below stays the wire contract either way.)
158
+ //
159
+ // Multi-twin (M3): per-twin state storage keys, keyed by twin id. Each entry
160
+ // carries the storage KEYS (not URLs) the CLI uploaded that twin's initial /
161
+ // final state blobs to. One entry per twin the session provisioned. Single-twin
162
+ // sessions omit this and keep using the flat top-level state fields. Additive:
163
+ // an older cloud that does not read this field strips it and scores the primary
164
+ // twin unchanged. Consumed by `finalizeRequestSchema` (finalize-shapes.ts) — the
165
+ // LIVE scoring wire — as the optional `per_twin_state_keys` field; defined here
166
+ // alongside the other §4 state-storage-key shapes.
167
+ export const perTwinStateKeysSchema = z.record(z.string(), z
168
+ .object({
169
+ state_initial_key: z.string().min(1).optional(),
170
+ state_final_key: z.string().min(1).optional(),
171
+ })
172
+ // A twin entry must carry AT LEAST ONE storage key — an empty `{}` conveys
173
+ // nothing and is almost always a serialization bug. Both keys stay
174
+ // individually optional: final-only is legal (initial state is optional in
175
+ // the single-twin contract too — `state_initial_json_b64` can be an empty
176
+ // snapshot), and initial-only is legal symmetrically.
177
+ .refine((v) => v.state_initial_key !== undefined || v.state_final_key !== undefined, { message: "Each twin entry must carry at least one of state_initial_key or state_final_key" }));
178
+ // W3 vocab (FDRS-653): `task_name` / `task_hash` canonical; the exported
179
+ // schema accepts 0.3.0 CLIs' `scenario_name` / `scenario_hash` and criterion
180
+ // kinds D/P inside `criteria_results`, normalizing both.
181
+ const submitResultRequestObjectSchema = z.object({
182
+ task_name: z.string(), // 0.3.0 alias: scenario_name
183
+ task_hash: z.string(), // 0.3.0 alias: scenario_hash
184
+ duration_ms: z.number().int(),
185
+ agent_model: z.string(),
186
+ // CLI-computed scoring fields (server-trusted; under BYOK there's nothing
187
+ // billing-sensitive to spoof — we don't bill on judge cost):
188
+ satisfaction_score: z.number().int().min(0).max(100),
189
+ criteria_results: z.array(criterionResultSchema),
190
+ judge_model: judgeModelSchema,
191
+ judge_tokens_in: z.number().int().min(0).nullable(),
192
+ judge_tokens_out: z.number().int().min(0).nullable(),
193
+ // Correlator output + fix-prompt from CLI (post-M3i). Defaults supplied for
194
+ // backward compat during the M3i rollout — older CLIs that omit these still
195
+ // submit successfully and the run lands as a "legacy" row (empty lanes/steps,
196
+ // null fix_prompt). When all CLIs are M3i+, tighten by removing defaults.
197
+ lanes: z.array(laneSchema).default([]),
198
+ steps: z.array(stepSchema).default([]),
199
+ fix_prompt: z.string().nullable().default(null),
200
+ // FDRS-357 (adopted from pome-cloud, FDRS-613): storage key (NOT URL) returned
201
+ // by POST /v1/sessions/:id/result-upload-url. Null on upload failure
202
+ // (best-effort), --no-upload opt-out, or pre-FDRS-357 CLI.
203
+ events_jsonl_url: z.string().nullable().default(null),
204
+ // Trace blobs — safe to upload (HTTP between agent and twin, not LLM prompts):
205
+ trace_jsonl_b64: z.string(),
206
+ state_initial_json_b64: z.string(),
207
+ state_final_json_b64: z.string(),
208
+ // NOTE: agent_stdout is intentionally NOT in this request. Cloud never
209
+ // receives the agent's prompts or completions. The CLI uses agent_stdout
210
+ // locally for the [model] judge then discards it.
211
+ });
212
+ // Tolerant reader (FDRS-653): accepts both vocabularies, normalizes to task_*.
213
+ export const submitResultRequestSchema = z.preprocess(normalizeTaskVocabKeys, submitResultRequestObjectSchema);
214
+ export const submitResultResponseSchema = z.object({
215
+ run_id: z.string(),
216
+ dashboard_url: z.string().url(),
217
+ });
218
+ // POST /v1/eval-sessions — mints a twin-less session for `pome eval <run-dir>`.
219
+ export const createEvalSessionResponseSchema = z.object({
220
+ session_id: z.string(),
221
+ expires_at: z.string(),
222
+ });
223
+ export const criterionDefSchema = z.object({
224
+ id: z.string().min(1),
225
+ text: z.string().min(1),
226
+ kind: z.enum(["D", "P"]),
227
+ // Multi-twin (M3): the twin a [D:<twin>]/[P:<twin>] scenario criterion
228
+ // attributes to. Absent = the session's primary twin (twins[0]). Additive —
229
+ // single-twin scenarios omit it and score against the sole twin as before.
230
+ twin: z.string().min(1).optional(),
231
+ });
232
+ // POST /v1/agents — register an agent (vercel-link shape). The server is
233
+ // canonical for the slug; the CLI persists whatever id/slug it returns.
234
+ export const createAgentRequestSchema = z.object({
235
+ name: z.string().min(1),
236
+ // Multi-twin (M3): the twins this agent is allowed to exercise. Absent = the
237
+ // server's default enablement. The cloud intersects a session's requested
238
+ // twins with the agent's enabled services. Additive; older clients omit it.
239
+ twins: z.array(z.string()).min(1).optional(),
240
+ });
241
+ // POST /v1/agents response. Not `.strict()`: the cloud may emit additive fields
242
+ // that older/newer CLIs strip rather than reject (tolerant reader).
243
+ export const agentResponseSchema = z.object({
244
+ id: z.string(), // agt_<nanoid>
245
+ slug: z.string(),
246
+ display_name: z.string(),
247
+ judge_model: z.string(),
248
+ // Multi-twin (M3): the services (twins) this agent may exercise. Absent on an
249
+ // older cloud; new CLIs treat absence as "unconstrained / server default".
250
+ enabled_services: z.array(z.string()).optional(),
251
+ });
252
+ // POST /v1/sessions/:id/state-upload-url response — a presigned PUT URL + the
253
+ // storage KEY (not a URL) for each of the initial and final state blobs. Mirrors
254
+ // the sibling *-upload-url routes' `{ url, key }` entry, but returns the
255
+ // initial/final pair in a single call.
256
+ export const stateUploadUrlEntrySchema = z.object({
257
+ url: z.string().url(),
258
+ key: z.string().min(1),
259
+ });
260
+ export const stateUploadUrlResponseSchema = z.object({
261
+ state_initial: stateUploadUrlEntrySchema,
262
+ state_final: stateUploadUrlEntrySchema,
263
+ // Multi-twin (M3): one initial/final URL+key pair per twin, keyed by twin id,
264
+ // so each twin's state blobs land under its own storage prefix. Absent on
265
+ // single-twin sessions and on an older cloud, where the top-level pair is
266
+ // authoritative (new CLI × old cloud degrades gracefully).
267
+ per_twin: z
268
+ .record(z.string(), z.object({
269
+ state_initial: stateUploadUrlEntrySchema,
270
+ state_final: stateUploadUrlEntrySchema,
271
+ }))
272
+ .optional(),
273
+ });
274
+ // GET /v1/usage — live concurrent-session quota snapshot.
275
+ // FDRS-613: `sessions_remaining` tightened to `.int().min(0)` to match the
276
+ // pome-cloud /v1 wire truth (cloud clamps remaining at 0 rather than exposing
277
+ // negative overage on this live snapshot).
278
+ export const usageResponseSchema = z.object({
279
+ period_start: z.string().datetime(),
280
+ period_end: z.string().datetime(),
281
+ sessions_used: z.number().int().min(0),
282
+ sessions_quota: z.number().int().min(0),
283
+ sessions_remaining: z.number().int().min(0),
284
+ plan_tier: planTierSchema,
285
+ });
286
+ // POST /v1/teams/{id}/invites
287
+ export const createInviteRequestSchema = z.object({
288
+ email: z.string().email(),
289
+ role: teamRoleSchema.default("member"),
290
+ });
291
+ export const createInviteResponseSchema = z.object({
292
+ invite: teamInviteSchema,
293
+ invite_url: z.string().url(), // "https://pome.sh/invites/<token>"
294
+ });
295
+ // POST /v1/invites/{token}/accept (cloud surface: dashboard tRPC invites.accept)
296
+ export const acceptInviteRequestSchema = z.object({
297
+ token: z.string().min(16),
298
+ });
299
+ export const acceptInviteResponseSchema = z.object({
300
+ team_id: z.string(),
301
+ role: teamRoleSchema,
302
+ });
303
+ //# sourceMappingURL=rest.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rest.js","sourceRoot":"","sources":["../src/rest.ts"],"names":[],"mappings":"AAAA,sCAAsC;AACtC,EAAE;AACF,8EAA8E;AAC9E,gFAAgF;AAChF,mEAAmE;AACnE,6EAA6E;AAC7E,mFAAmF;AAEnF,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EACL,YAAY,EACZ,cAAc,EACd,gBAAgB,EAChB,cAAc,EACd,UAAU,EACV,UAAU,GACX,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAC3F,OAAO,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AAEzD,gFAAgF;AAChF,8DAA8D;AAC9D,gFAAgF;AAEhF,aAAa;AACb,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC;IACvC,IAAI,EAAE,UAAU,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;IAChD,IAAI,EAAE,UAAU,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;IAChE,OAAO,EAAE,YAAY,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;CACrD,CAAC,CAAC;AAGH,oBAAoB;AACpB,EAAE;AACF,6EAA6E;AAC7E,2EAA2E;AAC3E,oEAAoE;AACpE,MAAM,gCAAgC,GAAG,CAAC;KACvC,MAAM,CAAC;IACN,4EAA4E;IAC5E,qEAAqE;IACrE,0EAA0E;IAC1E,2EAA2E;IAC3E,2EAA2E;IAC3E,oCAAoC;IACpC,EAAE;IACF,6EAA6E;IAC7E,4EAA4E;IAC5E,4EAA4E;IAC5E,yEAAyE;IACzE,sEAAsE;IACtE,8DAA8D;IAC9D,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,CAAC;IACrD,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAS,8DAA8D;IACzG,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAa,qDAAqD;IAChG,4EAA4E;IAC5E,2EAA2E;IAC3E,uEAAuE;IACvE,sEAAsE;IACtE,yEAAyE;IACzE,wEAAwE;IACxE,wEAAwE;IACxE,4DAA4D;IAC5D,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,EAAE,EAAE,oBAAoB;IACxE,iEAAiE;IACjE,yEAAyE;IACzE,kCAAkC;IAClC,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE;IAC7C,sEAAsE;IACtE,uEAAuE;IACvE,wEAAwE;IACxE,yEAAyE;IACzE,yEAAyE;IACzE,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC,QAAQ,EAAE;CAC/D,CAAC;KACD,MAAM,CACL,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,EACpD,EAAE,OAAO,EAAE,0GAA0G,EAAE,CACxH,CAAC;AAEJ,+EAA+E;AAC/E,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,CAAC,UAAU,CACpD,sBAAsB,EACtB,gCAAgC,CACjC,CAAC;AAGF,SAAS,8BAA8B,CAAC,KAAc;IACpD,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACxE,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,MAAM,GAAG,KAAgC,CAAC;IAChD,IACE,OAAO,MAAM,CAAC,UAAU,KAAK,QAAQ;QACrC,OAAO,MAAM,CAAC,QAAQ,KAAK,QAAQ;QACnC,OAAO,MAAM,CAAC,WAAW,KAAK,QAAQ,EACtC,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,IAAI,GAAG,QAAQ,CAAC;IACpB,IAAI,CAAC;QACH,MAAM,CAAC,EAAE,UAAU,CAAC,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACpE,IAAI,UAAU,KAAK,SAAS,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC;YAAE,IAAI,GAAG,UAAU,CAAC;IAC3E,CAAC;IAAC,MAAM,CAAC;QACP,uDAAuD;IACzD,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC;IAC/B,MAAM,MAAM,GACV,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,CAAC,UAAU,CAAC,sBAAsB,CAAC;QACrE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,sBAAsB,EAAE,sBAAsB,CAAC;QAChE,CAAC,CAAC,MAAM,CAAC;IAEb,OAAO;QACL,GAAG,MAAM;QACT,aAAa,EAAE,MAAM,CAAC,aAAa,IAAI,MAAM,CAAC,UAAU;QACxD,QAAQ,EACN,MAAM,CAAC,QAAQ;YACf;gBACE,CAAC,IAAI,CAAC,EAAE;oBACN,OAAO,EAAE,MAAM;oBACf,OAAO,EAAE,MAAM;oBACf,WAAW,EAAE,MAAM,CAAC,WAAW;iBAChC;aACF;KACJ,CAAC;AACJ,CAAC;AAED,0EAA0E;AAC1E,8EAA8E;AAC9E,8EAA8E;AAC9E,gFAAgF;AAChF,gFAAgF;AAChF,4EAA4E;AAC5E,6CAA6C;AAC7C,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC,CAAC,UAAU,CAAC,8BAA8B,EAAE,CAAC,CAAC,MAAM,CAAC;IAC/F,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE;IACtB,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,EAAoB,uCAAuC;IACpF,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,EAAmB,uCAAuC;IACpF,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACjC,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,EAAsB,kFAAkF;IAC/H,oBAAoB,EAAE,CAAC;SACpB,MAAM,CAAC;QACN,MAAM,EAAE,CAAC;aACN,MAAM,CAAC;YACN,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;YACjB,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,eAAe,CAAC;YAClC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC;SAC5B,CAAC;aACD,QAAQ,EAAE;QACb,MAAM,EAAE,CAAC;aACN,MAAM,CAAC;YACN,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;YACnB,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,eAAe,CAAC;YAClC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC;SAC5B,CAAC;aACD,QAAQ,EAAE;QACb,KAAK,EAAE,CAAC;aACL,MAAM,CAAC;YACN,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;YACjB,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,eAAe,CAAC;YAClC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC;SAC5B,CAAC;aACD,QAAQ,EAAE;KACd,CAAC;SACD,OAAO,CAAC,EAAE,CAAC;IACd,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,EAAgB,2CAA2C;IACxF,QAAQ,EAAE,CAAC,CAAC,MAAM,CAChB,CAAC,CAAC,MAAM,EAAE,EACV,CAAC,CAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,EAAgB,qCAAqC;QAC9E,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,EAAgB,sDAAsD;QAC/F,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE;KAC9B,CAAC,CACH;CACF,CAAC,CAAC,CAAC;AAGJ,+FAA+F;AAC/F,EAAE;AACF,2EAA2E;AAC3E,0EAA0E;AAC1E,wEAAwE;AACxE,8EAA8E;AAC9E,EAAE;AACF,+EAA+E;AAC/E,4EAA4E;AAC5E,uDAAuD;AACvD,EAAE;AACF,6EAA6E;AAC7E,6EAA6E;AAC7E,gFAAgF;AAChF,+EAA+E;AAC/E,gFAAgF;AAChF,iFAAiF;AACjF,gFAAgF;AAChF,mDAAmD;AACnD,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAC,MAAM,CAC5C,CAAC,CAAC,MAAM,EAAE,EACV,CAAC;KACE,MAAM,CAAC;IACN,iBAAiB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IAC/C,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;CAC9C,CAAC;IACF,2EAA2E;IAC3E,mEAAmE;IACnE,2EAA2E;IAC3E,0EAA0E;IAC1E,sDAAsD;KACrD,MAAM,CACL,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,iBAAiB,KAAK,SAAS,IAAI,CAAC,CAAC,eAAe,KAAK,SAAS,EAC3E,EAAE,OAAO,EAAE,iFAAiF,EAAE,CAC/F,CACJ,CAAC;AAGF,yEAAyE;AACzE,6EAA6E;AAC7E,yDAAyD;AACzD,MAAM,+BAA+B,GAAG,CAAC,CAAC,MAAM,CAAC;IAC/C,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,EAAwB,6BAA6B;IAC1E,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,EAAwB,6BAA6B;IAC1E,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE;IAC7B,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE;IACvB,0EAA0E;IAC1E,6DAA6D;IAC7D,kBAAkB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;IACpD,gBAAgB,EAAE,CAAC,CAAC,KAAK,CAAC,qBAAqB,CAAC;IAChD,WAAW,EAAE,gBAAgB;IAC7B,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IACnD,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IACpD,4EAA4E;IAC5E,4EAA4E;IAC5E,8EAA8E;IAC9E,0EAA0E;IAC1E,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IACtC,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IACtC,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;IAC/C,+EAA+E;IAC/E,qEAAqE;IACrE,2DAA2D;IAC3D,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;IACrD,+EAA+E;IAC/E,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE;IAC3B,sBAAsB,EAAE,CAAC,CAAC,MAAM,EAAE;IAClC,oBAAoB,EAAE,CAAC,CAAC,MAAM,EAAE;IAChC,uEAAuE;IACvE,yEAAyE;IACzE,kDAAkD;CACnD,CAAC,CAAC;AAEH,+EAA+E;AAC/E,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,CAAC,UAAU,CACnD,sBAAsB,EACtB,+BAA+B,CAChC,CAAC;AAGF,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,CAAC,MAAM,CAAC;IACjD,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;IAClB,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE;CAChC,CAAC,CAAC;AAGH,gFAAgF;AAChF,MAAM,CAAC,MAAM,+BAA+B,GAAG,CAAC,CAAC,MAAM,CAAC;IACtD,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE;IACtB,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE;CACvB,CAAC,CAAC;AAGH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IACzC,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACrB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACvB,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IACxB,uEAAuE;IACvE,4EAA4E;IAC5E,2EAA2E;IAC3E,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;CACnC,CAAC,CAAC;AAGH,yEAAyE;AACzE,wEAAwE;AACxE,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC/C,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACvB,6EAA6E;IAC7E,0EAA0E;IAC1E,4EAA4E;IAC5E,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;CAC7C,CAAC,CAAC;AAGH,gFAAgF;AAChF,oEAAoE;AACpE,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC1C,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,EAA+B,eAAe;IAC5D,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE;IACxB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE;IACvB,8EAA8E;IAC9E,2EAA2E;IAC3E,gBAAgB,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;CACjD,CAAC,CAAC;AAGH,8EAA8E;AAC9E,iFAAiF;AACjF,yEAAyE;AACzE,uCAAuC;AACvC,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,CAAC,MAAM,CAAC;IAChD,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE;IACrB,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;CACvB,CAAC,CAAC;AAGH,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAAC,CAAC,MAAM,CAAC;IACnD,aAAa,EAAE,yBAAyB;IACxC,WAAW,EAAE,yBAAyB;IACtC,8EAA8E;IAC9E,0EAA0E;IAC1E,0EAA0E;IAC1E,2DAA2D;IAC3D,QAAQ,EAAE,CAAC;SACR,MAAM,CACL,CAAC,CAAC,MAAM,EAAE,EACV,CAAC,CAAC,MAAM,CAAC;QACP,aAAa,EAAE,yBAAyB;QACxC,WAAW,EAAE,yBAAyB;KACvC,CAAC,CACH;SACA,QAAQ,EAAE;CACd,CAAC,CAAC;AAGH,0DAA0D;AAC1D,2EAA2E;AAC3E,8EAA8E;AAC9E,2CAA2C;AAC3C,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC1C,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACnC,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACjC,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACtC,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACvC,kBAAkB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC3C,SAAS,EAAE,cAAc;CAC1B,CAAC,CAAC;AAGH,8BAA8B;AAC9B,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,CAAC,MAAM,CAAC;IAChD,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE;IACzB,IAAI,EAAE,cAAc,CAAC,OAAO,CAAC,QAAQ,CAAC;CACvC,CAAC,CAAC;AAGH,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,CAAC,MAAM,CAAC;IACjD,MAAM,EAAE,gBAAgB;IACxB,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,EAAiB,oCAAoC;CAClF,CAAC,CAAC;AAGH,iFAAiF;AACjF,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,CAAC,MAAM,CAAC;IAChD,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC;CAC1B,CAAC,CAAC;AAGH,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,CAAC,MAAM,CAAC;IACjD,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;IACnB,IAAI,EAAE,cAAc;CACrB,CAAC,CAAC"}
@@ -35,6 +35,7 @@ export declare const criterionSchema: z.ZodObject<{
35
35
  P: "P";
36
36
  }>, z.ZodTransform<"model" | "code", "model" | "code" | "D" | "P">>;
37
37
  text: z.ZodString;
38
+ twin: z.ZodOptional<z.ZodString>;
38
39
  }, z.core.$strip>;
39
40
  export type Criterion = z.infer<typeof criterionSchema>;
40
41
  export declare const deterministicCriterionResultSchema: z.ZodObject<{
@@ -46,6 +47,7 @@ export declare const deterministicCriterionResultSchema: z.ZodObject<{
46
47
  P: "P";
47
48
  }>, z.ZodTransform<"model" | "code", "model" | "code" | "D" | "P">>;
48
49
  text: z.ZodString;
50
+ twin: z.ZodOptional<z.ZodString>;
49
51
  }, z.core.$strip>;
50
52
  passed: z.ZodBoolean;
51
53
  skipped: z.ZodBoolean;
@@ -61,6 +63,7 @@ export declare const probabilisticCriterionResultSchema: z.ZodObject<{
61
63
  P: "P";
62
64
  }>, z.ZodTransform<"model" | "code", "model" | "code" | "D" | "P">>;
63
65
  text: z.ZodString;
66
+ twin: z.ZodOptional<z.ZodString>;
64
67
  }, z.core.$strip>;
65
68
  passed: z.ZodBoolean;
66
69
  skipped: z.ZodBoolean;
@@ -78,6 +81,7 @@ export declare const criterionResultSchema: z.ZodUnion<readonly [z.ZodObject<{
78
81
  P: "P";
79
82
  }>, z.ZodTransform<"model" | "code", "model" | "code" | "D" | "P">>;
80
83
  text: z.ZodString;
84
+ twin: z.ZodOptional<z.ZodString>;
81
85
  }, z.core.$strip>;
82
86
  passed: z.ZodBoolean;
83
87
  skipped: z.ZodBoolean;
@@ -93,6 +97,7 @@ export declare const criterionResultSchema: z.ZodUnion<readonly [z.ZodObject<{
93
97
  P: "P";
94
98
  }>, z.ZodTransform<"model" | "code", "model" | "code" | "D" | "P">>;
95
99
  text: z.ZodString;
100
+ twin: z.ZodOptional<z.ZodString>;
96
101
  }, z.core.$strip>;
97
102
  passed: z.ZodBoolean;
98
103
  skipped: z.ZodBoolean;
@@ -131,6 +136,7 @@ export declare const runSchema: z.ZodPreprocess<z.ZodObject<{
131
136
  P: "P";
132
137
  }>, z.ZodTransform<"model" | "code", "model" | "code" | "D" | "P">>;
133
138
  text: z.ZodString;
139
+ twin: z.ZodOptional<z.ZodString>;
134
140
  }, z.core.$strip>;
135
141
  passed: z.ZodBoolean;
136
142
  skipped: z.ZodBoolean;
@@ -146,6 +152,7 @@ export declare const runSchema: z.ZodPreprocess<z.ZodObject<{
146
152
  P: "P";
147
153
  }>, z.ZodTransform<"model" | "code", "model" | "code" | "D" | "P">>;
148
154
  text: z.ZodString;
155
+ twin: z.ZodOptional<z.ZodString>;
149
156
  }, z.core.$strip>;
150
157
  passed: z.ZodBoolean;
151
158
  skipped: z.ZodBoolean;
@@ -44,6 +44,10 @@ export const criterionSchema = z.object({
44
44
  // Accepts D | P | code | model; parsed output is always code | model.
45
45
  type: criterionKindInputSchema,
46
46
  text: z.string().min(1),
47
+ // Multi-twin (M3): the twin this criterion attributes to. Rides through the
48
+ // D/P→code/model transform above untouched. Absent = the run's primary twin
49
+ // (the session's twins[0]). Additive — single-twin runs omit it.
50
+ twin: z.string().min(1).optional(),
47
51
  });
48
52
  // CriterionResult shape matches OSS evaluator's emit. The full Criterion is
49
53
  // included by reference (not just text) so consumers render type-aware UI
@@ -1 +1 @@
1
- {"version":3,"file":"run.js","sourceRoot":"","sources":["../src/run.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"run.js","sourceRoot":"","sources":["../src/run.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ import { z } from "zod";
2
+ export declare const seedEnvelopeSchema: z.ZodRecord<z.ZodString, z.ZodRecord<z.ZodString, z.ZodUnknown>>;
3
+ export type SeedEnvelope = z.infer<typeof seedEnvelopeSchema>;
4
+ /**
5
+ * THE RULE, in code: a session's `seed` is a per-twin envelope iff the session
6
+ * has more than one twin. Decide from the `twins` array alone — never by
7
+ * sniffing the seed's shape.
8
+ *
9
+ * This is the shared PREDICATE, not the enforcement point. The actual
10
+ * envelope-iff-multi-twin check runs at the edges that know `twins`: the cloud
11
+ * at session create and the CLI at scenario parse time (follow-up PRs). The
12
+ * create-session request schema stays a shape-blind pass-through by design.
13
+ */
14
+ export declare function isMultiTwinSeedEnvelope(twins: string[]): boolean;
@@ -0,0 +1,46 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ //
3
+ // shared-types §3 — multi-twin seed envelope. Re-exported through the
4
+ // `@pome-sh/shared-types` barrel (index.ts).
5
+ //
6
+ // THE RULE (no shape-sniffing anywhere): the create-session `seed` override is a
7
+ // per-twin envelope `{ <twin>: <flat seed> }` IF AND ONLY IF the session has
8
+ // more than one twin. Single-twin sessions ALWAYS use the flat single-twin seed
9
+ // shape (the domain seed object the twin's own `parseSeed` owns — see
10
+ // createSessionRequestSchema.seed). Callers decide which shape to send from the
11
+ // session's `twins` array alone (`isMultiTwinSeedEnvelope`), never by inspecting
12
+ // the seed's contents. This keeps the boundary shape-blind: a flat seed and an
13
+ // envelope are both JSON objects, so sniffing would be ambiguous and brittle.
14
+ import { z } from "zod";
15
+ // Multi-twin (M3) seed envelope: twin id → that twin's flat domain seed. Like
16
+ // createSessionRequestSchema.seed, each per-twin seed is a permissive,
17
+ // shape-blind JSON object — the twin pod's `parseSeed` is the sole authority on
18
+ // its domain shape. The envelope keeps only the two invariants that are the
19
+ // boundary's business: the envelope is a JSON object, and each value is a JSON
20
+ // object.
21
+ //
22
+ // WHERE THE ENVELOPE-IFF-MULTI-TWIN RULE IS ENFORCED (not here): this schema and
23
+ // createSessionRequestSchema.seed are deliberately shape-blind — the request
24
+ // boundary accepts any JSON-object `seed` for both single- and multi-twin
25
+ // sessions and forwards it verbatim. The correlation between the `seed` shape and
26
+ // `twins.length` is validated at the EDGES, where the `twins` array is known:
27
+ // - the cloud validates envelope-iff-multi-twin at session create; and
28
+ // - the CLI validates it at scenario parse time
29
+ // (both landing in follow-up PRs). Do NOT add that cross-field check to the
30
+ // request schema — the twin owns its seed shape, and sniffing here would be the
31
+ // ambiguous, brittle coupling THE RULE exists to avoid.
32
+ export const seedEnvelopeSchema = z.record(z.string(), z.record(z.string(), z.unknown()));
33
+ /**
34
+ * THE RULE, in code: a session's `seed` is a per-twin envelope iff the session
35
+ * has more than one twin. Decide from the `twins` array alone — never by
36
+ * sniffing the seed's shape.
37
+ *
38
+ * This is the shared PREDICATE, not the enforcement point. The actual
39
+ * envelope-iff-multi-twin check runs at the edges that know `twins`: the cloud
40
+ * at session create and the CLI at scenario parse time (follow-up PRs). The
41
+ * create-session request schema stays a shape-blind pass-through by design.
42
+ */
43
+ export function isMultiTwinSeedEnvelope(twins) {
44
+ return twins.length > 1;
45
+ }
46
+ //# sourceMappingURL=seed-envelope.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"seed-envelope.js","sourceRoot":"","sources":["../src/seed-envelope.ts"],"names":[],"mappings":"AAAA,sCAAsC;AACtC,EAAE;AACF,sEAAsE;AACtE,6CAA6C;AAC7C,EAAE;AACF,iFAAiF;AACjF,6EAA6E;AAC7E,gFAAgF;AAChF,sEAAsE;AACtE,gFAAgF;AAChF,iFAAiF;AACjF,+EAA+E;AAC/E,8EAA8E;AAE9E,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,8EAA8E;AAC9E,uEAAuE;AACvE,gFAAgF;AAChF,4EAA4E;AAC5E,+EAA+E;AAC/E,UAAU;AACV,EAAE;AACF,iFAAiF;AACjF,6EAA6E;AAC7E,0EAA0E;AAC1E,kFAAkF;AAClF,8EAA8E;AAC9E,yEAAyE;AACzE,kDAAkD;AAClD,4EAA4E;AAC5E,gFAAgF;AAChF,wDAAwD;AACxD,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CACxC,CAAC,CAAC,MAAM,EAAE,EACV,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAClC,CAAC;AAGF;;;;;;;;;GASG;AACH,MAAM,UAAU,uBAAuB,CAAC,KAAe;IACrD,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;AAC1B,CAAC"}