@pome-sh/cli 0.13.0 → 0.14.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 (509) hide show
  1. package/dist/build-info.json +3 -3
  2. package/dist/src/cli/checks.js +13 -3
  3. package/dist/src/task/taskSchema.d.ts +16 -16
  4. package/node_modules/@pome-sh/sdk/dist/check-discrimination.d.ts +7 -0
  5. package/node_modules/@pome-sh/sdk/dist/check-discrimination.js +81 -0
  6. package/node_modules/@pome-sh/sdk/dist/check-discrimination.js.map +1 -0
  7. package/node_modules/@pome-sh/sdk/dist/checks.d.ts +16 -1
  8. package/node_modules/@pome-sh/sdk/dist/checks.js +11 -1
  9. package/node_modules/@pome-sh/sdk/dist/checks.js.map +1 -1
  10. package/node_modules/@pome-sh/sdk/package.json +1 -1
  11. package/node_modules/@pome-sh/twin-github/dist/src/check-issues.js +39 -0
  12. package/node_modules/@pome-sh/twin-github/dist/src/check-issues.js.map +1 -1
  13. package/node_modules/@pome-sh/twin-github/dist/src/check-pulls.js +26 -0
  14. package/node_modules/@pome-sh/twin-github/dist/src/check-pulls.js.map +1 -1
  15. package/node_modules/@pome-sh/twin-github/dist/src/check-repos.js +19 -0
  16. package/node_modules/@pome-sh/twin-github/dist/src/check-repos.js.map +1 -1
  17. package/node_modules/@pome-sh/twin-github/dist/src/check-tape.js +23 -0
  18. package/node_modules/@pome-sh/twin-github/dist/src/check-tape.js.map +1 -1
  19. package/node_modules/@pome-sh/twin-github/dist/src/check-worlds.d.ts +13 -0
  20. package/node_modules/@pome-sh/twin-github/dist/src/check-worlds.js +33 -0
  21. package/node_modules/@pome-sh/twin-github/dist/src/check-worlds.js.map +1 -0
  22. package/node_modules/@pome-sh/twin-github/package.json +2 -2
  23. package/node_modules/@pome-sh/twin-gmail/CHANGELOG.md +11 -0
  24. package/node_modules/@pome-sh/twin-gmail/dist/src/seed.d.ts +4 -4
  25. package/node_modules/@pome-sh/twin-gmail/package.json +2 -2
  26. package/node_modules/@pome-sh/twin-linear/CHANGELOG.md +11 -0
  27. package/node_modules/@pome-sh/twin-linear/README.md +45 -1
  28. package/node_modules/@pome-sh/twin-linear/package.json +3 -3
  29. package/node_modules/@pome-sh/twin-slack/FIDELITY.md +12 -11
  30. package/node_modules/@pome-sh/twin-slack/dist/scripts/seed.js +1 -1
  31. package/node_modules/@pome-sh/twin-slack/dist/scripts/seed.js.map +1 -1
  32. package/node_modules/@pome-sh/twin-slack/dist/scripts/smoke.js +1 -1
  33. package/node_modules/@pome-sh/twin-slack/dist/scripts/smoke.js.map +1 -1
  34. package/node_modules/@pome-sh/twin-slack/dist/scripts/validate-mcp.js +1 -1
  35. package/node_modules/@pome-sh/twin-slack/dist/scripts/validate-mcp.js.map +1 -1
  36. package/node_modules/@pome-sh/twin-slack/dist/scripts/verify-cloud-token.js +1 -1
  37. package/node_modules/@pome-sh/twin-slack/dist/scripts/verify-cloud-token.js.map +1 -1
  38. package/node_modules/@pome-sh/twin-slack/dist/src/check-kind.d.ts +3 -0
  39. package/node_modules/@pome-sh/twin-slack/dist/src/check-kind.js +9 -0
  40. package/node_modules/@pome-sh/twin-slack/dist/src/check-kind.js.map +1 -0
  41. package/node_modules/@pome-sh/twin-slack/dist/src/check-messages.d.ts +16 -0
  42. package/node_modules/@pome-sh/twin-slack/dist/src/check-messages.js +186 -0
  43. package/node_modules/@pome-sh/twin-slack/dist/src/check-messages.js.map +1 -0
  44. package/node_modules/@pome-sh/twin-slack/dist/src/check-params.d.ts +5 -0
  45. package/node_modules/@pome-sh/twin-slack/dist/src/check-params.js +56 -0
  46. package/node_modules/@pome-sh/twin-slack/dist/src/check-params.js.map +1 -0
  47. package/node_modules/@pome-sh/twin-slack/dist/src/check-secrets.d.ts +2 -0
  48. package/node_modules/@pome-sh/twin-slack/dist/src/check-secrets.js +125 -0
  49. package/node_modules/@pome-sh/twin-slack/dist/src/check-secrets.js.map +1 -0
  50. package/node_modules/@pome-sh/twin-slack/dist/src/check-state.d.ts +82 -0
  51. package/node_modules/@pome-sh/twin-slack/dist/src/check-state.js +101 -0
  52. package/node_modules/@pome-sh/twin-slack/dist/src/check-state.js.map +1 -0
  53. package/node_modules/@pome-sh/twin-slack/dist/src/check-worlds.d.ts +7 -0
  54. package/node_modules/@pome-sh/twin-slack/dist/src/check-worlds.js +37 -0
  55. package/node_modules/@pome-sh/twin-slack/dist/src/check-worlds.js.map +1 -0
  56. package/node_modules/@pome-sh/twin-slack/dist/src/checks.d.ts +14 -0
  57. package/node_modules/@pome-sh/twin-slack/dist/src/checks.js +39 -0
  58. package/node_modules/@pome-sh/twin-slack/dist/src/checks.js.map +1 -0
  59. package/node_modules/@pome-sh/twin-slack/dist/src/db.js +23 -0
  60. package/node_modules/@pome-sh/twin-slack/dist/src/db.js.map +1 -1
  61. package/node_modules/@pome-sh/twin-slack/dist/src/domain/bookmarks.d.ts +16 -0
  62. package/node_modules/@pome-sh/twin-slack/dist/src/domain/bookmarks.js +49 -0
  63. package/node_modules/@pome-sh/twin-slack/dist/src/domain/bookmarks.js.map +1 -0
  64. package/node_modules/@pome-sh/twin-slack/dist/src/domain/canvases.d.ts +37 -0
  65. package/node_modules/@pome-sh/twin-slack/dist/src/domain/canvases.js +182 -0
  66. package/node_modules/@pome-sh/twin-slack/dist/src/domain/canvases.js.map +1 -0
  67. package/node_modules/@pome-sh/twin-slack/dist/src/domain/chat.d.ts +40 -0
  68. package/node_modules/@pome-sh/twin-slack/dist/src/domain/chat.js +167 -0
  69. package/node_modules/@pome-sh/twin-slack/dist/src/domain/chat.js.map +1 -0
  70. package/node_modules/@pome-sh/twin-slack/dist/src/domain/conversations.d.ts +61 -0
  71. package/node_modules/@pome-sh/twin-slack/dist/src/domain/conversations.js +360 -0
  72. package/node_modules/@pome-sh/twin-slack/dist/src/domain/conversations.js.map +1 -0
  73. package/node_modules/@pome-sh/twin-slack/dist/src/domain/emoji.d.ts +13 -0
  74. package/node_modules/@pome-sh/twin-slack/dist/src/domain/emoji.js +31 -0
  75. package/node_modules/@pome-sh/twin-slack/dist/src/domain/emoji.js.map +1 -0
  76. package/node_modules/@pome-sh/twin-slack/dist/src/domain/files.d.ts +24 -0
  77. package/node_modules/@pome-sh/twin-slack/dist/src/domain/files.js +101 -0
  78. package/node_modules/@pome-sh/twin-slack/dist/src/domain/files.js.map +1 -0
  79. package/node_modules/@pome-sh/twin-slack/dist/src/domain/helpers.d.ts +5 -0
  80. package/node_modules/@pome-sh/twin-slack/dist/src/domain/helpers.js +42 -0
  81. package/node_modules/@pome-sh/twin-slack/dist/src/domain/helpers.js.map +1 -0
  82. package/node_modules/@pome-sh/twin-slack/dist/src/domain/index.d.ts +2 -0
  83. package/node_modules/@pome-sh/twin-slack/dist/src/domain/index.js +5 -0
  84. package/node_modules/@pome-sh/twin-slack/dist/src/domain/index.js.map +1 -0
  85. package/node_modules/@pome-sh/twin-slack/dist/src/domain/pins.d.ts +12 -0
  86. package/node_modules/@pome-sh/twin-slack/dist/src/domain/pins.js +63 -0
  87. package/node_modules/@pome-sh/twin-slack/dist/src/domain/pins.js.map +1 -0
  88. package/node_modules/@pome-sh/twin-slack/dist/src/domain/reactions.d.ts +16 -0
  89. package/node_modules/@pome-sh/twin-slack/dist/src/domain/reactions.js +73 -0
  90. package/node_modules/@pome-sh/twin-slack/dist/src/domain/reactions.js.map +1 -0
  91. package/node_modules/@pome-sh/twin-slack/dist/src/domain/search.d.ts +9 -0
  92. package/node_modules/@pome-sh/twin-slack/dist/src/domain/search.js +68 -0
  93. package/node_modules/@pome-sh/twin-slack/dist/src/domain/search.js.map +1 -0
  94. package/node_modules/@pome-sh/twin-slack/dist/src/{domain.d.ts → domain/slack-domain.d.ts} +44 -22
  95. package/node_modules/@pome-sh/twin-slack/dist/src/domain/slack-domain.js +510 -0
  96. package/node_modules/@pome-sh/twin-slack/dist/src/domain/slack-domain.js.map +1 -0
  97. package/node_modules/@pome-sh/twin-slack/dist/src/domain/team.d.ts +5 -0
  98. package/node_modules/@pome-sh/twin-slack/dist/src/domain/team.js +25 -0
  99. package/node_modules/@pome-sh/twin-slack/dist/src/domain/team.js.map +1 -0
  100. package/node_modules/@pome-sh/twin-slack/dist/src/domain/topic.d.ts +19 -0
  101. package/node_modules/@pome-sh/twin-slack/dist/src/domain/topic.js +43 -0
  102. package/node_modules/@pome-sh/twin-slack/dist/src/domain/topic.js.map +1 -0
  103. package/node_modules/@pome-sh/twin-slack/dist/src/domain/users.d.ts +24 -0
  104. package/node_modules/@pome-sh/twin-slack/dist/src/domain/users.js +82 -0
  105. package/node_modules/@pome-sh/twin-slack/dist/src/domain/users.js.map +1 -0
  106. package/node_modules/@pome-sh/twin-slack/dist/src/index.d.ts +3 -1
  107. package/node_modules/@pome-sh/twin-slack/dist/src/index.js +2 -1
  108. package/node_modules/@pome-sh/twin-slack/dist/src/index.js.map +1 -1
  109. package/node_modules/@pome-sh/twin-slack/dist/src/routes.d.ts +1 -1
  110. package/node_modules/@pome-sh/twin-slack/dist/src/routes.js +12 -0
  111. package/node_modules/@pome-sh/twin-slack/dist/src/routes.js.map +1 -1
  112. package/node_modules/@pome-sh/twin-slack/dist/src/seed.d.ts +5 -0
  113. package/node_modules/@pome-sh/twin-slack/dist/src/seed.js +12 -0
  114. package/node_modules/@pome-sh/twin-slack/dist/src/seed.js.map +1 -1
  115. package/node_modules/@pome-sh/twin-slack/dist/src/tools.d.ts +1 -1
  116. package/node_modules/@pome-sh/twin-slack/dist/src/twin.d.ts +1 -1
  117. package/node_modules/@pome-sh/twin-slack/dist/src/twin.js +1 -1
  118. package/node_modules/@pome-sh/twin-slack/dist/src/twin.js.map +1 -1
  119. package/node_modules/@pome-sh/twin-slack/dist/src/types.d.ts +23 -0
  120. package/node_modules/@pome-sh/twin-slack/dist/src/unsupported-envelope.js +6 -0
  121. package/node_modules/@pome-sh/twin-slack/dist/src/unsupported-envelope.js.map +1 -1
  122. package/node_modules/@pome-sh/twin-slack/fidelity.inventory.json +14 -14
  123. package/node_modules/@pome-sh/twin-slack/package.json +4 -4
  124. package/node_modules/@pome-sh/twin-stripe/package.json +2 -2
  125. package/package.json +7 -7
  126. package/tasks/20-slack-exfiltration.md +10 -3
  127. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/admin-gate.d.ts +0 -35
  128. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/admin-gate.js +0 -103
  129. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/admin-gate.js.map +0 -1
  130. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/auth.d.ts +0 -100
  131. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/auth.js +0 -262
  132. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/auth.js.map +0 -1
  133. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/build-info.d.ts +0 -7
  134. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/build-info.js +0 -14
  135. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/build-info.js.map +0 -1
  136. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/db.d.ts +0 -44
  137. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/db.js +0 -113
  138. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/db.js.map +0 -1
  139. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/errors.d.ts +0 -24
  140. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/errors.js +0 -61
  141. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/errors.js.map +0 -1
  142. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/failure-injection.d.ts +0 -43
  143. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/failure-injection.js +0 -160
  144. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/failure-injection.js.map +0 -1
  145. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/fidelity-inventory.d.ts +0 -121
  146. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/fidelity-inventory.js +0 -204
  147. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/fidelity-inventory.js.map +0 -1
  148. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/fidelity.d.ts +0 -8
  149. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/fidelity.js +0 -39
  150. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/fidelity.js.map +0 -1
  151. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/index.d.ts +0 -372
  152. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/index.js +0 -139
  153. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/index.js.map +0 -1
  154. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/mcp-jsonrpc.d.ts +0 -10
  155. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/mcp-jsonrpc.js +0 -221
  156. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/mcp-jsonrpc.js.map +0 -1
  157. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/parity.d.ts +0 -61
  158. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/parity.js +0 -123
  159. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/parity.js.map +0 -1
  160. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/recorder.d.ts +0 -120
  161. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/recorder.js +0 -368
  162. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/recorder.js.map +0 -1
  163. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/redaction.d.ts +0 -1
  164. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/redaction.js +0 -3
  165. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/redaction.js.map +0 -1
  166. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/server-helpers.d.ts +0 -54
  167. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/server-helpers.js +0 -181
  168. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/server-helpers.js.map +0 -1
  169. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/server.d.ts +0 -46
  170. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/server.js +0 -394
  171. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/server.js.map +0 -1
  172. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/tool-context.d.ts +0 -8
  173. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/tool-context.js +0 -22
  174. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/tool-context.js.map +0 -1
  175. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/package.json +0 -54
  176. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/errors.d.ts +0 -39
  177. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/errors.js +0 -33
  178. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/errors.js.map +0 -1
  179. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/finalize-shapes.d.ts +0 -254
  180. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/finalize-shapes.js +0 -122
  181. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/finalize-shapes.js.map +0 -1
  182. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/github-access-control.d.ts +0 -175
  183. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/github-access-control.js +0 -182
  184. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/github-access-control.js.map +0 -1
  185. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/identity.d.ts +0 -90
  186. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/identity.js +0 -72
  187. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/identity.js.map +0 -1
  188. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/index.d.ts +0 -28
  189. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/index.js +0 -35
  190. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/index.js.map +0 -1
  191. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/manifest.d.ts +0 -31
  192. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/manifest.js +0 -76
  193. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/manifest.js.map +0 -1
  194. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/otel/event-schema.d.ts +0 -331
  195. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/otel/event-schema.js +0 -33
  196. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/otel/event-schema.js.map +0 -1
  197. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/otel/fixtures/data.d.ts +0 -65
  198. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/otel/fixtures/data.js +0 -455
  199. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/otel/fixtures/data.js.map +0 -1
  200. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/otel/fixtures/index.d.ts +0 -39
  201. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/otel/fixtures/index.js +0 -47
  202. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/otel/fixtures/index.js.map +0 -1
  203. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/otel/index.d.ts +0 -25
  204. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/otel/index.js +0 -27
  205. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/otel/index.js.map +0 -1
  206. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/otel/legacy-shim.d.ts +0 -100
  207. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/otel/legacy-shim.js +0 -193
  208. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/otel/legacy-shim.js.map +0 -1
  209. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/otel/map-span.d.ts +0 -64
  210. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/otel/map-span.js +0 -112
  211. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/otel/map-span.js.map +0 -1
  212. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/otel/nano.d.ts +0 -26
  213. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/otel/nano.js +0 -61
  214. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/otel/nano.js.map +0 -1
  215. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/otel/project.d.ts +0 -42
  216. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/otel/project.js +0 -104
  217. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/otel/project.js.map +0 -1
  218. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/otel/semconv.d.ts +0 -57
  219. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/otel/semconv.js +0 -102
  220. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/otel/semconv.js.map +0 -1
  221. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/otel/span-event.d.ts +0 -134
  222. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/otel/span-event.js +0 -152
  223. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/otel/span-event.js.map +0 -1
  224. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/recorder-events.d.ts +0 -480
  225. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/recorder-events.js +0 -270
  226. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/recorder-events.js.map +0 -1
  227. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/redaction.d.ts +0 -2
  228. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/redaction.js +0 -152
  229. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/redaction.js.map +0 -1
  230. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/rest.d.ts +0 -257
  231. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/rest.js +0 -335
  232. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/rest.js.map +0 -1
  233. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/run.d.ts +0 -208
  234. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/run.js +0 -170
  235. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/run.js.map +0 -1
  236. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/seed-envelope.d.ts +0 -14
  237. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/seed-envelope.js +0 -46
  238. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/seed-envelope.js.map +0 -1
  239. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/seed-state.d.ts +0 -1006
  240. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/seed-state.js +0 -263
  241. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/seed-state.js.map +0 -1
  242. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/sessions.d.ts +0 -53
  243. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/sessions.js +0 -51
  244. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/sessions.js.map +0 -1
  245. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/task-vocab.d.ts +0 -80
  246. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/task-vocab.js +0 -98
  247. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/task-vocab.js.map +0 -1
  248. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/task.d.ts +0 -859
  249. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/task.js +0 -60
  250. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/task.js.map +0 -1
  251. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/manifest-schema.json +0 -68
  252. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/package.json +0 -55
  253. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/trace-contract.json +0 -41
  254. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/sdk/dist/admin-gate.d.ts +0 -35
  255. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/sdk/dist/admin-gate.js +0 -103
  256. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/sdk/dist/admin-gate.js.map +0 -1
  257. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/sdk/dist/auth.d.ts +0 -100
  258. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/sdk/dist/auth.js +0 -262
  259. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/sdk/dist/auth.js.map +0 -1
  260. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/sdk/dist/build-info.d.ts +0 -7
  261. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/sdk/dist/build-info.js +0 -14
  262. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/sdk/dist/build-info.js.map +0 -1
  263. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/sdk/dist/db.d.ts +0 -44
  264. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/sdk/dist/db.js +0 -113
  265. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/sdk/dist/db.js.map +0 -1
  266. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/sdk/dist/errors.d.ts +0 -24
  267. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/sdk/dist/errors.js +0 -61
  268. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/sdk/dist/errors.js.map +0 -1
  269. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/sdk/dist/failure-injection.d.ts +0 -43
  270. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/sdk/dist/failure-injection.js +0 -160
  271. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/sdk/dist/failure-injection.js.map +0 -1
  272. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/sdk/dist/fidelity-inventory.d.ts +0 -121
  273. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/sdk/dist/fidelity-inventory.js +0 -204
  274. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/sdk/dist/fidelity-inventory.js.map +0 -1
  275. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/sdk/dist/fidelity.d.ts +0 -8
  276. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/sdk/dist/fidelity.js +0 -39
  277. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/sdk/dist/fidelity.js.map +0 -1
  278. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/sdk/dist/index.d.ts +0 -372
  279. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/sdk/dist/index.js +0 -139
  280. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/sdk/dist/index.js.map +0 -1
  281. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/sdk/dist/mcp-jsonrpc.d.ts +0 -10
  282. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/sdk/dist/mcp-jsonrpc.js +0 -221
  283. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/sdk/dist/mcp-jsonrpc.js.map +0 -1
  284. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/sdk/dist/parity.d.ts +0 -61
  285. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/sdk/dist/parity.js +0 -123
  286. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/sdk/dist/parity.js.map +0 -1
  287. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/sdk/dist/recorder.d.ts +0 -120
  288. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/sdk/dist/recorder.js +0 -368
  289. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/sdk/dist/recorder.js.map +0 -1
  290. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/sdk/dist/redaction.d.ts +0 -1
  291. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/sdk/dist/redaction.js +0 -3
  292. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/sdk/dist/redaction.js.map +0 -1
  293. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/sdk/dist/server-helpers.d.ts +0 -54
  294. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/sdk/dist/server-helpers.js +0 -181
  295. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/sdk/dist/server-helpers.js.map +0 -1
  296. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/sdk/dist/server.d.ts +0 -46
  297. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/sdk/dist/server.js +0 -394
  298. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/sdk/dist/server.js.map +0 -1
  299. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/sdk/dist/tool-context.d.ts +0 -8
  300. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/sdk/dist/tool-context.js +0 -22
  301. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/sdk/dist/tool-context.js.map +0 -1
  302. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/sdk/package.json +0 -54
  303. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/shared-types/dist/errors.d.ts +0 -39
  304. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/shared-types/dist/errors.js +0 -33
  305. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/shared-types/dist/errors.js.map +0 -1
  306. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/shared-types/dist/finalize-shapes.d.ts +0 -254
  307. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/shared-types/dist/finalize-shapes.js +0 -122
  308. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/shared-types/dist/finalize-shapes.js.map +0 -1
  309. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/shared-types/dist/github-access-control.d.ts +0 -175
  310. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/shared-types/dist/github-access-control.js +0 -182
  311. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/shared-types/dist/github-access-control.js.map +0 -1
  312. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/shared-types/dist/identity.d.ts +0 -90
  313. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/shared-types/dist/identity.js +0 -72
  314. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/shared-types/dist/identity.js.map +0 -1
  315. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/shared-types/dist/index.d.ts +0 -28
  316. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/shared-types/dist/index.js +0 -35
  317. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/shared-types/dist/index.js.map +0 -1
  318. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/shared-types/dist/manifest.d.ts +0 -31
  319. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/shared-types/dist/manifest.js +0 -76
  320. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/shared-types/dist/manifest.js.map +0 -1
  321. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/shared-types/dist/otel/event-schema.d.ts +0 -331
  322. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/shared-types/dist/otel/event-schema.js +0 -33
  323. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/shared-types/dist/otel/event-schema.js.map +0 -1
  324. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/shared-types/dist/otel/fixtures/data.d.ts +0 -65
  325. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/shared-types/dist/otel/fixtures/data.js +0 -455
  326. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/shared-types/dist/otel/fixtures/data.js.map +0 -1
  327. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/shared-types/dist/otel/fixtures/index.d.ts +0 -39
  328. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/shared-types/dist/otel/fixtures/index.js +0 -47
  329. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/shared-types/dist/otel/fixtures/index.js.map +0 -1
  330. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/shared-types/dist/otel/index.d.ts +0 -25
  331. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/shared-types/dist/otel/index.js +0 -27
  332. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/shared-types/dist/otel/index.js.map +0 -1
  333. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/shared-types/dist/otel/legacy-shim.d.ts +0 -100
  334. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/shared-types/dist/otel/legacy-shim.js +0 -193
  335. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/shared-types/dist/otel/legacy-shim.js.map +0 -1
  336. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/shared-types/dist/otel/map-span.d.ts +0 -64
  337. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/shared-types/dist/otel/map-span.js +0 -112
  338. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/shared-types/dist/otel/map-span.js.map +0 -1
  339. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/shared-types/dist/otel/nano.d.ts +0 -26
  340. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/shared-types/dist/otel/nano.js +0 -61
  341. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/shared-types/dist/otel/nano.js.map +0 -1
  342. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/shared-types/dist/otel/project.d.ts +0 -42
  343. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/shared-types/dist/otel/project.js +0 -104
  344. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/shared-types/dist/otel/project.js.map +0 -1
  345. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/shared-types/dist/otel/semconv.d.ts +0 -57
  346. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/shared-types/dist/otel/semconv.js +0 -102
  347. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/shared-types/dist/otel/semconv.js.map +0 -1
  348. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/shared-types/dist/otel/span-event.d.ts +0 -134
  349. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/shared-types/dist/otel/span-event.js +0 -152
  350. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/shared-types/dist/otel/span-event.js.map +0 -1
  351. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/shared-types/dist/recorder-events.d.ts +0 -480
  352. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/shared-types/dist/recorder-events.js +0 -270
  353. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/shared-types/dist/recorder-events.js.map +0 -1
  354. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/shared-types/dist/redaction.d.ts +0 -2
  355. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/shared-types/dist/redaction.js +0 -152
  356. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/shared-types/dist/redaction.js.map +0 -1
  357. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/shared-types/dist/rest.d.ts +0 -257
  358. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/shared-types/dist/rest.js +0 -335
  359. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/shared-types/dist/rest.js.map +0 -1
  360. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/shared-types/dist/run.d.ts +0 -208
  361. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/shared-types/dist/run.js +0 -170
  362. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/shared-types/dist/run.js.map +0 -1
  363. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/shared-types/dist/seed-envelope.d.ts +0 -14
  364. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/shared-types/dist/seed-envelope.js +0 -46
  365. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/shared-types/dist/seed-envelope.js.map +0 -1
  366. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/shared-types/dist/seed-state.d.ts +0 -1006
  367. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/shared-types/dist/seed-state.js +0 -263
  368. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/shared-types/dist/seed-state.js.map +0 -1
  369. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/shared-types/dist/sessions.d.ts +0 -53
  370. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/shared-types/dist/sessions.js +0 -51
  371. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/shared-types/dist/sessions.js.map +0 -1
  372. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/shared-types/dist/task-vocab.d.ts +0 -80
  373. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/shared-types/dist/task-vocab.js +0 -98
  374. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/shared-types/dist/task-vocab.js.map +0 -1
  375. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/shared-types/dist/task.d.ts +0 -859
  376. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/shared-types/dist/task.js +0 -60
  377. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/shared-types/dist/task.js.map +0 -1
  378. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/shared-types/manifest-schema.json +0 -68
  379. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/shared-types/package.json +0 -55
  380. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/shared-types/trace-contract.json +0 -41
  381. package/node_modules/@pome-sh/twin-slack/dist/src/domain.js +0 -1300
  382. package/node_modules/@pome-sh/twin-slack/dist/src/domain.js.map +0 -1
  383. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/admin-gate.d.ts +0 -35
  384. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/admin-gate.js +0 -103
  385. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/admin-gate.js.map +0 -1
  386. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/auth.d.ts +0 -100
  387. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/auth.js +0 -262
  388. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/auth.js.map +0 -1
  389. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/build-info.d.ts +0 -7
  390. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/build-info.js +0 -14
  391. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/build-info.js.map +0 -1
  392. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/db.d.ts +0 -44
  393. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/db.js +0 -113
  394. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/db.js.map +0 -1
  395. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/errors.d.ts +0 -24
  396. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/errors.js +0 -61
  397. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/errors.js.map +0 -1
  398. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/failure-injection.d.ts +0 -43
  399. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/failure-injection.js +0 -160
  400. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/failure-injection.js.map +0 -1
  401. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/fidelity-inventory.d.ts +0 -121
  402. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/fidelity-inventory.js +0 -204
  403. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/fidelity-inventory.js.map +0 -1
  404. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/fidelity.d.ts +0 -8
  405. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/fidelity.js +0 -39
  406. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/fidelity.js.map +0 -1
  407. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/index.d.ts +0 -372
  408. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/index.js +0 -139
  409. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/index.js.map +0 -1
  410. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/mcp-jsonrpc.d.ts +0 -10
  411. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/mcp-jsonrpc.js +0 -221
  412. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/mcp-jsonrpc.js.map +0 -1
  413. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/parity.d.ts +0 -61
  414. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/parity.js +0 -123
  415. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/parity.js.map +0 -1
  416. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/recorder.d.ts +0 -120
  417. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/recorder.js +0 -368
  418. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/recorder.js.map +0 -1
  419. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/redaction.d.ts +0 -1
  420. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/redaction.js +0 -3
  421. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/redaction.js.map +0 -1
  422. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/server-helpers.d.ts +0 -54
  423. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/server-helpers.js +0 -181
  424. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/server-helpers.js.map +0 -1
  425. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/server.d.ts +0 -46
  426. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/server.js +0 -394
  427. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/server.js.map +0 -1
  428. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/tool-context.d.ts +0 -8
  429. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/tool-context.js +0 -22
  430. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/tool-context.js.map +0 -1
  431. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/package.json +0 -54
  432. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/errors.d.ts +0 -39
  433. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/errors.js +0 -33
  434. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/errors.js.map +0 -1
  435. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/finalize-shapes.d.ts +0 -254
  436. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/finalize-shapes.js +0 -122
  437. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/finalize-shapes.js.map +0 -1
  438. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/github-access-control.d.ts +0 -175
  439. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/github-access-control.js +0 -182
  440. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/github-access-control.js.map +0 -1
  441. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/identity.d.ts +0 -90
  442. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/identity.js +0 -72
  443. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/identity.js.map +0 -1
  444. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/index.d.ts +0 -28
  445. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/index.js +0 -35
  446. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/index.js.map +0 -1
  447. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/manifest.d.ts +0 -31
  448. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/manifest.js +0 -76
  449. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/manifest.js.map +0 -1
  450. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/otel/event-schema.d.ts +0 -331
  451. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/otel/event-schema.js +0 -33
  452. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/otel/event-schema.js.map +0 -1
  453. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/otel/fixtures/data.d.ts +0 -65
  454. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/otel/fixtures/data.js +0 -455
  455. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/otel/fixtures/data.js.map +0 -1
  456. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/otel/fixtures/index.d.ts +0 -39
  457. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/otel/fixtures/index.js +0 -47
  458. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/otel/fixtures/index.js.map +0 -1
  459. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/otel/index.d.ts +0 -25
  460. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/otel/index.js +0 -27
  461. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/otel/index.js.map +0 -1
  462. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/otel/legacy-shim.d.ts +0 -100
  463. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/otel/legacy-shim.js +0 -193
  464. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/otel/legacy-shim.js.map +0 -1
  465. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/otel/map-span.d.ts +0 -64
  466. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/otel/map-span.js +0 -112
  467. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/otel/map-span.js.map +0 -1
  468. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/otel/nano.d.ts +0 -26
  469. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/otel/nano.js +0 -61
  470. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/otel/nano.js.map +0 -1
  471. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/otel/project.d.ts +0 -42
  472. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/otel/project.js +0 -104
  473. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/otel/project.js.map +0 -1
  474. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/otel/semconv.d.ts +0 -57
  475. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/otel/semconv.js +0 -102
  476. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/otel/semconv.js.map +0 -1
  477. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/otel/span-event.d.ts +0 -134
  478. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/otel/span-event.js +0 -152
  479. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/otel/span-event.js.map +0 -1
  480. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/recorder-events.d.ts +0 -480
  481. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/recorder-events.js +0 -270
  482. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/recorder-events.js.map +0 -1
  483. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/redaction.d.ts +0 -2
  484. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/redaction.js +0 -152
  485. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/redaction.js.map +0 -1
  486. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/rest.d.ts +0 -257
  487. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/rest.js +0 -335
  488. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/rest.js.map +0 -1
  489. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/run.d.ts +0 -208
  490. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/run.js +0 -170
  491. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/run.js.map +0 -1
  492. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/seed-envelope.d.ts +0 -14
  493. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/seed-envelope.js +0 -46
  494. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/seed-envelope.js.map +0 -1
  495. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/seed-state.d.ts +0 -1006
  496. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/seed-state.js +0 -263
  497. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/seed-state.js.map +0 -1
  498. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/sessions.d.ts +0 -53
  499. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/sessions.js +0 -51
  500. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/sessions.js.map +0 -1
  501. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/task-vocab.d.ts +0 -80
  502. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/task-vocab.js +0 -98
  503. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/task-vocab.js.map +0 -1
  504. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/task.d.ts +0 -859
  505. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/task.js +0 -60
  506. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/task.js.map +0 -1
  507. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/manifest-schema.json +0 -68
  508. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/package.json +0 -55
  509. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/trace-contract.json +0 -41
