managed-deepagents 0.10.0-dev.9 → 0.10.1-dev.1
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 +864 -143
- 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/index.d.ts +5 -1
- package/dist/channels/github/index.d.ts.map +1 -1
- package/dist/channels/github/index.js +38 -46
- package/dist/channels/github/index.js.map +1 -1
- 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 +271 -0
- package/dist/channels/github/schema.d.ts.map +1 -1
- package/dist/channels/github/schema.js +33 -0
- package/dist/channels/github/schema.js.map +1 -1
- package/dist/channels/github/types.d.ts +50 -26
- package/dist/channels/github/types.d.ts.map +1 -1
- 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 +209 -89
- package/dist/channels/http/http.js.map +1 -1
- package/dist/channels/http/index.d.ts +7 -1
- package/dist/channels/http/index.d.ts.map +1 -1
- package/dist/channels/http/index.js +32 -23
- package/dist/channels/http/index.js.map +1 -1
- package/dist/channels/http/ingress.d.ts +30 -24
- package/dist/channels/http/ingress.d.ts.map +1 -1
- package/dist/channels/http/ingress.js +61 -57
- package/dist/channels/http/ingress.js.map +1 -1
- package/dist/channels/http/provider.d.ts +38 -15
- package/dist/channels/http/provider.d.ts.map +1 -1
- package/dist/channels/http/provider.js +54 -24
- package/dist/channels/http/provider.js.map +1 -1
- package/dist/channels/http/studio.d.ts +8 -1
- package/dist/channels/http/studio.d.ts.map +1 -1
- package/dist/channels/http/studio.js +13 -0
- package/dist/channels/http/studio.js.map +1 -1
- package/dist/channels/http/types.d.ts +95 -69
- 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/index.d.ts +5 -1
- package/dist/channels/linear/index.d.ts.map +1 -1
- package/dist/channels/linear/index.js +65 -94
- package/dist/channels/linear/index.js.map +1 -1
- package/dist/channels/linear/schema.d.ts +11 -25
- package/dist/channels/linear/schema.d.ts.map +1 -1
- package/dist/channels/linear/schema.js +6 -0
- package/dist/channels/linear/schema.js.map +1 -1
- package/dist/channels/linear/types.d.ts +37 -31
- package/dist/channels/linear/types.d.ts.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.map +1 -1
- package/dist/channels/reserved-connections.js +10 -0
- package/dist/channels/reserved-connections.js.map +1 -1
- 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 +46 -4
- package/dist/channels/run-input.d.ts.map +1 -1
- package/dist/channels/run-input.js +94 -30
- package/dist/channels/run-input.js.map +1 -1
- 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 +9 -76
- 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/trigger/client.d.ts.map +1 -1
- package/dist/channels/trigger/client.js +9 -11
- 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 +419 -82
- package/dist/channels/trigger/http.js.map +1 -1
- package/dist/channels/trigger/identity-context.d.ts +1 -1
- package/dist/channels/trigger/identity-context.d.ts.map +1 -1
- package/dist/channels/trigger/identity-context.js +3 -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 +141 -9
- 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/concurrency/batch-processor.d.ts +51 -0
- package/dist/concurrency/batch-processor.d.ts.map +1 -0
- package/dist/concurrency/batch-processor.js +99 -0
- package/dist/concurrency/batch-processor.js.map +1 -0
- package/dist/connections.d.ts +5 -12
- package/dist/connections.d.ts.map +1 -1
- package/dist/connections.js +28 -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.js +3 -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 +7 -2
- package/dist/identity/loopback.d.ts.map +1 -1
- package/dist/identity/loopback.js +15 -4
- 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 +15 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/dist/ingress/index.d.ts +8 -0
- package/dist/ingress/index.d.ts.map +1 -1
- package/dist/ingress/index.js +32 -2
- package/dist/ingress/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 +27 -1
- package/dist/ingress/runs.d.ts.map +1 -1
- package/dist/ingress/runs.js +69 -6
- 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/memory/instructions-middleware.d.ts.map +1 -1
- package/dist/memory/instructions-middleware.js +6 -5
- package/dist/memory/instructions-middleware.js.map +1 -1
- package/dist/namespaces.d.ts +4 -21
- package/dist/namespaces.d.ts.map +1 -1
- package/dist/namespaces.js +0 -29
- package/dist/namespaces.js.map +1 -1
- package/dist/resilience/retry.d.ts +21 -0
- package/dist/resilience/retry.d.ts.map +1 -0
- package/dist/resilience/retry.js +40 -0
- package/dist/resilience/retry.js.map +1 -0
- 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 +1 -2
- package/dist/runtime/auth.d.ts.map +1 -1
- package/dist/runtime/auth.js +138 -72
- 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 +507 -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.map +1 -1
- package/dist/runtime/channel-icon.js +18 -7
- package/dist/runtime/channel-icon.js.map +1 -1
- package/dist/runtime/channel.d.ts +5 -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/http.d.ts +15 -0
- package/dist/runtime/http.d.ts.map +1 -1
- package/dist/runtime/http.js +37 -0
- package/dist/runtime/http.js.map +1 -1
- package/dist/runtime/identity-http.d.ts.map +1 -1
- package/dist/runtime/identity-http.js +19 -7
- package/dist/runtime/identity-http.js.map +1 -1
- package/dist/runtime/identity-runtime.d.ts +4 -9
- package/dist/runtime/identity-runtime.d.ts.map +1 -1
- package/dist/runtime/identity-runtime.js +12 -25
- 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 -52
- 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/log.d.ts +8 -14
- package/dist/runtime/log.d.ts.map +1 -1
- package/dist/runtime/log.js +16 -7
- package/dist/runtime/log.js.map +1 -1
- package/dist/runtime/managed-middleware.d.ts.map +1 -1
- package/dist/runtime/managed-middleware.js +1 -14
- package/dist/runtime/managed-middleware.js.map +1 -1
- 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 +18 -2
- package/dist/runtime/managed-tools.d.ts.map +1 -1
- package/dist/runtime/managed-tools.js +26 -22
- package/dist/runtime/managed-tools.js.map +1 -1
- package/dist/runtime/memory/mounts.d.ts +82 -11
- package/dist/runtime/memory/mounts.d.ts.map +1 -1
- package/dist/runtime/memory/mounts.js +173 -34
- package/dist/runtime/memory/mounts.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 +118 -7
- package/dist/runtime/run-input.js.map +1 -1
- package/dist/runtime/sandbox-manager.d.ts +31 -17
- package/dist/runtime/sandbox-manager.d.ts.map +1 -1
- package/dist/runtime/sandbox-manager.js +112 -70
- 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/selected-skills-backend.d.ts +3 -3
- package/dist/runtime/selected-skills-backend.d.ts.map +1 -1
- package/dist/runtime/selected-skills-backend.js +5 -5
- package/dist/runtime/selected-skills-backend.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 +85 -23
- 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/lifecycle.d.ts +26 -0
- package/dist/telemetry/lifecycle.d.ts.map +1 -0
- package/dist/telemetry/lifecycle.js +49 -0
- package/dist/telemetry/lifecycle.js.map +1 -0
- 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/context.d.ts +57 -0
- package/dist/telemetry/otel/context.d.ts.map +1 -0
- package/dist/telemetry/otel/context.js +122 -0
- package/dist/telemetry/otel/context.js.map +1 -0
- package/dist/telemetry/otel/exporter.d.ts +53 -0
- package/dist/telemetry/otel/exporter.d.ts.map +1 -0
- package/dist/telemetry/otel/exporter.js +190 -0
- package/dist/telemetry/otel/exporter.js.map +1 -0
- package/dist/telemetry/otel/index.d.ts +6 -0
- package/dist/telemetry/otel/index.d.ts.map +1 -0
- package/dist/telemetry/otel/index.js +3 -0
- package/dist/telemetry/otel/index.js.map +1 -0
- package/dist/telemetry/otel/otlp.d.ts +44 -0
- package/dist/telemetry/otel/otlp.d.ts.map +1 -0
- package/dist/telemetry/otel/otlp.js +7 -0
- package/dist/telemetry/otel/otlp.js.map +1 -0
- package/dist/telemetry/otel/truncate.d.ts +10 -0
- package/dist/telemetry/otel/truncate.d.ts.map +1 -0
- package/dist/telemetry/otel/truncate.js +39 -0
- package/dist/telemetry/otel/truncate.js.map +1 -0
- package/dist/telemetry/run-listener.d.ts +1 -1
- package/dist/telemetry/run-listener.d.ts.map +1 -1
- package/dist/telemetry/run-listener.js +32 -2
- package/dist/telemetry/run-listener.js.map +1 -1
- package/dist/telemetry/transport/posthog.d.ts +13 -1
- package/dist/telemetry/transport/posthog.d.ts.map +1 -1
- package/dist/telemetry/transport/posthog.js +68 -30
- package/dist/telemetry/transport/posthog.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
- package/dist/channels/http/forward.d.ts +0 -13
- package/dist/channels/http/forward.d.ts.map +0 -1
- package/dist/channels/http/forward.js +0 -128
- package/dist/channels/http/forward.js.map +0 -1
- package/dist/channels/http/reply.d.ts +0 -20
- package/dist/channels/http/reply.d.ts.map +0 -1
- package/dist/channels/http/reply.js +0 -116
- package/dist/channels/http/reply.js.map +0 -1
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The managed `browser.ts` declaration primitive.
|
|
3
|
+
*
|
|
4
|
+
* The CLI discovers a root `browser` export in `browser.ts`; MDA then gives the
|
|
5
|
+
* agent a LangSmith browser and Stagehand's tools, as `browser_run`,
|
|
6
|
+
* `browser_snapshot` and `browser_screenshot`.
|
|
7
|
+
*
|
|
8
|
+
* @example
|
|
9
|
+
* ```ts
|
|
10
|
+
* // browser.ts
|
|
11
|
+
* import { defineBrowser } from "managed-deepagents";
|
|
12
|
+
*
|
|
13
|
+
* export const browser = defineBrowser({ scope: "user" });
|
|
14
|
+
* ```
|
|
15
|
+
*/
|
|
16
|
+
export type BrowserScope = "thread" | "user";
|
|
17
|
+
/** Developer-provided options for the managed browser. */
|
|
18
|
+
export interface BrowserOptions {
|
|
19
|
+
/**
|
|
20
|
+
* `"thread"` gives each thread its own browser; `"user"` shares one per
|
|
21
|
+
* signed-in user across their threads, logins included, with a window per
|
|
22
|
+
* thread. Runs with no person behind them, such as scheduled runs, get their
|
|
23
|
+
* thread's browser. Defaults to `"thread"`.
|
|
24
|
+
*/
|
|
25
|
+
scope?: BrowserScope;
|
|
26
|
+
/** Stop a browser after this long idle (60 to 86,400). Defaults to 600. */
|
|
27
|
+
idleTtlSeconds?: number;
|
|
28
|
+
}
|
|
29
|
+
/** The object exported from `browser.ts`. */
|
|
30
|
+
export interface BrowserDefinition {
|
|
31
|
+
readonly kind: "browser";
|
|
32
|
+
readonly scope: BrowserScope;
|
|
33
|
+
readonly idleTtlSeconds: number;
|
|
34
|
+
}
|
|
35
|
+
/** Give the agent a LangSmith browser. */
|
|
36
|
+
export declare function defineBrowser(options?: BrowserOptions): BrowserDefinition;
|
|
37
|
+
//# sourceMappingURL=browser.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"browser.d.ts","sourceRoot":"","sources":["../src/browser.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAKH,MAAM,MAAM,YAAY,GAAG,QAAQ,GAAG,MAAM,CAAC;AAE7C,0DAA0D;AAC1D,MAAM,WAAW,cAAc;IAC7B;;;;;OAKG;IACH,KAAK,CAAC,EAAE,YAAY,CAAC;IACrB,2EAA2E;IAC3E,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,6CAA6C;AAC7C,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IACzB,QAAQ,CAAC,KAAK,EAAE,YAAY,CAAC;IAC7B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;CACjC;AAED,0CAA0C;AAC1C,wBAAgB,aAAa,CAAC,OAAO,GAAE,cAAmB,GAAG,iBAAiB,CAiB7E"}
|
package/dist/browser.js
ADDED
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The managed `browser.ts` declaration primitive.
|
|
3
|
+
*
|
|
4
|
+
* The CLI discovers a root `browser` export in `browser.ts`; MDA then gives the
|
|
5
|
+
* agent a LangSmith browser and Stagehand's tools, as `browser_run`,
|
|
6
|
+
* `browser_snapshot` and `browser_screenshot`.
|
|
7
|
+
*
|
|
8
|
+
* @example
|
|
9
|
+
* ```ts
|
|
10
|
+
* // browser.ts
|
|
11
|
+
* import { defineBrowser } from "managed-deepagents";
|
|
12
|
+
*
|
|
13
|
+
* export const browser = defineBrowser({ scope: "user" });
|
|
14
|
+
* ```
|
|
15
|
+
*/
|
|
16
|
+
const MIN_IDLE_TTL_S = 60;
|
|
17
|
+
const MAX_IDLE_TTL_S = 86_400;
|
|
18
|
+
/** Give the agent a LangSmith browser. */
|
|
19
|
+
export function defineBrowser(options = {}) {
|
|
20
|
+
const { scope = "thread", idleTtlSeconds = 600 } = options;
|
|
21
|
+
if (scope !== "thread" && scope !== "user") {
|
|
22
|
+
throw new TypeError(`browser scope must be "thread" or "user", not ${JSON.stringify(scope)}`);
|
|
23
|
+
}
|
|
24
|
+
if (!Number.isInteger(idleTtlSeconds) ||
|
|
25
|
+
idleTtlSeconds < MIN_IDLE_TTL_S ||
|
|
26
|
+
idleTtlSeconds > MAX_IDLE_TTL_S) {
|
|
27
|
+
throw new TypeError(`idleTtlSeconds must be an integer between ${MIN_IDLE_TTL_S} and ${MAX_IDLE_TTL_S}`);
|
|
28
|
+
}
|
|
29
|
+
return Object.freeze({ kind: "browser", scope, idleTtlSeconds });
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=browser.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"browser.js","sourceRoot":"","sources":["../src/browser.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,MAAM,cAAc,GAAG,EAAE,CAAC;AAC1B,MAAM,cAAc,GAAG,MAAM,CAAC;AAwB9B,0CAA0C;AAC1C,MAAM,UAAU,aAAa,CAAC,OAAO,GAAmB,EAAE;IACxD,MAAM,EAAE,KAAK,GAAG,QAAQ,EAAE,cAAc,GAAG,GAAG,EAAE,GAAG,OAAO,CAAC;IAC3D,IAAI,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,MAAM,EAAE,CAAC;QAC3C,MAAM,IAAI,SAAS,CACjB,iDAAiD,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CACzE,CAAC;IACJ,CAAC;IACD,IACE,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC;QACjC,cAAc,GAAG,cAAc;QAC/B,cAAc,GAAG,cAAc,EAC/B,CAAC;QACD,MAAM,IAAI,SAAS,CACjB,6CAA6C,cAAc,QAAQ,cAAc,EAAE,CACpF,CAAC;IACJ,CAAC;IACD,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,cAAc,EAAE,CAAC,CAAC;AACnE,CAAC"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import type { ResolvePrincipalIdentity } from "../agent-auth.js";
|
|
2
|
+
/**
|
|
3
|
+
* Who caused a channel event: the signed sender of a GitHub or Linear webhook,
|
|
4
|
+
* or the Slack user Trigger Server names on a delivery, which MDA checks
|
|
5
|
+
* against the delivery's signed principal. It is personal data: MDA neither
|
|
6
|
+
* logs it nor adds it to a run's metadata.
|
|
7
|
+
*/
|
|
8
|
+
interface ActorBase<P extends string> {
|
|
9
|
+
provider: P;
|
|
10
|
+
/** The provider's ID for them. */
|
|
11
|
+
id: string;
|
|
12
|
+
}
|
|
13
|
+
/** An actor whose provider may name them. */
|
|
14
|
+
interface NamedActorBase<P extends string> extends ActorBase<P> {
|
|
15
|
+
/** Their name or handle, when the provider sends one. */
|
|
16
|
+
name?: string;
|
|
17
|
+
/** Their email, when the provider sends one. */
|
|
18
|
+
email?: string;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* A Slack user, as Trigger Server read them from Slack's signed request.
|
|
22
|
+
* Trigger Server's delivery names no name or email. MDA checks `id` against
|
|
23
|
+
* the delivery's signed principal, but not a Slack Connect guest's `teamId`.
|
|
24
|
+
*/
|
|
25
|
+
export interface SlackActor extends ActorBase<"slack"> {
|
|
26
|
+
/**
|
|
27
|
+
* Their own Slack workspace (team). In a Slack Connect channel, someone
|
|
28
|
+
* from another organization keeps theirs rather than your app's.
|
|
29
|
+
*/
|
|
30
|
+
teamId: string;
|
|
31
|
+
}
|
|
32
|
+
/** A GitHub account, as the signed webhook's `sender` names it; `name` is its login. */
|
|
33
|
+
export interface GitHubActor extends NamedActorBase<"github"> {
|
|
34
|
+
type: "User" | "Bot" | "Organization";
|
|
35
|
+
}
|
|
36
|
+
/** A Linear user or app, as the signed webhook names it. */
|
|
37
|
+
export interface LinearActor extends NamedActorBase<"linear"> {
|
|
38
|
+
/** Linear's kind of actor, such as `user`, when it sends one. */
|
|
39
|
+
type?: string;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Who caused an event, on any channel; switch on `provider`.
|
|
43
|
+
*
|
|
44
|
+
* @experimental This may change in a minor release.
|
|
45
|
+
*/
|
|
46
|
+
export type ChannelActor = SlackActor | GitHubActor | LinearActor;
|
|
47
|
+
/**
|
|
48
|
+
* The Agent Auth identity a webhook channel's sender runs as when no
|
|
49
|
+
* `resolveUser` maps them: a GitHub user by their numeric ID, a Linear user by
|
|
50
|
+
* theirs. Both IDs are unique across their provider, so the provider's host is
|
|
51
|
+
* the issuer. Bots, apps and organizations have none and run as the channel.
|
|
52
|
+
* A Slack sender has none here: Trigger Server already resolved
|
|
53
|
+
* `(slack, install team, user)` for the delivery.
|
|
54
|
+
*/
|
|
55
|
+
export declare function actorIdentity(actor: ChannelActor): ResolvePrincipalIdentity | undefined;
|
|
56
|
+
export {};
|
|
57
|
+
//# sourceMappingURL=actor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"actor.d.ts","sourceRoot":"","sources":["../../src/channels/actor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAC;AAEjE;;;;;GAKG;AACH,UAAU,SAAS,CAAC,CAAC,SAAS,MAAM;IAClC,QAAQ,EAAE,CAAC,CAAC;IACZ,kCAAkC;IAClC,EAAE,EAAE,MAAM,CAAC;CACZ;AAED,6CAA6C;AAC7C,UAAU,cAAc,CAAC,CAAC,SAAS,MAAM,CAAE,SAAQ,SAAS,CAAC,CAAC,CAAC;IAC7D,yDAAyD;IACzD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,gDAAgD;IAChD,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;;GAIG;AACH,MAAM,WAAW,UAAW,SAAQ,SAAS,CAAC,OAAO,CAAC;IACpD;;;OAGG;IACH,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,wFAAwF;AACxF,MAAM,WAAW,WAAY,SAAQ,cAAc,CAAC,QAAQ,CAAC;IAC3D,IAAI,EAAE,MAAM,GAAG,KAAK,GAAG,cAAc,CAAC;CACvC;AAED,4DAA4D;AAC5D,MAAM,WAAW,WAAY,SAAQ,cAAc,CAAC,QAAQ,CAAC;IAC3D,iEAAiE;IACjE,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;;;GAIG;AACH,MAAM,MAAM,YAAY,GAAG,UAAU,GAAG,WAAW,GAAG,WAAW,CAAC;AAElE;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAC3B,KAAK,EAAE,YAAY,GAClB,wBAAwB,GAAG,SAAS,CActC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The Agent Auth identity a webhook channel's sender runs as when no
|
|
3
|
+
* `resolveUser` maps them: a GitHub user by their numeric ID, a Linear user by
|
|
4
|
+
* theirs. Both IDs are unique across their provider, so the provider's host is
|
|
5
|
+
* the issuer. Bots, apps and organizations have none and run as the channel.
|
|
6
|
+
* A Slack sender has none here: Trigger Server already resolved
|
|
7
|
+
* `(slack, install team, user)` for the delivery.
|
|
8
|
+
*/
|
|
9
|
+
export function actorIdentity(actor) {
|
|
10
|
+
switch (actor.provider) {
|
|
11
|
+
case "github":
|
|
12
|
+
return actor.type === "User"
|
|
13
|
+
? { provider: "github", issuer: "github.com", subject: actor.id }
|
|
14
|
+
: undefined;
|
|
15
|
+
case "linear":
|
|
16
|
+
// A session's creator or prompting user comes without a type.
|
|
17
|
+
return actor.type === undefined || actor.type.toLowerCase() === "user"
|
|
18
|
+
? { provider: "linear", issuer: "linear.app", subject: actor.id }
|
|
19
|
+
: undefined;
|
|
20
|
+
default:
|
|
21
|
+
return undefined;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=actor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"actor.js","sourceRoot":"","sources":["../../src/channels/actor.ts"],"names":[],"mappings":"AAqDA;;;;;;;GAOG;AACH,MAAM,UAAU,aAAa,CAC3B,KAAmB;IAEnB,QAAQ,KAAK,CAAC,QAAQ,EAAE,CAAC;QACvB,KAAK,QAAQ;YACX,OAAO,KAAK,CAAC,IAAI,KAAK,MAAM;gBAC1B,CAAC,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE,EAAE;gBACjE,CAAC,CAAC,SAAS,CAAC;QAChB,KAAK,QAAQ;YACX,8DAA8D;YAC9D,OAAO,KAAK,CAAC,IAAI,KAAK,SAAS,IAAI,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,MAAM;gBACpE,CAAC,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE,EAAE;gBACjE,CAAC,CAAC,SAAS,CAAC;QAChB;YACE,OAAO,SAAS,CAAC;IACrB,CAAC;AACH,CAAC"}
|
|
@@ -8,4 +8,33 @@ export declare function extractAssistantText(input: {
|
|
|
8
8
|
export declare function extractAssistantContent(input: {
|
|
9
9
|
messages?: unknown;
|
|
10
10
|
}): MessageContent | null;
|
|
11
|
+
/** A reply that means "nothing to tell the channel". */
|
|
12
|
+
export declare const QUIET_REPLY = "[quiet]";
|
|
13
|
+
/** Where a run's messages start in a thread's messages. */
|
|
14
|
+
export interface ReplyBoundary {
|
|
15
|
+
/**
|
|
16
|
+
* The thread's last message before the run. Without it the run starts at
|
|
17
|
+
* the last user message.
|
|
18
|
+
*/
|
|
19
|
+
afterId?: string;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* What a run says to the channel: each of its answers, oldest first, without
|
|
23
|
+
* `[quiet]` ones. A run with a known start never repeats an earlier run's
|
|
24
|
+
* answer.
|
|
25
|
+
*/
|
|
26
|
+
export declare function extractReplyText(input: {
|
|
27
|
+
messages?: unknown;
|
|
28
|
+
}, boundary?: ReplyBoundary): string;
|
|
29
|
+
/** {@link extractReplyText} as content; several answers are joined as text. */
|
|
30
|
+
export declare function extractReplyContent(input: {
|
|
31
|
+
messages?: unknown;
|
|
32
|
+
}, boundary?: ReplyBoundary): MessageContent | null;
|
|
33
|
+
/** `additional_kwargs` key deepagents marks a task notification with. */
|
|
34
|
+
export declare const NOTIFICATION_KEY = "deepagents_notification";
|
|
35
|
+
/**
|
|
36
|
+
* `additional_kwargs` key MDA marks its own notifications with, such as a browser
|
|
37
|
+
* handoff ending, the same way.
|
|
38
|
+
*/
|
|
39
|
+
export declare const MDA_NOTIFICATION_KEY = "mda_notification";
|
|
11
40
|
//# sourceMappingURL=assistant-text.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"assistant-text.d.ts","sourceRoot":"","sources":["../../src/channels/assistant-text.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAGL,KAAK,cAAc,EACpB,MAAM,0BAA0B,CAAC;AAGlC,wBAAgB,oBAAoB,CAAC,KAAK,EAAE;IAAE,QAAQ,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,MAAM,CAM1E;
|
|
1
|
+
{"version":3,"file":"assistant-text.d.ts","sourceRoot":"","sources":["../../src/channels/assistant-text.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAGL,KAAK,cAAc,EACpB,MAAM,0BAA0B,CAAC;AAGlC,wBAAgB,oBAAoB,CAAC,KAAK,EAAE;IAAE,QAAQ,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,MAAM,CAM1E;AA2BD,wBAAgB,uBAAuB,CAAC,KAAK,EAAE;IAC7C,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,GAAG,cAAc,GAAG,IAAI,CAiBxB;AAED,wDAAwD;AACxD,eAAO,MAAM,WAAW,YAAY,CAAC;AAErC,2DAA2D;AAC3D,MAAM,WAAW,aAAa;IAC5B;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE;IAAE,QAAQ,CAAC,EAAE,OAAO,CAAA;CAAE,EAC7B,QAAQ,GAAE,aAAkB,GAC3B,MAAM,CAQR;AAED,+EAA+E;AAC/E,wBAAgB,mBAAmB,CACjC,KAAK,EAAE;IAAE,QAAQ,CAAC,EAAE,OAAO,CAAA;CAAE,EAC7B,QAAQ,GAAE,aAAkB,GAC3B,cAAc,GAAG,IAAI,CAOvB;AAsCD,yEAAyE;AACzE,eAAO,MAAM,gBAAgB,4BAA4B,CAAC;AAC1D;;;GAGG;AACH,eAAO,MAAM,oBAAoB,qBAAqB,CAAC"}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* Extract the latest usable assistant output from a run or agent state.
|
|
3
3
|
*/
|
|
4
4
|
import { coerceMessageLikeToMessage, } from "@langchain/core/messages";
|
|
5
|
-
import { BaseMessage } from "langchain";
|
|
5
|
+
import { AIMessage, BaseMessage } from "langchain";
|
|
6
6
|
export function extractAssistantText(input) {
|
|
7
7
|
for (const message of assistantMessages(input)) {
|
|
8
8
|
const text = message.text.trim();
|
|
@@ -30,6 +30,10 @@ function asBaseMessage(message) {
|
|
|
30
30
|
return undefined;
|
|
31
31
|
}
|
|
32
32
|
}
|
|
33
|
+
/** Content block types that make a reply on their own, without text. */
|
|
34
|
+
const MEDIA_BLOCKS = new Set(["image", "image_url", "file", "audio", "video"]);
|
|
35
|
+
/** Content block types a channel can show; others, such as reasoning, stay in the thread. */
|
|
36
|
+
const SHOWN_BLOCKS = new Set([...MEDIA_BLOCKS, "text"]);
|
|
33
37
|
export function extractAssistantContent(input) {
|
|
34
38
|
for (const message of assistantMessages(input)) {
|
|
35
39
|
const content = message.content;
|
|
@@ -38,10 +42,83 @@ export function extractAssistantContent(input) {
|
|
|
38
42
|
return content;
|
|
39
43
|
continue;
|
|
40
44
|
}
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
45
|
+
const shown = content.flatMap((block) => typeof block === "string"
|
|
46
|
+
? [{ type: "text", text: block }]
|
|
47
|
+
: SHOWN_BLOCKS.has(block.type)
|
|
48
|
+
? [block]
|
|
49
|
+
: []);
|
|
50
|
+
if (shown.length > 0)
|
|
51
|
+
return shown;
|
|
44
52
|
}
|
|
45
53
|
return null;
|
|
46
54
|
}
|
|
55
|
+
/** A reply that means "nothing to tell the channel". */
|
|
56
|
+
export const QUIET_REPLY = "[quiet]";
|
|
57
|
+
/**
|
|
58
|
+
* What a run says to the channel: each of its answers, oldest first, without
|
|
59
|
+
* `[quiet]` ones. A run with a known start never repeats an earlier run's
|
|
60
|
+
* answer.
|
|
61
|
+
*/
|
|
62
|
+
export function extractReplyText(input, boundary = {}) {
|
|
63
|
+
const answers = runAnswers(input, boundary.afterId);
|
|
64
|
+
if (boundary.afterId === undefined && answers.length <= 1)
|
|
65
|
+
return extractAssistantText(input);
|
|
66
|
+
return answers
|
|
67
|
+
.map((answer) => answer.text.trim())
|
|
68
|
+
.filter((text) => text && text !== QUIET_REPLY)
|
|
69
|
+
.join("\n\n");
|
|
70
|
+
}
|
|
71
|
+
/** {@link extractReplyText} as content; several answers are joined as text. */
|
|
72
|
+
export function extractReplyContent(input, boundary = {}) {
|
|
73
|
+
const answers = runAnswers(input, boundary.afterId);
|
|
74
|
+
if (answers.length > 1)
|
|
75
|
+
return extractReplyText(input, boundary) || null;
|
|
76
|
+
if (boundary.afterId === undefined)
|
|
77
|
+
return extractAssistantContent(input);
|
|
78
|
+
const [answer] = answers;
|
|
79
|
+
if (!answer || answer.text.trim() === QUIET_REPLY)
|
|
80
|
+
return null;
|
|
81
|
+
return extractAssistantContent({ messages: [answer] });
|
|
82
|
+
}
|
|
83
|
+
/** The run's answers: assistant messages with text or media and no tool calls. */
|
|
84
|
+
function runAnswers(input, afterId) {
|
|
85
|
+
const messages = (Array.isArray(input.messages) ? input.messages : [])
|
|
86
|
+
.map(asBaseMessage)
|
|
87
|
+
.filter((message) => message !== undefined);
|
|
88
|
+
return messages
|
|
89
|
+
.slice(runStart(messages, afterId))
|
|
90
|
+
.filter((message) => AIMessage.isInstance(message) &&
|
|
91
|
+
!message.tool_calls?.length &&
|
|
92
|
+
(message.text.trim() || hasMedia(message)));
|
|
93
|
+
}
|
|
94
|
+
/** Index of the run's first message; past the end when it can't be found. */
|
|
95
|
+
function runStart(messages, afterId) {
|
|
96
|
+
for (let index = messages.length - 1; index >= 0; index -= 1) {
|
|
97
|
+
const message = messages[index];
|
|
98
|
+
if (afterId !== undefined && message.id === afterId)
|
|
99
|
+
return index + 1;
|
|
100
|
+
if (afterId === undefined &&
|
|
101
|
+
message.type === "human" &&
|
|
102
|
+
!isTaskNotification(message))
|
|
103
|
+
return index;
|
|
104
|
+
}
|
|
105
|
+
return messages.length;
|
|
106
|
+
}
|
|
107
|
+
/** `additional_kwargs` key deepagents marks a task notification with. */
|
|
108
|
+
export const NOTIFICATION_KEY = "deepagents_notification";
|
|
109
|
+
/**
|
|
110
|
+
* `additional_kwargs` key MDA marks its own notifications with, such as a browser
|
|
111
|
+
* handoff ending, the same way.
|
|
112
|
+
*/
|
|
113
|
+
export const MDA_NOTIFICATION_KEY = "mda_notification";
|
|
114
|
+
/** A user-role message deepagents or MDA sent with news, not the user's. */
|
|
115
|
+
function isTaskNotification(message) {
|
|
116
|
+
const extra = message.additional_kwargs ?? {};
|
|
117
|
+
return (Object.hasOwn(extra, NOTIFICATION_KEY) ||
|
|
118
|
+
Object.hasOwn(extra, MDA_NOTIFICATION_KEY));
|
|
119
|
+
}
|
|
120
|
+
function hasMedia(message) {
|
|
121
|
+
return (Array.isArray(message.content) &&
|
|
122
|
+
message.content.some((block) => typeof block === "object" && MEDIA_BLOCKS.has(block.type)));
|
|
123
|
+
}
|
|
47
124
|
//# sourceMappingURL=assistant-text.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"assistant-text.js","sourceRoot":"","sources":["../../src/channels/assistant-text.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EACL,0BAA0B,GAG3B,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"assistant-text.js","sourceRoot":"","sources":["../../src/channels/assistant-text.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,21 +1,40 @@
|
|
|
1
1
|
import { AsyncLocalStorage } from "node:async_hooks";
|
|
2
2
|
import type { ChannelMessagingAdapter } from "./runtime.js";
|
|
3
|
-
import type { ChannelInfo, RuntimeChannel } from "./types.js";
|
|
3
|
+
import type { ChannelEvent, ChannelInfo, JsonValue, RuntimeChannel } from "./types.js";
|
|
4
4
|
import { type ChannelContext } from "../run-context.js";
|
|
5
|
+
import { type OriginBinding, type StoredOrigin } from "../runtime/thread-record.js";
|
|
6
|
+
import type { RunThread } from "../runtime/managed-thread.js";
|
|
5
7
|
export declare const SLACK_BOT_TOKEN_ENV = "SLACK_BOT_TOKEN";
|
|
6
8
|
/** The serializable channel data sent by managed ingress. */
|
|
7
9
|
export type ChannelBinding = ChannelContext;
|
|
10
|
+
/**
|
|
11
|
+
* The binding whose message event holds a run's own input, in place of the
|
|
12
|
+
* delivery's messages, such as a handler's.
|
|
13
|
+
*/
|
|
14
|
+
export declare function bindingWithMessages(binding: ChannelBinding, messages: readonly Readonly<Record<string, JsonValue>>[]): ChannelBinding;
|
|
8
15
|
export declare const currentChannelBinding: AsyncLocalStorage<{
|
|
9
16
|
binding?: ChannelBinding;
|
|
10
17
|
channelRun: boolean;
|
|
11
18
|
/** Cron routing split out of a managed run's context, and what remains. */
|
|
12
19
|
routing?: Record<string, unknown>;
|
|
13
20
|
context?: unknown;
|
|
21
|
+
/** The run's thread, built once when the run starts. */
|
|
22
|
+
thread?: RunThread;
|
|
14
23
|
}>;
|
|
15
24
|
/** Validate delivery context against the authenticated source and declared channel. */
|
|
16
25
|
export declare function resolveChannelBinding(context: unknown, configurable: Record<string, unknown> | undefined): ChannelBinding | undefined;
|
|
26
|
+
/**
|
|
27
|
+
* The binding a thread record's origin names, when this deployment declares
|
|
28
|
+
* its channel. The record is trusted as it is: the auth handler lets only
|
|
29
|
+
* managed ingress write one.
|
|
30
|
+
*/
|
|
31
|
+
export declare function resolveOriginBinding(origin: StoredOrigin): OriginBinding | undefined;
|
|
17
32
|
export declare function resolveChannelInfo(context: unknown, configurable: Record<string, unknown> | undefined): ChannelInfo | undefined;
|
|
18
33
|
export declare function resolveRuntimeChannel(context: unknown, configurable: Record<string, unknown> | undefined, transportFactory?: (provider: string) => ChannelMessagingAdapter | undefined): RuntimeChannel | undefined;
|
|
34
|
+
/** A runtime channel that posts to a binding's target. */
|
|
35
|
+
export declare function runtimeChannelFor(binding: OriginBinding & {
|
|
36
|
+
rawEvent?: JsonValue;
|
|
37
|
+
}, event: ChannelEvent | null, transportFactory?: (provider: string) => ChannelMessagingAdapter | undefined): RuntimeChannel;
|
|
19
38
|
/** Trusted ingress source for telemetry; direct HTTP callers have no channel stamp. */
|
|
20
39
|
export declare function resolveChannelProvider(configurable: Record<string, unknown> | undefined): string | undefined;
|
|
21
40
|
//# sourceMappingURL=binding.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"binding.d.ts","sourceRoot":"","sources":["../../src/channels/binding.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAGrD,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"binding.d.ts","sourceRoot":"","sources":["../../src/channels/binding.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAGrD,OAAO,KAAK,EACV,uBAAuB,EAExB,MAAM,cAAc,CAAC;AAQtB,OAAO,KAAK,EACV,YAAY,EACZ,WAAW,EACX,SAAS,EACT,cAAc,EACf,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAwB,KAAK,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAC9E,OAAO,EAEL,KAAK,aAAa,EAClB,KAAK,YAAY,EAClB,MAAM,6BAA6B,CAAC;AACrC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAE9D,eAAO,MAAM,mBAAmB,oBAAoB,CAAC;AACrD,6DAA6D;AAC7D,MAAM,MAAM,cAAc,GAAG,cAAc,CAAC;AAE5C;;;GAGG;AACH,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,cAAc,EACvB,QAAQ,EAAE,SAAS,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,EAAE,GACvD,cAAc,CAWhB;AAED,eAAO,MAAM,qBAAqB;cACtB,cAAc;gBACZ,OAAO;IACnB,2EAA2E;cACjE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;cACvB,OAAO;IACjB,wDAAwD;aAC/C,SAAS;EAChB,CAAC;AAiBL,uFAAuF;AACvF,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,OAAO,EAChB,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,GAChD,cAAc,GAAG,SAAS,CAe5B;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,YAAY,GACnB,aAAa,GAAG,SAAS,CAG3B;AAYD,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,OAAO,EAChB,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,GAChD,WAAW,GAAG,SAAS,CAGzB;AAED,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,OAAO,EAChB,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,EACjD,gBAAgB,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,uBAAuB,GAAG,SAAS,GAC3E,cAAc,GAAG,SAAS,CAI5B;AAED,0DAA0D;AAC1D,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,aAAa,GAAG;IAAE,QAAQ,CAAC,EAAE,SAAS,CAAA;CAAE,EACjD,KAAK,EAAE,YAAY,GAAG,IAAI,EAC1B,gBAAgB,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,uBAAuB,GAAG,SAAS,GAC3E,cAAc,CAgBhB;AAED,uFAAuF;AACvF,wBAAgB,sBAAsB,CACpC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,GAChD,MAAM,GAAG,SAAS,CAYpB"}
|
package/dist/channels/binding.js
CHANGED
|
@@ -5,9 +5,24 @@ import { channelInfo, createRuntimeChannel } from "./runtime.js";
|
|
|
5
5
|
import { isJsonValue } from "./message-schema.js";
|
|
6
6
|
import { channelProviderForName, messagingTransportForName, } from "./messaging-registry.js";
|
|
7
7
|
import { createTriggerClient } from "./trigger/client.js";
|
|
8
|
+
import { startTriggerConversation } from "./trigger/conversation.js";
|
|
8
9
|
import { createTriggerTransport } from "./trigger/transport.js";
|
|
9
10
|
import { channelContextSchema } from "../run-context.js";
|
|
11
|
+
import { bindingFromOrigin, } from "../runtime/thread-record.js";
|
|
10
12
|
export const SLACK_BOT_TOKEN_ENV = "SLACK_BOT_TOKEN";
|
|
13
|
+
/**
|
|
14
|
+
* The binding whose message event holds a run's own input, in place of the
|
|
15
|
+
* delivery's messages, such as a handler's.
|
|
16
|
+
*/
|
|
17
|
+
export function bindingWithMessages(binding, messages) {
|
|
18
|
+
return {
|
|
19
|
+
...binding,
|
|
20
|
+
event: {
|
|
21
|
+
type: "message",
|
|
22
|
+
messages: messages,
|
|
23
|
+
},
|
|
24
|
+
};
|
|
25
|
+
}
|
|
11
26
|
export const currentChannelBinding = new AsyncLocalStorage();
|
|
12
27
|
function record(value) {
|
|
13
28
|
return value !== null && typeof value === "object" && !Array.isArray(value);
|
|
@@ -30,16 +45,27 @@ export function resolveChannelBinding(context, configurable) {
|
|
|
30
45
|
const user = configurable?.langgraph_auth_user;
|
|
31
46
|
if (!record(user) ||
|
|
32
47
|
user.mda_source_provider !== binding.provider ||
|
|
33
|
-
user.mda_source_thread_id !== binding.sourceThreadKey
|
|
34
|
-
channelProviderForName(binding.name) !== binding.provider)
|
|
48
|
+
user.mda_source_thread_id !== binding.sourceThreadKey)
|
|
35
49
|
return undefined;
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
50
|
+
return isDeclaredBinding(binding) ? binding : undefined;
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* The binding a thread record's origin names, when this deployment declares
|
|
54
|
+
* its channel. The record is trusted as it is: the auth handler lets only
|
|
55
|
+
* managed ingress write one.
|
|
56
|
+
*/
|
|
57
|
+
export function resolveOriginBinding(origin) {
|
|
58
|
+
const binding = bindingFromOrigin(origin);
|
|
59
|
+
return binding && isDeclaredBinding(binding) ? binding : undefined;
|
|
60
|
+
}
|
|
61
|
+
/** Whether a declared channel of the binding's provider can reach its target. */
|
|
62
|
+
function isDeclaredBinding(binding) {
|
|
63
|
+
if (channelProviderForName(binding.name) !== binding.provider)
|
|
64
|
+
return false;
|
|
65
|
+
if (binding.transport !== "trigger_server")
|
|
66
|
+
return true;
|
|
67
|
+
const target = triggerTargetSchema.safeParse(binding.target);
|
|
68
|
+
return (target.success && target.data.source_thread_key === binding.sourceThreadKey);
|
|
43
69
|
}
|
|
44
70
|
export function resolveChannelInfo(context, configurable) {
|
|
45
71
|
const binding = resolveChannelBinding(context, configurable);
|
|
@@ -49,18 +75,25 @@ export function resolveRuntimeChannel(context, configurable, transportFactory) {
|
|
|
49
75
|
const binding = resolveChannelBinding(context, configurable);
|
|
50
76
|
if (!binding)
|
|
51
77
|
return undefined;
|
|
78
|
+
return runtimeChannelFor(binding, binding.event, transportFactory);
|
|
79
|
+
}
|
|
80
|
+
/** A runtime channel that posts to a binding's target. */
|
|
81
|
+
export function runtimeChannelFor(binding, event, transportFactory) {
|
|
52
82
|
let transport;
|
|
83
|
+
let startThread;
|
|
53
84
|
if (binding.transport === "trigger_server") {
|
|
54
85
|
const client = createTriggerClient();
|
|
55
|
-
if (client)
|
|
86
|
+
if (client) {
|
|
56
87
|
transport = createTriggerTransport(client);
|
|
88
|
+
startThread = (message, run) => startTriggerConversation(client, binding, message, run);
|
|
89
|
+
}
|
|
57
90
|
}
|
|
58
91
|
else {
|
|
59
92
|
transport =
|
|
60
93
|
messagingTransportForName(binding.name) ??
|
|
61
94
|
transportFactory?.(binding.provider);
|
|
62
95
|
}
|
|
63
|
-
return createRuntimeChannel({ ...binding, transport });
|
|
96
|
+
return createRuntimeChannel({ ...binding, event, transport, startThread });
|
|
64
97
|
}
|
|
65
98
|
/** Trusted ingress source for telemetry; direct HTTP callers have no channel stamp. */
|
|
66
99
|
export function resolveChannelProvider(configurable) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"binding.js","sourceRoot":"","sources":["../../src/channels/binding.ts"],"names":[],"mappings":"AAAA,kFAAkF;AAClF,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AACjE,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"binding.js","sourceRoot":"","sources":["../../src/channels/binding.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import type { CompiledStateGraph } from "@langchain/langgraph";
|
|
2
|
+
import type { RunThread } from "../runtime/managed-thread.js";
|
|
3
|
+
type Graph = Pick<CompiledStateGraph<unknown, unknown>, "getState" | "getStateHistory">;
|
|
4
|
+
/** What a new Trigger thread posted when a scheduled run pauses says. */
|
|
5
|
+
export declare const PAUSED_NOTICE = "This scheduled run is waiting for a decision.";
|
|
6
|
+
/** What a scheduled run that fails posts where Trigger cannot show the failure. */
|
|
7
|
+
export declare const FAILED_NOTICE = "This scheduled run failed.";
|
|
8
|
+
/** What a new Trigger thread posted when a scheduled run fails says; Trigger replies in it. */
|
|
9
|
+
export declare const FAILED_THREAD_NOTICE = "This scheduled run failed. Details in this thread \u2B07\uFE0F";
|
|
10
|
+
/** The run a delivery step belongs to. */
|
|
11
|
+
export interface DeliveredRun {
|
|
12
|
+
/** The Agent Server run, for idempotent posts, notices and their links. */
|
|
13
|
+
runId?: string;
|
|
14
|
+
assistantId?: string;
|
|
15
|
+
/** The run's configurable, with the principal the server stamped. */
|
|
16
|
+
configurable?: Record<string, unknown>;
|
|
17
|
+
/** The run's metadata, which marks a managed cron fire. */
|
|
18
|
+
metadata?: unknown;
|
|
19
|
+
/** Cron routing split out of the run's context. */
|
|
20
|
+
routing?: Record<string, unknown>;
|
|
21
|
+
/** The run's own thread; an async subagent's differs from `run.thread`'s. */
|
|
22
|
+
runThreadId?: string;
|
|
23
|
+
/** An async subagent's run: report its pause, never post its answer. */
|
|
24
|
+
subagent?: boolean;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Deliver a finished top-level run's result to its thread's origin, or to a
|
|
28
|
+
* scheduled run's `deliverTo`. A thread with neither gets nothing. The Agent
|
|
29
|
+
* Server runs every TypeScript graph run on a thread with a checkpointer, a
|
|
30
|
+
* cron fire without a `thread_id` included, so its state can always be read.
|
|
31
|
+
*
|
|
32
|
+
* Failures follow what each channel did before: a Trigger post and any
|
|
33
|
+
* scheduled delivery fail the run; a direct channel's post is logged and the
|
|
34
|
+
* run still succeeds.
|
|
35
|
+
*/
|
|
36
|
+
export declare function deliverRunResult(graph: Graph, run: RunThread, delivered?: DeliveredRun): Promise<void>;
|
|
37
|
+
/**
|
|
38
|
+
* Report a scheduled run that threw where its result would have gone. A
|
|
39
|
+
* Trigger thread gets `run.failed`, so Trigger shows the failure there; a
|
|
40
|
+
* new-thread schedule opens its thread with a notice, as does `deliverTo`.
|
|
41
|
+
* Only trusted cron fires report here: Trigger ingress reports the runs it
|
|
42
|
+
* started. Only a known-safe message leaves the run, and reporting never
|
|
43
|
+
* replaces its error.
|
|
44
|
+
*/
|
|
45
|
+
export declare function deliverRunFailure(run: RunThread, delivered: DeliveredRun, error: unknown): Promise<void>;
|
|
46
|
+
/** The Trigger post id of a failed run's notice, stable across retries. */
|
|
47
|
+
export declare function failedActionId(runId: string): string;
|
|
48
|
+
/** The Trigger post id for a run's answer, stable across retries. */
|
|
49
|
+
export declare function replyActionId(runId: string): string;
|
|
50
|
+
export {};
|
|
51
|
+
//# sourceMappingURL=delivery.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"delivery.d.ts","sourceRoot":"","sources":["../../src/channels/delivery.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,kBAAkB,EAAiB,MAAM,sBAAsB,CAAC;AAI9E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AA6C9D,KAAK,KAAK,GAAG,IAAI,CACf,kBAAkB,CAAC,OAAO,EAAE,OAAO,CAAC,EACpC,UAAU,GAAG,iBAAiB,CAC/B,CAAC;AAGF,yEAAyE;AACzE,eAAO,MAAM,aAAa,kDAAkD,CAAC;AAC7E,mFAAmF;AACnF,eAAO,MAAM,aAAa,+BAA+B,CAAC;AAC1D,+FAA+F;AAC/F,eAAO,MAAM,oBAAoB,mEACuB,CAAC;AAEzD,0CAA0C;AAC1C,MAAM,WAAW,YAAY;IAC3B,2EAA2E;IAC3E,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,qEAAqE;IACrE,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACvC,2DAA2D;IAC3D,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,mDAAmD;IACnD,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,6EAA6E;IAC7E,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,wEAAwE;IACxE,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAOD;;;;;;;;;GASG;AACH,wBAAsB,gBAAgB,CACpC,KAAK,EAAE,KAAK,EACZ,GAAG,EAAE,SAAS,EACd,SAAS,GAAE,YAAiB,GAC3B,OAAO,CAAC,IAAI,CAAC,CA0Df;AAED;;;;;;;GAOG;AACH,wBAAsB,iBAAiB,CACrC,GAAG,EAAE,SAAS,EACd,SAAS,EAAE,YAAY,EACvB,KAAK,EAAE,OAAO,GACb,OAAO,CAAC,IAAI,CAAC,CAsCf;AAuLD,2EAA2E;AAC3E,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEpD;AAED,qEAAqE;AACrE,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEnD"}
|