managed-deepagents 0.9.6-dev.19 → 0.9.6-dev.20
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 +1075 -37
- package/dist/agent-auth.d.ts +1 -1
- package/dist/agent-auth.d.ts.map +1 -1
- package/dist/agent-auth.js +36 -12
- package/dist/agent-auth.js.map +1 -1
- package/dist/browser.d.ts +37 -0
- package/dist/browser.d.ts.map +1 -0
- package/dist/browser.js +31 -0
- package/dist/browser.js.map +1 -0
- package/dist/channels/actor.d.ts +57 -0
- package/dist/channels/actor.d.ts.map +1 -0
- package/dist/channels/actor.js +24 -0
- package/dist/channels/actor.js.map +1 -0
- package/dist/channels/assistant-text.d.ts +29 -0
- package/dist/channels/assistant-text.d.ts.map +1 -1
- package/dist/channels/assistant-text.js +72 -1
- package/dist/channels/assistant-text.js.map +1 -1
- package/dist/channels/binding.d.ts +20 -1
- package/dist/channels/binding.d.ts.map +1 -1
- package/dist/channels/binding.js +44 -11
- package/dist/channels/binding.js.map +1 -1
- package/dist/channels/delivery.d.ts +51 -0
- package/dist/channels/delivery.d.ts.map +1 -0
- package/dist/channels/delivery.js +424 -0
- package/dist/channels/delivery.js.map +1 -0
- package/dist/channels/github/app-setup.d.ts +32 -0
- package/dist/channels/github/app-setup.d.ts.map +1 -0
- package/dist/channels/github/app-setup.js +146 -0
- package/dist/channels/github/app-setup.js.map +1 -0
- package/dist/channels/github/connections.d.ts +11 -0
- package/dist/channels/github/connections.d.ts.map +1 -0
- package/dist/channels/github/connections.js +14 -0
- package/dist/channels/github/connections.js.map +1 -0
- package/dist/channels/github/index.d.ts +12 -0
- package/dist/channels/github/index.d.ts.map +1 -0
- package/dist/channels/github/index.js +266 -0
- package/dist/channels/github/index.js.map +1 -0
- package/dist/channels/github/mentions.d.ts +12 -0
- package/dist/channels/github/mentions.d.ts.map +1 -0
- package/dist/channels/github/mentions.js +185 -0
- package/dist/channels/github/mentions.js.map +1 -0
- package/dist/channels/github/schema.d.ts +4165 -0
- package/dist/channels/github/schema.d.ts.map +1 -0
- package/dist/channels/github/schema.js +221 -0
- package/dist/channels/github/schema.js.map +1 -0
- package/dist/channels/github/types.d.ts +170 -0
- package/dist/channels/github/types.d.ts.map +1 -0
- package/dist/channels/github/types.js +2 -0
- package/dist/channels/github/types.js.map +1 -0
- package/dist/channels/http/endpoint.d.ts +137 -0
- package/dist/channels/http/endpoint.d.ts.map +1 -0
- package/dist/channels/http/endpoint.js +286 -0
- package/dist/channels/http/endpoint.js.map +1 -0
- package/dist/channels/http/http.d.ts.map +1 -1
- package/dist/channels/http/http.js +439 -65
- package/dist/channels/http/http.js.map +1 -1
- package/dist/channels/http/index.d.ts +8 -1
- package/dist/channels/http/index.d.ts.map +1 -1
- package/dist/channels/http/index.js +35 -16
- package/dist/channels/http/index.js.map +1 -1
- package/dist/channels/http/ingress.d.ts +67 -5
- package/dist/channels/http/ingress.d.ts.map +1 -1
- package/dist/channels/http/ingress.js +155 -43
- package/dist/channels/http/ingress.js.map +1 -1
- package/dist/channels/http/provider.d.ts +125 -0
- package/dist/channels/http/provider.d.ts.map +1 -0
- package/dist/channels/http/provider.js +227 -0
- package/dist/channels/http/provider.js.map +1 -0
- package/dist/channels/http/studio.d.ts +24 -0
- package/dist/channels/http/studio.d.ts.map +1 -0
- package/dist/channels/http/studio.js +95 -0
- package/dist/channels/http/studio.js.map +1 -0
- package/dist/channels/http/threads.d.ts +7 -0
- package/dist/channels/http/threads.d.ts.map +1 -0
- package/dist/channels/http/threads.js +10 -0
- package/dist/channels/http/threads.js.map +1 -0
- package/dist/channels/http/types.d.ts +166 -2
- package/dist/channels/http/types.d.ts.map +1 -1
- package/dist/channels/linear/app-setup.d.ts +29 -0
- package/dist/channels/linear/app-setup.d.ts.map +1 -0
- package/dist/channels/linear/app-setup.js +102 -0
- package/dist/channels/linear/app-setup.js.map +1 -0
- 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 +57 -0
- package/dist/channels/linear/graphql.d.ts.map +1 -0
- package/dist/channels/linear/graphql.js +167 -0
- package/dist/channels/linear/graphql.js.map +1 -0
- package/dist/channels/linear/index.d.ts +13 -0
- package/dist/channels/linear/index.d.ts.map +1 -0
- package/dist/channels/linear/index.js +457 -0
- package/dist/channels/linear/index.js.map +1 -0
- package/dist/channels/linear/schema.d.ts +1050 -0
- package/dist/channels/linear/schema.d.ts.map +1 -0
- package/dist/channels/linear/schema.js +255 -0
- package/dist/channels/linear/schema.js.map +1 -0
- package/dist/channels/linear/types.d.ts +169 -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/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/messaging-registry.d.ts +16 -0
- package/dist/channels/messaging-registry.d.ts.map +1 -1
- package/dist/channels/messaging-registry.js +29 -0
- package/dist/channels/messaging-registry.js.map +1 -1
- package/dist/channels/reserved-connections.d.ts +12 -0
- package/dist/channels/reserved-connections.d.ts.map +1 -0
- package/dist/channels/reserved-connections.js +55 -0
- package/dist/channels/reserved-connections.js.map +1 -0
- package/dist/channels/resolve-user-endpoint.d.ts +34 -0
- package/dist/channels/resolve-user-endpoint.d.ts.map +1 -0
- package/dist/channels/resolve-user-endpoint.js +51 -0
- package/dist/channels/resolve-user-endpoint.js.map +1 -0
- package/dist/channels/resolve-user.d.ts +95 -0
- package/dist/channels/resolve-user.d.ts.map +1 -0
- package/dist/channels/resolve-user.js +143 -0
- package/dist/channels/resolve-user.js.map +1 -0
- package/dist/channels/run-input.d.ts +88 -0
- package/dist/channels/run-input.d.ts.map +1 -0
- package/dist/channels/run-input.js +177 -0
- package/dist/channels/run-input.js.map +1 -0
- package/dist/channels/runtime.d.ts +5 -2
- package/dist/channels/runtime.d.ts.map +1 -1
- package/dist/channels/runtime.js +19 -10
- package/dist/channels/runtime.js.map +1 -1
- package/dist/channels/schedule-delivery.d.ts +2 -13
- package/dist/channels/schedule-delivery.d.ts.map +1 -1
- package/dist/channels/schedule-delivery.js +6 -73
- package/dist/channels/schedule-delivery.js.map +1 -1
- package/dist/channels/slack/api.d.ts +2 -0
- package/dist/channels/slack/api.d.ts.map +1 -1
- package/dist/channels/slack/api.js +6 -0
- package/dist/channels/slack/api.js.map +1 -1
- package/dist/channels/slack/connections.d.ts +6 -0
- package/dist/channels/slack/connections.d.ts.map +1 -0
- package/dist/channels/slack/connections.js +6 -0
- package/dist/channels/slack/connections.js.map +1 -0
- package/dist/channels/slack/events.d.ts +278 -0
- package/dist/channels/slack/events.d.ts.map +1 -0
- package/dist/channels/slack/events.js +235 -0
- package/dist/channels/slack/events.js.map +1 -0
- package/dist/channels/slack/files.d.ts.map +1 -1
- package/dist/channels/slack/files.js +2 -3
- package/dist/channels/slack/files.js.map +1 -1
- package/dist/channels/slack/index.d.ts +90 -2
- package/dist/channels/slack/index.d.ts.map +1 -1
- package/dist/channels/slack/index.js +188 -6
- package/dist/channels/slack/index.js.map +1 -1
- package/dist/channels/slack/message-content.d.ts.map +1 -1
- package/dist/channels/slack/message-content.js +23 -28
- package/dist/channels/slack/message-content.js.map +1 -1
- package/dist/channels/slack/status.d.ts +76 -0
- package/dist/channels/slack/status.d.ts.map +1 -0
- package/dist/channels/slack/status.js +427 -0
- package/dist/channels/slack/status.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/client.d.ts.map +1 -1
- package/dist/channels/trigger/client.js +6 -9
- package/dist/channels/trigger/client.js.map +1 -1
- package/dist/channels/trigger/conversation.d.ts +11 -0
- package/dist/channels/trigger/conversation.d.ts.map +1 -0
- package/dist/channels/trigger/conversation.js +72 -0
- package/dist/channels/trigger/conversation.js.map +1 -0
- package/dist/channels/trigger/http.d.ts +130 -4
- package/dist/channels/trigger/http.d.ts.map +1 -1
- package/dist/channels/trigger/http.js +408 -78
- package/dist/channels/trigger/http.js.map +1 -1
- package/dist/channels/trigger/ingress.d.ts +70 -1
- package/dist/channels/trigger/ingress.d.ts.map +1 -1
- package/dist/channels/trigger/ingress.js +130 -19
- package/dist/channels/trigger/ingress.js.map +1 -1
- package/dist/channels/trigger/transport.d.ts +10 -0
- package/dist/channels/trigger/transport.d.ts.map +1 -1
- package/dist/channels/trigger/transport.js +25 -9
- package/dist/channels/trigger/transport.js.map +1 -1
- package/dist/channels/trigger/types.d.ts +92 -3
- package/dist/channels/trigger/types.d.ts.map +1 -1
- package/dist/channels/trigger/types.js +37 -0
- package/dist/channels/trigger/types.js.map +1 -1
- package/dist/channels/types.d.ts +53 -4
- package/dist/channels/types.d.ts.map +1 -1
- package/dist/channels/types.js +2 -0
- package/dist/channels/types.js.map +1 -1
- package/dist/connections.d.ts +35 -1
- package/dist/connections.d.ts.map +1 -1
- package/dist/connections.js +121 -10
- package/dist/connections.js.map +1 -1
- package/dist/credential-gate.d.ts +2 -0
- package/dist/credential-gate.d.ts.map +1 -1
- package/dist/credential-gate.js +37 -3
- package/dist/credential-gate.js.map +1 -1
- package/dist/define-deep-agent.d.ts +2 -2
- package/dist/define-deep-agent.d.ts.map +1 -1
- package/dist/define-deep-agent.js +53 -2
- package/dist/define-deep-agent.js.map +1 -1
- package/dist/identity/index.d.ts.map +1 -1
- package/dist/identity/index.js +3 -1
- package/dist/identity/index.js.map +1 -1
- package/dist/identity/options.d.ts +9 -0
- package/dist/identity/options.d.ts.map +1 -1
- package/dist/identity/options.js +1 -1
- package/dist/identity/options.js.map +1 -1
- package/dist/identity/types.d.ts +3 -0
- package/dist/identity/types.d.ts.map +1 -1
- package/dist/index.d.ts +19 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -1
- package/dist/index.js.map +1 -1
- package/dist/ingress/loopback.d.ts +1 -0
- package/dist/ingress/loopback.d.ts.map +1 -1
- package/dist/ingress/loopback.js +4 -1
- package/dist/ingress/loopback.js.map +1 -1
- package/dist/ingress/runs.d.ts +74 -1
- package/dist/ingress/runs.d.ts.map +1 -1
- package/dist/ingress/runs.js +184 -9
- package/dist/ingress/runs.js.map +1 -1
- package/dist/managed-composition.d.ts +3 -0
- package/dist/managed-composition.d.ts.map +1 -1
- package/dist/managed-composition.js +29 -13
- package/dist/managed-composition.js.map +1 -1
- package/dist/namespaces.d.ts +25 -21
- package/dist/namespaces.d.ts.map +1 -1
- package/dist/namespaces.js +4 -29
- package/dist/namespaces.js.map +1 -1
- package/dist/runtime/async-subagents.d.ts +27 -0
- package/dist/runtime/async-subagents.d.ts.map +1 -0
- package/dist/runtime/async-subagents.js +139 -0
- package/dist/runtime/async-subagents.js.map +1 -0
- package/dist/runtime/auth.d.ts.map +1 -1
- package/dist/runtime/auth.js +177 -8
- package/dist/runtime/auth.js.map +1 -1
- package/dist/runtime/backend.d.ts +7 -0
- package/dist/runtime/backend.d.ts.map +1 -1
- package/dist/runtime/backend.js +32 -7
- package/dist/runtime/backend.js.map +1 -1
- package/dist/runtime/browser-facade.d.ts +10 -0
- package/dist/runtime/browser-facade.d.ts.map +1 -0
- package/dist/runtime/browser-facade.js +23 -0
- package/dist/runtime/browser-facade.js.map +1 -0
- package/dist/runtime/browser-langsmith.d.ts +143 -0
- package/dist/runtime/browser-langsmith.d.ts.map +1 -0
- package/dist/runtime/browser-langsmith.js +508 -0
- package/dist/runtime/browser-langsmith.js.map +1 -0
- package/dist/runtime/browser-recorder.py +831 -0
- package/dist/runtime/browser-selection.d.ts +10 -0
- package/dist/runtime/browser-selection.d.ts.map +1 -0
- package/dist/runtime/browser-selection.js +21 -0
- package/dist/runtime/browser-selection.js.map +1 -0
- package/dist/runtime/browser.d.ts +128 -0
- package/dist/runtime/browser.d.ts.map +1 -0
- package/dist/runtime/browser.js +795 -0
- package/dist/runtime/browser.js.map +1 -0
- package/dist/runtime/channel-icon.d.ts +22 -0
- package/dist/runtime/channel-icon.d.ts.map +1 -0
- package/dist/runtime/channel-icon.js +81 -0
- package/dist/runtime/channel-icon.js.map +1 -0
- package/dist/runtime/channel.d.ts +11 -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 +38 -2
- package/dist/runtime/identity-http.js.map +1 -1
- package/dist/runtime/identity-runtime.d.ts +10 -0
- package/dist/runtime/identity-runtime.d.ts.map +1 -1
- package/dist/runtime/identity-runtime.js +22 -0
- package/dist/runtime/identity-runtime.js.map +1 -1
- package/dist/runtime/index.d.ts +38 -1
- package/dist/runtime/index.d.ts.map +1 -1
- package/dist/runtime/index.js +76 -34
- package/dist/runtime/index.js.map +1 -1
- package/dist/runtime/managed-thread.d.ts +61 -0
- package/dist/runtime/managed-thread.d.ts.map +1 -0
- package/dist/runtime/managed-thread.js +76 -0
- package/dist/runtime/managed-thread.js.map +1 -0
- package/dist/runtime/managed-tools.d.ts +10 -2
- package/dist/runtime/managed-tools.d.ts.map +1 -1
- package/dist/runtime/managed-tools.js +10 -8
- package/dist/runtime/managed-tools.js.map +1 -1
- package/dist/runtime/memory/policy.d.ts.map +1 -1
- package/dist/runtime/memory/policy.js +1 -3
- package/dist/runtime/memory/policy.js.map +1 -1
- package/dist/runtime/parent-run.d.ts +33 -0
- package/dist/runtime/parent-run.d.ts.map +1 -0
- package/dist/runtime/parent-run.js +114 -0
- package/dist/runtime/parent-run.js.map +1 -0
- package/dist/runtime/run-input.d.ts +14 -1
- package/dist/runtime/run-input.d.ts.map +1 -1
- package/dist/runtime/run-input.js +100 -7
- package/dist/runtime/run-input.js.map +1 -1
- package/dist/runtime/sandbox-manager.d.ts +15 -2
- package/dist/runtime/sandbox-manager.d.ts.map +1 -1
- package/dist/runtime/sandbox-manager.js +37 -12
- package/dist/runtime/sandbox-manager.js.map +1 -1
- package/dist/runtime/schedule-auth.d.ts +79 -0
- package/dist/runtime/schedule-auth.d.ts.map +1 -1
- package/dist/runtime/schedule-auth.js +163 -6
- package/dist/runtime/schedule-auth.js.map +1 -1
- package/dist/runtime/static-entry.d.ts.map +1 -1
- package/dist/runtime/static-entry.js +1 -0
- package/dist/runtime/static-entry.js.map +1 -1
- package/dist/runtime/thread-record.d.ts +88 -0
- package/dist/runtime/thread-record.d.ts.map +1 -0
- package/dist/runtime/thread-record.js +213 -0
- package/dist/runtime/thread-record.js.map +1 -0
- package/dist/runtime/types.d.ts +12 -1
- package/dist/runtime/types.d.ts.map +1 -1
- package/dist/runtime-schedules.d.ts +15 -0
- package/dist/runtime-schedules.d.ts.map +1 -1
- package/dist/runtime-schedules.js +83 -20
- package/dist/runtime-schedules.js.map +1 -1
- package/dist/sandbox.d.ts +0 -6
- package/dist/sandbox.d.ts.map +1 -1
- package/dist/sandbox.js +3 -7
- package/dist/sandbox.js.map +1 -1
- package/dist/schedule-channel.d.ts +5 -2
- package/dist/schedule-channel.d.ts.map +1 -1
- package/dist/schedule-channel.js +13 -12
- package/dist/schedule-channel.js.map +1 -1
- package/dist/types.d.ts +19 -2
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/dist/values.d.ts +15 -0
- package/dist/values.d.ts.map +1 -0
- package/dist/values.js +31 -0
- package/dist/values.js.map +1 -0
- package/package.json +23 -9
|
@@ -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;AAGxB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAM/C,kFAAkF;AAClF,eAAO,MAAM,mBAAmB;;;;;;;iBAO9B,CAAC;AA8EH;;;GAGG;AACH,eAAO,MAAM,qBAAqB,YAChC,QAAQ,EACR,SAAS,EACT,QAAQ,EACR,UAAU,EACV,OAAO,EACP,aAAa,CACL,CAAC;AACX;;;GAGG;AACH,eAAO,MAAM,qBAAqB,YAAI,MAAM,CAAU,CAAC;AAyCvD,4EAA4E;AAC5E,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;0BAiD/B,CAAC;AAEH,eAAO,MAAM,oBAAoB,qHAEhC,CAAC;AAqEF;;;GAGG;AACH,eAAO,MAAM,4BAA4B,YAAI,OAAO,CAAU,CAAC;AAG/D,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkB5B,CAAC"}
|
|
@@ -0,0 +1,255 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { nonblankStringSchema } from "../message-schema.js";
|
|
3
|
+
// Shared scalar constraints. Linear identifiers are UUIDs, but only their
|
|
4
|
+
// presence matters here.
|
|
5
|
+
const optionalTextSchema = z.string().nullish();
|
|
6
|
+
/** Receipt metadata only, not a complete Linear webhook payload specification. */
|
|
7
|
+
export const linearReceiptSchema = z.object({
|
|
8
|
+
deliveryId: nonblankStringSchema,
|
|
9
|
+
payload: z.looseObject({
|
|
10
|
+
type: nonblankStringSchema,
|
|
11
|
+
action: nonblankStringSchema,
|
|
12
|
+
organizationId: z.string().optional(),
|
|
13
|
+
}),
|
|
14
|
+
});
|
|
15
|
+
const teamSchema = z.looseObject({
|
|
16
|
+
id: nonblankStringSchema,
|
|
17
|
+
key: nonblankStringSchema,
|
|
18
|
+
name: z.string().optional(),
|
|
19
|
+
});
|
|
20
|
+
const actorSchema = z.looseObject({
|
|
21
|
+
id: nonblankStringSchema,
|
|
22
|
+
type: z.string().optional(),
|
|
23
|
+
name: z.string().optional(),
|
|
24
|
+
});
|
|
25
|
+
// Payload subjects. Loose objects retain unmodeled provider fields.
|
|
26
|
+
const issueSchema = z.looseObject({
|
|
27
|
+
id: nonblankStringSchema,
|
|
28
|
+
identifier: nonblankStringSchema,
|
|
29
|
+
title: z.string(),
|
|
30
|
+
description: optionalTextSchema,
|
|
31
|
+
url: z.string().optional(),
|
|
32
|
+
teamId: z.string().optional(),
|
|
33
|
+
team: teamSchema.optional(),
|
|
34
|
+
labelIds: z.array(z.string()).optional(),
|
|
35
|
+
labels: z
|
|
36
|
+
.array(z.looseObject({ id: z.string(), name: z.string() }))
|
|
37
|
+
.optional(),
|
|
38
|
+
botActor: z.unknown().optional(),
|
|
39
|
+
});
|
|
40
|
+
const commentSchema = z.looseObject({
|
|
41
|
+
id: nonblankStringSchema,
|
|
42
|
+
body: z.string(),
|
|
43
|
+
issueId: nonblankStringSchema,
|
|
44
|
+
parentId: z.string().nullish(),
|
|
45
|
+
userId: z.string().nullish(),
|
|
46
|
+
user: z
|
|
47
|
+
.looseObject({ id: z.string(), name: z.string().optional() })
|
|
48
|
+
.nullish(),
|
|
49
|
+
issue: z
|
|
50
|
+
.looseObject({
|
|
51
|
+
id: nonblankStringSchema,
|
|
52
|
+
identifier: z.string().optional(),
|
|
53
|
+
title: z.string().optional(),
|
|
54
|
+
url: z.string().optional(),
|
|
55
|
+
team: teamSchema.optional(),
|
|
56
|
+
})
|
|
57
|
+
.optional(),
|
|
58
|
+
botActor: z.unknown().optional(),
|
|
59
|
+
});
|
|
60
|
+
const sessionIssueSchema = z.looseObject({
|
|
61
|
+
id: nonblankStringSchema,
|
|
62
|
+
identifier: z.string().optional(),
|
|
63
|
+
title: z.string().optional(),
|
|
64
|
+
url: z.string().optional(),
|
|
65
|
+
description: optionalTextSchema,
|
|
66
|
+
team: teamSchema.optional(),
|
|
67
|
+
});
|
|
68
|
+
/** A Linear agent session: the app was mentioned or delegated an issue. */
|
|
69
|
+
const agentSessionSchema = z.looseObject({
|
|
70
|
+
id: nonblankStringSchema,
|
|
71
|
+
status: z.string().optional(),
|
|
72
|
+
url: z.string().optional(),
|
|
73
|
+
issueId: z.string().nullish(),
|
|
74
|
+
issue: sessionIssueSchema.nullish(),
|
|
75
|
+
// The comment that started the session, when a mention did.
|
|
76
|
+
commentId: z.string().nullish(),
|
|
77
|
+
comment: z
|
|
78
|
+
.looseObject({ id: nonblankStringSchema, body: z.string().optional() })
|
|
79
|
+
.nullish(),
|
|
80
|
+
creatorId: z.string().nullish(),
|
|
81
|
+
creator: z
|
|
82
|
+
.looseObject({ id: nonblankStringSchema, name: z.string().optional() })
|
|
83
|
+
.nullish(),
|
|
84
|
+
});
|
|
85
|
+
/**
|
|
86
|
+
* The activity content types Linear documents; one it adds later reads as
|
|
87
|
+
* `unknown`. A user's reply is a `prompt`.
|
|
88
|
+
*/
|
|
89
|
+
export const LINEAR_ACTIVITY_TYPES = [
|
|
90
|
+
"prompt",
|
|
91
|
+
"thought",
|
|
92
|
+
"action",
|
|
93
|
+
"response",
|
|
94
|
+
"error",
|
|
95
|
+
"elicitation",
|
|
96
|
+
];
|
|
97
|
+
/**
|
|
98
|
+
* The signals Linear documents on a user's activity; one it adds later reads
|
|
99
|
+
* as `unknown`. `stop` asks the agent to stop.
|
|
100
|
+
*/
|
|
101
|
+
export const LINEAR_PROMPT_SIGNALS = ["stop"];
|
|
102
|
+
/** What a user said in a session: a reply, or a signal such as `stop`. */
|
|
103
|
+
const agentActivitySchema = z.looseObject({
|
|
104
|
+
content: z.looseObject({
|
|
105
|
+
type: z.enum([...LINEAR_ACTIVITY_TYPES, "unknown"]).catch("unknown"),
|
|
106
|
+
body: z.string().optional(),
|
|
107
|
+
}),
|
|
108
|
+
signal: z
|
|
109
|
+
.enum([...LINEAR_PROMPT_SIGNALS, "unknown"])
|
|
110
|
+
.catch("unknown")
|
|
111
|
+
.nullish(),
|
|
112
|
+
signalMetadata: z.unknown().optional(),
|
|
113
|
+
sourceCommentId: z.string().nullish(),
|
|
114
|
+
userId: z.string().nullish(),
|
|
115
|
+
user: z
|
|
116
|
+
.looseObject({ id: nonblankStringSchema, name: z.string().optional() })
|
|
117
|
+
.nullish(),
|
|
118
|
+
});
|
|
119
|
+
// Common delivery context.
|
|
120
|
+
const envelopeSchema = z.looseObject({
|
|
121
|
+
organizationId: nonblankStringSchema,
|
|
122
|
+
webhookId: z.string().optional(),
|
|
123
|
+
webhookTimestamp: z.number(),
|
|
124
|
+
createdAt: z.string().optional(),
|
|
125
|
+
url: z.string().optional(),
|
|
126
|
+
actor: actorSchema.optional(),
|
|
127
|
+
});
|
|
128
|
+
function dispatchEventSchema(key, payloadSchema) {
|
|
129
|
+
return z.object({
|
|
130
|
+
key: z.literal(key),
|
|
131
|
+
deliveryId: nonblankStringSchema,
|
|
132
|
+
payload: payloadSchema,
|
|
133
|
+
});
|
|
134
|
+
}
|
|
135
|
+
/** Each supported event key requires its exact type, action and subject. */
|
|
136
|
+
export const linearDispatchSchema = z.discriminatedUnion("key", [
|
|
137
|
+
dispatchEventSchema("Issue.create", envelopeSchema.extend({
|
|
138
|
+
type: z.literal("Issue"),
|
|
139
|
+
action: z.literal("create"),
|
|
140
|
+
data: issueSchema,
|
|
141
|
+
})),
|
|
142
|
+
dispatchEventSchema("Issue.update", envelopeSchema.extend({
|
|
143
|
+
type: z.literal("Issue"),
|
|
144
|
+
action: z.literal("update"),
|
|
145
|
+
data: issueSchema,
|
|
146
|
+
// The changed fields' previous values.
|
|
147
|
+
updatedFrom: z.record(z.string(), z.unknown()).optional(),
|
|
148
|
+
})),
|
|
149
|
+
dispatchEventSchema("Comment.create", envelopeSchema.extend({
|
|
150
|
+
type: z.literal("Comment"),
|
|
151
|
+
action: z.literal("create"),
|
|
152
|
+
data: commentSchema,
|
|
153
|
+
})),
|
|
154
|
+
dispatchEventSchema("AgentSessionEvent.created", envelopeSchema.extend({
|
|
155
|
+
type: z.literal("AgentSessionEvent"),
|
|
156
|
+
action: z.literal("created"),
|
|
157
|
+
appUserId: z.string().optional(),
|
|
158
|
+
agentSession: agentSessionSchema,
|
|
159
|
+
// Linear's ready-made prompt: the issue, the thread and who asked.
|
|
160
|
+
promptContext: z.string().nullish(),
|
|
161
|
+
guidance: z.unknown().optional(),
|
|
162
|
+
})),
|
|
163
|
+
dispatchEventSchema("AgentSessionEvent.prompted", envelopeSchema.extend({
|
|
164
|
+
type: z.literal("AgentSessionEvent"),
|
|
165
|
+
action: z.literal("prompted"),
|
|
166
|
+
appUserId: z.string().optional(),
|
|
167
|
+
agentSession: agentSessionSchema,
|
|
168
|
+
agentActivity: agentActivitySchema,
|
|
169
|
+
})),
|
|
170
|
+
]);
|
|
171
|
+
export const SUPPORTED_EVENT_KEYS = linearDispatchSchema.options.map((option) => option.shape.key.value);
|
|
172
|
+
/** The issue an event is about, wherever its payload keeps it. */
|
|
173
|
+
function eventIssue(event) {
|
|
174
|
+
if (event.payload.type === "AgentSessionEvent") {
|
|
175
|
+
const session = event.payload.agentSession;
|
|
176
|
+
const id = session.issue?.id ?? session.issueId;
|
|
177
|
+
// Linear opens sessions on issues; one without could not be answered.
|
|
178
|
+
if (!id)
|
|
179
|
+
throw new TypeError("Linear agent session has no issue");
|
|
180
|
+
return { id, ...(session.issue?.team && { team: session.issue.team }) };
|
|
181
|
+
}
|
|
182
|
+
if (event.payload.type === "Comment") {
|
|
183
|
+
const { data } = event.payload;
|
|
184
|
+
return {
|
|
185
|
+
id: data.issueId,
|
|
186
|
+
...(data.issue?.team && { team: data.issue.team }),
|
|
187
|
+
};
|
|
188
|
+
}
|
|
189
|
+
const { data } = event.payload;
|
|
190
|
+
return { id: data.id, ...(data.team && { team: data.team }) };
|
|
191
|
+
}
|
|
192
|
+
/**
|
|
193
|
+
* Who acted: the webhook's actor, or for a session the user who started it or
|
|
194
|
+
* replied in it.
|
|
195
|
+
*/
|
|
196
|
+
function eventActor(event) {
|
|
197
|
+
const payload = event.payload;
|
|
198
|
+
const person = payload.type !== "AgentSessionEvent"
|
|
199
|
+
? payload.actor
|
|
200
|
+
: payload.action === "prompted"
|
|
201
|
+
? (payload.agentActivity.user ??
|
|
202
|
+
(payload.agentActivity.userId
|
|
203
|
+
? { id: payload.agentActivity.userId }
|
|
204
|
+
: undefined))
|
|
205
|
+
: (payload.agentSession.creator ??
|
|
206
|
+
(payload.agentSession.creatorId
|
|
207
|
+
? { id: payload.agentSession.creatorId }
|
|
208
|
+
: undefined));
|
|
209
|
+
if (!person)
|
|
210
|
+
return undefined;
|
|
211
|
+
const { type, name } = person;
|
|
212
|
+
return {
|
|
213
|
+
provider: "linear",
|
|
214
|
+
id: person.id,
|
|
215
|
+
...(typeof type === "string" && { type }),
|
|
216
|
+
...(typeof name === "string" && { name }),
|
|
217
|
+
};
|
|
218
|
+
}
|
|
219
|
+
/** Routing metadata every event exposes next to its payload. */
|
|
220
|
+
function routing(event) {
|
|
221
|
+
const issue = eventIssue(event);
|
|
222
|
+
const actor = eventActor(event);
|
|
223
|
+
return {
|
|
224
|
+
organizationId: event.payload.organizationId,
|
|
225
|
+
issueId: issue.id,
|
|
226
|
+
...(issue.team && {
|
|
227
|
+
team: { id: issue.team.id, key: issue.team.key },
|
|
228
|
+
}),
|
|
229
|
+
...(actor && { actor }),
|
|
230
|
+
};
|
|
231
|
+
}
|
|
232
|
+
/**
|
|
233
|
+
* A Linear event's fields its endpoints are sent beside its key, delivery ID
|
|
234
|
+
* and payload: the one list of them, so `LinearEndpointRequest` is typed by it.
|
|
235
|
+
*/
|
|
236
|
+
export const LINEAR_ENDPOINT_EVENT_FIELDS = ["actor"];
|
|
237
|
+
// Expose common routing metadata while preserving the original payload.
|
|
238
|
+
export const linearEventSchema = linearDispatchSchema.transform((event) => {
|
|
239
|
+
if (event.key === "AgentSessionEvent.created" ||
|
|
240
|
+
event.key === "AgentSessionEvent.prompted")
|
|
241
|
+
return {
|
|
242
|
+
...event,
|
|
243
|
+
type: event.payload.type,
|
|
244
|
+
action: event.payload.action,
|
|
245
|
+
...routing(event),
|
|
246
|
+
sessionId: event.payload.agentSession.id,
|
|
247
|
+
};
|
|
248
|
+
return {
|
|
249
|
+
...event,
|
|
250
|
+
type: event.payload.type,
|
|
251
|
+
action: event.payload.action,
|
|
252
|
+
...routing(event),
|
|
253
|
+
};
|
|
254
|
+
});
|
|
255
|
+
//# 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,169 @@
|
|
|
1
|
+
import type { z } from "zod";
|
|
2
|
+
import type { MultitaskStrategy } from "../../ingress/runs.js";
|
|
3
|
+
import type { LINEAR_ENDPOINT_EVENT_FIELDS, linearEventSchema } from "./schema.js";
|
|
4
|
+
import type { ChannelRunResult } from "../run-input.js";
|
|
5
|
+
import type { EventFinished } from "../http/provider.js";
|
|
6
|
+
import type { EndpointRequest, EventEndpoint } from "../http/endpoint.js";
|
|
7
|
+
import type { ChannelReply } from "../types.js";
|
|
8
|
+
import type { LinearActor } from "../actor.js";
|
|
9
|
+
import type { ResolveUser } from "../resolve-user.js";
|
|
10
|
+
/** Handwritten schema subsets; unmodeled provider fields remain unknown. */
|
|
11
|
+
type EventUnion = z.output<typeof linearEventSchema>;
|
|
12
|
+
export type LinearEventKey = EventUnion["key"];
|
|
13
|
+
export type LinearEvent<K extends LinearEventKey = LinearEventKey> = Extract<EventUnion, {
|
|
14
|
+
key: K;
|
|
15
|
+
}>;
|
|
16
|
+
export type LinearPayloadFor<K extends LinearEventKey> = LinearEvent<K>["payload"];
|
|
17
|
+
/**
|
|
18
|
+
* The conversation's thread an event belongs to. A handler runs before any
|
|
19
|
+
* run exists, so this is not a run's runtime.
|
|
20
|
+
*/
|
|
21
|
+
export interface LinearChannelThread {
|
|
22
|
+
/**
|
|
23
|
+
* The conversation's thread, the issue's or an agent session's, which the
|
|
24
|
+
* run the handler starts runs on. Useful for run context that names the
|
|
25
|
+
* thread, such as a token a backend signs for it.
|
|
26
|
+
*/
|
|
27
|
+
id: string;
|
|
28
|
+
channel: {
|
|
29
|
+
name: string;
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* What an event handler returns: a run's input, as `agent.invoke` takes it —
|
|
34
|
+
* a string, a message such as `new HumanMessage(...)`, state such as
|
|
35
|
+
* `{ messages: [...] }`, or `[input, { context, metadata }]`. `null` or `undefined`
|
|
36
|
+
* starts nothing.
|
|
37
|
+
*/
|
|
38
|
+
export type LinearEventResult = ChannelRunResult | null | undefined | void;
|
|
39
|
+
export type LinearEventCallback<K extends LinearEventKey> = (event: LinearEvent<K>, thread: LinearChannelThread) => LinearEventResult | Promise<LinearEventResult>;
|
|
40
|
+
/** The Linear app `mda deploy` sets up: how it looks, and what it may do. */
|
|
41
|
+
export interface LinearAppOptions {
|
|
42
|
+
/**
|
|
43
|
+
* The app's name, shown where people mention it and in its comments: 2–80
|
|
44
|
+
* characters, without "Linear" or a URL. Defaults to the agent's name.
|
|
45
|
+
*
|
|
46
|
+
* Applies only when deploy creates the app. Linear has no API to change an
|
|
47
|
+
* app, so changing it later does nothing: rename an existing app on its
|
|
48
|
+
* settings page in Linear. Deploy reminds you when it keeps an existing app.
|
|
49
|
+
*/
|
|
50
|
+
name?: string;
|
|
51
|
+
/**
|
|
52
|
+
* What the app does, shown when a workspace admin installs it: up to 1,000
|
|
53
|
+
* characters. Like `name`, it applies only when deploy creates the app;
|
|
54
|
+
* change an existing app's description on its settings page in Linear.
|
|
55
|
+
*/
|
|
56
|
+
description?: string;
|
|
57
|
+
/**
|
|
58
|
+
* The app's icon: a PNG or JPEG image, as a path relative to `channels/`
|
|
59
|
+
* like the Slack channel's `icon`, such as `assets/icon.png`. At least
|
|
60
|
+
* 256×256 pixels and at most 1 MB. The deployment serves it at
|
|
61
|
+
* `/channels/{name}/icon`, and deploy points the new app's icon there.
|
|
62
|
+
* Like `name`, it applies only when deploy creates the app.
|
|
63
|
+
*/
|
|
64
|
+
icon?: string;
|
|
65
|
+
/**
|
|
66
|
+
* Keys of the teams (as in `ENG-123`) the channel is limited to: events
|
|
67
|
+
* about other teams' issues start nothing. Defaults to every team the app
|
|
68
|
+
* can see. The app's token still reaches every team it was granted, so
|
|
69
|
+
* limit its team access in Linear too.
|
|
70
|
+
*/
|
|
71
|
+
teams?: string[];
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Options for `channels.linear(...)`: the app's scope and event handlers that
|
|
75
|
+
* start runs. Each issue is one conversation, and each agent session on it
|
|
76
|
+
* another.
|
|
77
|
+
*/
|
|
78
|
+
export interface LinearChannelOptions {
|
|
79
|
+
/** The Linear app `mda deploy` sets up: its name, description, icon and teams. */
|
|
80
|
+
app?: LinearAppOptions;
|
|
81
|
+
/**
|
|
82
|
+
* Map the Linear actor to one of your users, with a function or an endpoint MDA
|
|
83
|
+
* asks; overrides the identity's.
|
|
84
|
+
*/
|
|
85
|
+
resolveUser?: ResolveUser<LinearActor> | EventEndpoint;
|
|
86
|
+
/**
|
|
87
|
+
* What an event that starts a run does while its conversation already
|
|
88
|
+
* runs: `enqueue` (the default) waits for the run and starts after it,
|
|
89
|
+
* `interrupt` cancels the run, keeping its progress, and starts at once,
|
|
90
|
+
* `rollback` cancels it and discards its progress, and `reject` starts
|
|
91
|
+
* nothing.
|
|
92
|
+
*
|
|
93
|
+
* @example
|
|
94
|
+
* ```ts
|
|
95
|
+
* // A newer comment replaces the work on an older one.
|
|
96
|
+
* channels.linear({ multitaskStrategy: "interrupt", onEvent })
|
|
97
|
+
* ```
|
|
98
|
+
*/
|
|
99
|
+
multitaskStrategy?: MultitaskStrategy;
|
|
100
|
+
/**
|
|
101
|
+
* Whether the channel posts the run's final answer, as a comment or the
|
|
102
|
+
* session's response: `auto` (the default) or `none`, to leave replying to
|
|
103
|
+
* the agent. Session acknowledgements, Stop and error notices still post.
|
|
104
|
+
*/
|
|
105
|
+
reply?: ChannelReply;
|
|
106
|
+
/**
|
|
107
|
+
* Event handlers that start runs. Return a prompt (string, message, or
|
|
108
|
+
* state), or nothing to skip. The run's final reply is posted as a comment
|
|
109
|
+
* on the issue, under the comment that started it.
|
|
110
|
+
*
|
|
111
|
+
* @example
|
|
112
|
+
* ```ts
|
|
113
|
+
* { "Issue.create": (e) => `Triage ${e.payload.data.identifier}` }
|
|
114
|
+
* ```
|
|
115
|
+
*
|
|
116
|
+
* In agent sessions the reply goes to the session instead.
|
|
117
|
+
*
|
|
118
|
+
* A handler may also be an endpoint, a URL or a `Request` carrying headers,
|
|
119
|
+
* to have a service of yours decide: MDA POSTs it the event and its thread,
|
|
120
|
+
* and starts the run it answers with. See the README's "Asking your service
|
|
121
|
+
* what to start".
|
|
122
|
+
*/
|
|
123
|
+
onEvent?: {
|
|
124
|
+
[K in LinearEventKey]?: LinearEventCallback<K> | EventEndpoint;
|
|
125
|
+
};
|
|
126
|
+
/**
|
|
127
|
+
* Answer Linear agent sessions, which open when someone mentions the app or
|
|
128
|
+
* delegates an issue to it. Defaults to `true`. Without a handler, a new
|
|
129
|
+
* session runs with Linear's prompt for it (`promptContext`), and a reply
|
|
130
|
+
* in the session continues the conversation. The run's progress and reply
|
|
131
|
+
* show in the session, and Stop cancels the run. A run that stops on
|
|
132
|
+
* interrupts answers with a link to its thread in LangSmith Studio, where
|
|
133
|
+
* they are resumed.
|
|
134
|
+
*
|
|
135
|
+
* @experimental Sessions use Linear's Agents API, a Developer Preview, so
|
|
136
|
+
* they may change as Linear changes it.
|
|
137
|
+
*/
|
|
138
|
+
sessions?: boolean;
|
|
139
|
+
/**
|
|
140
|
+
* Ignore changes made by other apps and integrations (a delivery whose
|
|
141
|
+
* actor isn't a person, or the creation of an issue or comment with a
|
|
142
|
+
* `botActor`), so automations don't trigger each other. Defaults to `true`.
|
|
143
|
+
* The app's own changes are always ignored.
|
|
144
|
+
*/
|
|
145
|
+
ignoreBots?: boolean;
|
|
146
|
+
/**
|
|
147
|
+
* A delivery of a handled event is done, once, with how, to switch on by
|
|
148
|
+
* `type`: the run it started and how that run ended, as LangGraph names it
|
|
149
|
+
* (`run`), why it started none (`skipped`, such as a Stop or a handler
|
|
150
|
+
* that returned nothing), or that MDA lost it (`failed`); and the
|
|
151
|
+
* decisions the thread waits on. Called after the channel's own
|
|
152
|
+
* activities, such as the session's elicitation or "Stopped.", in the
|
|
153
|
+
* background; failures are logged. See `channels.http`'s `onFinish` for
|
|
154
|
+
* its limits.
|
|
155
|
+
*
|
|
156
|
+
* @example
|
|
157
|
+
* ```ts
|
|
158
|
+
* onFinish: async (event, thread, finished) => {
|
|
159
|
+
* if (finished.type === "run" && finished.run.status === "success")
|
|
160
|
+
* await reportRun(thread.id, finished.run.id);
|
|
161
|
+
* }
|
|
162
|
+
* ```
|
|
163
|
+
*/
|
|
164
|
+
onFinish?: EventFinished<LinearEvent, LinearChannelThread>;
|
|
165
|
+
}
|
|
166
|
+
/** What a Linear channel POSTs an endpoint, for one event key or any. */
|
|
167
|
+
export type LinearEndpointRequest<K extends LinearEventKey = LinearEventKey> = EndpointRequest<LinearEvent<K>, (typeof LINEAR_ENDPOINT_EVENT_FIELDS)[number]>;
|
|
168
|
+
export {};
|
|
169
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/channels/linear/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/channels/linear/types.ts"],"names":[],"mappings":""}
|
|
@@ -4,6 +4,8 @@ import type { MessageContent } from "@langchain/core/messages";
|
|
|
4
4
|
import type { JsonValue } from "./types.js";
|
|
5
5
|
/** Accept only finite, acyclic plain JSON, including frozen values. */
|
|
6
6
|
export declare function isJsonValue(value: unknown, ancestors?: Set<object>): value is JsonValue;
|
|
7
|
+
/** A string with something other than whitespace in it. */
|
|
8
|
+
export declare const nonblankStringSchema: z.ZodString;
|
|
7
9
|
export declare const jsonValueSchema: z.ZodCustom<JsonValue, JsonValue>;
|
|
8
10
|
export declare const channelContentMessageSchema: z.ZodObject<{
|
|
9
11
|
type: z.ZodLiteral<"content">;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"message-schema.d.ts","sourceRoot":"","sources":["../../src/channels/message-schema.ts"],"names":[],"mappings":"AAAA,wEAAwE;AACxE,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAE5C,uEAAuE;AACvE,wBAAgB,WAAW,CACzB,KAAK,EAAE,OAAO,EACd,SAAS,cAAoB,GAC5B,KAAK,IAAI,SAAS,CAiBpB;AAED,eAAO,MAAM,eAAe,mCAG3B,CAAC;AAeF,eAAO,MAAM,2BAA2B;;;kBAE7B,CAAC;AACZ,eAAO,MAAM,0BAA0B;;;kBAE5B,CAAC;AACZ,eAAO,MAAM,oBAAoB;;;;;;4BAG/B,CAAC"}
|
|
1
|
+
{"version":3,"file":"message-schema.d.ts","sourceRoot":"","sources":["../../src/channels/message-schema.ts"],"names":[],"mappings":"AAAA,wEAAwE;AACxE,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAE5C,uEAAuE;AACvE,wBAAgB,WAAW,CACzB,KAAK,EAAE,OAAO,EACd,SAAS,cAAoB,GAC5B,KAAK,IAAI,SAAS,CAiBpB;AAED,2DAA2D;AAC3D,eAAO,MAAM,oBAAoB,aAEY,CAAC;AAE9C,eAAO,MAAM,eAAe,mCAG3B,CAAC;AAeF,eAAO,MAAM,2BAA2B;;;kBAE7B,CAAC;AACZ,eAAO,MAAM,0BAA0B;;;kBAE5B,CAAC;AACZ,eAAO,MAAM,oBAAoB;;;;;;4BAG/B,CAAC"}
|
|
@@ -17,6 +17,10 @@ export function isJsonValue(value, ancestors = new Set()) {
|
|
|
17
17
|
ancestors.delete(value);
|
|
18
18
|
return valid;
|
|
19
19
|
}
|
|
20
|
+
/** A string with something other than whitespace in it. */
|
|
21
|
+
export const nonblankStringSchema = z
|
|
22
|
+
.string()
|
|
23
|
+
.refine((value) => value.trim().length > 0);
|
|
20
24
|
export const jsonValueSchema = z.custom(isJsonValue, "must be finite acyclic JSON");
|
|
21
25
|
const contentSchema = z.custom((value) => typeof value === "string" ||
|
|
22
26
|
(Array.isArray(value) &&
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"message-schema.js","sourceRoot":"","sources":["../../src/channels/message-schema.ts"],"names":[],"mappings":"AAAA,wEAAwE;AACxE,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,uEAAuE;AACvE,MAAM,UAAU,WAAW,CACzB,KAAc,EACd,SAAS,GAAG,IAAI,GAAG,EAAU;IAE7B,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,SAAS,IAAI,OAAO,KAAK,KAAK,QAAQ;QAC3E,OAAO,IAAI,CAAC;IACd,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC7D,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IACpE,IACE,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QACrB,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,KAAK,MAAM,CAAC,SAAS;QACjD,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,KAAK,IAAI;QAErC,OAAO,KAAK,CAAC;IACf,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IACrB,MAAM,KAAK,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CACvE,CAAC,IAAI,EAAE,EAAE,CAAC,WAAW,CAAC,IAAI,EAAE,SAAS,CAAC,CACvC,CAAC;IACF,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACxB,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAC,MAAM,CACrC,WAAW,EACX,6BAA6B,CAC9B,CAAC;AACF,MAAM,aAAa,GAAG,CAAC,CAAC,MAAM,CAC5B,CAAC,KAAK,EAAE,EAAE,CACR,OAAO,KAAK,KAAK,QAAQ;IACzB,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QACnB,KAAK,CAAC,KAAK,CACT,CAAC,KAAK,EAAE,EAAE,CACR,KAAK,KAAK,IAAI;YACd,OAAO,KAAK,KAAK,QAAQ;YACzB,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;YACrB,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ;YAC9B,WAAW,CAAC,KAAK,CAAC,CACrB,CAAC,EACN,iDAAiD,CAClD,CAAC;AACF,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC;KACzC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,aAAa,EAAE,CAAC;KAC9D,MAAM,EAAE,CAAC;AACZ,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC;KACxC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,eAAe,EAAE,CAAC;KAC9D,MAAM,EAAE,CAAC;AACZ,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC,kBAAkB,CAAC,MAAM,EAAE;IAC/D,2BAA2B;IAC3B,0BAA0B;CAC3B,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"message-schema.js","sourceRoot":"","sources":["../../src/channels/message-schema.ts"],"names":[],"mappings":"AAAA,wEAAwE;AACxE,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,uEAAuE;AACvE,MAAM,UAAU,WAAW,CACzB,KAAc,EACd,SAAS,GAAG,IAAI,GAAG,EAAU;IAE7B,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,SAAS,IAAI,OAAO,KAAK,KAAK,QAAQ;QAC3E,OAAO,IAAI,CAAC;IACd,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC7D,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IACpE,IACE,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QACrB,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,KAAK,MAAM,CAAC,SAAS;QACjD,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,KAAK,IAAI;QAErC,OAAO,KAAK,CAAC;IACf,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IACrB,MAAM,KAAK,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CACvE,CAAC,IAAI,EAAE,EAAE,CAAC,WAAW,CAAC,IAAI,EAAE,SAAS,CAAC,CACvC,CAAC;IACF,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACxB,OAAO,KAAK,CAAC;AACf,CAAC;AAED,2DAA2D;AAC3D,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC;KAClC,MAAM,EAAE;KACR,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AAE9C,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAC,MAAM,CACrC,WAAW,EACX,6BAA6B,CAC9B,CAAC;AACF,MAAM,aAAa,GAAG,CAAC,CAAC,MAAM,CAC5B,CAAC,KAAK,EAAE,EAAE,CACR,OAAO,KAAK,KAAK,QAAQ;IACzB,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QACnB,KAAK,CAAC,KAAK,CACT,CAAC,KAAK,EAAE,EAAE,CACR,KAAK,KAAK,IAAI;YACd,OAAO,KAAK,KAAK,QAAQ;YACzB,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;YACrB,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ;YAC9B,WAAW,CAAC,KAAK,CAAC,CACrB,CAAC,EACN,iDAAiD,CAClD,CAAC;AACF,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC;KACzC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,aAAa,EAAE,CAAC;KAC9D,MAAM,EAAE,CAAC;AACZ,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC;KACxC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,eAAe,EAAE,CAAC;KAC9D,MAAM,EAAE,CAAC;AACZ,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC,kBAAkB,CAAC,MAAM,EAAE;IAC/D,2BAA2B;IAC3B,0BAA0B;CAC3B,CAAC,CAAC"}
|
|
@@ -7,8 +7,22 @@
|
|
|
7
7
|
*/
|
|
8
8
|
import type { JsonObject } from "./manifest.js";
|
|
9
9
|
import type { ChannelMessagingAdapter } from "./runtime.js";
|
|
10
|
+
import type { HttpDelivery } from "./http/types.js";
|
|
11
|
+
import type { JsonValue } from "./types.js";
|
|
10
12
|
import type { Channel } from "../runtime/channel.js";
|
|
11
13
|
import type { Connector } from "../runtime/connector.js";
|
|
14
|
+
/**
|
|
15
|
+
* Tells a conversation that its thread waits on a decision. Internal: the
|
|
16
|
+
* built-in GitHub and Linear channels set it; `channels.http()` has none.
|
|
17
|
+
*/
|
|
18
|
+
export type PausedNotice = (target: JsonValue, delivery: HttpDelivery, outcome: "interrupted" | "waiting") => Promise<void>;
|
|
19
|
+
/** Give a built-in channel its paused notice. */
|
|
20
|
+
export declare function withPausedNotice<T extends object>(channel: T, notice: PausedNotice): T;
|
|
21
|
+
/**
|
|
22
|
+
* Whether the channel posts a run's final answer: `false` only for one
|
|
23
|
+
* declared with `reply: "none"`, which leaves replying to the agent.
|
|
24
|
+
*/
|
|
25
|
+
export declare function channelAutoRepliesForName(name: string): boolean;
|
|
12
26
|
export declare function channelProviderForName(name: string): string | undefined;
|
|
13
27
|
export declare function channelProviderConfigForName(name: string): JsonObject | undefined;
|
|
14
28
|
/** Register messaging factories from collected channels. */
|
|
@@ -17,4 +31,6 @@ export declare function registerChannelMessaging(channels: readonly Channel[]):
|
|
|
17
31
|
export declare function registerConnectorMessaging(connectors: readonly Connector[]): void;
|
|
18
32
|
/** Build a transport for a channel/connector file-stem name. */
|
|
19
33
|
export declare function messagingTransportForName(name: string, env?: NodeJS.ProcessEnv): ChannelMessagingAdapter | undefined;
|
|
34
|
+
/** The paused notice of a channel by file-stem name, if it has one. */
|
|
35
|
+
export declare function pausedNoticeForName(name: string): PausedNotice | undefined;
|
|
20
36
|
//# sourceMappingURL=messaging-registry.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"messaging-registry.d.ts","sourceRoot":"","sources":["../../src/channels/messaging-registry.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,cAAc,CAAC;AAC5D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"messaging-registry.d.ts","sourceRoot":"","sources":["../../src/channels/messaging-registry.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,cAAc,CAAC;AAC5D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAMzD;;;GAGG;AACH,MAAM,MAAM,YAAY,GAAG,CACzB,MAAM,EAAE,SAAS,EACjB,QAAQ,EAAE,YAAY,EACtB,OAAO,EAAE,aAAa,GAAG,SAAS,KAC/B,OAAO,CAAC,IAAI,CAAC,CAAC;AAKnB,iDAAiD;AACjD,wBAAgB,gBAAgB,CAAC,CAAC,SAAS,MAAM,EAC/C,OAAO,EAAE,CAAC,EACV,MAAM,EAAE,YAAY,GACnB,CAAC,CAGH;AAiBD;;;GAGG;AACH,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAE/D;AAGD,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAEvE;AAED,wBAAgB,4BAA4B,CAC1C,IAAI,EAAE,MAAM,GACX,UAAU,GAAG,SAAS,CAExB;AAqCD,4DAA4D;AAC5D,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,SAAS,OAAO,EAAE,GAAG,IAAI,CAE3E;AAED,4EAA4E;AAC5E,wBAAgB,0BAA0B,CACxC,UAAU,EAAE,SAAS,SAAS,EAAE,GAC/B,IAAI,CAEN;AAED,gEAAgE;AAChE,wBAAgB,yBAAyB,CACvC,IAAI,EAAE,MAAM,EACZ,GAAG,GAAE,MAAM,CAAC,UAAwB,GACnC,uBAAuB,GAAG,SAAS,CAErC;AAED,uEAAuE;AACvE,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS,CAE1E"}
|
|
@@ -6,7 +6,22 @@
|
|
|
6
6
|
* delivery look up transports by file-stem name.
|
|
7
7
|
*/
|
|
8
8
|
import { registerDeclaredSourceProviders } from "./source-providers.js";
|
|
9
|
+
/** Where a channel keeps its paused notice, out of its public shape. */
|
|
10
|
+
const PAUSED_NOTICE = Symbol("mda.pausedNotice");
|
|
11
|
+
/** Give a built-in channel its paused notice. */
|
|
12
|
+
export function withPausedNotice(channel, notice) {
|
|
13
|
+
Object.defineProperty(channel, PAUSED_NOTICE, { value: notice });
|
|
14
|
+
return channel;
|
|
15
|
+
}
|
|
9
16
|
const providerByName = new Map();
|
|
17
|
+
const repliesNoneByName = new Set();
|
|
18
|
+
/**
|
|
19
|
+
* Whether the channel posts a run's final answer: `false` only for one
|
|
20
|
+
* declared with `reply: "none"`, which leaves replying to the agent.
|
|
21
|
+
*/
|
|
22
|
+
export function channelAutoRepliesForName(name) {
|
|
23
|
+
return !repliesNoneByName.has(name);
|
|
24
|
+
}
|
|
10
25
|
const providerConfigByName = new Map();
|
|
11
26
|
export function channelProviderForName(name) {
|
|
12
27
|
return providerByName.get(name);
|
|
@@ -15,6 +30,7 @@ export function channelProviderConfigForName(name) {
|
|
|
15
30
|
return providerConfigByName.get(name);
|
|
16
31
|
}
|
|
17
32
|
const byName = new Map();
|
|
33
|
+
const pausedNoticeByName = new Map();
|
|
18
34
|
function registerMessagingSources(sources) {
|
|
19
35
|
registerDeclaredSourceProviders(sources);
|
|
20
36
|
for (const source of sources) {
|
|
@@ -27,6 +43,11 @@ function registerMessagingSources(sources) {
|
|
|
27
43
|
else {
|
|
28
44
|
byName.delete(source.name);
|
|
29
45
|
}
|
|
46
|
+
const notice = source[PAUSED_NOTICE];
|
|
47
|
+
if (notice)
|
|
48
|
+
pausedNoticeByName.set(source.name, notice);
|
|
49
|
+
else
|
|
50
|
+
pausedNoticeByName.delete(source.name);
|
|
30
51
|
if (source.kind)
|
|
31
52
|
providerByName.set(source.name, source.kind);
|
|
32
53
|
const requirements = typeof source.requirements === "function"
|
|
@@ -35,6 +56,10 @@ function registerMessagingSources(sources) {
|
|
|
35
56
|
if (requirements?.provider) {
|
|
36
57
|
providerByName.set(source.name, requirements.provider);
|
|
37
58
|
}
|
|
59
|
+
if (source.reply === "none")
|
|
60
|
+
repliesNoneByName.add(source.name);
|
|
61
|
+
else
|
|
62
|
+
repliesNoneByName.delete(source.name);
|
|
38
63
|
if (requirements?.providerConfig) {
|
|
39
64
|
providerConfigByName.set(source.name, requirements.providerConfig);
|
|
40
65
|
}
|
|
@@ -55,4 +80,8 @@ export function registerConnectorMessaging(connectors) {
|
|
|
55
80
|
export function messagingTransportForName(name, env = process.env) {
|
|
56
81
|
return byName.get(name)?.(env);
|
|
57
82
|
}
|
|
83
|
+
/** The paused notice of a channel by file-stem name, if it has one. */
|
|
84
|
+
export function pausedNoticeForName(name) {
|
|
85
|
+
return pausedNoticeByName.get(name);
|
|
86
|
+
}
|
|
58
87
|
//# sourceMappingURL=messaging-registry.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"messaging-registry.js","sourceRoot":"","sources":["../../src/channels/messaging-registry.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,+BAA+B,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"messaging-registry.js","sourceRoot":"","sources":["../../src/channels/messaging-registry.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Why a channel's reserved agent connection cannot be read as a user
|
|
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
|
+
*/
|
|
6
|
+
export declare function reservedUserConnectionError(slug: string): string | undefined;
|
|
7
|
+
/**
|
|
8
|
+
* The connection that actually holds a channel's reserved agent connection;
|
|
9
|
+
* other slugs pass through unchanged.
|
|
10
|
+
*/
|
|
11
|
+
export declare function reservedAgentConnectionSlug(slug: string, deploymentId: string | undefined): string;
|
|
12
|
+
//# sourceMappingURL=reserved-connections.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reserved-connections.d.ts","sourceRoot":"","sources":["../../src/channels/reserved-connections.ts"],"names":[],"mappings":"AAiDA;;;;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"}
|