managed-deepagents 0.10.0-dev.2 → 0.10.0-dev.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +103 -9
- package/dist/agent-auth.d.ts +13 -0
- package/dist/agent-auth.d.ts.map +1 -1
- package/dist/agent-auth.js +16 -1
- package/dist/agent-auth.js.map +1 -1
- package/dist/channels/github/index.d.ts +3 -8
- package/dist/channels/github/index.d.ts.map +1 -1
- package/dist/channels/github/index.js +24 -51
- package/dist/channels/github/index.js.map +1 -1
- package/dist/channels/http/http.d.ts.map +1 -1
- package/dist/channels/http/http.js +125 -9
- package/dist/channels/http/http.js.map +1 -1
- package/dist/channels/http/ingress.d.ts +24 -0
- package/dist/channels/http/ingress.d.ts.map +1 -1
- package/dist/channels/http/ingress.js +78 -5
- package/dist/channels/http/ingress.js.map +1 -1
- package/dist/channels/http/studio.d.ts +13 -0
- package/dist/channels/http/studio.d.ts.map +1 -0
- package/dist/channels/http/studio.js +80 -0
- package/dist/channels/http/studio.js.map +1 -0
- package/dist/channels/http/types.d.ts +32 -2
- package/dist/channels/http/types.d.ts.map +1 -1
- package/dist/channels/linear/connections.d.ts +11 -0
- package/dist/channels/linear/connections.d.ts.map +1 -0
- package/dist/channels/linear/connections.js +14 -0
- package/dist/channels/linear/connections.js.map +1 -0
- package/dist/channels/linear/graphql.d.ts +69 -0
- package/dist/channels/linear/graphql.d.ts.map +1 -0
- package/dist/channels/linear/graphql.js +169 -0
- package/dist/channels/linear/graphql.js.map +1 -0
- package/dist/channels/linear/index.d.ts +9 -0
- package/dist/channels/linear/index.d.ts.map +1 -0
- package/dist/channels/linear/index.js +467 -0
- package/dist/channels/linear/index.js.map +1 -0
- package/dist/channels/linear/schema.d.ts +1035 -0
- package/dist/channels/linear/schema.d.ts.map +1 -0
- package/dist/channels/linear/schema.js +216 -0
- package/dist/channels/linear/schema.js.map +1 -0
- package/dist/channels/linear/types.d.ts +114 -0
- package/dist/channels/linear/types.d.ts.map +1 -0
- package/dist/channels/linear/types.js +2 -0
- package/dist/channels/linear/types.js.map +1 -0
- package/dist/channels/reserved-connections.d.ts +2 -2
- package/dist/channels/reserved-connections.d.ts.map +1 -1
- package/dist/channels/reserved-connections.js +26 -9
- package/dist/channels/reserved-connections.js.map +1 -1
- package/dist/channels/slack/index.d.ts.map +1 -1
- package/dist/channels/slack/index.js +2 -0
- package/dist/channels/slack/index.js.map +1 -1
- package/dist/channels/slack/message-content.d.ts +25 -0
- package/dist/channels/slack/message-content.d.ts.map +1 -0
- package/dist/channels/slack/message-content.js +237 -0
- package/dist/channels/slack/message-content.js.map +1 -0
- package/dist/channels/source-providers.js +1 -1
- package/dist/channels/source-providers.js.map +1 -1
- package/dist/channels/trigger/http.d.ts +3 -1
- package/dist/channels/trigger/http.d.ts.map +1 -1
- package/dist/channels/trigger/http.js +1 -1
- package/dist/channels/trigger/http.js.map +1 -1
- package/dist/channels/trigger/types.d.ts +6 -2
- package/dist/channels/trigger/types.d.ts.map +1 -1
- package/dist/channels/trigger/types.js.map +1 -1
- package/dist/connections.d.ts +21 -3
- package/dist/connections.d.ts.map +1 -1
- package/dist/connections.js +48 -14
- package/dist/connections.js.map +1 -1
- package/dist/connectors/mcp/langsmith-url.js +2 -2
- package/dist/connectors/mcp/langsmith-url.js.map +1 -1
- package/dist/credential-gate.d.ts.map +1 -1
- package/dist/credential-gate.js +8 -6
- package/dist/credential-gate.js.map +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/ingress/runs.d.ts +11 -0
- package/dist/ingress/runs.d.ts.map +1 -1
- package/dist/ingress/runs.js +54 -0
- package/dist/ingress/runs.js.map +1 -1
- package/dist/namespaces.d.ts +15 -0
- package/dist/namespaces.d.ts.map +1 -1
- package/dist/namespaces.js +2 -0
- package/dist/namespaces.js.map +1 -1
- package/dist/runtime/auth.d.ts +2 -0
- package/dist/runtime/auth.d.ts.map +1 -1
- package/dist/runtime/auth.js +118 -21
- package/dist/runtime/auth.js.map +1 -1
- package/dist/runtime/channel-icon.d.ts +21 -0
- package/dist/runtime/channel-icon.d.ts.map +1 -0
- package/dist/runtime/channel-icon.js +69 -0
- package/dist/runtime/channel-icon.js.map +1 -0
- package/dist/runtime/channel.d.ts +6 -0
- package/dist/runtime/channel.d.ts.map +1 -1
- package/dist/runtime/channel.js.map +1 -1
- package/dist/runtime/identity-http.d.ts +2 -0
- package/dist/runtime/identity-http.d.ts.map +1 -1
- package/dist/runtime/identity-http.js +35 -0
- package/dist/runtime/identity-http.js.map +1 -1
- package/dist/runtime/sandbox-manager.d.ts +2 -0
- package/dist/runtime/sandbox-manager.d.ts.map +1 -1
- package/dist/runtime/sandbox-manager.js +37 -5
- package/dist/runtime/sandbox-manager.js.map +1 -1
- package/dist/runtime/schedule-auth.d.ts +1 -0
- package/dist/runtime/schedule-auth.d.ts.map +1 -1
- package/dist/runtime/schedule-auth.js +60 -2
- package/dist/runtime/schedule-auth.js.map +1 -1
- package/dist/runtime-schedules.d.ts.map +1 -1
- package/dist/runtime-schedules.js +8 -12
- package/dist/runtime-schedules.js.map +1 -1
- package/package.json +7 -7
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../src/channels/linear/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AASxB,kFAAkF;AAClF,eAAO,MAAM,mBAAmB;;;;;;;iBAO9B,CAAC;AA+GH,4EAA4E;AAC5E,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;0BAiD/B,CAAC;AAEH,eAAO,MAAM,oBAAoB,qHAEhC,CAAC;AAyDF,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;YAxBrB,MAAM;eAAS,MAAM;eAAS,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyC3C,CAAC"}
|
|
@@ -0,0 +1,216 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
// Shared scalar constraints. Linear identifiers are UUIDs, but only their
|
|
3
|
+
// presence matters here.
|
|
4
|
+
const nonblankStringSchema = z
|
|
5
|
+
.string()
|
|
6
|
+
.refine((value) => value.trim().length > 0);
|
|
7
|
+
const optionalTextSchema = z.string().nullish();
|
|
8
|
+
/** Receipt metadata only, not a complete Linear webhook payload specification. */
|
|
9
|
+
export const linearReceiptSchema = z.object({
|
|
10
|
+
deliveryId: nonblankStringSchema,
|
|
11
|
+
payload: z.looseObject({
|
|
12
|
+
type: nonblankStringSchema,
|
|
13
|
+
action: nonblankStringSchema,
|
|
14
|
+
organizationId: z.string().optional(),
|
|
15
|
+
}),
|
|
16
|
+
});
|
|
17
|
+
const teamSchema = z.looseObject({
|
|
18
|
+
id: nonblankStringSchema,
|
|
19
|
+
key: nonblankStringSchema,
|
|
20
|
+
name: z.string().optional(),
|
|
21
|
+
});
|
|
22
|
+
const actorSchema = z.looseObject({
|
|
23
|
+
id: nonblankStringSchema,
|
|
24
|
+
type: z.string().optional(),
|
|
25
|
+
name: z.string().optional(),
|
|
26
|
+
});
|
|
27
|
+
// Payload subjects. Loose objects retain unmodeled provider fields.
|
|
28
|
+
const issueSchema = z.looseObject({
|
|
29
|
+
id: nonblankStringSchema,
|
|
30
|
+
identifier: nonblankStringSchema,
|
|
31
|
+
title: z.string(),
|
|
32
|
+
description: optionalTextSchema,
|
|
33
|
+
url: z.string().optional(),
|
|
34
|
+
teamId: z.string().optional(),
|
|
35
|
+
team: teamSchema.optional(),
|
|
36
|
+
labelIds: z.array(z.string()).optional(),
|
|
37
|
+
labels: z
|
|
38
|
+
.array(z.looseObject({ id: z.string(), name: z.string() }))
|
|
39
|
+
.optional(),
|
|
40
|
+
botActor: z.unknown().optional(),
|
|
41
|
+
});
|
|
42
|
+
const commentSchema = z.looseObject({
|
|
43
|
+
id: nonblankStringSchema,
|
|
44
|
+
body: z.string(),
|
|
45
|
+
issueId: nonblankStringSchema,
|
|
46
|
+
parentId: z.string().nullish(),
|
|
47
|
+
userId: z.string().nullish(),
|
|
48
|
+
user: z
|
|
49
|
+
.looseObject({ id: z.string(), name: z.string().optional() })
|
|
50
|
+
.nullish(),
|
|
51
|
+
issue: z
|
|
52
|
+
.looseObject({
|
|
53
|
+
id: nonblankStringSchema,
|
|
54
|
+
identifier: z.string().optional(),
|
|
55
|
+
title: z.string().optional(),
|
|
56
|
+
url: z.string().optional(),
|
|
57
|
+
team: teamSchema.optional(),
|
|
58
|
+
})
|
|
59
|
+
.optional(),
|
|
60
|
+
botActor: z.unknown().optional(),
|
|
61
|
+
});
|
|
62
|
+
const sessionIssueSchema = z.looseObject({
|
|
63
|
+
id: nonblankStringSchema,
|
|
64
|
+
identifier: z.string().optional(),
|
|
65
|
+
title: z.string().optional(),
|
|
66
|
+
url: z.string().optional(),
|
|
67
|
+
description: optionalTextSchema,
|
|
68
|
+
team: teamSchema.optional(),
|
|
69
|
+
});
|
|
70
|
+
/** A Linear agent session: the app was mentioned or delegated an issue. */
|
|
71
|
+
const agentSessionSchema = z.looseObject({
|
|
72
|
+
id: nonblankStringSchema,
|
|
73
|
+
status: z.string().optional(),
|
|
74
|
+
url: z.string().optional(),
|
|
75
|
+
issueId: z.string().nullish(),
|
|
76
|
+
issue: sessionIssueSchema.nullish(),
|
|
77
|
+
// The comment that started the session, when a mention did.
|
|
78
|
+
commentId: z.string().nullish(),
|
|
79
|
+
comment: z
|
|
80
|
+
.looseObject({ id: nonblankStringSchema, body: z.string().optional() })
|
|
81
|
+
.nullish(),
|
|
82
|
+
creatorId: z.string().nullish(),
|
|
83
|
+
creator: z
|
|
84
|
+
.looseObject({ id: nonblankStringSchema, name: z.string().optional() })
|
|
85
|
+
.nullish(),
|
|
86
|
+
});
|
|
87
|
+
/** What a user said in a session: a reply, or a signal such as `stop`. */
|
|
88
|
+
const agentActivitySchema = z.looseObject({
|
|
89
|
+
content: z.looseObject({ type: z.string(), body: z.string().optional() }),
|
|
90
|
+
signal: z.string().nullish(),
|
|
91
|
+
signalMetadata: z.unknown().optional(),
|
|
92
|
+
sourceCommentId: z.string().nullish(),
|
|
93
|
+
userId: z.string().nullish(),
|
|
94
|
+
user: z
|
|
95
|
+
.looseObject({ id: nonblankStringSchema, name: z.string().optional() })
|
|
96
|
+
.nullish(),
|
|
97
|
+
});
|
|
98
|
+
// Common delivery context.
|
|
99
|
+
const envelopeSchema = z.looseObject({
|
|
100
|
+
organizationId: nonblankStringSchema,
|
|
101
|
+
webhookId: z.string().optional(),
|
|
102
|
+
webhookTimestamp: z.number(),
|
|
103
|
+
createdAt: z.string().optional(),
|
|
104
|
+
url: z.string().optional(),
|
|
105
|
+
actor: actorSchema.optional(),
|
|
106
|
+
});
|
|
107
|
+
function dispatchEventSchema(key, payloadSchema) {
|
|
108
|
+
return z.object({
|
|
109
|
+
key: z.literal(key),
|
|
110
|
+
deliveryId: nonblankStringSchema,
|
|
111
|
+
payload: payloadSchema,
|
|
112
|
+
});
|
|
113
|
+
}
|
|
114
|
+
/** Each supported event key requires its exact type, action and subject. */
|
|
115
|
+
export const linearDispatchSchema = z.discriminatedUnion("key", [
|
|
116
|
+
dispatchEventSchema("Issue.create", envelopeSchema.extend({
|
|
117
|
+
type: z.literal("Issue"),
|
|
118
|
+
action: z.literal("create"),
|
|
119
|
+
data: issueSchema,
|
|
120
|
+
})),
|
|
121
|
+
dispatchEventSchema("Issue.update", envelopeSchema.extend({
|
|
122
|
+
type: z.literal("Issue"),
|
|
123
|
+
action: z.literal("update"),
|
|
124
|
+
data: issueSchema,
|
|
125
|
+
// The changed fields' previous values.
|
|
126
|
+
updatedFrom: z.record(z.string(), z.unknown()).optional(),
|
|
127
|
+
})),
|
|
128
|
+
dispatchEventSchema("Comment.create", envelopeSchema.extend({
|
|
129
|
+
type: z.literal("Comment"),
|
|
130
|
+
action: z.literal("create"),
|
|
131
|
+
data: commentSchema,
|
|
132
|
+
})),
|
|
133
|
+
dispatchEventSchema("AgentSessionEvent.created", envelopeSchema.extend({
|
|
134
|
+
type: z.literal("AgentSessionEvent"),
|
|
135
|
+
action: z.literal("created"),
|
|
136
|
+
appUserId: z.string().optional(),
|
|
137
|
+
agentSession: agentSessionSchema,
|
|
138
|
+
// Linear's ready-made prompt: the issue, the thread and who asked.
|
|
139
|
+
promptContext: z.string().nullish(),
|
|
140
|
+
guidance: z.unknown().optional(),
|
|
141
|
+
})),
|
|
142
|
+
dispatchEventSchema("AgentSessionEvent.prompted", envelopeSchema.extend({
|
|
143
|
+
type: z.literal("AgentSessionEvent"),
|
|
144
|
+
action: z.literal("prompted"),
|
|
145
|
+
appUserId: z.string().optional(),
|
|
146
|
+
agentSession: agentSessionSchema,
|
|
147
|
+
agentActivity: agentActivitySchema,
|
|
148
|
+
})),
|
|
149
|
+
]);
|
|
150
|
+
export const SUPPORTED_EVENT_KEYS = linearDispatchSchema.options.map((option) => option.shape.key.value);
|
|
151
|
+
/** The issue an event is about, wherever its payload keeps it. */
|
|
152
|
+
function eventIssue(event) {
|
|
153
|
+
if (event.payload.type === "AgentSessionEvent") {
|
|
154
|
+
const session = event.payload.agentSession;
|
|
155
|
+
const id = session.issue?.id ?? session.issueId;
|
|
156
|
+
// Linear opens sessions on issues; one without could not be answered.
|
|
157
|
+
if (!id)
|
|
158
|
+
throw new TypeError("Linear agent session has no issue");
|
|
159
|
+
return { id, ...(session.issue?.team && { team: session.issue.team }) };
|
|
160
|
+
}
|
|
161
|
+
if (event.payload.type === "Comment") {
|
|
162
|
+
const { data } = event.payload;
|
|
163
|
+
return {
|
|
164
|
+
id: data.issueId,
|
|
165
|
+
...(data.issue?.team && { team: data.issue.team }),
|
|
166
|
+
};
|
|
167
|
+
}
|
|
168
|
+
const { data } = event.payload;
|
|
169
|
+
return { id: data.id, ...(data.team && { team: data.team }) };
|
|
170
|
+
}
|
|
171
|
+
/**
|
|
172
|
+
* Who acted: the webhook's actor, or for a session the user who started it or
|
|
173
|
+
* replied in it.
|
|
174
|
+
*/
|
|
175
|
+
function eventActor(event) {
|
|
176
|
+
const payload = event.payload;
|
|
177
|
+
const person = payload.type !== "AgentSessionEvent"
|
|
178
|
+
? payload.actor
|
|
179
|
+
: payload.action === "prompted"
|
|
180
|
+
? (payload.agentActivity.user ??
|
|
181
|
+
(payload.agentActivity.userId
|
|
182
|
+
? { id: payload.agentActivity.userId }
|
|
183
|
+
: undefined))
|
|
184
|
+
: (payload.agentSession.creator ??
|
|
185
|
+
(payload.agentSession.creatorId
|
|
186
|
+
? { id: payload.agentSession.creatorId }
|
|
187
|
+
: undefined));
|
|
188
|
+
if (!person)
|
|
189
|
+
return undefined;
|
|
190
|
+
const { type, name } = person;
|
|
191
|
+
return {
|
|
192
|
+
id: person.id,
|
|
193
|
+
...(typeof type === "string" && { type }),
|
|
194
|
+
...(typeof name === "string" && { name }),
|
|
195
|
+
};
|
|
196
|
+
}
|
|
197
|
+
// Expose common routing metadata while preserving the original payload.
|
|
198
|
+
export const linearEventSchema = linearDispatchSchema.transform((event) => {
|
|
199
|
+
const issue = eventIssue(event);
|
|
200
|
+
const actor = eventActor(event);
|
|
201
|
+
return {
|
|
202
|
+
...event,
|
|
203
|
+
type: event.payload.type,
|
|
204
|
+
action: event.payload.action,
|
|
205
|
+
organizationId: event.payload.organizationId,
|
|
206
|
+
issueId: issue.id,
|
|
207
|
+
...(issue.team && {
|
|
208
|
+
team: { id: issue.team.id, key: issue.team.key },
|
|
209
|
+
}),
|
|
210
|
+
...(actor && { actor }),
|
|
211
|
+
...(event.payload.type === "AgentSessionEvent" && {
|
|
212
|
+
sessionId: event.payload.agentSession.id,
|
|
213
|
+
}),
|
|
214
|
+
};
|
|
215
|
+
});
|
|
216
|
+
//# sourceMappingURL=schema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../src/channels/linear/schema.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
import type { z } from "zod";
|
|
2
|
+
import type { MultitaskStrategy } from "../../ingress/runs.js";
|
|
3
|
+
import type { linearEventSchema } from "./schema.js";
|
|
4
|
+
import type { ChannelRunResult } from "../run-input.js";
|
|
5
|
+
/** Handwritten schema subsets; unmodeled provider fields remain unknown. */
|
|
6
|
+
type EventUnion = z.output<typeof linearEventSchema>;
|
|
7
|
+
export type LinearEventKey = EventUnion["key"];
|
|
8
|
+
export type LinearEvent<K extends LinearEventKey = LinearEventKey> = Extract<EventUnion, {
|
|
9
|
+
key: K;
|
|
10
|
+
}>;
|
|
11
|
+
export type LinearPayloadFor<K extends LinearEventKey> = LinearEvent<K>["payload"];
|
|
12
|
+
export interface LinearChannelRuntime {
|
|
13
|
+
channel: {
|
|
14
|
+
name: string;
|
|
15
|
+
};
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* What an event handler returns: a run's input, as `agent.invoke` takes it —
|
|
19
|
+
* a string, a message such as `new HumanMessage(...)`, state such as
|
|
20
|
+
* `{ messages: [...] }`, or `[input, { context }]`. `null` or `undefined`
|
|
21
|
+
* starts nothing.
|
|
22
|
+
*/
|
|
23
|
+
export type LinearEventResult = ChannelRunResult | null | undefined | void;
|
|
24
|
+
export type LinearEventCallback<K extends LinearEventKey> = (event: LinearEvent<K>, runtime: LinearChannelRuntime) => LinearEventResult | Promise<LinearEventResult>;
|
|
25
|
+
/** The Linear app `mda deploy` sets up: how it looks, and what it may do. */
|
|
26
|
+
export interface LinearAppOptions {
|
|
27
|
+
/**
|
|
28
|
+
* The app's name, shown where people mention it and in its comments: 2–80
|
|
29
|
+
* characters, without "Linear" or a URL. Defaults to the agent's name.
|
|
30
|
+
* Deploy fills it in when the app is created; rename an existing app on
|
|
31
|
+
* its settings page in Linear.
|
|
32
|
+
*/
|
|
33
|
+
name?: string;
|
|
34
|
+
/**
|
|
35
|
+
* What the app does, shown when a workspace admin installs it: up to 1,000
|
|
36
|
+
* characters. Like `name`, it applies when the app is created.
|
|
37
|
+
*/
|
|
38
|
+
description?: string;
|
|
39
|
+
/**
|
|
40
|
+
* An `https` URL of the app's icon, at least 256×256 pixels. Linear loads
|
|
41
|
+
* it when the app is created; to use a local image, upload it on the app's
|
|
42
|
+
* settings page instead.
|
|
43
|
+
*/
|
|
44
|
+
iconUrl?: string;
|
|
45
|
+
/**
|
|
46
|
+
* The app's icon as a PNG or JPEG image in the project, such as
|
|
47
|
+
* `assets/icon.png`, at least 256×256 pixels and at most 1 MB. The
|
|
48
|
+
* deployment serves it at `/channels/{name}/icon`, and deploy points the
|
|
49
|
+
* new app's icon there. Use it instead of `iconUrl`.
|
|
50
|
+
*/
|
|
51
|
+
icon?: string;
|
|
52
|
+
/**
|
|
53
|
+
* Keys of the teams (as in `ENG-123`) the channel is limited to: events
|
|
54
|
+
* about other teams' issues start nothing. Defaults to every team the app
|
|
55
|
+
* can see. The app's token still reaches every team it was granted, so
|
|
56
|
+
* limit its team access in Linear too.
|
|
57
|
+
*/
|
|
58
|
+
teams?: string[];
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Options for `channels.linear(...)`: the app's scope and event handlers that
|
|
62
|
+
* start runs. Each issue is one conversation.
|
|
63
|
+
*/
|
|
64
|
+
export interface LinearChannelOptions {
|
|
65
|
+
/** The Linear app `mda deploy` sets up: its name, description, icon and teams. */
|
|
66
|
+
app?: LinearAppOptions;
|
|
67
|
+
/**
|
|
68
|
+
* What an event that starts a run does while its conversation already
|
|
69
|
+
* runs: `enqueue` (the default) waits for the run and starts after it,
|
|
70
|
+
* `interrupt` cancels the run, keeping its progress, and starts at once,
|
|
71
|
+
* `rollback` cancels it and discards its progress, and `reject` starts
|
|
72
|
+
* nothing.
|
|
73
|
+
*
|
|
74
|
+
* @example
|
|
75
|
+
* ```ts
|
|
76
|
+
* // A newer comment replaces the work on an older one.
|
|
77
|
+
* channels.linear({ multitaskStrategy: "interrupt", onEvent })
|
|
78
|
+
* ```
|
|
79
|
+
*/
|
|
80
|
+
multitaskStrategy?: MultitaskStrategy;
|
|
81
|
+
/**
|
|
82
|
+
* Event handlers that start runs. Return a prompt (string, message, or
|
|
83
|
+
* state), or nothing to skip. The run's final reply is posted as a comment
|
|
84
|
+
* on the issue, under the comment that started it.
|
|
85
|
+
*
|
|
86
|
+
* @example
|
|
87
|
+
* ```ts
|
|
88
|
+
* { "Issue.create": (e) => `Triage ${e.payload.data.identifier}` }
|
|
89
|
+
* ```
|
|
90
|
+
*
|
|
91
|
+
* In agent sessions the reply goes to the session instead.
|
|
92
|
+
*/
|
|
93
|
+
onEvent?: {
|
|
94
|
+
[K in LinearEventKey]?: LinearEventCallback<K>;
|
|
95
|
+
};
|
|
96
|
+
/**
|
|
97
|
+
* Answer Linear agent sessions, which open when someone mentions the app or
|
|
98
|
+
* delegates an issue to it. Defaults to `true`. Without a handler, a new
|
|
99
|
+
* session runs with Linear's prompt for it (`promptContext`), and a reply
|
|
100
|
+
* in the session continues the conversation. The run's progress and reply
|
|
101
|
+
* show in the session, and Stop cancels the run. A run that stops on
|
|
102
|
+
* interrupts answers with a link to its thread in LangSmith Studio, where
|
|
103
|
+
* they are resumed.
|
|
104
|
+
*/
|
|
105
|
+
sessions?: boolean;
|
|
106
|
+
/**
|
|
107
|
+
* Ignore changes made by other apps and integrations (Linear's
|
|
108
|
+
* `botActor`), so automations don't trigger each other. Defaults to
|
|
109
|
+
* `true`. The app's own changes are always ignored.
|
|
110
|
+
*/
|
|
111
|
+
ignoreBots?: boolean;
|
|
112
|
+
}
|
|
113
|
+
export {};
|
|
114
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/channels/linear/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAC7B,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AACrD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAExD,4EAA4E;AAC5E,KAAK,UAAU,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,iBAAiB,CAAC,CAAC;AACrD,MAAM,MAAM,cAAc,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;AAC/C,MAAM,MAAM,WAAW,CAAC,CAAC,SAAS,cAAc,GAAG,cAAc,IAAI,OAAO,CAC1E,UAAU,EACV;IAAE,GAAG,EAAE,CAAC,CAAA;CAAE,CACX,CAAC;AACF,MAAM,MAAM,gBAAgB,CAAC,CAAC,SAAS,cAAc,IACnD,WAAW,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;AAE5B,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;CAC3B;AAED;;;;;GAKG;AACH,MAAM,MAAM,iBAAiB,GAAG,gBAAgB,GAAG,IAAI,GAAG,SAAS,GAAG,IAAI,CAAC;AAE3E,MAAM,MAAM,mBAAmB,CAAC,CAAC,SAAS,cAAc,IAAI,CAC1D,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC,EACrB,OAAO,EAAE,oBAAoB,KAC1B,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;AAEpD,6EAA6E;AAC7E,MAAM,WAAW,gBAAgB;IAC/B;;;;;OAKG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;;OAIG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;;;OAKG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;;;;OAKG;IACH,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;CAClB;AAED;;;GAGG;AACH,MAAM,WAAW,oBAAoB;IACnC,kFAAkF;IAClF,GAAG,CAAC,EAAE,gBAAgB,CAAC;IACvB;;;;;;;;;;;;OAYG;IACH,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;IACtC;;;;;;;;;;;OAWG;IACH,OAAO,CAAC,EAAE;SAAG,CAAC,IAAI,cAAc,CAAC,CAAC,EAAE,mBAAmB,CAAC,CAAC,CAAC;KAAE,CAAC;IAC7D;;;;;;;;OAQG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;;OAIG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/channels/linear/types.ts"],"names":[],"mappings":""}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Why a channel's reserved agent connection cannot be read as a user
|
|
3
|
-
* connection, or undefined for any other slug. Reading
|
|
4
|
-
*
|
|
3
|
+
* connection, or undefined for any other slug. Reading an app's token as the
|
|
4
|
+
* person running the agent is not supported yet.
|
|
5
5
|
*/
|
|
6
6
|
export declare function reservedUserConnectionError(slug: string): string | undefined;
|
|
7
7
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reserved-connections.d.ts","sourceRoot":"","sources":["../../src/channels/reserved-connections.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"reserved-connections.d.ts","sourceRoot":"","sources":["../../src/channels/reserved-connections.ts"],"names":[],"mappings":"AAuCA;;;;GAIG;AACH,wBAAgB,2BAA2B,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAS5E;AAED;;;GAGG;AACH,wBAAgB,2BAA2B,CACzC,IAAI,EAAE,MAAM,EACZ,YAAY,EAAE,MAAM,GAAG,SAAS,GAC/B,MAAM,CAGR"}
|
|
@@ -1,28 +1,45 @@
|
|
|
1
1
|
import { GITHUB_TOKEN_SLUG, githubAppConnectionSlug, } from "./github/connections.js";
|
|
2
|
+
import { LINEAR_TOKEN_SLUG, linearAppConnectionSlug, } from "./linear/connections.js";
|
|
2
3
|
// First-party channels' reserved agent connection names, listed here so
|
|
3
4
|
// resolution does not depend on adapter modules being loaded.
|
|
4
5
|
const builtinReservedConnections = new Map([
|
|
5
|
-
[
|
|
6
|
+
[
|
|
7
|
+
GITHUB_TOKEN_SLUG,
|
|
8
|
+
{
|
|
9
|
+
resolve: githubAppConnectionSlug,
|
|
10
|
+
token: "the GitHub App's installation token",
|
|
11
|
+
actsAs: "act on GitHub as the App",
|
|
12
|
+
},
|
|
13
|
+
],
|
|
14
|
+
[
|
|
15
|
+
LINEAR_TOKEN_SLUG,
|
|
16
|
+
{
|
|
17
|
+
resolve: linearAppConnectionSlug,
|
|
18
|
+
token: "the Linear app's token",
|
|
19
|
+
actsAs: "act in Linear as the app",
|
|
20
|
+
},
|
|
21
|
+
],
|
|
6
22
|
]);
|
|
7
23
|
/**
|
|
8
24
|
* Why a channel's reserved agent connection cannot be read as a user
|
|
9
|
-
* connection, or undefined for any other slug. Reading
|
|
10
|
-
*
|
|
25
|
+
* connection, or undefined for any other slug. Reading an app's token as the
|
|
26
|
+
* person running the agent is not supported yet.
|
|
11
27
|
*/
|
|
12
28
|
export function reservedUserConnectionError(slug) {
|
|
13
|
-
|
|
29
|
+
const reserved = builtinReservedConnections.get(slug);
|
|
30
|
+
if (!reserved)
|
|
14
31
|
return undefined;
|
|
15
32
|
const name = JSON.stringify(slug);
|
|
16
|
-
return (`${name} is not supported as a user connection yet: it is
|
|
17
|
-
`
|
|
18
|
-
|
|
33
|
+
return (`${name} is not supported as a user connection yet: it is ${reserved.token}, ` +
|
|
34
|
+
`an agent connection. Use connections.get(${name}, { type: "agent" }) to ` +
|
|
35
|
+
`${reserved.actsAs}.`);
|
|
19
36
|
}
|
|
20
37
|
/**
|
|
21
38
|
* The connection that actually holds a channel's reserved agent connection;
|
|
22
39
|
* other slugs pass through unchanged.
|
|
23
40
|
*/
|
|
24
41
|
export function reservedAgentConnectionSlug(slug, deploymentId) {
|
|
25
|
-
const
|
|
26
|
-
return
|
|
42
|
+
const reserved = builtinReservedConnections.get(slug);
|
|
43
|
+
return reserved && deploymentId ? reserved.resolve(deploymentId) : slug;
|
|
27
44
|
}
|
|
28
45
|
//# sourceMappingURL=reserved-connections.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reserved-connections.js","sourceRoot":"","sources":["../../src/channels/reserved-connections.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EACjB,uBAAuB,GACxB,MAAM,yBAAyB,CAAC;AAEjC,wEAAwE;AACxE,8DAA8D;AAC9D,MAAM,0BAA0B,GAAG,IAAI,GAAG,
|
|
1
|
+
{"version":3,"file":"reserved-connections.js","sourceRoot":"","sources":["../../src/channels/reserved-connections.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EACjB,uBAAuB,GACxB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,iBAAiB,EACjB,uBAAuB,GACxB,MAAM,yBAAyB,CAAC;AAEjC,wEAAwE;AACxE,8DAA8D;AAC9D,MAAM,0BAA0B,GAAG,IAAI,GAAG,CASxC;IACA;QACE,iBAAiB;QACjB;YACE,OAAO,EAAE,uBAAuB;YAChC,KAAK,EAAE,qCAAqC;YAC5C,MAAM,EAAE,0BAA0B;SACnC;KACF;IACD;QACE,iBAAiB;QACjB;YACE,OAAO,EAAE,uBAAuB;YAChC,KAAK,EAAE,wBAAwB;YAC/B,MAAM,EAAE,0BAA0B;SACnC;KACF;CACF,CAAC,CAAC;AAEH;;;;GAIG;AACH,MAAM,UAAU,2BAA2B,CAAC,IAAY;IACtD,MAAM,QAAQ,GAAG,0BAA0B,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACtD,IAAI,CAAC,QAAQ;QAAE,OAAO,SAAS,CAAC;IAChC,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IAClC,OAAO,CACL,GAAG,IAAI,qDAAqD,QAAQ,CAAC,KAAK,IAAI;QAC9E,4CAA4C,IAAI,0BAA0B;QAC1E,GAAG,QAAQ,CAAC,MAAM,GAAG,CACtB,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,2BAA2B,CACzC,IAAY,EACZ,YAAgC;IAEhC,MAAM,QAAQ,GAAG,0BAA0B,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACtD,OAAO,QAAQ,IAAI,YAAY,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AAC1E,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/channels/slack/index.ts"],"names":[],"mappings":"AAAA,6DAA6D;AAI7D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACtD,OAAO,EAGL,KAAK,cAAc,EACpB,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/channels/slack/index.ts"],"names":[],"mappings":"AAAA,6DAA6D;AAI7D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACtD,OAAO,EAGL,KAAK,cAAc,EACpB,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EAEL,KAAK,OAAO,EAEb,MAAM,0BAA0B,CAAC;AAElC,YAAY,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAEtD,MAAM,WAAW,kBAAkB;IACjC,iEAAiE;IACjE,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,mDAAmD;IACnD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,yDAAyD;IACzD,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B;;;;OAIG;IACH,SAAS,CAAC,EAAE,cAAc,CAAC;CAC5B;AAED,MAAM,WAAW,qBAAqB;IACpC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,iCAAiC;IAChD,GAAG,EAAE,qBAAqB,CAAC;IAC3B,oBAAoB,EAAE,OAAO,CAAC;IAC9B,gBAAgB,EAAE,OAAO,CAAC;IAC1B,SAAS,CAAC,EAAE,cAAc,CAAC;CAC5B;AAED,gDAAgD;AAChD,MAAM,MAAM,YAAY,GAAG,OAAO,GAChC,iCAAiC,GAAG;IAClC,IAAI,EAAE,OAAO,CAAC;IACd,SAAS,EAAE,gBAAgB,CAAC;CAC7B,CAAC;AA2DJ,8EAA8E;AAC9E,wBAAgB,YAAY,CAAC,MAAM,GAAE,kBAAuB,GAAG,YAAY,CAqC1E;AAED,6EAA6E;AAC7E,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,iCAAiC,GAAG,YAAY,GAC3D,eAAe,CA2BjB"}
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
import { z } from "zod";
|
|
3
3
|
import { DEFAULT_REACTION_EMOJI, isEmojiName, } from "../reactions.js";
|
|
4
4
|
import { handleTriggerChannelEventRequest } from "../trigger/http.js";
|
|
5
|
+
import { withSlackRichContent } from "./message-content.js";
|
|
5
6
|
import { CHANNEL_BRAND, } from "../../runtime/channel.js";
|
|
6
7
|
const slackChannelConfig = z
|
|
7
8
|
.object({
|
|
@@ -78,6 +79,7 @@ export function slackChannel(config = {}) {
|
|
|
78
79
|
sourceProvider: "slack",
|
|
79
80
|
channelName: ctx.name,
|
|
80
81
|
reactions: self.reactions,
|
|
82
|
+
messageInput: (event) => withSlackRichContent(event.input.messages, event.raw_event),
|
|
81
83
|
}));
|
|
82
84
|
hide(self, "requirements", (name) => toSlackRequirements(name, self));
|
|
83
85
|
return self;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/channels/slack/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/channels/slack/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Render the Slack attachments and blocks the Trigger Server leaves out of the
|
|
3
|
+
* prompt.
|
|
4
|
+
*
|
|
5
|
+
* The Trigger Server builds the run's message from the event's `text` and only
|
|
6
|
+
* reads blocks or attachments when `text` is empty. Alert bots (Datadog,
|
|
7
|
+
* PagerDuty, Sentry, ...) send a one-line `text` and put the details in
|
|
8
|
+
* attachment fields and section blocks, so the agent never saw them.
|
|
9
|
+
*/
|
|
10
|
+
/**
|
|
11
|
+
* Bound the appended text, in code points like the Python runtime; Slack
|
|
12
|
+
* allows 50 blocks and 100 attachments.
|
|
13
|
+
*/
|
|
14
|
+
export declare const MAX_RICH_CONTENT_CHARS = 16000;
|
|
15
|
+
/**
|
|
16
|
+
* Text for a Slack event's blocks and attachments, or `undefined` when they
|
|
17
|
+
* add nothing beyond `text` and `shown` (the text the agent already gets).
|
|
18
|
+
*/
|
|
19
|
+
export declare function renderSlackRichContent(rawEvent: unknown, shown?: string): string | undefined;
|
|
20
|
+
/**
|
|
21
|
+
* Append the event's rendered blocks and attachments to the last human
|
|
22
|
+
* message, without lines it already has. Inputs are not mutated.
|
|
23
|
+
*/
|
|
24
|
+
export declare function withSlackRichContent(messages: Record<string, unknown>[], rawEvent: unknown): Record<string, unknown>[];
|
|
25
|
+
//# sourceMappingURL=message-content.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"message-content.d.ts","sourceRoot":"","sources":["../../../src/channels/slack/message-content.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH;;;GAGG;AACH,eAAO,MAAM,sBAAsB,QAAS,CAAC;AAsK7C;;;GAGG;AACH,wBAAgB,sBAAsB,CACpC,QAAQ,EAAE,OAAO,EACjB,KAAK,CAAC,EAAE,MAAM,GACb,MAAM,GAAG,SAAS,CA+BpB;AAsBD;;;GAGG;AACH,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,EACnC,QAAQ,EAAE,OAAO,GAChB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAkB3B"}
|