@pome-sh/cli 0.4.0 → 0.7.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 (369) hide show
  1. package/README.md +31 -6
  2. package/dist/build-info.json +3 -3
  3. package/dist/examples/agents/llm-refund-agent.js +1 -1
  4. package/dist/src/cli/compile-seeds.js +22 -22
  5. package/dist/src/cli/default-task.d.ts +2 -2
  6. package/dist/src/cli/default-task.js +4 -4
  7. package/dist/src/cli/docs-topics.js +49 -16
  8. package/dist/src/cli/eval.d.ts +1 -1
  9. package/dist/src/cli/eval.js +3 -3
  10. package/dist/src/cli/init-sdk.js +1 -1
  11. package/dist/src/cli/install.d.ts +4 -41
  12. package/dist/src/cli/install.js +31 -412
  13. package/dist/src/cli/main.js +212 -118
  14. package/dist/src/cli/register.d.ts +4 -22
  15. package/dist/src/cli/register.js +6 -31
  16. package/dist/src/cli/session.js +1 -1
  17. package/dist/src/cli/tasks-catalog.d.ts +25 -0
  18. package/dist/src/cli/{scenarios-catalog.js → tasks-catalog.js} +9 -9
  19. package/dist/src/cli/tasks.d.ts +13 -0
  20. package/dist/src/cli/{scenarios.js → tasks.js} +32 -32
  21. package/dist/src/demo/agent.js +2 -2
  22. package/dist/src/demo/runDemo.d.ts +3 -3
  23. package/dist/src/demo/runDemo.js +14 -14
  24. package/dist/src/doctor/checks.js +12 -3
  25. package/dist/src/doctor/render.d.ts +9 -0
  26. package/dist/src/doctor/render.js +7 -0
  27. package/dist/src/fix-prompt/prompt.d.ts +3 -3
  28. package/dist/src/fix-prompt/prompt.js +4 -4
  29. package/dist/src/hosted/client.d.ts +6 -6
  30. package/dist/src/hosted/client.js +6 -6
  31. package/dist/src/hosted/errors.js +1 -1
  32. package/dist/src/hosted/evalResultCache.d.ts +1 -1
  33. package/dist/src/hosted/evalResultCache.js +1 -1
  34. package/dist/src/hosted/evalResultView.d.ts +1 -1
  35. package/dist/src/hosted/evalResultView.js +1 -1
  36. package/dist/src/hosted/uploadAndFinalize.d.ts +1 -1
  37. package/dist/src/hosted/uploadAndFinalize.js +2 -2
  38. package/dist/src/recorder/artifacts.d.ts +2 -2
  39. package/dist/src/recorder/inspect.d.ts +3 -3
  40. package/dist/src/recorder/inspect.js +3 -3
  41. package/dist/src/runner/captureServerChild.js +1 -1
  42. package/dist/src/runner/{runScenario.d.ts → runTask.d.ts} +3 -3
  43. package/dist/src/runner/{runScenario.js → runTask.js} +4 -4
  44. package/dist/src/runner/{runScenarioCore.d.ts → runTaskCore.d.ts} +2 -2
  45. package/dist/src/runner/{runScenarioHosted.d.ts → runTaskHosted.d.ts} +6 -6
  46. package/dist/src/runner/{runScenarioHosted.js → runTaskHosted.js} +12 -12
  47. package/dist/src/runner/runTrialGroup.d.ts +4 -4
  48. package/dist/src/runner/runTrialGroup.js +10 -10
  49. package/dist/src/runner/trialCount.js +1 -1
  50. package/dist/src/task/parseTask.d.ts +9 -0
  51. package/dist/src/{scenario/parseScenario.js → task/parseTask.js} +21 -21
  52. package/dist/src/{scenario → task}/seed-compiler-hosted.d.ts +1 -1
  53. package/dist/src/{scenario → task}/seed-compiler-hosted.js +1 -1
  54. package/dist/src/{scenario/scenarioSchema.d.ts → task/taskSchema.d.ts} +4 -4
  55. package/dist/src/{scenario/scenarioSchema.js → task/taskSchema.js} +6 -6
  56. package/examples/agents/llm-refund-agent.ts +1 -1
  57. package/node_modules/@pome-sh/twin-gmail/CHANGELOG.md +5 -0
  58. package/node_modules/@pome-sh/twin-gmail/package.json +2 -2
  59. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/index.d.ts +1 -0
  60. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/index.js +1 -0
  61. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/index.js.map +1 -1
  62. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/manifest.d.ts +31 -0
  63. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/manifest.js +76 -0
  64. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/manifest.js.map +1 -0
  65. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/rest.d.ts +9 -0
  66. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/rest.js +27 -0
  67. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/dist/rest.js.map +1 -1
  68. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/manifest-schema.json +68 -0
  69. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/package.json +2 -1
  70. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/shared-types/trace-contract.json +1 -1
  71. package/node_modules/@pome-sh/twin-slack/package.json +3 -3
  72. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/shared-types/dist/index.d.ts +1 -0
  73. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/shared-types/dist/index.js +1 -0
  74. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/shared-types/dist/index.js.map +1 -1
  75. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/shared-types/dist/manifest.d.ts +31 -0
  76. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/shared-types/dist/manifest.js +76 -0
  77. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/shared-types/dist/manifest.js.map +1 -0
  78. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/shared-types/dist/rest.d.ts +9 -0
  79. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/shared-types/dist/rest.js +27 -0
  80. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/shared-types/dist/rest.js.map +1 -1
  81. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/shared-types/manifest-schema.json +68 -0
  82. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/shared-types/package.json +2 -1
  83. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/shared-types/trace-contract.json +1 -1
  84. package/node_modules/@pome-sh/twin-stripe/package.json +3 -3
  85. package/package.json +6 -7
  86. package/{scenarios → tasks}/00-default-seed.md +1 -1
  87. package/{scenarios → tasks}/14-stripe-refund-retry.md +1 -1
  88. package/dist/src/cli/agent-sdk.d.ts +0 -32
  89. package/dist/src/cli/agent-sdk.js +0 -105
  90. package/dist/src/cli/embedded-wiring.d.ts +0 -47
  91. package/dist/src/cli/embedded-wiring.js +0 -443
  92. package/dist/src/cli/scenarios-catalog.d.ts +0 -25
  93. package/dist/src/cli/scenarios.d.ts +0 -13
  94. package/dist/src/cli/skills.d.ts +0 -8
  95. package/dist/src/cli/skills.js +0 -141
  96. package/dist/src/scenario/parseScenario.d.ts +0 -9
  97. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/admin-gate.d.ts +0 -35
  98. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/admin-gate.js +0 -103
  99. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/admin-gate.js.map +0 -1
  100. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/auth.d.ts +0 -100
  101. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/auth.js +0 -262
  102. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/auth.js.map +0 -1
  103. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/build-info.d.ts +0 -7
  104. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/build-info.js +0 -14
  105. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/build-info.js.map +0 -1
  106. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/db.d.ts +0 -44
  107. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/db.js +0 -113
  108. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/db.js.map +0 -1
  109. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/errors.d.ts +0 -24
  110. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/errors.js +0 -61
  111. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/errors.js.map +0 -1
  112. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/failure-injection.d.ts +0 -43
  113. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/failure-injection.js +0 -160
  114. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/failure-injection.js.map +0 -1
  115. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/fidelity-inventory.d.ts +0 -121
  116. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/fidelity-inventory.js +0 -204
  117. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/fidelity-inventory.js.map +0 -1
  118. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/fidelity.d.ts +0 -8
  119. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/fidelity.js +0 -39
  120. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/fidelity.js.map +0 -1
  121. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/index.d.ts +0 -372
  122. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/index.js +0 -139
  123. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/index.js.map +0 -1
  124. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/mcp-jsonrpc.d.ts +0 -10
  125. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/mcp-jsonrpc.js +0 -221
  126. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/mcp-jsonrpc.js.map +0 -1
  127. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/parity.d.ts +0 -61
  128. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/parity.js +0 -123
  129. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/parity.js.map +0 -1
  130. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/recorder.d.ts +0 -120
  131. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/recorder.js +0 -368
  132. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/recorder.js.map +0 -1
  133. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/redaction.d.ts +0 -1
  134. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/redaction.js +0 -3
  135. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/redaction.js.map +0 -1
  136. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/server-helpers.d.ts +0 -54
  137. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/server-helpers.js +0 -181
  138. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/server-helpers.js.map +0 -1
  139. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/server.d.ts +0 -46
  140. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/server.js +0 -394
  141. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/server.js.map +0 -1
  142. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/tool-context.d.ts +0 -8
  143. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/tool-context.js +0 -22
  144. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/dist/tool-context.js.map +0 -1
  145. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/sdk/package.json +0 -54
  146. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/errors.d.ts +0 -39
  147. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/errors.js +0 -33
  148. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/errors.js.map +0 -1
  149. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/finalize-shapes.d.ts +0 -254
  150. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/finalize-shapes.js +0 -122
  151. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/finalize-shapes.js.map +0 -1
  152. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/github-access-control.d.ts +0 -175
  153. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/github-access-control.js +0 -182
  154. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/github-access-control.js.map +0 -1
  155. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/identity.d.ts +0 -90
  156. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/identity.js +0 -72
  157. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/identity.js.map +0 -1
  158. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/index.d.ts +0 -27
  159. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/index.js +0 -34
  160. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/index.js.map +0 -1
  161. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/otel/event-schema.d.ts +0 -331
  162. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/otel/event-schema.js +0 -33
  163. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/otel/event-schema.js.map +0 -1
  164. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/otel/fixtures/data.d.ts +0 -65
  165. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/otel/fixtures/data.js +0 -455
  166. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/otel/fixtures/data.js.map +0 -1
  167. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/otel/fixtures/index.d.ts +0 -39
  168. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/otel/fixtures/index.js +0 -47
  169. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/otel/fixtures/index.js.map +0 -1
  170. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/otel/index.d.ts +0 -25
  171. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/otel/index.js +0 -27
  172. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/otel/index.js.map +0 -1
  173. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/otel/legacy-shim.d.ts +0 -100
  174. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/otel/legacy-shim.js +0 -193
  175. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/otel/legacy-shim.js.map +0 -1
  176. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/otel/map-span.d.ts +0 -64
  177. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/otel/map-span.js +0 -112
  178. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/otel/map-span.js.map +0 -1
  179. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/otel/nano.d.ts +0 -26
  180. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/otel/nano.js +0 -61
  181. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/otel/nano.js.map +0 -1
  182. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/otel/project.d.ts +0 -42
  183. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/otel/project.js +0 -104
  184. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/otel/project.js.map +0 -1
  185. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/otel/semconv.d.ts +0 -57
  186. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/otel/semconv.js +0 -102
  187. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/otel/semconv.js.map +0 -1
  188. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/otel/span-event.d.ts +0 -134
  189. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/otel/span-event.js +0 -152
  190. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/otel/span-event.js.map +0 -1
  191. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/recorder-events.d.ts +0 -480
  192. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/recorder-events.js +0 -270
  193. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/recorder-events.js.map +0 -1
  194. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/redaction.d.ts +0 -2
  195. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/redaction.js +0 -152
  196. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/redaction.js.map +0 -1
  197. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/rest.d.ts +0 -248
  198. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/rest.js +0 -308
  199. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/rest.js.map +0 -1
  200. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/run.d.ts +0 -208
  201. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/run.js +0 -170
  202. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/run.js.map +0 -1
  203. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/seed-envelope.d.ts +0 -14
  204. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/seed-envelope.js +0 -46
  205. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/seed-envelope.js.map +0 -1
  206. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/seed-state.d.ts +0 -1006
  207. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/seed-state.js +0 -263
  208. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/seed-state.js.map +0 -1
  209. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/sessions.d.ts +0 -53
  210. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/sessions.js +0 -51
  211. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/sessions.js.map +0 -1
  212. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/task-vocab.d.ts +0 -80
  213. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/task-vocab.js +0 -98
  214. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/task-vocab.js.map +0 -1
  215. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/task.d.ts +0 -859
  216. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/task.js +0 -60
  217. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/dist/task.js.map +0 -1
  218. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/package.json +0 -54
  219. package/node_modules/@pome-sh/twin-gmail/node_modules/@pome-sh/shared-types/trace-contract.json +0 -41
  220. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/admin-gate.d.ts +0 -35
  221. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/admin-gate.js +0 -103
  222. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/admin-gate.js.map +0 -1
  223. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/auth.d.ts +0 -100
  224. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/auth.js +0 -262
  225. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/auth.js.map +0 -1
  226. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/build-info.d.ts +0 -7
  227. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/build-info.js +0 -14
  228. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/build-info.js.map +0 -1
  229. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/db.d.ts +0 -44
  230. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/db.js +0 -113
  231. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/db.js.map +0 -1
  232. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/errors.d.ts +0 -24
  233. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/errors.js +0 -61
  234. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/errors.js.map +0 -1
  235. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/failure-injection.d.ts +0 -43
  236. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/failure-injection.js +0 -160
  237. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/failure-injection.js.map +0 -1
  238. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/fidelity-inventory.d.ts +0 -121
  239. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/fidelity-inventory.js +0 -204
  240. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/fidelity-inventory.js.map +0 -1
  241. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/fidelity.d.ts +0 -8
  242. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/fidelity.js +0 -39
  243. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/fidelity.js.map +0 -1
  244. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/index.d.ts +0 -372
  245. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/index.js +0 -139
  246. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/index.js.map +0 -1
  247. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/mcp-jsonrpc.d.ts +0 -10
  248. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/mcp-jsonrpc.js +0 -221
  249. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/mcp-jsonrpc.js.map +0 -1
  250. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/parity.d.ts +0 -61
  251. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/parity.js +0 -123
  252. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/parity.js.map +0 -1
  253. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/recorder.d.ts +0 -120
  254. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/recorder.js +0 -368
  255. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/recorder.js.map +0 -1
  256. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/redaction.d.ts +0 -1
  257. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/redaction.js +0 -3
  258. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/redaction.js.map +0 -1
  259. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/server-helpers.d.ts +0 -54
  260. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/server-helpers.js +0 -181
  261. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/server-helpers.js.map +0 -1
  262. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/server.d.ts +0 -46
  263. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/server.js +0 -394
  264. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/server.js.map +0 -1
  265. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/tool-context.d.ts +0 -8
  266. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/tool-context.js +0 -22
  267. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/dist/tool-context.js.map +0 -1
  268. package/node_modules/@pome-sh/twin-slack/node_modules/@pome-sh/sdk/package.json +0 -54
  269. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/admin-gate.d.ts +0 -35
  270. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/admin-gate.js +0 -103
  271. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/admin-gate.js.map +0 -1
  272. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/auth.d.ts +0 -100
  273. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/auth.js +0 -262
  274. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/auth.js.map +0 -1
  275. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/build-info.d.ts +0 -7
  276. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/build-info.js +0 -14
  277. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/build-info.js.map +0 -1
  278. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/db.d.ts +0 -44
  279. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/db.js +0 -113
  280. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/db.js.map +0 -1
  281. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/errors.d.ts +0 -24
  282. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/errors.js +0 -61
  283. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/errors.js.map +0 -1
  284. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/failure-injection.d.ts +0 -43
  285. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/failure-injection.js +0 -160
  286. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/failure-injection.js.map +0 -1
  287. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/fidelity-inventory.d.ts +0 -121
  288. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/fidelity-inventory.js +0 -204
  289. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/fidelity-inventory.js.map +0 -1
  290. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/fidelity.d.ts +0 -8
  291. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/fidelity.js +0 -39
  292. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/fidelity.js.map +0 -1
  293. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/index.d.ts +0 -372
  294. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/index.js +0 -139
  295. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/index.js.map +0 -1
  296. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/mcp-jsonrpc.d.ts +0 -10
  297. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/mcp-jsonrpc.js +0 -221
  298. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/mcp-jsonrpc.js.map +0 -1
  299. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/parity.d.ts +0 -61
  300. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/parity.js +0 -123
  301. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/parity.js.map +0 -1
  302. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/recorder.d.ts +0 -120
  303. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/recorder.js +0 -368
  304. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/recorder.js.map +0 -1
  305. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/redaction.d.ts +0 -1
  306. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/redaction.js +0 -3
  307. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/redaction.js.map +0 -1
  308. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/server-helpers.d.ts +0 -54
  309. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/server-helpers.js +0 -181
  310. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/server-helpers.js.map +0 -1
  311. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/server.d.ts +0 -46
  312. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/server.js +0 -394
  313. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/server.js.map +0 -1
  314. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/tool-context.d.ts +0 -8
  315. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/tool-context.js +0 -22
  316. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/dist/tool-context.js.map +0 -1
  317. package/node_modules/@pome-sh/twin-stripe/node_modules/@pome-sh/sdk/package.json +0 -54
  318. package/skills/pome-setup/SKILL.md +0 -150
  319. package/skills/pome-test/SKILL.md +0 -137
  320. /package/dist/src/runner/{runScenarioCore.js → runTaskCore.js} +0 -0
  321. /package/dist/src/{scenario → task}/githubSeedCompat.d.ts +0 -0
  322. /package/dist/src/{scenario → task}/githubSeedCompat.js +0 -0
  323. /package/dist/src/{scenario → task}/seed-compiler.d.ts +0 -0
  324. /package/dist/src/{scenario → task}/seed-compiler.js +0 -0
  325. /package/dist/src/{scenario → task}/seed-verifier.d.ts +0 -0
  326. /package/dist/src/{scenario → task}/seed-verifier.js +0 -0
  327. /package/{scenarios → tasks}/01-bug-happy-path.md +0 -0
  328. /package/{scenarios → tasks}/01-bug-happy-path.seed.json +0 -0
  329. /package/{scenarios → tasks}/03-already-triaged.md +0 -0
  330. /package/{scenarios → tasks}/03-already-triaged.seed.json +0 -0
  331. /package/{scenarios → tasks}/04-judge-context.md +0 -0
  332. /package/{scenarios → tasks}/04-judge-context.seed.json +0 -0
  333. /package/{scenarios → tasks}/05-github-identity-spoof.md +0 -0
  334. /package/{scenarios → tasks}/05-github-identity-spoof.seed.json +0 -0
  335. /package/{scenarios → tasks}/06-mislabeled-needs-fix.md +0 -0
  336. /package/{scenarios → tasks}/06-mislabeled-needs-fix.seed.json +0 -0
  337. /package/{scenarios → tasks}/07-pr-backdoor-review.md +0 -0
  338. /package/{scenarios → tasks}/07-pr-backdoor-review.seed.json +0 -0
  339. /package/{scenarios → tasks}/08-prompt-injection-issue-body.md +0 -0
  340. /package/{scenarios → tasks}/08-prompt-injection-issue-body.seed.json +0 -0
  341. /package/{scenarios → tasks}/09-security-revert-rationalization.md +0 -0
  342. /package/{scenarios → tasks}/09-security-revert-rationalization.seed.json +0 -0
  343. /package/{scenarios → tasks}/10-stripe-create-payment-intent.md +0 -0
  344. /package/{scenarios → tasks}/11-stripe-handle-failed-payment.md +0 -0
  345. /package/{scenarios → tasks}/12-stripe-reconcile-event.md +0 -0
  346. /package/{scenarios → tasks}/13-stripe-x402-payment-required.md +0 -0
  347. /package/{scenarios → tasks}/14-stripe-refund-retry.expected-events.jsonl +0 -0
  348. /package/{scenarios → tasks}/17-in-scope-injection.md +0 -0
  349. /package/{scenarios → tasks}/17-in-scope-injection.seed.json +0 -0
  350. /package/{scenarios → tasks}/18-fabricate-green-ci.md +0 -0
  351. /package/{scenarios → tasks}/18-fabricate-green-ci.seed.json +0 -0
  352. /package/{scenarios → tasks}/19-stripe-rerefund-persuasion.md +0 -0
  353. /package/{scenarios → tasks}/19-stripe-rerefund-persuasion.seed.json +0 -0
  354. /package/{scenarios → tasks}/20-slack-exfiltration.md +0 -0
  355. /package/{scenarios → tasks}/20-slack-exfiltration.seed.json +0 -0
  356. /package/{scenarios → tasks}/21-slack-injection.md +0 -0
  357. /package/{scenarios → tasks}/21-slack-injection.seed.json +0 -0
  358. /package/{scenarios → tasks}/22-gmail-inbox-triage.md +0 -0
  359. /package/{scenarios → tasks}/22-gmail-inbox-triage.seed.json +0 -0
  360. /package/{scenarios → tasks}/23-gmail-first-party-parity.md +0 -0
  361. /package/{scenarios → tasks}/23-gmail-first-party-parity.seed.json +0 -0
  362. /package/{scenarios → tasks}/24-linear-issue-triage.md +0 -0
  363. /package/{scenarios → tasks}/24-linear-issue-triage.seed.json +0 -0
  364. /package/{scenarios → tasks}/25-linear-comment-label-triage.md +0 -0
  365. /package/{scenarios → tasks}/25-linear-comment-label-triage.seed.json +0 -0
  366. /package/{scenarios → tasks}/26-github-linear-handoff.md +0 -0
  367. /package/{scenarios → tasks}/26-github-linear-handoff.seed.json +0 -0
  368. /package/{scenarios → tasks}/27-gmail-github-support-escalation.md +0 -0
  369. /package/{scenarios → tasks}/27-gmail-github-support-escalation.seed.json +0 -0
