managed-deepagents 0.10.0-dev.5 → 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.
Files changed (95) hide show
  1. package/README.md +69 -33
  2. package/dist/channels/github/connections.d.ts.map +1 -1
  3. package/dist/channels/github/connections.js +2 -2
  4. package/dist/channels/github/connections.js.map +1 -1
  5. package/dist/channels/github/index.d.ts +1 -1
  6. package/dist/channels/github/index.d.ts.map +1 -1
  7. package/dist/channels/github/index.js +42 -88
  8. package/dist/channels/github/index.js.map +1 -1
  9. package/dist/channels/github/schema.d.ts.map +1 -1
  10. package/dist/channels/github/schema.js +1 -3
  11. package/dist/channels/github/schema.js.map +1 -1
  12. package/dist/channels/github/types.d.ts +18 -8
  13. package/dist/channels/github/types.d.ts.map +1 -1
  14. package/dist/channels/http/http.d.ts.map +1 -1
  15. package/dist/channels/http/http.js +91 -94
  16. package/dist/channels/http/http.js.map +1 -1
  17. package/dist/channels/http/index.d.ts +1 -1
  18. package/dist/channels/http/index.d.ts.map +1 -1
  19. package/dist/channels/http/index.js +9 -0
  20. package/dist/channels/http/index.js.map +1 -1
  21. package/dist/channels/http/ingress.d.ts +26 -11
  22. package/dist/channels/http/ingress.d.ts.map +1 -1
  23. package/dist/channels/http/ingress.js +19 -29
  24. package/dist/channels/http/ingress.js.map +1 -1
  25. package/dist/channels/http/provider.d.ts +68 -0
  26. package/dist/channels/http/provider.d.ts.map +1 -0
  27. package/dist/channels/http/provider.js +149 -0
  28. package/dist/channels/http/provider.js.map +1 -0
  29. package/dist/channels/http/studio.d.ts +7 -5
  30. package/dist/channels/http/studio.d.ts.map +1 -1
  31. package/dist/channels/http/studio.js +12 -12
  32. package/dist/channels/http/studio.js.map +1 -1
  33. package/dist/channels/http/types.d.ts +25 -12
  34. package/dist/channels/http/types.d.ts.map +1 -1
  35. package/dist/channels/linear/connections.d.ts.map +1 -1
  36. package/dist/channels/linear/connections.js +2 -2
  37. package/dist/channels/linear/connections.js.map +1 -1
  38. package/dist/channels/linear/graphql.d.ts +5 -17
  39. package/dist/channels/linear/graphql.d.ts.map +1 -1
  40. package/dist/channels/linear/graphql.js +55 -57
  41. package/dist/channels/linear/graphql.js.map +1 -1
  42. package/dist/channels/linear/index.d.ts +1 -1
  43. package/dist/channels/linear/index.d.ts.map +1 -1
  44. package/dist/channels/linear/index.js +133 -139
  45. package/dist/channels/linear/index.js.map +1 -1
  46. package/dist/channels/linear/schema.d.ts +173 -144
  47. package/dist/channels/linear/schema.d.ts.map +1 -1
  48. package/dist/channels/linear/schema.js +45 -12
  49. package/dist/channels/linear/schema.js.map +1 -1
  50. package/dist/channels/linear/types.d.ts +21 -7
  51. package/dist/channels/linear/types.d.ts.map +1 -1
  52. package/dist/channels/message-schema.d.ts +2 -0
  53. package/dist/channels/message-schema.d.ts.map +1 -1
  54. package/dist/channels/message-schema.js +4 -0
  55. package/dist/channels/message-schema.js.map +1 -1
  56. package/dist/channels/run-input.d.ts +9 -1
  57. package/dist/channels/run-input.d.ts.map +1 -1
  58. package/dist/channels/run-input.js +23 -5
  59. package/dist/channels/run-input.js.map +1 -1
  60. package/dist/channels/trigger/client.js +7 -3
  61. package/dist/channels/trigger/client.js.map +1 -1
  62. package/dist/channels/trigger/http.d.ts.map +1 -1
  63. package/dist/channels/trigger/http.js +6 -3
  64. package/dist/channels/trigger/http.js.map +1 -1
  65. package/dist/channels/trigger/tracing-project.d.ts +16 -0
  66. package/dist/channels/trigger/tracing-project.d.ts.map +1 -0
  67. package/dist/channels/trigger/tracing-project.js +54 -0
  68. package/dist/channels/trigger/tracing-project.js.map +1 -0
  69. package/dist/channels/trigger/types.d.ts +6 -0
  70. package/dist/channels/trigger/types.d.ts.map +1 -1
  71. package/dist/channels/trigger/types.js.map +1 -1
  72. package/dist/connections.d.ts +6 -0
  73. package/dist/connections.d.ts.map +1 -1
  74. package/dist/connections.js +27 -0
  75. package/dist/connections.js.map +1 -1
  76. package/dist/connectors/mcp/index.d.ts.map +1 -1
  77. package/dist/connectors/mcp/index.js +52 -2
  78. package/dist/connectors/mcp/index.js.map +1 -1
  79. package/dist/credential-gate.d.ts.map +1 -1
  80. package/dist/credential-gate.js +13 -3
  81. package/dist/credential-gate.js.map +1 -1
  82. package/dist/index.d.ts +3 -3
  83. package/dist/index.d.ts.map +1 -1
  84. package/dist/index.js.map +1 -1
  85. package/dist/ingress/runs.d.ts +2 -2
  86. package/dist/ingress/runs.d.ts.map +1 -1
  87. package/dist/ingress/runs.js +5 -5
  88. package/dist/ingress/runs.js.map +1 -1
  89. package/dist/runtime/schedule-auth.d.ts +1 -1
  90. package/dist/runtime/schedule-auth.d.ts.map +1 -1
  91. package/dist/runtime/schedule-auth.js +12 -4
  92. package/dist/runtime/schedule-auth.js.map +1 -1
  93. package/dist/runtime-schedules.js +6 -6
  94. package/dist/runtime-schedules.js.map +1 -1
  95. package/package.json +7 -7
