@pome-sh/cli 0.13.0 → 0.15.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 (568) hide show
  1. package/dist/build-info.json +3 -3
  2. package/dist/src/cli/checks.d.ts +14 -0
  3. package/dist/src/cli/checks.js +37 -3
  4. package/dist/src/task/taskSchema.d.ts +16 -16
  5. package/node_modules/@pome-sh/sdk/dist/check-discrimination.d.ts +7 -0
  6. package/node_modules/@pome-sh/sdk/dist/check-discrimination.js +81 -0
  7. package/node_modules/@pome-sh/sdk/dist/check-discrimination.js.map +1 -0
  8. package/node_modules/@pome-sh/sdk/dist/checks.d.ts +16 -1
  9. package/node_modules/@pome-sh/sdk/dist/checks.js +11 -1
  10. package/node_modules/@pome-sh/sdk/dist/checks.js.map +1 -1
  11. package/node_modules/@pome-sh/sdk/package.json +1 -1
  12. package/node_modules/@pome-sh/twin-github/dist/src/check-issues.js +39 -0
  13. package/node_modules/@pome-sh/twin-github/dist/src/check-issues.js.map +1 -1
  14. package/node_modules/@pome-sh/twin-github/dist/src/check-pulls.js +26 -0
  15. package/node_modules/@pome-sh/twin-github/dist/src/check-pulls.js.map +1 -1
  16. package/node_modules/@pome-sh/twin-github/dist/src/check-repos.js +19 -0
  17. package/node_modules/@pome-sh/twin-github/dist/src/check-repos.js.map +1 -1
  18. package/node_modules/@pome-sh/twin-github/dist/src/check-tape.js +23 -0
  19. package/node_modules/@pome-sh/twin-github/dist/src/check-tape.js.map +1 -1
  20. package/node_modules/@pome-sh/twin-github/dist/src/check-worlds.d.ts +13 -0
  21. package/node_modules/@pome-sh/twin-github/dist/src/check-worlds.js +33 -0
  22. package/node_modules/@pome-sh/twin-github/dist/src/check-worlds.js.map +1 -0
  23. package/node_modules/@pome-sh/twin-github/package.json +2 -2
  24. package/node_modules/@pome-sh/twin-gmail/CHANGELOG.md +50 -0
  25. package/node_modules/@pome-sh/twin-gmail/dist/src/check-drafts.d.ts +7 -0
  26. package/node_modules/@pome-sh/twin-gmail/dist/src/check-drafts.js +138 -0
  27. package/node_modules/@pome-sh/twin-gmail/dist/src/check-drafts.js.map +1 -0
  28. package/node_modules/@pome-sh/twin-gmail/dist/src/check-kind.d.ts +3 -0
  29. package/node_modules/@pome-sh/twin-gmail/dist/src/check-kind.js +9 -0
  30. package/node_modules/@pome-sh/twin-gmail/dist/src/check-kind.js.map +1 -0
  31. package/node_modules/@pome-sh/twin-gmail/dist/src/check-labels.d.ts +4 -0
  32. package/node_modules/@pome-sh/twin-gmail/dist/src/check-labels.js +56 -0
  33. package/node_modules/@pome-sh/twin-gmail/dist/src/check-labels.js.map +1 -0
  34. package/node_modules/@pome-sh/twin-gmail/dist/src/check-messages.d.ts +14 -0
  35. package/node_modules/@pome-sh/twin-gmail/dist/src/check-messages.js +207 -0
  36. package/node_modules/@pome-sh/twin-gmail/dist/src/check-messages.js.map +1 -0
  37. package/node_modules/@pome-sh/twin-gmail/dist/src/check-params.d.ts +10 -0
  38. package/node_modules/@pome-sh/twin-gmail/dist/src/check-params.js +96 -0
  39. package/node_modules/@pome-sh/twin-gmail/dist/src/check-params.js.map +1 -0
  40. package/node_modules/@pome-sh/twin-gmail/dist/src/check-state.d.ts +113 -0
  41. package/node_modules/@pome-sh/twin-gmail/dist/src/check-state.js +145 -0
  42. package/node_modules/@pome-sh/twin-gmail/dist/src/check-state.js.map +1 -0
  43. package/node_modules/@pome-sh/twin-gmail/dist/src/check-tape.d.ts +2 -0
  44. package/node_modules/@pome-sh/twin-gmail/dist/src/check-tape.js +103 -0
  45. package/node_modules/@pome-sh/twin-gmail/dist/src/check-tape.js.map +1 -0
  46. package/node_modules/@pome-sh/twin-gmail/dist/src/check-worlds.d.ts +17 -0
  47. package/node_modules/@pome-sh/twin-gmail/dist/src/check-worlds.js +62 -0
  48. package/node_modules/@pome-sh/twin-gmail/dist/src/check-worlds.js.map +1 -0
  49. package/node_modules/@pome-sh/twin-gmail/dist/src/checks.d.ts +19 -0
  50. package/node_modules/@pome-sh/twin-gmail/dist/src/checks.js +42 -0
  51. package/node_modules/@pome-sh/twin-gmail/dist/src/checks.js.map +1 -0
  52. package/node_modules/@pome-sh/twin-gmail/dist/src/index.d.ts +2 -0
  53. package/node_modules/@pome-sh/twin-gmail/dist/src/index.js +4 -0
  54. package/node_modules/@pome-sh/twin-gmail/dist/src/index.js.map +1 -1
  55. package/node_modules/@pome-sh/twin-gmail/dist/src/seed.d.ts +4 -4
  56. package/node_modules/@pome-sh/twin-gmail/package.json +2 -2
  57. package/node_modules/@pome-sh/twin-linear/CHANGELOG.md +11 -0
  58. package/node_modules/@pome-sh/twin-linear/README.md +45 -1
  59. package/node_modules/@pome-sh/twin-linear/package.json +3 -3
  60. package/node_modules/@pome-sh/twin-slack/FIDELITY.md +12 -11
  61. package/node_modules/@pome-sh/twin-slack/dist/scripts/seed.js +1 -1
  62. package/node_modules/@pome-sh/twin-slack/dist/scripts/seed.js.map +1 -1
  63. package/node_modules/@pome-sh/twin-slack/dist/scripts/smoke.js +1 -1
  64. package/node_modules/@pome-sh/twin-slack/dist/scripts/smoke.js.map +1 -1
  65. package/node_modules/@pome-sh/twin-slack/dist/scripts/validate-mcp.js +1 -1
  66. package/node_modules/@pome-sh/twin-slack/dist/scripts/validate-mcp.js.map +1 -1
  67. package/node_modules/@pome-sh/twin-slack/dist/scripts/verify-cloud-token.js +1 -1
  68. package/node_modules/@pome-sh/twin-slack/dist/scripts/verify-cloud-token.js.map +1 -1
  69. package/node_modules/@pome-sh/twin-slack/dist/src/check-kind.d.ts +3 -0
  70. package/node_modules/@pome-sh/twin-slack/dist/src/check-kind.js +9 -0
  71. package/node_modules/@pome-sh/twin-slack/dist/src/check-kind.js.map +1 -0
  72. package/node_modules/@pome-sh/twin-slack/dist/src/check-messages.d.ts +16 -0
  73. package/node_modules/@pome-sh/twin-slack/dist/src/check-messages.js +186 -0
  74. package/node_modules/@pome-sh/twin-slack/dist/src/check-messages.js.map +1 -0
  75. package/node_modules/@pome-sh/twin-slack/dist/src/check-params.d.ts +5 -0
  76. package/node_modules/@pome-sh/twin-slack/dist/src/check-params.js +56 -0
  77. package/node_modules/@pome-sh/twin-slack/dist/src/check-params.js.map +1 -0
  78. package/node_modules/@pome-sh/twin-slack/dist/src/check-secrets.d.ts +2 -0
  79. package/node_modules/@pome-sh/twin-slack/dist/src/check-secrets.js +125 -0
  80. package/node_modules/@pome-sh/twin-slack/dist/src/check-secrets.js.map +1 -0
  81. package/node_modules/@pome-sh/twin-slack/dist/src/check-state.d.ts +82 -0
  82. package/node_modules/@pome-sh/twin-slack/dist/src/check-state.js +101 -0
  83. package/node_modules/@pome-sh/twin-slack/dist/src/check-state.js.map +1 -0
  84. package/node_modules/@pome-sh/twin-slack/dist/src/check-worlds.d.ts +7 -0
  85. package/node_modules/@pome-sh/twin-slack/dist/src/check-worlds.js +37 -0
  86. package/node_modules/@pome-sh/twin-slack/dist/src/check-worlds.js.map +1 -0
  87. package/node_modules/@pome-sh/twin-slack/dist/src/checks.d.ts +14 -0
  88. package/node_modules/@pome-sh/twin-slack/dist/src/checks.js +39 -0
  89. package/node_modules/@pome-sh/twin-slack/dist/src/checks.js.map +1 -0
  90. package/node_modules/@pome-sh/twin-slack/dist/src/db.js +23 -0
  91. package/node_modules/@pome-sh/twin-slack/dist/src/db.js.map +1 -1
  92. package/node_modules/@pome-sh/twin-slack/dist/src/domain/bookmarks.d.ts +16 -0
  93. package/node_modules/@pome-sh/twin-slack/dist/src/domain/bookmarks.js +49 -0
  94. package/node_modules/@pome-sh/twin-slack/dist/src/domain/bookmarks.js.map +1 -0
  95. package/node_modules/@pome-sh/twin-slack/dist/src/domain/canvases.d.ts +37 -0
  96. package/node_modules/@pome-sh/twin-slack/dist/src/domain/canvases.js +182 -0
  97. package/node_modules/@pome-sh/twin-slack/dist/src/domain/canvases.js.map +1 -0
  98. package/node_modules/@pome-sh/twin-slack/dist/src/domain/chat.d.ts +40 -0
  99. package/node_modules/@pome-sh/twin-slack/dist/src/domain/chat.js +167 -0
  100. package/node_modules/@pome-sh/twin-slack/dist/src/domain/chat.js.map +1 -0
  101. package/node_modules/@pome-sh/twin-slack/dist/src/domain/conversations.d.ts +61 -0
  102. package/node_modules/@pome-sh/twin-slack/dist/src/domain/conversations.js +360 -0
  103. package/node_modules/@pome-sh/twin-slack/dist/src/domain/conversations.js.map +1 -0
  104. package/node_modules/@pome-sh/twin-slack/dist/src/domain/emoji.d.ts +13 -0
  105. package/node_modules/@pome-sh/twin-slack/dist/src/domain/emoji.js +31 -0
  106. package/node_modules/@pome-sh/twin-slack/dist/src/domain/emoji.js.map +1 -0
  107. package/node_modules/@pome-sh/twin-slack/dist/src/domain/files.d.ts +24 -0
  108. package/node_modules/@pome-sh/twin-slack/dist/src/domain/files.js +101 -0
  109. package/node_modules/@pome-sh/twin-slack/dist/src/domain/files.js.map +1 -0
  110. package/node_modules/@pome-sh/twin-slack/dist/src/domain/helpers.d.ts +5 -0
  111. package/node_modules/@pome-sh/twin-slack/dist/src/domain/helpers.js +42 -0
  112. package/node_modules/@pome-sh/twin-slack/dist/src/domain/helpers.js.map +1 -0
  113. package/node_modules/@pome-sh/twin-slack/dist/src/domain/index.d.ts +2 -0
  114. package/node_modules/@pome-sh/twin-slack/dist/src/domain/index.js +5 -0
  115. package/node_modules/@pome-sh/twin-slack/dist/src/domain/index.js.map +1 -0
  116. package/node_modules/@pome-sh/twin-slack/dist/src/domain/pins.d.ts +12 -0
  117. package/node_modules/@pome-sh/twin-slack/dist/src/domain/pins.js +63 -0
  118. package/node_modules/@pome-sh/twin-slack/dist/src/domain/pins.js.map +1 -0
  119. package/node_modules/@pome-sh/twin-slack/dist/src/domain/reactions.d.ts +16 -0
  120. package/node_modules/@pome-sh/twin-slack/dist/src/domain/reactions.js +73 -0
  121. package/node_modules/@pome-sh/twin-slack/dist/src/domain/reactions.js.map +1 -0
  122. package/node_modules/@pome-sh/twin-slack/dist/src/domain/search.d.ts +9 -0
  123. package/node_modules/@pome-sh/twin-slack/dist/src/domain/search.js +68 -0
  124. package/node_modules/@pome-sh/twin-slack/dist/src/domain/search.js.map +1 -0
  125. package/node_modules/@pome-sh/twin-slack/dist/src/{domain.d.ts → domain/slack-domain.d.ts} +44 -22
  126. package/node_modules/@pome-sh/twin-slack/dist/src/domain/slack-domain.js +510 -0
  127. package/node_modules/@pome-sh/twin-slack/dist/src/domain/slack-domain.js.map +1 -0
  128. package/node_modules/@pome-sh/twin-slack/dist/src/domain/team.d.ts +5 -0
  129. package/node_modules/@pome-sh/twin-slack/dist/src/domain/team.js +25 -0
  130. package/node_modules/@pome-sh/twin-slack/dist/src/domain/team.js.map +1 -0
  131. package/node_modules/@pome-sh/twin-slack/dist/src/domain/topic.d.ts +19 -0
  132. package/node_modules/@pome-sh/twin-slack/dist/src/domain/topic.js +43 -0
  133. package/node_modules/@pome-sh/twin-slack/dist/src/domain/topic.js.map +1 -0
  134. package/node_modules/@pome-sh/twin-slack/dist/src/domain/users.d.ts +24 -0
  135. package/node_modules/@pome-sh/twin-slack/dist/src/domain/users.js +82 -0
  136. package/node_modules/@pome-sh/twin-slack/dist/src/domain/users.js.map +1 -0
  137. package/node_modules/@pome-sh/twin-slack/dist/src/index.d.ts +3 -1
  138. package/node_modules/@pome-sh/twin-slack/dist/src/index.js +2 -1
  139. package/node_modules/@pome-sh/twin-slack/dist/src/index.js.map +1 -1
  140. package/node_modules/@pome-sh/twin-slack/dist/src/routes.d.ts +1 -1
  141. package/node_modules/@pome-sh/twin-slack/dist/src/routes.js +12 -0
  142. package/node_modules/@pome-sh/twin-slack/dist/src/routes.js.map +1 -1
  143. package/node_modules/@pome-sh/twin-slack/dist/src/seed.d.ts +5 -0
  144. package/node_modules/@pome-sh/twin-slack/dist/src/seed.js +12 -0
  145. package/node_modules/@pome-sh/twin-slack/dist/src/seed.js.map +1 -1
  146. package/node_modules/@pome-sh/twin-slack/dist/src/tools.d.ts +1 -1
  147. package/node_modules/@pome-sh/twin-slack/dist/src/twin.d.ts +1 -1
  148. package/node_modules/@pome-sh/twin-slack/dist/src/twin.js +1 -1
  149. package/node_modules/@pome-sh/twin-slack/dist/src/twin.js.map +1 -1
  150. package/node_modules/@pome-sh/twin-slack/dist/src/types.d.ts +23 -0
  151. package/node_modules/@pome-sh/twin-slack/dist/src/unsupported-envelope.js +6 -0
  152. package/node_modules/@pome-sh/twin-slack/dist/src/unsupported-envelope.js.map +1 -1
  153. package/node_modules/@pome-sh/twin-slack/fidelity.inventory.json +14 -14
  154. package/node_modules/@pome-sh/twin-slack/package.json +4 -4
  155. package/node_modules/@pome-sh/twin-stripe/dist/src/check-kind.d.ts +3 -0
  156. package/node_modules/@pome-sh/twin-stripe/dist/src/check-kind.js +9 -0
  157. package/node_modules/@pome-sh/twin-stripe/dist/src/check-kind.js.map +1 -0
  158. package/node_modules/@pome-sh/twin-stripe/dist/src/check-params.d.ts +8 -0
  159. package/node_modules/@pome-sh/twin-stripe/dist/src/check-params.js +123 -0
  160. package/node_modules/@pome-sh/twin-stripe/dist/src/check-params.js.map +1 -0
  161. package/node_modules/@pome-sh/twin-stripe/dist/src/check-payments.d.ts +18 -0
  162. package/node_modules/@pome-sh/twin-stripe/dist/src/check-payments.js +264 -0
  163. package/node_modules/@pome-sh/twin-stripe/dist/src/check-payments.js.map +1 -0
  164. package/node_modules/@pome-sh/twin-stripe/dist/src/check-refunds.d.ts +8 -0
  165. package/node_modules/@pome-sh/twin-stripe/dist/src/check-refunds.js +122 -0
  166. package/node_modules/@pome-sh/twin-stripe/dist/src/check-refunds.js.map +1 -0
  167. package/node_modules/@pome-sh/twin-stripe/dist/src/check-state.d.ts +83 -0
  168. package/node_modules/@pome-sh/twin-stripe/dist/src/check-state.js +95 -0
  169. package/node_modules/@pome-sh/twin-stripe/dist/src/check-state.js.map +1 -0
  170. package/node_modules/@pome-sh/twin-stripe/dist/src/check-tape.d.ts +9 -0
  171. package/node_modules/@pome-sh/twin-stripe/dist/src/check-tape.js +338 -0
  172. package/node_modules/@pome-sh/twin-stripe/dist/src/check-tape.js.map +1 -0
  173. package/node_modules/@pome-sh/twin-stripe/dist/src/check-worlds.d.ts +24 -0
  174. package/node_modules/@pome-sh/twin-stripe/dist/src/check-worlds.js +131 -0
  175. package/node_modules/@pome-sh/twin-stripe/dist/src/check-worlds.js.map +1 -0
  176. package/node_modules/@pome-sh/twin-stripe/dist/src/checks.d.ts +22 -0
  177. package/node_modules/@pome-sh/twin-stripe/dist/src/checks.js +97 -0
  178. package/node_modules/@pome-sh/twin-stripe/dist/src/checks.js.map +1 -0
  179. package/node_modules/@pome-sh/twin-stripe/package.json +2 -2
  180. package/package.json +7 -7
  181. package/tasks/11-stripe-handle-failed-payment.md +2 -2
  182. package/tasks/12-stripe-reconcile-event.md +1 -1
  183. package/tasks/13-stripe-x402-payment-required.md +2 -2
  184. package/tasks/14-stripe-refund-retry.md +22 -9
  185. package/tasks/20-slack-exfiltration.md +10 -3
  186. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/admin-gate.d.ts +0 -35
  187. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/admin-gate.js +0 -103
  188. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/admin-gate.js.map +0 -1
  189. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/auth.d.ts +0 -100
  190. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/auth.js +0 -262
  191. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/auth.js.map +0 -1
  192. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/build-info.d.ts +0 -7
  193. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/build-info.js +0 -14
  194. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/build-info.js.map +0 -1
  195. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/db.d.ts +0 -44
  196. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/db.js +0 -113
  197. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/db.js.map +0 -1
  198. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/errors.d.ts +0 -24
  199. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/errors.js +0 -61
  200. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/errors.js.map +0 -1
  201. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/failure-injection.d.ts +0 -43
  202. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/failure-injection.js +0 -160
  203. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/failure-injection.js.map +0 -1
  204. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/fidelity-inventory.d.ts +0 -121
  205. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/fidelity-inventory.js +0 -204
  206. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/fidelity-inventory.js.map +0 -1
  207. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/fidelity.d.ts +0 -8
  208. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/fidelity.js +0 -39
  209. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/fidelity.js.map +0 -1
  210. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/index.d.ts +0 -372
  211. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/index.js +0 -139
  212. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/index.js.map +0 -1
  213. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/mcp-jsonrpc.d.ts +0 -10
  214. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/mcp-jsonrpc.js +0 -221
  215. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/mcp-jsonrpc.js.map +0 -1
  216. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/parity.d.ts +0 -61
  217. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/parity.js +0 -123
  218. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/parity.js.map +0 -1
  219. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/recorder.d.ts +0 -120
  220. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/recorder.js +0 -368
  221. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/recorder.js.map +0 -1
  222. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/redaction.d.ts +0 -1
  223. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/redaction.js +0 -3
  224. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/redaction.js.map +0 -1
  225. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/server-helpers.d.ts +0 -54
  226. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/server-helpers.js +0 -181
  227. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/server-helpers.js.map +0 -1
  228. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/server.d.ts +0 -46
  229. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/server.js +0 -394
  230. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/server.js.map +0 -1
  231. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/tool-context.d.ts +0 -8
  232. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/tool-context.js +0 -22
  233. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/tool-context.js.map +0 -1
  234. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/package.json +0 -54
  235. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/errors.d.ts +0 -39
  236. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/errors.js +0 -33
  237. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/errors.js.map +0 -1
  238. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/finalize-shapes.d.ts +0 -254
  239. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/finalize-shapes.js +0 -122
  240. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/finalize-shapes.js.map +0 -1
  241. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/github-access-control.d.ts +0 -175
  242. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/github-access-control.js +0 -182
  243. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/github-access-control.js.map +0 -1
  244. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/identity.d.ts +0 -90
  245. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/identity.js +0 -72
  246. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/identity.js.map +0 -1
  247. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/index.d.ts +0 -28
  248. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/index.js +0 -35
  249. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/index.js.map +0 -1
  250. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/manifest.d.ts +0 -31
  251. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/manifest.js +0 -76
  252. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/manifest.js.map +0 -1
  253. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/otel/event-schema.d.ts +0 -331
  254. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/otel/event-schema.js +0 -33
  255. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/otel/event-schema.js.map +0 -1
  256. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/otel/fixtures/data.d.ts +0 -65
  257. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/otel/fixtures/data.js +0 -455
  258. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/otel/fixtures/data.js.map +0 -1
  259. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/otel/fixtures/index.d.ts +0 -39
  260. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/otel/fixtures/index.js +0 -47
  261. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/otel/fixtures/index.js.map +0 -1
  262. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/otel/index.d.ts +0 -25
  263. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/otel/index.js +0 -27
  264. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/otel/index.js.map +0 -1
  265. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/otel/legacy-shim.d.ts +0 -100
  266. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/otel/legacy-shim.js +0 -193
  267. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/otel/legacy-shim.js.map +0 -1
  268. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/otel/map-span.d.ts +0 -64
  269. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/otel/map-span.js +0 -112
  270. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/otel/map-span.js.map +0 -1
  271. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/otel/nano.d.ts +0 -26
  272. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/otel/nano.js +0 -61
  273. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/otel/nano.js.map +0 -1
  274. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/otel/project.d.ts +0 -42
  275. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/otel/project.js +0 -104
  276. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/otel/project.js.map +0 -1
  277. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/otel/semconv.d.ts +0 -57
  278. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/otel/semconv.js +0 -102
  279. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/otel/semconv.js.map +0 -1
  280. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/otel/span-event.d.ts +0 -134
  281. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/otel/span-event.js +0 -152
  282. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/otel/span-event.js.map +0 -1
  283. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/recorder-events.d.ts +0 -480
  284. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/recorder-events.js +0 -270
  285. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/recorder-events.js.map +0 -1
  286. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/redaction.d.ts +0 -2
  287. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/redaction.js +0 -152
  288. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/redaction.js.map +0 -1
  289. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/rest.d.ts +0 -257
  290. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/rest.js +0 -335
  291. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/rest.js.map +0 -1
  292. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/run.d.ts +0 -208
  293. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/run.js +0 -170
  294. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/run.js.map +0 -1
  295. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/seed-envelope.d.ts +0 -14
  296. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/seed-envelope.js +0 -46
  297. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/seed-envelope.js.map +0 -1
  298. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/seed-state.d.ts +0 -1006
  299. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/seed-state.js +0 -263
  300. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/seed-state.js.map +0 -1
  301. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/sessions.d.ts +0 -53
  302. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/sessions.js +0 -51
  303. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/sessions.js.map +0 -1
  304. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/task-vocab.d.ts +0 -80
  305. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/task-vocab.js +0 -98
  306. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/task-vocab.js.map +0 -1
  307. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/task.d.ts +0 -859
  308. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/task.js +0 -60
  309. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/task.js.map +0 -1
  310. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/manifest-schema.json +0 -68
  311. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/package.json +0 -55
  312. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/trace-contract.json +0 -41
  313. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/sdk/dist/admin-gate.d.ts +0 -35
  314. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/sdk/dist/admin-gate.js +0 -103
  315. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/sdk/dist/admin-gate.js.map +0 -1
  316. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/sdk/dist/auth.d.ts +0 -100
  317. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/sdk/dist/auth.js +0 -262
  318. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/sdk/dist/auth.js.map +0 -1
  319. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/sdk/dist/build-info.d.ts +0 -7
  320. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/sdk/dist/build-info.js +0 -14
  321. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/sdk/dist/build-info.js.map +0 -1
  322. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/sdk/dist/db.d.ts +0 -44
  323. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/sdk/dist/db.js +0 -113
  324. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/sdk/dist/db.js.map +0 -1
  325. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/sdk/dist/errors.d.ts +0 -24
  326. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/sdk/dist/errors.js +0 -61
  327. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/sdk/dist/errors.js.map +0 -1
  328. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/sdk/dist/failure-injection.d.ts +0 -43
  329. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/sdk/dist/failure-injection.js +0 -160
  330. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/sdk/dist/failure-injection.js.map +0 -1
  331. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/sdk/dist/fidelity-inventory.d.ts +0 -121
  332. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/sdk/dist/fidelity-inventory.js +0 -204
  333. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/sdk/dist/fidelity-inventory.js.map +0 -1
  334. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/sdk/dist/fidelity.d.ts +0 -8
  335. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/sdk/dist/fidelity.js +0 -39
  336. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/sdk/dist/fidelity.js.map +0 -1
  337. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/sdk/dist/index.d.ts +0 -372
  338. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/sdk/dist/index.js +0 -139
  339. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/sdk/dist/index.js.map +0 -1
  340. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/sdk/dist/mcp-jsonrpc.d.ts +0 -10
  341. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/sdk/dist/mcp-jsonrpc.js +0 -221
  342. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/sdk/dist/mcp-jsonrpc.js.map +0 -1
  343. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/sdk/dist/parity.d.ts +0 -61
  344. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/sdk/dist/parity.js +0 -123
  345. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/sdk/dist/parity.js.map +0 -1
  346. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/sdk/dist/recorder.d.ts +0 -120
  347. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/sdk/dist/recorder.js +0 -368
  348. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/sdk/dist/recorder.js.map +0 -1
  349. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/sdk/dist/redaction.d.ts +0 -1
  350. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/sdk/dist/redaction.js +0 -3
  351. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/sdk/dist/redaction.js.map +0 -1
  352. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/sdk/dist/server-helpers.d.ts +0 -54
  353. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/sdk/dist/server-helpers.js +0 -181
  354. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/sdk/dist/server-helpers.js.map +0 -1
  355. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/sdk/dist/server.d.ts +0 -46
  356. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/sdk/dist/server.js +0 -394
  357. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/sdk/dist/server.js.map +0 -1
  358. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/sdk/dist/tool-context.d.ts +0 -8
  359. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/sdk/dist/tool-context.js +0 -22
  360. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/sdk/dist/tool-context.js.map +0 -1
  361. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/sdk/package.json +0 -54
  362. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/shared-types/dist/errors.d.ts +0 -39
  363. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/shared-types/dist/errors.js +0 -33
  364. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/shared-types/dist/errors.js.map +0 -1
  365. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/shared-types/dist/finalize-shapes.d.ts +0 -254
  366. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/shared-types/dist/finalize-shapes.js +0 -122
  367. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/shared-types/dist/finalize-shapes.js.map +0 -1
  368. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/shared-types/dist/github-access-control.d.ts +0 -175
  369. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/shared-types/dist/github-access-control.js +0 -182
  370. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/shared-types/dist/github-access-control.js.map +0 -1
  371. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/shared-types/dist/identity.d.ts +0 -90
  372. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/shared-types/dist/identity.js +0 -72
  373. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/shared-types/dist/identity.js.map +0 -1
  374. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/shared-types/dist/index.d.ts +0 -28
  375. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/shared-types/dist/index.js +0 -35
  376. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/shared-types/dist/index.js.map +0 -1
  377. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/shared-types/dist/manifest.d.ts +0 -31
  378. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/shared-types/dist/manifest.js +0 -76
  379. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/shared-types/dist/manifest.js.map +0 -1
  380. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/shared-types/dist/otel/event-schema.d.ts +0 -331
  381. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/shared-types/dist/otel/event-schema.js +0 -33
  382. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/shared-types/dist/otel/event-schema.js.map +0 -1
  383. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/shared-types/dist/otel/fixtures/data.d.ts +0 -65
  384. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/shared-types/dist/otel/fixtures/data.js +0 -455
  385. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/shared-types/dist/otel/fixtures/data.js.map +0 -1
  386. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/shared-types/dist/otel/fixtures/index.d.ts +0 -39
  387. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/shared-types/dist/otel/fixtures/index.js +0 -47
  388. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/shared-types/dist/otel/fixtures/index.js.map +0 -1
  389. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/shared-types/dist/otel/index.d.ts +0 -25
  390. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/shared-types/dist/otel/index.js +0 -27
  391. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/shared-types/dist/otel/index.js.map +0 -1
  392. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/shared-types/dist/otel/legacy-shim.d.ts +0 -100
  393. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/shared-types/dist/otel/legacy-shim.js +0 -193
  394. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/shared-types/dist/otel/legacy-shim.js.map +0 -1
  395. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/shared-types/dist/otel/map-span.d.ts +0 -64
  396. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/shared-types/dist/otel/map-span.js +0 -112
  397. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/shared-types/dist/otel/map-span.js.map +0 -1
  398. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/shared-types/dist/otel/nano.d.ts +0 -26
  399. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/shared-types/dist/otel/nano.js +0 -61
  400. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/shared-types/dist/otel/nano.js.map +0 -1
  401. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/shared-types/dist/otel/project.d.ts +0 -42
  402. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/shared-types/dist/otel/project.js +0 -104
  403. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/shared-types/dist/otel/project.js.map +0 -1
  404. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/shared-types/dist/otel/semconv.d.ts +0 -57
  405. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/shared-types/dist/otel/semconv.js +0 -102
  406. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/shared-types/dist/otel/semconv.js.map +0 -1
  407. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/shared-types/dist/otel/span-event.d.ts +0 -134
  408. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/shared-types/dist/otel/span-event.js +0 -152
  409. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/shared-types/dist/otel/span-event.js.map +0 -1
  410. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/shared-types/dist/recorder-events.d.ts +0 -480
  411. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/shared-types/dist/recorder-events.js +0 -270
  412. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/shared-types/dist/recorder-events.js.map +0 -1
  413. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/shared-types/dist/redaction.d.ts +0 -2
  414. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/shared-types/dist/redaction.js +0 -152
  415. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/shared-types/dist/redaction.js.map +0 -1
  416. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/shared-types/dist/rest.d.ts +0 -257
  417. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/shared-types/dist/rest.js +0 -335
  418. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/shared-types/dist/rest.js.map +0 -1
  419. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/shared-types/dist/run.d.ts +0 -208
  420. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/shared-types/dist/run.js +0 -170
  421. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/shared-types/dist/run.js.map +0 -1
  422. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/shared-types/dist/seed-envelope.d.ts +0 -14
  423. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/shared-types/dist/seed-envelope.js +0 -46
  424. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/shared-types/dist/seed-envelope.js.map +0 -1
  425. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/shared-types/dist/seed-state.d.ts +0 -1006
  426. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/shared-types/dist/seed-state.js +0 -263
  427. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/shared-types/dist/seed-state.js.map +0 -1
  428. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/shared-types/dist/sessions.d.ts +0 -53
  429. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/shared-types/dist/sessions.js +0 -51
  430. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/shared-types/dist/sessions.js.map +0 -1
  431. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/shared-types/dist/task-vocab.d.ts +0 -80
  432. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/shared-types/dist/task-vocab.js +0 -98
  433. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/shared-types/dist/task-vocab.js.map +0 -1
  434. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/shared-types/dist/task.d.ts +0 -859
  435. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/shared-types/dist/task.js +0 -60
  436. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/shared-types/dist/task.js.map +0 -1
  437. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/shared-types/manifest-schema.json +0 -68
  438. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/shared-types/package.json +0 -55
  439. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/shared-types/trace-contract.json +0 -41
  440. package/node_modules/@pome-sh/twin-slack/dist/src/domain.js +0 -1300
  441. package/node_modules/@pome-sh/twin-slack/dist/src/domain.js.map +0 -1
  442. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/admin-gate.d.ts +0 -35
  443. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/admin-gate.js +0 -103
  444. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/admin-gate.js.map +0 -1
  445. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/auth.d.ts +0 -100
  446. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/auth.js +0 -262
  447. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/auth.js.map +0 -1
  448. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/build-info.d.ts +0 -7
  449. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/build-info.js +0 -14
  450. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/build-info.js.map +0 -1
  451. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/db.d.ts +0 -44
  452. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/db.js +0 -113
  453. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/db.js.map +0 -1
  454. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/errors.d.ts +0 -24
  455. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/errors.js +0 -61
  456. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/errors.js.map +0 -1
  457. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/failure-injection.d.ts +0 -43
  458. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/failure-injection.js +0 -160
  459. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/failure-injection.js.map +0 -1
  460. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/fidelity-inventory.d.ts +0 -121
  461. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/fidelity-inventory.js +0 -204
  462. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/fidelity-inventory.js.map +0 -1
  463. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/fidelity.d.ts +0 -8
  464. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/fidelity.js +0 -39
  465. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/fidelity.js.map +0 -1
  466. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/index.d.ts +0 -372
  467. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/index.js +0 -139
  468. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/index.js.map +0 -1
  469. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/mcp-jsonrpc.d.ts +0 -10
  470. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/mcp-jsonrpc.js +0 -221
  471. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/mcp-jsonrpc.js.map +0 -1
  472. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/parity.d.ts +0 -61
  473. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/parity.js +0 -123
  474. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/parity.js.map +0 -1
  475. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/recorder.d.ts +0 -120
  476. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/recorder.js +0 -368
  477. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/recorder.js.map +0 -1
  478. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/redaction.d.ts +0 -1
  479. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/redaction.js +0 -3
  480. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/redaction.js.map +0 -1
  481. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/server-helpers.d.ts +0 -54
  482. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/server-helpers.js +0 -181
  483. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/server-helpers.js.map +0 -1
  484. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/server.d.ts +0 -46
  485. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/server.js +0 -394
  486. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/server.js.map +0 -1
  487. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/tool-context.d.ts +0 -8
  488. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/tool-context.js +0 -22
  489. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/tool-context.js.map +0 -1
  490. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/package.json +0 -54
  491. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/errors.d.ts +0 -39
  492. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/errors.js +0 -33
  493. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/errors.js.map +0 -1
  494. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/finalize-shapes.d.ts +0 -254
  495. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/finalize-shapes.js +0 -122
  496. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/finalize-shapes.js.map +0 -1
  497. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/github-access-control.d.ts +0 -175
  498. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/github-access-control.js +0 -182
  499. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/github-access-control.js.map +0 -1
  500. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/identity.d.ts +0 -90
  501. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/identity.js +0 -72
  502. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/identity.js.map +0 -1
  503. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/index.d.ts +0 -28
  504. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/index.js +0 -35
  505. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/index.js.map +0 -1
  506. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/manifest.d.ts +0 -31
  507. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/manifest.js +0 -76
  508. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/manifest.js.map +0 -1
  509. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/otel/event-schema.d.ts +0 -331
  510. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/otel/event-schema.js +0 -33
  511. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/otel/event-schema.js.map +0 -1
  512. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/otel/fixtures/data.d.ts +0 -65
  513. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/otel/fixtures/data.js +0 -455
  514. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/otel/fixtures/data.js.map +0 -1
  515. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/otel/fixtures/index.d.ts +0 -39
  516. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/otel/fixtures/index.js +0 -47
  517. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/otel/fixtures/index.js.map +0 -1
  518. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/otel/index.d.ts +0 -25
  519. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/otel/index.js +0 -27
  520. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/otel/index.js.map +0 -1
  521. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/otel/legacy-shim.d.ts +0 -100
  522. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/otel/legacy-shim.js +0 -193
  523. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/otel/legacy-shim.js.map +0 -1
  524. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/otel/map-span.d.ts +0 -64
  525. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/otel/map-span.js +0 -112
  526. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/otel/map-span.js.map +0 -1
  527. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/otel/nano.d.ts +0 -26
  528. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/otel/nano.js +0 -61
  529. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/otel/nano.js.map +0 -1
  530. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/otel/project.d.ts +0 -42
  531. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/otel/project.js +0 -104
  532. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/otel/project.js.map +0 -1
  533. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/otel/semconv.d.ts +0 -57
  534. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/otel/semconv.js +0 -102
  535. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/otel/semconv.js.map +0 -1
  536. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/otel/span-event.d.ts +0 -134
  537. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/otel/span-event.js +0 -152
  538. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/otel/span-event.js.map +0 -1
  539. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/recorder-events.d.ts +0 -480
  540. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/recorder-events.js +0 -270
  541. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/recorder-events.js.map +0 -1
  542. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/redaction.d.ts +0 -2
  543. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/redaction.js +0 -152
  544. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/redaction.js.map +0 -1
  545. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/rest.d.ts +0 -257
  546. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/rest.js +0 -335
  547. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/rest.js.map +0 -1
  548. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/run.d.ts +0 -208
  549. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/run.js +0 -170
  550. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/run.js.map +0 -1
  551. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/seed-envelope.d.ts +0 -14
  552. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/seed-envelope.js +0 -46
  553. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/seed-envelope.js.map +0 -1
  554. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/seed-state.d.ts +0 -1006
  555. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/seed-state.js +0 -263
  556. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/seed-state.js.map +0 -1
  557. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/sessions.d.ts +0 -53
  558. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/sessions.js +0 -51
  559. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/sessions.js.map +0 -1
  560. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/task-vocab.d.ts +0 -80
  561. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/task-vocab.js +0 -98
  562. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/task-vocab.js.map +0 -1
  563. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/task.d.ts +0 -859
  564. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/task.js +0 -60
  565. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/task.js.map +0 -1
  566. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/manifest-schema.json +0 -68
  567. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/package.json +0 -55
  568. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/trace-contract.json +0 -41
