@pome-sh/cli 0.5.0 → 0.8.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 (483) hide show
  1. package/README.md +4 -4
  2. package/dist/build-info.json +3 -3
  3. package/dist/examples/agents/llm-refund-agent.js +1 -1
  4. package/dist/src/cli/compile-seeds.js +22 -22
  5. package/dist/src/cli/default-task.d.ts +2 -2
  6. package/dist/src/cli/default-task.js +4 -4
  7. package/dist/src/cli/docs-topics.js +7 -3
  8. package/dist/src/cli/eval.d.ts +1 -1
  9. package/dist/src/cli/eval.js +3 -3
  10. package/dist/src/cli/init-sdk.js +1 -1
  11. package/dist/src/cli/main.js +200 -89
  12. package/dist/src/cli/register.d.ts +4 -0
  13. package/dist/src/cli/register.js +5 -0
  14. package/dist/src/cli/session.js +1 -1
  15. package/dist/src/cli/tasks-catalog.d.ts +25 -0
  16. package/dist/src/cli/{scenarios-catalog.js → tasks-catalog.js} +9 -9
  17. package/dist/src/cli/tasks.d.ts +13 -0
  18. package/dist/src/cli/{scenarios.js → tasks.js} +32 -32
  19. package/dist/src/demo/agent.js +2 -2
  20. package/dist/src/demo/runDemo.d.ts +3 -3
  21. package/dist/src/demo/runDemo.js +14 -14
  22. package/dist/src/doctor/checks.js +11 -2
  23. package/dist/src/doctor/render.d.ts +9 -0
  24. package/dist/src/doctor/render.js +7 -0
  25. package/dist/src/fix-prompt/prompt.d.ts +3 -3
  26. package/dist/src/fix-prompt/prompt.js +4 -4
  27. package/dist/src/hosted/client.d.ts +6 -6
  28. package/dist/src/hosted/client.js +6 -6
  29. package/dist/src/hosted/errors.js +1 -1
  30. package/dist/src/hosted/evalResultCache.d.ts +1 -1
  31. package/dist/src/hosted/evalResultCache.js +1 -1
  32. package/dist/src/hosted/evalResultView.d.ts +1 -1
  33. package/dist/src/hosted/evalResultView.js +1 -1
  34. package/dist/src/hosted/uploadAndFinalize.d.ts +1 -1
  35. package/dist/src/hosted/uploadAndFinalize.js +2 -2
  36. package/dist/src/recorder/artifacts.d.ts +2 -2
  37. package/dist/src/recorder/inspect.d.ts +3 -3
  38. package/dist/src/recorder/inspect.js +3 -3
  39. package/dist/src/runner/captureServerChild.js +1 -1
  40. package/dist/src/runner/{runScenario.d.ts → runTask.d.ts} +17 -3
  41. package/dist/src/runner/{runScenario.js → runTask.js} +4 -4
  42. package/dist/src/runner/{runScenarioCore.d.ts → runTaskCore.d.ts} +2 -2
  43. package/dist/src/runner/{runScenarioHosted.d.ts → runTaskHosted.d.ts} +6 -6
  44. package/dist/src/runner/{runScenarioHosted.js → runTaskHosted.js} +12 -12
  45. package/dist/src/runner/runTrialGroup.d.ts +4 -4
  46. package/dist/src/runner/runTrialGroup.js +10 -10
  47. package/dist/src/runner/trialCount.js +1 -1
  48. package/dist/src/task/parseTask.d.ts +9 -0
  49. package/dist/src/{scenario/parseScenario.js → task/parseTask.js} +21 -21
  50. package/dist/src/{scenario → task}/seed-compiler-hosted.d.ts +1 -1
  51. package/dist/src/{scenario → task}/seed-compiler-hosted.js +1 -1
  52. package/dist/src/{scenario/scenarioSchema.d.ts → task/taskSchema.d.ts} +56 -20
  53. package/dist/src/{scenario/scenarioSchema.js → task/taskSchema.js} +6 -6
  54. package/examples/agents/llm-refund-agent.ts +1 -1
  55. package/node_modules/@pome-sh/shared-types/dist/seed-state.d.ts +27 -0
  56. package/node_modules/@pome-sh/shared-types/dist/seed-state.js +12 -0
  57. package/node_modules/@pome-sh/shared-types/dist/seed-state.js.map +1 -1
  58. package/node_modules/@pome-sh/shared-types/dist/task.d.ts +18 -0
  59. package/node_modules/@pome-sh/shared-types/package.json +1 -1
  60. package/node_modules/@pome-sh/shared-types/trace-contract.json +1 -1
  61. package/node_modules/@pome-sh/twin-gmail/CHANGELOG.md +26 -0
  62. package/node_modules/@pome-sh/twin-gmail/HOSTED.md +37 -15
  63. package/node_modules/@pome-sh/twin-gmail/LIMITS.md +10 -0
  64. package/node_modules/@pome-sh/twin-gmail/README.md +52 -11
  65. package/node_modules/@pome-sh/twin-gmail/dist/fixtures/mcp-tools-list.canonical.json +242 -7
  66. package/node_modules/@pome-sh/twin-gmail/dist/src/db.js +6 -0
  67. package/node_modules/@pome-sh/twin-gmail/dist/src/db.js.map +1 -1
  68. package/node_modules/@pome-sh/twin-gmail/dist/src/domain/drafts.d.ts +41 -0
  69. package/node_modules/@pome-sh/twin-gmail/dist/src/domain/drafts.js +138 -0
  70. package/node_modules/@pome-sh/twin-gmail/dist/src/domain/drafts.js.map +1 -0
  71. package/node_modules/@pome-sh/twin-gmail/dist/src/domain/filters.d.ts +10 -0
  72. package/node_modules/@pome-sh/twin-gmail/dist/src/{domain-search.js → domain/filters.js} +52 -36
  73. package/node_modules/@pome-sh/twin-gmail/dist/src/domain/filters.js.map +1 -0
  74. package/node_modules/@pome-sh/twin-gmail/dist/src/{domain.d.ts → domain/gmail-domain.d.ts} +45 -34
  75. package/node_modules/@pome-sh/twin-gmail/dist/src/domain/gmail-domain.js +174 -0
  76. package/node_modules/@pome-sh/twin-gmail/dist/src/domain/gmail-domain.js.map +1 -0
  77. package/node_modules/@pome-sh/twin-gmail/dist/src/domain/hydrate.d.ts +8 -0
  78. package/node_modules/@pome-sh/twin-gmail/dist/src/domain/hydrate.js +122 -0
  79. package/node_modules/@pome-sh/twin-gmail/dist/src/domain/hydrate.js.map +1 -0
  80. package/node_modules/@pome-sh/twin-gmail/dist/src/domain/index.d.ts +4 -0
  81. package/node_modules/@pome-sh/twin-gmail/dist/src/domain/index.js +5 -0
  82. package/node_modules/@pome-sh/twin-gmail/dist/src/domain/index.js.map +1 -0
  83. package/node_modules/@pome-sh/twin-gmail/dist/src/domain/labels.d.ts +40 -0
  84. package/node_modules/@pome-sh/twin-gmail/dist/src/domain/labels.js +122 -0
  85. package/node_modules/@pome-sh/twin-gmail/dist/src/domain/labels.js.map +1 -0
  86. package/node_modules/@pome-sh/twin-gmail/dist/src/domain/messages.d.ts +49 -0
  87. package/node_modules/@pome-sh/twin-gmail/dist/src/domain/messages.js +276 -0
  88. package/node_modules/@pome-sh/twin-gmail/dist/src/domain/messages.js.map +1 -0
  89. package/node_modules/@pome-sh/twin-gmail/dist/src/domain/search-sql.d.ts +19 -0
  90. package/node_modules/@pome-sh/twin-gmail/dist/src/domain/search-sql.js +179 -0
  91. package/node_modules/@pome-sh/twin-gmail/dist/src/domain/search-sql.js.map +1 -0
  92. package/node_modules/@pome-sh/twin-gmail/dist/src/domain/settings.d.ts +27 -0
  93. package/node_modules/@pome-sh/twin-gmail/dist/src/domain/settings.js +98 -0
  94. package/node_modules/@pome-sh/twin-gmail/dist/src/domain/settings.js.map +1 -0
  95. package/node_modules/@pome-sh/twin-gmail/dist/src/errors.js +2 -0
  96. package/node_modules/@pome-sh/twin-gmail/dist/src/errors.js.map +1 -1
  97. package/node_modules/@pome-sh/twin-gmail/dist/src/faults.d.ts +21 -0
  98. package/node_modules/@pome-sh/twin-gmail/dist/src/faults.js +52 -0
  99. package/node_modules/@pome-sh/twin-gmail/dist/src/faults.js.map +1 -0
  100. package/node_modules/@pome-sh/twin-gmail/dist/src/identity.d.ts +1 -6
  101. package/node_modules/@pome-sh/twin-gmail/dist/src/identity.js +0 -11
  102. package/node_modules/@pome-sh/twin-gmail/dist/src/identity.js.map +1 -1
  103. package/node_modules/@pome-sh/twin-gmail/dist/src/index.d.ts +4 -3
  104. package/node_modules/@pome-sh/twin-gmail/dist/src/index.js +3 -3
  105. package/node_modules/@pome-sh/twin-gmail/dist/src/index.js.map +1 -1
  106. package/node_modules/@pome-sh/twin-gmail/dist/src/mcp-schemas.d.ts +48 -0
  107. package/node_modules/@pome-sh/twin-gmail/dist/src/mcp-schemas.js +23 -0
  108. package/node_modules/@pome-sh/twin-gmail/dist/src/mcp-schemas.js.map +1 -1
  109. package/node_modules/@pome-sh/twin-gmail/dist/src/mcp.d.ts +1 -1
  110. package/node_modules/@pome-sh/twin-gmail/dist/src/mcp.js +39 -1
  111. package/node_modules/@pome-sh/twin-gmail/dist/src/mcp.js.map +1 -1
  112. package/node_modules/@pome-sh/twin-gmail/dist/src/rest-routes-drafts.js +4 -5
  113. package/node_modules/@pome-sh/twin-gmail/dist/src/rest-routes-drafts.js.map +1 -1
  114. package/node_modules/@pome-sh/twin-gmail/dist/src/rest-routes-kit.d.ts +2 -3
  115. package/node_modules/@pome-sh/twin-gmail/dist/src/rest-routes-kit.js +4 -4
  116. package/node_modules/@pome-sh/twin-gmail/dist/src/rest-routes-kit.js.map +1 -1
  117. package/node_modules/@pome-sh/twin-gmail/dist/src/rest-routes-messages.js +7 -8
  118. package/node_modules/@pome-sh/twin-gmail/dist/src/rest-routes-messages.js.map +1 -1
  119. package/node_modules/@pome-sh/twin-gmail/dist/src/rest-routes-resources.js +20 -21
  120. package/node_modules/@pome-sh/twin-gmail/dist/src/rest-routes-resources.js.map +1 -1
  121. package/node_modules/@pome-sh/twin-gmail/dist/src/rest-routes.d.ts +1 -1
  122. package/node_modules/@pome-sh/twin-gmail/dist/src/rest-serializers.d.ts +2 -4
  123. package/node_modules/@pome-sh/twin-gmail/dist/src/rest-serializers.js +4 -6
  124. package/node_modules/@pome-sh/twin-gmail/dist/src/rest-serializers.js.map +1 -1
  125. package/node_modules/@pome-sh/twin-gmail/dist/src/search-match.d.ts +4 -0
  126. package/node_modules/@pome-sh/twin-gmail/dist/src/search-match.js +179 -0
  127. package/node_modules/@pome-sh/twin-gmail/dist/src/search-match.js.map +1 -0
  128. package/node_modules/@pome-sh/twin-gmail/dist/src/search-parse.d.ts +61 -0
  129. package/node_modules/@pome-sh/twin-gmail/dist/src/search-parse.js +318 -0
  130. package/node_modules/@pome-sh/twin-gmail/dist/src/search-parse.js.map +1 -0
  131. package/node_modules/@pome-sh/twin-gmail/dist/src/search.d.ts +3 -61
  132. package/node_modules/@pome-sh/twin-gmail/dist/src/search.js +2 -503
  133. package/node_modules/@pome-sh/twin-gmail/dist/src/search.js.map +1 -1
  134. package/node_modules/@pome-sh/twin-gmail/dist/src/seed.d.ts +13 -4
  135. package/node_modules/@pome-sh/twin-gmail/dist/src/seed.js +3 -1
  136. package/node_modules/@pome-sh/twin-gmail/dist/src/seed.js.map +1 -1
  137. package/node_modules/@pome-sh/twin-gmail/dist/src/server.js +1 -1
  138. package/node_modules/@pome-sh/twin-gmail/dist/src/server.js.map +1 -1
  139. package/node_modules/@pome-sh/twin-gmail/dist/src/storage.js +1 -1
  140. package/node_modules/@pome-sh/twin-gmail/dist/src/storage.js.map +1 -1
  141. package/node_modules/@pome-sh/twin-gmail/dist/src/twin.d.ts +2 -3
  142. package/node_modules/@pome-sh/twin-gmail/dist/src/twin.js +1 -4
  143. package/node_modules/@pome-sh/twin-gmail/dist/src/twin.js.map +1 -1
  144. package/node_modules/@pome-sh/twin-gmail/dist/src/types.d.ts +1 -0
  145. package/node_modules/@pome-sh/twin-gmail/fidelity.inventory.json +42 -435
  146. package/node_modules/@pome-sh/twin-gmail/fixtures/README.md +4 -4
  147. package/node_modules/@pome-sh/twin-gmail/fixtures/mcp-tools-list.canonical.json +242 -7
  148. package/node_modules/@pome-sh/twin-gmail/fixtures/mcp-tools-list.meta.json +3 -3
  149. package/node_modules/@pome-sh/twin-gmail/package.json +4 -3
  150. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/index.d.ts +1 -0
  151. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/index.js +1 -0
  152. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/index.js.map +1 -1
  153. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/manifest.d.ts +31 -0
  154. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/manifest.js +76 -0
  155. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/manifest.js.map +1 -0
  156. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/rest.d.ts +9 -0
  157. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/rest.js +27 -0
  158. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/rest.js.map +1 -1
  159. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/manifest-schema.json +68 -0
  160. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/package.json +2 -1
  161. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/trace-contract.json +1 -1
  162. package/node_modules/@pome-sh/twin-slack/package.json +3 -3
  163. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/shared-types/dist/index.d.ts +1 -0
  164. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/shared-types/dist/index.js +1 -0
  165. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/shared-types/dist/index.js.map +1 -1
  166. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/shared-types/dist/manifest.d.ts +31 -0
  167. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/shared-types/dist/manifest.js +76 -0
  168. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/shared-types/dist/manifest.js.map +1 -0
  169. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/shared-types/dist/rest.d.ts +9 -0
  170. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/shared-types/dist/rest.js +27 -0
  171. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/shared-types/dist/rest.js.map +1 -1
  172. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/shared-types/manifest-schema.json +68 -0
  173. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/shared-types/package.json +2 -1
  174. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/shared-types/trace-contract.json +1 -1
  175. package/node_modules/@pome-sh/twin-stripe/package.json +3 -3
  176. package/node_modules/hono/dist/cjs/client/utils.js +1 -1
  177. package/node_modules/hono/dist/cjs/helper/streaming/sse.js +5 -4
  178. package/node_modules/hono/dist/cjs/middleware/cache/index.js +1 -1
  179. package/node_modules/hono/dist/cjs/middleware/compress/index.js +2 -1
  180. package/node_modules/hono/dist/cjs/middleware/method-override/index.js +5 -3
  181. package/node_modules/hono/dist/cjs/middleware/secure-headers/secure-headers.js +10 -4
  182. package/node_modules/hono/dist/cjs/request.js +8 -3
  183. package/node_modules/hono/dist/cjs/utils/accept.js +1 -1
  184. package/node_modules/hono/dist/cjs/utils/body.js +6 -0
  185. package/node_modules/hono/dist/cjs/utils/url.js +1 -1
  186. package/node_modules/hono/dist/client/utils.js +1 -1
  187. package/node_modules/hono/dist/helper/streaming/sse.js +5 -4
  188. package/node_modules/hono/dist/middleware/cache/index.js +1 -1
  189. package/node_modules/hono/dist/middleware/compress/index.js +2 -1
  190. package/node_modules/hono/dist/middleware/method-override/index.js +5 -3
  191. package/node_modules/hono/dist/middleware/secure-headers/secure-headers.js +10 -4
  192. package/node_modules/hono/dist/request.js +8 -3
  193. package/node_modules/hono/dist/types/adapter/aws-lambda/types.d.ts +9 -0
  194. package/node_modules/hono/dist/types/helper/websocket/index.d.ts +1 -1
  195. package/node_modules/hono/dist/types/middleware/combine/index.d.ts +1 -1
  196. package/node_modules/hono/dist/utils/accept.js +1 -1
  197. package/node_modules/hono/dist/utils/body.js +6 -0
  198. package/node_modules/hono/dist/utils/url.js +1 -1
  199. package/node_modules/hono/package.json +3 -3
  200. package/package.json +7 -7
  201. package/{scenarios → tasks}/00-default-seed.md +1 -1
  202. package/{scenarios → tasks}/14-stripe-refund-retry.md +1 -1
  203. package/dist/src/cli/scenarios-catalog.d.ts +0 -25
  204. package/dist/src/cli/scenarios.d.ts +0 -13
  205. package/dist/src/scenario/parseScenario.d.ts +0 -9
  206. package/node_modules/@pome-sh/twin-gmail/dist/src/domain-search.d.ts +0 -5
  207. package/node_modules/@pome-sh/twin-gmail/dist/src/domain-search.js.map +0 -1
  208. package/node_modules/@pome-sh/twin-gmail/dist/src/domain.js +0 -407
  209. package/node_modules/@pome-sh/twin-gmail/dist/src/domain.js.map +0 -1
  210. package/node_modules/@pome-sh/twin-gmail/dist/src/rest-store.d.ts +0 -75
  211. package/node_modules/@pome-sh/twin-gmail/dist/src/rest-store.js +0 -282
  212. package/node_modules/@pome-sh/twin-gmail/dist/src/rest-store.js.map +0 -1
  213. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/admin-gate.d.ts +0 -35
  214. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/admin-gate.js +0 -103
  215. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/admin-gate.js.map +0 -1
  216. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/auth.d.ts +0 -100
  217. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/auth.js +0 -262
  218. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/auth.js.map +0 -1
  219. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/build-info.d.ts +0 -7
  220. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/build-info.js +0 -14
  221. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/build-info.js.map +0 -1
  222. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/db.d.ts +0 -44
  223. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/db.js +0 -113
  224. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/db.js.map +0 -1
  225. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/errors.d.ts +0 -24
  226. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/errors.js +0 -61
  227. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/errors.js.map +0 -1
  228. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/failure-injection.d.ts +0 -43
  229. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/failure-injection.js +0 -160
  230. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/failure-injection.js.map +0 -1
  231. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/fidelity-inventory.d.ts +0 -121
  232. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/fidelity-inventory.js +0 -204
  233. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/fidelity-inventory.js.map +0 -1
  234. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/fidelity.d.ts +0 -8
  235. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/fidelity.js +0 -39
  236. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/fidelity.js.map +0 -1
  237. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/index.d.ts +0 -372
  238. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/index.js +0 -139
  239. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/index.js.map +0 -1
  240. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/mcp-jsonrpc.d.ts +0 -10
  241. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/mcp-jsonrpc.js +0 -221
  242. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/mcp-jsonrpc.js.map +0 -1
  243. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/parity.d.ts +0 -61
  244. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/parity.js +0 -123
  245. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/parity.js.map +0 -1
  246. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/recorder.d.ts +0 -120
  247. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/recorder.js +0 -368
  248. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/recorder.js.map +0 -1
  249. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/redaction.d.ts +0 -1
  250. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/redaction.js +0 -3
  251. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/redaction.js.map +0 -1
  252. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/server-helpers.d.ts +0 -54
  253. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/server-helpers.js +0 -181
  254. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/server-helpers.js.map +0 -1
  255. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/server.d.ts +0 -46
  256. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/server.js +0 -394
  257. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/server.js.map +0 -1
  258. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/tool-context.d.ts +0 -8
  259. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/tool-context.js +0 -22
  260. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/tool-context.js.map +0 -1
  261. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/package.json +0 -54
  262. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/errors.d.ts +0 -39
  263. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/errors.js +0 -33
  264. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/errors.js.map +0 -1
  265. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/finalize-shapes.d.ts +0 -254
  266. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/finalize-shapes.js +0 -122
  267. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/finalize-shapes.js.map +0 -1
  268. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/github-access-control.d.ts +0 -175
  269. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/github-access-control.js +0 -182
  270. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/github-access-control.js.map +0 -1
  271. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/identity.d.ts +0 -90
  272. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/identity.js +0 -72
  273. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/identity.js.map +0 -1
  274. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/index.d.ts +0 -27
  275. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/index.js +0 -34
  276. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/index.js.map +0 -1
  277. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/otel/event-schema.d.ts +0 -331
  278. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/otel/event-schema.js +0 -33
  279. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/otel/event-schema.js.map +0 -1
  280. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/otel/fixtures/data.d.ts +0 -65
  281. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/otel/fixtures/data.js +0 -455
  282. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/otel/fixtures/data.js.map +0 -1
  283. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/otel/fixtures/index.d.ts +0 -39
  284. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/otel/fixtures/index.js +0 -47
  285. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/otel/fixtures/index.js.map +0 -1
  286. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/otel/index.d.ts +0 -25
  287. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/otel/index.js +0 -27
  288. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/otel/index.js.map +0 -1
  289. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/otel/legacy-shim.d.ts +0 -100
  290. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/otel/legacy-shim.js +0 -193
  291. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/otel/legacy-shim.js.map +0 -1
  292. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/otel/map-span.d.ts +0 -64
  293. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/otel/map-span.js +0 -112
  294. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/otel/map-span.js.map +0 -1
  295. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/otel/nano.d.ts +0 -26
  296. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/otel/nano.js +0 -61
  297. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/otel/nano.js.map +0 -1
  298. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/otel/project.d.ts +0 -42
  299. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/otel/project.js +0 -104
  300. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/otel/project.js.map +0 -1
  301. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/otel/semconv.d.ts +0 -57
  302. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/otel/semconv.js +0 -102
  303. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/otel/semconv.js.map +0 -1
  304. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/otel/span-event.d.ts +0 -134
  305. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/otel/span-event.js +0 -152
  306. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/otel/span-event.js.map +0 -1
  307. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/recorder-events.d.ts +0 -480
  308. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/recorder-events.js +0 -270
  309. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/recorder-events.js.map +0 -1
  310. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/redaction.d.ts +0 -2
  311. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/redaction.js +0 -152
  312. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/redaction.js.map +0 -1
  313. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/rest.d.ts +0 -248
  314. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/rest.js +0 -308
  315. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/rest.js.map +0 -1
  316. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/run.d.ts +0 -208
  317. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/run.js +0 -170
  318. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/run.js.map +0 -1
  319. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/seed-envelope.d.ts +0 -14
  320. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/seed-envelope.js +0 -46
  321. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/seed-envelope.js.map +0 -1
  322. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/seed-state.d.ts +0 -1006
  323. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/seed-state.js +0 -263
  324. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/seed-state.js.map +0 -1
  325. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/sessions.d.ts +0 -53
  326. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/sessions.js +0 -51
  327. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/sessions.js.map +0 -1
  328. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/task-vocab.d.ts +0 -80
  329. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/task-vocab.js +0 -98
  330. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/task-vocab.js.map +0 -1
  331. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/task.d.ts +0 -859
  332. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/task.js +0 -60
  333. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/task.js.map +0 -1
  334. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/package.json +0 -54
  335. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/trace-contract.json +0 -41
  336. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/admin-gate.d.ts +0 -35
  337. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/admin-gate.js +0 -103
  338. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/admin-gate.js.map +0 -1
  339. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/auth.d.ts +0 -100
  340. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/auth.js +0 -262
  341. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/auth.js.map +0 -1
  342. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/build-info.d.ts +0 -7
  343. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/build-info.js +0 -14
  344. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/build-info.js.map +0 -1
  345. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/db.d.ts +0 -44
  346. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/db.js +0 -113
  347. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/db.js.map +0 -1
  348. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/errors.d.ts +0 -24
  349. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/errors.js +0 -61
  350. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/errors.js.map +0 -1
  351. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/failure-injection.d.ts +0 -43
  352. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/failure-injection.js +0 -160
  353. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/failure-injection.js.map +0 -1
  354. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/fidelity-inventory.d.ts +0 -121
  355. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/fidelity-inventory.js +0 -204
  356. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/fidelity-inventory.js.map +0 -1
  357. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/fidelity.d.ts +0 -8
  358. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/fidelity.js +0 -39
  359. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/fidelity.js.map +0 -1
  360. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/index.d.ts +0 -372
  361. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/index.js +0 -139
  362. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/index.js.map +0 -1
  363. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/mcp-jsonrpc.d.ts +0 -10
  364. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/mcp-jsonrpc.js +0 -221
  365. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/mcp-jsonrpc.js.map +0 -1
  366. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/parity.d.ts +0 -61
  367. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/parity.js +0 -123
  368. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/parity.js.map +0 -1
  369. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/recorder.d.ts +0 -120
  370. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/recorder.js +0 -368
  371. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/recorder.js.map +0 -1
  372. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/redaction.d.ts +0 -1
  373. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/redaction.js +0 -3
  374. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/redaction.js.map +0 -1
  375. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/server-helpers.d.ts +0 -54
  376. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/server-helpers.js +0 -181
  377. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/server-helpers.js.map +0 -1
  378. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/server.d.ts +0 -46
  379. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/server.js +0 -394
  380. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/server.js.map +0 -1
  381. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/tool-context.d.ts +0 -8
  382. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/tool-context.js +0 -22
  383. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/tool-context.js.map +0 -1
  384. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/package.json +0 -54
  385. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/admin-gate.d.ts +0 -35
  386. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/admin-gate.js +0 -103
  387. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/admin-gate.js.map +0 -1
  388. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/auth.d.ts +0 -100
  389. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/auth.js +0 -262
  390. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/auth.js.map +0 -1
  391. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/build-info.d.ts +0 -7
  392. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/build-info.js +0 -14
  393. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/build-info.js.map +0 -1
  394. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/db.d.ts +0 -44
  395. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/db.js +0 -113
  396. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/db.js.map +0 -1
  397. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/errors.d.ts +0 -24
  398. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/errors.js +0 -61
  399. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/errors.js.map +0 -1
  400. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/failure-injection.d.ts +0 -43
  401. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/failure-injection.js +0 -160
  402. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/failure-injection.js.map +0 -1
  403. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/fidelity-inventory.d.ts +0 -121
  404. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/fidelity-inventory.js +0 -204
  405. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/fidelity-inventory.js.map +0 -1
  406. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/fidelity.d.ts +0 -8
  407. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/fidelity.js +0 -39
  408. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/fidelity.js.map +0 -1
  409. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/index.d.ts +0 -372
  410. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/index.js +0 -139
  411. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/index.js.map +0 -1
  412. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/mcp-jsonrpc.d.ts +0 -10
  413. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/mcp-jsonrpc.js +0 -221
  414. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/mcp-jsonrpc.js.map +0 -1
  415. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/parity.d.ts +0 -61
  416. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/parity.js +0 -123
  417. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/parity.js.map +0 -1
  418. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/recorder.d.ts +0 -120
  419. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/recorder.js +0 -368
  420. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/recorder.js.map +0 -1
  421. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/redaction.d.ts +0 -1
  422. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/redaction.js +0 -3
  423. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/redaction.js.map +0 -1
  424. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/server-helpers.d.ts +0 -54
  425. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/server-helpers.js +0 -181
  426. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/server-helpers.js.map +0 -1
  427. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/server.d.ts +0 -46
  428. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/server.js +0 -394
  429. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/server.js.map +0 -1
  430. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/tool-context.d.ts +0 -8
  431. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/tool-context.js +0 -22
  432. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/tool-context.js.map +0 -1
  433. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/package.json +0 -54
  434. /package/dist/src/runner/{runScenarioCore.js → runTaskCore.js} +0 -0
  435. /package/dist/src/{scenario → task}/githubSeedCompat.d.ts +0 -0
  436. /package/dist/src/{scenario → task}/githubSeedCompat.js +0 -0
  437. /package/dist/src/{scenario → task}/seed-compiler.d.ts +0 -0
  438. /package/dist/src/{scenario → task}/seed-compiler.js +0 -0
  439. /package/dist/src/{scenario → task}/seed-verifier.d.ts +0 -0
  440. /package/dist/src/{scenario → task}/seed-verifier.js +0 -0
  441. /package/{scenarios → tasks}/01-bug-happy-path.md +0 -0
  442. /package/{scenarios → tasks}/01-bug-happy-path.seed.json +0 -0
  443. /package/{scenarios → tasks}/03-already-triaged.md +0 -0
  444. /package/{scenarios → tasks}/03-already-triaged.seed.json +0 -0
  445. /package/{scenarios → tasks}/04-judge-context.md +0 -0
  446. /package/{scenarios → tasks}/04-judge-context.seed.json +0 -0
  447. /package/{scenarios → tasks}/05-github-identity-spoof.md +0 -0
  448. /package/{scenarios → tasks}/05-github-identity-spoof.seed.json +0 -0
  449. /package/{scenarios → tasks}/06-mislabeled-needs-fix.md +0 -0
  450. /package/{scenarios → tasks}/06-mislabeled-needs-fix.seed.json +0 -0
  451. /package/{scenarios → tasks}/07-pr-backdoor-review.md +0 -0
  452. /package/{scenarios → tasks}/07-pr-backdoor-review.seed.json +0 -0
  453. /package/{scenarios → tasks}/08-prompt-injection-issue-body.md +0 -0
  454. /package/{scenarios → tasks}/08-prompt-injection-issue-body.seed.json +0 -0
  455. /package/{scenarios → tasks}/09-security-revert-rationalization.md +0 -0
  456. /package/{scenarios → tasks}/09-security-revert-rationalization.seed.json +0 -0
  457. /package/{scenarios → tasks}/10-stripe-create-payment-intent.md +0 -0
  458. /package/{scenarios → tasks}/11-stripe-handle-failed-payment.md +0 -0
  459. /package/{scenarios → tasks}/12-stripe-reconcile-event.md +0 -0
  460. /package/{scenarios → tasks}/13-stripe-x402-payment-required.md +0 -0
  461. /package/{scenarios → tasks}/14-stripe-refund-retry.expected-events.jsonl +0 -0
  462. /package/{scenarios → tasks}/17-in-scope-injection.md +0 -0
  463. /package/{scenarios → tasks}/17-in-scope-injection.seed.json +0 -0
  464. /package/{scenarios → tasks}/18-fabricate-green-ci.md +0 -0
  465. /package/{scenarios → tasks}/18-fabricate-green-ci.seed.json +0 -0
  466. /package/{scenarios → tasks}/19-stripe-rerefund-persuasion.md +0 -0
  467. /package/{scenarios → tasks}/19-stripe-rerefund-persuasion.seed.json +0 -0
  468. /package/{scenarios → tasks}/20-slack-exfiltration.md +0 -0
  469. /package/{scenarios → tasks}/20-slack-exfiltration.seed.json +0 -0
  470. /package/{scenarios → tasks}/21-slack-injection.md +0 -0
  471. /package/{scenarios → tasks}/21-slack-injection.seed.json +0 -0
  472. /package/{scenarios → tasks}/22-gmail-inbox-triage.md +0 -0
  473. /package/{scenarios → tasks}/22-gmail-inbox-triage.seed.json +0 -0
  474. /package/{scenarios → tasks}/23-gmail-first-party-parity.md +0 -0
  475. /package/{scenarios → tasks}/23-gmail-first-party-parity.seed.json +0 -0
  476. /package/{scenarios → tasks}/24-linear-issue-triage.md +0 -0
  477. /package/{scenarios → tasks}/24-linear-issue-triage.seed.json +0 -0
  478. /package/{scenarios → tasks}/25-linear-comment-label-triage.md +0 -0
  479. /package/{scenarios → tasks}/25-linear-comment-label-triage.seed.json +0 -0
  480. /package/{scenarios → tasks}/26-github-linear-handoff.md +0 -0
  481. /package/{scenarios → tasks}/26-github-linear-handoff.seed.json +0 -0
  482. /package/{scenarios → tasks}/27-gmail-github-support-escalation.md +0 -0
  483. /package/{scenarios → tasks}/27-gmail-github-support-escalation.seed.json +0 -0
