@cursor/bdk 0.2.2 → 0.2.4
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 -1
- package/dist/bin/agent-serve.js +32 -8
- package/dist/channels/github/auth.d.ts.map +1 -1
- package/dist/channels/github/auth.js +36 -5
- package/dist/channels/slack/attachments.d.ts +2 -1
- package/dist/channels/slack/attachments.d.ts.map +1 -1
- package/dist/channels/slack/attachments.js +19 -9
- package/dist/channels/slack/dispatch.d.ts.map +1 -1
- package/dist/channels/slack/dispatch.js +26 -24
- package/dist/channels/slack/thread-context.d.ts +21 -11
- package/dist/channels/slack/thread-context.d.ts.map +1 -1
- package/dist/channels/slack/thread-context.js +75 -27
- package/dist/connections.d.ts +1 -1
- package/dist/connections.js +1 -1
- package/dist/docs/404.html +2 -2
- package/dist/docs/assets/{app.DtYVVVyK.js → app.4kQ8Db_q.js} +4 -4
- package/dist/docs/assets/chunks/@localSearchIndexroot.CvuAJ0My.js +1 -0
- package/dist/docs/assets/chunks/{VPLocalSearchBox.D47xT7J4.js → VPLocalSearchBox.DY1RwB8Q.js} +1 -1
- package/dist/docs/assets/chunks/{arc.CDJ6xzxR.js → arc.CxE_fSPK.js} +1 -1
- package/dist/docs/assets/chunks/{architectureDiagram-Q4EWVU46.l1Xnjd3N.js → architectureDiagram-Q4EWVU46.CPX426ui.js} +1 -1
- package/dist/docs/assets/chunks/{baseUniq.x-finShZ.js → baseUniq.CB52JrKG.js} +1 -1
- package/dist/docs/assets/chunks/{blockDiagram-DXYQGD6D.COC3qynH.js → blockDiagram-DXYQGD6D.J0cNaQCL.js} +1 -1
- package/dist/docs/assets/chunks/{c4Diagram-AHTNJAMY.DdQO850E.js → c4Diagram-AHTNJAMY.DJn3vEGT.js} +1 -1
- package/dist/docs/assets/chunks/channel.BoNycAoN.js +1 -0
- package/dist/docs/assets/chunks/{chunk-4BX2VUAB.Dpn8omLk.js → chunk-4BX2VUAB.Dao618F6.js} +1 -1
- package/dist/docs/assets/chunks/{chunk-4TB4RGXK.C0XWStUN.js → chunk-4TB4RGXK.QW8Rhjai.js} +1 -1
- package/dist/docs/assets/chunks/{chunk-55IACEB6.DsKSZfIM.js → chunk-55IACEB6.DfRLLKF_.js} +1 -1
- package/dist/docs/assets/chunks/{chunk-EDXVE4YY.dNU6JDu6.js → chunk-EDXVE4YY.CIV2ApKQ.js} +1 -1
- package/dist/docs/assets/chunks/{chunk-FMBD7UC4.DN41fxKE.js → chunk-FMBD7UC4.BEheSuxp.js} +1 -1
- package/dist/docs/assets/chunks/{chunk-OYMX7WX6.COpKCZus.js → chunk-OYMX7WX6.CUN88ENB.js} +1 -1
- package/dist/docs/assets/chunks/{chunk-QZHKN3VN.HDB-azx2.js → chunk-QZHKN3VN.CgqCs8b_.js} +1 -1
- package/dist/docs/assets/chunks/{chunk-YZCP3GAM.DEeX_a2j.js → chunk-YZCP3GAM.iCH0nnTJ.js} +1 -1
- package/dist/docs/assets/chunks/classDiagram-6PBFFD2Q.C4x07Gkj.js +1 -0
- package/dist/docs/assets/chunks/classDiagram-v2-HSJHXN6E.C4x07Gkj.js +1 -0
- package/dist/docs/assets/chunks/clone.Db22cH_-.js +1 -0
- package/dist/docs/assets/chunks/{cose-bilkent-S5V4N54A.C3yGL2A8.js → cose-bilkent-S5V4N54A.BLcUxhWE.js} +1 -1
- package/dist/docs/assets/chunks/{dagre-KV5264BT.Bpl24en4.js → dagre-KV5264BT.Ep7LofOm.js} +1 -1
- package/dist/docs/assets/chunks/{diagram-5BDNPKRD.nFco6seU.js → diagram-5BDNPKRD.Bzf4GSQ4.js} +1 -1
- package/dist/docs/assets/chunks/{diagram-G4DWMVQ6.DXhA6DWR.js → diagram-G4DWMVQ6.DD6Jh-eM.js} +1 -1
- package/dist/docs/assets/chunks/{diagram-MMDJMWI5.8GoOYcwk.js → diagram-MMDJMWI5.oOIl8bWd.js} +1 -1
- package/dist/docs/assets/chunks/{diagram-TYMM5635.DDBlqvlJ.js → diagram-TYMM5635.DHs85Ade.js} +1 -1
- package/dist/docs/assets/chunks/{erDiagram-SMLLAGMA.vl_N81P4.js → erDiagram-SMLLAGMA.BIb5ghCk.js} +1 -1
- package/dist/docs/assets/chunks/{flowDiagram-DWJPFMVM.Cteg8g7I.js → flowDiagram-DWJPFMVM.DV4paY9k.js} +1 -1
- package/dist/docs/assets/chunks/{ganttDiagram-T4ZO3ILL.D4aMhlMM.js → ganttDiagram-T4ZO3ILL.AyEKA6_v.js} +1 -1
- package/dist/docs/assets/chunks/{gitGraphDiagram-UUTBAWPF.DF_J0D4q.js → gitGraphDiagram-UUTBAWPF.BltiCDFo.js} +1 -1
- package/dist/docs/assets/chunks/{graph.DJs0LDCf.js → graph.DzuEYGdC.js} +1 -1
- package/dist/docs/assets/chunks/{infoDiagram-42DDH7IO.Bb-4RQwg.js → infoDiagram-42DDH7IO.BV2l981J.js} +1 -1
- package/dist/docs/assets/chunks/{ishikawaDiagram-UXIWVN3A.DEtQRSbc.js → ishikawaDiagram-UXIWVN3A.BA4Izf-m.js} +1 -1
- package/dist/docs/assets/chunks/{journeyDiagram-VCZTEJTY.DhQQ75FA.js → journeyDiagram-VCZTEJTY.DjaFbFS3.js} +1 -1
- package/dist/docs/assets/chunks/{kanban-definition-6JOO6SKY.C4gEw3Rk.js → kanban-definition-6JOO6SKY.CfTFieDs.js} +1 -1
- package/dist/docs/assets/chunks/{layout.DT-PGlXa.js → layout.DzfWqTBV.js} +1 -1
- package/dist/docs/assets/chunks/{linear.BMMe__JW.js → linear.BO6mpulV.js} +1 -1
- package/dist/docs/assets/chunks/{min.XyaU9K9Q.js → min.BGgTadgT.js} +1 -1
- package/dist/docs/assets/chunks/{mindmap-definition-QFDTVHPH.CbBM6xZ-.js → mindmap-definition-QFDTVHPH.DPuIXVWY.js} +1 -1
- package/dist/docs/assets/chunks/{pieDiagram-DEJITSTG.DFJoIVou.js → pieDiagram-DEJITSTG.BOnl3bBg.js} +1 -1
- package/dist/docs/assets/chunks/{quadrantDiagram-34T5L4WZ.CQjkDYqb.js → quadrantDiagram-34T5L4WZ.DNB6Ckdc.js} +1 -1
- package/dist/docs/assets/chunks/{requirementDiagram-MS252O5E.D-mK-JQu.js → requirementDiagram-MS252O5E.D5-Qo7vb.js} +1 -1
- package/dist/docs/assets/chunks/{sankeyDiagram-XADWPNL6.BStQInpd.js → sankeyDiagram-XADWPNL6.8t65cesf.js} +1 -1
- package/dist/docs/assets/chunks/{sequenceDiagram-FGHM5R23.CA_eooPJ.js → sequenceDiagram-FGHM5R23.CaG07BdS.js} +1 -1
- package/dist/docs/assets/chunks/{stateDiagram-FHFEXIEX.BXl-b7ad.js → stateDiagram-FHFEXIEX.TKOweTB6.js} +1 -1
- package/dist/docs/assets/chunks/stateDiagram-v2-QKLJ7IA2.CuqmyQc4.js +1 -0
- package/dist/docs/assets/chunks/{theme.q37tOs4x.js → theme.Dx-JhpTB.js} +2 -2
- package/dist/docs/assets/chunks/{timeline-definition-GMOUNBTQ.vjuaGOSe.js → timeline-definition-GMOUNBTQ.fE53zQ2s.js} +1 -1
- package/dist/docs/assets/chunks/{vennDiagram-DHZGUBPP.BxduJl-F.js → vennDiagram-DHZGUBPP.DJsZZaJg.js} +1 -1
- package/dist/docs/assets/chunks/wardley-RL74JXVD.844kyrjl.js +162 -0
- package/dist/docs/assets/chunks/{wardleyDiagram-NUSXRM2D.D1z3ds0D.js → wardleyDiagram-NUSXRM2D.CMZ-Ru_t.js} +1 -1
- package/dist/docs/assets/chunks/{xychartDiagram-5P7HB3ND.CRU5Ti9b.js → xychartDiagram-5P7HB3ND.XXrhBc7a.js} +1 -1
- package/dist/docs/assets/{deployment.md.nGo1yIsa.js → deployment.md.UhnJIMr-.js} +6 -9
- package/dist/docs/assets/{deployment.md.nGo1yIsa.lean.js → deployment.md.UhnJIMr-.lean.js} +1 -1
- package/dist/docs/assets/{guides_github.md.C2_DSWlE.js → guides_github.md.Bq9kQU9B.js} +9 -3
- package/dist/docs/assets/{guides_github.md.C2_DSWlE.lean.js → guides_github.md.Bq9kQU9B.lean.js} +1 -1
- package/dist/docs/assets/{guides_jev.md.BNDm14Gy.js → guides_jev.md.CRcgmjDb.js} +2 -2
- package/dist/docs/assets/{guides_jev.md.BNDm14Gy.lean.js → guides_jev.md.CRcgmjDb.lean.js} +1 -1
- package/dist/docs/assets/{guides_slack.md.ZbHQETOT.js → guides_slack.md.diqqXTTm.js} +2 -2
- package/dist/docs/assets/{guides_slack.md.ZbHQETOT.lean.js → guides_slack.md.diqqXTTm.lean.js} +1 -1
- package/dist/docs/assets/{quickstart.md.wG4shE1f.js → quickstart.md.CHpHPBUN.js} +5 -3
- package/dist/docs/assets/{quickstart.md.wG4shE1f.lean.js → quickstart.md.CHpHPBUN.lean.js} +1 -1
- package/dist/docs/assets/{reference_agent-config.md.DzGI777n.js → reference_agent-config.md.Cj5uBKp4.js} +1 -1
- package/dist/docs/assets/{reference_artifacts.md.CFMNPreZ.js → reference_artifacts.md.CQfKq8F2.js} +1 -1
- package/dist/docs/assets/reference_cli.md.DgeLTO18.js +91 -0
- package/dist/docs/assets/reference_cli.md.DgeLTO18.lean.js +1 -0
- package/dist/docs/assets/{reference_connections.md._XpKiOaF.js → reference_connections.md.COq--gAm.js} +7 -3
- package/dist/docs/assets/{reference_connections.md._XpKiOaF.lean.js → reference_connections.md.COq--gAm.lean.js} +1 -1
- package/dist/docs/assets/{reference_evals.md.DqNyHMA6.js → reference_evals.md.CJm3uCUm.js} +4 -4
- package/dist/docs/assets/{reference_evals.md.DqNyHMA6.lean.js → reference_evals.md.CJm3uCUm.lean.js} +1 -1
- package/dist/docs/assets/{reference_extensions.md.CPPrkWlJ.js → reference_extensions.md.pa2tN-e4.js} +4 -3
- package/dist/docs/assets/{reference_extensions.md.CPPrkWlJ.lean.js → reference_extensions.md.pa2tN-e4.lean.js} +1 -1
- package/dist/docs/assets/{reference_skills.md.CRFTxt9M.js → reference_skills.md.Cy00QMKS.js} +3 -3
- package/dist/docs/assets/{reference_skills.md.CRFTxt9M.lean.js → reference_skills.md.Cy00QMKS.lean.js} +1 -1
- package/dist/docs/assets/troubleshooting.md.Cw5PKa3t.js +1 -0
- package/dist/docs/assets/{troubleshooting.md.BzZSu1Gz.lean.js → troubleshooting.md.Cw5PKa3t.lean.js} +1 -1
- package/dist/docs/building-with-agents.html +35 -35
- package/dist/docs/deployment.html +41 -44
- package/dist/docs/deployment.md +49 -16
- package/dist/docs/evals.html +35 -35
- package/dist/docs/guides/agent-to-agent.html +35 -35
- package/dist/docs/guides/bitbucket.html +35 -35
- package/dist/docs/guides/cloud-agents.html +35 -35
- package/dist/docs/guides/convert-automation.html +35 -35
- package/dist/docs/guides/github.html +43 -37
- package/dist/docs/guides/github.md +34 -0
- package/dist/docs/guides/gitlab.html +35 -35
- package/dist/docs/guides/grokbot-agents.html +35 -35
- package/dist/docs/guides/hooks.html +35 -35
- package/dist/docs/guides/improve.html +35 -35
- package/dist/docs/guides/jev.html +37 -37
- package/dist/docs/guides/jev.md +7 -0
- package/dist/docs/guides/mcp-oauth.html +35 -35
- package/dist/docs/guides/opentelemetry.html +35 -35
- package/dist/docs/guides/slack.html +37 -37
- package/dist/docs/guides/slack.md +5 -0
- package/dist/docs/guides/webhooks.html +35 -35
- package/dist/docs/hashmap.json +1 -1
- package/dist/docs/hillclimbing.html +35 -35
- package/dist/docs/index.html +35 -35
- package/dist/docs/llms-full.txt +223 -94
- package/dist/docs/quickstart.html +40 -38
- package/dist/docs/quickstart.md +7 -1
- package/dist/docs/reference/agent-config.html +37 -37
- package/dist/docs/reference/agent-config.md +1 -1
- package/dist/docs/reference/artifacts.html +37 -37
- package/dist/docs/reference/artifacts.md +1 -1
- package/dist/docs/reference/channels.html +35 -35
- package/dist/docs/reference/cli.html +55 -61
- package/dist/docs/reference/cli.md +65 -63
- package/dist/docs/reference/connections.html +42 -38
- package/dist/docs/reference/connections.md +28 -2
- package/dist/docs/reference/evals.html +39 -39
- package/dist/docs/reference/evals.md +6 -7
- package/dist/docs/reference/extensions.html +39 -38
- package/dist/docs/reference/extensions.md +13 -0
- package/dist/docs/reference/hooks.html +35 -35
- package/dist/docs/reference/http-api.html +35 -35
- package/dist/docs/reference/instructions.html +35 -35
- package/dist/docs/reference/playground.html +35 -35
- package/dist/docs/reference/project-layout.html +35 -35
- package/dist/docs/reference/prompt.html +35 -35
- package/dist/docs/reference/schedules.html +35 -35
- package/dist/docs/reference/sessions.html +35 -35
- package/dist/docs/reference/skills.html +38 -38
- package/dist/docs/reference/subagents.html +35 -35
- package/dist/docs/reference/tools.html +35 -35
- package/dist/docs/templates/agentic-owners.html +35 -35
- package/dist/docs/templates/security-reviewer.html +35 -35
- package/dist/docs/templates/thermo-quality-review.html +35 -35
- package/dist/docs/templates/thermo-review.html +35 -35
- package/dist/docs/templates/triage.html +35 -35
- package/dist/docs/troubleshooting.html +36 -36
- package/dist/docs/troubleshooting.md +7 -3
- package/dist/extensions/cursor-grokbot-agents/extension.d.ts +77 -0
- package/dist/extensions/cursor-grokbot-agents/extension.d.ts.map +1 -0
- package/dist/extensions/cursor-grokbot-agents/extension.js +63 -0
- package/dist/extensions/cursor-grokbot-agents/lib/agents.d.ts +11 -0
- package/dist/extensions/cursor-grokbot-agents/lib/agents.d.ts.map +1 -0
- package/dist/extensions/cursor-grokbot-agents/lib/agents.js +31 -0
- package/dist/extensions/cursor-grokbot-agents/lib/backend.d.ts +56 -0
- package/dist/extensions/cursor-grokbot-agents/lib/backend.d.ts.map +1 -0
- package/dist/extensions/cursor-grokbot-agents/lib/backend.js +158 -0
- package/dist/extensions/cursor-grokbot-agents/lib/contacts.d.ts +28 -0
- package/dist/extensions/cursor-grokbot-agents/lib/contacts.d.ts.map +1 -0
- package/dist/extensions/cursor-grokbot-agents/lib/contacts.js +59 -0
- package/dist/extensions/cursor-grokbot-agents/lib/conversation.d.ts +53 -0
- package/dist/extensions/cursor-grokbot-agents/lib/conversation.d.ts.map +1 -0
- package/dist/extensions/cursor-grokbot-agents/lib/conversation.js +206 -0
- package/dist/extensions/cursor-grokbot-agents/lib/inputs.d.ts +4 -0
- package/dist/extensions/cursor-grokbot-agents/lib/inputs.d.ts.map +1 -0
- package/dist/extensions/cursor-grokbot-agents/lib/inputs.js +15 -0
- package/dist/extensions/cursor-grokbot-agents/lib/lock.d.ts +12 -0
- package/dist/extensions/cursor-grokbot-agents/lib/lock.d.ts.map +1 -0
- package/dist/extensions/cursor-grokbot-agents/lib/lock.js +25 -0
- package/dist/extensions/cursor-grokbot-agents/skills/consult.md +40 -0
- package/dist/extensions/cursor-grokbot-agents/tools/ask.d.ts +4 -0
- package/dist/extensions/cursor-grokbot-agents/tools/ask.d.ts.map +1 -0
- package/dist/extensions/cursor-grokbot-agents/tools/ask.js +37 -0
- package/dist/extensions/cursor-grokbot-agents/tools/check.d.ts +4 -0
- package/dist/extensions/cursor-grokbot-agents/tools/check.d.ts.map +1 -0
- package/dist/extensions/cursor-grokbot-agents/tools/check.js +32 -0
- package/dist/extensions/cursor-grokbot-agents/tools/interrupt.d.ts +4 -0
- package/dist/extensions/cursor-grokbot-agents/tools/interrupt.d.ts.map +1 -0
- package/dist/extensions/cursor-grokbot-agents/tools/interrupt.js +24 -0
- package/dist/extensions/cursor-grokbot-agents/tools/list.d.ts +4 -0
- package/dist/extensions/cursor-grokbot-agents/tools/list.d.ts.map +1 -0
- package/dist/extensions/cursor-grokbot-agents/tools/list.js +34 -0
- package/dist/extensions/jev/extension.d.ts +3 -0
- package/dist/extensions/jev/extension.d.ts.map +1 -1
- package/dist/extensions/jev/extension.js +10 -1
- package/dist/extensions/jev/lib/evaluate.d.ts +4 -0
- package/dist/extensions/jev/lib/evaluate.d.ts.map +1 -1
- package/dist/extensions/jev/lib/evaluate.js +6 -2
- package/dist/extensions.d.ts +4 -2
- package/dist/extensions.d.ts.map +1 -1
- package/dist/extensions.js +5 -2
- package/dist/internal/cli-ax.d.ts +1 -0
- package/dist/internal/cli-ax.d.ts.map +1 -1
- package/dist/internal/cli-ax.js +43 -10
- package/dist/internal/cli-deploy.d.ts +5 -1
- package/dist/internal/cli-deploy.d.ts.map +1 -1
- package/dist/internal/cli-deploy.js +41 -9
- package/dist/internal/cli-mcp-oauth.d.ts.map +1 -1
- package/dist/internal/cli-mcp-oauth.js +2 -1
- package/dist/internal/cli-skills.d.ts +1 -1
- package/dist/internal/cli-skills.d.ts.map +1 -1
- package/dist/internal/cli-skills.js +5 -5
- package/dist/internal/connection-env.d.ts +31 -0
- package/dist/internal/connection-env.d.ts.map +1 -0
- package/dist/internal/connection-env.js +84 -0
- package/dist/internal/cursor/backend-client.js +5 -0
- package/dist/internal/deploy-client.d.ts +30 -6
- package/dist/internal/deploy-client.d.ts.map +1 -1
- package/dist/internal/deploy-client.js +45 -9
- package/dist/internal/discovery/agent-config.d.ts +6 -5
- package/dist/internal/discovery/agent-config.d.ts.map +1 -1
- package/dist/internal/discovery/agent-config.js +29 -28
- package/dist/internal/discovery/agent.js +1 -1
- package/dist/internal/discovery/connections.d.ts.map +1 -1
- package/dist/internal/discovery/connections.js +11 -0
- package/dist/internal/discovery/extensions.d.ts.map +1 -1
- package/dist/internal/discovery/extensions.js +12 -0
- package/dist/internal/hosted-delivery-protocol.d.ts +36 -11
- package/dist/internal/hosted-delivery-protocol.d.ts.map +1 -1
- package/dist/internal/hosted-delivery-protocol.js +31 -8
- package/dist/internal/hosted-delivery.d.ts +2 -2
- package/dist/internal/hosted-delivery.d.ts.map +1 -1
- package/dist/internal/hosted-delivery.js +228 -48
- package/dist/internal/hosting.d.ts +10 -2
- package/dist/internal/hosting.d.ts.map +1 -1
- package/dist/internal/hosting.js +33 -3
- package/dist/internal/install-cursor-skills.d.ts +20 -24
- package/dist/internal/install-cursor-skills.d.ts.map +1 -1
- package/dist/internal/install-cursor-skills.js +50 -48
- package/dist/internal/legacy-command-guard.d.ts +2 -0
- package/dist/internal/legacy-command-guard.d.ts.map +1 -1
- package/dist/internal/legacy-command-guard.js +10 -1
- package/dist/internal/mcp-host.d.ts +6 -0
- package/dist/internal/mcp-host.d.ts.map +1 -1
- package/dist/internal/mcp-host.js +35 -16
- package/dist/internal/sdk-runner.d.ts +2 -0
- package/dist/internal/sdk-runner.d.ts.map +1 -1
- package/dist/internal/sdk-runner.js +10 -0
- package/dist/internal/server.d.ts.map +1 -1
- package/dist/internal/server.js +11 -1
- package/dist/internal/session-engine.d.ts.map +1 -1
- package/dist/internal/session-engine.js +9 -5
- package/dist/types.d.ts +29 -3
- package/dist/types.d.ts.map +1 -1
- package/docs/deployment.md +49 -16
- package/docs/guides/github.md +34 -0
- package/docs/guides/jev.md +7 -0
- package/docs/guides/slack.md +5 -0
- package/docs/quickstart.md +7 -1
- package/docs/reference/agent-config.md +1 -1
- package/docs/reference/artifacts.md +1 -1
- package/docs/reference/cli.md +65 -63
- package/docs/reference/connections.md +28 -2
- package/docs/reference/evals.md +6 -7
- package/docs/reference/extensions.md +13 -0
- package/docs/troubleshooting.md +7 -3
- package/package.json +1 -11
- package/scripts/install-cursor-skills.mjs +1 -1
- package/skills/create-agent/SKILL.md +1 -1
- package/skills/debug/SKILL.md +1 -1
- package/skills/deploy/SKILL.md +1 -1
- package/skills/evals/SKILL.md +1 -1
- package/skills/framework-map/SKILL.md +1 -1
- package/skills/github/SKILL.md +1 -1
- package/skills/hillclimb/SKILL.md +1 -1
- package/skills/mcp-auth/SKILL.md +1 -1
- package/skills/otel/SKILL.md +1 -1
- package/skills/setup-slack/SKILL.md +1 -1
- package/templates/agents-md/bot/lib/collect.ts +1 -4
- package/templates/code-wiki/bot/channels/github.ts +2 -2
- package/templates/demo/bot/channels/github.ts +5 -1
- package/templates/pr-autofixer/bot/lib/start-drive.ts +4 -4
- package/templates/triage/bot/lib/types.ts +6 -6
- package/dist/docs/assets/chunks/@localSearchIndexroot.BgTA2tV1.js +0 -1
- package/dist/docs/assets/chunks/channel.B2nMEx82.js +0 -1
- package/dist/docs/assets/chunks/classDiagram-6PBFFD2Q.D8iCH2ve.js +0 -1
- package/dist/docs/assets/chunks/classDiagram-v2-HSJHXN6E.D8iCH2ve.js +0 -1
- package/dist/docs/assets/chunks/clone.5XNLjby0.js +0 -1
- package/dist/docs/assets/chunks/stateDiagram-v2-QKLJ7IA2.yGM2uLZQ.js +0 -1
- package/dist/docs/assets/chunks/wardley-RL74JXVD.DKfyIejL.js +0 -162
- package/dist/docs/assets/reference_cli.md.BK2QUH67.js +0 -97
- package/dist/docs/assets/reference_cli.md.BK2QUH67.lean.js +0 -1
- package/dist/docs/assets/troubleshooting.md.BzZSu1Gz.js +0 -1
- package/src/artifacts.ts +0 -68
- package/src/bin/agent-serve.ts +0 -1833
- package/src/channels/bitbucket/api.ts +0 -891
- package/src/channels/bitbucket/binding.ts +0 -417
- package/src/channels/bitbucket/bitbucket-channel.ts +0 -162
- package/src/channels/bitbucket/bitbucket-webhook.ts +0 -519
- package/src/channels/bitbucket/checks.ts +0 -146
- package/src/channels/bitbucket/cursor-account.ts +0 -106
- package/src/channels/bitbucket/defaults.ts +0 -100
- package/src/channels/bitbucket/events.ts +0 -74
- package/src/channels/bitbucket/index.ts +0 -51
- package/src/channels/bitbucket/replay.ts +0 -421
- package/src/channels/bitbucket/state.ts +0 -59
- package/src/channels/bitbucket/types.ts +0 -261
- package/src/channels/change-monitors/change-monitors-channel.ts +0 -63
- package/src/channels/change-monitors/index.ts +0 -8
- package/src/channels/change-monitors/types.ts +0 -42
- package/src/channels/checks.ts +0 -185
- package/src/channels/deployments/deployments-channel.ts +0 -224
- package/src/channels/deployments/index.ts +0 -25
- package/src/channels/deployments/types.ts +0 -92
- package/src/channels/github/api.ts +0 -526
- package/src/channels/github/auth.ts +0 -254
- package/src/channels/github/binding.ts +0 -233
- package/src/channels/github/checks.ts +0 -145
- package/src/channels/github/cursor-account.ts +0 -303
- package/src/channels/github/defaults.ts +0 -168
- package/src/channels/github/events.ts +0 -67
- package/src/channels/github/forward.ts +0 -359
- package/src/channels/github/github-channel.ts +0 -2334
- package/src/channels/github/index.ts +0 -54
- package/src/channels/github/progress.ts +0 -365
- package/src/channels/github/replay.ts +0 -372
- package/src/channels/github/state.ts +0 -124
- package/src/channels/github/types.ts +0 -590
- package/src/channels/gitlab/api.ts +0 -329
- package/src/channels/gitlab/binding.ts +0 -231
- package/src/channels/gitlab/checks.ts +0 -228
- package/src/channels/gitlab/cursor-account.ts +0 -105
- package/src/channels/gitlab/defaults.ts +0 -80
- package/src/channels/gitlab/events.ts +0 -37
- package/src/channels/gitlab/gitlab-channel.ts +0 -160
- package/src/channels/gitlab/gitlab-webhook.ts +0 -509
- package/src/channels/gitlab/index.ts +0 -44
- package/src/channels/gitlab/replay.ts +0 -328
- package/src/channels/gitlab/state.ts +0 -55
- package/src/channels/gitlab/types.ts +0 -247
- package/src/channels/issues/index.ts +0 -9
- package/src/channels/issues/issues-channel.ts +0 -45
- package/src/channels/issues/types.ts +0 -38
- package/src/channels/origin/api.ts +0 -507
- package/src/channels/origin/binding.ts +0 -114
- package/src/channels/origin/checks.ts +0 -250
- package/src/channels/origin/cursor-account.ts +0 -58
- package/src/channels/origin/defaults.ts +0 -140
- package/src/channels/origin/events.ts +0 -35
- package/src/channels/origin/index.ts +0 -35
- package/src/channels/origin/origin-channel.ts +0 -815
- package/src/channels/origin/origin-webhook.ts +0 -296
- package/src/channels/origin/reactions.ts +0 -72
- package/src/channels/origin/state.ts +0 -54
- package/src/channels/origin/types.ts +0 -295
- package/src/channels/slack/agentic-delivery.ts +0 -634
- package/src/channels/slack/agentic-posted.ts +0 -135
- package/src/channels/slack/agentic-signals.ts +0 -231
- package/src/channels/slack/api.ts +0 -761
- package/src/channels/slack/approvals.ts +0 -279
- package/src/channels/slack/assistant.ts +0 -76
- package/src/channels/slack/attachments.ts +0 -596
- package/src/channels/slack/auth.ts +0 -127
- package/src/channels/slack/blocks.ts +0 -131
- package/src/channels/slack/bot-mentions.ts +0 -318
- package/src/channels/slack/channel-watch.ts +0 -314
- package/src/channels/slack/cli-project.ts +0 -249
- package/src/channels/slack/code-fences.ts +0 -171
- package/src/channels/slack/constants.ts +0 -38
- package/src/channels/slack/credentials.ts +0 -88
- package/src/channels/slack/defaults.ts +0 -714
- package/src/channels/slack/dispatch.ts +0 -1060
- package/src/channels/slack/doctor.ts +0 -338
- package/src/channels/slack/eval-directive.ts +0 -306
- package/src/channels/slack/event-id-dedupe.ts +0 -30
- package/src/channels/slack/external-policy.ts +0 -75
- package/src/channels/slack/footer.ts +0 -106
- package/src/channels/slack/inbound.ts +0 -416
- package/src/channels/slack/index.ts +0 -53
- package/src/channels/slack/init.ts +0 -169
- package/src/channels/slack/interactive.ts +0 -406
- package/src/channels/slack/links.ts +0 -23
- package/src/channels/slack/live-delivery.ts +0 -489
- package/src/channels/slack/log.ts +0 -70
- package/src/channels/slack/manifest.ts +0 -240
- package/src/channels/slack/message-body.ts +0 -82
- package/src/channels/slack/nudge-carrier.ts +0 -224
- package/src/channels/slack/nudge-store.ts +0 -334
- package/src/channels/slack/paint-start.ts +0 -93
- package/src/channels/slack/placeholder.ts +0 -358
- package/src/channels/slack/pr-ref.ts +0 -74
- package/src/channels/slack/progress-delivery.ts +0 -138
- package/src/channels/slack/reasoning-card.ts +0 -125
- package/src/channels/slack/reasoning-chip.ts +0 -41
- package/src/channels/slack/recording-sink.ts +0 -167
- package/src/channels/slack/redact.ts +0 -6
- package/src/channels/slack/reply-options.ts +0 -279
- package/src/channels/slack/setup.ts +0 -125
- package/src/channels/slack/slack-channel.ts +0 -744
- package/src/channels/slack/socket-mode.ts +0 -140
- package/src/channels/slack/stop.ts +0 -25
- package/src/channels/slack/stream.ts +0 -66
- package/src/channels/slack/thread-context.ts +0 -485
- package/src/channels/slack/tool-approval-events.ts +0 -233
- package/src/channels/slack/tool-cards.ts +0 -198
- package/src/channels/slack/tool-chip.ts +0 -34
- package/src/channels/slack/types.ts +0 -787
- package/src/channels/slack/upload.ts +0 -137
- package/src/channels.ts +0 -543
- package/src/connections.ts +0 -153
- package/src/dashboard-session-url.ts +0 -30
- package/src/evals/assertions.ts +0 -688
- package/src/evals/expect.ts +0 -250
- package/src/evals/judge.ts +0 -329
- package/src/evals/loaders.ts +0 -111
- package/src/evals/matchers.ts +0 -223
- package/src/evals/reporters.ts +0 -257
- package/src/evals/results.ts +0 -130
- package/src/evals/run-facts.ts +0 -306
- package/src/evals.ts +0 -709
- package/src/extensions/cursor-cloud-agents/extension.ts +0 -131
- package/src/extensions/cursor-cloud-agents/lib/backend.ts +0 -386
- package/src/extensions/cursor-cloud-agents/lib/channels.ts +0 -11
- package/src/extensions/cursor-cloud-agents/lib/fleet.ts +0 -98
- package/src/extensions/cursor-cloud-agents/lib/inputs.ts +0 -5
- package/src/extensions/cursor-cloud-agents/lib/repos.ts +0 -80
- package/src/extensions/cursor-cloud-agents/lib/transcript.ts +0 -19
- package/src/extensions/cursor-cloud-agents/skills/handoff.md +0 -37
- package/src/extensions/cursor-cloud-agents/tools/cancel.ts +0 -21
- package/src/extensions/cursor-cloud-agents/tools/dump.ts +0 -47
- package/src/extensions/cursor-cloud-agents/tools/get.ts +0 -18
- package/src/extensions/cursor-cloud-agents/tools/launch.ts +0 -62
- package/src/extensions/cursor-cloud-agents/tools/list.ts +0 -31
- package/src/extensions/cursor-cloud-agents/tools/reply.ts +0 -36
- package/src/extensions/improve/extension.ts +0 -69
- package/src/extensions/improve/skills/yourself.ts +0 -50
- package/src/extensions/jev/extension.ts +0 -95
- package/src/extensions/jev/lib/evaluate.ts +0 -266
- package/src/extensions/jev/skills/gated-write.md +0 -25
- package/src/extensions/jev/skills/questions.md +0 -33
- package/src/extensions/jev/tools/evaluate.ts +0 -82
- package/src/extensions/slack-communication/evals/harness.ts +0 -705
- package/src/extensions/slack-communication/evals/slack-communication.eval.ts +0 -830
- package/src/extensions/slack-communication/evals/slack-placeholder.eval.ts +0 -172
- package/src/extensions/slack-communication/extension.ts +0 -44
- package/src/extensions/slack-communication/skills/slack-voice.ts +0 -56
- package/src/extensions/slack-communication/tools/delete-message.ts +0 -33
- package/src/extensions/slack-communication/tools/edit-message.ts +0 -42
- package/src/extensions/slack-communication/tools/post-card.ts +0 -28
- package/src/extensions/slack-communication/tools/post-file.ts +0 -82
- package/src/extensions/slack-communication/tools/post-update.ts +0 -40
- package/src/extensions/slack-communication/tools/react.ts +0 -30
- package/src/extensions/slack-communication/tools/set-status.ts +0 -21
- package/src/extensions.ts +0 -179
- package/src/files-backends/agent-store-presigned-url.ts +0 -11
- package/src/files-backends/cursor-hosted.ts +0 -1212
- package/src/files-backends/local-fs.ts +0 -163
- package/src/files.ts +0 -293
- package/src/filesystem.ts +0 -2005
- package/src/hooks.ts +0 -30
- package/src/index.ts +0 -259
- package/src/internal/advertise-tools.ts +0 -370
- package/src/internal/approval-gate.ts +0 -103
- package/src/internal/artifacts-store.ts +0 -836
- package/src/internal/as-of.ts +0 -257
- package/src/internal/auth.ts +0 -46
- package/src/internal/authored-alias-hooks.ts +0 -138
- package/src/internal/authored-loaders.ts +0 -188
- package/src/internal/bounded-int.ts +0 -24
- package/src/internal/bounded.ts +0 -25
- package/src/internal/brand.ts +0 -28
- package/src/internal/browser-origin-guard.ts +0 -67
- package/src/internal/builtin-tools/artifacts.ts +0 -62
- package/src/internal/builtin-tools/index.ts +0 -53
- package/src/internal/builtin-tools/reminders.ts +0 -145
- package/src/internal/channel-dispatch.ts +0 -129
- package/src/internal/channel-route-dispatch.ts +0 -58
- package/src/internal/channel-state.ts +0 -83
- package/src/internal/chat-client.ts +0 -594
- package/src/internal/cli-ax.ts +0 -2273
- package/src/internal/cli-bitbucket.ts +0 -438
- package/src/internal/cli-convert-automation.ts +0 -335
- package/src/internal/cli-cursor.ts +0 -282
- package/src/internal/cli-deploy.ts +0 -2486
- package/src/internal/cli-docs.ts +0 -192
- package/src/internal/cli-github.ts +0 -806
- package/src/internal/cli-gitlab.ts +0 -452
- package/src/internal/cli-images.ts +0 -672
- package/src/internal/cli-manifest.ts +0 -56
- package/src/internal/cli-mcp-oauth.ts +0 -395
- package/src/internal/cli-mcp.ts +0 -808
- package/src/internal/cli-skills.ts +0 -99
- package/src/internal/cli-slack-manual.ts +0 -418
- package/src/internal/cli-slack.ts +0 -874
- package/src/internal/cloud-merge.ts +0 -51
- package/src/internal/cloud-turn-cost.ts +0 -159
- package/src/internal/continuation-channel.ts +0 -233
- package/src/internal/continuation-identity.ts +0 -935
- package/src/internal/conversation-mirror.ts +0 -423
- package/src/internal/convert-automation/convert-workflow.ts +0 -1377
- package/src/internal/convert-automation/slug.ts +0 -29
- package/src/internal/convert-automation/types.ts +0 -212
- package/src/internal/cron.ts +0 -76
- package/src/internal/cursor/account-mcp.ts +0 -692
- package/src/internal/cursor/backend-client.ts +0 -978
- package/src/internal/cursor/bound-secret-file.ts +0 -101
- package/src/internal/cursor/credentials.ts +0 -560
- package/src/internal/cursor/cursor-api-transport.ts +0 -65
- package/src/internal/cursor/github-credentials.ts +0 -228
- package/src/internal/cursor/hosted-bound-secrets.ts +0 -71
- package/src/internal/cursor/hosted-deployment-secrets.ts +0 -100
- package/src/internal/cursor/hosted-store-secrets.ts +0 -152
- package/src/internal/cursor/session-token.ts +0 -111
- package/src/internal/cursor/store-api-client.ts +0 -323
- package/src/internal/cursor-account-mcp-auth.ts +0 -303
- package/src/internal/cursor-agent-template.ts +0 -50
- package/src/internal/cursor-deployment-relay.ts +0 -315
- package/src/internal/cursor-event-relay.ts +0 -675
- package/src/internal/cursor-relay-core.ts +0 -563
- package/src/internal/deferred-channel-session.ts +0 -61
- package/src/internal/deploy-client.ts +0 -1504
- package/src/internal/deploy-manifest.ts +0 -361
- package/src/internal/deploy-source.ts +0 -144
- package/src/internal/describe-error.ts +0 -32
- package/src/internal/dev-mode.ts +0 -20
- package/src/internal/discovery/agent-config.ts +0 -288
- package/src/internal/discovery/agent.ts +0 -381
- package/src/internal/discovery/channels.ts +0 -100
- package/src/internal/discovery/connections.ts +0 -505
- package/src/internal/discovery/context.ts +0 -38
- package/src/internal/discovery/cursor-plugin.ts +0 -628
- package/src/internal/discovery/extension-overlay.ts +0 -247
- package/src/internal/discovery/extensions.ts +0 -490
- package/src/internal/discovery/fs.ts +0 -103
- package/src/internal/discovery/hooks.ts +0 -63
- package/src/internal/discovery/info.ts +0 -174
- package/src/internal/discovery/instructions.ts +0 -98
- package/src/internal/discovery/modules.ts +0 -107
- package/src/internal/discovery/names.ts +0 -45
- package/src/internal/discovery/project.ts +0 -319
- package/src/internal/discovery/reminders.ts +0 -65
- package/src/internal/discovery/runtime.ts +0 -158
- package/src/internal/discovery/schedules.ts +0 -120
- package/src/internal/discovery/seed-files.ts +0 -34
- package/src/internal/discovery/services.ts +0 -151
- package/src/internal/discovery/skills.ts +0 -174
- package/src/internal/discovery/subagent.ts +0 -138
- package/src/internal/discovery/tools.ts +0 -170
- package/src/internal/discovery.ts +0 -27
- package/src/internal/distribution.ts +0 -126
- package/src/internal/docs-site.ts +0 -248
- package/src/internal/duration.ts +0 -37
- package/src/internal/env-file.ts +0 -83
- package/src/internal/eval-judge-model.ts +0 -142
- package/src/internal/eval-run-store.ts +0 -585
- package/src/internal/eval-runner.ts +0 -823
- package/src/internal/evals-client.ts +0 -475
- package/src/internal/event-log.ts +0 -342
- package/src/internal/event-mapper.ts +0 -811
- package/src/internal/expected-delivery-failure.ts +0 -34
- package/src/internal/factory-resource-channel.ts +0 -103
- package/src/internal/filesystem/errors.ts +0 -207
- package/src/internal/filesystem/format.ts +0 -253
- package/src/internal/filesystem/merge.ts +0 -192
- package/src/internal/filesystem/nearest.ts +0 -112
- package/src/internal/filesystem/scratch.ts +0 -239
- package/src/internal/filesystem/sdk-schemas.ts +0 -204
- package/src/internal/filesystem/tools.ts +0 -804
- package/src/internal/filesystem/walk.ts +0 -366
- package/src/internal/fixtures/units-server.ts +0 -52
- package/src/internal/framework-file-storage.ts +0 -357
- package/src/internal/framework-storage-selection.ts +0 -156
- package/src/internal/frontmatter.ts +0 -108
- package/src/internal/github-fanout.ts +0 -144
- package/src/internal/guest-network.ts +0 -391
- package/src/internal/handleAgentServeTrigger.ts +0 -286
- package/src/internal/host-files.ts +0 -341
- package/src/internal/host-kv.ts +0 -81
- package/src/internal/host-otel.ts +0 -231
- package/src/internal/host-platforms.ts +0 -170
- package/src/internal/hosted-admission-adapter.ts +0 -47
- package/src/internal/hosted-admission-context.ts +0 -37
- package/src/internal/hosted-catch-protocol.ts +0 -112
- package/src/internal/hosted-catch.ts +0 -179
- package/src/internal/hosted-delivery-protocol.ts +0 -787
- package/src/internal/hosted-delivery.ts +0 -1152
- package/src/internal/hosted-execution-diag.ts +0 -291
- package/src/internal/hosted-execution-flush.ts +0 -136
- package/src/internal/hosted-execution-latency.ts +0 -301
- package/src/internal/hosted-managed-automation.ts +0 -116
- package/src/internal/hosting.ts +0 -107
- package/src/internal/http-channel-define.ts +0 -25
- package/src/internal/http-channel.ts +0 -669
- package/src/internal/http-control-plane-session.ts +0 -110
- package/src/internal/ids.ts +0 -39
- package/src/internal/incoming-headers-to-fetch.ts +0 -45
- package/src/internal/init-interview.ts +0 -360
- package/src/internal/init-project.ts +0 -711
- package/src/internal/init-scaffold.ts +0 -182
- package/src/internal/inline-stdio-define-stub.ts +0 -4
- package/src/internal/inline-stdio-mcp.ts +0 -230
- package/src/internal/install-cursor-skills.ts +0 -601
- package/src/internal/is-record.ts +0 -3
- package/src/internal/json-schema.ts +0 -95
- package/src/internal/legacy-command-guard.ts +0 -54
- package/src/internal/listen-port.ts +0 -85
- package/src/internal/local-control-plane.ts +0 -442
- package/src/internal/local-env.ts +0 -59
- package/src/internal/local-ingress.ts +0 -90
- package/src/internal/log-ring.ts +0 -59
- package/src/internal/logs-client.ts +0 -477
- package/src/internal/map-pool.ts +0 -39
- package/src/internal/mcp-endpoint.ts +0 -747
- package/src/internal/mcp-host.ts +0 -481
- package/src/internal/mcp-oauth-on-demand.ts +0 -337
- package/src/internal/mcp-oauth-persist.ts +0 -118
- package/src/internal/mcp-oauth.ts +0 -549
- package/src/internal/net.ts +0 -29
- package/src/internal/open-browser.ts +0 -41
- package/src/internal/otel/attrs.ts +0 -16
- package/src/internal/otel/collector.ts +0 -937
- package/src/internal/otel/config.ts +0 -287
- package/src/internal/otel/http.ts +0 -122
- package/src/internal/otel/mcp.ts +0 -56
- package/src/internal/otel/propagation.ts +0 -17
- package/src/internal/otel/runtime.ts +0 -441
- package/src/internal/package-inline-stdio.ts +0 -114
- package/src/internal/peer-connections.ts +0 -96
- package/src/internal/platform-schedule-sync.ts +0 -75
- package/src/internal/platform-timers.ts +0 -365
- package/src/internal/playground/static.ts +0 -278
- package/src/internal/playground/toolchain.ts +0 -270
- package/src/internal/playground-proxy.ts +0 -564
- package/src/internal/process-memory-telemetry.ts +0 -334
- package/src/internal/project-layout.ts +0 -31
- package/src/internal/prompt-context.ts +0 -116
- package/src/internal/reminder-control-plane-protocol.ts +0 -482
- package/src/internal/reminder-runner.ts +0 -1559
- package/src/internal/reminder-schedule.ts +0 -104
- package/src/internal/reminder-store.ts +0 -176
- package/src/internal/request-error-status.ts +0 -95
- package/src/internal/request-headers.ts +0 -21
- package/src/internal/resolve-prod-target.ts +0 -334
- package/src/internal/resolved-connections.ts +0 -190
- package/src/internal/router.ts +0 -143
- package/src/internal/run-client.ts +0 -354
- package/src/internal/runtime-dispatch-runner.ts +0 -50
- package/src/internal/sanitize-mcp-tool-name.ts +0 -31
- package/src/internal/schedule-runner.ts +0 -154
- package/src/internal/scm/pr-url.ts +0 -245
- package/src/internal/sdk-runner.ts +0 -948
- package/src/internal/serve-restart.ts +0 -113
- package/src/internal/server.ts +0 -3135
- package/src/internal/session-cost.ts +0 -208
- package/src/internal/session-engine.ts +0 -5618
- package/src/internal/session-links.ts +0 -84
- package/src/internal/session-run-log.ts +0 -535
- package/src/internal/session-store.ts +0 -307
- package/src/internal/session-urls.ts +0 -32
- package/src/internal/sessions-client.ts +0 -239
- package/src/internal/skill-catalog.ts +0 -66
- package/src/internal/skills-sync.ts +0 -55
- package/src/internal/slack-provision-client.ts +0 -544
- package/src/internal/slack-thread-key.ts +0 -11
- package/src/internal/sleep.ts +0 -3
- package/src/internal/start-log-store.ts +0 -164
- package/src/internal/steering.ts +0 -17
- package/src/internal/storage-coordinator.ts +0 -800
- package/src/internal/storage-roles.ts +0 -86
- package/src/internal/storage.ts +0 -1
- package/src/internal/store-api-protocol.ts +0 -205
- package/src/internal/store-mirror.ts +0 -73
- package/src/internal/stream-progress.ts +0 -294
- package/src/internal/terminal-style.ts +0 -133
- package/src/internal/testing/factory-resource-fixtures.ts +0 -84
- package/src/internal/testing/scm-continuation-fixtures.ts +0 -285
- package/src/internal/tool-catalog.ts +0 -104
- package/src/internal/tool-policy.ts +0 -222
- package/src/internal/tool-result.ts +0 -50
- package/src/internal/trajectory.ts +0 -418
- package/src/internal/turn-cost.ts +0 -136
- package/src/internal/turn-governor.ts +0 -145
- package/src/internal/turn-lease-store.ts +0 -144
- package/src/internal/turn-outbox.ts +0 -77
- package/src/internal/update-check.ts +0 -517
- package/src/internal/v2-hosting.ts +0 -52
- package/src/internal/workspace-sync.ts +0 -114
- package/src/internal/workspace.ts +0 -505
- package/src/kv/memory-kv.ts +0 -94
- package/src/kv.ts +0 -18
- package/src/memory.ts +0 -487
- package/src/otel-public.ts +0 -24
- package/src/otel.ts +0 -320
- package/src/prompt.ts +0 -80
- package/src/reminders.ts +0 -65
- package/src/schedules.ts +0 -31
- package/src/skills.ts +0 -27
- package/src/storage-backends/cursor-hosted-v2.ts +0 -204
- package/src/storage-backends/cursor-hosted.ts +0 -388
- package/src/storage-backends/file-kv.ts +0 -276
- package/src/storage-protocol.ts +0 -261
- package/src/storage.ts +0 -408
- package/src/tools.ts +0 -166
- package/src/types.ts +0 -3766
- /package/dist/docs/assets/{reference_agent-config.md.DzGI777n.lean.js → reference_agent-config.md.Cj5uBKp4.lean.js} +0 -0
- /package/dist/docs/assets/{reference_artifacts.md.CFMNPreZ.lean.js → reference_artifacts.md.CQfKq8F2.lean.js} +0 -0
|
@@ -1,787 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Types for the Slack platform channel pack.
|
|
3
|
-
*/
|
|
4
|
-
|
|
5
|
-
import type { ContinuationIdentity } from "../../internal/continuation-identity.js";
|
|
6
|
-
import type {
|
|
7
|
-
AgentCloudOptions,
|
|
8
|
-
ArtifactsApi,
|
|
9
|
-
AuthContext,
|
|
10
|
-
ChannelEventHandlers,
|
|
11
|
-
HostContext,
|
|
12
|
-
} from "../../types.js";
|
|
13
|
-
import type { SlackReplyFooter } from "./footer.js";
|
|
14
|
-
|
|
15
|
-
export type { SlackReplyFooter, SlackReplyFooterContext } from "./footer.js";
|
|
16
|
-
|
|
17
|
-
/**
|
|
18
|
-
* Pluggable Slack Web API caller. Instead of holding a raw `xoxb-…` token,
|
|
19
|
-
* calls are executed by `call`. Implementations return the Slack response
|
|
20
|
-
* body (including `ok: false` platform errors) and only throw on
|
|
21
|
-
* programmer error.
|
|
22
|
-
*/
|
|
23
|
-
export interface SlackApiTransport {
|
|
24
|
-
kind: "api-transport";
|
|
25
|
-
/** Human-readable transport label for logs. */
|
|
26
|
-
label: string;
|
|
27
|
-
call(method: string, args: Record<string, unknown>): Promise<Record<string, unknown>>;
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
/** Bot token as a string, a (possibly async) resolver, or an API transport. */
|
|
31
|
-
export type SlackBotToken = string | (() => string | Promise<string>) | SlackApiTransport;
|
|
32
|
-
|
|
33
|
-
export interface SlackCredentials {
|
|
34
|
-
/**
|
|
35
|
-
* Bot user OAuth token (`xoxb-…`), or a {@link SlackApiTransport} that
|
|
36
|
-
* executes Web API calls without a local token. When omitted, falls back
|
|
37
|
-
* to `SLACK_BOT_TOKEN` (or `{envPrefix}_SLACK_BOT_TOKEN` via
|
|
38
|
-
* {@link SlackChannelOptions.envPrefix}).
|
|
39
|
-
*/
|
|
40
|
-
botToken?: SlackBotToken;
|
|
41
|
-
/**
|
|
42
|
-
* App-level token (`xapp-…`) for Socket Mode. Requires scope
|
|
43
|
-
* `connections:write`. Same fallback rules as `botToken`.
|
|
44
|
-
*/
|
|
45
|
-
appToken?: string | (() => string | Promise<string>);
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
/** Per-session Slack adapter state. */
|
|
49
|
-
export interface SlackChannelState {
|
|
50
|
-
channelId: string | null;
|
|
51
|
-
threadTs: string | null;
|
|
52
|
-
teamId: string | null;
|
|
53
|
-
triggeringUserId: string | null;
|
|
54
|
-
pendingToolCallMessage: string | null;
|
|
55
|
-
lastReasoningTypingAtMs: number | null;
|
|
56
|
-
lastReasoningTypingStatus: string | null;
|
|
57
|
-
/** Active chat stream message ts (`chat.startStream`). */
|
|
58
|
-
streamTs: string | null;
|
|
59
|
-
/** Channel id used when the stream was started. */
|
|
60
|
-
streamChannelId?: string | null;
|
|
61
|
-
/** Last assistant text delivered to the thread (stream or postMessage). */
|
|
62
|
-
lastPostedText?: string | null;
|
|
63
|
-
/**
|
|
64
|
-
* Text of the current assistant block already written into the open stream.
|
|
65
|
-
* The harness restarts its cumulative text at every tool boundary, so the
|
|
66
|
-
* append delta cannot be measured against {@link lastPostedText}.
|
|
67
|
-
*/
|
|
68
|
-
streamBlockText?: string | null;
|
|
69
|
-
/**
|
|
70
|
-
* Slack message ts of the agent's last delivered reply in this thread.
|
|
71
|
-
* Warm turns use this as the `<slack_thread_delta>` watermark.
|
|
72
|
-
*/
|
|
73
|
-
lastBotMessageTs?: string | null;
|
|
74
|
-
/** Admission already posted the static placeholder; execution must not post it again. */
|
|
75
|
-
placeholderPosted?: boolean;
|
|
76
|
-
/**
|
|
77
|
-
* When true, stream APIs failed for this session — use postMessage
|
|
78
|
-
* for the rest of the turn.
|
|
79
|
-
*/
|
|
80
|
-
streamingUnavailable?: boolean;
|
|
81
|
-
/** The open stream hit Slack's size cap; appends stop until it closes. */
|
|
82
|
-
streamFull?: boolean;
|
|
83
|
-
/** Chunks Slack accepted on the open stream, reported when it closes. */
|
|
84
|
-
streamAppendedChunks?: number;
|
|
85
|
-
/** Editable progress message ts when `chat.startStream` is unavailable. */
|
|
86
|
-
progressTs: string | null;
|
|
87
|
-
/**
|
|
88
|
-
* Message ts of approval cards keyed by tool call id (for
|
|
89
|
-
* replacing Approve/Deny buttons after a decision).
|
|
90
|
-
*/
|
|
91
|
-
approvalMessageByCallId?: Record<string, string>;
|
|
92
|
-
/** `reply.reasoningCard` bookkeeping for the current turn. */
|
|
93
|
-
reasoningCard?: ReasoningCardState;
|
|
94
|
-
/** `reply.toolCards` per-tool tallies for the current turn, keyed by tool name. */
|
|
95
|
-
toolCardCounts?: Record<string, ToolCardCount>;
|
|
96
|
-
/** Staged `post-file` uploads this turn (`agentic`). */
|
|
97
|
-
agenticFiles?: Array<{ path: string; name: string; workspace: string }>;
|
|
98
|
-
/** Inbound already started ack + chip; `turn.started` skips the backstop. */
|
|
99
|
-
startPainted?: boolean;
|
|
100
|
-
/** `Date.now()` at `turn.started`. Footer elapsed time is measured from this. */
|
|
101
|
-
turnStartedAtMs?: number | null;
|
|
102
|
-
}
|
|
103
|
-
|
|
104
|
-
/**
|
|
105
|
-
* Slack appends a task card's `details` across updates, so the reasoning
|
|
106
|
-
* card is fed deltas: `blockSent` is how much of the current reasoning block
|
|
107
|
-
* is already on Slack, `pending` is buffered text awaiting a flush.
|
|
108
|
-
*/
|
|
109
|
-
export interface ReasoningCardState {
|
|
110
|
-
status: "in_progress" | "complete" | null;
|
|
111
|
-
blockSent: number | null;
|
|
112
|
-
pending: string;
|
|
113
|
-
lastFlushMs: number | null;
|
|
114
|
-
chars: number;
|
|
115
|
-
}
|
|
116
|
-
|
|
117
|
-
/**
|
|
118
|
-
* `details` / `output` count the lines already on the card, so a later
|
|
119
|
-
* batch can start on a new line (Slack appends updates verbatim).
|
|
120
|
-
*/
|
|
121
|
-
export interface ToolCardCount {
|
|
122
|
-
started: number;
|
|
123
|
-
done: number;
|
|
124
|
-
errors: number;
|
|
125
|
-
details?: number;
|
|
126
|
-
output?: number;
|
|
127
|
-
}
|
|
128
|
-
|
|
129
|
-
/** A tool call as the model requested it (`actions.requested`). */
|
|
130
|
-
export interface SlackToolCall {
|
|
131
|
-
callId: string;
|
|
132
|
-
toolName: string;
|
|
133
|
-
args?: unknown;
|
|
134
|
-
}
|
|
135
|
-
|
|
136
|
-
/** A finished tool call (`action.result`). */
|
|
137
|
-
export interface SlackToolResult {
|
|
138
|
-
callId: string;
|
|
139
|
-
toolName: string;
|
|
140
|
-
output?: unknown;
|
|
141
|
-
isError: boolean;
|
|
142
|
-
}
|
|
143
|
-
|
|
144
|
-
/**
|
|
145
|
-
* What the status chip under the thread shows while a turn runs. Slack caps
|
|
146
|
-
* each line at 50 characters. While a `chat.startStream` is open Slack shows
|
|
147
|
-
* its own generic "is working…" instead, so in `"stream"` mode these lines
|
|
148
|
-
* are only visible until the first chunk goes out.
|
|
149
|
-
*/
|
|
150
|
-
export interface SlackStatusOptions {
|
|
151
|
-
/** First line of each reasoning block, throttled. Defaults to `true`. */
|
|
152
|
-
reasoning?: boolean;
|
|
153
|
-
/**
|
|
154
|
-
* Tool calls as they start: `"Running grep, glob…"` (tool names through
|
|
155
|
-
* {@link SlackChannelOptions.toolLabels}), or your own line. Defaults to
|
|
156
|
-
* `true`.
|
|
157
|
-
*/
|
|
158
|
-
tools?: boolean | ((calls: readonly SlackToolCall[]) => string);
|
|
159
|
-
/**
|
|
160
|
-
* Rotation Slack cycles through while nothing more specific is known
|
|
161
|
-
* (turn start, long silent stretches). Up to 5 entries. Defaults to
|
|
162
|
-
* Thinking… / Working on it… / Almost there….
|
|
163
|
-
*/
|
|
164
|
-
idle?: readonly string[];
|
|
165
|
-
}
|
|
166
|
-
|
|
167
|
-
export type SlackToolCardGroup = "per-call" | "per-tool";
|
|
168
|
-
|
|
169
|
-
/**
|
|
170
|
-
* Task cards for tool calls inside the streamed reply. Slack appends each
|
|
171
|
-
* update's `details` / `output` to the card, so the callbacks return the
|
|
172
|
-
* text to add, not the full card.
|
|
173
|
-
*/
|
|
174
|
-
export interface SlackToolCardOptions {
|
|
175
|
-
/**
|
|
176
|
-
* `"per-tool"` (default) keeps one card per tool name and counts calls in
|
|
177
|
-
* the title (`grep ×3`). `"per-call"` shows one card per call.
|
|
178
|
-
*/
|
|
179
|
-
group?: SlackToolCardGroup;
|
|
180
|
-
/**
|
|
181
|
-
* `true` (default): cards expand to show one line per call, the way the
|
|
182
|
-
* reasoning card does. `false`: cards are their titles only.
|
|
183
|
-
*/
|
|
184
|
-
collapsible?: boolean;
|
|
185
|
-
/**
|
|
186
|
-
* The line a collapsible card shows for a call. Defaults to what the
|
|
187
|
-
* playground shows in that tool's header: the grep pattern, the file
|
|
188
|
-
* path, the shell command.
|
|
189
|
-
*/
|
|
190
|
-
details?: (call: SlackToolCall) => string | undefined;
|
|
191
|
-
/** Text appended to a collapsible card when a call finishes. */
|
|
192
|
-
output?: (result: SlackToolResult) => string | undefined;
|
|
193
|
-
}
|
|
194
|
-
|
|
195
|
-
/**
|
|
196
|
-
* One task card that receives the model's reasoning as it streams. Its
|
|
197
|
-
* status is `in_progress` while the model thinks and `complete` once the
|
|
198
|
-
* answer text starts.
|
|
199
|
-
*/
|
|
200
|
-
export interface SlackReasoningCardOptions {
|
|
201
|
-
/** Card title. Defaults to `"Thinking"`. */
|
|
202
|
-
title?: string;
|
|
203
|
-
/**
|
|
204
|
-
* Stop appending after this many characters. Defaults to 1500: Slack caps
|
|
205
|
-
* a streamed message (answer text plus cards) near 12k, so a long card
|
|
206
|
-
* shortens the answer that fits before the reply spills into a second
|
|
207
|
-
* message.
|
|
208
|
-
*/
|
|
209
|
-
maxChars?: number;
|
|
210
|
-
}
|
|
211
|
-
|
|
212
|
-
/**
|
|
213
|
-
* How the reply reaches the thread while the turn runs.
|
|
214
|
-
*
|
|
215
|
-
* - `"post"` (default): live feedback is the status chip; the answer lands
|
|
216
|
-
* as one message when the turn finishes.
|
|
217
|
-
* - `"stream"`: the answer text streams into one message as it is written.
|
|
218
|
-
* Slack replaces the status chip with its generic "is working…" for the
|
|
219
|
-
* duration, so live feedback inside the message comes from cards.
|
|
220
|
-
* - `"agentic"`: inbound still starts turns. At turn start the channel
|
|
221
|
-
* acks the parent and raises the thinking chip, then paints thinking
|
|
222
|
-
* from `reasoning.appended` and tool lines from `actions.requested`
|
|
223
|
-
* (last assistant line before a `tool_call` wins when present).
|
|
224
|
-
* Model `set-status` does not own the chip. It does not write tool
|
|
225
|
-
* cards, reasoning cards, or assistant text. It watches `post-update`,
|
|
226
|
-
* `post-file`, `post-card`, `react`, `edit-message`, and
|
|
227
|
-
* `delete-message` and renders those.
|
|
228
|
-
*/
|
|
229
|
-
export type SlackReplyOptions =
|
|
230
|
-
| {
|
|
231
|
-
mode: "post";
|
|
232
|
-
status?: SlackStatusOptions;
|
|
233
|
-
footer?: SlackReplyFooter;
|
|
234
|
-
}
|
|
235
|
-
| {
|
|
236
|
-
mode: "stream";
|
|
237
|
-
status?: SlackStatusOptions;
|
|
238
|
-
/** Defaults to `false`. `true` is `{ group: "per-tool" }`. */
|
|
239
|
-
toolCards?: boolean | SlackToolCardOptions;
|
|
240
|
-
/** Defaults to `false`. */
|
|
241
|
-
reasoningCard?: boolean | SlackReasoningCardOptions;
|
|
242
|
-
footer?: SlackReplyFooter;
|
|
243
|
-
}
|
|
244
|
-
| {
|
|
245
|
-
mode: "agentic";
|
|
246
|
-
/**
|
|
247
|
-
* Reaction on the parent at turn start. Slack name, with or without
|
|
248
|
-
* colons. Default `eyes`.
|
|
249
|
-
*/
|
|
250
|
-
ack?: string;
|
|
251
|
-
/**
|
|
252
|
-
* Post this exact static line as the first message (`chat.startStream`
|
|
253
|
-
* when Slack allows, then `stopStream` so the chip can paint). The
|
|
254
|
-
* first `post-update` edits that same ts. Maximum 80 characters.
|
|
255
|
-
*/
|
|
256
|
-
placeholder?: string;
|
|
257
|
-
/** Chip while the turn runs. Reasoning and tools default on. Idle is ignored. */
|
|
258
|
-
status?: Omit<SlackStatusOptions, "idle">;
|
|
259
|
-
footer?: SlackReplyFooter;
|
|
260
|
-
};
|
|
261
|
-
|
|
262
|
-
/**
|
|
263
|
-
* Human labels for tool names, shared by the status chip and the cards.
|
|
264
|
-
* A function may return `undefined` to keep the raw tool name.
|
|
265
|
-
*/
|
|
266
|
-
export type SlackToolLabels =
|
|
267
|
-
| Readonly<Record<string, string>>
|
|
268
|
-
| ((toolName: string) => string | undefined);
|
|
269
|
-
|
|
270
|
-
export interface SlackAuthor {
|
|
271
|
-
/** Slack user id. Empty string for bot posts with no `user` field. */
|
|
272
|
-
userId: string;
|
|
273
|
-
userName?: string;
|
|
274
|
-
isBot: boolean;
|
|
275
|
-
/** Posting app's `bot_id` (`B…`) when the message is bot-authored. */
|
|
276
|
-
botId?: string;
|
|
277
|
-
}
|
|
278
|
-
|
|
279
|
-
export interface SlackReactionAddedInfo {
|
|
280
|
-
/** Slack reaction name without surrounding colons. */
|
|
281
|
-
name: string;
|
|
282
|
-
/** User id of the message author, when Slack includes it. */
|
|
283
|
-
itemUserId?: string;
|
|
284
|
-
}
|
|
285
|
-
|
|
286
|
-
/**
|
|
287
|
-
* Delegation metadata carried on bot-to-bot mention posts (Slack message
|
|
288
|
-
* `metadata`, event type {@link SLACK_DELEGATION_METADATA_EVENT_TYPE}).
|
|
289
|
-
* Absent on posts from bots that don't speak the protocol — the gate then
|
|
290
|
-
* treats the mention as depth 1.
|
|
291
|
-
*/
|
|
292
|
-
export interface SlackDelegationInfo {
|
|
293
|
-
/** Delegation hop count. A dispatcher woken by a human posts depth 1. */
|
|
294
|
-
depth: number;
|
|
295
|
-
/** Mount slug / display name of the delegating agent. */
|
|
296
|
-
fromAgent?: string;
|
|
297
|
-
/** Session id on the delegating agent, for cross-agent tracing. */
|
|
298
|
-
originSessionId?: string;
|
|
299
|
-
}
|
|
300
|
-
|
|
301
|
-
/** File upload on an inbound Slack message (see {@link SlackMessage.files}). */
|
|
302
|
-
export interface SlackMessageFile {
|
|
303
|
-
id: string;
|
|
304
|
-
name?: string;
|
|
305
|
-
title?: string;
|
|
306
|
-
mimetype?: string;
|
|
307
|
-
filetype?: string;
|
|
308
|
-
mode?: string;
|
|
309
|
-
size?: number;
|
|
310
|
-
/**
|
|
311
|
-
* When set, bytes were already downloaded by the caller. Skip a second
|
|
312
|
-
* `files.info` / private URL fetch.
|
|
313
|
-
*/
|
|
314
|
-
dataBase64?: string;
|
|
315
|
-
}
|
|
316
|
-
|
|
317
|
-
export interface SlackMessage {
|
|
318
|
-
/** Raw top-level `text` exactly as Slack sent it. Often empty on bot posts. */
|
|
319
|
-
text: string;
|
|
320
|
-
/**
|
|
321
|
-
* Raw mrkdwn body: top-level `text` plus attachment / Block Kit content.
|
|
322
|
-
* Alert feeds (Datadog, PagerDuty) leave `text` empty and put the whole
|
|
323
|
-
* notification in attachments, so read `body` for message content. Unlike
|
|
324
|
-
* {@link markdown} this keeps `<url|label>` links intact.
|
|
325
|
-
*/
|
|
326
|
-
body: string;
|
|
327
|
-
/** Body roughly suitable for the model (mention markers cleaned). */
|
|
328
|
-
markdown: string;
|
|
329
|
-
ts: string;
|
|
330
|
-
threadTs: string;
|
|
331
|
-
channelId: string;
|
|
332
|
-
teamId?: string;
|
|
333
|
-
author?: SlackAuthor;
|
|
334
|
-
/** Present only for a synthetic message dispatched from `reaction_added`. */
|
|
335
|
-
reaction?: SlackReactionAddedInfo;
|
|
336
|
-
/** Parsed delegation metadata when the post carried it (bot mentions). */
|
|
337
|
-
delegation?: SlackDelegationInfo;
|
|
338
|
-
/**
|
|
339
|
-
* Slack file uploads on this message (top-level + forwarded shares).
|
|
340
|
-
* Downloaded during dispatch into vision images / workspace files.
|
|
341
|
-
*/
|
|
342
|
-
files?: SlackMessageFile[];
|
|
343
|
-
}
|
|
344
|
-
|
|
345
|
-
export interface SlackDispatchDecision {
|
|
346
|
-
auth: AuthContext | null;
|
|
347
|
-
/** Extra context blocks injected alongside the default Slack context. */
|
|
348
|
-
context?: string[];
|
|
349
|
-
/**
|
|
350
|
-
* Override the user prompt sent to the model. When omitted, uses the Slack
|
|
351
|
-
* message markdown (plus context blocks). Host-prepared reviews can pass
|
|
352
|
-
* a short "read pr.txt" prompt here.
|
|
353
|
-
*/
|
|
354
|
-
message?: string;
|
|
355
|
-
/**
|
|
356
|
-
* Absolute directory used as the local harness `cwd` for this session
|
|
357
|
-
* (new sessions only).
|
|
358
|
-
*/
|
|
359
|
-
workspaceDir?: string;
|
|
360
|
-
/**
|
|
361
|
-
* Relative path → contents written into the session workspace before the
|
|
362
|
-
* first turn (new sessions only). Prefer this for host-prepared files like
|
|
363
|
-
* `pr.txt` so default skill materialization stays on the session cwd.
|
|
364
|
-
* Values may be utf8 strings or `{ encoding: "base64", data }` blobs.
|
|
365
|
-
*/
|
|
366
|
-
workspaceFiles?: Record<string, string | { encoding: "base64"; data: string; mimeType?: string }>;
|
|
367
|
-
/**
|
|
368
|
-
* Base64 images attached to this turn for vision (Cursor SDK `images`).
|
|
369
|
-
* Populated automatically from Slack file uploads during inbound dispatch.
|
|
370
|
-
*/
|
|
371
|
-
images?: Array<{ data: string; mimeType: string }>;
|
|
372
|
-
/** Session display title (new sessions only). */
|
|
373
|
-
title?: string;
|
|
374
|
-
/**
|
|
375
|
-
* Per-session cloud options (new sessions only). Use this to attach a PR to
|
|
376
|
-
* a cloud agent from an inbound Slack mention.
|
|
377
|
-
*/
|
|
378
|
-
cloud?: AgentCloudOptions;
|
|
379
|
-
/**
|
|
380
|
-
* Seed the Cursor SDK agent id for a new session (ignored when the thread
|
|
381
|
-
* already has one). Lets a handler reattach a Slack thread to an existing
|
|
382
|
-
* cloud conversation (e.g. per-PR `bc-…` affinity).
|
|
383
|
-
*/
|
|
384
|
-
sdkAgentId?: string;
|
|
385
|
-
/**
|
|
386
|
-
* Additional Slack message timestamps to omit from `<slack_thread>` hydration
|
|
387
|
-
* (e.g. every message in a coalesced batch already folded into `message`).
|
|
388
|
-
*/
|
|
389
|
-
excludeThreadTimestamps?: readonly string[];
|
|
390
|
-
}
|
|
391
|
-
|
|
392
|
-
export interface SlackSuggestedPrompt {
|
|
393
|
-
title: string;
|
|
394
|
-
message: string;
|
|
395
|
-
}
|
|
396
|
-
|
|
397
|
-
export interface SlackThreadHandle {
|
|
398
|
-
post(text: string, options?: { blocks?: unknown[] }): Promise<{ ts: string }>;
|
|
399
|
-
startTyping(status: string, loadingMessages?: string[]): Promise<void>;
|
|
400
|
-
setTitle(title: string): Promise<void>;
|
|
401
|
-
setSuggestedPrompts(prompts: SlackSuggestedPrompt[], title?: string): Promise<void>;
|
|
402
|
-
}
|
|
403
|
-
|
|
404
|
-
export interface SlackBinding {
|
|
405
|
-
thread: SlackThreadHandle;
|
|
406
|
-
slack: {
|
|
407
|
-
channelId: string;
|
|
408
|
-
threadTs: string;
|
|
409
|
-
teamId?: string;
|
|
410
|
-
};
|
|
411
|
-
/** Shared host services (MCP / GitHub / Slack). */
|
|
412
|
-
host: HostContext;
|
|
413
|
-
/**
|
|
414
|
-
* Durable artifacts (unbound — the handler runs before any session is
|
|
415
|
-
* admitted; pass `sessionId` in `tag` input to attribute one).
|
|
416
|
-
*/
|
|
417
|
-
artifacts: ArtifactsApi;
|
|
418
|
-
}
|
|
419
|
-
|
|
420
|
-
export type SlackMessageHandler = (
|
|
421
|
-
ctx: SlackBinding,
|
|
422
|
-
message: SlackMessage,
|
|
423
|
-
) => SlackDispatchDecision | null | undefined | Promise<SlackDispatchDecision | null | undefined>;
|
|
424
|
-
|
|
425
|
-
/**
|
|
426
|
-
* Host probes into a Slack thread's continuation. Optional on dispatch
|
|
427
|
-
* deps; the serve host wires them at channel start.
|
|
428
|
-
*/
|
|
429
|
-
export interface SlackContinuationProbes {
|
|
430
|
-
/**
|
|
431
|
-
* When set, full-thread hydration runs only for cold-start turns (no
|
|
432
|
-
* existing session). Warm turns load a `<slack_thread_delta>` instead.
|
|
433
|
-
*/
|
|
434
|
-
hasContinuationSession?: (continuationToken: string) => Promise<boolean>;
|
|
435
|
-
/** True when a turn is already running for this Slack continuation. */
|
|
436
|
-
isContinuationBusy?: (continuationToken: string) => Promise<boolean>;
|
|
437
|
-
/**
|
|
438
|
-
* Warm-delta watermark from session channel state (`lastBotMessageTs`).
|
|
439
|
-
* When absent, delta falls back to the last matching bot post in-thread.
|
|
440
|
-
*/
|
|
441
|
-
getContinuationLastBotMessageTs?: (continuationToken: string) => Promise<string | undefined>;
|
|
442
|
-
/** Cancel the active turn + clear coalesced nudges for this continuation. */
|
|
443
|
-
interruptContinuation?: (continuationToken: string) => Promise<boolean>;
|
|
444
|
-
}
|
|
445
|
-
|
|
446
|
-
/**
|
|
447
|
-
* A Block Kit action click (Socket Mode `block_actions` payload) that the
|
|
448
|
-
* framework does not own — the built-in tool-approval Approve/Deny actions
|
|
449
|
-
* are routed to `resolveApproval` before author handlers see anything.
|
|
450
|
-
*/
|
|
451
|
-
export interface SlackBlockAction {
|
|
452
|
-
/** `action_id` of the clicked element. */
|
|
453
|
-
actionId: string;
|
|
454
|
-
/** `block_id` of the actions row holding the element (Slack always sets one). */
|
|
455
|
-
blockId: string;
|
|
456
|
-
/**
|
|
457
|
-
* Element `value` payload; empty string when absent (button-style
|
|
458
|
-
* elements only — select/overflow `selected_option`s are not read).
|
|
459
|
-
*/
|
|
460
|
-
value: string;
|
|
461
|
-
/** Plain-text label of the clicked element, when present. */
|
|
462
|
-
label?: string;
|
|
463
|
-
channelId: string;
|
|
464
|
-
/**
|
|
465
|
-
* Thread of the message carrying the element (the message's own ts when
|
|
466
|
-
* it is a top-level post — clicks on a thread root stay in its thread).
|
|
467
|
-
*/
|
|
468
|
-
threadTs: string;
|
|
469
|
-
/** The message carrying the clicked element. */
|
|
470
|
-
messageTs: string;
|
|
471
|
-
/** That message's blocks, for `chat.update` resolution cards. */
|
|
472
|
-
messageBlocks?: unknown[];
|
|
473
|
-
/** Slack user who clicked. */
|
|
474
|
-
userId: string;
|
|
475
|
-
userName?: string;
|
|
476
|
-
teamId?: string;
|
|
477
|
-
/**
|
|
478
|
-
* Slack `action_ts` — unique per click; block-action dispatch dedupes on
|
|
479
|
-
* it. Empty when the payload omitted it (malformed; never dispatched).
|
|
480
|
-
*/
|
|
481
|
-
actionTs: string;
|
|
482
|
-
}
|
|
483
|
-
|
|
484
|
-
/**
|
|
485
|
-
* Author handler for {@link SlackBlockAction} clicks. Return a
|
|
486
|
-
* {@link SlackDispatchDecision} to dispatch a turn on the click's thread —
|
|
487
|
-
* the click is dispatched like an inbound message from the clicking user
|
|
488
|
-
* (thread-scoped continuation, `<slack_context>` naming the clicker) — or
|
|
489
|
-
* `null` to ignore the click.
|
|
490
|
-
*/
|
|
491
|
-
export type SlackBlockActionHandler = (
|
|
492
|
-
ctx: SlackBinding,
|
|
493
|
-
action: SlackBlockAction,
|
|
494
|
-
) => SlackDispatchDecision | null | undefined | Promise<SlackDispatchDecision | null | undefined>;
|
|
495
|
-
|
|
496
|
-
/**
|
|
497
|
-
* Opt-in channel watch: dispatch on posts in configured channels without an
|
|
498
|
-
* @mention. Mentions stay global (any channel the bot is in). Listening
|
|
499
|
-
* without a mention names its channels, or `"*"` for every channel the bot
|
|
500
|
-
* is in — thread replies only.
|
|
501
|
-
*/
|
|
502
|
-
export interface SlackChannelPostsOptions {
|
|
503
|
-
/**
|
|
504
|
-
* Channels to watch. Either a lone `"*"` (every channel the bot is in;
|
|
505
|
-
* thread replies only — set `posts: "replies"`) or a finite list: at
|
|
506
|
-
* least one channel id (`C…` / `G…`), at most 10 distinct ids. Mixing
|
|
507
|
-
* `"*"` with ids is a definition error. `#name` entries may accompany
|
|
508
|
-
* ids (resolved via `conversations.list` on Socket Mode). On
|
|
509
|
-
* Cursor-managed hosting, id entries become channel-scoped
|
|
510
|
-
* subscriptions. A lone `"*"` is the guest watcher only: it is omitted
|
|
511
|
-
* from the deploy manifest, and a thread reply is delivered when a
|
|
512
|
-
* mention already opened that thread. The bot must be a member of a
|
|
513
|
-
* channel to receive its messages.
|
|
514
|
-
*/
|
|
515
|
-
allow: string[];
|
|
516
|
-
/**
|
|
517
|
-
* Which posts dispatch. `"top-level"` (default) fires only on new
|
|
518
|
-
* channel posts — never on replies inside other people's threads.
|
|
519
|
-
* `"replies"` is the opposite: thread replies only (`ts !== threadTs`),
|
|
520
|
-
* never a top-level post. `"all"` is both. A lone `"*"` allowlist
|
|
521
|
-
* requires `"replies"`.
|
|
522
|
-
*/
|
|
523
|
-
posts?: "top-level" | "all" | "replies";
|
|
524
|
-
/**
|
|
525
|
-
* Delay dispatch by this many milliseconds so rapid edits settle first.
|
|
526
|
-
* Edits during the window update the dispatched text; deleting the post
|
|
527
|
-
* cancels the dispatch. Defaults to `0` (immediate). Socket Mode only —
|
|
528
|
-
* the Cursor relay does not deliver edits/deletes.
|
|
529
|
-
*/
|
|
530
|
-
debounceMs?: number;
|
|
531
|
-
/**
|
|
532
|
-
* Also dispatch bot-authored posts (alert feeds, webhook integrations,
|
|
533
|
-
* other agents posting notes). Defaults to `false` — human posts only.
|
|
534
|
-
* The watching bot's own posts are always dropped regardless (loop
|
|
535
|
-
* safety), matched by the app's `bot_id` / bot user id from `auth.test`.
|
|
536
|
-
*/
|
|
537
|
-
includeBotPosts?: boolean;
|
|
538
|
-
}
|
|
539
|
-
|
|
540
|
-
/**
|
|
541
|
-
* Opt-in bot-to-bot mention wake: allow @mentions authored by explicitly
|
|
542
|
-
* trusted bots (e.g. a dispatcher agent) to dispatch like human mentions.
|
|
543
|
-
* Default off — bot-authored mentions are dropped (loop safety). There is
|
|
544
|
-
* deliberately no "any bot" wildcard; trusting a bot is a per-bot decision.
|
|
545
|
-
*
|
|
546
|
-
* Loop protection is layered: this allowlist, the always-on own-post
|
|
547
|
-
* filter, a delegation-depth budget (Slack message metadata), and a
|
|
548
|
-
* per-thread wake budget.
|
|
549
|
-
*/
|
|
550
|
-
export interface SlackBotMentionsOptions {
|
|
551
|
-
/**
|
|
552
|
-
* Bots whose mentions may wake this agent. Three entry forms:
|
|
553
|
-
*
|
|
554
|
-
* - `"B…"` — a `bot_id` (dedicated Slack app).
|
|
555
|
-
* - `"U…"` — a bot *user* id.
|
|
556
|
-
* - `"<botId>:<username>"` — compound: the posting app's `bot_id` AND its
|
|
557
|
-
* message `username` must both match (case-insensitive username). Use
|
|
558
|
-
* this when several agents post through one app under different
|
|
559
|
-
* usernames. Fails closed when the event carries no username.
|
|
560
|
-
*
|
|
561
|
-
* Must be non-empty (empty is a definition error).
|
|
562
|
-
*/
|
|
563
|
-
allowFrom: string[];
|
|
564
|
-
/**
|
|
565
|
-
* Maximum delegation depth admitted (from the mention's delegation
|
|
566
|
-
* metadata; mentions without metadata count as depth 1). Defaults to 2 —
|
|
567
|
-
* human → dispatcher → specialist, no deeper chains.
|
|
568
|
-
*/
|
|
569
|
-
maxDepth?: number;
|
|
570
|
-
/**
|
|
571
|
-
* Maximum bot-initiated wakes per thread per hour (sliding window).
|
|
572
|
-
* Defaults to 5. Rate-limits ping-pong between bots that carry no
|
|
573
|
-
* delegation metadata; termination comes from {@link maxPerThreadTotal}.
|
|
574
|
-
*/
|
|
575
|
-
maxPerThreadPerHour?: number;
|
|
576
|
-
/**
|
|
577
|
-
* Lifetime cap on bot-initiated wakes per thread (resets only after the
|
|
578
|
-
* thread has been idle for 24h). Defaults to 20. This is the terminating
|
|
579
|
-
* backstop: a sliding window alone refills, so two mutually-allowlisted
|
|
580
|
-
* bots could ping-pong forever at the rate cap. Avoid mutual allowlists
|
|
581
|
-
* regardless — keep the delegation graph a DAG.
|
|
582
|
-
*/
|
|
583
|
-
maxPerThreadTotal?: number;
|
|
584
|
-
}
|
|
585
|
-
|
|
586
|
-
/**
|
|
587
|
-
* How the agent engages over Slack. Omitted entirely = mentions + DMs,
|
|
588
|
-
* which is also the default for each flag — summoned, never proactive.
|
|
589
|
-
*/
|
|
590
|
-
export interface SlackEngagementOptions {
|
|
591
|
-
/** Dispatch on `app_mention`. Defaults to `true`. */
|
|
592
|
-
mentions?: boolean;
|
|
593
|
-
/** Dispatch on direct messages (`message.im`). Defaults to `true`. */
|
|
594
|
-
directMessages?: boolean;
|
|
595
|
-
/**
|
|
596
|
-
* Opt-in channel watch (see {@link SlackChannelPostsOptions}). Requires
|
|
597
|
-
* the Slack app to subscribe to `message.channels` / `message.groups`
|
|
598
|
-
* (`slack create --channel-posts`).
|
|
599
|
-
*/
|
|
600
|
-
channelPosts?: SlackChannelPostsOptions;
|
|
601
|
-
/**
|
|
602
|
-
* Opt-in bot-to-bot mention wake (see {@link SlackBotMentionsOptions}).
|
|
603
|
-
*/
|
|
604
|
-
botMentions?: SlackBotMentionsOptions;
|
|
605
|
-
}
|
|
606
|
-
|
|
607
|
-
/** `"thread"` = anyone in the thread (default); `"author"` = session starter only. */
|
|
608
|
-
export type SlackRespondTo = "thread" | "author";
|
|
609
|
-
|
|
610
|
-
export interface SlackAccessPolicy {
|
|
611
|
-
/** Defaults to `"thread"`. Applied by the default inbound handlers. */
|
|
612
|
-
respondTo?: SlackRespondTo;
|
|
613
|
-
/** Refuse Slack Connect / guest / other-workspace senders. Defaults to `true`. */
|
|
614
|
-
blockExternals?: boolean;
|
|
615
|
-
}
|
|
616
|
-
|
|
617
|
-
export interface SlackChannelOptions {
|
|
618
|
-
credentials?: SlackCredentials;
|
|
619
|
-
/**
|
|
620
|
-
* Continuation selector. Omit this to inherit the agent architecture's
|
|
621
|
-
* default. Set it explicitly only when migrating persisted identities.
|
|
622
|
-
*/
|
|
623
|
-
continuation?: ContinuationIdentity;
|
|
624
|
-
/** Defaults to `{ respondTo: "thread", blockExternals: true }`. */
|
|
625
|
-
policy?: SlackAccessPolicy;
|
|
626
|
-
/**
|
|
627
|
-
* Per-agent env prefix for tokens. `envPrefix: "MY_AGENT"` reads
|
|
628
|
-
* `MY_AGENT_SLACK_BOT_TOKEN` + `MY_AGENT_SLACK_APP_TOKEN`. Prefer this over
|
|
629
|
-
* shared `SLACK_*` vars when serving multiple agents in one process.
|
|
630
|
-
* Ignored when `credentials` is set explicitly.
|
|
631
|
-
*/
|
|
632
|
-
envPrefix?: string;
|
|
633
|
-
/**
|
|
634
|
-
* Optional log sink. When omitted, uses `console.log` until the server
|
|
635
|
-
* mounts the channel and rebinds to {@link ServeOptions.logger}.
|
|
636
|
-
*/
|
|
637
|
-
logger?: (line: string) => void;
|
|
638
|
-
/**
|
|
639
|
-
* Engagement surface. Defaults to mentions + DMs only; channel watch is
|
|
640
|
-
* opt-in via {@link SlackEngagementOptions.channelPosts}.
|
|
641
|
-
*/
|
|
642
|
-
engagement?: SlackEngagementOptions;
|
|
643
|
-
onAppMention?: SlackMessageHandler;
|
|
644
|
-
onDirectMessage?: SlackMessageHandler;
|
|
645
|
-
/**
|
|
646
|
-
* Handler for Socket Mode `reaction_added` events on messages. The Slack
|
|
647
|
-
* app must subscribe to `reaction_added` and have `reactions:read`.
|
|
648
|
-
* The handler receives a synthetic message whose thread timestamp is the
|
|
649
|
-
* reacted-to message and whose {@link SlackMessage.reaction} names the emoji.
|
|
650
|
-
*/
|
|
651
|
-
onReactionAdded?: SlackMessageHandler;
|
|
652
|
-
/**
|
|
653
|
-
* Handler for watched channel posts (same contract as `onAppMention`:
|
|
654
|
-
* return `null` to skip, or a {@link SlackDispatchDecision} to dispatch).
|
|
655
|
-
* Only consulted when `engagement.channelPosts` is configured.
|
|
656
|
-
*/
|
|
657
|
-
onChannelPost?: SlackMessageHandler;
|
|
658
|
-
/**
|
|
659
|
-
* Override / extend the default stream-event handlers (typing, replies).
|
|
660
|
-
* Handlers you provide replace the matching default handlers.
|
|
661
|
-
*/
|
|
662
|
-
events?: ChannelEventHandlers<SlackChannelState>;
|
|
663
|
-
/**
|
|
664
|
-
* When true (default), install the default turn sinks for `post` and
|
|
665
|
-
* `stream`, or the signal watcher for `agentic`.
|
|
666
|
-
*/
|
|
667
|
-
deliverDefaults?: boolean;
|
|
668
|
-
/**
|
|
669
|
-
* How the reply reaches the thread: status chip + one message at the end
|
|
670
|
-
* (`"post"`, default), a live-streamed message with optional tool and
|
|
671
|
-
* reasoning cards (`"stream"`), or agent-owned posts (`"agentic"`).
|
|
672
|
-
* See {@link SlackReplyOptions}.
|
|
673
|
-
*/
|
|
674
|
-
reply?: SlackReplyOptions;
|
|
675
|
-
/** Human labels for tool names in the status chip and cards. */
|
|
676
|
-
toolLabels?: SlackToolLabels;
|
|
677
|
-
/**
|
|
678
|
-
* @deprecated Use `reply: { mode: "stream" }` / `reply: { mode: "post" }`.
|
|
679
|
-
* Ignored when `reply` is set.
|
|
680
|
-
*/
|
|
681
|
-
streaming?: boolean;
|
|
682
|
-
/**
|
|
683
|
-
* @deprecated Use `reply: { mode: "stream", toolCards: true }`. Ignored
|
|
684
|
-
* when `reply` is set.
|
|
685
|
-
*/
|
|
686
|
-
thinkingSteps?: boolean;
|
|
687
|
-
/**
|
|
688
|
-
* Write Slack's assistant status chip ("Saw your follow-up…") when a
|
|
689
|
-
* follow-up coalesces into a running turn. Defaults to `true`, except
|
|
690
|
-
* when `reply.mode` is `"agentic"`.
|
|
691
|
-
*
|
|
692
|
-
* Set to `false` on channels that report progress themselves: the chip is
|
|
693
|
-
* cleared by the default `message.completed` handler, so a channel that
|
|
694
|
-
* replaces that handler has nothing to take it down and it outlives the
|
|
695
|
-
* turn.
|
|
696
|
-
*/
|
|
697
|
-
followUpStatus?: boolean;
|
|
698
|
-
/**
|
|
699
|
-
* Opt in to Slack delivery for human-in-the-loop tool approvals.
|
|
700
|
-
*
|
|
701
|
-
* Framework park/resume is enabled by `needsApproval` on server tools.
|
|
702
|
-
* Set this to `true` to also post Block Kit Approve/Deny cards and route
|
|
703
|
-
* the Socket Mode `interactive` clicks to `resolveApproval`.
|
|
704
|
-
*
|
|
705
|
-
* Defaults to `false`. For custom composition, spread
|
|
706
|
-
* `buildToolApprovalEvents({ credentials })` into `events`.
|
|
707
|
-
*/
|
|
708
|
-
toolApprovals?: boolean;
|
|
709
|
-
/**
|
|
710
|
-
* Route interactive payloads to approval resolution without opting into
|
|
711
|
-
* the full {@link buildToolApprovalEvents} handler pack. Use when
|
|
712
|
-
* composing `buildToolApprovalEvents` into `events` manually.
|
|
713
|
-
*/
|
|
714
|
-
interactivity?: boolean;
|
|
715
|
-
/**
|
|
716
|
-
* Handler for Block Kit actions the framework does not own (the built-in
|
|
717
|
-
* tool-approval Approve/Deny clicks are routed to `resolveApproval`
|
|
718
|
-
* first). Return a {@link SlackDispatchDecision} — typically with a
|
|
719
|
-
* thread-scoped auth via `buildSlackAuthContext` so replies in the same
|
|
720
|
-
* thread continue the session — to dispatch a turn on the click's
|
|
721
|
-
* thread, or `null` to ignore the click. Setting this implies
|
|
722
|
-
* interactive routing; the Slack app manifest still needs
|
|
723
|
-
* `interactivity` enabled (`buildSlackManifest({ interactivity: true })`).
|
|
724
|
-
*/
|
|
725
|
-
onBlockAction?: SlackBlockActionHandler;
|
|
726
|
-
/**
|
|
727
|
-
* Suggested prompts shown when an assistant thread starts (and optionally
|
|
728
|
-
* after a turn completes).
|
|
729
|
-
*/
|
|
730
|
-
suggestedPrompts?: SlackSuggestedPrompt[];
|
|
731
|
-
suggestedPromptsTitle?: string;
|
|
732
|
-
/**
|
|
733
|
-
* @deprecated Use `reply: { mode, status: { idle: [...] } }`. Ignored when
|
|
734
|
-
* `reply` is set.
|
|
735
|
-
*/
|
|
736
|
-
loadingMessages?: string[];
|
|
737
|
-
/**
|
|
738
|
-
* Built-in Slack `eval` / `eval list` / `eval status` directive that runs
|
|
739
|
-
* playground eval batches (`host.evals` / `/v1/dev/evals/runs`) without an
|
|
740
|
-
* agent turn, on mentions and DMs only. Defaults to `true`. Set `false` to
|
|
741
|
-
* leave `eval …` for the model handler instead.
|
|
742
|
-
*/
|
|
743
|
-
evalCommands?: boolean;
|
|
744
|
-
/** Optional teardown (e.g. stop example-local debouncers). Runs after Socket Mode stops. */
|
|
745
|
-
onStop?: () => void | Promise<void>;
|
|
746
|
-
}
|
|
747
|
-
|
|
748
|
-
export interface SlackManifestOptions {
|
|
749
|
-
/** Display name for the Slack app. */
|
|
750
|
-
name: string;
|
|
751
|
-
/** Bot display name (handle without @). Defaults from `name`. */
|
|
752
|
-
botDisplayName?: string;
|
|
753
|
-
/** Env profile. Affects display name suffix. */
|
|
754
|
-
env: "dev" | "prod";
|
|
755
|
-
/** Optional short description shown in the Slack app directory. Slack caps this at 140 characters. */
|
|
756
|
-
description?: string;
|
|
757
|
-
/**
|
|
758
|
-
* Slack agent profile (`features.agent_view.agent_description`).
|
|
759
|
-
* Defaults to `description`. Separate from the 140-character marketplace line.
|
|
760
|
-
*/
|
|
761
|
-
agentDescription?: string;
|
|
762
|
-
/** Include `agent_view` + `assistant:write` for typing status. */
|
|
763
|
-
assistant?: boolean;
|
|
764
|
-
/**
|
|
765
|
-
* Enable Slack interactivity (needed for Approve/Deny cards).
|
|
766
|
-
* Defaults to `false` — enable when using `toolApprovals: true`.
|
|
767
|
-
*/
|
|
768
|
-
interactivity?: boolean;
|
|
769
|
-
/**
|
|
770
|
-
* Subscribe to `message.channels` + `message.groups` for the opt-in
|
|
771
|
-
* channel watch (`engagement.channelPosts`). Defaults to `false`.
|
|
772
|
-
*/
|
|
773
|
-
channelPosts?: boolean;
|
|
774
|
-
/** Seed suggested prompts into the manifest `agent_view`. */
|
|
775
|
-
suggestedPrompts?: Array<{ title: string; message: string }>;
|
|
776
|
-
/**
|
|
777
|
-
* Emit `settings.managed_app_settings`. Defaults to `true` — Cursor
|
|
778
|
-
* provisions these apps through its manager app. Pass `false` when the
|
|
779
|
-
* caller is not a manager user token.
|
|
780
|
-
*/
|
|
781
|
-
managedByCursor?: boolean;
|
|
782
|
-
}
|
|
783
|
-
|
|
784
|
-
/** Soft-fail result for optional Slack API features. */
|
|
785
|
-
export type SoftSlackResult<T extends Record<string, unknown> = Record<string, unknown>> =
|
|
786
|
-
| ({ ok: true } & T)
|
|
787
|
-
| { ok: false; error: string; unsupported?: boolean };
|