@cursor/bdk 0.2.15 → 0.2.17

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 (280) hide show
  1. package/README.md +2 -2
  2. package/dist/bin/agent-serve.js +41 -3
  3. package/dist/channels/github/index.d.ts +1 -1
  4. package/dist/channels/github/index.d.ts.map +1 -1
  5. package/dist/channels/github/index.js +1 -1
  6. package/dist/channels/slack/agentic-delivery.js +4 -4
  7. package/dist/channels/slack/api.d.ts.map +1 -1
  8. package/dist/channels/slack/api.js +7 -4
  9. package/dist/channels/slack/channel-watch.d.ts +2 -0
  10. package/dist/channels/slack/channel-watch.d.ts.map +1 -1
  11. package/dist/channels/slack/channel-watch.js +7 -3
  12. package/dist/channels/slack/dispatch.d.ts +3 -0
  13. package/dist/channels/slack/dispatch.d.ts.map +1 -1
  14. package/dist/channels/slack/dispatch.js +6 -2
  15. package/dist/channels/slack/thread-context.d.ts.map +1 -1
  16. package/dist/channels/slack/thread-context.js +58 -26
  17. package/dist/channels/slack/types.d.ts +19 -0
  18. package/dist/channels/slack/types.d.ts.map +1 -1
  19. package/dist/docs/404.html +3 -3
  20. package/dist/docs/assets/{app.CRMxF0qX.js → app.CUNuFTSm.js} +4 -4
  21. package/dist/docs/assets/{building-with-agents.md.Bi9CQ-bR.js → building-with-agents.md.FZXrY8Nk.js} +1 -1
  22. package/dist/docs/assets/chunks/@localSearchIndexroot.3c56VHUt.js +1 -0
  23. package/dist/docs/assets/chunks/{VPLocalSearchBox.C4BiQe53.js → VPLocalSearchBox.Dez74k0W.js} +1 -1
  24. package/dist/docs/assets/chunks/{arc.D1TA2Mxn.js → arc.CJ3FhK7H.js} +1 -1
  25. package/dist/docs/assets/chunks/{architectureDiagram-Q4EWVU46.CA-hBJCN.js → architectureDiagram-Q4EWVU46.CfUdbHsa.js} +1 -1
  26. package/dist/docs/assets/chunks/{baseUniq.CzsSgiab.js → baseUniq.D93LawU9.js} +1 -1
  27. package/dist/docs/assets/chunks/{blockDiagram-DXYQGD6D.sxrH_f0l.js → blockDiagram-DXYQGD6D.Zvsd6UHP.js} +1 -1
  28. package/dist/docs/assets/chunks/{c4Diagram-AHTNJAMY.D_Z3mqAl.js → c4Diagram-AHTNJAMY.CGX5xZ9d.js} +1 -1
  29. package/dist/docs/assets/chunks/channel.S8-FFjmE.js +1 -0
  30. package/dist/docs/assets/chunks/{chunk-4BX2VUAB.BS6_uTUf.js → chunk-4BX2VUAB.CCIf0QCo.js} +1 -1
  31. package/dist/docs/assets/chunks/{chunk-4TB4RGXK.D-URAeTU.js → chunk-4TB4RGXK.D_N1RPyi.js} +1 -1
  32. package/dist/docs/assets/chunks/{chunk-55IACEB6.b4SZc5kO.js → chunk-55IACEB6.B1oecjzx.js} +1 -1
  33. package/dist/docs/assets/chunks/{chunk-EDXVE4YY.DLKEEDkN.js → chunk-EDXVE4YY.BzUNVPGX.js} +1 -1
  34. package/dist/docs/assets/chunks/{chunk-FMBD7UC4.3SyQHgpY.js → chunk-FMBD7UC4.DheI8WSO.js} +1 -1
  35. package/dist/docs/assets/chunks/{chunk-OYMX7WX6.DBKKaFeS.js → chunk-OYMX7WX6.Bg4iL0sM.js} +1 -1
  36. package/dist/docs/assets/chunks/{chunk-QZHKN3VN.BhCYeR7H.js → chunk-QZHKN3VN.CSQjDhAD.js} +1 -1
  37. package/dist/docs/assets/chunks/{chunk-YZCP3GAM.Cpg0VgI7.js → chunk-YZCP3GAM.BDdxnPU4.js} +1 -1
  38. package/dist/docs/assets/chunks/classDiagram-6PBFFD2Q.BB98tFjZ.js +1 -0
  39. package/dist/docs/assets/chunks/classDiagram-v2-HSJHXN6E.BB98tFjZ.js +1 -0
  40. package/dist/docs/assets/chunks/clone.B98w8OEv.js +1 -0
  41. package/dist/docs/assets/chunks/{cose-bilkent-S5V4N54A.4q0YNZN6.js → cose-bilkent-S5V4N54A.AT0weO8r.js} +1 -1
  42. package/dist/docs/assets/chunks/{dagre-KV5264BT.Bk_CcQPr.js → dagre-KV5264BT.CJ30TxV0.js} +1 -1
  43. package/dist/docs/assets/chunks/{diagram-5BDNPKRD.CgreoM_Z.js → diagram-5BDNPKRD.KtE--1fW.js} +1 -1
  44. package/dist/docs/assets/chunks/{diagram-G4DWMVQ6.DlZGpm6W.js → diagram-G4DWMVQ6.BFGygSUQ.js} +1 -1
  45. package/dist/docs/assets/chunks/{diagram-MMDJMWI5.BxtXxgIR.js → diagram-MMDJMWI5.BLU-79eb.js} +1 -1
  46. package/dist/docs/assets/chunks/{diagram-TYMM5635.DSzlJp2D.js → diagram-TYMM5635.CdjfJdVG.js} +1 -1
  47. package/dist/docs/assets/chunks/{erDiagram-SMLLAGMA.BN1YUmEV.js → erDiagram-SMLLAGMA.Dj1Iwypl.js} +1 -1
  48. package/dist/docs/assets/chunks/{flowDiagram-DWJPFMVM.B61NGNYu.js → flowDiagram-DWJPFMVM.BXqj_Su2.js} +1 -1
  49. package/dist/docs/assets/chunks/{ganttDiagram-T4ZO3ILL.DR-tto3M.js → ganttDiagram-T4ZO3ILL.CNfgGSst.js} +1 -1
  50. package/dist/docs/assets/chunks/{gitGraphDiagram-UUTBAWPF.CBPs2W_2.js → gitGraphDiagram-UUTBAWPF.2tgvFDBr.js} +1 -1
  51. package/dist/docs/assets/chunks/{graph.DmlaqzCE.js → graph.CWHZMxx6.js} +1 -1
  52. package/dist/docs/assets/chunks/{infoDiagram-42DDH7IO.obPv-fFg.js → infoDiagram-42DDH7IO.DhLIK8m1.js} +1 -1
  53. package/dist/docs/assets/chunks/{ishikawaDiagram-UXIWVN3A.CXHTUcM3.js → ishikawaDiagram-UXIWVN3A.BIN11n1G.js} +1 -1
  54. package/dist/docs/assets/chunks/{journeyDiagram-VCZTEJTY.BoVHerYZ.js → journeyDiagram-VCZTEJTY.BARmNJ0n.js} +1 -1
  55. package/dist/docs/assets/chunks/{kanban-definition-6JOO6SKY.CfYmPHZg.js → kanban-definition-6JOO6SKY.BrTJYFyF.js} +1 -1
  56. package/dist/docs/assets/chunks/{layout.621UdAhB.js → layout.CPZIIywK.js} +1 -1
  57. package/dist/docs/assets/chunks/{linear.Cz_zRKjr.js → linear.DTpmzI5S.js} +1 -1
  58. package/dist/docs/assets/chunks/{min.ON4GjCH7.js → min.BBLQmXwZ.js} +1 -1
  59. package/dist/docs/assets/chunks/{mindmap-definition-QFDTVHPH.DLPMLJlv.js → mindmap-definition-QFDTVHPH.5qkWJvdl.js} +1 -1
  60. package/dist/docs/assets/chunks/{pieDiagram-DEJITSTG.BFp11AYt.js → pieDiagram-DEJITSTG.-4wufv_f.js} +1 -1
  61. package/dist/docs/assets/chunks/{quadrantDiagram-34T5L4WZ.ChX7xo6B.js → quadrantDiagram-34T5L4WZ.C0jrp1-8.js} +1 -1
  62. package/dist/docs/assets/chunks/{requirementDiagram-MS252O5E.DbKtHG_Q.js → requirementDiagram-MS252O5E.DUDpANfe.js} +1 -1
  63. package/dist/docs/assets/chunks/{sankeyDiagram-XADWPNL6.Spw8tv-7.js → sankeyDiagram-XADWPNL6.74Lvg6Gu.js} +1 -1
  64. package/dist/docs/assets/chunks/{sequenceDiagram-FGHM5R23.BYso9LlE.js → sequenceDiagram-FGHM5R23.BHDIH286.js} +1 -1
  65. package/dist/docs/assets/chunks/{stateDiagram-FHFEXIEX.D8l54jqW.js → stateDiagram-FHFEXIEX.Dr-HIuLb.js} +1 -1
  66. package/dist/docs/assets/chunks/stateDiagram-v2-QKLJ7IA2.DW_lwpZY.js +1 -0
  67. package/dist/docs/assets/chunks/{theme.m_Ethbkv.js → theme.H8zSBhlM.js} +2 -2
  68. package/dist/docs/assets/chunks/{timeline-definition-GMOUNBTQ.BLdhhyy9.js → timeline-definition-GMOUNBTQ.GtyCaSiL.js} +1 -1
  69. package/dist/docs/assets/chunks/{vennDiagram-DHZGUBPP.CyGT2F_P.js → vennDiagram-DHZGUBPP.DLId0rxH.js} +1 -1
  70. package/dist/docs/assets/chunks/{wardley-RL74JXVD.C5JJS3bh.js → wardley-RL74JXVD.CSlECTHi.js} +1 -1
  71. package/dist/docs/assets/chunks/{wardleyDiagram-NUSXRM2D.p_Sz9p1i.js → wardleyDiagram-NUSXRM2D.CI6mGYNG.js} +1 -1
  72. package/dist/docs/assets/chunks/{xychartDiagram-5P7HB3ND.DtXsNUaf.js → xychartDiagram-5P7HB3ND.CG1n865F.js} +1 -1
  73. package/dist/docs/assets/{deployment.md.hKKN9I4c.js → deployment.md.ajc3VM0m.js} +1 -1
  74. package/dist/docs/assets/{guides_migrate.md.sCAvvlC6.js → guides_migrate.md.DZBL7dqT.js} +1 -1
  75. package/dist/docs/assets/index.md.CHAFTf6m.js +27 -0
  76. package/dist/docs/assets/index.md.CHAFTf6m.lean.js +1 -0
  77. package/dist/docs/assets/{quickstart.md.CduLGBAB.js → quickstart.md.D8JDfkKO.js} +1 -1
  78. package/dist/docs/assets/{reference_agent-config.md.DrtLxWgR.js → reference_agent-config.md.DYA6ge6t.js} +7 -4
  79. package/dist/docs/assets/{reference_agent-config.md.DrtLxWgR.lean.js → reference_agent-config.md.DYA6ge6t.lean.js} +1 -1
  80. package/dist/docs/assets/{reference_cli.md.BYNIHwbi.js → reference_cli.md.Bt3sAfat.js} +3 -3
  81. package/dist/docs/assets/{reference_evals.md.if--BLd0.js → reference_evals.md.Ccwp4x3o.js} +3 -3
  82. package/dist/docs/assets/{reference_evals.md.if--BLd0.lean.js → reference_evals.md.Ccwp4x3o.lean.js} +1 -1
  83. package/dist/docs/assets/{reference_http-api.md.CrqhTv6S.js → reference_http-api.md.Dji-DD_Z.js} +1 -1
  84. package/dist/docs/assets/{reference_project-layout.md.C2JMRh7p.js → reference_project-layout.md.SNzIvnmC.js} +1 -1
  85. package/dist/docs/building-with-agents.html +37 -37
  86. package/dist/docs/building-with-agents.md +4 -4
  87. package/dist/docs/deployment.html +37 -37
  88. package/dist/docs/deployment.md +3 -4
  89. package/dist/docs/evals.html +36 -36
  90. package/dist/docs/guides/agent-to-agent.html +36 -36
  91. package/dist/docs/guides/bitbucket.html +36 -36
  92. package/dist/docs/guides/cloud-agents.html +36 -36
  93. package/dist/docs/guides/convert-automation.html +36 -36
  94. package/dist/docs/guides/github.html +36 -36
  95. package/dist/docs/guides/gitlab.html +36 -36
  96. package/dist/docs/guides/grokbot-agents.html +36 -36
  97. package/dist/docs/guides/hooks.html +36 -36
  98. package/dist/docs/guides/improve.html +36 -36
  99. package/dist/docs/guides/jev.html +36 -36
  100. package/dist/docs/guides/mcp-oauth.html +36 -36
  101. package/dist/docs/guides/migrate.html +37 -37
  102. package/dist/docs/guides/migrate.md +3 -3
  103. package/dist/docs/guides/opentelemetry.html +36 -36
  104. package/dist/docs/guides/slack.html +36 -36
  105. package/dist/docs/guides/webhooks.html +36 -36
  106. package/dist/docs/hashmap.json +1 -1
  107. package/dist/docs/hillclimbing.html +36 -36
  108. package/dist/docs/index.html +38 -38
  109. package/dist/docs/index.md +2 -2
  110. package/dist/docs/llms-full.txt +64 -28
  111. package/dist/docs/llms.txt +2 -2
  112. package/dist/docs/quickstart.html +37 -37
  113. package/dist/docs/quickstart.md +3 -3
  114. package/dist/docs/reference/agent-config.html +42 -39
  115. package/dist/docs/reference/agent-config.md +26 -1
  116. package/dist/docs/reference/artifacts.html +36 -36
  117. package/dist/docs/reference/channels.html +36 -36
  118. package/dist/docs/reference/cli.html +39 -39
  119. package/dist/docs/reference/cli.md +3 -3
  120. package/dist/docs/reference/connections.html +36 -36
  121. package/dist/docs/reference/evals.html +38 -38
  122. package/dist/docs/reference/evals.md +13 -0
  123. package/dist/docs/reference/extensions.html +36 -36
  124. package/dist/docs/reference/hooks.html +36 -36
  125. package/dist/docs/reference/http-api.html +37 -37
  126. package/dist/docs/reference/http-api.md +4 -4
  127. package/dist/docs/reference/instructions.html +36 -36
  128. package/dist/docs/reference/playground.html +36 -36
  129. package/dist/docs/reference/project-layout.html +37 -37
  130. package/dist/docs/reference/project-layout.md +2 -3
  131. package/dist/docs/reference/prompt.html +36 -36
  132. package/dist/docs/reference/schedules.html +36 -36
  133. package/dist/docs/reference/sessions.html +36 -36
  134. package/dist/docs/reference/skills.html +36 -36
  135. package/dist/docs/reference/subagents.html +36 -36
  136. package/dist/docs/reference/tools.html +36 -36
  137. package/dist/docs/templates/agentic-owners.html +36 -36
  138. package/dist/docs/templates/grokbot-agents.html +36 -36
  139. package/dist/docs/templates/security-reviewer.html +36 -36
  140. package/dist/docs/templates/thermo-quality-review.html +36 -36
  141. package/dist/docs/templates/thermo-review.html +36 -36
  142. package/dist/docs/templates/triage.html +36 -36
  143. package/dist/docs/troubleshooting.html +36 -36
  144. package/dist/filesystem.d.ts.map +1 -1
  145. package/dist/filesystem.js +4 -8
  146. package/dist/internal/cli-convert-automation.js +9 -19
  147. package/dist/internal/cli-deploy.d.ts +1 -1
  148. package/dist/internal/cli-deploy.d.ts.map +1 -1
  149. package/dist/internal/cli-deploy.js +4 -3
  150. package/dist/internal/cli-init-grokbot.d.ts +29 -0
  151. package/dist/internal/cli-init-grokbot.d.ts.map +1 -0
  152. package/dist/internal/cli-init-grokbot.js +181 -0
  153. package/dist/internal/cli-slack.js +1 -1
  154. package/dist/internal/comment-safe.d.ts +8 -0
  155. package/dist/internal/comment-safe.d.ts.map +1 -0
  156. package/dist/internal/comment-safe.js +12 -0
  157. package/dist/internal/convert-automation/convert-workflow.d.ts.map +1 -1
  158. package/dist/internal/convert-automation/convert-workflow.js +2 -14
  159. package/dist/internal/convert-grokbot/answers.d.ts +127 -0
  160. package/dist/internal/convert-grokbot/answers.d.ts.map +1 -0
  161. package/dist/internal/convert-grokbot/answers.js +443 -0
  162. package/dist/internal/convert-grokbot/bot.d.ts +50 -0
  163. package/dist/internal/convert-grokbot/bot.d.ts.map +1 -0
  164. package/dist/internal/convert-grokbot/bot.js +72 -0
  165. package/dist/internal/convert-grokbot/checks.d.ts +26 -0
  166. package/dist/internal/convert-grokbot/checks.d.ts.map +1 -0
  167. package/dist/internal/convert-grokbot/checks.js +170 -0
  168. package/dist/internal/convert-grokbot/convert.d.ts +60 -0
  169. package/dist/internal/convert-grokbot/convert.d.ts.map +1 -0
  170. package/dist/internal/convert-grokbot/convert.js +470 -0
  171. package/dist/internal/convert-grokbot/handoff.d.ts +44 -0
  172. package/dist/internal/convert-grokbot/handoff.d.ts.map +1 -0
  173. package/dist/internal/convert-grokbot/handoff.js +160 -0
  174. package/dist/internal/convert-grokbot/recipe.d.ts +61 -0
  175. package/dist/internal/convert-grokbot/recipe.d.ts.map +1 -0
  176. package/dist/internal/convert-grokbot/recipe.js +94 -0
  177. package/dist/internal/convert-grokbot/routine.d.ts +51 -0
  178. package/dist/internal/convert-grokbot/routine.d.ts.map +1 -0
  179. package/dist/internal/convert-grokbot/routine.js +128 -0
  180. package/dist/internal/convert-grokbot/slack.d.ts +28 -0
  181. package/dist/internal/convert-grokbot/slack.d.ts.map +1 -0
  182. package/dist/internal/convert-grokbot/slack.js +50 -0
  183. package/dist/internal/deploy-client.d.ts +0 -2
  184. package/dist/internal/deploy-client.d.ts.map +1 -1
  185. package/dist/internal/deploy-client.js +2 -11
  186. package/dist/internal/deploy-manifest.d.ts +6 -0
  187. package/dist/internal/deploy-manifest.d.ts.map +1 -1
  188. package/dist/internal/deploy-manifest.js +3 -0
  189. package/dist/internal/discovery/names.d.ts +2 -0
  190. package/dist/internal/discovery/names.d.ts.map +1 -1
  191. package/dist/internal/discovery/names.js +2 -0
  192. package/dist/internal/discovery/project.d.ts.map +1 -1
  193. package/dist/internal/discovery/project.js +1 -3
  194. package/dist/internal/eval-judge-model.d.ts +10 -5
  195. package/dist/internal/eval-judge-model.d.ts.map +1 -1
  196. package/dist/internal/eval-judge-model.js +36 -25
  197. package/dist/internal/filesystem/subagent-inherit.d.ts +39 -0
  198. package/dist/internal/filesystem/subagent-inherit.d.ts.map +1 -0
  199. package/dist/internal/filesystem/subagent-inherit.js +96 -0
  200. package/dist/internal/filesystem/tools.d.ts +6 -0
  201. package/dist/internal/filesystem/tools.d.ts.map +1 -1
  202. package/dist/internal/filesystem/tools.js +38 -1
  203. package/dist/internal/hosted-delivery.d.ts.map +1 -1
  204. package/dist/internal/hosted-delivery.js +24 -1
  205. package/dist/internal/hosting.d.ts +1 -1
  206. package/dist/internal/hosting.d.ts.map +1 -1
  207. package/dist/internal/hosting.js +7 -3
  208. package/dist/internal/init-interview.d.ts +3 -5
  209. package/dist/internal/init-interview.d.ts.map +1 -1
  210. package/dist/internal/init-interview.js +15 -88
  211. package/dist/internal/init-project.d.ts +13 -0
  212. package/dist/internal/init-project.d.ts.map +1 -1
  213. package/dist/internal/init-project.js +30 -37
  214. package/dist/internal/init-scaffold.d.ts +11 -0
  215. package/dist/internal/init-scaffold.d.ts.map +1 -1
  216. package/dist/internal/init-scaffold.js +48 -14
  217. package/dist/internal/interview/agent-questions.d.ts +19 -0
  218. package/dist/internal/interview/agent-questions.d.ts.map +1 -0
  219. package/dist/internal/interview/agent-questions.js +120 -0
  220. package/dist/internal/interview/question.d.ts +82 -0
  221. package/dist/internal/interview/question.d.ts.map +1 -0
  222. package/dist/internal/interview/question.js +198 -0
  223. package/dist/internal/local-control-plane.d.ts.map +1 -1
  224. package/dist/internal/local-control-plane.js +5 -1
  225. package/dist/internal/otel/collector.d.ts +2 -0
  226. package/dist/internal/otel/collector.d.ts.map +1 -1
  227. package/dist/internal/otel/collector.js +4 -0
  228. package/dist/internal/peer-connections.d.ts +6 -0
  229. package/dist/internal/peer-connections.d.ts.map +1 -1
  230. package/dist/internal/peer-connections.js +9 -0
  231. package/dist/internal/resolve-prod-target.d.ts.map +1 -1
  232. package/dist/internal/resolve-prod-target.js +2 -1
  233. package/dist/internal/sdk-runner.d.ts.map +1 -1
  234. package/dist/internal/sdk-runner.js +38 -14
  235. package/dist/internal/sdk-subagent-inherit-support.d.ts +9 -0
  236. package/dist/internal/sdk-subagent-inherit-support.d.ts.map +1 -0
  237. package/dist/internal/sdk-subagent-inherit-support.js +89 -0
  238. package/dist/internal/session-engine.d.ts +13 -0
  239. package/dist/internal/session-engine.d.ts.map +1 -1
  240. package/dist/internal/session-engine.js +59 -11
  241. package/dist/internal/{convert-automation/slug.d.ts → slug.d.ts} +4 -1
  242. package/dist/internal/slug.d.ts.map +1 -0
  243. package/dist/internal/{convert-automation/slug.js → slug.js} +11 -1
  244. package/dist/playground/assets/index-7fVUOA5l.css +1 -0
  245. package/dist/playground/assets/{index-DCsq6f_I.js → index-U3TRnwAP.js} +43 -43
  246. package/dist/playground/index.html +2 -2
  247. package/dist/types.d.ts +10 -1
  248. package/dist/types.d.ts.map +1 -1
  249. package/docs/README.md +4 -4
  250. package/docs/building-with-agents.md +4 -4
  251. package/docs/deployment.md +3 -4
  252. package/docs/guides/migrate.md +3 -3
  253. package/docs/quickstart.md +3 -3
  254. package/docs/reference/agent-config.md +26 -1
  255. package/docs/reference/cli.md +3 -3
  256. package/docs/reference/evals.md +13 -0
  257. package/docs/reference/http-api.md +4 -4
  258. package/docs/reference/project-layout.md +2 -3
  259. package/package.json +5 -4
  260. package/schemas/grokbot-answers.schema.json +343 -0
  261. package/skills/create-agent/SKILL.md +7 -5
  262. package/templates/agentic-owners/bot/lib/owners/handles.ts +1 -1
  263. package/templates/agentic-owners/bot/lib/owners/matching.ts +20 -9
  264. package/dist/docs/assets/chunks/@localSearchIndexroot.BZwvb2LN.js +0 -1
  265. package/dist/docs/assets/chunks/channel.D7DtboxW.js +0 -1
  266. package/dist/docs/assets/chunks/classDiagram-6PBFFD2Q.irslOV8B.js +0 -1
  267. package/dist/docs/assets/chunks/classDiagram-v2-HSJHXN6E.irslOV8B.js +0 -1
  268. package/dist/docs/assets/chunks/clone.DosLeDYL.js +0 -1
  269. package/dist/docs/assets/chunks/stateDiagram-v2-QKLJ7IA2.CAYMmzGj.js +0 -1
  270. package/dist/docs/assets/index.md.BIBHIQtU.js +0 -27
  271. package/dist/docs/assets/index.md.BIBHIQtU.lean.js +0 -1
  272. package/dist/internal/convert-automation/slug.d.ts.map +0 -1
  273. package/dist/playground/assets/index-BVYWBxLU.css +0 -1
  274. /package/dist/docs/assets/{building-with-agents.md.Bi9CQ-bR.lean.js → building-with-agents.md.FZXrY8Nk.lean.js} +0 -0
  275. /package/dist/docs/assets/{deployment.md.hKKN9I4c.lean.js → deployment.md.ajc3VM0m.lean.js} +0 -0
  276. /package/dist/docs/assets/{guides_migrate.md.sCAvvlC6.lean.js → guides_migrate.md.DZBL7dqT.lean.js} +0 -0
  277. /package/dist/docs/assets/{quickstart.md.CduLGBAB.lean.js → quickstart.md.D8JDfkKO.lean.js} +0 -0
  278. /package/dist/docs/assets/{reference_cli.md.BYNIHwbi.lean.js → reference_cli.md.Bt3sAfat.lean.js} +0 -0
  279. /package/dist/docs/assets/{reference_http-api.md.CrqhTv6S.lean.js → reference_http-api.md.Dji-DD_Z.lean.js} +0 -0
  280. /package/dist/docs/assets/{reference_project-layout.md.C2JMRh7p.lean.js → reference_project-layout.md.SNzIvnmC.lean.js} +0 -0
