managed-deepagents 0.10.0-dev.6 → 0.10.0-dev.7
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/README.md +69 -58
- package/dist/channels/github/connections.d.ts.map +1 -1
- package/dist/channels/github/connections.js +2 -2
- package/dist/channels/github/connections.js.map +1 -1
- package/dist/channels/github/index.d.ts +1 -1
- package/dist/channels/github/index.d.ts.map +1 -1
- package/dist/channels/github/index.js +42 -89
- package/dist/channels/github/index.js.map +1 -1
- package/dist/channels/github/schema.d.ts.map +1 -1
- package/dist/channels/github/schema.js +1 -3
- package/dist/channels/github/schema.js.map +1 -1
- package/dist/channels/github/types.d.ts +18 -10
- package/dist/channels/github/types.d.ts.map +1 -1
- package/dist/channels/http/http.d.ts.map +1 -1
- package/dist/channels/http/http.js +92 -95
- package/dist/channels/http/http.js.map +1 -1
- package/dist/channels/http/index.d.ts +1 -1
- package/dist/channels/http/index.d.ts.map +1 -1
- package/dist/channels/http/index.js +9 -0
- package/dist/channels/http/index.js.map +1 -1
- package/dist/channels/http/ingress.d.ts +26 -11
- package/dist/channels/http/ingress.d.ts.map +1 -1
- package/dist/channels/http/ingress.js +19 -34
- package/dist/channels/http/ingress.js.map +1 -1
- package/dist/channels/http/provider.d.ts +68 -0
- package/dist/channels/http/provider.d.ts.map +1 -0
- package/dist/channels/http/provider.js +149 -0
- package/dist/channels/http/provider.js.map +1 -0
- package/dist/channels/http/studio.d.ts +7 -5
- package/dist/channels/http/studio.d.ts.map +1 -1
- package/dist/channels/http/studio.js +12 -12
- package/dist/channels/http/studio.js.map +1 -1
- package/dist/channels/http/types.d.ts +27 -15
- package/dist/channels/http/types.d.ts.map +1 -1
- package/dist/channels/linear/connections.d.ts.map +1 -1
- package/dist/channels/linear/connections.js +2 -2
- package/dist/channels/linear/connections.js.map +1 -1
- package/dist/channels/linear/graphql.d.ts +5 -17
- package/dist/channels/linear/graphql.d.ts.map +1 -1
- package/dist/channels/linear/graphql.js +55 -57
- package/dist/channels/linear/graphql.js.map +1 -1
- package/dist/channels/linear/index.d.ts +1 -1
- package/dist/channels/linear/index.d.ts.map +1 -1
- package/dist/channels/linear/index.js +133 -146
- package/dist/channels/linear/index.js.map +1 -1
- package/dist/channels/linear/schema.d.ts +173 -144
- package/dist/channels/linear/schema.d.ts.map +1 -1
- package/dist/channels/linear/schema.js +45 -12
- package/dist/channels/linear/schema.js.map +1 -1
- package/dist/channels/linear/types.d.ts +21 -21
- package/dist/channels/linear/types.d.ts.map +1 -1
- package/dist/channels/message-schema.d.ts +2 -0
- package/dist/channels/message-schema.d.ts.map +1 -1
- package/dist/channels/message-schema.js +4 -0
- package/dist/channels/message-schema.js.map +1 -1
- package/dist/channels/run-input.d.ts +3 -9
- package/dist/channels/run-input.d.ts.map +1 -1
- package/dist/channels/run-input.js +7 -17
- package/dist/channels/run-input.js.map +1 -1
- package/dist/channels/trigger/client.js +7 -3
- package/dist/channels/trigger/client.js.map +1 -1
- package/dist/channels/trigger/http.d.ts.map +1 -1
- package/dist/channels/trigger/http.js +6 -3
- package/dist/channels/trigger/http.js.map +1 -1
- package/dist/channels/trigger/tracing-project.d.ts +16 -0
- package/dist/channels/trigger/tracing-project.d.ts.map +1 -0
- package/dist/channels/trigger/tracing-project.js +54 -0
- package/dist/channels/trigger/tracing-project.js.map +1 -0
- package/dist/channels/trigger/types.d.ts +6 -0
- package/dist/channels/trigger/types.d.ts.map +1 -1
- package/dist/channels/trigger/types.js.map +1 -1
- package/dist/connections.d.ts +6 -0
- package/dist/connections.d.ts.map +1 -1
- package/dist/connections.js +27 -0
- package/dist/connections.js.map +1 -1
- package/dist/connectors/mcp/index.d.ts.map +1 -1
- package/dist/connectors/mcp/index.js +52 -2
- package/dist/connectors/mcp/index.js.map +1 -1
- package/dist/credential-gate.d.ts.map +1 -1
- package/dist/credential-gate.js +13 -3
- package/dist/credential-gate.js.map +1 -1
- package/dist/identity/options.d.ts +0 -9
- package/dist/identity/options.d.ts.map +1 -1
- package/dist/identity/options.js +1 -6
- package/dist/identity/options.js.map +1 -1
- package/dist/identity/types.d.ts +0 -6
- package/dist/identity/types.d.ts.map +1 -1
- package/dist/index.d.ts +3 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/ingress/runs.d.ts +2 -4
- package/dist/ingress/runs.d.ts.map +1 -1
- package/dist/ingress/runs.js +5 -6
- package/dist/ingress/runs.js.map +1 -1
- package/dist/runtime/auth.d.ts +0 -9
- package/dist/runtime/auth.d.ts.map +1 -1
- package/dist/runtime/auth.js +2 -55
- package/dist/runtime/auth.js.map +1 -1
- package/dist/runtime/schedule-auth.d.ts +1 -1
- package/dist/runtime/schedule-auth.d.ts.map +1 -1
- package/dist/runtime/schedule-auth.js +12 -4
- package/dist/runtime/schedule-auth.js.map +1 -1
- package/dist/runtime-schedules.js +6 -6
- package/dist/runtime-schedules.js.map +1 -1
- package/package.json +7 -7
|
@@ -1,15 +1,14 @@
|
|
|
1
|
-
import { createHmac, timingSafeEqual } from "node:crypto";
|
|
2
1
|
import { channelThreadId, httpChannel, } from "../http/index.js";
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
2
|
+
import { channelName, checkEventKeys, definedFields, eventSnapshot, handledEventKeys, readDeploymentSecret, resetDeploymentSecrets, runEventHandler, verifyHmacSha256, } from "../http/provider.js";
|
|
3
|
+
import { interruptedNotice, studioUrl } from "../http/studio.js";
|
|
4
|
+
import { requireTextContent } from "../runtime.js";
|
|
6
5
|
import { logger } from "../../runtime/log.js";
|
|
7
6
|
import { validateChannelIconPath } from "../../runtime/channel-icon.js";
|
|
8
|
-
import { ConnectionNotFoundError, DEPLOYMENT_ID_ENV, connections, } from "../../connections.js";
|
|
9
7
|
import { linearAppConnectionSlug } from "./connections.js";
|
|
10
8
|
import { addLinearSessionUrl, commentInAgentSession, createLinearActivity, createLinearComment, linearAppUser, } from "./graphql.js";
|
|
11
9
|
import { SUPPORTED_EVENT_KEYS, linearEventSchema, linearReceiptSchema, } from "./schema.js";
|
|
12
10
|
export { LinearRateLimitError } from "./graphql.js";
|
|
11
|
+
const EVENT_KEYS = new Set(SUPPORTED_EVENT_KEYS);
|
|
13
12
|
const SESSION_KEYS = new Set([
|
|
14
13
|
"AgentSessionEvent.created",
|
|
15
14
|
"AgentSessionEvent.prompted",
|
|
@@ -23,6 +22,7 @@ const APP_OPTION_KEYS = new Set([
|
|
|
23
22
|
/** Adapt verified Linear webhooks into HTTP channel messages or skips. */
|
|
24
23
|
export function linearChannel(options = {}) {
|
|
25
24
|
const handlers = { ...options.onEvent };
|
|
25
|
+
checkEventKeys("Linear", handlers, EVENT_KEYS);
|
|
26
26
|
// A misspelled option would silently widen what starts runs.
|
|
27
27
|
const unknown = Object.keys(options.app ?? {}).filter((key) => !APP_OPTION_KEYS.has(key));
|
|
28
28
|
if (unknown.length)
|
|
@@ -45,16 +45,28 @@ export function linearChannel(options = {}) {
|
|
|
45
45
|
providerConfig: {
|
|
46
46
|
// Deploy subscribes the app's webhook to the handled events.
|
|
47
47
|
events: handledEvents(handlers, filters.sessions),
|
|
48
|
-
...(options.app && {
|
|
48
|
+
...(options.app && {
|
|
49
|
+
app: definedFields({
|
|
50
|
+
name: options.app.name?.trim(),
|
|
51
|
+
description: options.app.description?.trim(),
|
|
52
|
+
icon: options.app.icon &&
|
|
53
|
+
validateChannelIconPath(options.app.icon, "Linear app.icon"),
|
|
54
|
+
teams: options.app.teams && [...options.app.teams],
|
|
55
|
+
}),
|
|
56
|
+
}),
|
|
49
57
|
},
|
|
50
58
|
verify: verifyLinearRequest,
|
|
51
59
|
parse: (context) => parseLinearRequest(context, handlers, channelName(channel), filters),
|
|
52
|
-
input: (message, rawEvent
|
|
60
|
+
input: (message, rawEvent) => handlerInput(handlers, rawEvent, {
|
|
61
|
+
id: message.threadId,
|
|
62
|
+
channel: { name: channelName(channel) },
|
|
63
|
+
}),
|
|
53
64
|
post: postReply,
|
|
54
65
|
onDelivered: acknowledgeSession,
|
|
55
66
|
onCancelled: confirmStopped,
|
|
56
67
|
onError: reportError,
|
|
57
|
-
|
|
68
|
+
interruptedReasons: ["waiting", "stopped"],
|
|
69
|
+
onInterrupted: notifyInterrupted,
|
|
58
70
|
});
|
|
59
71
|
// Served at /channels/{name}/icon; deploy points the app's icon at it.
|
|
60
72
|
const icon = options.app?.icon;
|
|
@@ -64,13 +76,14 @@ export function linearChannel(options = {}) {
|
|
|
64
76
|
icon: validateChannelIconPath(icon, "Linear app.icon"),
|
|
65
77
|
});
|
|
66
78
|
}
|
|
67
|
-
function channelName(channel) {
|
|
68
|
-
return channel.name ?? channel.kind;
|
|
69
|
-
}
|
|
70
79
|
/** The events deploy subscribes the app's webhook to. */
|
|
71
80
|
function handledEvents(handlers, sessions) {
|
|
72
|
-
|
|
73
|
-
|
|
81
|
+
return [
|
|
82
|
+
...new Set([
|
|
83
|
+
...handledEventKeys(handlers),
|
|
84
|
+
...(sessions ? SESSION_KEYS : []),
|
|
85
|
+
]),
|
|
86
|
+
].sort();
|
|
74
87
|
}
|
|
75
88
|
/** Check how the app looks against Linear's rules, before deploy sends it. */
|
|
76
89
|
function validateAppDisplay({ name, description, icon }) {
|
|
@@ -87,58 +100,18 @@ function validateAppDisplay({ name, description, icon }) {
|
|
|
87
100
|
if (icon !== undefined)
|
|
88
101
|
validateChannelIconPath(icon, "Linear app.icon");
|
|
89
102
|
}
|
|
90
|
-
/** The app options deploy reads, without unset fields. */
|
|
91
|
-
function appConfig(app) {
|
|
92
|
-
return Object.fromEntries(Object.entries({
|
|
93
|
-
name: app.name?.trim(),
|
|
94
|
-
description: app.description?.trim(),
|
|
95
|
-
icon: app.icon && validateChannelIconPath(app.icon, "Linear app.icon"),
|
|
96
|
-
teams: app.teams && [...app.teams],
|
|
97
|
-
}).filter(([, value]) => value !== undefined));
|
|
98
|
-
}
|
|
99
|
-
/** How long the webhook secret read from Agent Auth is reused. */
|
|
100
|
-
const SECRET_TTL_MS = 5 * 60_000;
|
|
101
|
-
/** How long a missing secret is remembered, so unsigned traffic can't hammer Agent Auth. */
|
|
102
|
-
const MISSING_SECRET_TTL_MS = 60_000;
|
|
103
|
-
let webhookSecret;
|
|
104
103
|
/**
|
|
105
104
|
* The app's webhook signing secret: `LINEAR_WEBHOOK_SECRET` when set,
|
|
106
105
|
* otherwise the agent secret stored at
|
|
107
106
|
* `mda/linear-app/{deployment}/webhook-secret`. Only a missing connection
|
|
108
107
|
* reads as `undefined`; credential store failures propagate.
|
|
109
108
|
*/
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
if (override)
|
|
113
|
-
return override;
|
|
114
|
-
const deploymentId = process.env[DEPLOYMENT_ID_ENV]?.trim();
|
|
115
|
-
if (!deploymentId)
|
|
116
|
-
return undefined;
|
|
117
|
-
if (webhookSecret && webhookSecret.expiresAt > Date.now())
|
|
118
|
-
return webhookSecret.value;
|
|
119
|
-
// Concurrent deliveries share the in-flight read.
|
|
120
|
-
const entry = {
|
|
121
|
-
value: connections
|
|
122
|
-
.resolveDeploymentSecret(linearAppConnectionSlug(deploymentId, "webhook-secret"))
|
|
123
|
-
.catch((error) => {
|
|
124
|
-
if (error instanceof ConnectionNotFoundError) {
|
|
125
|
-
entry.expiresAt = Date.now() + MISSING_SECRET_TTL_MS;
|
|
126
|
-
logger.error("Linear webhook secret is not stored in Agent Auth");
|
|
127
|
-
return undefined;
|
|
128
|
-
}
|
|
129
|
-
// Read again on the next delivery rather than caching a failure.
|
|
130
|
-
if (webhookSecret === entry)
|
|
131
|
-
webhookSecret = undefined;
|
|
132
|
-
throw error;
|
|
133
|
-
}),
|
|
134
|
-
expiresAt: Date.now() + SECRET_TTL_MS,
|
|
135
|
-
};
|
|
136
|
-
webhookSecret = entry;
|
|
137
|
-
return entry.value;
|
|
109
|
+
function linearWebhookSecret() {
|
|
110
|
+
return readDeploymentSecret("LINEAR_WEBHOOK_SECRET", (deploymentId) => linearAppConnectionSlug(deploymentId, "webhook-secret"), "Linear webhook secret");
|
|
138
111
|
}
|
|
139
112
|
/** Forget the cached webhook secret; for tests. */
|
|
140
113
|
export function resetLinearWebhookSecret() {
|
|
141
|
-
|
|
114
|
+
resetDeploymentSecrets();
|
|
142
115
|
}
|
|
143
116
|
/**
|
|
144
117
|
* How far a delivery's `webhookTimestamp` may be from now. Linear recommends
|
|
@@ -153,7 +126,7 @@ async function verifyLinearRequest({ request, rawBody, }) {
|
|
|
153
126
|
const secret = await linearWebhookSecret();
|
|
154
127
|
if (!secret)
|
|
155
128
|
return false;
|
|
156
|
-
if (!
|
|
129
|
+
if (!verifyHmacSha256(secret, rawBody, signature))
|
|
157
130
|
return false;
|
|
158
131
|
return isFresh(rawBody);
|
|
159
132
|
}
|
|
@@ -169,20 +142,19 @@ function isFresh(rawBody) {
|
|
|
169
142
|
return (typeof timestamp === "number" &&
|
|
170
143
|
Math.abs(Date.now() - timestamp) <= WEBHOOK_TOLERANCE_MS);
|
|
171
144
|
}
|
|
172
|
-
const EVENT_KEYS = new Set(SUPPORTED_EVENT_KEYS);
|
|
173
145
|
/**
|
|
174
146
|
* Whether another app or an integration made the change. The delivery's actor
|
|
175
147
|
* says who acted. An issue's or comment's `botActor` is the bot that created
|
|
176
148
|
* it, so it names the actor only when the event is its creation.
|
|
177
149
|
*/
|
|
178
150
|
function byBot(event) {
|
|
179
|
-
|
|
180
|
-
|
|
151
|
+
if (event.actor?.type !== undefined &&
|
|
152
|
+
event.actor.type.toLowerCase() !== "user")
|
|
181
153
|
return true;
|
|
182
154
|
if (event.key === "Issue.update")
|
|
183
155
|
return false;
|
|
184
|
-
const
|
|
185
|
-
return
|
|
156
|
+
const { botActor } = event.payload.data;
|
|
157
|
+
return botActor !== undefined && botActor !== null;
|
|
186
158
|
}
|
|
187
159
|
async function parseLinearRequest({ request }, handlers, channelName, filters) {
|
|
188
160
|
const receipt = linearReceiptSchema.parse({
|
|
@@ -212,36 +184,51 @@ async function parseLinearRequest({ request }, handlers, channelName, filters) {
|
|
|
212
184
|
const event = linearEventSchema.parse({ key, deliveryId, payload });
|
|
213
185
|
// Issues of teams the channel is not limited to start nothing.
|
|
214
186
|
if (filters.teams &&
|
|
215
|
-
!(event.team && filters.teams.includes(event.team.key.toLowerCase())))
|
|
187
|
+
!(event.team && filters.teams.includes(event.team.key.toLowerCase()))) {
|
|
188
|
+
logger.info(`linear event ignored: ${event.team ? "its team is not in app.teams" : "it names no team"} ${JSON.stringify({
|
|
189
|
+
event: logger.logIdentifier(key),
|
|
190
|
+
deliveryId: logger.logIdentifier(deliveryId),
|
|
191
|
+
})}`);
|
|
216
192
|
return { type: "ignore", response };
|
|
217
|
-
|
|
193
|
+
}
|
|
194
|
+
if (!("sessionId" in event) && (await ignored(event, filters)))
|
|
218
195
|
return { type: "ignore", response };
|
|
219
196
|
// Preserve the original event even if a callback modifies its argument.
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
//
|
|
197
|
+
const snapshot = eventSnapshot(event, "Linear");
|
|
198
|
+
// One thread per agent session, so a Stop ends only its own session's
|
|
199
|
+
// work. Other events share one thread per issue, so the agent keeps the
|
|
200
|
+
// conversation.
|
|
201
|
+
const conversation = `${event.organizationId}/${event.issueId}`;
|
|
224
202
|
const message = {
|
|
225
|
-
threadId: channelThreadId(channelName,
|
|
203
|
+
threadId: channelThreadId(channelName, "sessionId" in event
|
|
204
|
+
? `${conversation}/session/${event.sessionId}`
|
|
205
|
+
: conversation),
|
|
226
206
|
userId: "mda:channel",
|
|
227
207
|
target: linearTarget(event),
|
|
228
208
|
deliveryKey: deliveryId,
|
|
229
209
|
};
|
|
230
|
-
// Stop in a session cancels the
|
|
210
|
+
// Stop in a session cancels the session's run.
|
|
231
211
|
if (event.key === "AgentSessionEvent.prompted" &&
|
|
232
212
|
event.payload.agentActivity.signal === "stop")
|
|
233
|
-
return {
|
|
213
|
+
return {
|
|
214
|
+
type: "cancel",
|
|
215
|
+
message: {
|
|
216
|
+
userId: message.userId,
|
|
217
|
+
threadId: message.threadId,
|
|
218
|
+
target: message.target,
|
|
219
|
+
},
|
|
220
|
+
rawEvent: snapshot,
|
|
221
|
+
response,
|
|
222
|
+
};
|
|
234
223
|
// What the run starts with, or how the event answers an interrupt, is
|
|
235
224
|
// decided once MDA knows whether the thread waits on one.
|
|
236
|
-
return { type: "message", message, rawEvent:
|
|
225
|
+
return { type: "message", message, rawEvent: snapshot, response };
|
|
237
226
|
}
|
|
238
227
|
/**
|
|
239
228
|
* Whether a webhook event starts nothing: another app's change, the app's own
|
|
240
229
|
* activity, or a comment an agent session already delivers.
|
|
241
230
|
*/
|
|
242
231
|
async function ignored(event, filters) {
|
|
243
|
-
if (event.type === "AgentSessionEvent")
|
|
244
|
-
return false;
|
|
245
232
|
if (filters.ignoreBots && byBot(event))
|
|
246
233
|
return true;
|
|
247
234
|
// Linear reports the app's comments as its user's, not as a bot's.
|
|
@@ -253,17 +240,27 @@ async function ignored(event, filters) {
|
|
|
253
240
|
const comment = event.payload.data;
|
|
254
241
|
if ((comment.user?.id ?? comment.userId) === appUser.id)
|
|
255
242
|
return true;
|
|
256
|
-
|
|
243
|
+
if (!filters.sessions)
|
|
244
|
+
return false;
|
|
245
|
+
const delivered = await sessionComment(comment, appUser);
|
|
246
|
+
if (delivered)
|
|
247
|
+
logger.info(`linear comment left to its agent session: ${delivered} ${JSON.stringify({
|
|
248
|
+
event: logger.logIdentifier(event.key),
|
|
249
|
+
deliveryId: logger.logIdentifier(event.deliveryId),
|
|
250
|
+
})}`);
|
|
251
|
+
return delivered !== undefined;
|
|
257
252
|
}
|
|
258
253
|
/**
|
|
259
|
-
*
|
|
260
|
-
*
|
|
261
|
-
*
|
|
254
|
+
* Why a comment is part of an agent session, which delivers it as a session
|
|
255
|
+
* event too: one that mentions the app opens a session, and a reply in a
|
|
256
|
+
* session's thread prompts it. Only a reply without a mention asks Linear.
|
|
262
257
|
*/
|
|
263
258
|
async function sessionComment(comment, appUser) {
|
|
264
259
|
if (mentionsApp(comment.body, appUser.displayName))
|
|
265
|
-
return
|
|
266
|
-
|
|
260
|
+
return "it mentions the app, which opens a session";
|
|
261
|
+
if (comment.parentId && (await commentInAgentSession(comment.parentId)))
|
|
262
|
+
return "it replies in a session's thread";
|
|
263
|
+
return undefined;
|
|
267
264
|
}
|
|
268
265
|
function mentionsApp(body, displayName) {
|
|
269
266
|
if (!displayName)
|
|
@@ -273,81 +270,76 @@ function mentionsApp(body, displayName) {
|
|
|
273
270
|
}
|
|
274
271
|
/** Where replies go: the issue, and the comment thread or session that asked. */
|
|
275
272
|
function linearTarget(event) {
|
|
276
|
-
const
|
|
277
|
-
? event.payload.data.issue?.identifier
|
|
278
|
-
: event.type === "AgentSessionEvent"
|
|
279
|
-
? event.payload.agentSession.issue?.identifier
|
|
280
|
-
: event.payload.data.identifier;
|
|
281
|
-
return {
|
|
273
|
+
const target = {
|
|
282
274
|
organizationId: event.organizationId,
|
|
283
275
|
issueId: event.issueId,
|
|
284
|
-
...(identifier && { identifier }),
|
|
285
|
-
// Replies go into the comment's thread; Linear threads one level deep.
|
|
286
|
-
...(event.key === "Comment.create" && {
|
|
287
|
-
commentId: event.payload.data.parentId ?? event.payload.data.id,
|
|
288
|
-
}),
|
|
289
|
-
...(event.sessionId && { sessionId: event.sessionId }),
|
|
290
276
|
};
|
|
277
|
+
if ("sessionId" in event) {
|
|
278
|
+
const identifier = event.payload.agentSession.issue?.identifier;
|
|
279
|
+
return {
|
|
280
|
+
...target,
|
|
281
|
+
...(identifier && { identifier }),
|
|
282
|
+
sessionId: event.sessionId,
|
|
283
|
+
};
|
|
284
|
+
}
|
|
285
|
+
if (event.key === "Comment.create") {
|
|
286
|
+
const { data } = event.payload;
|
|
287
|
+
return {
|
|
288
|
+
...target,
|
|
289
|
+
...(data.issue?.identifier && { identifier: data.issue.identifier }),
|
|
290
|
+
// Replies go into the comment's thread; Linear threads one level deep.
|
|
291
|
+
commentId: data.parentId ?? data.id,
|
|
292
|
+
};
|
|
293
|
+
}
|
|
294
|
+
return { ...target, identifier: event.payload.data.identifier };
|
|
291
295
|
}
|
|
296
|
+
const ERROR_MESSAGE = "Something went wrong while working on this.";
|
|
292
297
|
/** What the event's handler starts a run with; `undefined` when it skips or fails. */
|
|
293
|
-
async function handlerInput(handlers, rawEvent,
|
|
298
|
+
async function handlerInput(handlers, rawEvent, thread) {
|
|
294
299
|
const event = linearEvent(rawEvent);
|
|
295
300
|
if (!event)
|
|
296
301
|
return undefined;
|
|
297
|
-
const
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
signature: request.request.headers.get("linear-signature") ?? "",
|
|
311
|
-
},
|
|
312
|
-
})
|
|
313
|
-
: sessionInput(event);
|
|
314
|
-
}
|
|
315
|
-
catch (error) {
|
|
316
|
-
logger.error(`linear callback failed ${JSON.stringify(receipt)} (${logger.safeErrorLabel(error)})`);
|
|
317
|
-
input = undefined;
|
|
318
|
-
}
|
|
319
|
-
if (input === undefined || input === null) {
|
|
320
|
-
// A session that gets no run would wait for an answer that never comes,
|
|
321
|
-
// whether it just opened or this is a follow-up in it.
|
|
322
|
-
if (event.type === "AgentSessionEvent")
|
|
323
|
-
await say(event.sessionId, {
|
|
324
|
-
type: "response",
|
|
325
|
-
body: "I'm not set up to work on this request.",
|
|
326
|
-
});
|
|
327
|
-
return undefined;
|
|
328
|
-
}
|
|
329
|
-
logger.info(`Linear handler returned run input ${JSON.stringify(receipt)}`);
|
|
330
|
-
return input;
|
|
302
|
+
const outcome = Object.hasOwn(handlers, event.key) && handlers[event.key] !== undefined
|
|
303
|
+
? await runEventHandler("Linear", event, () => callHandler(handlers, event.key, event, thread))
|
|
304
|
+
: sessionInput(event);
|
|
305
|
+
if (outcome.type === "input")
|
|
306
|
+
return outcome.input;
|
|
307
|
+
// A session that gets no run would wait for an answer that never comes,
|
|
308
|
+
// whether it just opened or this is a follow-up in it. A handler that threw
|
|
309
|
+
// failed; one that returned nothing declined.
|
|
310
|
+
if ("sessionId" in event)
|
|
311
|
+
await say(event.sessionId, outcome.type === "failed"
|
|
312
|
+
? { type: "error", body: ERROR_MESSAGE }
|
|
313
|
+
: { type: "response", body: "I'm not set up to work on this request." });
|
|
314
|
+
return undefined;
|
|
331
315
|
}
|
|
332
316
|
/** What a session event starts a run with when no handler decides. */
|
|
333
317
|
function sessionInput(event) {
|
|
318
|
+
let input;
|
|
334
319
|
if (event.key === "AgentSessionEvent.created") {
|
|
335
320
|
const { promptContext, agentSession } = event.payload;
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
321
|
+
input =
|
|
322
|
+
promptContext?.trim() ||
|
|
323
|
+
agentSession.comment?.body?.trim() ||
|
|
324
|
+
agentSession.issue?.title?.trim() ||
|
|
325
|
+
undefined;
|
|
340
326
|
}
|
|
341
|
-
if (event.key === "AgentSessionEvent.prompted")
|
|
342
|
-
|
|
343
|
-
return
|
|
327
|
+
else if (event.key === "AgentSessionEvent.prompted")
|
|
328
|
+
input = event.payload.agentActivity.content.body?.trim() || undefined;
|
|
329
|
+
return input ? { type: "input", input } : { type: "skipped" };
|
|
344
330
|
}
|
|
345
|
-
/**
|
|
331
|
+
/** Call the handler of the event's key, typed by the key. */
|
|
332
|
+
function callHandler(handlers, key, event, thread) {
|
|
333
|
+
return handlers[key]?.(event, thread);
|
|
334
|
+
}
|
|
335
|
+
/**
|
|
336
|
+
* The parsed event a delivery carries, checked against the schema again: the
|
|
337
|
+
* HTTP layer hands over a copy, which handlers may change.
|
|
338
|
+
*/
|
|
346
339
|
function linearEvent(rawEvent) {
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
return EVENT_KEYS.has(event.key) ? event : undefined;
|
|
340
|
+
// The schema reads `key`, `deliveryId` and `payload`, and derives the rest.
|
|
341
|
+
const parsed = linearEventSchema.safeParse(rawEvent);
|
|
342
|
+
return parsed.success ? parsed.data : undefined;
|
|
351
343
|
}
|
|
352
344
|
/** Say something in a session; a failure is logged, never thrown. */
|
|
353
345
|
async function say(sessionId, content, extra = {}) {
|
|
@@ -416,7 +408,6 @@ async function confirmStopped(target) {
|
|
|
416
408
|
return;
|
|
417
409
|
await say(target.sessionId, { type: "response", body: "Stopped." });
|
|
418
410
|
}
|
|
419
|
-
const ERROR_MESSAGE = "Something went wrong while working on this.";
|
|
420
411
|
/** Tell the session or the issue that the run failed. */
|
|
421
412
|
async function reportError(_error, target) {
|
|
422
413
|
if (!isLinearTarget(target))
|
|
@@ -440,14 +431,10 @@ async function reportError(_error, target) {
|
|
|
440
431
|
* ends: once the decision is made, the resumed run's answer is the session's
|
|
441
432
|
* response. Otherwise it is a comment.
|
|
442
433
|
*/
|
|
443
|
-
async function
|
|
434
|
+
async function notifyInterrupted(target, run, reason) {
|
|
444
435
|
if (!isLinearTarget(target))
|
|
445
436
|
return;
|
|
446
|
-
const
|
|
447
|
-
const studio = url ? `[LangSmith Studio](${url})` : "LangSmith Studio";
|
|
448
|
-
const body = run.stopped
|
|
449
|
-
? `I need a decision before I continue. Review the pending step in ${studio}.`
|
|
450
|
-
: `I'm waiting for a decision on an earlier step, so I haven't read this yet. Review the pending step in ${studio}, then ask again.`;
|
|
437
|
+
const body = interruptedNotice(reason, run, "ask again");
|
|
451
438
|
if (target.sessionId) {
|
|
452
439
|
await createLinearActivity({
|
|
453
440
|
agentSessionId: target.sessionId,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/channels/linear/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/channels/linear/index.ts"],"names":[],"mappings":"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"}
|