@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
package/dist/bin/agent-serve.js
CHANGED
|
@@ -1147,7 +1147,15 @@ function main(argv) {
|
|
|
1147
1147
|
}
|
|
1148
1148
|
lines.push(section("tools", info.tools.map(t => `${t.name} — ${t.description}`)));
|
|
1149
1149
|
lines.push(section("skills", info.skills.map(s => `${s.name} — ${s.description}`)));
|
|
1150
|
-
lines.push(section("extensions", info.extensions.map(e =>
|
|
1150
|
+
lines.push(section("extensions", info.extensions.map(e => {
|
|
1151
|
+
var _a;
|
|
1152
|
+
var _b;
|
|
1153
|
+
const contributed = [...e.tools, ...e.skills].join(", ") || "(nothing contributed)";
|
|
1154
|
+
const egress = (_b = (_a = e.hosting) === null || _a === void 0 ? void 0 : _a.egressDomains) !== null && _b !== void 0 ? _b : [];
|
|
1155
|
+
return egress.length === 0
|
|
1156
|
+
? `${e.name} — ${contributed}`
|
|
1157
|
+
: `${e.name} — ${contributed}; egress: ${egress.join(", ")}`;
|
|
1158
|
+
})));
|
|
1151
1159
|
lines.push(section("MCP connections", info.connections.map(c => `${c.name} — ${c.transport}`)));
|
|
1152
1160
|
lines.push(section("subagents", info.subagents.map(s => { var _a; return `${s.name} — ${(_a = s.description) !== null && _a !== void 0 ? _a : ""}`; })));
|
|
1153
1161
|
lines.push(section("channels", info.channels.map(c => `${c.id}: ${c.routes.map(r => `${r.method} ${r.url}`).join(", ") || "(events only)"}`)));
|
|
@@ -66,6 +66,7 @@ export interface PreparedSlackAttachments {
|
|
|
66
66
|
export interface PrepareSlackAttachmentsOptions {
|
|
67
67
|
botToken?: SlackBotToken;
|
|
68
68
|
files: readonly SlackMessageFile[];
|
|
69
|
+
threadFiles?: readonly SlackMessageFile[];
|
|
69
70
|
maxFiles?: number;
|
|
70
71
|
maxFileBytes?: number;
|
|
71
72
|
maxTotalBytes?: number;
|
|
@@ -78,5 +79,5 @@ export interface PrepareSlackAttachmentsOptions {
|
|
|
78
79
|
*/
|
|
79
80
|
export declare function prepareSlackAttachments(options: PrepareSlackAttachmentsOptions): Promise<PreparedSlackAttachments>;
|
|
80
81
|
/** Merge attachment annotations into the user prompt. */
|
|
81
|
-
export declare function appendSlackAttachmentAnnotations(prompt: string, annotations: readonly string[]): string;
|
|
82
|
+
export declare function appendSlackAttachmentAnnotations(prompt: string, annotations: readonly string[], emptyPromptFallback?: string): string;
|
|
82
83
|
//# sourceMappingURL=attachments.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"attachments.d.ts","sourceRoot":"","sources":["../../../src/channels/slack/attachments.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,KAAK,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAElE,eAAO,MAAM,qBAAqB,sBAAsB,CAAC;AACzD,eAAO,MAAM,4BAA4B,yFAC+C,CAAC;AA4FzF,6EAA6E;AAC7E,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAG1D;AAED,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAIhE;AAED,wBAAgB,yBAAyB,CAAC,IAAI,EAAE;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CA2EhG;AAED,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAEhE;AAED,oEAAoE;AACpE,MAAM,WAAW,YAAY;IAC3B,EAAE,CAAC,EAAE,OAAO,CAAC;IACb,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,MAAM,MAAM,uBAAuB,GAC/B;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,GACnC;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,GACnC;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,OAAO,CAAA;CAAE,CAAC;AAUhE;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,YAAY,GAAG,uBAAuB,GAAG,SAAS,CAyBzF;AAOD,+EAA+E;AAC/E,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,OAAO,GAAG,YAAY,EAAE,CAgBzE;AAED,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,OAAO,GAAG,gBAAgB,EAAE,GAAG,SAAS,CAoBnF;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,2DAA2D;AAC3D,MAAM,MAAM,kBAAkB,GAAG,MAAM,GAAG;IAAE,QAAQ,EAAE,QAAQ,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAElG,MAAM,WAAW,wBAAwB;IACvC,MAAM,EAAE,cAAc,EAAE,CAAC;IACzB,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;IACnD,iDAAiD;IACjD,WAAW,EAAE,MAAM,EAAE,CAAC;CACvB;
|
|
1
|
+
{"version":3,"file":"attachments.d.ts","sourceRoot":"","sources":["../../../src/channels/slack/attachments.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,KAAK,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAElE,eAAO,MAAM,qBAAqB,sBAAsB,CAAC;AACzD,eAAO,MAAM,4BAA4B,yFAC+C,CAAC;AA4FzF,6EAA6E;AAC7E,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAG1D;AAED,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAIhE;AAED,wBAAgB,yBAAyB,CAAC,IAAI,EAAE;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CA2EhG;AAED,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAEhE;AAED,oEAAoE;AACpE,MAAM,WAAW,YAAY;IAC3B,EAAE,CAAC,EAAE,OAAO,CAAC;IACb,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,MAAM,MAAM,uBAAuB,GAC/B;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,GACnC;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,GACnC;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,OAAO,CAAA;CAAE,CAAC;AAUhE;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,YAAY,GAAG,uBAAuB,GAAG,SAAS,CAyBzF;AAOD,+EAA+E;AAC/E,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,OAAO,GAAG,YAAY,EAAE,CAgBzE;AAED,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,OAAO,GAAG,gBAAgB,EAAE,GAAG,SAAS,CAoBnF;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,2DAA2D;AAC3D,MAAM,MAAM,kBAAkB,GAAG,MAAM,GAAG;IAAE,QAAQ,EAAE,QAAQ,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAElG,MAAM,WAAW,wBAAwB;IACvC,MAAM,EAAE,cAAc,EAAE,CAAC;IACzB,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;IACnD,iDAAiD;IACjD,WAAW,EAAE,MAAM,EAAE,CAAC;CACvB;AA6HD,MAAM,WAAW,8BAA8B;IAC7C,QAAQ,CAAC,EAAE,aAAa,CAAC;IACzB,KAAK,EAAE,SAAS,gBAAgB,EAAE,CAAC;IACnC,WAAW,CAAC,EAAE,SAAS,gBAAgB,EAAE,CAAC;IAC1C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,GAAG,CAAC,EAAE,QAAQ,CAAC;CAChB;AAED;;;GAGG;AACH,wBAAsB,uBAAuB,CAC3C,OAAO,EAAE,8BAA8B,GACtC,OAAO,CAAC,wBAAwB,CAAC,CAoInC;AAED,yDAAyD;AACzD,wBAAgB,gCAAgC,CAC9C,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,SAAS,MAAM,EAAE,EAC9B,mBAAmB,GAAE,MAAqC,GACzD,MAAM,CAUR"}
|
|
@@ -100,7 +100,7 @@ function getLowercaseFileExtension(filename) {
|
|
|
100
100
|
}
|
|
101
101
|
/** Keep path-safe basename pieces (mirrors cloud-agent sanitizeFilename). */
|
|
102
102
|
export function sanitizeSlackFilename(name) {
|
|
103
|
-
const trimmed = name.trim().replace(/[/\\?%*:|"
|
|
103
|
+
const trimmed = name.trim().replace(/[/\\?%*:|"<>\u0000-\u001f\u007f]/g, "_");
|
|
104
104
|
return trimmed.length > 0 ? trimmed.slice(0, 180) : "file";
|
|
105
105
|
}
|
|
106
106
|
export function isSupportedImageFormat(mimeType) {
|
|
@@ -342,7 +342,13 @@ function downloadSlackFileBytes(args) {
|
|
|
342
342
|
return null;
|
|
343
343
|
}
|
|
344
344
|
}
|
|
345
|
-
|
|
345
|
+
let buffer;
|
|
346
|
+
try {
|
|
347
|
+
buffer = Buffer.from(yield response.arrayBuffer());
|
|
348
|
+
}
|
|
349
|
+
catch (_e) {
|
|
350
|
+
return null;
|
|
351
|
+
}
|
|
346
352
|
if (buffer.length > args.maxBytes) {
|
|
347
353
|
return null;
|
|
348
354
|
}
|
|
@@ -369,12 +375,15 @@ function downloadSlackFileBytes(args) {
|
|
|
369
375
|
export function prepareSlackAttachments(options) {
|
|
370
376
|
return __awaiter(this, void 0, void 0, function* () {
|
|
371
377
|
var _a, _b;
|
|
372
|
-
var _c, _d, _e, _f;
|
|
378
|
+
var _c, _d, _e, _f, _g;
|
|
373
379
|
const maxFiles = (_c = options.maxFiles) !== null && _c !== void 0 ? _c : DEFAULT_MAX_FILES;
|
|
374
380
|
const maxFileBytes = (_d = options.maxFileBytes) !== null && _d !== void 0 ? _d : DEFAULT_MAX_FILE_BYTES;
|
|
375
381
|
const maxTotalBytes = (_e = options.maxTotalBytes) !== null && _e !== void 0 ? _e : DEFAULT_MAX_TOTAL_BYTES;
|
|
376
382
|
const downloadTimeoutMs = (_f = options.downloadTimeoutMs) !== null && _f !== void 0 ? _f : DEFAULT_DOWNLOAD_TIMEOUT_MS;
|
|
377
|
-
const
|
|
383
|
+
const messageFileIds = new Set(options.files.map(file => file.id));
|
|
384
|
+
const threadFiles = ((_g = options.threadFiles) !== null && _g !== void 0 ? _g : []).filter(file => !messageFileIds.has(file.id));
|
|
385
|
+
const threadFileIds = new Set(threadFiles.map(file => file.id));
|
|
386
|
+
const loaded = yield Promise.all([...options.files, ...threadFiles].slice(0, maxFiles).map((file) => __awaiter(this, void 0, void 0, function* () {
|
|
378
387
|
var _a, _b;
|
|
379
388
|
const classification = classifySlackFile(file);
|
|
380
389
|
if (classification === undefined) {
|
|
@@ -447,6 +456,7 @@ export function prepareSlackAttachments(options) {
|
|
|
447
456
|
}
|
|
448
457
|
totalBytes += bytes.length;
|
|
449
458
|
const relativePath = attachmentWorkspacePath(file, filename);
|
|
459
|
+
const source = threadFileIds.has(file.id) ? " from the thread" : "";
|
|
450
460
|
if (classification.kind === "image") {
|
|
451
461
|
if (!isSupportedImageFormat(mimeType)) {
|
|
452
462
|
continue;
|
|
@@ -458,7 +468,7 @@ export function prepareSlackAttachments(options) {
|
|
|
458
468
|
data: Buffer.from(bytes).toString("base64"),
|
|
459
469
|
mimeType,
|
|
460
470
|
});
|
|
461
|
-
annotations.push(`[Image ${imageIndex}: ${filename} (${mimeType}) → ${imagePath}]`);
|
|
471
|
+
annotations.push(`[Image ${imageIndex}: ${filename} (${mimeType})${source} → ${imagePath}]`);
|
|
462
472
|
continue;
|
|
463
473
|
}
|
|
464
474
|
const textLike = classification.kind === "document" &&
|
|
@@ -479,25 +489,25 @@ export function prepareSlackAttachments(options) {
|
|
|
479
489
|
}
|
|
480
490
|
if (classification.kind === "document") {
|
|
481
491
|
documentIndex++;
|
|
482
|
-
annotations.push(`[Document ${documentIndex}: ${filename} → ${relativePath}]`);
|
|
492
|
+
annotations.push(`[Document ${documentIndex}: ${filename}${source} → ${relativePath}]`);
|
|
483
493
|
}
|
|
484
494
|
else {
|
|
485
495
|
videoIndex++;
|
|
486
|
-
annotations.push(`[Video ${videoIndex}: ${filename} → ${relativePath}]`);
|
|
496
|
+
annotations.push(`[Video ${videoIndex}: ${filename}${source} → ${relativePath}]`);
|
|
487
497
|
}
|
|
488
498
|
}
|
|
489
499
|
return { images, workspaceFiles, annotations };
|
|
490
500
|
});
|
|
491
501
|
}
|
|
492
502
|
/** Merge attachment annotations into the user prompt. */
|
|
493
|
-
export function appendSlackAttachmentAnnotations(prompt, annotations) {
|
|
503
|
+
export function appendSlackAttachmentAnnotations(prompt, annotations, emptyPromptFallback = SLACK_ATTACHMENT_ONLY_PROMPT) {
|
|
494
504
|
if (annotations.length === 0) {
|
|
495
505
|
return prompt;
|
|
496
506
|
}
|
|
497
507
|
const block = ["<slack_attachments>", ...annotations, "</slack_attachments>"].join("\n");
|
|
498
508
|
const trimmed = prompt.trim();
|
|
499
509
|
if (trimmed.length === 0) {
|
|
500
|
-
return `${block}\n\n${
|
|
510
|
+
return emptyPromptFallback === "" ? block : `${block}\n\n${emptyPromptFallback}`;
|
|
501
511
|
}
|
|
502
512
|
return `${block}\n\n${trimmed}`;
|
|
503
513
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dispatch.d.ts","sourceRoot":"","sources":["../../../src/channels/slack/dispatch.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EACL,KAAK,oBAAoB,EAI1B,MAAM,yCAAyC,CAAC;AAEjD,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,4CAA4C,CAAC;AAKjG,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAa,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAQ1F,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAC7D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAE7D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAY1D,OAAO,EAAmB,KAAK,QAAQ,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"dispatch.d.ts","sourceRoot":"","sources":["../../../src/channels/slack/dispatch.ts"],"names":[],"mappings":"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"}
|
|
@@ -26,7 +26,7 @@ import { defaultSlackLog } from "./log.js";
|
|
|
26
26
|
import { paintTurnStart, retractTurnStart } from "./paint-start.js";
|
|
27
27
|
import { adoptPlaceholder, retractPlaceholderMessage, retractPlaceholderSlot, startPlaceholder, } from "./placeholder.js";
|
|
28
28
|
import { isWholeMessageStop } from "./stop.js";
|
|
29
|
-
import {
|
|
29
|
+
import { EMPTY_SLACK_THREAD_CONTEXT, loadSlackThreadContext, loadSlackThreadDelta, } from "./thread-context.js";
|
|
30
30
|
const FOLLOWUP_TYPING = "Saw your follow-up…";
|
|
31
31
|
function slackUserText(message, override) {
|
|
32
32
|
if (override !== undefined) {
|
|
@@ -42,18 +42,20 @@ function slackUserText(message, override) {
|
|
|
42
42
|
}
|
|
43
43
|
function slackTurnMedia(args) {
|
|
44
44
|
return __awaiter(this, void 0, void 0, function* () {
|
|
45
|
-
var _a, _b, _c;
|
|
46
|
-
const
|
|
45
|
+
var _a, _b, _c, _d;
|
|
46
|
+
const messageFiles = (_a = args.message.files) !== null && _a !== void 0 ? _a : [];
|
|
47
|
+
const prepared = messageFiles.length > 0 || args.threadFiles.length > 0
|
|
47
48
|
? yield prepareSlackAttachments({
|
|
48
49
|
botToken: args.botToken,
|
|
49
|
-
files:
|
|
50
|
+
files: messageFiles,
|
|
51
|
+
threadFiles: args.threadFiles,
|
|
50
52
|
log: args.log,
|
|
51
53
|
})
|
|
52
54
|
: undefined;
|
|
53
55
|
const workspaceFiles = Object.assign(Object.assign({}, args.decision.workspaceFiles), prepared === null || prepared === void 0 ? void 0 : prepared.workspaceFiles);
|
|
54
|
-
const images = [...((
|
|
56
|
+
const images = [...((_b = args.decision.images) !== null && _b !== void 0 ? _b : []), ...((_c = prepared === null || prepared === void 0 ? void 0 : prepared.images) !== null && _c !== void 0 ? _c : [])];
|
|
55
57
|
return {
|
|
56
|
-
userText: appendSlackAttachmentAnnotations(slackUserText(args.message, args.decision.message), (
|
|
58
|
+
userText: appendSlackAttachmentAnnotations(slackUserText(args.message, args.decision.message), (_d = prepared === null || prepared === void 0 ? void 0 : prepared.annotations) !== null && _d !== void 0 ? _d : [], messageFiles.length > 0 ? SLACK_ATTACHMENT_ONLY_PROMPT : ""),
|
|
57
59
|
workspaceFiles: Object.keys(workspaceFiles).length > 0 ? workspaceFiles : undefined,
|
|
58
60
|
images: images.length > 0 ? images : undefined,
|
|
59
61
|
};
|
|
@@ -371,12 +373,6 @@ export function dispatchInboundMessage(args) {
|
|
|
371
373
|
...((_6 = decision.excludeThreadTimestamps) !== null && _6 !== void 0 ? _6 : []),
|
|
372
374
|
];
|
|
373
375
|
const mergeMessages = [triggeringMergeMessage(message)];
|
|
374
|
-
const mediaTask = slackTurnMedia({
|
|
375
|
-
message,
|
|
376
|
-
decision,
|
|
377
|
-
botToken: (_m = args.credentials) === null || _m === void 0 ? void 0 : _m.botToken,
|
|
378
|
-
log,
|
|
379
|
-
});
|
|
380
376
|
const continuationExists = existsP === undefined ? false : yield existsP;
|
|
381
377
|
const hasSession = loadThread && continuationExists;
|
|
382
378
|
const afterTs = loadThread && hasSession && args.getContinuationLastBotMessageTs !== undefined
|
|
@@ -384,44 +380,50 @@ export function dispatchInboundMessage(args) {
|
|
|
384
380
|
: undefined;
|
|
385
381
|
// Channel mentions: cold <slack_thread>, warm <slack_thread_delta>.
|
|
386
382
|
const threadTask = !loadThread
|
|
387
|
-
? Promise.resolve(
|
|
383
|
+
? Promise.resolve(EMPTY_SLACK_THREAD_CONTEXT)
|
|
388
384
|
: hasSession
|
|
389
|
-
?
|
|
385
|
+
? loadSlackThreadDelta(Object.assign(Object.assign({ botToken: (_m = args.credentials) === null || _m === void 0 ? void 0 : _m.botToken, channelId: message.channelId, threadTs: message.threadTs }, (afterTs === undefined ? {} : { afterTs })), { excludeTs: excludeThreadTimestamps, mergeMessages,
|
|
390
386
|
log }))
|
|
391
|
-
:
|
|
392
|
-
botToken: (
|
|
387
|
+
: loadSlackThreadContext({
|
|
388
|
+
botToken: (_o = args.credentials) === null || _o === void 0 ? void 0 : _o.botToken,
|
|
393
389
|
channelId: message.channelId,
|
|
394
390
|
threadTs: message.threadTs,
|
|
395
391
|
excludeTs: excludeThreadTimestamps,
|
|
396
392
|
mergeMessages,
|
|
397
393
|
log,
|
|
398
394
|
});
|
|
399
|
-
const [
|
|
400
|
-
mediaTask,
|
|
401
|
-
threadTask,
|
|
402
|
-
membership !== null && membership !== void 0 ? membership : Promise.resolve(false),
|
|
403
|
-
]);
|
|
395
|
+
const [thread, external] = yield Promise.all([threadTask, membership !== null && membership !== void 0 ? membership : Promise.resolve(false)]);
|
|
404
396
|
if (external === true) {
|
|
405
397
|
dropExternal();
|
|
406
398
|
if (painted !== undefined) {
|
|
407
399
|
yield painted;
|
|
408
400
|
yield retractTurnStart({
|
|
409
|
-
botToken: (
|
|
401
|
+
botToken: (_p = args.credentials) === null || _p === void 0 ? void 0 : _p.botToken,
|
|
410
402
|
channelId: message.channelId,
|
|
411
403
|
threadTs: message.threadTs,
|
|
412
404
|
ack: (_7 = args.ack) !== null && _7 !== void 0 ? _7 : "",
|
|
413
405
|
log,
|
|
414
406
|
});
|
|
415
407
|
}
|
|
416
|
-
yield (
|
|
408
|
+
yield (_q = args.host.slackNudges) === null || _q === void 0 ? void 0 : _q.releaseAsk(message.channelId, message.ts);
|
|
417
409
|
yield retractAdoptedPlaceholder();
|
|
418
410
|
return;
|
|
419
411
|
}
|
|
420
|
-
|
|
412
|
+
const threadContext = thread.block;
|
|
413
|
+
const threadFileCount = thread.files.length;
|
|
414
|
+
const media = yield slackTurnMedia({
|
|
415
|
+
message,
|
|
416
|
+
threadFiles: thread.files,
|
|
417
|
+
decision,
|
|
418
|
+
botToken: (_r = args.credentials) === null || _r === void 0 ? void 0 : _r.botToken,
|
|
419
|
+
log,
|
|
420
|
+
});
|
|
421
|
+
if ((message.files !== undefined && message.files.length > 0) || threadFileCount > 0) {
|
|
421
422
|
log.info("slack attachments prepared", {
|
|
422
423
|
kind,
|
|
423
424
|
channel: message.channelId,
|
|
424
425
|
thread_ts: message.threadTs,
|
|
426
|
+
thread_files: threadFileCount,
|
|
425
427
|
images: (_8 = (_s = media.images) === null || _s === void 0 ? void 0 : _s.length) !== null && _8 !== void 0 ? _8 : 0,
|
|
426
428
|
workspace_files: Object.keys((_9 = media.workspaceFiles) !== null && _9 !== void 0 ? _9 : {}).length,
|
|
427
429
|
event_id: args.eventId,
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* text; the parent alert / earlier replies live in `conversations.replies`.
|
|
6
6
|
*/
|
|
7
7
|
import { type SlackLog } from "./log.js";
|
|
8
|
-
import type { SlackBotToken } from "./types.js";
|
|
8
|
+
import type { SlackBotToken, SlackMessageFile } from "./types.js";
|
|
9
9
|
/** Keep the thread root plus the newest replies when over the fetch cap. */
|
|
10
10
|
export declare function trimThreadMessagesForPrompt(messages: JsonRecord[], options: {
|
|
11
11
|
threadTs: string;
|
|
@@ -13,6 +13,7 @@ export declare function trimThreadMessagesForPrompt(messages: JsonRecord[], opti
|
|
|
13
13
|
excludeTs?: string | readonly string[];
|
|
14
14
|
}): JsonRecord[];
|
|
15
15
|
type JsonRecord = Record<string, unknown>;
|
|
16
|
+
export declare function slackThreadFilesByPriority(messages: readonly JsonRecord[], threadTs?: string): SlackMessageFile[];
|
|
16
17
|
/** True when `ts` is strictly after `afterTs`. */
|
|
17
18
|
export declare function isSlackTsAfter(ts: string, afterTs: string): boolean;
|
|
18
19
|
/**
|
|
@@ -43,11 +44,12 @@ export declare function formatSlackThreadDeltaBlock(messages: JsonRecord[], opti
|
|
|
43
44
|
afterTs?: string;
|
|
44
45
|
maxChars?: number;
|
|
45
46
|
}): string | undefined;
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
export declare
|
|
47
|
+
export interface SlackThreadContext {
|
|
48
|
+
block: string | undefined;
|
|
49
|
+
files: SlackMessageFile[];
|
|
50
|
+
}
|
|
51
|
+
export declare const EMPTY_SLACK_THREAD_CONTEXT: SlackThreadContext;
|
|
52
|
+
export interface LoadSlackThreadContextArgs {
|
|
51
53
|
botToken: SlackBotToken | undefined;
|
|
52
54
|
channelId: string;
|
|
53
55
|
threadTs: string;
|
|
@@ -57,12 +59,14 @@ export declare function loadSlackThreadContextBlock(args: {
|
|
|
57
59
|
maxChars?: number;
|
|
58
60
|
/** Extra messages merged by ts when Slack replies lag (Benny parity). */
|
|
59
61
|
mergeMessages?: readonly JsonRecord[];
|
|
60
|
-
}
|
|
62
|
+
}
|
|
61
63
|
/**
|
|
62
|
-
*
|
|
63
|
-
*
|
|
64
|
+
* Load prior messages in a Slack thread and return a prompt context block.
|
|
65
|
+
* Soft-fails (returns undefined) when credentials are missing or the API errors.
|
|
64
66
|
*/
|
|
65
|
-
export declare function
|
|
67
|
+
export declare function loadSlackThreadContext(args: LoadSlackThreadContextArgs): Promise<SlackThreadContext>;
|
|
68
|
+
export declare function loadSlackThreadContextBlock(args: LoadSlackThreadContextArgs): Promise<string | undefined>;
|
|
69
|
+
export interface LoadSlackThreadDeltaArgs {
|
|
66
70
|
botToken: SlackBotToken | undefined;
|
|
67
71
|
channelId: string;
|
|
68
72
|
threadTs: string;
|
|
@@ -74,6 +78,12 @@ export declare function loadSlackThreadDeltaBlock(args: {
|
|
|
74
78
|
mergeMessages?: readonly JsonRecord[];
|
|
75
79
|
botUserId?: string;
|
|
76
80
|
botId?: string;
|
|
77
|
-
}
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Warm-turn delta: messages since the last bot post (or all new replies when
|
|
84
|
+
* the watermark is unknown), with optional merge-by-ts for the triggering ask.
|
|
85
|
+
*/
|
|
86
|
+
export declare function loadSlackThreadDelta(args: LoadSlackThreadDeltaArgs): Promise<SlackThreadContext>;
|
|
87
|
+
export declare function loadSlackThreadDeltaBlock(args: LoadSlackThreadDeltaArgs): Promise<string | undefined>;
|
|
78
88
|
export {};
|
|
79
89
|
//# sourceMappingURL=thread-context.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"thread-context.d.ts","sourceRoot":"","sources":["../../../src/channels/slack/thread-context.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;
|
|
1
|
+
{"version":3,"file":"thread-context.d.ts","sourceRoot":"","sources":["../../../src/channels/slack/thread-context.ts"],"names":[],"mappings":"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"}
|
|
@@ -14,6 +14,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
14
14
|
});
|
|
15
15
|
};
|
|
16
16
|
import { callSlackApiSoft } from "./api.js";
|
|
17
|
+
import { parseSlackFileRefs, sanitizeSlackFilename } from "./attachments.js";
|
|
17
18
|
import { slackTextToMarkdown } from "./inbound.js";
|
|
18
19
|
import { defaultSlackLog } from "./log.js";
|
|
19
20
|
import { slackApiMessageBody } from "./message-body.js";
|
|
@@ -50,7 +51,7 @@ export function trimThreadMessagesForPrompt(messages, options) {
|
|
|
50
51
|
if (exclude !== undefined && exclude.has(ts)) {
|
|
51
52
|
return false;
|
|
52
53
|
}
|
|
53
|
-
return
|
|
54
|
+
return hasThreadEntryContent(message);
|
|
54
55
|
});
|
|
55
56
|
if (filtered.length <= options.limit) {
|
|
56
57
|
return filtered;
|
|
@@ -76,6 +77,9 @@ function asRecord(value) {
|
|
|
76
77
|
function asString(value) {
|
|
77
78
|
return typeof value === "string" ? value : undefined;
|
|
78
79
|
}
|
|
80
|
+
function hasThreadEntryContent(message) {
|
|
81
|
+
return slackApiMessageBody(message).trim() !== "" || parseSlackFileRefs(message) !== undefined;
|
|
82
|
+
}
|
|
79
83
|
function formatThreadEntry(message, role) {
|
|
80
84
|
var _a;
|
|
81
85
|
const ts = (_a = asString(message.ts)) !== null && _a !== void 0 ? _a : "?";
|
|
@@ -88,10 +92,40 @@ function formatThreadEntry(message, role) {
|
|
|
88
92
|
? `bot:${botId}${username !== undefined ? ` (${username})` : ""}`
|
|
89
93
|
: (username !== null && username !== void 0 ? username : "unknown");
|
|
90
94
|
const body = slackTextToMarkdown(slackApiMessageBody(message));
|
|
91
|
-
|
|
92
|
-
|
|
95
|
+
const files = parseSlackFileRefs(message);
|
|
96
|
+
const lines = [`[${role}] ${who} @ ${ts}:`];
|
|
97
|
+
if (body !== "") {
|
|
98
|
+
lines.push(body);
|
|
99
|
+
}
|
|
100
|
+
if (files !== undefined) {
|
|
101
|
+
lines.push(`files: ${files.map(file => { var _a, _b; return sanitizeSlackFilename((_b = (_a = file.name) !== null && _a !== void 0 ? _a : file.title) !== null && _b !== void 0 ? _b : file.id); }).join(", ")}`);
|
|
102
|
+
}
|
|
103
|
+
if (lines.length === 1) {
|
|
104
|
+
lines.push("(empty)");
|
|
105
|
+
}
|
|
106
|
+
return lines.join("\n");
|
|
107
|
+
}
|
|
108
|
+
export function slackThreadFilesByPriority(messages, threadTs) {
|
|
109
|
+
var _a;
|
|
110
|
+
const parent = threadTs === undefined
|
|
111
|
+
? undefined
|
|
112
|
+
: messages.find(message => asString(message.ts) === threadTs);
|
|
113
|
+
const replies = messages
|
|
114
|
+
.filter(message => parent === undefined || asString(message.ts) !== threadTs)
|
|
115
|
+
.reverse();
|
|
116
|
+
const ordered = parent === undefined ? replies : [parent, ...replies];
|
|
117
|
+
const seen = new Set();
|
|
118
|
+
const files = [];
|
|
119
|
+
for (const message of ordered) {
|
|
120
|
+
for (const file of (_a = parseSlackFileRefs(message)) !== null && _a !== void 0 ? _a : []) {
|
|
121
|
+
if (seen.has(file.id)) {
|
|
122
|
+
continue;
|
|
123
|
+
}
|
|
124
|
+
seen.add(file.id);
|
|
125
|
+
files.push(file);
|
|
126
|
+
}
|
|
93
127
|
}
|
|
94
|
-
return
|
|
128
|
+
return files;
|
|
95
129
|
}
|
|
96
130
|
function compareSlackTs(a, b) {
|
|
97
131
|
const [aSec = "0", aFrac = "0"] = a.split(".");
|
|
@@ -190,7 +224,7 @@ export function selectThreadDeltaMessages(messages, options) {
|
|
|
190
224
|
if (afterTs !== "" && !isSlackTsAfter(ts, afterTs)) {
|
|
191
225
|
return false;
|
|
192
226
|
}
|
|
193
|
-
return
|
|
227
|
+
return hasThreadEntryContent(message);
|
|
194
228
|
});
|
|
195
229
|
}
|
|
196
230
|
export function formatSlackThreadContextBlock(messages, options) {
|
|
@@ -212,7 +246,7 @@ export function formatSlackThreadContextBlock(messages, options) {
|
|
|
212
246
|
if (exclude !== undefined && exclude.has(ts)) {
|
|
213
247
|
return false;
|
|
214
248
|
}
|
|
215
|
-
return
|
|
249
|
+
return hasThreadEntryContent(message);
|
|
216
250
|
});
|
|
217
251
|
if (prior.length === 0) {
|
|
218
252
|
return undefined;
|
|
@@ -238,12 +272,12 @@ export function formatSlackThreadContextBlock(messages, options) {
|
|
|
238
272
|
return block;
|
|
239
273
|
}
|
|
240
274
|
export function formatSlackThreadDeltaBlock(messages, options) {
|
|
241
|
-
|
|
242
|
-
const maxChars = (_a = options === null || options === void 0 ? void 0 : options.maxChars) !== null && _a !== void 0 ? _a : DEFAULT_MAX_CHARS;
|
|
243
|
-
const delta = selectThreadDeltaMessages(messages, {
|
|
275
|
+
return formatThreadDeltaEntries(selectThreadDeltaMessages(messages, {
|
|
244
276
|
afterTs: options === null || options === void 0 ? void 0 : options.afterTs,
|
|
245
277
|
excludeTs: options === null || options === void 0 ? void 0 : options.excludeTs,
|
|
246
|
-
});
|
|
278
|
+
}), options === null || options === void 0 ? void 0 : options.maxChars);
|
|
279
|
+
}
|
|
280
|
+
function formatThreadDeltaEntries(delta, maxChars = DEFAULT_MAX_CHARS) {
|
|
247
281
|
if (delta.length === 0) {
|
|
248
282
|
return undefined;
|
|
249
283
|
}
|
|
@@ -320,19 +354,20 @@ function fetchThreadMessages(args) {
|
|
|
320
354
|
return allMessages;
|
|
321
355
|
});
|
|
322
356
|
}
|
|
357
|
+
export const EMPTY_SLACK_THREAD_CONTEXT = { block: undefined, files: [] };
|
|
323
358
|
/**
|
|
324
359
|
* Load prior messages in a Slack thread and return a prompt context block.
|
|
325
360
|
* Soft-fails (returns undefined) when credentials are missing or the API errors.
|
|
326
361
|
*/
|
|
327
|
-
export function
|
|
362
|
+
export function loadSlackThreadContext(args) {
|
|
328
363
|
return __awaiter(this, void 0, void 0, function* () {
|
|
329
364
|
var _a, _b;
|
|
330
365
|
const log = (_a = args.log) !== null && _a !== void 0 ? _a : defaultSlackLog;
|
|
331
366
|
if (args.botToken === undefined) {
|
|
332
|
-
return
|
|
367
|
+
return EMPTY_SLACK_THREAD_CONTEXT;
|
|
333
368
|
}
|
|
334
369
|
if (args.channelId === "" || args.threadTs === "") {
|
|
335
|
-
return
|
|
370
|
+
return EMPTY_SLACK_THREAD_CONTEXT;
|
|
336
371
|
}
|
|
337
372
|
const replyLimit = (_b = args.limit) !== null && _b !== void 0 ? _b : DEFAULT_REPLY_LIMIT;
|
|
338
373
|
const fetched = yield fetchThreadMessages({
|
|
@@ -342,7 +377,7 @@ export function loadSlackThreadContextBlock(args) {
|
|
|
342
377
|
log,
|
|
343
378
|
});
|
|
344
379
|
if (fetched === undefined) {
|
|
345
|
-
return
|
|
380
|
+
return EMPTY_SLACK_THREAD_CONTEXT;
|
|
346
381
|
}
|
|
347
382
|
const allMessages = args.mergeMessages === undefined || args.mergeMessages.length === 0
|
|
348
383
|
? fetched
|
|
@@ -352,25 +387,33 @@ export function loadSlackThreadContextBlock(args) {
|
|
|
352
387
|
limit: replyLimit,
|
|
353
388
|
excludeTs: args.excludeTs,
|
|
354
389
|
});
|
|
355
|
-
return
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
390
|
+
return {
|
|
391
|
+
block: formatSlackThreadContextBlock(trimmed, {
|
|
392
|
+
threadTs: args.threadTs,
|
|
393
|
+
maxChars: args.maxChars,
|
|
394
|
+
}),
|
|
395
|
+
files: slackThreadFilesByPriority(trimmed, args.threadTs),
|
|
396
|
+
};
|
|
397
|
+
});
|
|
398
|
+
}
|
|
399
|
+
export function loadSlackThreadContextBlock(args) {
|
|
400
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
401
|
+
return (yield loadSlackThreadContext(args)).block;
|
|
359
402
|
});
|
|
360
403
|
}
|
|
361
404
|
/**
|
|
362
405
|
* Warm-turn delta: messages since the last bot post (or all new replies when
|
|
363
406
|
* the watermark is unknown), with optional merge-by-ts for the triggering ask.
|
|
364
407
|
*/
|
|
365
|
-
export function
|
|
408
|
+
export function loadSlackThreadDelta(args) {
|
|
366
409
|
return __awaiter(this, void 0, void 0, function* () {
|
|
367
410
|
var _a;
|
|
368
411
|
const log = (_a = args.log) !== null && _a !== void 0 ? _a : defaultSlackLog;
|
|
369
412
|
if (args.botToken === undefined) {
|
|
370
|
-
return
|
|
413
|
+
return EMPTY_SLACK_THREAD_CONTEXT;
|
|
371
414
|
}
|
|
372
415
|
if (args.channelId === "" || args.threadTs === "") {
|
|
373
|
-
return
|
|
416
|
+
return EMPTY_SLACK_THREAD_CONTEXT;
|
|
374
417
|
}
|
|
375
418
|
const fetched = yield fetchThreadMessages({
|
|
376
419
|
botToken: args.botToken,
|
|
@@ -379,7 +422,7 @@ export function loadSlackThreadDeltaBlock(args) {
|
|
|
379
422
|
log,
|
|
380
423
|
});
|
|
381
424
|
if (fetched === undefined) {
|
|
382
|
-
return
|
|
425
|
+
return EMPTY_SLACK_THREAD_CONTEXT;
|
|
383
426
|
}
|
|
384
427
|
const allMessages = args.mergeMessages === undefined || args.mergeMessages.length === 0
|
|
385
428
|
? fetched
|
|
@@ -387,10 +430,15 @@ export function loadSlackThreadDeltaBlock(args) {
|
|
|
387
430
|
const afterTs = args.afterTs !== undefined && args.afterTs.trim() !== ""
|
|
388
431
|
? args.afterTs.trim()
|
|
389
432
|
: findLastBotMessageTs(allMessages, Object.assign(Object.assign({}, (args.botUserId === undefined ? {} : { botUserId: args.botUserId })), (args.botId === undefined ? {} : { botId: args.botId })));
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
}
|
|
433
|
+
const delta = selectThreadDeltaMessages(allMessages, { afterTs, excludeTs: args.excludeTs });
|
|
434
|
+
return {
|
|
435
|
+
block: formatThreadDeltaEntries(delta, args.maxChars),
|
|
436
|
+
files: slackThreadFilesByPriority(delta),
|
|
437
|
+
};
|
|
438
|
+
});
|
|
439
|
+
}
|
|
440
|
+
export function loadSlackThreadDeltaBlock(args) {
|
|
441
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
442
|
+
return (yield loadSlackThreadDelta(args)).block;
|
|
395
443
|
});
|
|
396
444
|
}
|
package/dist/docs/404.html
CHANGED
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
<link rel="preload stylesheet" href="/docs/assets/style.C130MVnH.css" as="style">
|
|
10
10
|
<link rel="preload stylesheet" href="/docs/vp-icons.css" as="style">
|
|
11
11
|
|
|
12
|
-
<script type="module" src="/docs/assets/app.
|
|
12
|
+
<script type="module" src="/docs/assets/app.4kQ8Db_q.js"></script>
|
|
13
13
|
<link rel="preload" href="/docs/assets/inter-roman-latin.Di8DUHzh.woff2" as="font" type="font/woff2" crossorigin="">
|
|
14
14
|
<script id="check-dark-mode">(()=>{const e=localStorage.getItem("vitepress-theme-appearance")||"auto",a=window.matchMedia("(prefers-color-scheme: dark)").matches;(!e||e==="auto"?a:e==="dark")&&document.documentElement.classList.add("dark")})();</script>
|
|
15
15
|
<script id="check-mac-os">document.documentElement.classList.toggle("mac",/Mac|iPhone|iPod|iPad/i.test(navigator.platform));</script>
|
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
</head>
|
|
19
19
|
<body>
|
|
20
20
|
<div id="app"></div>
|
|
21
|
-
<script>window.__VP_HASH_MAP__=JSON.parse("{\"building-with-agents.md\":\"-fcjCmJU\",\"deployment.md\":\"
|
|
21
|
+
<script>window.__VP_HASH_MAP__=JSON.parse("{\"building-with-agents.md\":\"-fcjCmJU\",\"deployment.md\":\"UhnJIMr-\",\"evals.md\":\"CCAtNcuL\",\"guides_agent-to-agent.md\":\"CGkicXeB\",\"guides_bitbucket.md\":\"Cb3LPKt3\",\"guides_cloud-agents.md\":\"BuEkDCwo\",\"guides_convert-automation.md\":\"Ci-Y2iD5\",\"guides_github.md\":\"Bq9kQU9B\",\"guides_gitlab.md\":\"BM27P43u\",\"guides_grokbot-agents.md\":\"yxVbSlKA\",\"guides_hooks.md\":\"BWoiNaMq\",\"guides_improve.md\":\"COtL-6ft\",\"guides_jev.md\":\"CRcgmjDb\",\"guides_mcp-oauth.md\":\"Cu6mhZ_3\",\"guides_opentelemetry.md\":\"DLlIB5rv\",\"guides_slack.md\":\"diqqXTTm\",\"guides_webhooks.md\":\"D0furjw0\",\"hillclimbing.md\":\"Biy0m-Qb\",\"index.md\":\"CVc_oOA3\",\"quickstart.md\":\"CHpHPBUN\",\"reference_agent-config.md\":\"Cj5uBKp4\",\"reference_artifacts.md\":\"CQfKq8F2\",\"reference_channels.md\":\"mbNtKCiR\",\"reference_cli.md\":\"DgeLTO18\",\"reference_connections.md\":\"COq--gAm\",\"reference_evals.md\":\"CJm3uCUm\",\"reference_extensions.md\":\"pa2tN-e4\",\"reference_hooks.md\":\"DbthhtIR\",\"reference_http-api.md\":\"BZOvhCqY\",\"reference_instructions.md\":\"Bdwscs4G\",\"reference_playground.md\":\"BdQzRJc2\",\"reference_project-layout.md\":\"CpLQ9j4K\",\"reference_prompt.md\":\"BQZB4eaV\",\"reference_schedules.md\":\"BVU5EFbz\",\"reference_sessions.md\":\"DeRUItHD\",\"reference_skills.md\":\"Cy00QMKS\",\"reference_subagents.md\":\"B8oyeXOI\",\"reference_tools.md\":\"hg2Wi5Bq\",\"templates_agentic-owners.md\":\"BykUiZ8j\",\"templates_security-reviewer.md\":\"DXMmKl_o\",\"templates_thermo-quality-review.md\":\"Dg1p1MsG\",\"templates_thermo-review.md\":\"Dlylkowj\",\"templates_triage.md\":\"CvJyx81N\",\"troubleshooting.md\":\"Cw5PKa3t\"}");window.__VP_SITE_DATA__=JSON.parse("{\"lang\":\"en-US\",\"dir\":\"ltr\",\"title\":\"Grok Bot Development Kit (BDK)\",\"description\":\"Build and serve bots and agents from versioned Markdown and TypeScript.\",\"base\":\"/docs/\",\"head\":[],\"router\":{\"prefetchLinks\":true},\"appearance\":true,\"themeConfig\":{\"sdkVersion\":\"0.2.4\",\"nav\":[{\"text\":\"Quickstart\",\"link\":\"/quickstart\"},{\"text\":\"Guides\",\"link\":\"/guides/mcp-oauth\"},{\"text\":\"Integrations\",\"link\":\"/guides/github\"},{\"text\":\"Templates\",\"link\":\"/templates/security-reviewer\"},{\"text\":\"Reference\",\"link\":\"/reference/project-layout\"}],\"search\":{\"provider\":\"local\"},\"outline\":{\"level\":[2,3]},\"sidebar\":[{\"text\":\"Getting started\",\"items\":[{\"text\":\"Overview\",\"link\":\"/\"},{\"text\":\"Building your first agent\",\"link\":\"/quickstart\"}]},{\"text\":\"Integrations\",\"collapsed\":false,\"items\":[{\"text\":\"GitHub\",\"link\":\"/guides/github\"},{\"text\":\"Slack\",\"link\":\"/guides/slack\"},{\"text\":\"Webhooks\",\"link\":\"/guides/webhooks\"},{\"text\":\"Cursor Automations\",\"link\":\"/guides/convert-automation\"},{\"text\":\"OpenTelemetry\",\"link\":\"/guides/opentelemetry\"},{\"text\":\"GitLab\",\"link\":\"/guides/gitlab\"},{\"text\":\"Bitbucket\",\"link\":\"/guides/bitbucket\"}]},{\"text\":\"Extensions\",\"collapsed\":false,\"items\":[{\"text\":\"Overview\",\"link\":\"/reference/extensions\"},{\"text\":\"Cloud agents\",\"link\":\"/guides/cloud-agents\"},{\"text\":\"Grok Bot agents\",\"link\":\"/guides/grokbot-agents\"},{\"text\":\"Self-improvement\",\"link\":\"/guides/improve\"},{\"text\":\"Jev\",\"link\":\"/guides/jev\"}]},{\"text\":\"Guides\",\"collapsed\":false,\"items\":[{\"text\":\"MCP\",\"link\":\"/guides/mcp-oauth\"},{\"text\":\"Hooks\",\"link\":\"/guides/hooks\"},{\"text\":\"Peer agents\",\"link\":\"/guides/agent-to-agent\"},{\"text\":\"Deployment\",\"link\":\"/deployment\"},{\"text\":\"Evals\",\"link\":\"/evals\"},{\"text\":\"Hillclimbing\",\"link\":\"/hillclimbing\"},{\"text\":\"Build with a coding agent\",\"link\":\"/building-with-agents\"},{\"text\":\"Troubleshooting\",\"link\":\"/troubleshooting\"}]},{\"text\":\"Templates\",\"collapsed\":false,\"items\":[{\"text\":\"Security reviewer\",\"link\":\"/templates/security-reviewer\"},{\"text\":\"Thermo review\",\"link\":\"/templates/thermo-review\"},{\"text\":\"Thermo quality review\",\"link\":\"/templates/thermo-quality-review\"},{\"text\":\"Agentic Approver\",\"link\":\"/templates/agentic-owners\"},{\"text\":\"Triage agent\",\"link\":\"/templates/triage\"}]},{\"text\":\"Reference\",\"collapsed\":false,\"items\":[{\"text\":\"Project layout\",\"link\":\"/reference/project-layout\"},{\"text\":\"Agent config\",\"link\":\"/reference/agent-config\"},{\"text\":\"Instructions\",\"link\":\"/reference/instructions\"},{\"text\":\"Tools\",\"link\":\"/reference/tools\"},{\"text\":\"prompt\",\"link\":\"/reference/prompt\"},{\"text\":\"Skills\",\"link\":\"/reference/skills\"},{\"text\":\"MCP Connections\",\"link\":\"/reference/connections\"},{\"text\":\"Subagents\",\"link\":\"/reference/subagents\"},{\"text\":\"Channels\",\"link\":\"/reference/channels\"},{\"text\":\"Schedules & reminders\",\"link\":\"/reference/schedules\"},{\"text\":\"Hooks\",\"link\":\"/reference/hooks\"},{\"text\":\"Evals\",\"link\":\"/reference/evals\"},{\"text\":\"Artifacts\",\"link\":\"/reference/artifacts\"},{\"text\":\"Sessions & streaming\",\"link\":\"/reference/sessions\"},{\"text\":\"Playground\",\"link\":\"/reference/playground\"},{\"text\":\"CLI\",\"link\":\"/reference/cli\"},{\"text\":\"HTTP API\",\"link\":\"/reference/http-api\"}]}]},\"locales\":{},\"scrollOffset\":134,\"cleanUrls\":false}");</script>
|
|
22
22
|
|
|
23
23
|
</body>
|
|
24
24
|
</html>
|