@@ -1,35 +0,0 @@
1
- import type { Context, MiddlewareHandler } from "hono";
2
- /** Context variable consulted first by getClientIp(). */
3
- export declare const CLIENT_IP_VAR = "pomeClientIp";
4
- /**
5
- * Explicitly record the peer address for this request. Alternate serving
6
- * bridges (or tests) call this from an upstream middleware so the gate never
7
- * reaches into runtime-private internals.
8
- *
9
- * SECURITY: the value passed here MUST be the transport-level peer address
10
- * (the socket's remote address as reported by the serving bridge). It takes
11
- * precedence over getConnInfo, so deriving it from any request-controlled
12
- * input — X-Forwarded-For or any other client-supplied header — would make
13
- * the loopback-only admin gate spoofable by whoever sets that header. If you
14
- * are behind a reverse proxy, use TWIN_ADMIN_TOKEN instead of trying to
15
- * recover the "real" client IP.
16
- */
17
- export declare function setClientIp(c: Context, ip: string): void;
18
- /**
19
- * Runtime-neutral client-IP accessor (FDRS-587). Resolution order:
20
- * 1. Explicit override set via setClientIp() (alternate bridges / tests).
21
- * 2. The node serving bridge's official getConnInfo helper.
22
- * 3. undefined — no live socket (e.g. app.request() in-process tests).
23
- */
24
- export declare function getClientIp(c: Context): Promise<string | undefined>;
25
- export declare function isLoopbackAddress(remote: string): boolean;
26
- export interface AdminGateOptions {
27
- /** 403 response factory so each twin keeps its own error envelope. */
28
- forbidden?: () => Response;
29
- }
30
- /**
31
- * Admin endpoint protection shared by every twin (FDRS-616). Each twin's
32
- * auth.ts wraps this with its own `forbidden` envelope. Semantics are
33
- * identical to the per-twin requireAdminAuth() copies this replaces.
34
- */
35
- export declare function createAdminGate(options?: AdminGateOptions): MiddlewareHandler;
@@ -1,103 +0,0 @@
1
- // SPDX-License-Identifier: Apache-2.0
2
- // Shared admin-endpoint gate (FDRS-587 / FDRS-616). First-party twins import
3
- // this through `@pome-sh/sdk/server`; do not copy this file into a twin package.
4
- //
5
- // Tiered policy (semantics unchanged from the per-twin copies it replaces):
6
- // 1. TWIN_ADMIN_TOKEN set → require X-Admin-Token to match (timing-safe).
7
- // 2. TWIN_ADMIN_TOKEN unset + client IP known → allow only loopback.
8
- // 3. TWIN_ADMIN_TOKEN unset + client IP unknown → deny in production,
9
- // allow otherwise (accepted fail-open for in-process test harnesses).
10
- import { timingSafeEqual } from "node:crypto";
11
- /** Context variable consulted first by getClientIp(). */
12
- export const CLIENT_IP_VAR = "pomeClientIp";
13
- let nodeGetConnInfo;
14
- // Lazily import the node bridge's official ConnInfo helper. Dynamic because
15
- // @pome-sh/sdk declares @hono/node-server as an *optional* peer dependency —
16
- // a static import would crash consumers that never bind a Node socket.
17
- // Works with both @hono/node-server v1 and v2 (same subpath + signature).
18
- function loadNodeGetConnInfo() {
19
- nodeGetConnInfo ??= import("@hono/node-server/conninfo").then((mod) => mod.getConnInfo, () => undefined);
20
- return nodeGetConnInfo;
21
- }
22
- /**
23
- * Explicitly record the peer address for this request. Alternate serving
24
- * bridges (or tests) call this from an upstream middleware so the gate never
25
- * reaches into runtime-private internals.
26
- *
27
- * SECURITY: the value passed here MUST be the transport-level peer address
28
- * (the socket's remote address as reported by the serving bridge). It takes
29
- * precedence over getConnInfo, so deriving it from any request-controlled
30
- * input — X-Forwarded-For or any other client-supplied header — would make
31
- * the loopback-only admin gate spoofable by whoever sets that header. If you
32
- * are behind a reverse proxy, use TWIN_ADMIN_TOKEN instead of trying to
33
- * recover the "real" client IP.
34
- */
35
- export function setClientIp(c, ip) {
36
- c.set(CLIENT_IP_VAR, ip);
37
- }
38
- /**
39
- * Runtime-neutral client-IP accessor (FDRS-587). Resolution order:
40
- * 1. Explicit override set via setClientIp() (alternate bridges / tests).
41
- * 2. The node serving bridge's official getConnInfo helper.
42
- * 3. undefined — no live socket (e.g. app.request() in-process tests).
43
- */
44
- export async function getClientIp(c) {
45
- const override = c.get(CLIENT_IP_VAR);
46
- if (typeof override === "string" && override.length > 0)
47
- return override;
48
- const getConnInfo = await loadNodeGetConnInfo();
49
- if (!getConnInfo)
50
- return undefined;
51
- try {
52
- const address = getConnInfo(c).remote?.address;
53
- return typeof address === "string" && address.length > 0 ? address : undefined;
54
- }
55
- catch {
56
- // The helper throws when the context has no node socket behind it.
57
- return undefined;
58
- }
59
- }
60
- export function isLoopbackAddress(remote) {
61
- return (remote === "127.0.0.1" ||
62
- remote === "::1" ||
63
- remote === "::ffff:127.0.0.1" ||
64
- remote === "localhost");
65
- }
66
- function defaultForbidden() {
67
- return Response.json({ message: "Forbidden", documentation_url: "" }, { status: 403 });
68
- }
69
- /**
70
- * Admin endpoint protection shared by every twin (FDRS-616). Each twin's
71
- * auth.ts wraps this with its own `forbidden` envelope. Semantics are
72
- * identical to the per-twin requireAdminAuth() copies this replaces.
73
- */
74
- export function createAdminGate(options = {}) {
75
- const forbidden = options.forbidden ?? defaultForbidden;
76
- return async (c, next) => {
77
- const adminToken = process.env.TWIN_ADMIN_TOKEN;
78
- if (adminToken && adminToken.length > 0) {
79
- // Web Headers lookups are case-insensitive, so one lookup covers every
80
- // casing a client might send.
81
- const provided = c.req.header("X-Admin-Token");
82
- if (!provided)
83
- return forbidden();
84
- const a = Buffer.from(provided);
85
- const b = Buffer.from(adminToken);
86
- if (a.length !== b.length || !timingSafeEqual(a, b))
87
- return forbidden();
88
- await next();
89
- return;
90
- }
91
- const remote = await getClientIp(c);
92
- if (!remote) {
93
- if (process.env.NODE_ENV === "production")
94
- return forbidden();
95
- await next();
96
- return;
97
- }
98
- if (!isLoopbackAddress(remote))
99
- return forbidden();
100
- await next();
101
- };
102
- }
103
- //# sourceMappingURL=admin-gate.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"admin-gate.js","sourceRoot":"","sources":["../src/admin-gate.ts"],"names":[],"mappings":"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"}
@@ -1,100 +0,0 @@
1
- import type { Context, MiddlewareHandler } from "hono";
2
- /** `team_id` stamped on sessions authenticated by a provider-shaped token. */
3
- export declare const PROVIDER_SHAPED_TEAM_ID = "provider-shaped";
4
- export interface SessionClaims {
5
- sid: string;
6
- team_id: string;
7
- exp: number;
8
- [claim: string]: unknown;
9
- }
10
- /** Minimum session value; twins extend it via hooks (login, account_id, …). */
11
- export type SessionValue = {
12
- sid: string;
13
- } & Record<string, unknown>;
14
- export declare function resolveAuthSecret(): string;
15
- export interface ProviderTokenSpec {
16
- /** HMAC domain separator ("github" | "slack" | "stripe" | …). */
17
- provider: string;
18
- /** Declared token prefixes, e.g. ["xoxb-pome-", "xoxp-pome-"]. */
19
- prefixes: readonly string[];
20
- }
21
- export interface MintProviderTokenOptions {
22
- sid: string;
23
- /** Unix-seconds expiry. Omit for the legacy non-expiring shape. */
24
- exp?: number;
25
- /** Defaults to the spec's first declared prefix. */
26
- prefix?: string;
27
- secret?: string;
28
- }
29
- /**
30
- * Mint a provider-shaped token (F-712 row 10: minting lives in the engine;
31
- * CLI + cloud mint through it, parameterized by the twin's declared shape).
32
- */
33
- export declare function mintProviderToken(spec: ProviderTokenSpec, options: MintProviderTokenOptions): string;
34
- /**
35
- * Verify a provider-shaped token; returns the sid on success.
36
- *
37
- * The parse is right-anchored — the signature is always the trailing 22
38
- * base64url chars, the optional exp is a trailing all-digit segment of the
39
- * remainder — and the HMAC disambiguates the exp-vs-sid split. This fixes
40
- * the F-712 appendix bug once: the old per-twin `([^_]+)` regexes broke for
41
- * any sid whose base64url encoding contains `_` (the alphabet includes it).
42
- */
43
- export declare function verifyProviderToken(spec: ProviderTokenSpec, token: string, secret?: string): string | undefined;
44
- /** Why a request failed auth; rendered by the twin's `unauthorized` hook. */
45
- export type UnauthorizedKind = "no_token" | "invalid" | "expired";
46
- export interface AuthEnvelope {
47
- status: number;
48
- body: unknown;
49
- }
50
- /** Extra token location (F-712 row 3). Returns the token or undefined. */
51
- export type TokenResolver = (c: Context) => string | undefined | Promise<string | undefined>;
52
- /** Accept `?<param>=<token>` in the query string (real Slack behavior). */
53
- export declare function queryTokenResolver(param?: string): TokenResolver;
54
- /**
55
- * Accept `<param>=<token>` in a form-encoded POST body (real Slack
56
- * behavior). Only parses when the content type is form-encoded, so JSON
57
- * streaming reads downstream are never consumed here; `parseBody()` caches
58
- * on the Hono context, so downstream handlers see the same object.
59
- */
60
- export declare function formTokenResolver(param?: string): TokenResolver;
61
- export interface BearerAuthOptions {
62
- /** Row 1: the twin's provider-shaped token declaration. */
63
- providerToken?: ProviderTokenSpec;
64
- /** Row 7: extra session fields for provider-shaped sessions. */
65
- providerSession?: (sid: string) => Record<string, unknown>;
66
- /** Row 3: extra token locations tried after the Authorization header. */
67
- tokenResolvers?: readonly TokenResolver[];
68
- /**
69
- * Row 4 pin: accept a prefix-less bearer and case-insensitive "bearer".
70
- * Default false (github/slack); stripe pins true. Flipping a twin is a
71
- * contract change (CONTRACT.md + suite, then a cloud consumer PR).
72
- */
73
- allowRawBearer?: boolean;
74
- /**
75
- * Row 9: when false, a request with no `:sid` path segment trusts the
76
- * bearer alone (stripe's root `/v1/*` SDK-compat mount). Default true.
77
- */
78
- requirePathSid?: boolean;
79
- /** Row 8: DB-backed credential lookup, consulted before provider/JWT. */
80
- resolveCredential?: (token: string, c: Context) => SessionValue | undefined | Promise<SessionValue | undefined>;
81
- /**
82
- * Rows 2 + 6: the twin's 401 envelope, keyed by failure classification.
83
- * `info.token` carries the presented credential so a twin can render
84
- * shape-dependent messages (stripe: api-key-shaped tokens answer
85
- * "Invalid API Key provided.", JWTs answer "Bad credentials").
86
- */
87
- unauthorized?: (kind: UnauthorizedKind, info?: {
88
- token?: string;
89
- }) => AuthEnvelope;
90
- /** Row 5 pin: the twin's sid-mismatch envelope (github/slack 401, stripe 403). */
91
- sidMismatch?: () => AuthEnvelope;
92
- /** Row 7: extra session fields derived from verified JWT claims. */
93
- sessionExtras?: (claims: SessionClaims) => Record<string, unknown>;
94
- }
95
- export declare function bearerAuth(options?: BearerAuthOptions): MiddlewareHandler;
96
- /**
97
- * Admin endpoint protection. Thin wrapper over the shared admin-gate module
98
- * (FDRS-587 / FDRS-616) using the default error envelope.
99
- */
100
- export declare function requireAdminAuth(): MiddlewareHandler;
@@ -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":"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"}
@@ -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;