@cursor/july 0.1.85 → 0.1.87
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/channels/github/github-channel.d.ts +4 -0
- package/dist/channels/github/github-channel.d.ts.map +1 -1
- package/dist/channels/github/github-channel.js +18 -11
- package/dist/channels/origin/origin-channel.d.ts +6 -0
- package/dist/channels/origin/origin-channel.d.ts.map +1 -1
- package/dist/channels/origin/origin-channel.js +24 -11
- package/dist/channels/slack/dispatch.d.ts.map +1 -1
- package/dist/channels/slack/dispatch.js +12 -2
- package/dist/internal/continuation-identity.d.ts +10 -0
- package/dist/internal/continuation-identity.d.ts.map +1 -1
- package/dist/internal/continuation-identity.js +10 -0
- package/dist/internal/handleAgentServeTrigger.d.ts +5 -0
- package/dist/internal/handleAgentServeTrigger.d.ts.map +1 -1
- package/dist/internal/handleAgentServeTrigger.js +11 -3
- package/dist/internal/local-control-plane.d.ts +19 -0
- package/dist/internal/local-control-plane.d.ts.map +1 -1
- package/dist/internal/local-control-plane.js +17 -0
- package/dist/internal/local-ingress.d.ts +35 -0
- package/dist/internal/local-ingress.d.ts.map +1 -0
- package/dist/internal/local-ingress.js +44 -0
- package/dist/internal/server.d.ts.map +1 -1
- package/dist/internal/server.js +138 -62
- package/dist/playground/assets/{index-CMe7imuc.css → index-C0_5hOsf.css} +1 -1
- package/dist/playground/index.html +2 -2
- package/dist/types.d.ts +2 -2
- package/package.json +1 -1
- package/src/channels/github/github-channel.ts +18 -21
- package/src/channels/origin/origin-channel.ts +26 -15
- package/src/channels/slack/dispatch.ts +11 -7
- package/src/internal/continuation-identity.ts +10 -0
- package/src/internal/handleAgentServeTrigger.ts +31 -2
- package/src/internal/local-control-plane.ts +33 -0
- package/src/internal/local-ingress.ts +90 -0
- package/src/internal/server.ts +181 -27
- package/src/types.ts +2 -2
- /package/dist/playground/assets/{index-JaFLlugp.js → index-Bqn91tW4.js} +0 -0
|
@@ -109,6 +109,10 @@ export declare function verifyGitHubWebhookSignature(args: {
|
|
|
109
109
|
* {@link handleAgentServeTrigger} fan-out. Signature verification is the
|
|
110
110
|
* caller's responsibility (HTTP route verifies; internal fan-out skips).
|
|
111
111
|
*/
|
|
112
|
+
/**
|
|
113
|
+
* Run authored GitHub hooks and `send()`. Does not extract a v2 mailbox —
|
|
114
|
+
* the local CP (or hosted verified ingress) stamps before this runs.
|
|
115
|
+
*/
|
|
112
116
|
export declare function dispatchGitHubWebhook(input: {
|
|
113
117
|
options: GitHubChannelOptions;
|
|
114
118
|
eventName: string | null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"github-channel.d.ts","sourceRoot":"","sources":["../../../src/channels/github/github-channel.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"github-channel.d.ts","sourceRoot":"","sources":["../../../src/channels/github/github-channel.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,8 +10,9 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
10
10
|
import { createHmac, timingSafeEqual } from "node:crypto";
|
|
11
11
|
import { z } from "zod";
|
|
12
12
|
import { allowAll, defineChannel, localDevStrict, loopbackGitHubDev, POST, } from "../../channels.js";
|
|
13
|
-
import {
|
|
13
|
+
import { continuationSource, normalizeIdentity, } from "../../internal/continuation-identity.js";
|
|
14
14
|
import { isDevMode } from "../../internal/dev-mode.js";
|
|
15
|
+
import { bindLocalIngressSend } from "../../internal/local-ingress.js";
|
|
15
16
|
import { resolveCredentialValue } from "./auth.js";
|
|
16
17
|
import { buildGitHubBinding, } from "./binding.js";
|
|
17
18
|
import { createCursorAccountGithubTokenResolver, createPendingCursorGithubCredentials, cursorGithubPermissionsForChannel, parseCursorGithubRepoScope, registerGithubCursorAccountRuntime, } from "./cursor-account.js";
|
|
@@ -322,16 +323,13 @@ function verifyWebhookSha256Signature(args) {
|
|
|
322
323
|
* {@link handleAgentServeTrigger} fan-out. Signature verification is the
|
|
323
324
|
* caller's responsibility (HTTP route verifies; internal fan-out skips).
|
|
324
325
|
*/
|
|
326
|
+
/**
|
|
327
|
+
* Run authored GitHub hooks and `send()`. Does not extract a v2 mailbox —
|
|
328
|
+
* the local CP (or hosted verified ingress) stamps before this runs.
|
|
329
|
+
*/
|
|
325
330
|
export function dispatchGitHubWebhook(input) {
|
|
326
331
|
return __awaiter(this, void 0, void 0, function* () {
|
|
327
|
-
|
|
328
|
-
let args = input.args;
|
|
329
|
-
if (continuationSource(identity, "github") === "control-plane" &&
|
|
330
|
-
input.eventName !== null) {
|
|
331
|
-
const mailbox = stampMailboxContinuation(identity, input.eventName, input.payload);
|
|
332
|
-
args = Object.assign(Object.assign({}, input.args), { send: bindMailboxContinuationSend(input.args.send, mailbox) });
|
|
333
|
-
}
|
|
334
|
-
return dispatchGitHubWebhookInner(Object.assign(Object.assign({}, input), { args }));
|
|
332
|
+
return dispatchGitHubWebhookInner(input);
|
|
335
333
|
});
|
|
336
334
|
}
|
|
337
335
|
function dispatchGitHubWebhookInner(input) {
|
|
@@ -460,12 +458,21 @@ export function handleGitHubWebhookRequest(input) {
|
|
|
460
458
|
catch (_d) {
|
|
461
459
|
return Response.json({ ok: false, error: "invalid_json" }, { status: 400 });
|
|
462
460
|
}
|
|
461
|
+
const eventName = input.request.headers.get("x-github-event");
|
|
462
|
+
const args = eventName === null
|
|
463
|
+
? input.args
|
|
464
|
+
: bindLocalIngressSend(input.args, {
|
|
465
|
+
identity: input.options.continuation,
|
|
466
|
+
kind: "github",
|
|
467
|
+
eventType: eventName,
|
|
468
|
+
payload,
|
|
469
|
+
});
|
|
463
470
|
return dispatchGitHubWebhook({
|
|
464
471
|
options: input.options,
|
|
465
|
-
eventName
|
|
472
|
+
eventName,
|
|
466
473
|
payload,
|
|
467
474
|
deliveryId: (_c = input.request.headers.get("x-github-delivery")) !== null && _c !== void 0 ? _c : undefined,
|
|
468
|
-
args
|
|
475
|
+
args,
|
|
469
476
|
});
|
|
470
477
|
});
|
|
471
478
|
}
|
|
@@ -18,6 +18,8 @@ export declare function parseOriginPullRequestEvent(input: {
|
|
|
18
18
|
*/
|
|
19
19
|
export declare function defaultOriginAuth(ctx: Omit<OriginEventContext, "host" | "artifacts" | "origin">): AuthContext;
|
|
20
20
|
export declare function originContinuationKey(ctx: Pick<OriginEventContext, "repository" | "pullRequestNumber">): string;
|
|
21
|
+
/** Payload shape local/hosted CP extract expects (`fullName` + number). */
|
|
22
|
+
export declare function originIngressExtractPayload(envelope: OriginWebhookEnvelope): unknown;
|
|
21
23
|
export declare function defaultOriginTitle(ctx: Pick<OriginEventContext, "repository" | "pullRequestNumber">): string;
|
|
22
24
|
export declare function defaultOriginPullRequestMessage(ctx: Omit<OriginEventContext, "host" | "artifacts" | "origin">, pullRequest: OriginPullRequestEvent): string;
|
|
23
25
|
export declare function defaultOriginPullRequestDispatch(ctx: Omit<OriginEventContext, "host" | "artifacts" | "origin">, pullRequest: OriginPullRequestEvent): OriginTurnDispatch | null;
|
|
@@ -26,6 +28,10 @@ export declare function defaultOriginPullRequestDispatch(ctx: Omit<OriginEventCo
|
|
|
26
28
|
* {@link handleAgentServeTrigger} fan-out. Signature verification is the
|
|
27
29
|
* caller's responsibility (HTTP route verifies; internal fan-out skips).
|
|
28
30
|
*/
|
|
31
|
+
/**
|
|
32
|
+
* Run authored Origin hooks and `send()`. Does not extract a v2 mailbox —
|
|
33
|
+
* the local CP (or hosted verified ingress) stamps before this runs.
|
|
34
|
+
*/
|
|
29
35
|
export declare function dispatchOriginWebhook(input: {
|
|
30
36
|
options: OriginChannelOptions;
|
|
31
37
|
envelope: OriginWebhookEnvelope;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"origin-channel.d.ts","sourceRoot":"","sources":["../../../src/channels/origin/origin-channel.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"origin-channel.d.ts","sourceRoot":"","sources":["../../../src/channels/origin/origin-channel.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,8 +9,9 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
9
9
|
};
|
|
10
10
|
import { z } from "zod";
|
|
11
11
|
import { allowAll, defineChannel, localDevStrict, loopbackOnly, POST, } from "../../channels.js";
|
|
12
|
-
import {
|
|
12
|
+
import { continuationSource, normalizeIdentity, } from "../../internal/continuation-identity.js";
|
|
13
13
|
import { isDevMode } from "../../internal/dev-mode.js";
|
|
14
|
+
import { bindLocalIngressSend } from "../../internal/local-ingress.js";
|
|
14
15
|
import { buildOriginBinding } from "./binding.js";
|
|
15
16
|
import { parseCursorOriginRepoScope, registerOriginCursorAccountRuntime, } from "./cursor-account.js";
|
|
16
17
|
import { deriveOriginWebhookEvents, ORIGIN_CHANNEL_KIND } from "./events.js";
|
|
@@ -261,6 +262,17 @@ export function defaultOriginAuth(ctx) {
|
|
|
261
262
|
export function originContinuationKey(ctx) {
|
|
262
263
|
return `origin-pr:${ctx.repository.fullName}#${ctx.pullRequestNumber}`;
|
|
263
264
|
}
|
|
265
|
+
/** Payload shape local/hosted CP extract expects (`fullName` + number). */
|
|
266
|
+
export function originIngressExtractPayload(envelope) {
|
|
267
|
+
const parsed = parseOriginPullRequestEvent({ envelope });
|
|
268
|
+
if (parsed === null) {
|
|
269
|
+
return envelope.event.payload;
|
|
270
|
+
}
|
|
271
|
+
return {
|
|
272
|
+
pullRequest: { number: parsed.ctx.pullRequestNumber },
|
|
273
|
+
repository: { fullName: parsed.ctx.repository.fullName },
|
|
274
|
+
};
|
|
275
|
+
}
|
|
264
276
|
export function defaultOriginTitle(ctx) {
|
|
265
277
|
return `Origin ${ctx.repository.fullName}#${ctx.pullRequestNumber}`;
|
|
266
278
|
}
|
|
@@ -371,6 +383,10 @@ function applyDispatch(input) {
|
|
|
371
383
|
* {@link handleAgentServeTrigger} fan-out. Signature verification is the
|
|
372
384
|
* caller's responsibility (HTTP route verifies; internal fan-out skips).
|
|
373
385
|
*/
|
|
386
|
+
/**
|
|
387
|
+
* Run authored Origin hooks and `send()`. Does not extract a v2 mailbox —
|
|
388
|
+
* the local CP (or hosted verified ingress) stamps before this runs.
|
|
389
|
+
*/
|
|
374
390
|
export function dispatchOriginWebhook(input) {
|
|
375
391
|
return __awaiter(this, void 0, void 0, function* () {
|
|
376
392
|
var _a;
|
|
@@ -379,15 +395,7 @@ export function dispatchOriginWebhook(input) {
|
|
|
379
395
|
if (parsed === null) {
|
|
380
396
|
return Response.json({ ok: false, error: "invalid_origin_payload" }, { status: 400 });
|
|
381
397
|
}
|
|
382
|
-
const
|
|
383
|
-
let args = input.args;
|
|
384
|
-
if (continuationSource(identity, "origin") === "control-plane") {
|
|
385
|
-
const mailbox = stampMailboxContinuation(identity, eventType, {
|
|
386
|
-
pullRequest: { number: parsed.ctx.pullRequestNumber },
|
|
387
|
-
repository: { fullName: parsed.ctx.repository.fullName },
|
|
388
|
-
});
|
|
389
|
-
args = Object.assign(Object.assign({}, input.args), { send: bindMailboxContinuationSend(input.args.send, mailbox) });
|
|
390
|
-
}
|
|
398
|
+
const args = input.args;
|
|
391
399
|
const ctx = enrichEventContext({
|
|
392
400
|
ctx: parsed.ctx,
|
|
393
401
|
args,
|
|
@@ -515,7 +523,12 @@ export function handleOriginWebhookRequest(input) {
|
|
|
515
523
|
return dispatchOriginWebhook({
|
|
516
524
|
options: input.options,
|
|
517
525
|
envelope,
|
|
518
|
-
args: input.args,
|
|
526
|
+
args: bindLocalIngressSend(input.args, {
|
|
527
|
+
identity: input.options.continuation,
|
|
528
|
+
kind: "origin",
|
|
529
|
+
eventType: envelope.event.type,
|
|
530
|
+
payload: originIngressExtractPayload(envelope),
|
|
531
|
+
}),
|
|
519
532
|
});
|
|
520
533
|
});
|
|
521
534
|
}
|
|
@@ -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,
|
|
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,EACV,YAAY,EACZ,WAAW,EAEX,aAAa,EACd,MAAM,gBAAgB,CAAC;AAQxB,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAC7D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAK7D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAS1D,OAAO,EAAmB,KAAK,QAAQ,EAAE,MAAM,UAAU,CAAC;AAM1D,OAAO,KAAK,EAEV,iBAAiB,EACjB,uBAAuB,EACvB,gBAAgB,EAEhB,YAAY,EACZ,mBAAmB,EACpB,MAAM,YAAY,CAAC;AAqDpB,uCAAuC;AACvC,wBAAgB,sBAAsB,CACpC,KAAK,GAAE,OAAO,CAAC,iBAAiB,CAAM,GACrC,iBAAiB,CAiBnB;AAED,MAAM,WAAW,wBAAyB,SAAQ,uBAAuB;IACvE,IAAI,EAAE,aAAa,CAAC;IACpB,YAAY,CAAC,EAAE,oBAAoB,CAAC;IACpC,SAAS,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,KAAK,IAAI,CAAC;IAC/C,YAAY,EAAE,mBAAmB,CAAC;IAClC,eAAe,EAAE,mBAAmB,CAAC;IACrC,eAAe,CAAC,EAAE,mBAAmB,CAAC;IACtC,WAAW,EAAE,gBAAgB,GAAG,SAAS,CAAC;IAC1C,QAAQ,EAAE,aAAa,CAAC;IACxB,IAAI,EAAE,WAAW,CAAC;IAClB,6EAA6E;IAC7E,SAAS,EAAE,YAAY,CAAC;IACxB,GAAG,CAAC,EAAE,QAAQ,CAAC;IACf,qDAAqD;IACrD,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,uDAAuD;IACvD,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,gEAAgE;IAChE,YAAY,CAAC,EAAE,kBAAkB,CAAC;IAClC;;;OAGG;IACH,cAAc,CAAC,EAAE,mBAAmB,CAAC;IACrC;;;;;OAKG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB;;;OAGG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,yEAAyE;IACzE,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB;;;OAGG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAoDD,wBAAsB,sBAAsB,CAAC,IAAI,EAAE;IACjD,IAAI,EACA,aAAa,GACb,gBAAgB,GAChB,cAAc,GACd,gBAAgB,GAChB,cAAc,CAAC;IACnB,OAAO,EAAE,YAAY,CAAC;IACtB,OAAO,EAAE,mBAAmB,CAAC;IAC7B,IAAI,EAAE,aAAa,CAAC;IACpB,WAAW,EAAE,gBAAgB,GAAG,SAAS,CAAC;IAC1C,IAAI,EAAE,WAAW,CAAC;IAClB,SAAS,EAAE,YAAY,CAAC;IACxB,sBAAsB,CAAC,EAAE,CAAC,iBAAiB,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IACzE,kBAAkB,CAAC,EAAE,CAAC,iBAAiB,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IACrE,+BAA+B,CAAC,EAAE,CAChC,iBAAiB,EAAE,MAAM,KACtB,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IACjC,qBAAqB,CAAC,EAAE,CAAC,iBAAiB,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IACxE,GAAG,CAAC,EAAE,QAAQ,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,+EAA+E;IAC/E,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB;;;OAGG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,YAAY,CAAC,EAAE,oBAAoB,CAAC;CACrC,GAAG,OAAO,CAAC,IAAI,CAAC,CAuVhB;AAED;;;;GAIG;AACH,wBAAgB,4BAA4B,CAC1C,IAAI,EAAE,OAAO,EACb,IAAI,EAAE,wBAAwB,GAC7B,OAAO,CA4KT"}
|
|
@@ -10,7 +10,8 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
10
10
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
11
11
|
});
|
|
12
12
|
};
|
|
13
|
-
import { continuationSource, normalizeIdentity,
|
|
13
|
+
import { continuationSource, normalizeIdentity, } from "../../internal/continuation-identity.js";
|
|
14
|
+
import { routeLocalIngressContinuation } from "../../internal/local-ingress.js";
|
|
14
15
|
import { buildSlackBinding, slackContinuationKey } from "./api.js";
|
|
15
16
|
import { firstLineTitle, maybeSetThreadTitle } from "./assistant.js";
|
|
16
17
|
import { appendSlackAttachmentAnnotations, prepareSlackAttachments, SLACK_ATTACHMENT_ONLY_PROMPT, } from "./attachments.js";
|
|
@@ -75,7 +76,16 @@ function slackSessionContinuation(identity, channelId, threadTs) {
|
|
|
75
76
|
const key = slackContinuationKey(channelId, threadTs);
|
|
76
77
|
return { probeKey: key, sendPatch: { continuationToken: key } };
|
|
77
78
|
}
|
|
78
|
-
const
|
|
79
|
+
const routed = routeLocalIngressContinuation({
|
|
80
|
+
identity: normalizeIdentity(identity, "slack"),
|
|
81
|
+
kind: "slack",
|
|
82
|
+
eventType: "message",
|
|
83
|
+
payload: { channelId, threadTs },
|
|
84
|
+
});
|
|
85
|
+
const mailbox = routed.mailboxContinuation;
|
|
86
|
+
if (mailbox === undefined) {
|
|
87
|
+
throw new Error("v2 slack ingress did not stamp a mailbox");
|
|
88
|
+
}
|
|
79
89
|
return { probeKey: mailbox.key, sendPatch: { mailboxContinuation: mailbox } };
|
|
80
90
|
}
|
|
81
91
|
export function dispatchInboundMessage(args) {
|
|
@@ -83,6 +83,16 @@ export declare function handshakeContinuation(input: {
|
|
|
83
83
|
* stamps `evt:` and does not join the conversation index).
|
|
84
84
|
*/
|
|
85
85
|
export declare function extractContinuation(type: ConversationType, eventName: string, payload: unknown): string | undefined;
|
|
86
|
+
/**
|
|
87
|
+
* Extract primitive used by the control plane (hosted
|
|
88
|
+
* `routeVerifiedIngressContinuation` and local
|
|
89
|
+
* `routeLocalIngressContinuation`). Channel adapters must not call this.
|
|
90
|
+
*/
|
|
91
|
+
/**
|
|
92
|
+
* Extract primitive used by the control plane (hosted
|
|
93
|
+
* `routeVerifiedIngressContinuation` and local
|
|
94
|
+
* `routeLocalIngressContinuation`). Channel adapters must not call this.
|
|
95
|
+
*/
|
|
86
96
|
export declare function stampMailboxContinuation(identity: ContinuationIdentity, eventName: string, payload: unknown, kind?: string): MailboxContinuation;
|
|
87
97
|
export declare function resolveV2Key(identity: ContinuationIdentity, options: {
|
|
88
98
|
claim?: ContinuationClaim;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"continuation-identity.d.ts","sourceRoot":"","sources":["../../src/internal/continuation-identity.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"continuation-identity.d.ts","sourceRoot":"","sources":["../../src/internal/continuation-identity.ts"],"names":[],"mappings":"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"}
|
|
@@ -268,6 +268,16 @@ export function extractContinuation(type, eventName, payload) {
|
|
|
268
268
|
return extractOrigin(payload);
|
|
269
269
|
}
|
|
270
270
|
}
|
|
271
|
+
/**
|
|
272
|
+
* Extract primitive used by the control plane (hosted
|
|
273
|
+
* `routeVerifiedIngressContinuation` and local
|
|
274
|
+
* `routeLocalIngressContinuation`). Channel adapters must not call this.
|
|
275
|
+
*/
|
|
276
|
+
/**
|
|
277
|
+
* Extract primitive used by the control plane (hosted
|
|
278
|
+
* `routeVerifiedIngressContinuation` and local
|
|
279
|
+
* `routeLocalIngressContinuation`). Channel adapters must not call this.
|
|
280
|
+
*/
|
|
271
281
|
export function stampMailboxContinuation(identity, eventName, payload, kind) {
|
|
272
282
|
const parsed = resolveContinuation(identity, kind);
|
|
273
283
|
if (parsed.version !== 2) {
|
|
@@ -13,6 +13,7 @@
|
|
|
13
13
|
import type { GitHubChannelOptions } from "../channels/github/types.js";
|
|
14
14
|
import type { OriginChannelOptions } from "../channels/origin/types.js";
|
|
15
15
|
import type { ChannelHandlerArgs } from "../types.js";
|
|
16
|
+
import { type RouteLocalIngressContinuation } from "./local-ingress.js";
|
|
16
17
|
export interface AgentServeGitHubTriggerTarget {
|
|
17
18
|
/** Agent mount slug (empty string in single-agent mode). */
|
|
18
19
|
slug: string;
|
|
@@ -28,6 +29,8 @@ export interface AgentServeGitHubTriggerEvent {
|
|
|
28
29
|
eventName: string | null;
|
|
29
30
|
deliveryId?: string;
|
|
30
31
|
targets: AgentServeGitHubTriggerTarget[];
|
|
32
|
+
/** Local CP ingest. Defaults to {@link routeLocalIngressContinuation}. */
|
|
33
|
+
routeContinuation?: RouteLocalIngressContinuation;
|
|
31
34
|
}
|
|
32
35
|
export interface AgentServeOriginTriggerTarget {
|
|
33
36
|
slug: string;
|
|
@@ -39,6 +42,8 @@ export interface AgentServeOriginTriggerEvent {
|
|
|
39
42
|
/** Origin envelope JSON (signature already verified by the caller). */
|
|
40
43
|
bodyText: string;
|
|
41
44
|
targets: AgentServeOriginTriggerTarget[];
|
|
45
|
+
/** Local CP ingest. Defaults to {@link routeLocalIngressContinuation}. */
|
|
46
|
+
routeContinuation?: RouteLocalIngressContinuation;
|
|
42
47
|
}
|
|
43
48
|
export type AgentServeTriggerEvent = AgentServeGitHubTriggerEvent | AgentServeOriginTriggerEvent;
|
|
44
49
|
export interface AgentServeTriggerTargetResult {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handleAgentServeTrigger.d.ts","sourceRoot":"","sources":["../../src/internal/handleAgentServeTrigger.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAMH,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;
|
|
1
|
+
{"version":3,"file":"handleAgentServeTrigger.d.ts","sourceRoot":"","sources":["../../src/internal/handleAgentServeTrigger.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAMH,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AAOxE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACxE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACtD,OAAO,EAEL,KAAK,6BAA6B,EACnC,MAAM,oBAAoB,CAAC;AAE5B,MAAM,WAAW,6BAA6B;IAC5C,4DAA4D;IAC5D,IAAI,EAAE,MAAM,CAAC;IACb,oEAAoE;IACpE,OAAO,EAAE,oBAAoB,CAAC;IAC9B,uEAAuE;IACvE,IAAI,EAAE,kBAAkB,CAAC;CAC1B;AAED,MAAM,WAAW,4BAA4B;IAC3C,IAAI,EAAE,QAAQ,CAAC;IACf,mEAAmE;IACnE,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,6BAA6B,EAAE,CAAC;IACzC,0EAA0E;IAC1E,iBAAiB,CAAC,EAAE,6BAA6B,CAAC;CACnD;AAED,MAAM,WAAW,6BAA6B;IAC5C,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,oBAAoB,CAAC;IAC9B,IAAI,EAAE,kBAAkB,CAAC;CAC1B;AAED,MAAM,WAAW,4BAA4B;IAC3C,IAAI,EAAE,QAAQ,CAAC;IACf,uEAAuE;IACvE,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,6BAA6B,EAAE,CAAC;IACzC,0EAA0E;IAC1E,iBAAiB,CAAC,EAAE,6BAA6B,CAAC;CACnD;AAED,MAAM,MAAM,sBAAsB,GAC9B,4BAA4B,GAC5B,4BAA4B,CAAC;AAEjC,MAAM,WAAW,6BAA6B;IAC5C,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,OAAO,CAAC;CACf;AAED,MAAM,WAAW,uBAAuB;IACtC,EAAE,EAAE,OAAO,CAAC;IACZ,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,OAAO,EAAE,6BAA6B,EAAE,CAAC;CAC1C;AAED;;;GAGG;AACH,wBAAgB,2BAA2B,CAAC,KAAK,EAAE;IACjD,MAAM,EAAE,KAAK,CAAC;QACZ,IAAI,EAAE,MAAM,CAAC;QACb,QAAQ,EAAE,KAAK,CAAC;YAAE,EAAE,EAAE,MAAM,CAAC;YAAC,UAAU,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;QACpD,gBAAgB,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,kBAAkB,CAAC;KAC7D,CAAC,CAAC;CACJ,GAAG,6BAA6B,EAAE,CAgBlC;AAED;;;GAGG;AACH,wBAAgB,2BAA2B,CAAC,KAAK,EAAE;IACjD,MAAM,EAAE,KAAK,CAAC;QACZ,IAAI,EAAE,MAAM,CAAC;QACb,QAAQ,EAAE,KAAK,CAAC;YAAE,EAAE,EAAE,MAAM,CAAC;YAAC,UAAU,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;QACpD,gBAAgB,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,kBAAkB,CAAC;KAC7D,CAAC,CAAC;CACJ,GAAG,6BAA6B,EAAE,CAgBlC;AAED;;GAEG;AACH,wBAAsB,uBAAuB,CAC3C,KAAK,EAAE,sBAAsB,GAC5B,OAAO,CAAC,uBAAuB,CAAC,CAalC"}
|
|
@@ -20,7 +20,8 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
20
20
|
});
|
|
21
21
|
};
|
|
22
22
|
import { dispatchGitHubWebhook, getGitHubChannelOptions, } from "../channels/github/github-channel.js";
|
|
23
|
-
import { dispatchOriginWebhook, getOriginChannelOptions, parseOriginWebhookEnvelope, } from "../channels/origin/origin-channel.js";
|
|
23
|
+
import { dispatchOriginWebhook, getOriginChannelOptions, originIngressExtractPayload, parseOriginWebhookEnvelope, } from "../channels/origin/origin-channel.js";
|
|
24
|
+
import { bindLocalIngressSend, } from "./local-ingress.js";
|
|
24
25
|
/**
|
|
25
26
|
* Build fan-out targets from mounted agent projects that export a github
|
|
26
27
|
* channel created via {@link githubChannel}.
|
|
@@ -108,12 +109,17 @@ function handleAgentServeGitHubTrigger(event) {
|
|
|
108
109
|
}
|
|
109
110
|
const targets = [];
|
|
110
111
|
for (const target of event.targets) {
|
|
112
|
+
const args = event.eventName === null
|
|
113
|
+
? target.args
|
|
114
|
+
: bindLocalIngressSend(target.args, Object.assign({ identity: target.options.continuation, kind: "github", eventType: event.eventName, payload }, (event.routeContinuation === undefined
|
|
115
|
+
? {}
|
|
116
|
+
: { routeContinuation: event.routeContinuation })));
|
|
111
117
|
const response = yield dispatchGitHubWebhook({
|
|
112
118
|
options: target.options,
|
|
113
119
|
eventName: event.eventName,
|
|
114
120
|
payload,
|
|
115
121
|
deliveryId: event.deliveryId,
|
|
116
|
-
args
|
|
122
|
+
args,
|
|
117
123
|
});
|
|
118
124
|
targets.push(yield triggerTargetResult(target.slug, response));
|
|
119
125
|
}
|
|
@@ -162,7 +168,9 @@ function handleAgentServeOriginTrigger(event) {
|
|
|
162
168
|
const response = yield dispatchOriginWebhook({
|
|
163
169
|
options: target.options,
|
|
164
170
|
envelope,
|
|
165
|
-
args: target.args,
|
|
171
|
+
args: bindLocalIngressSend(target.args, Object.assign({ identity: target.options.continuation, kind: "origin", eventType: envelope.event.type, payload: originIngressExtractPayload(envelope) }, (event.routeContinuation === undefined
|
|
172
|
+
? {}
|
|
173
|
+
: { routeContinuation: event.routeContinuation }))),
|
|
166
174
|
});
|
|
167
175
|
targets.push(yield triggerTargetResult(target.slug, response));
|
|
168
176
|
}
|
|
@@ -2,9 +2,28 @@
|
|
|
2
2
|
* In-process control plane started with local `serve`. Owns schedule clocks
|
|
3
3
|
* and reminder documents + clocks, then fires into the kit the same way the
|
|
4
4
|
* Cursor backend does over HTTP when `--no-control-plane` is set.
|
|
5
|
+
*
|
|
6
|
+
* v2 ingest lives here: `routeContinuation` stamps the mailbox (July twin
|
|
7
|
+
* of hosted `routeVerifiedIngressContinuation`), and `attachScmEvents`
|
|
8
|
+
* owns the `/v0/scm-events` long poll. v1 keeps engine-side scm-events.
|
|
9
|
+
* Hosted `--no-control-plane` v2 skips that poll — the hosted CP delivers.
|
|
5
10
|
*/
|
|
11
|
+
import { type LocalIngressContinuation, type RouteLocalIngressContinuationInput } from "./local-ingress.js";
|
|
6
12
|
import type { PlatformTimers } from "./platform-timers.js";
|
|
7
13
|
export interface LocalControlPlane extends PlatformTimers {
|
|
14
|
+
/**
|
|
15
|
+
* Stamp a v2 mailbox from the channel selector + live payload. Same
|
|
16
|
+
* contract as hosted verified ingress. `/v1` is a no-op.
|
|
17
|
+
*/
|
|
18
|
+
routeContinuation(input: RouteLocalIngressContinuationInput): LocalIngressContinuation;
|
|
19
|
+
/**
|
|
20
|
+
* Take ownership of the v2 `/v0/scm-events` long poll. Starts the relay.
|
|
21
|
+
* v1 scm-events stay on the engine serve path.
|
|
22
|
+
*/
|
|
23
|
+
attachScmEvents(relay: {
|
|
24
|
+
start(): void;
|
|
25
|
+
stop(): Promise<void>;
|
|
26
|
+
}): void;
|
|
8
27
|
/** Arm persisted reminder clocks after the kit fire callback is live. */
|
|
9
28
|
startClocks(): void;
|
|
10
29
|
stop(): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"local-control-plane.d.ts","sourceRoot":"","sources":["../../src/internal/local-control-plane.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"local-control-plane.d.ts","sourceRoot":"","sources":["../../src/internal/local-control-plane.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAIH,OAAO,EACL,KAAK,wBAAwB,EAC7B,KAAK,kCAAkC,EAExC,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAI3D,MAAM,WAAW,iBAAkB,SAAQ,cAAc;IACvD;;;OAGG;IACH,iBAAiB,CACf,KAAK,EAAE,kCAAkC,GACxC,wBAAwB,CAAC;IAC5B;;;OAGG;IACH,eAAe,CAAC,KAAK,EAAE;QAAE,KAAK,IAAI,IAAI,CAAC;QAAC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;KAAE,GAAG,IAAI,CAAC;IACvE,yEAAyE;IACzE,WAAW,IAAI,IAAI,CAAC;IACpB,IAAI,IAAI,IAAI,CAAC;CACd;AAED,wBAAsB,uBAAuB,CAAC,IAAI,EAAE;IAClD,YAAY,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IACjD,YAAY,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IAClE;;;;OAIG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,6DAA6D;IAC7D,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CACjC,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAwK7B"}
|
|
@@ -2,6 +2,11 @@
|
|
|
2
2
|
* In-process control plane started with local `serve`. Owns schedule clocks
|
|
3
3
|
* and reminder documents + clocks, then fires into the kit the same way the
|
|
4
4
|
* Cursor backend does over HTTP when `--no-control-plane` is set.
|
|
5
|
+
*
|
|
6
|
+
* v2 ingest lives here: `routeContinuation` stamps the mailbox (July twin
|
|
7
|
+
* of hosted `routeVerifiedIngressContinuation`), and `attachScmEvents`
|
|
8
|
+
* owns the `/v0/scm-events` long poll. v1 keeps engine-side scm-events.
|
|
9
|
+
* Hosted `--no-control-plane` v2 skips that poll — the hosted CP delivers.
|
|
5
10
|
*/
|
|
6
11
|
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
7
12
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
@@ -14,6 +19,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
14
19
|
};
|
|
15
20
|
import { dirname, join } from "node:path";
|
|
16
21
|
import { parseCron } from "./cron.js";
|
|
22
|
+
import { routeLocalIngressContinuation, } from "./local-ingress.js";
|
|
17
23
|
import { MAX_TIMER_MS } from "./reminder-schedule.js";
|
|
18
24
|
import { ReminderStore } from "./reminder-store.js";
|
|
19
25
|
export function createLocalControlPlane(opts) {
|
|
@@ -29,6 +35,7 @@ export function createLocalControlPlane(opts) {
|
|
|
29
35
|
const reminders = new Map();
|
|
30
36
|
let scheduleTimer;
|
|
31
37
|
let lastFiredMinute = -1;
|
|
38
|
+
let scmRelay;
|
|
32
39
|
if (store !== undefined) {
|
|
33
40
|
for (const record of yield store.list()) {
|
|
34
41
|
reminders.set(record.id, record);
|
|
@@ -109,6 +116,12 @@ export function createLocalControlPlane(opts) {
|
|
|
109
116
|
reminderTimers.set(record.id, timer);
|
|
110
117
|
}
|
|
111
118
|
return {
|
|
119
|
+
routeContinuation: routeLocalIngressContinuation,
|
|
120
|
+
attachScmEvents(relay) {
|
|
121
|
+
scmRelay = relay;
|
|
122
|
+
relay.start();
|
|
123
|
+
logger("[agent-sdk] cursor-events: control-plane ingest started");
|
|
124
|
+
},
|
|
112
125
|
upsertSchedule(input) {
|
|
113
126
|
return __awaiter(this, void 0, void 0, function* () {
|
|
114
127
|
schedules.set(input.name, parseCron(input.cron));
|
|
@@ -166,6 +179,10 @@ export function createLocalControlPlane(opts) {
|
|
|
166
179
|
for (const id of [...reminderTimers.keys()]) {
|
|
167
180
|
clearReminderTimer(id);
|
|
168
181
|
}
|
|
182
|
+
if (scmRelay !== undefined) {
|
|
183
|
+
void scmRelay.stop();
|
|
184
|
+
scmRelay = undefined;
|
|
185
|
+
}
|
|
169
186
|
},
|
|
170
187
|
};
|
|
171
188
|
});
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Local control-plane ingest for v2 continuation.
|
|
3
|
+
*
|
|
4
|
+
* Twin of backend `routeVerifiedIngressContinuation`. Hosted Cursor runs
|
|
5
|
+
* that copy after the webhook is verified. Self-hosted / `july serve`
|
|
6
|
+
* runs this copy on the in-process local CP before the channel adapter
|
|
7
|
+
* `send()`s. Channel adapters do not extract.
|
|
8
|
+
*/
|
|
9
|
+
import type { ChannelHandlerArgs } from "../types.js";
|
|
10
|
+
import { type ContinuationIdentity, type MailboxContinuation } from "./continuation-identity.js";
|
|
11
|
+
export type LocalIngressContinuation = {
|
|
12
|
+
explicitContinuationKey?: string;
|
|
13
|
+
mailboxContinuation?: MailboxContinuation;
|
|
14
|
+
};
|
|
15
|
+
export type RouteLocalIngressContinuation = (input: RouteLocalIngressContinuationInput) => LocalIngressContinuation;
|
|
16
|
+
export type RouteLocalIngressContinuationInput = {
|
|
17
|
+
identity?: ContinuationIdentity;
|
|
18
|
+
kind?: string;
|
|
19
|
+
eventType: string;
|
|
20
|
+
payload: unknown;
|
|
21
|
+
deterministicContinuationKey?: string;
|
|
22
|
+
};
|
|
23
|
+
/**
|
|
24
|
+
* Selector + live payload → mailbox stamp. `/v1` and omitted identity
|
|
25
|
+
* keep the caller-supplied deterministic key and do not stamp a mailbox.
|
|
26
|
+
*/
|
|
27
|
+
export declare function routeLocalIngressContinuation(input: RouteLocalIngressContinuationInput): LocalIngressContinuation;
|
|
28
|
+
/**
|
|
29
|
+
* Bind a CP mailbox stamp onto `args.send` so the channel adapter only
|
|
30
|
+
* calls `send()` — it does not extract. No-op for `/v1`.
|
|
31
|
+
*/
|
|
32
|
+
export declare function bindLocalIngressSend(args: ChannelHandlerArgs, input: RouteLocalIngressContinuationInput & {
|
|
33
|
+
routeContinuation?: RouteLocalIngressContinuation;
|
|
34
|
+
}): ChannelHandlerArgs;
|
|
35
|
+
//# sourceMappingURL=local-ingress.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"local-ingress.d.ts","sourceRoot":"","sources":["../../src/internal/local-ingress.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACtD,OAAO,EAEL,KAAK,oBAAoB,EAEzB,KAAK,mBAAmB,EAGzB,MAAM,4BAA4B,CAAC;AAEpC,MAAM,MAAM,wBAAwB,GAAG;IACrC,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,mBAAmB,CAAC,EAAE,mBAAmB,CAAC;CAC3C,CAAC;AAEF,MAAM,MAAM,6BAA6B,GAAG,CAC1C,KAAK,EAAE,kCAAkC,KACtC,wBAAwB,CAAC;AAE9B,MAAM,MAAM,kCAAkC,GAAG;IAC/C,QAAQ,CAAC,EAAE,oBAAoB,CAAC;IAChC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,OAAO,CAAC;IACjB,4BAA4B,CAAC,EAAE,MAAM,CAAC;CACvC,CAAC;AAEF;;;GAGG;AACH,wBAAgB,6BAA6B,CAC3C,KAAK,EAAE,kCAAkC,GACxC,wBAAwB,CA6B1B;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,kBAAkB,EACxB,KAAK,EAAE,kCAAkC,GAAG;IAC1C,iBAAiB,CAAC,EAAE,6BAA6B,CAAC;CACnD,GACA,kBAAkB,CAOpB"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Local control-plane ingest for v2 continuation.
|
|
3
|
+
*
|
|
4
|
+
* Twin of backend `routeVerifiedIngressContinuation`. Hosted Cursor runs
|
|
5
|
+
* that copy after the webhook is verified. Self-hosted / `july serve`
|
|
6
|
+
* runs this copy on the in-process local CP before the channel adapter
|
|
7
|
+
* `send()`s. Channel adapters do not extract.
|
|
8
|
+
*/
|
|
9
|
+
import { bindMailboxContinuationSend, continuationSource, normalizeIdentity, stampMailboxContinuation, } from "./continuation-identity.js";
|
|
10
|
+
/**
|
|
11
|
+
* Selector + live payload → mailbox stamp. `/v1` and omitted identity
|
|
12
|
+
* keep the caller-supplied deterministic key and do not stamp a mailbox.
|
|
13
|
+
*/
|
|
14
|
+
export function routeLocalIngressContinuation(input) {
|
|
15
|
+
if (input.identity === undefined) {
|
|
16
|
+
return Object.assign({}, (input.deterministicContinuationKey === undefined
|
|
17
|
+
? {}
|
|
18
|
+
: { explicitContinuationKey: input.deterministicContinuationKey }));
|
|
19
|
+
}
|
|
20
|
+
const identity = normalizeIdentity(input.identity, input.kind);
|
|
21
|
+
if (continuationSource(identity, input.kind) !== "control-plane") {
|
|
22
|
+
return Object.assign({}, (input.deterministicContinuationKey === undefined
|
|
23
|
+
? {}
|
|
24
|
+
: { explicitContinuationKey: input.deterministicContinuationKey }));
|
|
25
|
+
}
|
|
26
|
+
const mailboxContinuation = stampMailboxContinuation(identity, input.eventType, input.payload, input.kind);
|
|
27
|
+
if (mailboxContinuation.key.startsWith("cont:")) {
|
|
28
|
+
return {
|
|
29
|
+
explicitContinuationKey: mailboxContinuation.key,
|
|
30
|
+
mailboxContinuation,
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
return { mailboxContinuation };
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Bind a CP mailbox stamp onto `args.send` so the channel adapter only
|
|
37
|
+
* calls `send()` — it does not extract. No-op for `/v1`.
|
|
38
|
+
*/
|
|
39
|
+
export function bindLocalIngressSend(args, input) {
|
|
40
|
+
var _a;
|
|
41
|
+
const route = (_a = input.routeContinuation) !== null && _a !== void 0 ? _a : routeLocalIngressContinuation;
|
|
42
|
+
const routed = route(input);
|
|
43
|
+
return Object.assign(Object.assign({}, args), { send: bindMailboxContinuationSend(args.send, routed.mailboxContinuation) });
|
|
44
|
+
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/internal/server.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AA0CH,OAAO,KAAK,EACV,YAAY,EACZ,gBAAgB,EAOhB,YAAY,EACb,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/internal/server.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AA0CH,OAAO,KAAK,EACV,YAAY,EACZ,gBAAgB,EAOhB,YAAY,EACb,MAAM,aAAa,CAAC;AAyHrB,OAAO,EAAE,KAAK,WAAW,EAAmB,MAAM,iBAAiB,CAAC;AAwBpE,8EAA8E;AAC9E,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,YAAY,CAAC;CACvB;AAmCD,6EAA6E;AAC7E,MAAM,WAAW,0BAA0B;IACzC,oEAAoE;IACpE,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AAED;;;;GAIG;AACH,wBAAsB,WAAW,CAC/B,MAAM,EAAE,UAAU,EAAE,EACpB,OAAO,GAAE,YAAY,GAAG,0BAA+B,GACtD,OAAO,CAAC,gBAAgB,CAAC,CAy3B3B"}
|