managed-deepagents 0.4.0-dev.67 → 0.4.0-dev.69

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 (143) hide show
  1. package/README.md +1 -1
  2. package/dist/channels/assistant-text.d.ts +7 -0
  3. package/dist/channels/assistant-text.d.ts.map +1 -0
  4. package/dist/channels/assistant-text.js +28 -0
  5. package/dist/channels/assistant-text.js.map +1 -0
  6. package/dist/channels/binding.d.ts +34 -0
  7. package/dist/channels/binding.d.ts.map +1 -0
  8. package/dist/channels/binding.js +67 -0
  9. package/dist/channels/binding.js.map +1 -0
  10. package/dist/channels/errors.d.ts +11 -0
  11. package/dist/channels/errors.d.ts.map +1 -0
  12. package/dist/channels/errors.js +25 -0
  13. package/dist/channels/errors.js.map +1 -0
  14. package/dist/channels/index.d.ts +19 -0
  15. package/dist/channels/index.d.ts.map +1 -0
  16. package/dist/channels/index.js +14 -0
  17. package/dist/channels/index.js.map +1 -0
  18. package/dist/channels/runtime.d.ts +40 -0
  19. package/dist/channels/runtime.d.ts.map +1 -0
  20. package/dist/channels/runtime.js +76 -0
  21. package/dist/channels/runtime.js.map +1 -0
  22. package/dist/channels/schedule-delivery.d.ts +67 -0
  23. package/dist/channels/schedule-delivery.d.ts.map +1 -0
  24. package/dist/channels/schedule-delivery.js +193 -0
  25. package/dist/channels/schedule-delivery.js.map +1 -0
  26. package/dist/channels/slack/define.d.ts +87 -0
  27. package/dist/channels/slack/define.d.ts.map +1 -0
  28. package/dist/channels/slack/define.js +141 -0
  29. package/dist/channels/slack/define.js.map +1 -0
  30. package/dist/channels/slack/http.d.ts +86 -0
  31. package/dist/channels/slack/http.d.ts.map +1 -0
  32. package/dist/channels/slack/http.js +441 -0
  33. package/dist/channels/slack/http.js.map +1 -0
  34. package/dist/channels/slack/index.d.ts +18 -0
  35. package/dist/channels/slack/index.d.ts.map +1 -0
  36. package/dist/channels/slack/index.js +13 -0
  37. package/dist/channels/slack/index.js.map +1 -0
  38. package/dist/channels/slack/normalize.d.ts +62 -0
  39. package/dist/channels/slack/normalize.d.ts.map +1 -0
  40. package/dist/channels/slack/normalize.js +320 -0
  41. package/dist/channels/slack/normalize.js.map +1 -0
  42. package/dist/channels/slack/source-thread.d.ts +34 -0
  43. package/dist/channels/slack/source-thread.d.ts.map +1 -0
  44. package/dist/channels/slack/source-thread.js +92 -0
  45. package/dist/channels/slack/source-thread.js.map +1 -0
  46. package/dist/channels/slack/transport.d.ts +48 -0
  47. package/dist/channels/slack/transport.d.ts.map +1 -0
  48. package/dist/channels/slack/transport.js +178 -0
  49. package/dist/channels/slack/transport.js.map +1 -0
  50. package/dist/channels/store.d.ts +51 -0
  51. package/dist/channels/store.d.ts.map +1 -0
  52. package/dist/channels/store.js +76 -0
  53. package/dist/channels/store.js.map +1 -0
  54. package/dist/channels/types.d.ts +116 -0
  55. package/dist/channels/types.d.ts.map +1 -0
  56. package/dist/channels/types.js +24 -0
  57. package/dist/channels/types.js.map +1 -0
  58. package/dist/identity/links.d.ts +62 -0
  59. package/dist/identity/links.d.ts.map +1 -0
  60. package/dist/identity/links.js +176 -0
  61. package/dist/identity/links.js.map +1 -0
  62. package/dist/identity/slack-connect-http.d.ts +21 -0
  63. package/dist/identity/slack-connect-http.d.ts.map +1 -0
  64. package/dist/identity/slack-connect-http.js +129 -0
  65. package/dist/identity/slack-connect-http.js.map +1 -0
  66. package/dist/identity/slack-oauth.d.ts +60 -0
  67. package/dist/identity/slack-oauth.d.ts.map +1 -0
  68. package/dist/identity/slack-oauth.js +193 -0
  69. package/dist/identity/slack-oauth.js.map +1 -0
  70. package/dist/index.d.ts +6 -1
  71. package/dist/index.d.ts.map +1 -1
  72. package/dist/index.js +3 -0
  73. package/dist/index.js.map +1 -1
  74. package/dist/runtime/auth.d.ts +40 -0
  75. package/dist/runtime/auth.d.ts.map +1 -1
  76. package/dist/runtime/auth.js +123 -9
  77. package/dist/runtime/auth.js.map +1 -1
  78. package/dist/runtime/cors.d.ts +28 -0
  79. package/dist/runtime/cors.d.ts.map +1 -0
  80. package/dist/runtime/cors.js +92 -0
  81. package/dist/runtime/cors.js.map +1 -0
  82. package/dist/runtime/identity-http.d.ts +6 -0
  83. package/dist/runtime/identity-http.d.ts.map +1 -1
  84. package/dist/runtime/identity-http.js +90 -2
  85. package/dist/runtime/identity-http.js.map +1 -1
  86. package/dist/runtime/identity-runtime.d.ts +41 -1
  87. package/dist/runtime/identity-runtime.d.ts.map +1 -1
  88. package/dist/runtime/identity-runtime.js +142 -2
  89. package/dist/runtime/identity-runtime.js.map +1 -1
  90. package/dist/runtime/index.d.ts +3 -5
  91. package/dist/runtime/index.d.ts.map +1 -1
  92. package/dist/runtime/index.js +76 -209
  93. package/dist/runtime/index.js.map +1 -1
  94. package/dist/runtime/langsmith-connector.d.ts.map +1 -1
  95. package/dist/runtime/langsmith-connector.js +4 -3
  96. package/dist/runtime/langsmith-connector.js.map +1 -1
  97. package/dist/runtime/managed-tools.d.ts +6 -0
  98. package/dist/runtime/managed-tools.d.ts.map +1 -1
  99. package/dist/runtime/managed-tools.js +10 -0
  100. package/dist/runtime/managed-tools.js.map +1 -1
  101. package/dist/runtime/memory/context-io.d.ts +5 -0
  102. package/dist/runtime/memory/context-io.d.ts.map +1 -0
  103. package/dist/runtime/memory/context-io.js +28 -0
  104. package/dist/runtime/memory/context-io.js.map +1 -0
  105. package/dist/runtime/memory/index.d.ts +8 -0
  106. package/dist/runtime/memory/index.d.ts.map +1 -0
  107. package/dist/runtime/memory/index.js +6 -0
  108. package/dist/runtime/memory/index.js.map +1 -0
  109. package/dist/runtime/memory/mounts.d.ts +38 -0
  110. package/dist/runtime/memory/mounts.d.ts.map +1 -0
  111. package/dist/runtime/memory/mounts.js +185 -0
  112. package/dist/runtime/memory/mounts.js.map +1 -0
  113. package/dist/runtime/memory/paths.d.ts +10 -0
  114. package/dist/runtime/memory/paths.d.ts.map +1 -0
  115. package/dist/runtime/memory/paths.js +50 -0
  116. package/dist/runtime/memory/paths.js.map +1 -0
  117. package/dist/runtime/memory/seed.d.ts +30 -0
  118. package/dist/runtime/memory/seed.d.ts.map +1 -0
  119. package/dist/runtime/memory/seed.js +185 -0
  120. package/dist/runtime/memory/seed.js.map +1 -0
  121. package/dist/runtime/memory/user-repo.d.ts +19 -0
  122. package/dist/runtime/memory/user-repo.d.ts.map +1 -0
  123. package/dist/runtime/memory/user-repo.js +57 -0
  124. package/dist/runtime/memory/user-repo.js.map +1 -0
  125. package/dist/runtime/types.d.ts +11 -2
  126. package/dist/runtime/types.d.ts.map +1 -1
  127. package/dist/schedules.d.ts +6 -3
  128. package/dist/schedules.d.ts.map +1 -1
  129. package/dist/schedules.js +22 -0
  130. package/dist/schedules.js.map +1 -1
  131. package/dist/types.d.ts +5 -12
  132. package/dist/types.d.ts.map +1 -1
  133. package/dist/types.js +1 -1
  134. package/dist/types.js.map +1 -1
  135. package/package.json +15 -10
  136. package/dist/evals-run.d.ts +0 -3
  137. package/dist/evals-run.d.ts.map +0 -1
  138. package/dist/evals-run.js +0 -14
  139. package/dist/evals-run.js.map +0 -1
  140. package/dist/evals.d.ts +0 -238
  141. package/dist/evals.d.ts.map +0 -1
  142. package/dist/evals.js +0 -291
  143. package/dist/evals.js.map +0 -1
