managed-deepagents 0.0.3-dev.23 → 0.0.3-dev.24

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 CHANGED
@@ -21,6 +21,7 @@
21
21
  TypeScript and Node.js. It includes:
22
22
 
23
23
  - `defineDeepAgent`, the TypeScript authoring contract for managed agents.
24
+ - `defineSchedule`, the TypeScript contract for managed cron schedules.
24
25
  - `mda`, the CLI used to build and deploy your agent to LangSmith.
25
26
  - `managed-deepagents/runtime`, the runtime helper used by generated managed
26
27
  entry modules.
@@ -44,6 +45,14 @@ This package requires Node.js 22 or newer. The `mda` binary is delivered through
44
45
  per-platform optional dependencies, so install only downloads the binary for your
45
46
  OS and CPU architecture.
46
47
 
48
+ To start a new project:
49
+
50
+ ```bash
51
+ mda init my-agent
52
+ cd my-agent
53
+ npm install
54
+ ```
55
+
47
56
  ## Define an Agent
48
57
 
49
58
  Create an `agent.ts` that exports a named `agent` definition:
@@ -65,24 +74,106 @@ export const agent = defineDeepAgent({
65
74
 
66
75
  ```text
67
76
  my-agent/
68
- agent.ts
69
- instructions.md
70
- tools/
71
- middleware/
72
- skills/
77
+ agent.ts # named `agent` export
78
+ instructions.md # managed system prompt
79
+ package.json
80
+ .env # local deploy secrets, never committed
81
+ schedules/ # optional managed cron schedules
82
+ tools/ # optional custom tools
83
+ middleware/ # optional middleware
84
+ skills/ # optional skills synced to Context Hub
85
+ sandbox/ # optional managed sandbox declaration
86
+ connectors/mcp.ts # optional MCP server declaration
73
87
  ```
74
88
 
75
89
  The CLI copies your project files into the managed build and generates the entry
76
90
  module that connects your definition to the hosted runtime.
77
91
 
92
+ The agent entry must live at the project root as `agent.ts` or `agent.tsx`.
93
+
94
+ ## Define a Schedule
95
+
96
+ Create one file per schedule under `schedules/` and export a named `schedule`:
97
+
98
+ ```ts
99
+ // schedules/daily-digest.ts
100
+ import { defineSchedule } from "managed-deepagents";
101
+
102
+ export const schedule = defineSchedule({
103
+ cron: "0 8 * * 1-5",
104
+ timezone: "America/Los_Angeles",
105
+ prompt: "Write the daily digest.",
106
+ });
107
+ ```
108
+
109
+ `mda deploy` reconciles schedules as LangSmith cron jobs after the deployment is
110
+ live. Declarations must be statically serializable literals or top-level
111
+ constants; prompt schedules become user-message input, and stateless runs clean
112
+ up their temporary thread after completion.
113
+
114
+ ## Sandbox
115
+
116
+ Add `sandbox/index.ts` when the agent needs a managed execution environment:
117
+
118
+ ```ts
119
+ import { LangSmithSandbox } from "deepagents";
120
+ import { defineSandbox } from "managed-deepagents";
121
+
122
+ export const sandbox = defineSandbox(LangSmithSandbox, {
123
+ scope: "thread",
124
+ idleTtlSeconds: 600,
125
+ });
126
+ ```
127
+
128
+ If `sandbox/setup.sh` exists, MDA embeds it and runs it once when the sandbox is
129
+ first provisioned. MDA owns sandbox naming, image/snapshot selection, reuse, and
130
+ lifecycle.
131
+
132
+ ## MCP Connectors
133
+
134
+ Add `connectors/mcp.ts` to attach MCP servers. The file must export a named
135
+ `mcp` declaration. By default, MDA exposes every tool loaded from each declared
136
+ server:
137
+
138
+ ```ts
139
+ import { defineMcpServers } from "managed-deepagents";
140
+
141
+ export const mcp = defineMcpServers({
142
+ mcpServers: {
143
+ langchainDocs: {
144
+ transport: "http",
145
+ url: "https://docs.langchain.com/mcp",
146
+ includeTools: ["search", "fetch"],
147
+ },
148
+ },
149
+ });
150
+ ```
151
+
152
+ Use `includeTools` or `excludeTools` inside a server config to select a subset.
153
+ Tool names are raw MCP tool names before the managed `{server}__` prefix is
154
+ applied, so `includeTools: ["search"]` on server `langchainDocs` exposes
155
+ `langchainDocs__search` when prefixing is enabled.
156
+
78
157
  ## CLI
79
158
 
159
+ Create a new project:
160
+
161
+ ```bash
162
+ mda init my-agent
163
+ ```
164
+
80
165
  Build locally:
81
166
 
82
167
  ```bash
83
168
  mda build ./my-agent
84
169
  ```
85
170
 
171
+ Run on the local LangGraph dev server:
172
+
173
+ ```bash
174
+ mda dev ./my-agent
175
+ ```
176
+
86
177
  Deploy to LangSmith:
87
178
 
88
179
  ```bash
@@ -90,3 +181,17 @@ mda deploy ./my-agent
90
181
  ```
91
182
 
92
183
  The generated build is written to `<root>/.mda/build` by default.
184
+
185
+ Common deploy options:
186
+
187
+ ```bash
188
+ mda deploy ./my-agent --name my-agent-dev --deployment-type dev
189
+ mda deploy ./my-agent --tenant-id "$LANGSMITH_TENANT_ID"
190
+ mda deploy ./my-agent --no-wait
191
+ ```
192
+
193
+ Before deploying, make sure `LANGSMITH_API_KEY` and your model provider key
194
+ such as `OPENAI_API_KEY` or `ANTHROPIC_API_KEY` are available in the project
195
+ `.env`, the process environment, or LangSmith workspace secrets. TypeScript
196
+ deploys also require `npm` on `PATH` because the CLI generates a lockfile for
197
+ the remote build.
@@ -13,6 +13,10 @@
13
13
  * intentionally out of scope: they introduce process management, packaging, and
14
14
  * sandboxing concerns beyond this POC.
15
15
  *
16
+ * By default, all tools loaded from each declared server are exposed. Use
17
+ * `includeTools` or `excludeTools` inside a server config to select a subset by
18
+ * raw MCP tool name, before any managed `{server}__` prefix is applied.
19
+ *
16
20
  * @example
17
21
  * ```ts
18
22
  * // connectors/mcp.ts
@@ -31,38 +35,48 @@
31
35
  * });
32
36
  * ```
33
37
  */
38
+ /** Per-server MCP tool selection. Names are raw, unprefixed MCP tool names. */
39
+ export interface McpToolSelectionConfig {
40
+ /**
41
+ * Raw MCP tool names to expose from this server. Names are matched before any
42
+ * managed `{server}__` prefix is applied.
43
+ */
44
+ includeTools?: string[];
45
+ /**
46
+ * Raw MCP tool names to hide from this server. Names are matched before any
47
+ * managed `{server}__` prefix is applied.
48
+ */
49
+ excludeTools?: string[];
50
+ }
51
+ /** Shared options for all remote MCP server connections. */
52
+ export interface RemoteMcpServerBaseConfig extends McpToolSelectionConfig {
53
+ /** URL of the remote MCP server endpoint. */
54
+ url: string;
55
+ /** Optional static headers sent when connecting to the MCP server. */
56
+ headers?: Record<string, string>;
57
+ /** Default timeout, in milliseconds, for tools loaded from this server. */
58
+ defaultToolTimeout?: number;
59
+ }
34
60
  /** Streamable HTTP MCP server connection. */
35
- export interface HttpMcpServerConfig {
61
+ export interface HttpMcpServerConfig extends RemoteMcpServerBaseConfig {
36
62
  /** Remote transport. `"http"` selects Streamable HTTP. */
37
63
  transport: "http";
38
- /** URL of the remote MCP server endpoint. */
39
- url: string;
40
64
  /**
41
65
  * Whether the client may fall back to SSE if the server does not support
42
66
  * Streamable HTTP. Defaults to the behavior of `@langchain/mcp-adapters`.
43
67
  */
44
68
  automaticSSEFallback?: boolean;
45
- /** Optional static headers sent when connecting to the MCP server. */
46
- headers?: Record<string, string>;
47
- /** Default timeout, in milliseconds, for tools loaded from this server. */
48
- defaultToolTimeout?: number;
49
69
  }
50
70
  /** Legacy SSE MCP server connection. */
51
- export interface SseMcpServerConfig {
71
+ export interface SseMcpServerConfig extends RemoteMcpServerBaseConfig {
52
72
  /** Remote transport. `"sse"` selects legacy SSE. */
53
73
  transport: "sse";
54
- /** URL of the remote SSE MCP server endpoint. */
55
- url: string;
56
- /** Optional static headers sent when connecting to the MCP server. */
57
- headers?: Record<string, string>;
58
74
  /** Reconnection behavior for SSE MCP servers. */
59
75
  reconnect?: {
60
76
  enabled: boolean;
61
77
  maxAttempts?: number;
62
78
  delayMs?: number;
63
79
  };
64
- /** Default timeout, in milliseconds, for tools loaded from this server. */
65
- defaultToolTimeout?: number;
66
80
  }
67
81
  /** A remote MCP server connection. Stdio servers are intentionally excluded. */
68
82
  export type RemoteMcpServerConfig = HttpMcpServerConfig | SseMcpServerConfig;
@@ -108,7 +122,8 @@ export interface McpServersDefinition extends McpServersConfig {
108
122
  * Validates the config eagerly so misconfiguration surfaces at module load
109
123
  * (build/dev startup) rather than mid-run: at least one server must be
110
124
  * declared, and every server must use a remote transport (`"http"` or
111
- * `"sse"`). Stdio servers are rejected with a clear error.
125
+ * `"sse"`). Stdio servers and invalid tool selectors are rejected with a clear
126
+ * error.
112
127
  */
113
128
  export declare function defineMcpServers(config: McpServersConfig): McpServersDefinition;
114
129
  //# sourceMappingURL=connectors.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"connectors.d.ts","sourceRoot":"","sources":["../src/connectors.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AAEH,6CAA6C;AAC7C,MAAM,WAAW,mBAAmB;IAClC,0DAA0D;IAC1D,SAAS,EAAE,MAAM,CAAC;IAClB,6CAA6C;IAC7C,GAAG,EAAE,MAAM,CAAC;IACZ;;;OAGG;IACH,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,sEAAsE;IACtE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,2EAA2E;IAC3E,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED,wCAAwC;AACxC,MAAM,WAAW,kBAAkB;IACjC,oDAAoD;IACpD,SAAS,EAAE,KAAK,CAAC;IACjB,iDAAiD;IACjD,GAAG,EAAE,MAAM,CAAC;IACZ,sEAAsE;IACtE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,iDAAiD;IACjD,SAAS,CAAC,EAAE;QACV,OAAO,EAAE,OAAO,CAAC;QACjB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC;IACF,2EAA2E;IAC3E,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED,gFAAgF;AAChF,MAAM,MAAM,qBAAqB,GAAG,mBAAmB,GAAG,kBAAkB,CAAC;AAE7E,0DAA0D;AAC1D,MAAM,WAAW,gBAAgB;IAC/B;;;OAGG;IACH,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAC;IAClD;;;;OAIG;IACH,4BAA4B,CAAC,EAAE,OAAO,CAAC;IACvC;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B;;;OAGG;IACH,wBAAwB,CAAC,EAAE,OAAO,CAAC;IACnC;;;OAGG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED,oDAAoD;AACpD,MAAM,WAAW,oBAAqB,SAAQ,gBAAgB;IAC5D,qDAAqD;IACrD,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC;CAC9B;AAED;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,gBAAgB,GAAG,oBAAoB,CAuB/E"}
1
+ {"version":3,"file":"connectors.d.ts","sourceRoot":"","sources":["../src/connectors.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AAEH,+EAA+E;AAC/E,MAAM,WAAW,sBAAsB;IACrC;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;CACzB;AAED,4DAA4D;AAC5D,MAAM,WAAW,yBAA0B,SAAQ,sBAAsB;IACvE,6CAA6C;IAC7C,GAAG,EAAE,MAAM,CAAC;IACZ,sEAAsE;IACtE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,2EAA2E;IAC3E,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED,6CAA6C;AAC7C,MAAM,WAAW,mBAAoB,SAAQ,yBAAyB;IACpE,0DAA0D;IAC1D,SAAS,EAAE,MAAM,CAAC;IAClB;;;OAGG;IACH,oBAAoB,CAAC,EAAE,OAAO,CAAC;CAChC;AAED,wCAAwC;AACxC,MAAM,WAAW,kBAAmB,SAAQ,yBAAyB;IACnE,oDAAoD;IACpD,SAAS,EAAE,KAAK,CAAC;IACjB,iDAAiD;IACjD,SAAS,CAAC,EAAE;QACV,OAAO,EAAE,OAAO,CAAC;QACjB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC;CACH;AAED,gFAAgF;AAChF,MAAM,MAAM,qBAAqB,GAAG,mBAAmB,GAAG,kBAAkB,CAAC;AAE7E,0DAA0D;AAC1D,MAAM,WAAW,gBAAgB;IAC/B;;;OAGG;IACH,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAC;IAClD;;;;OAIG;IACH,4BAA4B,CAAC,EAAE,OAAO,CAAC;IACvC;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B;;;OAGG;IACH,wBAAwB,CAAC,EAAE,OAAO,CAAC;IACnC;;;OAGG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED,oDAAoD;AACpD,MAAM,WAAW,oBAAqB,SAAQ,gBAAgB;IAC5D,qDAAqD;IACrD,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC;CAC9B;AAED;;;;;;;;;GASG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,gBAAgB,GAAG,oBAAoB,CAuB/E"}
@@ -13,6 +13,10 @@
13
13
  * intentionally out of scope: they introduce process management, packaging, and
14
14
  * sandboxing concerns beyond this POC.
15
15
  *
16
+ * By default, all tools loaded from each declared server are exposed. Use
17
+ * `includeTools` or `excludeTools` inside a server config to select a subset by
18
+ * raw MCP tool name, before any managed `{server}__` prefix is applied.
19
+ *
16
20
  * @example
17
21
  * ```ts
18
22
  * // connectors/mcp.ts
@@ -38,7 +42,8 @@
38
42
  * Validates the config eagerly so misconfiguration surfaces at module load
39
43
  * (build/dev startup) rather than mid-run: at least one server must be
40
44
  * declared, and every server must use a remote transport (`"http"` or
41
- * `"sse"`). Stdio servers are rejected with a clear error.
45
+ * `"sse"`). Stdio servers and invalid tool selectors are rejected with a clear
46
+ * error.
42
47
  */
43
48
  export function defineMcpServers(config) {
44
49
  const provided = config;
@@ -82,5 +87,38 @@ function validateRemoteServer(name, server) {
82
87
  if (typeof config.url !== "string" || config.url.trim().length === 0) {
83
88
  throw new Error(`MCP server "${name}" must declare a non-empty \`url\`.`);
84
89
  }
90
+ validateToolSelection(name, config);
91
+ }
92
+ function validateToolSelection(name, config) {
93
+ const includeTools = validateToolNameList(name, "includeTools", config.includeTools);
94
+ const excludeTools = validateToolNameList(name, "excludeTools", config.excludeTools);
95
+ if (!includeTools || !excludeTools) {
96
+ return;
97
+ }
98
+ const included = new Set(includeTools);
99
+ const conflicts = excludeTools.filter((toolName) => included.has(toolName));
100
+ if (conflicts.length > 0) {
101
+ throw new Error(`MCP server "${name}" selects tool(s) in both \`includeTools\` and ` +
102
+ `\`excludeTools\`: ${conflicts.sort().join(", ")}.`);
103
+ }
104
+ }
105
+ function validateToolNameList(serverName, field, value) {
106
+ if (value === undefined) {
107
+ return undefined;
108
+ }
109
+ if (!Array.isArray(value)) {
110
+ throw new Error(`MCP server "${serverName}" \`${field}\` must be an array of strings.`);
111
+ }
112
+ const seen = new Set();
113
+ for (const [index, item] of value.entries()) {
114
+ if (typeof item !== "string" || item.trim().length === 0) {
115
+ throw new Error(`MCP server "${serverName}" \`${field}\` entry ${index} must be a non-empty string.`);
116
+ }
117
+ if (seen.has(item)) {
118
+ throw new Error(`MCP server "${serverName}" \`${field}\` contains duplicate tool name "${item}".`);
119
+ }
120
+ seen.add(item);
121
+ }
122
+ return value;
85
123
  }
86
124
  //# sourceMappingURL=connectors.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"connectors.js","sourceRoot":"","sources":["../src/connectors.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AA6EH;;;;;;;;GAQG;AACH,MAAM,UAAU,gBAAgB,CAAC,MAAwB;IACvD,MAAM,QAAQ,GAAG,MAA4C,CAAC;IAC9D,MAAM,OAAO,GAAG,QAAQ,CAAC,UAAU,CAAC;IAEpC,IAAI,OAAO,KAAK,IAAI,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QAC9E,MAAM,IAAI,KAAK,CACb,uEAAuE;YACrE,qCAAqC,CACxC,CAAC;IACJ,CAAC;IAED,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,OAAkC,CAAC,CAAC;IACnE,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,MAAM,IAAI,KAAK,CACb,oEAAoE,CACrE,CAAC;IACJ,CAAC;IAED,KAAK,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;QACrC,oBAAoB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACrC,CAAC;IAED,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,GAAG,MAAM,EAAE,CAAC;AAC5C,CAAC;AAED,2EAA2E;AAC3E,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC;AAEnD;;;GAGG;AACH,SAAS,oBAAoB,CAAC,IAAY,EAAE,MAAe;IACzD,IAAI,MAAM,KAAK,IAAI,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;QAClD,MAAM,IAAI,KAAK,CAAC,eAAe,IAAI,mCAAmC,CAAC,CAAC;IAC1E,CAAC;IACD,MAAM,MAAM,GAAG,MAAiC,CAAC;IAEjD,4EAA4E;IAC5E,2DAA2D;IAC3D,IAAI,MAAM,CAAC,SAAS,KAAK,OAAO,IAAI,SAAS,IAAI,MAAM,EAAE,CAAC;QACxD,MAAM,IAAI,KAAK,CACb,eAAe,IAAI,oDAAoD;YACrE,qEAAqE;YACrE,sEAAsE,CACzE,CAAC;IACJ,CAAC;IAED,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC;IACnC,IAAI,OAAO,SAAS,KAAK,QAAQ,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;QACvE,MAAM,IAAI,KAAK,CACb,eAAe,IAAI,oCAAoC;YACrD,0BAA0B,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,GAAG,CACzD,CAAC;IACJ,CAAC;IAED,IAAI,OAAO,MAAM,CAAC,GAAG,KAAK,QAAQ,IAAI,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACrE,MAAM,IAAI,KAAK,CAAC,eAAe,IAAI,qCAAqC,CAAC,CAAC;IAC5E,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"connectors.js","sourceRoot":"","sources":["../src/connectors.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AAyFH;;;;;;;;;GASG;AACH,MAAM,UAAU,gBAAgB,CAAC,MAAwB;IACvD,MAAM,QAAQ,GAAG,MAA4C,CAAC;IAC9D,MAAM,OAAO,GAAG,QAAQ,CAAC,UAAU,CAAC;IAEpC,IAAI,OAAO,KAAK,IAAI,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QAC9E,MAAM,IAAI,KAAK,CACb,uEAAuE;YACrE,qCAAqC,CACxC,CAAC;IACJ,CAAC;IAED,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,OAAkC,CAAC,CAAC;IACnE,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,MAAM,IAAI,KAAK,CACb,oEAAoE,CACrE,CAAC;IACJ,CAAC;IAED,KAAK,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;QACrC,oBAAoB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACrC,CAAC;IAED,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,GAAG,MAAM,EAAE,CAAC;AAC5C,CAAC;AAED,2EAA2E;AAC3E,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC;AAEnD;;;GAGG;AACH,SAAS,oBAAoB,CAAC,IAAY,EAAE,MAAe;IACzD,IAAI,MAAM,KAAK,IAAI,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;QAClD,MAAM,IAAI,KAAK,CAAC,eAAe,IAAI,mCAAmC,CAAC,CAAC;IAC1E,CAAC;IACD,MAAM,MAAM,GAAG,MAAiC,CAAC;IAEjD,4EAA4E;IAC5E,2DAA2D;IAC3D,IAAI,MAAM,CAAC,SAAS,KAAK,OAAO,IAAI,SAAS,IAAI,MAAM,EAAE,CAAC;QACxD,MAAM,IAAI,KAAK,CACb,eAAe,IAAI,oDAAoD;YACrE,qEAAqE;YACrE,sEAAsE,CACzE,CAAC;IACJ,CAAC;IAED,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC;IACnC,IAAI,OAAO,SAAS,KAAK,QAAQ,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;QACvE,MAAM,IAAI,KAAK,CACb,eAAe,IAAI,oCAAoC;YACrD,0BAA0B,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,GAAG,CACzD,CAAC;IACJ,CAAC;IAED,IAAI,OAAO,MAAM,CAAC,GAAG,KAAK,QAAQ,IAAI,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACrE,MAAM,IAAI,KAAK,CAAC,eAAe,IAAI,qCAAqC,CAAC,CAAC;IAC5E,CAAC;IAED,qBAAqB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AACtC,CAAC;AAED,SAAS,qBAAqB,CAAC,IAAY,EAAE,MAA+B;IAC1E,MAAM,YAAY,GAAG,oBAAoB,CAAC,IAAI,EAAE,cAAc,EAAE,MAAM,CAAC,YAAY,CAAC,CAAC;IACrF,MAAM,YAAY,GAAG,oBAAoB,CAAC,IAAI,EAAE,cAAc,EAAE,MAAM,CAAC,YAAY,CAAC,CAAC;IAErF,IAAI,CAAC,YAAY,IAAI,CAAC,YAAY,EAAE,CAAC;QACnC,OAAO;IACT,CAAC;IAED,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,YAAY,CAAC,CAAC;IACvC,MAAM,SAAS,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC5E,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACzB,MAAM,IAAI,KAAK,CACb,eAAe,IAAI,iDAAiD;YAClE,qBAAqB,SAAS,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CACtD,CAAC;IACJ,CAAC;AACH,CAAC;AAED,SAAS,oBAAoB,CAC3B,UAAkB,EAClB,KAAsC,EACtC,KAAc;IAEd,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QAC1B,MAAM,IAAI,KAAK,CAAC,eAAe,UAAU,OAAO,KAAK,iCAAiC,CAAC,CAAC;IAC1F,CAAC;IAED,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,KAAK,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC;QAC5C,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzD,MAAM,IAAI,KAAK,CACb,eAAe,UAAU,OAAO,KAAK,YAAY,KAAK,8BAA8B,CACrF,CAAC;QACJ,CAAC;QACD,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YACnB,MAAM,IAAI,KAAK,CACb,eAAe,UAAU,OAAO,KAAK,oCAAoC,IAAI,IAAI,CAClF,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACjB,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC"}
package/dist/index.d.ts CHANGED
@@ -1,7 +1,9 @@
1
1
  export { defineDeepAgent } from "./define-deep-agent.js";
2
2
  export { defineMcpServers } from "./connectors.js";
3
+ export { defineSchedule } from "./schedules.js";
3
4
  export { defineSandbox } from "./sandbox.js";
4
- export type { HttpMcpServerConfig, McpServersConfig, McpServersDefinition, RemoteMcpServerConfig, SseMcpServerConfig, } from "./connectors.js";
5
+ export type { HttpMcpServerConfig, McpServersConfig, McpServersDefinition, McpToolSelectionConfig, RemoteMcpServerBaseConfig, RemoteMcpServerConfig, SseMcpServerConfig, } from "./connectors.js";
6
+ export type { ScheduleConfig, ScheduleDefinition, ScheduleDeliveryTarget, ScheduleThreadConfig, } from "./schedules.js";
5
7
  export type { ChannelAttachment, ChannelDestination, ChannelEvent, ChannelMessage, ChannelPostOptions, DeepAgentDefinition, DefineDeepAgentConfig, ManagedDeepAgentKey, PostedChannelMessage, Runtime, RuntimeChannel, } from "./types.js";
6
8
  export type { DefineSandboxOptions, ManagedSandboxOptionKey, SandboxDefinition, SandboxProviderClass, SandboxProviderOptions, SandboxScope, } from "./sandbox.js";
7
9
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAE7C,YAAY,EACV,mBAAmB,EACnB,gBAAgB,EAChB,oBAAoB,EACpB,qBAAqB,EACrB,kBAAkB,GACnB,MAAM,iBAAiB,CAAC;AAEzB,YAAY,EACV,iBAAiB,EACjB,kBAAkB,EAClB,YAAY,EACZ,cAAc,EACd,kBAAkB,EAClB,mBAAmB,EACnB,qBAAqB,EACrB,mBAAmB,EACnB,oBAAoB,EACpB,OAAO,EACP,cAAc,GACf,MAAM,YAAY,CAAC;AAEpB,YAAY,EACV,oBAAoB,EACpB,uBAAuB,EACvB,iBAAiB,EACjB,oBAAoB,EACpB,sBAAsB,EACtB,YAAY,GACb,MAAM,cAAc,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAE7C,YAAY,EACV,mBAAmB,EACnB,gBAAgB,EAChB,oBAAoB,EACpB,sBAAsB,EACtB,yBAAyB,EACzB,qBAAqB,EACrB,kBAAkB,GACnB,MAAM,iBAAiB,CAAC;AAEzB,YAAY,EACV,cAAc,EACd,kBAAkB,EAClB,sBAAsB,EACtB,oBAAoB,GACrB,MAAM,gBAAgB,CAAC;AAExB,YAAY,EACV,iBAAiB,EACjB,kBAAkB,EAClB,YAAY,EACZ,cAAc,EACd,kBAAkB,EAClB,mBAAmB,EACnB,qBAAqB,EACrB,mBAAmB,EACnB,oBAAoB,EACpB,OAAO,EACP,cAAc,GACf,MAAM,YAAY,CAAC;AAEpB,YAAY,EACV,oBAAoB,EACpB,uBAAuB,EACvB,iBAAiB,EACjB,oBAAoB,EACpB,sBAAsB,EACtB,YAAY,GACb,MAAM,cAAc,CAAC"}
package/dist/index.js CHANGED
@@ -1,4 +1,5 @@
1
1
  export { defineDeepAgent } from "./define-deep-agent.js";
2
2
  export { defineMcpServers } from "./connectors.js";
3
+ export { defineSchedule } from "./schedules.js";
3
4
  export { defineSandbox } from "./sandbox.js";
4
5
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"connectors-manager.d.ts","sourceRoot":"","sources":["../../src/runtime/connectors-manager.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAa7D;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,UAAU,EAAE,oBAAoB,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,CAQxF;AAED,yDAAyD;AACzD,wBAAgB,iCAAiC,IAAI,IAAI,CAExD"}
1
+ {"version":3,"file":"connectors-manager.d.ts","sourceRoot":"","sources":["../../src/runtime/connectors-manager.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,oBAAoB,EAA0B,MAAM,kBAAkB,CAAC;AAarF;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,UAAU,EAAE,oBAAoB,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,CAQxF;AAED,yDAAyD;AACzD,wBAAgB,iCAAiC,IAAI,IAAI,CAExD"}
@@ -39,13 +39,13 @@ export function clearManagedMcpToolsCacheForTests() {
39
39
  async function createClientAndLoadTools(connectors) {
40
40
  const prefixToolNameWithServerName = connectors.prefixToolNameWithServerName ?? true;
41
41
  const client = new MultiServerMCPClient({
42
- mcpServers: connectors.mcpServers,
42
+ mcpServers: stripManagedToolSelection(connectors.mcpServers),
43
43
  prefixToolNameWithServerName,
44
44
  throwOnLoadError: connectors.throwOnLoadError ?? true,
45
45
  useStandardContentBlocks: connectors.useStandardContentBlocks ?? true,
46
46
  onConnectionError: connectors.onConnectionError ?? "throw",
47
47
  });
48
- const tools = await client.getTools();
48
+ const tools = await loadToolsByServer(client, connectors.mcpServers, prefixToolNameWithServerName);
49
49
  // When prefixing is disabled, names can collide with authored tools or across
50
50
  // servers. The spec only allows opting out if MDA validates no collisions.
51
51
  if (!prefixToolNameWithServerName) {
@@ -53,6 +53,61 @@ async function createClientAndLoadTools(connectors) {
53
53
  }
54
54
  return tools;
55
55
  }
56
+ function stripManagedToolSelection(servers) {
57
+ return Object.fromEntries(Object.entries(servers).map(([name, server]) => {
58
+ const { includeTools: _includeTools, excludeTools: _excludeTools, ...clientConfig } = server;
59
+ return [name, clientConfig];
60
+ }));
61
+ }
62
+ async function loadToolsByServer(client, servers, prefixToolNameWithServerName) {
63
+ const tools = [];
64
+ for (const [serverName, server] of Object.entries(servers)) {
65
+ const serverTools = await client.getTools(serverName);
66
+ tools.push(...filterToolsForServer(serverName, server, serverTools, prefixToolNameWithServerName));
67
+ }
68
+ return tools;
69
+ }
70
+ function filterToolsForServer(serverName, selection, tools, prefixToolNameWithServerName) {
71
+ const includeTools = selection.includeTools;
72
+ const excludeTools = selection.excludeTools;
73
+ if (!includeTools && !excludeTools) {
74
+ return tools;
75
+ }
76
+ const availableNames = new Set(tools
77
+ .map((tool) => selectionToolName(serverName, tool, prefixToolNameWithServerName))
78
+ .filter((name) => typeof name === "string"));
79
+ assertSelectedToolsExist(serverName, availableNames, includeTools, excludeTools);
80
+ const included = includeTools ? new Set(includeTools) : undefined;
81
+ const excluded = excludeTools ? new Set(excludeTools) : undefined;
82
+ return tools.filter((tool) => {
83
+ const toolName = selectionToolName(serverName, tool, prefixToolNameWithServerName);
84
+ if (typeof toolName !== "string") {
85
+ return included === undefined;
86
+ }
87
+ return ((included === undefined || included.has(toolName)) && !excluded?.has(toolName));
88
+ });
89
+ }
90
+ function selectionToolName(serverName, tool, prefixToolNameWithServerName) {
91
+ const name = tool.name;
92
+ if (typeof name !== "string") {
93
+ return undefined;
94
+ }
95
+ const prefix = `${serverName}__`;
96
+ return prefixToolNameWithServerName && name.startsWith(prefix)
97
+ ? name.slice(prefix.length)
98
+ : name;
99
+ }
100
+ function assertSelectedToolsExist(serverName, availableNames, includeTools, excludeTools) {
101
+ const selected = [...(includeTools ?? []), ...(excludeTools ?? [])];
102
+ const unknown = selected.filter((toolName) => !availableNames.has(toolName));
103
+ if (unknown.length === 0) {
104
+ return;
105
+ }
106
+ const available = [...availableNames].sort().join(", ") || "(none)";
107
+ throw new Error(`MCP server "${serverName}" selected unknown tool(s): ${[...new Set(unknown)]
108
+ .sort()
109
+ .join(", ")}. Available tools: ${available}.`);
110
+ }
56
111
  /**
57
112
  * Reject duplicate tool names among the loaded MCP tools. Only reached when the
58
113
  * author opted out of server-name prefixing.
@@ -1 +1 @@
1
- {"version":3,"file":"connectors-manager.js","sourceRoot":"","sources":["../../src/runtime/connectors-manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAI/D;;;;;;;;GAQG;AACH,IAAI,WAA2C,CAAC;AAEhD;;;;;;GAMG;AACH,MAAM,UAAU,mBAAmB,CAAC,UAAgC;IAClE,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,WAAW,GAAG,wBAAwB,CAAC,UAAU,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;YACjE,WAAW,GAAG,SAAS,CAAC;YACxB,MAAM,KAAK,CAAC;QACd,CAAC,CAAC,CAAC;IACL,CAAC;IACD,OAAO,WAAW,CAAC;AACrB,CAAC;AAED,yDAAyD;AACzD,MAAM,UAAU,iCAAiC;IAC/C,WAAW,GAAG,SAAS,CAAC;AAC1B,CAAC;AAED;;;;;;GAMG;AACH,KAAK,UAAU,wBAAwB,CAAC,UAAgC;IACtE,MAAM,4BAA4B,GAAG,UAAU,CAAC,4BAA4B,IAAI,IAAI,CAAC;IAErF,MAAM,MAAM,GAAG,IAAI,oBAAoB,CAAC;QACtC,UAAU,EAAE,UAAU,CAAC,UAAU;QACjC,4BAA4B;QAC5B,gBAAgB,EAAE,UAAU,CAAC,gBAAgB,IAAI,IAAI;QACrD,wBAAwB,EAAE,UAAU,CAAC,wBAAwB,IAAI,IAAI;QACrE,iBAAiB,EAAE,UAAU,CAAC,iBAAiB,IAAI,OAAO;KAC3D,CAAC,CAAC;IAEH,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,QAAQ,EAAE,CAAC;IAEtC,8EAA8E;IAC9E,2EAA2E;IAC3E,IAAI,CAAC,4BAA4B,EAAE,CAAC;QAClC,0BAA0B,CAAC,KAAK,CAAC,CAAC;IACpC,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;GAGG;AACH,SAAS,0BAA0B,CAAC,KAAgB;IAClD,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,MAAM,UAAU,GAAG,IAAI,GAAG,EAAU,CAAC;IACrC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,IAAI,GAAI,IAA2B,CAAC,IAAI,CAAC;QAC/C,IAAI,OAAO,IAAI,KAAK,QAAQ;YAAE,SAAS;QACvC,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;YAAE,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACzC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACjB,CAAC;IACD,IAAI,UAAU,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;QACxB,MAAM,IAAI,KAAK,CACb,4BAA4B,CAAC,GAAG,UAAU,CAAC,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI;YAC/D,yEAAyE;YACzE,4DAA4D,CAC/D,CAAC;IACJ,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"connectors-manager.js","sourceRoot":"","sources":["../../src/runtime/connectors-manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAI/D;;;;;;;;GAQG;AACH,IAAI,WAA2C,CAAC;AAEhD;;;;;;GAMG;AACH,MAAM,UAAU,mBAAmB,CAAC,UAAgC;IAClE,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,WAAW,GAAG,wBAAwB,CAAC,UAAU,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;YACjE,WAAW,GAAG,SAAS,CAAC;YACxB,MAAM,KAAK,CAAC;QACd,CAAC,CAAC,CAAC;IACL,CAAC;IACD,OAAO,WAAW,CAAC;AACrB,CAAC;AAED,yDAAyD;AACzD,MAAM,UAAU,iCAAiC;IAC/C,WAAW,GAAG,SAAS,CAAC;AAC1B,CAAC;AAED;;;;;;GAMG;AACH,KAAK,UAAU,wBAAwB,CAAC,UAAgC;IACtE,MAAM,4BAA4B,GAAG,UAAU,CAAC,4BAA4B,IAAI,IAAI,CAAC;IAErF,MAAM,MAAM,GAAG,IAAI,oBAAoB,CAAC;QACtC,UAAU,EAAE,yBAAyB,CAAC,UAAU,CAAC,UAAU,CAAC;QAC5D,4BAA4B;QAC5B,gBAAgB,EAAE,UAAU,CAAC,gBAAgB,IAAI,IAAI;QACrD,wBAAwB,EAAE,UAAU,CAAC,wBAAwB,IAAI,IAAI;QACrE,iBAAiB,EAAE,UAAU,CAAC,iBAAiB,IAAI,OAAO;KAC3D,CAAC,CAAC;IAEH,MAAM,KAAK,GAAG,MAAM,iBAAiB,CACnC,MAAM,EACN,UAAU,CAAC,UAAU,EACrB,4BAA4B,CAC7B,CAAC;IAEF,8EAA8E;IAC9E,2EAA2E;IAC3E,IAAI,CAAC,4BAA4B,EAAE,CAAC;QAClC,0BAA0B,CAAC,KAAK,CAAC,CAAC;IACpC,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,yBAAyB,CAChC,OAA2C;IAE3C,OAAO,MAAM,CAAC,WAAW,CACvB,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,EAAE;QAC7C,MAAM,EACJ,YAAY,EAAE,aAAa,EAC3B,YAAY,EAAE,aAAa,EAC3B,GAAG,YAAY,EAChB,GAAG,MAAM,CAAC;QACX,OAAO,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;IAC9B,CAAC,CAAC,CACmC,CAAC;AAC1C,CAAC;AAED,KAAK,UAAU,iBAAiB,CAC9B,MAA4B,EAC5B,OAA2C,EAC3C,4BAAqC;IAErC,MAAM,KAAK,GAAc,EAAE,CAAC;IAC5B,KAAK,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QAC3D,MAAM,WAAW,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;QACtD,KAAK,CAAC,IAAI,CACR,GAAG,oBAAoB,CACrB,UAAU,EACV,MAAM,EACN,WAAW,EACX,4BAA4B,CAC7B,CACF,CAAC;IACJ,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,oBAAoB,CAC3B,UAAkB,EAClB,SAAiC,EACjC,KAAgB,EAChB,4BAAqC;IAErC,MAAM,YAAY,GAAG,SAAS,CAAC,YAAY,CAAC;IAC5C,MAAM,YAAY,GAAG,SAAS,CAAC,YAAY,CAAC;IAC5C,IAAI,CAAC,YAAY,IAAI,CAAC,YAAY,EAAE,CAAC;QACnC,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,cAAc,GAAG,IAAI,GAAG,CAC5B,KAAK;SACF,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,iBAAiB,CAAC,UAAU,EAAE,IAAI,EAAE,4BAA4B,CAAC,CAAC;SAChF,MAAM,CAAC,CAAC,IAAI,EAAkB,EAAE,CAAC,OAAO,IAAI,KAAK,QAAQ,CAAC,CAC9D,CAAC;IACF,wBAAwB,CAAC,UAAU,EAAE,cAAc,EAAE,YAAY,EAAE,YAAY,CAAC,CAAC;IAEjF,MAAM,QAAQ,GAAG,YAAY,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAClE,MAAM,QAAQ,GAAG,YAAY,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAClE,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE;QAC3B,MAAM,QAAQ,GAAG,iBAAiB,CAAC,UAAU,EAAE,IAAI,EAAE,4BAA4B,CAAC,CAAC;QACnF,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE,CAAC;YACjC,OAAO,QAAQ,KAAK,SAAS,CAAC;QAChC,CAAC;QACD,OAAO,CACL,CAAC,QAAQ,KAAK,SAAS,IAAI,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,QAAQ,CAAC,CAC/E,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,iBAAiB,CACxB,UAAkB,EAClB,IAAa,EACb,4BAAqC;IAErC,MAAM,IAAI,GAAI,IAA2B,CAAC,IAAI,CAAC;IAC/C,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC7B,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,MAAM,GAAG,GAAG,UAAU,IAAI,CAAC;IACjC,OAAO,4BAA4B,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;QAC5D,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC;QAC3B,CAAC,CAAC,IAAI,CAAC;AACX,CAAC;AAED,SAAS,wBAAwB,CAC/B,UAAkB,EAClB,cAA2B,EAC3B,YAAuB,EACvB,YAAuB;IAEvB,MAAM,QAAQ,GAAG,CAAC,GAAG,CAAC,YAAY,IAAI,EAAE,CAAC,EAAE,GAAG,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC,CAAC;IACpE,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC7E,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO;IACT,CAAC;IAED,MAAM,SAAS,GAAG,CAAC,GAAG,cAAc,CAAC,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,QAAQ,CAAC;IACpE,MAAM,IAAI,KAAK,CACb,eAAe,UAAU,+BAA+B,CAAC,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC;SAC1E,IAAI,EAAE;SACN,IAAI,CAAC,IAAI,CAAC,sBAAsB,SAAS,GAAG,CAChD,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,SAAS,0BAA0B,CAAC,KAAgB;IAClD,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,MAAM,UAAU,GAAG,IAAI,GAAG,EAAU,CAAC;IACrC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,IAAI,GAAI,IAA2B,CAAC,IAAI,CAAC;QAC/C,IAAI,OAAO,IAAI,KAAK,QAAQ;YAAE,SAAS;QACvC,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;YAAE,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACzC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACjB,CAAC;IACD,IAAI,UAAU,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;QACxB,MAAM,IAAI,KAAK,CACb,4BAA4B,CAAC,GAAG,UAAU,CAAC,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI;YAC/D,yEAAyE;YACzE,4DAA4D,CAC/D,CAAC;IACJ,CAAC;AACH,CAAC"}
@@ -146,6 +146,7 @@ class ContextHubPathBackend {
146
146
  }
147
147
  toRepoPath(path) {
148
148
  if ("repoFile" in this.target) {
149
+ this.assertFileRootPath(path);
149
150
  return ensureAbsolute(this.target.repoFile);
150
151
  }
151
152
  const suffix = trimSlashes(path);
@@ -195,6 +196,13 @@ class ContextHubPathBackend {
195
196
  ? `${this.target.visiblePrefix}/${suffix}`
196
197
  : this.target.visiblePrefix;
197
198
  }
199
+ assertFileRootPath(path) {
200
+ const normalized = ensureAbsolute(path);
201
+ if (normalized !== "/") {
202
+ const visible = "visibleFile" in this.target ? this.target.visibleFile : "/";
203
+ throw new Error(`Context Hub file mount ${visible} does not contain ${normalized}`);
204
+ }
205
+ }
198
206
  }
199
207
  async function resolveBackendFactory(backend, runtime) {
200
208
  return typeof backend === "function" ? await backend(runtime) : backend;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/runtime/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/runtime/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAIhG,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAI7D,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAE3D;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,UAA+B,EAC/B,MAAyB,EACzB,OAA6B;IAE7B,MAAM,EAAE,YAAY,EAAE,WAAW,EAAE,SAAS,GAAG,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,GACtF,OAAO,IAAI,EAAE,CAAC;IAEhB,MAAM,MAAM,GAA4B;QACtC,GAAG,UAAU,CAAC,MAAM;KACrB,CAAC;IAEF;;;;;;;OAOG;IACH,MAAM,eAAe,GAAG,UAAU,CAAC,CAAC,CAAC,mBAAmB,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAEjF,MAAM,cAAc,GAAG,OAAO,CAAC,CAAC,CAAC,qBAAqB,CAAC,OAAO,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAEjG,IAAI,WAAW,EAAE,CAAC;QAChB,MAAM,cAAc,GAAG,IAAI,iBAAiB,CAAC,WAAW,CAAC,CAAC;QAC1D,MAAM,SAAS,GAAG,MAAM,gBAAgB,CAAC,cAAc,CAAC,CAAC;QACzD,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;YAC5B,MAAM,CAAC,YAAY,GAAG,SAAS,CAAC;QAClC,CAAC;QACD,MAAM,CAAC,OAAO,GAAG,qBAAqB,CAAC,cAAc,EAAE,cAAc,CAAC,CAAC;QACvE,MAAM,CAAC,WAAW,GAAG,yBAAyB,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;QACnE,IAAI,SAAS,EAAE,CAAC;YACd,MAAM,CAAC,MAAM,GAAG,CAAC,UAAU,CAAC,CAAC;QAC/B,CAAC;QACD,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,CAAC;YAC9B,MAAM,CAAC,MAAM,GAAG,CAAC,qBAAqB,CAAC,CAAC;QAC1C,CAAC;IACH,CAAC;SAAM,CAAC;QACN,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;YAC/B,MAAM,CAAC,YAAY,GAAG,YAAY,CAAC;QACrC,CAAC;QACD,IAAI,cAAc,EAAE,CAAC;YACnB,MAAM,CAAC,OAAO,GAAG,cAAc,CAAC;QAClC,CAAC;IACH,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,eAAe,CAAC;IACvC,IAAI,QAAQ,EAAE,CAAC;QACb,MAAM,aAAa,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;QACtE,MAAM,CAAC,KAAK,GAAG,CAAC,GAAG,aAAa,EAAE,GAAG,QAAQ,CAAC,CAAC;IACjD,CAAC;IAED,OAAO,eAAe,CAAC,MAAM,CAAC,CAAC;AACjC,CAAC;AAiCD,KAAK,UAAU,gBAAgB,CAAC,OAAwB;IACtD,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;IACtD,IAAI,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;QACjD,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,IAAI,OAAO,MAAM,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;QACvC,OAAO,MAAM,CAAC,OAAO,CAAC;IACxB,CAAC;IACD,OAAO,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;AAClD,CAAC;AAED,SAAS,qBAAqB,CAC5B,OAAoD,EACpD,WAA+B,EAC/B,WAAyC;IAEzC,OAAO,CAAC,OAAgB,EAAE,EAAE,CAC1B,qBAAqB,CACnB,OAAO,EACP,WAAW,EACX,wBAAwB,CAAC,OAAO,CAAC,IAAI,WAAW,CACjD,CAAC;AACN,CAAC;AAED,SAAS,qBAAqB,CAAC,cAAuB,EAAE,cAAmC;IACzF,6EAA6E;IAC7E,2EAA2E;IAC3E,MAAM,MAAM,GAAG,oBAAoB,CACjC,cAAgC,CACgB,CAAC;IACnD,IAAI,cAAc,EAAE,CAAC;QACnB,OAAO,KAAK,EAAE,OAAgB,EAAE,EAAE,CAChC,IAAI,gBAAgB,CAClB,CAAC,MAAM,qBAAqB,CAAC,cAAc,EAAE,OAAO,CAAC,CAAuB,EAC5E,MAAM,CACP,CAAC;IACN,CAAC;IAED,OAAO,GAAG,EAAE,CAAC,IAAI,gBAAgB,CAAC,IAAI,YAAY,EAAE,EAAE,MAAM,CAAC,CAAC;AAChE,CAAC;AAED,SAAS,oBAAoB,CAAC,cAA8B;IAC1D,OAAO;QACL,kBAAkB,EAAE,qBAAqB,CAAC,IAAI,CAAC,cAAc,EAAE,iBAAiB,EAAE,kBAAkB,CAAC;QACrG,UAAU,EAAE,qBAAqB,CAAC,SAAS,CAAC,cAAc,EAAE,QAAQ,EAAE,SAAS,CAAC;QAChF,YAAY,EAAE,qBAAqB,CAAC,SAAS,CAAC,cAAc,EAAE,UAAU,EAAE,WAAW,CAAC;KACvF,CAAC;AACJ,CAAC;AAED,MAAM,qBAAqB;IAEN;IACA;IAFnB,YACmB,OAAuB,EACvB,MAAiG;QADjG,YAAO,GAAP,OAAO,CAAgB;QACvB,WAAM,GAAN,MAAM,CAA2F;IACjH,CAAC;IAEJ,MAAM,CAAC,SAAS,CAAC,OAAuB,EAAE,UAAkB,EAAE,aAAqB;QACjF,OAAO,IAAI,qBAAqB,CAAC,OAAO,EAAE;YACxC,UAAU,EAAE,WAAW,CAAC,UAAU,CAAC;YACnC,aAAa,EAAE,kBAAkB,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC;SACjE,CAAC,CAAC;IACL,CAAC;IAED,MAAM,CAAC,IAAI,CAAC,OAAuB,EAAE,QAAgB,EAAE,WAAmB;QACxE,OAAO,IAAI,qBAAqB,CAAC,OAAO,EAAE;YACxC,QAAQ,EAAE,WAAW,CAAC,QAAQ,CAAC;YAC/B,WAAW,EAAE,cAAc,CAAC,WAAW,CAAC;SACzC,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,EAAE,CAAC,IAAI,GAAG,GAAG;QACjB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;QAChE,OAAO,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC;IAC3C,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,QAAgB,EAAE,MAAe,EAAE,KAAc;QAC1D,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;IACrE,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,QAAgB;QAC5B,OAAO,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC7D,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,OAAe,EAAE,IAAoB,EAAE,IAAoB;QACpE,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CACxC,OAAO,EACP,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAClE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CACpC,CAAC;QACF,OAAO,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC;IAC3C,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,OAAe,EAAE,IAAI,GAAG,GAAG;QACpC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;QAC5F,OAAO,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC;IAC3C,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,QAAgB,EAAE,OAAe;QAC3C,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC,CAAC;QAChF,OAAO,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAChD,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,QAAgB,EAAE,SAAiB,EAAE,SAAiB,EAAE,UAAU,GAAG,KAAK;QACnF,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CACxC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EACzB,SAAS,EACT,SAAS,EACT,UAAU,CACX,CAAC;QACF,OAAO,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAChD,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,KAAkC;QAClD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,CAC/C,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,OAAO,CAAyB,CAAC,CACzF,CAAC;QACF,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC;IAC7F,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,KAAe;QACjC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAChG,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC;IACxF,CAAC;IAEO,QAAQ,CAAiC,MAAS;QACxD,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAChC,IAAI,OAAO,EAAE,KAAK,UAAU,EAAE,CAAC;YAC7B,MAAM,IAAI,KAAK,CAAC,wCAAwC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAC5E,CAAC;QACD,OAAO,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAmC,CAAC;IACjE,CAAC;IAEO,UAAU,CAAC,IAAY;QAC7B,IAAI,UAAU,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAC9B,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;YAC9B,OAAO,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC9C,CAAC;QACD,MAAM,MAAM,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;QACjC,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,IAAI,MAAM,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC;QACvF,OAAO,cAAc,CAAC,MAAM,CAAC,CAAC;IAChC,CAAC;IAEO,UAAU,CAAC,OAAe;QAChC,IAAI,UAAU,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAC9B,OAAO,OAAO,CAAC;QACjB,CAAC;QACD,MAAM,MAAM,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC;QACpC,OAAO,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,IAAI,MAAM,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC;IACjF,CAAC;IAEO,oBAAoB,CAAoC,MAAS;QACvE,MAAM,IAAI,GAAG,EAAE,GAAG,MAAM,EAAE,CAAC;QAC3B,cAAc,CAAC,IAAI,EAAE,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC;QACjE,cAAc,CAAC,IAAI,EAAE,SAAS,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC;QACnE,cAAc,CAAC,IAAI,EAAE,SAAS,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC;QACnE,OAAO,IAAI,CAAC;IACd,CAAC;IAEO,eAAe,CAAoC,MAAS,EAAE,WAAmB;QACvF,IAAI,CAAC,CAAC,MAAM,IAAI,MAAM,CAAC,EAAE,CAAC;YACxB,OAAO,MAAM,CAAC;QAChB,CAAC;QACD,OAAO,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,EAAE,CAAC;IAC9D,CAAC;IAEO,YAAY,CAAC,IAAY;QAC/B,MAAM,UAAU,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC;QACxC,IAAI,UAAU,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAC9B,OAAO,UAAU,KAAK,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC;QAChF,CAAC;QACD,MAAM,MAAM,GAAG,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QACtD,IAAI,UAAU,KAAK,MAAM,EAAE,CAAC;YAC1B,OAAO,GAAG,CAAC;QACb,CAAC;QACD,IAAI,UAAU,CAAC,UAAU,CAAC,GAAG,MAAM,GAAG,CAAC,EAAE,CAAC;YACxC,OAAO,cAAc,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;QACzD,CAAC;QACD,OAAO,UAAU,CAAC;IACpB,CAAC;IAEO,aAAa,CAAC,IAAY;QAChC,IAAI,aAAa,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YACjC,OAAO,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC;QACjC,CAAC;QACD,MAAM,MAAM,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;QACjC,OAAO,MAAM;YACX,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,aAAa,IAAI,MAAM,EAAE;YAC1C,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC;IAChC,CAAC;IAEO,kBAAkB,CAAC,IAAY;QACrC,MAAM,UAAU,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC;QACxC,IAAI,UAAU,KAAK,GAAG,EAAE,CAAC;YACvB,MAAM,OAAO,GAAG,aAAa,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC;YAC7E,MAAM,IAAI,KAAK,CAAC,0BAA0B,OAAO,qBAAqB,UAAU,EAAE,CAAC,CAAC;QACtF,CAAC;IACH,CAAC;CACF;AAED,KAAK,UAAU,qBAAqB,CAAC,OAAgB,EAAE,OAAgB;IACrE,OAAO,OAAO,OAAO,KAAK,UAAU,CAAC,CAAC,CAAC,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;AAC1E,CAAC;AAED,SAAS,yBAAyB,CAAC,QAAiB;IAClD,MAAM,OAAO,GAAG;QACd;YACE,UAAU,EAAE,CAAC,OAAO,CAAC;YACrB,KAAK,EAAE,CAAC,kBAAkB,EAAE,YAAY,CAAC;YACzC,IAAI,EAAE,MAAM;SACb;KACF,CAAC;IACF,OAAO,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,EAAE,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;AACvE,CAAC;AAED,SAAS,wBAAwB,CAAC,OAAgB;IAChD,MAAM,EAAE,GAAG,OAAkC,CAAC;IAC9C,IAAI,EAAE,CAAC,MAAM,EAAE,CAAC;QACd,OAAO,EAAE,CAAC,MAAM,CAAC;IACnB,CAAC;IACD,IAAI,EAAE,CAAC,YAAY,EAAE,CAAC;QACpB,OAAO,EAAE,YAAY,EAAE,EAAE,CAAC,YAAY,EAAE,CAAC;IAC3C,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,cAAc,CACrB,MAA+B,EAC/B,GAAoC,EACpC,KAA+B;IAE/B,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;IAC1B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO;IACT,CAAC;IACD,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;QAChC,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YACxC,OAAO,KAAK,CAAC;QACf,CAAC;QACD,MAAM,IAAI,GAAG,KAAiB,CAAC;QAC/B,OAAO,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IACpF,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,cAAc,CAAC,IAAY;IAClC,OAAO,IAAI,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC;AACjC,CAAC;AAED,SAAS,WAAW,CAAC,IAAY;IAC/B,OAAO,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;AACxC,CAAC;AAED,SAAS,kBAAkB,CAAC,IAAY;IACtC,OAAO,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AAC5D,CAAC"}
@@ -0,0 +1,90 @@
1
+ import type { ChannelDestination } from "./types.js";
2
+ /**
3
+ * The managed `schedules/` declaration primitive.
4
+ *
5
+ * A schedule is a proactive, time-triggered agent run. Files under
6
+ * `schedules/*.ts` export a named `schedule` created with `defineSchedule(...)`;
7
+ * the compiler materializes those declarations into LangGraph cron entries.
8
+ */
9
+ /** Thread behavior for scheduled runs. */
10
+ export type ScheduleThreadConfig = {
11
+ /**
12
+ * Create a fresh thread for each scheduled run.
13
+ *
14
+ * This is the default and recommended behavior for reports, digests, and
15
+ * background sweeps. MDA emits `on_run_completed: "delete"` so the
16
+ * temporary thread is cleaned up after the run completes.
17
+ */
18
+ mode?: "ephemeral";
19
+ } | {
20
+ /**
21
+ * Reuse the same durable thread across scheduled runs.
22
+ *
23
+ * Use this only when the schedule intentionally needs accumulated thread
24
+ * state across invocations.
25
+ */
26
+ mode: "persistent";
27
+ /**
28
+ * Stable thread id to reuse for every run of this schedule.
29
+ *
30
+ * Required when `mode` is `"persistent"`.
31
+ */
32
+ id: string;
33
+ };
34
+ /** Optional channel delivery target for a scheduled run result. */
35
+ export interface ScheduleDeliveryTarget {
36
+ /**
37
+ * Configured outbound channel id.
38
+ *
39
+ * For the first channel integrations this may be a provider name such as
40
+ * `"slack"`. If a deployment configures multiple channels of the same
41
+ * provider, this can become the file-derived channel id.
42
+ */
43
+ channel: "slack" | "discord" | "email" | string;
44
+ /**
45
+ * Explicit destination in the configured channel.
46
+ *
47
+ * Schedules have no originating channel or thread, so `current_thread` is not
48
+ * valid here; provide a provider-native channel or provider-native thread.
49
+ */
50
+ to: Exclude<ChannelDestination, {
51
+ type: "current_thread";
52
+ }>;
53
+ /**
54
+ * Whether MDA should automatically post the agent's final response to
55
+ * `to`.
56
+ *
57
+ * Defaults to `true` once channel delivery is supported.
58
+ */
59
+ autoPost?: boolean;
60
+ }
61
+ /** Configuration accepted by {@link defineSchedule}. */
62
+ export interface ScheduleConfig {
63
+ /**
64
+ * Standard 5-field cron expression:
65
+ * minute hour day-of-month month day-of-week.
66
+ */
67
+ cron: string;
68
+ /**
69
+ * Optional IANA timezone. LangSmith crons default to UTC; when supplied, this
70
+ * is passed through to the underlying cron definition.
71
+ */
72
+ timezone?: string;
73
+ /** Natural-language prompt sent to the agent when the schedule fires. */
74
+ prompt?: string;
75
+ /** Structured input sent to the agent when the schedule fires. */
76
+ input?: unknown;
77
+ /** Optional thread behavior. Defaults to `{ mode: "ephemeral" }`. */
78
+ thread?: ScheduleThreadConfig;
79
+ /** Optional delivery target for a future channel auto-post integration. */
80
+ deliverTo?: ScheduleDeliveryTarget;
81
+ }
82
+ /** The object exported from `schedules/*.ts`. */
83
+ export interface ScheduleDefinition extends ScheduleConfig {
84
+ readonly kind: "schedule";
85
+ }
86
+ /**
87
+ * Declare a managed schedule that the compiler provisions as a LangGraph cron.
88
+ */
89
+ export declare function defineSchedule(config: ScheduleConfig): ScheduleDefinition;
90
+ //# sourceMappingURL=schedules.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schedules.d.ts","sourceRoot":"","sources":["../src/schedules.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAErD;;;;;;GAMG;AAEH,0CAA0C;AAC1C,MAAM,MAAM,oBAAoB,GAC5B;IACE;;;;;;OAMG;IACH,IAAI,CAAC,EAAE,WAAW,CAAC;CACpB,GACD;IACE;;;;;OAKG;IACH,IAAI,EAAE,YAAY,CAAC;IACnB;;;;OAIG;IACH,EAAE,EAAE,MAAM,CAAC;CACZ,CAAC;AAEN,mEAAmE;AACnE,MAAM,WAAW,sBAAsB;IACrC;;;;;;OAMG;IACH,OAAO,EAAE,OAAO,GAAG,SAAS,GAAG,OAAO,GAAG,MAAM,CAAC;IAChD;;;;;OAKG;IACH,EAAE,EAAE,OAAO,CAAC,kBAAkB,EAAE;QAAE,IAAI,EAAE,gBAAgB,CAAA;KAAE,CAAC,CAAC;IAC5D;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,wDAAwD;AACxD,MAAM,WAAW,cAAc;IAC7B;;;OAGG;IACH,IAAI,EAAE,MAAM,CAAC;IACb;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,yEAAyE;IACzE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,kEAAkE;IAClE,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,qEAAqE;IACrE,MAAM,CAAC,EAAE,oBAAoB,CAAC;IAC9B,2EAA2E;IAC3E,SAAS,CAAC,EAAE,sBAAsB,CAAC;CACpC;AAED,iDAAiD;AACjD,MAAM,WAAW,kBAAmB,SAAQ,cAAc;IACxD,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;CAC3B;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,cAAc,GAAG,kBAAkB,CAGzE"}
@@ -0,0 +1,38 @@
1
+ /**
2
+ * Declare a managed schedule that the compiler provisions as a LangGraph cron.
3
+ */
4
+ export function defineSchedule(config) {
5
+ validateScheduleConfig(config);
6
+ return { kind: "schedule", ...config };
7
+ }
8
+ function validateScheduleConfig(config) {
9
+ const provided = config;
10
+ if (typeof provided.cron !== "string" || provided.cron.trim().split(/\s+/).length !== 5) {
11
+ throw new Error("defineSchedule(...) requires `cron` to be a standard 5-field cron expression.");
12
+ }
13
+ const hasPrompt = typeof provided.prompt === "string";
14
+ const hasInput = "input" in provided && provided.input !== undefined;
15
+ if (hasPrompt === hasInput) {
16
+ throw new Error("defineSchedule(...) requires exactly one of `prompt` or `input`.");
17
+ }
18
+ if (hasPrompt && provided.prompt.trim().length === 0) {
19
+ throw new Error("defineSchedule(...) requires `prompt` to be non-empty.");
20
+ }
21
+ validateThread(provided.thread);
22
+ }
23
+ function validateThread(thread) {
24
+ if (thread === undefined)
25
+ return;
26
+ if (thread === null || typeof thread !== "object") {
27
+ throw new Error("defineSchedule(...) requires `thread` to be an object when provided.");
28
+ }
29
+ const config = thread;
30
+ const mode = config.mode ?? "ephemeral";
31
+ if (mode !== "ephemeral" && mode !== "persistent") {
32
+ throw new Error('defineSchedule(...) requires `thread.mode` to be "ephemeral" or "persistent".');
33
+ }
34
+ if (mode === "persistent" && (typeof config.id !== "string" || config.id.trim().length === 0)) {
35
+ throw new Error("defineSchedule(...) requires `thread.id` for persistent schedules.");
36
+ }
37
+ }
38
+ //# sourceMappingURL=schedules.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schedules.js","sourceRoot":"","sources":["../src/schedules.ts"],"names":[],"mappings":"AA2FA;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,MAAsB;IACnD,sBAAsB,CAAC,MAAM,CAAC,CAAC;IAC/B,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,MAAM,EAAE,CAAC;AACzC,CAAC;AAED,SAAS,sBAAsB,CAAC,MAAsB;IACpD,MAAM,QAAQ,GAAG,MAA4C,CAAC;IAE9D,IAAI,OAAO,QAAQ,CAAC,IAAI,KAAK,QAAQ,IAAI,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxF,MAAM,IAAI,KAAK,CACb,+EAA+E,CAChF,CAAC;IACJ,CAAC;IAED,MAAM,SAAS,GAAG,OAAO,QAAQ,CAAC,MAAM,KAAK,QAAQ,CAAC;IACtD,MAAM,QAAQ,GAAG,OAAO,IAAI,QAAQ,IAAI,QAAQ,CAAC,KAAK,KAAK,SAAS,CAAC;IACrE,IAAI,SAAS,KAAK,QAAQ,EAAE,CAAC;QAC3B,MAAM,IAAI,KAAK,CAAC,kEAAkE,CAAC,CAAC;IACtF,CAAC;IACD,IAAI,SAAS,IAAK,QAAQ,CAAC,MAAiB,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACjE,MAAM,IAAI,KAAK,CAAC,wDAAwD,CAAC,CAAC;IAC5E,CAAC;IAED,cAAc,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;AAClC,CAAC;AAED,SAAS,cAAc,CAAC,MAAe;IACrC,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO;IACjC,IAAI,MAAM,KAAK,IAAI,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;QAClD,MAAM,IAAI,KAAK,CAAC,sEAAsE,CAAC,CAAC;IAC1F,CAAC;IACD,MAAM,MAAM,GAAG,MAA0C,CAAC;IAC1D,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,IAAI,WAAW,CAAC;IACxC,IAAI,IAAI,KAAK,WAAW,IAAI,IAAI,KAAK,YAAY,EAAE,CAAC;QAClD,MAAM,IAAI,KAAK,CAAC,+EAA+E,CAAC,CAAC;IACnG,CAAC;IACD,IAAI,IAAI,KAAK,YAAY,IAAI,CAAC,OAAO,MAAM,CAAC,EAAE,KAAK,QAAQ,IAAI,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,CAAC,EAAE,CAAC;QAC9F,MAAM,IAAI,KAAK,CAAC,oEAAoE,CAAC,CAAC;IACxF,CAAC;AACH,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "managed-deepagents",
3
- "version": "0.0.3-dev.23",
3
+ "version": "0.0.3-dev.24",
4
4
  "description": "Managed Deep Agents — the `defineDeepAgent` authoring interface plus the CLI that compiles and deploys a code-first Deep Agent repository to a managed LangGraph runtime.",
5
5
  "keywords": [
6
6
  "langchain",
@@ -50,12 +50,12 @@
50
50
  "deepagents": "^1.10.4"
51
51
  },
52
52
  "optionalDependencies": {
53
- "@langchain/managed-deepagents-darwin-arm64": "0.0.3-dev.23",
54
- "@langchain/managed-deepagents-darwin-x64": "0.0.3-dev.23",
55
- "@langchain/managed-deepagents-linux-arm64": "0.0.3-dev.23",
56
- "@langchain/managed-deepagents-linux-x64": "0.0.3-dev.23",
57
- "@langchain/managed-deepagents-win32-x64": "0.0.3-dev.23",
58
- "@langchain/managed-deepagents-win32-arm64": "0.0.3-dev.23"
53
+ "@langchain/managed-deepagents-darwin-arm64": "0.0.3-dev.24",
54
+ "@langchain/managed-deepagents-darwin-x64": "0.0.3-dev.24",
55
+ "@langchain/managed-deepagents-linux-arm64": "0.0.3-dev.24",
56
+ "@langchain/managed-deepagents-linux-x64": "0.0.3-dev.24",
57
+ "@langchain/managed-deepagents-win32-x64": "0.0.3-dev.24",
58
+ "@langchain/managed-deepagents-win32-arm64": "0.0.3-dev.24"
59
59
  },
60
60
  "devDependencies": {
61
61
  "@types/node": "^26.0.1",