managed-deepagents 0.9.6-dev.3 → 0.9.6-dev.31
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 +81 -4
- 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/connectors/mcp/langsmith-url.d.ts.map +1 -1
- package/dist/connectors/mcp/langsmith-url.js +0 -1
- package/dist/connectors/mcp/langsmith-url.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 +9 -1
- package/dist/runtime/backend.d.ts.map +1 -1
- package/dist/runtime/backend.js +36 -11
- 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 +138 -0
- package/dist/runtime/browser.d.ts.map +1 -0
- package/dist/runtime/browser.js +802 -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 +104 -50
- 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 +32 -18
- package/dist/runtime/sandbox-manager.d.ts.map +1 -1
- package/dist/runtime/sandbox-manager.js +109 -65
- 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 @@
|
|
|
1
|
+
{"version":3,"file":"managed-thread.d.ts","sourceRoot":"","sources":["../../src/runtime/managed-thread.ts"],"names":[],"mappings":"AAGA,OAAO,EAKL,KAAK,cAAc,EACpB,MAAM,wBAAwB,CAAC;AAChC,OAAO,KAAK,EACV,YAAY,EACZ,SAAS,EACT,cAAc,EACf,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAqB,KAAK,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAE3E,8BAA8B;AAC9B,MAAM,WAAW,iBAAiB;IAChC,2EAA2E;IAC3E,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,wEAAwE;IACxE,QAAQ,CAAC,IAAI,EAAE,OAAO,GAAG,QAAQ,CAAC;CACnC;AAED,mDAAmD;AACnD,MAAM,WAAW,YAAY;IAC3B,8EAA8E;IAC9E,QAAQ,CAAC,OAAO,EAAE,cAAc,CAAC;IACjC,+EAA+E;IAC/E,QAAQ,CAAC,MAAM,EAAE,iBAAiB,GAAG,IAAI,CAAC;CAC3C;AAED,8BAA8B;AAC9B,MAAM,WAAW,aAAa;IAC5B,+BAA+B;IAC/B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,mDAAmD;IACnD,QAAQ,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI,CAAC;IACrC,0DAA0D;IAC1D,QAAQ,CAAC,YAAY,EAAE,SAAS,iBAAiB,EAAE,CAAC;CACrD;AAED,iEAAiE;AACjE,MAAM,WAAW,SAAS;IACxB,0EAA0E;IAC1E,MAAM,CAAC,EAAE,aAAa,CAAC;IACvB,sDAAsD;IACtD,OAAO,CAAC,EAAE,cAAc,CAAC;IACzB,MAAM,CAAC,EAAE,aAAa,GAAG;QAAE,KAAK,EAAE,YAAY,GAAG,IAAI,CAAC;QAAC,QAAQ,CAAC,EAAE,SAAS,CAAA;KAAE,CAAC;CAC/E;AAED;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE;IACtC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAC;IAClD,QAAQ,EAAE,OAAO,CAAC;IAClB,+CAA+C;IAC/C,OAAO,CAAC,EAAE,cAAc,CAAC;CAC1B,GAAG,SAAS,CAyBZ;AAwBD;;;GAGG;AACH,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE;IAAE,OAAO,CAAC,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,SAAS,EAC5D,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,GAChD,SAAS,CAaX;AAaD,wBAAgB,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAEzE"}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
/** `runtime.thread`: the run's thread, the conversation it came from, and who takes part. */
|
|
2
|
+
import { getConfig } from "@langchain/langgraph";
|
|
3
|
+
import { currentChannelBinding, resolveChannelBinding, resolveOriginBinding, runtimeChannelFor, } from "../channels/binding.js";
|
|
4
|
+
import { parseThreadRecord } from "./thread-record.js";
|
|
5
|
+
/**
|
|
6
|
+
* Build a run's thread from its config. The origin is the event's own
|
|
7
|
+
* channel when ingress delivered one; otherwise the record's.
|
|
8
|
+
*
|
|
9
|
+
* The record comes from the run's metadata, which merges the thread's. The
|
|
10
|
+
* auth handler strips record keys from every write except managed ingress's,
|
|
11
|
+
* and in-process `/noauth` calls come from the agent's own trusted code.
|
|
12
|
+
*/
|
|
13
|
+
export function resolveRunThread(input) {
|
|
14
|
+
const record = parseThreadRecord(input.metadata);
|
|
15
|
+
const participants = Object.freeze((record?.participants ?? []).map((participant) => Object.freeze({ ...participant })));
|
|
16
|
+
const stored = record?.origin && resolveOriginBinding(record.origin);
|
|
17
|
+
const origin = input.binding ??
|
|
18
|
+
(stored ? { ...stored, event: scheduleEvent(input) } : undefined);
|
|
19
|
+
const channel = origin && runtimeChannelFor(origin, origin.event);
|
|
20
|
+
const sender = participants.find(({ id }) => id === record?.origin?.sender) ?? null;
|
|
21
|
+
const threadOrigin = channel ? Object.freeze({ channel, sender }) : null;
|
|
22
|
+
const id = input.configurable?.thread_id;
|
|
23
|
+
const thread = typeof id === "string" && id
|
|
24
|
+
? Object.freeze({ id, origin: threadOrigin, participants })
|
|
25
|
+
: undefined;
|
|
26
|
+
return {
|
|
27
|
+
...(thread && { thread }),
|
|
28
|
+
...(channel && { channel }),
|
|
29
|
+
...(origin && { origin }),
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* The schedule event of a managed cron run, read from the schedule's spec,
|
|
34
|
+
* which the cron's metadata carries into the run.
|
|
35
|
+
*/
|
|
36
|
+
function scheduleEvent(input) {
|
|
37
|
+
const user = input.configurable?.langgraph_auth_user;
|
|
38
|
+
const metadata = isRecord(input.metadata) ? input.metadata : {};
|
|
39
|
+
if (!isRecord(user) ||
|
|
40
|
+
user.mda_scheduled_run !== true ||
|
|
41
|
+
metadata.mda_managed !== true)
|
|
42
|
+
return null;
|
|
43
|
+
const spec = isRecord(metadata.mda_schedule_spec)
|
|
44
|
+
? metadata.mda_schedule_spec
|
|
45
|
+
: {};
|
|
46
|
+
return { type: "schedule", new_thread: spec.new_thread === true };
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* The thread the run built when it started, else one built from a tool or
|
|
50
|
+
* middleware runtime and the running LangGraph node.
|
|
51
|
+
*/
|
|
52
|
+
export function currentRunThread(runtime, configurable) {
|
|
53
|
+
const built = currentChannelBinding.getStore()?.thread;
|
|
54
|
+
if (built)
|
|
55
|
+
return built;
|
|
56
|
+
const config = isRecord(runtime?.config) ? runtime.config : undefined;
|
|
57
|
+
const ambient = ambientConfig();
|
|
58
|
+
return resolveRunThread({
|
|
59
|
+
configurable,
|
|
60
|
+
metadata: isRecord(config?.metadata) ? config.metadata : ambient?.metadata,
|
|
61
|
+
binding: resolveChannelBinding(runtime?.context ?? ambient?.context, configurable),
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
function ambientConfig() {
|
|
65
|
+
try {
|
|
66
|
+
return getConfig();
|
|
67
|
+
}
|
|
68
|
+
catch {
|
|
69
|
+
// Outside a runnable context.
|
|
70
|
+
return undefined;
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
export function isRecord(value) {
|
|
74
|
+
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
75
|
+
}
|
|
76
|
+
//# sourceMappingURL=managed-thread.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"managed-thread.js","sourceRoot":"","sources":["../../src/runtime/managed-thread.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,6 +2,7 @@ import type { Runtime } from "langchain";
|
|
|
2
2
|
import type { ClientTool, ServerTool, ToolRuntime } from "@langchain/core/tools";
|
|
3
3
|
import type { BackendProtocolV2 } from "deepagents";
|
|
4
4
|
import type { RuntimeChannel } from "../channels/types.js";
|
|
5
|
+
import { type ManagedThread } from "./managed-thread.js";
|
|
5
6
|
import { type RuntimeSchedules } from "../runtime-schedules.js";
|
|
6
7
|
import type { ManagedServerInfo, RuntimeConfigLike } from "./identity-runtime.js";
|
|
7
8
|
export type { ManagedServerInfo, RuntimeConfigLike, } from "./identity-runtime.js";
|
|
@@ -22,8 +23,15 @@ export interface ManagedRuntimeExtras {
|
|
|
22
23
|
*/
|
|
23
24
|
serverInfo?: ManagedServerInfo;
|
|
24
25
|
/**
|
|
25
|
-
*
|
|
26
|
-
*
|
|
26
|
+
* The run's thread: its id, the channel conversation it came from, and the
|
|
27
|
+
* people on it. Set in every run.
|
|
28
|
+
*/
|
|
29
|
+
thread?: ManagedThread;
|
|
30
|
+
/**
|
|
31
|
+
* @deprecated Use `runtime.thread.origin.channel`. Removed in 0.11.
|
|
32
|
+
*
|
|
33
|
+
* The same value: the thread's channel, absent on threads no channel
|
|
34
|
+
* started.
|
|
27
35
|
*/
|
|
28
36
|
channel?: RuntimeChannel;
|
|
29
37
|
/** Present only when the project declares a managed sandbox. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"managed-tools.d.ts","sourceRoot":"","sources":["../../src/runtime/managed-tools.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,KAAK,EACV,UAAU,EACV,UAAU,EACV,WAAW,EACZ,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"managed-tools.d.ts","sourceRoot":"","sources":["../../src/runtime/managed-tools.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,KAAK,EACV,UAAU,EACV,UAAU,EACV,WAAW,EACZ,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAEpD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAoB,KAAK,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAC3E,OAAO,EAEL,KAAK,gBAAgB,EACtB,MAAM,yBAAyB,CAAC;AAMjC,OAAO,KAAK,EACV,iBAAiB,EACjB,iBAAiB,EAClB,MAAM,uBAAuB,CAAC;AAE/B,YAAY,EACV,iBAAiB,EACjB,iBAAiB,GAClB,MAAM,uBAAuB,CAAC;AAE/B,4EAA4E;AAC5E,MAAM,MAAM,qBAAqB,GAAG,CAClC,OAAO,EAAE,OAAO,KACb,iBAAiB,GAAG,SAAS,CAAC;AAEnC;;;;;GAKG;AACH,MAAM,MAAM,aAAa,GAAG,UAAU,CAAC;AAOvC,+DAA+D;AAC/D,MAAM,WAAW,oBAAoB;IACnC;;;OAGG;IACH,UAAU,CAAC,EAAE,iBAAiB,CAAC;IAC/B;;;OAGG;IACH,MAAM,CAAC,EAAE,aAAa,CAAC;IACvB;;;;;OAKG;IACH,OAAO,CAAC,EAAE,cAAc,CAAC;IACzB,gEAAgE;IAChE,OAAO,CAAC,EAAE,iBAAiB,CAAC;IAC5B;;;;OAIG;IACH,SAAS,CAAC,EAAE,gBAAgB,CAAC;CAC9B;AAED,iDAAiD;AACjD,MAAM,MAAM,cAAc,CAAC,QAAQ,GAAG,OAAO,IAAI,OAAO,CAAC,QAAQ,CAAC,GAChE,oBAAoB,CAAC;AAEvB,uEAAuE;AACvE,MAAM,WAAW,kBAAkB,CAAC,MAAM,GAAG,OAAO,EAAE,QAAQ,GAAG,OAAO,CACtE,SAAQ,WAAW,CAAC,MAAM,EAAE,QAAQ,CAAC,EAAE,oBAAoB;CAAG;AAEhE,uDAAuD;AACvD,MAAM,MAAM,uBAAuB,CACjC,MAAM,GAAG,OAAO,EAChB,QAAQ,GAAG,OAAO,IAChB,kBAAkB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;AAEzC;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,iBAAiB,GAAG,SAAS,EACtC,cAAc,CAAC,EAAE,qBAAqB,GACrC,oBAAoB,GAAG;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACxC,CAuCA;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,CAC5B,OAAO,EAAE,iBAAiB,GAAG,SAAS,EACtC,cAAc,CAAC,EAAE,qBAAqB,GACrC,iBAAiB,GAAG,SAAS,CAK/B;AAgBD;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAAC,CAAC,SAAS,aAAa,EACxD,WAAW,EAAE,CAAC,EACd,cAAc,CAAC,EAAE,qBAAqB,GACrC,CAAC,CAmCH;AAED;;;GAGG;AACH,wBAAgB,2BAA2B,CAAC,CAAC,SAAS,UAAU,GAAG,UAAU,EAC3E,KAAK,EAAE,SAAS,CAAC,EAAE,EACnB,cAAc,CAAC,EAAE,qBAAqB,GACrC,CAAC,EAAE,CAML"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { currentRunThread } from "./managed-thread.js";
|
|
2
2
|
import { createRuntimeSchedules, } from "../runtime-schedules.js";
|
|
3
3
|
import { buildManagedServerInfo, resolveRuntimeConfigurable, sanitizeConfigurable, } from "./identity-runtime.js";
|
|
4
4
|
/** True for tools the seam can wrap; provider-native tool dicts are skipped. */
|
|
@@ -24,14 +24,16 @@ export function managedRuntimeOverrides(runtime, backendFactory) {
|
|
|
24
24
|
if (serverInfo) {
|
|
25
25
|
overrides.serverInfo = serverInfo;
|
|
26
26
|
}
|
|
27
|
-
|
|
28
|
-
|
|
27
|
+
const run = runtime?.thread === undefined
|
|
28
|
+
? currentRunThread(runtime, configurable)
|
|
29
|
+
: {};
|
|
30
|
+
const thread = runtime?.thread ?? run.thread;
|
|
31
|
+
if (thread) {
|
|
32
|
+
overrides.thread = thread;
|
|
29
33
|
}
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
overrides.channel = fromBinding;
|
|
34
|
-
}
|
|
34
|
+
const channel = runtime?.channel ?? run.channel;
|
|
35
|
+
if (channel) {
|
|
36
|
+
overrides.channel = channel;
|
|
35
37
|
}
|
|
36
38
|
if (configurable) {
|
|
37
39
|
const sanitized = sanitizeConfigurable(configurable);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"managed-tools.js","sourceRoot":"","sources":["../../src/runtime/managed-tools.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"managed-tools.js","sourceRoot":"","sources":["../../src/runtime/managed-tools.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"policy.d.ts","sourceRoot":"","sources":["../../../src/runtime/memory/policy.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EACV,gBAAgB,EAEhB,eAAe,EAChB,MAAM,uBAAuB,CAAC;AAO/B,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AACrE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"policy.d.ts","sourceRoot":"","sources":["../../../src/runtime/memory/policy.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EACV,gBAAgB,EAEhB,eAAe,EAChB,MAAM,uBAAuB,CAAC;AAO/B,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AACrE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAIpD,wBAAgB,0BAA0B,CACxC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,GAChD;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,OAAO,CAAA;CAAE,GAAG,SAAS,CAenD;AAED;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAC/B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,sBAAsB,GAAG,IAAI,CAAC;CAC7C;AAWD,sEAAsE;AACtE,wBAAsB,uBAAuB,CAC3C,KAAK,EAAE,eAAe,CAAC,KAAK,CAAC,EAC7B,MAAM,CAAC,EAAE,gBAAgB,EACzB,aAAa,CAAC,EAAE,OAAO,EACvB,yBAAyB,UAAQ,GAChC,OAAO,CAAC,gBAAgB,CAAC,CA2B3B;AAED,wBAAsB,wBAAwB,CAC5C,KAAK,EAAE,gBAAgB,CAAC,KAAK,CAAC,GAAG,SAAS,EAC1C,MAAM,CAAC,EAAE,gBAAgB,EACzB,aAAa,CAAC,EAAE,OAAO,EACvB,KAAK,UAAyB,GAC7B,OAAO,CAAC,OAAO,CAAC,CAKlB"}
|
|
@@ -2,6 +2,7 @@ import { interopParse, isZodSchemaV3, isZodSchemaV4, } from "@langchain/core/uti
|
|
|
2
2
|
import { resolveChannelInfo } from "../../channels/binding.js";
|
|
3
3
|
import { buildRuntimeIdentity, isStudioAuthUser, resolveRuntimeConfigurable, } from "../identity-runtime.js";
|
|
4
4
|
import { isRunExecution } from "../run-input.js";
|
|
5
|
+
import { isRecord } from "../../values.js";
|
|
5
6
|
export function resolveUserMemoryPrincipal(configurable) {
|
|
6
7
|
const identity = buildRuntimeIdentity(configurable);
|
|
7
8
|
if (!identity)
|
|
@@ -86,7 +87,4 @@ async function evaluatePolicy(layer, config, contextSchema) {
|
|
|
86
87
|
}
|
|
87
88
|
return allowed;
|
|
88
89
|
}
|
|
89
|
-
function isRecord(value) {
|
|
90
|
-
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
91
|
-
}
|
|
92
90
|
//# sourceMappingURL=policy.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"policy.js","sourceRoot":"","sources":["../../../src/runtime/memory/policy.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EACZ,aAAa,EACb,aAAa,GACd,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAQ/D,OAAO,EACL,oBAAoB,EACpB,gBAAgB,EAChB,0BAA0B,GAC3B,MAAM,wBAAwB,CAAC;AAGhC,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"policy.js","sourceRoot":"","sources":["../../../src/runtime/memory/policy.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { RunTree } from "langsmith";
|
|
2
|
+
import type { ManagedRunConfig } from "./types.js";
|
|
3
|
+
/** The lead thread a run's caller owns, with the metadata its thread record lives in. */
|
|
4
|
+
export interface LeadThread {
|
|
5
|
+
id: string;
|
|
6
|
+
metadata: Record<string, unknown>;
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* The thread of the agent that launched this run, if deepagents sent it.
|
|
10
|
+
*
|
|
11
|
+
* Read from deepagents' parent reference, or else from the task thread's
|
|
12
|
+
* `parent_thread_id` metadata, which the Agent Server copies into every run on
|
|
13
|
+
* the thread, including runs deepagents didn't start (such as a resume).
|
|
14
|
+
*/
|
|
15
|
+
export declare function leadThreadId(config: ManagedRunConfig | undefined): string | undefined;
|
|
16
|
+
/**
|
|
17
|
+
* The lead's thread when this run's caller owns it, else `undefined`.
|
|
18
|
+
*
|
|
19
|
+
* Reads the thread through the SDK's default client, which the Agent Server and
|
|
20
|
+
* `mda dev` point at their own API (as the run's caller), then requires its `owner` to be the
|
|
21
|
+
* caller's owner key, MDA's rule for changing a thread. Being able to read it isn't
|
|
22
|
+
* enough: Studio callers can read every thread. A thread without an owner (no
|
|
23
|
+
* managed identity) only needs to be readable.
|
|
24
|
+
*/
|
|
25
|
+
export declare function verifiedLeadThread(config: ManagedRunConfig | undefined): Promise<LeadThread | undefined>;
|
|
26
|
+
/** The thread a run's record is read from: its lead's, when given. */
|
|
27
|
+
export declare function threadSource(config: ManagedRunConfig | undefined, leadThread: LeadThread | undefined): {
|
|
28
|
+
configurable: Record<string, unknown> | undefined;
|
|
29
|
+
metadata: unknown;
|
|
30
|
+
};
|
|
31
|
+
/** Rebuild the span that launched this run from the trace headers the Agent Server kept. */
|
|
32
|
+
export declare function launchingParent(config: ManagedRunConfig | undefined): RunTree | undefined;
|
|
33
|
+
//# sourceMappingURL=parent-run.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parent-run.d.ts","sourceRoot":"","sources":["../../src/runtime/parent-run.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAMpC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAanD,yFAAyF;AACzF,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACnC;AAED;;;;;;GAMG;AACH,wBAAgB,YAAY,CAC1B,MAAM,EAAE,gBAAgB,GAAG,SAAS,GACnC,MAAM,GAAG,SAAS,CAUpB;AAED;;;;;;;;GAQG;AACH,wBAAsB,kBAAkB,CACtC,MAAM,EAAE,gBAAgB,GAAG,SAAS,GACnC,OAAO,CAAC,UAAU,GAAG,SAAS,CAAC,CAqBjC;AAYD,sEAAsE;AACtE,wBAAgB,YAAY,CAC1B,MAAM,EAAE,gBAAgB,GAAG,SAAS,EACpC,UAAU,EAAE,UAAU,GAAG,SAAS,GACjC;IAAE,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAC;IAAC,QAAQ,EAAE,OAAO,CAAA;CAAE,CAO1E;AAgBD,4FAA4F;AAC5F,wBAAgB,eAAe,CAC7B,MAAM,EAAE,gBAAgB,GAAG,SAAS,GACnC,OAAO,GAAG,SAAS,CAmBrB"}
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Runs that deepagents launched from another agent's run (async subagents):
|
|
3
|
+
* verify the lead's thread, so the run can share its sandbox and thread
|
|
4
|
+
* record, and nest the run under the lead's trace.
|
|
5
|
+
*/
|
|
6
|
+
import { Client } from "@langchain/langgraph-sdk";
|
|
7
|
+
import { RunTree } from "langsmith";
|
|
8
|
+
import { threadOwnerKey } from "./auth.js";
|
|
9
|
+
import { resolveRuntimeConfigurable } from "./identity-runtime.js";
|
|
10
|
+
import { logger } from "./log.js";
|
|
11
|
+
import { isRecord } from "./managed-thread.js";
|
|
12
|
+
/** `configurable` key where deepagents puts an async subagent run's parent reference. */
|
|
13
|
+
const PARENT_REFERENCE_KEY = "deepagents_parent";
|
|
14
|
+
/** Run metadata key (copied from the task thread) naming an async subagent's lead thread. */
|
|
15
|
+
const PARENT_THREAD_METADATA_KEY = "parent_thread_id";
|
|
16
|
+
/** Baggage key deepagents sets to mark trace headers as a parent. */
|
|
17
|
+
const NEST_UNDER_PARENT = "ls_nest_under_parent";
|
|
18
|
+
const UUID = "[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}";
|
|
19
|
+
const SEGMENT = `\\d{8}T\\d{6,}Z${UUID}`;
|
|
20
|
+
/** A `langsmith-trace` dotted order: `<timestamp>Z<run id>` segments joined by dots. */
|
|
21
|
+
const DOTTED_ORDER = new RegExp(`^${SEGMENT}(\\.${SEGMENT})*$`, "i");
|
|
22
|
+
/**
|
|
23
|
+
* The thread of the agent that launched this run, if deepagents sent it.
|
|
24
|
+
*
|
|
25
|
+
* Read from deepagents' parent reference, or else from the task thread's
|
|
26
|
+
* `parent_thread_id` metadata, which the Agent Server copies into every run on
|
|
27
|
+
* the thread, including runs deepagents didn't start (such as a resume).
|
|
28
|
+
*/
|
|
29
|
+
export function leadThreadId(config) {
|
|
30
|
+
const reference = config?.configurable?.[PARENT_REFERENCE_KEY];
|
|
31
|
+
const metadata = config?.metadata;
|
|
32
|
+
const id = (isRecord(reference) ? reference.thread_id : undefined) ??
|
|
33
|
+
(isRecord(metadata) ? metadata[PARENT_THREAD_METADATA_KEY] : undefined);
|
|
34
|
+
// A run on the lead's own thread is the lead's, not a subagent's.
|
|
35
|
+
return typeof id === "string" && id && id !== config?.configurable?.thread_id
|
|
36
|
+
? id
|
|
37
|
+
: undefined;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* The lead's thread when this run's caller owns it, else `undefined`.
|
|
41
|
+
*
|
|
42
|
+
* Reads the thread through the SDK's default client, which the Agent Server and
|
|
43
|
+
* `mda dev` point at their own API (as the run's caller), then requires its `owner` to be the
|
|
44
|
+
* caller's owner key, MDA's rule for changing a thread. Being able to read it isn't
|
|
45
|
+
* enough: Studio callers can read every thread. A thread without an owner (no
|
|
46
|
+
* managed identity) only needs to be readable.
|
|
47
|
+
*/
|
|
48
|
+
export async function verifiedLeadThread(config) {
|
|
49
|
+
const id = leadThreadId(config);
|
|
50
|
+
if (!id)
|
|
51
|
+
return undefined;
|
|
52
|
+
let metadata;
|
|
53
|
+
try {
|
|
54
|
+
const thread = await new Client().threads.get(id);
|
|
55
|
+
metadata = isRecord(thread.metadata) ? thread.metadata : {};
|
|
56
|
+
}
|
|
57
|
+
catch {
|
|
58
|
+
logger.warn("lead thread not accessible to this run; using its own sandbox");
|
|
59
|
+
return undefined;
|
|
60
|
+
}
|
|
61
|
+
const owner = metadata.owner;
|
|
62
|
+
if (owner !== undefined && owner !== callerOwnerKey(config)) {
|
|
63
|
+
logger.warn("lead thread belongs to another caller; using this run's own sandbox");
|
|
64
|
+
return undefined;
|
|
65
|
+
}
|
|
66
|
+
return { id, metadata };
|
|
67
|
+
}
|
|
68
|
+
/** The thread owner key MDA stamps for this run's caller, if it's authenticated. */
|
|
69
|
+
function callerOwnerKey(config) {
|
|
70
|
+
const user = resolveRuntimeConfigurable(config)?.langgraph_auth_user;
|
|
71
|
+
return user ? threadOwnerKey(user) : undefined;
|
|
72
|
+
}
|
|
73
|
+
/** The thread a run's record is read from: its lead's, when given. */
|
|
74
|
+
export function threadSource(config, leadThread) {
|
|
75
|
+
return leadThread
|
|
76
|
+
? {
|
|
77
|
+
configurable: { ...config?.configurable, thread_id: leadThread.id },
|
|
78
|
+
metadata: leadThread.metadata,
|
|
79
|
+
}
|
|
80
|
+
: { configurable: config?.configurable, metadata: config?.metadata };
|
|
81
|
+
}
|
|
82
|
+
/** The `langsmith-trace` header, when deepagents marked it as a parent to nest under. */
|
|
83
|
+
function nestingTrace(configurable) {
|
|
84
|
+
const trace = configurable["langsmith-trace"];
|
|
85
|
+
const metadata = configurable["langsmith-metadata"];
|
|
86
|
+
return typeof trace === "string" &&
|
|
87
|
+
trace &&
|
|
88
|
+
isRecord(metadata) &&
|
|
89
|
+
metadata[NEST_UNDER_PARENT] === true
|
|
90
|
+
? trace
|
|
91
|
+
: undefined;
|
|
92
|
+
}
|
|
93
|
+
/** Rebuild the span that launched this run from the trace headers the Agent Server kept. */
|
|
94
|
+
export function launchingParent(config) {
|
|
95
|
+
const configurable = config?.configurable ?? {};
|
|
96
|
+
const trace = nestingTrace(configurable);
|
|
97
|
+
if (!trace)
|
|
98
|
+
return undefined;
|
|
99
|
+
const project = configurable["langsmith-project"];
|
|
100
|
+
const baggage = typeof project === "string"
|
|
101
|
+
? `langsmith-project=${encodeURIComponent(project)}`
|
|
102
|
+
: "";
|
|
103
|
+
try {
|
|
104
|
+
// `fromHeaders` accepts any string and invents a run id.
|
|
105
|
+
if (!DOTTED_ORDER.test(trace))
|
|
106
|
+
throw new Error("malformed");
|
|
107
|
+
return RunTree.fromHeaders({ "langsmith-trace": trace, baggage });
|
|
108
|
+
}
|
|
109
|
+
catch {
|
|
110
|
+
logger.warn("ignoring a malformed langsmith-trace; the run keeps its own trace");
|
|
111
|
+
return undefined;
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
//# sourceMappingURL=parent-run.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parent-run.js","sourceRoot":"","sources":["../../src/runtime/parent-run.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { type LeadThread } from "./parent-run.js";
|
|
1
2
|
import type { ManagedRunConfig } from "./types.js";
|
|
2
3
|
import type { createDeepAgent } from "deepagents";
|
|
3
4
|
export declare function isRunExecution(config?: ManagedRunConfig): config is ManagedRunConfig;
|
|
@@ -43,6 +44,18 @@ export declare function executionContext(config?: ManagedRunConfig): {
|
|
|
43
44
|
channelRun: boolean;
|
|
44
45
|
};
|
|
45
46
|
type Agent = ReturnType<typeof createDeepAgent>;
|
|
46
|
-
|
|
47
|
+
/** The run's own thread id. */
|
|
48
|
+
export declare function threadIdOf(config?: ManagedRunConfig): string | undefined;
|
|
49
|
+
/**
|
|
50
|
+
* The Agent Server run a config belongs to. The JS bridge passes it as the
|
|
51
|
+
* top-level `runId`; other hosts stamp `metadata.run_id` or
|
|
52
|
+
* `configurable.run_id`.
|
|
53
|
+
*/
|
|
54
|
+
export declare function resolveRunId(config?: {
|
|
55
|
+
runId?: unknown;
|
|
56
|
+
metadata?: Record<string, unknown>;
|
|
57
|
+
configurable?: Record<string, unknown>;
|
|
58
|
+
}): string | undefined;
|
|
59
|
+
export declare function adaptChannelExecution(agent: Agent, leadThread?: LeadThread): Agent;
|
|
47
60
|
export {};
|
|
48
61
|
//# sourceMappingURL=run-input.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run-input.d.ts","sourceRoot":"","sources":["../../src/runtime/run-input.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"run-input.d.ts","sourceRoot":"","sources":["../../src/runtime/run-input.ts"],"names":[],"mappings":"AAaA,OAAO,EAIL,KAAK,UAAU,EAChB,MAAM,iBAAiB,CAAC;AAazB,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AACnD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAElD,wBAAgB,cAAc,CAC5B,MAAM,CAAC,EAAE,gBAAgB,GACxB,MAAM,IAAI,gBAAgB,CAE5B;AAED,wBAAgB,kBAAkB,CAAC,MAAM,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAYrE;AAED,wBAAgB,oBAAoB,CAAC,MAAM,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAOvE;AAED,2FAA2F;AAC3F,wBAAgB,gBAAgB,CAAC,MAAM,CAAC,EAAE,gBAAgB;;aAMxB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAuDpE;AAED,KAAK,KAAK,GAAG,UAAU,CAAC,OAAO,eAAe,CAAC,CAAC;AAiHhD,+BAA+B;AAC/B,wBAAgB,UAAU,CAAC,MAAM,CAAC,EAAE,gBAAgB,GAAG,MAAM,GAAG,SAAS,CAGxE;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,MAAM,CAAC,EAAE;IACpC,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnC,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACxC,GAAG,MAAM,GAAG,SAAS,CASrB;AA8CD,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,KAAK,EACZ,UAAU,CAAC,EAAE,UAAU,GACtB,KAAK,CASP"}
|
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
import { isDeepStrictEqual } from "node:util";
|
|
2
|
-
import { CompiledStateGraph, getConfig } from "@langchain/langgraph";
|
|
2
|
+
import { CompiledStateGraph, getConfig, isGraphBubbleUp, } from "@langchain/langgraph";
|
|
3
|
+
import { withRunTree } from "langsmith/traceable";
|
|
3
4
|
import { currentChannelBinding, resolveChannelBinding, } from "../channels/binding.js";
|
|
4
5
|
import { isManagedKey } from "../run-context.js";
|
|
6
|
+
import { resolveRunThread } from "./managed-thread.js";
|
|
7
|
+
import { launchingParent, leadThreadId, threadSource, } from "./parent-run.js";
|
|
8
|
+
import { deliverRunFailure, deliverRunResult, } from "../channels/delivery.js";
|
|
5
9
|
import { createLogContext, currentLogContext, runInLogContext, traceIdFromMetadata, } from "../telemetry/otel/index.js";
|
|
6
10
|
export function isRunExecution(config) {
|
|
7
11
|
return !!config && Object.hasOwn(config, "context");
|
|
@@ -71,8 +75,11 @@ export function executionContext(config) {
|
|
|
71
75
|
channelRun,
|
|
72
76
|
};
|
|
73
77
|
}
|
|
78
|
+
/** Graph property holding the lead thread a verified async subagent run shares. */
|
|
79
|
+
const LEAD_THREAD = Symbol("mda.leadThread");
|
|
74
80
|
/** Keep the adapter on native graph copies without binding an old instance. */
|
|
75
81
|
class ManagedCompiledGraph extends CompiledStateGraph {
|
|
82
|
+
[LEAD_THREAD];
|
|
76
83
|
async *_streamIterator(input, options) {
|
|
77
84
|
const ambient = getConfig();
|
|
78
85
|
const config = {
|
|
@@ -85,7 +92,19 @@ class ManagedCompiledGraph extends CompiledStateGraph {
|
|
|
85
92
|
...options?.configurable,
|
|
86
93
|
},
|
|
87
94
|
};
|
|
88
|
-
const
|
|
95
|
+
const routed = executionContext(config);
|
|
96
|
+
// A channel caller's async subagent run never answers, and reads its lead's
|
|
97
|
+
// thread record once its caller is verified to own it.
|
|
98
|
+
const subagent = routed.channelRun && !!leadThreadId(config);
|
|
99
|
+
const scope = {
|
|
100
|
+
...routed,
|
|
101
|
+
thread: resolveRunThread({
|
|
102
|
+
...threadSource(config, routed.channelRun ? this[LEAD_THREAD] : undefined),
|
|
103
|
+
binding: routed.binding,
|
|
104
|
+
}),
|
|
105
|
+
};
|
|
106
|
+
// Nest this run under the async subagent call that launched it.
|
|
107
|
+
const parent = launchingParent(config);
|
|
89
108
|
const managed = scope.routing !== undefined;
|
|
90
109
|
const execution = managed && this.config?.context !== undefined
|
|
91
110
|
? this.withConfig({})
|
|
@@ -100,12 +119,38 @@ class ManagedCompiledGraph extends CompiledStateGraph {
|
|
|
100
119
|
if (!parentLog) {
|
|
101
120
|
setRunLogAttributes(log, config);
|
|
102
121
|
}
|
|
103
|
-
|
|
122
|
+
// Each step runs bound to its channel, in the run's log context, and nested
|
|
123
|
+
// under the async subagent call that launched it, if any.
|
|
124
|
+
const within = (fn) => {
|
|
125
|
+
const step = () => currentChannelBinding.run(scope, () => runInLogContext(log, fn));
|
|
126
|
+
return parent ? withRunTree(parent, step) : step();
|
|
127
|
+
};
|
|
128
|
+
const topLevel = isTopLevelRun(config, this);
|
|
129
|
+
const delivered = {
|
|
130
|
+
runId: resolveRunId(config),
|
|
131
|
+
assistantId: assistantIdOf(config),
|
|
132
|
+
configurable: config.configurable,
|
|
133
|
+
metadata: config.metadata,
|
|
134
|
+
routing: scope.routing,
|
|
135
|
+
runThreadId: threadIdOf(config),
|
|
136
|
+
subagent,
|
|
137
|
+
};
|
|
104
138
|
try {
|
|
105
139
|
while (true) {
|
|
106
|
-
|
|
107
|
-
|
|
140
|
+
let item;
|
|
141
|
+
try {
|
|
142
|
+
item = await within(() => iterator.next());
|
|
143
|
+
}
|
|
144
|
+
catch (error) {
|
|
145
|
+
if (topLevel && !isGraphBubbleUp(error) && !isCancellation(error))
|
|
146
|
+
await within(() => deliverRunFailure(scope.thread, delivered, error));
|
|
147
|
+
throw error;
|
|
148
|
+
}
|
|
149
|
+
if (item.done) {
|
|
150
|
+
if (topLevel)
|
|
151
|
+
await within(() => deliverRunResult(this, scope.thread, delivered));
|
|
108
152
|
return;
|
|
153
|
+
}
|
|
109
154
|
yield item.value;
|
|
110
155
|
}
|
|
111
156
|
}
|
|
@@ -122,6 +167,53 @@ class ManagedCompiledGraph extends CompiledStateGraph {
|
|
|
122
167
|
: super._validateContext(context);
|
|
123
168
|
}
|
|
124
169
|
}
|
|
170
|
+
/** The run's own thread id. */
|
|
171
|
+
export function threadIdOf(config) {
|
|
172
|
+
const value = config?.configurable?.thread_id;
|
|
173
|
+
return typeof value === "string" && value.trim() ? value.trim() : undefined;
|
|
174
|
+
}
|
|
175
|
+
/**
|
|
176
|
+
* The Agent Server run a config belongs to. The JS bridge passes it as the
|
|
177
|
+
* top-level `runId`; other hosts stamp `metadata.run_id` or
|
|
178
|
+
* `configurable.run_id`.
|
|
179
|
+
*/
|
|
180
|
+
export function resolveRunId(config) {
|
|
181
|
+
for (const value of [
|
|
182
|
+
config?.runId,
|
|
183
|
+
config?.metadata?.run_id,
|
|
184
|
+
config?.configurable?.run_id,
|
|
185
|
+
]) {
|
|
186
|
+
if (typeof value === "string" && value.trim())
|
|
187
|
+
return value.trim();
|
|
188
|
+
}
|
|
189
|
+
return undefined;
|
|
190
|
+
}
|
|
191
|
+
function assistantIdOf(config) {
|
|
192
|
+
for (const id of [
|
|
193
|
+
config.configurable?.assistant_id,
|
|
194
|
+
config.metadata?.assistant_id,
|
|
195
|
+
]) {
|
|
196
|
+
if (typeof id === "string" && id.trim())
|
|
197
|
+
return id.trim();
|
|
198
|
+
}
|
|
199
|
+
return undefined;
|
|
200
|
+
}
|
|
201
|
+
/**
|
|
202
|
+
* Whether a run ended because it was cancelled, which is no failure to report.
|
|
203
|
+
* Python never sees one: its cancellation is not an `Exception`. The check
|
|
204
|
+
* mirrors LangGraph's own in `pregel/retry.js`.
|
|
205
|
+
*/
|
|
206
|
+
function isCancellation(error) {
|
|
207
|
+
if (!(error instanceof Error))
|
|
208
|
+
return false;
|
|
209
|
+
return (error.name === "AbortError" ||
|
|
210
|
+
error.message.startsWith("Cancel") ||
|
|
211
|
+
error.message.startsWith("AbortError"));
|
|
212
|
+
}
|
|
213
|
+
/** The run's own graph with state to read, not a graph a node calls. */
|
|
214
|
+
function isTopLevelRun(config, graph) {
|
|
215
|
+
return !config.configurable?.checkpoint_ns && !!graph.checkpointer;
|
|
216
|
+
}
|
|
125
217
|
function setRunLogAttributes(log, config) {
|
|
126
218
|
for (const [key, value] of [
|
|
127
219
|
["run_id", config.metadata?.run_id],
|
|
@@ -131,13 +223,14 @@ function setRunLogAttributes(log, config) {
|
|
|
131
223
|
log.attributes[key] = value;
|
|
132
224
|
}
|
|
133
225
|
}
|
|
134
|
-
export function adaptChannelExecution(agent) {
|
|
226
|
+
export function adaptChannelExecution(agent, leadThread) {
|
|
135
227
|
if (!(agent.graph instanceof CompiledStateGraph))
|
|
136
228
|
return agent;
|
|
137
229
|
Object.setPrototypeOf(agent.graph, ManagedCompiledGraph.prototype);
|
|
230
|
+
agent.graph[LEAD_THREAD] = leadThread;
|
|
138
231
|
const configure = agent.withConfig;
|
|
139
232
|
agent.withConfig = function (config) {
|
|
140
|
-
return adaptChannelExecution(configure.call(this, config));
|
|
233
|
+
return adaptChannelExecution(configure.call(this, config), leadThread);
|
|
141
234
|
};
|
|
142
235
|
return agent;
|
|
143
236
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run-input.js","sourceRoot":"","sources":["../../src/runtime/run-input.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,
|
|
1
|
+
{"version":3,"file":"run-input.js","sourceRoot":"","sources":["../../src/runtime/run-input.ts"],"names":[],"mappings":"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"}
|