managed-deepagents 0.9.6-dev.2 → 0.9.6-dev.21
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 +9 -15
- 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/identity-context.d.ts.map +1 -1
- package/dist/channels/trigger/identity-context.js +2 -5
- package/dist/channels/trigger/identity-context.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 +135 -21
- 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 +36 -12
- package/dist/connections.d.ts.map +1 -1
- package/dist/connections.js +125 -30
- 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/loopback.d.ts +1 -1
- package/dist/identity/loopback.d.ts.map +1 -1
- package/dist/identity/loopback.js +3 -2
- package/dist/identity/loopback.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/slack/links.js +3 -2
- package/dist/identity/slack/links.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 +7 -3
- 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/graph-build-timing.d.ts +30 -0
- package/dist/runtime/graph-build-timing.d.ts.map +1 -0
- package/dist/runtime/graph-build-timing.js +50 -0
- package/dist/runtime/graph-build-timing.js.map +1 -0
- 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 +97 -43
- package/dist/runtime/index.js.map +1 -1
- package/dist/runtime/langsmith-env.d.ts +19 -0
- package/dist/runtime/langsmith-env.d.ts.map +1 -0
- package/dist/runtime/langsmith-env.js +38 -0
- package/dist/runtime/langsmith-env.js.map +1 -0
- 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 +40 -18
- 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 +165 -7
- 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/telemetry/metadata.d.ts.map +1 -1
- package/dist/telemetry/metadata.js +4 -4
- package/dist/telemetry/metadata.js.map +1 -1
- package/dist/telemetry/otel/exporter.d.ts.map +1 -1
- package/dist/telemetry/otel/exporter.js +3 -3
- package/dist/telemetry/otel/exporter.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 +26 -12
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Async subagents: subagent specs marked `async: true` that MDA builds as their own graph.
|
|
3
|
+
*/
|
|
4
|
+
import { GENERAL_PURPOSE_SUBAGENT } from "deepagents";
|
|
5
|
+
/** The general-purpose subagent, which served agents also get async. */
|
|
6
|
+
export const GENERAL_PURPOSE = "general-purpose";
|
|
7
|
+
/** The agent's skills, which deepagents' default general-purpose subagent loads. */
|
|
8
|
+
const AGENT_SKILLS = "/skills/";
|
|
9
|
+
/** Spec keys that override the lead's value; unset ones inherit it, like a sync subagent. */
|
|
10
|
+
const INHERITED_KEYS = [
|
|
11
|
+
"model",
|
|
12
|
+
"tools",
|
|
13
|
+
"permissions",
|
|
14
|
+
"interruptOn",
|
|
15
|
+
];
|
|
16
|
+
/** Spec keys the lead never passes down, like a sync subagent. */
|
|
17
|
+
const OWN_KEYS = ["middleware", "responseFormat"];
|
|
18
|
+
/** Spec keys passed through to deepagents' `AsyncSubAgent`. */
|
|
19
|
+
const RUN_OPTION_KEYS = [
|
|
20
|
+
"webhook",
|
|
21
|
+
"notifyParent",
|
|
22
|
+
"updateStrategy",
|
|
23
|
+
"mode",
|
|
24
|
+
];
|
|
25
|
+
/** Definition key for an async subagent's own skill sources (deepagents `SubAgent.skills`). */
|
|
26
|
+
export const SUBAGENT_SKILLS_KEY = "subagentSkills";
|
|
27
|
+
/** Whether `spec` is a subagent spec marked `async: true`. */
|
|
28
|
+
export function isAsyncSubagent(spec) {
|
|
29
|
+
return (typeof spec === "object" && spec !== null && spec.async === true);
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Add an async general-purpose subagent, unless one is declared already.
|
|
33
|
+
*
|
|
34
|
+
* It copies a declared sync general-purpose subagent, or else deepagents'
|
|
35
|
+
* default, so the lead can run the same agent blocking or in the background.
|
|
36
|
+
*/
|
|
37
|
+
export function withAsyncGeneralPurpose(definition) {
|
|
38
|
+
const subagents = specs(definition);
|
|
39
|
+
if (subagents.some((s) => isAsyncSubagent(s) && s.name === GENERAL_PURPOSE)) {
|
|
40
|
+
return definition;
|
|
41
|
+
}
|
|
42
|
+
const declared = subagents
|
|
43
|
+
.filter(isDeclarative)
|
|
44
|
+
.find((s) => s.name === GENERAL_PURPOSE);
|
|
45
|
+
// A declared one keeps its own `skills`; the default loads the agent's, like deepagents'.
|
|
46
|
+
const spec = declared ?? {
|
|
47
|
+
...GENERAL_PURPOSE_SUBAGENT,
|
|
48
|
+
skills: [AGENT_SKILLS],
|
|
49
|
+
};
|
|
50
|
+
return withSubagents(definition, [...subagents, { ...spec, async: true }]);
|
|
51
|
+
}
|
|
52
|
+
/** Point each async subagent at the graph MDA built for it. */
|
|
53
|
+
export function routeAsyncSubagents(definition, graphs) {
|
|
54
|
+
const subagents = specs(definition);
|
|
55
|
+
if (!subagents.some(isAsyncSubagent))
|
|
56
|
+
return definition;
|
|
57
|
+
return withSubagents(definition, subagents.map((spec) => isAsyncSubagent(spec) ? route(spec, graphs) : spec));
|
|
58
|
+
}
|
|
59
|
+
/** Refuse async subagents in eval, which has no Agent Server to launch them on. */
|
|
60
|
+
export function rejectAsyncSubagents(definition) {
|
|
61
|
+
const spec = specs(definition).find(isAsyncSubagent);
|
|
62
|
+
if (spec) {
|
|
63
|
+
throw new Error(`async subagent ${JSON.stringify(spec.name)} is not supported in \`mda eval\`: ` +
|
|
64
|
+
"there is no Agent Server to launch it on");
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
/** Derive the definition of async subagent `name` from the lead's definition. */
|
|
68
|
+
export function asyncSubagentDefinition(definition, name) {
|
|
69
|
+
const spec = find(definition, name);
|
|
70
|
+
const config = { ...configOf(definition) };
|
|
71
|
+
for (const key of ["subagents", ...OWN_KEYS])
|
|
72
|
+
delete config[key];
|
|
73
|
+
for (const key of [...INHERITED_KEYS, ...OWN_KEYS]) {
|
|
74
|
+
if (key in spec)
|
|
75
|
+
config[key] = spec[key];
|
|
76
|
+
}
|
|
77
|
+
// Keep the lead's skills mount; load only the spec's `skills`. The lead's memory
|
|
78
|
+
// and instructions.md aren't the subagent's.
|
|
79
|
+
config[SUBAGENT_SKILLS_KEY] = Array.isArray(spec.skills)
|
|
80
|
+
? [...spec.skills]
|
|
81
|
+
: [];
|
|
82
|
+
config.name = name;
|
|
83
|
+
config.memory = null;
|
|
84
|
+
config.instructions =
|
|
85
|
+
typeof spec.systemPrompt === "string" ? spec.systemPrompt : "";
|
|
86
|
+
return { ...definition, config };
|
|
87
|
+
}
|
|
88
|
+
function route(spec, graphs) {
|
|
89
|
+
const name = spec.name;
|
|
90
|
+
const graphId = typeof name === "string" ? graphs[name] : undefined;
|
|
91
|
+
if (graphId === undefined) {
|
|
92
|
+
throw new Error(`async subagent ${JSON.stringify(name)} has no graph. Declare it inline in ` +
|
|
93
|
+
"defineDeepAgent({ subagents: [...] }) with a literal `name` and " +
|
|
94
|
+
"`async: true` so `mda` can build it.");
|
|
95
|
+
}
|
|
96
|
+
const routed = {
|
|
97
|
+
name,
|
|
98
|
+
description: spec.description ?? "",
|
|
99
|
+
graphId,
|
|
100
|
+
};
|
|
101
|
+
for (const key of RUN_OPTION_KEYS) {
|
|
102
|
+
if (key in spec)
|
|
103
|
+
routed[key] = spec[key];
|
|
104
|
+
}
|
|
105
|
+
return routed;
|
|
106
|
+
}
|
|
107
|
+
function specs(definition) {
|
|
108
|
+
const subagents = configOf(definition).subagents;
|
|
109
|
+
return Array.isArray(subagents) ? subagents : [];
|
|
110
|
+
}
|
|
111
|
+
/** A definition's config as plain fields, to read and copy keys by name. */
|
|
112
|
+
function configOf(definition) {
|
|
113
|
+
return definition.config;
|
|
114
|
+
}
|
|
115
|
+
function withSubagents(definition, subagents) {
|
|
116
|
+
return {
|
|
117
|
+
...definition,
|
|
118
|
+
config: { ...definition.config, subagents },
|
|
119
|
+
};
|
|
120
|
+
}
|
|
121
|
+
/** A sync spec MDA can copy: not prebuilt (`runnable`), async, or a fork of the lead. */
|
|
122
|
+
function isDeclarative(spec) {
|
|
123
|
+
return (typeof spec === "object" &&
|
|
124
|
+
spec !== null &&
|
|
125
|
+
!("runnable" in spec) &&
|
|
126
|
+
!("graphId" in spec) &&
|
|
127
|
+
spec.mode !== "fork" &&
|
|
128
|
+
!isAsyncSubagent(spec));
|
|
129
|
+
}
|
|
130
|
+
function find(definition, name) {
|
|
131
|
+
const spec = specs(definition)
|
|
132
|
+
.filter(isAsyncSubagent)
|
|
133
|
+
.find((s) => s.name === name);
|
|
134
|
+
if (!spec) {
|
|
135
|
+
throw new Error(`async subagent ${JSON.stringify(name)} is not declared in defineDeepAgent({ subagents: [...] })`);
|
|
136
|
+
}
|
|
137
|
+
return spec;
|
|
138
|
+
}
|
|
139
|
+
//# sourceMappingURL=async-subagents.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"async-subagents.js","sourceRoot":"","sources":["../../src/runtime/async-subagents.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../src/runtime/auth.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,IAAI,EAGL,MAAM,+BAA+B,CAAC;AACvC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAGvE,OAAO,EACL,KAAK,cAAc,EACnB,KAAK,kBAAkB,EAEvB,KAAK,eAAe,EACrB,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../src/runtime/auth.ts"],"names":[],"mappings":"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"}
|
package/dist/runtime/auth.js
CHANGED
|
@@ -3,8 +3,11 @@ import { Auth, HTTPException, isStudioUser, } from "@langchain/langgraph-sdk/aut
|
|
|
3
3
|
import { isTrustedSourceProvider } from "../channels/source-providers.js";
|
|
4
4
|
import {} from "../identity/index.js";
|
|
5
5
|
import { buildRuntimeIdentity, runtimeUserId } from "./identity-runtime.js";
|
|
6
|
+
import { logger } from "./log.js";
|
|
7
|
+
import { THREAD_CONVERSATION_METADATA, hasThreadRecordKeys, parseThreadRecord, stripThreadRecordKeys, } from "./thread-record.js";
|
|
6
8
|
import { resolveValidatedTokenUser } from "./validated-token.js";
|
|
7
|
-
import { authorizeSchedule, scheduleAccess, scheduleHandoffUser, } from "./schedule-auth.js";
|
|
9
|
+
import { authorizeSchedule, isScheduleThreadRecord, scheduleAccess, scheduleHandoffUser, threadHandoffGrant, threadHandoffUser, } from "./schedule-auth.js";
|
|
10
|
+
import { isRecord } from "../values.js";
|
|
8
11
|
/**
|
|
9
12
|
* Reserved transport for the trusted-backend ingress mode. User identity
|
|
10
13
|
* travels as reserved headers (mapped into `config.configurable` by the generated
|
|
@@ -77,6 +80,9 @@ export function buildManagedAuth(identity) {
|
|
|
77
80
|
const scheduleUser = scheduleHandoffUser(request);
|
|
78
81
|
if (scheduleUser)
|
|
79
82
|
return scheduleUser;
|
|
83
|
+
const handoffUser = threadHandoffUser(request);
|
|
84
|
+
if (handoffUser)
|
|
85
|
+
return handoffUser;
|
|
80
86
|
// Provider-signed channel Events must reach the public HTTP handler before
|
|
81
87
|
// MDA ingress can succeed (Slack cannot present x-mda-ingress-secret).
|
|
82
88
|
if (isChannelEventsRequest(request)) {
|
|
@@ -98,19 +104,43 @@ export function buildManagedAuth(identity) {
|
|
|
98
104
|
return resolveValidatedTokenUser(cfg, http, request);
|
|
99
105
|
});
|
|
100
106
|
// Let Studio inspect every deployment thread so channel-triggered runs and
|
|
101
|
-
// their interrupts are visible there
|
|
107
|
+
// their interrupts are visible there, and answer interrupts on any thread,
|
|
108
|
+
// which channels link to. Keep other mutations owner-scoped: Studio
|
|
102
109
|
// identity is reachable by any holder of a workspace LangSmith API key, so
|
|
103
|
-
// exempting all thread actions would also let that key alter caller threads
|
|
110
|
+
// exempting all thread actions would also let that key alter caller threads
|
|
111
|
+
// or speak in a channel's conversation.
|
|
104
112
|
auth.on("threads", ({ user, action, value }) => {
|
|
113
|
+
const handoff = threadHandoffGrant(user);
|
|
114
|
+
if (handoff)
|
|
115
|
+
return authorizeThreadHandoff(user, handoff, action, value);
|
|
105
116
|
if (action === "search" && scheduleAccess(user))
|
|
106
117
|
return true;
|
|
118
|
+
// Read before the record keys are stripped: naming one is not a resume.
|
|
119
|
+
const resumeOnly = isStudioUser(user) && action === "create_run" && isResumeOnly(value);
|
|
120
|
+
guardThreadRecord(user, action, value);
|
|
107
121
|
if (isLocalDevUnscopedUser(user)) {
|
|
108
122
|
return true;
|
|
109
123
|
}
|
|
110
124
|
if (isStudioUser(user) && (action === "read" || action === "search")) {
|
|
111
125
|
return true;
|
|
112
126
|
}
|
|
113
|
-
|
|
127
|
+
// Studio may stop a run on any thread, as it may resume one there, so a
|
|
128
|
+
// runaway channel run can be cancelled from the deployment UI. Only
|
|
129
|
+
// `interrupt` on one thread: `rollback` deletes checkpoints, and a bulk
|
|
130
|
+
// cancel without a thread would stop every run in the deployment.
|
|
131
|
+
if (isStudioUser(user) &&
|
|
132
|
+
action === "update" &&
|
|
133
|
+
isSingleThreadInterrupt(value)) {
|
|
134
|
+
return true;
|
|
135
|
+
}
|
|
136
|
+
if (isStudioUser(user) && action === "create_run") {
|
|
137
|
+
if (resumeOnly)
|
|
138
|
+
return true;
|
|
139
|
+
// Owner-scoped below, so Studio sees "not found"; say why, by shape only.
|
|
140
|
+
logger.info(`studio run is not a resume, so it is owner-scoped ${JSON.stringify(runShape(value))}`);
|
|
141
|
+
}
|
|
142
|
+
const managed = user;
|
|
143
|
+
const key = threadOwnerKey(managed);
|
|
114
144
|
if (value && typeof value === "object") {
|
|
115
145
|
const container = value;
|
|
116
146
|
container.metadata = { ...container.metadata, owner: key };
|
|
@@ -136,7 +166,16 @@ export function buildManagedAuth(identity) {
|
|
|
136
166
|
// reachable unfiltered by any authenticated caller. The specific handlers
|
|
137
167
|
// registered above take precedence over this one, so threads and store keep
|
|
138
168
|
// their own scoping.
|
|
139
|
-
auth.on("*", ({ user, resource, action }) => {
|
|
169
|
+
auth.on("*", ({ user, resource, action, value }) => {
|
|
170
|
+
// An assistant's metadata merges into its runs' too, so no caller, Studio
|
|
171
|
+
// included, may give an assistant a thread record.
|
|
172
|
+
if (resource === "assistants") {
|
|
173
|
+
if (isRecord(value)) {
|
|
174
|
+
stripThreadRecordKeys(value.metadata);
|
|
175
|
+
if (isRecord(value.config))
|
|
176
|
+
stripThreadRecordKeys(value.config.metadata);
|
|
177
|
+
}
|
|
178
|
+
}
|
|
140
179
|
if (isStudioUser(user) || isLocalDevUnscopedUser(user)) {
|
|
141
180
|
return true;
|
|
142
181
|
}
|
|
@@ -443,7 +482,7 @@ async function verifyLangSmithApiKey(endpoint, headers) {
|
|
|
443
482
|
message: "LangSmith API-key verification returned an invalid response",
|
|
444
483
|
});
|
|
445
484
|
}
|
|
446
|
-
if (!
|
|
485
|
+
if (!isRecord(verified)) {
|
|
447
486
|
throw new HTTPException(503, {
|
|
448
487
|
message: "LangSmith API-key verification returned an invalid response",
|
|
449
488
|
});
|
|
@@ -530,8 +569,14 @@ async function fetchLangSmithVerification(url, headers) {
|
|
|
530
569
|
await sleep(Math.random() * Math.min(100 * 2 ** attempt, 200));
|
|
531
570
|
}
|
|
532
571
|
}
|
|
533
|
-
|
|
534
|
-
|
|
572
|
+
/**
|
|
573
|
+
* True for a run-cancel `threads:update` that interrupts runs on one thread.
|
|
574
|
+
*
|
|
575
|
+
* Run cancellation is the only thread update that carries `action`; metadata
|
|
576
|
+
* patches and state updates never set it.
|
|
577
|
+
*/
|
|
578
|
+
function isSingleThreadInterrupt(value) {
|
|
579
|
+
return (isRecord(value) && value.action === "interrupt" && value.thread_id != null);
|
|
535
580
|
}
|
|
536
581
|
function isLangSmithApiKeyAuth(http) {
|
|
537
582
|
return typeof http === "object" && http.mode === "langsmith_api_key";
|
|
@@ -584,6 +629,130 @@ function localDevServiceUser(request) {
|
|
|
584
629
|
mda_user_kind: "service",
|
|
585
630
|
};
|
|
586
631
|
}
|
|
632
|
+
/**
|
|
633
|
+
* Whether a run only answers the interrupts of an existing thread: a
|
|
634
|
+
* `command` with nothing but a `resume` value, no new input, and no webhook
|
|
635
|
+
* to report the thread elsewhere. Encrypted or otherwise opaque run payloads
|
|
636
|
+
* are not.
|
|
637
|
+
*
|
|
638
|
+
* Studio resumes with `multitask_strategy: "rollback"`, the thread's
|
|
639
|
+
* checkpoint and the user's breakpoints, so none of those can be refused.
|
|
640
|
+
*/
|
|
641
|
+
function isResumeOnly(value) {
|
|
642
|
+
if (!isRecord(value))
|
|
643
|
+
return false;
|
|
644
|
+
const { thread_id: threadId, kwargs } = value;
|
|
645
|
+
if (typeof threadId !== "string" || !threadId.trim())
|
|
646
|
+
return false;
|
|
647
|
+
if (!isRecord(kwargs) || kwargs.input != null)
|
|
648
|
+
return false;
|
|
649
|
+
if (kwargs.webhook != null)
|
|
650
|
+
return false;
|
|
651
|
+
// The run's metadata merges over the thread's; it may not touch its record.
|
|
652
|
+
if (claimsThreadRecord(value.metadata))
|
|
653
|
+
return false;
|
|
654
|
+
const { config } = kwargs;
|
|
655
|
+
if (config != null && !isRecord(config))
|
|
656
|
+
return false;
|
|
657
|
+
if (isRecord(config) && claimsThreadRecord(config.metadata)) {
|
|
658
|
+
return false;
|
|
659
|
+
}
|
|
660
|
+
const { command } = kwargs;
|
|
661
|
+
return (isRecord(command) &&
|
|
662
|
+
Object.keys(command).every((key) => key === "resume") &&
|
|
663
|
+
command.resume != null);
|
|
664
|
+
}
|
|
665
|
+
/** Whether run metadata names a thread-record key at all. */
|
|
666
|
+
function claimsThreadRecord(metadata) {
|
|
667
|
+
if (metadata == null)
|
|
668
|
+
return false;
|
|
669
|
+
return !isRecord(metadata) || hasThreadRecordKeys(metadata);
|
|
670
|
+
}
|
|
671
|
+
/**
|
|
672
|
+
* Strip the thread record from a payload unless managed ingress writes it.
|
|
673
|
+
*
|
|
674
|
+
* The Agent Server protects no metadata key, and a run's metadata merges over
|
|
675
|
+
* its thread's, so only a thread create or update by the conversation's own
|
|
676
|
+
* channel caller keeps a record, and only one for that conversation. Runs
|
|
677
|
+
* carry none, except a cron fire whose new-thread record names its
|
|
678
|
+
* execution. Searches only filter, so they keep theirs.
|
|
679
|
+
*/
|
|
680
|
+
function guardThreadRecord(user, action, value) {
|
|
681
|
+
if (action === "search" || !isRecord(value))
|
|
682
|
+
return;
|
|
683
|
+
const { metadata, config, kwargs } = value;
|
|
684
|
+
// A cron fire's run metadata is its cron's, which becomes a new thread's
|
|
685
|
+
// metadata; cron auth already checked that record against the execution.
|
|
686
|
+
const keepRecord = action === "create" || action === "update"
|
|
687
|
+
? isIngressThreadRecord(user, metadata)
|
|
688
|
+
: action === "create_run" &&
|
|
689
|
+
user.mda_scheduled_run === true &&
|
|
690
|
+
isScheduleThreadRecord(metadata, user);
|
|
691
|
+
stripThreadRecordKeys(metadata, { keepRecord });
|
|
692
|
+
stripThreadRecordKeys(isRecord(config) ? config.metadata : undefined);
|
|
693
|
+
const runConfig = isRecord(kwargs) ? kwargs.config : undefined;
|
|
694
|
+
stripThreadRecordKeys(isRecord(runConfig) ? runConfig.metadata : undefined);
|
|
695
|
+
}
|
|
696
|
+
/**
|
|
697
|
+
* Let a scheduled run move its own thread to the conversation its post
|
|
698
|
+
* started: one update, found under the run's owner key, that writes the
|
|
699
|
+
* conversation's record and key and makes the conversation the owner. A read
|
|
700
|
+
* finds the thread only once the conversation owns it.
|
|
701
|
+
*/
|
|
702
|
+
function authorizeThreadHandoff(user, handoff, action, value) {
|
|
703
|
+
if (action === "read" &&
|
|
704
|
+
isRecord(value) &&
|
|
705
|
+
value.thread_id === handoff.thread)
|
|
706
|
+
return { owner: threadOwnerKey(user) };
|
|
707
|
+
if (action !== "update" ||
|
|
708
|
+
!isRecord(value) ||
|
|
709
|
+
value.thread_id !== handoff.thread ||
|
|
710
|
+
value.action != null ||
|
|
711
|
+
!isRecord(value.metadata) ||
|
|
712
|
+
value.metadata[THREAD_CONVERSATION_METADATA] !==
|
|
713
|
+
user.mda_source_thread_id ||
|
|
714
|
+
!isIngressThreadRecord(user, value.metadata))
|
|
715
|
+
throw new HTTPException(403, {
|
|
716
|
+
message: "Thread handoff is not permitted",
|
|
717
|
+
});
|
|
718
|
+
stripThreadRecordKeys(value.metadata, {
|
|
719
|
+
keepRecord: true,
|
|
720
|
+
keepConversation: true,
|
|
721
|
+
});
|
|
722
|
+
value.metadata.owner = threadOwnerKey(user);
|
|
723
|
+
return { owner: threadOwnerKey(handoff.execution) };
|
|
724
|
+
}
|
|
725
|
+
/** Whether metadata holds a well-formed record of the caller's own conversation. */
|
|
726
|
+
function isIngressThreadRecord(user, metadata) {
|
|
727
|
+
if (!channelConversationOwnerKey(user))
|
|
728
|
+
return false;
|
|
729
|
+
const origin = parseThreadRecord(metadata, { exact: true })?.origin;
|
|
730
|
+
return (!!origin &&
|
|
731
|
+
origin.channel.provider === user.mda_source_provider &&
|
|
732
|
+
origin.channel.source_thread_key === user.mda_source_thread_id &&
|
|
733
|
+
(origin.sender === null || origin.sender === user.mda_user_id));
|
|
734
|
+
}
|
|
735
|
+
/** What a run payload holds, without its values, to explain a refusal. */
|
|
736
|
+
function runShape(value) {
|
|
737
|
+
if (!isRecord(value))
|
|
738
|
+
return { value: typeof value };
|
|
739
|
+
const { thread_id: threadId, kwargs } = value;
|
|
740
|
+
const input = isRecord(kwargs) ? kwargs.input : undefined;
|
|
741
|
+
const command = isRecord(kwargs) ? kwargs.command : undefined;
|
|
742
|
+
return {
|
|
743
|
+
threadId: typeof threadId,
|
|
744
|
+
webhook: isRecord(kwargs) && kwargs.webhook != null,
|
|
745
|
+
kwargs: isRecord(kwargs) ? "object" : typeof kwargs,
|
|
746
|
+
input: input === null ? "null" : Array.isArray(input) ? "array" : typeof input,
|
|
747
|
+
command: isRecord(command)
|
|
748
|
+
? Object.keys(command)
|
|
749
|
+
.slice(0, 8)
|
|
750
|
+
.map((key) => logger.logIdentifier(key))
|
|
751
|
+
: command === null
|
|
752
|
+
? "null"
|
|
753
|
+
: typeof command,
|
|
754
|
+
};
|
|
755
|
+
}
|
|
587
756
|
/**
|
|
588
757
|
* Derive the owner value `@auth.on.threads` filters on.
|
|
589
758
|
*
|
package/dist/runtime/auth.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/runtime/auth.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/runtime/auth.ts"],"names":[],"mappings":"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"}
|
|
@@ -18,6 +18,8 @@ type SandboxBackendDeps = {
|
|
|
18
18
|
runConfig: ManagedRunConfig | undefined;
|
|
19
19
|
connectors: readonly Connector[] | undefined;
|
|
20
20
|
identity: IdentityDefinition | undefined;
|
|
21
|
+
/** The lead thread an async subagent run shares the sandbox of, once verified. */
|
|
22
|
+
leadThread?: string;
|
|
21
23
|
};
|
|
22
24
|
/**
|
|
23
25
|
* Lazy sandbox backend. Identity is frozen at construction — use
|
|
@@ -38,6 +40,11 @@ export declare class LazyManagedSandboxBackend implements SandboxBackendProtocol
|
|
|
38
40
|
/** Capture the run without resolving its sandbox until an operation needs it. */
|
|
39
41
|
bindRuntime(runtime: unknown): LazyManagedSandboxBackend;
|
|
40
42
|
get id(): string;
|
|
43
|
+
/**
|
|
44
|
+
* This thread's sandbox if this process opened it, through any handle.
|
|
45
|
+
* Never opens one, and is `undefined` when the run has no thread id.
|
|
46
|
+
*/
|
|
47
|
+
opened(): SandboxBackendProtocolV2 | undefined;
|
|
41
48
|
ls(path?: string): Promise<import("deepagents").LsResult>;
|
|
42
49
|
read(filePath: string, offset?: number, limit?: number): Promise<import("deepagents").ReadResult>;
|
|
43
50
|
readRaw(filePath: string): Promise<import("deepagents").ReadRawResult>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"backend.d.ts","sourceRoot":"","sources":["../../src/runtime/backend.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAKH,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,YAAY,CAAC;AAI3D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC/D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AACvD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"backend.d.ts","sourceRoot":"","sources":["../../src/runtime/backend.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAKH,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,YAAY,CAAC;AAI3D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC/D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AACvD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAYhD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAEnD,yDAAyD;AACzD,KAAK,iBAAiB,GAAG,UAAU,CACjC,WAAW,CAAC,wBAAwB,CAAC,aAAa,CAAC,CAAC,CACrD,CAAC,CAAC,CAAC,CAAC;AAkCL,KAAK,kBAAkB,GAAG;IACxB,OAAO,EAAE,iBAAiB,CAAC;IAC3B,2BAA2B,CAAC,EAAE,MAAM,CAAC;IACrC,SAAS,EAAE,gBAAgB,GAAG,SAAS,CAAC;IACxC,UAAU,EAAE,SAAS,SAAS,EAAE,GAAG,SAAS,CAAC;IAC7C,QAAQ,EAAE,kBAAkB,GAAG,SAAS,CAAC;IACzC,kFAAkF;IAClF,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,CAAC;AAkHF;;;GAGG;AACH,qBAAa,yBAA0B,YAAW,wBAAwB;IAEtE,OAAO,CAAC,QAAQ,CAAC,IAAI;IACrB,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IAHpC,OAAO,eAIH;IAEJ,gEAAgE;IAChE,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,kBAAkB,GAAG,yBAAyB,CAMjE;IAED;;;OAGG;IACH,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG,yBAAyB,CAItD;IAED,iFAAiF;IACjF,WAAW,CAAC,OAAO,EAAE,OAAO,GAAG,yBAAyB,CAKvD;IAED,IAAI,EAAE,IAAI,MAAM,CAgBf;IAED;;;OAGG;IACH,MAAM,IAAI,wBAAwB,GAAG,SAAS,CAa7C;IAEK,EAAE,CAAC,IAAI,SAAM,0CAElB;IAEK,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,4CAE3D;IAEK,OAAO,CAAC,QAAQ,EAAE,MAAM,+CAE7B;IAEK,IAAI,CACR,OAAO,EAAE,MAAM,EACf,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,EACpB,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,EACpB,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,4CAOzB;IAEK,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,4CAMxC;IAEK,KAAK,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,6CAE5C;IAEK,IAAI,CACR,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,UAAU,UAAQ,4CAKnB;IAEK,MAAM,CAAC,QAAQ,EAAE,MAAM,8CAO5B;IAEK,WAAW,CAAC,KAAK,EAAE,iBAAiB,sDAOzC;IAEK,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,wDAOlC;IAEK,OAAO,CAAC,OAAO,EAAE,MAAM,iDAO5B;YAEa,sBAAsB;IAqBpC,OAAO,CAAC,QAAQ;IAIhB,OAAO,CAAC,WAAW;IAMnB,OAAO,CAAC,SAAS;CAoBlB"}
|
package/dist/runtime/backend.js
CHANGED
|
@@ -9,7 +9,7 @@ import { createHash } from "node:crypto";
|
|
|
9
9
|
import { posix as posixPath } from "node:path";
|
|
10
10
|
import { resolveSandboxProxyConfig } from "../sandbox-proxy.js";
|
|
11
11
|
import { resolveRuntimeConfigurable } from "./identity-runtime.js";
|
|
12
|
-
import { managedSandboxHostName, recoverManagedSandbox, isSandboxNotFoundError, resolveManagedSandbox, sandboxScopeKey, updateManagedSandboxProxyConfig, } from "./sandbox-manager.js";
|
|
12
|
+
import { managedSandboxHostName, recoverManagedSandbox, withLeadSandbox, isSandboxNotFoundError, openedManagedSandbox, resolveManagedSandbox, sandboxScopeKey, updateManagedSandboxProxyConfig, } from "./sandbox-manager.js";
|
|
13
13
|
/**
|
|
14
14
|
* Refusal returned instead of globbing the sandbox root.
|
|
15
15
|
*
|
|
@@ -37,6 +37,10 @@ function isFilesystemRoot(path) {
|
|
|
37
37
|
}
|
|
38
38
|
return posixPath.normalize(raw) === "/";
|
|
39
39
|
}
|
|
40
|
+
/** The run's sandbox scope: its lead's, for an async subagent sharing it. */
|
|
41
|
+
function scopeKey(deps, config) {
|
|
42
|
+
return withLeadSandbox(deps.leadThread, () => sandboxScopeKey(config, deps.sandboxSelectionFingerprint));
|
|
43
|
+
}
|
|
40
44
|
/**
|
|
41
45
|
* Process-scoped resolve cache shared by all {@link LazyManagedSandboxBackend}
|
|
42
46
|
* instances created from the same factory (unbound + per-run siblings).
|
|
@@ -45,11 +49,16 @@ class SandboxResolveCache {
|
|
|
45
49
|
pendingByScope = new Map();
|
|
46
50
|
resolvedByScope = new Map();
|
|
47
51
|
sandboxProxyConfigHashes = new WeakMap();
|
|
48
|
-
idFor(
|
|
49
|
-
return
|
|
50
|
-
|
|
52
|
+
idFor(deps, config) {
|
|
53
|
+
return this.resolvedFor(deps, config)?.id ?? "";
|
|
54
|
+
}
|
|
55
|
+
resolvedFor(deps, config) {
|
|
56
|
+
return this.resolvedByScope.get(scopeKey(deps, config));
|
|
51
57
|
}
|
|
52
58
|
resolve(deps, config) {
|
|
59
|
+
return withLeadSandbox(deps.leadThread, () => this.resolveInScope(deps, config));
|
|
60
|
+
}
|
|
61
|
+
resolveInScope(deps, config) {
|
|
53
62
|
const key = sandboxScopeKey(config, deps.sandboxSelectionFingerprint);
|
|
54
63
|
const existing = this.pendingByScope.get(key);
|
|
55
64
|
if (existing) {
|
|
@@ -79,7 +88,8 @@ class SandboxResolveCache {
|
|
|
79
88
|
return await operation(backend);
|
|
80
89
|
}
|
|
81
90
|
catch (error) {
|
|
82
|
-
|
|
91
|
+
// Only the lead recovers its sandbox.
|
|
92
|
+
if (isSandboxNotFoundError(error) && !deps.leadThread) {
|
|
83
93
|
const key = sandboxScopeKey(config, deps.sandboxSelectionFingerprint);
|
|
84
94
|
await recoverManagedSandbox(deps.sandbox, config, backend, {
|
|
85
95
|
connectors: deps.connectors === undefined ? undefined : [...deps.connectors],
|
|
@@ -137,16 +147,31 @@ export class LazyManagedSandboxBackend {
|
|
|
137
147
|
// must not crash CompositeBackend construction.
|
|
138
148
|
try {
|
|
139
149
|
const config = this.runConfig();
|
|
140
|
-
const resolved = this.cache.idFor(
|
|
150
|
+
const resolved = this.cache.idFor(this.deps, config);
|
|
141
151
|
if (resolved) {
|
|
142
152
|
return resolved;
|
|
143
153
|
}
|
|
144
|
-
return `pending:${
|
|
154
|
+
return `pending:${scopeKey(this.deps, config)}`;
|
|
145
155
|
}
|
|
146
156
|
catch {
|
|
147
157
|
return "pending:sandbox";
|
|
148
158
|
}
|
|
149
159
|
}
|
|
160
|
+
/**
|
|
161
|
+
* This thread's sandbox if this process opened it, through any handle.
|
|
162
|
+
* Never opens one, and is `undefined` when the run has no thread id.
|
|
163
|
+
*/
|
|
164
|
+
opened() {
|
|
165
|
+
try {
|
|
166
|
+
const config = this.runConfig();
|
|
167
|
+
const fingerprint = this.deps.sandboxSelectionFingerprint;
|
|
168
|
+
return (this.cache.resolvedFor(this.deps, config) ??
|
|
169
|
+
withLeadSandbox(this.deps.leadThread, () => openedManagedSandbox(config, fingerprint)));
|
|
170
|
+
}
|
|
171
|
+
catch {
|
|
172
|
+
return undefined;
|
|
173
|
+
}
|
|
174
|
+
}
|
|
150
175
|
async ls(path = "/") {
|
|
151
176
|
return this.withBackend((backend) => backend.ls(path));
|
|
152
177
|
}
|