@cursor/july 0.1.92 → 0.1.94
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 +8 -20
- package/README.md +115 -182
- package/dist/channels/deployments/deployments-channel.d.ts +7 -0
- package/dist/channels/deployments/deployments-channel.d.ts.map +1 -1
- package/dist/channels/deployments/deployments-channel.js +26 -2
- package/dist/channels/deployments/types.d.ts +8 -0
- package/dist/channels/deployments/types.d.ts.map +1 -1
- package/dist/channels/github/github-channel.d.ts +3 -0
- package/dist/channels/github/github-channel.d.ts.map +1 -1
- package/dist/channels/github/github-channel.js +28 -56
- package/dist/channels/slack/attachments.js +2 -2
- package/dist/channels/slack/dispatch.d.ts +0 -7
- package/dist/channels/slack/dispatch.d.ts.map +1 -1
- package/dist/channels/slack/dispatch.js +4 -7
- package/dist/channels/slack/eval-directive.d.ts +5 -12
- package/dist/channels/slack/eval-directive.d.ts.map +1 -1
- package/dist/channels/slack/eval-directive.js +8 -19
- package/dist/channels/slack/index.d.ts +0 -6
- package/dist/channels/slack/index.d.ts.map +1 -1
- package/dist/channels/slack/index.js +0 -6
- package/dist/channels/slack/setup.d.ts +4 -4
- package/dist/channels/slack/setup.d.ts.map +1 -1
- package/dist/channels/slack/setup.js +8 -15
- package/dist/channels/slack/slack-channel.d.ts +6 -13
- package/dist/channels/slack/slack-channel.d.ts.map +1 -1
- package/dist/channels/slack/slack-channel.js +15 -101
- package/dist/channels/slack/types.d.ts +12 -79
- package/dist/channels/slack/types.d.ts.map +1 -1
- package/dist/channels/slack/types.js +1 -15
- package/dist/client.d.ts +14 -0
- package/dist/client.d.ts.map +1 -0
- package/dist/client.js +12 -0
- package/dist/connections.d.ts +18 -9
- package/dist/connections.d.ts.map +1 -1
- package/dist/connections.js +17 -8
- package/dist/continuation.d.ts +1 -1
- package/dist/continuation.js +1 -1
- package/dist/docs/404.html +2 -2
- package/dist/docs/ab.html +8 -8
- package/dist/docs/ab.md +7 -13
- package/dist/docs/assets/{ab.md.CVzWxLoB.js → ab.md.DJo5r4R-.js} +4 -4
- package/dist/docs/assets/{ab.md.CVzWxLoB.lean.js → ab.md.DJo5r4R-.lean.js} +1 -1
- package/dist/docs/assets/{app.Bci6CM9E.js → app.CFDEas4I.js} +1 -1
- package/dist/docs/assets/building-with-agents.md.DI4mEzlt.js +13 -0
- package/dist/docs/assets/{building-with-agents.md.DH8A_cHA.lean.js → building-with-agents.md.DI4mEzlt.lean.js} +1 -1
- package/dist/docs/assets/chunks/@localSearchIndexroot.DU3U2Ij2.js +1 -0
- package/dist/docs/assets/chunks/{VPLocalSearchBox.BCPT6xA-.js → VPLocalSearchBox.B1IIYpYS.js} +1 -1
- package/dist/docs/assets/chunks/{theme.BEA8BF3c.js → theme.Ct4NSiLm.js} +2 -2
- package/dist/docs/assets/concepts.md.lwAgBIMI.js +1 -0
- package/dist/docs/assets/{concepts.md.CRfU3bVg.lean.js → concepts.md.lwAgBIMI.lean.js} +1 -1
- package/dist/docs/assets/{deployment.md.DX_hc3ze.js → deployment.md.D9msOFOW.js} +9 -14
- package/dist/docs/assets/{deployment.md.DX_hc3ze.lean.js → deployment.md.D9msOFOW.lean.js} +1 -1
- package/dist/docs/assets/{evals.md.a0SMN6r9.js → evals.md.lfJoEVc8.js} +6 -6
- package/dist/docs/assets/{evals.md.a0SMN6r9.lean.js → evals.md.lfJoEVc8.lean.js} +1 -1
- package/dist/docs/assets/{guides_agent-to-agent.md.BCeVdJRJ.js → guides_agent-to-agent.md.BDb0t1QV.js} +2 -2
- package/dist/docs/assets/guides_cloud-runtime.md.CkYbjnAX.js +9 -0
- package/dist/docs/assets/guides_cloud-runtime.md.CkYbjnAX.lean.js +1 -0
- package/dist/docs/assets/{guides_convert-automation.md.D06eIzea.js → guides_convert-automation.md.B4sjlodG.js} +2 -2
- package/dist/docs/assets/{guides_github.md.Cdt1s2QC.js → guides_github.md.Cnh2mL4a.js} +5 -5
- package/dist/docs/assets/{guides_github.md.Cdt1s2QC.lean.js → guides_github.md.Cnh2mL4a.lean.js} +1 -1
- package/dist/docs/assets/{guides_mcp-oauth.md.Du0f7pGU.js → guides_mcp-oauth.md.DPYmBCbV.js} +7 -9
- package/dist/docs/assets/{guides_mcp-oauth.md.Du0f7pGU.lean.js → guides_mcp-oauth.md.DPYmBCbV.lean.js} +1 -1
- package/dist/docs/assets/{guides_slack.md.DiUmk_Oi.js → guides_slack.md.C32HsdKk.js} +7 -13
- package/dist/docs/assets/guides_slack.md.C32HsdKk.lean.js +1 -0
- package/dist/docs/assets/{guides_webhooks.md.BpnIdO0i.js → guides_webhooks.md.DKdA43Qm.js} +2 -2
- package/dist/docs/assets/{hillclimbing.md.ywF3yDAd.js → hillclimbing.md.DhESf3OO.js} +1 -1
- package/dist/docs/assets/index.md.DRakGHFe.js +5 -0
- package/dist/docs/assets/{index.md.BAaMXLFd.lean.js → index.md.DRakGHFe.lean.js} +1 -1
- package/dist/docs/assets/{quickstart.md.DsrarzEg.js → quickstart.md.Nj_LjW_a.js} +2 -2
- package/dist/docs/assets/{reference_agent-config.md.Bqylgw50.js → reference_agent-config.md.Cp_x38Nl.js} +3 -3
- package/dist/docs/assets/{reference_channels.md.DQZjCnyh.js → reference_channels.md.Cd2f2iyV.js} +2 -2
- package/dist/docs/assets/{reference_channels.md.DQZjCnyh.lean.js → reference_channels.md.Cd2f2iyV.lean.js} +1 -1
- package/dist/docs/assets/{reference_cli.md.B7GkAJRC.js → reference_cli.md.Cw6_ICYG.js} +10 -11
- package/dist/docs/assets/{reference_cli.md.B7GkAJRC.lean.js → reference_cli.md.Cw6_ICYG.lean.js} +1 -1
- package/dist/docs/assets/{reference_connections.md.DYidrb-j.js → reference_connections.md.BH8Oc0D0.js} +7 -7
- package/dist/docs/assets/{reference_connections.md.DYidrb-j.lean.js → reference_connections.md.BH8Oc0D0.lean.js} +1 -1
- package/dist/docs/assets/reference_hooks.md.a8BJxMR5.js +14 -0
- package/dist/docs/assets/{reference_hooks.md.B9FSgdDe.lean.js → reference_hooks.md.a8BJxMR5.lean.js} +1 -1
- package/dist/docs/assets/reference_http-api.md.D89k1mdm.js +11 -0
- package/dist/docs/assets/reference_http-api.md.D89k1mdm.lean.js +1 -0
- package/dist/docs/assets/{reference_instructions.md.DhNCOl7r.js → reference_instructions.md.CR7XSsGk.js} +3 -3
- package/dist/docs/assets/{reference_instructions.md.DhNCOl7r.lean.js → reference_instructions.md.CR7XSsGk.lean.js} +1 -1
- package/dist/docs/assets/reference_playground.md.DnX5nL-B.js +1 -0
- package/dist/docs/assets/reference_playground.md.DnX5nL-B.lean.js +1 -0
- package/dist/docs/assets/reference_project-layout.md.Bv4KOtlB.js +19 -0
- package/dist/docs/assets/{reference_prompt.md.DZUMtLPD.js → reference_prompt.md.DnaD5dNK.js} +1 -1
- package/dist/docs/assets/{reference_schedules.md.DNipebiG.js → reference_schedules.md.DI_JrHgq.js} +1 -1
- package/dist/docs/assets/reference_sessions.md.D0mIh4KK.js +1 -0
- package/dist/docs/assets/{reference_sessions.md.tUFzz98S.lean.js → reference_sessions.md.D0mIh4KK.lean.js} +1 -1
- package/dist/docs/assets/{reference_skills.md.B5ZEuHfG.js → reference_skills.md.8son6Hjm.js} +4 -4
- package/dist/docs/assets/{reference_subagents.md.Xoav0AII.js → reference_subagents.md.CfsIloPm.js} +1 -1
- package/dist/docs/assets/{reference_tools.md.wpaJtHn6.js → reference_tools.md.BHeXn2id.js} +3 -3
- package/dist/docs/assets/{reference_tools.md.wpaJtHn6.lean.js → reference_tools.md.BHeXn2id.lean.js} +1 -1
- package/dist/docs/assets/scaffolding-agents.md.D7UUkWw0.js +1 -0
- package/dist/docs/assets/{scaffolding-agents.md.CRDDUtYJ.lean.js → scaffolding-agents.md.D7UUkWw0.lean.js} +1 -1
- package/dist/docs/assets/{storage.md.JbjlHWZ6.js → storage.md.BOHeqk2M.js} +5 -5
- package/dist/docs/assets/{storage.md.JbjlHWZ6.lean.js → storage.md.BOHeqk2M.lean.js} +1 -1
- package/dist/docs/assets/{templates_agentic-owners.md.DSJSIpWU.js → templates_agentic-owners.md.DqtPdm6f.js} +2 -2
- package/dist/docs/assets/{templates_pr-autofixer.md.1HAR3RXE.js → templates_pr-autofixer.md.DU7dQpor.js} +2 -2
- package/dist/docs/assets/{templates_pr-autofixer.md.1HAR3RXE.lean.js → templates_pr-autofixer.md.DU7dQpor.lean.js} +1 -1
- package/dist/docs/assets/{templates_security-reviewer.md.ByFyRta2.js → templates_security-reviewer.md.CTa7u_l1.js} +2 -2
- package/dist/docs/assets/{templates_security-reviewer.md.ByFyRta2.lean.js → templates_security-reviewer.md.CTa7u_l1.lean.js} +1 -1
- package/dist/docs/assets/troubleshooting.md.Ctv3T8C2.js +1 -0
- package/dist/docs/assets/{troubleshooting.md.DYECCZiJ.lean.js → troubleshooting.md.Ctv3T8C2.lean.js} +1 -1
- package/dist/docs/building-with-agents.html +7 -7
- package/dist/docs/building-with-agents.md +5 -11
- package/dist/docs/concepts.html +5 -8
- package/dist/docs/concepts.md +13 -17
- package/dist/docs/deployment.html +13 -18
- package/dist/docs/deployment.md +9 -30
- package/dist/docs/design/agsh.md +406 -0
- package/dist/docs/evals.html +10 -10
- package/dist/docs/evals.md +16 -37
- package/dist/docs/guides/agent-to-agent.html +6 -6
- package/dist/docs/guides/agent-to-agent.md +3 -3
- package/dist/docs/guides/cloud-runtime.html +6 -6
- package/dist/docs/guides/cloud-runtime.md +9 -25
- package/dist/docs/guides/convert-automation.html +7 -7
- package/dist/docs/guides/convert-automation.md +4 -4
- package/dist/docs/guides/github.html +9 -9
- package/dist/docs/guides/github.md +16 -28
- package/dist/docs/guides/human-in-the-loop.html +4 -4
- package/dist/docs/guides/mcp-oauth.html +11 -13
- package/dist/docs/guides/mcp-oauth.md +14 -22
- package/dist/docs/guides/opentelemetry.html +5 -5
- package/dist/docs/guides/slack.html +11 -17
- package/dist/docs/guides/slack.md +13 -50
- package/dist/docs/guides/webhooks.html +6 -6
- package/dist/docs/guides/webhooks.md +3 -3
- package/dist/docs/hashmap.json +1 -1
- package/dist/docs/hillclimbing.html +6 -6
- package/dist/docs/hillclimbing.md +1 -1
- package/dist/docs/index.html +6 -6
- package/dist/docs/index.md +0 -36
- package/dist/docs/llms-full.txt +965 -3633
- package/dist/docs/llms.txt +3 -18
- package/dist/docs/quickstart.html +6 -6
- package/dist/docs/quickstart.md +3 -4
- package/dist/docs/reference/agent-config.html +8 -8
- package/dist/docs/reference/agent-config.md +10 -15
- package/dist/docs/reference/artifacts.html +4 -4
- package/dist/docs/reference/channels.html +6 -6
- package/dist/docs/reference/channels.md +20 -31
- package/dist/docs/reference/cli.html +14 -15
- package/dist/docs/reference/cli.md +29 -38
- package/dist/docs/reference/connections.html +11 -11
- package/dist/docs/reference/connections.md +24 -25
- package/dist/docs/reference/hooks.html +6 -6
- package/dist/docs/reference/hooks.md +12 -17
- package/dist/docs/reference/http-api.html +7 -7
- package/dist/docs/reference/http-api.md +25 -37
- package/dist/docs/reference/instructions.html +6 -6
- package/dist/docs/reference/instructions.md +1 -1
- package/dist/docs/reference/playground.html +5 -5
- package/dist/docs/reference/playground.md +14 -19
- package/dist/docs/reference/project-layout.html +9 -7
- package/dist/docs/reference/project-layout.md +7 -3
- package/dist/docs/reference/prompt.html +6 -6
- package/dist/docs/reference/prompt.md +1 -1
- package/dist/docs/reference/schedules.html +6 -6
- package/dist/docs/reference/schedules.md +1 -2
- package/dist/docs/reference/sessions.html +5 -12
- package/dist/docs/reference/sessions.md +8 -19
- package/dist/docs/reference/skills.html +8 -8
- package/dist/docs/reference/skills.md +3 -3
- package/dist/docs/reference/subagents.html +6 -6
- package/dist/docs/reference/subagents.md +2 -2
- package/dist/docs/reference/tools.html +8 -8
- package/dist/docs/reference/tools.md +30 -19
- package/dist/docs/scaffolding-agents.html +5 -5
- package/dist/docs/scaffolding-agents.md +4 -5
- package/dist/docs/storage.html +9 -9
- package/dist/docs/storage.md +37 -80
- package/dist/docs/templates/agentic-owners.html +7 -7
- package/dist/docs/templates/agentic-owners.md +2 -2
- package/dist/docs/templates/demo.html +4 -4
- package/dist/docs/templates/pr-autofixer.html +6 -6
- package/dist/docs/templates/pr-autofixer.md +7 -9
- package/dist/docs/templates/security-reviewer.html +5 -5
- package/dist/docs/templates/security-reviewer.md +2 -3
- package/dist/docs/templates/triage.html +4 -4
- package/dist/docs/troubleshooting.html +5 -5
- package/dist/docs/troubleshooting.md +8 -8
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/internal/advertise-tools.d.ts +11 -0
- package/dist/internal/advertise-tools.d.ts.map +1 -1
- package/dist/internal/advertise-tools.js +47 -9
- package/dist/internal/authored-alias-hooks.d.ts +14 -11
- package/dist/internal/authored-alias-hooks.d.ts.map +1 -1
- package/dist/internal/authored-alias-hooks.js +14 -11
- package/dist/internal/authored-loaders.d.ts +7 -6
- package/dist/internal/authored-loaders.d.ts.map +1 -1
- package/dist/internal/authored-loaders.js +14 -10
- package/dist/internal/cli-deploy.d.ts +1 -1
- package/dist/internal/cli-deploy.js +5 -5
- package/dist/internal/cli-mcp-oauth.d.ts.map +1 -1
- package/dist/internal/cli-mcp-oauth.js +7 -4
- package/dist/internal/continuation-channel.d.ts +6 -3
- package/dist/internal/continuation-channel.d.ts.map +1 -1
- package/dist/internal/continuation-channel.js +44 -40
- package/dist/internal/continuation-identity.d.ts +17 -16
- package/dist/internal/continuation-identity.d.ts.map +1 -1
- package/dist/internal/continuation-identity.js +109 -36
- package/dist/internal/convert-automation/convert-workflow.d.ts.map +1 -1
- package/dist/internal/convert-automation/convert-workflow.js +26 -15
- package/dist/internal/convert-automation/slug.d.ts +0 -2
- package/dist/internal/convert-automation/slug.d.ts.map +1 -1
- package/dist/internal/convert-automation/slug.js +0 -8
- package/dist/internal/cursor/account-mcp.d.ts.map +1 -1
- package/dist/internal/cursor/account-mcp.js +5 -1
- package/dist/internal/deploy-manifest.d.ts +2 -2
- package/dist/internal/deploy-manifest.d.ts.map +1 -1
- package/dist/internal/deploy-manifest.js +4 -9
- package/dist/internal/discovery.d.ts.map +1 -1
- package/dist/internal/discovery.js +91 -13
- package/dist/internal/distribution.d.ts +4 -3
- package/dist/internal/distribution.d.ts.map +1 -1
- package/dist/internal/distribution.js +4 -3
- package/dist/internal/hosted-delivery-protocol.d.ts +38 -0
- package/dist/internal/hosted-delivery-protocol.d.ts.map +1 -0
- package/dist/internal/hosted-delivery-protocol.js +70 -0
- package/dist/internal/hosted-delivery.d.ts +35 -0
- package/dist/internal/hosted-delivery.d.ts.map +1 -0
- package/dist/internal/hosted-delivery.js +239 -0
- package/dist/internal/http-channel.d.ts.map +1 -1
- package/dist/internal/http-channel.js +1 -1
- package/dist/internal/mcp-endpoint.js +3 -3
- package/dist/internal/mcp-host.d.ts +8 -7
- package/dist/internal/mcp-host.d.ts.map +1 -1
- package/dist/internal/mcp-host.js +8 -7
- package/dist/internal/peer-connections.d.ts.map +1 -1
- package/dist/internal/peer-connections.js +5 -1
- package/dist/internal/playground/static.d.ts +0 -3
- package/dist/internal/playground/static.d.ts.map +1 -1
- package/dist/internal/resolved-connections.d.ts.map +1 -1
- package/dist/internal/resolved-connections.js +5 -7
- package/dist/internal/review-comments.d.ts +186 -63
- package/dist/internal/review-comments.d.ts.map +1 -1
- package/dist/internal/review-comments.js +350 -168
- package/dist/internal/server.d.ts.map +1 -1
- package/dist/internal/server.js +134 -175
- package/dist/internal/session-engine.d.ts +50 -10
- package/dist/internal/session-engine.d.ts.map +1 -1
- package/dist/internal/session-engine.js +221 -68
- package/dist/internal/shallow-clone.d.ts +8 -2
- package/dist/internal/shallow-clone.d.ts.map +1 -1
- package/dist/internal/shallow-clone.js +17 -10
- package/dist/internal/tool-catalog.d.ts +31 -0
- package/dist/internal/tool-catalog.d.ts.map +1 -0
- package/dist/internal/tool-catalog.js +67 -0
- package/dist/playground/assets/{index-DDvyC2z6.js → index-B3JCyigB.js} +2 -2
- package/dist/playground/index.html +1 -1
- package/dist/types.d.ts +81 -40
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +19 -0
- package/docs/README.md +0 -36
- package/docs/ab.md +7 -13
- package/docs/building-with-agents.md +5 -11
- package/docs/concepts.md +13 -17
- package/docs/deployment.md +9 -30
- package/docs/design/agsh.md +406 -0
- package/docs/evals.md +16 -37
- package/docs/guides/agent-to-agent.md +3 -3
- package/docs/guides/cloud-runtime.md +9 -25
- package/docs/guides/convert-automation.md +4 -4
- package/docs/guides/github.md +16 -28
- package/docs/guides/mcp-oauth.md +14 -22
- package/docs/guides/slack.md +14 -51
- package/docs/guides/webhooks.md +3 -3
- package/docs/hillclimbing.md +1 -1
- package/docs/quickstart.md +3 -4
- package/docs/reference/agent-config.md +10 -15
- package/docs/reference/channels.md +20 -31
- package/docs/reference/cli.md +29 -38
- package/docs/reference/connections.md +24 -25
- package/docs/reference/hooks.md +12 -17
- package/docs/reference/http-api.md +26 -38
- package/docs/reference/instructions.md +1 -1
- package/docs/reference/playground.md +14 -19
- package/docs/reference/project-layout.md +7 -3
- package/docs/reference/prompt.md +1 -1
- package/docs/reference/schedules.md +1 -2
- package/docs/reference/sessions.md +8 -19
- package/docs/reference/skills.md +3 -3
- package/docs/reference/subagents.md +2 -2
- package/docs/reference/tools.md +30 -19
- package/docs/scaffolding-agents.md +4 -5
- package/docs/storage.md +37 -80
- package/docs/templates/agentic-owners.md +2 -2
- package/docs/templates/pr-autofixer.md +7 -9
- package/docs/templates/security-reviewer.md +2 -3
- package/docs/troubleshooting.md +8 -8
- package/package.json +16 -2
- package/skills/create-agent/SKILL.md +6 -13
- package/skills/debug/SKILL.md +2 -4
- package/skills/evals/SKILL.md +1 -1
- package/skills/framework-map/SKILL.md +3 -2
- package/skills/mcp-auth/SKILL.md +10 -13
- package/skills/setup-slack/SKILL.md +21 -137
- package/src/channels/deployments/deployments-channel.ts +32 -2
- package/src/channels/deployments/types.ts +8 -0
- package/src/channels/github/github-channel.ts +71 -21
- package/src/channels/slack/attachments.ts +2 -2
- package/src/channels/slack/dispatch.ts +2 -16
- package/src/channels/slack/eval-directive.ts +8 -27
- package/src/channels/slack/index.ts +0 -6
- package/src/channels/slack/setup.ts +8 -15
- package/src/channels/slack/slack-channel.ts +14 -125
- package/src/channels/slack/types.ts +12 -96
- package/src/client.ts +23 -0
- package/src/connections.ts +20 -7
- package/src/continuation.ts +1 -1
- package/src/index.ts +2 -0
- package/src/internal/advertise-tools.ts +45 -7
- package/src/internal/authored-alias-hooks.ts +14 -11
- package/src/internal/authored-loaders.ts +14 -10
- package/src/internal/cli-deploy.ts +5 -5
- package/src/internal/cli-mcp-oauth.ts +6 -4
- package/src/internal/continuation-channel.ts +62 -45
- package/src/internal/continuation-identity.ts +123 -38
- package/src/internal/convert-automation/convert-workflow.ts +29 -17
- package/src/internal/convert-automation/slug.ts +0 -9
- package/src/internal/cursor/account-mcp.ts +4 -1
- package/src/internal/deploy-manifest.ts +5 -9
- package/src/internal/discovery.ts +107 -13
- package/src/internal/distribution.ts +4 -3
- package/src/internal/fixtures/units-server.ts +52 -0
- package/src/internal/hosted-delivery-protocol.ts +114 -0
- package/src/internal/hosted-delivery.ts +359 -0
- package/src/internal/http-channel.ts +0 -2
- package/src/internal/mcp-endpoint.ts +3 -3
- package/src/internal/mcp-host.ts +8 -7
- package/src/internal/peer-connections.ts +4 -1
- package/src/internal/playground/static.ts +1 -3
- package/src/internal/resolved-connections.ts +8 -10
- package/src/internal/review-comments.ts +542 -229
- package/src/internal/server.ts +180 -253
- package/src/internal/session-engine.ts +279 -70
- package/src/internal/shallow-clone.ts +30 -16
- package/src/internal/tool-catalog.ts +106 -0
- package/src/types.ts +99 -40
- package/templates/pr-autofixer/agent/channels/slack.ts +8 -2
- package/templates/triage/README.md +2 -1
- package/templates/triage/overlays/jira/agent/mcp-connections/tracker.ts +0 -1
- package/templates/triage/overlays/linear/agent/mcp-connections/tracker.ts +0 -1
- package/dist/channels/slack/cursor-account.d.ts +0 -87
- package/dist/channels/slack/cursor-account.d.ts.map +0 -1
- package/dist/channels/slack/cursor-account.js +0 -100
- package/dist/docs/assets/building-with-agents.md.DH8A_cHA.js +0 -13
- package/dist/docs/assets/chunks/@localSearchIndexroot.Dv-Q0XtU.js +0 -1
- package/dist/docs/assets/concepts.md.CRfU3bVg.js +0 -4
- package/dist/docs/assets/example-agents_approval-buddy.md.DNL83puR.js +0 -10
- package/dist/docs/assets/example-agents_approval-buddy.md.DNL83puR.lean.js +0 -1
- package/dist/docs/assets/example-agents_benny.md.C40vHRLc.js +0 -7
- package/dist/docs/assets/example-agents_benny.md.C40vHRLc.lean.js +0 -1
- package/dist/docs/assets/example-agents_bugbot.md.BRGMi9O2.js +0 -11
- package/dist/docs/assets/example-agents_bugbot.md.BRGMi9O2.lean.js +0 -1
- package/dist/docs/assets/example-agents_codebase-wiki.md.Dftj_tPp.js +0 -8
- package/dist/docs/assets/example-agents_codebase-wiki.md.Dftj_tPp.lean.js +0 -1
- package/dist/docs/assets/example-agents_codeowners-review.md.Bfta-lBU.js +0 -8
- package/dist/docs/assets/example-agents_codeowners-review.md.Bfta-lBU.lean.js +0 -1
- package/dist/docs/assets/example-agents_concierge.md.MrKpQndp.js +0 -23
- package/dist/docs/assets/example-agents_concierge.md.MrKpQndp.lean.js +0 -1
- package/dist/docs/assets/example-agents_fsd.md.ZWHWWZPE.js +0 -15
- package/dist/docs/assets/example-agents_fsd.md.ZWHWWZPE.lean.js +0 -1
- package/dist/docs/assets/example-agents_index.md.QZ8mhr6n.js +0 -2
- package/dist/docs/assets/example-agents_index.md.QZ8mhr6n.lean.js +0 -1
- package/dist/docs/assets/example-agents_knowledge-base.md.DqKqHQ9u.js +0 -11
- package/dist/docs/assets/example-agents_knowledge-base.md.DqKqHQ9u.lean.js +0 -1
- package/dist/docs/assets/example-agents_oncall.md.DK4XkYTd.js +0 -10
- package/dist/docs/assets/example-agents_oncall.md.DK4XkYTd.lean.js +0 -1
- package/dist/docs/assets/example-agents_security-reviewer.md.Bai6D0Ee.js +0 -19
- package/dist/docs/assets/example-agents_security-reviewer.md.Bai6D0Ee.lean.js +0 -1
- package/dist/docs/assets/example-agents_slack-agent.md.D7Kdj5BV.js +0 -5
- package/dist/docs/assets/example-agents_slack-agent.md.D7Kdj5BV.lean.js +0 -1
- package/dist/docs/assets/example-agents_weather-agent.md.lVEAbWFf.js +0 -25
- package/dist/docs/assets/example-agents_weather-agent.md.lVEAbWFf.lean.js +0 -1
- package/dist/docs/assets/guides_cloud-runtime.md.BSMLIBHr.js +0 -9
- package/dist/docs/assets/guides_cloud-runtime.md.BSMLIBHr.lean.js +0 -1
- package/dist/docs/assets/guides_slack.md.DiUmk_Oi.lean.js +0 -1
- package/dist/docs/assets/index.md.BAaMXLFd.js +0 -5
- package/dist/docs/assets/reference_hooks.md.B9FSgdDe.js +0 -14
- package/dist/docs/assets/reference_http-api.md.CSHVobzG.js +0 -11
- package/dist/docs/assets/reference_http-api.md.CSHVobzG.lean.js +0 -1
- package/dist/docs/assets/reference_playground.md.Dfb92yQf.js +0 -1
- package/dist/docs/assets/reference_playground.md.Dfb92yQf.lean.js +0 -1
- package/dist/docs/assets/reference_project-layout.md.CwkSbEWT.js +0 -17
- package/dist/docs/assets/reference_sessions.md.tUFzz98S.js +0 -8
- package/dist/docs/assets/scaffolding-agents.md.CRDDUtYJ.js +0 -1
- package/dist/docs/assets/troubleshooting.md.DYECCZiJ.js +0 -1
- package/dist/docs/example-agents/approval-buddy.html +0 -36
- package/dist/docs/example-agents/approval-buddy.md +0 -266
- package/dist/docs/example-agents/benny.html +0 -33
- package/dist/docs/example-agents/benny.md +0 -182
- package/dist/docs/example-agents/bugbot.html +0 -37
- package/dist/docs/example-agents/bugbot.md +0 -229
- package/dist/docs/example-agents/codebase-wiki.html +0 -34
- package/dist/docs/example-agents/codebase-wiki.md +0 -170
- package/dist/docs/example-agents/codeowners-review.html +0 -34
- package/dist/docs/example-agents/codeowners-review.md +0 -192
- package/dist/docs/example-agents/concierge.html +0 -49
- package/dist/docs/example-agents/concierge.md +0 -201
- package/dist/docs/example-agents/fsd.html +0 -41
- package/dist/docs/example-agents/fsd.md +0 -329
- package/dist/docs/example-agents/index.html +0 -28
- package/dist/docs/example-agents/index.md +0 -102
- package/dist/docs/example-agents/knowledge-base.html +0 -37
- package/dist/docs/example-agents/knowledge-base.md +0 -168
- package/dist/docs/example-agents/oncall.html +0 -36
- package/dist/docs/example-agents/oncall.md +0 -212
- package/dist/docs/example-agents/security-reviewer.html +0 -45
- package/dist/docs/example-agents/security-reviewer.md +0 -265
- package/dist/docs/example-agents/slack-agent.html +0 -31
- package/dist/docs/example-agents/slack-agent.md +0 -142
- package/dist/docs/example-agents/weather-agent.html +0 -51
- package/dist/docs/example-agents/weather-agent.md +0 -296
- package/dist/internal/cursor-slack-relay.d.ts +0 -96
- package/dist/internal/cursor-slack-relay.d.ts.map +0 -1
- package/dist/internal/cursor-slack-relay.js +0 -176
- package/docs/example-agents/approval-buddy.md +0 -271
- package/docs/example-agents/benny.md +0 -187
- package/docs/example-agents/bugbot.md +0 -234
- package/docs/example-agents/codebase-wiki.md +0 -175
- package/docs/example-agents/codeowners-review.md +0 -197
- package/docs/example-agents/concierge.md +0 -206
- package/docs/example-agents/fsd.md +0 -334
- package/docs/example-agents/index.md +0 -107
- package/docs/example-agents/knowledge-base.md +0 -173
- package/docs/example-agents/oncall.md +0 -217
- package/docs/example-agents/security-reviewer.md +0 -270
- package/docs/example-agents/slack-agent.md +0 -147
- package/docs/example-agents/weather-agent.md +0 -301
- package/src/channels/slack/cursor-account.ts +0 -202
- package/src/internal/cursor-slack-relay.ts +0 -249
- /package/dist/docs/assets/{guides_agent-to-agent.md.BCeVdJRJ.lean.js → guides_agent-to-agent.md.BDb0t1QV.lean.js} +0 -0
- /package/dist/docs/assets/{guides_convert-automation.md.D06eIzea.lean.js → guides_convert-automation.md.B4sjlodG.lean.js} +0 -0
- /package/dist/docs/assets/{guides_webhooks.md.BpnIdO0i.lean.js → guides_webhooks.md.DKdA43Qm.lean.js} +0 -0
- /package/dist/docs/assets/{hillclimbing.md.ywF3yDAd.lean.js → hillclimbing.md.DhESf3OO.lean.js} +0 -0
- /package/dist/docs/assets/{quickstart.md.DsrarzEg.lean.js → quickstart.md.Nj_LjW_a.lean.js} +0 -0
- /package/dist/docs/assets/{reference_agent-config.md.Bqylgw50.lean.js → reference_agent-config.md.Cp_x38Nl.lean.js} +0 -0
- /package/dist/docs/assets/{reference_project-layout.md.CwkSbEWT.lean.js → reference_project-layout.md.Bv4KOtlB.lean.js} +0 -0
- /package/dist/docs/assets/{reference_prompt.md.DZUMtLPD.lean.js → reference_prompt.md.DnaD5dNK.lean.js} +0 -0
- /package/dist/docs/assets/{reference_schedules.md.DNipebiG.lean.js → reference_schedules.md.DI_JrHgq.lean.js} +0 -0
- /package/dist/docs/assets/{reference_skills.md.B5ZEuHfG.lean.js → reference_skills.md.8son6Hjm.lean.js} +0 -0
- /package/dist/docs/assets/{reference_subagents.md.Xoav0AII.lean.js → reference_subagents.md.CfsIloPm.lean.js} +0 -0
- /package/dist/docs/assets/{templates_agentic-owners.md.DSJSIpWU.lean.js → templates_agentic-owners.md.DqtPdm6f.lean.js} +0 -0
|
@@ -2,14 +2,16 @@
|
|
|
2
2
|
* Continuation identity is a closed selector string. Omitted `continuation`
|
|
3
3
|
* on a channel constructor stays `/v1` (engine pack minting) so existing
|
|
4
4
|
* agents do not change: `githubChannel()` → `github.pr/v1`, `slackChannel()`
|
|
5
|
-
* → `slack.thread/v1`, `originChannel()` → `origin.pr/v1`,
|
|
6
|
-
* → `none/v1
|
|
5
|
+
* → `slack.thread/v1`, `originChannel()` → `origin.pr/v1`,
|
|
6
|
+
* `deploymentsChannel()` → `deployments.none/v1`, `httpChannel()` →
|
|
7
|
+
* `none/v1`.
|
|
7
8
|
*
|
|
8
9
|
* Opt the whole agent into the v2 control plane with
|
|
9
10
|
* `defineAgent({ architecture: "v2" })`. That stamps `/v2` defaults from
|
|
10
11
|
* the channel kind and declared events (`github.pr/v2`, `github.issue/v2`,
|
|
11
|
-
* `github.none/v2`, `slack.thread/v2`,
|
|
12
|
-
*
|
|
12
|
+
* `github.none/v2`, `slack.thread/v2`, `origin.pr/v2`,
|
|
13
|
+
* `deployments.deployment/v2`, …) onto every channel that omitted a
|
|
14
|
+
* selector. An explicit per-channel selector still overrides. JSONPath
|
|
13
15
|
* and per-agent format strings are rejected.
|
|
14
16
|
*/
|
|
15
17
|
import { randomBytes } from "node:crypto";
|
|
@@ -25,6 +27,9 @@ export const CONTINUATION_SELECTORS = [
|
|
|
25
27
|
"origin.pr/v1",
|
|
26
28
|
"origin.pr/v2",
|
|
27
29
|
"origin.none/v2",
|
|
30
|
+
"deployments.none/v1",
|
|
31
|
+
"deployments.none/v2",
|
|
32
|
+
"deployments.deployment/v2",
|
|
28
33
|
"none/v1",
|
|
29
34
|
"none/v2",
|
|
30
35
|
];
|
|
@@ -69,6 +74,12 @@ export const BUILTINS = [
|
|
|
69
74
|
],
|
|
70
75
|
format: "origin-pr:{fullName}#{number}",
|
|
71
76
|
},
|
|
77
|
+
{
|
|
78
|
+
type: "deployment",
|
|
79
|
+
kind: "deployments",
|
|
80
|
+
events: ["deployment.created", "deployment.succeeded"],
|
|
81
|
+
format: "deployments:{deploymentId}",
|
|
82
|
+
},
|
|
72
83
|
];
|
|
73
84
|
export class V2EngineError extends Error {
|
|
74
85
|
constructor(message) {
|
|
@@ -88,6 +99,13 @@ const SELECTOR_FIELDS = {
|
|
|
88
99
|
"origin.pr/v1": { version: 1, type: "origin-pr", kind: "origin" },
|
|
89
100
|
"origin.pr/v2": { version: 2, type: "origin-pr", kind: "origin" },
|
|
90
101
|
"origin.none/v2": { version: 2, type: "none", kind: "origin" },
|
|
102
|
+
"deployments.none/v1": { version: 1, type: "none", kind: "deployments" },
|
|
103
|
+
"deployments.none/v2": { version: 2, type: "none", kind: "deployments" },
|
|
104
|
+
"deployments.deployment/v2": {
|
|
105
|
+
version: 2,
|
|
106
|
+
type: "deployment",
|
|
107
|
+
kind: "deployments",
|
|
108
|
+
},
|
|
91
109
|
"none/v1": { version: 1, type: "none", kind: "http" },
|
|
92
110
|
"none/v2": { version: 2, type: "none", kind: "http" },
|
|
93
111
|
};
|
|
@@ -103,6 +121,8 @@ export function defaultContinuationSelector(kind, version = "v1", eventTypes) {
|
|
|
103
121
|
return "slack.thread/v1";
|
|
104
122
|
case "origin":
|
|
105
123
|
return "origin.pr/v1";
|
|
124
|
+
case "deployments":
|
|
125
|
+
return "deployments.none/v1";
|
|
106
126
|
default:
|
|
107
127
|
return "none/v1";
|
|
108
128
|
}
|
|
@@ -114,6 +134,8 @@ export function defaultContinuationSelector(kind, version = "v1", eventTypes) {
|
|
|
114
134
|
return "slack.thread/v2";
|
|
115
135
|
case "origin":
|
|
116
136
|
return originV2Default(eventTypes);
|
|
137
|
+
case "deployments":
|
|
138
|
+
return deploymentsV2Default(eventTypes);
|
|
117
139
|
default:
|
|
118
140
|
return "none/v2";
|
|
119
141
|
}
|
|
@@ -142,6 +164,16 @@ function originV2Default(eventTypes) {
|
|
|
142
164
|
}
|
|
143
165
|
return "origin.pr/v2";
|
|
144
166
|
}
|
|
167
|
+
function deploymentsV2Default(eventTypes) {
|
|
168
|
+
var _a;
|
|
169
|
+
var _b;
|
|
170
|
+
const events = eventTypes !== null && eventTypes !== void 0 ? eventTypes : [];
|
|
171
|
+
const deploymentEvents = new Set((_b = (_a = builtinForType("deployment")) === null || _a === void 0 ? void 0 : _a.events) !== null && _b !== void 0 ? _b : []);
|
|
172
|
+
if (events.some((event) => !deploymentEvents.has(event))) {
|
|
173
|
+
return "deployments.none/v2";
|
|
174
|
+
}
|
|
175
|
+
return "deployments.deployment/v2";
|
|
176
|
+
}
|
|
145
177
|
export function parseContinuationSelector(selector) {
|
|
146
178
|
if (!isContinuationSelector(selector)) {
|
|
147
179
|
return undefined;
|
|
@@ -183,26 +215,45 @@ export function formatConversationKey(type, fields) {
|
|
|
183
215
|
return `origin-pr:${fields.fullName}#${fields.number}`;
|
|
184
216
|
case "thread":
|
|
185
217
|
return `${fields.channelId}:${fields.threadTs}`;
|
|
218
|
+
case "deployment":
|
|
219
|
+
return `deployments:${fields.deploymentId}`;
|
|
186
220
|
}
|
|
187
221
|
}
|
|
188
222
|
export function mintClaim(claim) {
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
223
|
+
switch (claim.type) {
|
|
224
|
+
case "thread": {
|
|
225
|
+
const resource = claim.resource;
|
|
226
|
+
if (!("channelId" in resource && "threadTs" in resource)) {
|
|
227
|
+
throw new V2EngineError("v2: thread claim requires channelId and threadTs");
|
|
228
|
+
}
|
|
229
|
+
return `cont:${formatConversationKey("thread", resource)}`;
|
|
230
|
+
}
|
|
231
|
+
case "deployment": {
|
|
232
|
+
const resource = claim.resource;
|
|
233
|
+
if (!("deploymentId" in resource)) {
|
|
234
|
+
throw new V2EngineError("v2: deployment claim requires deploymentId");
|
|
235
|
+
}
|
|
236
|
+
return `cont:${formatConversationKey("deployment", resource)}`;
|
|
237
|
+
}
|
|
238
|
+
case "pr":
|
|
239
|
+
case "issue":
|
|
240
|
+
case "origin-pr": {
|
|
241
|
+
const resource = claim.resource;
|
|
242
|
+
const fullName = "fullName" in resource
|
|
243
|
+
? resource.fullName
|
|
244
|
+
: "owner" in resource
|
|
245
|
+
? `${resource.owner}/${resource.repo}`
|
|
246
|
+
: undefined;
|
|
247
|
+
const number = "number" in resource ? resource.number : undefined;
|
|
248
|
+
if (fullName === undefined || number === undefined) {
|
|
249
|
+
throw new V2EngineError(`v2: ${claim.type} claim requires repository and number`);
|
|
250
|
+
}
|
|
251
|
+
return `cont:${formatConversationKey(claim.type, {
|
|
252
|
+
fullName,
|
|
253
|
+
number,
|
|
254
|
+
})}`;
|
|
193
255
|
}
|
|
194
|
-
return `cont:${formatConversationKey("thread", resource)}`;
|
|
195
|
-
}
|
|
196
|
-
const fullName = "fullName" in resource
|
|
197
|
-
? resource.fullName
|
|
198
|
-
: `${resource.owner}/${resource.repo}`;
|
|
199
|
-
if (claim.type === "thread") {
|
|
200
|
-
throw new V2EngineError("v2: thread claim requires channelId and threadTs");
|
|
201
256
|
}
|
|
202
|
-
return `cont:${formatConversationKey(claim.type, {
|
|
203
|
-
fullName,
|
|
204
|
-
number: resource.number,
|
|
205
|
-
})}`;
|
|
206
257
|
}
|
|
207
258
|
export function handshakeContinuation(input) {
|
|
208
259
|
var _a;
|
|
@@ -266,17 +317,15 @@ export function extractContinuation(type, eventName, payload) {
|
|
|
266
317
|
return extractSlack(payload);
|
|
267
318
|
case "origin-pr":
|
|
268
319
|
return extractOrigin(payload);
|
|
320
|
+
case "deployment":
|
|
321
|
+
return extractDeployment(payload);
|
|
269
322
|
}
|
|
270
323
|
}
|
|
271
324
|
/**
|
|
272
|
-
*
|
|
273
|
-
* `
|
|
274
|
-
*
|
|
275
|
-
|
|
276
|
-
/**
|
|
277
|
-
* Extract primitive used by the control plane (hosted
|
|
278
|
-
* `routeVerifiedIngressContinuation` and local
|
|
279
|
-
* `routeLocalIngressContinuation`). Channel adapters must not call this.
|
|
325
|
+
* CP mailbox stamp. Hosted `routeVerifiedIngressContinuation` and local
|
|
326
|
+
* `routeLocalIngressContinuation` call this; channel adapters must not.
|
|
327
|
+
* Membership miss or missing identity fields stamp `evt:` instead of
|
|
328
|
+
* joining the conversation index.
|
|
280
329
|
*/
|
|
281
330
|
export function stampMailboxContinuation(identity, eventName, payload, kind) {
|
|
282
331
|
const parsed = resolveContinuation(identity, kind);
|
|
@@ -393,33 +442,57 @@ function extractSlack(payload) {
|
|
|
393
442
|
return `cont:${formatConversationKey("thread", { channelId, threadTs })}`;
|
|
394
443
|
}
|
|
395
444
|
function extractOrigin(payload) {
|
|
396
|
-
var _a, _b
|
|
397
|
-
var
|
|
398
|
-
const record =
|
|
445
|
+
var _a, _b;
|
|
446
|
+
var _c, _d, _e, _f;
|
|
447
|
+
const record = originExtractRecord(payload);
|
|
399
448
|
if (record === undefined) {
|
|
400
449
|
return undefined;
|
|
401
450
|
}
|
|
402
|
-
const inner = (
|
|
451
|
+
const inner = (_c = asRecord(record.pullRequest)) !== null && _c !== void 0 ? _c : asRecord(record.pull_request);
|
|
403
452
|
const number = positiveInt(inner === null || inner === void 0 ? void 0 : inner.number);
|
|
404
|
-
const repository = (
|
|
405
|
-
const fullName = (
|
|
453
|
+
const repository = (_d = asRecord(record.repository)) !== null && _d !== void 0 ? _d : asRecord(inner === null || inner === void 0 ? void 0 : inner.repository);
|
|
454
|
+
const fullName = (_f = (_e = nonEmpty((_a = asRecord(repository)) === null || _a === void 0 ? void 0 : _a.fullName)) !== null && _e !== void 0 ? _e : nonEmpty((_b = asRecord(repository)) === null || _b === void 0 ? void 0 : _b.full_name)) !== null && _f !== void 0 ? _f : originFullName(repository);
|
|
406
455
|
if (number === undefined || fullName === undefined) {
|
|
407
456
|
return undefined;
|
|
408
457
|
}
|
|
409
458
|
return `cont:${formatConversationKey("origin-pr", { fullName, number })}`;
|
|
410
459
|
}
|
|
460
|
+
/**
|
|
461
|
+
* Mailbox stores the Origin delivery envelope; local/hosted CP extract
|
|
462
|
+
* also accepts the compact `{ pullRequest, repository }` shape.
|
|
463
|
+
*/
|
|
464
|
+
function originExtractRecord(payload) {
|
|
465
|
+
var _a;
|
|
466
|
+
const record = asRecord(payload);
|
|
467
|
+
if (record === undefined) {
|
|
468
|
+
return undefined;
|
|
469
|
+
}
|
|
470
|
+
const nested = asRecord((_a = asRecord(record.event)) === null || _a === void 0 ? void 0 : _a.payload);
|
|
471
|
+
if (nested !== undefined && asRecord(record.pullRequest) === undefined) {
|
|
472
|
+
return nested;
|
|
473
|
+
}
|
|
474
|
+
return record;
|
|
475
|
+
}
|
|
476
|
+
function extractDeployment(payload) {
|
|
477
|
+
const record = asRecord(payload);
|
|
478
|
+
const deploymentId = nonEmpty(record === null || record === void 0 ? void 0 : record.deploymentId);
|
|
479
|
+
if (deploymentId === undefined) {
|
|
480
|
+
return undefined;
|
|
481
|
+
}
|
|
482
|
+
return `cont:${formatConversationKey("deployment", { deploymentId })}`;
|
|
483
|
+
}
|
|
411
484
|
function githubFullName(payload) {
|
|
412
485
|
var _a;
|
|
413
486
|
const repository = asRecord(payload.repository);
|
|
414
487
|
return (_a = nonEmpty(repository === null || repository === void 0 ? void 0 : repository.full_name)) !== null && _a !== void 0 ? _a : originFullName(repository);
|
|
415
488
|
}
|
|
416
489
|
function originFullName(repository) {
|
|
417
|
-
var _a, _b;
|
|
418
|
-
var
|
|
490
|
+
var _a, _b, _c;
|
|
491
|
+
var _d, _e, _f;
|
|
419
492
|
if (repository === undefined) {
|
|
420
493
|
return undefined;
|
|
421
494
|
}
|
|
422
|
-
const owner = (_d = (
|
|
495
|
+
const owner = (_f = (_e = (_d = nonEmpty((_a = asRecord(repository.owner)) === null || _a === void 0 ? void 0 : _a.slug)) !== null && _d !== void 0 ? _d : nonEmpty(repository.owner)) !== null && _e !== void 0 ? _e : nonEmpty((_b = asRecord(repository.owner)) === null || _b === void 0 ? void 0 : _b.login)) !== null && _f !== void 0 ? _f : nonEmpty((_c = asRecord(repository.owner)) === null || _c === void 0 ? void 0 : _c.name);
|
|
423
496
|
const name = nonEmpty(repository.name);
|
|
424
497
|
if (owner === undefined || name === undefined) {
|
|
425
498
|
return undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"convert-workflow.d.ts","sourceRoot":"","sources":["../../../src/internal/convert-automation/convert-workflow.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;
|
|
1
|
+
{"version":3,"file":"convert-workflow.d.ts","sourceRoot":"","sources":["../../../src/internal/convert-automation/convert-workflow.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAMH,OAAO,KAAK,EAKV,oBAAoB,EACpB,qBAAqB,EAQtB,MAAM,YAAY,CAAC;AAUpB,wBAAgB,eAAe,CAC7B,KAAK,EAAE,oBAAoB,GAC1B,qBAAqB,CA4GvB"}
|
|
@@ -5,9 +5,10 @@
|
|
|
5
5
|
* server list) to project files, warnings, and setup steps. No I/O, no
|
|
6
6
|
* clock — `exportedAt` comes from the caller.
|
|
7
7
|
*/
|
|
8
|
+
import { envPrefixFromName } from "../../channels/slack/credentials.js";
|
|
8
9
|
import { CLI_COMMAND_NAME, PACKAGE_NAME } from "../distribution.js";
|
|
9
10
|
import { MEMORY_TS } from "../init-scaffold.js";
|
|
10
|
-
import {
|
|
11
|
+
import { SlugRegistry, slugify } from "./slug.js";
|
|
11
12
|
export function convertWorkflow(input) {
|
|
12
13
|
var _a, _b;
|
|
13
14
|
var _c, _d;
|
|
@@ -681,9 +682,9 @@ function emitSlackChannel(automation, triggers, slugs, out) {
|
|
|
681
682
|
if (reactionDropped) {
|
|
682
683
|
out.warnings.push("The Slack trigger marked triggering messages with a completion reaction; agentsdk has no completion-reaction option, so that signal is lost unless agent/instructions.md tells the agent to add the reaction itself via Slack tools.");
|
|
683
684
|
}
|
|
684
|
-
|
|
685
|
-
|
|
686
|
-
|
|
685
|
+
out.setupSteps.push(socketMode
|
|
686
|
+
? `Slack channel-watch / reaction / channel-created triggers need a dedicated Socket Mode Slack app: run \`${CLI_COMMAND_NAME} slack create --channel-posts\`, then finish in the dashboard wizard.`
|
|
687
|
+
: `Slack mentions need a dedicated Socket Mode Slack app: run \`${CLI_COMMAND_NAME} slack create\`, then finish in the dashboard wizard.`);
|
|
687
688
|
const header = [
|
|
688
689
|
`import { slackChannel } from "${PACKAGE_NAME}/channels/slack";`,
|
|
689
690
|
"",
|
|
@@ -727,26 +728,36 @@ function emitSlackChannel(automation, triggers, slugs, out) {
|
|
|
727
728
|
}
|
|
728
729
|
body = [
|
|
729
730
|
"//",
|
|
730
|
-
|
|
731
|
-
|
|
732
|
-
"export default slackChannel({",
|
|
733
|
-
...engagement,
|
|
734
|
-
"});",
|
|
731
|
+
`// Run \`${CLI_COMMAND_NAME} slack create --channel-posts\` for a dedicated Slack app.`,
|
|
732
|
+
...slackChannelExport(automation.name, engagement),
|
|
735
733
|
];
|
|
736
734
|
}
|
|
737
735
|
else {
|
|
738
|
-
const agentName = pascalCase(automation.name, "ExportedAgent");
|
|
739
736
|
body = [
|
|
740
737
|
"//",
|
|
741
|
-
`//
|
|
742
|
-
|
|
743
|
-
" cursorAccount: true,",
|
|
744
|
-
` agentName: ${JSON.stringify(agentName)},`,
|
|
745
|
-
"});",
|
|
738
|
+
`// Run \`${CLI_COMMAND_NAME} slack create\` for a dedicated Slack app.`,
|
|
739
|
+
...slackChannelExport(automation.name, []),
|
|
746
740
|
];
|
|
747
741
|
}
|
|
748
742
|
out.files.push({ path, contents: `${[...header, ...body].join("\n")}\n` });
|
|
749
743
|
}
|
|
744
|
+
/**
|
|
745
|
+
* `slack create` writes `<DIR>_SLACK_*` from the project directory. Convert
|
|
746
|
+
* names that directory from the automation (`Nightly Triage` →
|
|
747
|
+
* `nightly-triage` → `NIGHTLY_TRIAGE`). Emit the same prefix so minted
|
|
748
|
+
* tokens bind.
|
|
749
|
+
*/
|
|
750
|
+
function slackChannelExport(name, optionLines) {
|
|
751
|
+
const prefix = envPrefixFromName(slugify(name, "automation"));
|
|
752
|
+
const options = [
|
|
753
|
+
...(prefix === "" ? [] : [` envPrefix: ${JSON.stringify(prefix)},`]),
|
|
754
|
+
...optionLines,
|
|
755
|
+
];
|
|
756
|
+
if (options.length === 0) {
|
|
757
|
+
return ["export default slackChannel();"];
|
|
758
|
+
}
|
|
759
|
+
return ["export default slackChannel({", ...options, "});"];
|
|
760
|
+
}
|
|
750
761
|
function slackChannelList(trigger) {
|
|
751
762
|
var _a;
|
|
752
763
|
return [...((_a = trigger === null || trigger === void 0 ? void 0 : trigger.channels) !== null && _a !== void 0 ? _a : []), trigger === null || trigger === void 0 ? void 0 : trigger.channel].filter((channel) => typeof channel === "string" && channel !== "");
|
|
@@ -1,8 +1,6 @@
|
|
|
1
1
|
/** Filename slugs for generated project files. */
|
|
2
2
|
/** Lowercase, dashes, alphanumerics only; `fallback` when nothing survives. */
|
|
3
3
|
export declare function slugify(name: string, fallback: string): string;
|
|
4
|
-
/** Single-token PascalCase (Slack cursorAccount agentName). */
|
|
5
|
-
export declare function pascalCase(name: string, fallback: string): string;
|
|
6
4
|
/** Dedupes slugs with numeric suffixes: `linear`, `linear-2`, `linear-3`, … */
|
|
7
5
|
export declare class SlugRegistry {
|
|
8
6
|
private readonly used;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"slug.d.ts","sourceRoot":"","sources":["../../../src/internal/convert-automation/slug.ts"],"names":[],"mappings":"AAAA,kDAAkD;AAElD,+EAA+E;AAC/E,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAM9D;AAED,+
|
|
1
|
+
{"version":3,"file":"slug.d.ts","sourceRoot":"","sources":["../../../src/internal/convert-automation/slug.ts"],"names":[],"mappings":"AAAA,kDAAkD;AAElD,+EAA+E;AAC/E,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAM9D;AAED,+EAA+E;AAC/E,qBAAa,YAAY;IACvB,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAqB;IAE1C,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAY1B;CACF"}
|
|
@@ -7,14 +7,6 @@ export function slugify(name, fallback) {
|
|
|
7
7
|
.replace(/^-+|-+$/g, "");
|
|
8
8
|
return slug === "" ? fallback : slug;
|
|
9
9
|
}
|
|
10
|
-
/** Single-token PascalCase (Slack cursorAccount agentName). */
|
|
11
|
-
export function pascalCase(name, fallback) {
|
|
12
|
-
const words = name.split(/[^a-zA-Z0-9]+/).filter((word) => word !== "");
|
|
13
|
-
if (words.length === 0) {
|
|
14
|
-
return fallback;
|
|
15
|
-
}
|
|
16
|
-
return words.map((word) => { var _a; return ((_a = word[0]) === null || _a === void 0 ? void 0 : _a.toUpperCase()) + word.slice(1); }).join("");
|
|
17
|
-
}
|
|
18
10
|
/** Dedupes slugs with numeric suffixes: `linear`, `linear-2`, `linear-3`, … */
|
|
19
11
|
export class SlugRegistry {
|
|
20
12
|
constructor() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"account-mcp.d.ts","sourceRoot":"","sources":["../../../src/internal/cursor/account-mcp.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AASH,OAAO,KAAK,EACV,YAAY,EACZ,UAAU,EAEX,MAAM,gBAAgB,CAAC;AAUxB,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AACrE,OAAO,EAIL,KAAK,eAAe,EAErB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EACV,gBAAgB,EAChB,mBAAmB,EACpB,MAAM,qBAAqB,CAAC;AAU7B,0EAA0E;AAC1E,eAAO,MAAM,gCAAgC,8CACA,CAAC;AAC9C,2EAA2E;AAC3E,eAAO,MAAM,oCAAoC,yDACO,CAAC;AAMzD,MAAM,WAAW,0BAA0B;IACzC,kFAAkF;IAClF,IAAI,EAAE,MAAM,CAAC;IACb,sEAAsE;IACtE,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;CACpB;AAED;;;;GAIG;AACH,wBAAgB,+BAA+B,CAC7C,MAAM,EAAE,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,YAAY,CAAA;CAAE,CAAC,GACrD,GAAG,CAAC,MAAM,EAAE,0BAA0B,EAAE,CAAC,
|
|
1
|
+
{"version":3,"file":"account-mcp.d.ts","sourceRoot":"","sources":["../../../src/internal/cursor/account-mcp.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AASH,OAAO,KAAK,EACV,YAAY,EACZ,UAAU,EAEX,MAAM,gBAAgB,CAAC;AAUxB,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AACrE,OAAO,EAIL,KAAK,eAAe,EAErB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EACV,gBAAgB,EAChB,mBAAmB,EACpB,MAAM,qBAAqB,CAAC;AAU7B,0EAA0E;AAC1E,eAAO,MAAM,gCAAgC,8CACA,CAAC;AAC9C,2EAA2E;AAC3E,eAAO,MAAM,oCAAoC,yDACO,CAAC;AAMzD,MAAM,WAAW,0BAA0B;IACzC,kFAAkF;IAClF,IAAI,EAAE,MAAM,CAAC;IACb,sEAAsE;IACtE,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;CACpB;AAED;;;;GAIG;AACH,wBAAgB,+BAA+B,CAC7C,MAAM,EAAE,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,YAAY,CAAA;CAAE,CAAC,GACrD,GAAG,CAAC,MAAM,EAAE,0BAA0B,EAAE,CAAC,CAuB3C;AAED,oFAAoF;AACpF,wBAAgB,oBAAoB,CAAC,cAAc,EAAE,MAAM,GAAG,MAAM,CAEnE;AAED;;;;;GAKG;AACH,wBAAgB,+BAA+B,CAAC,IAAI,EAAE;IACpD,IAAI,EAAE,0BAA0B,EAAE,CAAC;IACnC,+CAA+C;IAC/C,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,GAAG,wBAAwB,EAAE,CAkB7B;AAqCD,qBAAa,sBAAsB;IACjC,yEAAyE;IACzE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAmC;IAC1D,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAsB;IAC7C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAyB;IAChD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAkB;IAC1C,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAa;IAC1C,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAU;IAC7C,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAmC;IAE5D,YAAY,IAAI,EAAE;QAChB,MAAM,EAAE,mBAAmB,CAAC;QAC5B,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;QAChC,2EAA2E;QAC3E,OAAO,CAAC,EAAE,eAAe,CAAC;QAC1B;;;;WAIG;QACH,kBAAkB,CAAC,EAAE,OAAO,CAAC;KAC9B,EAMA;IAED;;;;OAIG;IACH,UAAU,IAAI,UAAU,CAgBvB;IAED;;;OAGG;IACH,MAAM,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,0BAA0B,GAAG,OAAO,CAAC,QAAQ,CAAC,CAO3E;IAED;;;;;;;;OAQG;IACH,YAAY,CAAC,IAAI,EAAE,0BAA0B,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAI9D;YAEa,YAAY;IAiE1B,OAAO,CAAC,WAAW;IAmFnB,0EAA0E;YAC5D,QAAQ;IAatB;;;;OAIG;IACH,OAAO,CAAC,UAAU;CAwCnB;AA6ED,MAAM,WAAW,6BAA6B;IAC5C,gBAAgB,EAAE,MAAM,CAAC;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,8EAA8E;IAC9E,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AA+CD;;;GAGG;AACH,wBAAgB,gCAAgC,CAAC,IAAI,EAAE;IACrD,cAAc,EAAE,MAAM,CAAC;IACvB,OAAO,EAAE,SAAS,6BAA6B,EAAE,CAAC;IAClD,OAAO,CAAC,EAAE,eAAe,CAAC;IAC1B,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB,GAAG,MAAM,CAWT;AAwDD,yFAAyF;AACzF,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,gBAAgB,EACxB,WAAW,CAAC,EAAE,MAAM,GACnB,MAAM,CAkBR;AAED;;;;GAIG;AACH,wBAAsB,sBAAsB,CAC1C,MAAM,EAAE,IAAI,CAAC,mBAAmB,EAAE,uBAAuB,CAAC,EAC1D,gBAAgB,EAAE,MAAM,GACvB,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CA4B7B"}
|
|
@@ -50,10 +50,14 @@ export const CURSOR_ACCOUNT_MCP_SETTINGS_DEEPLINK = "cursor://anysphere.cursor-d
|
|
|
50
50
|
* the account (see {@link CursorAccountMcpBridge.logPreflight}).
|
|
51
51
|
*/
|
|
52
52
|
export function collectCursorAccountConnections(mounts) {
|
|
53
|
+
var _a;
|
|
53
54
|
const bySlug = new Map();
|
|
54
55
|
for (const { slug, project } of mounts) {
|
|
55
56
|
const refs = [];
|
|
56
|
-
for (const connection of
|
|
57
|
+
for (const connection of [
|
|
58
|
+
...project.agent.connections,
|
|
59
|
+
...((_a = project.agent.hostConnections) !== null && _a !== void 0 ? _a : []),
|
|
60
|
+
]) {
|
|
57
61
|
if (!isCursorAccountTransport(connection.transport)) {
|
|
58
62
|
continue;
|
|
59
63
|
}
|
|
@@ -47,8 +47,8 @@ export interface AgentDeployManifestDeclarations {
|
|
|
47
47
|
* Scope keys are installation config and are never extracted here.
|
|
48
48
|
* Omitted channel `continuation` is `/v1` (engine minting) unless the
|
|
49
49
|
* agent set `architecture: "v2"`, which stamps kind `/v2` defaults
|
|
50
|
-
* (`github.pr/v2`, `slack.thread/v2`, `origin.pr/v2
|
|
51
|
-
* selectors still override type.
|
|
50
|
+
* (`github.pr/v2`, `slack.thread/v2`, `origin.pr/v2`,
|
|
51
|
+
* `deployments.deployment/v2`). Per-channel selectors still override type.
|
|
52
52
|
*/
|
|
53
53
|
channels: Array<{
|
|
54
54
|
id: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deploy-manifest.d.ts","sourceRoot":"","sources":["../../src/internal/deploy-manifest.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAIH,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAE/D,OAAO,KAAK,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"deploy-manifest.d.ts","sourceRoot":"","sources":["../../src/internal/deploy-manifest.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAIH,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAE/D,OAAO,KAAK,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAclE,eAAO,MAAM,uBAAuB,EAAE,CAAK,CAAC;AAiC5C,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;;;;;;;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;KACpC,CAAC,CAAC;CACJ;AAED,MAAM,WAAW,qBAAqB;IACpC,eAAe,EAAE,CAAC,CAAC;IACnB,6BAA6B;IAC7B,aAAa,EAAE,MAAM,CAAC;IACtB,yDAAyD;IACzD,UAAU,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,CAAA;CAAE,GAChD,qBAAqB,CAqDvB;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,CACtC,GAAG,EAAE,OAAO,GACX,qBAAqB,GAAG,SAAS,CAOnC"}
|
|
@@ -31,7 +31,7 @@
|
|
|
31
31
|
import { z } from "zod";
|
|
32
32
|
import { isPublicEndpointPolicy } from "../channels.js";
|
|
33
33
|
import { isCursorHostedStorage } from "../storage-backends/cursor-hosted.js";
|
|
34
|
-
import { applyAgentContinuationDefaults, channelContinuationIdentity, handshakeChannelContinuation, } from "./continuation-channel.js";
|
|
34
|
+
import { applyAgentContinuationDefaults, channelContinuationIdentity, channelDeclaredEventTypes, handshakeChannelContinuation, } from "./continuation-channel.js";
|
|
35
35
|
import { CONTINUATION_SELECTORS } from "./continuation-identity.js";
|
|
36
36
|
import { projectInfo, runtimeArchitectureCompatibilityError, } from "./discovery.js";
|
|
37
37
|
import { packageVersion } from "./distribution.js";
|
|
@@ -76,19 +76,14 @@ export function buildAgentDeployManifest(project, options) {
|
|
|
76
76
|
}
|
|
77
77
|
applyAgentContinuationDefaults(project);
|
|
78
78
|
const channels = project.channels.map((channel) => {
|
|
79
|
-
var _a
|
|
79
|
+
var _a;
|
|
80
80
|
const handshake = handshakeChannelContinuation(channel);
|
|
81
81
|
if (!handshake.ok) {
|
|
82
82
|
throw new Error(handshake.error);
|
|
83
83
|
}
|
|
84
84
|
const kind = (_a = channel.definition.meta) === null || _a === void 0 ? void 0 : _a.kind;
|
|
85
|
-
const
|
|
86
|
-
const
|
|
87
|
-
const eventTypes = githubEvents !== undefined
|
|
88
|
-
? [...githubEvents].sort()
|
|
89
|
-
: originEvents !== undefined
|
|
90
|
-
? [...originEvents].sort()
|
|
91
|
-
: undefined;
|
|
85
|
+
const declaredEvents = channelDeclaredEventTypes(channel.definition.meta);
|
|
86
|
+
const eventTypes = declaredEvents === undefined ? undefined : [...declaredEvents].sort();
|
|
92
87
|
return {
|
|
93
88
|
id: channel.id,
|
|
94
89
|
kind,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"discovery.d.ts","sourceRoot":"","sources":["../../src/internal/discovery.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAkBH,OAAO,EACL,KAAK,iBAAiB,EAItB,KAAK,YAAY,EACjB,KAAK,gBAAgB,EACrB,KAAK,YAAY,EAQjB,KAAK,UAAU,
|
|
1
|
+
{"version":3,"file":"discovery.d.ts","sourceRoot":"","sources":["../../src/internal/discovery.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAkBH,OAAO,EACL,KAAK,iBAAiB,EAItB,KAAK,YAAY,EACjB,KAAK,gBAAgB,EACrB,KAAK,YAAY,EAQjB,KAAK,UAAU,EA0BhB,MAAM,aAAa,CAAC;AAgCrB,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;AAmBD;;;;GAIG;AACH,wBAAsB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CASrE;AAED,sEAAsE;AACtE,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;CACb;AAED;;;;GAIG;AACH,wBAAsB,kBAAkB,CACtC,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,aAAa,EAAE,CAAC,CA2B1B;AAED;;;;;;GAMG;AACH,wBAAsB,iBAAiB,CACrC,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,uBAA4B,GACpC,OAAO,CAAC,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,YAAY,CAAA;CAAE,CAAC,CAAC,CA6BzD;AAED;;;;;;GAMG;AACH,wBAAsB,kBAAkB,CACtC,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,uBAAuB,GAAG;IACjC,IAAI,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC;CACtB,GACL,OAAO,CAAC,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,YAAY,CAAA;CAAE,CAAC,CAAC,CAgBzD;AAWD,iFAAiF;AACjF,eAAO,MAAM,cAAc,EAAE,GAAG,CAAC,MAAM,CAIrC,CAAC;AAEH,wBAAsB,gBAAgB,CACpC,GAAG,EAAE,MAAM,EACX,OAAO,GAAE,uBAA4B,GACpC,OAAO,CAAC,YAAY,CAAC,CA0EvB;AAED,qEAAqE;AACrE,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAElE;AAED,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,UAAU,EAAE,GAAG,MAAM,CAOnE;AAyOD,wBAAgB,qCAAqC,CAAC,KAAK,EAAE;IAC3D,OAAO,EAAE,YAAY,CAAC;IACtB,YAAY,CAAC,EAAE,iBAAiB,CAAC;CAClC,GAAG,MAAM,GAAG,SAAS,CAIrB;AA6nBD;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAiB3E;AA8gCD,wBAAgB,WAAW,CAAC,OAAO,EAAE,YAAY,GAAG,gBAAgB,CAgKnE"}
|