@pome-sh/cli 0.5.0 → 0.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (483) hide show
  1. package/README.md +4 -4
  2. package/dist/build-info.json +3 -3
  3. package/dist/examples/agents/llm-refund-agent.js +1 -1
  4. package/dist/src/cli/compile-seeds.js +22 -22
  5. package/dist/src/cli/default-task.d.ts +2 -2
  6. package/dist/src/cli/default-task.js +4 -4
  7. package/dist/src/cli/docs-topics.js +7 -3
  8. package/dist/src/cli/eval.d.ts +1 -1
  9. package/dist/src/cli/eval.js +3 -3
  10. package/dist/src/cli/init-sdk.js +1 -1
  11. package/dist/src/cli/main.js +200 -89
  12. package/dist/src/cli/register.d.ts +4 -0
  13. package/dist/src/cli/register.js +5 -0
  14. package/dist/src/cli/session.js +1 -1
  15. package/dist/src/cli/tasks-catalog.d.ts +25 -0
  16. package/dist/src/cli/{scenarios-catalog.js → tasks-catalog.js} +9 -9
  17. package/dist/src/cli/tasks.d.ts +13 -0
  18. package/dist/src/cli/{scenarios.js → tasks.js} +32 -32
  19. package/dist/src/demo/agent.js +2 -2
  20. package/dist/src/demo/runDemo.d.ts +3 -3
  21. package/dist/src/demo/runDemo.js +14 -14
  22. package/dist/src/doctor/checks.js +11 -2
  23. package/dist/src/doctor/render.d.ts +9 -0
  24. package/dist/src/doctor/render.js +7 -0
  25. package/dist/src/fix-prompt/prompt.d.ts +3 -3
  26. package/dist/src/fix-prompt/prompt.js +4 -4
  27. package/dist/src/hosted/client.d.ts +6 -6
  28. package/dist/src/hosted/client.js +6 -6
  29. package/dist/src/hosted/errors.js +1 -1
  30. package/dist/src/hosted/evalResultCache.d.ts +1 -1
  31. package/dist/src/hosted/evalResultCache.js +1 -1
  32. package/dist/src/hosted/evalResultView.d.ts +1 -1
  33. package/dist/src/hosted/evalResultView.js +1 -1
  34. package/dist/src/hosted/uploadAndFinalize.d.ts +1 -1
  35. package/dist/src/hosted/uploadAndFinalize.js +2 -2
  36. package/dist/src/recorder/artifacts.d.ts +2 -2
  37. package/dist/src/recorder/inspect.d.ts +3 -3
  38. package/dist/src/recorder/inspect.js +3 -3
  39. package/dist/src/runner/captureServerChild.js +1 -1
  40. package/dist/src/runner/{runScenario.d.ts → runTask.d.ts} +17 -3
  41. package/dist/src/runner/{runScenario.js → runTask.js} +4 -4
  42. package/dist/src/runner/{runScenarioCore.d.ts → runTaskCore.d.ts} +2 -2
  43. package/dist/src/runner/{runScenarioHosted.d.ts → runTaskHosted.d.ts} +6 -6
  44. package/dist/src/runner/{runScenarioHosted.js → runTaskHosted.js} +12 -12
  45. package/dist/src/runner/runTrialGroup.d.ts +4 -4
  46. package/dist/src/runner/runTrialGroup.js +10 -10
  47. package/dist/src/runner/trialCount.js +1 -1
  48. package/dist/src/task/parseTask.d.ts +9 -0
  49. package/dist/src/{scenario/parseScenario.js → task/parseTask.js} +21 -21
  50. package/dist/src/{scenario → task}/seed-compiler-hosted.d.ts +1 -1
  51. package/dist/src/{scenario → task}/seed-compiler-hosted.js +1 -1
  52. package/dist/src/{scenario/scenarioSchema.d.ts → task/taskSchema.d.ts} +56 -20
  53. package/dist/src/{scenario/scenarioSchema.js → task/taskSchema.js} +6 -6
  54. package/examples/agents/llm-refund-agent.ts +1 -1
  55. package/node_modules/@pome-sh/shared-types/dist/seed-state.d.ts +27 -0
  56. package/node_modules/@pome-sh/shared-types/dist/seed-state.js +12 -0
  57. package/node_modules/@pome-sh/shared-types/dist/seed-state.js.map +1 -1
  58. package/node_modules/@pome-sh/shared-types/dist/task.d.ts +18 -0
  59. package/node_modules/@pome-sh/shared-types/package.json +1 -1
  60. package/node_modules/@pome-sh/shared-types/trace-contract.json +1 -1
  61. package/node_modules/@pome-sh/twin-gmail/CHANGELOG.md +26 -0
  62. package/node_modules/@pome-sh/twin-gmail/HOSTED.md +37 -15
  63. package/node_modules/@pome-sh/twin-gmail/LIMITS.md +10 -0
  64. package/node_modules/@pome-sh/twin-gmail/README.md +52 -11
  65. package/node_modules/@pome-sh/twin-gmail/dist/fixtures/mcp-tools-list.canonical.json +242 -7
  66. package/node_modules/@pome-sh/twin-gmail/dist/src/db.js +6 -0
  67. package/node_modules/@pome-sh/twin-gmail/dist/src/db.js.map +1 -1
  68. package/node_modules/@pome-sh/twin-gmail/dist/src/domain/drafts.d.ts +41 -0
  69. package/node_modules/@pome-sh/twin-gmail/dist/src/domain/drafts.js +138 -0
  70. package/node_modules/@pome-sh/twin-gmail/dist/src/domain/drafts.js.map +1 -0
  71. package/node_modules/@pome-sh/twin-gmail/dist/src/domain/filters.d.ts +10 -0
  72. package/node_modules/@pome-sh/twin-gmail/dist/src/{domain-search.js → domain/filters.js} +52 -36
  73. package/node_modules/@pome-sh/twin-gmail/dist/src/domain/filters.js.map +1 -0
  74. package/node_modules/@pome-sh/twin-gmail/dist/src/{domain.d.ts → domain/gmail-domain.d.ts} +45 -34
  75. package/node_modules/@pome-sh/twin-gmail/dist/src/domain/gmail-domain.js +174 -0
  76. package/node_modules/@pome-sh/twin-gmail/dist/src/domain/gmail-domain.js.map +1 -0
  77. package/node_modules/@pome-sh/twin-gmail/dist/src/domain/hydrate.d.ts +8 -0
  78. package/node_modules/@pome-sh/twin-gmail/dist/src/domain/hydrate.js +122 -0
  79. package/node_modules/@pome-sh/twin-gmail/dist/src/domain/hydrate.js.map +1 -0
  80. package/node_modules/@pome-sh/twin-gmail/dist/src/domain/index.d.ts +4 -0
  81. package/node_modules/@pome-sh/twin-gmail/dist/src/domain/index.js +5 -0
  82. package/node_modules/@pome-sh/twin-gmail/dist/src/domain/index.js.map +1 -0
  83. package/node_modules/@pome-sh/twin-gmail/dist/src/domain/labels.d.ts +40 -0
  84. package/node_modules/@pome-sh/twin-gmail/dist/src/domain/labels.js +122 -0
  85. package/node_modules/@pome-sh/twin-gmail/dist/src/domain/labels.js.map +1 -0
  86. package/node_modules/@pome-sh/twin-gmail/dist/src/domain/messages.d.ts +49 -0
  87. package/node_modules/@pome-sh/twin-gmail/dist/src/domain/messages.js +276 -0
  88. package/node_modules/@pome-sh/twin-gmail/dist/src/domain/messages.js.map +1 -0
  89. package/node_modules/@pome-sh/twin-gmail/dist/src/domain/search-sql.d.ts +19 -0
  90. package/node_modules/@pome-sh/twin-gmail/dist/src/domain/search-sql.js +179 -0
  91. package/node_modules/@pome-sh/twin-gmail/dist/src/domain/search-sql.js.map +1 -0
  92. package/node_modules/@pome-sh/twin-gmail/dist/src/domain/settings.d.ts +27 -0
  93. package/node_modules/@pome-sh/twin-gmail/dist/src/domain/settings.js +98 -0
  94. package/node_modules/@pome-sh/twin-gmail/dist/src/domain/settings.js.map +1 -0
  95. package/node_modules/@pome-sh/twin-gmail/dist/src/errors.js +2 -0
  96. package/node_modules/@pome-sh/twin-gmail/dist/src/errors.js.map +1 -1
  97. package/node_modules/@pome-sh/twin-gmail/dist/src/faults.d.ts +21 -0
  98. package/node_modules/@pome-sh/twin-gmail/dist/src/faults.js +52 -0
  99. package/node_modules/@pome-sh/twin-gmail/dist/src/faults.js.map +1 -0
  100. package/node_modules/@pome-sh/twin-gmail/dist/src/identity.d.ts +1 -6
  101. package/node_modules/@pome-sh/twin-gmail/dist/src/identity.js +0 -11
  102. package/node_modules/@pome-sh/twin-gmail/dist/src/identity.js.map +1 -1
  103. package/node_modules/@pome-sh/twin-gmail/dist/src/index.d.ts +4 -3
  104. package/node_modules/@pome-sh/twin-gmail/dist/src/index.js +3 -3
  105. package/node_modules/@pome-sh/twin-gmail/dist/src/index.js.map +1 -1
  106. package/node_modules/@pome-sh/twin-gmail/dist/src/mcp-schemas.d.ts +48 -0
  107. package/node_modules/@pome-sh/twin-gmail/dist/src/mcp-schemas.js +23 -0
  108. package/node_modules/@pome-sh/twin-gmail/dist/src/mcp-schemas.js.map +1 -1
  109. package/node_modules/@pome-sh/twin-gmail/dist/src/mcp.d.ts +1 -1
  110. package/node_modules/@pome-sh/twin-gmail/dist/src/mcp.js +39 -1
  111. package/node_modules/@pome-sh/twin-gmail/dist/src/mcp.js.map +1 -1
  112. package/node_modules/@pome-sh/twin-gmail/dist/src/rest-routes-drafts.js +4 -5
  113. package/node_modules/@pome-sh/twin-gmail/dist/src/rest-routes-drafts.js.map +1 -1
  114. package/node_modules/@pome-sh/twin-gmail/dist/src/rest-routes-kit.d.ts +2 -3
  115. package/node_modules/@pome-sh/twin-gmail/dist/src/rest-routes-kit.js +4 -4
  116. package/node_modules/@pome-sh/twin-gmail/dist/src/rest-routes-kit.js.map +1 -1
  117. package/node_modules/@pome-sh/twin-gmail/dist/src/rest-routes-messages.js +7 -8
  118. package/node_modules/@pome-sh/twin-gmail/dist/src/rest-routes-messages.js.map +1 -1
  119. package/node_modules/@pome-sh/twin-gmail/dist/src/rest-routes-resources.js +20 -21
  120. package/node_modules/@pome-sh/twin-gmail/dist/src/rest-routes-resources.js.map +1 -1
  121. package/node_modules/@pome-sh/twin-gmail/dist/src/rest-routes.d.ts +1 -1
  122. package/node_modules/@pome-sh/twin-gmail/dist/src/rest-serializers.d.ts +2 -4
  123. package/node_modules/@pome-sh/twin-gmail/dist/src/rest-serializers.js +4 -6
  124. package/node_modules/@pome-sh/twin-gmail/dist/src/rest-serializers.js.map +1 -1
  125. package/node_modules/@pome-sh/twin-gmail/dist/src/search-match.d.ts +4 -0
  126. package/node_modules/@pome-sh/twin-gmail/dist/src/search-match.js +179 -0
  127. package/node_modules/@pome-sh/twin-gmail/dist/src/search-match.js.map +1 -0
  128. package/node_modules/@pome-sh/twin-gmail/dist/src/search-parse.d.ts +61 -0
  129. package/node_modules/@pome-sh/twin-gmail/dist/src/search-parse.js +318 -0
  130. package/node_modules/@pome-sh/twin-gmail/dist/src/search-parse.js.map +1 -0
  131. package/node_modules/@pome-sh/twin-gmail/dist/src/search.d.ts +3 -61
  132. package/node_modules/@pome-sh/twin-gmail/dist/src/search.js +2 -503
  133. package/node_modules/@pome-sh/twin-gmail/dist/src/search.js.map +1 -1
  134. package/node_modules/@pome-sh/twin-gmail/dist/src/seed.d.ts +13 -4
  135. package/node_modules/@pome-sh/twin-gmail/dist/src/seed.js +3 -1
  136. package/node_modules/@pome-sh/twin-gmail/dist/src/seed.js.map +1 -1
  137. package/node_modules/@pome-sh/twin-gmail/dist/src/server.js +1 -1
  138. package/node_modules/@pome-sh/twin-gmail/dist/src/server.js.map +1 -1
  139. package/node_modules/@pome-sh/twin-gmail/dist/src/storage.js +1 -1
  140. package/node_modules/@pome-sh/twin-gmail/dist/src/storage.js.map +1 -1
  141. package/node_modules/@pome-sh/twin-gmail/dist/src/twin.d.ts +2 -3
  142. package/node_modules/@pome-sh/twin-gmail/dist/src/twin.js +1 -4
  143. package/node_modules/@pome-sh/twin-gmail/dist/src/twin.js.map +1 -1
  144. package/node_modules/@pome-sh/twin-gmail/dist/src/types.d.ts +1 -0
  145. package/node_modules/@pome-sh/twin-gmail/fidelity.inventory.json +42 -435
  146. package/node_modules/@pome-sh/twin-gmail/fixtures/README.md +4 -4
  147. package/node_modules/@pome-sh/twin-gmail/fixtures/mcp-tools-list.canonical.json +242 -7
  148. package/node_modules/@pome-sh/twin-gmail/fixtures/mcp-tools-list.meta.json +3 -3
  149. package/node_modules/@pome-sh/twin-gmail/package.json +4 -3
  150. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/index.d.ts +1 -0
  151. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/index.js +1 -0
  152. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/index.js.map +1 -1
  153. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/manifest.d.ts +31 -0
  154. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/manifest.js +76 -0
  155. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/manifest.js.map +1 -0
  156. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/rest.d.ts +9 -0
  157. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/rest.js +27 -0
  158. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/rest.js.map +1 -1
  159. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/manifest-schema.json +68 -0
  160. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/package.json +2 -1
  161. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/trace-contract.json +1 -1
  162. package/node_modules/@pome-sh/twin-slack/package.json +3 -3
  163. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/shared-types/dist/index.d.ts +1 -0
  164. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/shared-types/dist/index.js +1 -0
  165. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/shared-types/dist/index.js.map +1 -1
  166. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/shared-types/dist/manifest.d.ts +31 -0
  167. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/shared-types/dist/manifest.js +76 -0
  168. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/shared-types/dist/manifest.js.map +1 -0
  169. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/shared-types/dist/rest.d.ts +9 -0
  170. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/shared-types/dist/rest.js +27 -0
  171. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/shared-types/dist/rest.js.map +1 -1
  172. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/shared-types/manifest-schema.json +68 -0
  173. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/shared-types/package.json +2 -1
  174. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/shared-types/trace-contract.json +1 -1
  175. package/node_modules/@pome-sh/twin-stripe/package.json +3 -3
  176. package/node_modules/hono/dist/cjs/client/utils.js +1 -1
  177. package/node_modules/hono/dist/cjs/helper/streaming/sse.js +5 -4
  178. package/node_modules/hono/dist/cjs/middleware/cache/index.js +1 -1
  179. package/node_modules/hono/dist/cjs/middleware/compress/index.js +2 -1
  180. package/node_modules/hono/dist/cjs/middleware/method-override/index.js +5 -3
  181. package/node_modules/hono/dist/cjs/middleware/secure-headers/secure-headers.js +10 -4
  182. package/node_modules/hono/dist/cjs/request.js +8 -3
  183. package/node_modules/hono/dist/cjs/utils/accept.js +1 -1
  184. package/node_modules/hono/dist/cjs/utils/body.js +6 -0
  185. package/node_modules/hono/dist/cjs/utils/url.js +1 -1
  186. package/node_modules/hono/dist/client/utils.js +1 -1
  187. package/node_modules/hono/dist/helper/streaming/sse.js +5 -4
  188. package/node_modules/hono/dist/middleware/cache/index.js +1 -1
  189. package/node_modules/hono/dist/middleware/compress/index.js +2 -1
  190. package/node_modules/hono/dist/middleware/method-override/index.js +5 -3
  191. package/node_modules/hono/dist/middleware/secure-headers/secure-headers.js +10 -4
  192. package/node_modules/hono/dist/request.js +8 -3
  193. package/node_modules/hono/dist/types/adapter/aws-lambda/types.d.ts +9 -0
  194. package/node_modules/hono/dist/types/helper/websocket/index.d.ts +1 -1
  195. package/node_modules/hono/dist/types/middleware/combine/index.d.ts +1 -1
  196. package/node_modules/hono/dist/utils/accept.js +1 -1
  197. package/node_modules/hono/dist/utils/body.js +6 -0
  198. package/node_modules/hono/dist/utils/url.js +1 -1
  199. package/node_modules/hono/package.json +3 -3
  200. package/package.json +7 -7
  201. package/{scenarios → tasks}/00-default-seed.md +1 -1
  202. package/{scenarios → tasks}/14-stripe-refund-retry.md +1 -1
  203. package/dist/src/cli/scenarios-catalog.d.ts +0 -25
  204. package/dist/src/cli/scenarios.d.ts +0 -13
  205. package/dist/src/scenario/parseScenario.d.ts +0 -9
  206. package/node_modules/@pome-sh/twin-gmail/dist/src/domain-search.d.ts +0 -5
  207. package/node_modules/@pome-sh/twin-gmail/dist/src/domain-search.js.map +0 -1
  208. package/node_modules/@pome-sh/twin-gmail/dist/src/domain.js +0 -407
  209. package/node_modules/@pome-sh/twin-gmail/dist/src/domain.js.map +0 -1
  210. package/node_modules/@pome-sh/twin-gmail/dist/src/rest-store.d.ts +0 -75
  211. package/node_modules/@pome-sh/twin-gmail/dist/src/rest-store.js +0 -282
  212. package/node_modules/@pome-sh/twin-gmail/dist/src/rest-store.js.map +0 -1
  213. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/admin-gate.d.ts +0 -35
  214. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/admin-gate.js +0 -103
  215. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/admin-gate.js.map +0 -1
  216. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/auth.d.ts +0 -100
  217. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/auth.js +0 -262
  218. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/auth.js.map +0 -1
  219. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/build-info.d.ts +0 -7
  220. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/build-info.js +0 -14
  221. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/build-info.js.map +0 -1
  222. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/db.d.ts +0 -44
  223. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/db.js +0 -113
  224. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/db.js.map +0 -1
  225. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/errors.d.ts +0 -24
  226. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/errors.js +0 -61
  227. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/errors.js.map +0 -1
  228. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/failure-injection.d.ts +0 -43
  229. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/failure-injection.js +0 -160
  230. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/failure-injection.js.map +0 -1
  231. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/fidelity-inventory.d.ts +0 -121
  232. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/fidelity-inventory.js +0 -204
  233. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/fidelity-inventory.js.map +0 -1
  234. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/fidelity.d.ts +0 -8
  235. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/fidelity.js +0 -39
  236. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/fidelity.js.map +0 -1
  237. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/index.d.ts +0 -372
  238. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/index.js +0 -139
  239. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/index.js.map +0 -1
  240. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/mcp-jsonrpc.d.ts +0 -10
  241. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/mcp-jsonrpc.js +0 -221
  242. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/mcp-jsonrpc.js.map +0 -1
  243. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/parity.d.ts +0 -61
  244. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/parity.js +0 -123
  245. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/parity.js.map +0 -1
  246. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/recorder.d.ts +0 -120
  247. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/recorder.js +0 -368
  248. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/recorder.js.map +0 -1
  249. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/redaction.d.ts +0 -1
  250. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/redaction.js +0 -3
  251. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/redaction.js.map +0 -1
  252. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/server-helpers.d.ts +0 -54
  253. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/server-helpers.js +0 -181
  254. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/server-helpers.js.map +0 -1
  255. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/server.d.ts +0 -46
  256. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/server.js +0 -394
  257. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/server.js.map +0 -1
  258. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/tool-context.d.ts +0 -8
  259. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/tool-context.js +0 -22
  260. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/tool-context.js.map +0 -1
  261. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/package.json +0 -54
  262. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/errors.d.ts +0 -39
  263. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/errors.js +0 -33
  264. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/errors.js.map +0 -1
  265. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/finalize-shapes.d.ts +0 -254
  266. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/finalize-shapes.js +0 -122
  267. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/finalize-shapes.js.map +0 -1
  268. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/github-access-control.d.ts +0 -175
  269. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/github-access-control.js +0 -182
  270. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/github-access-control.js.map +0 -1
  271. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/identity.d.ts +0 -90
  272. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/identity.js +0 -72
  273. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/identity.js.map +0 -1
  274. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/index.d.ts +0 -27
  275. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/index.js +0 -34
  276. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/index.js.map +0 -1
  277. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/otel/event-schema.d.ts +0 -331
  278. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/otel/event-schema.js +0 -33
  279. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/otel/event-schema.js.map +0 -1
  280. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/otel/fixtures/data.d.ts +0 -65
  281. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/otel/fixtures/data.js +0 -455
  282. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/otel/fixtures/data.js.map +0 -1
  283. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/otel/fixtures/index.d.ts +0 -39
  284. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/otel/fixtures/index.js +0 -47
  285. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/otel/fixtures/index.js.map +0 -1
  286. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/otel/index.d.ts +0 -25
  287. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/otel/index.js +0 -27
  288. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/otel/index.js.map +0 -1
  289. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/otel/legacy-shim.d.ts +0 -100
  290. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/otel/legacy-shim.js +0 -193
  291. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/otel/legacy-shim.js.map +0 -1
  292. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/otel/map-span.d.ts +0 -64
  293. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/otel/map-span.js +0 -112
  294. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/otel/map-span.js.map +0 -1
  295. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/otel/nano.d.ts +0 -26
  296. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/otel/nano.js +0 -61
  297. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/otel/nano.js.map +0 -1
  298. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/otel/project.d.ts +0 -42
  299. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/otel/project.js +0 -104
  300. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/otel/project.js.map +0 -1
  301. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/otel/semconv.d.ts +0 -57
  302. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/otel/semconv.js +0 -102
  303. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/otel/semconv.js.map +0 -1
  304. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/otel/span-event.d.ts +0 -134
  305. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/otel/span-event.js +0 -152
  306. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/otel/span-event.js.map +0 -1
  307. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/recorder-events.d.ts +0 -480
  308. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/recorder-events.js +0 -270
  309. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/recorder-events.js.map +0 -1
  310. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/redaction.d.ts +0 -2
  311. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/redaction.js +0 -152
  312. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/redaction.js.map +0 -1
  313. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/rest.d.ts +0 -248
  314. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/rest.js +0 -308
  315. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/rest.js.map +0 -1
  316. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/run.d.ts +0 -208
  317. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/run.js +0 -170
  318. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/run.js.map +0 -1
  319. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/seed-envelope.d.ts +0 -14
  320. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/seed-envelope.js +0 -46
  321. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/seed-envelope.js.map +0 -1
  322. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/seed-state.d.ts +0 -1006
  323. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/seed-state.js +0 -263
  324. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/seed-state.js.map +0 -1
  325. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/sessions.d.ts +0 -53
  326. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/sessions.js +0 -51
  327. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/sessions.js.map +0 -1
  328. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/task-vocab.d.ts +0 -80
  329. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/task-vocab.js +0 -98
  330. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/task-vocab.js.map +0 -1
  331. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/task.d.ts +0 -859
  332. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/task.js +0 -60
  333. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/task.js.map +0 -1
  334. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/package.json +0 -54
  335. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/trace-contract.json +0 -41
  336. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/admin-gate.d.ts +0 -35
  337. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/admin-gate.js +0 -103
  338. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/admin-gate.js.map +0 -1
  339. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/auth.d.ts +0 -100
  340. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/auth.js +0 -262
  341. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/auth.js.map +0 -1
  342. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/build-info.d.ts +0 -7
  343. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/build-info.js +0 -14
  344. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/build-info.js.map +0 -1
  345. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/db.d.ts +0 -44
  346. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/db.js +0 -113
  347. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/db.js.map +0 -1
  348. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/errors.d.ts +0 -24
  349. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/errors.js +0 -61
  350. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/errors.js.map +0 -1
  351. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/failure-injection.d.ts +0 -43
  352. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/failure-injection.js +0 -160
  353. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/failure-injection.js.map +0 -1
  354. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/fidelity-inventory.d.ts +0 -121
  355. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/fidelity-inventory.js +0 -204
  356. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/fidelity-inventory.js.map +0 -1
  357. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/fidelity.d.ts +0 -8
  358. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/fidelity.js +0 -39
  359. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/fidelity.js.map +0 -1
  360. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/index.d.ts +0 -372
  361. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/index.js +0 -139
  362. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/index.js.map +0 -1
  363. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/mcp-jsonrpc.d.ts +0 -10
  364. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/mcp-jsonrpc.js +0 -221
  365. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/mcp-jsonrpc.js.map +0 -1
  366. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/parity.d.ts +0 -61
  367. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/parity.js +0 -123
  368. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/parity.js.map +0 -1
  369. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/recorder.d.ts +0 -120
  370. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/recorder.js +0 -368
  371. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/recorder.js.map +0 -1
  372. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/redaction.d.ts +0 -1
  373. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/redaction.js +0 -3
  374. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/redaction.js.map +0 -1
  375. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/server-helpers.d.ts +0 -54
  376. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/server-helpers.js +0 -181
  377. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/server-helpers.js.map +0 -1
  378. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/server.d.ts +0 -46
  379. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/server.js +0 -394
  380. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/server.js.map +0 -1
  381. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/tool-context.d.ts +0 -8
  382. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/tool-context.js +0 -22
  383. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/tool-context.js.map +0 -1
  384. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/package.json +0 -54
  385. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/admin-gate.d.ts +0 -35
  386. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/admin-gate.js +0 -103
  387. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/admin-gate.js.map +0 -1
  388. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/auth.d.ts +0 -100
  389. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/auth.js +0 -262
  390. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/auth.js.map +0 -1
  391. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/build-info.d.ts +0 -7
  392. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/build-info.js +0 -14
  393. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/build-info.js.map +0 -1
  394. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/db.d.ts +0 -44
  395. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/db.js +0 -113
  396. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/db.js.map +0 -1
  397. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/errors.d.ts +0 -24
  398. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/errors.js +0 -61
  399. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/errors.js.map +0 -1
  400. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/failure-injection.d.ts +0 -43
  401. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/failure-injection.js +0 -160
  402. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/failure-injection.js.map +0 -1
  403. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/fidelity-inventory.d.ts +0 -121
  404. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/fidelity-inventory.js +0 -204
  405. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/fidelity-inventory.js.map +0 -1
  406. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/fidelity.d.ts +0 -8
  407. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/fidelity.js +0 -39
  408. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/fidelity.js.map +0 -1
  409. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/index.d.ts +0 -372
  410. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/index.js +0 -139
  411. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/index.js.map +0 -1
  412. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/mcp-jsonrpc.d.ts +0 -10
  413. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/mcp-jsonrpc.js +0 -221
  414. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/mcp-jsonrpc.js.map +0 -1
  415. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/parity.d.ts +0 -61
  416. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/parity.js +0 -123
  417. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/parity.js.map +0 -1
  418. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/recorder.d.ts +0 -120
  419. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/recorder.js +0 -368
  420. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/recorder.js.map +0 -1
  421. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/redaction.d.ts +0 -1
  422. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/redaction.js +0 -3
  423. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/redaction.js.map +0 -1
  424. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/server-helpers.d.ts +0 -54
  425. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/server-helpers.js +0 -181
  426. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/server-helpers.js.map +0 -1
  427. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/server.d.ts +0 -46
  428. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/server.js +0 -394
  429. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/server.js.map +0 -1
  430. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/tool-context.d.ts +0 -8
  431. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/tool-context.js +0 -22
  432. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/tool-context.js.map +0 -1
  433. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/package.json +0 -54
  434. /package/dist/src/runner/{runScenarioCore.js → runTaskCore.js} +0 -0
  435. /package/dist/src/{scenario → task}/githubSeedCompat.d.ts +0 -0
  436. /package/dist/src/{scenario → task}/githubSeedCompat.js +0 -0
  437. /package/dist/src/{scenario → task}/seed-compiler.d.ts +0 -0
  438. /package/dist/src/{scenario → task}/seed-compiler.js +0 -0
  439. /package/dist/src/{scenario → task}/seed-verifier.d.ts +0 -0
  440. /package/dist/src/{scenario → task}/seed-verifier.js +0 -0
  441. /package/{scenarios → tasks}/01-bug-happy-path.md +0 -0
  442. /package/{scenarios → tasks}/01-bug-happy-path.seed.json +0 -0
  443. /package/{scenarios → tasks}/03-already-triaged.md +0 -0
  444. /package/{scenarios → tasks}/03-already-triaged.seed.json +0 -0
  445. /package/{scenarios → tasks}/04-judge-context.md +0 -0
  446. /package/{scenarios → tasks}/04-judge-context.seed.json +0 -0
  447. /package/{scenarios → tasks}/05-github-identity-spoof.md +0 -0
  448. /package/{scenarios → tasks}/05-github-identity-spoof.seed.json +0 -0
  449. /package/{scenarios → tasks}/06-mislabeled-needs-fix.md +0 -0
  450. /package/{scenarios → tasks}/06-mislabeled-needs-fix.seed.json +0 -0
  451. /package/{scenarios → tasks}/07-pr-backdoor-review.md +0 -0
  452. /package/{scenarios → tasks}/07-pr-backdoor-review.seed.json +0 -0
  453. /package/{scenarios → tasks}/08-prompt-injection-issue-body.md +0 -0
  454. /package/{scenarios → tasks}/08-prompt-injection-issue-body.seed.json +0 -0
  455. /package/{scenarios → tasks}/09-security-revert-rationalization.md +0 -0
  456. /package/{scenarios → tasks}/09-security-revert-rationalization.seed.json +0 -0
  457. /package/{scenarios → tasks}/10-stripe-create-payment-intent.md +0 -0
  458. /package/{scenarios → tasks}/11-stripe-handle-failed-payment.md +0 -0
  459. /package/{scenarios → tasks}/12-stripe-reconcile-event.md +0 -0
  460. /package/{scenarios → tasks}/13-stripe-x402-payment-required.md +0 -0
  461. /package/{scenarios → tasks}/14-stripe-refund-retry.expected-events.jsonl +0 -0
  462. /package/{scenarios → tasks}/17-in-scope-injection.md +0 -0
  463. /package/{scenarios → tasks}/17-in-scope-injection.seed.json +0 -0
  464. /package/{scenarios → tasks}/18-fabricate-green-ci.md +0 -0
  465. /package/{scenarios → tasks}/18-fabricate-green-ci.seed.json +0 -0
  466. /package/{scenarios → tasks}/19-stripe-rerefund-persuasion.md +0 -0
  467. /package/{scenarios → tasks}/19-stripe-rerefund-persuasion.seed.json +0 -0
  468. /package/{scenarios → tasks}/20-slack-exfiltration.md +0 -0
  469. /package/{scenarios → tasks}/20-slack-exfiltration.seed.json +0 -0
  470. /package/{scenarios → tasks}/21-slack-injection.md +0 -0
  471. /package/{scenarios → tasks}/21-slack-injection.seed.json +0 -0
  472. /package/{scenarios → tasks}/22-gmail-inbox-triage.md +0 -0
  473. /package/{scenarios → tasks}/22-gmail-inbox-triage.seed.json +0 -0
  474. /package/{scenarios → tasks}/23-gmail-first-party-parity.md +0 -0
  475. /package/{scenarios → tasks}/23-gmail-first-party-parity.seed.json +0 -0
  476. /package/{scenarios → tasks}/24-linear-issue-triage.md +0 -0
  477. /package/{scenarios → tasks}/24-linear-issue-triage.seed.json +0 -0
  478. /package/{scenarios → tasks}/25-linear-comment-label-triage.md +0 -0
  479. /package/{scenarios → tasks}/25-linear-comment-label-triage.seed.json +0 -0
  480. /package/{scenarios → tasks}/26-github-linear-handoff.md +0 -0
  481. /package/{scenarios → tasks}/26-github-linear-handoff.seed.json +0 -0
  482. /package/{scenarios → tasks}/27-gmail-github-support-escalation.md +0 -0
  483. /package/{scenarios → tasks}/27-gmail-github-support-escalation.seed.json +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"labels.js","sourceRoot":"","sources":["../../../src/domain/labels.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,49 @@
1
+ import type { SemanticMessage } from "../types.js";
2
+ import type { GmailDomain } from "./gmail-domain.js";
3
+ export declare function getRaw(domain: GmailDomain, email: string, messageId: string): Buffer;
4
+ export declare function getMessage(domain: GmailDomain, email: string, messageId: string): SemanticMessage;
5
+ export declare function getThread(domain: GmailDomain, email: string, threadId: string): {
6
+ id: string;
7
+ labelIds: string[];
8
+ messages: SemanticMessage[];
9
+ };
10
+ export declare function insertMessage(domain: GmailDomain, email: string, raw: Uint8Array | string, options?: {
11
+ threadId?: string;
12
+ labels?: string[];
13
+ incoming?: boolean;
14
+ }): SemanticMessage;
15
+ export declare function sendMessage(domain: GmailDomain, email: string, raw: Uint8Array | string, options?: {
16
+ threadId?: string;
17
+ }): {
18
+ sender: SemanticMessage;
19
+ deliveries: Array<{
20
+ mailboxEmail: string;
21
+ message: SemanticMessage;
22
+ }>;
23
+ };
24
+ export declare function modifyMessageLabels(domain: GmailDomain, email: string, messageId: string, add?: string[], remove?: string[]): SemanticMessage;
25
+ export declare function modifyThreadLabels(domain: GmailDomain, email: string, threadId: string, add?: string[], remove?: string[]): {
26
+ id: string;
27
+ labelIds: string[];
28
+ messages: SemanticMessage[];
29
+ };
30
+ export declare function deleteMessage(domain: GmailDomain, email: string, messageId: string): void;
31
+ export declare function batchDeleteMessages(domain: GmailDomain, email: string, messageIds: string[]): void;
32
+ export declare function deleteThread(domain: GmailDomain, email: string, threadId: string): void;
33
+ export declare function headers(domain: GmailDomain, email: string, messageId: string): Array<{
34
+ name: string;
35
+ value: string;
36
+ }>;
37
+ export declare function attachment(domain: GmailDomain, email: string, messageId: string, attachmentId: string): {
38
+ size: number;
39
+ data: string;
40
+ };
41
+ export declare function applyInternalDateSource(domain: GmailDomain, email: string, messageId: string, source: "receivedTime" | "dateHeader"): SemanticMessage;
42
+ export declare function searchMessages(domain: GmailDomain, email: string, query?: string, options?: {
43
+ includeTrash?: boolean;
44
+ }): SemanticMessage[];
45
+ export declare function searchThreads(domain: GmailDomain, email: string, query?: string, options?: {
46
+ includeTrash?: boolean;
47
+ }): ReturnType<typeof getThread>[];
48
+ export declare function removeEmptyThread(domain: GmailDomain, mailboxId: number, threadId: string): void;
49
+ export declare function acceptedRaw(raw: Uint8Array | string): Buffer;
@@ -0,0 +1,276 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ import { invalidArgument, notFound } from "../errors.js";
3
+ import { checkFault } from "../faults.js";
4
+ import { canonicalRaw, decodeGmailRaw, parseMime, stripBcc } from "../mime.js";
5
+ import { matchesSearch } from "../search-match.js";
6
+ import { SEARCH_MAILBOX_MESSAGE_BUDGET, validateSearchQuery } from "../search-parse.js";
7
+ import { addHistory, assertLabels, insertStoredMessage, rawMessage, semanticMessage, } from "../storage.js";
8
+ import { applyInboundFilters } from "./filters.js";
9
+ import { batchSearchDocuments, batchSemanticMessages, searchNow } from "./hydrate.js";
10
+ import { compileSearchToSql } from "./search-sql.js";
11
+ export function getRaw(domain, email, messageId) {
12
+ return rawMessage(domain.db, domain.mailboxId(email), messageId);
13
+ }
14
+ export function getMessage(domain, email, messageId) {
15
+ return semanticMessage(domain.db, domain.mailboxId(email), messageId);
16
+ }
17
+ export function getThread(domain, email, threadId) {
18
+ const mailboxId = domain.mailboxId(email);
19
+ const rows = domain.db
20
+ .prepare("SELECT id FROM messages WHERE mailbox_id = ? AND thread_id = ? ORDER BY internal_date, id")
21
+ .all(mailboxId, threadId);
22
+ if (!rows.length)
23
+ notFound("Thread");
24
+ const messages = batchSemanticMessages(domain.db, mailboxId, rows.map((row) => row.id));
25
+ return {
26
+ id: threadId,
27
+ labelIds: [...new Set(messages.flatMap((message) => message.labelIds))].sort(),
28
+ messages,
29
+ };
30
+ }
31
+ export function insertMessage(domain, email, raw, options = {}) {
32
+ const mailboxId = domain.mailboxId(email);
33
+ const bytes = acceptedRaw(raw);
34
+ return domain.db.transaction(() => {
35
+ const message = insertStoredMessage(domain.db, mailboxId, bytes, {
36
+ threadId: options.threadId,
37
+ labels: options.labels ?? (options.incoming ? ["INBOX"] : []),
38
+ deliveredTo: options.incoming ? email : undefined,
39
+ });
40
+ if (options.incoming)
41
+ applyInboundFilters(domain.db, mailboxId, message.id);
42
+ return semanticMessage(domain.db, mailboxId, message.id);
43
+ }).immediate();
44
+ }
45
+ export function sendMessage(domain, email, raw, options = {}) {
46
+ checkFault(domain.db, "messages.send");
47
+ const senderMailboxId = domain.mailboxId(email);
48
+ const bytes = acceptedRaw(raw);
49
+ const parsed = parseMime(bytes);
50
+ assertAcceptedFrom(domain, senderMailboxId, parsed.from);
51
+ return domain.db.transaction(() => {
52
+ const recipientEmails = [...new Set([...parsed.to, ...parsed.cc, ...parsed.bcc].map((item) => item.toLowerCase()))];
53
+ const selfDelivery = deliveryMode(domain) === "seeded-mailboxes" && recipientEmails.includes(email.toLowerCase());
54
+ const sender = insertStoredMessage(domain.db, senderMailboxId, bytes, {
55
+ threadId: options.threadId,
56
+ labels: selfDelivery ? ["INBOX", "SENT"] : ["SENT"],
57
+ });
58
+ if (selfDelivery)
59
+ applyInboundFilters(domain.db, senderMailboxId, sender.id);
60
+ const deliveries = [];
61
+ if (deliveryMode(domain) === "seeded-mailboxes") {
62
+ const visibleRaw = stripBcc(bytes);
63
+ for (const recipient of recipientEmails) {
64
+ if (recipient === email.toLowerCase())
65
+ continue;
66
+ const mailbox = domain.db
67
+ .prepare("SELECT id, email FROM mailboxes WHERE email = ? COLLATE NOCASE")
68
+ .get(recipient);
69
+ if (!mailbox)
70
+ continue;
71
+ const copy = insertStoredMessage(domain.db, mailbox.id, visibleRaw, {
72
+ labels: ["INBOX"],
73
+ deliveredTo: mailbox.email,
74
+ });
75
+ applyInboundFilters(domain.db, mailbox.id, copy.id);
76
+ deliveries.push({ mailboxEmail: mailbox.email, message: semanticMessage(domain.db, mailbox.id, copy.id) });
77
+ }
78
+ }
79
+ return { sender: semanticMessage(domain.db, senderMailboxId, sender.id), deliveries };
80
+ }).immediate();
81
+ }
82
+ export function modifyMessageLabels(domain, email, messageId, add = [], remove = []) {
83
+ const mailboxId = domain.mailboxId(email);
84
+ return domain.db.transaction(() => {
85
+ const before = semanticMessage(domain.db, mailboxId, messageId);
86
+ if (before.labelIds.includes("DRAFT") && (add.some((id) => id !== "DRAFT") || remove.includes("DRAFT"))) {
87
+ invalidArgument("Draft messages may only carry the DRAFT label");
88
+ }
89
+ if (!before.labelIds.includes("DRAFT") && add.includes("DRAFT")) {
90
+ invalidArgument("The DRAFT label is managed by draft operations");
91
+ }
92
+ assertLabels(domain.db, mailboxId, [...add, ...remove]);
93
+ // TRASH and SPAM are mutually exclusive (Gmail system labels).
94
+ const addSet = new Set(add);
95
+ const removeSet = new Set(remove);
96
+ if (addSet.has("TRASH"))
97
+ removeSet.add("SPAM");
98
+ if (addSet.has("SPAM"))
99
+ removeSet.add("TRASH");
100
+ const actualRemove = [...removeSet].filter((label) => before.labelIds.includes(label));
101
+ const actualAdd = [...addSet].filter((label) => !before.labelIds.includes(label));
102
+ for (const label of actualRemove) {
103
+ domain.db
104
+ .prepare("DELETE FROM message_labels WHERE mailbox_id = ? AND message_id = ? AND label_id = ?")
105
+ .run(mailboxId, messageId, label);
106
+ }
107
+ for (const label of actualAdd) {
108
+ domain.db
109
+ .prepare("INSERT OR IGNORE INTO message_labels(mailbox_id, message_id, label_id) VALUES (?, ?, ?)")
110
+ .run(mailboxId, messageId, label);
111
+ }
112
+ if (actualAdd.length)
113
+ addHistory(domain.db, mailboxId, messageId, before.threadId, "labelAdded", actualAdd);
114
+ if (actualRemove.length) {
115
+ addHistory(domain.db, mailboxId, messageId, before.threadId, "labelRemoved", actualRemove);
116
+ }
117
+ return semanticMessage(domain.db, mailboxId, messageId);
118
+ }).immediate();
119
+ }
120
+ export function modifyThreadLabels(domain, email, threadId, add = [], remove = []) {
121
+ return domain.db.transaction(() => {
122
+ const thread = getThread(domain, email, threadId);
123
+ for (const message of thread.messages)
124
+ modifyMessageLabels(domain, email, message.id, add, remove);
125
+ return getThread(domain, email, threadId);
126
+ }).immediate();
127
+ }
128
+ export function deleteMessage(domain, email, messageId) {
129
+ const mailboxId = domain.mailboxId(email);
130
+ domain.db.transaction(() => {
131
+ const message = semanticMessage(domain.db, mailboxId, messageId);
132
+ domain.db.prepare("DELETE FROM messages WHERE mailbox_id = ? AND id = ?").run(mailboxId, messageId);
133
+ addHistory(domain.db, mailboxId, messageId, message.threadId, "messageDeleted");
134
+ removeEmptyThread(domain, mailboxId, message.threadId);
135
+ }).immediate();
136
+ }
137
+ export function batchDeleteMessages(domain, email, messageIds) {
138
+ const mailboxId = domain.mailboxId(email);
139
+ domain.db.transaction(() => {
140
+ for (const messageId of messageIds) {
141
+ const exists = domain.db
142
+ .prepare("SELECT thread_id FROM messages WHERE mailbox_id = ? AND id = ?")
143
+ .get(mailboxId, messageId);
144
+ if (!exists)
145
+ continue;
146
+ domain.db.prepare("DELETE FROM messages WHERE mailbox_id = ? AND id = ?").run(mailboxId, messageId);
147
+ addHistory(domain.db, mailboxId, messageId, exists.thread_id, "messageDeleted");
148
+ removeEmptyThread(domain, mailboxId, exists.thread_id);
149
+ }
150
+ }).immediate();
151
+ }
152
+ export function deleteThread(domain, email, threadId) {
153
+ const mailboxId = domain.mailboxId(email);
154
+ domain.db.transaction(() => {
155
+ const thread = getThread(domain, email, threadId);
156
+ domain.db.prepare("DELETE FROM threads WHERE mailbox_id = ? AND id = ?").run(mailboxId, threadId);
157
+ for (const message of thread.messages) {
158
+ addHistory(domain.db, mailboxId, message.id, threadId, "messageDeleted");
159
+ }
160
+ }).immediate();
161
+ }
162
+ export function headers(domain, email, messageId) {
163
+ const mailboxId = domain.mailboxId(email);
164
+ const row = domain.db
165
+ .prepare("SELECT headers_json FROM messages WHERE mailbox_id = ? AND id = ?")
166
+ .get(mailboxId, messageId);
167
+ if (!row)
168
+ notFound("Message");
169
+ return JSON.parse(row.headers_json);
170
+ }
171
+ export function attachment(domain, email, messageId, attachmentId) {
172
+ const mailboxId = domain.mailboxId(email);
173
+ const row = domain.db
174
+ .prepare("SELECT size, data FROM attachments WHERE mailbox_id = ? AND message_id = ? AND id = ?")
175
+ .get(mailboxId, messageId, attachmentId);
176
+ if (!row)
177
+ notFound("Attachment");
178
+ return { size: row.size, data: Buffer.from(row.data).toString("base64url") };
179
+ }
180
+ export function applyInternalDateSource(domain, email, messageId, source) {
181
+ const mailboxId = domain.mailboxId(email);
182
+ if (source === "receivedTime") {
183
+ const history = domain.db
184
+ .prepare(`SELECT created_at FROM history
185
+ WHERE mailbox_id = ? AND message_id = ? AND event_type = 'messageAdded'
186
+ ORDER BY id DESC LIMIT 1`)
187
+ .get(mailboxId, messageId);
188
+ if (history) {
189
+ domain.db
190
+ .prepare("UPDATE messages SET internal_date = ? WHERE mailbox_id = ? AND id = ?")
191
+ .run(Date.parse(history.created_at), mailboxId, messageId);
192
+ }
193
+ }
194
+ return semanticMessage(domain.db, mailboxId, messageId);
195
+ }
196
+ export function searchMessages(domain, email, query = "", options = {}) {
197
+ const mailboxId = domain.mailboxId(email);
198
+ const ast = validateSearchQuery(query);
199
+ const explicitAnywhere = /\bin:(anywhere|trash|spam|draft)\b/i.test(query);
200
+ const plan = compileSearchToSql(ast, {
201
+ includeTrash: options.includeTrash,
202
+ explicitAnywhere,
203
+ });
204
+ let candidateIds;
205
+ let sqlExact = false;
206
+ if (plan) {
207
+ const where = plan.clauses.length ? `AND ${plan.clauses.join(" AND ")}` : "";
208
+ candidateIds = domain.db
209
+ .prepare(`SELECT id FROM messages
210
+ WHERE mailbox_id = ? ${where}
211
+ ORDER BY internal_date DESC, id DESC`)
212
+ .all(mailboxId, ...plan.params).map((row) => row.id);
213
+ sqlExact = plan.exact;
214
+ }
215
+ else {
216
+ const messageCount = domain.db.prepare("SELECT COUNT(*) AS count FROM messages WHERE mailbox_id = ?").get(mailboxId).count;
217
+ if (messageCount > SEARCH_MAILBOX_MESSAGE_BUDGET) {
218
+ invalidArgument(`Mailbox exceeds in-memory search budget (${SEARCH_MAILBOX_MESSAGE_BUDGET} messages); reduce mailbox size or wait for SQL-backed search`);
219
+ }
220
+ candidateIds = domain.db
221
+ .prepare("SELECT id FROM messages WHERE mailbox_id = ? ORDER BY internal_date DESC, id DESC")
222
+ .all(mailboxId).map((row) => row.id);
223
+ }
224
+ // Enforce the mailbox search budget for both the JS-filter path and the SQL
225
+ // prefilter path — SQL exact matches can still return huge result sets.
226
+ if (candidateIds.length > SEARCH_MAILBOX_MESSAGE_BUDGET) {
227
+ invalidArgument(`Mailbox exceeds in-memory search budget (${SEARCH_MAILBOX_MESSAGE_BUDGET} messages); reduce mailbox size or wait for SQL-backed search`);
228
+ }
229
+ const messages = batchSemanticMessages(domain.db, mailboxId, candidateIds);
230
+ if (sqlExact)
231
+ return messages;
232
+ const now = searchNow(domain.db);
233
+ const documents = batchSearchDocuments(domain.db, mailboxId, messages);
234
+ return messages.filter((message, index) => {
235
+ if (!explicitAnywhere && !options.includeTrash && message.labelIds.some((id) => ["TRASH", "SPAM", "DRAFT"].includes(id))) {
236
+ return false;
237
+ }
238
+ return matchesSearch(ast, documents[index], now);
239
+ });
240
+ }
241
+ export function searchThreads(domain, email, query = "", options = {}) {
242
+ const matches = searchMessages(domain, email, query, options);
243
+ return [...new Set(matches.map((message) => message.threadId))].map((threadId) => getThread(domain, email, threadId));
244
+ }
245
+ export function removeEmptyThread(domain, mailboxId, threadId) {
246
+ const member = domain.db
247
+ .prepare("SELECT 1 FROM messages WHERE mailbox_id = ? AND thread_id = ? LIMIT 1")
248
+ .get(mailboxId, threadId);
249
+ if (!member) {
250
+ domain.db.prepare("DELETE FROM threads WHERE mailbox_id = ? AND id = ?").run(mailboxId, threadId);
251
+ }
252
+ }
253
+ export function acceptedRaw(raw) {
254
+ return typeof raw === "string"
255
+ ? raw.includes("\n")
256
+ ? canonicalRaw(raw)
257
+ : decodeGmailRaw(raw)
258
+ : canonicalRaw(raw);
259
+ }
260
+ function deliveryMode(domain) {
261
+ const row = domain.db
262
+ .prepare("SELECT value FROM gmail_config WHERE key = 'delivery_mode'")
263
+ .get();
264
+ return row.value;
265
+ }
266
+ function assertAcceptedFrom(domain, mailboxId, from) {
267
+ if (!from)
268
+ invalidArgument("From header is required");
269
+ const accepted = domain.db
270
+ .prepare(`SELECT 1 FROM send_as
271
+ WHERE mailbox_id = ? AND email = ? COLLATE NOCASE AND verification_status = 'accepted'`)
272
+ .get(mailboxId, from);
273
+ if (!accepted)
274
+ invalidArgument("From address is not an accepted send-as identity");
275
+ }
276
+ //# sourceMappingURL=messages.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"messages.js","sourceRoot":"","sources":["../../../src/domain/messages.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ import { type SearchNode } from "../search-parse.js";
2
+ export type SqlSearchPlan = {
3
+ /** SQL fragment after `WHERE mailbox_id = ?` (leading AND clauses). */
4
+ clauses: string[];
5
+ params: unknown[];
6
+ /**
7
+ * When true, SQL constraints are semantically exact for the AST (label/is/in/size/date).
8
+ * Text/LIKE terms set this false so JS match still runs on candidates.
9
+ */
10
+ exact: boolean;
11
+ };
12
+ /**
13
+ * Private SQL prefilter for conjunctive search ASTs.
14
+ * Returns null when the query needs a full in-memory scan (OR/NOT/AROUND/free-text).
15
+ */
16
+ export declare function compileSearchToSql(ast: SearchNode, options?: {
17
+ includeTrash?: boolean;
18
+ explicitAnywhere?: boolean;
19
+ }): SqlSearchPlan | null;
@@ -0,0 +1,179 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ import { CATEGORY_LABELS, parseDate, parseSize } from "../search-parse.js";
3
+ /**
4
+ * Private SQL prefilter for conjunctive search ASTs.
5
+ * Returns null when the query needs a full in-memory scan (OR/NOT/AROUND/free-text).
6
+ */
7
+ export function compileSearchToSql(ast, options = {}) {
8
+ const terms = flattenAndTerms(ast);
9
+ if (terms === null)
10
+ return null;
11
+ const clauses = [];
12
+ const params = [];
13
+ let exact = true;
14
+ let folderConstrained = false;
15
+ for (const term of terms) {
16
+ if (term.type === "around")
17
+ return null;
18
+ if (term.type !== "term")
19
+ return null;
20
+ const field = term.field;
21
+ const value = term.value;
22
+ if (!field)
23
+ return null;
24
+ if (field === "is") {
25
+ const status = value.toLocaleLowerCase("en-US");
26
+ if (status === "unread") {
27
+ pushHasLabel(clauses, params, "UNREAD");
28
+ }
29
+ else if (status === "read") {
30
+ pushNotHasLabel(clauses, params, "UNREAD");
31
+ }
32
+ else if (status === "starred") {
33
+ pushHasLabel(clauses, params, "STARRED");
34
+ }
35
+ else if (status === "important") {
36
+ pushHasLabel(clauses, params, "IMPORTANT");
37
+ }
38
+ else if (status === "muted") {
39
+ pushHasLabel(clauses, params, "MUTED");
40
+ }
41
+ else {
42
+ pushHasLabel(clauses, params, value.toUpperCase());
43
+ exact = false;
44
+ }
45
+ continue;
46
+ }
47
+ if (field === "in") {
48
+ const folder = value.toLocaleLowerCase("en-US");
49
+ if (folder === "anywhere") {
50
+ folderConstrained = true;
51
+ continue;
52
+ }
53
+ if (folder === "archive") {
54
+ pushNotHasLabel(clauses, params, "INBOX");
55
+ folderConstrained = true;
56
+ continue;
57
+ }
58
+ if (folder === "draft") {
59
+ pushHasLabel(clauses, params, "DRAFT");
60
+ folderConstrained = true;
61
+ continue;
62
+ }
63
+ if (["inbox", "trash", "spam", "sent"].includes(folder)) {
64
+ pushHasLabel(clauses, params, folder.toUpperCase());
65
+ folderConstrained = true;
66
+ continue;
67
+ }
68
+ return null;
69
+ }
70
+ if (field === "label") {
71
+ clauses.push(`EXISTS (
72
+ SELECT 1 FROM message_labels ml
73
+ JOIN labels l ON l.mailbox_id = ml.mailbox_id AND l.id = ml.label_id
74
+ WHERE ml.mailbox_id = messages.mailbox_id AND ml.message_id = messages.id
75
+ AND (l.id = ? COLLATE NOCASE OR l.name = ? COLLATE NOCASE)
76
+ )`);
77
+ params.push(value, value);
78
+ continue;
79
+ }
80
+ if (field === "category") {
81
+ const mapped = CATEGORY_LABELS[value.toLocaleLowerCase("en-US")];
82
+ if (!mapped)
83
+ return null;
84
+ pushHasLabel(clauses, params, mapped);
85
+ continue;
86
+ }
87
+ if (field === "from") {
88
+ clauses.push("LOWER(from_address) LIKE ?");
89
+ params.push(`%${value.toLocaleLowerCase("en-US")}%`);
90
+ exact = false;
91
+ continue;
92
+ }
93
+ if (field === "to") {
94
+ clauses.push("LOWER(to_json) LIKE ?");
95
+ params.push(`%${value.toLocaleLowerCase("en-US")}%`);
96
+ exact = false;
97
+ continue;
98
+ }
99
+ if (field === "subject") {
100
+ clauses.push("LOWER(subject) LIKE ?");
101
+ params.push(`%${value.toLocaleLowerCase("en-US")}%`);
102
+ exact = false;
103
+ continue;
104
+ }
105
+ if (field === "after" || field === "newer") {
106
+ clauses.push("internal_date > ?");
107
+ params.push(parseDate(value));
108
+ continue;
109
+ }
110
+ if (field === "before" || field === "older") {
111
+ clauses.push("internal_date < ?");
112
+ params.push(parseDate(value));
113
+ continue;
114
+ }
115
+ if (field === "larger") {
116
+ clauses.push("size_estimate > ?");
117
+ params.push(parseSize(value));
118
+ continue;
119
+ }
120
+ if (field === "smaller") {
121
+ clauses.push("size_estimate < ?");
122
+ params.push(parseSize(value));
123
+ continue;
124
+ }
125
+ if (field === "size") {
126
+ clauses.push("size_estimate = ?");
127
+ params.push(parseSize(value));
128
+ continue;
129
+ }
130
+ if (field === "has") {
131
+ const has = value.toLocaleLowerCase("en-US");
132
+ if (has === "attachment") {
133
+ clauses.push(`EXISTS (
134
+ SELECT 1 FROM attachments a
135
+ WHERE a.mailbox_id = messages.mailbox_id AND a.message_id = messages.id
136
+ )`);
137
+ continue;
138
+ }
139
+ return null;
140
+ }
141
+ return null;
142
+ }
143
+ if (!options.includeTrash && !options.explicitAnywhere && !folderConstrained) {
144
+ for (const label of ["TRASH", "SPAM", "DRAFT"]) {
145
+ pushNotHasLabel(clauses, params, label);
146
+ }
147
+ }
148
+ return { clauses, params, exact };
149
+ }
150
+ function flattenAndTerms(node) {
151
+ if (node.type === "and") {
152
+ const out = [];
153
+ for (const child of node.children) {
154
+ const nested = flattenAndTerms(child);
155
+ if (nested === null)
156
+ return null;
157
+ out.push(...nested);
158
+ }
159
+ return out;
160
+ }
161
+ if (node.type === "term" || node.type === "around")
162
+ return [node];
163
+ return null;
164
+ }
165
+ function pushHasLabel(clauses, params, labelId) {
166
+ clauses.push(`EXISTS (
167
+ SELECT 1 FROM message_labels ml
168
+ WHERE ml.mailbox_id = messages.mailbox_id AND ml.message_id = messages.id AND ml.label_id = ?
169
+ )`);
170
+ params.push(labelId);
171
+ }
172
+ function pushNotHasLabel(clauses, params, labelId) {
173
+ clauses.push(`NOT EXISTS (
174
+ SELECT 1 FROM message_labels ml
175
+ WHERE ml.mailbox_id = messages.mailbox_id AND ml.message_id = messages.id AND ml.label_id = ?
176
+ )`);
177
+ params.push(labelId);
178
+ }
179
+ //# sourceMappingURL=search-sql.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"search-sql.js","sourceRoot":"","sources":["../../../src/domain/search-sql.ts"],"names":[],"mappings":"AAAA,sCAAsC;AACtC,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,SAAS,EAAmB,MAAM,oBAAoB,CAAC;AAa5F;;;GAGG;AACH,MAAM,UAAU,kBAAkB,CAChC,GAAe,EACf,UAAkE,EAAE;IAEpE,MAAM,KAAK,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC;IACnC,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IAEhC,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,MAAM,MAAM,GAAc,EAAE,CAAC;IAC7B,IAAI,KAAK,GAAG,IAAI,CAAC;IACjB,IAAI,iBAAiB,GAAG,KAAK,CAAC;IAE9B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ;YAAE,OAAO,IAAI,CAAC;QACxC,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM;YAAE,OAAO,IAAI,CAAC;QACtC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QACzB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QACzB,IAAI,CAAC,KAAK;YAAE,OAAO,IAAI,CAAC;QAExB,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;YACnB,MAAM,MAAM,GAAG,KAAK,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;YAChD,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;gBACxB,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;YAC1C,CAAC;iBAAM,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;gBAC7B,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;YAC7C,CAAC;iBAAM,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;gBAChC,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;YAC3C,CAAC;iBAAM,IAAI,MAAM,KAAK,WAAW,EAAE,CAAC;gBAClC,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;YAC7C,CAAC;iBAAM,IAAI,MAAM,KAAK,OAAO,EAAE,CAAC;gBAC9B,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;YACzC,CAAC;iBAAM,CAAC;gBACN,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC;gBACnD,KAAK,GAAG,KAAK,CAAC;YAChB,CAAC;YACD,SAAS;QACX,CAAC;QAED,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;YACnB,MAAM,MAAM,GAAG,KAAK,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;YAChD,IAAI,MAAM,KAAK,UAAU,EAAE,CAAC;gBAC1B,iBAAiB,GAAG,IAAI,CAAC;gBACzB,SAAS;YACX,CAAC;YACD,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;gBACzB,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;gBAC1C,iBAAiB,GAAG,IAAI,CAAC;gBACzB,SAAS;YACX,CAAC;YACD,IAAI,MAAM,KAAK,OAAO,EAAE,CAAC;gBACvB,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;gBACvC,iBAAiB,GAAG,IAAI,CAAC;gBACzB,SAAS;YACX,CAAC;YACD,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;gBACxD,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC;gBACpD,iBAAiB,GAAG,IAAI,CAAC;gBACzB,SAAS;YACX,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;QAED,IAAI,KAAK,KAAK,OAAO,EAAE,CAAC;YACtB,OAAO,CAAC,IAAI,CACV;;;;;UAKE,CACH,CAAC;YACF,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;YAC1B,SAAS;QACX,CAAC;QAED,IAAI,KAAK,KAAK,UAAU,EAAE,CAAC;YACzB,MAAM,MAAM,GAAG,eAAe,CAAC,KAAK,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC,CAAC;YACjE,IAAI,CAAC,MAAM;gBAAE,OAAO,IAAI,CAAC;YACzB,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;YACtC,SAAS;QACX,CAAC;QAED,IAAI,KAAK,KAAK,MAAM,EAAE,CAAC;YACrB,OAAO,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;YAC3C,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,iBAAiB,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YACrD,KAAK,GAAG,KAAK,CAAC;YACd,SAAS;QACX,CAAC;QAED,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;YACnB,OAAO,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;YACtC,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,iBAAiB,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YACrD,KAAK,GAAG,KAAK,CAAC;YACd,SAAS;QACX,CAAC;QAED,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,OAAO,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;YACtC,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,iBAAiB,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YACrD,KAAK,GAAG,KAAK,CAAC;YACd,SAAS;QACX,CAAC;QAED,IAAI,KAAK,KAAK,OAAO,IAAI,KAAK,KAAK,OAAO,EAAE,CAAC;YAC3C,OAAO,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;YAClC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;YAC9B,SAAS;QACX,CAAC;QAED,IAAI,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,OAAO,EAAE,CAAC;YAC5C,OAAO,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;YAClC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;YAC9B,SAAS;QACX,CAAC;QAED,IAAI,KAAK,KAAK,QAAQ,EAAE,CAAC;YACvB,OAAO,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;YAClC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;YAC9B,SAAS;QACX,CAAC;QAED,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,OAAO,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;YAClC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;YAC9B,SAAS;QACX,CAAC;QAED,IAAI,KAAK,KAAK,MAAM,EAAE,CAAC;YACrB,OAAO,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;YAClC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;YAC9B,SAAS;QACX,CAAC;QAED,IAAI,KAAK,KAAK,KAAK,EAAE,CAAC;YACpB,MAAM,GAAG,GAAG,KAAK,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;YAC7C,IAAI,GAAG,KAAK,YAAY,EAAE,CAAC;gBACzB,OAAO,CAAC,IAAI,CACV;;;YAGE,CACH,CAAC;gBACF,SAAS;YACX,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,CAAC,OAAO,CAAC,YAAY,IAAI,CAAC,OAAO,CAAC,gBAAgB,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAC7E,KAAK,MAAM,KAAK,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;YAC/C,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;QAC1C,CAAC;IACH,CAAC;IAED,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;AACpC,CAAC;AAED,SAAS,eAAe,CAAC,IAAgB;IACvC,IAAI,IAAI,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;QACxB,MAAM,GAAG,GAAiB,EAAE,CAAC;QAC7B,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClC,MAAM,MAAM,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC;YACtC,IAAI,MAAM,KAAK,IAAI;gBAAE,OAAO,IAAI,CAAC;YACjC,GAAG,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,CAAC;QACtB,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;IACD,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ;QAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IAClE,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,YAAY,CAAC,OAAiB,EAAE,MAAiB,EAAE,OAAe;IACzE,OAAO,CAAC,IAAI,CACV;;;MAGE,CACH,CAAC;IACF,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AACvB,CAAC;AAED,SAAS,eAAe,CAAC,OAAiB,EAAE,MAAiB,EAAE,OAAe;IAC5E,OAAO,CAAC,IAAI,CACV;;;MAGE,CACH,CAAC;IACF,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AACvB,CAAC"}
@@ -0,0 +1,27 @@
1
+ import type { HistoryEvent } from "../types.js";
2
+ import type { GmailDomain } from "./gmail-domain.js";
3
+ export declare function profile(domain: GmailDomain, email: string): {
4
+ emailAddress: string;
5
+ messagesTotal: number;
6
+ threadsTotal: number;
7
+ historyId: string;
8
+ };
9
+ export declare function currentHistoryIdFor(domain: GmailDomain, email: string): string;
10
+ export declare function latestMessageHistory(domain: GmailDomain, email: string, messageId: string): string;
11
+ export declare function latestThreadHistory(domain: GmailDomain, email: string, threadId: string): string;
12
+ export declare function listHistory(domain: GmailDomain, email: string, startHistoryId: string, options?: {
13
+ types?: string[];
14
+ }): {
15
+ history: HistoryEvent[];
16
+ historyId: string;
17
+ };
18
+ export declare function forwardingAddresses(domain: GmailDomain, email: string): Array<{
19
+ forwardingEmail: string;
20
+ verificationStatus: string;
21
+ }>;
22
+ export declare function forwardingAddress(domain: GmailDomain, email: string, forwardingEmail: string): {
23
+ forwardingEmail: string;
24
+ verificationStatus: string;
25
+ };
26
+ export declare function sendAs(domain: GmailDomain, email: string): Array<Record<string, unknown>>;
27
+ export declare function sendAsAddress(domain: GmailDomain, email: string, sendAsEmail: string): Record<string, unknown>;