@cursor/july 0.1.108 → 0.1.109
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/AGENTS.md +2 -6
- package/README.md +3 -6
- package/dist/channels/bitbucket/api.d.ts +41 -0
- package/dist/channels/bitbucket/api.d.ts.map +1 -1
- package/dist/channels/bitbucket/api.js +260 -0
- package/dist/channels/bitbucket/binding.d.ts +4 -0
- package/dist/channels/bitbucket/binding.d.ts.map +1 -1
- package/dist/channels/bitbucket/binding.js +16 -0
- package/dist/channels/bitbucket/index.d.ts +1 -1
- package/dist/channels/bitbucket/index.d.ts.map +1 -1
- package/dist/channels/bitbucket/index.js +1 -1
- package/dist/channels/gitlab/api.d.ts +27 -0
- package/dist/channels/gitlab/api.d.ts.map +1 -1
- package/dist/channels/gitlab/api.js +88 -0
- package/dist/channels/gitlab/binding.d.ts +5 -0
- package/dist/channels/gitlab/binding.d.ts.map +1 -1
- package/dist/channels/gitlab/binding.js +10 -0
- package/dist/channels/gitlab/index.d.ts +1 -1
- package/dist/channels/gitlab/index.d.ts.map +1 -1
- package/dist/channels/gitlab/index.js +1 -1
- package/dist/channels/slack/dispatch.d.ts +10 -0
- package/dist/channels/slack/dispatch.d.ts.map +1 -1
- package/dist/channels/slack/dispatch.js +20 -3
- package/dist/channels/slack/slack-channel.d.ts +12 -5
- package/dist/channels/slack/slack-channel.d.ts.map +1 -1
- package/dist/channels/slack/slack-channel.js +59 -8
- package/dist/docs/404.html +2 -2
- package/dist/docs/assets/{app.BASKM3M4.js → app.Cr-wVbnB.js} +1 -1
- package/dist/docs/assets/{building-with-agents.md.CUSWxlP_.js → building-with-agents.md.D0KbSkJn.js} +2 -2
- package/dist/docs/assets/{building-with-agents.md.CUSWxlP_.lean.js → building-with-agents.md.D0KbSkJn.lean.js} +1 -1
- package/dist/docs/assets/chunks/@localSearchIndexroot.CFVQ4S17.js +1 -0
- package/dist/docs/assets/chunks/{VPLocalSearchBox.BOKxlYGP.js → VPLocalSearchBox.CVQERt56.js} +1 -1
- package/dist/docs/assets/chunks/{theme.DbDZW-zb.js → theme.Dnsd3XOn.js} +2 -2
- package/dist/docs/assets/concepts.md.B4o63Gul.js +1 -0
- package/dist/docs/assets/evals.md.C7JLjoEP.js +211 -0
- package/dist/docs/assets/evals.md.C7JLjoEP.lean.js +1 -0
- package/dist/docs/assets/guides_bitbucket.md.DZPzmUjU.js +10 -0
- package/dist/docs/assets/guides_bitbucket.md.DZPzmUjU.lean.js +1 -0
- package/dist/docs/assets/{guides_github.md.BH33UEBJ.js → guides_github.md.TZaTZlfz.js} +13 -3
- package/dist/docs/assets/{guides_github.md.BH33UEBJ.lean.js → guides_github.md.TZaTZlfz.lean.js} +1 -1
- package/dist/docs/assets/guides_gitlab.md.BmqwQfdG.js +14 -0
- package/dist/docs/assets/guides_gitlab.md.BmqwQfdG.lean.js +1 -0
- package/dist/docs/assets/{guides_webhooks.md.DKdA43Qm.js → guides_webhooks.md.CJK484ex.js} +2 -2
- package/dist/docs/assets/{hillclimbing.md.CpTGTCle.js → hillclimbing.md.BOiVo1tf.js} +1 -1
- package/dist/docs/assets/index.md.DD9Q2XuJ.js +5 -0
- package/dist/docs/assets/{index.md.BjH1w2ZW.lean.js → index.md.DD9Q2XuJ.lean.js} +1 -1
- package/dist/docs/assets/{reference_channels.md.D-qTqwcq.js → reference_channels.md.CAo-iK4j.js} +2 -2
- package/dist/docs/assets/{reference_channels.md.D-qTqwcq.lean.js → reference_channels.md.CAo-iK4j.lean.js} +1 -1
- package/dist/docs/assets/{reference_cli.md.Ca26u0Es.js → reference_cli.md.Deg7849l.js} +1 -1
- package/dist/docs/assets/{reference_extensions.md.CPWt00ds.js → reference_extensions.md.ZAVUyuEX.js} +2 -2
- package/dist/docs/assets/{reference_hooks.md.Ddt5DdgJ.js → reference_hooks.md.BlM_bOg6.js} +3 -3
- package/dist/docs/assets/{reference_hooks.md.Ddt5DdgJ.lean.js → reference_hooks.md.BlM_bOg6.lean.js} +1 -1
- package/dist/docs/assets/{reference_http-api.md.oySXBO8o.js → reference_http-api.md.BwaCo-VO.js} +1 -1
- package/dist/docs/assets/{reference_playground.md.4myJPxrf.js → reference_playground.md.DLnoaczX.js} +1 -1
- package/dist/docs/assets/{reference_playground.md.4myJPxrf.lean.js → reference_playground.md.DLnoaczX.lean.js} +1 -1
- package/dist/docs/assets/{reference_project-layout.md.DuBu9a96.js → reference_project-layout.md.BEU8MtQV.js} +3 -3
- package/dist/docs/assets/{reference_project-layout.md.DuBu9a96.lean.js → reference_project-layout.md.BEU8MtQV.lean.js} +1 -1
- package/dist/docs/assets/reference_sessions.md.CyXV1MUw.js +1 -0
- package/dist/docs/assets/skills_deploy.md.CWqi_ZxW.js +35 -0
- package/dist/docs/assets/skills_deploy.md.CWqi_ZxW.lean.js +1 -0
- package/dist/docs/assets/{skills_evals.md.BhovOvrl.js → skills_evals.md.DFxYPErF.js} +3 -3
- package/dist/docs/assets/skills_evals.md.DFxYPErF.lean.js +1 -0
- package/dist/docs/assets/{skills_framework-map.md.D-tFZhFS.js → skills_framework-map.md.BxLSOhSY.js} +1 -1
- package/dist/docs/assets/skills_index.md.DL7EHaQ-.js +1 -0
- package/dist/docs/assets/skills_index.md.DL7EHaQ-.lean.js +1 -0
- package/dist/docs/assets/{storage.md.BOHeqk2M.js → storage.md.BUrhJ-Zz.js} +4 -4
- package/dist/docs/assets/{storage.md.BOHeqk2M.lean.js → storage.md.BUrhJ-Zz.lean.js} +1 -1
- package/dist/docs/building-with-agents.html +5 -5
- package/dist/docs/building-with-agents.md +3 -2
- package/dist/docs/concepts.html +5 -5
- package/dist/docs/concepts.md +2 -4
- package/dist/docs/deployment.html +4 -4
- package/dist/docs/evals.html +161 -35
- package/dist/docs/evals.md +612 -297
- package/dist/docs/guides/agent-to-agent.html +4 -4
- package/dist/docs/guides/bitbucket.html +36 -0
- package/dist/docs/guides/bitbucket.md +84 -0
- package/dist/docs/guides/cloud-agents.html +4 -4
- package/dist/docs/guides/convert-automation.html +4 -4
- package/dist/docs/guides/github.html +17 -7
- package/dist/docs/guides/github.md +31 -0
- package/dist/docs/guides/gitlab.html +40 -0
- package/dist/docs/guides/gitlab.md +92 -0
- package/dist/docs/guides/grokbot-agents.html +4 -4
- package/dist/docs/guides/human-in-the-loop.html +4 -4
- package/dist/docs/guides/improve.html +4 -4
- package/dist/docs/guides/mcp-oauth.html +4 -4
- package/dist/docs/guides/opentelemetry.html +4 -4
- package/dist/docs/guides/slack.html +5 -5
- package/dist/docs/guides/webhooks.html +6 -6
- package/dist/docs/guides/webhooks.md +4 -2
- package/dist/docs/hashmap.json +1 -1
- package/dist/docs/hillclimbing.html +6 -6
- package/dist/docs/hillclimbing.md +2 -2
- package/dist/docs/index.html +6 -6
- package/dist/docs/index.md +10 -6
- package/dist/docs/llms-full.txt +1113 -778
- package/dist/docs/llms.txt +6 -5
- package/dist/docs/quickstart.html +4 -4
- package/dist/docs/reference/agent-config.html +4 -4
- package/dist/docs/reference/artifacts.html +4 -4
- package/dist/docs/reference/channels.html +6 -6
- package/dist/docs/reference/channels.md +16 -3
- package/dist/docs/reference/cli.html +6 -6
- package/dist/docs/reference/cli.md +6 -4
- package/dist/docs/reference/connections.html +4 -4
- package/dist/docs/reference/extensions.html +7 -7
- package/dist/docs/reference/extensions.md +0 -3
- package/dist/docs/reference/hooks.html +7 -7
- package/dist/docs/reference/hooks.md +9 -12
- package/dist/docs/reference/http-api.html +6 -6
- package/dist/docs/reference/http-api.md +2 -3
- package/dist/docs/reference/instructions.html +4 -4
- package/dist/docs/reference/playground.html +5 -5
- package/dist/docs/reference/playground.md +0 -4
- package/dist/docs/reference/project-layout.html +7 -7
- package/dist/docs/reference/project-layout.md +1 -8
- package/dist/docs/reference/prompt.html +4 -4
- package/dist/docs/reference/result.html +4 -4
- package/dist/docs/reference/schedules.html +4 -4
- package/dist/docs/reference/sessions.html +5 -5
- package/dist/docs/reference/sessions.md +1 -2
- package/dist/docs/reference/skills.html +4 -4
- package/dist/docs/reference/subagents.html +4 -4
- package/dist/docs/reference/tools.html +4 -4
- package/dist/docs/scaffolding-agents.html +4 -4
- package/dist/docs/skills/create-agent.html +4 -4
- package/dist/docs/skills/debug.html +4 -4
- package/dist/docs/skills/deploy.html +61 -0
- package/dist/docs/skills/deploy.md +161 -0
- package/dist/docs/skills/evals.html +8 -8
- package/dist/docs/skills/evals.md +44 -6
- package/dist/docs/skills/framework-map.html +5 -5
- package/dist/docs/skills/framework-map.md +1 -2
- package/dist/docs/skills/github.html +4 -4
- package/dist/docs/skills/hillclimb.html +4 -4
- package/dist/docs/skills/index.html +6 -6
- package/dist/docs/skills/index.md +1 -1
- package/dist/docs/skills/mcp-auth.html +4 -4
- package/dist/docs/skills/otel.html +4 -4
- package/dist/docs/skills/setup-slack.html +4 -4
- package/dist/docs/storage.html +8 -8
- package/dist/docs/storage.md +15 -24
- package/dist/docs/templates/agentic-owners.html +4 -4
- package/dist/docs/templates/agents-md.html +4 -4
- package/dist/docs/templates/code-wiki.html +4 -4
- package/dist/docs/templates/demo.html +4 -4
- package/dist/docs/templates/grokbot-agents.html +4 -4
- package/dist/docs/templates/pr-autofixer.html +4 -4
- package/dist/docs/templates/security-help.html +4 -4
- package/dist/docs/templates/security-reviewer.html +4 -4
- package/dist/docs/templates/triage.html +4 -4
- package/dist/docs/troubleshooting.html +4 -4
- package/dist/extensions.d.ts +2 -3
- package/dist/extensions.d.ts.map +1 -1
- package/dist/extensions.js +2 -5
- package/dist/index.d.ts +2 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -2
- package/dist/internal/authored-alias-hooks.d.ts +5 -0
- package/dist/internal/authored-alias-hooks.d.ts.map +1 -1
- package/dist/internal/authored-alias-hooks.js +17 -0
- package/dist/internal/authored-loaders.d.ts +4 -0
- package/dist/internal/authored-loaders.d.ts.map +1 -1
- package/dist/internal/authored-loaders.js +21 -2
- package/dist/internal/cli-ax.d.ts +1 -2
- package/dist/internal/cli-ax.d.ts.map +1 -1
- package/dist/internal/cli-ax.js +1 -2
- package/dist/internal/continuation-channel.d.ts.map +1 -1
- package/dist/internal/continuation-channel.js +2 -2
- package/dist/internal/continuation-identity.js +8 -3
- package/dist/internal/discovery/agent.d.ts +1 -1
- package/dist/internal/discovery/agent.d.ts.map +1 -1
- package/dist/internal/discovery/agent.js +0 -5
- package/dist/internal/discovery/extension-overlay.d.ts +1 -2
- package/dist/internal/discovery/extension-overlay.d.ts.map +1 -1
- package/dist/internal/discovery/extension-overlay.js +0 -14
- package/dist/internal/discovery/extensions.d.ts +1 -2
- package/dist/internal/discovery/extensions.d.ts.map +1 -1
- package/dist/internal/discovery/extensions.js +4 -22
- package/dist/internal/discovery/info.d.ts.map +1 -1
- package/dist/internal/discovery/info.js +42 -24
- package/dist/internal/discovery/modules.js +0 -1
- package/dist/internal/discovery/project.d.ts.map +1 -1
- package/dist/internal/discovery/project.js +0 -16
- package/dist/internal/eval-runner.js +0 -1
- package/dist/internal/framework-file-storage.d.ts +4 -5
- package/dist/internal/framework-file-storage.d.ts.map +1 -1
- package/dist/internal/framework-file-storage.js +4 -5
- package/dist/internal/framework-storage-selection.d.ts +2 -2
- package/dist/internal/framework-storage-selection.js +2 -2
- package/dist/internal/init-scaffold.d.ts.map +1 -1
- package/dist/internal/init-scaffold.js +1 -2
- package/dist/internal/install-cursor-skills.d.ts +5 -2
- package/dist/internal/install-cursor-skills.d.ts.map +1 -1
- package/dist/internal/install-cursor-skills.js +25 -5
- package/dist/internal/run-client.d.ts +1 -1
- package/dist/internal/sdk-runner.js +1 -1
- package/dist/internal/server.js +0 -14
- package/dist/internal/session-engine.d.ts +5 -35
- package/dist/internal/session-engine.d.ts.map +1 -1
- package/dist/internal/session-engine.js +17 -162
- package/dist/internal/storage-coordinator.d.ts +5 -19
- package/dist/internal/storage-coordinator.d.ts.map +1 -1
- package/dist/internal/storage-coordinator.js +3 -62
- package/dist/internal/storage-roles.d.ts +4 -9
- package/dist/internal/storage-roles.d.ts.map +1 -1
- package/dist/internal/storage-roles.js +2 -2
- package/dist/playground/assets/index-Bhxzrcf6.css +1 -0
- package/dist/playground/assets/index-CqLX5uF3.js +67 -0
- package/dist/playground/index.html +2 -2
- package/dist/storage-backends/cursor-hosted-v2.d.ts +4 -5
- package/dist/storage-backends/cursor-hosted-v2.d.ts.map +1 -1
- package/dist/storage-backends/cursor-hosted-v2.js +4 -5
- package/dist/storage-backends/cursor-hosted.d.ts +1 -2
- package/dist/storage-backends/cursor-hosted.d.ts.map +1 -1
- package/dist/storage-backends/cursor-hosted.js +0 -30
- package/dist/storage-backends/file-kv.d.ts +9 -12
- package/dist/storage-backends/file-kv.d.ts.map +1 -1
- package/dist/storage-backends/file-kv.js +11 -47
- package/dist/storage-protocol.d.ts +3 -11
- package/dist/storage-protocol.d.ts.map +1 -1
- package/dist/storage-protocol.js +3 -11
- package/dist/storage.d.ts +8 -36
- package/dist/storage.d.ts.map +1 -1
- package/dist/storage.js +8 -44
- package/dist/types.d.ts +20 -57
- package/dist/types.d.ts.map +1 -1
- package/docs/README.md +10 -6
- package/docs/building-with-agents.md +3 -2
- package/docs/concepts.md +2 -4
- package/docs/evals.md +613 -298
- package/docs/guides/bitbucket.md +89 -0
- package/docs/guides/github.md +31 -0
- package/docs/guides/gitlab.md +97 -0
- package/docs/guides/webhooks.md +4 -2
- package/docs/hillclimbing.md +2 -2
- package/docs/reference/channels.md +16 -3
- package/docs/reference/cli.md +6 -4
- package/docs/reference/extensions.md +0 -3
- package/docs/reference/hooks.md +9 -12
- package/docs/reference/http-api.md +2 -3
- package/docs/reference/playground.md +0 -4
- package/docs/reference/project-layout.md +1 -8
- package/docs/reference/sessions.md +1 -2
- package/docs/skills/index.md +2 -2
- package/docs/storage.md +15 -24
- package/package.json +1 -7
- package/skills/deploy/SKILL.md +169 -0
- package/skills/evals/SKILL.md +45 -8
- package/skills/framework-map/SKILL.md +1 -2
- package/src/channels/bitbucket/api.ts +341 -0
- package/src/channels/bitbucket/binding.ts +25 -0
- package/src/channels/bitbucket/index.ts +2 -0
- package/src/channels/gitlab/api.ts +123 -0
- package/src/channels/gitlab/binding.ts +12 -0
- package/src/channels/gitlab/index.ts +1 -0
- package/src/channels/slack/dispatch.ts +30 -0
- package/src/channels/slack/slack-channel.ts +69 -7
- package/src/extensions.ts +2 -6
- package/src/index.ts +0 -3
- package/src/internal/authored-alias-hooks.ts +32 -0
- package/src/internal/authored-loaders.ts +26 -2
- package/src/internal/cli-ax.ts +1 -2
- package/src/internal/continuation-channel.ts +2 -1
- package/src/internal/continuation-identity.ts +10 -2
- package/src/internal/discovery/agent.ts +1 -7
- package/src/internal/discovery/extension-overlay.ts +0 -18
- package/src/internal/discovery/extensions.ts +2 -26
- package/src/internal/discovery/info.ts +3 -13
- package/src/internal/discovery/modules.ts +0 -1
- package/src/internal/discovery/project.ts +0 -16
- package/src/internal/eval-runner.ts +0 -1
- package/src/internal/framework-file-storage.ts +4 -5
- package/src/internal/framework-storage-selection.ts +2 -2
- package/src/internal/init-scaffold.ts +1 -2
- package/src/internal/install-cursor-skills.ts +38 -5
- package/src/internal/run-client.ts +1 -1
- package/src/internal/sdk-runner.ts +1 -1
- package/src/internal/server.ts +0 -16
- package/src/internal/session-engine.ts +14 -202
- package/src/internal/storage-coordinator.ts +5 -76
- package/src/internal/storage-roles.ts +4 -9
- package/src/storage-backends/cursor-hosted-v2.ts +4 -7
- package/src/storage-backends/cursor-hosted.ts +0 -37
- package/src/storage-backends/file-kv.ts +10 -51
- package/src/storage-protocol.ts +3 -17
- package/src/storage.ts +10 -101
- package/src/types.ts +19 -56
- package/templates/demo/README.md +10 -6
- package/templates/demo/agent/channels/github.ts +2 -0
- package/templates/demo/agent/channels/queue.ts +6 -2
- package/templates/demo/agent/lib/repos.ts +5 -0
- package/templates/demo/init.json +25 -0
- package/dist/ab.d.ts +0 -209
- package/dist/ab.d.ts.map +0 -1
- package/dist/ab.js +0 -246
- package/dist/docs/ab.html +0 -80
- package/dist/docs/ab.md +0 -332
- package/dist/docs/assets/ab.md.mlVgqvSk.js +0 -54
- package/dist/docs/assets/ab.md.mlVgqvSk.lean.js +0 -1
- package/dist/docs/assets/chunks/@localSearchIndexroot.BHZYsNVi.js +0 -1
- package/dist/docs/assets/concepts.md.DgEcZOfT.js +0 -1
- package/dist/docs/assets/evals.md.C1ekS3k2.js +0 -85
- package/dist/docs/assets/evals.md.C1ekS3k2.lean.js +0 -1
- package/dist/docs/assets/index.md.BjH1w2ZW.js +0 -5
- package/dist/docs/assets/reference_sessions.md.CueyOHSL.js +0 -1
- package/dist/docs/assets/skills_ab.md.CsFNatVx.js +0 -26
- package/dist/docs/assets/skills_ab.md.CsFNatVx.lean.js +0 -1
- package/dist/docs/assets/skills_evals.md.BhovOvrl.lean.js +0 -1
- package/dist/docs/assets/skills_index.md.DKwIxzGg.js +0 -1
- package/dist/docs/assets/skills_index.md.DKwIxzGg.lean.js +0 -1
- package/dist/docs/skills/ab.html +0 -52
- package/dist/docs/skills/ab.md +0 -50
- package/dist/internal/ab-collector.d.ts +0 -44
- package/dist/internal/ab-collector.d.ts.map +0 -1
- package/dist/internal/ab-collector.js +0 -142
- package/dist/internal/ab-fold.d.ts +0 -36
- package/dist/internal/ab-fold.d.ts.map +0 -1
- package/dist/internal/ab-fold.js +0 -175
- package/dist/internal/ab-snapshot.d.ts +0 -68
- package/dist/internal/ab-snapshot.d.ts.map +0 -1
- package/dist/internal/ab-snapshot.js +0 -208
- package/dist/internal/discovery/ab.d.ts +0 -9
- package/dist/internal/discovery/ab.d.ts.map +0 -1
- package/dist/internal/discovery/ab.js +0 -113
- package/dist/playground/assets/index-BMDqAeXu.js +0 -67
- package/dist/playground/assets/index-LUgJoWdL.css +0 -1
- package/docs/ab.md +0 -337
- package/skills/ab/SKILL.md +0 -58
- package/src/ab.ts +0 -430
- package/src/internal/ab-collector.ts +0 -200
- package/src/internal/ab-fold.ts +0 -232
- package/src/internal/ab-snapshot.ts +0 -331
- package/src/internal/discovery/ab.ts +0 -131
- /package/dist/docs/assets/{concepts.md.DgEcZOfT.lean.js → concepts.md.B4o63Gul.lean.js} +0 -0
- /package/dist/docs/assets/{guides_webhooks.md.DKdA43Qm.lean.js → guides_webhooks.md.CJK484ex.lean.js} +0 -0
- /package/dist/docs/assets/{hillclimbing.md.CpTGTCle.lean.js → hillclimbing.md.BOiVo1tf.lean.js} +0 -0
- /package/dist/docs/assets/{reference_cli.md.Ca26u0Es.lean.js → reference_cli.md.Deg7849l.lean.js} +0 -0
- /package/dist/docs/assets/{reference_extensions.md.CPWt00ds.lean.js → reference_extensions.md.ZAVUyuEX.lean.js} +0 -0
- /package/dist/docs/assets/{reference_http-api.md.oySXBO8o.lean.js → reference_http-api.md.BwaCo-VO.lean.js} +0 -0
- /package/dist/docs/assets/{reference_sessions.md.CueyOHSL.lean.js → reference_sessions.md.CyXV1MUw.lean.js} +0 -0
- /package/dist/docs/assets/{skills_framework-map.md.D-tFZhFS.lean.js → skills_framework-map.md.BxLSOhSY.lean.js} +0 -0
package/AGENTS.md
CHANGED
|
@@ -5,7 +5,7 @@ Loop: edit files → inspect surface → run a turn → assert with filesystem
|
|
|
5
5
|
evals. Prefer the CLI over ad-hoc curl.
|
|
6
6
|
|
|
7
7
|
User-facing documentation lives in [`docs/`](./docs/README.md)
|
|
8
|
-
(quickstart, concepts, guides, evals/
|
|
8
|
+
(quickstart, concepts, guides, evals/hillclimbing, deployment,
|
|
9
9
|
troubleshooting, reference). This file is the terse loop reference;
|
|
10
10
|
point humans at the docs.
|
|
11
11
|
|
|
@@ -44,12 +44,12 @@ which reads these files. Open them directly. There are no
|
|
|
44
44
|
| `skills/framework-map/SKILL.md` | First contact: folder structure, runtimes, sessions, state, invariants |
|
|
45
45
|
| `skills/create-agent/SKILL.md` | Scaffolding a new agent (interview → scaffold → verify) |
|
|
46
46
|
| `skills/evals/SKILL.md` | Writing evals; fixture strategy; the regression ratchet |
|
|
47
|
-
| `skills/ab/SKILL.md` | Live A/B metrics (`defineAB` under `agent/ab`); not a test runner |
|
|
48
47
|
| `skills/otel/SKILL.md` | OpenTelemetry export (`defineOtel` / OTLP env / `ctx.host.otel`) |
|
|
49
48
|
| `skills/hillclimb/SKILL.md` | Improving an existing agent measurably |
|
|
50
49
|
| `skills/github/SKILL.md` | GitHub webhook agents; replay / forward / fixtures / cursor-events |
|
|
51
50
|
| `skills/setup-slack/SKILL.md` | Slack wiring and Slack tool approvals |
|
|
52
51
|
| `skills/mcp-auth/SKILL.md` | Host MCP OAuth (`mcp oauth`, `--store`, `advertiseTools`, `host-connections/`) |
|
|
52
|
+
| `skills/deploy/SKILL.md` | Deploy or redeploy from a pushed Git ref with an attached service account |
|
|
53
53
|
| `skills/debug/SKILL.md` | Something misbehaving locally (symptom → cause) |
|
|
54
54
|
|
|
55
55
|
Hosted-platform debug (stopped / slow start / health-fail, Datadog
|
|
@@ -87,8 +87,6 @@ agent-sdk call get_weather --dir . --input '{"city":"NYC"}'
|
|
|
87
87
|
agent-sdk eval --dir . --list
|
|
88
88
|
agent-sdk eval --dir . --json
|
|
89
89
|
agent-sdk eval --dir . weather/nyc
|
|
90
|
-
|
|
91
|
-
# Live A/B metrics: author agent/ab.ts (defineAB) — runs under serve, no CLI
|
|
92
90
|
```
|
|
93
91
|
|
|
94
92
|
## Project layout
|
|
@@ -101,8 +99,6 @@ my-agent/
|
|
|
101
99
|
tools/*.ts
|
|
102
100
|
skills/*.md
|
|
103
101
|
channels/
|
|
104
|
-
ab.ts # optional live A/B metrics (defineAB)
|
|
105
|
-
ab.config.ts # optional: maxPlaygroundSessions (default 200)
|
|
106
102
|
...
|
|
107
103
|
evals/
|
|
108
104
|
smoke.eval.ts # single datapoint → id: smoke
|
package/README.md
CHANGED
|
@@ -16,9 +16,9 @@ as the execution engine.
|
|
|
16
16
|
**User-facing documentation lives in [`docs/`](./docs/README.md)**.
|
|
17
17
|
Open it with `npx @cursor/july docs`, or at `/docs` on every running
|
|
18
18
|
`agent-sdk serve` host. It covers getting started, concepts, guides (Slack,
|
|
19
|
-
GitHub webhooks, approvals, agent-to-agent, cloud runtime), evals,
|
|
20
|
-
|
|
21
|
-
|
|
19
|
+
GitHub webhooks, approvals, agent-to-agent, cloud runtime), evals,
|
|
20
|
+
hillclimbing, deployment, troubleshooting, and reference pages for each
|
|
21
|
+
folder. This README is the compact package reference.
|
|
22
22
|
|
|
23
23
|
Instead of one large configuration object, each part of the agent gets a
|
|
24
24
|
clear home. Instructions go in one file, tools in one folder, channels in
|
|
@@ -49,8 +49,6 @@ my-agent/
|
|
|
49
49
|
├── result.ts # optional host commit on the final assistant text
|
|
50
50
|
├── otel.ts # optional OpenTelemetry export
|
|
51
51
|
├── playground/ # optional custom playground tool chips
|
|
52
|
-
├── ab.ts # optional live A/B experiment
|
|
53
|
-
├── ab/ # optional: more experiments
|
|
54
52
|
├── schedules/
|
|
55
53
|
│ └── heartbeat.md # cron-driven runs
|
|
56
54
|
├── sandbox/workspace/ # files seeded into each session's workspace
|
|
@@ -1154,7 +1152,6 @@ The NDJSON stream vocabulary: one JSON object per line, each carrying
|
|
|
1154
1152
|
| --------------------- | -------------------------------------------------------------- |
|
|
1155
1153
|
| `session.started` | A durable session was created. |
|
|
1156
1154
|
| `agent.bound` | Cloud conversation URL. |
|
|
1157
|
-
| `ab.assigned` | Sticky A/B enrollment (`experiment`, `variant` or `null` skip). |
|
|
1158
1155
|
| `message.received` | An inbound user message was accepted. |
|
|
1159
1156
|
| `turn.started` | A turn began. |
|
|
1160
1157
|
| `step.started` / `step.completed` | Model step boundaries (with duration). |
|
|
@@ -136,6 +136,8 @@ export interface BitbucketApiPullRequest {
|
|
|
136
136
|
title?: string;
|
|
137
137
|
description?: string;
|
|
138
138
|
state?: string;
|
|
139
|
+
draft?: boolean;
|
|
140
|
+
authorUsername?: string;
|
|
139
141
|
sourceBranch?: string;
|
|
140
142
|
targetBranch?: string;
|
|
141
143
|
headSha?: string;
|
|
@@ -143,6 +145,18 @@ export interface BitbucketApiPullRequest {
|
|
|
143
145
|
htmlUrl?: string;
|
|
144
146
|
raw: unknown;
|
|
145
147
|
}
|
|
148
|
+
export interface BitbucketApiChangedFile {
|
|
149
|
+
path: string;
|
|
150
|
+
previousPath?: string;
|
|
151
|
+
status: "added" | "modified" | "removed" | "renamed";
|
|
152
|
+
patch?: string;
|
|
153
|
+
}
|
|
154
|
+
export interface BitbucketPullRequestDiffInput {
|
|
155
|
+
headSha?: string;
|
|
156
|
+
baseSha?: string;
|
|
157
|
+
mergeBaseSha?: string;
|
|
158
|
+
mergeBaseResolved?: boolean;
|
|
159
|
+
}
|
|
146
160
|
/**
|
|
147
161
|
* The handful of operations review products need, implemented once per
|
|
148
162
|
* dialect. `ctx.bitbucket.api` is the repo-bound instance.
|
|
@@ -159,6 +173,29 @@ export interface BitbucketApi {
|
|
|
159
173
|
/** Raw file contents at `ref` (branch, tag, or SHA). */
|
|
160
174
|
getFileAtRef(path: string, ref: string): Promise<string>;
|
|
161
175
|
}
|
|
176
|
+
export interface BitbucketPullRequestReadApi {
|
|
177
|
+
getPullRequest(id: number): Promise<BitbucketApiPullRequest>;
|
|
178
|
+
getMergeBaseSha(id: number, base: string, headSha: string): Promise<string | undefined>;
|
|
179
|
+
listChangedFiles(id: number, input?: BitbucketPullRequestDiffInput): Promise<BitbucketApiChangedFile[]>;
|
|
180
|
+
}
|
|
181
|
+
export interface BitbucketPullRequestReadClient {
|
|
182
|
+
readonly repository: BitbucketRepositoryRef;
|
|
183
|
+
readonly api: Pick<BitbucketApi, "getPullRequest" | "getPullRequestDiff">;
|
|
184
|
+
request<T = unknown>(input: BitbucketRequestInput): Promise<T>;
|
|
185
|
+
}
|
|
186
|
+
export type BitbucketPullRequestReadDiagnostic = {
|
|
187
|
+
kind: "commit-expansion-failed";
|
|
188
|
+
sha: string;
|
|
189
|
+
error: unknown;
|
|
190
|
+
} | {
|
|
191
|
+
kind: "diff-fallback";
|
|
192
|
+
status: number;
|
|
193
|
+
} | {
|
|
194
|
+
kind: "metadata-fallback";
|
|
195
|
+
status: number;
|
|
196
|
+
};
|
|
197
|
+
/** Split a Git-style unified diff into normalized changed files. */
|
|
198
|
+
export declare function splitBitbucketUnifiedDiff(diff: string): BitbucketApiChangedFile[];
|
|
162
199
|
/** `/repositories/{workspace}/{slug}` — Bitbucket Cloud 2.0. */
|
|
163
200
|
export declare function bitbucketCloudRepoPath(repository: {
|
|
164
201
|
owner: string;
|
|
@@ -169,6 +206,10 @@ export declare function bitbucketDataCenterRepoPath(repository: {
|
|
|
169
206
|
owner: string;
|
|
170
207
|
slug: string;
|
|
171
208
|
}): string;
|
|
209
|
+
export declare function expandBitbucketCloudCommitSha(bitbucket: Pick<BitbucketClient, "request">, repository: Pick<BitbucketRepositoryRef, "owner" | "slug">, sha: string | undefined, onError?: (error: unknown) => void): Promise<string | undefined>;
|
|
210
|
+
export declare function createBitbucketPullRequestReadApi(bitbucket: BitbucketPullRequestReadClient, options?: {
|
|
211
|
+
onDiagnostic?: (diagnostic: BitbucketPullRequestReadDiagnostic) => void;
|
|
212
|
+
}): BitbucketPullRequestReadApi;
|
|
172
213
|
export declare function cloudBitbucketApi(client: BitbucketClient, repository: BitbucketRepositoryRef): BitbucketApi;
|
|
173
214
|
export declare function dcBitbucketApi(client: BitbucketClient, repository: BitbucketRepositoryRef): BitbucketApi;
|
|
174
215
|
/** Pick the dialect implementation for `repository.dialect`. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../../src/channels/bitbucket/api.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AAE3E,eAAO,MAAM,oCAAoC,kCAChB,CAAC;AAElC,wEAAwE;AACxE,eAAO,MAAM,6BAA6B,6BAA6B,CAAC;AAExE,MAAM,MAAM,kBAAkB,GAAG,QAAQ,GAAG,KAAK,GAAG,OAAO,GAAG,MAAM,GAAG,KAAK,CAAC;AAE7E,yEAAyE;AACzE,qBAAa,iBAAkB,SAAQ,KAAK;IAC1C,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IAExB,YAAY,KAAK,EAAE;QACjB,IAAI,EAAE,OAAO,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;QACf,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,EAAE,MAAM,CAAC;KAChB,EASA;CACF;AAED,MAAM,MAAM,sBAAsB,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC;AAEpE,yEAAyE;AACzE,MAAM,WAAW,uBAAuB;IACtC,wEAAwE;IACxE,UAAU,EAAE,MAAM,CAAC;IACnB,iFAAiF;IACjF,SAAS,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC;IACjC,qEAAqE;IACrE,OAAO,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;CAC5C;AAED,MAAM,WAAW,sBAAsB;IACrC;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,kFAAkF;IAClF,KAAK,CAAC,EAAE,MAAM,GAAG,sBAAsB,CAAC;IACxC,gFAAgF;IAChF,KAAK,CAAC,EAAE,uBAAuB,CAAC;IAChC;;;;OAIG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,kCAAkC;IAClC,KAAK,CAAC,EAAE,OAAO,KAAK,CAAC;CACtB;AAED,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,kBAAkB,CAAC;IAC3B,iFAAiF;IACjF,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC,CAAC;IAC9D,IAAI,CAAC,EAAE,OAAO,CAAC;IACf;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,mDAAmD;AACnD,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,+EAA+E;IAC/E,OAAO,CAAC,CAAC,GAAG,OAAO,EAAE,KAAK,EAAE,qBAAqB,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;CAChE;AAOD,kCAAkC;AAClC,wBAAgB,iBAAiB,CAC/B,GAAG,GAAE,MAAM,CAAC,UAAwB,GACnC,MAAM,GAAG,SAAS,CAEpB;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE;IACzC,OAAO,EAAE,gBAAgB,CAAC;IAC1B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;CACzB,GAAG,MAAM,GAAG,SAAS,CAgBrB;AAgBD,wBAAgB,qBAAqB,CACnC,OAAO,GAAE,sBAA2B,GACnC,eAAe,CAiFjB;AAID,gFAAgF;AAChF,MAAM,MAAM,yBAAyB,GACjC,YAAY,GACZ,YAAY,GACZ,QAAQ,GACR,SAAS,CAAC;AAEd,MAAM,WAAW,yBAAyB;IACxC,GAAG,EAAE,MAAM,CAAC;IACZ,4DAA4D;IAC5D,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,yBAAyB,CAAC;IACjC,6CAA6C;IAC7C,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,6EAA6E;IAC7E,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,gCAAgC;IAC/C,IAAI,EAAE,MAAM,CAAC;IACb;;;OAGG;IACH,MAAM,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CAC1C;AAED,mEAAmE;AACnE,MAAM,WAAW,mBAAmB;IAClC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,OAAO,CAAC;CACd;AAED,wEAAwE;AACxE,MAAM,WAAW,uBAAuB;IACtC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,GAAG,EAAE,OAAO,CAAC;CACd;AAED;;;GAGG;AACH,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,OAAO,EAAE,gBAAgB,CAAC;IACnC,QAAQ,CAAC,UAAU,EAAE,sBAAsB,CAAC;IAC5C,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,uBAAuB,CAAC,CAAC;IAC7D,uDAAuD;IACvD,kBAAkB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAChD,uBAAuB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,EAAE,CAAC,CAAC;IACpE,sBAAsB,CACpB,EAAE,EAAE,MAAM,EACV,KAAK,EAAE,gCAAgC,GACtC,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAChC,cAAc,CAAC,KAAK,EAAE,yBAAyB,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACnE,wDAAwD;IACxD,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CAC1D;
|
|
1
|
+
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../../src/channels/bitbucket/api.ts"],"names":[],"mappings":"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"}
|
|
@@ -166,6 +166,102 @@ function num(value) {
|
|
|
166
166
|
? value
|
|
167
167
|
: undefined;
|
|
168
168
|
}
|
|
169
|
+
function errorStatus(error) {
|
|
170
|
+
var _a;
|
|
171
|
+
return num((_a = asRecord(error)) === null || _a === void 0 ? void 0 : _a.status);
|
|
172
|
+
}
|
|
173
|
+
function bitbucketAuthorUsername(raw) {
|
|
174
|
+
var _a;
|
|
175
|
+
var _b, _c, _d, _e;
|
|
176
|
+
const author = asRecord((_a = asRecord(raw)) === null || _a === void 0 ? void 0 : _a.author);
|
|
177
|
+
const user = asRecord(author === null || author === void 0 ? void 0 : author.user);
|
|
178
|
+
return ((_e = (_d = (_c = (_b = str(author === null || author === void 0 ? void 0 : author.nickname)) !== null && _b !== void 0 ? _b : str(user === null || user === void 0 ? void 0 : user.name)) !== null && _c !== void 0 ? _c : str(user === null || user === void 0 ? void 0 : user.slug)) !== null && _d !== void 0 ? _d : str(author === null || author === void 0 ? void 0 : author.display_name)) !== null && _e !== void 0 ? _e : str(user === null || user === void 0 ? void 0 : user.displayName));
|
|
179
|
+
}
|
|
180
|
+
const GIT_PATH_ESCAPES = {
|
|
181
|
+
a: "\u0007",
|
|
182
|
+
b: "\b",
|
|
183
|
+
f: "\f",
|
|
184
|
+
n: "\n",
|
|
185
|
+
r: "\r",
|
|
186
|
+
t: "\t",
|
|
187
|
+
v: "\v",
|
|
188
|
+
"\\": "\\",
|
|
189
|
+
'"': '"',
|
|
190
|
+
};
|
|
191
|
+
function unescapeGitPath(path, quoted) {
|
|
192
|
+
var _a, _b;
|
|
193
|
+
if (!quoted) {
|
|
194
|
+
return path;
|
|
195
|
+
}
|
|
196
|
+
const bytes = [];
|
|
197
|
+
let output = "";
|
|
198
|
+
const flush = () => {
|
|
199
|
+
if (bytes.length > 0) {
|
|
200
|
+
output += Buffer.from(bytes).toString("utf8");
|
|
201
|
+
bytes.length = 0;
|
|
202
|
+
}
|
|
203
|
+
};
|
|
204
|
+
for (let index = 0; index < path.length; index += 1) {
|
|
205
|
+
const character = path[index];
|
|
206
|
+
if (character !== "\\") {
|
|
207
|
+
flush();
|
|
208
|
+
output += character;
|
|
209
|
+
continue;
|
|
210
|
+
}
|
|
211
|
+
const octal = /^[0-7]{1,3}/.exec(path.slice(index + 1));
|
|
212
|
+
if (octal !== null) {
|
|
213
|
+
bytes.push(Number.parseInt(octal[0], 8));
|
|
214
|
+
index += octal[0].length;
|
|
215
|
+
continue;
|
|
216
|
+
}
|
|
217
|
+
flush();
|
|
218
|
+
const next = (_a = path[index + 1]) !== null && _a !== void 0 ? _a : "";
|
|
219
|
+
output += (_b = GIT_PATH_ESCAPES[next]) !== null && _b !== void 0 ? _b : next;
|
|
220
|
+
index += 1;
|
|
221
|
+
}
|
|
222
|
+
flush();
|
|
223
|
+
return output;
|
|
224
|
+
}
|
|
225
|
+
/** Split a Git-style unified diff into normalized changed files. */
|
|
226
|
+
export function splitBitbucketUnifiedDiff(diff) {
|
|
227
|
+
var _a, _b, _c, _d;
|
|
228
|
+
const files = [];
|
|
229
|
+
const sections = diff.split(/^(?=diff --git )/m).filter(Boolean);
|
|
230
|
+
for (const section of sections) {
|
|
231
|
+
const lines = section.replace(/\n$/, "").split("\n");
|
|
232
|
+
const header = /^diff --git ("?)a\/(.+?)\1 ("?)b\/(.+?)\3$/.exec((_a = lines[0]) !== null && _a !== void 0 ? _a : "");
|
|
233
|
+
if (header === null) {
|
|
234
|
+
continue;
|
|
235
|
+
}
|
|
236
|
+
const oldPath = unescapeGitPath((_b = header[2]) !== null && _b !== void 0 ? _b : "", header[1] !== "");
|
|
237
|
+
const newPath = unescapeGitPath((_c = header[4]) !== null && _c !== void 0 ? _c : "", header[3] !== "");
|
|
238
|
+
let status = "modified";
|
|
239
|
+
let bodyStart = 1;
|
|
240
|
+
for (; bodyStart < lines.length; bodyStart += 1) {
|
|
241
|
+
const line = (_d = lines[bodyStart]) !== null && _d !== void 0 ? _d : "";
|
|
242
|
+
if (line.startsWith("@@")) {
|
|
243
|
+
break;
|
|
244
|
+
}
|
|
245
|
+
if (line === "--- /dev/null") {
|
|
246
|
+
status = "added";
|
|
247
|
+
}
|
|
248
|
+
else if (line === "+++ /dev/null") {
|
|
249
|
+
status = "removed";
|
|
250
|
+
}
|
|
251
|
+
}
|
|
252
|
+
if (status === "modified" && oldPath !== newPath) {
|
|
253
|
+
status = "renamed";
|
|
254
|
+
}
|
|
255
|
+
const patch = lines.slice(bodyStart).join("\n");
|
|
256
|
+
files.push({
|
|
257
|
+
path: newPath,
|
|
258
|
+
previousPath: status === "renamed" ? oldPath : undefined,
|
|
259
|
+
status,
|
|
260
|
+
patch: patch === "" ? undefined : patch,
|
|
261
|
+
});
|
|
262
|
+
}
|
|
263
|
+
return files;
|
|
264
|
+
}
|
|
169
265
|
function encodePath(path) {
|
|
170
266
|
return path
|
|
171
267
|
.split("/")
|
|
@@ -187,6 +283,170 @@ export function bitbucketCloudRepoPath(repository) {
|
|
|
187
283
|
export function bitbucketDataCenterRepoPath(repository) {
|
|
188
284
|
return `/projects/${encodeURIComponent(repository.owner)}/repos/${encodeURIComponent(repository.slug)}`;
|
|
189
285
|
}
|
|
286
|
+
export function expandBitbucketCloudCommitSha(bitbucket, repository, sha, onError) {
|
|
287
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
288
|
+
var _a;
|
|
289
|
+
if (sha === undefined || !/^[0-9a-f]{7,39}$/i.test(sha)) {
|
|
290
|
+
return sha;
|
|
291
|
+
}
|
|
292
|
+
try {
|
|
293
|
+
const commit = yield bitbucket.request({
|
|
294
|
+
method: "GET",
|
|
295
|
+
path: `${bitbucketCloudRepoPath(repository)}/commit/${encodeURIComponent(sha)}`,
|
|
296
|
+
});
|
|
297
|
+
return /^[0-9a-f]{40}$/i.test((_a = commit.hash) !== null && _a !== void 0 ? _a : "") ? commit.hash : sha;
|
|
298
|
+
}
|
|
299
|
+
catch (error) {
|
|
300
|
+
onError === null || onError === void 0 ? void 0 : onError(error);
|
|
301
|
+
return sha;
|
|
302
|
+
}
|
|
303
|
+
});
|
|
304
|
+
}
|
|
305
|
+
function bitbucketPullRequestFromRaw(raw, id, htmlUrl) {
|
|
306
|
+
var _a, _b, _c, _d, _e, _f, _g, _h;
|
|
307
|
+
var _j, _k, _l, _m;
|
|
308
|
+
const source = asRecord(raw.source);
|
|
309
|
+
const destination = asRecord(raw.destination);
|
|
310
|
+
return {
|
|
311
|
+
id,
|
|
312
|
+
title: str(raw.title),
|
|
313
|
+
description: str(raw.description),
|
|
314
|
+
state: str(raw.state),
|
|
315
|
+
draft: typeof raw.draft === "boolean" ? raw.draft : undefined,
|
|
316
|
+
authorUsername: bitbucketAuthorUsername(raw),
|
|
317
|
+
sourceBranch: (_j = str((_a = asRecord(source === null || source === void 0 ? void 0 : source.branch)) === null || _a === void 0 ? void 0 : _a.name)) !== null && _j !== void 0 ? _j : str((_b = asRecord(raw.fromRef)) === null || _b === void 0 ? void 0 : _b.displayId),
|
|
318
|
+
targetBranch: (_k = str((_c = asRecord(destination === null || destination === void 0 ? void 0 : destination.branch)) === null || _c === void 0 ? void 0 : _c.name)) !== null && _k !== void 0 ? _k : str((_d = asRecord(raw.toRef)) === null || _d === void 0 ? void 0 : _d.displayId),
|
|
319
|
+
headSha: (_l = str((_e = asRecord(source === null || source === void 0 ? void 0 : source.commit)) === null || _e === void 0 ? void 0 : _e.hash)) !== null && _l !== void 0 ? _l : str((_f = asRecord(raw.fromRef)) === null || _f === void 0 ? void 0 : _f.latestCommit),
|
|
320
|
+
baseSha: (_m = str((_g = asRecord(destination === null || destination === void 0 ? void 0 : destination.commit)) === null || _g === void 0 ? void 0 : _g.hash)) !== null && _m !== void 0 ? _m : str((_h = asRecord(raw.toRef)) === null || _h === void 0 ? void 0 : _h.latestCommit),
|
|
321
|
+
htmlUrl,
|
|
322
|
+
raw,
|
|
323
|
+
};
|
|
324
|
+
}
|
|
325
|
+
export function createBitbucketPullRequestReadApi(bitbucket, options = {}) {
|
|
326
|
+
const { repository } = bitbucket;
|
|
327
|
+
const repo = repository.dialect === "cloud"
|
|
328
|
+
? bitbucketCloudRepoPath(repository)
|
|
329
|
+
: bitbucketDataCenterRepoPath(repository);
|
|
330
|
+
const cloudPullRequestFromActivity = (id) => __awaiter(this, void 0, void 0, function* () {
|
|
331
|
+
var _a;
|
|
332
|
+
let path = `${repo}/pullrequests/${id}/activity`;
|
|
333
|
+
let query = { pagelen: 50 };
|
|
334
|
+
for (let page = 0; page < 20; page += 1) {
|
|
335
|
+
const response = yield bitbucket.request({
|
|
336
|
+
method: "GET",
|
|
337
|
+
path,
|
|
338
|
+
query,
|
|
339
|
+
});
|
|
340
|
+
for (const value of Array.isArray(response.values)
|
|
341
|
+
? response.values
|
|
342
|
+
: []) {
|
|
343
|
+
const update = asRecord((_a = asRecord(value)) === null || _a === void 0 ? void 0 : _a.update);
|
|
344
|
+
if (update !== undefined) {
|
|
345
|
+
return bitbucketPullRequestFromRaw(update, id);
|
|
346
|
+
}
|
|
347
|
+
}
|
|
348
|
+
const next = str(response.next);
|
|
349
|
+
if (next === undefined) {
|
|
350
|
+
return undefined;
|
|
351
|
+
}
|
|
352
|
+
const nextUrl = new URL(next);
|
|
353
|
+
const marker = nextUrl.pathname.indexOf("/repositories/");
|
|
354
|
+
path = marker === -1 ? nextUrl.pathname : nextUrl.pathname.slice(marker);
|
|
355
|
+
query = Object.fromEntries(nextUrl.searchParams.entries());
|
|
356
|
+
}
|
|
357
|
+
return undefined;
|
|
358
|
+
});
|
|
359
|
+
return {
|
|
360
|
+
getPullRequest(id) {
|
|
361
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
362
|
+
var _a, _b;
|
|
363
|
+
let pullRequest;
|
|
364
|
+
try {
|
|
365
|
+
pullRequest = yield bitbucket.api.getPullRequest(id);
|
|
366
|
+
}
|
|
367
|
+
catch (error) {
|
|
368
|
+
const status = errorStatus(error);
|
|
369
|
+
if (repository.dialect !== "cloud" ||
|
|
370
|
+
status === undefined ||
|
|
371
|
+
status < 500) {
|
|
372
|
+
throw error;
|
|
373
|
+
}
|
|
374
|
+
(_a = options.onDiagnostic) === null || _a === void 0 ? void 0 : _a.call(options, { kind: "metadata-fallback", status });
|
|
375
|
+
const fallback = yield cloudPullRequestFromActivity(id);
|
|
376
|
+
if (fallback === undefined) {
|
|
377
|
+
throw error;
|
|
378
|
+
}
|
|
379
|
+
pullRequest = fallback;
|
|
380
|
+
}
|
|
381
|
+
const normalized = Object.assign(Object.assign({}, pullRequest), { draft: ((_b = asRecord(pullRequest.raw)) === null || _b === void 0 ? void 0 : _b.draft) === true, authorUsername: bitbucketAuthorUsername(pullRequest.raw) });
|
|
382
|
+
if (repository.dialect !== "cloud") {
|
|
383
|
+
return normalized;
|
|
384
|
+
}
|
|
385
|
+
const [headSha, baseSha] = yield Promise.all([
|
|
386
|
+
expandBitbucketCloudCommitSha(bitbucket, repository, pullRequest.headSha, (error) => { var _a; return pullRequest.headSha === undefined
|
|
387
|
+
? undefined
|
|
388
|
+
: (_a = options.onDiagnostic) === null || _a === void 0 ? void 0 : _a.call(options, {
|
|
389
|
+
kind: "commit-expansion-failed",
|
|
390
|
+
sha: pullRequest.headSha,
|
|
391
|
+
error,
|
|
392
|
+
}); }),
|
|
393
|
+
expandBitbucketCloudCommitSha(bitbucket, repository, pullRequest.baseSha, (error) => { var _a; return pullRequest.baseSha === undefined
|
|
394
|
+
? undefined
|
|
395
|
+
: (_a = options.onDiagnostic) === null || _a === void 0 ? void 0 : _a.call(options, {
|
|
396
|
+
kind: "commit-expansion-failed",
|
|
397
|
+
sha: pullRequest.baseSha,
|
|
398
|
+
error,
|
|
399
|
+
}); }),
|
|
400
|
+
]);
|
|
401
|
+
return Object.assign(Object.assign({}, normalized), { headSha, baseSha });
|
|
402
|
+
});
|
|
403
|
+
},
|
|
404
|
+
getMergeBaseSha(id, base, headSha) {
|
|
405
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
406
|
+
if (repository.dialect === "cloud") {
|
|
407
|
+
const commit = yield bitbucket.request({
|
|
408
|
+
method: "GET",
|
|
409
|
+
path: `${repo}/merge-base/${encodeURIComponent(headSha)}..${encodeURIComponent(base)}`,
|
|
410
|
+
});
|
|
411
|
+
return str(commit.hash);
|
|
412
|
+
}
|
|
413
|
+
const commit = yield bitbucket.request({
|
|
414
|
+
method: "GET",
|
|
415
|
+
path: `${repo}/pull-requests/${id}/merge-base`,
|
|
416
|
+
});
|
|
417
|
+
return str(commit.id);
|
|
418
|
+
});
|
|
419
|
+
},
|
|
420
|
+
listChangedFiles(id, input) {
|
|
421
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
422
|
+
var _a;
|
|
423
|
+
var _b;
|
|
424
|
+
try {
|
|
425
|
+
return splitBitbucketUnifiedDiff(yield bitbucket.api.getPullRequestDiff(id));
|
|
426
|
+
}
|
|
427
|
+
catch (error) {
|
|
428
|
+
const status = errorStatus(error);
|
|
429
|
+
const comparisonBase = (_b = input === null || input === void 0 ? void 0 : input.mergeBaseSha) !== null && _b !== void 0 ? _b : input === null || input === void 0 ? void 0 : input.baseSha;
|
|
430
|
+
if (repository.dialect !== "cloud" ||
|
|
431
|
+
status === undefined ||
|
|
432
|
+
status < 500 ||
|
|
433
|
+
(input === null || input === void 0 ? void 0 : input.headSha) === undefined ||
|
|
434
|
+
comparisonBase === undefined) {
|
|
435
|
+
throw error;
|
|
436
|
+
}
|
|
437
|
+
(_a = options.onDiagnostic) === null || _a === void 0 ? void 0 : _a.call(options, { kind: "diff-fallback", status });
|
|
438
|
+
const diff = yield bitbucket.request({
|
|
439
|
+
method: "GET",
|
|
440
|
+
path: `${repo}/diff/${encodeURIComponent(input.headSha)}..${encodeURIComponent(comparisonBase)}`,
|
|
441
|
+
query: { topic: input.mergeBaseResolved === true ? "false" : "true" },
|
|
442
|
+
accept: "text/plain",
|
|
443
|
+
});
|
|
444
|
+
return splitBitbucketUnifiedDiff(diff);
|
|
445
|
+
}
|
|
446
|
+
});
|
|
447
|
+
},
|
|
448
|
+
};
|
|
449
|
+
}
|
|
190
450
|
export function cloudBitbucketApi(client, repository) {
|
|
191
451
|
const repo = bitbucketCloudRepoPath(repository);
|
|
192
452
|
const mapComment = (raw) => {
|
|
@@ -59,6 +59,10 @@ export declare function bitbucketRepositoryFromPayload(payload: Record<string, u
|
|
|
59
59
|
/** Cloud `{uuid, display_name, nickname}` or DC `{id, name, displayName}`. */
|
|
60
60
|
export declare function bitbucketUser(value: unknown): BitbucketUser | undefined;
|
|
61
61
|
export declare function bitbucketPullRequestUrl(repository: BitbucketRepositoryRef, id: number, explicit?: string): string;
|
|
62
|
+
/** Absolute PR URL, or undefined when a Data Center payload has no repo URL. */
|
|
63
|
+
export declare function bitbucketAbsolutePullRequestUrl(repository: BitbucketRepositoryRef, id: number, explicit?: string): string | undefined;
|
|
64
|
+
/** Whether a Data Center `updated` payload publishes a draft pull request. */
|
|
65
|
+
export declare function bitbucketDraftMarkedReady(payload: Record<string, unknown>, draft: boolean | undefined): boolean;
|
|
62
66
|
/**
|
|
63
67
|
* Normalize the pull request from either dialect. `action` is the suffix of
|
|
64
68
|
* the Cloud-normalized event key (`pullrequest:created` → `created`).
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"binding.d.ts","sourceRoot":"","sources":["../../../src/channels/bitbucket/binding.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"binding.d.ts","sourceRoot":"","sources":["../../../src/channels/bitbucket/binding.ts"],"names":[],"mappings":"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"}
|
|
@@ -172,6 +172,22 @@ export function bitbucketPullRequestUrl(repository, id, explicit) {
|
|
|
172
172
|
? `projects/${repository.owner}/repos/${repository.slug}/pull-requests/${id}`
|
|
173
173
|
: `${repository.htmlUrl.replace(/\/browse\/?$/, "")}/pull-requests/${id}`;
|
|
174
174
|
}
|
|
175
|
+
/** Absolute PR URL, or undefined when a Data Center payload has no repo URL. */
|
|
176
|
+
export function bitbucketAbsolutePullRequestUrl(repository, id, explicit) {
|
|
177
|
+
if (explicit !== undefined) {
|
|
178
|
+
return explicit;
|
|
179
|
+
}
|
|
180
|
+
if (repository.dialect === "cloud") {
|
|
181
|
+
return `https://bitbucket.org/${repository.fullName}/pull-requests/${id}`;
|
|
182
|
+
}
|
|
183
|
+
return repository.htmlUrl === undefined
|
|
184
|
+
? undefined
|
|
185
|
+
: `${repository.htmlUrl.replace(/\/+$/, "").replace(/\/browse$/, "")}/pull-requests/${id}`;
|
|
186
|
+
}
|
|
187
|
+
/** Whether a Data Center `updated` payload publishes a draft pull request. */
|
|
188
|
+
export function bitbucketDraftMarkedReady(payload, draft) {
|
|
189
|
+
return payload.previousDraft === true && draft === false;
|
|
190
|
+
}
|
|
175
191
|
/**
|
|
176
192
|
* Normalize the pull request from either dialect. `action` is the suffix of
|
|
177
193
|
* the Cloud-normalized event key (`pullrequest:created` → `created`).
|
|
@@ -21,7 +21,7 @@
|
|
|
21
21
|
* Bitbucket actor — not the Cursor subscriber.
|
|
22
22
|
*/
|
|
23
23
|
export * from "./api.js";
|
|
24
|
-
export { type BitbucketHandle, bitbucketCommentFromPayload, bitbucketDialectOf, bitbucketPullRequestFromPayload, bitbucketPullRequestUrl, bitbucketPushFromPayload, bitbucketRepositoryFromPayload, bitbucketUser, buildBitbucketBinding, } from "./binding.js";
|
|
24
|
+
export { type BitbucketHandle, bitbucketAbsolutePullRequestUrl, bitbucketCommentFromPayload, bitbucketDialectOf, bitbucketDraftMarkedReady, bitbucketPullRequestFromPayload, bitbucketPullRequestUrl, bitbucketPushFromPayload, bitbucketRepositoryFromPayload, bitbucketUser, buildBitbucketBinding, } from "./binding.js";
|
|
25
25
|
export * from "./bitbucket-channel.js";
|
|
26
26
|
export * from "./bitbucket-webhook.js";
|
|
27
27
|
export * from "./checks.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/channels/bitbucket/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,cAAc,UAAU,CAAC;AACzB,OAAO,EACL,KAAK,eAAe,EACpB,2BAA2B,EAC3B,kBAAkB,EAClB,+BAA+B,EAC/B,uBAAuB,EACvB,wBAAwB,EACxB,8BAA8B,EAC9B,aAAa,EACb,qBAAqB,GACtB,MAAM,cAAc,CAAC;AACtB,cAAc,wBAAwB,CAAC;AACvC,cAAc,wBAAwB,CAAC;AACvC,cAAc,aAAa,CAAC;AAC5B,OAAO,EACL,0BAA0B,EAC1B,KAAK,wBAAwB,EAC7B,6BAA6B,EAC7B,8BAA8B,GAC/B,MAAM,qBAAqB,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/channels/bitbucket/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,cAAc,UAAU,CAAC;AACzB,OAAO,EACL,KAAK,eAAe,EACpB,+BAA+B,EAC/B,2BAA2B,EAC3B,kBAAkB,EAClB,yBAAyB,EACzB,+BAA+B,EAC/B,uBAAuB,EACvB,wBAAwB,EACxB,8BAA8B,EAC9B,aAAa,EACb,qBAAqB,GACtB,MAAM,cAAc,CAAC;AACtB,cAAc,wBAAwB,CAAC;AACvC,cAAc,wBAAwB,CAAC;AACvC,cAAc,aAAa,CAAC;AAC5B,OAAO,EACL,0BAA0B,EAC1B,KAAK,wBAAwB,EAC7B,6BAA6B,EAC7B,8BAA8B,GAC/B,MAAM,qBAAqB,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC"}
|
|
@@ -21,7 +21,7 @@
|
|
|
21
21
|
* Bitbucket actor — not the Cursor subscriber.
|
|
22
22
|
*/
|
|
23
23
|
export * from "./api.js";
|
|
24
|
-
export { bitbucketCommentFromPayload, bitbucketDialectOf, bitbucketPullRequestFromPayload, bitbucketPullRequestUrl, bitbucketPushFromPayload, bitbucketRepositoryFromPayload, bitbucketUser, buildBitbucketBinding, } from "./binding.js";
|
|
24
|
+
export { bitbucketAbsolutePullRequestUrl, bitbucketCommentFromPayload, bitbucketDialectOf, bitbucketDraftMarkedReady, bitbucketPullRequestFromPayload, bitbucketPullRequestUrl, bitbucketPushFromPayload, bitbucketRepositoryFromPayload, bitbucketUser, buildBitbucketBinding, } from "./binding.js";
|
|
25
25
|
export * from "./bitbucket-channel.js";
|
|
26
26
|
export * from "./bitbucket-webhook.js";
|
|
27
27
|
export * from "./checks.js";
|
|
@@ -72,6 +72,32 @@ export interface GitLabClient {
|
|
|
72
72
|
/** Call a GitLab v4 path. Throws {@link GitLabApiError} on non-2xx. */
|
|
73
73
|
request<T = unknown>(input: GitLabRequestInput): Promise<T>;
|
|
74
74
|
}
|
|
75
|
+
export interface GitLabApiMergeRequest {
|
|
76
|
+
iid: number;
|
|
77
|
+
title?: string;
|
|
78
|
+
description?: string;
|
|
79
|
+
state?: string;
|
|
80
|
+
draft?: boolean;
|
|
81
|
+
webUrl?: string;
|
|
82
|
+
headSha?: string;
|
|
83
|
+
sourceBranch?: string;
|
|
84
|
+
targetBranch?: string;
|
|
85
|
+
authorUsername?: string;
|
|
86
|
+
baseSha?: string;
|
|
87
|
+
changedFilesCount?: number;
|
|
88
|
+
}
|
|
89
|
+
export interface GitLabApiMergeRequestDiff {
|
|
90
|
+
oldPath: string;
|
|
91
|
+
newPath: string;
|
|
92
|
+
patch?: string;
|
|
93
|
+
status: "added" | "modified" | "removed" | "renamed";
|
|
94
|
+
}
|
|
95
|
+
/** Project-bound merge-request reads shared by GitLab agents. */
|
|
96
|
+
export interface GitLabApi {
|
|
97
|
+
getMergeRequest(iid: number): Promise<GitLabApiMergeRequest>;
|
|
98
|
+
getMergeBaseSha(base: string, headSha: string): Promise<string | undefined>;
|
|
99
|
+
listMergeRequestDiffs(iid: number): Promise<GitLabApiMergeRequestDiff[]>;
|
|
100
|
+
}
|
|
75
101
|
/** `GITLAB_TOKEN` when set. */
|
|
76
102
|
export declare function envGitLabToken(env?: NodeJS.ProcessEnv): string | undefined;
|
|
77
103
|
/**
|
|
@@ -87,5 +113,6 @@ export declare function gitlabApiBaseUrl(input?: {
|
|
|
87
113
|
* `group/project` path.
|
|
88
114
|
*/
|
|
89
115
|
export declare function gitlabProjectPathSegment(project: number | string): string;
|
|
116
|
+
export declare function createGitLabApi(client: Pick<GitLabClient, "request">, project: number | string): GitLabApi;
|
|
90
117
|
export declare function createGitLabClient(options?: GitLabClientOptions): GitLabClient;
|
|
91
118
|
//# sourceMappingURL=api.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../../src/channels/gitlab/api.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,eAAO,MAAM,2BAA2B,8BAA8B,CAAC;AAEvE,wEAAwE;AACxE,eAAO,MAAM,6BAA6B,6BAA6B,CAAC;AAExE,MAAM,MAAM,eAAe,GAAG,QAAQ,GAAG,KAAK,GAAG,OAAO,GAAG,MAAM,GAAG,KAAK,CAAC;AAE1E,sEAAsE;AACtE,qBAAa,cAAe,SAAQ,KAAK;IACvC,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IAExB,YAAY,KAAK,EAAE;QACjB,IAAI,EAAE,OAAO,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;QACf,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,EAAE,MAAM,CAAC;KAChB,EASA;CACF;AAED,MAAM,MAAM,mBAAmB,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC;AAEjE,yEAAyE;AACzE,MAAM,WAAW,oBAAoB;IACnC,kEAAkE;IAClE,UAAU,EAAE,MAAM,CAAC;IACnB,8EAA8E;IAC9E,SAAS,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC;IACjC,wEAAwE;IACxE,OAAO,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;CAC5C;AAED,MAAM,WAAW,mBAAmB;IAClC,2DAA2D;IAC3D,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,+EAA+E;IAC/E,KAAK,CAAC,EAAE,MAAM,GAAG,mBAAmB,CAAC;IACrC,6EAA6E;IAC7E,KAAK,CAAC,EAAE,oBAAoB,CAAC;IAC7B;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,kCAAkC;IAClC,KAAK,CAAC,EAAE,OAAO,KAAK,CAAC;CACtB;AAED,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,eAAe,CAAC;IACxB,mEAAmE;IACnE,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC,CAAC;IAC9D,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,gDAAgD;AAChD,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,uEAAuE;IACvE,OAAO,CAAC,CAAC,GAAG,OAAO,EAAE,KAAK,EAAE,kBAAkB,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;CAC7D;AAOD,+BAA+B;AAC/B,wBAAgB,cAAc,CAC5B,GAAG,GAAE,MAAM,CAAC,UAAwB,GACnC,MAAM,GAAG,SAAS,CAEpB;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,CAAC,EAAE;IACvC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;CACzB,GAAG,MAAM,CAaT;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAIzE;AAgBD,wBAAgB,kBAAkB,CAChC,OAAO,GAAE,mBAAwB,GAChC,YAAY,CAyEd"}
|
|
1
|
+
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../../src/channels/gitlab/api.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,eAAO,MAAM,2BAA2B,8BAA8B,CAAC;AAEvE,wEAAwE;AACxE,eAAO,MAAM,6BAA6B,6BAA6B,CAAC;AAExE,MAAM,MAAM,eAAe,GAAG,QAAQ,GAAG,KAAK,GAAG,OAAO,GAAG,MAAM,GAAG,KAAK,CAAC;AAE1E,sEAAsE;AACtE,qBAAa,cAAe,SAAQ,KAAK;IACvC,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IAExB,YAAY,KAAK,EAAE;QACjB,IAAI,EAAE,OAAO,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;QACf,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,EAAE,MAAM,CAAC;KAChB,EASA;CACF;AAED,MAAM,MAAM,mBAAmB,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC;AAEjE,yEAAyE;AACzE,MAAM,WAAW,oBAAoB;IACnC,kEAAkE;IAClE,UAAU,EAAE,MAAM,CAAC;IACnB,8EAA8E;IAC9E,SAAS,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC;IACjC,wEAAwE;IACxE,OAAO,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;CAC5C;AAED,MAAM,WAAW,mBAAmB;IAClC,2DAA2D;IAC3D,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,+EAA+E;IAC/E,KAAK,CAAC,EAAE,MAAM,GAAG,mBAAmB,CAAC;IACrC,6EAA6E;IAC7E,KAAK,CAAC,EAAE,oBAAoB,CAAC;IAC7B;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,kCAAkC;IAClC,KAAK,CAAC,EAAE,OAAO,KAAK,CAAC;CACtB;AAED,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,eAAe,CAAC;IACxB,mEAAmE;IACnE,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC,CAAC;IAC9D,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,gDAAgD;AAChD,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,uEAAuE;IACvE,OAAO,CAAC,CAAC,GAAG,OAAO,EAAE,KAAK,EAAE,kBAAkB,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;CAC7D;AAED,MAAM,WAAW,qBAAqB;IACpC,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,yBAAyB;IACxC,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,OAAO,GAAG,UAAU,GAAG,SAAS,GAAG,SAAS,CAAC;CACtD;AAED,iEAAiE;AACjE,MAAM,WAAW,SAAS;IACxB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAAC;IAC7D,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IAC5E,qBAAqB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,yBAAyB,EAAE,CAAC,CAAC;CAC1E;AAOD,+BAA+B;AAC/B,wBAAgB,cAAc,CAC5B,GAAG,GAAE,MAAM,CAAC,UAAwB,GACnC,MAAM,GAAG,SAAS,CAEpB;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,CAAC,EAAE;IACvC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;CACzB,GAAG,MAAM,CAaT;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAIzE;AAcD,wBAAgB,eAAe,CAC7B,MAAM,EAAE,IAAI,CAAC,YAAY,EAAE,SAAS,CAAC,EACrC,OAAO,EAAE,MAAM,GAAG,MAAM,GACvB,SAAS,CA6EX;AAgBD,wBAAgB,kBAAkB,CAChC,OAAO,GAAE,mBAAwB,GAChC,YAAY,CAyEd"}
|