@@ -1,4 +1,7 @@
1
+ import { z } from "zod";
1
2
  import { connections } from "../../connections.js";
3
+ import { CachedRead } from "../http/provider.js";
4
+ import { nonblankStringSchema } from "../message-schema.js";
2
5
  import { LINEAR_TOKEN_SLUG } from "./connections.js";
3
6
  const LINEAR_GRAPHQL_URL = "https://api.linear.app/graphql";
4
7
  const LINEAR_API_TIMEOUT_MS = 10_000;
@@ -6,7 +9,11 @@ const LINEAR_API_TIMEOUT_MS = 10_000;
6
9
  const LINEAR_RESPONSE_MAX_CHARS = 1_000_000;
7
10
  /** How long the app token read from Agent Auth is reused. */
8
11
  const TOKEN_TTL_MS = 5 * 60_000;
9
- let appToken;
12
+ /**
13
+ * How long the app's user is reused. It changes only when the app is
14
+ * installed anew, which a long-lived process should notice too.
15
+ */
16
+ const APP_USER_TTL_MS = 60 * 60_000;
10
17
  /**
11
18
  * Where GraphQL requests go: Linear's API, or under `mda dev`
12
19
  * (`MDA_LOCAL_DEV=1`) the stand-in `MDA_LINEAR_API_URL` names, so local
@@ -29,23 +36,10 @@ export class LinearRateLimitError extends Error {
29
36
  }
30
37
  }
31
38
  /** The app's access token, read from Agent Auth at most every few minutes. */
32
- function linearToken() {
33
- if (appToken && appToken.expiresAt > Date.now())
34
- return appToken.value;
35
- const entry = {
36
- value: connections.resolveDeploymentSecret(LINEAR_TOKEN_SLUG),
37
- expiresAt: Date.now() + TOKEN_TTL_MS,
38
- };
39
- entry.value.catch(() => {
40
- if (appToken === entry)
41
- appToken = undefined;
42
- });
43
- appToken = entry;
44
- return entry.value;
45
- }
39
+ const appToken = new CachedRead(() => connections.resolveDeploymentSecret(LINEAR_TOKEN_SLUG), () => TOKEN_TTL_MS);
46
40
  /** Forget the cached app token; for tests. */
47
41
  export function resetLinearToken() {
48
- appToken = undefined;
42
+ appToken.reset();
49
43
  }
