@cursor/bdk 0.2.23 → 0.2.25

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 (421) hide show
  1. package/AGENTS.md +1 -0
  2. package/dist/artifacts.d.ts +1 -1
  3. package/dist/artifacts.js +1 -1
  4. package/dist/bin/agent-serve.d.ts +1 -1
  5. package/dist/bin/agent-serve.js +48 -12
  6. package/dist/channels/bitbucket/bitbucket-channel.js +1 -1
  7. package/dist/channels/bitbucket/bitbucket-webhook.d.ts +3 -2
  8. package/dist/channels/bitbucket/bitbucket-webhook.d.ts.map +1 -1
  9. package/dist/channels/bitbucket/bitbucket-webhook.js +14 -9
  10. package/dist/channels/change-monitors/change-monitors-channel.js +1 -1
  11. package/dist/channels/deployments/deployments-channel.js +1 -1
  12. package/dist/channels/github/github-channel.d.ts.map +1 -1
  13. package/dist/channels/github/github-channel.js +10 -19
  14. package/dist/channels/gitlab/gitlab-channel.js +1 -1
  15. package/dist/channels/issues/issues-channel.js +1 -1
  16. package/dist/channels/origin/origin-channel.js +1 -1
  17. package/dist/channels/pagerduty/api.d.ts +74 -0
  18. package/dist/channels/pagerduty/api.d.ts.map +1 -0
  19. package/dist/channels/pagerduty/api.js +101 -0
  20. package/dist/channels/pagerduty/defaults.d.ts +42 -0
  21. package/dist/channels/pagerduty/defaults.d.ts.map +1 -0
  22. package/dist/channels/pagerduty/defaults.js +132 -0
  23. package/dist/channels/pagerduty/events.d.ts +24 -0
  24. package/dist/channels/pagerduty/events.d.ts.map +1 -0
  25. package/dist/channels/pagerduty/events.js +38 -0
  26. package/dist/channels/pagerduty/index.d.ts +31 -0
  27. package/dist/channels/pagerduty/index.d.ts.map +1 -0
  28. package/dist/channels/pagerduty/index.js +30 -0
  29. package/dist/channels/pagerduty/pagerduty-channel.d.ts +64 -0
  30. package/dist/channels/pagerduty/pagerduty-channel.d.ts.map +1 -0
  31. package/dist/channels/pagerduty/pagerduty-channel.js +195 -0
  32. package/dist/channels/pagerduty/pagerduty-webhook.d.ts +70 -0
  33. package/dist/channels/pagerduty/pagerduty-webhook.d.ts.map +1 -0
  34. package/dist/channels/pagerduty/pagerduty-webhook.js +280 -0
  35. package/dist/channels/pagerduty/payload.d.ts +33 -0
  36. package/dist/channels/pagerduty/payload.d.ts.map +1 -0
  37. package/dist/channels/pagerduty/payload.js +150 -0
  38. package/dist/channels/pagerduty/replay.d.ts +35 -0
  39. package/dist/channels/pagerduty/replay.d.ts.map +1 -0
  40. package/dist/channels/pagerduty/replay.js +115 -0
  41. package/dist/channels/pagerduty/secrets.d.ts +16 -0
  42. package/dist/channels/pagerduty/secrets.d.ts.map +1 -0
  43. package/dist/channels/pagerduty/secrets.js +23 -0
  44. package/dist/channels/pagerduty/self-user.d.ts +51 -0
  45. package/dist/channels/pagerduty/self-user.d.ts.map +1 -0
  46. package/dist/channels/pagerduty/self-user.js +157 -0
  47. package/dist/channels/pagerduty/state.d.ts +31 -0
  48. package/dist/channels/pagerduty/state.d.ts.map +1 -0
  49. package/dist/channels/pagerduty/state.js +30 -0
  50. package/dist/channels/pagerduty/types.d.ts +217 -0
  51. package/dist/channels/pagerduty/types.d.ts.map +1 -0
  52. package/dist/channels/pagerduty/types.js +1 -0
  53. package/dist/channels/runs/runs-channel.js +1 -1
  54. package/dist/channels/slack/tool-approval-events.js +5 -5
  55. package/dist/channels.d.ts +14 -1
  56. package/dist/channels.d.ts.map +1 -1
  57. package/dist/channels.js +24 -9
  58. package/dist/docs/404.html +3 -3
  59. package/dist/docs/assets/{app.AXQcJZaf.js → app.BjS1QEI4.js} +4 -4
  60. package/dist/docs/assets/chunks/@localSearchIndexroot.oGqZumnJ.js +1 -0
  61. package/dist/docs/assets/chunks/{VPLocalSearchBox.hlZ2vmun.js → VPLocalSearchBox.BOuvjb5Y.js} +2 -2
  62. package/dist/docs/assets/chunks/{arc.9KNWdH-l.js → arc.3WR6Jf-y.js} +1 -1
  63. package/dist/docs/assets/chunks/{architectureDiagram-Q4EWVU46.BfGzkBHI.js → architectureDiagram-Q4EWVU46.Dtb6Dqh6.js} +1 -1
  64. package/dist/docs/assets/chunks/{baseUniq.Btk8-2Rs.js → baseUniq.BUyrgrZE.js} +1 -1
  65. package/dist/docs/assets/chunks/{blockDiagram-DXYQGD6D.BmHm9OH5.js → blockDiagram-DXYQGD6D.BVLV_voZ.js} +1 -1
  66. package/dist/docs/assets/chunks/{c4Diagram-AHTNJAMY.9POrbDHJ.js → c4Diagram-AHTNJAMY.jXJ1q70M.js} +1 -1
  67. package/dist/docs/assets/chunks/channel.Dt4aweTm.js +1 -0
  68. package/dist/docs/assets/chunks/{chunk-4BX2VUAB.YWZVSM6S.js → chunk-4BX2VUAB.zz1SMBvK.js} +1 -1
  69. package/dist/docs/assets/chunks/{chunk-4TB4RGXK.Cxr_SFgw.js → chunk-4TB4RGXK.CzYKuv3I.js} +1 -1
  70. package/dist/docs/assets/chunks/{chunk-55IACEB6.DtiJyPlD.js → chunk-55IACEB6.C7_tcJZD.js} +1 -1
  71. package/dist/docs/assets/chunks/{chunk-EDXVE4YY.b5gNHJPH.js → chunk-EDXVE4YY.DeTwQPVO.js} +1 -1
  72. package/dist/docs/assets/chunks/{chunk-FMBD7UC4.DmN9yA_M.js → chunk-FMBD7UC4.DhMTl7ut.js} +1 -1
  73. package/dist/docs/assets/chunks/{chunk-OYMX7WX6.Dfm3xgV5.js → chunk-OYMX7WX6.Me7f5hEp.js} +1 -1
  74. package/dist/docs/assets/chunks/{chunk-QZHKN3VN.sXNxDcJA.js → chunk-QZHKN3VN.D0E0Bb6g.js} +1 -1
  75. package/dist/docs/assets/chunks/{chunk-YZCP3GAM.DgBnDUV7.js → chunk-YZCP3GAM.CdOOBFYL.js} +1 -1
  76. package/dist/docs/assets/chunks/classDiagram-6PBFFD2Q.DGUHZs6j.js +1 -0
  77. package/dist/docs/assets/chunks/classDiagram-v2-HSJHXN6E.DGUHZs6j.js +1 -0
  78. package/dist/docs/assets/chunks/clone.DWf3k0Z0.js +1 -0
  79. package/dist/docs/assets/chunks/{cose-bilkent-S5V4N54A.D18MEcoN.js → cose-bilkent-S5V4N54A.BNbGESzN.js} +1 -1
  80. package/dist/docs/assets/chunks/{dagre-KV5264BT.CSf3tihh.js → dagre-KV5264BT.zU7Lu_xJ.js} +1 -1
  81. package/dist/docs/assets/chunks/{diagram-5BDNPKRD.cbfzAfoC.js → diagram-5BDNPKRD.B9qOdE5h.js} +1 -1
  82. package/dist/docs/assets/chunks/{diagram-G4DWMVQ6.6i6P3uu9.js → diagram-G4DWMVQ6.D8X-sf77.js} +1 -1
  83. package/dist/docs/assets/chunks/{diagram-MMDJMWI5.B9HAIfN6.js → diagram-MMDJMWI5.CW7MvMlE.js} +1 -1
  84. package/dist/docs/assets/chunks/{diagram-TYMM5635.B9baAjUv.js → diagram-TYMM5635.J489G0Nd.js} +1 -1
  85. package/dist/docs/assets/chunks/{erDiagram-SMLLAGMA.DaBmX_GN.js → erDiagram-SMLLAGMA.BkW7tGfs.js} +1 -1
  86. package/dist/docs/assets/chunks/{flowDiagram-DWJPFMVM.CJqQJjkb.js → flowDiagram-DWJPFMVM.jc9iWORD.js} +1 -1
  87. package/dist/docs/assets/chunks/{ganttDiagram-T4ZO3ILL.CIXBLQhC.js → ganttDiagram-T4ZO3ILL.B-UQfd9E.js} +1 -1
  88. package/dist/docs/assets/chunks/{gitGraphDiagram-UUTBAWPF.CDgentto.js → gitGraphDiagram-UUTBAWPF.DFzrTSlJ.js} +1 -1
  89. package/dist/docs/assets/chunks/{graph.BWHn6JBQ.js → graph.C5IB6_e_.js} +1 -1
  90. package/dist/docs/assets/chunks/{infoDiagram-42DDH7IO.d9VU_ts_.js → infoDiagram-42DDH7IO.DwF0-c8L.js} +1 -1
  91. package/dist/docs/assets/chunks/{ishikawaDiagram-UXIWVN3A.BNO79Prj.js → ishikawaDiagram-UXIWVN3A.fBaTqzE7.js} +1 -1
  92. package/dist/docs/assets/chunks/{journeyDiagram-VCZTEJTY.CPgUTM1R.js → journeyDiagram-VCZTEJTY.CM8gDVJy.js} +1 -1
  93. package/dist/docs/assets/chunks/{kanban-definition-6JOO6SKY.idl0Eoe1.js → kanban-definition-6JOO6SKY.YiD1p0LB.js} +1 -1
  94. package/dist/docs/assets/chunks/{layout.BY7DIMr6.js → layout.6Um-DVJT.js} +1 -1
  95. package/dist/docs/assets/chunks/{linear.DYaUDrHd.js → linear.DcTeg4Hn.js} +1 -1
  96. package/dist/docs/assets/chunks/{min.V6MWb1UC.js → min.CIxkY8Fe.js} +1 -1
  97. package/dist/docs/assets/chunks/{mindmap-definition-QFDTVHPH.BRlJXuFS.js → mindmap-definition-QFDTVHPH.D4QM_voR.js} +1 -1
  98. package/dist/docs/assets/chunks/{pieDiagram-DEJITSTG.BIhkDLcB.js → pieDiagram-DEJITSTG.nmB309G1.js} +1 -1
  99. package/dist/docs/assets/chunks/{quadrantDiagram-34T5L4WZ.Bw-_VEL3.js → quadrantDiagram-34T5L4WZ.D1HtZR3C.js} +1 -1
  100. package/dist/docs/assets/chunks/{requirementDiagram-MS252O5E.DolEGwxw.js → requirementDiagram-MS252O5E.CZgQWob-.js} +1 -1
  101. package/dist/docs/assets/chunks/{sankeyDiagram-XADWPNL6.hMM-8BhN.js → sankeyDiagram-XADWPNL6.DtiBfU-P.js} +1 -1
  102. package/dist/docs/assets/chunks/{sequenceDiagram-FGHM5R23.Bg_CRVDy.js → sequenceDiagram-FGHM5R23.Cld4gDSt.js} +1 -1
  103. package/dist/docs/assets/chunks/{stateDiagram-FHFEXIEX.DNWdl34_.js → stateDiagram-FHFEXIEX.DatP823_.js} +1 -1
  104. package/dist/docs/assets/chunks/stateDiagram-v2-QKLJ7IA2.C0571l4D.js +1 -0
  105. package/dist/docs/assets/chunks/{theme.CBW1oolh.js → theme.D5jbBys7.js} +2 -2
  106. package/dist/docs/assets/chunks/{timeline-definition-GMOUNBTQ.Cr1wJ1mB.js → timeline-definition-GMOUNBTQ.DwQLI2be.js} +1 -1
  107. package/dist/docs/assets/chunks/{vennDiagram-DHZGUBPP.BltDV9j7.js → vennDiagram-DHZGUBPP.a5yMfnsa.js} +1 -1
  108. package/dist/docs/assets/chunks/{wardley-RL74JXVD.BWPaUhOs.js → wardley-RL74JXVD.B-FXivgT.js} +1 -1
  109. package/dist/docs/assets/chunks/{wardleyDiagram-NUSXRM2D.nsADqCCo.js → wardleyDiagram-NUSXRM2D.Dz--Opy3.js} +1 -1
  110. package/dist/docs/assets/chunks/{xychartDiagram-5P7HB3ND.CCwbO3dK.js → xychartDiagram-5P7HB3ND.Dl8w8TeT.js} +1 -1
  111. package/dist/docs/assets/{deployment.md.CtSJ6sF9.js → deployment.md.3MMWuPeV.js} +5 -5
  112. package/dist/docs/assets/{deployment.md.CtSJ6sF9.lean.js → deployment.md.3MMWuPeV.lean.js} +1 -1
  113. package/dist/docs/assets/{guides_cloud-agents.md.CBK7W0-O.js → guides_cloud-agents.md.BzbzcOyj.js} +2 -2
  114. package/dist/docs/assets/{guides_cloud-agents.md.CBK7W0-O.lean.js → guides_cloud-agents.md.BzbzcOyj.lean.js} +1 -1
  115. package/dist/docs/assets/{guides_opentelemetry.md.ByW1Fs7b.js → guides_opentelemetry.md.DBQtp7_V.js} +13 -5
  116. package/dist/docs/assets/{guides_opentelemetry.md.ByW1Fs7b.lean.js → guides_opentelemetry.md.DBQtp7_V.lean.js} +1 -1
  117. package/dist/docs/assets/guides_pagerduty.md.BHXMcMtx.js +60 -0
  118. package/dist/docs/assets/guides_pagerduty.md.BHXMcMtx.lean.js +1 -0
  119. package/dist/docs/assets/{reference_agent-config.md.DYA6ge6t.js → reference_agent-config.md.IplwL25I.js} +1 -2
  120. package/dist/docs/assets/{reference_agent-config.md.DYA6ge6t.lean.js → reference_agent-config.md.IplwL25I.lean.js} +1 -1
  121. package/dist/docs/assets/{reference_channels.md.DYg0CLud.js → reference_channels.md.Bxaa020x.js} +1 -1
  122. package/dist/docs/assets/{reference_cli.md.DB7Llw3T.js → reference_cli.md.1o_TqKdt.js} +7 -2
  123. package/dist/docs/assets/{reference_cli.md.DB7Llw3T.lean.js → reference_cli.md.1o_TqKdt.lean.js} +1 -1
  124. package/dist/docs/assets/{reference_extensions.md.OUacPetl.js → reference_extensions.md.DKxTuCIw.js} +11 -8
  125. package/dist/docs/assets/{reference_extensions.md.OUacPetl.lean.js → reference_extensions.md.DKxTuCIw.lean.js} +1 -1
  126. package/dist/docs/assets/{reference_instructions.md.DrcHZXig.js → reference_instructions.md.BYMVxAkw.js} +4 -4
  127. package/dist/docs/assets/{reference_instructions.md.DrcHZXig.lean.js → reference_instructions.md.BYMVxAkw.lean.js} +1 -1
  128. package/dist/docs/assets/{reference_schedules.md.BqWnJES4.js → reference_schedules.md.03Ryy9ca.js} +3 -3
  129. package/dist/docs/assets/{reference_tools.md.08XR7lIl.js → reference_tools.md.-6pypsWt.js} +1 -1
  130. package/dist/docs/assets/{style.Dwls12uf.css → style.nMsabY-V.css} +1 -1
  131. package/dist/docs/assets/templates_agentic-owners.md.CTEnR0jp.js +13 -0
  132. package/dist/docs/assets/{templates_agentic-owners.md.CvmABtia.lean.js → templates_agentic-owners.md.CTEnR0jp.lean.js} +1 -1
  133. package/dist/docs/building-with-agents.html +37 -37
  134. package/dist/docs/deployment.html +42 -42
  135. package/dist/docs/deployment.md +9 -4
  136. package/dist/docs/evals.html +37 -37
  137. package/dist/docs/guides/agent-to-agent.html +37 -37
  138. package/dist/docs/guides/bitbucket.html +37 -37
  139. package/dist/docs/guides/cloud-agents.html +38 -38
  140. package/dist/docs/guides/cloud-agents.md +1 -0
  141. package/dist/docs/guides/convert-automation.html +37 -37
  142. package/dist/docs/guides/export-grokbot.html +37 -37
  143. package/dist/docs/guides/github.html +37 -37
  144. package/dist/docs/guides/gitlab.html +37 -37
  145. package/dist/docs/guides/grokbot-agents.html +37 -37
  146. package/dist/docs/guides/hooks.html +37 -37
  147. package/dist/docs/guides/improve.html +37 -37
  148. package/dist/docs/guides/jev.html +37 -37
  149. package/dist/docs/guides/mcp-oauth.html +37 -37
  150. package/dist/docs/guides/migrate.html +37 -37
  151. package/dist/docs/guides/opentelemetry.html +49 -41
  152. package/dist/docs/guides/opentelemetry.md +54 -3
  153. package/dist/docs/guides/pagerduty.html +119 -0
  154. package/dist/docs/guides/pagerduty.md +336 -0
  155. package/dist/docs/guides/slack.html +37 -37
  156. package/dist/docs/guides/webhooks.html +37 -37
  157. package/dist/docs/hashmap.json +1 -1
  158. package/dist/docs/hillclimbing.html +37 -37
  159. package/dist/docs/index.html +37 -37
  160. package/dist/docs/llms-full.txt +510 -42
  161. package/dist/docs/llms.txt +1 -0
  162. package/dist/docs/quickstart.html +37 -37
  163. package/dist/docs/reference/agent-config.html +38 -39
  164. package/dist/docs/reference/agent-config.md +0 -1
  165. package/dist/docs/reference/artifacts.html +37 -37
  166. package/dist/docs/reference/channels.html +38 -38
  167. package/dist/docs/reference/channels.md +2 -1
  168. package/dist/docs/reference/cli.html +43 -38
  169. package/dist/docs/reference/cli.md +27 -0
  170. package/dist/docs/reference/connections.html +37 -37
  171. package/dist/docs/reference/evals.html +37 -37
  172. package/dist/docs/reference/extensions.html +47 -44
  173. package/dist/docs/reference/extensions.md +15 -9
  174. package/dist/docs/reference/hooks.html +37 -37
  175. package/dist/docs/reference/http-api.html +37 -37
  176. package/dist/docs/reference/instructions.html +40 -40
  177. package/dist/docs/reference/instructions.md +5 -1
  178. package/dist/docs/reference/memory.html +37 -37
  179. package/dist/docs/reference/playground.html +36 -36
  180. package/dist/docs/reference/project-layout.html +37 -37
  181. package/dist/docs/reference/prompt.html +37 -37
  182. package/dist/docs/reference/schedules.html +40 -40
  183. package/dist/docs/reference/sessions.html +36 -36
  184. package/dist/docs/reference/skills.html +37 -37
  185. package/dist/docs/reference/subagents.html +37 -37
  186. package/dist/docs/reference/tools.html +39 -39
  187. package/dist/docs/reference/tools.md +1 -0
  188. package/dist/docs/templates/agentic-owners.html +42 -43
  189. package/dist/docs/templates/agentic-owners.md +55 -23
  190. package/dist/docs/templates/grokbot-agents.html +37 -37
  191. package/dist/docs/templates/security-reviewer.html +37 -37
  192. package/dist/docs/templates/thermo-quality-review.html +37 -37
  193. package/dist/docs/templates/thermo-review.html +37 -37
  194. package/dist/docs/templates/triage.html +37 -37
  195. package/dist/docs/troubleshooting.html +36 -36
  196. package/dist/extensions/cursor-cloud-agents/extension.d.ts +2 -0
  197. package/dist/extensions/cursor-cloud-agents/extension.d.ts.map +1 -1
  198. package/dist/extensions/cursor-cloud-agents/extension.js +2 -1
  199. package/dist/extensions/cursor-cloud-agents/lib/backend.d.ts +1 -0
  200. package/dist/extensions/cursor-cloud-agents/lib/backend.d.ts.map +1 -1
  201. package/dist/extensions/cursor-cloud-agents/lib/backend.js +2 -1
  202. package/dist/extensions/cursor-cloud-agents/lib/fleet.js +1 -1
  203. package/dist/extensions/cursor-cloud-agents/lib/inputs.d.ts +1 -1
  204. package/dist/extensions/cursor-cloud-agents/lib/inputs.d.ts.map +1 -1
  205. package/dist/extensions/cursor-cloud-agents/lib/inputs.js +1 -1
  206. package/dist/extensions/cursor-cloud-agents/reminders/cloud-agent-stop-watch.js +1 -1
  207. package/dist/extensions/cursor-cloud-agents/tools/launch.js +1 -1
  208. package/dist/extensions/cursor-cloud-agents/tools/list.js +1 -1
  209. package/dist/extensions/cursor-cloud-agents/tools/reply.js +1 -1
  210. package/dist/extensions/cursor-grokbot-agents/extension.js +1 -1
  211. package/dist/extensions/cursor-grokbot-agents/lib/backend.js +1 -1
  212. package/dist/extensions/cursor-grokbot-agents/lib/contacts.js +1 -1
  213. package/dist/extensions/cursor-grokbot-agents/lib/inputs.d.ts +1 -1
  214. package/dist/extensions/cursor-grokbot-agents/lib/inputs.d.ts.map +1 -1
  215. package/dist/extensions/cursor-grokbot-agents/lib/inputs.js +1 -1
  216. package/dist/extensions/cursor-grokbot-agents/tools/ask.js +1 -1
  217. package/dist/extensions/cursor-grokbot-agents/tools/check.js +1 -1
  218. package/dist/extensions/cursor-grokbot-agents/tools/interrupt.js +1 -1
  219. package/dist/extensions/cursor-grokbot-agents/tools/list.js +1 -1
  220. package/dist/extensions/improve/extension.js +1 -1
  221. package/dist/extensions/jev/extension.js +1 -1
  222. package/dist/extensions/jev/tools/evaluate.js +1 -1
  223. package/dist/extensions/slack-communication/extension.js +1 -1
  224. package/dist/extensions/slack-communication/tools/delete-message.js +1 -1
  225. package/dist/extensions/slack-communication/tools/edit-message.js +1 -1
  226. package/dist/extensions/slack-communication/tools/post-card.js +1 -1
  227. package/dist/extensions/slack-communication/tools/post-file.js +1 -1
  228. package/dist/extensions/slack-communication/tools/post-update.js +1 -1
  229. package/dist/extensions/slack-communication/tools/react.js +1 -1
  230. package/dist/extensions/slack-communication/tools/set-status.js +1 -1
  231. package/dist/extensions.d.ts +1 -1
  232. package/dist/extensions.js +1 -1
  233. package/dist/internal/approval-gate.d.ts +4 -2
  234. package/dist/internal/approval-gate.d.ts.map +1 -1
  235. package/dist/internal/approval-gate.js +2 -1
  236. package/dist/internal/builtin-tools/artifacts.d.ts.map +1 -1
  237. package/dist/internal/builtin-tools/artifacts.js +46 -13
  238. package/dist/internal/builtin-tools/reminders.js +1 -1
  239. package/dist/internal/channel-architecture.d.ts +1 -1
  240. package/dist/internal/channel-architecture.d.ts.map +1 -1
  241. package/dist/internal/channel-architecture.js +4 -2
  242. package/dist/internal/cli-deploy.d.ts.map +1 -1
  243. package/dist/internal/cli-deploy.js +21 -12
  244. package/dist/internal/cli-pagerduty.d.ts +32 -0
  245. package/dist/internal/cli-pagerduty.d.ts.map +1 -0
  246. package/dist/internal/cli-pagerduty.js +242 -0
  247. package/dist/internal/continuation-channel.d.ts.map +1 -1
  248. package/dist/internal/continuation-channel.js +7 -0
  249. package/dist/internal/continuation-identity.d.ts +11 -3
  250. package/dist/internal/continuation-identity.d.ts.map +1 -1
  251. package/dist/internal/continuation-identity.js +83 -0
  252. package/dist/internal/convert-automation/convert-workflow.js +1 -1
  253. package/dist/internal/convert-grokbot/answers.js +1 -1
  254. package/dist/internal/convert-grokbot/recipe.d.ts +1 -1
  255. package/dist/internal/convert-grokbot/recipe.d.ts.map +1 -1
  256. package/dist/internal/convert-grokbot/recipe.js +1 -1
  257. package/dist/internal/cursor/backend-client.d.ts +1 -1
  258. package/dist/internal/cursor/backend-client.d.ts.map +1 -1
  259. package/dist/internal/cursor/backend-client.js +1 -1
  260. package/dist/internal/cursor/credentials.d.ts +1 -1
  261. package/dist/internal/cursor/credentials.d.ts.map +1 -1
  262. package/dist/internal/cursor/credentials.js +1 -1
  263. package/dist/internal/deploy-client.js +1 -1
  264. package/dist/internal/deploy-manifest.d.ts +11 -4
  265. package/dist/internal/deploy-manifest.d.ts.map +1 -1
  266. package/dist/internal/deploy-manifest.js +19 -6
  267. package/dist/internal/discovery/agent-config.d.ts.map +1 -1
  268. package/dist/internal/discovery/agent-config.js +10 -10
  269. package/dist/internal/discovery/agent.d.ts.map +1 -1
  270. package/dist/internal/discovery/agent.js +10 -10
  271. package/dist/internal/discovery/channels.d.ts.map +1 -1
  272. package/dist/internal/discovery/channels.js +20 -16
  273. package/dist/internal/discovery/context.d.ts +16 -0
  274. package/dist/internal/discovery/context.d.ts.map +1 -1
  275. package/dist/internal/discovery/context.js +66 -0
  276. package/dist/internal/discovery/cursor-plugin.js +1 -1
  277. package/dist/internal/discovery/extension-overlay.d.ts.map +1 -1
  278. package/dist/internal/discovery/extension-overlay.js +2 -6
  279. package/dist/internal/discovery/info.d.ts.map +1 -1
  280. package/dist/internal/discovery/info.js +3 -0
  281. package/dist/internal/discovery/instructions.d.ts.map +1 -1
  282. package/dist/internal/discovery/instructions.js +3 -6
  283. package/dist/internal/discovery/modules.d.ts.map +1 -1
  284. package/dist/internal/discovery/modules.js +3 -6
  285. package/dist/internal/discovery/project.d.ts +6 -0
  286. package/dist/internal/discovery/project.d.ts.map +1 -1
  287. package/dist/internal/discovery/project.js +27 -5
  288. package/dist/internal/discovery/runtime.d.ts.map +1 -1
  289. package/dist/internal/discovery/runtime.js +8 -8
  290. package/dist/internal/discovery.d.ts +1 -1
  291. package/dist/internal/discovery.d.ts.map +1 -1
  292. package/dist/internal/discovery.js +1 -1
  293. package/dist/internal/expected-delivery-failure.d.ts.map +1 -1
  294. package/dist/internal/expected-delivery-failure.js +6 -0
  295. package/dist/internal/factory-resource-channel.d.ts +1 -1
  296. package/dist/internal/factory-resource-channel.d.ts.map +1 -1
  297. package/dist/internal/filesystem/sdk-schemas.d.ts +1 -1
  298. package/dist/internal/filesystem/sdk-schemas.d.ts.map +1 -1
  299. package/dist/internal/filesystem/sdk-schemas.js +5 -4
  300. package/dist/internal/filesystem/tools.js +1 -1
  301. package/dist/internal/hmac-secret-values.d.ts +48 -0
  302. package/dist/internal/hmac-secret-values.d.ts.map +1 -0
  303. package/dist/internal/hmac-secret-values.js +68 -0
  304. package/dist/internal/host-otel.d.ts +2 -1
  305. package/dist/internal/host-otel.d.ts.map +1 -1
  306. package/dist/internal/host-otel.js +20 -6
  307. package/dist/internal/host-platforms.d.ts.map +1 -1
  308. package/dist/internal/host-platforms.js +8 -2
  309. package/dist/internal/hosted-delivery-protocol.d.ts +4 -0
  310. package/dist/internal/hosted-delivery-protocol.d.ts.map +1 -1
  311. package/dist/internal/hosted-delivery.d.ts +7 -0
  312. package/dist/internal/hosted-delivery.d.ts.map +1 -1
  313. package/dist/internal/hosted-delivery.js +19 -17
  314. package/dist/internal/hosting.d.ts +6 -0
  315. package/dist/internal/hosting.d.ts.map +1 -1
  316. package/dist/internal/hosting.js +9 -0
  317. package/dist/internal/init-scaffold.js +1 -1
  318. package/dist/internal/interview/agent-questions.d.ts +1 -1
  319. package/dist/internal/interview/agent-questions.d.ts.map +1 -1
  320. package/dist/internal/interview/agent-questions.js +1 -1
  321. package/dist/internal/interview/question.d.ts +1 -1
  322. package/dist/internal/interview/question.d.ts.map +1 -1
  323. package/dist/internal/interview/question.js +1 -1
  324. package/dist/internal/json-schema.d.ts +7 -7
  325. package/dist/internal/json-schema.d.ts.map +1 -1
  326. package/dist/internal/json-schema.js +14 -17
  327. package/dist/internal/mcp-endpoint.js +1 -1
  328. package/dist/internal/otel/collector.d.ts.map +1 -1
  329. package/dist/internal/otel/collector.js +50 -19
  330. package/dist/internal/otel/config.d.ts +10 -1
  331. package/dist/internal/otel/config.d.ts.map +1 -1
  332. package/dist/internal/otel/config.js +47 -10
  333. package/dist/internal/otel/http.d.ts +1 -1
  334. package/dist/internal/otel/http.d.ts.map +1 -1
  335. package/dist/internal/otel/http.js +1 -1
  336. package/dist/internal/otel/runtime.d.ts +17 -14
  337. package/dist/internal/otel/runtime.d.ts.map +1 -1
  338. package/dist/internal/otel/runtime.js +203 -237
  339. package/dist/internal/package-inline-stdio.d.ts.map +1 -1
  340. package/dist/internal/package-inline-stdio.js +21 -5
  341. package/dist/internal/process-memory-telemetry.d.ts +1 -1
  342. package/dist/internal/process-memory-telemetry.d.ts.map +1 -1
  343. package/dist/internal/process-memory-telemetry.js +1 -1
  344. package/dist/internal/sdk-runner.d.ts +2 -3
  345. package/dist/internal/sdk-runner.d.ts.map +1 -1
  346. package/dist/internal/sdk-runner.js +30 -6
  347. package/dist/internal/secret-alternatives.d.ts +11 -0
  348. package/dist/internal/secret-alternatives.d.ts.map +1 -0
  349. package/dist/internal/secret-alternatives.js +13 -0
  350. package/dist/internal/server.d.ts.map +1 -1
  351. package/dist/internal/server.js +27 -15
  352. package/dist/internal/session-engine.d.ts +9 -1
  353. package/dist/internal/session-engine.d.ts.map +1 -1
  354. package/dist/internal/session-engine.js +30 -4
  355. package/dist/internal/slack-provision-client.js +1 -1
  356. package/dist/internal/sqlite-experimental-warning.d.ts +2 -0
  357. package/dist/internal/sqlite-experimental-warning.d.ts.map +1 -0
  358. package/dist/internal/sqlite-experimental-warning.js +22 -0
  359. package/dist/internal/store-api-protocol.d.ts +1 -1
  360. package/dist/internal/store-api-protocol.d.ts.map +1 -1
  361. package/dist/internal/store-api-protocol.js +1 -1
  362. package/dist/internal/testing/conversation-identity-vectors.d.ts +6 -1
  363. package/dist/internal/testing/conversation-identity-vectors.d.ts.map +1 -1
  364. package/dist/internal/testing/conversation-identity-vectors.js +34 -0
  365. package/dist/internal/testing/hmac-secret-vectors.d.ts +38 -0
  366. package/dist/internal/testing/hmac-secret-vectors.d.ts.map +1 -0
  367. package/dist/internal/testing/hmac-secret-vectors.js +89 -0
  368. package/dist/internal/testing/pagerduty-continuation-fixtures.d.ts +42 -0
  369. package/dist/internal/testing/pagerduty-continuation-fixtures.d.ts.map +1 -0
  370. package/dist/internal/testing/pagerduty-continuation-fixtures.js +175 -0
  371. package/dist/internal/update-check.d.ts +1 -1
  372. package/dist/internal/update-check.d.ts.map +1 -1
  373. package/dist/internal/update-check.js +1 -1
  374. package/dist/internal/zod-schema.d.ts +14 -0
  375. package/dist/internal/zod-schema.d.ts.map +1 -0
  376. package/dist/internal/zod-schema.js +22 -0
  377. package/dist/otel.d.ts +1 -2
  378. package/dist/otel.d.ts.map +1 -1
  379. package/dist/otel.js +0 -1
  380. package/dist/playground/assets/cursor-icons-16-DmHBTm1-.woff2 +0 -0
  381. package/dist/playground/assets/index-BdMwybMt.css +1 -0
  382. package/dist/playground/assets/index-CHk6O92d.js +62 -0
  383. package/dist/playground/index.html +2 -2
  384. package/dist/tools.d.ts +14 -11
  385. package/dist/tools.d.ts.map +1 -1
  386. package/dist/tools.js +4 -3
  387. package/dist/types.d.ts +67 -16
  388. package/dist/types.d.ts.map +1 -1
  389. package/docs/deployment.md +9 -4
  390. package/docs/guides/cloud-agents.md +1 -0
  391. package/docs/guides/opentelemetry.md +54 -3
  392. package/docs/guides/pagerduty.md +341 -0
  393. package/docs/reference/agent-config.md +0 -1
  394. package/docs/reference/channels.md +2 -1
  395. package/docs/reference/cli.md +27 -0
  396. package/docs/reference/extensions.md +15 -9
  397. package/docs/reference/instructions.md +5 -1
  398. package/docs/reference/tools.md +1 -0
  399. package/docs/templates/agentic-owners.md +55 -23
  400. package/package.json +24 -19
  401. package/skills/migrate-v2/SKILL.md +1 -1
  402. package/skills/otel/SKILL.md +24 -7
  403. package/templates/agentic-owners/README.md +6 -1
  404. package/templates/agentic-owners/bot/lib/owners/decision.ts +31 -5
  405. package/templates/agentic-owners/bot/lib/owners/globalOverride.ts +60 -0
  406. package/templates/agentic-owners/bot/lib/owners/match.ts +85 -19
  407. package/templates/agentic-owners/bot/lib/owners/parse.ts +133 -2
  408. package/templates/agentic-owners/bot/lib/owners/types.ts +23 -0
  409. package/dist/docs/assets/chunks/@localSearchIndexroot.B3j7LFef.js +0 -1
  410. package/dist/docs/assets/chunks/channel.RoCpi7X1.js +0 -1
  411. package/dist/docs/assets/chunks/classDiagram-6PBFFD2Q.oxdmwwqk.js +0 -1
  412. package/dist/docs/assets/chunks/classDiagram-v2-HSJHXN6E.oxdmwwqk.js +0 -1
  413. package/dist/docs/assets/chunks/clone.BkguoIMm.js +0 -1
  414. package/dist/docs/assets/chunks/stateDiagram-v2-QKLJ7IA2.7W-btjJ2.js +0 -1
  415. package/dist/docs/assets/templates_agentic-owners.md.CvmABtia.js +0 -14
  416. package/dist/playground/assets/cursor-icons-16-gwXtdAvu.woff2 +0 -0
  417. package/dist/playground/assets/index-BtsbIqV9.css +0 -1
  418. package/dist/playground/assets/index-CD8VRa25.js +0 -71
  419. /package/dist/docs/assets/{reference_channels.md.DYg0CLud.lean.js → reference_channels.md.Bxaa020x.lean.js} +0 -0
  420. /package/dist/docs/assets/{reference_schedules.md.BqWnJES4.lean.js → reference_schedules.md.03Ryy9ca.lean.js} +0 -0
  421. /package/dist/docs/assets/{reference_tools.md.08XR7lIl.lean.js → reference_tools.md.-6pypsWt.lean.js} +0 -0
