@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.
- package/AGENTS.md +1 -0
- package/dist/artifacts.d.ts +1 -1
- package/dist/artifacts.js +1 -1
- package/dist/bin/agent-serve.d.ts +1 -1
- package/dist/bin/agent-serve.js +48 -12
- package/dist/channels/bitbucket/bitbucket-channel.js +1 -1
- package/dist/channels/bitbucket/bitbucket-webhook.d.ts +3 -2
- package/dist/channels/bitbucket/bitbucket-webhook.d.ts.map +1 -1
- package/dist/channels/bitbucket/bitbucket-webhook.js +14 -9
- package/dist/channels/change-monitors/change-monitors-channel.js +1 -1
- package/dist/channels/deployments/deployments-channel.js +1 -1
- package/dist/channels/github/github-channel.d.ts.map +1 -1
- package/dist/channels/github/github-channel.js +10 -19
- package/dist/channels/gitlab/gitlab-channel.js +1 -1
- package/dist/channels/issues/issues-channel.js +1 -1
- package/dist/channels/origin/origin-channel.js +1 -1
- package/dist/channels/pagerduty/api.d.ts +74 -0
- package/dist/channels/pagerduty/api.d.ts.map +1 -0
- package/dist/channels/pagerduty/api.js +101 -0
- package/dist/channels/pagerduty/defaults.d.ts +42 -0
- package/dist/channels/pagerduty/defaults.d.ts.map +1 -0
- package/dist/channels/pagerduty/defaults.js +132 -0
- package/dist/channels/pagerduty/events.d.ts +24 -0
- package/dist/channels/pagerduty/events.d.ts.map +1 -0
- package/dist/channels/pagerduty/events.js +38 -0
- package/dist/channels/pagerduty/index.d.ts +31 -0
- package/dist/channels/pagerduty/index.d.ts.map +1 -0
- package/dist/channels/pagerduty/index.js +30 -0
- package/dist/channels/pagerduty/pagerduty-channel.d.ts +64 -0
- package/dist/channels/pagerduty/pagerduty-channel.d.ts.map +1 -0
- package/dist/channels/pagerduty/pagerduty-channel.js +195 -0
- package/dist/channels/pagerduty/pagerduty-webhook.d.ts +70 -0
- package/dist/channels/pagerduty/pagerduty-webhook.d.ts.map +1 -0
- package/dist/channels/pagerduty/pagerduty-webhook.js +280 -0
- package/dist/channels/pagerduty/payload.d.ts +33 -0
- package/dist/channels/pagerduty/payload.d.ts.map +1 -0
- package/dist/channels/pagerduty/payload.js +150 -0
- package/dist/channels/pagerduty/replay.d.ts +35 -0
- package/dist/channels/pagerduty/replay.d.ts.map +1 -0
- package/dist/channels/pagerduty/replay.js +115 -0
- package/dist/channels/pagerduty/secrets.d.ts +16 -0
- package/dist/channels/pagerduty/secrets.d.ts.map +1 -0
- package/dist/channels/pagerduty/secrets.js +23 -0
- package/dist/channels/pagerduty/self-user.d.ts +51 -0
- package/dist/channels/pagerduty/self-user.d.ts.map +1 -0
- package/dist/channels/pagerduty/self-user.js +157 -0
- package/dist/channels/pagerduty/state.d.ts +31 -0
- package/dist/channels/pagerduty/state.d.ts.map +1 -0
- package/dist/channels/pagerduty/state.js +30 -0
- package/dist/channels/pagerduty/types.d.ts +217 -0
- package/dist/channels/pagerduty/types.d.ts.map +1 -0
- package/dist/channels/pagerduty/types.js +1 -0
- package/dist/channels/runs/runs-channel.js +1 -1
- package/dist/channels/slack/tool-approval-events.js +5 -5
- package/dist/channels.d.ts +14 -1
- package/dist/channels.d.ts.map +1 -1
- package/dist/channels.js +24 -9
- package/dist/docs/404.html +3 -3
- package/dist/docs/assets/{app.AXQcJZaf.js → app.BjS1QEI4.js} +4 -4
- package/dist/docs/assets/chunks/@localSearchIndexroot.oGqZumnJ.js +1 -0
- package/dist/docs/assets/chunks/{VPLocalSearchBox.hlZ2vmun.js → VPLocalSearchBox.BOuvjb5Y.js} +2 -2
- package/dist/docs/assets/chunks/{arc.9KNWdH-l.js → arc.3WR6Jf-y.js} +1 -1
- package/dist/docs/assets/chunks/{architectureDiagram-Q4EWVU46.BfGzkBHI.js → architectureDiagram-Q4EWVU46.Dtb6Dqh6.js} +1 -1
- package/dist/docs/assets/chunks/{baseUniq.Btk8-2Rs.js → baseUniq.BUyrgrZE.js} +1 -1
- package/dist/docs/assets/chunks/{blockDiagram-DXYQGD6D.BmHm9OH5.js → blockDiagram-DXYQGD6D.BVLV_voZ.js} +1 -1
- package/dist/docs/assets/chunks/{c4Diagram-AHTNJAMY.9POrbDHJ.js → c4Diagram-AHTNJAMY.jXJ1q70M.js} +1 -1
- package/dist/docs/assets/chunks/channel.Dt4aweTm.js +1 -0
- package/dist/docs/assets/chunks/{chunk-4BX2VUAB.YWZVSM6S.js → chunk-4BX2VUAB.zz1SMBvK.js} +1 -1
- package/dist/docs/assets/chunks/{chunk-4TB4RGXK.Cxr_SFgw.js → chunk-4TB4RGXK.CzYKuv3I.js} +1 -1
- package/dist/docs/assets/chunks/{chunk-55IACEB6.DtiJyPlD.js → chunk-55IACEB6.C7_tcJZD.js} +1 -1
- package/dist/docs/assets/chunks/{chunk-EDXVE4YY.b5gNHJPH.js → chunk-EDXVE4YY.DeTwQPVO.js} +1 -1
- package/dist/docs/assets/chunks/{chunk-FMBD7UC4.DmN9yA_M.js → chunk-FMBD7UC4.DhMTl7ut.js} +1 -1
- package/dist/docs/assets/chunks/{chunk-OYMX7WX6.Dfm3xgV5.js → chunk-OYMX7WX6.Me7f5hEp.js} +1 -1
- package/dist/docs/assets/chunks/{chunk-QZHKN3VN.sXNxDcJA.js → chunk-QZHKN3VN.D0E0Bb6g.js} +1 -1
- package/dist/docs/assets/chunks/{chunk-YZCP3GAM.DgBnDUV7.js → chunk-YZCP3GAM.CdOOBFYL.js} +1 -1
- package/dist/docs/assets/chunks/classDiagram-6PBFFD2Q.DGUHZs6j.js +1 -0
- package/dist/docs/assets/chunks/classDiagram-v2-HSJHXN6E.DGUHZs6j.js +1 -0
- package/dist/docs/assets/chunks/clone.DWf3k0Z0.js +1 -0
- package/dist/docs/assets/chunks/{cose-bilkent-S5V4N54A.D18MEcoN.js → cose-bilkent-S5V4N54A.BNbGESzN.js} +1 -1
- package/dist/docs/assets/chunks/{dagre-KV5264BT.CSf3tihh.js → dagre-KV5264BT.zU7Lu_xJ.js} +1 -1
- package/dist/docs/assets/chunks/{diagram-5BDNPKRD.cbfzAfoC.js → diagram-5BDNPKRD.B9qOdE5h.js} +1 -1
- package/dist/docs/assets/chunks/{diagram-G4DWMVQ6.6i6P3uu9.js → diagram-G4DWMVQ6.D8X-sf77.js} +1 -1
- package/dist/docs/assets/chunks/{diagram-MMDJMWI5.B9HAIfN6.js → diagram-MMDJMWI5.CW7MvMlE.js} +1 -1
- package/dist/docs/assets/chunks/{diagram-TYMM5635.B9baAjUv.js → diagram-TYMM5635.J489G0Nd.js} +1 -1
- package/dist/docs/assets/chunks/{erDiagram-SMLLAGMA.DaBmX_GN.js → erDiagram-SMLLAGMA.BkW7tGfs.js} +1 -1
- package/dist/docs/assets/chunks/{flowDiagram-DWJPFMVM.CJqQJjkb.js → flowDiagram-DWJPFMVM.jc9iWORD.js} +1 -1
- package/dist/docs/assets/chunks/{ganttDiagram-T4ZO3ILL.CIXBLQhC.js → ganttDiagram-T4ZO3ILL.B-UQfd9E.js} +1 -1
- package/dist/docs/assets/chunks/{gitGraphDiagram-UUTBAWPF.CDgentto.js → gitGraphDiagram-UUTBAWPF.DFzrTSlJ.js} +1 -1
- package/dist/docs/assets/chunks/{graph.BWHn6JBQ.js → graph.C5IB6_e_.js} +1 -1
- package/dist/docs/assets/chunks/{infoDiagram-42DDH7IO.d9VU_ts_.js → infoDiagram-42DDH7IO.DwF0-c8L.js} +1 -1
- package/dist/docs/assets/chunks/{ishikawaDiagram-UXIWVN3A.BNO79Prj.js → ishikawaDiagram-UXIWVN3A.fBaTqzE7.js} +1 -1
- package/dist/docs/assets/chunks/{journeyDiagram-VCZTEJTY.CPgUTM1R.js → journeyDiagram-VCZTEJTY.CM8gDVJy.js} +1 -1
- package/dist/docs/assets/chunks/{kanban-definition-6JOO6SKY.idl0Eoe1.js → kanban-definition-6JOO6SKY.YiD1p0LB.js} +1 -1
- package/dist/docs/assets/chunks/{layout.BY7DIMr6.js → layout.6Um-DVJT.js} +1 -1
- package/dist/docs/assets/chunks/{linear.DYaUDrHd.js → linear.DcTeg4Hn.js} +1 -1
- package/dist/docs/assets/chunks/{min.V6MWb1UC.js → min.CIxkY8Fe.js} +1 -1
- package/dist/docs/assets/chunks/{mindmap-definition-QFDTVHPH.BRlJXuFS.js → mindmap-definition-QFDTVHPH.D4QM_voR.js} +1 -1
- package/dist/docs/assets/chunks/{pieDiagram-DEJITSTG.BIhkDLcB.js → pieDiagram-DEJITSTG.nmB309G1.js} +1 -1
- package/dist/docs/assets/chunks/{quadrantDiagram-34T5L4WZ.Bw-_VEL3.js → quadrantDiagram-34T5L4WZ.D1HtZR3C.js} +1 -1
- package/dist/docs/assets/chunks/{requirementDiagram-MS252O5E.DolEGwxw.js → requirementDiagram-MS252O5E.CZgQWob-.js} +1 -1
- package/dist/docs/assets/chunks/{sankeyDiagram-XADWPNL6.hMM-8BhN.js → sankeyDiagram-XADWPNL6.DtiBfU-P.js} +1 -1
- package/dist/docs/assets/chunks/{sequenceDiagram-FGHM5R23.Bg_CRVDy.js → sequenceDiagram-FGHM5R23.Cld4gDSt.js} +1 -1
- package/dist/docs/assets/chunks/{stateDiagram-FHFEXIEX.DNWdl34_.js → stateDiagram-FHFEXIEX.DatP823_.js} +1 -1
- package/dist/docs/assets/chunks/stateDiagram-v2-QKLJ7IA2.C0571l4D.js +1 -0
- package/dist/docs/assets/chunks/{theme.CBW1oolh.js → theme.D5jbBys7.js} +2 -2
- package/dist/docs/assets/chunks/{timeline-definition-GMOUNBTQ.Cr1wJ1mB.js → timeline-definition-GMOUNBTQ.DwQLI2be.js} +1 -1
- package/dist/docs/assets/chunks/{vennDiagram-DHZGUBPP.BltDV9j7.js → vennDiagram-DHZGUBPP.a5yMfnsa.js} +1 -1
- package/dist/docs/assets/chunks/{wardley-RL74JXVD.BWPaUhOs.js → wardley-RL74JXVD.B-FXivgT.js} +1 -1
- package/dist/docs/assets/chunks/{wardleyDiagram-NUSXRM2D.nsADqCCo.js → wardleyDiagram-NUSXRM2D.Dz--Opy3.js} +1 -1
- package/dist/docs/assets/chunks/{xychartDiagram-5P7HB3ND.CCwbO3dK.js → xychartDiagram-5P7HB3ND.Dl8w8TeT.js} +1 -1
- package/dist/docs/assets/{deployment.md.CtSJ6sF9.js → deployment.md.3MMWuPeV.js} +5 -5
- package/dist/docs/assets/{deployment.md.CtSJ6sF9.lean.js → deployment.md.3MMWuPeV.lean.js} +1 -1
- package/dist/docs/assets/{guides_cloud-agents.md.CBK7W0-O.js → guides_cloud-agents.md.BzbzcOyj.js} +2 -2
- package/dist/docs/assets/{guides_cloud-agents.md.CBK7W0-O.lean.js → guides_cloud-agents.md.BzbzcOyj.lean.js} +1 -1
- package/dist/docs/assets/{guides_opentelemetry.md.ByW1Fs7b.js → guides_opentelemetry.md.DBQtp7_V.js} +13 -5
- package/dist/docs/assets/{guides_opentelemetry.md.ByW1Fs7b.lean.js → guides_opentelemetry.md.DBQtp7_V.lean.js} +1 -1
- package/dist/docs/assets/guides_pagerduty.md.BHXMcMtx.js +60 -0
- package/dist/docs/assets/guides_pagerduty.md.BHXMcMtx.lean.js +1 -0
- package/dist/docs/assets/{reference_agent-config.md.DYA6ge6t.js → reference_agent-config.md.IplwL25I.js} +1 -2
- package/dist/docs/assets/{reference_agent-config.md.DYA6ge6t.lean.js → reference_agent-config.md.IplwL25I.lean.js} +1 -1
- package/dist/docs/assets/{reference_channels.md.DYg0CLud.js → reference_channels.md.Bxaa020x.js} +1 -1
- package/dist/docs/assets/{reference_cli.md.DB7Llw3T.js → reference_cli.md.1o_TqKdt.js} +7 -2
- package/dist/docs/assets/{reference_cli.md.DB7Llw3T.lean.js → reference_cli.md.1o_TqKdt.lean.js} +1 -1
- package/dist/docs/assets/{reference_extensions.md.OUacPetl.js → reference_extensions.md.DKxTuCIw.js} +11 -8
- package/dist/docs/assets/{reference_extensions.md.OUacPetl.lean.js → reference_extensions.md.DKxTuCIw.lean.js} +1 -1
- package/dist/docs/assets/{reference_instructions.md.DrcHZXig.js → reference_instructions.md.BYMVxAkw.js} +4 -4
- package/dist/docs/assets/{reference_instructions.md.DrcHZXig.lean.js → reference_instructions.md.BYMVxAkw.lean.js} +1 -1
- package/dist/docs/assets/{reference_schedules.md.BqWnJES4.js → reference_schedules.md.03Ryy9ca.js} +3 -3
- package/dist/docs/assets/{reference_tools.md.08XR7lIl.js → reference_tools.md.-6pypsWt.js} +1 -1
- package/dist/docs/assets/{style.Dwls12uf.css → style.nMsabY-V.css} +1 -1
- package/dist/docs/assets/templates_agentic-owners.md.CTEnR0jp.js +13 -0
- package/dist/docs/assets/{templates_agentic-owners.md.CvmABtia.lean.js → templates_agentic-owners.md.CTEnR0jp.lean.js} +1 -1
- package/dist/docs/building-with-agents.html +37 -37
- package/dist/docs/deployment.html +42 -42
- package/dist/docs/deployment.md +9 -4
- package/dist/docs/evals.html +37 -37
- package/dist/docs/guides/agent-to-agent.html +37 -37
- package/dist/docs/guides/bitbucket.html +37 -37
- package/dist/docs/guides/cloud-agents.html +38 -38
- package/dist/docs/guides/cloud-agents.md +1 -0
- package/dist/docs/guides/convert-automation.html +37 -37
- package/dist/docs/guides/export-grokbot.html +37 -37
- package/dist/docs/guides/github.html +37 -37
- package/dist/docs/guides/gitlab.html +37 -37
- package/dist/docs/guides/grokbot-agents.html +37 -37
- package/dist/docs/guides/hooks.html +37 -37
- package/dist/docs/guides/improve.html +37 -37
- package/dist/docs/guides/jev.html +37 -37
- package/dist/docs/guides/mcp-oauth.html +37 -37
- package/dist/docs/guides/migrate.html +37 -37
- package/dist/docs/guides/opentelemetry.html +49 -41
- package/dist/docs/guides/opentelemetry.md +54 -3
- package/dist/docs/guides/pagerduty.html +119 -0
- package/dist/docs/guides/pagerduty.md +336 -0
- package/dist/docs/guides/slack.html +37 -37
- package/dist/docs/guides/webhooks.html +37 -37
- package/dist/docs/hashmap.json +1 -1
- package/dist/docs/hillclimbing.html +37 -37
- package/dist/docs/index.html +37 -37
- package/dist/docs/llms-full.txt +510 -42
- package/dist/docs/llms.txt +1 -0
- package/dist/docs/quickstart.html +37 -37
- package/dist/docs/reference/agent-config.html +38 -39
- package/dist/docs/reference/agent-config.md +0 -1
- package/dist/docs/reference/artifacts.html +37 -37
- package/dist/docs/reference/channels.html +38 -38
- package/dist/docs/reference/channels.md +2 -1
- package/dist/docs/reference/cli.html +43 -38
- package/dist/docs/reference/cli.md +27 -0
- package/dist/docs/reference/connections.html +37 -37
- package/dist/docs/reference/evals.html +37 -37
- package/dist/docs/reference/extensions.html +47 -44
- package/dist/docs/reference/extensions.md +15 -9
- package/dist/docs/reference/hooks.html +37 -37
- package/dist/docs/reference/http-api.html +37 -37
- package/dist/docs/reference/instructions.html +40 -40
- package/dist/docs/reference/instructions.md +5 -1
- package/dist/docs/reference/memory.html +37 -37
- package/dist/docs/reference/playground.html +36 -36
- package/dist/docs/reference/project-layout.html +37 -37
- package/dist/docs/reference/prompt.html +37 -37
- package/dist/docs/reference/schedules.html +40 -40
- package/dist/docs/reference/sessions.html +36 -36
- package/dist/docs/reference/skills.html +37 -37
- package/dist/docs/reference/subagents.html +37 -37
- package/dist/docs/reference/tools.html +39 -39
- package/dist/docs/reference/tools.md +1 -0
- package/dist/docs/templates/agentic-owners.html +42 -43
- package/dist/docs/templates/agentic-owners.md +55 -23
- package/dist/docs/templates/grokbot-agents.html +37 -37
- package/dist/docs/templates/security-reviewer.html +37 -37
- package/dist/docs/templates/thermo-quality-review.html +37 -37
- package/dist/docs/templates/thermo-review.html +37 -37
- package/dist/docs/templates/triage.html +37 -37
- package/dist/docs/troubleshooting.html +36 -36
- package/dist/extensions/cursor-cloud-agents/extension.d.ts +2 -0
- package/dist/extensions/cursor-cloud-agents/extension.d.ts.map +1 -1
- package/dist/extensions/cursor-cloud-agents/extension.js +2 -1
- package/dist/extensions/cursor-cloud-agents/lib/backend.d.ts +1 -0
- package/dist/extensions/cursor-cloud-agents/lib/backend.d.ts.map +1 -1
- package/dist/extensions/cursor-cloud-agents/lib/backend.js +2 -1
- package/dist/extensions/cursor-cloud-agents/lib/fleet.js +1 -1
- package/dist/extensions/cursor-cloud-agents/lib/inputs.d.ts +1 -1
- package/dist/extensions/cursor-cloud-agents/lib/inputs.d.ts.map +1 -1
- package/dist/extensions/cursor-cloud-agents/lib/inputs.js +1 -1
- package/dist/extensions/cursor-cloud-agents/reminders/cloud-agent-stop-watch.js +1 -1
- package/dist/extensions/cursor-cloud-agents/tools/launch.js +1 -1
- package/dist/extensions/cursor-cloud-agents/tools/list.js +1 -1
- package/dist/extensions/cursor-cloud-agents/tools/reply.js +1 -1
- package/dist/extensions/cursor-grokbot-agents/extension.js +1 -1
- package/dist/extensions/cursor-grokbot-agents/lib/backend.js +1 -1
- package/dist/extensions/cursor-grokbot-agents/lib/contacts.js +1 -1
- package/dist/extensions/cursor-grokbot-agents/lib/inputs.d.ts +1 -1
- package/dist/extensions/cursor-grokbot-agents/lib/inputs.d.ts.map +1 -1
- package/dist/extensions/cursor-grokbot-agents/lib/inputs.js +1 -1
- package/dist/extensions/cursor-grokbot-agents/tools/ask.js +1 -1
- package/dist/extensions/cursor-grokbot-agents/tools/check.js +1 -1
- package/dist/extensions/cursor-grokbot-agents/tools/interrupt.js +1 -1
- package/dist/extensions/cursor-grokbot-agents/tools/list.js +1 -1
- package/dist/extensions/improve/extension.js +1 -1
- package/dist/extensions/jev/extension.js +1 -1
- package/dist/extensions/jev/tools/evaluate.js +1 -1
- package/dist/extensions/slack-communication/extension.js +1 -1
- package/dist/extensions/slack-communication/tools/delete-message.js +1 -1
- package/dist/extensions/slack-communication/tools/edit-message.js +1 -1
- package/dist/extensions/slack-communication/tools/post-card.js +1 -1
- package/dist/extensions/slack-communication/tools/post-file.js +1 -1
- package/dist/extensions/slack-communication/tools/post-update.js +1 -1
- package/dist/extensions/slack-communication/tools/react.js +1 -1
- package/dist/extensions/slack-communication/tools/set-status.js +1 -1
- package/dist/extensions.d.ts +1 -1
- package/dist/extensions.js +1 -1
- package/dist/internal/approval-gate.d.ts +4 -2
- package/dist/internal/approval-gate.d.ts.map +1 -1
- package/dist/internal/approval-gate.js +2 -1
- package/dist/internal/builtin-tools/artifacts.d.ts.map +1 -1
- package/dist/internal/builtin-tools/artifacts.js +46 -13
- package/dist/internal/builtin-tools/reminders.js +1 -1
- package/dist/internal/channel-architecture.d.ts +1 -1
- package/dist/internal/channel-architecture.d.ts.map +1 -1
- package/dist/internal/channel-architecture.js +4 -2
- package/dist/internal/cli-deploy.d.ts.map +1 -1
- package/dist/internal/cli-deploy.js +21 -12
- package/dist/internal/cli-pagerduty.d.ts +32 -0
- package/dist/internal/cli-pagerduty.d.ts.map +1 -0
- package/dist/internal/cli-pagerduty.js +242 -0
- package/dist/internal/continuation-channel.d.ts.map +1 -1
- package/dist/internal/continuation-channel.js +7 -0
- package/dist/internal/continuation-identity.d.ts +11 -3
- package/dist/internal/continuation-identity.d.ts.map +1 -1
- package/dist/internal/continuation-identity.js +83 -0
- package/dist/internal/convert-automation/convert-workflow.js +1 -1
- package/dist/internal/convert-grokbot/answers.js +1 -1
- package/dist/internal/convert-grokbot/recipe.d.ts +1 -1
- package/dist/internal/convert-grokbot/recipe.d.ts.map +1 -1
- package/dist/internal/convert-grokbot/recipe.js +1 -1
- package/dist/internal/cursor/backend-client.d.ts +1 -1
- package/dist/internal/cursor/backend-client.d.ts.map +1 -1
- package/dist/internal/cursor/backend-client.js +1 -1
- package/dist/internal/cursor/credentials.d.ts +1 -1
- package/dist/internal/cursor/credentials.d.ts.map +1 -1
- package/dist/internal/cursor/credentials.js +1 -1
- package/dist/internal/deploy-client.js +1 -1
- package/dist/internal/deploy-manifest.d.ts +11 -4
- package/dist/internal/deploy-manifest.d.ts.map +1 -1
- package/dist/internal/deploy-manifest.js +19 -6
- package/dist/internal/discovery/agent-config.d.ts.map +1 -1
- package/dist/internal/discovery/agent-config.js +10 -10
- package/dist/internal/discovery/agent.d.ts.map +1 -1
- package/dist/internal/discovery/agent.js +10 -10
- package/dist/internal/discovery/channels.d.ts.map +1 -1
- package/dist/internal/discovery/channels.js +20 -16
- package/dist/internal/discovery/context.d.ts +16 -0
- package/dist/internal/discovery/context.d.ts.map +1 -1
- package/dist/internal/discovery/context.js +66 -0
- package/dist/internal/discovery/cursor-plugin.js +1 -1
- package/dist/internal/discovery/extension-overlay.d.ts.map +1 -1
- package/dist/internal/discovery/extension-overlay.js +2 -6
- package/dist/internal/discovery/info.d.ts.map +1 -1
- package/dist/internal/discovery/info.js +3 -0
- package/dist/internal/discovery/instructions.d.ts.map +1 -1
- package/dist/internal/discovery/instructions.js +3 -6
- package/dist/internal/discovery/modules.d.ts.map +1 -1
- package/dist/internal/discovery/modules.js +3 -6
- package/dist/internal/discovery/project.d.ts +6 -0
- package/dist/internal/discovery/project.d.ts.map +1 -1
- package/dist/internal/discovery/project.js +27 -5
- package/dist/internal/discovery/runtime.d.ts.map +1 -1
- package/dist/internal/discovery/runtime.js +8 -8
- package/dist/internal/discovery.d.ts +1 -1
- package/dist/internal/discovery.d.ts.map +1 -1
- package/dist/internal/discovery.js +1 -1
- package/dist/internal/expected-delivery-failure.d.ts.map +1 -1
- package/dist/internal/expected-delivery-failure.js +6 -0
- package/dist/internal/factory-resource-channel.d.ts +1 -1
- package/dist/internal/factory-resource-channel.d.ts.map +1 -1
- package/dist/internal/filesystem/sdk-schemas.d.ts +1 -1
- package/dist/internal/filesystem/sdk-schemas.d.ts.map +1 -1
- package/dist/internal/filesystem/sdk-schemas.js +5 -4
- package/dist/internal/filesystem/tools.js +1 -1
- package/dist/internal/hmac-secret-values.d.ts +48 -0
- package/dist/internal/hmac-secret-values.d.ts.map +1 -0
- package/dist/internal/hmac-secret-values.js +68 -0
- package/dist/internal/host-otel.d.ts +2 -1
- package/dist/internal/host-otel.d.ts.map +1 -1
- package/dist/internal/host-otel.js +20 -6
- package/dist/internal/host-platforms.d.ts.map +1 -1
- package/dist/internal/host-platforms.js +8 -2
- package/dist/internal/hosted-delivery-protocol.d.ts +4 -0
- package/dist/internal/hosted-delivery-protocol.d.ts.map +1 -1
- package/dist/internal/hosted-delivery.d.ts +7 -0
- package/dist/internal/hosted-delivery.d.ts.map +1 -1
- package/dist/internal/hosted-delivery.js +19 -17
- package/dist/internal/hosting.d.ts +6 -0
- package/dist/internal/hosting.d.ts.map +1 -1
- package/dist/internal/hosting.js +9 -0
- package/dist/internal/init-scaffold.js +1 -1
- package/dist/internal/interview/agent-questions.d.ts +1 -1
- package/dist/internal/interview/agent-questions.d.ts.map +1 -1
- package/dist/internal/interview/agent-questions.js +1 -1
- package/dist/internal/interview/question.d.ts +1 -1
- package/dist/internal/interview/question.d.ts.map +1 -1
- package/dist/internal/interview/question.js +1 -1
- package/dist/internal/json-schema.d.ts +7 -7
- package/dist/internal/json-schema.d.ts.map +1 -1
- package/dist/internal/json-schema.js +14 -17
- package/dist/internal/mcp-endpoint.js +1 -1
- package/dist/internal/otel/collector.d.ts.map +1 -1
- package/dist/internal/otel/collector.js +50 -19
- package/dist/internal/otel/config.d.ts +10 -1
- package/dist/internal/otel/config.d.ts.map +1 -1
- package/dist/internal/otel/config.js +47 -10
- package/dist/internal/otel/http.d.ts +1 -1
- package/dist/internal/otel/http.d.ts.map +1 -1
- package/dist/internal/otel/http.js +1 -1
- package/dist/internal/otel/runtime.d.ts +17 -14
- package/dist/internal/otel/runtime.d.ts.map +1 -1
- package/dist/internal/otel/runtime.js +203 -237
- package/dist/internal/package-inline-stdio.d.ts.map +1 -1
- package/dist/internal/package-inline-stdio.js +21 -5
- package/dist/internal/process-memory-telemetry.d.ts +1 -1
- package/dist/internal/process-memory-telemetry.d.ts.map +1 -1
- package/dist/internal/process-memory-telemetry.js +1 -1
- package/dist/internal/sdk-runner.d.ts +2 -3
- package/dist/internal/sdk-runner.d.ts.map +1 -1
- package/dist/internal/sdk-runner.js +30 -6
- package/dist/internal/secret-alternatives.d.ts +11 -0
- package/dist/internal/secret-alternatives.d.ts.map +1 -0
- package/dist/internal/secret-alternatives.js +13 -0
- package/dist/internal/server.d.ts.map +1 -1
- package/dist/internal/server.js +27 -15
- package/dist/internal/session-engine.d.ts +9 -1
- package/dist/internal/session-engine.d.ts.map +1 -1
- package/dist/internal/session-engine.js +30 -4
- package/dist/internal/slack-provision-client.js +1 -1
- package/dist/internal/sqlite-experimental-warning.d.ts +2 -0
- package/dist/internal/sqlite-experimental-warning.d.ts.map +1 -0
- package/dist/internal/sqlite-experimental-warning.js +22 -0
- package/dist/internal/store-api-protocol.d.ts +1 -1
- package/dist/internal/store-api-protocol.d.ts.map +1 -1
- package/dist/internal/store-api-protocol.js +1 -1
- package/dist/internal/testing/conversation-identity-vectors.d.ts +6 -1
- package/dist/internal/testing/conversation-identity-vectors.d.ts.map +1 -1
- package/dist/internal/testing/conversation-identity-vectors.js +34 -0
- package/dist/internal/testing/hmac-secret-vectors.d.ts +38 -0
- package/dist/internal/testing/hmac-secret-vectors.d.ts.map +1 -0
- package/dist/internal/testing/hmac-secret-vectors.js +89 -0
- package/dist/internal/testing/pagerduty-continuation-fixtures.d.ts +42 -0
- package/dist/internal/testing/pagerduty-continuation-fixtures.d.ts.map +1 -0
- package/dist/internal/testing/pagerduty-continuation-fixtures.js +175 -0
- package/dist/internal/update-check.d.ts +1 -1
- package/dist/internal/update-check.d.ts.map +1 -1
- package/dist/internal/update-check.js +1 -1
- package/dist/internal/zod-schema.d.ts +14 -0
- package/dist/internal/zod-schema.d.ts.map +1 -0
- package/dist/internal/zod-schema.js +22 -0
- package/dist/otel.d.ts +1 -2
- package/dist/otel.d.ts.map +1 -1
- package/dist/otel.js +0 -1
- package/dist/playground/assets/cursor-icons-16-DmHBTm1-.woff2 +0 -0
- package/dist/playground/assets/index-BdMwybMt.css +1 -0
- package/dist/playground/assets/index-CHk6O92d.js +62 -0
- package/dist/playground/index.html +2 -2
- package/dist/tools.d.ts +14 -11
- package/dist/tools.d.ts.map +1 -1
- package/dist/tools.js +4 -3
- package/dist/types.d.ts +67 -16
- package/dist/types.d.ts.map +1 -1
- package/docs/deployment.md +9 -4
- package/docs/guides/cloud-agents.md +1 -0
- package/docs/guides/opentelemetry.md +54 -3
- package/docs/guides/pagerduty.md +341 -0
- package/docs/reference/agent-config.md +0 -1
- package/docs/reference/channels.md +2 -1
- package/docs/reference/cli.md +27 -0
- package/docs/reference/extensions.md +15 -9
- package/docs/reference/instructions.md +5 -1
- package/docs/reference/tools.md +1 -0
- package/docs/templates/agentic-owners.md +55 -23
- package/package.json +24 -19
- package/skills/migrate-v2/SKILL.md +1 -1
- package/skills/otel/SKILL.md +24 -7
- package/templates/agentic-owners/README.md +6 -1
- package/templates/agentic-owners/bot/lib/owners/decision.ts +31 -5
- package/templates/agentic-owners/bot/lib/owners/globalOverride.ts +60 -0
- package/templates/agentic-owners/bot/lib/owners/match.ts +85 -19
- package/templates/agentic-owners/bot/lib/owners/parse.ts +133 -2
- package/templates/agentic-owners/bot/lib/owners/types.ts +23 -0
- package/dist/docs/assets/chunks/@localSearchIndexroot.B3j7LFef.js +0 -1
- package/dist/docs/assets/chunks/channel.RoCpi7X1.js +0 -1
- package/dist/docs/assets/chunks/classDiagram-6PBFFD2Q.oxdmwwqk.js +0 -1
- package/dist/docs/assets/chunks/classDiagram-v2-HSJHXN6E.oxdmwwqk.js +0 -1
- package/dist/docs/assets/chunks/clone.BkguoIMm.js +0 -1
- package/dist/docs/assets/chunks/stateDiagram-v2-QKLJ7IA2.7W-btjJ2.js +0 -1
- package/dist/docs/assets/templates_agentic-owners.md.CvmABtia.js +0 -14
- package/dist/playground/assets/cursor-icons-16-gwXtdAvu.woff2 +0 -0
- package/dist/playground/assets/index-BtsbIqV9.css +0 -1
- package/dist/playground/assets/index-CD8VRa25.js +0 -71
- /package/dist/docs/assets/{reference_channels.md.DYg0CLud.lean.js → reference_channels.md.Bxaa020x.lean.js} +0 -0
- /package/dist/docs/assets/{reference_schedules.md.BqWnJES4.lean.js → reference_schedules.md.03Ryy9ca.lean.js} +0 -0
- /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
|
|
161
|
-
* `
|
|
162
|
-
*
|
|
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
|
|
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":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAGH,OAAO,EACL,KAAK,oBAAoB,EAG1B,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"deploy-manifest.d.ts","sourceRoot":"","sources":["../../src/internal/deploy-manifest.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAGH,OAAO,EACL,KAAK,oBAAoB,EAG1B,MAAM,gBAAgB,CAAC;AASxB,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAEnE,OAAO,KAAK,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAQlE,OAAO,EAA0B,KAAK,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAK/F,eAAO,MAAM,uBAAuB,EAAE,CAAK,CAAC;AA2G5C,MAAM,WAAW,+BAA+B;IAC9C,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,4EAA4E;IAC5E,gBAAgB,CAAC,EAAE,eAAe,GAAG,OAAO,GAAG,MAAM,CAAC;IACtD;;;;OAIG;IACH,YAAY,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;IAC3B,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,4EAA4E;IAC5E,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;;;;;OAOG;IACH,QAAQ,EAAE,KAAK,CAAC;QACd,EAAE,EAAE,MAAM,CAAC;QACX,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;QACtB,YAAY,EAAE,oBAAoB,CAAC;QACnC;;;WAGG;QACH,UAAU,CAAC,EAAE,wCAAwC,CAAC;QACtD;;;;;;WAMG;QACH,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;QAC7B;;;;;WAKG;QACH,KAAK,CAAC,EAAE,mCAAmC,CAAC;KAC7C,CAAC,CAAC;IACH;;;;;OAKG;IACH,SAAS,CAAC,EAAE,sCAAsC,EAAE,CAAC;IACrD;;;;OAIG;IACH,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;CAClB;AAED,MAAM,WAAW,sCAAsC;IACrD,uDAAuD;IACvD,EAAE,EAAE,MAAM,CAAC;IACX,yCAAyC;IACzC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,UAAU,GAAG,KAAK,CAAC;CAC1B;AAED,MAAM,WAAW,mCAAmC;IAClD,MAAM,EAAE,KAAK,CAAC;QACZ,MAAM,EAAE,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,OAAO,GAAG,QAAQ,CAAC;QACpD,IAAI,EAAE,MAAM,CAAC;KACd,CAAC,CAAC;IACH,IAAI,EAAE,oBAAoB,EAAE,CAAC;CAC9B;AAED,MAAM,WAAW,wCAAwC;IACvD,IAAI,EAAE,SAAS,CAAC;IAChB,kDAAkD;IAClD,GAAG,EAAE,MAAM,CAAC;IACZ,2CAA2C;IAC3C,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,qBAAqB;IACpC,eAAe,EAAE,CAAC,CAAC;IACnB,6BAA6B;IAC7B,aAAa,EAAE,MAAM,CAAC;IACtB,wDAAwD;IACxD,UAAU,EAAE,MAAM,CAAC;IACnB,4EAA4E;IAC5E,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,+BAA+B,CAAC;IAC9C;;;OAGG;IACH,IAAI,EAAE,gBAAgB,CAAC;CACxB;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,YAAY,EACrB,OAAO,CAAC,EAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,GACpE,qBAAqB,CAuFvB;AAED;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CACrC,UAAU,EAAE,YAAY,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC,YAAY,CAAC,GACzD,mCAAmC,GAAG,SAAS,CAoDjD;AAED;;;;;;;GAOG;AACH,wBAAgB,uBAAuB,CACrC,UAAU,EAAE,YAAY,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC,YAAY,CAAC,GACzD,MAAM,EAAE,CAUV;AAED;;;;;;GAMG;AACH,wBAAgB,4BAA4B,CAC1C,UAAU,EAAE,YAAY,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC,YAAY,CAAC,GACzD,MAAM,EAAE,CAKV;AAED;;;;GAIG;AACH,wBAAgB,yBAAyB,CACvC,UAAU,EAAE,YAAY,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC,YAAY,CAAC,GACzD,kBAAkB,EAAE,CAEtB;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,OAAO,GAAG,qBAAqB,GAAG,SAAS,CAKxF"}
|
|
@@ -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
|
|
290
|
-
* `
|
|
291
|
-
*
|
|
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
|
|
295
|
+
* than as a failed call or a missed check inside the guest.
|
|
294
296
|
*/
|
|
295
297
|
export function channelCredentialSecretNames(definition) {
|
|
296
|
-
return
|
|
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,
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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,
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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,
|
|
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,
|
|
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
|
|
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
|
|
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
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
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
|
|
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
|
|
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,
|
|
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,
|
|
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
|
|
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,
|
|
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,
|
|
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,
|
|
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
|
|
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,
|
|
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,
|
|
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
|
|
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
|