@@ -16,7 +16,7 @@ import { CursorBackendClient } from "./cursor/backend-client.js";
16
16
  import { cursorExternalApiUrl, resolveApiKey, SIGN_IN_HINT } from "./cursor/credentials.js";
17
17
  import { authorizeCursorAccountConnectors } from "./cursor-account-mcp-auth.js";
18
18
  import { readDeployTemplate } from "./cursor-agent-template.js";
19
- import { AgentServeDeployClient, DeployApiError, deploymentServiceAccountId, slugFromDirectoryName, TERMINAL_AGENTKIT_DEPLOY_STATUSES, TERMINAL_DEPLOY_STATUSES, validateDeploymentSlug, } from "./deploy-client.js";
19
+ import { AgentServeDeployClient, DeployApiError, deploymentServiceAccountId, TERMINAL_AGENTKIT_DEPLOY_STATUSES, TERMINAL_DEPLOY_STATUSES, validateDeploymentSlug, } from "./deploy-client.js";
20
20
  import { channelCatchSecretNames, channelCredentialSecretNames } from "./deploy-manifest.js";
21
21
  import { inferDeployGitSource } from "./deploy-source.js";
22
22
  import { describeError } from "./describe-error.js";
@@ -27,6 +27,7 @@ import { deploymentArchitecture, rejectV2ForLegacyCommand } from "./legacy-comma
27
27
  import { deployProgressLabel, sanitizeCustomerError } from "./logs-client.js";