@@ -29,6 +29,7 @@
29
29
  * union for control-plane consumers.
30
30
  */
31
31
  import { type CatchAuthDeclaration } from "../channels.js";
32
+ import type { SecretAlternatives } from "./secret-alternatives.js";
32
33
  import type { AgentProject, AgentProjectInfo } from "../types.js";
33
34
  import { type ContinuationIdentity } from "./continuation-identity.js";
34
35
  export declare const DEPLOY_MANIFEST_VERSION: 1;
@@ -157,13 +158,19 @@ export declare function channelCatchDeclaration(definition: AgentProject["channe
157
158
  */
158
159
  export declare function channelCatchSecretNames(definition: AgentProject["channels"][number]["definition"]): string[];
159
160
  /**
160
- * Deployment secrets a channel's API credentials name (today the
161
- * `githubChannel` `{ secretName }` credentials). Nothing on the control
162
- * plane reads them — the guest does — but `deploy` folds them into the
161
+ * Deployment secrets a channel reads in the guest: `githubChannel`
162
+ * `{ secretName }` credentials and a named `pagerdutyChannel` user id.
163
+ * Nothing on the control plane reads them, but `deploy` folds them into the
163
164
  * declared secret names so an unset one is flagged at deploy time rather
164
- * than as a failed API call inside the guest.
165
+ * than as a failed call or a missed check inside the guest.
165
166
  */
166
167
  export declare function channelCredentialSecretNames(definition: AgentProject["channels"][number]["definition"]): string[];
168
+ /**
169
+ * Sets of guest-read secrets a channel needs one of, such as
170
+ * `pagerdutyChannel`'s user id or a token to infer it from. `deploy`
171
+ * warns about a set only when none of its names is set.
172
+ */
173
+ export declare function channelSecretAlternatives(definition: AgentProject["channels"][number]["definition"]): SecretAlternatives[];
167
174
  /**
168
175
  * Parse an untrusted manifest (round-trip check for the CLI's own output;
169
176
  * the CP re-validates server-side with its own copy of the contract).
@@ -1 +1 @@
1
- {"version":3,"file":"deploy-manifest.d.ts","sourceRoot":"","sources":["../../src/internal/deploy-manifest.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"deploy-manifest.d.ts","sourceRoot":"","sources":["../../src/internal/deploy-manifest.ts"],"names":[],"mappings":"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"}
@@ -28,9 +28,10 @@
28
28
  * Keep that capability per-channel: do not reintroduce a provider-wide event
29
29
  * union for control-plane consumers.
30
30
  */
31
- import { z } from "zod";
31
+ import { z } from "zod/v3";
32
32
  import { catchAuthDeclaration, isPublicEndpointPolicy, } from "../channels.js";
33
33
  import { githubChannelCredentialSecretNames, isCursorAccountGitHubChannel, } from "../channels/github/github-channel.js";
34
+ import { pagerDutyChannelCredentialSecretNames, pagerDutyChannelSecretAlternatives, } from "../channels/pagerduty/pagerduty-channel.js";
34
35
  import { isCursorHostedStorage } from "../storage-backends/cursor-hosted.js";
35
36
  import { channelArchitectureError } from "./channel-architecture.js";
36
37
  import { applyAgentContinuationDefaults, channelContinuationIdentity, channelDeclaredEventTypes, handshakeChannelContinuation, } from "./continuation-channel.js";
@@ -67,6 +68,7 @@ const catchDeclarationSchema = z.object({
67
68
  header: z.string().min(1).max(128),
68
69
  secret: z.string().min(1).max(64),
69
70
  prefix: z.string().max(32).optional(),
71
+ separator: z.string().min(1).max(8).optional(),
70
72
  }),
71
73
  z.object({ kind: z.literal("public") }),
72
74
  ]))
