@cursor/july 0.1.55 → 0.1.62
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 +30 -23
- package/dist/channels/github/github-channel.d.ts +13 -1
- package/dist/channels/github/github-channel.d.ts.map +1 -1
- package/dist/channels/github/github-channel.js +81 -16
- package/dist/channels/github/types.d.ts +29 -1
- package/dist/channels/github/types.d.ts.map +1 -1
- package/dist/channels/origin/cursor-account.d.ts +22 -0
- package/dist/channels/origin/cursor-account.d.ts.map +1 -0
- package/dist/channels/origin/cursor-account.js +35 -0
- package/dist/channels/origin/events.d.ts +10 -0
- package/dist/channels/origin/events.d.ts.map +1 -0
- package/dist/channels/origin/events.js +27 -0
- package/dist/channels/origin/index.d.ts +29 -0
- package/dist/channels/origin/index.d.ts.map +1 -0
- package/dist/channels/origin/index.js +28 -0
- package/dist/channels/origin/origin-channel.d.ts +68 -0
- package/dist/channels/origin/origin-channel.d.ts.map +1 -0
- package/dist/channels/origin/origin-channel.js +567 -0
- package/dist/channels/origin/origin-webhook.d.ts +38 -0
- package/dist/channels/origin/origin-webhook.d.ts.map +1 -0
- package/dist/channels/origin/origin-webhook.js +151 -0
- package/dist/channels/origin/types.d.ts +152 -0
- package/dist/channels/origin/types.d.ts.map +1 -0
- package/dist/channels/origin/types.js +1 -0
- package/dist/channels/slack/doctor.d.ts +17 -1
- package/dist/channels/slack/doctor.d.ts.map +1 -1
- package/dist/channels/slack/doctor.js +186 -10
- package/dist/docs/404.html +2 -2
- package/dist/docs/ab.html +4 -4
- package/dist/docs/assets/{app.CVQxhV85.js → app.B-biogkN.js} +1 -1
- package/dist/docs/assets/chunks/@localSearchIndexroot.5ozYNf74.js +1 -0
- package/dist/docs/assets/chunks/{VPLocalSearchBox.QAPzJjql.js → VPLocalSearchBox.DZqKtFZS.js} +1 -1
- package/dist/docs/assets/chunks/{theme.CSxTCOFu.js → theme.BwC5zP2r.js} +2 -2
- package/dist/docs/assets/{example-agents_fsd.md.DPz9ezO4.js → example-agents_fsd.md.ZeGEpAw_.js} +2 -2
- package/dist/docs/assets/{example-agents_fsd.md.DPz9ezO4.lean.js → example-agents_fsd.md.ZeGEpAw_.lean.js} +1 -1
- package/dist/docs/assets/{example-agents_security-reviewer.md.Dkf1gyo6.js → example-agents_security-reviewer.md.DBL1TwtP.js} +2 -2
- package/dist/docs/assets/{example-agents_security-reviewer.md.Dkf1gyo6.lean.js → example-agents_security-reviewer.md.DBL1TwtP.lean.js} +1 -1
- package/dist/docs/assets/guides_convert-automation.md.BhMzTkE5.js +12 -0
- package/dist/docs/assets/guides_convert-automation.md.BhMzTkE5.lean.js +1 -0
- package/dist/docs/assets/{guides_github.md.B8QKtIpw.js → guides_github.md.CLLQJKRB.js} +4 -4
- package/dist/docs/assets/{guides_github.md.B8QKtIpw.lean.js → guides_github.md.CLLQJKRB.lean.js} +1 -1
- package/dist/docs/assets/index.md.DhRHS_-L.js +5 -0
- package/dist/docs/assets/{index.md.COeoSkcF.lean.js → index.md.DhRHS_-L.lean.js} +1 -1
- package/dist/docs/assets/{reference_cli.md.D_CCfG8R.js → reference_cli.md.Cl14Jfo3.js} +8 -2
- package/dist/docs/assets/{reference_cli.md.D_CCfG8R.lean.js → reference_cli.md.Cl14Jfo3.lean.js} +1 -1
- package/dist/docs/assets/scaffolding-agents.md.CrWSA0Ko.js +1 -0
- package/dist/docs/assets/{scaffolding-agents.md.mkc3B_ZW.lean.js → scaffolding-agents.md.CrWSA0Ko.lean.js} +1 -1
- package/dist/docs/assets/templates_agentic-owners.md.BkTLORaU.js +14 -0
- package/dist/docs/assets/templates_agentic-owners.md.BkTLORaU.lean.js +1 -0
- package/dist/docs/assets/templates_demo.md.Bgd6MBaZ.js +4 -0
- package/dist/docs/assets/templates_demo.md.Bgd6MBaZ.lean.js +1 -0
- package/dist/docs/assets/templates_pr-autofixer.md.DcmoeUNZ.js +8 -0
- package/dist/docs/assets/templates_pr-autofixer.md.DcmoeUNZ.lean.js +1 -0
- package/dist/docs/assets/templates_security-reviewer.md.C0yIUaYs.js +2 -0
- package/dist/docs/assets/templates_security-reviewer.md.C0yIUaYs.lean.js +1 -0
- package/dist/docs/building-with-agents.html +4 -4
- package/dist/docs/concepts.html +5 -5
- package/dist/docs/deployment.html +4 -4
- package/dist/docs/evals.html +4 -4
- package/dist/docs/example-agents/approval-buddy.html +4 -4
- package/dist/docs/example-agents/benny.html +4 -4
- package/dist/docs/example-agents/bugbot.html +4 -4
- package/dist/docs/example-agents/codebase-wiki.html +4 -4
- package/dist/docs/example-agents/codeowners-review.html +4 -4
- package/dist/docs/example-agents/concierge.html +4 -4
- package/dist/docs/example-agents/fsd.html +5 -5
- package/dist/docs/example-agents/index.html +4 -4
- package/dist/docs/example-agents/knowledge-base.html +4 -4
- package/dist/docs/example-agents/oncall.html +4 -4
- package/dist/docs/example-agents/security-reviewer.html +5 -5
- package/dist/docs/example-agents/slack-agent.html +4 -4
- package/dist/docs/example-agents/weather-agent.html +4 -4
- package/dist/docs/guides/agent-to-agent.html +4 -4
- package/dist/docs/guides/cloud-runtime.html +4 -4
- package/dist/docs/guides/convert-automation.html +36 -0
- package/dist/docs/guides/github.html +7 -7
- package/dist/docs/guides/human-in-the-loop.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 +4 -4
- package/dist/docs/guides/webhooks.html +4 -4
- package/dist/docs/hashmap.json +1 -1
- package/dist/docs/hillclimbing.html +4 -4
- package/dist/docs/index.html +6 -6
- 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 +4 -4
- package/dist/docs/reference/cli.html +12 -6
- package/dist/docs/reference/connections.html +4 -4
- package/dist/docs/reference/hooks.html +4 -4
- package/dist/docs/reference/http-api.html +4 -4
- package/dist/docs/reference/instructions.html +4 -4
- package/dist/docs/reference/playground.html +4 -4
- package/dist/docs/reference/project-layout.html +4 -4
- package/dist/docs/reference/prompt.html +4 -4
- package/dist/docs/reference/schedules.html +4 -4
- package/dist/docs/reference/sessions.html +4 -4
- 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 +5 -5
- package/dist/docs/storage.html +4 -4
- package/dist/docs/templates/agentic-owners.html +38 -0
- package/dist/docs/templates/demo.html +28 -0
- package/dist/docs/templates/pr-autofixer.html +32 -0
- package/dist/docs/templates/security-reviewer.html +26 -0
- package/dist/docs/templates/triage.html +5 -5
- package/dist/docs/troubleshooting.html +4 -4
- package/dist/index.d.ts +3 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -2
- package/dist/internal/cli-ax.d.ts +2 -0
- package/dist/internal/cli-ax.d.ts.map +1 -1
- package/dist/internal/cli-ax.js +20 -0
- package/dist/internal/cli-slack.d.ts +2 -0
- package/dist/internal/cli-slack.d.ts.map +1 -1
- package/dist/internal/cli-slack.js +11 -2
- package/dist/internal/cursor-event-relay.d.ts +64 -12
- package/dist/internal/cursor-event-relay.d.ts.map +1 -1
- package/dist/internal/cursor-event-relay.js +138 -26
- package/dist/internal/discovery.d.ts.map +1 -1
- package/dist/internal/discovery.js +11 -2
- package/dist/internal/distribution.d.ts.map +1 -1
- package/dist/internal/distribution.js +1 -0
- package/dist/internal/handleAgentServeTrigger.d.ts +33 -6
- package/dist/internal/handleAgentServeTrigger.d.ts.map +1 -1
- package/dist/internal/handleAgentServeTrigger.js +97 -19
- package/dist/internal/init-interview.d.ts +67 -0
- package/dist/internal/init-interview.d.ts.map +1 -0
- package/dist/internal/init-interview.js +300 -0
- package/dist/internal/init-project.d.ts +4 -0
- package/dist/internal/init-project.d.ts.map +1 -1
- package/dist/internal/init-project.js +40 -16
- package/dist/internal/mcp-endpoint.d.ts +7 -0
- package/dist/internal/mcp-endpoint.d.ts.map +1 -1
- package/dist/internal/mcp-endpoint.js +7 -0
- package/dist/internal/mcp-oauth.d.ts +0 -4
- package/dist/internal/mcp-oauth.d.ts.map +1 -1
- package/dist/internal/mcp-oauth.js +0 -4
- package/dist/internal/server.d.ts.map +1 -1
- package/dist/internal/server.js +160 -58
- package/dist/internal/session-engine.d.ts.map +1 -1
- package/dist/internal/session-engine.js +20 -21
- package/dist/internal/session-links.d.ts +14 -0
- package/dist/internal/session-links.d.ts.map +1 -0
- package/dist/internal/session-links.js +69 -0
- package/dist/internal/sessions-client.d.ts.map +1 -1
- package/dist/internal/sessions-client.js +1 -0
- package/dist/playground/assets/index-B4rcOgeP.css +1 -0
- package/dist/playground/assets/{index-0oqXUkrR.js → index-DXcY42Jv.js} +42 -42
- package/dist/playground/index.html +2 -2
- package/dist/types.d.ts +19 -12
- package/dist/types.d.ts.map +1 -1
- package/docs/README.md +15 -0
- package/docs/example-agents/fsd.md +3 -0
- package/docs/example-agents/security-reviewer.md +3 -0
- package/docs/guides/convert-automation.md +176 -0
- package/docs/guides/github.md +6 -2
- package/docs/reference/cli.md +34 -10
- package/docs/scaffolding-agents.md +3 -0
- package/docs/templates/agentic-owners.md +97 -0
- package/docs/templates/demo.md +84 -0
- package/docs/templates/pr-autofixer.md +136 -0
- package/docs/templates/security-reviewer.md +89 -0
- package/package.json +9 -1
- package/skills/github/SKILL.md +6 -6
- package/src/bin/agent-serve.ts +13 -6
- package/src/channels/github/github-channel.ts +113 -20
- package/src/channels/github/types.ts +33 -0
- package/src/channels/origin/cursor-account.ts +64 -0
- package/src/channels/origin/events.ts +41 -0
- package/src/channels/origin/index.ts +29 -0
- package/src/channels/origin/origin-channel.ts +784 -0
- package/src/channels/origin/origin-webhook.ts +202 -0
- package/src/channels/origin/types.ts +186 -0
- package/src/channels/slack/doctor.ts +218 -5
- package/src/index.ts +3 -1
- package/src/internal/cli-ax.ts +23 -0
- package/src/internal/cli-slack.ts +11 -1
- package/src/internal/cursor-event-relay.ts +201 -32
- package/src/internal/discovery.ts +15 -5
- package/src/internal/distribution.ts +1 -0
- package/src/internal/handleAgentServeTrigger.ts +129 -19
- package/src/internal/init-interview.ts +384 -0
- package/src/internal/init-project.ts +70 -15
- package/src/internal/mcp-endpoint.ts +7 -0
- package/src/internal/mcp-oauth.ts +0 -4
- package/src/internal/server.ts +190 -60
- package/src/internal/session-engine.ts +5 -21
- package/src/internal/session-links.ts +88 -0
- package/src/internal/sessions-client.ts +1 -0
- package/src/types.ts +19 -12
- package/templates/agentic-owners/README.md +73 -0
- package/templates/agentic-owners/agent/agent.ts +15 -0
- package/templates/agentic-owners/agent/channels/github.ts +85 -0
- package/templates/agentic-owners/agent/instructions.md +34 -0
- package/templates/agentic-owners/agent/lib/config.ts +13 -0
- package/templates/agentic-owners/agent/lib/github.ts +241 -0
- package/templates/agentic-owners/agent/lib/owners/README.md +50 -0
- package/templates/agentic-owners/agent/lib/owners/constants.ts +22 -0
- package/templates/agentic-owners/agent/lib/owners/decision.ts +485 -0
- package/templates/agentic-owners/agent/lib/owners/handles.ts +54 -0
- package/templates/agentic-owners/agent/lib/owners/match.ts +177 -0
- package/templates/agentic-owners/agent/lib/owners/matching.ts +95 -0
- package/templates/agentic-owners/agent/lib/owners/parse.ts +589 -0
- package/templates/agentic-owners/agent/lib/owners/policyMode.ts +65 -0
- package/templates/agentic-owners/agent/lib/owners/prompt.ts +66 -0
- package/templates/agentic-owners/agent/lib/owners/prompts/base-review.md +105 -0
- package/templates/agentic-owners/agent/lib/owners/types.ts +45 -0
- package/templates/agentic-owners/agent/lib/review.ts +777 -0
- package/templates/agentic-owners/agent/tools/record_review.ts +69 -0
- package/templates/agentic-owners/evals/evals.config.ts +5 -0
- package/templates/agentic-owners/evals/owners.eval.ts +116 -0
- package/templates/agentic-owners/package.json +20 -0
- package/templates/agentic-owners/tsconfig.json +12 -0
- package/templates/demo/README.md +33 -0
- package/templates/demo/agent/agent.ts +15 -0
- package/templates/demo/agent/channels/github.ts +50 -0
- package/templates/demo/agent/channels/queue.ts +30 -0
- package/templates/demo/agent/instructions.md +8 -0
- package/templates/demo/agent/lib/collect.ts +78 -0
- package/templates/demo/agent/tools/record_demo.ts +40 -0
- package/templates/demo/evals/demo.eval.ts +33 -0
- package/templates/demo/evals/evals.config.ts +5 -0
- package/templates/demo/package.json +18 -0
- package/templates/demo/tsconfig.json +12 -0
- package/templates/pr-autofixer/README.md +44 -0
- package/templates/pr-autofixer/agent/agent.ts +22 -0
- package/templates/pr-autofixer/agent/channels/drive.ts +40 -0
- package/templates/pr-autofixer/agent/channels/github.ts +167 -0
- package/templates/pr-autofixer/agent/channels/slack.ts +17 -0
- package/templates/pr-autofixer/agent/hooks/bind-agent.ts +19 -0
- package/templates/pr-autofixer/agent/instructions.md +83 -0
- package/templates/pr-autofixer/agent/lib/affinity.ts +33 -0
- package/templates/pr-autofixer/agent/lib/drive-schemas.ts +15 -0
- package/templates/pr-autofixer/agent/lib/drive.ts +79 -0
- package/templates/pr-autofixer/agent/lib/merge-watch.ts +123 -0
- package/templates/pr-autofixer/agent/lib/pr-state.ts +54 -0
- package/templates/pr-autofixer/agent/lib/repos.ts +19 -0
- package/templates/pr-autofixer/agent/lib/start-drive.ts +122 -0
- package/templates/pr-autofixer/agent/lib/webhook-buffer.ts +225 -0
- package/templates/pr-autofixer/agent/lib/webhook-routing.ts +231 -0
- package/templates/pr-autofixer/agent/storage.ts +7 -0
- package/templates/pr-autofixer/agent/tools/drive_pr.ts +22 -0
- package/templates/pr-autofixer/evals/coordinator.eval.ts +16 -0
- package/templates/pr-autofixer/evals/evals.config.ts +5 -0
- package/templates/pr-autofixer/init.json +25 -0
- package/templates/pr-autofixer/package.json +18 -0
- package/templates/pr-autofixer/tsconfig.json +12 -0
- package/templates/security-reviewer/README.md +31 -0
- package/templates/security-reviewer/agent/agent.ts +15 -0
- package/templates/security-reviewer/agent/channels/github.ts +46 -0
- package/templates/security-reviewer/agent/instructions.md +22 -0
- package/templates/security-reviewer/agent/lib/repos.ts +5 -0
- package/templates/security-reviewer/agent/tools/post_findings.ts +72 -0
- package/templates/security-reviewer/evals/evals.config.ts +5 -0
- package/templates/security-reviewer/evals/review.eval.ts +53 -0
- package/templates/security-reviewer/init.json +25 -0
- package/templates/security-reviewer/package.json +18 -0
- package/templates/security-reviewer/tsconfig.json +12 -0
- package/dist/docs/assets/chunks/@localSearchIndexroot.BFpWSo6D.js +0 -1
- package/dist/docs/assets/index.md.COeoSkcF.js +0 -5
- package/dist/docs/assets/scaffolding-agents.md.mkc3B_ZW.js +0 -1
- package/dist/playground/assets/index-tHCjJxv4.css +0 -1
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Cursor-account mode for Origin channels.
|
|
3
|
+
*
|
|
4
|
+
* Origin identity is the signed-in Cursor user (no third-party OAuth). The
|
|
5
|
+
* channel declares repos at definition time; the serve host subscribes
|
|
6
|
+
* `/v0/scm-events` with `provider: "origin"` as that user. Unlike GitHub,
|
|
7
|
+
* there is no installation token to mint — outbound Origin API calls already
|
|
8
|
+
* authenticate as the Cursor principal.
|
|
9
|
+
*/
|
|
10
|
+
export const CURSOR_ORIGIN_MAX_REPOS = 20;
|
|
11
|
+
const CURSOR_ORIGIN_REPO_PATTERN = /^[A-Za-z0-9_.-]+\/[A-Za-z0-9_.-]+$/;
|
|
12
|
+
const runtimeByDefinition = new WeakMap();
|
|
13
|
+
export function parseCursorOriginRepoScope(values) {
|
|
14
|
+
const repos = [
|
|
15
|
+
...new Set(values.map((repo) => repo.trim().toLowerCase()).filter(Boolean)),
|
|
16
|
+
];
|
|
17
|
+
if (repos.length === 0) {
|
|
18
|
+
throw new Error("originChannel({ cursorAccount }) requires at least one repository.");
|
|
19
|
+
}
|
|
20
|
+
if (repos.length > CURSOR_ORIGIN_MAX_REPOS) {
|
|
21
|
+
throw new Error(`originChannel({ cursorAccount }) supports at most ${CURSOR_ORIGIN_MAX_REPOS} repositories.`);
|
|
22
|
+
}
|
|
23
|
+
for (const repo of repos) {
|
|
24
|
+
if (!CURSOR_ORIGIN_REPO_PATTERN.test(repo) || repo.includes("..")) {
|
|
25
|
+
throw new Error(`Invalid Origin repository "${repo}"; expected owner/repo.`);
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
return { repos };
|
|
29
|
+
}
|
|
30
|
+
export function registerOriginCursorAccountRuntime(definition, runtime) {
|
|
31
|
+
runtimeByDefinition.set(definition, runtime);
|
|
32
|
+
}
|
|
33
|
+
export function getOriginCursorAccountRuntime(definition) {
|
|
34
|
+
return runtimeByDefinition.get(definition);
|
|
35
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/** {@link ChannelMeta.kind} value used by {@link originChannel}. */
|
|
2
|
+
export declare const ORIGIN_CHANNEL_KIND = "origin";
|
|
3
|
+
export interface OriginWebhookEventOptions {
|
|
4
|
+
webhookEvents?: readonly string[];
|
|
5
|
+
onComment?: unknown;
|
|
6
|
+
onReview?: unknown;
|
|
7
|
+
onEvent?: unknown;
|
|
8
|
+
}
|
|
9
|
+
export declare function deriveOriginWebhookEvents(options: OriginWebhookEventOptions): string[];
|
|
10
|
+
//# sourceMappingURL=events.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../../src/channels/origin/events.ts"],"names":[],"mappings":"AAAA,oEAAoE;AACpE,eAAO,MAAM,mBAAmB,WAAW,CAAC;AAc5C,MAAM,WAAW,yBAAyB;IACxC,aAAa,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAClC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,wBAAgB,yBAAyB,CACvC,OAAO,EAAE,yBAAyB,GACjC,MAAM,EAAE,CAgBV"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/** {@link ChannelMeta.kind} value used by {@link originChannel}. */
|
|
2
|
+
export const ORIGIN_CHANNEL_KIND = "origin";
|
|
3
|
+
const BASE_WEBHOOK_EVENTS = [
|
|
4
|
+
"pull_request.created",
|
|
5
|
+
"pull_request.published",
|
|
6
|
+
"pull_request.head_ref.pushed",
|
|
7
|
+
"pull_request.base_ref.updated",
|
|
8
|
+
"pull_request.closed",
|
|
9
|
+
"pull_request.merged",
|
|
10
|
+
];
|
|
11
|
+
const COMMENT_EVENTS = ["pull_request.comment.created"];
|
|
12
|
+
const REVIEW_EVENTS = ["pull_request.review.submitted"];
|
|
13
|
+
export function deriveOriginWebhookEvents(options) {
|
|
14
|
+
if (options.webhookEvents !== undefined) {
|
|
15
|
+
return [
|
|
16
|
+
...new Set(options.webhookEvents.map((event) => event.trim()).filter(Boolean)),
|
|
17
|
+
];
|
|
18
|
+
}
|
|
19
|
+
const events = [...BASE_WEBHOOK_EVENTS];
|
|
20
|
+
if (options.onComment !== undefined) {
|
|
21
|
+
events.push(...COMMENT_EVENTS);
|
|
22
|
+
}
|
|
23
|
+
if (options.onReview !== undefined) {
|
|
24
|
+
events.push(...REVIEW_EVENTS);
|
|
25
|
+
}
|
|
26
|
+
return [...new Set(events)];
|
|
27
|
+
}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Origin webhook channel pack for agent-serve.
|
|
3
|
+
*
|
|
4
|
+
* ```ts
|
|
5
|
+
* import { defaultOriginAuth, originChannel } from "@cursor/july/channels/origin";
|
|
6
|
+
*
|
|
7
|
+
* export default originChannel({
|
|
8
|
+
* cursorAccount: { repos: ["owner/repo"] },
|
|
9
|
+
* onPullRequest: (ctx) => ({ auth: defaultOriginAuth(ctx) }),
|
|
10
|
+
* onComment: (ctx) => ({ auth: defaultOriginAuth(ctx) }),
|
|
11
|
+
* });
|
|
12
|
+
* ```
|
|
13
|
+
*
|
|
14
|
+
* Direct webhook mode verifies Standard-Webhooks v1ed signatures **and**
|
|
15
|
+
* binds `envelope.appId` to {@link OriginChannelOptions.appId} (or
|
|
16
|
+
* `AGENT_SERVE_ORIGIN_APP_ID`). v1ed alone is not channel auth — Origin
|
|
17
|
+
* signs every app's deliveries with the same JWKS. Pass
|
|
18
|
+
* `{ cursorAccount: true }` to receive events from
|
|
19
|
+
* `serve({ cursor: { events: true } })` after `/v0/scm-events`
|
|
20
|
+
* (`provider: "origin"`) already verified them. The turn principal is
|
|
21
|
+
* `origin-webhook` plus the Origin actor — not the Cursor subscriber —
|
|
22
|
+
* matching GitHub's `github-webhook` pattern.
|
|
23
|
+
*/
|
|
24
|
+
export * from "./cursor-account.js";
|
|
25
|
+
export * from "./events.js";
|
|
26
|
+
export * from "./origin-channel.js";
|
|
27
|
+
export * from "./origin-webhook.js";
|
|
28
|
+
export * from "./types.js";
|
|
29
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/channels/origin/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,cAAc,qBAAqB,CAAC;AACpC,cAAc,aAAa,CAAC;AAC5B,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,YAAY,CAAC"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Origin webhook channel pack for agent-serve.
|
|
3
|
+
*
|
|
4
|
+
* ```ts
|
|
5
|
+
* import { defaultOriginAuth, originChannel } from "@cursor/july/channels/origin";
|
|
6
|
+
*
|
|
7
|
+
* export default originChannel({
|
|
8
|
+
* cursorAccount: { repos: ["owner/repo"] },
|
|
9
|
+
* onPullRequest: (ctx) => ({ auth: defaultOriginAuth(ctx) }),
|
|
10
|
+
* onComment: (ctx) => ({ auth: defaultOriginAuth(ctx) }),
|
|
11
|
+
* });
|
|
12
|
+
* ```
|
|
13
|
+
*
|
|
14
|
+
* Direct webhook mode verifies Standard-Webhooks v1ed signatures **and**
|
|
15
|
+
* binds `envelope.appId` to {@link OriginChannelOptions.appId} (or
|
|
16
|
+
* `AGENT_SERVE_ORIGIN_APP_ID`). v1ed alone is not channel auth — Origin
|
|
17
|
+
* signs every app's deliveries with the same JWKS. Pass
|
|
18
|
+
* `{ cursorAccount: true }` to receive events from
|
|
19
|
+
* `serve({ cursor: { events: true } })` after `/v0/scm-events`
|
|
20
|
+
* (`provider: "origin"`) already verified them. The turn principal is
|
|
21
|
+
* `origin-webhook` plus the Origin actor — not the Cursor subscriber —
|
|
22
|
+
* matching GitHub's `github-webhook` pattern.
|
|
23
|
+
*/
|
|
24
|
+
export * from "./cursor-account.js";
|
|
25
|
+
export * from "./events.js";
|
|
26
|
+
export * from "./origin-channel.js";
|
|
27
|
+
export * from "./origin-webhook.js";
|
|
28
|
+
export * from "./types.js";
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import type { AuthContext, ChannelDefinition, ChannelHandlerArgs } from "../../types.js";
|
|
2
|
+
import type { OriginChannelOptions, OriginEventContext, OriginPullRequestEvent, OriginTurnDispatch, OriginWebhookEnvelope } from "./types.js";
|
|
3
|
+
/** `AGENT_SERVE_ORIGIN_APP_ID` fallback for {@link OriginChannelOptions.appId}. */
|
|
4
|
+
export declare function envOriginAppId(): string | undefined;
|
|
5
|
+
export declare function parseOriginWebhookEnvelope(payload: unknown): OriginWebhookEnvelope | null;
|
|
6
|
+
export declare function parseOriginPullRequestEvent(input: {
|
|
7
|
+
envelope: OriginWebhookEnvelope;
|
|
8
|
+
}): {
|
|
9
|
+
ctx: Omit<OriginEventContext, "host" | "artifacts">;
|
|
10
|
+
pullRequest: OriginPullRequestEvent;
|
|
11
|
+
payload: Record<string, unknown>;
|
|
12
|
+
} | null;
|
|
13
|
+
/**
|
|
14
|
+
* Derive the turn's auth from the actor that triggered the delivery — the
|
|
15
|
+
* standard `{ auth: defaultOriginAuth(ctx) }` dispatch from an inbound hook.
|
|
16
|
+
* The subscriber's Cursor identity is not the turn principal (same pattern
|
|
17
|
+
* as {@link defaultGitHubAuth}).
|
|
18
|
+
*/
|
|
19
|
+
export declare function defaultOriginAuth(ctx: Omit<OriginEventContext, "host" | "artifacts">): AuthContext;
|
|
20
|
+
export declare function originContinuationKey(ctx: Pick<OriginEventContext, "repository" | "pullRequestNumber">): string;
|
|
21
|
+
export declare function defaultOriginTitle(ctx: Pick<OriginEventContext, "repository" | "pullRequestNumber">): string;
|
|
22
|
+
export declare function defaultOriginPullRequestMessage(ctx: Omit<OriginEventContext, "host" | "artifacts">, pullRequest: OriginPullRequestEvent): string;
|
|
23
|
+
export declare function defaultOriginPullRequestDispatch(ctx: Omit<OriginEventContext, "host" | "artifacts">, pullRequest: OriginPullRequestEvent): OriginTurnDispatch | null;
|
|
24
|
+
/**
|
|
25
|
+
* Core Origin webhook dispatch used by {@link originChannel} routes and by
|
|
26
|
+
* {@link handleAgentServeTrigger} fan-out. Signature verification is the
|
|
27
|
+
* caller's responsibility (HTTP route verifies; internal fan-out skips).
|
|
28
|
+
*/
|
|
29
|
+
export declare function dispatchOriginWebhook(input: {
|
|
30
|
+
options: OriginChannelOptions;
|
|
31
|
+
envelope: OriginWebhookEnvelope;
|
|
32
|
+
args: ChannelHandlerArgs;
|
|
33
|
+
}): Promise<Response>;
|
|
34
|
+
/**
|
|
35
|
+
* HTTP entry for a single agent's Origin channel: optional v1ed verify, then
|
|
36
|
+
* app-id bind, then {@link dispatchOriginWebhook}.
|
|
37
|
+
*/
|
|
38
|
+
export declare function handleOriginWebhookRequest(input: {
|
|
39
|
+
options: OriginChannelOptions;
|
|
40
|
+
request: Request;
|
|
41
|
+
args: ChannelHandlerArgs;
|
|
42
|
+
/** When true, skip v1ed even though Origin HTTP deliveries are signed. */
|
|
43
|
+
skipSignatureVerification?: boolean;
|
|
44
|
+
}): Promise<Response>;
|
|
45
|
+
export declare function getOriginChannelOptions(definition: object): OriginChannelOptions | undefined;
|
|
46
|
+
export declare function originChannel(options?: OriginChannelOptions): ChannelDefinition;
|
|
47
|
+
/** Minimal mount shape shared by `serve` / trigger fan-out. */
|
|
48
|
+
export interface OriginAgentMountLike {
|
|
49
|
+
slug: string;
|
|
50
|
+
project: {
|
|
51
|
+
channels: Array<{
|
|
52
|
+
id: string;
|
|
53
|
+
definition: {
|
|
54
|
+
meta?: {
|
|
55
|
+
kind?: string;
|
|
56
|
+
originWebhookEvents?: readonly string[];
|
|
57
|
+
};
|
|
58
|
+
};
|
|
59
|
+
}>;
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
export interface OriginChannelTarget {
|
|
63
|
+
slug: string;
|
|
64
|
+
channelId: string;
|
|
65
|
+
events: string[];
|
|
66
|
+
}
|
|
67
|
+
export declare function findOriginChannelTargets(mounts: ReadonlyArray<OriginAgentMountLike>): OriginChannelTarget[];
|
|
68
|
+
//# sourceMappingURL=origin-channel.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"origin-channel.d.ts","sourceRoot":"","sources":["../../../src/channels/origin/origin-channel.ts"],"names":[],"mappings":"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"}
|