28
28
  import { peerConnectionRefs } from "./peer-connections.js";
29
29
  import { sleep } from "./sleep.js";
30
+ import { slugFromDirectoryName } from "./slug.js";
30
31
  import { stderrPalette } from "./terminal-style.js";
31
32
  const DEFAULT_POLL_INTERVAL_MS = 3_000;
32
33
  const DEFAULT_DEPLOY_TIMEOUT_MS = 10 * 60 * 1000;
@@ -435,7 +436,7 @@ async function deployOne(ctx, options, target, extras) {
435
436
  }
436
437
  for (const repo of options.cursorEventsRepos ?? []) {
437
438
  if (!isValidCursorEventRepo(repo)) {
438
- ctx.err(`Invalid --cursor-events-repo: ${repo} (expected owner/name)\n`);
439
+ ctx.err(`Invalid --cursor-events-repo: ${repo} (expected owner/name, gitlab.com/<group>/<project>, or bitbucket.org/<workspace>/<repo>)\n`);
439
440
  return 1;
440
441
  }
441
442
  }
@@ -637,7 +638,7 @@ async function deployAgentsdkApplication(ctx, options, targets, declarations) {
637
638
  }
638
639
  for (const repo of options.cursorEventsRepos ?? []) {
639
640
  if (!isValidCursorEventRepo(repo)) {
640
- ctx.err(`Invalid --cursor-events-repo: ${repo} (expected owner/name)\n`);
641
+ ctx.err(`Invalid --cursor-events-repo: ${repo} (expected owner/name, gitlab.com/<group>/<project>, or bitbucket.org/<workspace>/<repo>)\n`);
641
642
  return 1;
642
643
  }
643
644
  }