@@ -286,14 +288,25 @@ export function channelCatchSecretNames(definition) {
286
288
  ];
287
289
  }
288
290
  /**
289
- * Deployment secrets a channel's API credentials name (today the
290
- * `githubChannel` `{ secretName }` credentials). Nothing on the control
291
- * plane reads them — the guest does — but `deploy` folds them into the
291
+ * Deployment secrets a channel reads in the guest: `githubChannel`
292
+ * `{ secretName }` credentials and a named `pagerdutyChannel` user id.
293
+ * Nothing on the control plane reads them, but `deploy` folds them into the
292
294
  * declared secret names so an unset one is flagged at deploy time rather
293
- * than as a failed API call inside the guest.
295
+ * than as a failed call or a missed check inside the guest.
294
296
  */
295
297
  export function channelCredentialSecretNames(definition) {
296
- return githubChannelCredentialSecretNames(definition);
298
+ return [
299
+ ...githubChannelCredentialSecretNames(definition),
300
+ ...pagerDutyChannelCredentialSecretNames(definition),
301
+ ];
302
+ }
303
+ /**
304
+ * Sets of guest-read secrets a channel needs one of, such as
305
+ * `pagerdutyChannel`'s user id or a token to infer it from. `deploy`
306
+ * warns about a set only when none of its names is set.
307
+ */
308
+ export function channelSecretAlternatives(definition) {
309
+ return pagerDutyChannelSecretAlternatives(definition);
297
310
  }