@@ -19,7 +19,7 @@ import { postAgentResolver, resolveSeams, } from "./agent-resolver.js";
19
19
  import { resolveCredentials } from "./credentials.js";
20
20
  import { suggestFramework } from "./frameworks.js";
21
21
  import { ensurePomeGitignored, readLinkCache, resolveCachedAgentId, writeLinkCache, } from "./link-cache.js";
22
- import { readManifest, readRequiredManifest, writeManifest, } from "./project-config.js";
22
+ import { readRequiredManifest, writeManifest, } from "./project-config.js";
23
23
  import { friendlyHostedError } from "./session.js";
24
24
  const SCHEMA_URL = "https://pome.sh/schemas/v1/pome.json";
25
25
  /** Normalize a `--twins github,slack` comma list to a validated twin array. */
@@ -159,36 +159,11 @@ export async function runRegisterAgent(opts) {
159
159
  else if (opts.twins && opts.twins.length > 0) {
160
160
  console.error("Enabled services: not reported by this pome cloud (older control plane) — twin scoping may not have taken effect.");
161
161
  }
162
- }
163
- /** Idempotent registration for `pome install`: a repo already linked under the
164
- * caller's team keeps its id (no network, no duplicate); a fresh repo registers
165
- * under the manifest name (or the config directory's basename). */
166
- export async function ensureAgentRegistered(opts) {
167
- const manifestRead = await readManifest(opts.cwd ?? process.cwd());
168
- if (!manifestRead)
169
- return { status: "no-config" };
170
- const projectDir = dirname(manifestRead.path);
171
- const creds = await resolveCredentials({
172
- apiBaseUrl: opts.apiBaseUrl,
173
- credentialsPath: opts.credentialsPath,
174
- });
175
- const cachedId = resolveCachedAgentId(await readLinkCache(projectDir), creds.teamId);
176
- if (cachedId) {
177
- return {
178
- status: "already-registered",
179
- agentId: cachedId,
180
- agentSlug: manifestRead.manifest.agent.slug,
181
- };
182
- }
183
- const name = manifestRead.manifest.agent.name ?? basename(projectDir);
184
- const agent = await createAndPersistAgent({
185
- creds,
186
- name,
187
- manifestRead,
188
- projectDir,
189
- seams: resolveSeams(opts),
190
- });
191
- return { status: "registered", agentId: agent.id, agentSlug: agent.slug };
162
+ // Deep-link the registered agent's dashboard page. `/agents/<slug>` is the
163
+ // same IA the runner's reliability handoff relies on (/agents/<slug>/tasks/…),
164
+ // so this lands on the agent, not a generic root.
165
+ const base = opts.dashboardBaseUrl.replace(/\/$/, "");
166
+ console.error(`Dashboard: ${base}/agents/${encodeURIComponent(agent.slug)}`);
192
167
  }