@@ -1,221 +0,0 @@
1
- // SPDX-License-Identifier: Apache-2.0
2
- //
3
- // Streamable-HTTP JSON-RPC 2.0 MCP endpoint (`POST /s/:sid/mcp`), stateless
4
- // mode: GET/DELETE answer 405. Generic over the twin's ToolSpec registry —
5
- // the per-twin mcp.ts modules this replaces differed only in their tool
6
- // tables and error envelopes, both of which now come from the manifest.
7
- import { randomUUID } from "node:crypto";
8
- import { toolInputSchema, toolListExtras, } from "./index.js";
9
- import { UnknownToolError, envelopeFor } from "./errors.js";
10
- import { makeToolCallContext } from "./tool-context.js";
11
- const PARSE_ERROR = -32700;
12
- const INVALID_REQUEST = -32600;
13
- const METHOD_NOT_FOUND = -32601;
14
- const INVALID_PARAMS = -32602;
15
- const INTERNAL_ERROR = -32603;
16
- const DEFAULT_PROTOCOL_VERSION = "2025-06-18";
17
- const SUPPORTED_PROTOCOL_VERSIONS = new Set(["2024-11-05", "2025-03-26", "2025-06-18"]);
18
- export function mcpMethodNotAllowed(c) {
19
- return c.json({ jsonrpc: "2.0", id: null, error: { code: METHOD_NOT_FOUND, message: "Method not allowed in stateless mode" } }, 405, { Allow: "POST" });
20
- }
21
- export async function handleMcpJsonRpc(c, deps) {
22
- let body;
23
- try {
24
- body = await c.req.json();
25
- }
26
- catch {
27
- return jsonRpcErrorResponse(null, PARSE_ERROR, "Problems parsing JSON");
28
- }
29
- if (Array.isArray(body)) {
30
- if (body.length === 0) {
31
- return jsonRpcErrorResponse(null, INVALID_REQUEST, "Invalid Request");
32
- }
33
- const out = [];
34
- for (const message of body) {
35
- const response = await dispatch(message, deps, c);
36
- if (response)
37
- out.push(response);
38
- }
39
- if (out.length === 0)
40
- return new Response(null, { status: 202 });
41
- return Response.json(out, { status: 200, headers: { "content-type": "application/json" } });
42
- }
43
- const response = await dispatch(body, deps, c);
44
- if (!response)
45
- return new Response(null, { status: 202 });
46
- return Response.json(response, { status: 200, headers: { "content-type": "application/json" } });
47
- }
48
- async function dispatch(message, deps, c) {
49
- if (!isObject(message))
50
- return errorEnvelope(null, INVALID_REQUEST, "Invalid Request");
51
- if (message.jsonrpc !== "2.0" || typeof message.method !== "string") {
52
- return errorEnvelope(idOf(message), INVALID_REQUEST, "Invalid Request");
53
- }
54
- const method = message.method;
55
- const params = isObject(message.params) ? message.params : {};
56
- const rawId = message.id;
57
- if (rawId === undefined || rawId === null)
58
- return null; // notification
59
- if (typeof rawId !== "string" && typeof rawId !== "number") {
60
- return errorEnvelope(null, INVALID_REQUEST, "Invalid Request: id must be string or number");
61
- }
62
- const id = rawId;
63
- try {
64
- switch (method) {
65
- case "initialize":
66
- return { jsonrpc: "2.0", id, result: buildInitializeResult(params, deps.definition) };
67
- case "ping":
68
- return { jsonrpc: "2.0", id, result: {} };
69
- case "tools/list":
70
- return {
71
- jsonrpc: "2.0",
72
- id,
73
- result: {
74
- tools: deps.definition.tools.map((tool) => ({
75
- name: tool.name,
76
- description: tool.description,
77
- inputSchema: toolInputSchema(tool),
78
- ...toolListExtras(tool),
79
- })),
80
- },
81
- };
82
- case "tools/call":
83
- return await handleToolsCall(id, params, deps, c);
84
- default:
85
- return errorEnvelope(id, METHOD_NOT_FOUND, `Method not found: ${method}`);
86
- }
87
- }
88
- catch (err) {
89
- return errorEnvelope(id, INTERNAL_ERROR, err instanceof Error ? err.message : "Internal error");
90
- }
91
- }
92
- function buildInitializeResult(params, definition) {
93
- const requested = typeof params.protocolVersion === "string" ? params.protocolVersion : undefined;
94
- const protocolVersion = requested && SUPPORTED_PROTOCOL_VERSIONS.has(requested) ? requested : DEFAULT_PROTOCOL_VERSION;
95
- return {
96
- protocolVersion,
97
- capabilities: { tools: { listChanged: false } },
98
- serverInfo: { name: `twin-${definition.id}`, version: definition.version },
99
- };
100
- }
101
- async function handleToolsCall(id, params, deps, c) {
102
- const name = params.name;
103
- const args = params.arguments === undefined || params.arguments === null
104
- ? {}
105
- : isObject(params.arguments)
106
- ? params.arguments
107
- : undefined;
108
- if (typeof name !== "string" || name.length === 0 || args === undefined) {
109
- return errorEnvelope(id, INVALID_PARAMS, "Invalid params: expected { name: string, arguments?: object }");
110
- }
111
- const projectError = deps.definition.errorEnvelope ?? envelopeFor;
112
- const tool = deps.definition.tools.find((t) => t.name === name);
113
- const started = Date.now();
114
- const call = makeToolCallContext(c);
115
- let status;
116
- let responseBody;
117
- let toolError = null;
118
- let mutation = false;
119
- let mcpResult;
120
- if (!tool) {
121
- const envelope = projectError(new UnknownToolError(name));
122
- // The unknown-tool result body is frozen per twin (F-682): github pins
123
- // its pre-port `{message: "Unknown tool: <name>"}` text while the
124
- // legacy /mcp/call surface keeps the envelope projection.
125
- const body = deps.definition.mcpUnknownTool ? deps.definition.mcpUnknownTool(name) : envelope.body;
126
- status = envelope.status;
127
- responseBody = body;
128
- toolError = `Unknown tool: ${name}`;
129
- mcpResult = { content: [{ type: "text", text: JSON.stringify(body) }], isError: true };
130
- }
131
- else {
132
- try {
133
- const parsed = tool.schema.parse(args);
134
- const value = await tool.handler(deps.domain, parsed, call.ctx);
135
- status = 200;
136
- responseBody = value;
137
- mutation = tool.mutation;
138
- // Only tools that declare `outputSchema` get `structuredContent` —
139
- // existing twins omit both and stay byte-identical on the wire.
140
- mcpResult = {
141
- content: [
142
- {
143
- type: "text",
144
- text: tool.contentText ? tool.contentText(value) : JSON.stringify(value),
145
- },
146
- ],
147
- ...(tool.outputSchema !== undefined ? { structuredContent: value } : {}),
148
- ...(tool.includeIsError ? { isError: false } : {}),
149
- };
150
- }
151
- catch (err) {
152
- const envelope = projectError(err);
153
- status = envelope.status;
154
- responseBody = envelope.body;
155
- toolError = err instanceof Error ? err.message : "tool call failed";
156
- mcpResult = { content: [{ type: "text", text: JSON.stringify(envelope.body) }], isError: true };
157
- }
158
- }
159
- const delta = status < 400 ? call.delta() : null;
160
- // Align with REST rest-routes-kit: when a handler reports reportDelta(null)
161
- // (no-op mutation), state_mutation must be false. Twins that never call
162
- // reportDelta keep ToolSpec.mutation as the recorder truth.
163
- const effectiveMutation = status < 400 && mutation && (!call.reportedDelta() || delta !== null);
164
- deps.recorder.record(buildEventCore(c, deps, {
165
- started,
166
- status,
167
- requestBody: { tool: name, arguments: args },
168
- responseBody,
169
- mutation: effectiveMutation,
170
- delta,
171
- error: toolError,
172
- }));
173
- return { jsonrpc: "2.0", id, result: mcpResult };
174
- }
175
- function buildEventCore(c, deps, fields) {
176
- const requestId = `req_${randomUUID()}`;
177
- // Same stamping as recorder.ts emit() — see the comment there (F-683).
178
- const stepId = c.req.header("x-pome-scenario-step-id") ?? null;
179
- const correlationHeader = c.req.header("x-pome-correlation-id") ?? null;
180
- return {
181
- ts: new Date().toISOString(),
182
- run_id: deps.runId,
183
- twin: deps.definition.id,
184
- request_id: requestId,
185
- correlation_id: correlationHeader ?? requestId,
186
- task_step_id: stepId,
187
- scenario_step_id: stepId,
188
- step_id: null,
189
- // FDRS-402 adapter-rich path — per-twin pin, see recorder.ts (F-682).
190
- tool_call_id: deps.definition.stampToolCallId ? correlationHeader : null,
191
- method: c.req.method,
192
- path: new URL(c.req.url).pathname,
193
- request_body: fields.requestBody,
194
- status: fields.status,
195
- response_body: fields.responseBody,
196
- latency_ms: Date.now() - fields.started,
197
- fidelity: "semantic",
198
- state_mutation: fields.mutation,
199
- state_delta: fields.delta,
200
- error: fields.error,
201
- };
202
- }
203
- function errorEnvelope(id, code, message) {
204
- return { jsonrpc: "2.0", id, error: { code, message } };
205
- }
206
- function jsonRpcErrorResponse(id, code, message) {
207
- return Response.json(errorEnvelope(id, code, message), {
208
- status: 200,
209
- headers: { "content-type": "application/json" },
210
- });
211
- }
212
- function idOf(message) {
213
- const id = message.id;
214
- if (typeof id === "string" || typeof id === "number")
215
- return id;
216
- return null;
217
- }
218
- function isObject(value) {
219
- return typeof value === "object" && value !== null && !Array.isArray(value);
220
- }
221
- //# sourceMappingURL=mcp-jsonrpc.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"mcp-jsonrpc.js","sourceRoot":"","sources":["../src/mcp-jsonrpc.ts"],"names":[],"mappings":"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"}
@@ -1,61 +0,0 @@
1
- import { type FidelityInventory } from "./fidelity-inventory.js";
2
- export type ParityState = Record<string, unknown>;
3
- export interface ParityStep {
4
- tool: string;
5
- arguments?: Record<string, unknown> | ((state: ParityState) => Record<string, unknown>);
6
- /** Pull cross-call state (ids, numbers, shas) out of the response body. */
7
- capture?: (body: unknown, state: ParityState) => void;
8
- /** Expected HTTP status; default: any 2xx. */
9
- status?: number;
10
- /** Extra body assertion; return a problem string to fail the step. */
11
- verify?: (body: unknown) => string | undefined;
12
- }
13
- export interface ParityRestProbe {
14
- /** Label in the report, e.g. "unsupported-rest". */
15
- surface: string;
16
- method?: string;
17
- /** Session-relative path, e.g. "/repos/acme/api/actions/runs". */
18
- path: string;
19
- /** Expected HTTP status. */
20
- status: number;
21
- /** Assert the body carries a `fidelity: "unsupported"` marker. */
22
- expectUnsupportedEnvelope?: boolean;
23
- /** Optional request body for mutating probes (e.g. messages.send). */
24
- body?: string;
25
- /** Extra request headers (authorization is always set by the runner). */
26
- headers?: Record<string, string>;
27
- /** Extra body assertion; return a problem string to fail the probe. */
28
- verify?: (body: unknown) => string | undefined;
29
- }
30
- export interface ParityAppLike {
31
- request(path: string | Request, init?: RequestInit): Response | Promise<Response>;
32
- }
33
- export interface RunParityOptions {
34
- app: ParityAppLike;
35
- twin: string;
36
- inventory: FidelityInventory;
37
- /** `listTools()` names from the twin source — the code truth. */
38
- liveToolNames: string[];
39
- steps: ParityStep[];
40
- restProbes?: ParityRestProbe[];
41
- /** Session id; default "fidelity-parity". */
42
- sid?: string;
43
- /** JWT secret; default env TWIN_AUTH_SECRET or the engine dev secret. */
44
- secret?: string;
45
- /** Extra JWT claims (login, team_id, account_id, ...). */
46
- claims?: Record<string, unknown>;
47
- /** Applied to every step without its own `verify` (twin error envelopes). */
48
- stepVerify?: (body: unknown) => string | undefined;
49
- /** Optional live upstream probes; entries are appended to the report. */
50
- live?: () => Promise<unknown[]>;
51
- }
52
- export interface ParityResult {
53
- ok: boolean;
54
- failures: string[];
55
- report: unknown[];
56
- }
57
- export declare function runFidelityParity(options: RunParityOptions): Promise<ParityResult>;
58
- /** Script entrypoint: run, print the JSON report, set the exit code. */
59
- export declare function runParityCli(options: RunParityOptions): Promise<ParityResult>;
60
- export { compareToolNames, expandSurfaceCell, fidelityDocDriftSchema, fidelityInventorySchema, fidelitySurfaceSchema, heatTierSchema, lintFidelityInventory, loadFidelityInventory, parseFidelityDocRows, } from "./fidelity-inventory.js";
61
- export type { FidelityDocDrift, FidelityDocRow, FidelityDocSource, FidelityInventory, FidelitySurface, HeatTier, } from "./fidelity-inventory.js";
@@ -1,123 +0,0 @@
1
- // SPDX-License-Identifier: Apache-2.0
2
- //
3
- // Shared fidelity:parity runner (F-730). One engine-level runner; each twin
4
- // supplies declarative scenario data — an ordered, stateful chain of MCP
5
- // calls with cross-call captures (a PR number, a charge id, a message ts) —
6
- // plus its structured fidelity inventory. No per-twin runner copies (M1
7
- // "twin-infra copies: 0" gate).
8
- //
9
- // The runner asserts three rings agree before it reports green:
10
- // 1. live tool list (code truth from listTools())
11
- // 2. fidelity.inventory.json tools (the machine-readable inventory)
12
- // 3. scenario step coverage (every inventory tool exercised)
13
- // and that every step answers its expected status through the frozen
14
- // `POST /s/:sid/mcp/call` surface. Optional REST probes pin the loud-501
15
- // unsupported envelope; an optional `live` hook lets a twin compare
16
- // read-only shapes against the real upstream (e.g. `gh api`).
17
- import { sign } from "hono/jwt";
18
- import { compareToolNames, } from "./fidelity-inventory.js";
19
- function bodyKeys(body) {
20
- if (Array.isArray(body))
21
- return ["array"];
22
- if (body && typeof body === "object") {
23
- return Object.keys(body).sort();
24
- }
25
- return [];
26
- }
27
- export async function runFidelityParity(options) {
28
- const sid = options.sid ?? "fidelity-parity";
29
- const secret = options.secret ?? process.env.TWIN_AUTH_SECRET ?? "dev-only-insecure-secret";
30
- const token = await sign({ sid, exp: Math.floor(Date.now() / 1000) + 3600, ...options.claims }, secret);
31
- const base = `/s/${sid}`;
32
- const failures = [];
33
- const report = [];
34
- // Ring 1 ⇔ ring 2: inventory tools must equal the live tool list.
35
- const inventoryNames = options.inventory.tools.map((entry) => entry.name);
36
- const inventoryDiff = compareToolNames(inventoryNames, options.liveToolNames);
37
- for (const name of inventoryDiff.missing) {
38
- failures.push(`tool '${name}' is live in listTools() but missing from fidelity.inventory.json`);
39
- }
40
- for (const name of inventoryDiff.extra) {
41
- failures.push(`tool '${name}' is in fidelity.inventory.json but not in listTools()`);
42
- }
43
- // Ring 2 ⇔ ring 3: every inventory tool needs at least one scenario step.
44
- const covered = new Set(options.steps.map((step) => step.tool));
45
- for (const name of inventoryNames) {
46
- if (!covered.has(name))
47
- failures.push(`no parity scenario step covers tool '${name}'`);
48
- }
49
- for (const tool of covered) {
50
- if (!inventoryNames.includes(tool)) {
51
- failures.push(`scenario step calls '${tool}' which is not in fidelity.inventory.json`);
52
- }
53
- }
54
- const state = {};
55
- for (const step of options.steps) {
56
- const args = typeof step.arguments === "function" ? step.arguments(state) : step.arguments ?? {};
57
- const response = await options.app.request(`${base}/mcp/call`, {
58
- method: "POST",
59
- headers: { authorization: `Bearer ${token}`, "content-type": "application/json" },
60
- body: JSON.stringify({ tool: step.tool, arguments: args }),
61
- });
62
- const body = await response.json().catch(() => ({}));
63
- const expected = step.status === undefined ? response.ok : response.status === step.status;
64
- if (!expected) {
65
- failures.push(`${step.tool}: expected ${step.status ?? "2xx"}, got ${response.status} ${JSON.stringify(body).slice(0, 300)}`);
66
- }
67
- else {
68
- const problem = (step.verify ?? options.stepVerify)?.(body);
69
- if (problem)
70
- failures.push(`${step.tool}: ${problem}`);
71
- step.capture?.(body, state);
72
- }
73
- report.push({ tool: step.tool, status: response.status, ok: response.ok, keys: bodyKeys(body) });
74
- }
75
- for (const probe of options.restProbes ?? []) {
76
- const headers = {
77
- authorization: `Bearer ${token}`,
78
- ...probe.headers,
79
- };
80
- if (probe.body !== undefined && !headers["content-type"] && !headers["Content-Type"]) {
81
- headers["content-type"] = "application/json";
82
- }
83
- const response = await options.app.request(`${base}${probe.path}`, {
84
- method: probe.method ?? "GET",
85
- headers,
86
- ...(probe.body !== undefined ? { body: probe.body } : {}),
87
- });
88
- const body = await response.json().catch(() => ({}));
89
- if (response.status !== probe.status) {
90
- failures.push(`${probe.surface}: expected ${probe.status}, got ${response.status}`);
91
- }
92
- if (probe.expectUnsupportedEnvelope && !JSON.stringify(body).includes('"fidelity":"unsupported"')) {
93
- failures.push(`${probe.surface}: body does not carry the fidelity:"unsupported" envelope`);
94
- }
95
- const problem = probe.verify?.(body);
96
- if (problem)
97
- failures.push(`${probe.surface}: ${problem}`);
98
- report.push({ surface: probe.surface, status: response.status, body });
99
- }
100
- if (options.live) {
101
- report.push(...(await options.live()));
102
- }
103
- return { ok: failures.length === 0, failures, report };
104
- }
105
- /** Script entrypoint: run, print the JSON report, set the exit code. */
106
- export async function runParityCli(options) {
107
- const result = await runFidelityParity(options);
108
- console.log(JSON.stringify({
109
- twin: options.twin,
110
- tools: options.inventory.tools.length,
111
- rest_surfaces: options.inventory.rest.length,
112
- ok: result.ok,
113
- failures: result.failures,
114
- report: result.report,
115
- }, null, 2));
116
- if (!result.ok) {
117
- console.error(`fidelity:parity FAILED for ${options.twin} (${result.failures.length} problem(s))`);
118
- process.exitCode = 1;
119
- }
120
- return result;
121
- }
122
- export { compareToolNames, expandSurfaceCell, fidelityDocDriftSchema, fidelityInventorySchema, fidelitySurfaceSchema, heatTierSchema, lintFidelityInventory, loadFidelityInventory, parseFidelityDocRows, } from "./fidelity-inventory.js";
123
- //# sourceMappingURL=parity.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"parity.js","sourceRoot":"","sources":["../src/parity.ts"],"names":[],"mappings":"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"}
@@ -1,120 +0,0 @@
1
- import type { RecorderEvent, TwinId } from "@pome-sh/shared-types";
2
- import type { RecorderHandle } from "./index.js";
3
- /**
4
- * Projects a thrown error into the `{ status, body }` shape a route returns.
5
- * Twin authors override this via `TwinDefinition.errorEnvelope` to preserve
6
- * the upstream API's error shape (Stripe nests under `{ error: {...} }`;
7
- * GitHub uses `{ message, documentation_url, errors[] }`; etc).
8
- */
9
- export type ErrorEnvelopeFn = (err: unknown) => {
10
- status: number;
11
- body: unknown;
12
- };
13
- /**
14
- * Backing store for the twin-core recorder.
15
- *
16
- * `record` / `events` are required. `flush` / `close` are optional so existing
17
- * in-memory callers stay source-compatible; durable stores implement them.
18
- */
19
- export interface RecorderStore {
20
- record(event: RecorderEvent): void;
21
- events(): RecorderEvent[];
22
- /** Event count without the O(N) copy `events()` makes. Optional for custom stores. */
23
- count?(): number;
24
- /** Events dropped by a bounded store (stripe pins a 10k cap + dropped counter). */
25
- dropped?(): number;
26
- /**
27
- * Durability barrier. Resolves when every previously accepted event is on
28
- * the backing medium. Optional for heap-only stores.
29
- */
30
- flush?(): Promise<void>;
31
- /**
32
- * Flush + release. Idempotent. Optional for heap-only stores.
33
- */
34
- close?(): Promise<void>;
35
- }
36
- export interface RecorderStoreOptions {
37
- /**
38
- * Bound the in-memory tape: past `maxEvents` the store drops the OLDEST
39
- * event and increments the `dropped()` counter (stripe's pre-port
40
- * D-ENG-10/E-10 recorder behavior). Default: unbounded (github/slack).
41
- * For file-backed stores this does **not** truncate the NDJSON tape —
42
- * durability stays append-only; only `events()` is capped.
43
- */
44
- maxEvents?: number;
45
- }
46
- export declare function createRecorderStore(options?: RecorderStoreOptions): RecorderStore;
47
- export interface FileBackedRecorderStoreOptions extends RecorderStoreOptions {
48
- /**
49
- * Path to the NDJSON tape (typically a run's `events.jsonl` or a sidecar).
50
- * Parent directories are created if missing. Opens append-mode.
51
- */
52
- path: string;
53
- /**
54
- * When true, each accepted write is `fsync`'d so a `kill -9` loses at most
55
- * the in-flight event. Default true for the production durable path (F-698).
56
- */
57
- fsync?: boolean;
58
- }
59
- /**
60
- * Env key for the durable recorder tape. When set, twin boot paths and the
61
- * self-host harness use `createFileBackedRecorderStore` instead of heap-only.
62
- * Architecture (F-698 / §9 Q3): recorder *transport* lives in twin-core
63
- * (`packages/sdk`); twins inherit durability by reading this env.
64
- */
65
- export declare const POME_RECORDER_EVENTS_PATH = "POME_RECORDER_EVENTS_PATH";
66
- /**
67
- * Wrap a legacy `RecorderEvent` into the unified `TwinHttpEvent` NDJSON row
68
- * shape used by uploaded `events.jsonl` (FDRS-398). Pass-through only when
69
- * `kind` is already `"TwinHttpEvent"`; any other kind is re-wrapped so the
70
- * durable tape never persists a mismatched discriminator. Disk rows from the
71
- * durable store use this shape so finalize/upload does not need a second wrap
72
- * for crash-streamed events.
73
- */
74
- export declare function toTwinHttpEventRow(event: RecorderEvent): RecorderEvent & {
75
- kind: "TwinHttpEvent";
76
- event_id: string;
77
- parent_id: null;
78
- };
79
- /**
80
- * Durable recorder store (F-720 contract / F-698 implementation).
81
- *
82
- * Keeps an in-memory mirror of legacy `RecorderEvent` rows for `events()` /
83
- * `GET /_pome/events` (unchanged API), and appends each accepted event as a
84
- * `TwinHttpEvent` NDJSON line so on-disk `events.jsonl` matches the uploaded
85
- * raw-trace byte shape. `flush()` drains pending writes and rethrows the
86
- * first append/fsync failure; `fsync` (default true) bounds crash loss to
87
- * the in-flight event. `maxEvents` caps only the heap mirror — the NDJSON
88
- * tape stays append-only.
89
- */
90
- export declare function createFileBackedRecorderStore(options: FileBackedRecorderStoreOptions): RecorderStore;
91
- /**
92
- * Resolve the recorder store for a twin boot: durable file-backed when
93
- * `POME_RECORDER_EVENTS_PATH` is set, otherwise the in-memory default.
94
- */
95
- export declare function resolveRecorderStore(options?: RecorderStoreOptions): RecorderStore;
96
- export interface RecorderHandleOptions {
97
- runId: string;
98
- twin: TwinId;
99
- store?: RecorderStore;
100
- /**
101
- * Projects thrown errors into a route response. Defaults to the generic
102
- * `{ message, errors? }` envelope; the SDK's `createApp` forwards
103
- * `definition.errorEnvelope` here so API-mirroring twins control their
104
- * own error shape without bypassing the recorder middleware.
105
- */
106
- errorEnvelope?: ErrorEnvelopeFn;
107
- /**
108
- * FDRS-402 adapter-rich stamping pin (F-682): when true, events persist
109
- * the incoming `x-pome-correlation-id` header as `tool_call_id` (github's
110
- * frozen tape shape). Default false — slack's frozen tape stamps null.
111
- */
112
- stampToolCallId?: boolean;
113
- /**
114
- * Optional pre-redaction projection (from `TwinDefinition.recordingProjection`).
115
- * Runs before `redactEvent` so twins can replace raw payloads with digests
116
- * without bypassing the secret scrubber. Unset = no-op (existing twins).
117
- */
118
- recordingProjection?: (event: RecorderEvent) => RecorderEvent;
119
- }
120
- export declare function createRecorderHandle(options: RecorderHandleOptions): RecorderHandle;