@pome-sh/cli 0.8.0 → 0.10.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 (449) hide show
  1. package/dist/build-info.json +3 -3
  2. package/dist/src/cli/agent-identity.js +7 -2
  3. package/dist/src/cli/agent-resolver.d.ts +3 -0
  4. package/dist/src/cli/agent-resolver.js +10 -0
  5. package/dist/src/cli/checks-add.d.ts +32 -0
  6. package/dist/src/cli/checks-add.js +236 -0
  7. package/dist/src/cli/checks.d.ts +21 -0
  8. package/dist/src/cli/checks.js +150 -0
  9. package/dist/src/cli/compile-seeds.js +51 -5
  10. package/dist/src/cli/main.js +49 -11
  11. package/dist/src/cli/project-config.d.ts +8 -0
  12. package/dist/src/cli/project-config.js +18 -0
  13. package/dist/src/cli/register.d.ts +15 -0
  14. package/dist/src/cli/register.js +26 -3
  15. package/dist/src/cli/session.d.ts +10 -0
  16. package/dist/src/cli/session.js +28 -2
  17. package/dist/src/fix-prompt/index.d.ts +1 -1
  18. package/dist/src/fix-prompt/index.js +2 -2
  19. package/dist/src/fix-prompt/prompt.d.ts +2 -2
  20. package/dist/src/fix-prompt/prompt.js +9 -9
  21. package/dist/src/hosted/client.d.ts +8 -2
  22. package/dist/src/hosted/client.js +108 -26
  23. package/dist/src/hosted/errors.d.ts +14 -0
  24. package/dist/src/hosted/errors.js +22 -0
  25. package/dist/src/hosted/evalResultCache.d.ts +4 -4
  26. package/dist/src/hosted/evalResultCache.js +10 -3
  27. package/dist/src/recorder/artifacts.d.ts +1 -1
  28. package/dist/src/recorder/artifacts.js +8 -1
  29. package/dist/src/runner/runTask.d.ts +10 -10
  30. package/dist/src/runner/runTaskHosted.js +9 -2
  31. package/dist/src/runner/runTrialGroup.js +4 -1
  32. package/dist/src/task/insertCriterion.d.ts +15 -0
  33. package/dist/src/task/insertCriterion.js +62 -0
  34. package/dist/src/task/parseTask.d.ts +5 -0
  35. package/dist/src/task/parseTask.js +11 -0
  36. package/dist/src/task/taskSchema.d.ts +4 -4
  37. package/node_modules/@pome-sh/sdk/dist/checks.d.ts +54 -0
  38. package/node_modules/@pome-sh/sdk/dist/checks.js +143 -0
  39. package/node_modules/@pome-sh/sdk/dist/checks.js.map +1 -0
  40. package/node_modules/@pome-sh/sdk/package.json +7 -3
  41. package/node_modules/@pome-sh/twin-github/dist/src/access-control.d.ts +3 -3
  42. package/node_modules/@pome-sh/twin-github/dist/src/checks.d.ts +21 -0
  43. package/node_modules/@pome-sh/twin-github/dist/src/checks.js +90 -0
  44. package/node_modules/@pome-sh/twin-github/dist/src/checks.js.map +1 -0
  45. package/node_modules/@pome-sh/twin-github/dist/src/domain/checks.d.ts +153 -0
  46. package/node_modules/@pome-sh/twin-github/dist/src/domain/checks.js +66 -0
  47. package/node_modules/@pome-sh/twin-github/dist/src/domain/checks.js.map +1 -0
  48. package/node_modules/@pome-sh/twin-github/dist/src/domain/git.d.ts +567 -0
  49. package/node_modules/@pome-sh/twin-github/dist/src/domain/git.js +198 -0
  50. package/node_modules/@pome-sh/twin-github/dist/src/domain/git.js.map +1 -0
  51. package/node_modules/@pome-sh/twin-github/dist/src/{domain.d.ts → domain/github-domain.d.ts} +340 -71
  52. package/node_modules/@pome-sh/twin-github/dist/src/domain/github-domain.js +794 -0
  53. package/node_modules/@pome-sh/twin-github/dist/src/domain/github-domain.js.map +1 -0
  54. package/node_modules/@pome-sh/twin-github/dist/src/domain/helpers.d.ts +5 -0
  55. package/node_modules/@pome-sh/twin-github/dist/src/domain/helpers.js +15 -0
  56. package/node_modules/@pome-sh/twin-github/dist/src/domain/helpers.js.map +1 -0
  57. package/node_modules/@pome-sh/twin-github/dist/src/domain/index.d.ts +2 -0
  58. package/node_modules/@pome-sh/twin-github/dist/src/domain/index.js +5 -0
  59. package/node_modules/@pome-sh/twin-github/dist/src/domain/index.js.map +1 -0
  60. package/node_modules/@pome-sh/twin-github/dist/src/domain/issues.d.ts +545 -0
  61. package/node_modules/@pome-sh/twin-github/dist/src/domain/issues.js +272 -0
  62. package/node_modules/@pome-sh/twin-github/dist/src/domain/issues.js.map +1 -0
  63. package/node_modules/@pome-sh/twin-github/dist/src/domain/pulls.d.ts +816 -0
  64. package/node_modules/@pome-sh/twin-github/dist/src/domain/pulls.js +256 -0
  65. package/node_modules/@pome-sh/twin-github/dist/src/domain/pulls.js.map +1 -0
  66. package/node_modules/@pome-sh/twin-github/dist/src/domain/releases.d.ts +160 -0
  67. package/node_modules/@pome-sh/twin-github/dist/src/domain/releases.js +63 -0
  68. package/node_modules/@pome-sh/twin-github/dist/src/domain/releases.js.map +1 -0
  69. package/node_modules/@pome-sh/twin-github/dist/src/domain/repos.d.ts +219 -0
  70. package/node_modules/@pome-sh/twin-github/dist/src/domain/repos.js +131 -0
  71. package/node_modules/@pome-sh/twin-github/dist/src/domain/repos.js.map +1 -0
  72. package/node_modules/@pome-sh/twin-github/dist/src/domain/search.d.ts +252 -0
  73. package/node_modules/@pome-sh/twin-github/dist/src/domain/search.js +83 -0
  74. package/node_modules/@pome-sh/twin-github/dist/src/domain/search.js.map +1 -0
  75. package/node_modules/@pome-sh/twin-github/dist/src/domain/types.d.ts +15 -0
  76. package/node_modules/@pome-sh/twin-github/dist/src/domain/types.js +2 -0
  77. package/node_modules/@pome-sh/twin-github/dist/src/domain/types.js.map +1 -0
  78. package/node_modules/@pome-sh/twin-github/dist/src/index.d.ts +2 -1
  79. package/node_modules/@pome-sh/twin-github/dist/src/index.js +1 -1
  80. package/node_modules/@pome-sh/twin-github/dist/src/index.js.map +1 -1
  81. package/node_modules/@pome-sh/twin-github/dist/src/routes.d.ts +1 -1
  82. package/node_modules/@pome-sh/twin-github/dist/src/seed.d.ts +1 -1
  83. package/node_modules/@pome-sh/twin-github/dist/src/serializers.d.ts +3 -3
  84. package/node_modules/@pome-sh/twin-github/dist/src/tools.d.ts +188 -188
  85. package/node_modules/@pome-sh/twin-github/dist/src/twin.d.ts +1 -1
  86. package/node_modules/@pome-sh/twin-github/dist/src/twin.js +1 -1
  87. package/node_modules/@pome-sh/twin-github/dist/src/twin.js.map +1 -1
  88. package/node_modules/@pome-sh/twin-github/package.json +4 -4
  89. package/node_modules/@pome-sh/{twin-github → twin-gmail}/node_modules/@pome-sh/sdk/package.json +2 -2
  90. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/sdk/dist/admin-gate.d.ts +35 -0
  91. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/sdk/dist/admin-gate.js +103 -0
  92. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/sdk/dist/admin-gate.js.map +1 -0
  93. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/sdk/dist/auth.d.ts +100 -0
  94. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/sdk/dist/auth.js +262 -0
  95. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/sdk/dist/auth.js.map +1 -0
  96. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/sdk/dist/build-info.d.ts +7 -0
  97. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/sdk/dist/build-info.js +14 -0
  98. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/sdk/dist/build-info.js.map +1 -0
  99. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/sdk/dist/db.d.ts +44 -0
  100. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/sdk/dist/db.js +113 -0
  101. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/sdk/dist/db.js.map +1 -0
  102. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/sdk/dist/errors.d.ts +24 -0
  103. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/sdk/dist/errors.js +61 -0
  104. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/sdk/dist/errors.js.map +1 -0
  105. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/sdk/dist/failure-injection.d.ts +43 -0
  106. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/sdk/dist/failure-injection.js +160 -0
  107. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/sdk/dist/failure-injection.js.map +1 -0
  108. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/sdk/dist/fidelity-inventory.d.ts +121 -0
  109. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/sdk/dist/fidelity-inventory.js +204 -0
  110. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/sdk/dist/fidelity-inventory.js.map +1 -0
  111. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/sdk/dist/fidelity.d.ts +8 -0
  112. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/sdk/dist/fidelity.js +39 -0
  113. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/sdk/dist/fidelity.js.map +1 -0
  114. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/sdk/dist/index.d.ts +372 -0
  115. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/sdk/dist/index.js +139 -0
  116. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/sdk/dist/index.js.map +1 -0
  117. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/sdk/dist/mcp-jsonrpc.d.ts +10 -0
  118. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/sdk/dist/mcp-jsonrpc.js +221 -0
  119. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/sdk/dist/mcp-jsonrpc.js.map +1 -0
  120. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/sdk/dist/parity.d.ts +61 -0
  121. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/sdk/dist/parity.js +123 -0
  122. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/sdk/dist/parity.js.map +1 -0
  123. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/sdk/dist/recorder.d.ts +120 -0
  124. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/sdk/dist/recorder.js +368 -0
  125. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/sdk/dist/recorder.js.map +1 -0
  126. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/sdk/dist/redaction.d.ts +1 -0
  127. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/sdk/dist/redaction.js +3 -0
  128. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/sdk/dist/redaction.js.map +1 -0
  129. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/sdk/dist/server-helpers.d.ts +54 -0
  130. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/sdk/dist/server-helpers.js +181 -0
  131. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/sdk/dist/server-helpers.js.map +1 -0
  132. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/sdk/dist/server.d.ts +46 -0
  133. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/sdk/dist/server.js +394 -0
  134. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/sdk/dist/server.js.map +1 -0
  135. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/sdk/dist/tool-context.d.ts +8 -0
  136. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/sdk/dist/tool-context.js +22 -0
  137. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/sdk/dist/tool-context.js.map +1 -0
  138. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/sdk/package.json +54 -0
  139. package/node_modules/@pome-sh/{twin-github → twin-linear}/node_modules/@pome-sh/shared-types/dist/index.d.ts +1 -0
  140. package/node_modules/@pome-sh/{twin-github → twin-linear}/node_modules/@pome-sh/shared-types/dist/index.js +1 -0
  141. package/node_modules/@pome-sh/{twin-github → twin-linear}/node_modules/@pome-sh/shared-types/dist/index.js.map +1 -1
  142. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/shared-types/dist/manifest.d.ts +31 -0
  143. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/shared-types/dist/manifest.js +76 -0
  144. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/shared-types/dist/manifest.js.map +1 -0
  145. package/node_modules/@pome-sh/{twin-github → twin-linear}/node_modules/@pome-sh/shared-types/dist/rest.d.ts +9 -0
  146. package/node_modules/@pome-sh/{twin-github → twin-linear}/node_modules/@pome-sh/shared-types/dist/rest.js +27 -0
  147. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/shared-types/dist/rest.js.map +1 -0
  148. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/shared-types/manifest-schema.json +68 -0
  149. package/node_modules/@pome-sh/{twin-github → twin-linear}/node_modules/@pome-sh/shared-types/package.json +2 -1
  150. package/node_modules/@pome-sh/{twin-github → twin-linear}/node_modules/@pome-sh/shared-types/trace-contract.json +1 -1
  151. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/admin-gate.d.ts +35 -0
  152. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/admin-gate.js +103 -0
  153. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/admin-gate.js.map +1 -0
  154. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/auth.d.ts +100 -0
  155. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/auth.js +262 -0
  156. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/auth.js.map +1 -0
  157. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/build-info.d.ts +7 -0
  158. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/build-info.js +14 -0
  159. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/build-info.js.map +1 -0
  160. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/db.d.ts +44 -0
  161. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/db.js +113 -0
  162. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/db.js.map +1 -0
  163. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/errors.d.ts +24 -0
  164. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/errors.js +61 -0
  165. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/errors.js.map +1 -0
  166. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/failure-injection.d.ts +43 -0
  167. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/failure-injection.js +160 -0
  168. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/failure-injection.js.map +1 -0
  169. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/fidelity-inventory.d.ts +121 -0
  170. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/fidelity-inventory.js +204 -0
  171. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/fidelity-inventory.js.map +1 -0
  172. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/fidelity.d.ts +8 -0
  173. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/fidelity.js +39 -0
  174. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/fidelity.js.map +1 -0
  175. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/index.d.ts +372 -0
  176. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/index.js +139 -0
  177. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/index.js.map +1 -0
  178. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/mcp-jsonrpc.d.ts +10 -0
  179. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/mcp-jsonrpc.js +221 -0
  180. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/mcp-jsonrpc.js.map +1 -0
  181. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/parity.d.ts +61 -0
  182. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/parity.js +123 -0
  183. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/parity.js.map +1 -0
  184. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/recorder.d.ts +120 -0
  185. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/recorder.js +368 -0
  186. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/recorder.js.map +1 -0
  187. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/redaction.d.ts +1 -0
  188. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/redaction.js +3 -0
  189. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/redaction.js.map +1 -0
  190. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/server-helpers.d.ts +54 -0
  191. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/server-helpers.js +181 -0
  192. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/server-helpers.js.map +1 -0
  193. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/server.d.ts +46 -0
  194. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/server.js +394 -0
  195. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/server.js.map +1 -0
  196. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/tool-context.d.ts +8 -0
  197. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/tool-context.js +22 -0
  198. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/tool-context.js.map +1 -0
  199. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/package.json +54 -0
  200. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/admin-gate.d.ts +35 -0
  201. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/admin-gate.js +103 -0
  202. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/admin-gate.js.map +1 -0
  203. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/auth.d.ts +100 -0
  204. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/auth.js +262 -0
  205. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/auth.js.map +1 -0
  206. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/build-info.d.ts +7 -0
  207. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/build-info.js +14 -0
  208. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/build-info.js.map +1 -0
  209. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/db.d.ts +44 -0
  210. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/db.js +113 -0
  211. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/db.js.map +1 -0
  212. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/errors.d.ts +24 -0
  213. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/errors.js +61 -0
  214. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/errors.js.map +1 -0
  215. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/failure-injection.d.ts +43 -0
  216. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/failure-injection.js +160 -0
  217. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/failure-injection.js.map +1 -0
  218. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/fidelity-inventory.d.ts +121 -0
  219. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/fidelity-inventory.js +204 -0
  220. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/fidelity-inventory.js.map +1 -0
  221. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/fidelity.d.ts +8 -0
  222. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/fidelity.js +39 -0
  223. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/fidelity.js.map +1 -0
  224. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/index.d.ts +372 -0
  225. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/index.js +139 -0
  226. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/index.js.map +1 -0
  227. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/mcp-jsonrpc.d.ts +10 -0
  228. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/mcp-jsonrpc.js +221 -0
  229. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/mcp-jsonrpc.js.map +1 -0
  230. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/parity.d.ts +61 -0
  231. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/parity.js +123 -0
  232. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/parity.js.map +1 -0
  233. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/recorder.d.ts +120 -0
  234. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/recorder.js +368 -0
  235. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/recorder.js.map +1 -0
  236. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/redaction.d.ts +1 -0
  237. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/redaction.js +3 -0
  238. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/redaction.js.map +1 -0
  239. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/server-helpers.d.ts +54 -0
  240. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/server-helpers.js +181 -0
  241. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/server-helpers.js.map +1 -0
  242. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/server.d.ts +46 -0
  243. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/server.js +394 -0
  244. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/server.js.map +1 -0
  245. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/tool-context.d.ts +8 -0
  246. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/tool-context.js +22 -0
  247. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/tool-context.js.map +1 -0
  248. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/package.json +54 -0
  249. package/package.json +3 -3
  250. package/tasks/00-default-seed.md +1 -1
  251. package/tasks/01-bug-happy-path.md +1 -1
  252. package/tasks/03-already-triaged.md +1 -1
  253. package/tasks/06-mislabeled-needs-fix.md +1 -1
  254. package/tasks/17-in-scope-injection.md +1 -1
  255. package/node_modules/@pome-sh/twin-github/dist/src/domain.js +0 -0
  256. package/node_modules/@pome-sh/twin-github/dist/src/domain.js.map +0 -1
  257. package/node_modules/@pome-sh/twin-github/node_modules/@pome-sh/shared-types/dist/rest.js.map +0 -1
  258. /package/node_modules/@pome-sh/{twin-github → twin-gmail}/node_modules/@pome-sh/sdk/dist/admin-gate.d.ts +0 -0
  259. /package/node_modules/@pome-sh/{twin-github → twin-gmail}/node_modules/@pome-sh/sdk/dist/admin-gate.js +0 -0
  260. /package/node_modules/@pome-sh/{twin-github → twin-gmail}/node_modules/@pome-sh/sdk/dist/admin-gate.js.map +0 -0
  261. /package/node_modules/@pome-sh/{twin-github → twin-gmail}/node_modules/@pome-sh/sdk/dist/auth.d.ts +0 -0
  262. /package/node_modules/@pome-sh/{twin-github → twin-gmail}/node_modules/@pome-sh/sdk/dist/auth.js +0 -0
  263. /package/node_modules/@pome-sh/{twin-github → twin-gmail}/node_modules/@pome-sh/sdk/dist/auth.js.map +0 -0
  264. /package/node_modules/@pome-sh/{twin-github → twin-gmail}/node_modules/@pome-sh/sdk/dist/build-info.d.ts +0 -0
  265. /package/node_modules/@pome-sh/{twin-github → twin-gmail}/node_modules/@pome-sh/sdk/dist/build-info.js +0 -0
  266. /package/node_modules/@pome-sh/{twin-github → twin-gmail}/node_modules/@pome-sh/sdk/dist/build-info.js.map +0 -0
  267. /package/node_modules/@pome-sh/{twin-github → twin-gmail}/node_modules/@pome-sh/sdk/dist/db.d.ts +0 -0
  268. /package/node_modules/@pome-sh/{twin-github → twin-gmail}/node_modules/@pome-sh/sdk/dist/db.js +0 -0
  269. /package/node_modules/@pome-sh/{twin-github → twin-gmail}/node_modules/@pome-sh/sdk/dist/db.js.map +0 -0
  270. /package/node_modules/@pome-sh/{twin-github → twin-gmail}/node_modules/@pome-sh/sdk/dist/errors.d.ts +0 -0
  271. /package/node_modules/@pome-sh/{twin-github → twin-gmail}/node_modules/@pome-sh/sdk/dist/errors.js +0 -0
  272. /package/node_modules/@pome-sh/{twin-github → twin-gmail}/node_modules/@pome-sh/sdk/dist/errors.js.map +0 -0
  273. /package/node_modules/@pome-sh/{twin-github → twin-gmail}/node_modules/@pome-sh/sdk/dist/failure-injection.d.ts +0 -0
  274. /package/node_modules/@pome-sh/{twin-github → twin-gmail}/node_modules/@pome-sh/sdk/dist/failure-injection.js +0 -0
  275. /package/node_modules/@pome-sh/{twin-github → twin-gmail}/node_modules/@pome-sh/sdk/dist/failure-injection.js.map +0 -0
  276. /package/node_modules/@pome-sh/{twin-github → twin-gmail}/node_modules/@pome-sh/sdk/dist/fidelity-inventory.d.ts +0 -0
  277. /package/node_modules/@pome-sh/{twin-github → twin-gmail}/node_modules/@pome-sh/sdk/dist/fidelity-inventory.js +0 -0
  278. /package/node_modules/@pome-sh/{twin-github → twin-gmail}/node_modules/@pome-sh/sdk/dist/fidelity-inventory.js.map +0 -0
  279. /package/node_modules/@pome-sh/{twin-github → twin-gmail}/node_modules/@pome-sh/sdk/dist/fidelity.d.ts +0 -0
  280. /package/node_modules/@pome-sh/{twin-github → twin-gmail}/node_modules/@pome-sh/sdk/dist/fidelity.js +0 -0
  281. /package/node_modules/@pome-sh/{twin-github → twin-gmail}/node_modules/@pome-sh/sdk/dist/fidelity.js.map +0 -0
  282. /package/node_modules/@pome-sh/{twin-github → twin-gmail}/node_modules/@pome-sh/sdk/dist/index.d.ts +0 -0
  283. /package/node_modules/@pome-sh/{twin-github → twin-gmail}/node_modules/@pome-sh/sdk/dist/index.js +0 -0
  284. /package/node_modules/@pome-sh/{twin-github → twin-gmail}/node_modules/@pome-sh/sdk/dist/index.js.map +0 -0
  285. /package/node_modules/@pome-sh/{twin-github → twin-gmail}/node_modules/@pome-sh/sdk/dist/mcp-jsonrpc.d.ts +0 -0
  286. /package/node_modules/@pome-sh/{twin-github → twin-gmail}/node_modules/@pome-sh/sdk/dist/mcp-jsonrpc.js +0 -0
  287. /package/node_modules/@pome-sh/{twin-github → twin-gmail}/node_modules/@pome-sh/sdk/dist/mcp-jsonrpc.js.map +0 -0
  288. /package/node_modules/@pome-sh/{twin-github → twin-gmail}/node_modules/@pome-sh/sdk/dist/parity.d.ts +0 -0
  289. /package/node_modules/@pome-sh/{twin-github → twin-gmail}/node_modules/@pome-sh/sdk/dist/parity.js +0 -0
  290. /package/node_modules/@pome-sh/{twin-github → twin-gmail}/node_modules/@pome-sh/sdk/dist/parity.js.map +0 -0
  291. /package/node_modules/@pome-sh/{twin-github → twin-gmail}/node_modules/@pome-sh/sdk/dist/recorder.d.ts +0 -0
  292. /package/node_modules/@pome-sh/{twin-github → twin-gmail}/node_modules/@pome-sh/sdk/dist/recorder.js +0 -0
  293. /package/node_modules/@pome-sh/{twin-github → twin-gmail}/node_modules/@pome-sh/sdk/dist/recorder.js.map +0 -0
  294. /package/node_modules/@pome-sh/{twin-github → twin-gmail}/node_modules/@pome-sh/sdk/dist/redaction.d.ts +0 -0
  295. /package/node_modules/@pome-sh/{twin-github → twin-gmail}/node_modules/@pome-sh/sdk/dist/redaction.js +0 -0
  296. /package/node_modules/@pome-sh/{twin-github → twin-gmail}/node_modules/@pome-sh/sdk/dist/redaction.js.map +0 -0
  297. /package/node_modules/@pome-sh/{twin-github → twin-gmail}/node_modules/@pome-sh/sdk/dist/server-helpers.d.ts +0 -0
  298. /package/node_modules/@pome-sh/{twin-github → twin-gmail}/node_modules/@pome-sh/sdk/dist/server-helpers.js +0 -0
  299. /package/node_modules/@pome-sh/{twin-github → twin-gmail}/node_modules/@pome-sh/sdk/dist/server-helpers.js.map +0 -0
  300. /package/node_modules/@pome-sh/{twin-github → twin-gmail}/node_modules/@pome-sh/sdk/dist/server.d.ts +0 -0
  301. /package/node_modules/@pome-sh/{twin-github → twin-gmail}/node_modules/@pome-sh/sdk/dist/server.js +0 -0
  302. /package/node_modules/@pome-sh/{twin-github → twin-gmail}/node_modules/@pome-sh/sdk/dist/server.js.map +0 -0
  303. /package/node_modules/@pome-sh/{twin-github → twin-gmail}/node_modules/@pome-sh/sdk/dist/tool-context.d.ts +0 -0
  304. /package/node_modules/@pome-sh/{twin-github → twin-gmail}/node_modules/@pome-sh/sdk/dist/tool-context.js +0 -0
  305. /package/node_modules/@pome-sh/{twin-github → twin-gmail}/node_modules/@pome-sh/sdk/dist/tool-context.js.map +0 -0
  306. /package/node_modules/@pome-sh/{sdk → twin-gmail}/node_modules/@pome-sh/shared-types/dist/errors.d.ts +0 -0
  307. /package/node_modules/@pome-sh/{sdk → twin-gmail}/node_modules/@pome-sh/shared-types/dist/errors.js +0 -0
  308. /package/node_modules/@pome-sh/{sdk → twin-gmail}/node_modules/@pome-sh/shared-types/dist/errors.js.map +0 -0
  309. /package/node_modules/@pome-sh/{sdk → twin-gmail}/node_modules/@pome-sh/shared-types/dist/finalize-shapes.d.ts +0 -0
  310. /package/node_modules/@pome-sh/{sdk → twin-gmail}/node_modules/@pome-sh/shared-types/dist/finalize-shapes.js +0 -0
  311. /package/node_modules/@pome-sh/{sdk → twin-gmail}/node_modules/@pome-sh/shared-types/dist/finalize-shapes.js.map +0 -0
  312. /package/node_modules/@pome-sh/{sdk → twin-gmail}/node_modules/@pome-sh/shared-types/dist/github-access-control.d.ts +0 -0
  313. /package/node_modules/@pome-sh/{sdk → twin-gmail}/node_modules/@pome-sh/shared-types/dist/github-access-control.js +0 -0
  314. /package/node_modules/@pome-sh/{sdk → twin-gmail}/node_modules/@pome-sh/shared-types/dist/github-access-control.js.map +0 -0
  315. /package/node_modules/@pome-sh/{sdk → twin-gmail}/node_modules/@pome-sh/shared-types/dist/identity.d.ts +0 -0
  316. /package/node_modules/@pome-sh/{sdk → twin-gmail}/node_modules/@pome-sh/shared-types/dist/identity.js +0 -0
  317. /package/node_modules/@pome-sh/{sdk → twin-gmail}/node_modules/@pome-sh/shared-types/dist/identity.js.map +0 -0
  318. /package/node_modules/@pome-sh/{sdk → twin-gmail}/node_modules/@pome-sh/shared-types/dist/index.d.ts +0 -0
  319. /package/node_modules/@pome-sh/{sdk → twin-gmail}/node_modules/@pome-sh/shared-types/dist/index.js +0 -0
  320. /package/node_modules/@pome-sh/{sdk → twin-gmail}/node_modules/@pome-sh/shared-types/dist/index.js.map +0 -0
  321. /package/node_modules/@pome-sh/{sdk → twin-gmail}/node_modules/@pome-sh/shared-types/dist/manifest.d.ts +0 -0
  322. /package/node_modules/@pome-sh/{sdk → twin-gmail}/node_modules/@pome-sh/shared-types/dist/manifest.js +0 -0
  323. /package/node_modules/@pome-sh/{sdk → twin-gmail}/node_modules/@pome-sh/shared-types/dist/manifest.js.map +0 -0
  324. /package/node_modules/@pome-sh/{sdk → twin-gmail}/node_modules/@pome-sh/shared-types/dist/otel/event-schema.d.ts +0 -0
  325. /package/node_modules/@pome-sh/{sdk → twin-gmail}/node_modules/@pome-sh/shared-types/dist/otel/event-schema.js +0 -0
  326. /package/node_modules/@pome-sh/{sdk → twin-gmail}/node_modules/@pome-sh/shared-types/dist/otel/event-schema.js.map +0 -0
  327. /package/node_modules/@pome-sh/{sdk → twin-gmail}/node_modules/@pome-sh/shared-types/dist/otel/fixtures/data.d.ts +0 -0
  328. /package/node_modules/@pome-sh/{sdk → twin-gmail}/node_modules/@pome-sh/shared-types/dist/otel/fixtures/data.js +0 -0
  329. /package/node_modules/@pome-sh/{sdk → twin-gmail}/node_modules/@pome-sh/shared-types/dist/otel/fixtures/data.js.map +0 -0
  330. /package/node_modules/@pome-sh/{sdk → twin-gmail}/node_modules/@pome-sh/shared-types/dist/otel/fixtures/index.d.ts +0 -0
  331. /package/node_modules/@pome-sh/{sdk → twin-gmail}/node_modules/@pome-sh/shared-types/dist/otel/fixtures/index.js +0 -0
  332. /package/node_modules/@pome-sh/{sdk → twin-gmail}/node_modules/@pome-sh/shared-types/dist/otel/fixtures/index.js.map +0 -0
  333. /package/node_modules/@pome-sh/{sdk → twin-gmail}/node_modules/@pome-sh/shared-types/dist/otel/index.d.ts +0 -0
  334. /package/node_modules/@pome-sh/{sdk → twin-gmail}/node_modules/@pome-sh/shared-types/dist/otel/index.js +0 -0
  335. /package/node_modules/@pome-sh/{sdk → twin-gmail}/node_modules/@pome-sh/shared-types/dist/otel/index.js.map +0 -0
  336. /package/node_modules/@pome-sh/{sdk → twin-gmail}/node_modules/@pome-sh/shared-types/dist/otel/legacy-shim.d.ts +0 -0
  337. /package/node_modules/@pome-sh/{sdk → twin-gmail}/node_modules/@pome-sh/shared-types/dist/otel/legacy-shim.js +0 -0
  338. /package/node_modules/@pome-sh/{sdk → twin-gmail}/node_modules/@pome-sh/shared-types/dist/otel/legacy-shim.js.map +0 -0
  339. /package/node_modules/@pome-sh/{sdk → twin-gmail}/node_modules/@pome-sh/shared-types/dist/otel/map-span.d.ts +0 -0
  340. /package/node_modules/@pome-sh/{sdk → twin-gmail}/node_modules/@pome-sh/shared-types/dist/otel/map-span.js +0 -0
  341. /package/node_modules/@pome-sh/{sdk → twin-gmail}/node_modules/@pome-sh/shared-types/dist/otel/map-span.js.map +0 -0
  342. /package/node_modules/@pome-sh/{sdk → twin-gmail}/node_modules/@pome-sh/shared-types/dist/otel/nano.d.ts +0 -0
  343. /package/node_modules/@pome-sh/{sdk → twin-gmail}/node_modules/@pome-sh/shared-types/dist/otel/nano.js +0 -0
  344. /package/node_modules/@pome-sh/{sdk → twin-gmail}/node_modules/@pome-sh/shared-types/dist/otel/nano.js.map +0 -0
  345. /package/node_modules/@pome-sh/{sdk → twin-gmail}/node_modules/@pome-sh/shared-types/dist/otel/project.d.ts +0 -0
  346. /package/node_modules/@pome-sh/{sdk → twin-gmail}/node_modules/@pome-sh/shared-types/dist/otel/project.js +0 -0
  347. /package/node_modules/@pome-sh/{sdk → twin-gmail}/node_modules/@pome-sh/shared-types/dist/otel/project.js.map +0 -0
  348. /package/node_modules/@pome-sh/{sdk → twin-gmail}/node_modules/@pome-sh/shared-types/dist/otel/semconv.d.ts +0 -0
  349. /package/node_modules/@pome-sh/{sdk → twin-gmail}/node_modules/@pome-sh/shared-types/dist/otel/semconv.js +0 -0
  350. /package/node_modules/@pome-sh/{sdk → twin-gmail}/node_modules/@pome-sh/shared-types/dist/otel/semconv.js.map +0 -0
  351. /package/node_modules/@pome-sh/{sdk → twin-gmail}/node_modules/@pome-sh/shared-types/dist/otel/span-event.d.ts +0 -0
  352. /package/node_modules/@pome-sh/{sdk → twin-gmail}/node_modules/@pome-sh/shared-types/dist/otel/span-event.js +0 -0
  353. /package/node_modules/@pome-sh/{sdk → twin-gmail}/node_modules/@pome-sh/shared-types/dist/otel/span-event.js.map +0 -0
  354. /package/node_modules/@pome-sh/{sdk → twin-gmail}/node_modules/@pome-sh/shared-types/dist/recorder-events.d.ts +0 -0
  355. /package/node_modules/@pome-sh/{sdk → twin-gmail}/node_modules/@pome-sh/shared-types/dist/recorder-events.js +0 -0
  356. /package/node_modules/@pome-sh/{sdk → twin-gmail}/node_modules/@pome-sh/shared-types/dist/recorder-events.js.map +0 -0
  357. /package/node_modules/@pome-sh/{sdk → twin-gmail}/node_modules/@pome-sh/shared-types/dist/redaction.d.ts +0 -0
  358. /package/node_modules/@pome-sh/{sdk → twin-gmail}/node_modules/@pome-sh/shared-types/dist/redaction.js +0 -0
  359. /package/node_modules/@pome-sh/{sdk → twin-gmail}/node_modules/@pome-sh/shared-types/dist/redaction.js.map +0 -0
  360. /package/node_modules/@pome-sh/{sdk → twin-gmail}/node_modules/@pome-sh/shared-types/dist/rest.d.ts +0 -0
  361. /package/node_modules/@pome-sh/{sdk → twin-gmail}/node_modules/@pome-sh/shared-types/dist/rest.js +0 -0
  362. /package/node_modules/@pome-sh/{sdk → twin-gmail}/node_modules/@pome-sh/shared-types/dist/rest.js.map +0 -0
  363. /package/node_modules/@pome-sh/{sdk → twin-gmail}/node_modules/@pome-sh/shared-types/dist/run.d.ts +0 -0
  364. /package/node_modules/@pome-sh/{sdk → twin-gmail}/node_modules/@pome-sh/shared-types/dist/run.js +0 -0
  365. /package/node_modules/@pome-sh/{sdk → twin-gmail}/node_modules/@pome-sh/shared-types/dist/run.js.map +0 -0
  366. /package/node_modules/@pome-sh/{sdk → twin-gmail}/node_modules/@pome-sh/shared-types/dist/seed-envelope.d.ts +0 -0
  367. /package/node_modules/@pome-sh/{sdk → twin-gmail}/node_modules/@pome-sh/shared-types/dist/seed-envelope.js +0 -0
  368. /package/node_modules/@pome-sh/{sdk → twin-gmail}/node_modules/@pome-sh/shared-types/dist/seed-envelope.js.map +0 -0
  369. /package/node_modules/@pome-sh/{sdk → twin-gmail}/node_modules/@pome-sh/shared-types/dist/seed-state.d.ts +0 -0
  370. /package/node_modules/@pome-sh/{sdk → twin-gmail}/node_modules/@pome-sh/shared-types/dist/seed-state.js +0 -0
  371. /package/node_modules/@pome-sh/{sdk → twin-gmail}/node_modules/@pome-sh/shared-types/dist/seed-state.js.map +0 -0
  372. /package/node_modules/@pome-sh/{sdk → twin-gmail}/node_modules/@pome-sh/shared-types/dist/sessions.d.ts +0 -0
  373. /package/node_modules/@pome-sh/{sdk → twin-gmail}/node_modules/@pome-sh/shared-types/dist/sessions.js +0 -0
  374. /package/node_modules/@pome-sh/{sdk → twin-gmail}/node_modules/@pome-sh/shared-types/dist/sessions.js.map +0 -0
  375. /package/node_modules/@pome-sh/{sdk → twin-gmail}/node_modules/@pome-sh/shared-types/dist/task-vocab.d.ts +0 -0
  376. /package/node_modules/@pome-sh/{sdk → twin-gmail}/node_modules/@pome-sh/shared-types/dist/task-vocab.js +0 -0
  377. /package/node_modules/@pome-sh/{sdk → twin-gmail}/node_modules/@pome-sh/shared-types/dist/task-vocab.js.map +0 -0
  378. /package/node_modules/@pome-sh/{sdk → twin-gmail}/node_modules/@pome-sh/shared-types/dist/task.d.ts +0 -0
  379. /package/node_modules/@pome-sh/{sdk → twin-gmail}/node_modules/@pome-sh/shared-types/dist/task.js +0 -0
  380. /package/node_modules/@pome-sh/{sdk → twin-gmail}/node_modules/@pome-sh/shared-types/dist/task.js.map +0 -0
  381. /package/node_modules/@pome-sh/{sdk → twin-gmail}/node_modules/@pome-sh/shared-types/manifest-schema.json +0 -0
  382. /package/node_modules/@pome-sh/{sdk → twin-gmail}/node_modules/@pome-sh/shared-types/package.json +0 -0
  383. /package/node_modules/@pome-sh/{sdk → twin-gmail}/node_modules/@pome-sh/shared-types/trace-contract.json +0 -0
  384. /package/node_modules/@pome-sh/{twin-github → twin-linear}/node_modules/@pome-sh/shared-types/dist/errors.d.ts +0 -0
  385. /package/node_modules/@pome-sh/{twin-github → twin-linear}/node_modules/@pome-sh/shared-types/dist/errors.js +0 -0
  386. /package/node_modules/@pome-sh/{twin-github → twin-linear}/node_modules/@pome-sh/shared-types/dist/errors.js.map +0 -0
  387. /package/node_modules/@pome-sh/{twin-github → twin-linear}/node_modules/@pome-sh/shared-types/dist/finalize-shapes.d.ts +0 -0
  388. /package/node_modules/@pome-sh/{twin-github → twin-linear}/node_modules/@pome-sh/shared-types/dist/finalize-shapes.js +0 -0
  389. /package/node_modules/@pome-sh/{twin-github → twin-linear}/node_modules/@pome-sh/shared-types/dist/finalize-shapes.js.map +0 -0
  390. /package/node_modules/@pome-sh/{twin-github → twin-linear}/node_modules/@pome-sh/shared-types/dist/github-access-control.d.ts +0 -0
  391. /package/node_modules/@pome-sh/{twin-github → twin-linear}/node_modules/@pome-sh/shared-types/dist/github-access-control.js +0 -0
  392. /package/node_modules/@pome-sh/{twin-github → twin-linear}/node_modules/@pome-sh/shared-types/dist/github-access-control.js.map +0 -0
  393. /package/node_modules/@pome-sh/{twin-github → twin-linear}/node_modules/@pome-sh/shared-types/dist/identity.d.ts +0 -0
  394. /package/node_modules/@pome-sh/{twin-github → twin-linear}/node_modules/@pome-sh/shared-types/dist/identity.js +0 -0
  395. /package/node_modules/@pome-sh/{twin-github → twin-linear}/node_modules/@pome-sh/shared-types/dist/identity.js.map +0 -0
  396. /package/node_modules/@pome-sh/{twin-github → twin-linear}/node_modules/@pome-sh/shared-types/dist/otel/event-schema.d.ts +0 -0
  397. /package/node_modules/@pome-sh/{twin-github → twin-linear}/node_modules/@pome-sh/shared-types/dist/otel/event-schema.js +0 -0
  398. /package/node_modules/@pome-sh/{twin-github → twin-linear}/node_modules/@pome-sh/shared-types/dist/otel/event-schema.js.map +0 -0
  399. /package/node_modules/@pome-sh/{twin-github → twin-linear}/node_modules/@pome-sh/shared-types/dist/otel/fixtures/data.d.ts +0 -0
  400. /package/node_modules/@pome-sh/{twin-github → twin-linear}/node_modules/@pome-sh/shared-types/dist/otel/fixtures/data.js +0 -0
  401. /package/node_modules/@pome-sh/{twin-github → twin-linear}/node_modules/@pome-sh/shared-types/dist/otel/fixtures/data.js.map +0 -0
  402. /package/node_modules/@pome-sh/{twin-github → twin-linear}/node_modules/@pome-sh/shared-types/dist/otel/fixtures/index.d.ts +0 -0
  403. /package/node_modules/@pome-sh/{twin-github → twin-linear}/node_modules/@pome-sh/shared-types/dist/otel/fixtures/index.js +0 -0
  404. /package/node_modules/@pome-sh/{twin-github → twin-linear}/node_modules/@pome-sh/shared-types/dist/otel/fixtures/index.js.map +0 -0
  405. /package/node_modules/@pome-sh/{twin-github → twin-linear}/node_modules/@pome-sh/shared-types/dist/otel/index.d.ts +0 -0
  406. /package/node_modules/@pome-sh/{twin-github → twin-linear}/node_modules/@pome-sh/shared-types/dist/otel/index.js +0 -0
  407. /package/node_modules/@pome-sh/{twin-github → twin-linear}/node_modules/@pome-sh/shared-types/dist/otel/index.js.map +0 -0
  408. /package/node_modules/@pome-sh/{twin-github → twin-linear}/node_modules/@pome-sh/shared-types/dist/otel/legacy-shim.d.ts +0 -0
  409. /package/node_modules/@pome-sh/{twin-github → twin-linear}/node_modules/@pome-sh/shared-types/dist/otel/legacy-shim.js +0 -0
  410. /package/node_modules/@pome-sh/{twin-github → twin-linear}/node_modules/@pome-sh/shared-types/dist/otel/legacy-shim.js.map +0 -0
  411. /package/node_modules/@pome-sh/{twin-github → twin-linear}/node_modules/@pome-sh/shared-types/dist/otel/map-span.d.ts +0 -0
  412. /package/node_modules/@pome-sh/{twin-github → twin-linear}/node_modules/@pome-sh/shared-types/dist/otel/map-span.js +0 -0
  413. /package/node_modules/@pome-sh/{twin-github → twin-linear}/node_modules/@pome-sh/shared-types/dist/otel/map-span.js.map +0 -0
  414. /package/node_modules/@pome-sh/{twin-github → twin-linear}/node_modules/@pome-sh/shared-types/dist/otel/nano.d.ts +0 -0
  415. /package/node_modules/@pome-sh/{twin-github → twin-linear}/node_modules/@pome-sh/shared-types/dist/otel/nano.js +0 -0
  416. /package/node_modules/@pome-sh/{twin-github → twin-linear}/node_modules/@pome-sh/shared-types/dist/otel/nano.js.map +0 -0
  417. /package/node_modules/@pome-sh/{twin-github → twin-linear}/node_modules/@pome-sh/shared-types/dist/otel/project.d.ts +0 -0
  418. /package/node_modules/@pome-sh/{twin-github → twin-linear}/node_modules/@pome-sh/shared-types/dist/otel/project.js +0 -0
  419. /package/node_modules/@pome-sh/{twin-github → twin-linear}/node_modules/@pome-sh/shared-types/dist/otel/project.js.map +0 -0
  420. /package/node_modules/@pome-sh/{twin-github → twin-linear}/node_modules/@pome-sh/shared-types/dist/otel/semconv.d.ts +0 -0
  421. /package/node_modules/@pome-sh/{twin-github → twin-linear}/node_modules/@pome-sh/shared-types/dist/otel/semconv.js +0 -0
  422. /package/node_modules/@pome-sh/{twin-github → twin-linear}/node_modules/@pome-sh/shared-types/dist/otel/semconv.js.map +0 -0
  423. /package/node_modules/@pome-sh/{twin-github → twin-linear}/node_modules/@pome-sh/shared-types/dist/otel/span-event.d.ts +0 -0
  424. /package/node_modules/@pome-sh/{twin-github → twin-linear}/node_modules/@pome-sh/shared-types/dist/otel/span-event.js +0 -0
  425. /package/node_modules/@pome-sh/{twin-github → twin-linear}/node_modules/@pome-sh/shared-types/dist/otel/span-event.js.map +0 -0
  426. /package/node_modules/@pome-sh/{twin-github → twin-linear}/node_modules/@pome-sh/shared-types/dist/recorder-events.d.ts +0 -0
  427. /package/node_modules/@pome-sh/{twin-github → twin-linear}/node_modules/@pome-sh/shared-types/dist/recorder-events.js +0 -0
  428. /package/node_modules/@pome-sh/{twin-github → twin-linear}/node_modules/@pome-sh/shared-types/dist/recorder-events.js.map +0 -0
  429. /package/node_modules/@pome-sh/{twin-github → twin-linear}/node_modules/@pome-sh/shared-types/dist/redaction.d.ts +0 -0
  430. /package/node_modules/@pome-sh/{twin-github → twin-linear}/node_modules/@pome-sh/shared-types/dist/redaction.js +0 -0
  431. /package/node_modules/@pome-sh/{twin-github → twin-linear}/node_modules/@pome-sh/shared-types/dist/redaction.js.map +0 -0
  432. /package/node_modules/@pome-sh/{twin-github → twin-linear}/node_modules/@pome-sh/shared-types/dist/run.d.ts +0 -0
  433. /package/node_modules/@pome-sh/{twin-github → twin-linear}/node_modules/@pome-sh/shared-types/dist/run.js +0 -0
  434. /package/node_modules/@pome-sh/{twin-github → twin-linear}/node_modules/@pome-sh/shared-types/dist/run.js.map +0 -0
  435. /package/node_modules/@pome-sh/{twin-github → twin-linear}/node_modules/@pome-sh/shared-types/dist/seed-envelope.d.ts +0 -0
  436. /package/node_modules/@pome-sh/{twin-github → twin-linear}/node_modules/@pome-sh/shared-types/dist/seed-envelope.js +0 -0
  437. /package/node_modules/@pome-sh/{twin-github → twin-linear}/node_modules/@pome-sh/shared-types/dist/seed-envelope.js.map +0 -0
  438. /package/node_modules/@pome-sh/{twin-github → twin-linear}/node_modules/@pome-sh/shared-types/dist/seed-state.d.ts +0 -0
  439. /package/node_modules/@pome-sh/{twin-github → twin-linear}/node_modules/@pome-sh/shared-types/dist/seed-state.js +0 -0
  440. /package/node_modules/@pome-sh/{twin-github → twin-linear}/node_modules/@pome-sh/shared-types/dist/seed-state.js.map +0 -0
  441. /package/node_modules/@pome-sh/{twin-github → twin-linear}/node_modules/@pome-sh/shared-types/dist/sessions.d.ts +0 -0
  442. /package/node_modules/@pome-sh/{twin-github → twin-linear}/node_modules/@pome-sh/shared-types/dist/sessions.js +0 -0
  443. /package/node_modules/@pome-sh/{twin-github → twin-linear}/node_modules/@pome-sh/shared-types/dist/sessions.js.map +0 -0
  444. /package/node_modules/@pome-sh/{twin-github → twin-linear}/node_modules/@pome-sh/shared-types/dist/task-vocab.d.ts +0 -0
  445. /package/node_modules/@pome-sh/{twin-github → twin-linear}/node_modules/@pome-sh/shared-types/dist/task-vocab.js +0 -0
  446. /package/node_modules/@pome-sh/{twin-github → twin-linear}/node_modules/@pome-sh/shared-types/dist/task-vocab.js.map +0 -0
  447. /package/node_modules/@pome-sh/{twin-github → twin-linear}/node_modules/@pome-sh/shared-types/dist/task.d.ts +0 -0
  448. /package/node_modules/@pome-sh/{twin-github → twin-linear}/node_modules/@pome-sh/shared-types/dist/task.js +0 -0
  449. /package/node_modules/@pome-sh/{twin-github → twin-linear}/node_modules/@pome-sh/shared-types/dist/task.js.map +0 -0