298
311
  /**
299
312
  * Parse an untrusted manifest (round-trip check for the CLI's own output;
@@ -1 +1 @@
1
- {"version":3,"file":"agent-config.d.ts","sourceRoot":"","sources":["../../../src/internal/discovery/agent-config.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EACL,KAAK,iBAAiB,EACtB,KAAK,uBAAuB,EAC5B,KAAK,qBAAqB,EAC1B,KAAK,mBAAmB,EACxB,KAAK,YAAY,EACjB,KAAK,mBAAmB,EAExB,KAAK,YAAY,EAClB,MAAM,gBAAgB,CAAC;AAIxB,OAAO,EAAE,KAAK,gBAAgB,EAAwB,MAAM,cAAc,CAAC;AAI3E,wBAAgB,qCAAqC,CAAC,KAAK,EAAE;IAC3D,OAAO,EAAE,YAAY,CAAC;IACtB,YAAY,CAAC,EAAE,iBAAiB,CAAC;CAClC,GAAG,MAAM,GAAG,SAAS,CAIrB;AAED,8EAA8E;AAC9E,eAAO,MAAM,0BAA0B,EAAE,iBAAwB,CAAC;AAElE,wBAAgB,mBAAmB,CACjC,GAAG,EAAE,gBAAgB,EACrB,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,iBAAiB,GAAG,SAAS,GAC1C,iBAAiB,GAAG,SAAS,CAa/B;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAC/B,GAAG,EAAE,gBAAgB,EACrB,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,OAAO,GAAG,SAAS,EAC/B,YAAY,EAAE,iBAAiB,GAAG,SAAS,GAC1C,IAAI,GAAG,SAAS,CAuBlB;AAED,oEAAoE;AACpE,wBAAgB,eAAe,CAC7B,GAAG,EAAE,gBAAgB,EACrB,QAAQ,EAAE,MAAM,GAAG,SAAS,GAC3B,MAAM,GAAG,SAAS,CASpB;AAED;;;;GAIG;AACH,wBAAsB,eAAe,CACnC,GAAG,EAAE,gBAAgB,EACrB,WAAW,EAAE,MAAM,GAAG,SAAS,EAC/B,oBAAoB,EAAE,MAAM,GAAG,SAAS,GACvC,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAY7B;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,CAC5B,GAAG,EAAE,gBAAgB,EACrB,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,mBAAmB,GAAG,SAAS,EACxC,UAAU,EAAE,SAAS,mBAAmB,EAAE,GACzC,mBAAmB,GAAG,SAAS,CAsCjC;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAChC,GAAG,EAAE,gBAAgB,EACrB,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,uBAAuB,GAAG,SAAS,GAC/C,uBAAuB,GAAG,SAAS,CAmBrC;AAED,wBAAsB,eAAe,CACnC,GAAG,EAAE,gBAAgB,EACrB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,OAAO,GACd,OAAO,CAAC,qBAAqB,GAAG,SAAS,CAAC,CA4B5C;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,YAAY,CAUzE;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CACnC,GAAG,EAAE,gBAAgB,EACrB,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,OAAO,GACjB,SAAS,YAAY,EAAE,GAAG,SAAS,CAcrC;AAED;;;;GAIG;AACH,wBAAgB,0BAA0B,CACxC,GAAG,EAAE,gBAAgB,EACrB,UAAU,EAAE,MAAM,EAClB,mBAAmB,EAAE,OAAO,GAC3B,OAAO,GAAG,SAAS,CAarB"}
1
+ {"version":3,"file":"agent-config.d.ts","sourceRoot":"","sources":["../../../src/internal/discovery/agent-config.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EACL,KAAK,iBAAiB,EACtB,KAAK,uBAAuB,EAC5B,KAAK,qBAAqB,EAC1B,KAAK,mBAAmB,EACxB,KAAK,YAAY,EACjB,KAAK,mBAAmB,EAExB,KAAK,YAAY,EAClB,MAAM,gBAAgB,CAAC;AAIxB,OAAO,EAAE,KAAK,gBAAgB,EAA8C,MAAM,cAAc,CAAC;AAIjG,wBAAgB,qCAAqC,CAAC,KAAK,EAAE;IAC3D,OAAO,EAAE,YAAY,CAAC;IACtB,YAAY,CAAC,EAAE,iBAAiB,CAAC;CAClC,GAAG,MAAM,GAAG,SAAS,CAIrB;AAED,8EAA8E;AAC9E,eAAO,MAAM,0BAA0B,EAAE,iBAAwB,CAAC;AAElE,wBAAgB,mBAAmB,CACjC,GAAG,EAAE,gBAAgB,EACrB,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,iBAAiB,GAAG,SAAS,GAC1C,iBAAiB,GAAG,SAAS,CAa/B;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAC/B,GAAG,EAAE,gBAAgB,EACrB,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,OAAO,GAAG,SAAS,EAC/B,YAAY,EAAE,iBAAiB,GAAG,SAAS,GAC1C,IAAI,GAAG,SAAS,CAuBlB;AAED,oEAAoE;AACpE,wBAAgB,eAAe,CAC7B,GAAG,EAAE,gBAAgB,EACrB,QAAQ,EAAE,MAAM,GAAG,SAAS,GAC3B,MAAM,GAAG,SAAS,CASpB;AAED;;;;GAIG;AACH,wBAAsB,eAAe,CACnC,GAAG,EAAE,gBAAgB,EACrB,WAAW,EAAE,MAAM,GAAG,SAAS,EAC/B,oBAAoB,EAAE,MAAM,GAAG,SAAS,GACvC,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAY7B;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,CAC5B,GAAG,EAAE,gBAAgB,EACrB,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,mBAAmB,GAAG,SAAS,EACxC,UAAU,EAAE,SAAS,mBAAmB,EAAE,GACzC,mBAAmB,GAAG,SAAS,CAsCjC;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAChC,GAAG,EAAE,gBAAgB,EACrB,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,uBAAuB,GAAG,SAAS,GAC/C,uBAAuB,GAAG,SAAS,CAmBrC;AAED,wBAAsB,eAAe,CACnC,GAAG,EAAE,gBAAgB,EACrB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,OAAO,GACd,OAAO,CAAC,qBAAqB,GAAG,SAAS,CAAC,CA4B5C;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,YAAY,CAUzE;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CACnC,GAAG,EAAE,gBAAgB,EACrB,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,OAAO,GACjB,SAAS,YAAY,EAAE,GAAG,SAAS,CAcrC;AAED;;;;GAIG;AACH,wBAAgB,0BAA0B,CACxC,GAAG,EAAE,gBAAgB,EACrB,UAAU,EAAE,MAAM,EAClB,mBAAmB,EAAE,OAAO,GAC3B,OAAO,GAAG,SAAS,CAarB"}
@@ -6,7 +6,7 @@ import { MAX_RUNNING_TURNS_LIMIT, } from "../../types.js";
6
6
  import { normalizePositiveInt } from "../bounded-int.js";
7
7
  import { hostingEntryErrors, MAX_EGRESS_DOMAINS, validateContainerImageName } from "../hosting.js";
8
8
  import { defaultLocalHarnessCwd, isNestedInGitRepo } from "../workspace.js";
9
- import { displayPath, isBlank } from "./context.js";
9
+ import { displayPath, isBlank, pushConfigDiagnostic } from "./context.js";
10
10
  import { findModuleFile } from "./fs.js";
11
11
  import { importDefault } from "./modules.js";
12
12
  export function runtimeArchitectureCompatibilityError(agent) {
@@ -23,7 +23,7 @@ export function resolveArchitecture(ctx, agentDir, architecture) {
23
23
  if (architecture === "v1" || architecture === "v2") {
24
24
  return architecture;
25
25
  }
26
- ctx.diagnostics.push({
26
+ pushConfigDiagnostic(ctx, {
27
27
  severity: "error",
28
28
  path: displayPath(ctx, join(agentDir, "agent.ts")),
29
29
  message: `architecture must be "v1" or "v2"; got ${JSON.stringify(architecture)}.`,
@@ -40,7 +40,7 @@ export function resolvePersistent(ctx, agentDir, persistent, architecture) {
40
40
  }
41
41
  const path = displayPath(ctx, join(agentDir, "agent.ts"));
42
42
  if (persistent !== true) {
43
- ctx.diagnostics.push({
43
+ pushConfigDiagnostic(ctx, {
44
44
  severity: "error",
45
45
  path,
46
46
  message: `persistent must be true or false; got ${JSON.stringify(persistent)}.`,
@@ -48,7 +48,7 @@ export function resolvePersistent(ctx, agentDir, persistent, architecture) {
48
48
  return undefined;
49
49
  }
50
50
  if (architecture !== "v2") {
51
- ctx.diagnostics.push({
51
+ pushConfigDiagnostic(ctx, {
52
52
  severity: "error",
53
53
  path,
54
54
  message: 'persistent: true requires architecture: "v2"; persistent hosting is a v2 hosting mode.',
@@ -96,7 +96,7 @@ export async function resolveLocalCwd(ctx, authoredCwd, authoredWorkspaceDir) {
96
96
  export function resolveHosting(ctx, agentDir, hosting, extensions) {
97
97
  const agentPath = displayPath(ctx, join(agentDir, "agent.ts"));
98
98
  const warn = (message) => {
99
- ctx.diagnostics.push({ severity: "warning", path: agentPath, message });
99
+ pushConfigDiagnostic(ctx, { severity: "warning", path: agentPath, message });
100
100
  };
101
101
  for (const error of hostingEntryErrors(hosting ?? {})) {
102
102
  warn(`hosting.${error}`);
@@ -147,7 +147,7 @@ export function resolveConcurrency(ctx, agentDir, concurrency) {
147
147
  };
148
148
  }
149
149
  catch (error) {
150
- ctx.diagnostics.push({
150
+ pushConfigDiagnostic(ctx, {
151
151
  severity: "error",
152
152
  path: displayPath(ctx, join(agentDir, "agent.ts")),
153
153
  message: error instanceof Error ? error.message : String(error),
@@ -158,7 +158,7 @@ export function resolveConcurrency(ctx, agentDir, concurrency) {
158
158
  export async function loadAgentConfig(ctx, agentDir, isRoot) {
159
159
  const configPath = await findModuleFile(agentDir, "agent");
160
160
  if (configPath === undefined) {
161
- ctx.diagnostics.push({
161
+ pushConfigDiagnostic(ctx, {
162
162
  severity: "error",
163
163
  path: displayPath(ctx, join(agentDir, "agent.ts")),
164
164
  message: isRoot
@@ -173,7 +173,7 @@ export async function loadAgentConfig(ctx, agentDir, isRoot) {
173
173
  }
174
174
  const config = definition;
175
175
  if (!isRoot && isBlank(config.description)) {
176
- ctx.diagnostics.push({
176
+ pushConfigDiagnostic(ctx, {
177
177
  severity: "error",
178
178
  path: displayPath(ctx, configPath),
179
179
  message: "Subagents require a description; the parent model reads it to decide when to delegate.",
@@ -200,7 +200,7 @@ export function resolveModelFallbacks(ctx, configPath, fallbacks) {
200
200
  return undefined;
201
201
  }
202
202
  if (!Array.isArray(fallbacks) || !fallbacks.every(isValidModelSetting)) {
203
- ctx.diagnostics.push({
203
+ pushConfigDiagnostic(ctx, {
204
204
  severity: "error",
205
205
  path: displayPath(ctx, configPath),
206
206
  message: "fallbacks must be an array of model ids or { id, params } selections, the same shape as model.",
@@ -219,7 +219,7 @@ export function resolveFallbackAfterStream(ctx, configPath, fallbackAfterStream)
219
219
  return undefined;
220
220
  }
221
221
  if (typeof fallbackAfterStream !== "boolean") {
222
- ctx.diagnostics.push({
222
+ pushConfigDiagnostic(ctx, {
223
223
  severity: "error",
224
224
  path: displayPath(ctx, configPath),
225
225
  message: "fallbackAfterStream must be a boolean.",
@@ -1 +1 @@
1
- {"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../../../src/internal/discovery/agent.ts"],"names":[],"mappings":"AAAA;;GAEG;AASH,OAAO,EAOL,KAAK,aAAa,EACnB,MAAM,gBAAgB,CAAC;AAiBxB,OAAO,EAAE,KAAK,gBAAgB,EAAe,MAAM,cAAc,CAAC;AAClE,OAAO,EAAE,KAAK,sBAAsB,EAAoB,MAAM,iBAAiB,CAAC;AAahF,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,aAAa,CAAC;IACrB,YAAY,EAAE,IAAI,CAChB,sBAAsB,EACtB,OAAO,GAAG,UAAU,GAAG,WAAW,GAAG,WAAW,GAAG,WAAW,CAC/D,CAAC;CACH;AAED,wBAAsB,SAAS,CAC7B,GAAG,EAAE,gBAAgB,EACrB,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,OAAO,CAAA;CAAE,GACzC,OAAO,CAAC,eAAe,CAAC,CA+R1B;AAED,wBAAsB,gBAAgB,CAAC,GAAG,EAAE,gBAAgB,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CA0C7F"}
1
+ {"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../../../src/internal/discovery/agent.ts"],"names":[],"mappings":"AAAA;;GAEG;AASH,OAAO,EAOL,KAAK,aAAa,EACnB,MAAM,gBAAgB,CAAC;AAiBxB,OAAO,EAAE,KAAK,gBAAgB,EAAqC,MAAM,cAAc,CAAC;AACxF,OAAO,EAAE,KAAK,sBAAsB,EAAoB,MAAM,iBAAiB,CAAC;AAahF,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,aAAa,CAAC;IACrB,YAAY,EAAE,IAAI,CAChB,sBAAsB,EACtB,OAAO,GAAG,UAAU,GAAG,WAAW,GAAG,WAAW,GAAG,WAAW,CAC/D,CAAC;CACH;AAED,wBAAsB,SAAS,CAC7B,GAAG,EAAE,gBAAgB,EACrB,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,OAAO,CAAA;CAAE,GACzC,OAAO,CAAC,eAAe,CAAC,CA+R1B;AAED,wBAAsB,gBAAgB,CAAC,GAAG,EAAE,gBAAgB,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CA0C7F"}
@@ -8,7 +8,7 @@ import { synthesizedFileSystemToolNames } from "../filesystem/tools.js";
8
8
  import { withIdentityPreamble } from "../workspace.js";
9
9
  import { isValidModelSetting, loadAgentConfig, resolveAgentCwd, resolveArchitecture, resolveConcurrency, resolveFallbackAfterStream, resolveHosting, resolveLocalCwd, resolveModelFallbacks, resolvePersistent, runtimeArchitectureCompatibilityError, } from "./agent-config.js";
10
10
  import { loadConnections, loadHostConnections } from "./connections.js";
11
- import { displayPath } from "./context.js";
11
+ import { displayPath, pushConfigDiagnostic } from "./context.js";
12
12
  import { appendExtensions } from "./extensions.js";
13
13
  import { sortedEntries } from "./fs.js";
14
14
  import { loadInstructions } from "./instructions.js";
@@ -89,14 +89,14 @@ export async function loadAgent(ctx, agentDir, options) {
89
89
  if (config?.local?.cwd !== undefined ||
90
90
  config?.local?.workspaceDir !== undefined ||
91
91
  config?.local?.sandbox === true) {
92
- ctx.diagnostics.push({
92
+ pushConfigDiagnostic(ctx, {
93
93
  severity: "error",
94
94
  path: displayPath(ctx, join(agentDir, "agent.ts")),
95
95
  message: "`root` cannot be combined with `local.cwd`, `local.workspaceDir`, or `local.sandbox`. Those fields configure the host tree the override replaced.",
96
96
  });
97
97
  }
98
98
  if (runtime === "cloud" || runtime === "grokbot") {
99
- ctx.diagnostics.push({
99
+ pushConfigDiagnostic(ctx, {
100
100
  severity: "error",
101
101
  path: displayPath(ctx, join(agentDir, "agent.ts")),
102
102
  message: `\`root\` cannot be combined with runtime: "${runtime}".`,
@@ -104,7 +104,7 @@ export async function loadAgent(ctx, agentDir, options) {
104
104
  }
105
105
  if (authoredAllowlist?.includes("shell") === true ||
106
106
  authoredAllowlist?.includes("Shell") === true) {
107
- ctx.diagnostics.push({
107
+ pushConfigDiagnostic(ctx, {
108
108
  severity: "error",
109
109
  path: displayPath(ctx, join(agentDir, "agent.ts")),
110
110
  message: '`root` cannot be combined with `tools` containing `"shell"`. Shell is not a FileSystem method and must not bind the host shell onto a virtual tree.',
@@ -146,7 +146,7 @@ export async function loadAgent(ctx, agentDir, options) {
146
146
  allowedTools = authoredAllowlist;
147
147
  }
148
148
  catch (error) {
149
- ctx.diagnostics.push({
149
+ pushConfigDiagnostic(ctx, {
150
150
  severity: "error",
151
151
  path: displayPath(ctx, join(agentDir, "agent.ts")),
152
152
  message: error instanceof FileSystemConfigError
@@ -164,7 +164,7 @@ export async function loadAgent(ctx, agentDir, options) {
164
164
  // unrestricted. (Hybrid per-send cloud sessions fail closed in the
165
165
  // session engine.)
166
166
  if (allowedTools !== undefined && runtime !== "local") {
167
- ctx.diagnostics.push({
167
+ pushConfigDiagnostic(ctx, {
168
168
  severity: "error",
169
169
  path: displayPath(ctx, join(agentDir, "agent.ts")),
170
170
  message: `tools cannot be enforced on runtime: "${runtime}". Remove \`tools\` or run the agent on the local runtime.`,
@@ -178,7 +178,7 @@ export async function loadAgent(ctx, agentDir, options) {
178
178
  // cloud sessions fail closed in the session engine.)
179
179
  const perSessionConnection = connections.find((connection) => connection.advertiseTools === true || connection.auth !== undefined);
180
180
  if (perSessionConnection !== undefined && runtime !== "local") {
181
- ctx.diagnostics.push({
181
+ pushConfigDiagnostic(ctx, {
182
182
  severity: "error",
183
183
  path: displayPath(ctx, join(agentDir, "agent.ts")),
184
184
  message: `MCP connection "${perSessionConnection.name}" uses advertiseTools/auth, which only run on runtime: "local". Remove them or run the agent on the local runtime.`,
@@ -190,14 +190,14 @@ export async function loadAgent(ctx, agentDir, options) {
190
190
  if (allowedTools !== undefined &&
191
191
  !allowedTools.includes("shell") &&
192
192
  tools.some((tool) => tool.execution === "agent")) {
193
- ctx.diagnostics.push({
193
+ pushConfigDiagnostic(ctx, {
194
194
  severity: "warning",
195
195
  path: displayPath(ctx, join(agentDir, "agent.ts")),
196
196
  message: '`tools` omits "shell" but this agent has execution: "agent" tools, which run as shell scripts; the model will not be able to run them.',
197
197
  });
198
198
  }
199
199
  if (localCwd !== undefined && localWorkspaceDir !== undefined) {
200
- ctx.diagnostics.push({
200
+ pushConfigDiagnostic(ctx, {
201
201
  severity: "warning",
202
202
  path: displayPath(ctx, join(agentDir, "agent.ts")),
203
203
  message: "local.workspaceDir pins every session to one directory, so local.cwd is unused. Drop one of them.",
@@ -219,7 +219,7 @@ export async function loadAgent(ctx, agentDir, options) {
219
219
  architecture,
220
220
  });
221
221
  if (runtimeArchitectureError !== undefined) {
222
- ctx.diagnostics.push({
222
+ pushConfigDiagnostic(ctx, {
223
223
  severity: "error",
224
224
  path: displayPath(ctx, join(agentDir, "agent.ts")),
225
225
  message: runtimeArchitectureError,
@@ -1 +1 @@
1
- {"version":3,"file":"channels.d.ts","sourceRoot":"","sources":["../../../src/internal/discovery/channels.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,EAAqB,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AAElG,OAAO,EAAE,KAAK,gBAAgB,EAA6B,MAAM,cAAc,CAAC;AAIhF,wBAAsB,YAAY,CAChC,GAAG,EAAE,gBAAgB,EACrB,WAAW,EAAE,MAAM,EACnB,IAAI,GAAE,OAAO,GAAG,WAAqB,EACrC,SAAS,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,IAAI,GAC7C,OAAO,CAAC;IACT,QAAQ,EAAE,iBAAiB,EAAE,CAAC;IAC9B,qBAAqB,EAAE,qBAAqB,GAAG,SAAS,CAAC;CAC1D,CAAC,CAgFD"}
1
+ {"version":3,"file":"channels.d.ts","sourceRoot":"","sources":["../../../src/internal/discovery/channels.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,EAAqB,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AAElG,OAAO,EACL,KAAK,gBAAgB,EAItB,MAAM,cAAc,CAAC;AAItB,wBAAsB,YAAY,CAChC,GAAG,EAAE,gBAAgB,EACrB,WAAW,EAAE,MAAM,EACnB,IAAI,GAAE,OAAO,GAAG,WAAqB,EACrC,SAAS,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,IAAI,GAC7C,OAAO,CAAC;IACT,QAAQ,EAAE,iBAAiB,EAAE,CAAC;IAC9B,qBAAqB,EAAE,qBAAqB,GAAG,SAAS,CAAC;CAC1D,CAAC,CAkFD"}
@@ -3,7 +3,7 @@
3
3
  */