@@ -1,262 +0,0 @@
1
- import { createHmac, timingSafeEqual } from "node:crypto";
2
- import { verify } from "hono/jwt";
3
- import { createAdminGate } from "./admin-gate.js";
4
- /** `team_id` stamped on sessions authenticated by a provider-shaped token. */
5
- export const PROVIDER_SHAPED_TEAM_ID = "provider-shaped";
6
- export function resolveAuthSecret() {
7
- const secret = process.env.TWIN_AUTH_SECRET;
8
- if (!secret && process.env.NODE_ENV === "production") {
9
- throw new Error("TWIN_AUTH_SECRET required in production");
10
- }
11
- return secret ?? "dev-only-insecure-secret";
12
- }
13
- const SIG_LENGTH = 22;
14
- /**
15
- * Mint a provider-shaped token (F-712 row 10: minting lives in the engine;
16
- * CLI + cloud mint through it, parameterized by the twin's declared shape).
17
- */
18
- export function mintProviderToken(spec, options) {
19
- const prefix = options.prefix ?? spec.prefixes[0];
20
- if (!prefix || !spec.prefixes.includes(prefix)) {
21
- throw new Error(`mintProviderToken: prefix "${options.prefix ?? "<none>"}" is not declared by provider "${spec.provider}"`);
22
- }
23
- const secret = options.secret ?? resolveAuthSecret();
24
- const encoded = Buffer.from(options.sid, "utf8").toString("base64url");
25
- if (options.exp !== undefined) {
26
- // Mint/verify symmetry: a non-integer exp used to silently mint the
27
- // NEVER-expiring legacy shape, and a millisecond-scale exp minted a
28
- // token verifyProviderToken can never accept. Both are caller bugs —
29
- // fail at mint time.
30
- if (!Number.isSafeInteger(options.exp) || options.exp <= 0) {
31
- throw new Error(`mintProviderToken: exp must be a positive integer unix timestamp in seconds (got ${String(options.exp)})`);
32
- }
33
- if (options.exp >= 1e12) {
34
- throw new Error(`mintProviderToken: exp ${options.exp} looks like milliseconds — pass a unix timestamp in SECONDS`);
35
- }
36
- return `${prefix}${encoded}_${options.exp}_${signProviderExp(spec.provider, options.sid, options.exp, secret)}`;
37
- }
38
- return `${prefix}${encoded}_${signProvider(spec.provider, options.sid, secret)}`;
39
- }
40
- /**
41
- * Verify a provider-shaped token; returns the sid on success.
42
- *
43
- * The parse is right-anchored — the signature is always the trailing 22
44
- * base64url chars, the optional exp is a trailing all-digit segment of the
45
- * remainder — and the HMAC disambiguates the exp-vs-sid split. This fixes
46
- * the F-712 appendix bug once: the old per-twin `([^_]+)` regexes broke for
47
- * any sid whose base64url encoding contains `_` (the alphabet includes it).
48
- */
49
- export function verifyProviderToken(spec, token, secret = resolveAuthSecret()) {
50
- const prefix = spec.prefixes.find((p) => token.startsWith(p));
51
- if (!prefix)
52
- return undefined;
53
- const rest = token.slice(prefix.length);
54
- // Shortest valid form: 1-char encoded sid + "_" + 22-char sig.
55
- if (rest.length < SIG_LENGTH + 2)
56
- return undefined;
57
- if (rest[rest.length - SIG_LENGTH - 1] !== "_")
58
- return undefined;
59
- const sig = rest.slice(-SIG_LENGTH);
60
- const head = rest.slice(0, -(SIG_LENGTH + 1));
61
- // Candidate 1: expiring shape — head = <encodedSid>_<exp>.
62
- const expMatch = head.match(/^(.+)_(\d{1,12})$/);
63
- if (expMatch) {
64
- const sid = decodeBase64Url(expMatch[1]);
65
- const exp = Number(expMatch[2]);
66
- if (sid !== undefined && Number.isSafeInteger(exp)) {
67
- if (safeEqual(sig, signProviderExp(spec.provider, sid, exp, secret))) {
68
- return exp >= Math.floor(Date.now() / 1000) ? sid : undefined;
69
- }
70
- }
71
- }
72
- // Candidate 2: legacy shape — head = <encodedSid>.
73
- const sid = decodeBase64Url(head);
74
- if (sid === undefined)
75
- return undefined;
76
- if (safeEqual(sig, signProvider(spec.provider, sid, secret)))
77
- return sid;
78
- return undefined;
79
- }
80
- function signProvider(provider, sid, secret) {
81
- return createHmac("sha256", secret)
82
- .update(`${provider}:${sid}`)
83
- .digest("base64url")
84
- .slice(0, SIG_LENGTH);
85
- }
86
- function signProviderExp(provider, sid, exp, secret) {
87
- return createHmac("sha256", secret)
88
- .update(`${provider}:${sid}:${exp}`)
89
- .digest("base64url")
90
- .slice(0, SIG_LENGTH);
91
- }
92
- function decodeBase64Url(value) {
93
- try {
94
- return Buffer.from(value, "base64url").toString("utf8");
95
- }
96
- catch {
97
- return undefined;
98
- }
99
- }
100
- function safeEqual(a, b) {
101
- const ab = Buffer.from(a);
102
- const bb = Buffer.from(b);
103
- return ab.length === bb.length && timingSafeEqual(ab, bb);
104
- }
105
- /** Accept `?<param>=<token>` in the query string (real Slack behavior). */
106
- export function queryTokenResolver(param = "token") {
107
- return (c) => {
108
- const token = c.req.query(param);
109
- return token && token.length > 0 ? token : undefined;
110
- };
111
- }
112
- /**
113
- * Accept `<param>=<token>` in a form-encoded POST body (real Slack
114
- * behavior). Only parses when the content type is form-encoded, so JSON
115
- * streaming reads downstream are never consumed here; `parseBody()` caches
116
- * on the Hono context, so downstream handlers see the same object.
117
- */
118
- export function formTokenResolver(param = "token") {
119
- return async (c) => {
120
- if (c.req.method !== "POST")
121
- return undefined;
122
- const contentType = (c.req.header("content-type") ?? "").toLowerCase();
123
- if (!contentType.includes("application/x-www-form-urlencoded") &&
124
- !contentType.includes("multipart/form-data")) {
125
- return undefined;
126
- }
127
- try {
128
- const body = (await c.req.parseBody());
129
- const token = body[param];
130
- return typeof token === "string" && token.length > 0 ? token : undefined;
131
- }
132
- catch {
133
- return undefined;
134
- }
135
- };
136
- }
137
- const defaultUnauthorized = () => ({
138
- status: 401,
139
- body: { message: "Bad credentials", documentation_url: "" },
140
- });
141
- const defaultSidMismatch = () => ({
142
- status: 401,
143
- body: { message: "Forbidden", documentation_url: "" },
144
- });
145
- function respond(envelope) {
146
- return Response.json(envelope.body, { status: envelope.status });
147
- }
148
- function extractSidFromUrl(rawUrl) {
149
- try {
150
- const path = new URL(rawUrl).pathname;
151
- const match = path.match(/^\/s\/([^/]+)/);
152
- return match?.[1] ? decodeURIComponent(match[1]) : undefined;
153
- }
154
- catch {
155
- return undefined;
156
- }
157
- }
158
- function bearerHeaderToken(c, allowRaw) {
159
- const header = c.req.header("Authorization") ?? c.req.header("authorization");
160
- if (!header)
161
- return undefined;
162
- const trimmed = header.trim();
163
- if (allowRaw) {
164
- if (trimmed.toLowerCase().startsWith("bearer ")) {
165
- const token = trimmed.slice("bearer ".length).trim();
166
- return token.length > 0 ? token : undefined;
167
- }
168
- return trimmed.length > 0 ? trimmed : undefined;
169
- }
170
- if (!trimmed.startsWith("Bearer "))
171
- return undefined;
172
- const token = trimmed.slice("Bearer ".length).trim();
173
- return token.length > 0 ? token : undefined;
174
- }
175
- function classifyJwtError(err) {
176
- const name = err.name ?? "";
177
- const message = err instanceof Error ? err.message : "";
178
- return name === "JwtTokenExpired" || /expired/i.test(message) ? "expired" : "invalid";
179
- }
180
- export function bearerAuth(options = {}) {
181
- const unauthorized = options.unauthorized ?? defaultUnauthorized;
182
- const sidMismatch = options.sidMismatch ?? defaultSidMismatch;
183
- const requirePathSid = options.requirePathSid ?? true;
184
- const allowRawBearer = options.allowRawBearer === true;
185
- return async (c, next) => {
186
- let token = bearerHeaderToken(c, allowRawBearer);
187
- if (!token && options.tokenResolvers) {
188
- for (const resolveToken of options.tokenResolvers) {
189
- token = (await resolveToken(c)) || undefined;
190
- if (token)
191
- break;
192
- }
193
- }
194
- if (!token)
195
- return respond(unauthorized("no_token"));
196
- const pathSid = c.req.param("sid") ?? extractSidFromUrl(c.req.url);
197
- const checkSid = (sid) => {
198
- if (pathSid)
199
- return sid === pathSid ? undefined : respond(sidMismatch());
200
- return requirePathSid ? respond(sidMismatch()) : undefined;
201
- };
202
- // Row 8: DB-backed credential lookup (stripe api_keys).
203
- if (options.resolveCredential) {
204
- const resolved = await options.resolveCredential(token, c);
205
- if (resolved) {
206
- const mismatch = checkSid(resolved.sid);
207
- if (mismatch)
208
- return mismatch;
209
- c.set("session", resolved);
210
- await next();
211
- return;
212
- }
213
- }
214
- // Row 1: provider-shaped tokens.
215
- if (options.providerToken) {
216
- const providerSid = verifyProviderToken(options.providerToken, token);
217
- if (providerSid) {
218
- const mismatch = checkSid(providerSid);
219
- if (mismatch)
220
- return mismatch;
221
- c.set("session", {
222
- sid: providerSid,
223
- team_id: PROVIDER_SHAPED_TEAM_ID,
224
- ...(options.providerSession?.(providerSid) ?? {}),
225
- });
226
- await next();
227
- return;
228
- }
229
- }
230
- // Session JWT, with engine-side expired-vs-invalid classification
231
- // (row 6). The envelope hook decides how each kind renders on the wire.
232
- let claims;
233
- try {
234
- claims = (await verify(token, resolveAuthSecret(), "HS256"));
235
- }
236
- catch (err) {
237
- return respond(unauthorized(classifyJwtError(err), { token }));
238
- }
239
- if (typeof claims.exp === "number" && claims.exp < Math.floor(Date.now() / 1000)) {
240
- return respond(unauthorized("expired", { token }));
241
- }
242
- if (!claims.sid)
243
- return respond(unauthorized("invalid", { token }));
244
- const mismatch = checkSid(claims.sid);
245
- if (mismatch)
246
- return mismatch;
247
- c.set("session", {
248
- sid: claims.sid,
249
- team_id: claims.team_id,
250
- ...(options.sessionExtras?.(claims) ?? {}),
251
- });
252
- await next();
253
- };
254
- }
255
- /**
256
- * Admin endpoint protection. Thin wrapper over the shared admin-gate module
257
- * (FDRS-587 / FDRS-616) using the default error envelope.
258
- */
259
- export function requireAdminAuth() {
260
- return createAdminGate();
261
- }
262
- //# sourceMappingURL=auth.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"auth.js","sourceRoot":"","sources":["../src/auth.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC1D,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAElD,8EAA8E;AAC9E,MAAM,CAAC,MAAM,uBAAuB,GAAG,iBAAiB,CAAC;AAYzD,MAAM,UAAU,iBAAiB;IAC/B,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC;IAC5C,IAAI,CAAC,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY,EAAE,CAAC;QACrD,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;IAC7D,CAAC;IACD,OAAO,MAAM,IAAI,0BAA0B,CAAC;AAC9C,CAAC;AAiBD,MAAM,UAAU,GAAG,EAAE,CAAC;AAWtB;;;GAGG;AACH,MAAM,UAAU,iBAAiB,CAC/B,IAAuB,EACvB,OAAiC;IAEjC,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IAClD,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QAC/C,MAAM,IAAI,KAAK,CACb,8BAA8B,OAAO,CAAC,MAAM,IAAI,QAAQ,kCAAkC,IAAI,CAAC,QAAQ,GAAG,CAC3G,CAAC;IACJ,CAAC;IACD,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,iBAAiB,EAAE,CAAC;IACrD,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;IACvE,IAAI,OAAO,CAAC,GAAG,KAAK,SAAS,EAAE,CAAC;QAC9B,oEAAoE;QACpE,oEAAoE;QACpE,qEAAqE;QACrE,qBAAqB;QACrB,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC;YAC3D,MAAM,IAAI,KAAK,CACb,oFAAoF,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAC3G,CAAC;QACJ,CAAC;QACD,IAAI,OAAO,CAAC,GAAG,IAAI,IAAI,EAAE,CAAC;YACxB,MAAM,IAAI,KAAK,CACb,0BAA0B,OAAO,CAAC,GAAG,6DAA6D,CACnG,CAAC;QACJ,CAAC;QACD,OAAO,GAAG,MAAM,GAAG,OAAO,IAAI,OAAO,CAAC,GAAG,IAAI,eAAe,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,MAAM,CAAC,EAAE,CAAC;IAClH,CAAC;IACD,OAAO,GAAG,MAAM,GAAG,OAAO,IAAI,YAAY,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,GAAG,EAAE,MAAM,CAAC,EAAE,CAAC;AACnF,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,mBAAmB,CACjC,IAAuB,EACvB,KAAa,EACb,MAAM,GAAG,iBAAiB,EAAE;IAE5B,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9D,IAAI,CAAC,MAAM;QAAE,OAAO,SAAS,CAAC;IAC9B,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACxC,+DAA+D;IAC/D,IAAI,IAAI,CAAC,MAAM,GAAG,UAAU,GAAG,CAAC;QAAE,OAAO,SAAS,CAAC;IACnD,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,UAAU,GAAG,CAAC,CAAC,KAAK,GAAG;QAAE,OAAO,SAAS,CAAC;IACjE,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,UAAU,CAAC,CAAC;IACpC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC;IAE9C,2DAA2D;IAC3D,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC;IACjD,IAAI,QAAQ,EAAE,CAAC;QACb,MAAM,GAAG,GAAG,eAAe,CAAC,QAAQ,CAAC,CAAC,CAAE,CAAC,CAAC;QAC1C,MAAM,GAAG,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAE,CAAC,CAAC;QACjC,IAAI,GAAG,KAAK,SAAS,IAAI,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC;YACnD,IAAI,SAAS,CAAC,GAAG,EAAE,eAAe,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC;gBACrE,OAAO,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC;YAChE,CAAC;QACH,CAAC;IACH,CAAC;IAED,mDAAmD;IACnD,MAAM,GAAG,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC;IAClC,IAAI,GAAG,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IACxC,IAAI,SAAS,CAAC,GAAG,EAAE,YAAY,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;QAAE,OAAO,GAAG,CAAC;IACzE,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,YAAY,CAAC,QAAgB,EAAE,GAAW,EAAE,MAAc;IACjE,OAAO,UAAU,CAAC,QAAQ,EAAE,MAAM,CAAC;SAChC,MAAM,CAAC,GAAG,QAAQ,IAAI,GAAG,EAAE,CAAC;SAC5B,MAAM,CAAC,WAAW,CAAC;SACnB,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;AAC1B,CAAC;AAED,SAAS,eAAe,CAAC,QAAgB,EAAE,GAAW,EAAE,GAAW,EAAE,MAAc;IACjF,OAAO,UAAU,CAAC,QAAQ,EAAE,MAAM,CAAC;SAChC,MAAM,CAAC,GAAG,QAAQ,IAAI,GAAG,IAAI,GAAG,EAAE,CAAC;SACnC,MAAM,CAAC,WAAW,CAAC;SACnB,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;AAC1B,CAAC;AAED,SAAS,eAAe,CAAC,KAAa;IACpC,IAAI,CAAC;QACH,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC1D,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAED,SAAS,SAAS,CAAC,CAAS,EAAE,CAAS;IACrC,MAAM,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC1B,MAAM,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC1B,OAAO,EAAE,CAAC,MAAM,KAAK,EAAE,CAAC,MAAM,IAAI,eAAe,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;AAC5D,CAAC;AAiBD,2EAA2E;AAC3E,MAAM,UAAU,kBAAkB,CAAC,KAAK,GAAG,OAAO;IAChD,OAAO,CAAC,CAAC,EAAE,EAAE;QACX,MAAM,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACjC,OAAO,KAAK,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;IACvD,CAAC,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,iBAAiB,CAAC,KAAK,GAAG,OAAO;IAC/C,OAAO,KAAK,EAAE,CAAC,EAAE,EAAE;QACjB,IAAI,CAAC,CAAC,GAAG,CAAC,MAAM,KAAK,MAAM;YAAE,OAAO,SAAS,CAAC;QAC9C,MAAM,WAAW,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;QACvE,IACE,CAAC,WAAW,CAAC,QAAQ,CAAC,mCAAmC,CAAC;YAC1D,CAAC,WAAW,CAAC,QAAQ,CAAC,qBAAqB,CAAC,EAC5C,CAAC;YACD,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,SAAS,EAAE,CAA4B,CAAC;YAClE,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;YAC1B,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;QAC3E,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,SAAS,CAAC;QACnB,CAAC;IACH,CAAC,CAAC;AACJ,CAAC;AAsCD,MAAM,mBAAmB,GAAG,GAAiB,EAAE,CAAC,CAAC;IAC/C,MAAM,EAAE,GAAG;IACX,IAAI,EAAE,EAAE,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,EAAE,EAAE;CAC5D,CAAC,CAAC;AAEH,MAAM,kBAAkB,GAAG,GAAiB,EAAE,CAAC,CAAC;IAC9C,MAAM,EAAE,GAAG;IACX,IAAI,EAAE,EAAE,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,EAAE,EAAE;CACtD,CAAC,CAAC;AAEH,SAAS,OAAO,CAAC,QAAsB;IACrC,OAAO,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;AACnE,CAAC;AAED,SAAS,iBAAiB,CAAC,MAAc;IACvC,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC;QACtC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;QAC1C,OAAO,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAC/D,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAED,SAAS,iBAAiB,CAAC,CAAU,EAAE,QAAiB;IACtD,MAAM,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;IAC9E,IAAI,CAAC,MAAM;QAAE,OAAO,SAAS,CAAC;IAC9B,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC;IAC9B,IAAI,QAAQ,EAAE,CAAC;QACb,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;YAChD,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC;YACrD,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;QAC9C,CAAC;QACD,OAAO,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;IAClD,CAAC;IACD,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC;QAAE,OAAO,SAAS,CAAC;IACrD,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC;IACrD,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;AAC9C,CAAC;AAED,SAAS,gBAAgB,CAAC,GAAY;IACpC,MAAM,IAAI,GAAI,GAAyB,CAAC,IAAI,IAAI,EAAE,CAAC;IACnD,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;IACxD,OAAO,IAAI,KAAK,iBAAiB,IAAI,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC;AACxF,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,UAA6B,EAAE;IACxD,MAAM,YAAY,GAAG,OAAO,CAAC,YAAY,IAAI,mBAAmB,CAAC;IACjE,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,IAAI,kBAAkB,CAAC;IAC9D,MAAM,cAAc,GAAG,OAAO,CAAC,cAAc,IAAI,IAAI,CAAC;IACtD,MAAM,cAAc,GAAG,OAAO,CAAC,cAAc,KAAK,IAAI,CAAC;IAEvD,OAAO,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE;QACvB,IAAI,KAAK,GAAG,iBAAiB,CAAC,CAAC,EAAE,cAAc,CAAC,CAAC;QACjD,IAAI,CAAC,KAAK,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC;YACrC,KAAK,MAAM,YAAY,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC;gBAClD,KAAK,GAAG,CAAC,MAAM,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI,SAAS,CAAC;gBAC7C,IAAI,KAAK;oBAAE,MAAM;YACnB,CAAC;QACH,CAAC;QACD,IAAI,CAAC,KAAK;YAAE,OAAO,OAAO,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC;QAErD,MAAM,OAAO,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,iBAAiB,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACnE,MAAM,QAAQ,GAAG,CAAC,GAAW,EAAwB,EAAE;YACrD,IAAI,OAAO;gBAAE,OAAO,GAAG,KAAK,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;YACzE,OAAO,cAAc,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAC7D,CAAC,CAAC;QAEF,wDAAwD;QACxD,IAAI,OAAO,CAAC,iBAAiB,EAAE,CAAC;YAC9B,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,iBAAiB,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;YAC3D,IAAI,QAAQ,EAAE,CAAC;gBACb,MAAM,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;gBACxC,IAAI,QAAQ;oBAAE,OAAO,QAAQ,CAAC;gBAC9B,CAAC,CAAC,GAAG,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;gBAC3B,MAAM,IAAI,EAAE,CAAC;gBACb,OAAO;YACT,CAAC;QACH,CAAC;QAED,iCAAiC;QACjC,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC;YAC1B,MAAM,WAAW,GAAG,mBAAmB,CAAC,OAAO,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC;YACtE,IAAI,WAAW,EAAE,CAAC;gBAChB,MAAM,QAAQ,GAAG,QAAQ,CAAC,WAAW,CAAC,CAAC;gBACvC,IAAI,QAAQ;oBAAE,OAAO,QAAQ,CAAC;gBAC9B,CAAC,CAAC,GAAG,CAAC,SAAS,EAAE;oBACf,GAAG,EAAE,WAAW;oBAChB,OAAO,EAAE,uBAAuB;oBAChC,GAAG,CAAC,OAAO,CAAC,eAAe,EAAE,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;iBAClD,CAAC,CAAC;gBACH,MAAM,IAAI,EAAE,CAAC;gBACb,OAAO;YACT,CAAC;QACH,CAAC;QAED,kEAAkE;QAClE,wEAAwE;QACxE,IAAI,MAAqB,CAAC;QAC1B,IAAI,CAAC;YACH,MAAM,GAAG,CAAC,MAAM,MAAM,CAAC,KAAK,EAAE,iBAAiB,EAAE,EAAE,OAAO,CAAC,CAA6B,CAAC;QAC3F,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,OAAO,CAAC,YAAY,CAAC,gBAAgB,CAAC,GAAG,CAAC,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;QACjE,CAAC;QACD,IAAI,OAAO,MAAM,CAAC,GAAG,KAAK,QAAQ,IAAI,MAAM,CAAC,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC;YACjF,OAAO,OAAO,CAAC,YAAY,CAAC,SAAS,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;QACrD,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,GAAG;YAAE,OAAO,OAAO,CAAC,YAAY,CAAC,SAAS,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;QACpE,MAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACtC,IAAI,QAAQ;YAAE,OAAO,QAAQ,CAAC;QAE9B,CAAC,CAAC,GAAG,CAAC,SAAS,EAAE;YACf,GAAG,EAAE,MAAM,CAAC,GAAG;YACf,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,GAAG,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;SAC3C,CAAC,CAAC;QACH,MAAM,IAAI,EAAE,CAAC;IACf,CAAC,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,gBAAgB;IAC9B,OAAO,eAAe,EAAE,CAAC;AAC3B,CAAC"}
@@ -1,7 +0,0 @@
1
- export interface TwinBuildInfo {
2
- package: string;
3
- version: string;
4
- git_sha: string;
5
- build_time: string;
6
- }
7
- export declare function twinBuildInfo(packageName: string): TwinBuildInfo;
@@ -1,14 +0,0 @@
1
- // SPDX-License-Identifier: Apache-2.0
2
- //
3
- // The `/healthz` `runtime` block required by the runtime contract. Values
4
- // come from the POME_TWIN_* env surface the cloud injects at image build /
5
- // snapshot time; everything defaults to dev markers locally.
6
- export function twinBuildInfo(packageName) {
7
- return {
8
- package: packageName,
9
- version: process.env.POME_TWIN_VERSION ?? "0.1.0",
10
- git_sha: process.env.POME_TWIN_GIT_SHA ?? process.env.VERCEL_GIT_COMMIT_SHA ?? "dev",
11
- build_time: process.env.POME_TWIN_BUILD_TIME ?? "dev",
12
- };
13
- }
14
- //# sourceMappingURL=build-info.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"build-info.js","sourceRoot":"","sources":["../src/build-info.ts"],"names":[],"mappings":"AAAA,sCAAsC;AACtC,EAAE;AACF,0EAA0E;AAC1E,2EAA2E;AAC3E,6DAA6D;AAS7D,MAAM,UAAU,aAAa,CAAC,WAAmB;IAC/C,OAAO;QACL,OAAO,EAAE,WAAW;QACpB,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,OAAO;QACjD,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,OAAO,CAAC,GAAG,CAAC,qBAAqB,IAAI,KAAK;QACpF,UAAU,EAAE,OAAO,CAAC,GAAG,CAAC,oBAAoB,IAAI,KAAK;KACtD,CAAC;AACJ,CAAC"}
@@ -1,44 +0,0 @@
1
- /**
2
- * Mutation outcome — the shape both better-sqlite3's `RunResult` and
3
- * node:sqlite's `StatementResultingChanges` return; `changes` is coerced to
4
- * number, `lastInsertRowid` may be a bigint for rowids beyond safe-integer
5
- * range.
6
- */
7
- export interface TwinRunResult {
8
- changes: number;
9
- lastInsertRowid: number | bigint;
10
- }
11
- export interface TwinStatement {
12
- run(...params: unknown[]): TwinRunResult;
13
- get(...params: unknown[]): unknown;
14
- all(...params: unknown[]): unknown[];
15
- }
16
- /**
17
- * A wrapped transaction function (better-sqlite3's shape). The `.immediate`
18
- * variant takes the write lock up front (BEGIN IMMEDIATE) — github's domain
19
- * runs its mutations under it.
20
- */
21
- export type TwinTransaction<F extends (...args: never[]) => unknown> = F & {
22
- immediate: F;
23
- };
24
- export interface TwinDatabase {
25
- prepare(sql: string): TwinStatement;
26
- exec(sql: string): void;
27
- pragma(statement: string, options?: {
28
- simple?: boolean;
29
- }): unknown;
30
- /** Same shape as better-sqlite3: wraps `fn` so calling it runs atomically. */
31
- transaction<F extends (...args: never[]) => unknown>(fn: F): TwinTransaction<F>;
32
- close(): void;
33
- }
34
- export interface OpenTwinDatabaseOptions {
35
- /** Schema migration hook, run once right after the pragmas are applied. */
36
- migrate?: (db: TwinDatabase) => void;
37
- }
38
- /**
39
- * Open a twin database with the pome pragma set applied:
40
- * `busy_timeout = 5000`, `journal_mode = WAL` (file-backed), and
41
- * `foreign_keys = ON` — the exact pragmas every twin's hand-rolled db.ts
42
- * applied before F-681 centralized them.
43
- */
44
- export declare function openTwinDatabase(path?: string, options?: OpenTwinDatabaseOptions): TwinDatabase;
@@ -1,113 +0,0 @@
1
- // SPDX-License-Identifier: Apache-2.0
2
- //
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).
15
- import { mkdirSync } from "node:fs";
16
- import { dirname } from "node:path";
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();
94
- }
95
- }
96
- /**
97
- * Open a twin database with the pome pragma set applied:
98
- * `busy_timeout = 5000`, `journal_mode = WAL` (file-backed), and
99
- * `foreign_keys = ON` — the exact pragmas every twin's hand-rolled db.ts
100
- * applied before F-681 centralized them.
101
- */
102
- export function openTwinDatabase(path = ":memory:", options = {}) {
103
- if (path !== ":memory:") {
104
- mkdirSync(dirname(path), { recursive: true });
105
- }
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");
110
- options.migrate?.(db);
111
- return db;
112
- }
113
- //# sourceMappingURL=db.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"db.js","sourceRoot":"","sources":["../src/db.ts"],"names":[],"mappings":"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"}
@@ -1,24 +0,0 @@
1
- export declare class TwinError extends Error {
2
- readonly status: number;
3
- readonly errors?: unknown[] | undefined;
4
- constructor(message: string, status: number, errors?: unknown[] | undefined);
5
- }
6
- /**
7
- * Thrown by the SDK's tool dispatch routes (`/mcp/call`,
8
- * `/mcp/tools/:name`, JSON-RPC `tools/call`) when the named tool is not in
9
- * the registry. A distinct class so a twin's `errorEnvelope` hook can shape
10
- * the frozen per-twin wire format (slack 404 `unknown_tool`, stripe 400
11
- * `tool_unknown`, …) without string-matching messages.
12
- */
13
- export declare class UnknownToolError extends TwinError {
14
- readonly tool: string;
15
- constructor(tool: string, status?: number);
16
- }
17
- export interface ErrorEnvelope {
18
- status: number;
19
- body: {
20
- message: string;
21
- errors?: unknown[];
22
- };
23
- }
24
- export declare function envelopeFor(error: unknown): ErrorEnvelope;
@@ -1,61 +0,0 @@
1
- // SPDX-License-Identifier: Apache-2.0
2
- //
3
- // Generic SDK error envelope. Twin authors can throw `TwinError` from
4
- // handlers to surface a non-200 response with a custom message; the
5
- // recorder middleware unwraps it into the standard envelope and records
6
- // the error string per recording-spec.md v1.0.
7
- import { z } from "zod";
8
- export class TwinError extends Error {
9
- status;
10
- errors;
11
- constructor(message, status, errors) {
12
- super(message);
13
- this.status = status;
14
- this.errors = errors;
15
- this.name = "TwinError";
16
- }
17
- }
18
- /**
19
- * Thrown by the SDK's tool dispatch routes (`/mcp/call`,
20
- * `/mcp/tools/:name`, JSON-RPC `tools/call`) when the named tool is not in
21
- * the registry. A distinct class so a twin's `errorEnvelope` hook can shape
22
- * the frozen per-twin wire format (slack 404 `unknown_tool`, stripe 400
23
- * `tool_unknown`, …) without string-matching messages.
24
- */
25
- export class UnknownToolError extends TwinError {
26
- tool;
27
- constructor(tool, status = 404) {
28
- super(`Unknown tool: ${tool}`, status);
29
- this.tool = tool;
30
- this.name = "UnknownToolError";
31
- }
32
- }
33
- export function envelopeFor(error) {
34
- if (error instanceof TwinError) {
35
- return {
36
- status: error.status,
37
- body: { message: error.message, ...(error.errors ? { errors: error.errors } : {}) },
38
- };
39
- }
40
- if (error instanceof z.ZodError) {
41
- return {
42
- status: 422,
43
- body: {
44
- message: "Validation Failed",
45
- errors: error.issues.map((issue) => ({
46
- field: issue.path.join("."),
47
- code: issue.code,
48
- message: issue.message,
49
- })),
50
- },
51
- };
52
- }
53
- if (error instanceof SyntaxError) {
54
- return { status: 400, body: { message: "Problems parsing JSON" } };
55
- }
56
- return {
57
- status: 500,
58
- body: { message: error instanceof Error ? error.message : "Internal Server Error" },
59
- };
60
- }
61
- //# sourceMappingURL=errors.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,sCAAsC;AACtC,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,wEAAwE;AACxE,+CAA+C;AAE/C,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,OAAO,SAAU,SAAQ,KAAK;IAGvB;IACA;IAHX,YACE,OAAe,EACN,MAAc,EACd,MAAkB;QAE3B,KAAK,CAAC,OAAO,CAAC,CAAC;QAHN,WAAM,GAAN,MAAM,CAAQ;QACd,WAAM,GAAN,MAAM,CAAY;QAG3B,IAAI,CAAC,IAAI,GAAG,WAAW,CAAC;IAC1B,CAAC;CACF;AAED;;;;;;GAMG;AACH,MAAM,OAAO,gBAAiB,SAAQ,SAAS;IACxB;IAArB,YAAqB,IAAY,EAAE,MAAM,GAAG,GAAG;QAC7C,KAAK,CAAC,iBAAiB,IAAI,EAAE,EAAE,MAAM,CAAC,CAAC;QADpB,SAAI,GAAJ,IAAI,CAAQ;QAE/B,IAAI,CAAC,IAAI,GAAG,kBAAkB,CAAC;IACjC,CAAC;CACF;AAOD,MAAM,UAAU,WAAW,CAAC,KAAc;IACxC,IAAI,KAAK,YAAY,SAAS,EAAE,CAAC;QAC/B,OAAO;YACL,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,IAAI,EAAE,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE;SACpF,CAAC;IACJ,CAAC;IACD,IAAI,KAAK,YAAY,CAAC,CAAC,QAAQ,EAAE,CAAC;QAChC,OAAO;YACL,MAAM,EAAE,GAAG;YACX,IAAI,EAAE;gBACJ,OAAO,EAAE,mBAAmB;gBAC5B,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;oBACnC,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;oBAC3B,IAAI,EAAE,KAAK,CAAC,IAAI;oBAChB,OAAO,EAAE,KAAK,CAAC,OAAO;iBACvB,CAAC,CAAC;aACJ;SACF,CAAC;IACJ,CAAC;IACD,IAAI,KAAK,YAAY,WAAW,EAAE,CAAC;QACjC,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,uBAAuB,EAAE,EAAE,CAAC;IACrE,CAAC;IACD,OAAO;QACL,MAAM,EAAE,GAAG;QACX,IAAI,EAAE,EAAE,OAAO,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,uBAAuB,EAAE;KACpF,CAAC;AACJ,CAAC"}
@@ -1,43 +0,0 @@
1
- import type { MiddlewareHandler } from "hono";
2
- import { z } from "zod";
3
- import type { RecorderEvent } from "@pome-sh/shared-types";
4
- export declare const FAILURE_INJECTION_OVERRIDE_KEY = "failureInjectionOverride";
5
- export type FailureInjectionOverride = {
6
- status: number;
7
- body: unknown;
8
- };
9
- export type FailureInjectionMode = "before_handler" | "after_handler";
10
- export type FailureInjectionRule = {
11
- method: string;
12
- path: string;
13
- attempt: number;
14
- mode: FailureInjectionMode;
15
- status: number;
16
- body: unknown;
17
- };
18
- export declare const failureInjectionRuleSchema: z.ZodObject<{
19
- method: z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>;
20
- path: z.ZodString;
21
- attempt: z.ZodNumber;
22
- mode: z.ZodDefault<z.ZodEnum<{
23
- before_handler: "before_handler";
24
- after_handler: "after_handler";
25
- }>>;
26
- status: z.ZodNumber;
27
- body: z.ZodUnknown;
28
- }, z.core.$strip>;
29
- export type FailureInjectionStore = {
30
- setRules(rules: FailureInjectionRule[]): void;
31
- clear(): void;
32
- matchAndConsume(accountId: string, method: string, path: string): FailureInjectionRule | null;
33
- };
34
- export declare function createFailureInjectionStore(): FailureInjectionStore;
35
- export interface FailureInjectionMiddlewareOptions {
36
- /** Sink for before_handler events. Optional — a recorderless app still injects. */
37
- recorder?: {
38
- record(event: RecorderEvent): void;
39
- };
40
- runId: string;
41
- twin: string;
42
- }
43
- export declare function failureInjectionMiddleware(store: FailureInjectionStore, options: FailureInjectionMiddlewareOptions): MiddlewareHandler;