@@ -6,9 +6,9 @@ export interface VerdictArtifact {
6
6
  /** Provenance: the only writer is the /finalize response path. */
7
7
  source: "cloud-finalize";
8
8
  task_name: string;
9
- /** The scenario path as the run invocation saw it (may move later —
10
- * readers must tolerate a dangling path). */
11
- scenario_path: string;
9
+ /** The task path as the run invocation saw it (may move later — readers
10
+ * must tolerate a dangling path). */
11
+ task_path: string;
12
12
  /** Shared trial-group id (`grp_` + nanoid21); null on single runs. */
13
13
  group_id: string | null;
14
14
  session_id: string;
@@ -37,7 +37,7 @@ export interface RunSet {
37
37
  /** null = a single run that never had a group. */
38
38
  groupId: string | null;
39
39
  taskName: string;
40
- /** The scenario path recorded at run time (first trial's). */
40
+ /** The task path recorded at run time (first trial's). */
41
41
  taskPath: string;
42
42
  /** Trials sorted by finalized_at ascending. */
43
43
  trials: TrialVerdict[];
@@ -44,7 +44,7 @@ function isVerdictArtifact(parsed) {
44
44
  return false;
45
45
  if (typeof v.task_name !== "string")
46
46
  return false;
47
- if (typeof v.scenario_path !== "string")
47
+ if (typeof v.task_path !== "string" && typeof v.scenario_path !== "string")
48
48
  return false;
49
49
  if (v.group_id !== null && typeof v.group_id !== "string")
50
50
  return false;
@@ -69,6 +69,13 @@ function isVerdictArtifact(parsed) {
69
69
  typeof result.skipped === "boolean");
70
70
  });
71
71
  }