4
4
  import { join } from "node:path";
5
5
  import { getDefinitionKind } from "../brand.js";
6
- import { displayPath, errorMessage } from "./context.js";
6
+ import { displayPath, pushConfigDiagnostic, pushModuleLoadDiagnostic, } from "./context.js";
7
7
  import { isDirectory, isModuleFile, moduleStem, sortedEntries } from "./fs.js";
8
8
  import { validateName } from "./names.js";
9
9
  export async function loadChannels(ctx, channelsDir, mode = "agent", onDisable) {
@@ -26,11 +26,7 @@ export async function loadChannels(ctx, channelsDir, mode = "agent", onDisable)
26
26
  mod = await ctx.importModule(entryPath);
27
27
  }
28
28
  catch (error) {
29
- ctx.diagnostics.push({
30
- severity: "error",
31
- path: displayPath(ctx, entryPath),
32
- message: `Failed to load module: ${errorMessage(error)}`,
33
- });
29
+ pushModuleLoadDiagnostic(ctx, entryPath, error);
34
30
  continue;
35
31
  }
36
32
  const kind = getDefinitionKind(mod.default);
@@ -40,7 +36,7 @@ export async function loadChannels(ctx, channelsDir, mode = "agent", onDisable)
40
36
  }
41
37
  if (kind === "http-channel") {
42
38
  if (mode === "extension" || id !== "http") {
43
- ctx.diagnostics.push({
39
+ pushConfigDiagnostic(ctx, {
44
40
  severity: "error",
45
41
  path: displayPath(ctx, entryPath),
46
42
  message: mode === "extension"
@@ -53,17 +49,25 @@ export async function loadChannels(ctx, channelsDir, mode = "agent", onDisable)
53
49
  continue;
54
50
  }
55
51
  if (kind !== "channel") {
56
- ctx.diagnostics.push({
57
- severity: "error",
58
- path: displayPath(ctx, entryPath),
59
- message: id === "http" && mode === "agent"
60
- ? "The channel id `http` is reserved for the built-in HTTP session channel."
61
- : "Channel modules must default-export defineChannel({ ... }).",
62
- });
52
+ if (id === "http" && mode === "agent") {
53
+ pushConfigDiagnostic(ctx, {
54
+ severity: "error",
55
+ path: displayPath(ctx, entryPath),
56
+ message: "The channel id `http` is reserved for the built-in HTTP session channel.",
57
+ });
58
+ }
59
+ else {
60
+ ctx.diagnostics.push({
61
+ severity: "error",
62
+ code: "invalid_definition",
63
+ path: displayPath(ctx, entryPath),
64
+ message: "Channel modules must default-export defineChannel({ ... }).",
65
+ });
66
+ }
63
67
  continue;
64
68
  }
65
69
  if (id === "http" && mode === "agent") {
66
- ctx.diagnostics.push({
70
+ pushConfigDiagnostic(ctx, {
67
71
  severity: "error",
68
72
  path: displayPath(ctx, entryPath),
69
73
  message: "The channel id `http` is reserved for the built-in HTTP session channel.",
@@ -72,7 +76,7 @@ export async function loadChannels(ctx, channelsDir, mode = "agent", onDisable)
72
76
  }
73
77
  const definition = mod.default;
74
78
  for (const notice of definition.meta?.deprecations ?? []) {
75
- ctx.diagnostics.push({
79
+ pushConfigDiagnostic(ctx, {
76
80
  severity: "warning",
77
81
  path: displayPath(ctx, entryPath),
78
82
  message: notice,
@@ -8,6 +8,22 @@ export interface LoadAgentProjectOptions {
8
8
  }
9
9
  type ImportModule = (absolutePath: string) => Promise<Record<string, unknown>>;
10
10
  export declare function defaultImportModule(absolutePath: string): Promise<Record<string, unknown>>;
11
+ /**
12
+ * Classify a throw from `defaultImportModule`.
13
+ * `ERR_MODULE_NOT_FOUND` and `MODULE_NOT_FOUND` come from `error.code`.
14
+ * The missing specifier is only in the message. Ignore relative and absolute paths.
15
+ */
16
+ export declare function moduleLoadFailure(error: unknown): {
17
+ code: "module_not_found" | "module_load_failed";
18
+ package?: string;
19
+ };
20
+ export declare function missingNpmPackage(message: string): string | undefined;
21
+ export declare function pushModuleLoadDiagnostic(ctx: DiscoveryContext, modulePath: string, error: unknown): void;
22
+ export declare function pushConfigDiagnostic(ctx: DiscoveryContext, diagnostic: {
23
+ severity: Diagnostic["severity"];
24
+ path?: string;
25
+ message: string;
26
+ }): void;
11
27
  export interface DiscoveryContext {
12
28
  rootDir: string;
13
29
  diagnostics: Diagnostic[];
@@ -1 +1 @@
1
- {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../src/internal/discovery/context.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAGjD,MAAM,WAAW,uBAAuB;IACtC,sDAAsD;IACtD,YAAY,CAAC,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;CAC3E;AAED,KAAK,YAAY,GAAG,CAAC,YAAY,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;AAE/E,wBAAsB,mBAAmB,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAEhG;AAED,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,UAAU,EAAE,CAAC;IAC1B,YAAY,EAAE,YAAY,CAAC;CAC5B;AAED,wBAAgB,WAAW,CAAC,GAAG,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,GAAG,MAAM,CAG/E;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAEnD;AAED,wBAAgB,OAAO,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAE/C"}
1
+ {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../src/internal/discovery/context.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAGjD,MAAM,WAAW,uBAAuB;IACtC,sDAAsD;IACtD,YAAY,CAAC,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;CAC3E;AAED,KAAK,YAAY,GAAG,CAAC,YAAY,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;AAE/E,wBAAsB,mBAAmB,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAEhG;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,OAAO,GAAG;IACjD,IAAI,EAAE,kBAAkB,GAAG,oBAAoB,CAAC;IAChD,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAUA;AAED,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAUrE;AAgCD,wBAAgB,wBAAwB,CACtC,GAAG,EAAE,gBAAgB,EACrB,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,OAAO,GACb,IAAI,CASN;AAED,wBAAgB,oBAAoB,CAClC,GAAG,EAAE,gBAAgB,EACrB,UAAU,EAAE;IACV,QAAQ,EAAE,UAAU,CAAC,UAAU,CAAC,CAAC;IACjC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;CACjB,GACA,IAAI,CAEN;AAED,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,UAAU,EAAE,CAAC;IAC1B,YAAY,EAAE,YAAY,CAAC;CAC5B;AAED,wBAAgB,WAAW,CAAC,GAAG,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,GAAG,MAAM,CAG/E;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAEnD;AAED,wBAAgB,OAAO,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAE/C"}
@@ -7,6 +7,72 @@ import { toPosix } from "./fs.js";
7
7
  export async function defaultImportModule(absolutePath) {
8
8
  return (await import(pathToFileURL(absolutePath).href));
9
9
  }
10
+ /**
11
+ * Classify a throw from `defaultImportModule`.
12
+ * `ERR_MODULE_NOT_FOUND` and `MODULE_NOT_FOUND` come from `error.code`.
13
+ * The missing specifier is only in the message. Ignore relative and absolute paths.
14
+ */
15
+ export function moduleLoadFailure(error) {
16
+ const code = thrownCode(error);
17
+ if (code !== "ERR_MODULE_NOT_FOUND" && code !== "MODULE_NOT_FOUND") {
18
+ return { code: "module_load_failed" };
19
+ }
20
+ const packageName = missingNpmPackage(errorMessage(error));
21
+ if (packageName === undefined) {
22
+ return { code: "module_not_found" };
23
+ }
24
+ return { code: "module_not_found", package: packageName };
25
+ }
26
+ export function missingNpmPackage(message) {
27
+ const namedPackage = /Cannot find package '([^'\n]+)'/.exec(message)?.[1];
28
+ if (namedPackage !== undefined) {
29
+ return barePackageName(namedPackage);
30
+ }
31
+ const specifier = /Cannot find module '([^'\n]+)'/.exec(message)?.[1];
32
+ if (specifier === undefined) {
33
+ return undefined;
34
+ }
35
+ return barePackageName(specifier);
36
+ }
37
+ function barePackageName(specifier) {
38
+ if (specifier.startsWith("./") ||
39
+ specifier.startsWith("../") ||
40
+ specifier.startsWith("/") ||
41
+ specifier.startsWith("\\\\") ||
42
+ specifier.startsWith("node:") ||
43
+ specifier.includes("://") ||
44
+ /^[A-Za-z]:[\\/]/.test(specifier)) {
45
+ return undefined;
46
+ }
47
+ const scoped = /^(@[^/]+\/[^/]+)(?:\/.*)?$/.exec(specifier);
48
+ if (scoped?.[1] !== undefined) {
49
+ return scoped[1];
50
+ }
51
+ const name = /^([^/]+)/.exec(specifier)?.[1];
52
+ if (name === undefined || name === "" || name.startsWith(".")) {
53
+ return undefined;
54
+ }
55
+ return name;
56
+ }
57
+ function thrownCode(error) {
58
+ if (typeof error !== "object" || error === null || !("code" in error)) {
59
+ return undefined;
60
+ }
61
+ return typeof error.code === "string" ? error.code : undefined;
62
+ }
63
+ export function pushModuleLoadDiagnostic(ctx, modulePath, error) {
64
+ const failure = moduleLoadFailure(error);
65
+ ctx.diagnostics.push({
66
+ severity: "error",
67
+ code: failure.code,
68
+ path: displayPath(ctx, modulePath),
69
+ package: failure.package,
70
+ message: `Failed to load module: ${errorMessage(error)}`,
71
+ });
72
+ }
73
+ export function pushConfigDiagnostic(ctx, diagnostic) {
74
+ ctx.diagnostics.push({ ...diagnostic, code: "config_error" });
75
+ }
10
76
  export function displayPath(ctx, absolutePath) {
11
77
  const rel = relative(ctx.rootDir, absolutePath);
12
78
  return rel.startsWith("..") ? absolutePath : toPosix(rel);
@@ -3,7 +3,7 @@
3
3
  */
4
4
  import { readFile } from "node:fs/promises";
5
5
  import { basename, dirname, extname, isAbsolute, join } from "node:path";
6
- import { z } from "zod";
6
+ import { z } from "zod/v3";
7
7
  import { parseYamlFrontmatter } from "../frontmatter.js";
8
8
  import { isRecord } from "../is-record.js";
9
9
  import { displayPath, errorMessage, isBlank } from "./context.js";
@@ -1 +1 @@
1
- {"version":3,"file":"extension-overlay.d.ts","sourceRoot":"","sources":["../../../src/internal/discovery/extension-overlay.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,KAAK,EACV,mBAAmB,EACnB,iBAAiB,EACjB,cAAc,EACd,kBAAkB,EAClB,eAAe,EACf,aAAa,EACd,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EAAE,KAAK,gBAAgB,EAA6B,MAAM,cAAc,CAAC;AAgBhF,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;CACZ;AAED,UAAU,WAAW,CAAC,CAAC;IACrB,IAAI,EAAE,MAAM,GAAG,YAAY,CAAC;IAC5B,YAAY,EAAE,eAAe,GAAG,qBAAqB,CAAC;IACtD,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC9B,OAAO,EAAE,CACP,GAAG,EAAE,gBAAgB,EACrB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,OAAO,KAChB,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC;CAC7C;AAED,wBAAsB,WAAW,CAAC,CAAC,SAAS;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,EAC1D,GAAG,EAAE,gBAAgB,EACrB,IAAI,EAAE,WAAW,EACjB,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,EAC3B,OAAO,EAAE,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,EAC9C,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC,GACnB,OAAO,CAAC,IAAI,CAAC,CAmBf;AAED,wBAAsB,aAAa,CACjC,GAAG,EAAE,gBAAgB,EACrB,IAAI,EAAE,WAAW,EACjB,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,eAAe,CAAC,EACzC,GAAG,EAAE,MAAM,GACV,OAAO,CAAC,IAAI,CAAC,CAIf;AAED,wBAAsB,YAAY,CAChC,GAAG,EAAE,gBAAgB,EACrB,IAAI,EAAE,WAAW,EACjB,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,EACxC,GAAG,EAAE,MAAM,GACV,OAAO,CAAC,IAAI,CAAC,CAIf;AAED,wBAAsB,gBAAgB,CACpC,GAAG,EAAE,gBAAgB,EACrB,IAAI,EAAE,WAAW,EACjB,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,kBAAkB,CAAC,EAC5C,GAAG,EAAE,MAAM,GACV,OAAO,CAAC,IAAI,CAAC,CAIf;AAED,wBAAsB,eAAe,CACnC,GAAG,EAAE,gBAAgB,EACrB,IAAI,EAAE,WAAW,EACjB,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,iBAAiB,CAAC,EAC3C,GAAG,EAAE,MAAM,GACV,OAAO,CAAC,IAAI,CAAC,CAcf;AAED,wBAAsB,gBAAgB,CACpC,GAAG,EAAE,gBAAgB,EACrB,IAAI,EAAE,WAAW,EACjB,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,aAAa,CAAC,EACvC,GAAG,EAAE,MAAM,GACV,OAAO,CAAC,IAAI,CAAC,CAuBf;AAED,wBAAsB,2BAA2B,CAC/C,GAAG,EAAE,gBAAgB,EACrB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,MAAM,GAAG,SAAS,GAAG,MAAM,CAAC,CA4BtC;AAED,wBAAsB,gBAAgB,CACpC,GAAG,EAAE,gBAAgB,EACrB,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,mBAAmB,GAAG,SAAS,GACvC,OAAO,CAAC,mBAAmB,GAAG,SAAS,CAAC,CAa1C"}
1
+ {"version":3,"file":"extension-overlay.d.ts","sourceRoot":"","sources":["../../../src/internal/discovery/extension-overlay.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,KAAK,EACV,mBAAmB,EACnB,iBAAiB,EACjB,cAAc,EACd,kBAAkB,EAClB,eAAe,EACf,aAAa,EACd,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EAAE,KAAK,gBAAgB,EAAyC,MAAM,cAAc,CAAC;AAgB5F,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;CACZ;AAED,UAAU,WAAW,CAAC,CAAC;IACrB,IAAI,EAAE,MAAM,GAAG,YAAY,CAAC;IAC5B,YAAY,EAAE,eAAe,GAAG,qBAAqB,CAAC;IACtD,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC9B,OAAO,EAAE,CACP,GAAG,EAAE,gBAAgB,EACrB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,OAAO,KAChB,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC;CAC7C;AAED,wBAAsB,WAAW,CAAC,CAAC,SAAS;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,EAC1D,GAAG,EAAE,gBAAgB,EACrB,IAAI,EAAE,WAAW,EACjB,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,EAC3B,OAAO,EAAE,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,EAC9C,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC,GACnB,OAAO,CAAC,IAAI,CAAC,CAmBf;AAED,wBAAsB,aAAa,CACjC,GAAG,EAAE,gBAAgB,EACrB,IAAI,EAAE,WAAW,EACjB,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,eAAe,CAAC,EACzC,GAAG,EAAE,MAAM,GACV,OAAO,CAAC,IAAI,CAAC,CAIf;AAED,wBAAsB,YAAY,CAChC,GAAG,EAAE,gBAAgB,EACrB,IAAI,EAAE,WAAW,EACjB,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,EACxC,GAAG,EAAE,MAAM,GACV,OAAO,CAAC,IAAI,CAAC,CAIf;AAED,wBAAsB,gBAAgB,CACpC,GAAG,EAAE,gBAAgB,EACrB,IAAI,EAAE,WAAW,EACjB,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,kBAAkB,CAAC,EAC5C,GAAG,EAAE,MAAM,GACV,OAAO,CAAC,IAAI,CAAC,CAIf;AAED,wBAAsB,eAAe,CACnC,GAAG,EAAE,gBAAgB,EACrB,IAAI,EAAE,WAAW,EACjB,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,iBAAiB,CAAC,EAC3C,GAAG,EAAE,MAAM,GACV,OAAO,CAAC,IAAI,CAAC,CAcf;AAED,wBAAsB,gBAAgB,CACpC,GAAG,EAAE,gBAAgB,EACrB,IAAI,EAAE,WAAW,EACjB,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,aAAa,CAAC,EACvC,GAAG,EAAE,MAAM,GACV,OAAO,CAAC,IAAI,CAAC,CAuBf;AAED,wBAAsB,2BAA2B,CAC/C,GAAG,EAAE,gBAAgB,EACrB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,MAAM,GAAG,SAAS,GAAG,MAAM,CAAC,CAwBtC;AAED,wBAAsB,gBAAgB,CACpC,GAAG,EAAE,gBAAgB,EACrB,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,mBAAmB,GAAG,SAAS,GACvC,OAAO,CAAC,mBAAmB,GAAG,SAAS,CAAC,CAa1C"}
@@ -5,7 +5,7 @@
5
5
  import { join } from "node:path";
6
6
  import { getDefinitionKind } from "../brand.js";
7
7
  import { loadChannels } from "./channels.js";
8
- import { displayPath, errorMessage } from "./context.js";
8
+ import { displayPath, pushModuleLoadDiagnostic } from "./context.js";
9
9
  import { findModuleFile, isDirectory, isFile, isModuleFile, moduleStem, sortedEntries, } from "./fs.js";
10
10
  import { loadHooks } from "./hooks.js";
11
11
  import { loadInstructions } from "./instructions.js";
@@ -96,11 +96,7 @@ export async function overlayInstructionsFragment(ctx, overlayDir) {
96
96
  mod = await ctx.importModule(modulePath);
97
97
  }
98
98
  catch (error) {
99
- ctx.diagnostics.push({
100
- severity: "error",
101
- path: displayPath(ctx, modulePath),
102
- message: `Failed to load module: ${errorMessage(error)}`,
103
- });
99
+ pushModuleLoadDiagnostic(ctx, modulePath, error);
104
100
  return "keep";
105
101
  }
106
102
  if (getDefinitionKind(mod.default) === "disabled") {
@@ -1 +1 @@
1
- {"version":3,"file":"info.d.ts","sourceRoot":"","sources":["../../../src/internal/discovery/info.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,KAAK,YAAY,EAAE,KAAK,gBAAgB,EAAqB,MAAM,gBAAgB,CAAC;AAK7F,wBAAgB,WAAW,CAAC,OAAO,EAAE,YAAY,GAAG,gBAAgB,CAmKnE"}
1
+ {"version":3,"file":"info.d.ts","sourceRoot":"","sources":["../../../src/internal/discovery/info.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,KAAK,YAAY,EAAE,KAAK,gBAAgB,EAAqB,MAAM,gBAAgB,CAAC;AAK7F,wBAAgB,WAAW,CAAC,OAAO,EAAE,YAAY,GAAG,gBAAgB,CAsKnE"}
@@ -121,6 +121,9 @@ export function projectInfo(project) {
121
121
  if (meta?.bitbucketWebhookEvents !== undefined) {
122
122
  info.bitbucketWebhookEvents = meta.bitbucketWebhookEvents;
123
123
  }
124
+ if (meta?.pagerdutyWebhookEvents !== undefined) {
125
+ info.pagerdutyWebhookEvents = meta.pagerdutyWebhookEvents;
126
+ }
124
127
  if (meta?.deploymentEventTypes !== undefined) {
125
128
  info.deploymentEventTypes = meta.deploymentEventTypes;
126
129
  }
@@ -1 +1 @@
1
- {"version":3,"file":"instructions.d.ts","sourceRoot":"","sources":["../../../src/internal/discovery/instructions.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,KAAK,EAAE,qBAAqB,EAA0B,MAAM,gBAAgB,CAAC;AAEpF,OAAO,EAAE,KAAK,gBAAgB,EAAsC,MAAM,cAAc,CAAC;AAGzF,wBAAsB,gBAAgB,CACpC,GAAG,EAAE,gBAAgB,EACrB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,qBAAqB,GAAG,SAAS,EACzC,MAAM,EAAE,OAAO,GACd,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAkD7B"}
1
+ {"version":3,"file":"instructions.d.ts","sourceRoot":"","sources":["../../../src/internal/discovery/instructions.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,KAAK,EAAE,qBAAqB,EAA0B,MAAM,gBAAgB,CAAC;AAEpF,OAAO,EACL,KAAK,gBAAgB,EAItB,MAAM,cAAc,CAAC;AAGtB,wBAAsB,gBAAgB,CACpC,GAAG,EAAE,gBAAgB,EACrB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,qBAAqB,GAAG,SAAS,EACzC,MAAM,EAAE,OAAO,GACd,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAkD7B"}
@@ -4,7 +4,7 @@
4
4
  import { readFile } from "node:fs/promises";
5
5
  import { join } from "node:path";
6
6
  import { getDefinitionKind } from "../brand.js";
7
- import { displayPath, errorMessage, isBlank } from "./context.js";
7
+ import { displayPath, isBlank, pushModuleLoadDiagnostic, } from "./context.js";
8
8
  import { findModuleFile, isDirectory, isFile, isModuleFile, sortedEntries } from "./fs.js";
9
9
  export async function loadInstructions(ctx, agentDir, config, isRoot) {
10
10
  const parts = [];
@@ -59,11 +59,7 @@ async function loadInstructionsModule(ctx, modulePath) {
59
59
  mod = await ctx.importModule(modulePath);
60
60
  }
61
61
  catch (error) {
62
- ctx.diagnostics.push({
63
- severity: "error",
64
- path: displayPath(ctx, modulePath),
65
- message: `Failed to load module: ${errorMessage(error)}`,
66
- });
62
+ pushModuleLoadDiagnostic(ctx, modulePath, error);
67
63
  return undefined;
68
64
  }
69
65
  const value = mod.default;
@@ -75,6 +71,7 @@ async function loadInstructionsModule(ctx, modulePath) {
75
71
  }
76
72
  ctx.diagnostics.push({
77
73
  severity: "error",
74
+ code: "invalid_definition",
78
75
  path: displayPath(ctx, modulePath),
79
76
  message: "Instructions modules must default-export a string or defineInstructions({ markdown }).",
80
77
  });
@@ -1 +1 @@
1
- {"version":3,"file":"modules.d.ts","sourceRoot":"","sources":["../../../src/internal/discovery/modules.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAErD,OAAO,EAAE,KAAK,gBAAgB,EAA6B,MAAM,cAAc,CAAC;AAIhF,KAAK,cAAc,GAAG,OAAO,CAAC,cAAc,EAAE,cAAc,GAAG,MAAM,CAAC,CAAC;AAEvE,4EAA4E;AAC5E,wBAAsB,aAAa,CACjC,GAAG,EAAE,gBAAgB,EACrB,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,MAAM,GAAG,YAAY,GAC1B,OAAO,CAAC,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC,CAwBhD;AAED;;;GAGG;AACH,wBAAsB,aAAa,CACjC,GAAG,EAAE,gBAAgB,EACrB,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,cAAc,GAAG,SAAS,cAAc,EAAE,GACnD,OAAO,CAAC,OAAO,CAAC,CA6BlB;AAED,sFAAsF;AACtF,wBAAgB,UAAU,CAAC,IAAI,EAAE,cAAc,GAAG,MAAM,CAGvD"}
1
+ {"version":3,"file":"modules.d.ts","sourceRoot":"","sources":["../../../src/internal/discovery/modules.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAErD,OAAO,EAAE,KAAK,gBAAgB,EAAyC,MAAM,cAAc,CAAC;AAI5F,KAAK,cAAc,GAAG,OAAO,CAAC,cAAc,EAAE,cAAc,GAAG,MAAM,CAAC,CAAC;AAEvE,4EAA4E;AAC5E,wBAAsB,aAAa,CACjC,GAAG,EAAE,gBAAgB,EACrB,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,MAAM,GAAG,YAAY,GAC1B,OAAO,CAAC,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC,CAwBhD;AAED;;;GAGG;AACH,wBAAsB,aAAa,CACjC,GAAG,EAAE,gBAAgB,EACrB,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,cAAc,GAAG,SAAS,cAAc,EAAE,GACnD,OAAO,CAAC,OAAO,CAAC,CA0BlB;AAED,sFAAsF;AACtF,wBAAgB,UAAU,CAAC,IAAI,EAAE,cAAc,GAAG,MAAM,CAGvD"}
@@ -3,7 +3,7 @@
3
3
  */
4
4
  import { join } from "node:path";
5
5
  import { getDefinitionKind } from "../brand.js";
6
- import { displayPath, errorMessage } from "./context.js";
6
+ import { displayPath, pushModuleLoadDiagnostic } from "./context.js";
7
7
  import { isDirectory, isModuleFile, moduleStem, sortedEntries } from "./fs.js";
8
8
  import { validateName } from "./names.js";
9
9
  /** The module files of a slot directory whose filenames are valid names. */
@@ -42,11 +42,7 @@ export async function importDefault(ctx, modulePath, expected) {
42
42
  mod = await ctx.importModule(modulePath);
43
43
  }
44
44
  catch (error) {
45
- ctx.diagnostics.push({
46
- severity: "error",
47
- path: displayPath(ctx, modulePath),
48
- message: `Failed to load module: ${errorMessage(error)}`,
49
- });
45
+ pushModuleLoadDiagnostic(ctx, modulePath, error);
50
46
  return undefined;
51
47
  }
52
48
  const kinds = typeof expected === "string" ? [expected] : expected;
@@ -59,6 +55,7 @@ export async function importDefault(ctx, modulePath, expected) {
59
55
  const article = /^[aeiou]/.test(expectedKinds) ? "an" : "a";
60
56
  ctx.diagnostics.push({
61
57
  severity: "error",
58
+ code: "invalid_definition",
62
59
  path: displayPath(ctx, modulePath),
63
60
  message: kind === undefined
64
61
  ? `Module must default-export ${helpers}.`
@@ -48,4 +48,10 @@ export declare function loadAgentProject(dir: string, options?: LoadAgentProject
48
48
  /** True when the project has diagnostics that must block serving. */
49
49
  export declare function hasErrorDiagnostics(project: AgentProject): boolean;
50
50
  export declare function formatDiagnostics(diagnostics: Diagnostic[]): string;
51
+ export declare function formatValidateJson(mounts: ReadonlyArray<{
52
+ slug: string;
53
+ project: {
54
+ diagnostics: readonly Diagnostic[];
55
+ };
56
+ }>): string;
51
57
  //# sourceMappingURL=project.d.ts.map