@pome-sh/cli 0.9.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 (427) hide show
  1. package/dist/build-info.json +3 -3
  2. package/dist/src/cli/agent-resolver.d.ts +3 -0
  3. package/dist/src/cli/agent-resolver.js +10 -0
  4. package/dist/src/cli/checks-add.d.ts +32 -0
  5. package/dist/src/cli/checks-add.js +236 -0
  6. package/dist/src/cli/checks.d.ts +21 -0
  7. package/dist/src/cli/checks.js +150 -0
  8. package/dist/src/cli/main.js +28 -0
  9. package/dist/src/runner/runTask.d.ts +10 -10
  10. package/dist/src/task/insertCriterion.d.ts +15 -0
  11. package/dist/src/task/insertCriterion.js +62 -0
  12. package/dist/src/task/parseTask.d.ts +5 -0
  13. package/dist/src/task/parseTask.js +11 -0
  14. package/dist/src/task/taskSchema.d.ts +4 -4
  15. package/node_modules/@pome-sh/sdk/dist/checks.d.ts +54 -0
  16. package/node_modules/@pome-sh/sdk/dist/checks.js +143 -0
  17. package/node_modules/@pome-sh/sdk/dist/checks.js.map +1 -0
  18. package/node_modules/@pome-sh/sdk/package.json +7 -3
  19. package/node_modules/@pome-sh/twin-github/dist/src/access-control.d.ts +3 -3
  20. package/node_modules/@pome-sh/twin-github/dist/src/checks.d.ts +21 -0
  21. package/node_modules/@pome-sh/twin-github/dist/src/checks.js +90 -0
  22. package/node_modules/@pome-sh/twin-github/dist/src/checks.js.map +1 -0
  23. package/node_modules/@pome-sh/twin-github/dist/src/domain/checks.d.ts +153 -0
  24. package/node_modules/@pome-sh/twin-github/dist/src/domain/checks.js +66 -0
  25. package/node_modules/@pome-sh/twin-github/dist/src/domain/checks.js.map +1 -0
  26. package/node_modules/@pome-sh/twin-github/dist/src/domain/git.d.ts +567 -0
  27. package/node_modules/@pome-sh/twin-github/dist/src/domain/git.js +198 -0
  28. package/node_modules/@pome-sh/twin-github/dist/src/domain/git.js.map +1 -0
  29. package/node_modules/@pome-sh/twin-github/dist/src/{domain.d.ts → domain/github-domain.d.ts} +340 -71
  30. package/node_modules/@pome-sh/twin-github/dist/src/domain/github-domain.js +794 -0
  31. package/node_modules/@pome-sh/twin-github/dist/src/domain/github-domain.js.map +1 -0
  32. package/node_modules/@pome-sh/twin-github/dist/src/domain/helpers.d.ts +5 -0
  33. package/node_modules/@pome-sh/twin-github/dist/src/domain/helpers.js +15 -0
  34. package/node_modules/@pome-sh/twin-github/dist/src/domain/helpers.js.map +1 -0
  35. package/node_modules/@pome-sh/twin-github/dist/src/domain/index.d.ts +2 -0
  36. package/node_modules/@pome-sh/twin-github/dist/src/domain/index.js +5 -0
  37. package/node_modules/@pome-sh/twin-github/dist/src/domain/index.js.map +1 -0
  38. package/node_modules/@pome-sh/twin-github/dist/src/domain/issues.d.ts +545 -0
  39. package/node_modules/@pome-sh/twin-github/dist/src/domain/issues.js +272 -0
  40. package/node_modules/@pome-sh/twin-github/dist/src/domain/issues.js.map +1 -0
  41. package/node_modules/@pome-sh/twin-github/dist/src/domain/pulls.d.ts +816 -0
  42. package/node_modules/@pome-sh/twin-github/dist/src/domain/pulls.js +256 -0
  43. package/node_modules/@pome-sh/twin-github/dist/src/domain/pulls.js.map +1 -0
  44. package/node_modules/@pome-sh/twin-github/dist/src/domain/releases.d.ts +160 -0
  45. package/node_modules/@pome-sh/twin-github/dist/src/domain/releases.js +63 -0
  46. package/node_modules/@pome-sh/twin-github/dist/src/domain/releases.js.map +1 -0
  47. package/node_modules/@pome-sh/twin-github/dist/src/domain/repos.d.ts +219 -0
  48. package/node_modules/@pome-sh/twin-github/dist/src/domain/repos.js +131 -0
  49. package/node_modules/@pome-sh/twin-github/dist/src/domain/repos.js.map +1 -0
  50. package/node_modules/@pome-sh/twin-github/dist/src/domain/search.d.ts +252 -0
  51. package/node_modules/@pome-sh/twin-github/dist/src/domain/search.js +83 -0
  52. package/node_modules/@pome-sh/twin-github/dist/src/domain/search.js.map +1 -0
  53. package/node_modules/@pome-sh/twin-github/dist/src/domain/types.d.ts +15 -0
  54. package/node_modules/@pome-sh/twin-github/dist/src/domain/types.js +2 -0
  55. package/node_modules/@pome-sh/twin-github/dist/src/domain/types.js.map +1 -0
  56. package/node_modules/@pome-sh/twin-github/dist/src/index.d.ts +2 -1
  57. package/node_modules/@pome-sh/twin-github/dist/src/index.js +1 -1
  58. package/node_modules/@pome-sh/twin-github/dist/src/index.js.map +1 -1
  59. package/node_modules/@pome-sh/twin-github/dist/src/routes.d.ts +1 -1
  60. package/node_modules/@pome-sh/twin-github/dist/src/seed.d.ts +1 -1
  61. package/node_modules/@pome-sh/twin-github/dist/src/serializers.d.ts +3 -3
  62. package/node_modules/@pome-sh/twin-github/dist/src/tools.d.ts +188 -188
  63. package/node_modules/@pome-sh/twin-github/dist/src/twin.d.ts +1 -1
  64. package/node_modules/@pome-sh/twin-github/dist/src/twin.js +1 -1
  65. package/node_modules/@pome-sh/twin-github/dist/src/twin.js.map +1 -1
  66. package/node_modules/@pome-sh/twin-github/package.json +4 -4
  67. package/node_modules/@pome-sh/{twin-github → twin-gmail}/node_modules/@pome-sh/sdk/package.json +2 -2
  68. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/sdk/dist/admin-gate.d.ts +35 -0
  69. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/sdk/dist/admin-gate.js +103 -0
  70. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/sdk/dist/admin-gate.js.map +1 -0
  71. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/sdk/dist/auth.d.ts +100 -0
  72. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/sdk/dist/auth.js +262 -0
  73. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/sdk/dist/auth.js.map +1 -0
  74. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/sdk/dist/build-info.d.ts +7 -0
  75. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/sdk/dist/build-info.js +14 -0
  76. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/sdk/dist/build-info.js.map +1 -0
  77. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/sdk/dist/db.d.ts +44 -0
  78. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/sdk/dist/db.js +113 -0
  79. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/sdk/dist/db.js.map +1 -0
  80. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/sdk/dist/errors.d.ts +24 -0
  81. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/sdk/dist/errors.js +61 -0
  82. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/sdk/dist/errors.js.map +1 -0
  83. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/sdk/dist/failure-injection.d.ts +43 -0
  84. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/sdk/dist/failure-injection.js +160 -0
  85. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/sdk/dist/failure-injection.js.map +1 -0
  86. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/sdk/dist/fidelity-inventory.d.ts +121 -0
  87. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/sdk/dist/fidelity-inventory.js +204 -0
  88. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/sdk/dist/fidelity-inventory.js.map +1 -0
  89. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/sdk/dist/fidelity.d.ts +8 -0
  90. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/sdk/dist/fidelity.js +39 -0
  91. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/sdk/dist/fidelity.js.map +1 -0
  92. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/sdk/dist/index.d.ts +372 -0
  93. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/sdk/dist/index.js +139 -0
  94. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/sdk/dist/index.js.map +1 -0
  95. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/sdk/dist/mcp-jsonrpc.d.ts +10 -0
  96. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/sdk/dist/mcp-jsonrpc.js +221 -0
  97. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/sdk/dist/mcp-jsonrpc.js.map +1 -0
  98. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/sdk/dist/parity.d.ts +61 -0
  99. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/sdk/dist/parity.js +123 -0
  100. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/sdk/dist/parity.js.map +1 -0
  101. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/sdk/dist/recorder.d.ts +120 -0
  102. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/sdk/dist/recorder.js +368 -0
  103. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/sdk/dist/recorder.js.map +1 -0
  104. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/sdk/dist/redaction.d.ts +1 -0
  105. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/sdk/dist/redaction.js +3 -0
  106. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/sdk/dist/redaction.js.map +1 -0
  107. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/sdk/dist/server-helpers.d.ts +54 -0
  108. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/sdk/dist/server-helpers.js +181 -0
  109. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/sdk/dist/server-helpers.js.map +1 -0
  110. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/sdk/dist/server.d.ts +46 -0
  111. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/sdk/dist/server.js +394 -0
  112. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/sdk/dist/server.js.map +1 -0
  113. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/sdk/dist/tool-context.d.ts +8 -0
  114. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/sdk/dist/tool-context.js +22 -0
  115. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/sdk/dist/tool-context.js.map +1 -0
  116. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/sdk/package.json +54 -0
  117. package/node_modules/@pome-sh/{twin-github → twin-linear}/node_modules/@pome-sh/shared-types/dist/index.d.ts +1 -0
  118. package/node_modules/@pome-sh/{twin-github → twin-linear}/node_modules/@pome-sh/shared-types/dist/index.js +1 -0
  119. package/node_modules/@pome-sh/{twin-github → twin-linear}/node_modules/@pome-sh/shared-types/dist/index.js.map +1 -1
  120. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/shared-types/dist/manifest.d.ts +31 -0
  121. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/shared-types/dist/manifest.js +76 -0
  122. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/shared-types/dist/manifest.js.map +1 -0
  123. package/node_modules/@pome-sh/{twin-github → twin-linear}/node_modules/@pome-sh/shared-types/dist/rest.d.ts +9 -0
  124. package/node_modules/@pome-sh/{twin-github → twin-linear}/node_modules/@pome-sh/shared-types/dist/rest.js +27 -0
  125. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/shared-types/dist/rest.js.map +1 -0
  126. package/node_modules/@pome-sh/twin-linear/node_modules/@pome-sh/shared-types/manifest-schema.json +68 -0
  127. package/node_modules/@pome-sh/{twin-github → twin-linear}/node_modules/@pome-sh/shared-types/package.json +2 -1
  128. package/node_modules/@pome-sh/{twin-github → twin-linear}/node_modules/@pome-sh/shared-types/trace-contract.json +1 -1
  129. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/admin-gate.d.ts +35 -0
  130. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/admin-gate.js +103 -0
  131. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/admin-gate.js.map +1 -0
  132. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/auth.d.ts +100 -0
  133. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/auth.js +262 -0
  134. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/auth.js.map +1 -0
  135. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/build-info.d.ts +7 -0
  136. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/build-info.js +14 -0
  137. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/build-info.js.map +1 -0
  138. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/db.d.ts +44 -0
  139. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/db.js +113 -0
  140. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/db.js.map +1 -0
  141. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/errors.d.ts +24 -0
  142. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/errors.js +61 -0
  143. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/errors.js.map +1 -0
  144. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/failure-injection.d.ts +43 -0
  145. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/failure-injection.js +160 -0
  146. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/failure-injection.js.map +1 -0
  147. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/fidelity-inventory.d.ts +121 -0
  148. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/fidelity-inventory.js +204 -0
  149. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/fidelity-inventory.js.map +1 -0
  150. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/fidelity.d.ts +8 -0
  151. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/fidelity.js +39 -0
  152. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/fidelity.js.map +1 -0
  153. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/index.d.ts +372 -0
  154. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/index.js +139 -0
  155. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/index.js.map +1 -0
  156. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/mcp-jsonrpc.d.ts +10 -0
  157. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/mcp-jsonrpc.js +221 -0
  158. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/mcp-jsonrpc.js.map +1 -0
  159. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/parity.d.ts +61 -0
  160. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/parity.js +123 -0
  161. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/parity.js.map +1 -0
  162. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/recorder.d.ts +120 -0
  163. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/recorder.js +368 -0
  164. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/recorder.js.map +1 -0
  165. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/redaction.d.ts +1 -0
  166. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/redaction.js +3 -0
  167. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/redaction.js.map +1 -0
  168. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/server-helpers.d.ts +54 -0
  169. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/server-helpers.js +181 -0
  170. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/server-helpers.js.map +1 -0
  171. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/server.d.ts +46 -0
  172. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/server.js +394 -0
  173. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/server.js.map +1 -0
  174. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/tool-context.d.ts +8 -0
  175. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/tool-context.js +22 -0
  176. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/tool-context.js.map +1 -0
  177. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/package.json +54 -0
  178. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/admin-gate.d.ts +35 -0
  179. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/admin-gate.js +103 -0
  180. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/admin-gate.js.map +1 -0
  181. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/auth.d.ts +100 -0
  182. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/auth.js +262 -0
  183. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/auth.js.map +1 -0
  184. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/build-info.d.ts +7 -0
  185. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/build-info.js +14 -0
  186. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/build-info.js.map +1 -0
  187. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/db.d.ts +44 -0
  188. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/db.js +113 -0
  189. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/db.js.map +1 -0
  190. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/errors.d.ts +24 -0
  191. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/errors.js +61 -0
  192. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/errors.js.map +1 -0
  193. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/failure-injection.d.ts +43 -0
  194. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/failure-injection.js +160 -0
  195. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/failure-injection.js.map +1 -0
  196. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/fidelity-inventory.d.ts +121 -0
  197. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/fidelity-inventory.js +204 -0
  198. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/fidelity-inventory.js.map +1 -0
  199. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/fidelity.d.ts +8 -0
  200. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/fidelity.js +39 -0
  201. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/fidelity.js.map +1 -0
  202. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/index.d.ts +372 -0
  203. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/index.js +139 -0
  204. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/index.js.map +1 -0
  205. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/mcp-jsonrpc.d.ts +10 -0
  206. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/mcp-jsonrpc.js +221 -0
  207. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/mcp-jsonrpc.js.map +1 -0
  208. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/parity.d.ts +61 -0
  209. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/parity.js +123 -0
  210. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/parity.js.map +1 -0
  211. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/recorder.d.ts +120 -0
  212. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/recorder.js +368 -0
  213. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/recorder.js.map +1 -0
  214. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/redaction.d.ts +1 -0
  215. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/redaction.js +3 -0
  216. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/redaction.js.map +1 -0
  217. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/server-helpers.d.ts +54 -0
  218. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/server-helpers.js +181 -0
  219. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/server-helpers.js.map +1 -0
  220. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/server.d.ts +46 -0
  221. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/server.js +394 -0
  222. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/server.js.map +1 -0
  223. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/tool-context.d.ts +8 -0
  224. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/tool-context.js +22 -0
  225. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/tool-context.js.map +1 -0
  226. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/package.json +54 -0
  227. package/package.json +3 -3
  228. package/tasks/00-default-seed.md +1 -1
  229. package/tasks/01-bug-happy-path.md +1 -1
  230. package/tasks/03-already-triaged.md +1 -1
  231. package/tasks/06-mislabeled-needs-fix.md +1 -1
  232. package/tasks/17-in-scope-injection.md +1 -1
  233. package/node_modules/@pome-sh/twin-github/dist/src/domain.js +0 -0
  234. package/node_modules/@pome-sh/twin-github/dist/src/domain.js.map +0 -1
  235. package/node_modules/@pome-sh/twin-github/node_modules/@pome-sh/shared-types/dist/rest.js.map +0 -1
  236. /package/node_modules/@pome-sh/{twin-github → twin-gmail}/node_modules/@pome-sh/sdk/dist/admin-gate.d.ts +0 -0
  237. /package/node_modules/@pome-sh/{twin-github → twin-gmail}/node_modules/@pome-sh/sdk/dist/admin-gate.js +0 -0
  238. /package/node_modules/@pome-sh/{twin-github → twin-gmail}/node_modules/@pome-sh/sdk/dist/admin-gate.js.map +0 -0
  239. /package/node_modules/@pome-sh/{twin-github → twin-gmail}/node_modules/@pome-sh/sdk/dist/auth.d.ts +0 -0
  240. /package/node_modules/@pome-sh/{twin-github → twin-gmail}/node_modules/@pome-sh/sdk/dist/auth.js +0 -0
  241. /package/node_modules/@pome-sh/{twin-github → twin-gmail}/node_modules/@pome-sh/sdk/dist/auth.js.map +0 -0
  242. /package/node_modules/@pome-sh/{twin-github → twin-gmail}/node_modules/@pome-sh/sdk/dist/build-info.d.ts +0 -0
  243. /package/node_modules/@pome-sh/{twin-github → twin-gmail}/node_modules/@pome-sh/sdk/dist/build-info.js +0 -0
  244. /package/node_modules/@pome-sh/{twin-github → twin-gmail}/node_modules/@pome-sh/sdk/dist/build-info.js.map +0 -0
  245. /package/node_modules/@pome-sh/{twin-github → twin-gmail}/node_modules/@pome-sh/sdk/dist/db.d.ts +0 -0
  246. /package/node_modules/@pome-sh/{twin-github → twin-gmail}/node_modules/@pome-sh/sdk/dist/db.js +0 -0
  247. /package/node_modules/@pome-sh/{twin-github → twin-gmail}/node_modules/@pome-sh/sdk/dist/db.js.map +0 -0
  248. /package/node_modules/@pome-sh/{twin-github → twin-gmail}/node_modules/@pome-sh/sdk/dist/errors.d.ts +0 -0
  249. /package/node_modules/@pome-sh/{twin-github → twin-gmail}/node_modules/@pome-sh/sdk/dist/errors.js +0 -0
  250. /package/node_modules/@pome-sh/{twin-github → twin-gmail}/node_modules/@pome-sh/sdk/dist/errors.js.map +0 -0
  251. /package/node_modules/@pome-sh/{twin-github → twin-gmail}/node_modules/@pome-sh/sdk/dist/failure-injection.d.ts +0 -0
  252. /package/node_modules/@pome-sh/{twin-github → twin-gmail}/node_modules/@pome-sh/sdk/dist/failure-injection.js +0 -0
  253. /package/node_modules/@pome-sh/{twin-github → twin-gmail}/node_modules/@pome-sh/sdk/dist/failure-injection.js.map +0 -0
  254. /package/node_modules/@pome-sh/{twin-github → twin-gmail}/node_modules/@pome-sh/sdk/dist/fidelity-inventory.d.ts +0 -0
  255. /package/node_modules/@pome-sh/{twin-github → twin-gmail}/node_modules/@pome-sh/sdk/dist/fidelity-inventory.js +0 -0
  256. /package/node_modules/@pome-sh/{twin-github → twin-gmail}/node_modules/@pome-sh/sdk/dist/fidelity-inventory.js.map +0 -0
  257. /package/node_modules/@pome-sh/{twin-github → twin-gmail}/node_modules/@pome-sh/sdk/dist/fidelity.d.ts +0 -0
  258. /package/node_modules/@pome-sh/{twin-github → twin-gmail}/node_modules/@pome-sh/sdk/dist/fidelity.js +0 -0
  259. /package/node_modules/@pome-sh/{twin-github → twin-gmail}/node_modules/@pome-sh/sdk/dist/fidelity.js.map +0 -0
  260. /package/node_modules/@pome-sh/{twin-github → twin-gmail}/node_modules/@pome-sh/sdk/dist/index.d.ts +0 -0
  261. /package/node_modules/@pome-sh/{twin-github → twin-gmail}/node_modules/@pome-sh/sdk/dist/index.js +0 -0
  262. /package/node_modules/@pome-sh/{twin-github → twin-gmail}/node_modules/@pome-sh/sdk/dist/index.js.map +0 -0
  263. /package/node_modules/@pome-sh/{twin-github → twin-gmail}/node_modules/@pome-sh/sdk/dist/mcp-jsonrpc.d.ts +0 -0
  264. /package/node_modules/@pome-sh/{twin-github → twin-gmail}/node_modules/@pome-sh/sdk/dist/mcp-jsonrpc.js +0 -0
  265. /package/node_modules/@pome-sh/{twin-github → twin-gmail}/node_modules/@pome-sh/sdk/dist/mcp-jsonrpc.js.map +0 -0
  266. /package/node_modules/@pome-sh/{twin-github → twin-gmail}/node_modules/@pome-sh/sdk/dist/parity.d.ts +0 -0
  267. /package/node_modules/@pome-sh/{twin-github → twin-gmail}/node_modules/@pome-sh/sdk/dist/parity.js +0 -0
  268. /package/node_modules/@pome-sh/{twin-github → twin-gmail}/node_modules/@pome-sh/sdk/dist/parity.js.map +0 -0
  269. /package/node_modules/@pome-sh/{twin-github → twin-gmail}/node_modules/@pome-sh/sdk/dist/recorder.d.ts +0 -0
  270. /package/node_modules/@pome-sh/{twin-github → twin-gmail}/node_modules/@pome-sh/sdk/dist/recorder.js +0 -0
  271. /package/node_modules/@pome-sh/{twin-github → twin-gmail}/node_modules/@pome-sh/sdk/dist/recorder.js.map +0 -0
  272. /package/node_modules/@pome-sh/{twin-github → twin-gmail}/node_modules/@pome-sh/sdk/dist/redaction.d.ts +0 -0
  273. /package/node_modules/@pome-sh/{twin-github → twin-gmail}/node_modules/@pome-sh/sdk/dist/redaction.js +0 -0
  274. /package/node_modules/@pome-sh/{twin-github → twin-gmail}/node_modules/@pome-sh/sdk/dist/redaction.js.map +0 -0
  275. /package/node_modules/@pome-sh/{twin-github → twin-gmail}/node_modules/@pome-sh/sdk/dist/server-helpers.d.ts +0 -0
  276. /package/node_modules/@pome-sh/{twin-github → twin-gmail}/node_modules/@pome-sh/sdk/dist/server-helpers.js +0 -0
  277. /package/node_modules/@pome-sh/{twin-github → twin-gmail}/node_modules/@pome-sh/sdk/dist/server-helpers.js.map +0 -0
  278. /package/node_modules/@pome-sh/{twin-github → twin-gmail}/node_modules/@pome-sh/sdk/dist/server.d.ts +0 -0
  279. /package/node_modules/@pome-sh/{twin-github → twin-gmail}/node_modules/@pome-sh/sdk/dist/server.js +0 -0
  280. /package/node_modules/@pome-sh/{twin-github → twin-gmail}/node_modules/@pome-sh/sdk/dist/server.js.map +0 -0
  281. /package/node_modules/@pome-sh/{twin-github → twin-gmail}/node_modules/@pome-sh/sdk/dist/tool-context.d.ts +0 -0
  282. /package/node_modules/@pome-sh/{twin-github → twin-gmail}/node_modules/@pome-sh/sdk/dist/tool-context.js +0 -0
  283. /package/node_modules/@pome-sh/{twin-github → twin-gmail}/node_modules/@pome-sh/sdk/dist/tool-context.js.map +0 -0
  284. /package/node_modules/@pome-sh/{sdk → twin-gmail}/node_modules/@pome-sh/shared-types/dist/errors.d.ts +0 -0
  285. /package/node_modules/@pome-sh/{sdk → twin-gmail}/node_modules/@pome-sh/shared-types/dist/errors.js +0 -0
  286. /package/node_modules/@pome-sh/{sdk → twin-gmail}/node_modules/@pome-sh/shared-types/dist/errors.js.map +0 -0
  287. /package/node_modules/@pome-sh/{sdk → twin-gmail}/node_modules/@pome-sh/shared-types/dist/finalize-shapes.d.ts +0 -0
  288. /package/node_modules/@pome-sh/{sdk → twin-gmail}/node_modules/@pome-sh/shared-types/dist/finalize-shapes.js +0 -0
  289. /package/node_modules/@pome-sh/{sdk → twin-gmail}/node_modules/@pome-sh/shared-types/dist/finalize-shapes.js.map +0 -0
  290. /package/node_modules/@pome-sh/{sdk → twin-gmail}/node_modules/@pome-sh/shared-types/dist/github-access-control.d.ts +0 -0
  291. /package/node_modules/@pome-sh/{sdk → twin-gmail}/node_modules/@pome-sh/shared-types/dist/github-access-control.js +0 -0
  292. /package/node_modules/@pome-sh/{sdk → twin-gmail}/node_modules/@pome-sh/shared-types/dist/github-access-control.js.map +0 -0
  293. /package/node_modules/@pome-sh/{sdk → twin-gmail}/node_modules/@pome-sh/shared-types/dist/identity.d.ts +0 -0
  294. /package/node_modules/@pome-sh/{sdk → twin-gmail}/node_modules/@pome-sh/shared-types/dist/identity.js +0 -0
  295. /package/node_modules/@pome-sh/{sdk → twin-gmail}/node_modules/@pome-sh/shared-types/dist/identity.js.map +0 -0
  296. /package/node_modules/@pome-sh/{sdk → twin-gmail}/node_modules/@pome-sh/shared-types/dist/index.d.ts +0 -0
  297. /package/node_modules/@pome-sh/{sdk → twin-gmail}/node_modules/@pome-sh/shared-types/dist/index.js +0 -0
  298. /package/node_modules/@pome-sh/{sdk → twin-gmail}/node_modules/@pome-sh/shared-types/dist/index.js.map +0 -0
  299. /package/node_modules/@pome-sh/{sdk → twin-gmail}/node_modules/@pome-sh/shared-types/dist/manifest.d.ts +0 -0
  300. /package/node_modules/@pome-sh/{sdk → twin-gmail}/node_modules/@pome-sh/shared-types/dist/manifest.js +0 -0
  301. /package/node_modules/@pome-sh/{sdk → twin-gmail}/node_modules/@pome-sh/shared-types/dist/manifest.js.map +0 -0
  302. /package/node_modules/@pome-sh/{sdk → twin-gmail}/node_modules/@pome-sh/shared-types/dist/otel/event-schema.d.ts +0 -0
  303. /package/node_modules/@pome-sh/{sdk → twin-gmail}/node_modules/@pome-sh/shared-types/dist/otel/event-schema.js +0 -0
  304. /package/node_modules/@pome-sh/{sdk → twin-gmail}/node_modules/@pome-sh/shared-types/dist/otel/event-schema.js.map +0 -0
  305. /package/node_modules/@pome-sh/{sdk → twin-gmail}/node_modules/@pome-sh/shared-types/dist/otel/fixtures/data.d.ts +0 -0
  306. /package/node_modules/@pome-sh/{sdk → twin-gmail}/node_modules/@pome-sh/shared-types/dist/otel/fixtures/data.js +0 -0
  307. /package/node_modules/@pome-sh/{sdk → twin-gmail}/node_modules/@pome-sh/shared-types/dist/otel/fixtures/data.js.map +0 -0
  308. /package/node_modules/@pome-sh/{sdk → twin-gmail}/node_modules/@pome-sh/shared-types/dist/otel/fixtures/index.d.ts +0 -0
  309. /package/node_modules/@pome-sh/{sdk → twin-gmail}/node_modules/@pome-sh/shared-types/dist/otel/fixtures/index.js +0 -0
  310. /package/node_modules/@pome-sh/{sdk → twin-gmail}/node_modules/@pome-sh/shared-types/dist/otel/fixtures/index.js.map +0 -0
  311. /package/node_modules/@pome-sh/{sdk → twin-gmail}/node_modules/@pome-sh/shared-types/dist/otel/index.d.ts +0 -0
  312. /package/node_modules/@pome-sh/{sdk → twin-gmail}/node_modules/@pome-sh/shared-types/dist/otel/index.js +0 -0
  313. /package/node_modules/@pome-sh/{sdk → twin-gmail}/node_modules/@pome-sh/shared-types/dist/otel/index.js.map +0 -0
  314. /package/node_modules/@pome-sh/{sdk → twin-gmail}/node_modules/@pome-sh/shared-types/dist/otel/legacy-shim.d.ts +0 -0
  315. /package/node_modules/@pome-sh/{sdk → twin-gmail}/node_modules/@pome-sh/shared-types/dist/otel/legacy-shim.js +0 -0
  316. /package/node_modules/@pome-sh/{sdk → twin-gmail}/node_modules/@pome-sh/shared-types/dist/otel/legacy-shim.js.map +0 -0
  317. /package/node_modules/@pome-sh/{sdk → twin-gmail}/node_modules/@pome-sh/shared-types/dist/otel/map-span.d.ts +0 -0
  318. /package/node_modules/@pome-sh/{sdk → twin-gmail}/node_modules/@pome-sh/shared-types/dist/otel/map-span.js +0 -0
  319. /package/node_modules/@pome-sh/{sdk → twin-gmail}/node_modules/@pome-sh/shared-types/dist/otel/map-span.js.map +0 -0
  320. /package/node_modules/@pome-sh/{sdk → twin-gmail}/node_modules/@pome-sh/shared-types/dist/otel/nano.d.ts +0 -0
  321. /package/node_modules/@pome-sh/{sdk → twin-gmail}/node_modules/@pome-sh/shared-types/dist/otel/nano.js +0 -0
  322. /package/node_modules/@pome-sh/{sdk → twin-gmail}/node_modules/@pome-sh/shared-types/dist/otel/nano.js.map +0 -0
  323. /package/node_modules/@pome-sh/{sdk → twin-gmail}/node_modules/@pome-sh/shared-types/dist/otel/project.d.ts +0 -0
  324. /package/node_modules/@pome-sh/{sdk → twin-gmail}/node_modules/@pome-sh/shared-types/dist/otel/project.js +0 -0
  325. /package/node_modules/@pome-sh/{sdk → twin-gmail}/node_modules/@pome-sh/shared-types/dist/otel/project.js.map +0 -0
  326. /package/node_modules/@pome-sh/{sdk → twin-gmail}/node_modules/@pome-sh/shared-types/dist/otel/semconv.d.ts +0 -0
  327. /package/node_modules/@pome-sh/{sdk → twin-gmail}/node_modules/@pome-sh/shared-types/dist/otel/semconv.js +0 -0
  328. /package/node_modules/@pome-sh/{sdk → twin-gmail}/node_modules/@pome-sh/shared-types/dist/otel/semconv.js.map +0 -0
  329. /package/node_modules/@pome-sh/{sdk → twin-gmail}/node_modules/@pome-sh/shared-types/dist/otel/span-event.d.ts +0 -0
  330. /package/node_modules/@pome-sh/{sdk → twin-gmail}/node_modules/@pome-sh/shared-types/dist/otel/span-event.js +0 -0
  331. /package/node_modules/@pome-sh/{sdk → twin-gmail}/node_modules/@pome-sh/shared-types/dist/otel/span-event.js.map +0 -0
  332. /package/node_modules/@pome-sh/{sdk → twin-gmail}/node_modules/@pome-sh/shared-types/dist/recorder-events.d.ts +0 -0
  333. /package/node_modules/@pome-sh/{sdk → twin-gmail}/node_modules/@pome-sh/shared-types/dist/recorder-events.js +0 -0
  334. /package/node_modules/@pome-sh/{sdk → twin-gmail}/node_modules/@pome-sh/shared-types/dist/recorder-events.js.map +0 -0
  335. /package/node_modules/@pome-sh/{sdk → twin-gmail}/node_modules/@pome-sh/shared-types/dist/redaction.d.ts +0 -0
  336. /package/node_modules/@pome-sh/{sdk → twin-gmail}/node_modules/@pome-sh/shared-types/dist/redaction.js +0 -0
  337. /package/node_modules/@pome-sh/{sdk → twin-gmail}/node_modules/@pome-sh/shared-types/dist/redaction.js.map +0 -0
  338. /package/node_modules/@pome-sh/{sdk → twin-gmail}/node_modules/@pome-sh/shared-types/dist/rest.d.ts +0 -0
  339. /package/node_modules/@pome-sh/{sdk → twin-gmail}/node_modules/@pome-sh/shared-types/dist/rest.js +0 -0
  340. /package/node_modules/@pome-sh/{sdk → twin-gmail}/node_modules/@pome-sh/shared-types/dist/rest.js.map +0 -0
  341. /package/node_modules/@pome-sh/{sdk → twin-gmail}/node_modules/@pome-sh/shared-types/dist/run.d.ts +0 -0
  342. /package/node_modules/@pome-sh/{sdk → twin-gmail}/node_modules/@pome-sh/shared-types/dist/run.js +0 -0
  343. /package/node_modules/@pome-sh/{sdk → twin-gmail}/node_modules/@pome-sh/shared-types/dist/run.js.map +0 -0
  344. /package/node_modules/@pome-sh/{sdk → twin-gmail}/node_modules/@pome-sh/shared-types/dist/seed-envelope.d.ts +0 -0
  345. /package/node_modules/@pome-sh/{sdk → twin-gmail}/node_modules/@pome-sh/shared-types/dist/seed-envelope.js +0 -0
  346. /package/node_modules/@pome-sh/{sdk → twin-gmail}/node_modules/@pome-sh/shared-types/dist/seed-envelope.js.map +0 -0
  347. /package/node_modules/@pome-sh/{sdk → twin-gmail}/node_modules/@pome-sh/shared-types/dist/seed-state.d.ts +0 -0
  348. /package/node_modules/@pome-sh/{sdk → twin-gmail}/node_modules/@pome-sh/shared-types/dist/seed-state.js +0 -0
  349. /package/node_modules/@pome-sh/{sdk → twin-gmail}/node_modules/@pome-sh/shared-types/dist/seed-state.js.map +0 -0
  350. /package/node_modules/@pome-sh/{sdk → twin-gmail}/node_modules/@pome-sh/shared-types/dist/sessions.d.ts +0 -0
  351. /package/node_modules/@pome-sh/{sdk → twin-gmail}/node_modules/@pome-sh/shared-types/dist/sessions.js +0 -0
  352. /package/node_modules/@pome-sh/{sdk → twin-gmail}/node_modules/@pome-sh/shared-types/dist/sessions.js.map +0 -0
  353. /package/node_modules/@pome-sh/{sdk → twin-gmail}/node_modules/@pome-sh/shared-types/dist/task-vocab.d.ts +0 -0
  354. /package/node_modules/@pome-sh/{sdk → twin-gmail}/node_modules/@pome-sh/shared-types/dist/task-vocab.js +0 -0
  355. /package/node_modules/@pome-sh/{sdk → twin-gmail}/node_modules/@pome-sh/shared-types/dist/task-vocab.js.map +0 -0
  356. /package/node_modules/@pome-sh/{sdk → twin-gmail}/node_modules/@pome-sh/shared-types/dist/task.d.ts +0 -0
  357. /package/node_modules/@pome-sh/{sdk → twin-gmail}/node_modules/@pome-sh/shared-types/dist/task.js +0 -0
  358. /package/node_modules/@pome-sh/{sdk → twin-gmail}/node_modules/@pome-sh/shared-types/dist/task.js.map +0 -0
  359. /package/node_modules/@pome-sh/{sdk → twin-gmail}/node_modules/@pome-sh/shared-types/manifest-schema.json +0 -0
  360. /package/node_modules/@pome-sh/{sdk → twin-gmail}/node_modules/@pome-sh/shared-types/package.json +0 -0
  361. /package/node_modules/@pome-sh/{sdk → twin-gmail}/node_modules/@pome-sh/shared-types/trace-contract.json +0 -0
  362. /package/node_modules/@pome-sh/{twin-github → twin-linear}/node_modules/@pome-sh/shared-types/dist/errors.d.ts +0 -0
  363. /package/node_modules/@pome-sh/{twin-github → twin-linear}/node_modules/@pome-sh/shared-types/dist/errors.js +0 -0
  364. /package/node_modules/@pome-sh/{twin-github → twin-linear}/node_modules/@pome-sh/shared-types/dist/errors.js.map +0 -0
  365. /package/node_modules/@pome-sh/{twin-github → twin-linear}/node_modules/@pome-sh/shared-types/dist/finalize-shapes.d.ts +0 -0
  366. /package/node_modules/@pome-sh/{twin-github → twin-linear}/node_modules/@pome-sh/shared-types/dist/finalize-shapes.js +0 -0
  367. /package/node_modules/@pome-sh/{twin-github → twin-linear}/node_modules/@pome-sh/shared-types/dist/finalize-shapes.js.map +0 -0
  368. /package/node_modules/@pome-sh/{twin-github → twin-linear}/node_modules/@pome-sh/shared-types/dist/github-access-control.d.ts +0 -0
  369. /package/node_modules/@pome-sh/{twin-github → twin-linear}/node_modules/@pome-sh/shared-types/dist/github-access-control.js +0 -0
  370. /package/node_modules/@pome-sh/{twin-github → twin-linear}/node_modules/@pome-sh/shared-types/dist/github-access-control.js.map +0 -0
  371. /package/node_modules/@pome-sh/{twin-github → twin-linear}/node_modules/@pome-sh/shared-types/dist/identity.d.ts +0 -0
  372. /package/node_modules/@pome-sh/{twin-github → twin-linear}/node_modules/@pome-sh/shared-types/dist/identity.js +0 -0
  373. /package/node_modules/@pome-sh/{twin-github → twin-linear}/node_modules/@pome-sh/shared-types/dist/identity.js.map +0 -0
  374. /package/node_modules/@pome-sh/{twin-github → twin-linear}/node_modules/@pome-sh/shared-types/dist/otel/event-schema.d.ts +0 -0
  375. /package/node_modules/@pome-sh/{twin-github → twin-linear}/node_modules/@pome-sh/shared-types/dist/otel/event-schema.js +0 -0
  376. /package/node_modules/@pome-sh/{twin-github → twin-linear}/node_modules/@pome-sh/shared-types/dist/otel/event-schema.js.map +0 -0
  377. /package/node_modules/@pome-sh/{twin-github → twin-linear}/node_modules/@pome-sh/shared-types/dist/otel/fixtures/data.d.ts +0 -0
  378. /package/node_modules/@pome-sh/{twin-github → twin-linear}/node_modules/@pome-sh/shared-types/dist/otel/fixtures/data.js +0 -0
  379. /package/node_modules/@pome-sh/{twin-github → twin-linear}/node_modules/@pome-sh/shared-types/dist/otel/fixtures/data.js.map +0 -0
  380. /package/node_modules/@pome-sh/{twin-github → twin-linear}/node_modules/@pome-sh/shared-types/dist/otel/fixtures/index.d.ts +0 -0
  381. /package/node_modules/@pome-sh/{twin-github → twin-linear}/node_modules/@pome-sh/shared-types/dist/otel/fixtures/index.js +0 -0
  382. /package/node_modules/@pome-sh/{twin-github → twin-linear}/node_modules/@pome-sh/shared-types/dist/otel/fixtures/index.js.map +0 -0
  383. /package/node_modules/@pome-sh/{twin-github → twin-linear}/node_modules/@pome-sh/shared-types/dist/otel/index.d.ts +0 -0
  384. /package/node_modules/@pome-sh/{twin-github → twin-linear}/node_modules/@pome-sh/shared-types/dist/otel/index.js +0 -0
  385. /package/node_modules/@pome-sh/{twin-github → twin-linear}/node_modules/@pome-sh/shared-types/dist/otel/index.js.map +0 -0
  386. /package/node_modules/@pome-sh/{twin-github → twin-linear}/node_modules/@pome-sh/shared-types/dist/otel/legacy-shim.d.ts +0 -0
  387. /package/node_modules/@pome-sh/{twin-github → twin-linear}/node_modules/@pome-sh/shared-types/dist/otel/legacy-shim.js +0 -0
  388. /package/node_modules/@pome-sh/{twin-github → twin-linear}/node_modules/@pome-sh/shared-types/dist/otel/legacy-shim.js.map +0 -0
  389. /package/node_modules/@pome-sh/{twin-github → twin-linear}/node_modules/@pome-sh/shared-types/dist/otel/map-span.d.ts +0 -0
  390. /package/node_modules/@pome-sh/{twin-github → twin-linear}/node_modules/@pome-sh/shared-types/dist/otel/map-span.js +0 -0
  391. /package/node_modules/@pome-sh/{twin-github → twin-linear}/node_modules/@pome-sh/shared-types/dist/otel/map-span.js.map +0 -0
  392. /package/node_modules/@pome-sh/{twin-github → twin-linear}/node_modules/@pome-sh/shared-types/dist/otel/nano.d.ts +0 -0
  393. /package/node_modules/@pome-sh/{twin-github → twin-linear}/node_modules/@pome-sh/shared-types/dist/otel/nano.js +0 -0
  394. /package/node_modules/@pome-sh/{twin-github → twin-linear}/node_modules/@pome-sh/shared-types/dist/otel/nano.js.map +0 -0
  395. /package/node_modules/@pome-sh/{twin-github → twin-linear}/node_modules/@pome-sh/shared-types/dist/otel/project.d.ts +0 -0
  396. /package/node_modules/@pome-sh/{twin-github → twin-linear}/node_modules/@pome-sh/shared-types/dist/otel/project.js +0 -0
  397. /package/node_modules/@pome-sh/{twin-github → twin-linear}/node_modules/@pome-sh/shared-types/dist/otel/project.js.map +0 -0
  398. /package/node_modules/@pome-sh/{twin-github → twin-linear}/node_modules/@pome-sh/shared-types/dist/otel/semconv.d.ts +0 -0
  399. /package/node_modules/@pome-sh/{twin-github → twin-linear}/node_modules/@pome-sh/shared-types/dist/otel/semconv.js +0 -0
  400. /package/node_modules/@pome-sh/{twin-github → twin-linear}/node_modules/@pome-sh/shared-types/dist/otel/semconv.js.map +0 -0
  401. /package/node_modules/@pome-sh/{twin-github → twin-linear}/node_modules/@pome-sh/shared-types/dist/otel/span-event.d.ts +0 -0
  402. /package/node_modules/@pome-sh/{twin-github → twin-linear}/node_modules/@pome-sh/shared-types/dist/otel/span-event.js +0 -0
  403. /package/node_modules/@pome-sh/{twin-github → twin-linear}/node_modules/@pome-sh/shared-types/dist/otel/span-event.js.map +0 -0
  404. /package/node_modules/@pome-sh/{twin-github → twin-linear}/node_modules/@pome-sh/shared-types/dist/recorder-events.d.ts +0 -0
  405. /package/node_modules/@pome-sh/{twin-github → twin-linear}/node_modules/@pome-sh/shared-types/dist/recorder-events.js +0 -0
  406. /package/node_modules/@pome-sh/{twin-github → twin-linear}/node_modules/@pome-sh/shared-types/dist/recorder-events.js.map +0 -0
  407. /package/node_modules/@pome-sh/{twin-github → twin-linear}/node_modules/@pome-sh/shared-types/dist/redaction.d.ts +0 -0
  408. /package/node_modules/@pome-sh/{twin-github → twin-linear}/node_modules/@pome-sh/shared-types/dist/redaction.js +0 -0
  409. /package/node_modules/@pome-sh/{twin-github → twin-linear}/node_modules/@pome-sh/shared-types/dist/redaction.js.map +0 -0
  410. /package/node_modules/@pome-sh/{twin-github → twin-linear}/node_modules/@pome-sh/shared-types/dist/run.d.ts +0 -0
  411. /package/node_modules/@pome-sh/{twin-github → twin-linear}/node_modules/@pome-sh/shared-types/dist/run.js +0 -0
  412. /package/node_modules/@pome-sh/{twin-github → twin-linear}/node_modules/@pome-sh/shared-types/dist/run.js.map +0 -0
  413. /package/node_modules/@pome-sh/{twin-github → twin-linear}/node_modules/@pome-sh/shared-types/dist/seed-envelope.d.ts +0 -0
  414. /package/node_modules/@pome-sh/{twin-github → twin-linear}/node_modules/@pome-sh/shared-types/dist/seed-envelope.js +0 -0
  415. /package/node_modules/@pome-sh/{twin-github → twin-linear}/node_modules/@pome-sh/shared-types/dist/seed-envelope.js.map +0 -0
  416. /package/node_modules/@pome-sh/{twin-github → twin-linear}/node_modules/@pome-sh/shared-types/dist/seed-state.d.ts +0 -0
  417. /package/node_modules/@pome-sh/{twin-github → twin-linear}/node_modules/@pome-sh/shared-types/dist/seed-state.js +0 -0
  418. /package/node_modules/@pome-sh/{twin-github → twin-linear}/node_modules/@pome-sh/shared-types/dist/seed-state.js.map +0 -0
  419. /package/node_modules/@pome-sh/{twin-github → twin-linear}/node_modules/@pome-sh/shared-types/dist/sessions.d.ts +0 -0
  420. /package/node_modules/@pome-sh/{twin-github → twin-linear}/node_modules/@pome-sh/shared-types/dist/sessions.js +0 -0
  421. /package/node_modules/@pome-sh/{twin-github → twin-linear}/node_modules/@pome-sh/shared-types/dist/sessions.js.map +0 -0
  422. /package/node_modules/@pome-sh/{twin-github → twin-linear}/node_modules/@pome-sh/shared-types/dist/task-vocab.d.ts +0 -0
  423. /package/node_modules/@pome-sh/{twin-github → twin-linear}/node_modules/@pome-sh/shared-types/dist/task-vocab.js +0 -0
  424. /package/node_modules/@pome-sh/{twin-github → twin-linear}/node_modules/@pome-sh/shared-types/dist/task-vocab.js.map +0 -0
  425. /package/node_modules/@pome-sh/{twin-github → twin-linear}/node_modules/@pome-sh/shared-types/dist/task.d.ts +0 -0
  426. /package/node_modules/@pome-sh/{twin-github → twin-linear}/node_modules/@pome-sh/shared-types/dist/task.js +0 -0
  427. /package/node_modules/@pome-sh/{twin-github → twin-linear}/node_modules/@pome-sh/shared-types/dist/task.js.map +0 -0