72
+ /** F-933 — collapse the legacy `scenario_path` onto `task_path` so callers
73
+ * only ever deal with one spelling. Validation ran first, so at least one of
74
+ * the two is a string. */
75
+ function normalizeVerdictArtifact(parsed) {
76
+ const { scenario_path: legacyPath, task_path: taskPath, ...rest } = parsed;
77
+ return { ...rest, task_path: taskPath ?? legacyPath };
78
+ }
72
79
  export async function readVerdictArtifact(runDir) {
73
80
  const path = join(runDir, VERDICT_FILENAME);
74
81
  let raw;
@@ -82,7 +89,7 @@ export async function readVerdictArtifact(runDir) {
82
89
  const parsed = JSON.parse(raw);
83
90
  if (!isVerdictArtifact(parsed))
84
91
  return null;
85
- return { runDir, verdict: parsed };
92
+ return { runDir, verdict: normalizeVerdictArtifact(parsed) };
86
93
  }
87
94
  catch {
88
95
  return null;
@@ -136,7 +143,7 @@ export function groupRunSets(trials) {
136
143
  sets.push({
137
144
  groupId: bucket[0].verdict.group_id,
138
145
  taskName: bucket[0].verdict.task_name,
139
- taskPath: bucket[0].verdict.scenario_path,
146
+ taskPath: bucket[0].verdict.task_path,
140
147
  trials: bucket,
141
148
  latestFinalizedAt: last.verdict.finalized_at,
142
149
  anyFailed: bucket.some((t) => !t.verdict.passed),
@@ -22,7 +22,7 @@ export type RunArtifactCoreInput = {
22
22
  export declare function writeRunArtifactsCore(input: RunArtifactCoreInput): Promise<RunArtifacts>;
23
23
  export declare function readLatestRun(artifactsDir: string): Promise<{
24
24
  run_id: string;
25
- scenario: string;
25
+ task: string;
26
26
  run_dir: string;
27
27
  } | undefined>;
28
28
  export type RunMetaSummary = {
@@ -78,9 +78,16 @@ export async function writeRunArtifactsCore(input) {
78
78
  await writeJson(join(runDir, "state_final.json"), input.stateFinal);
79
79
  await writeFile(join(runDir, "stdout.txt"), redactText(input.stdout));
80
80
  await writeFile(join(runDir, "stderr.log"), redactText(input.stderr));
81
+ // F-933 — `task`, not `scenario`. latest.json is a purely local pointer:
82
+ // every run overwrites it and its only readers are `pome eval` / `pome
83
+ // inspect`, which dereference `run_dir`/`run_id`. Nothing on the wire and
84
+ // nothing in the cloud parses it, so the rename needs no compat window.
85
+ // meta.json's `scenario` key is deliberately NOT renamed here — that one is
86
+ // uploaded to cloud finalize and read back out of older run dirs (see
87
+ // AGENTS.md's sanctioned-survivor list).
81
88
  await writeJson(join(input.artifactsDir, "latest.json"), {
82
89
  run_id: input.runId,
83
- scenario: input.scenario.slug,
90
+ task: input.scenario.slug,
84
91
  run_dir: runDir
85
92
  });
86
93
  return { runId: input.runId, runDir };
@@ -75,7 +75,7 @@ export declare function runTask(options: RunTaskOptions): Promise<{
75
75
  }[];
76
76
  statuses: {
77
77
  context: string;
78
- state: "error" | "success" | "failure" | "pending";
78
+ state: "error" | "failure" | "pending" | "success";
79
79
  description: string;
80
80
  }[];
81
81
  number?: number | undefined;
@@ -321,7 +321,7 @@ export declare function runTask(options: RunTaskOptions): Promise<{
321
321
  states?: {
322
322
  name: string;
323
323
  id?: string | undefined;
324
- type?: "completed" | "backlog" | "unstarted" | "started" | "canceled" | undefined;
324
+ type?: "backlog" | "unstarted" | "started" | "completed" | "canceled" | undefined;
325
325
  position?: number | undefined;
326
326
  }[] | undefined;
327
327
  }[];
@@ -334,7 +334,7 @@ export declare function runTask(options: RunTaskOptions): Promise<{
334
334
  }[];
335
335
  projects: {
336
336
  name: string;
337
- state: "completed" | "started" | "canceled" | "planned";
337
+ state: "started" | "completed" | "canceled" | "planned";
338
338
  id?: string | undefined;
339
339
  description?: string | null | undefined;
340
340
  team?: string | undefined;
@@ -394,7 +394,7 @@ export declare function runTask(options: RunTaskOptions): Promise<{
394
394
  clientSecret: string;
395
395
  name: string;
396
396
  redirectUris: string[];
397
- actor: "user" | "app";
397
+ actor: "app" | "user";
398
398
  assignable: boolean;
399
399
  mentionable: boolean;
400
400
  id?: string | undefined;
@@ -407,7 +407,7 @@ export declare function runTask(options: RunTaskOptions): Promise<{
407
407
  user?: string | undefined;
408
408
  app?: string | undefined;
409
409
  scopes?: string | string[] | undefined;
410
- actor?: "user" | "app" | undefined;
410
+ actor?: "app" | "user" | undefined;
411
411
  sid?: string | undefined;
412
412
  expiresAt?: string | null | undefined;
413
413
  }[];
@@ -470,7 +470,7 @@ export declare function runTask(options: RunTaskOptions): Promise<{
470
470
  }[];
471
471
  statuses: {
472
472
  context: string;
473
- state: "error" | "success" | "failure" | "pending";
473
+ state: "error" | "failure" | "pending" | "success";
474
474
  description: string;
475
475
  }[];
476
476
  number?: number | undefined;
@@ -716,7 +716,7 @@ export declare function runTask(options: RunTaskOptions): Promise<{
716
716
  states?: {
717
717
  name: string;
718
718
  id?: string | undefined;
719
- type?: "completed" | "backlog" | "unstarted" | "started" | "canceled" | undefined;
719
+ type?: "backlog" | "unstarted" | "started" | "completed" | "canceled" | undefined;
720
720
  position?: number | undefined;
721
721
  }[] | undefined;
722
722
  }[];
@@ -729,7 +729,7 @@ export declare function runTask(options: RunTaskOptions): Promise<{
729
729
  }[];
730
730
  projects: {
731
731
  name: string;
732
- state: "completed" | "started" | "canceled" | "planned";
732
+ state: "started" | "completed" | "canceled" | "planned";
733
733
  id?: string | undefined;
734
734
  description?: string | null | undefined;
735
735
  team?: string | undefined;
@@ -789,7 +789,7 @@ export declare function runTask(options: RunTaskOptions): Promise<{
789
789
  clientSecret: string;
790
790
  name: string;
791
791
  redirectUris: string[];
792
- actor: "user" | "app";
792
+ actor: "app" | "user";
793
793
  assignable: boolean;
794
794
  mentionable: boolean;
795
795
  id?: string | undefined;
@@ -802,7 +802,7 @@ export declare function runTask(options: RunTaskOptions): Promise<{
802
802
  user?: string | undefined;
803
803
  app?: string | undefined;
804
804
  scopes?: string | string[] | undefined;
805
- actor?: "user" | "app" | undefined;
805
+ actor?: "app" | "user" | undefined;
806
806
  sid?: string | undefined;
807
807
  expiresAt?: string | null | undefined;
808
808
  }[];
@@ -504,7 +504,7 @@ export async function runTaskHosted(options) {
504
504
  version: VERDICT_ARTIFACT_VERSION,
505
505
  source: "cloud-finalize",
506
506
  task_name: scenario.slug,
507
- scenario_path: options.taskPath,
507
+ task_path: options.taskPath,
508
508
  group_id: options.groupId ?? null,
509
509
  session_id: session.session_id,
510
510
  cloud_run_id: finalized.run_id,
@@ -548,7 +548,14 @@ export async function runTaskHosted(options) {
548
548
  finally {
549
549
  // Best-effort teardown. TTL would reap anyway; explicit delete keeps
550
550
  // the dashboard sessions list tidy.
551
- await client.deleteSession(session.session_id).catch(() => undefined);
551
+ // F-983: this teardown deliberately discards. On the success path the
552
+ // session is already `done` (finalize closed it) and the DELETE is a
553
+ // no-op; on the failure path we accept losing an ungraded tape rather
554
+ // than leaving open sessions to linger to TTL and pollute the
555
+ // reliability view. Flagged as known residue in the F-983 spec.
556
+ await client
557
+ .deleteSession(session.session_id, true, { discard: true })
558
+ .catch(() => undefined);
552
559
  await rm(signalsDir, { recursive: true, force: true }).catch(() => undefined);
553
560
  }
554
561
  }
@@ -115,7 +115,10 @@ export async function runTrialGroup(options) {
115
115
  // Roll the half-group back so abandoned mints never linger as open
116
116
  // sessions polluting the reliability view; then let the caller map the
117
117
  // error to the documented exit code.
118
- await Promise.all(sessions.map((s) => client.deleteSession(s.session_id).catch(() => undefined)));
118
+ await Promise.all(
119
+ // F-983: these sessions were minted and never launched, so there is no
120
+ // tape to lose — an explicit discard is honest here.
121
+ sessions.map((s) => client.deleteSession(s.session_id, true, { discard: true }).catch(() => undefined)));
119
122
  throw err;
120
123
  }
121
124
  const concurrency = sessions.length;
@@ -0,0 +1,15 @@
1
+ /**
2
+ * F-1074 — append one rendered criterion to a task file's `## Success Criteria`,
3
+ * touching nothing else.
4
+ *
5
+ * It does NOT parse and re-serialize the markdown. Re-serializing is how the
6
+ * readable artifact drifts, and the north-star check on this ticket is that it
7
+ * does not: authoring a criterion changes exactly one line.
8
+ */
9
+ export declare class MissingCriteriaSectionError extends Error {
10
+ constructor(path: string);
11
+ }
12
+ export declare class DuplicateCriterionError extends Error {
13
+ constructor(path: string, line: string);
14
+ }
15
+ export declare function insertCriterion(source: string, line: string, path?: string): string;
@@ -0,0 +1,62 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ /**
3
+ * F-1074 — append one rendered criterion to a task file's `## Success Criteria`,
4
+ * touching nothing else.
5
+ *
6
+ * It does NOT parse and re-serialize the markdown. Re-serializing is how the
7
+ * readable artifact drifts, and the north-star check on this ticket is that it
8
+ * does not: authoring a criterion changes exactly one line.
9
+ */
10
+ const HEADING_RE = /^##\s+Success Criteria\s*$/;
11
+ const NEXT_HEADING_RE = /^##\s+/;
12
+ // Mirrors CRITERION_LINE_RE in ./parseTask.ts. Used ONLY to find where the last
13
+ // existing criterion sits — never to validate one; that is the parser's job.
14
+ const CRITERION_RE = /^[-*]\s+\[(?:code|model)(?::[a-z][a-z0-9_-]*)?\]\s+.+$/;
15
+ export class MissingCriteriaSectionError extends Error {
16
+ constructor(path) {
17
+ super(`${path} has no \`## Success Criteria\` section. Add one and run this again — ` +
18
+ `pome will not invent a section in a file it did not write.`);
19
+ this.name = "MissingCriteriaSectionError";
20
+ }
21
+ }
22
+ // Found by driving the command: authoring a criterion a task already carries
23
+ // adds it twice, and the grader scores both — the denominator inflates and the
24
+ // task's percentage moves for a reason nobody wrote down. That is the exact
25
+ // class of silent denominator change this milestone exists to remove, so it is
26
+ // a refusal rather than a warning.
27
+ export class DuplicateCriterionError extends Error {
28
+ constructor(path, line) {
29
+ super(`${path} already has this criterion:\n ${line}\n` +
30
+ `Adding it again would score it twice and inflate the task's denominator.`);
31
+ this.name = "DuplicateCriterionError";
32
+ }
33
+ }
34
+ export function insertCriterion(source, line, path = "this task file") {
35
+ const lines = source.split("\n");
36
+ const start = lines.findIndex((l) => HEADING_RE.test(l));
37
+ if (start === -1)
38
+ throw new MissingCriteriaSectionError(path);
39
+ let end = lines.length;
40
+ for (let i = start + 1; i < lines.length; i += 1) {
41
+ if (NEXT_HEADING_RE.test(lines[i])) {
42
+ end = i;
43
+ break;
44
+ }
45
+ }
46
+ let insertAt = -1;
47
+ for (let i = start + 1; i < end; i += 1) {
48
+ const existing = lines[i].trim();
49
+ if (!CRITERION_RE.test(existing))
50
+ continue;
51
+ if (existing === line.trim())
52
+ throw new DuplicateCriterionError(path, line);
53
+ insertAt = i + 1;
54
+ }
55
+ if (insertAt === -1) {
56
+ // Empty section: land after the heading's blank line, so the result reads
57
+ // like every shipped task instead of butting against the heading.
58
+ insertAt = lines[start + 1]?.trim() === "" ? start + 2 : start + 1;
59
+ }
60
+ lines.splice(insertAt, 0, line);
61
+ return lines.join("\n");
62
+ }
@@ -1,5 +1,10 @@
1
1
  import { type Task } from "./taskSchema.js";
2
2
  export declare function parseTaskFile(path: string): Promise<Task>;
3
+ /** The task's declared twins, read WITHOUT requiring criteria (F-1074).
4
+ * `taskSchema` demands at least one criterion, and `pome checks add` needs the
5
+ * twin list BEFORE it has written one. Reuses this module's own section
6
+ * splitter and config schema, so it is not a second parser. */
7
+ export declare function readConfigTwins(markdown: string): string[];
3
8
  export declare function parseTask(markdown: string, slug?: string, sidecarSeed?: unknown, taskPath?: string): Task;
4
9
  /** The flat seed a single twin boots from. Single-twin scenarios return the
5
10
  * flat `seedState` as-is; multi-twin scenarios return that twin's slice of the
@@ -14,6 +14,17 @@ export async function parseTaskFile(path) {
14
14
  const sidecarSeed = await readSidecarSeed(path);
15
15
  return parseTask(markdown, slugFromPath(path), sidecarSeed, path);
16
16
  }
17
+ /** The task's declared twins, read WITHOUT requiring criteria (F-1074).
18
+ * `taskSchema` demands at least one criterion, and `pome checks add` needs the
19
+ * twin list BEFORE it has written one. Reuses this module's own section
20
+ * splitter and config schema, so it is not a second parser. */
21
+ export function readConfigTwins(markdown) {
22
+ const configText = splitSections(markdown).get("config") ?? "";
23
+ const config = configText.trim()
24
+ ? taskConfigSchema.parse(parseFencedYaml(configText))
25
+ : taskConfigSchema.parse({});
26
+ return config.twins;
27
+ }
17
28
  export function parseTask(markdown, slug = "scenario", sidecarSeed, taskPath) {
18
29
  const title = markdown.match(/^#\s+(.+)$/m)?.[1]?.trim() ?? slug;
19
30
  const sections = splitSections(markdown);
@@ -491,9 +491,9 @@ export declare const seedStateSchema: z.ZodUnion<readonly [z.ZodObject<{
491
491
  context: z.ZodDefault<z.ZodString>;
492
492
  state: z.ZodDefault<z.ZodEnum<{
493
493
  error: "error";
494
- success: "success";
495
494
  failure: "failure";
496
495
  pending: "pending";
496
+ success: "success";
497
497
  }>>;
498
498
  description: z.ZodDefault<z.ZodString>;
499
499
  }, z.core.$strip>>>;
@@ -964,9 +964,9 @@ export declare const seedEnvelopeSchema: z.ZodRecord<z.ZodString, z.ZodUnion<rea
964
964
  context: z.ZodDefault<z.ZodString>;
965
965
  state: z.ZodDefault<z.ZodEnum<{
966
966
  error: "error";
967
- success: "success";
968
967
  failure: "failure";
969
968
  pending: "pending";
969
+ success: "success";
970
970
  }>>;
971
971
  description: z.ZodDefault<z.ZodString>;
972
972
  }, z.core.$strip>>>;
@@ -1459,9 +1459,9 @@ export declare const taskSchema: z.ZodObject<{
1459
1459
  context: z.ZodDefault<z.ZodString>;
1460
1460
  state: z.ZodDefault<z.ZodEnum<{
1461
1461
  error: "error";
1462
- success: "success";
1463
1462
  failure: "failure";
1464
1463
  pending: "pending";
1464
+ success: "success";
1465
1465
  }>>;
1466
1466
  description: z.ZodDefault<z.ZodString>;
1467
1467
  }, z.core.$strip>>>;
@@ -1931,9 +1931,9 @@ export declare const taskSchema: z.ZodObject<{
1931
1931
  context: z.ZodDefault<z.ZodString>;
1932
1932
  state: z.ZodDefault<z.ZodEnum<{
1933
1933
  error: "error";
1934
- success: "success";
1935
1934
  failure: "failure";
1936
1935
  pending: "pending";
1936
+ success: "success";
1937
1937
  }>>;
1938
1938
  description: z.ZodDefault<z.ZodString>;
1939
1939
  }, z.core.$strip>>>;
@@ -0,0 +1,54 @@
1
+ export type CheckPolarity = "positive" | "negative";
2
+ export type CheckSubstrateKind = "final" | "seed+final" | "tape";
3
+ export interface CheckParamType {
4
+ readonly name: string;
5
+ readonly pattern: string;
6
+ readonly example: string;
7
+ render(value: string): string;
8
+ parse(raw: string): string;
9
+ }
10
+ export declare const repoRef: CheckParamType;
11
+ export interface CheckOutcome {
12
+ passed: boolean;
13
+ reason: string;
14
+ status?: "passed" | "failed" | "unmatched" | "skipped";
15
+ }
16
+ export interface CheckSubstrate<TState> {
17
+ seed: TState | null;
18
+ final: TState;
19
+ }
20
+ export interface CheckDefinition<TState, TArgs extends Record<string, string>> {
21
+ id: string;
22
+ description: string;
23
+ template: string;
24
+ params: {
25
+ [K in keyof TArgs]: CheckParamType;
26
+ };
27
+ substrate: CheckSubstrateKind;
28
+ polarity(args: TArgs): CheckPolarity;
29
+ subject?(args: TArgs): string | null;
30
+ vacuityMutant(args: TArgs): TArgs | null;
31
+ evaluate(args: TArgs, substrate: CheckSubstrate<TState>): CheckOutcome;
32
+ }
33
+ export declare function templateSlots(template: string): {
34
+ literals: string[];
35
+ params: string[];
36
+ };
37
+ type ArgsOfParams<TParams extends Record<string, CheckParamType>> = {
38
+ [K in keyof TParams]: string;
39
+ };
40
+ export declare function defineCheck<TState, TParams extends Record<string, CheckParamType>>(def: Omit<CheckDefinition<TState, ArgsOfParams<TParams>>, "params"> & {
41
+ params: TParams;
42
+ }): CheckDefinition<TState, ArgsOfParams<TParams>>;
43
+ export declare function renderCheck<TState, TArgs extends Record<string, string>>(def: CheckDefinition<TState, TArgs>, args: TArgs): string;
44
+ export interface CheckBindingShape {
45
+ readonly id: string;
46
+ readonly template: string;
47
+ readonly substrate: CheckSubstrateKind;
48
+ readonly params: Readonly<Record<string, CheckParamType>>;
49
+ }
50
+ export declare function checkPattern(def: CheckBindingShape): RegExp;
51
+ export declare function checksDigest(defs: readonly CheckBindingShape[]): string;
52
+ export declare function checkNearMissPattern(def: CheckBindingShape): RegExp;
53
+ export declare function parseCheck<TState, TArgs extends Record<string, string>>(def: CheckDefinition<TState, TArgs>, text: string): TArgs | null;
54
+ export {};
@@ -0,0 +1,143 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ //
3
+ // The assertable check vocabulary (F-1073, milestone A2b).
4
+ //
5
+ // Position 2: the author selects a typed check and the system RENDERS the
6
+ // English. Binding cannot fail, because the sentence is what the check
7
+ // produced. That is why there is no `pattern` field here — the matcher is
8
+ // GENERATED from `template`, so a declaration and its regex cannot drift
9
+ // apart, and an author can neither write nor break one.
10
+ //
11
+ // This module is twin-agnostic. Each twin declares its own checks next to the
12
+ // state they read (`packages/twin-<x>/src/checks.ts`), because the twin owns
13
+ // that state's shape; pome-cloud imports those declarations from npm and
14
+ // adapts them onto its existing predicate engine. There is no second copy to
15
+ // reconcile — the drift gate's job is catching a pin that fell behind, not
16
+ // reconciling two hand-maintained vocabularies.
17
+ import { createHash } from "node:crypto";
18
+ // `owner/name`. Deliberately narrow, and it must NOT accept a bare repo name:
19
+ // a sentence with a malformed repo has to be reported as the corrupted
20
+ // template instance it is, rather than quietly parsing into a lookup that then
21
+ // fails for an unrelated-looking reason.
22
+ export const repoRef = {
23
+ name: "repo",
24
+ pattern: "[A-Za-z0-9_.-]+/[A-Za-z0-9_.-]+",
25
+ example: "acme/api",
26
+ render: (value) => value,
27
+ parse: (raw) => raw,
28
+ };
29
+ const SLOT_RE = /\{([a-z][a-z0-9_]*)\}/g;
30
+ // Splits "a {x} b" into { literals: ["a ", " b"], params: ["x"] }.
31
+ // `literals.length` is always `params.length + 1`, which is what lets the
32
+ // pattern builder interleave them without a special case for either end.
33
+ export function templateSlots(template) {
34
+ const literals = [];
35
+ const params = [];
36
+ let cursor = 0;
37
+ for (const match of template.matchAll(SLOT_RE)) {
38
+ literals.push(template.slice(cursor, match.index));
39
+ params.push(match[1]);
40
+ cursor = match.index + match[0].length;
41
+ }
42
+ literals.push(template.slice(cursor));
43
+ return { literals, params };
44
+ }
45
+ function escapeLiteral(literal) {
46
+ return literal.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
47
+ }
48
+ // Validates a declaration at module load, so a broken check cannot ship: a
49
+ // slot with no type, a type no slot uses, or a repeated slot are all authoring
50
+ // mistakes that would otherwise surface as a check that silently binds nothing.
51
+ export function defineCheck(def) {
52
+ const { params } = templateSlots(def.template);
53
+ const seen = new Set();
54
+ for (const param of params) {
55
+ if (seen.has(param)) {
56
+ throw new Error(`check ${def.id}: duplicate template slot {${param}}`);
57
+ }
58
+ seen.add(param);
59
+ if (!def.params[param]) {
60
+ throw new Error(`check ${def.id}: template slot {${param}} has no declared param type`);
61
+ }
62
+ }
63
+ for (const declared of Object.keys(def.params)) {
64
+ if (!seen.has(declared)) {
65
+ throw new Error(`check ${def.id}: declared param \`${declared}\` is not used by the template`);
66
+ }
67
+ }
68
+ // F-1074 — a param type whose own example violates its own pattern would put
69
+ // an invalid value in front of an author as the suggested one.
70
+ for (const [name, type] of Object.entries(def.params)) {
71
+ const paramType = type;
72
+ if (!new RegExp(`^${paramType.pattern}$`).test(paramType.example)) {
73
+ throw new Error(`check ${def.id}: param \`${name}\` example ${JSON.stringify(paramType.example)} ` +
74
+ `does not match its own pattern /${paramType.pattern}/`);
75
+ }
76
+ }
77
+ return def;
78
+ }
79
+ export function renderCheck(def, args) {
80
+ const { literals, params } = templateSlots(def.template);
81
+ let rendered = literals[0];
82
+ params.forEach((param, index) => {
83
+ const type = def.params[param];
84
+ rendered += type.render(args[param]) + literals[index + 1];
85
+ });
86
+ return rendered;
87
+ }
88
+ function buildPattern(template, slotSource) {
89
+ const { literals, params } = templateSlots(template);
90
+ let source = `^${escapeLiteral(literals[0])}`;
91
+ params.forEach((_param, index) => {
92
+ source += `(${slotSource(index)})${escapeLiteral(literals[index + 1])}`;
93
+ });
94
+ // Case-SENSITIVE and anchored on purpose. Any text this matches must
95
+ // re-render byte-identically, which makes the render→parse→render round trip
96
+ // a property of the generator rather than a condition to re-test at run time.
97
+ return new RegExp(`${source}$`);
98
+ }
99
+ export function checkPattern(def) {
100
+ const { params } = templateSlots(def.template);
101
+ return buildPattern(def.template, (index) => def.params[params[index]].pattern);
102
+ }
103
+ // One implementation, called by BOTH the control plane and the CLI (F-1074).
104
+ // They resolve declarations from independent npm pins and must be able to prove
105
+ // they agree before an author writes a sentence; two implementations of "hash
106
+ // the binding surface" would be the same two-representations-of-one-fact defect
107
+ // this vocabulary exists to remove, one level down — a sort or key-order
108
+ // difference would make every pin look skewed, or a real skew look equal.
109
+ //
110
+ // `description` and `example` are deliberately NOT hashed. This digest gates an
111
+ // author's write, and a prose edit changes no sentence.
112
+ export function checksDigest(defs) {
113
+ const rows = defs
114
+ .map((def) => ({
115
+ id: def.id,
116
+ substrate: def.substrate,
117
+ // The compiled source, not the template: this also catches a change in
118
+ // `buildPattern` itself, which comparing templates would miss.
119
+ pattern: checkPattern(def).source,
120
+ }))
121
+ .sort((a, b) => (a.id < b.id ? -1 : a.id > b.id ? 1 : 0));
122
+ return `sha256:${createHash("sha256").update(JSON.stringify(rows), "utf8").digest("hex")}`;
123
+ }
124
+ // The literal segments intact, every slot wide open. A text matching THIS and
125
+ // not `checkPattern` is a corrupted instance of this check: it says the
126
+ // check's sentence but fills a slot with something the slot's type rejects.
127
+ // A text that fails this too is a stranger, and stays on the unmatched path —
128
+ // which is what keeps this gate off the legacy phrases that resemble nothing.
129
+ export function checkNearMissPattern(def) {
130
+ return buildPattern(def.template, () => ".+?");
131
+ }
132
+ export function parseCheck(def, text) {
133
+ const matched = text.trim().match(checkPattern(def));
134
+ if (!matched)
135
+ return null;
136
+ const { params } = templateSlots(def.template);
137
+ const args = {};
138
+ params.forEach((param, index) => {
139
+ args[param] = def.params[param].parse(matched[index + 1]);
140
+ });
141
+ return args;
142
+ }
143
+ //# sourceMappingURL=checks.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"checks.js","sourceRoot":"","sources":["../src/checks.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pome-sh/sdk",
3
- "version": "0.5.1",
3
+ "version": "0.6.0",
4
4
  "description": "Twin engine for Pome digital twins — defineTwin() + serve(): HTTP mounting, bearer auth, trace recorder, MCP dispatch, SQLite-backed state.",
5
5
  "private": false,
6
6
  "type": "module",
@@ -18,6 +18,10 @@
18
18
  "./parity": {
19
19
  "types": "./dist/parity.d.ts",
20
20
  "default": "./dist/parity.js"
21
+ },
22
+ "./checks": {
23
+ "types": "./dist/checks.d.ts",
24
+ "default": "./dist/checks.js"
21
25
  }
22
26
  },
23
27
  "publishConfig": {
@@ -36,8 +40,8 @@
36
40
  "dist"
37
41
  ],
38
42
  "dependencies": {
39
- "@pome-sh/shared-types": "0.12.0",
40
- "hono": "^4.12.27",
43
+ "@pome-sh/shared-types": "0.12.2",
44
+ "hono": "^4.12.31",
41
45
  "zod": "^4.1.13"
42
46
  },
43
47
  "peerDependencies": {
@@ -12,18 +12,18 @@ export declare function githubAccessControlPayload(): {
12
12
  tool: string;
13
13
  operation: string;
14
14
  method: "GET" | "POST" | "PUT" | "PATCH" | "DELETE";
15
- category: "issues" | "issue_comments" | "pull_requests" | "branches_files" | "commits_diffs" | "milestones" | "status_checks" | "tags_releases" | "labels" | "collaborators";
15
+ category: "collaborators" | "labels" | "issues" | "pull_requests" | "milestones" | "issue_comments" | "branches_files" | "commits_diffs" | "status_checks" | "tags_releases";
16
16
  default_allowed: boolean;
17
17
  v2: boolean;
18
18
  }[];
19
19
  categories: {
20
- category: "issues" | "issue_comments" | "pull_requests" | "branches_files" | "commits_diffs" | "milestones" | "status_checks" | "tags_releases" | "labels" | "collaborators";
20
+ category: "collaborators" | "labels" | "issues" | "pull_requests" | "milestones" | "issue_comments" | "branches_files" | "commits_diffs" | "status_checks" | "tags_releases";
21
21
  label: string;
22
22
  endpoints: {
23
23
  tool: string;
24
24
  operation: string;
25
25
  method: "GET" | "POST" | "PUT" | "PATCH" | "DELETE";
26
- category: "issues" | "issue_comments" | "pull_requests" | "branches_files" | "commits_diffs" | "milestones" | "status_checks" | "tags_releases" | "labels" | "collaborators";
26
+ category: "collaborators" | "labels" | "issues" | "pull_requests" | "milestones" | "issue_comments" | "branches_files" | "commits_diffs" | "status_checks" | "tags_releases";
27
27
  default_allowed: boolean;
28
28
  v2: boolean;
29
29
  }[];