@@ -0,0 +1,29 @@
1
+ /**
2
+ * `bdk init --from-grokbot <recipe.json>`: turn a Grok Bot recipe into a BDK
3
+ * project. Answers come from `--answers`, a TTY interview, or the recipe's
4
+ * defaults; nothing prompts off a TTY. `--dry-run` prints the preview and
5
+ * writes nothing. Like `convert-automation`, the generated project is never
6
+ * imported here, so `validate` stays the user's next step.
7
+ */
8
+ import { installScaffoldDependencies } from "./init-project.js";
9
+ import type { Ask } from "./interview/question.js";
10
+ export interface InitFromGrokbotOptions {
11
+ /** `--from-grokbot`: the recipe JSON file. */
12
+ recipe: string;
13
+ /** `--answers`: an answers JSON file. */
14
+ answers?: string;
15
+ /** Target directory; takes the place of the `location` answer. */
16
+ dir?: string;
17
+ dryRun?: boolean;
18
+ json?: boolean;
19
+ /** Test seams. */
20
+ cwd?: string;
21
+ interactive?: boolean;
22
+ ask?: Ask;
23
+ out?: (text: string) => void;
24
+ err?: (text: string) => void;
25
+ installImpl?: typeof installScaffoldDependencies;
26
+ now?: () => Date;
27
+ }
28
+ export declare function cmdInitFromGrokbot(options: InitFromGrokbotOptions): Promise<number>;
29
+ //# sourceMappingURL=cli-init-grokbot.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli-init-grokbot.d.ts","sourceRoot":"","sources":["../../src/internal/cli-init-grokbot.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAWH,OAAO,EAIL,2BAA2B,EAE5B,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,yBAAyB,CAAC;AAKnD,MAAM,WAAW,sBAAsB;IACrC,8CAA8C;IAC9C,MAAM,EAAE,MAAM,CAAC;IACf,yCAAyC;IACzC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,kEAAkE;IAClE,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,kBAAkB;IAClB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,GAAG,CAAC,EAAE,GAAG,CAAC;IACV,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7B,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7B,WAAW,CAAC,EAAE,OAAO,2BAA2B,CAAC;IACjD,GAAG,CAAC,EAAE,MAAM,IAAI,CAAC;CAClB;AAED,wBAAsB,kBAAkB,CAAC,OAAO,EAAE,sBAAsB,GAAG,OAAO,CAAC,MAAM,CAAC,CA8IzF"}
@@ -0,0 +1,181 @@
1
+ /**
2
+ * `bdk init --from-grokbot <recipe.json>`: turn a Grok Bot recipe into a BDK
3
+ * project. Answers come from `--answers`, a TTY interview, or the recipe's
4
+ * defaults; nothing prompts off a TTY. `--dry-run` prints the preview and
5
+ * writes nothing. Like `convert-automation`, the generated project is never
6
+ * imported here, so `validate` stays the user's next step.
7
+ */
8
+ import { readFile } from "node:fs/promises";
9
+ import { basename, relative, resolve } from "node:path";
10
+ import { resolveAnswers } from "./convert-grokbot/answers.js";
11
+ import { botFromRecipe } from "./convert-grokbot/bot.js";
12
+ import { redactSecretValues } from "./convert-grokbot/checks.js";
13
+ import { convertGrokbot } from "./convert-grokbot/convert.js";
14
+ import { parseGrokbotRecipe } from "./convert-grokbot/recipe.js";
15
+ import { describeError } from "./describe-error.js";
16
+ import { CLI_COMMAND_NAME as CLI, packageVersion } from "./distribution.js";
17
+ import { checkInitTarget, formatCdCommand, installScaffoldDependencies, writeNewFile, } from "./init-project.js";
18
+ import { isRecord } from "./is-record.js";
19
+ import { resolveProjectRoot } from "./project-layout.js";
20
+ import { stdoutPalette } from "./terminal-style.js";
21
+ export async function cmdInitFromGrokbot(options) {
22
+ const toOut = options.out ?? ((text) => void process.stdout.write(text));
23
+ const toErr = options.err ?? ((text) => void process.stderr.write(text));
24
+ const out = (text) => toOut(redactSecretValues(text).text);
25
+ const err = (text) => toErr(redactSecretValues(text).text);
26
+ const json = options.json === true;
27
+ const fail = (message) => {
28
+ if (json) {
29
+ out(`${JSON.stringify({ ok: false, error: message })}\n`);
30
+ }
31
+ err(`${message}\n`);
32
+ return 1;
33
+ };
34
+ const cwd = options.cwd ?? process.cwd();
35
+ const recipeFile = await readJson(resolve(cwd, options.recipe));
36
+ if (!recipeFile.ok) {
37
+ return fail(`Could not read ${options.recipe}: ${recipeFile.error}`);
38
+ }
39
+ const recipe = parseGrokbotRecipe(recipeFile.value);
40
+ if (!recipe.ok) {
41
+ return fail(recipe.error);
42
+ }
43
+ let answers = {};
44
+ if (options.answers !== undefined) {
45
+ const answersFile = await readJson(resolve(cwd, options.answers));
46
+ if (!answersFile.ok) {
47
+ return fail(`Could not read ${options.answers}: ${answersFile.error}`);
48
+ }
49
+ if (!isRecord(answersFile.value)) {
50
+ return fail(`${options.answers} must hold a JSON object.`);
51
+ }
52
+ answers = answersFile.value;
53
+ }
54
+ if (options.dir !== undefined) {
55
+ answers = { ...answers, location: options.dir };
56
+ }
57
+ const bot = botFromRecipe(recipe.recipe, recipe.unknownFields);
58
+ const interactive = options.interactive ?? (!json && process.stdin.isTTY === true && process.stdout.isTTY === true);
59
+ if (interactive) {
60
+ out(`Exporting "${bot.name}". Press Enter to take the default; answers from --answers are not asked again.\n\n`);
61
+ }
62
+ const resolved = await resolveAnswers({ bot, answers, interactive, ask: options.ask, out });
63
+ if (!resolved.ok) {
64
+ return fail(resolved.error);
65
+ }
66
+ const rootDir = resolve(cwd, resolved.answers.location);
67
+ if (!checkInitTarget(rootDir, undefined).ok) {
68
+ return fail(`${rootDir} was scaffolded from a template; export into a fresh directory.`);
69
+ }
70
+ const { files, preview } = convertGrokbot({
71
+ bot,
72
+ resolved,
73
+ generatedAt: (options.now?.() ?? new Date()).toISOString(),
74
+ packageVersion: packageVersion(),
75
+ directoryName: basename(rootDir),
76
+ projectRoot: resolveProjectRoot(rootDir),
77
+ });
78
+ const rel = relative(cwd, rootDir);
79
+ const display = rel === "" ? "." : rel.startsWith("..") ? rootDir : `./${rel}`;
80
+ const c = stdoutPalette();
81
+ if (options.dryRun === true) {
82
+ if (json) {
83
+ out(`${JSON.stringify({ ok: true, dryRun: true, directory: rootDir, preview }, null, 2)}\n`);
84
+ return 0;
85
+ }
86
+ const width = Math.max(...preview.files.map((file) => file.path.length));
87
+ out(renderSummary({
88
+ title: `Dry run: "${bot.name}" → ${display} (nothing written)`,
89
+ files: preview.files.map((file) => ` ${file.path.padEnd(width)} ${c.dim(file.from.join(", "))}`),
90
+ preview,
91
+ next: ["Run the same command without --dry-run to write the project."],
92
+ }));
93
+ return 0;
94
+ }
95
+ const written = [];
96
+ try {
97
+ for (const file of files) {
98
+ written.push({
99
+ path: file.path,
100
+ action: await writeNewFile(rootDir, file),
101
+ });
102
+ }
103
+ }
104
+ catch (error) {
105
+ return fail(`Could not write project files under ${rootDir}: ${describeError(error)}`);
106
+ }
107
+ const install = options.installImpl ?? installScaffoldDependencies;
108
+ if (!json) {
109
+ out("\nInstalling npm packages\n");
110
+ }
111
+ let installed;
112
+ try {
113
+ installed = await install(rootDir, { stdio: json ? "pipe" : "inherit" });
114
+ }
115
+ catch (error) {
116
+ installed = { ok: false, exitCode: -1, stderr: describeError(error) };
117
+ }
118
+ const installError = installed.ok
119
+ ? null
120
+ : installed.stderr.trim() || `npm install exited ${installed.exitCode}`;
121
+ if (json) {
122
+ out(`${JSON.stringify({
123
+ ok: true,
124
+ dryRun: false,
125
+ directory: rootDir,
126
+ files: written,
127
+ installed: installed.ok,
128
+ installError,
129
+ preview,
130
+ }, null, 2)}\n`);
131
+ return 0;
132
+ }
133
+ if (installError !== null) {
134
+ err(`npm install failed (${installError}); run \`npm install\` before \`${CLI} dev\`.\n`);
135
+ }
136
+ const next = [`${CLI} validate`, `${CLI} dev`];
137
+ const cd = formatCdCommand(cwd, rootDir);
138
+ if (cd !== undefined) {
139
+ next.unshift(cd);
140
+ }
141
+ const lines = written.map((file) => c.dim(`${file.action.padStart(12)} ${file.path}`));
142
+ if (written.some((file) => file.action === "exist")) {
143
+ lines.push(c.dim(`\n "exist" files were already there and were kept as-is.`));
144
+ }
145
+ out(renderSummary({ title: `Exported "${bot.name}" → ${display}`, files: lines, preview, next }));
146
+ return 0;
147
+ }
148
+ async function readJson(path) {
149
+ try {
150
+ return { ok: true, value: JSON.parse(await readFile(path, "utf8")) };
151
+ }
152
+ catch (error) {
153
+ return { ok: false, error: describeError(error) };
154
+ }
155
+ }
156
+ function renderSummary(args) {
157
+ const { preview } = args;
158
+ const lines = ["", args.title, "", ...args.files];
159
+ const section = (title, items) => {
160
+ if (items.length > 0) {
161
+ lines.push("", `${title}:`, ...items.map((item) => ` - ${item}`));
162
+ }
163
+ };
164
+ const numbered = (title, items) => {
165
+ if (items.length > 0) {
166
+ lines.push("", `${title}:`, ...items.map((item, index) => ` ${index + 1}. ${item}`));
167
+ }
168
+ };
169
+ section("Defaulted without asking", preview.defaulted);
170
+ section("Ignored (this recipe never asks for them)", preview.ignored);
171
+ section("Left out", preview.excluded);
172
+ section("Not carried over", preview.unmapped.map((entry) => `${entry.from}: ${entry.reason}`));
173
+ section("Placeholders", preview.fillIns.map((fill) => `${fill.routine}: ${fill.label} ${fill.value === undefined ? "(unfilled)" : `= ${fill.value}`}`));
174
+ section("Secrets to set (names only; see SECRETS.md)", preview.secrets.names);
175
+ section("Fresh sign-ins", preview.secrets.reauth);
176
+ section("Warnings", preview.warnings);
177
+ numbered("Setup steps", preview.setupSteps);
178
+ numbered("Next steps", args.next);
179
+ lines.push("");
180
+ return `${lines.join("\n")}\n`;
181
+ }
@@ -9,7 +9,6 @@ import { envPrefixFromName, formatSlackSetupGuide, initSlackChannel, runSlackDoc
9
9
  import { resolveDeployAuth } from "./cli-deploy.js";
10
10
  import { cmdSlackInit, runSlackManifest } from "./cli-slack-manual.js";
11
11
  import { cursorExternalApiUrl, resolveApiKeySync } from "./cursor/credentials.js";
12
- import { slugFromDirectoryName } from "./deploy-client.js";
13
12
  import { inferDeployGitSource } from "./deploy-source.js";
14
13
  import { describeError } from "./describe-error.js";
15
14
  import { DEFAULT_AGENT_ARCHITECTURE, isAgentProjectDir, loadAgentProject } from "./discovery.js";
@@ -20,6 +19,7 @@ import { openBrowser } from "./open-browser.js";
20
19
  import { projectPath, resolveProjectRoot } from "./project-layout.js";
21
20
  import { AgentServeSlackClient, SlackProvisionApiError, } from "./slack-provision-client.js";
22
21
  import { sleep } from "./sleep.js";
22
+ import { slugFromDirectoryName } from "./slug.js";
23
23
  import { stderrPalette } from "./terminal-style.js";
24
24
  const SLACK_HELP = `${CLI} slack — Slack channel pack helpers (Socket Mode)
25
25
 
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Neutralize comment terminators in untrusted text embedded in generated
3
+ * comments: JS line terminators (\r, \n, U+2028, U+2029) end a `//`
4
+ * comment, `-->` ends an HTML comment, and `*` + `/` ends a block comment.
5
+ * Without this, a crafted name injects live code into a generated project.
6
+ */
7
+ export declare function commentSafe(text: string): string;
8
+ //# sourceMappingURL=comment-safe.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"comment-safe.d.ts","sourceRoot":"","sources":["../../src/internal/comment-safe.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAKhD"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Neutralize comment terminators in untrusted text embedded in generated
3
+ * comments: JS line terminators (\r, \n, U+2028, U+2029) end a `//`
4
+ * comment, `-->` ends an HTML comment, and `*` + `/` ends a block comment.
5
+ * Without this, a crafted name injects live code into a generated project.
6
+ */
7
+ export function commentSafe(text) {
8
+ return text
9
+ .replace(/[\r\n\u2028\u2029]+/g, " ")
10
+ .replace(/-->/g, "-- >")
11
+ .replace(/\*\//g, "* /");
12
+ }
@@ -1 +1 @@
1
- {"version":3,"file":"convert-workflow.d.ts","sourceRoot":"","sources":["../../../src/internal/convert-automation/convert-workflow.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAOH,OAAO,KAAK,EAKV,oBAAoB,EACpB,qBAAqB,EAQtB,MAAM,YAAY,CAAC;AAWpB,wBAAgB,eAAe,CAAC,KAAK,EAAE,oBAAoB,GAAG,qBAAqB,CA6GlF"}
1
+ {"version":3,"file":"convert-workflow.d.ts","sourceRoot":"","sources":["../../../src/internal/convert-automation/convert-workflow.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAQH,OAAO,KAAK,EAKV,oBAAoB,EACpB,qBAAqB,EAQtB,MAAM,YAAY,CAAC;AAWpB,wBAAgB,eAAe,CAAC,KAAK,EAAE,oBAAoB,GAAG,qBAAqB,CA6GlF"}
@@ -6,10 +6,11 @@
6
6
  * clock — `exportedAt` comes from the caller.
7
7
  */
8
8
  import { envPrefixFromName } from "../../channels/slack/credentials.js";
9
+ import { commentSafe } from "../comment-safe.js";
9
10
  import { CLI_COMMAND_NAME, PACKAGE_NAME } from "../distribution.js";
10
11
  import { MEMORY_TS } from "../init-scaffold.js";
11
12
  import { CANONICAL_PROJECT_ROOT, projectPath } from "../project-layout.js";
12
- import { SlugRegistry, slugify } from "./slug.js";
13
+ import { SlugRegistry, slugify } from "../slug.js";
13
14
  export function convertWorkflow(input) {
14
15
  const { automation, workflow, mcpServers, exportedAt } = input;
15
16
  const projectRoot = input.projectRoot ?? CANONICAL_PROJECT_ROOT;
@@ -962,19 +963,6 @@ function behaviorSteps(workflow, warnings, slack, projectRoot) {
962
963
  // ============================================================================
963
964
  // Shared helpers
964
965
  // ============================================================================
965
- /**
966
- * Neutralize comment-terminator sequences in server-provided text embedded
967
- * in generated comments: JS line terminators (\r, \n, U+2028, U+2029) end a
968
- * `//` comment, `-->` ends an HTML comment, and `*` + `/` ends a block
969
- * comment. Without this, a crafted automation or MCP server name injects
970
- * live code into the generated project.
971
- */
972
- function commentSafe(text) {
973
- return text
974
- .replace(/[\r\n\u2028\u2029]+/g, " ")
975
- .replace(/-->/g, "-- >")
976
- .replace(/\*\//g, "* /");
977
- }
978
966
  function jsonComment(value) {
979
967
  // JSON.stringify leaves U+2028/U+2029 raw; both terminate a `//` comment.
980
968
  return JSON.stringify(value, null, 2)
@@ -0,0 +1,127 @@
1
+ /**
2
+ * Answers for `bdk init --from-grokbot`: the create-agent answers an export
3
+ * uses, plus the export decisions. Grok Bot collects them in chat and passes
4
+ * an answers file; a TTY asks the same questions with the same defaults.
5
+ * Answers name secrets and connectors; they never carry secret values.
6
+ */
7
+ import { type Channel } from "../interview/agent-questions.js";
8
+ import { type Ask, type InterviewField } from "../interview/question.js";
9
+ import type { Bot } from "./bot.js";
10
+ export declare const GROKBOT_ANSWERS_VERSION = 1;
11
+ export declare const KINDS: readonly ["skills", "routines", "plugins"];
12
+ export declare const MEMORY_MODES: readonly ["skill", "kv", "drop"];
13
+ export declare const CONNECTOR_AUTH: readonly ["cursor-account", "oauth", "secret"];
14
+ export declare const DEPLOY_WHEN: readonly ["after-review", "now", "scheduled", "never"];
15
+ export declare const SLACK_APPS: readonly ["new", "move"];
16
+ export declare const SLACK_CUTOVERS: readonly ["manual", "after-deploy", "scheduled"];
17
+ export type Kind = (typeof KINDS)[number];
18
+ export interface Selection {
19
+ /** Slugs to keep; omitted keeps everything. */
20
+ include?: string[];
21
+ /** Slugs to leave behind, applied after `include`. */
22
+ exclude?: string[];
23
+ }
24
+ export interface ConnectorAnswer {
25
+ auth?: (typeof CONNECTOR_AUTH)[number];
26
+ /** Cursor account connector name (`cursor-account`). */
27
+ server?: string;
28
+ /** MCP server URL (`oauth`, `secret`). */
29
+ url?: string;
30
+ /** Secret name holding the bearer token (`secret`). */
31
+ secret?: string;
32
+ }
33
+ export interface SlackAnswers {
34
+ app?: (typeof SLACK_APPS)[number];
35
+ cutover?: (typeof SLACK_CUTOVERS)[number];
36
+ cutoverAt?: string;
37
+ teamPrefix?: string;
38
+ botName?: string;
39
+ justification?: string;
40
+ }
41
+ export interface GrokbotAnswers {
42
+ /** Editor hint pointing at the published JSON Schema; ignored. */
43
+ $schema?: string;
44
+ version?: number;
45
+ name?: string;
46
+ description?: string;
47
+ location?: string;
48
+ model?: string;
49
+ channels?: Channel[];
50
+ memory?: (typeof MEMORY_MODES)[number];
51
+ skills?: Selection;
52
+ routines?: Selection;
53
+ plugins?: Selection;
54
+ connectors?: Record<string, ConnectorAnswer>;
55
+ /** Routine slug → placeholder id → value. */
56
+ fillIns?: Record<string, Record<string, string>>;
57
+ secrets?: {
58
+ names?: string[];
59
+ reauth?: string[];
60
+ };
61
+ repo?: {
62
+ name?: string;
63
+ namespace?: string;
64
+ };
65
+ deploy?: {
66
+ when?: (typeof DEPLOY_WHEN)[number];
67
+ at?: string;
68
+ };
69
+ slack?: SlackAnswers;
70
+ }
71
+ /** A connector after defaults: one of the shapes its questions allow. */
72
+ export type ResolvedConnector = {
73
+ auth: "cursor-account";
74
+ server: string;
75
+ } | {
76
+ auth: "oauth";
77
+ url: string;
78
+ } | {
79
+ auth: "secret";
80
+ url: string;
81
+ secret: string;
82
+ };
83
+ /** Slack answers after defaults; present exactly when the Slack channel is on. */
84
+ export type ResolvedSlack = Required<Pick<SlackAnswers, "app" | "cutover" | "botName" | "justification">> & Pick<SlackAnswers, "cutoverAt" | "teamPrefix">;
85
+ /** Answers after defaults: what the conversion and the export record read. */
86
+ export type ResolvedAnswers = Omit<GrokbotAnswers, "connectors" | "repo" | "deploy" | "slack"> & Required<Pick<GrokbotAnswers, "version" | "name" | "description" | "location" | "model" | "channels">> & {
87
+ connectors?: Record<string, ResolvedConnector>;
88
+ repo: {
89
+ name: string;
90
+ namespace?: string;
91
+ };
92
+ deploy: {
93
+ when: (typeof DEPLOY_WHEN)[number];
94
+ at?: string;
95
+ };
96
+ slack?: ResolvedSlack;
97
+ };
98
+ /** The questions for one recipe, in asking order. */
99
+ export declare function grokbotFields(bot: Bot): InterviewField[];
100
+ export interface ResolveInput {
101
+ bot: Bot;
102
+ answers?: unknown;
103
+ interactive: boolean;
104
+ ask?: Ask;
105
+ out?: (text: string) => void;
106
+ }
107
+ export interface Resolved {
108
+ answers: ResolvedAnswers;
109
+ /** Answers filled from defaults without asking. */
110
+ defaulted: string[];
111
+ /** Answers given that this recipe never asks for. */
112
+ ignored: string[];
113
+ }
114
+ export type ResolveResult = ({
115
+ ok: true;
116
+ } & Resolved) | {
117
+ ok: false;
118
+ error: string;
119
+ };
120
+ export declare function resolveAnswers(input: ResolveInput): Promise<ResolveResult>;
121
+ /**
122
+ * JSON Schema for answers files, annotated from the questions so a chat
123
+ * client can render one widget per field: `title`, `description`, a static
124
+ * `default`, `x-labels` for choice labels, and `x-round` for the round.
125
+ */
126
+ export declare function answersJsonSchema(): Record<string, unknown>;
127
+ //# sourceMappingURL=answers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"answers.d.ts","sourceRoot":"","sources":["../../../src/internal/convert-grokbot/answers.ts"],"names":[],"mappings":"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"}