package/dist/evals.js DELETED
@@ -1,291 +0,0 @@
1
- import { promises as fs } from "node:fs";
2
- import path from "node:path";
3
- import { pathToFileURL } from "node:url";
4
- const EVALUATOR_BRAND = Symbol.for("managed-deepagents.evaluator");
5
- /**
6
- * Authoring primitive for `tests/evaluate.ts`.
7
- *
8
- * Pass `typeof agent` (from `defineDeepAgent`) to infer invoke state — same
9
- * pattern as `useStream<typeof agent>(...)`:
10
- *
11
- * ```ts
12
- * import type { agent } from "../../agent.js";
13
- * import { defineEvaluator } from "managed-deepagents/evals";
14
- *
15
- * export default defineEvaluator<typeof agent>(async (ctx) => {
16
- * const messages = ctx.result?.messages ?? [];
17
- * const called = messages.some(
18
- * (m) => "tool_calls" in m && Array.isArray(m.tool_calls) && m.tool_calls.length > 0
19
- * );
20
- * return { rewards: { reward: called ? 1 : 0 } };
21
- * });
22
- * ```
23
- *
24
- * Omitting the type parameter defaults {@link EvalContext.result} to
25
- * {@link EvalDeepAgentResult}. You can also pass a plain state shape.
26
- *
27
- * @typeParam T - Agent brand (`typeof agent`), compiled graph, or state type.
28
- */
29
- export function defineEvaluator(fn) {
30
- return {
31
- [EVALUATOR_BRAND]: true,
32
- evaluate: async (ctx) => fn(ctx),
33
- };
34
- }
35
- /**
36
- * MDA-owned verifier entry: import an evaluate module and write rewards.
37
- * Authors should not call this — use `export default defineEvaluator(...)`.
38
- */
39
- export async function loadAndRunEvaluator(modulePath) {
40
- const absolute = path.resolve(modulePath);
41
- const imported = (await import(pathToFileURL(absolute).href));
42
- const evaluator = resolveEvaluatorExport(imported.default);
43
- await runEvaluatorFromEnv(evaluator);
44
- }
45
- function resolveEvaluatorExport(value) {
46
- if (isEvaluatorDefinition(value)) {
47
- return value.evaluate;
48
- }
49
- if (typeof value === "function") {
50
- return value;
51
- }
52
- throw new Error("evaluate module must default-export defineEvaluator(...) or an evaluator function");
53
- }
54
- function isEvaluatorDefinition(value) {
55
- return (typeof value === "object" &&
56
- value !== null &&
57
- EVALUATOR_BRAND in value &&
58
- typeof value.evaluate === "function");
59
- }
60
- async function runEvaluatorFromEnv(evaluator) {
61
- const paths = envPaths();
62
- await fs.mkdir(paths.verifierLogs, { recursive: true });
63
- const summaryRaw = await fs.readFile(path.join(paths.agentLogs, "summary.json"), "utf8");
64
- const summary = normalizeSummary(JSON.parse(summaryRaw));
65
- const result = (await readOptionalJson(path.join(paths.agentLogs, "result.json")));
66
- const ctx = {
67
- summary,
68
- result,
69
- fs: {
70
- // eslint-disable-next-line no-use-before-define -- LocalBackend is a class in this module.
71
- app: new LocalBackend(paths.app),
72
- // eslint-disable-next-line no-use-before-define -- LocalBackend is a class in this module.
73
- tests: new LocalBackend(paths.tests),
74
- },
75
- paths,
76
- taskName: process.env.MDA_EVAL_TASK_NAME,
77
- stepName: process.env.MDA_EVAL_STEP_NAME,
78
- model: process.env.MDA_EVAL_MODEL ?? summary.model,
79
- rolloutIndex: process.env.MDA_EVAL_ROLLOUT_INDEX === undefined
80
- ? undefined
81
- : Number(process.env.MDA_EVAL_ROLLOUT_INDEX),
82
- identity: await loadEvalIdentity(),
83
- };
84
- const evaluated = await evaluator(ctx);
85
- validateRewards(evaluated.rewards);
86
- const rewardPath = process.env.MDA_EVAL_REWARD_PATH ??
87
- path.join(paths.verifierLogs, "reward.json");
88
- await fs.writeFile(rewardPath,
89
- // Harbor expects a flat reward map; MDA historically wrapped under `rewards`.
90
- `${JSON.stringify(evaluated.rewards, null, 2)}\n`, "utf8");
91
- if (evaluated.metadata !== undefined) {
92
- await fs.writeFile(path.join(paths.verifierLogs, "mda-evaluator-metadata.json"), `${JSON.stringify(evaluated.metadata, null, 2)}\n`, "utf8");
93
- }
94
- }
95
- class LocalBackend {
96
- root;
97
- constructor(root) {
98
- this.root = root;
99
- }
100
- async read(filePath) {
101
- try {
102
- return {
103
- content: await fs.readFile(this.resolve(filePath), "utf8"),
104
- };
105
- }
106
- catch (error) {
107
- return { error: String(error.message ?? error) };
108
- }
109
- }
110
- async readRaw(filePath) {
111
- try {
112
- return { content: await fs.readFile(this.resolve(filePath)) };
113
- }
114
- catch (error) {
115
- return { error: String(error.message ?? error) };
116
- }
117
- }
118
- async ls(dirPath = ".") {
119
- const base = this.resolve(dirPath);
120
- const entries = await fs.readdir(base, { withFileTypes: true });
121
- return {
122
- files: entries.map((entry) => ({
123
- path: normalize(path.join(dirPath, entry.name)),
124
- })),
125
- };
126
- }
127
- async glob(pattern, dirPath = ".") {
128
- const files = await walk(this.resolve(dirPath), this.root);
129
- return {
130
- files: files
131
- .filter((file) => matchesSimpleGlob(file, pattern))
132
- .map((file) => ({ path: file })),
133
- };
134
- }
135
- async grep(pattern, dirPath = ".") {
136
- const regex = new RegExp(pattern);
137
- const files = await walk(this.resolve(dirPath), this.root);
138
- const matches = [];
139
- for (const file of files) {
140
- const content = await fs
141
- .readFile(this.resolve(file), "utf8")
142
- .catch(() => undefined);
143
- if (content === undefined)
144
- continue;
145
- content.split(/\r?\n/).forEach((line, index) => {
146
- if (regex.test(line)) {
147
- matches.push({ path: file, line: index + 1, content: line });
148
- }
149
- });
150
- }
151
- return { matches };
152
- }
153
- resolve(filePath) {
154
- const resolved = path.resolve(this.root, filePath);
155
- if (resolved !== this.root &&
156
- !resolved.startsWith(`${this.root}${path.sep}`)) {
157
- throw new Error(`path escapes eval root: ${filePath}`);
158
- }
159
- return resolved;
160
- }
161
- }
162
- function envPaths() {
163
- return {
164
- app: requiredEnv("MDA_EVAL_APP_DIR"),
165
- tests: requiredEnv("MDA_EVAL_TESTS_DIR"),
166
- agentLogs: requiredEnv("MDA_EVAL_AGENT_LOGS_DIR"),
167
- verifierLogs: requiredEnv("MDA_EVAL_VERIFIER_LOGS_DIR"),
168
- };
169
- }
170
- /** Load task `identity.json` staged at `MDA_EVAL_IDENTITY_PATH` (optional). */
171
- async function loadEvalIdentity() {
172
- const identityPath = process.env.MDA_EVAL_IDENTITY_PATH;
173
- if (!identityPath) {
174
- return undefined;
175
- }
176
- let raw;
177
- try {
178
- raw = JSON.parse(await fs.readFile(identityPath, "utf8"));
179
- }
180
- catch (error) {
181
- if (error &&
182
- typeof error === "object" &&
183
- "code" in error &&
184
- error.code === "ENOENT") {
185
- return undefined;
186
- }
187
- throw error;
188
- }
189
- if (!raw || typeof raw !== "object") {
190
- return undefined;
191
- }
192
- const envelope = raw;
193
- const actor = envelope.actor;
194
- if (!actor || typeof actor !== "object") {
195
- return undefined;
196
- }
197
- const actorRec = actor;
198
- if (typeof actorRec.id !== "string") {
199
- return undefined;
200
- }
201
- const identity = {
202
- actor: {
203
- type: actorRec.type === "service" ? "service" : "user",
204
- id: actorRec.id,
205
- ...(typeof actorRec.email === "string" ? { email: actorRec.email } : {}),
206
- },
207
- source: {
208
- provider: typeof envelope.source
209
- ?.provider === "string"
210
- ? String(envelope.source.provider)
211
- : "cli",
212
- },
213
- };
214
- const tenant = envelope.tenant;
215
- if (tenant &&
216
- typeof tenant === "object" &&
217
- typeof tenant.id === "string") {
218
- identity.tenant = { id: tenant.id };
219
- }
220
- if (envelope.claims && typeof envelope.claims === "object") {
221
- identity.claims = envelope.claims;
222
- }
223
- return identity;
224
- }
225
- function requiredEnv(name) {
226
- const value = process.env[name];
227
- if (!value)
228
- throw new Error(`${name} is required`);
229
- return value;
230
- }
231
- function normalizeSummary(raw) {
232
- return {
233
- schemaVersion: stringField(raw.schemaVersion ?? raw.schema_version, "schemaVersion"),
234
- runtime: stringField(raw.runtime, "runtime"),
235
- answerWritten: stringField(raw.answerWritten ?? raw.answer_written, "answerWritten"),
236
- model: stringField(raw.model, "model"),
237
- usage: typeof raw.usage === "object" && raw.usage !== null
238
- ? raw.usage
239
- : undefined,
240
- };
241
- }
242
- function stringField(value, name) {
243
- if (typeof value !== "string") {
244
- throw new Error(`summary.${name} must be a string`);
245
- }
246
- return value;
247
- }
248
- async function readOptionalJson(filePath) {
249
- try {
250
- return JSON.parse(await fs.readFile(filePath, "utf8"));
251
- }
252
- catch {
253
- return undefined;
254
- }
255
- }
256
- function validateRewards(rewards) {
257
- for (const [key, value] of Object.entries(rewards)) {
258
- if (!Number.isFinite(value)) {
259
- throw new Error(`reward ${key} must be finite`);
260
- }
261
- }
262
- }
263
- async function walk(root, base) {
264
- const entries = await fs.readdir(root, { withFileTypes: true });
265
- const files = [];
266
- for (const entry of entries) {
267
- const absolute = path.join(root, entry.name);
268
- if (entry.isDirectory()) {
269
- files.push(...(await walk(absolute, base)));
270
- }
271
- else if (entry.isFile()) {
272
- files.push(normalize(path.relative(base, absolute)));
273
- }
274
- }
275
- return files;
276
- }
277
- function normalize(value) {
278
- return value.split(path.sep).join("/");
279
- }
280
- function matchesSimpleGlob(file, pattern) {
281
- if (pattern === "*" || pattern === "**/*")
282
- return true;
283
- if (!pattern.includes("*"))
284
- return file === pattern || file.endsWith(`/${pattern}`);
285
- const regex = new RegExp(`^${pattern
286
- .split("*")
287
- .map((part) => part.replace(/[|\\{}()[\]^$+?.]/g, "\\$&"))
288
- .join(".*")}$`);
289
- return regex.test(file);
290
- }
291
- //# sourceMappingURL=evals.js.map
package/dist/evals.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"evals.js","sourceRoot":"","sources":["../src/evals.ts"],"names":[],"mappings":"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"}