managed-deepagents 0.10.0-dev.9 → 0.10.0
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
|
@@ -37,6 +37,19 @@ export function studioUrl(run, env = process.env) {
|
|
|
37
37
|
});
|
|
38
38
|
return `${origin}/o/${workspace}/a/${encodeURIComponent(name)}/studio/thread?${query}`;
|
|
39
39
|
}
|
|
40
|
+
/**
|
|
41
|
+
* `waiting` when a finished delivery's message found the thread waiting on a
|
|
42
|
+
* decision. A run that stopped on interrupts posts its own `interrupted`
|
|
43
|
+
* notice as it ends (the paused notice), so a `run` delivery has none here.
|
|
44
|
+
* Undefined when nothing waits, or the delivery was a cancel or lost.
|
|
45
|
+
*/
|
|
46
|
+
export function pendingDecision(finish) {
|
|
47
|
+
if (!finish.interrupts.length)
|
|
48
|
+
return undefined;
|
|
49
|
+
return finish.type === "skipped" && finish.reason === "waiting"
|
|
50
|
+
? "waiting"
|
|
51
|
+
: undefined;
|
|
52
|
+
}
|
|
40
53
|
/**
|
|
41
54
|
* What a channel tells the conversation when its thread waits on a decision,
|
|
42
55
|
* with a link to the thread in Studio, where the decision is made: the run
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"studio.js","sourceRoot":"","sources":["../../../src/channels/http/studio.ts"],"names":[],"mappings":"AAAA,yEAAyE;AACzE,OAAO,EAAE,EAAE,IAAI,MAAM,EAAE,MAAM,MAAM,CAAC;AAEpC,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,qBAAqB,EAAE,MAAM,kCAAkC,CAAC;AAGzE,MAAM,YAAY,GAChB,iEAAiE,CAAC;AACpE,MAAM,uBAAuB,GAAG,oCAAoC,CAAC;AACrE,MAAM,gBAAgB,GAAG,qCAAqC,CAAC;AAC/D,+EAA+E;AAC/E,MAAM,eAAe,GAAG,sCAAsC,CAAC;AAE/D;;;;;GAKG;AACH,MAAM,UAAU,SAAS,CACvB,GAA6B,EAC7B,GAAG,GAAG,OAAO,CAAC,GAAG;IAEjB,MAAM,QAAQ,GAAG,GAAG,EAAE,QAAQ,CAAC;IAC/B,MAAM,MAAM,GAAG,QAAQ,IAAI,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;IAC9E,MAAM,SAAS,GAAG,GAAG,CAAC,mBAAmB,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IACxD,MAAM,UAAU,GAAG,GAAG,CAAC,iBAAiB,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IACxD,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC;QACjE,OAAO,SAAS,CAAC;IACnB,MAAM,MAAM,GAAG,YAAY,CAAC,GAAG,CAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3D,IAAI,CAAC,MAAM;QAAE,OAAO,SAAS,CAAC;IAC9B,MAAM,IAAI,GAAG,qBAAqB,CAAC,GAAG,CAAC,CAAC;IACxC,MAAM,WAAW,GAAG,aAAa,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;IACpD,IAAI,CAAC,IAAI,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,WAAW;QACzE,OAAO,GAAG,MAAM,MAAM,SAAS,qBAAqB,UAAU,EAAE,CAAC;IACnE,MAAM,KAAK,GAAG,IAAI,eAAe,CAAC;QAChC,cAAc,EAAE,SAAS;QACzB,MAAM,EAAE,UAAU;QAClB,aAAa,EAAE,UAAU;QACzB,WAAW;QACX,IAAI,EAAE,MAAM;QACZ,QAAQ,EAAE,MAAM;KACjB,CAAC,CAAC;IACH,OAAO,GAAG,MAAM,MAAM,SAAS,MAAM,kBAAkB,CAAC,IAAI,CAAC,kBAAkB,KAAK,EAAE,CAAC;AACzF,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,iBAAiB,CAC/B,OAAkC,EAClC,QAAsB,EACtB,KAAa;IAEb,MAAM,GAAG,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;IAChC,MAAM,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,sBAAsB,GAAG,GAAG,CAAC,CAAC,CAAC,kBAAkB,CAAC;IACvE,OAAO,OAAO,KAAK,aAAa;QAC9B,CAAC,CAAC,mEAAmE,MAAM,GAAG;QAC9E,CAAC,CAAC,8HAA8H,MAAM,UAAU,KAAK,GAAG,CAAC;AAC7J,CAAC;AAED;;;GAGG;AACH,SAAS,aAAa,CAAC,SAA6B;IAClD,IAAI,CAAC,SAAS;QAAE,OAAO,SAAS,CAAC;IACjC,IAAI,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC;QAAE,OAAO,SAAS,CAAC;IACnD,OAAO,gBAAgB,CAAC,IAAI,CAAC,SAAS,CAAC;QACrC,CAAC,CAAC,MAAM,CAAC,SAAS,EAAE,eAAe,CAAC;QACpC,CAAC,CAAC,SAAS,CAAC;AAChB,CAAC;AAED,SAAS,YAAY,CAAC,KAAyB;IAC7C,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE;QAAE,OAAO,SAAS,CAAC;IACrC,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;QAClC,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,QAAQ,IAAI,GAAG,CAAC,QAAQ,KAAK,OAAO,CAAC;YAC5D,CAAC,GAAG,CAAC,QAAQ;YACb,CAAC,GAAG,CAAC,QAAQ;YACb,CAAC,CAAC,GAAG;YACL,CAAC,CAAC,SAAS,CAAC;IAChB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC"}
|
|
1
|
+
{"version":3,"file":"studio.js","sourceRoot":"","sources":["../../../src/channels/http/studio.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,9 @@
|
|
|
1
|
+
import type { Interrupt } from "@langchain/langgraph-sdk";
|
|
1
2
|
import type { MultitaskStrategy } from "../../ingress/runs.js";
|
|
2
3
|
import type { MessageContent } from "@langchain/core/messages";
|
|
3
|
-
import type { ChannelMessage, JsonValue } from "../types.js";
|
|
4
|
+
import type { ChannelMessage, ChannelReply, JsonValue } from "../types.js";
|
|
4
5
|
import type { ChannelRunResult } from "../run-input.js";
|
|
6
|
+
import type { ChannelActor } from "../actor.js";
|
|
5
7
|
export interface HttpChannelInboundMessage {
|
|
6
8
|
userId: string;
|
|
7
9
|
/** See {@link channelThreadId} for one thread per provider conversation. */
|
|
@@ -16,10 +18,25 @@ export interface HttpChannelInboundMessage {
|
|
|
16
18
|
/**
|
|
17
19
|
* The provider's ID for this delivery. A thread runs each delivery once, so
|
|
18
20
|
* a redelivered event starts nothing.
|
|
21
|
+
*
|
|
22
|
+
* @experimental This may change in a minor release.
|
|
19
23
|
*/
|
|
20
24
|
deliveryKey?: string;
|
|
25
|
+
/**
|
|
26
|
+
* Answer the provider before the adapter's `input` decides what the run
|
|
27
|
+
* starts with, and start it in the background: for input that may take
|
|
28
|
+
* longer than the provider waits, such as an event endpoint's. A failure
|
|
29
|
+
* then can't fail the delivery, so the provider doesn't redeliver it.
|
|
30
|
+
*
|
|
31
|
+
* @experimental This may change in a minor release.
|
|
32
|
+
*/
|
|
33
|
+
background?: boolean;
|
|
21
34
|
}
|
|
22
|
-
/**
|
|
35
|
+
/**
|
|
36
|
+
* The thread a `cancel` result stops, and who to tell.
|
|
37
|
+
*
|
|
38
|
+
* @experimental This may change in a minor release.
|
|
39
|
+
*/
|
|
23
40
|
export interface HttpChannelCancelMessage {
|
|
24
41
|
userId: string;
|
|
25
42
|
threadId: string;
|
|
@@ -31,16 +48,18 @@ export type HttpChannelParseResult = {
|
|
|
31
48
|
message: HttpChannelInboundMessage;
|
|
32
49
|
/** Optional provider data exposed as runtime.channel.rawEvent. */
|
|
33
50
|
rawEvent?: JsonValue;
|
|
51
|
+
/** The verified sender, which `resolveUser` maps to one of your users. */
|
|
52
|
+
actor?: ChannelActor;
|
|
34
53
|
response?: Response;
|
|
35
54
|
} | {
|
|
36
55
|
type: "ignore";
|
|
37
56
|
response?: Response;
|
|
38
|
-
/** The provider's event, when it is parsed only to be forwarded. */
|
|
39
|
-
rawEvent?: JsonValue;
|
|
40
57
|
} | {
|
|
41
58
|
/**
|
|
42
59
|
* Stop the work on the message's thread: MDA cancels its queued and
|
|
43
|
-
* running runs, keeping their progress, then calls `
|
|
60
|
+
* running runs, keeping their progress, then calls `onFinish`.
|
|
61
|
+
*
|
|
62
|
+
* @experimental This may change in a minor release.
|
|
44
63
|
*/
|
|
45
64
|
type: "cancel";
|
|
46
65
|
message: HttpChannelCancelMessage;
|
|
@@ -67,54 +86,59 @@ export interface HttpChannelAdapter {
|
|
|
67
86
|
* `rollback` cancels it and discards its progress, and `reject` starts
|
|
68
87
|
* nothing. Messages to a thread that waits on an interrupt start nothing
|
|
69
88
|
* either way.
|
|
89
|
+
*
|
|
90
|
+
* @experimental This may change in a minor release.
|
|
70
91
|
*/
|
|
71
92
|
multitaskStrategy?: MultitaskStrategy;
|
|
93
|
+
/**
|
|
94
|
+
* Whether the channel posts the run's final answer with `post`: `auto`
|
|
95
|
+
* (the default) or `none`, to leave replying to the agent; see
|
|
96
|
+
* {@link ChannelReply}.
|
|
97
|
+
*
|
|
98
|
+
* @experimental This may change in a minor release.
|
|
99
|
+
*/
|
|
100
|
+
reply?: ChannelReply;
|
|
72
101
|
verify(context: HttpChannelRequest): boolean | Promise<boolean>;
|
|
73
102
|
/** Decode the verified request body in the provider's format. */
|
|
74
103
|
parse(context: HttpChannelRequest): HttpChannelParseResult | Promise<HttpChannelParseResult>;
|
|
75
104
|
post?(input: HttpChannelPostInput): Promise<HttpPostedMessage>;
|
|
76
105
|
/**
|
|
77
106
|
* The run a message started failed: tell the sender instead of the default
|
|
78
|
-
* apology `post` sends. Called before `
|
|
107
|
+
* apology `post` sends. Called before `onFinish`.
|
|
79
108
|
*/
|
|
80
109
|
onError?(error: unknown, target: JsonValue): Promise<void>;
|
|
81
110
|
/**
|
|
82
111
|
* What a message without `content` starts a run with, asked only once the
|
|
83
112
|
* thread takes a new turn, never while it waits on an interrupt. `null` or
|
|
84
113
|
* `undefined` starts nothing.
|
|
114
|
+
*
|
|
115
|
+
* @experimental This may change in a minor release.
|
|
85
116
|
*/
|
|
86
117
|
input?(message: HttpChannelInboundMessage, rawEvent: JsonValue | undefined): ChannelRunResult | null | undefined | Promise<ChannelRunResult | null | undefined>;
|
|
87
118
|
/**
|
|
88
119
|
* A verified message reached its thread, before MDA starts or queues
|
|
89
120
|
* anything for it. For providers that expect a prompt acknowledgement.
|
|
90
|
-
* Each message that gets it
|
|
121
|
+
* Each message that gets it later gets `onFinish`. Runs in the
|
|
91
122
|
* background; failures are logged.
|
|
123
|
+
*
|
|
124
|
+
* @experimental This may change in a minor release.
|
|
92
125
|
*/
|
|
93
126
|
onReceived?(target: JsonValue, delivery: HttpDelivery): Promise<void>;
|
|
94
127
|
/**
|
|
95
|
-
*
|
|
96
|
-
*
|
|
97
|
-
*
|
|
128
|
+
* A message is done, once, with how: the run it started ended (`run`), it
|
|
129
|
+
* started none and why (`skipped`), or MDA couldn't start the run or lost
|
|
130
|
+
* track of it (`failed`); see {@link HttpFinish}. `interrupts` are what the
|
|
131
|
+
* thread waits on now, non-empty while a decision is pending, made in
|
|
132
|
+
* Studio. Called after `onReceived` and `onError`, in the background;
|
|
98
133
|
* failures are logged.
|
|
99
134
|
*
|
|
100
|
-
* It runs in the process that took the delivery, so a restart
|
|
101
|
-
*
|
|
102
|
-
*
|
|
103
|
-
*/
|
|
104
|
-
onSettled?(target: JsonValue, delivery: HttpSettledDelivery): Promise<void>;
|
|
105
|
-
/**
|
|
106
|
-
* Send a verified delivery on to other services, besides acting on it here.
|
|
107
|
-
* Called for every verified delivery, after `parse`, with the delivery as
|
|
108
|
-
* the provider sent it: its raw body and its headers, signature included,
|
|
109
|
-
* minus the ones the platform in front of the deployment adds. Return a
|
|
110
|
-
* request to send, such as `new Request(url, request)`, several, or nothing.
|
|
135
|
+
* It runs in the process that took the delivery, so a restart loses it,
|
|
136
|
+
* and a run Studio resumes has no delivery. Keep a reconciliation, or set
|
|
137
|
+
* the run's `webhook`, for anything that must not miss a run.
|
|
111
138
|
*
|
|
112
|
-
*
|
|
113
|
-
* without following redirects; failures are logged. The provider's answer
|
|
114
|
-
* never waits for them, so delivery is best effort: a receiver should
|
|
115
|
-
* dedupe by the provider's delivery ID.
|
|
139
|
+
* @experimental This may change in a minor release.
|
|
116
140
|
*/
|
|
117
|
-
|
|
141
|
+
onFinish?(target: JsonValue, delivery: HttpFinishedDelivery): Promise<void>;
|
|
118
142
|
}
|
|
119
143
|
/** A delivery's thread, for notices and links into LangSmith Studio. */
|
|
120
144
|
export interface HttpDelivery {
|
|
@@ -124,57 +148,59 @@ export interface HttpDelivery {
|
|
|
124
148
|
/** The provider event `parse` returned, if any. */
|
|
125
149
|
rawEvent?: JsonValue;
|
|
126
150
|
}
|
|
127
|
-
/** A delivery
|
|
128
|
-
export type
|
|
129
|
-
outcome: HttpDeliveryOutcome;
|
|
130
|
-
};
|
|
151
|
+
/** A delivery that is done; see {@link HttpChannelAdapter.onFinish}. */
|
|
152
|
+
export type HttpFinishedDelivery = HttpDelivery & HttpFinish;
|
|
131
153
|
/**
|
|
132
|
-
* How a delivery
|
|
133
|
-
*
|
|
134
|
-
* - `completed`: the run finished.
|
|
135
|
-
* - `interrupted`: it stopped on interrupts, so the thread waits on a
|
|
136
|
-
* decision, made in Studio.
|
|
137
|
-
* - `cancelled`: a cancel, or a newer message's `interrupt`, ended it.
|
|
138
|
-
* - `replaced`: a newer message's `rollback` deleted it.
|
|
139
|
-
* - `failed`: it failed, after `onError`. Without a `runId`, MDA couldn't
|
|
140
|
-
* start one.
|
|
141
|
-
* - `unknown`: MDA lost track of it; it may have answered.
|
|
142
|
-
*
|
|
143
|
-
* A message that started no run:
|
|
144
|
-
*
|
|
145
|
-
* - `waiting`: the thread waits on a decision.
|
|
146
|
-
* - `rejected`: the thread was busy and `multitaskStrategy` is `reject`.
|
|
147
|
-
* - `declined`: `input` returned nothing.
|
|
148
|
-
* - `dropped`: a cancel stopped the thread while the message waited for it.
|
|
149
|
-
* - `duplicate`: the thread already ran this `deliveryKey`.
|
|
154
|
+
* How a delivery finished, to switch on by `type`. Each comes with
|
|
155
|
+
* `interrupts`, the thread's pending interrupts: what it waits on now.
|
|
150
156
|
*
|
|
151
|
-
*
|
|
157
|
+
* - `run`: the run it started ended; `run.status` says how.
|
|
158
|
+
* - `skipped`: it started no run; `reason` says why.
|
|
159
|
+
* - `failed`: MDA couldn't start its run after the provider got its answer,
|
|
160
|
+
* so nothing redelivers it (`start`); couldn't start it and answered the
|
|
161
|
+
* provider with an error, so it may redeliver it as a new delivery, which
|
|
162
|
+
* reports its own outcome (`retry`); or lost track of the run it started
|
|
163
|
+
* (`observe`), which may still answer. Only `start` is a final failure.
|
|
152
164
|
*/
|
|
153
|
-
export type
|
|
154
|
-
type: "
|
|
155
|
-
|
|
165
|
+
export type HttpFinish = {
|
|
166
|
+
type: "run";
|
|
167
|
+
run: HttpFinishedRun;
|
|
168
|
+
interrupts: Interrupt[];
|
|
156
169
|
} | {
|
|
157
|
-
type: "
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
type: "waiting" | "rejected" | "declined" | "dropped" | "duplicate";
|
|
170
|
+
type: "skipped";
|
|
171
|
+
reason: HttpSkipReason;
|
|
172
|
+
interrupts: Interrupt[];
|
|
161
173
|
} | {
|
|
162
|
-
type: "
|
|
163
|
-
|
|
174
|
+
type: "failed";
|
|
175
|
+
reason: "start" | "retry" | "observe";
|
|
176
|
+
interrupts: Interrupt[];
|
|
164
177
|
};
|
|
178
|
+
/**
|
|
179
|
+
* Why a delivery started no run:
|
|
180
|
+
*
|
|
181
|
+
* - `cancel`: it was a cancel, and MDA cancelled the thread's runs.
|
|
182
|
+
* - `waiting`: its thread waits on a decision; `interrupts` say on what.
|
|
183
|
+
* - `ignored`: its input started nothing, such as a handler that declined.
|
|
184
|
+
* - `duplicate`: a redelivery of a delivery the thread already took; that
|
|
185
|
+
* delivery's own `onFinish` reports its run.
|
|
186
|
+
* - `rejected`: its thread was busy, and the channel's `multitaskStrategy`
|
|
187
|
+
* is `reject`.
|
|
188
|
+
* - `dropped`: a cancel dropped it while it waited for its busy thread or
|
|
189
|
+
* for its input.
|
|
190
|
+
*/
|
|
191
|
+
export type HttpSkipReason = "cancel" | "waiting" | "ignored" | "duplicate" | "rejected" | "dropped";
|
|
192
|
+
/**
|
|
193
|
+
* How a LangGraph run ended: `interrupted` when it was cancelled, by a cancel
|
|
194
|
+
* or a newer message, or replaced by a newer message's `rollback`.
|
|
195
|
+
*/
|
|
196
|
+
export type HttpRunStatus = "success" | "error" | "timeout" | "interrupted";
|
|
197
|
+
/** A run a delivery started, and how it ended. */
|
|
198
|
+
export interface HttpFinishedRun {
|
|
199
|
+
id: string;
|
|
200
|
+
status: HttpRunStatus;
|
|
201
|
+
}
|
|
165
202
|
export interface HttpChannelRequest {
|
|
166
203
|
request: Request;
|
|
167
204
|
rawBody: Uint8Array;
|
|
168
205
|
}
|
|
169
|
-
/** What `forward` learns about a delivery besides the request. */
|
|
170
|
-
export interface HttpForwardContext {
|
|
171
|
-
/** What `parse` decided. */
|
|
172
|
-
result: "message" | "ignore" | "cancel";
|
|
173
|
-
/** The provider's event `parse` returned, if any. */
|
|
174
|
-
rawEvent?: JsonValue;
|
|
175
|
-
/** The thread the delivery is for, unless it is ignored. */
|
|
176
|
-
threadId?: string;
|
|
177
|
-
}
|
|
178
|
-
/** The requests `forward` sends a delivery on as. */
|
|
179
|
-
export type HttpForwardResult = Request | readonly Request[] | null | undefined;
|
|
180
206
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/channels/http/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/channels/http/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,KAAK,EAAE,cAAc,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAC3E,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD,MAAM,WAAW,yBAAyB;IACxC,MAAM,EAAE,MAAM,CAAC;IACf,4EAA4E;IAC5E,QAAQ,EAAE,MAAM,CAAC;IACjB,sEAAsE;IACtE,MAAM,EAAE,SAAS,CAAC;IAClB;;;OAGG;IACH,OAAO,CAAC,EAAE,cAAc,CAAC;IACzB;;;;;OAKG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;;;;;OAOG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED;;;;GAIG;AACH,MAAM,WAAW,wBAAwB;IACvC,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,gCAAgC;IAChC,MAAM,EAAE,SAAS,CAAC;CACnB;AAED,MAAM,MAAM,sBAAsB,GAC9B;IACE,IAAI,EAAE,SAAS,CAAC;IAChB,OAAO,EAAE,yBAAyB,CAAC;IACnC,kEAAkE;IAClE,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,0EAA0E;IAC1E,KAAK,CAAC,EAAE,YAAY,CAAC;IACrB,QAAQ,CAAC,EAAE,QAAQ,CAAC;CACrB,GACD;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,QAAQ,CAAC,EAAE,QAAQ,CAAA;CAAE,GACvC;IACE;;;;;OAKG;IACH,IAAI,EAAE,QAAQ,CAAC;IACf,OAAO,EAAE,wBAAwB,CAAC;IAClC,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,QAAQ,CAAC,EAAE,QAAQ,CAAC;CACrB,CAAC;AAEN,mEAAmE;AACnE,MAAM,MAAM,oBAAoB,GAAG,cAAc,GAAG;IAClD,MAAM,EAAE,SAAS,CAAC;IAClB,gFAAgF;IAChF,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB,CAAC;AAEF,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IAC3C;;;;;;;;;OASG;IACH,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;IACtC;;;;;;OAMG;IACH,KAAK,CAAC,EAAE,YAAY,CAAC;IACrB,MAAM,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAChE,iEAAiE;IACjE,KAAK,CACH,OAAO,EAAE,kBAAkB,GAC1B,sBAAsB,GAAG,OAAO,CAAC,sBAAsB,CAAC,CAAC;IAC5D,IAAI,CAAC,CAAC,KAAK,EAAE,oBAAoB,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAC/D;;;OAGG;IACH,OAAO,CAAC,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3D;;;;;;OAMG;IACH,KAAK,CAAC,CACJ,OAAO,EAAE,yBAAyB,EAClC,QAAQ,EAAE,SAAS,GAAG,SAAS,GAE7B,gBAAgB,GAChB,IAAI,GACJ,SAAS,GACT,OAAO,CAAC,gBAAgB,GAAG,IAAI,GAAG,SAAS,CAAC,CAAC;IACjD;;;;;;;OAOG;IACH,UAAU,CAAC,CAAC,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACtE;;;;;;;;;;;;;OAaG;IACH,QAAQ,CAAC,CAAC,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC7E;AAED,wEAAwE;AACxE,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,yDAAyD;IACzD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,mDAAmD;IACnD,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAED,wEAAwE;AACxE,MAAM,MAAM,oBAAoB,GAAG,YAAY,GAAG,UAAU,CAAC;AAE7D;;;;;;;;;;;GAWG;AACH,MAAM,MAAM,UAAU,GAClB;IAAE,IAAI,EAAE,KAAK,CAAC;IAAC,GAAG,EAAE,eAAe,CAAC;IAAC,UAAU,EAAE,SAAS,EAAE,CAAA;CAAE,GAC9D;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,MAAM,EAAE,cAAc,CAAC;IAAC,UAAU,EAAE,SAAS,EAAE,CAAA;CAAE,GACpE;IACE,IAAI,EAAE,QAAQ,CAAC;IACf,MAAM,EAAE,OAAO,GAAG,OAAO,GAAG,SAAS,CAAC;IACtC,UAAU,EAAE,SAAS,EAAE,CAAC;CACzB,CAAC;AAEN;;;;;;;;;;;;GAYG;AACH,MAAM,MAAM,cAAc,GACtB,QAAQ,GACR,SAAS,GACT,SAAS,GACT,WAAW,GACX,UAAU,GACV,SAAS,CAAC;AAEd;;;GAGG;AACH,MAAM,MAAM,aAAa,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS,GAAG,aAAa,CAAC;AAE5E,kDAAkD;AAClD,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,aAAa,CAAC;CACvB;AAED,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,UAAU,CAAC;CACrB"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import type { LinearAppOptions } from "./types.js";
|
|
2
|
+
/** What `mda deploy` needs to set up the Linear app. */
|
|
3
|
+
export type LinearAppSetup = {
|
|
4
|
+
/** The handled event keys, such as `Issue.create`. */
|
|
5
|
+
events: string[];
|
|
6
|
+
/** Whether the app answers agent sessions. */
|
|
7
|
+
sessions: boolean;
|
|
8
|
+
/** The webhook resource types the app subscribes to. */
|
|
9
|
+
webhookResourceTypes: string[];
|
|
10
|
+
/** The OAuth scopes the install asks for. */
|
|
11
|
+
scopes: string[];
|
|
12
|
+
/** The most the install may be granted. */
|
|
13
|
+
allowedScopes: string[];
|
|
14
|
+
/** How the app looks; deploy names it after the agent when unset. */
|
|
15
|
+
app?: {
|
|
16
|
+
name?: string;
|
|
17
|
+
description?: string;
|
|
18
|
+
icon?: string;
|
|
19
|
+
};
|
|
20
|
+
};
|
|
21
|
+
/**
|
|
22
|
+
* The app the channel's handlers and options need. The CLI reads it from the
|
|
23
|
+
* channel's manifest instead of working it out; the Python runtime mirrors
|
|
24
|
+
* these rules in `linear_app_setup.py`.
|
|
25
|
+
*/
|
|
26
|
+
export declare function linearAppSetup(handlers: object, app: LinearAppOptions | undefined, options: {
|
|
27
|
+
sessions: boolean;
|
|
28
|
+
}): LinearAppSetup;
|
|
29
|
+
//# sourceMappingURL=app-setup.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"app-setup.d.ts","sourceRoot":"","sources":["../../../src/channels/linear/app-setup.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,gBAAgB,EAAkB,MAAM,YAAY,CAAC;AAqCnE,wDAAwD;AACxD,MAAM,MAAM,cAAc,GAAG;IAC3B,sDAAsD;IACtD,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,8CAA8C;IAC9C,QAAQ,EAAE,OAAO,CAAC;IAClB,wDAAwD;IACxD,oBAAoB,EAAE,MAAM,EAAE,CAAC;IAC/B,6CAA6C;IAC7C,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,2CAA2C;IAC3C,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,qEAAqE;IACrE,GAAG,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CAC9D,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,cAAc,CAC5B,QAAQ,EAAE,MAAM,EAChB,GAAG,EAAE,gBAAgB,GAAG,SAAS,EACjC,OAAO,EAAE;IAAE,QAAQ,EAAE,OAAO,CAAA;CAAE,GAC7B,cAAc,CAkChB"}
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
import { validateChannelIconPath } from "../../runtime/channel-icon.js";
|
|
2
|
+
import { definedFields, handledEventKeys } from "../http/provider.js";
|
|
3
|
+
/** The webhook resource type that delivers each event. */
|
|
4
|
+
const EVENT_RESOURCE_TYPES = {
|
|
5
|
+
"Issue.create": "Issue",
|
|
6
|
+
"Issue.update": "Issue",
|
|
7
|
+
"Comment.create": "Comment",
|
|
8
|
+
"AgentSessionEvent.created": "AgentSessionEvent",
|
|
9
|
+
"AgentSessionEvent.prompted": "AgentSessionEvent",
|
|
10
|
+
};
|
|
11
|
+
const SESSION_EVENTS = [
|
|
12
|
+
"AgentSessionEvent.created",
|
|
13
|
+
"AgentSessionEvent.prompted",
|
|
14
|
+
];
|
|
15
|
+
/** A revoked install, so the runtime can say why events stopped. */
|
|
16
|
+
const ALWAYS_SUBSCRIBED = ["OAuthAuthorization"];
|
|
17
|
+
/** Reading the workspace, and writing comments and agent activities. */
|
|
18
|
+
const BASE_SCOPES = ["read", "write"];
|
|
19
|
+
/** Mentioning the app and delegating issues to it, which open agent sessions. */
|
|
20
|
+
const SESSION_SCOPES = ["app:mentionable", "app:assignable"];
|
|
21
|
+
/**
|
|
22
|
+
* Scopes Linear can grant along with `write` without being asked. Agent Auth
|
|
23
|
+
* refuses a grant beyond the allowed scopes, so they are allowed.
|
|
24
|
+
*/
|
|
25
|
+
const IMPLIED_SCOPES = [
|
|
26
|
+
"customer:read",
|
|
27
|
+
"customer:write",
|
|
28
|
+
"initiative:read",
|
|
29
|
+
"initiative:write",
|
|
30
|
+
];
|
|
31
|
+
const APP_OPTIONS = ["name", "description", "icon", "teams"];
|
|
32
|
+
const MAX_TEAMS = 100;
|
|
33
|
+
const TEAM_KEY = /^[A-Za-z0-9]{1,16}$/;
|
|
34
|
+
/**
|
|
35
|
+
* The app the channel's handlers and options need. The CLI reads it from the
|
|
36
|
+
* channel's manifest instead of working it out; the Python runtime mirrors
|
|
37
|
+
* these rules in `linear_app_setup.py`.
|
|
38
|
+
*/
|
|
39
|
+
export function linearAppSetup(handlers, app, options) {
|
|
40
|
+
checkAppOptions(app);
|
|
41
|
+
const events = [
|
|
42
|
+
...new Set([
|
|
43
|
+
...handledEventKeys(handlers),
|
|
44
|
+
...(options.sessions ? SESSION_EVENTS : []),
|
|
45
|
+
]),
|
|
46
|
+
]
|
|
47
|
+
.filter(isLinearEventKey)
|
|
48
|
+
.sort();
|
|
49
|
+
// A session event handler answers sessions even with `sessions: false`.
|
|
50
|
+
const sessions = events.some((key) => SESSION_EVENTS.includes(key));
|
|
51
|
+
const scopes = sessions ? [...BASE_SCOPES, ...SESSION_SCOPES] : BASE_SCOPES;
|
|
52
|
+
return {
|
|
53
|
+
events,
|
|
54
|
+
sessions,
|
|
55
|
+
webhookResourceTypes: [
|
|
56
|
+
...new Set([
|
|
57
|
+
...ALWAYS_SUBSCRIBED,
|
|
58
|
+
...events.map((key) => EVENT_RESOURCE_TYPES[key]),
|
|
59
|
+
// A change to the app's team access changes which sessions reach it.
|
|
60
|
+
...(sessions ? ["PermissionChange"] : []),
|
|
61
|
+
]),
|
|
62
|
+
].sort(),
|
|
63
|
+
scopes,
|
|
64
|
+
allowedScopes: [...scopes, ...IMPLIED_SCOPES],
|
|
65
|
+
...(app && {
|
|
66
|
+
app: definedFields({
|
|
67
|
+
name: app.name?.trim(),
|
|
68
|
+
description: app.description?.trim(),
|
|
69
|
+
icon: app.icon && validateChannelIconPath(app.icon, "Linear app.icon"),
|
|
70
|
+
}),
|
|
71
|
+
}),
|
|
72
|
+
};
|
|
73
|
+
}
|
|
74
|
+
function isLinearEventKey(key) {
|
|
75
|
+
return Object.hasOwn(EVENT_RESOURCE_TYPES, key);
|
|
76
|
+
}
|
|
77
|
+
/** Check the app options against Linear's rules before deploy sends them. */
|
|
78
|
+
function checkAppOptions(app) {
|
|
79
|
+
if (!app)
|
|
80
|
+
return;
|
|
81
|
+
// A misspelled option would silently widen what starts runs.
|
|
82
|
+
const unknown = Object.keys(app).filter((key) => !APP_OPTIONS.includes(key));
|
|
83
|
+
if (unknown.length)
|
|
84
|
+
throw new TypeError(`unknown Linear app option ${unknown.join(", ")}; use ${APP_OPTIONS.join(", ")}`);
|
|
85
|
+
const name = app.name?.trim();
|
|
86
|
+
if (name !== undefined &&
|
|
87
|
+
(name.length < 2 || name.length > 80 || /linear|https?:\/\//i.test(name)))
|
|
88
|
+
throw new TypeError('Linear app.name must be 2-80 characters, without "Linear" or a URL');
|
|
89
|
+
const description = app.description?.trim();
|
|
90
|
+
if (description !== undefined && (!description || description.length > 1000))
|
|
91
|
+
throw new TypeError("Linear app.description must be 1-1000 characters");
|
|
92
|
+
if (app.teams === undefined)
|
|
93
|
+
return;
|
|
94
|
+
if (app.teams.length === 0)
|
|
95
|
+
throw new TypeError("Linear app.teams must list team keys; omit it to allow every team");
|
|
96
|
+
if (app.teams.length > MAX_TEAMS)
|
|
97
|
+
throw new TypeError(`Linear app.teams must list at most ${MAX_TEAMS} teams`);
|
|
98
|
+
for (const team of app.teams)
|
|
99
|
+
if (!TEAM_KEY.test(team.trim()))
|
|
100
|
+
throw new TypeError(`Linear app.teams has an invalid team key '${team.trim()}'; use keys such as ENG`);
|
|
101
|
+
}
|
|
102
|
+
//# sourceMappingURL=app-setup.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"app-setup.js","sourceRoot":"","sources":["../../../src/channels/linear/app-setup.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,7 +2,11 @@ import { type HttpChannel } from "../http/index.js";
|
|
|
2
2
|
import type { LinearChannelOptions } from "./types.js";
|
|
3
3
|
export type { LinearAppOptions, LinearChannelOptions, LinearChannelThread, LinearEvent, LinearEventCallback, LinearEventKey, LinearEventResult, LinearPayloadFor, } from "./types.js";
|
|
4
4
|
export { LinearRateLimitError } from "./graphql.js";
|
|
5
|
-
/**
|
|
5
|
+
/**
|
|
6
|
+
* Adapt verified Linear webhooks into HTTP channel messages or skips.
|
|
7
|
+
*
|
|
8
|
+
* @experimental The Linear channel may change in a minor release.
|
|
9
|
+
*/
|
|
6
10
|
export declare function linearChannel(options?: LinearChannelOptions): HttpChannel;
|
|
7
11
|
/** Forget the cached webhook secret; for tests. */
|
|
8
12
|
export declare function resetLinearWebhookSecret(): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/channels/linear/index.ts"],"names":[],"mappings":"AAEA,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/channels/linear/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAIL,KAAK,WAAW,EAOjB,MAAM,kBAAkB,CAAC;AA2C1B,OAAO,KAAK,EACV,oBAAoB,EAIrB,MAAM,YAAY,CAAC;AAIpB,YAAY,EACV,gBAAgB,EAChB,oBAAoB,EACpB,mBAAmB,EACnB,WAAW,EACX,mBAAmB,EACnB,cAAc,EACd,iBAAiB,EACjB,gBAAgB,GACjB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAwBpD;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,OAAO,GAAE,oBAAyB,GAAG,WAAW,CAuD7E;AAgBD,mDAAmD;AACnD,wBAAgB,wBAAwB,IAAI,IAAI,CAE/C"}
|