@cursor/bdk 0.2.3 → 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/dist/bin/agent-serve.js +9 -1
- 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/docs/404.html +2 -2
- package/dist/docs/assets/{app.BOIHhrKi.js → app.4kQ8Db_q.js} +4 -4
- package/dist/docs/assets/chunks/@localSearchIndexroot.CvuAJ0My.js +1 -0
- package/dist/docs/assets/chunks/{VPLocalSearchBox.D49zVZqM.js → VPLocalSearchBox.DY1RwB8Q.js} +1 -1
- package/dist/docs/assets/chunks/{arc.hmjb-sc4.js → arc.CxE_fSPK.js} +1 -1
- package/dist/docs/assets/chunks/{architectureDiagram-Q4EWVU46.CxEI1KqM.js → architectureDiagram-Q4EWVU46.CPX426ui.js} +1 -1
- package/dist/docs/assets/chunks/{baseUniq.DHHvBWoV.js → baseUniq.CB52JrKG.js} +1 -1
- package/dist/docs/assets/chunks/{blockDiagram-DXYQGD6D.DnXW-3bu.js → blockDiagram-DXYQGD6D.J0cNaQCL.js} +1 -1
- package/dist/docs/assets/chunks/{c4Diagram-AHTNJAMY.e-47O2jM.js → c4Diagram-AHTNJAMY.DJn3vEGT.js} +1 -1
- package/dist/docs/assets/chunks/channel.BoNycAoN.js +1 -0
- package/dist/docs/assets/chunks/{chunk-4BX2VUAB.3ry4pYXB.js → chunk-4BX2VUAB.Dao618F6.js} +1 -1
- package/dist/docs/assets/chunks/{chunk-4TB4RGXK.DGIZFRx6.js → chunk-4TB4RGXK.QW8Rhjai.js} +1 -1
- package/dist/docs/assets/chunks/{chunk-55IACEB6.DKBnqg9U.js → chunk-55IACEB6.DfRLLKF_.js} +1 -1
- package/dist/docs/assets/chunks/{chunk-EDXVE4YY.BIU8Ue5k.js → chunk-EDXVE4YY.CIV2ApKQ.js} +1 -1
- package/dist/docs/assets/chunks/{chunk-FMBD7UC4.DP-TFhjI.js → chunk-FMBD7UC4.BEheSuxp.js} +1 -1
- package/dist/docs/assets/chunks/{chunk-OYMX7WX6.Ux0OYj5v.js → chunk-OYMX7WX6.CUN88ENB.js} +1 -1
- package/dist/docs/assets/chunks/{chunk-QZHKN3VN.BzHMwYox.js → chunk-QZHKN3VN.CgqCs8b_.js} +1 -1
- package/dist/docs/assets/chunks/{chunk-YZCP3GAM.D4OGAsSP.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.Jq_7BUNx.js → cose-bilkent-S5V4N54A.BLcUxhWE.js} +1 -1
- package/dist/docs/assets/chunks/{dagre-KV5264BT.Di-skR2x.js → dagre-KV5264BT.Ep7LofOm.js} +1 -1
- package/dist/docs/assets/chunks/{diagram-5BDNPKRD.DeREHIdH.js → diagram-5BDNPKRD.Bzf4GSQ4.js} +1 -1
- package/dist/docs/assets/chunks/{diagram-G4DWMVQ6.C7Kcqxro.js → diagram-G4DWMVQ6.DD6Jh-eM.js} +1 -1
- package/dist/docs/assets/chunks/{diagram-MMDJMWI5.BK3eohyo.js → diagram-MMDJMWI5.oOIl8bWd.js} +1 -1
- package/dist/docs/assets/chunks/{diagram-TYMM5635.C6TyymXT.js → diagram-TYMM5635.DHs85Ade.js} +1 -1
- package/dist/docs/assets/chunks/{erDiagram-SMLLAGMA.DYGG-gGx.js → erDiagram-SMLLAGMA.BIb5ghCk.js} +1 -1
- package/dist/docs/assets/chunks/{flowDiagram-DWJPFMVM.C9nBcSV4.js → flowDiagram-DWJPFMVM.DV4paY9k.js} +1 -1
- package/dist/docs/assets/chunks/{ganttDiagram-T4ZO3ILL.wAg_ymsp.js → ganttDiagram-T4ZO3ILL.AyEKA6_v.js} +1 -1
- package/dist/docs/assets/chunks/{gitGraphDiagram-UUTBAWPF.B87j9Oeg.js → gitGraphDiagram-UUTBAWPF.BltiCDFo.js} +1 -1
- package/dist/docs/assets/chunks/{graph.CuFMj31w.js → graph.DzuEYGdC.js} +1 -1
- package/dist/docs/assets/chunks/{infoDiagram-42DDH7IO.P_mLGumP.js → infoDiagram-42DDH7IO.BV2l981J.js} +1 -1
- package/dist/docs/assets/chunks/{ishikawaDiagram-UXIWVN3A.DyuL_MsT.js → ishikawaDiagram-UXIWVN3A.BA4Izf-m.js} +1 -1
- package/dist/docs/assets/chunks/{journeyDiagram-VCZTEJTY.CtP09IoJ.js → journeyDiagram-VCZTEJTY.DjaFbFS3.js} +1 -1
- package/dist/docs/assets/chunks/{kanban-definition-6JOO6SKY.BoeSYPZo.js → kanban-definition-6JOO6SKY.CfTFieDs.js} +1 -1
- package/dist/docs/assets/chunks/{layout.B0lMMtNo.js → layout.DzfWqTBV.js} +1 -1
- package/dist/docs/assets/chunks/{linear.HxRBiAFX.js → linear.BO6mpulV.js} +1 -1
- package/dist/docs/assets/chunks/{min.BGlFFHwS.js → min.BGgTadgT.js} +1 -1
- package/dist/docs/assets/chunks/{mindmap-definition-QFDTVHPH.JyLBD9M8.js → mindmap-definition-QFDTVHPH.DPuIXVWY.js} +1 -1
- package/dist/docs/assets/chunks/{pieDiagram-DEJITSTG.DnSmNZF8.js → pieDiagram-DEJITSTG.BOnl3bBg.js} +1 -1
- package/dist/docs/assets/chunks/{quadrantDiagram-34T5L4WZ.CUCnbfCa.js → quadrantDiagram-34T5L4WZ.DNB6Ckdc.js} +1 -1
- package/dist/docs/assets/chunks/{requirementDiagram-MS252O5E.py0IVUn5.js → requirementDiagram-MS252O5E.D5-Qo7vb.js} +1 -1
- package/dist/docs/assets/chunks/{sankeyDiagram-XADWPNL6.Bkc-HWYp.js → sankeyDiagram-XADWPNL6.8t65cesf.js} +1 -1
- package/dist/docs/assets/chunks/{sequenceDiagram-FGHM5R23.Dqn8Mlv2.js → sequenceDiagram-FGHM5R23.CaG07BdS.js} +1 -1
- package/dist/docs/assets/chunks/{stateDiagram-FHFEXIEX.JikkoQUU.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.b6HQ6zG_.js → theme.Dx-JhpTB.js} +2 -2
- package/dist/docs/assets/chunks/{timeline-definition-GMOUNBTQ.BvpSXiBj.js → timeline-definition-GMOUNBTQ.fE53zQ2s.js} +1 -1
- package/dist/docs/assets/chunks/{vennDiagram-DHZGUBPP.CU7MVnZx.js → vennDiagram-DHZGUBPP.DJsZZaJg.js} +1 -1
- package/dist/docs/assets/chunks/{wardley-RL74JXVD.BKwC4ctG.js → wardley-RL74JXVD.844kyrjl.js} +1 -1
- package/dist/docs/assets/chunks/{wardleyDiagram-NUSXRM2D.BfaF6Uhe.js → wardleyDiagram-NUSXRM2D.CMZ-Ru_t.js} +1 -1
- package/dist/docs/assets/chunks/{xychartDiagram-5P7HB3ND.Bg5dcpj4.js → xychartDiagram-5P7HB3ND.XXrhBc7a.js} +1 -1
- package/dist/docs/assets/{deployment.md.BJ8i7Q6p.js → deployment.md.UhnJIMr-.js} +2 -2
- package/dist/docs/assets/{deployment.md.BJ8i7Q6p.lean.js → deployment.md.UhnJIMr-.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/{reference_agent-config.md.DzGI777n.js → reference_agent-config.md.Cj5uBKp4.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/building-with-agents.html +35 -35
- package/dist/docs/deployment.html +37 -37
- package/dist/docs/deployment.md +4 -1
- 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 +35 -35
- 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 +35 -35
- 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 +25 -2
- package/dist/docs/quickstart.html +35 -35
- package/dist/docs/reference/agent-config.html +37 -37
- package/dist/docs/reference/agent-config.md +1 -1
- package/dist/docs/reference/artifacts.html +35 -35
- package/dist/docs/reference/channels.html +35 -35
- package/dist/docs/reference/cli.html +35 -35
- package/dist/docs/reference/connections.html +35 -35
- package/dist/docs/reference/evals.html +35 -35
- 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 +35 -35
- 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 +35 -35
- 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-deploy.d.ts.map +1 -1
- package/dist/internal/cli-deploy.js +19 -5
- 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/extensions.d.ts.map +1 -1
- package/dist/internal/discovery/extensions.js +12 -0
- package/dist/internal/hosting.d.ts +8 -0
- package/dist/internal/hosting.d.ts.map +1 -1
- package/dist/internal/hosting.js +24 -0
- package/dist/types.d.ts +18 -2
- package/dist/types.d.ts.map +1 -1
- package/docs/deployment.md +4 -1
- package/docs/guides/jev.md +7 -0
- package/docs/reference/agent-config.md +1 -1
- package/docs/reference/extensions.md +13 -0
- package/package.json +1 -9
- package/dist/docs/assets/chunks/@localSearchIndexroot.D5L-b34G.js +0 -1
- package/dist/docs/assets/chunks/channel.BbOGaJQP.js +0 -1
- package/dist/docs/assets/chunks/classDiagram-6PBFFD2Q.Db58HCb1.js +0 -1
- package/dist/docs/assets/chunks/classDiagram-v2-HSJHXN6E.Db58HCb1.js +0 -1
- package/dist/docs/assets/chunks/clone.Co4MBflG.js +0 -1
- package/dist/docs/assets/chunks/stateDiagram-v2-QKLJ7IA2.CMsKhrW0.js +0 -1
- package/src/artifacts.ts +0 -68
- package/src/bin/agent-serve.ts +0 -1854
- 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 -293
- 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/cursor-grokbot-agents/extension.ts +0 -132
- package/src/extensions/cursor-grokbot-agents/lib/agents.ts +0 -42
- package/src/extensions/cursor-grokbot-agents/lib/backend.ts +0 -208
- package/src/extensions/cursor-grokbot-agents/lib/contacts.ts +0 -74
- package/src/extensions/cursor-grokbot-agents/lib/conversation.ts +0 -260
- package/src/extensions/cursor-grokbot-agents/lib/inputs.ts +0 -21
- package/src/extensions/cursor-grokbot-agents/lib/lock.ts +0 -26
- package/src/extensions/cursor-grokbot-agents/skills/consult.md +0 -40
- package/src/extensions/cursor-grokbot-agents/tools/ask.ts +0 -32
- package/src/extensions/cursor-grokbot-agents/tools/check.ts +0 -25
- package/src/extensions/cursor-grokbot-agents/tools/interrupt.ts +0 -17
- package/src/extensions/cursor-grokbot-agents/tools/list.ts +0 -26
- 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 -2318
- 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 -2519
- 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 -396
- package/src/internal/cli-mcp.ts +0 -808
- package/src/internal/cli-skills.ts +0 -98
- 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/connection-env.ts +0 -106
- 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 -984
- 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 -1574
- 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 -516
- 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 -824
- package/src/internal/hosted-delivery.ts +0 -1410
- 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 -114
- 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 -604
- package/src/internal/is-record.ts +0 -3
- package/src/internal/json-schema.ts +0 -95
- package/src/internal/legacy-command-guard.ts +0 -66
- 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 -509
- 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 -959
- package/src/internal/serve-restart.ts +0 -113
- package/src/internal/server.ts +0 -3147
- package/src/internal/session-cost.ts +0 -208
- package/src/internal/session-engine.ts +0 -5622
- 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 -3776
- /package/dist/docs/assets/{reference_agent-config.md.DzGI777n.lean.js → reference_agent-config.md.Cj5uBKp4.lean.js} +0 -0
|
@@ -1,172 +0,0 @@
|
|
|
1
|
-
import { defineEval, type EvalDefinition, equals } from "../../../evals.js";
|
|
2
|
-
import {
|
|
3
|
-
chipStatuses,
|
|
4
|
-
countMethod,
|
|
5
|
-
firstCall,
|
|
6
|
-
JENNY_ACK,
|
|
7
|
-
netPosted,
|
|
8
|
-
playAgentic,
|
|
9
|
-
playHostedPlaceholder,
|
|
10
|
-
playPlaceholder,
|
|
11
|
-
publish,
|
|
12
|
-
startInbound,
|
|
13
|
-
uniqueTexts,
|
|
14
|
-
} from "./harness.js";
|
|
15
|
-
|
|
16
|
-
const PLACEHOLDER = "Ok, checking…";
|
|
17
|
-
|
|
18
|
-
const slackPlaceholderEval: EvalDefinition = defineEval({
|
|
19
|
-
description:
|
|
20
|
-
"Static agentic Slack placeholder posting, overlay, retract, and follow-up behavior.",
|
|
21
|
-
cases: [
|
|
22
|
-
{
|
|
23
|
-
id: "placeholder-then-replace",
|
|
24
|
-
description:
|
|
25
|
-
"The authored line is the first readable text. The first post-update edits that same timestamp, and a later update is a new message.",
|
|
26
|
-
async test(t) {
|
|
27
|
-
const off = await playPlaceholder({
|
|
28
|
-
agentDelayMs: 40,
|
|
29
|
-
steps: [...publish("Found the leak."), { type: "turn.completed" }],
|
|
30
|
-
});
|
|
31
|
-
const on = await playPlaceholder({
|
|
32
|
-
placeholder: PLACEHOLDER,
|
|
33
|
-
waitForPlaceholder: true,
|
|
34
|
-
agentDelayMs: 40,
|
|
35
|
-
steps: [
|
|
36
|
-
...publish("Found the leak."),
|
|
37
|
-
...publish("Also the test."),
|
|
38
|
-
{ type: "turn.completed" },
|
|
39
|
-
],
|
|
40
|
-
});
|
|
41
|
-
t.check(off.first?.text, equals("Found the leak."));
|
|
42
|
-
t.check(on.first?.text, equals(PLACEHOLDER));
|
|
43
|
-
t.check(on.last?.text, equals("Also the test."));
|
|
44
|
-
t.check(countMethod(on.sink, "chat.startStream"), equals(1));
|
|
45
|
-
t.check(countMethod(on.sink, "chat.stopStream"), equals(1));
|
|
46
|
-
t.check(countMethod(on.sink, "chat.postMessage"), equals(1));
|
|
47
|
-
t.check(countMethod(on.sink, "chat.update"), equals(1));
|
|
48
|
-
t.check(
|
|
49
|
-
firstCall(on.sink, "chat.update")?.args.ts,
|
|
50
|
-
equals(firstCall(on.sink, "chat.startStream")?.ts),
|
|
51
|
-
);
|
|
52
|
-
t.check(firstCall(on.sink, "chat.update")?.args.markdown_text, equals("Found the leak."));
|
|
53
|
-
t.check(uniqueTexts(on.sink), equals([PLACEHOLDER, "Found the leak.", "Also the test."]));
|
|
54
|
-
},
|
|
55
|
-
},
|
|
56
|
-
{
|
|
57
|
-
id: "placeholder-chip-after-stop",
|
|
58
|
-
description: "The placeholder stream closes before tool status paints the chip.",
|
|
59
|
-
async test(t) {
|
|
60
|
-
const play = await playPlaceholder({
|
|
61
|
-
placeholder: PLACEHOLDER,
|
|
62
|
-
waitForPlaceholder: true,
|
|
63
|
-
steps: [
|
|
64
|
-
{
|
|
65
|
-
type: "message.completed",
|
|
66
|
-
text: "Querying Datadog.",
|
|
67
|
-
finishReason: "tool_call",
|
|
68
|
-
},
|
|
69
|
-
{
|
|
70
|
-
type: "actions.requested",
|
|
71
|
-
calls: [{ tool: "Datadog", id: "d1" }],
|
|
72
|
-
},
|
|
73
|
-
...publish("Found the leak."),
|
|
74
|
-
{ type: "turn.completed" },
|
|
75
|
-
],
|
|
76
|
-
});
|
|
77
|
-
const stop = play.sink.calls.findIndex(call => call.method === "chat.stopStream");
|
|
78
|
-
const chip = play.sink.calls.findIndex(
|
|
79
|
-
call =>
|
|
80
|
-
call.method === "assistant.threads.setStatus" &&
|
|
81
|
-
call.args.status === "Querying Datadog.",
|
|
82
|
-
);
|
|
83
|
-
t.check(stop >= 0, equals(true));
|
|
84
|
-
t.check(chip > stop, equals(true));
|
|
85
|
-
t.check(chipStatuses(play.sink).includes("Querying Datadog."), equals(true));
|
|
86
|
-
},
|
|
87
|
-
},
|
|
88
|
-
{
|
|
89
|
-
id: "placeholder-retracted-if-silent",
|
|
90
|
-
description:
|
|
91
|
-
"A static placeholder that the agent never claims is deleted when the turn ends.",
|
|
92
|
-
async test(t) {
|
|
93
|
-
const play = await playPlaceholder({
|
|
94
|
-
placeholder: PLACEHOLDER,
|
|
95
|
-
waitForPlaceholder: true,
|
|
96
|
-
steps: [{ type: "turn.started" }, { type: "turn.completed" }],
|
|
97
|
-
});
|
|
98
|
-
t.check(play.first?.text, equals(PLACEHOLDER));
|
|
99
|
-
t.check(countMethod(play.sink, "chat.update"), equals(0));
|
|
100
|
-
t.check(countMethod(play.sink, "chat.delete"), equals(1));
|
|
101
|
-
t.check(netPosted(play.sink), equals(0));
|
|
102
|
-
},
|
|
103
|
-
},
|
|
104
|
-
{
|
|
105
|
-
id: "placeholder-hosted-posts-on-turn",
|
|
106
|
-
description:
|
|
107
|
-
"Hosted admission posts nothing. Execution uses the authored static line and the first post-update overlays it.",
|
|
108
|
-
async test(t) {
|
|
109
|
-
const play = await playHostedPlaceholder({
|
|
110
|
-
placeholder: PLACEHOLDER,
|
|
111
|
-
steps: [
|
|
112
|
-
...publish("Found the leak."),
|
|
113
|
-
...publish("Also the test."),
|
|
114
|
-
{ type: "turn.completed" },
|
|
115
|
-
],
|
|
116
|
-
});
|
|
117
|
-
t.check(play.admittedPosts, equals(0));
|
|
118
|
-
t.check(play.first?.text, equals(PLACEHOLDER));
|
|
119
|
-
t.check(play.last?.text, equals("Also the test."));
|
|
120
|
-
t.check(countMethod(play.sink, "chat.startStream"), equals(1));
|
|
121
|
-
t.check(countMethod(play.sink, "chat.update"), equals(1));
|
|
122
|
-
t.check(countMethod(play.sink, "chat.delete"), equals(0));
|
|
123
|
-
},
|
|
124
|
-
},
|
|
125
|
-
{
|
|
126
|
-
id: "placeholder-coalesced-followup-overlays",
|
|
127
|
-
description:
|
|
128
|
-
"A coalesced follow-up gets a new static placeholder that the next agent update overlays.",
|
|
129
|
-
async test(t) {
|
|
130
|
-
const first = startInbound({
|
|
131
|
-
ack: JENNY_ACK,
|
|
132
|
-
channelId: "C1",
|
|
133
|
-
ts: "1.1",
|
|
134
|
-
threadTs: "1.0",
|
|
135
|
-
placeholder: PLACEHOLDER,
|
|
136
|
-
});
|
|
137
|
-
await first.done;
|
|
138
|
-
await playAgentic([...publish("Found the leak."), { type: "turn.completed" }], {
|
|
139
|
-
sink: first.sink,
|
|
140
|
-
channelId: "C1",
|
|
141
|
-
startPainted: true,
|
|
142
|
-
placeholder: PLACEHOLDER,
|
|
143
|
-
});
|
|
144
|
-
const second = startInbound({
|
|
145
|
-
ack: JENNY_ACK,
|
|
146
|
-
channelId: "C1",
|
|
147
|
-
ts: "1.2",
|
|
148
|
-
threadTs: "1.0",
|
|
149
|
-
placeholder: PLACEHOLDER,
|
|
150
|
-
coalesced: true,
|
|
151
|
-
sink: first.sink,
|
|
152
|
-
});
|
|
153
|
-
await second.done;
|
|
154
|
-
await playAgentic([...publish("Also the timeout."), { type: "turn.completed" }], {
|
|
155
|
-
sink: first.sink,
|
|
156
|
-
channelId: "C1",
|
|
157
|
-
startPainted: true,
|
|
158
|
-
placeholder: PLACEHOLDER,
|
|
159
|
-
});
|
|
160
|
-
const streams = first.sink.calls.filter(call => call.method === "chat.startStream");
|
|
161
|
-
const updates = first.sink.calls.filter(call => call.method === "chat.update");
|
|
162
|
-
t.check(streams.length, equals(2));
|
|
163
|
-
t.check(updates.length, equals(2));
|
|
164
|
-
t.check(updates[0]?.args.ts, equals(streams[0]?.ts));
|
|
165
|
-
t.check(updates[1]?.args.ts, equals(streams[1]?.ts));
|
|
166
|
-
t.check(updates[1]?.args.markdown_text, equals("Also the timeout."));
|
|
167
|
-
},
|
|
168
|
-
},
|
|
169
|
-
],
|
|
170
|
-
});
|
|
171
|
-
|
|
172
|
-
export default slackPlaceholderEval;
|
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Tools and voice so an agent can own Slack outbound in agentic mode.
|
|
3
|
-
*
|
|
4
|
-
* ```ts
|
|
5
|
-
* // agent/extensions/slack.ts
|
|
6
|
-
* import slackCommunication from "@cursor/bdk/extensions/slack-communication";
|
|
7
|
-
*
|
|
8
|
-
* export default slackCommunication();
|
|
9
|
-
* // export default slackCommunication({ tone: "Lead with the merge decision." });
|
|
10
|
-
* ```
|
|
11
|
-
*
|
|
12
|
-
* Pair with `slackChannel({ reply: { mode: "agentic" } })`. The channel
|
|
13
|
-
* acks the parent (`reply.ack`, default `eyes`) and paints the status
|
|
14
|
-
* chip from turn hooks and `actions.requested` (not model `set-status`).
|
|
15
|
-
* It watches `post-update`,
|
|
16
|
-
* `post-file`, `post-card`, `react`, `edit-message`, and
|
|
17
|
-
* `delete-message` (bare or `<namespace>__<name>`) and renders them
|
|
18
|
-
* through the channel Slack client. The tools do not call Slack.
|
|
19
|
-
* `post-update` returns a ts for edit and delete.
|
|
20
|
-
*/
|
|
21
|
-
|
|
22
|
-
import { z } from "zod";
|
|
23
|
-
import { defineExtension } from "../../extensions.js";
|
|
24
|
-
import type { Extension } from "../../types.js";
|
|
25
|
-
|
|
26
|
-
export interface SlackCommunicationOptions {
|
|
27
|
-
/** Extra voice, appended to `slack-voice`. */
|
|
28
|
-
tone?: string;
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
const slackCommunication: Extension<
|
|
32
|
-
SlackCommunicationOptions,
|
|
33
|
-
SlackCommunicationOptions | undefined
|
|
34
|
-
> = defineExtension({
|
|
35
|
-
root: import.meta.dirname,
|
|
36
|
-
description: "Tools and voice so an agent can own Slack outbound when the channel is agentic.",
|
|
37
|
-
config: z
|
|
38
|
-
.object({
|
|
39
|
-
tone: z.string().trim().min(1).optional(),
|
|
40
|
-
})
|
|
41
|
-
.default({}),
|
|
42
|
-
});
|
|
43
|
-
|
|
44
|
-
export default slackCommunication;
|
|
@@ -1,56 +0,0 @@
|
|
|
1
|
-
import { prompt } from "../../../prompt.js";
|
|
2
|
-
import { defineSkill } from "../../../skills.js";
|
|
3
|
-
import type { SkillDefinition } from "../../../types.js";
|
|
4
|
-
import extension from "../extension.js";
|
|
5
|
-
|
|
6
|
-
export const DEFAULT_VOICE: string = prompt`
|
|
7
|
-
# Slack voice
|
|
8
|
-
|
|
9
|
-
You own this thread. Humans only see what you post through the Slack tools.
|
|
10
|
-
|
|
11
|
-
Lead with the result. Write complete sentences. Do not narrate every tool call.
|
|
12
|
-
|
|
13
|
-
The channel acks the parent and paints thinking on the status chip. Do not react to ack. Do not set-status for thinking.
|
|
14
|
-
|
|
15
|
-
If the turn will take more than a glance, a one-line post-update is the first tool, before investigation.
|
|
16
|
-
|
|
17
|
-
A multi-step investigate also posts the dead-end or widen and the breakthrough. Open plus a late dump is not enough. Tools stay off the thread. The channel paints them on the chip.
|
|
18
|
-
|
|
19
|
-
## post-update
|
|
20
|
-
|
|
21
|
-
A new message in the thread. Mid-turn: when the picture changed and a reader should know. Final: a new message. Do not rewrite a previous line. The result includes ts. Pass that ts to edit-message or delete-message.
|
|
22
|
-
|
|
23
|
-
## post-card
|
|
24
|
-
|
|
25
|
-
A collapsible task card (id, title, details, status). Same id updates in place. That is progress. Do not use it as the reply.
|
|
26
|
-
|
|
27
|
-
## post-file
|
|
28
|
-
|
|
29
|
-
Attach a workspace file to the reply. Evidence, not text you could have written.
|
|
30
|
-
|
|
31
|
-
## react
|
|
32
|
-
|
|
33
|
-
Emoji on a message ts. Omit ts to react to the thread root. Later reactions for a real reason. The channel already acked.
|
|
34
|
-
|
|
35
|
-
## set-status
|
|
36
|
-
|
|
37
|
-
The channel owns the thinking chip. Do not write thinking here.
|
|
38
|
-
|
|
39
|
-
## edit-message
|
|
40
|
-
|
|
41
|
-
Correct a fact already posted (wrong number, wrong link). ts is the one post-update returned. Not a narrative rewrite.
|
|
42
|
-
|
|
43
|
-
## delete-message
|
|
44
|
-
|
|
45
|
-
A message this turn just posted that is wrong (duplicate, secret, wrong thread). ts is the one post-update returned. Short reason. Never delete to clean up progress. Never delete someone else's message.
|
|
46
|
-
|
|
47
|
-
Do not also write the reply as assistant text. The channel ignores that in agentic mode.
|
|
48
|
-
`;
|
|
49
|
-
|
|
50
|
-
const tone = extension.config.tone;
|
|
51
|
-
const slackVoice: SkillDefinition = defineSkill({
|
|
52
|
-
description: "How to write Slack updates in this thread.",
|
|
53
|
-
markdown: tone === undefined || tone === "" ? DEFAULT_VOICE : `${DEFAULT_VOICE}\n\n${tone}`,
|
|
54
|
-
});
|
|
55
|
-
|
|
56
|
-
export default slackVoice;
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
import { z } from "zod";
|
|
2
|
-
import { has } from "../../../channels/slack/agentic-posted.js";
|
|
3
|
-
import { MAX_REASON_CHARS } from "../../../channels/slack/agentic-signals.js";
|
|
4
|
-
import { defineTool } from "../../../tools.js";
|
|
5
|
-
import type { ToolDefinition } from "../../../types.js";
|
|
6
|
-
|
|
7
|
-
const INVALID_ARGUMENTS_MESSAGE = "delete-message needs a ts this turn posted and a short reason.";
|
|
8
|
-
const FOREIGN_TS = "ts is not a message this turn posted";
|
|
9
|
-
|
|
10
|
-
const deleteMessage: ToolDefinition = defineTool({
|
|
11
|
-
description: [
|
|
12
|
-
"Delete a message this turn just posted that is wrong (duplicate, secret, wrong thread).",
|
|
13
|
-
"ts is the one post-update returned. Never someone else's message.",
|
|
14
|
-
"Never delete to clean up progress.",
|
|
15
|
-
"The channel watching this turn deletes it.",
|
|
16
|
-
].join(" "),
|
|
17
|
-
inputSchema: z.object({
|
|
18
|
-
ts: z.string().trim().min(1, INVALID_ARGUMENTS_MESSAGE),
|
|
19
|
-
reason: z
|
|
20
|
-
.string()
|
|
21
|
-
.trim()
|
|
22
|
-
.min(1, INVALID_ARGUMENTS_MESSAGE)
|
|
23
|
-
.max(MAX_REASON_CHARS, INVALID_ARGUMENTS_MESSAGE),
|
|
24
|
-
}),
|
|
25
|
-
execute: ({ ts, reason }, ctx) => {
|
|
26
|
-
if (!has(ctx.session.id, ts)) {
|
|
27
|
-
return FOREIGN_TS;
|
|
28
|
-
}
|
|
29
|
-
return { ts, reason };
|
|
30
|
-
},
|
|
31
|
-
});
|
|
32
|
-
|
|
33
|
-
export default deleteMessage;
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
import { z } from "zod";
|
|
2
|
-
import { has } from "../../../channels/slack/agentic-posted.js";
|
|
3
|
-
import { MAX_UPDATE_CHARS } from "../../../channels/slack/agentic-signals.js";
|
|
4
|
-
import { defineTool } from "../../../tools.js";
|
|
5
|
-
import type { ToolDefinition } from "../../../types.js";
|
|
6
|
-
|
|
7
|
-
const INVALID_ARGUMENTS_MESSAGE =
|
|
8
|
-
"edit-message needs a ts this turn posted and a non-empty message.";
|
|
9
|
-
const FOREIGN_TS = "ts is not a message this turn posted";
|
|
10
|
-
|
|
11
|
-
const editMessage: ToolDefinition = defineTool({
|
|
12
|
-
description: [
|
|
13
|
-
"Correct a fact on a message this turn already posted (wrong number, wrong link).",
|
|
14
|
-
"ts is the one post-update returned. Not a rewrite of the reply.",
|
|
15
|
-
"The channel watching this turn applies the edit.",
|
|
16
|
-
].join(" "),
|
|
17
|
-
inputSchema: z.object({
|
|
18
|
-
ts: z.string().trim().min(1, INVALID_ARGUMENTS_MESSAGE),
|
|
19
|
-
message: z
|
|
20
|
-
.string({
|
|
21
|
-
required_error: INVALID_ARGUMENTS_MESSAGE,
|
|
22
|
-
invalid_type_error: INVALID_ARGUMENTS_MESSAGE,
|
|
23
|
-
})
|
|
24
|
-
.min(1, INVALID_ARGUMENTS_MESSAGE)
|
|
25
|
-
.superRefine((message, ctx) => {
|
|
26
|
-
if (message.length > MAX_UPDATE_CHARS) {
|
|
27
|
-
ctx.addIssue({
|
|
28
|
-
code: z.ZodIssueCode.custom,
|
|
29
|
-
message: `size (${message.length}) is more than ${MAX_UPDATE_CHARS}-character limit. drop what the reader would not act on and try again`,
|
|
30
|
-
});
|
|
31
|
-
}
|
|
32
|
-
}),
|
|
33
|
-
}),
|
|
34
|
-
execute: ({ ts, message }, ctx) => {
|
|
35
|
-
if (!has(ctx.session.id, ts)) {
|
|
36
|
-
return FOREIGN_TS;
|
|
37
|
-
}
|
|
38
|
-
return { ts, message };
|
|
39
|
-
},
|
|
40
|
-
});
|
|
41
|
-
|
|
42
|
-
export default editMessage;
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
import { z } from "zod";
|
|
2
|
-
import { defineTool } from "../../../tools.js";
|
|
3
|
-
import type { ToolDefinition } from "../../../types.js";
|
|
4
|
-
|
|
5
|
-
const postCard: ToolDefinition = defineTool({
|
|
6
|
-
description: [
|
|
7
|
-
"Publish or update a collapsible task card in the thread.",
|
|
8
|
-
"Same id updates the same card. That is progress.",
|
|
9
|
-
"status is pending, in_progress, complete, or error.",
|
|
10
|
-
"Use a card for work that should stay on screen and change.",
|
|
11
|
-
"Do not use it as the reply; that is post-update.",
|
|
12
|
-
"The tool records nothing. The channel watching this turn renders the card.",
|
|
13
|
-
].join(" "),
|
|
14
|
-
inputSchema: z.object({
|
|
15
|
-
id: z.string().trim().min(1),
|
|
16
|
-
title: z.string().trim().min(1),
|
|
17
|
-
status: z.enum(["pending", "in_progress", "complete", "error"]),
|
|
18
|
-
details: z.string().trim().min(1).optional(),
|
|
19
|
-
}),
|
|
20
|
-
execute: ({ id, title, status, details }) => ({
|
|
21
|
-
id,
|
|
22
|
-
title,
|
|
23
|
-
status,
|
|
24
|
-
details,
|
|
25
|
-
}),
|
|
26
|
-
});
|
|
27
|
-
|
|
28
|
-
export default postCard;
|
|
@@ -1,82 +0,0 @@
|
|
|
1
|
-
import { realpathSync, statSync } from "node:fs";
|
|
2
|
-
import { basename, extname, isAbsolute, sep } from "node:path";
|
|
3
|
-
import { z } from "zod";
|
|
4
|
-
import { defineTool } from "../../../tools.js";
|
|
5
|
-
import type { ToolDefinition } from "../../../types.js";
|
|
6
|
-
|
|
7
|
-
const ALLOWED = new Set([
|
|
8
|
-
".png",
|
|
9
|
-
".jpg",
|
|
10
|
-
".jpeg",
|
|
11
|
-
".gif",
|
|
12
|
-
".webp",
|
|
13
|
-
".svg",
|
|
14
|
-
".pdf",
|
|
15
|
-
".html",
|
|
16
|
-
".txt",
|
|
17
|
-
".log",
|
|
18
|
-
".json",
|
|
19
|
-
".csv",
|
|
20
|
-
".md",
|
|
21
|
-
".mp4",
|
|
22
|
-
".mov",
|
|
23
|
-
".webm",
|
|
24
|
-
]);
|
|
25
|
-
|
|
26
|
-
const MAX_BYTES = 50 * 1024 * 1024;
|
|
27
|
-
|
|
28
|
-
function human(bytes: number): string {
|
|
29
|
-
return bytes < 1024 * 1024
|
|
30
|
-
? `${Math.round(bytes / 1024)} KB`
|
|
31
|
-
: `${(bytes / (1024 * 1024)).toFixed(1)} MB`;
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
const postFile: ToolDefinition = defineTool({
|
|
35
|
-
description: [
|
|
36
|
-
"Attach a file to the final reply.",
|
|
37
|
-
"Nothing is posted when you call this: the file is staged, and everything",
|
|
38
|
-
"staged is uploaded once, after the reply.",
|
|
39
|
-
"Use it for evidence worth keeping, not for text you could write in the reply.",
|
|
40
|
-
].join(" "),
|
|
41
|
-
inputSchema: z.object({
|
|
42
|
-
path: z
|
|
43
|
-
.string()
|
|
44
|
-
.min(1)
|
|
45
|
-
.describe(
|
|
46
|
-
"Absolute path to the file. Relative paths are rejected: this runs on the host, not in the agent shell.",
|
|
47
|
-
),
|
|
48
|
-
}),
|
|
49
|
-
execute: ({ path }, ctx) => {
|
|
50
|
-
if (!isAbsolute(path)) {
|
|
51
|
-
return `Refused: "${path}" is not absolute. Give the full path.`;
|
|
52
|
-
}
|
|
53
|
-
let realPath: string;
|
|
54
|
-
try {
|
|
55
|
-
realPath = realpathSync(path);
|
|
56
|
-
} catch {
|
|
57
|
-
return `No such file: ${path}`;
|
|
58
|
-
}
|
|
59
|
-
const workspaceRoot = realpathSync(ctx.workspaceDir);
|
|
60
|
-
if (realPath !== workspaceRoot && !realPath.startsWith(`${workspaceRoot}${sep}`)) {
|
|
61
|
-
return `Refused: ${path} is outside ${ctx.workspaceDir}. Copy it into your workspace first.`;
|
|
62
|
-
}
|
|
63
|
-
const extension = extname(realPath).toLowerCase();
|
|
64
|
-
if (!ALLOWED.has(extension)) {
|
|
65
|
-
return `Refused: ${extension || "no extension"} is not a type Slack renders. Allowed: ${[...ALLOWED].join(", ")}.`;
|
|
66
|
-
}
|
|
67
|
-
const info = statSync(realPath);
|
|
68
|
-
if (!info.isFile()) {
|
|
69
|
-
return `Refused: ${path} is not a file.`;
|
|
70
|
-
}
|
|
71
|
-
if (info.size > MAX_BYTES) {
|
|
72
|
-
return `Refused: ${human(info.size)} is over the ${human(MAX_BYTES)} upload cap.`;
|
|
73
|
-
}
|
|
74
|
-
return {
|
|
75
|
-
path: realPath,
|
|
76
|
-
name: basename(realPath),
|
|
77
|
-
workspace: workspaceRoot,
|
|
78
|
-
};
|
|
79
|
-
},
|
|
80
|
-
});
|
|
81
|
-
|
|
82
|
-
export default postFile;
|
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
import { z } from "zod";
|
|
2
|
-
import { reserve } from "../../../channels/slack/agentic-posted.js";
|
|
3
|
-
import { MAX_UPDATE_CHARS } from "../../../channels/slack/agentic-signals.js";
|
|
4
|
-
import { defineTool } from "../../../tools.js";
|
|
5
|
-
import type { ToolDefinition } from "../../../types.js";
|
|
6
|
-
|
|
7
|
-
const INVALID_ARGUMENTS_MESSAGE = "post-update needs a non-empty message string.";
|
|
8
|
-
|
|
9
|
-
const postUpdate: ToolDefinition = defineTool({
|
|
10
|
-
description: [
|
|
11
|
-
"Post a new message in this thread.",
|
|
12
|
-
"Mid-turn: when the picture changed and a reader should know.",
|
|
13
|
-
"Final: a new message. Do not rewrite a previous line.",
|
|
14
|
-
"If the turn will take more than a glance, call this first.",
|
|
15
|
-
"The result includes ts. Pass that ts to edit-message or delete-message.",
|
|
16
|
-
"The channel watching this turn posts the message.",
|
|
17
|
-
].join(" "),
|
|
18
|
-
inputSchema: z.object({
|
|
19
|
-
message: z
|
|
20
|
-
.string({
|
|
21
|
-
required_error: INVALID_ARGUMENTS_MESSAGE,
|
|
22
|
-
invalid_type_error: INVALID_ARGUMENTS_MESSAGE,
|
|
23
|
-
})
|
|
24
|
-
.min(1, INVALID_ARGUMENTS_MESSAGE)
|
|
25
|
-
.superRefine((message, ctx) => {
|
|
26
|
-
if (message.length > MAX_UPDATE_CHARS) {
|
|
27
|
-
ctx.addIssue({
|
|
28
|
-
code: z.ZodIssueCode.custom,
|
|
29
|
-
message: `size (${message.length}) is more than ${MAX_UPDATE_CHARS}-character limit. drop what the reader would not act on and move receipts into a post-file attachment, rather than compressing the sentences you keep, and try again`,
|
|
30
|
-
});
|
|
31
|
-
}
|
|
32
|
-
}),
|
|
33
|
-
}),
|
|
34
|
-
execute: ({ message }, ctx) => ({
|
|
35
|
-
message,
|
|
36
|
-
ts: reserve(ctx.session.id),
|
|
37
|
-
}),
|
|
38
|
-
});
|
|
39
|
-
|
|
40
|
-
export default postUpdate;
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
import { z } from "zod";
|
|
2
|
-
import { emojiName } from "../../../channels/slack/agentic-signals.js";
|
|
3
|
-
import { defineTool } from "../../../tools.js";
|
|
4
|
-
import type { ToolDefinition } from "../../../types.js";
|
|
5
|
-
|
|
6
|
-
const react: ToolDefinition = defineTool({
|
|
7
|
-
description: [
|
|
8
|
-
"Add an emoji reaction to a message in this thread.",
|
|
9
|
-
"emoji is a Slack name without a leading colon, or :name:.",
|
|
10
|
-
"ts is the message timestamp. Omit it to react to the thread root.",
|
|
11
|
-
"The tool records nothing. The channel watching this turn adds the reaction.",
|
|
12
|
-
].join(" "),
|
|
13
|
-
inputSchema: z.object({
|
|
14
|
-
emoji: z
|
|
15
|
-
.string()
|
|
16
|
-
.trim()
|
|
17
|
-
.min(1)
|
|
18
|
-
.refine(value => emojiName(value) !== undefined, "emoji must be a Slack reaction name"),
|
|
19
|
-
ts: z.string().trim().min(1).optional(),
|
|
20
|
-
}),
|
|
21
|
-
execute: ({ emoji, ts }) => {
|
|
22
|
-
const name = emojiName(emoji);
|
|
23
|
-
if (name === undefined) {
|
|
24
|
-
return "emoji must be a Slack reaction name";
|
|
25
|
-
}
|
|
26
|
-
return { emoji: name, ts };
|
|
27
|
-
},
|
|
28
|
-
});
|
|
29
|
-
|
|
30
|
-
export default react;
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import { z } from "zod";
|
|
2
|
-
import { SLACK_STATUS_MAX_LEN } from "../../../channels/slack/constants.js";
|
|
3
|
-
import { defineTool } from "../../../tools.js";
|
|
4
|
-
import type { ToolDefinition } from "../../../types.js";
|
|
5
|
-
|
|
6
|
-
const setStatus: ToolDefinition = defineTool({
|
|
7
|
-
description: [
|
|
8
|
-
"Set the status line under this thread (assistant.threads.setStatus).",
|
|
9
|
-
"That is the subtitle chip, not a message.",
|
|
10
|
-
`Keep it under ${String(SLACK_STATUS_MAX_LEN)} characters.`,
|
|
11
|
-
"Pass an empty string to clear it.",
|
|
12
|
-
"The channel paints thinking on this chip from the turn. Do not use this for thinking.",
|
|
13
|
-
"The tool records nothing. The channel watching this turn writes the chip.",
|
|
14
|
-
].join(" "),
|
|
15
|
-
inputSchema: z.object({
|
|
16
|
-
status: z.string().max(SLACK_STATUS_MAX_LEN),
|
|
17
|
-
}),
|
|
18
|
-
execute: ({ status }) => ({ status }),
|
|
19
|
-
});
|
|
20
|
-
|
|
21
|
-
export default setStatus;
|