@@ -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
  }[];
@@ -0,0 +1,21 @@
1
+ import { type CheckDefinition } from "@pome-sh/sdk/checks";
2
+ export interface GitHubCheckStateLabel {
3
+ name?: string;
4
+ }
5
+ export interface GitHubCheckStateIssue {
6
+ number?: number;
7
+ labels?: string[] | null;
8
+ }
9
+ export interface GitHubCheckStateRepo {
10
+ owner?: string;
11
+ name?: string;
12
+ full_name?: string;
13
+ labels?: GitHubCheckStateLabel[] | null;
14
+ issues?: GitHubCheckStateIssue[] | null;
15
+ }
16
+ export interface GitHubCheckState {
17
+ repositories?: GitHubCheckStateRepo[] | null;
18
+ }
19
+ export declare const GITHUB_CHECKS: readonly [CheckDefinition<GitHubCheckState, {
20
+ repo: string;
21
+ }>];
@@ -0,0 +1,90 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ //
3
+ // The GitHub twin's assertable check vocabulary (F-1073, milestone A2b).
4
+ //
5
+ // These live HERE, next to the state they read, because the twin owns that
6
+ // state's shape. pome-cloud imports this module from npm and adapts each
7
+ // declaration onto its predicate engine, so there is no second copy to
8
+ // reconcile — only a pin that can fall behind, which is what its drift gate
9
+ // exists to catch.
10
+ import { defineCheck, repoRef } from "@pome-sh/sdk/checks";
11
+ // `ref` is always `owner/name` — the `repoRef` param type will not parse
12
+ // anything else — so there is deliberately no bare-name branch here. The
13
+ // owner/name fallback is for a state export that somehow omits `full_name`,
14
+ // not for a bare-name reference, which cannot reach this function.
15
+ function findRepo(state, ref) {
16
+ for (const repo of state.repositories ?? []) {
17
+ if (repo.full_name === ref)
18
+ return repo;
19
+ if (repo.owner != null && repo.name != null && `${repo.owner}/${repo.name}` === ref)
20
+ return repo;
21
+ }
22
+ return null;
23
+ }
24
+ function labelNames(repo) {
25
+ const names = new Set();
26
+ for (const label of repo.labels ?? []) {
27
+ if (typeof label.name === "string" && label.name.length > 0)
28
+ names.add(label.name);
29
+ }
30
+ return names;
31
+ }
32
+ const noNewLabels = defineCheck({
33
+ id: "github.no-new-labels",
34
+ // F-1074 — the same explanation the comment below carries, in the one place
35
+ // an author can actually reach it.
36
+ description: "Compares the repository's label DEFINITIONS in the seed against the final state. " +
37
+ "Applying an ALREADY-DEFINED label to an issue PASSES this check — only creating a " +
38
+ "label the repo did not already define fails it. `addIssueLabels` rejects an undefined " +
39
+ "label, so an examinee cannot apply a new one without creating it first, which is what " +
40
+ "makes this tight. Needs the seed: it is a delta, not a state assertion.",
41
+ // The repo is named on purpose. Without it the sentence reads as an
42
+ // issue-level claim — "the agent did not add labels to the issue" — which is
43
+ // WIDER than what this predicate compares. `create_label` is repo-scoped in
44
+ // GitHub's own vocabulary and `add_issue_labels` is the issue-scoped one, so
45
+ // naming the repo is what tells a reader which of the two is being asserted.
46
+ //
47
+ // An agent that applies an ALREADY-DEFINED label to an issue passes this
48
+ // check, correctly. The assertion that catches that is
49
+ // `Issue #N has exactly one classification label`.
50
+ template: "No new labels were created in `{repo}`",
51
+ params: { repo: repoRef },
52
+ // The whole point: this is a delta, and it is unanswerable without the seed.
53
+ substrate: "seed+final",
54
+ // It should PASS on the untouched seed and can only be broken by the
55
+ // examinee acting.
56
+ polarity: () => "negative",
57
+ // Nothing here is a caller-supplied literal hunted for inside the state, so
58
+ // there is nothing a redactor could silently delete out from under it.
59
+ subject: () => null,
60
+ // The repo is a SELECTOR, not a scanned value. Falsifying it would move the
61
+ // verdict ("repo not found") for a reason that never reaches the assertion —
62
+ // a clean bill this check did not earn. Reported as `no_trigger`.
63
+ vacuityMutant: () => null,
64
+ evaluate({ repo }, { seed, final }) {
65
+ // The engine guards this before calling; the check guards too, so a
66
+ // consumer that forgets gets a named skip rather than a vacuous pass.
67
+ if (seed === null)
68
+ return { passed: false, reason: "seed_missing", status: "skipped" };
69
+ const seedRepo = findRepo(seed, repo);
70
+ if (!seedRepo)
71
+ return { passed: false, reason: `repo ${repo} not found in the seed state` };
72
+ const finalRepo = findRepo(final, repo);
73
+ if (!finalRepo)
74
+ return { passed: false, reason: `repo ${repo} not found in state_final` };
75
+ const before = labelNames(seedRepo);
76
+ const created = [...labelNames(finalRepo)].filter((name) => !before.has(name)).sort();
77
+ if (created.length === 0) {
78
+ return {
79
+ passed: true,
80
+ reason: `no labels were created in ${repo} (${before.size} defined at seed, unchanged at finish)`,
81
+ };
82
+ }
83
+ return {
84
+ passed: false,
85
+ reason: `labels created in ${repo}: ${created.map((name) => `\`${name}\``).join(", ")}`,
86
+ };
87
+ },
88
+ });
89
+ export const GITHUB_CHECKS = [noNewLabels];
90
+ //# sourceMappingURL=checks.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"checks.js","sourceRoot":"","sources":["../../src/checks.ts"],"names":[],"mappings":"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"}