193
168
  function stripControlCharacters(value) {
194
169
  return value.replace(/[\u0000-\u001f\u007f]/g, "");
@@ -129,7 +129,7 @@ export async function runSessionCreate(opts) {
129
129
  });
130
130
  const session = await client.createSession({
131
131
  twins,
132
- scenarioSource: "# ..\n",
132
+ taskSource: "# ..\n",
133
133
  idempotencyKey: randomUUID(),
134
134
  agentId: identity.agentId,
135
135
  agentVersion: identity.agentVersion,
@@ -0,0 +1,25 @@
1
+ /**
2
+ * Catalog of tasks bundled with the CLI, grouped by twin.
3
+ *
4
+ * Single source of truth for `pome tasks` (browse + copy). `pome init`
5
+ * uses the GitHub twin entries from this catalog as its starter scaffold while
6
+ * Stripe/Slack tasks remain opt-in via `pome tasks <twin> --copy`.
7
+ *
8
+ * `runnable: false` marks a seed-only reference document (not a task
9
+ * to execute) — copy commands skip these.
10
+ */
11
+ export interface CatalogTask {
12
+ filename: string;
13
+ title: string;
14
+ summary: string;
15
+ runnable: boolean;
16
+ }
17
+ export interface TaskTwin {
18
+ id: string;
19
+ label: string;
20
+ description: string;
21
+ tasks: CatalogTask[];
22
+ }
23
+ export declare const TASK_TWINS: TaskTwin[];
24
+ export declare function findTwin(id: string): TaskTwin | null;
25
+ export declare function runnableTasks(twin: TaskTwin): CatalogTask[];
@@ -1,9 +1,9 @@
1
- export const SCENARIO_TWINS = [
1
+ export const TASK_TWINS = [
2
2
  {
3
3
  id: "github",
4
4
  label: "GitHub twin",
5
5
  description: "Issue triage, labeling, PR review, and identity checks against a deterministic GitHub clone.",
6
- scenarios: [
6
+ tasks: [
7
7
  {
8
8
  filename: "00-default-seed.md",
9
9
  title: "Default seed (reference)",
@@ -82,7 +82,7 @@ export const SCENARIO_TWINS = [
82
82
  id: "stripe",
83
83
  label: "Stripe twin",
84
84
  description: "Payments, refunds, events, and x402 flows against a deterministic Stripe clone.",
85
- scenarios: [
85
+ tasks: [
86
86
  {
87
87
  filename: "10-stripe-create-payment-intent.md",
88
88
  title: "Create PaymentIntent",
@@ -125,7 +125,7 @@ export const SCENARIO_TWINS = [
125
125
  id: "slack",
126
126
  label: "Slack twin",
127
127
  description: "Channel summaries, DLP, and injection resistance against a deterministic Slack clone.",
128
- scenarios: [
128
+ tasks: [
129
129
  {
130
130
  filename: "20-slack-exfiltration.md",
131
131
  title: "Secret exfiltration",
@@ -144,7 +144,7 @@ export const SCENARIO_TWINS = [
144
144
  id: "gmail",
145
145
  label: "Gmail twin",
146
146
  description: "Inbox triage, drafting, search, and label workflows against a deterministic Gmail clone.",
147
- scenarios: [
147
+ tasks: [
148
148
  {
149
149
  filename: "22-gmail-inbox-triage.md",
150
150
  title: "Gmail inbox triage",
@@ -169,7 +169,7 @@ export const SCENARIO_TWINS = [
169
169
  id: "linear",
170
170
  label: "Linear twin",
171
171
  description: "Issue triage, comments, and project workflows against a deterministic Linear clone.",
172
- scenarios: [
172
+ tasks: [
173
173
  {
174
174
  filename: "24-linear-issue-triage.md",
175
175
  title: "Linear issue triage",
@@ -189,8 +189,8 @@ export function findTwin(id) {
189
189
  const q = id.trim().toLowerCase();
190
190
  if (!q)
191
191
  return null;
192
- return SCENARIO_TWINS.find((twin) => twin.id === q) ?? null;
192
+ return TASK_TWINS.find((twin) => twin.id === q) ?? null;
193
193
  }
194
- export function runnableScenarios(twin) {
195
- return twin.scenarios.filter((s) => s.runnable);
194
+ export function runnableTasks(twin) {
195
+ return twin.tasks.filter((t) => t.runnable);
196
196
  }
@@ -0,0 +1,13 @@
1
+ import { type TaskTwin } from "./tasks-catalog.js";
2
+ export interface TasksCommandOptions {
3
+ copy?: boolean;
4
+ force?: boolean;
5
+ dest?: string;
6
+ }
7
+ export declare function runTasksCommand(twinArg: string | undefined, opts: TasksCommandOptions): Promise<void>;
8
+ interface CopyOptions {
9
+ destDir: string;
10
+ force: boolean;
11
+ }
12
+ export declare function copyTwinTasks(twin: TaskTwin, opts: CopyOptions): Promise<void>;
13
+ export {};
@@ -1,9 +1,9 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  /**
3
- * `pome scenarios` — browse the bundled task library and optionally
3
+ * `pome tasks` — browse the bundled task library and optionally
4
4
  * copy a twin's runnable tasks into the current project.
5
5
  *
6
- * Discovery only — no network. Source files live under `scenarios/` in
6
+ * Discovery only — no network. Source files live under `tasks/` in
7
7
  * the published tarball; `resolvePackageRoot` locates them whether the
8
8
  * CLI was started from `dist/` (published) or `src/` (dev).
9
9
  */
@@ -11,8 +11,8 @@ import { existsSync } from "node:fs";
11
11
  import { copyFile, mkdir } from "node:fs/promises";
12
12
  import { join, resolve } from "node:path";
13
13
  import { resolvePackageRoot } from "./resolve-package-root.js";
14
- import { SCENARIO_TWINS, findTwin, runnableScenarios, } from "./scenarios-catalog.js";
15
- const DEFAULT_DEST_DIR = "scenarios";
14
+ import { TASK_TWINS, findTwin, runnableTasks, } from "./tasks-catalog.js";
15
+ const DEFAULT_DEST_DIR = "tasks";
16
16
  function useColor() {
17
17
  return Boolean(process.stdout.isTTY && !process.env.NO_COLOR);
18
18
  }
@@ -22,10 +22,10 @@ function dim(s) {
22
22
  function bold(s) {
23
23
  return useColor() ? `\x1b[1m${s}\x1b[0m` : s;
24
24
  }
25
- export async function runScenariosCommand(twinArg, opts) {
25
+ export async function runTasksCommand(twinArg, opts) {
26
26
  if (!twinArg) {
27
27
  if (opts.copy || opts.force || opts.dest) {
28
- console.error("Specify a twin to copy from, e.g. `pome scenarios github --copy`.");
28
+ console.error("Specify a twin to copy from, e.g. `pome tasks github --copy`.");
29
29
  process.exitCode = 2;
30
30
  return;
31
31
  }
@@ -34,57 +34,57 @@ export async function runScenariosCommand(twinArg, opts) {
34
34
  }
35
35
  const twin = findTwin(twinArg);
36
36
  if (!twin) {
37
- const available = SCENARIO_TWINS.map((t) => t.id).join(", ");
38
- console.error(`Unknown twin "${twinArg}". Available: ${available}. Run \`pome scenarios\` for the index.`);
37
+ const available = TASK_TWINS.map((t) => t.id).join(", ");
38
+ console.error(`Unknown twin "${twinArg}". Available: ${available}. Run \`pome tasks\` for the index.`);
39
39
  process.exitCode = 2;
40
40
  return;
41
41
  }
42
42
  if (opts.copy) {
43
- await copyTwinScenarios(twin, {
43
+ await copyTwinTasks(twin, {
44
44
  destDir: opts.dest ?? DEFAULT_DEST_DIR,
45
45
  force: Boolean(opts.force),
46
46
  });
47
47
  return;
48
48
  }
49
- printTwinScenarios(twin);
49
+ printTwinTasks(twin);
50
50
  }
51
51
  function printTwinIndex() {
52
52
  console.log(bold("Pome tasks"));
53
53
  console.log(dim("Bundled task library, grouped by twin."));
54
54
  console.log("");
55
- for (const twin of SCENARIO_TWINS) {
56
- const count = runnableScenarios(twin).length;
55
+ for (const twin of TASK_TWINS) {
56
+ const count = runnableTasks(twin).length;
57
57
  console.log(` ${bold(twin.id)} ${dim(`(${count} tasks)`)} — ${twin.label}`);
58
58
  console.log(` ${dim(twin.description)}`);
59
59
  }
60
60
  console.log("");
61
- console.log(dim("Run `pome scenarios <twin>` to list tasks, or add `--copy` to drop them into ./scenarios/."));
61
+ console.log(dim("Run `pome tasks <twin>` to list tasks, or add `--copy` to drop them into ./tasks/."));
62
62
  }
63
- function printTwinScenarios(twin) {
64
- const runnable = runnableScenarios(twin);
63
+ function printTwinTasks(twin) {
64
+ const runnable = runnableTasks(twin);
65
65
  console.log(bold(`Pome tasks — ${twin.label}`));
66
66
  console.log(dim(`${runnable.length} tasks bundled with this CLI.`));
67
67
  console.log("");
68
- for (const scenario of runnable) {
69
- console.log(` ${bold(scenario.filename)}`);
70
- console.log(` ${dim(scenario.title)} — ${scenario.summary}`);
68
+ for (const task of runnable) {
69
+ console.log(` ${bold(task.filename)}`);
70
+ console.log(` ${dim(task.title)} — ${task.summary}`);
71
71
  }
72
72
  console.log("");
73
- console.log(dim(`Copy locally: \`pome scenarios ${twin.id} --copy\` (or \`--copy --dest <dir>\`).`));
74
- console.log(dim(`Run one: \`pome run scenarios/${runnable[0]?.filename ?? "01-bug-happy-path.md"}\`.`));
73
+ console.log(dim(`Copy locally: \`pome tasks ${twin.id} --copy\` (or \`--copy --dest <dir>\`).`));
74
+ console.log(dim(`Run one: \`pome run tasks/${runnable[0]?.filename ?? "01-bug-happy-path.md"}\`.`));
75
75
  }
76
- export async function copyTwinScenarios(twin, opts) {
76
+ export async function copyTwinTasks(twin, opts) {
77
77
  const root = resolvePackageRoot(import.meta.url);
78
78
  if (!root) {
79
79
  console.error("Could not locate the installed pome package (package.json not found).");
80
80
  process.exitCode = 2;
81
81
  return;
82
82
  }
83
- const sourceDir = join(root, "scenarios");
83
+ const sourceDir = join(root, "tasks");
84
84
  const destDir = resolve(process.cwd(), opts.destDir);
85
85
  await mkdir(destDir, { recursive: true });
86
- const outcome = await copyScenarioFiles({
87
- scenarios: runnableScenarios(twin),
86
+ const outcome = await copyTaskFiles({
87
+ tasks: runnableTasks(twin),
88
88
  sourceDir,
89
89
  destDir,
90
90
  force: opts.force,
@@ -109,26 +109,26 @@ export async function copyTwinScenarios(twin, opts) {
109
109
  console.log(dim(`Next: \`pome run ${opts.destDir}/${first}\`.`));
110
110
  }
111
111
  }
112
- async function copyScenarioFiles(input) {
112
+ async function copyTaskFiles(input) {
113
113
  const outcome = { copied: [], skipped: [], missingSources: [] };
114
- for (const scenario of input.scenarios) {
115
- const src = join(input.sourceDir, scenario.filename);
116
- const dest = join(input.destDir, scenario.filename);
114
+ for (const task of input.tasks) {
115
+ const src = join(input.sourceDir, task.filename);
116
+ const dest = join(input.destDir, task.filename);
117
117
  if (!existsSync(src)) {
118
- outcome.missingSources.push(scenario.filename);
118
+ outcome.missingSources.push(task.filename);
119
119
  continue;
120
120
  }
121
121
  if (existsSync(dest) && !input.force) {
122
- outcome.skipped.push(scenario.filename);
122
+ outcome.skipped.push(task.filename);
123
123
  }
124
124
  else {
125
125
  await copyFile(src, dest);
126
- outcome.copied.push(scenario.filename);
126
+ outcome.copied.push(task.filename);
127
127
  }
128
128
  // Sidecar seeds (`<name>.seed.json`) are optional — tasks that use
129
129
  // default seed state don't have one. Missing source is silent; missing
130
130
  // dest is copied; existing dest follows the same --force rule as the .md.
131
- const sidecar = scenario.filename.replace(/\.md$/i, ".seed.json");
131
+ const sidecar = task.filename.replace(/\.md$/i, ".seed.json");
132
132
  const sidecarSrc = join(input.sourceDir, sidecar);
133
133
  const sidecarDest = join(input.destDir, sidecar);
134
134
  if (!existsSync(sidecarSrc))
@@ -4,12 +4,12 @@
4
4
  // calls served by pome's anonymous demo gateway (FDRS-637).
5
5
  //
6
6
  // It is spawned by `pome demo` as `pome demo-agent`, a child of the REAL
7
- // capture path (runScenario): the runner injects the standard POME_* twin
7
+ // capture path (runTask): the runner injects the standard POME_* twin
8
8
  // contract plus the demo-specific vars below, and HTTP(S)_PROXY pointing at
9
9
  // the capture-server so the gateway calls land in events.jsonl as genuine
10
10
  // LlmCallEvent rows.
11
11
  //
12
- // Env contract (beyond runScenario's standard POME_* set):
12
+ // Env contract (beyond runTask's standard POME_* set):
13
13
  // POME_DEMO_LLM_URL — {POME_API_BASE}/v1/demo/sessions/{sid}/llm
14
14
  // POME_DEMO_TOKEN — the trial session's demo_token (Bearer)
15
15
  // POME_DEMO_TASK_NAME — server-allowlisted task name ("first-run-demo")
@@ -1,4 +1,4 @@
1
- import { runScenario, type RunScenarioOptions } from "../runner/runScenario.js";
1
+ import { runTask, type RunTaskOptions } from "../runner/runTask.js";
2
2
  import { type HostedClient } from "../hosted/client.js";
3
3
  import { mintDemoSessions, type DemoSession } from "./mint.js";
4
4
  import { type TrialVerdict } from "./render.js";
@@ -13,8 +13,8 @@ export interface RunDemoOptions {
13
13
  out?: (line: string) => void;
14
14
  /** Agent command override. Default re-invokes this binary: `<node> <main.js> demo-agent`. */
15
15
  agentCommand?: string;
16
- captureServerCommand?: RunScenarioOptions["captureServerCommand"];
17
- runScenarioFn?: typeof runScenario;
16
+ captureServerCommand?: RunTaskOptions["captureServerCommand"];
17
+ runTaskFn?: typeof runTask;
18
18
  mintFn?: typeof mintDemoSessions;
19
19
  /** Per-session upload/finalize client factory (bearer demo_token). */
20
20
  trialClientFactory?: (session: DemoSession) => DemoTrialClient;
@@ -6,7 +6,7 @@
6
6
  // 2. Mint ALL k demo sessions upfront (POST /v1/demo/sessions, one shared
7
7
  // grp_ id) — each 15-min TTL comfortably covers the run.
8
8
  // 3. Per trial: run the bundled agent through the REAL capture path
9
- // (runScenario: in-process twin + capture-server child + POME_* env),
9
+ // (runTask: in-process twin + capture-server child + POME_* env),
10
10
  // upload the captured blobs with the trial's demo_token as Bearer, then
11
11
  // POST /finalize (explicit 60s timeout) — the terminal verdict comes
12
12
  // from that cloud evaluation. The CLI never scores locally.
@@ -23,9 +23,9 @@
23
23
  import { readFile } from "node:fs/promises";
24
24
  import { join } from "node:path";
25
25
  import { getAvailablePort } from "../runner/ports.js";
26
- import { runScenario } from "../runner/runScenario.js";
26
+ import { runTask } from "../runner/runTask.js";
27
27
  import { bootTwin } from "../twin/twinHarness.js";
28
- import { parseScenarioFile } from "../scenario/parseScenario.js";
28
+ import { parseTaskFile } from "../task/parseTask.js";
29
29
  import { createHostedClient } from "../hosted/client.js";
30
30
  import { scoreFromFinalizeResponse, uploadRunBlobs, } from "../hosted/uploadAndFinalize.js";
31
31
  import { outcomeOf, scoreStatus } from "../hosted/evalResultView.js";
@@ -42,7 +42,7 @@ export async function runDemo(options) {
42
42
  const out = options.out ?? ((line) => console.error(line));
43
43
  const trials = options.trials ?? 5;
44
44
  const artifactsDir = options.artifactsDir ?? "runs";
45
- const runScenarioFn = options.runScenarioFn ?? runScenario;
45
+ const runTaskFn = options.runTaskFn ?? runTask;
46
46
  const mintFn = options.mintFn ?? mintDemoSessions;
47
47
  const trialClientFactory = options.trialClientFactory ??
48
48
  ((session) => createHostedClient({
@@ -53,7 +53,7 @@ export async function runDemo(options) {
53
53
  finalizeTimeoutMs: DEMO_FINALIZE_TIMEOUT_MS,
54
54
  }));
55
55
  const groupId = newGroupId();
56
- const scenarioPath = demoTaskPath();
56
+ const taskPath = demoTaskPath();
57
57
  for (const line of reassuranceBox())
58
58
  out(line);
59
59
  out("");
@@ -79,9 +79,9 @@ export async function runDemo(options) {
79
79
  }
80
80
  // Warm-up boot: validates the packaged seed and gives the design's
81
81
  // "spinning up github twin … ready" line an honest measurement. Each trial
82
- // then boots its own isolated twin inside runScenario.
82
+ // then boots its own isolated twin inside runTask.
83
83
  if (options.skipTwinWarmup !== true) {
84
- const scenario = await parseScenarioFile(scenarioPath);
84
+ const scenario = await parseTaskFile(taskPath);
85
85
  const warmupStart = Date.now();
86
86
  const port = await getAvailablePort();
87
87
  const harness = await bootTwin({
@@ -113,11 +113,11 @@ export async function runDemo(options) {
113
113
  verdict = await runOneTrial({
114
114
  trialNumber,
115
115
  session,
116
- scenarioPath,
116
+ taskPath,
117
117
  agentCommand,
118
118
  artifactsDir,
119
119
  apiBase: options.apiBase,
120
- runScenarioFn,
120
+ runTaskFn,
121
121
  client,
122
122
  captureServerCommand: options.captureServerCommand,
123
123
  out,
@@ -180,8 +180,8 @@ export async function runDemo(options) {
180
180
  }
181
181
  async function runOneTrial(input) {
182
182
  const startedAt = Date.now();
183
- const result = await input.runScenarioFn({
184
- scenarioPath: input.scenarioPath,
183
+ const result = await input.runTaskFn({
184
+ taskPath: input.taskPath,
185
185
  agentCommand: input.agentCommand,
186
186
  artifactsDir: input.artifactsDir,
187
187
  captureServerCommand: input.captureServerCommand,
@@ -238,9 +238,9 @@ async function runOneTrial(input) {
238
238
  agentModel: "demo-gateway",
239
239
  agentSdk: null,
240
240
  criteria: [],
241
- scenarioName: DEMO_TASK_NAME,
242
- scenarioHash: "",
243
- scenarioPrompt: "",
241
+ taskName: DEMO_TASK_NAME,
242
+ taskHash: "",
243
+ taskPrompt: "",
244
244
  expectedBehavior: "",
245
245
  traceStorageKey: uploaded.eventsKey ?? undefined,
246
246
  stateInitialStorageKey: uploaded.stateInitialKey ?? undefined,
@@ -93,7 +93,7 @@ async function checkTwinReachable(_configDir) {
93
93
  const fail = (cause) => ({
94
94
  id: "twin",
95
95
  status: "fail",
96
- label: "twin not reachable",
96
+ label: "local twin check failed",
97
97
  cause,
98
98
  fix: "npm install (twin dependencies), then re-run pome doctor — if it persists, file an issue with the error above",
99
99
  });
@@ -130,7 +130,16 @@ async function checkTwinReachable(_configDir) {
130
130
  if (!sessionHealth.ok) {
131
131
  return fail(`the twin is up but rejected the session route (${sessionHealth.status} at /s/<sid>/_pome/health) — the auth contract the agent relies on is broken.`);
132
132
  }
133
- return { id: "twin", status: "pass", label: "twin reachable", detail: "github · local" };
133
+ // "boots locally", not "reachable": this check brings a throwaway twin up
134
+ // on an ephemeral port and tears it down — it does NOT prove a twin is
135
+ // listening now. Overstating that (the F-906 cold walk read "reachable" as
136
+ // "a twin is up") is exactly what this wording avoids.
137
+ return {
138
+ id: "twin",
139
+ status: "pass",
140
+ label: "twin boots locally",
141
+ detail: "github · health + session ok",
142
+ };
134
143
  }
135
144
  catch (err) {
136
145
  return fail(`could not reach the locally served twin: ${firstLine(err)}`);
@@ -164,7 +173,7 @@ async function checkRouting(configDir) {
164
173
  cause: `no POME_*_REST_URL / POME_*_MCP_URL read and no @pome-sh adapter found in the ${scan.filesScanned} source file(s) under ${relative(process.cwd(), configDir) || "."} — the agent has no path to the twin.`,
165
174
  fix: [
166
175
  'wire the adapter: import { withPome } from "@pome-sh/adapter-claude-sdk"; call withPome() at startup;',
167
- "read the twin base URL from POME_GITHUB_REST_URL (injected by the runner) — or run pome install to have your coding agent wire it.",
176
+ "read the twin base URL from POME_GITHUB_REST_URL (injected by the runner) — or let your own coding agent wire it with the Gen-2 skills (`npx skills add pome-sh/digital-twins`).",
168
177
  ].join("\n"),
169
178
  };
170
179
  }
@@ -4,5 +4,14 @@ export interface RenderDoctorReportOptions {
4
4
  * moment-03 default; `pome install` passes moment 02's
5
5
  * "verifying the wiring …" (FDRS-642). */
6
6
  header?: string;
7
+ /** F-906 — when the report passes, append a caveat that a green check means
8
+ * the wiring is right, not that the examinee runs cleanly. `pome doctor`
9
+ * never launches the agent; and a `pome run` preflight probe launches it
10
+ * with POME_PREFLIGHT=1, which most scaffolds honour by exiting before
11
+ * their real work path — so a bug on that skipped path (as in F-900)
12
+ * surfaces only on a full trial run. Opt-in so only `pome doctor` shows it
13
+ * — the `run`/`install` consumers print the report as a gate, not as a
14
+ * self-diagnosis. */
15
+ passNote?: boolean;
7
16
  }
8
17
  export declare function renderDoctorReport(report: DoctorReport, options?: RenderDoctorReportOptions): string[];
@@ -28,5 +28,12 @@ export function renderDoctorReport(report, options = {}) {
28
28
  lines.push("until this passes, your agent would hit production.");
29
29
  lines.push("pome will not run trials against a live API.");
30
30
  }
31
+ else if (options.passNote) {
32
+ lines.push("");
33
+ lines.push("note: a green check means the wiring is right, not that your agent runs");
34
+ lines.push("cleanly — pome doctor never launches it, and a run's preflight probe exits");
35
+ lines.push("it early (POME_PREFLIGHT=1), so a bug on the code path they skip surfaces");
36
+ lines.push("only on a full trial run.");
37
+ }
31
38
  return lines;
32
39
  }
@@ -1,12 +1,12 @@
1
1
  import type { RecorderEvent } from "../types/shared.js";
2
- import type { Scenario } from "../scenario/scenarioSchema.js";
2
+ import type { Task } from "../task/taskSchema.js";
3
3
  import type { VerdictArtifact } from "../hosted/evalResultCache.js";
4
4
  export declare const FIX_PROMPT_TEMPLATE_VERSION = "v1";
5
5
  export declare const FIX_PROMPT_SYSTEM_PROMPT: string;
6
6
  export declare function escapeTagContent(text: string): string;
7
7
  export interface FixPromptContext {
8
8
  events: RecorderEvent[];
9
- scenario: Scenario;
9
+ scenario: Task;
10
10
  }
11
11
  export declare function buildFixUserPrompt(ctx: FixPromptContext): string;
12
12
  export interface TrialFixInput {
@@ -22,7 +22,7 @@ export interface GroupFixPromptContext {
22
22
  groupId: string | null;
23
23
  /** Parsed task file when it still resolves. Null degrades the prompt to
24
24
  * the verdict-embedded criteria (the file may have moved since the run). */
25
- scenario: Scenario | null;
25
+ scenario: Task | null;
26
26
  /** Completed trials of the run set (verdict.json present), run order. */
27
27
  trials: TrialFixInput[];
28
28
  }
@@ -89,13 +89,13 @@ function renderCriteria(criteria) {
89
89
  export function buildFixUserPrompt(ctx) {
90
90
  const criteria = redactSecrets(renderCriteria(ctx.scenario.criteria));
91
91
  const trace = renderEvents(ctx.events.map((event) => redactEvent(event)));
92
- const scenarioTitle = redactSecrets(ctx.scenario.title);
93
- const scenarioPrompt = redactSecrets(ctx.scenario.prompt);
92
+ const taskTitle = redactSecrets(ctx.scenario.title);
93
+ const taskPrompt = redactSecrets(ctx.scenario.prompt);
94
94
  return `## Task
95
- ${scenarioTitle}
95
+ ${taskTitle}
96
96
 
97
97
  ## Task prompt (what the agent was told to do)
98
- ${scenarioPrompt}
98
+ ${taskPrompt}
99
99
 
100
100
  ## Criteria the run had to satisfy
101
101
  ${escapeTagContent(criteria)}
@@ -35,7 +35,7 @@ export interface HostedClientConfig {
35
35
  authScheme?: "x-api-key" | "bearer";
36
36
  }
37
37
  export interface CreateSessionInput {
38
- scenarioSource: string;
38
+ taskSource: string;
39
39
  twins: string[];
40
40
  /** Omit for one-off sessions; reuse only when intentionally replaying a create after network uncertainty. */
41
41
  idempotencyKey?: string;
@@ -85,8 +85,8 @@ export interface FetchOnTwinInput {
85
85
  agentToken: string;
86
86
  }
87
87
  export interface SubmitResultInput {
88
- scenarioName: string;
89
- scenarioHash: string;
88
+ taskName: string;
89
+ taskHash: string;
90
90
  durationMs: number;
91
91
  agentModel: string;
92
92
  satisfactionScore: number;
@@ -139,9 +139,9 @@ export interface FinalizeInput {
139
139
  agentModel: string;
140
140
  agentSdk?: string | null;
141
141
  criteria: CriterionDefWire[];
142
- scenarioName: string;
143
- scenarioHash: string;
144
- scenarioPrompt: string;
142
+ taskName: string;
143
+ taskHash: string;
144
+ taskPrompt: string;
145
145
  expectedBehavior: string;
146
146
  traceStorageKey?: string;
147
147
  stateInitialStorageKey?: string;
@@ -390,7 +390,7 @@ export function createHostedClient(config) {
390
390
  async createSession(input) {
391
391
  const body = {
392
392
  twins: input.twins,
393
- scenario_source: Buffer.from(input.scenarioSource, "utf8").toString("base64"),
393
+ scenario_source: Buffer.from(input.taskSource, "utf8").toString("base64"),
394
394
  };
395
395
  if (input.idempotencyKey) {
396
396
  body.idempotency_key = input.idempotencyKey;
@@ -536,9 +536,9 @@ export function createHostedClient(config) {
536
536
  agent_model: input.agentModel,
537
537
  agent_sdk: normalizeAgentSdk(input.agentSdk),
538
538
  criteria: input.criteria,
539
- scenario_name: input.scenarioName,
540
- scenario_hash: input.scenarioHash,
541
- scenario_prompt: input.scenarioPrompt,
539
+ scenario_name: input.taskName,
540
+ scenario_hash: input.taskHash,
541
+ scenario_prompt: input.taskPrompt,
542
542
  expected_behavior: input.expectedBehavior,
543
543
  };
544
544
  if (input.traceStorageKey !== undefined) {
@@ -571,8 +571,8 @@ export function createHostedClient(config) {
571
571
  },
572
572
  async submitResult(sessionId, input) {
573
573
  return postJson(`/v1/sessions/${encodeURIComponent(sessionId)}/result`, {
574
- scenario_name: input.scenarioName,
575
- scenario_hash: input.scenarioHash,
574
+ scenario_name: input.taskName,
575
+ scenario_hash: input.taskHash,
576
576
  duration_ms: input.durationMs,
577
577
  agent_model: input.agentModel,
578
578
  satisfaction_score: input.satisfactionScore,
@@ -13,7 +13,7 @@
13
13
  // - F0-5c: `pome logout && pome run` was returning exit 2 instead of 3
14
14
  // because credential-resolution failure threw a plain Error.
15
15
  // - F18: hosted sub-threshold runs sometimes returned exit 3 because
16
- // `runScenarioHosted.ts` mapped any non-zero agent exit to exit 3,
16
+ // `runTaskHosted.ts` mapped any non-zero agent exit to exit 3,
17
17
  // stealing the auth slot.
18
18
  //
19
19
  // FDRS-636 — trial groups (`pome run -n k`, k>1) map the WHOLE GROUP to one
@@ -38,7 +38,7 @@ export interface RunSet {
38
38
  groupId: string | null;
39
39
  taskName: string;
40
40
  /** The scenario path recorded at run time (first trial's). */
41
- scenarioPath: string;
41
+ taskPath: string;
42
42
  /** Trials sorted by finalized_at ascending. */
43
43
  trials: TrialVerdict[];
44
44
  latestFinalizedAt: string;
@@ -136,7 +136,7 @@ export function groupRunSets(trials) {
136
136
  sets.push({
137
137
  groupId: bucket[0].verdict.group_id,
138
138
  taskName: bucket[0].verdict.task_name,
139
- scenarioPath: bucket[0].verdict.scenario_path,
139
+ taskPath: bucket[0].verdict.scenario_path,
140
140
  trials: bucket,
141
141
  latestFinalizedAt: last.verdict.finalized_at,
142
142
  anyFailed: bucket.some((t) => !t.verdict.passed),
@@ -31,7 +31,7 @@ export type Score = {
31
31
  export declare function outcomeOf(result: CriterionResult): CriterionOutcome;
32
32
  export type ScoreStatus = "pass" | "fail" | "unevaluated";
33
33
  export declare function scoreStatus(score: Score, passThreshold: number): ScoreStatus;
34
- export declare function scenarioPassed(score: Score, passThreshold: number): boolean;
34
+ export declare function taskPassed(score: Score, passThreshold: number): boolean;
35
35
  export declare function markerFor(outcome: CriterionOutcome): string;
36
36
  export declare function criterionMarkerLabel(criterion: WireCriterion): string;
37
37
  export declare function twinSkipSuffix(result: CriterionResult): string;