50
44
  function errorCodes(body) {
51
45
  return (body.errors ?? []).flatMap((error) => typeof error.extensions?.code === "string" ? [error.extensions.code] : []);
@@ -53,13 +47,13 @@ function errorCodes(body) {
53
47
  /**
54
48
  * Run a GraphQL operation as the app. `query` is a constant; everything that
55
49
  * varies goes in `variables`. A rejected token is read again once. Returns
56
- * the response's `data`.
50
+ * the response's `data`, checked against `schema`.
57
51
  */
58
- export async function linearRequest(query, variables = {}) {
52
+ export async function linearRequest(query, variables, schema) {
59
53
  const send = async () => fetch(graphqlUrl(), {
60
54
  method: "POST",
61
55
  headers: {
62
- Authorization: `Bearer ${await linearToken()}`,
56
+ Authorization: `Bearer ${await appToken.get()}`,
63
57
  "Content-Type": "application/json",
64
58
  },
65
59
  body: JSON.stringify({ query, variables }),
@@ -69,7 +63,7 @@ export async function linearRequest(query, variables = {}) {
69
63
  let body = await readBody(response);
70
64
  if (response.status === 401 ||
71
65
  errorCodes(body).includes("AUTHENTICATION_ERROR")) {
72
- appToken = undefined;
66
+ appToken.reset();
73
67
  response = await send();
74
68
  body = await readBody(response);
75
69
  }
@@ -77,7 +71,10 @@ export async function linearRequest(query, variables = {}) {
77
71
  throw new LinearRateLimitError();
78
72
  if (!response.ok || body.errors?.length || body.data === undefined)
79
73
  throw new Error(`Linear refused the request (HTTP ${response.status})`);
80
- return body.data;
74
+ const data = schema.safeParse(body.data);
75
+ if (!data.success)
76
+ throw new Error("Linear answered in an unexpected shape");
77
+ return data.data;
81
78
  }
82
79
  async function readBody(response) {
83
80
  const text = await response.text();
@@ -94,76 +91,77 @@ async function readBody(response) {
94
91
  }
95
92
  }
96
93
  const VIEWER_QUERY = "query MdaLinearViewer { viewer { id displayName } }";
97
- let appUser;
94
+ const viewerSchema = z.object({
95
+ viewer: z.object({ id: nonblankStringSchema, displayName: z.string() }),
96
+ });
98
97
  /**
99
- * The Linear user the app acts as, read once per process: its own comments
100
- * and changes are ignored, and a comment mentioning its `displayName` starts
101
- * an agent session.
98
+ * The Linear user the app acts as, read at most hourly: its own comments and
99
+ * changes are ignored, and a comment mentioning its `displayName` starts an
100
+ * agent session.
102
101
  */
102
+ const appUser = new CachedRead(async () => (await linearRequest(VIEWER_QUERY, {}, viewerSchema)).viewer, () => APP_USER_TTL_MS);
103
103
  export function linearAppUser() {
104
- appUser ??= linearRequest(VIEWER_QUERY).then(({ viewer }) => {
105
- if (typeof viewer?.id !== "string" ||
106
- !viewer.id ||
107
- typeof viewer.displayName !== "string")
108
- throw new Error("Linear did not report the app's user");
109
- return { id: viewer.id, displayName: viewer.displayName };
110
- });
111
- appUser.catch(() => {
112
- appUser = undefined;
113
- });
114
- return appUser;
104
+ return appUser.get();
115
105
  }
116
106
  /** Forget the cached app user; for tests. */
117
107
  export function resetLinearAppUser() {
118
- appUser = undefined;
108
+ appUser.reset();
119
109
  }
120
110
  const COMMENT_CREATE_MUTATION = `mutation MdaLinearCommentCreate($input: CommentCreateInput!) {
121
111
  commentCreate(input: $input) { success comment { id url } }
122
112
  }`;
113
+ const commentCreateSchema = z.object({
114
+ commentCreate: z.object({
115
+ success: z.literal(true),
116
+ comment: z.object({ id: nonblankStringSchema, url: z.string().nullish() }),
117
+ }),
118
+ });
123
119
  /**
124
120
  * Comment on an issue as the app, threaded under `parentId` when given.
125
121
  * Returns the comment's id and URL.
126
122
  */
127
123
  export async function createLinearComment(input) {
128
- const data = await linearRequest(COMMENT_CREATE_MUTATION, { input });
129
- const comment = data.commentCreate?.comment;
130
- if (!data.commentCreate?.success || !comment?.id)
131
- throw new Error("Linear did not create the comment");
124
+ const { comment } = (await linearRequest(COMMENT_CREATE_MUTATION, { input }, commentCreateSchema)).commentCreate;
132
125
  return { id: comment.id, ...(comment.url && { url: comment.url }) };
133
126
  }
134
127
  const COMMENT_SESSION_QUERY = `query MdaLinearCommentSession($id: String!) {
135
128
  comment(id: $id) { agentSession { id } }
136
129
  }`;
130
+ const commentSessionSchema = z.object({
131
+ comment: z
132
+ .object({ agentSession: z.object({ id: nonblankStringSchema }).nullable() })
133
+ .nullable(),
134
+ });
137
135
  /** Whether a comment belongs to an agent session's thread. */
138
136
  export async function commentInAgentSession(commentId) {
139
- const data = await linearRequest(COMMENT_SESSION_QUERY, { id: commentId });
140
- return Boolean(data.comment?.agentSession?.id);
137
+ const { comment } = await linearRequest(COMMENT_SESSION_QUERY, { id: commentId }, commentSessionSchema);
138
+ return Boolean(comment?.agentSession);
141
139
  }
142
140
  const ACTIVITY_CREATE_MUTATION = `mutation MdaLinearActivityCreate($input: AgentActivityCreateInput!) {
143
141
  agentActivityCreate(input: $input) { success agentActivity { id } }
144
142
  }`;
143
+ const activityCreateSchema = z.object({
144
+ agentActivityCreate: z.object({
145
+ success: z.literal(true),
146
+ agentActivity: z.object({ id: nonblankStringSchema }),
147
+ }),
148
+ });
145
149
  /**
146
- * Post an activity to an agent session as the app. `ephemeral` thoughts and
147
- * actions are replaced by the next activity; a `select` signal offers
148
- * options to choose from.
150
+ * Post an activity to an agent session as the app. An `ephemeral` thought is
151
+ * replaced by the next activity.
149
152
  */
150
153
  export async function createLinearActivity(input) {
151
- const data = await linearRequest(ACTIVITY_CREATE_MUTATION, { input });
152
- const activity = data.agentActivityCreate?.agentActivity;
153
- if (!data.agentActivityCreate?.success || !activity?.id)
154
- throw new Error("Linear did not create the activity");
155
- return { id: activity.id };
154
+ const { agentActivity } = (await linearRequest(ACTIVITY_CREATE_MUTATION, { input }, activityCreateSchema)).agentActivityCreate;
155
+ return { id: agentActivity.id };
156
156
  }
157
157
  const SESSION_UPDATE_MUTATION = `mutation MdaLinearSessionUpdate($id: String!, $input: AgentSessionUpdateInput!) {
158
158
  agentSessionUpdate(id: $id, input: $input) { success }
159
159
  }`;
160
+ const sessionUpdateSchema = z.object({
161
+ agentSessionUpdate: z.object({ success: z.literal(true) }),
162
+ });
160
163
  /** Link an agent session to a page about it, such as its Studio thread. */
161
164
  export async function addLinearSessionUrl(agentSessionId, link) {
162
- const data = await linearRequest(SESSION_UPDATE_MUTATION, {
163
- id: agentSessionId,
164
- input: { addedExternalUrls: [link] },
165
- });
166
- if (!data.agentSessionUpdate?.success)
167
- throw new Error("Linear did not update the session");
165
+ await linearRequest(SESSION_UPDATE_MUTATION, { id: agentSessionId, input: { addedExternalUrls: [link] } }, sessionUpdateSchema);
168
166
  }
169
167
  //# sourceMappingURL=graphql.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"graphql.js","sourceRoot":"","sources":["../../../src/channels/linear/graphql.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"graphql.js","sourceRoot":"","sources":["../../../src/channels/linear/graphql.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { type HttpChannel } from "../http/index.js";
2
2
  import type { LinearChannelOptions } from "./types.js";
3
- export type { LinearAppOptions, LinearChannelOptions, LinearChannelRuntime, LinearEvent, LinearEventCallback, LinearEventKey, LinearEventResult, LinearPayloadFor, } from "./types.js";
3
+ export type { LinearAppOptions, LinearChannelOptions, LinearChannelThread, LinearEvent, LinearEventCallback, LinearEventKey, LinearEventResult, LinearPayloadFor, } from "./types.js";
4
4
  export { LinearRateLimitError } from "./graphql.js";
5
5
  /** Adapt verified Linear webhooks into HTTP channel messages or skips. */
6
6
  export declare function linearChannel(options?: LinearChannelOptions): HttpChannel;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/channels/linear/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAGL,KAAK,WAAW,EAMjB,MAAM,kBAAkB,CAAC;AA2B1B,OAAO,KAAK,EAEV,oBAAoB,EAIrB,MAAM,YAAY,CAAC;AAGpB,YAAY,EACV,gBAAgB,EAChB,oBAAoB,EACpB,oBAAoB,EACpB,WAAW,EACX,mBAAmB,EACnB,cAAc,EACd,iBAAiB,EACjB,gBAAgB,GACjB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAgBpD,0EAA0E;AAC1E,wBAAgB,aAAa,CAAC,OAAO,GAAE,oBAAyB,GAAG,WAAW,CAiD7E;AA0FD,mDAAmD;AACnD,wBAAgB,wBAAwB,IAAI,IAAI,CAE/C"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/channels/linear/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,WAAW,EAOjB,MAAM,kBAAkB,CAAC;AAgC1B,OAAO,KAAK,EAEV,oBAAoB,EAIrB,MAAM,YAAY,CAAC;AAGpB,YAAY,EACV,gBAAgB,EAChB,oBAAoB,EACpB,mBAAmB,EACnB,WAAW,EACX,mBAAmB,EACnB,cAAc,EACd,iBAAiB,EACjB,gBAAgB,GACjB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAiBpD,0EAA0E;AAC1E,wBAAgB,aAAa,CAAC,OAAO,GAAE,oBAAyB,GAAG,WAAW,CA+D7E;AA+CD,mDAAmD;AACnD,wBAAgB,wBAAwB,IAAI,IAAI,CAE/C"}