managed-deepagents 0.10.0-dev.8 → 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 +881 -139
- 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 +49 -51
- 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 +55 -15
- 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 +240 -95
- 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 -32
- 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 +51 -9
- package/dist/channels/http/provider.d.ts.map +1 -1
- package/dist/channels/http/provider.js +66 -15
- package/dist/channels/http/provider.js.map +1 -1
- package/dist/channels/http/studio.d.ts +14 -5
- package/dist/channels/http/studio.d.ts.map +1 -1
- package/dist/channels/http/studio.js +20 -5
- package/dist/channels/http/studio.js.map +1 -1
- package/dist/channels/http/types.d.ts +110 -56
- 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 +75 -93
- 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 +38 -16
- 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
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provider.js","sourceRoot":"","sources":["../../../src/channels/http/provider.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"provider.js","sourceRoot":"","sources":["../../../src/channels/http/provider.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,15 +1,24 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { HttpDelivery, HttpFinish } from "./types.js";
|
|
2
2
|
/**
|
|
3
3
|
* The thread in the deployment's Studio, or the deployment's page when the
|
|
4
4
|
* deployment's name or the thread's assistant is unknown. The LangSmith UI is
|
|
5
5
|
* the one `mda deploy` recorded for the deployment's environment
|
|
6
6
|
* (`MDA_LANGSMITH_URL`); without it there is nothing to link to.
|
|
7
7
|
*/
|
|
8
|
-
export declare function studioUrl(run:
|
|
8
|
+
export declare function studioUrl(run: HttpDelivery | undefined, env?: NodeJS.ProcessEnv): string | undefined;
|
|
9
|
+
/**
|
|
10
|
+
* `waiting` when a finished delivery's message found the thread waiting on a
|
|
11
|
+
* decision. A run that stopped on interrupts posts its own `interrupted`
|
|
12
|
+
* notice as it ends (the paused notice), so a `run` delivery has none here.
|
|
13
|
+
* Undefined when nothing waits, or the delivery was a cancel or lost.
|
|
14
|
+
*/
|
|
15
|
+
export declare function pendingDecision(finish: HttpFinish): "waiting" | undefined;
|
|
9
16
|
/**
|
|
10
17
|
* What a channel tells the conversation when its thread waits on a decision,
|
|
11
|
-
* with a link to the thread in Studio, where the decision is made
|
|
12
|
-
*
|
|
18
|
+
* with a link to the thread in Studio, where the decision is made: the run
|
|
19
|
+
* the delivery started stopped on interrupts (`interrupted`), or the message
|
|
20
|
+
* found the thread waiting (`waiting`). `again` says how to continue once it
|
|
21
|
+
* is made, such as "comment again".
|
|
13
22
|
*/
|
|
14
|
-
export declare function interruptedNotice(
|
|
23
|
+
export declare function interruptedNotice(outcome: "interrupted" | "waiting", delivery: HttpDelivery, again: string): string;
|
|
15
24
|
//# sourceMappingURL=studio.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"studio.d.ts","sourceRoot":"","sources":["../../../src/channels/http/studio.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"studio.d.ts","sourceRoot":"","sources":["../../../src/channels/http/studio.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAS3D;;;;;GAKG;AACH,wBAAgB,SAAS,CACvB,GAAG,EAAE,YAAY,GAAG,SAAS,EAC7B,GAAG,oBAAc,GAChB,MAAM,GAAG,SAAS,CAsBpB;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,UAAU,GAAG,SAAS,GAAG,SAAS,CAKzE;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,aAAa,GAAG,SAAS,EAClC,QAAQ,EAAE,YAAY,EACtB,KAAK,EAAE,MAAM,GACZ,MAAM,CAMR"}
|
|
@@ -37,15 +37,30 @@ 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
|
-
* with a link to the thread in Studio, where the decision is made
|
|
43
|
-
*
|
|
55
|
+
* with a link to the thread in Studio, where the decision is made: the run
|
|
56
|
+
* the delivery started stopped on interrupts (`interrupted`), or the message
|
|
57
|
+
* found the thread waiting (`waiting`). `again` says how to continue once it
|
|
58
|
+
* is made, such as "comment again".
|
|
44
59
|
*/
|
|
45
|
-
export function interruptedNotice(
|
|
46
|
-
const url = studioUrl(
|
|
60
|
+
export function interruptedNotice(outcome, delivery, again) {
|
|
61
|
+
const url = studioUrl(delivery);
|
|
47
62
|
const studio = url ? `[LangSmith Studio](${url})` : "LangSmith Studio";
|
|
48
|
-
return
|
|
63
|
+
return outcome === "interrupted"
|
|
49
64
|
? `I need a decision before I continue. Review the pending step in ${studio}.`
|
|
50
65
|
: `I'm waiting for a decision on an earlier step in this conversation, so I haven't read this yet. Review the pending step in ${studio}, then ${again}.`;
|
|
51
66
|
}
|
|
@@ -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,
|
|
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,86 +86,121 @@ 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;
|
|
72
93
|
/**
|
|
73
|
-
*
|
|
74
|
-
*
|
|
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.
|
|
75
99
|
*/
|
|
76
|
-
|
|
100
|
+
reply?: ChannelReply;
|
|
77
101
|
verify(context: HttpChannelRequest): boolean | Promise<boolean>;
|
|
78
102
|
/** Decode the verified request body in the provider's format. */
|
|
79
103
|
parse(context: HttpChannelRequest): HttpChannelParseResult | Promise<HttpChannelParseResult>;
|
|
80
104
|
post?(input: HttpChannelPostInput): Promise<HttpPostedMessage>;
|
|
105
|
+
/**
|
|
106
|
+
* The run a message started failed: tell the sender instead of the default
|
|
107
|
+
* apology `post` sends. Called before `onFinish`.
|
|
108
|
+
*/
|
|
81
109
|
onError?(error: unknown, target: JsonValue): Promise<void>;
|
|
82
110
|
/**
|
|
83
111
|
* What a message without `content` starts a run with, asked only once the
|
|
84
112
|
* thread takes a new turn, never while it waits on an interrupt. `null` or
|
|
85
113
|
* `undefined` starts nothing.
|
|
86
|
-
*/
|
|
87
|
-
input?(message: HttpChannelInboundMessage, rawEvent: JsonValue | undefined): ChannelRunResult | null | undefined | Promise<ChannelRunResult | null | undefined>;
|
|
88
|
-
/**
|
|
89
|
-
* The thread waits on a decision. Tell the sender where to make it (Studio
|
|
90
|
-
* resumes interrupts). Failures are logged. `reason` says why:
|
|
91
114
|
*
|
|
92
|
-
*
|
|
93
|
-
* no run.
|
|
94
|
-
* - `"stopped"`: the run this delivery started just stopped on interrupts.
|
|
95
|
-
*
|
|
96
|
-
* It is called only for the reasons in `interruptedReasons`.
|
|
115
|
+
* @experimental This may change in a minor release.
|
|
97
116
|
*/
|
|
98
|
-
|
|
117
|
+
input?(message: HttpChannelInboundMessage, rawEvent: JsonValue | undefined): ChannelRunResult | null | undefined | Promise<ChannelRunResult | null | undefined>;
|
|
99
118
|
/**
|
|
100
119
|
* A verified message reached its thread, before MDA starts or queues
|
|
101
|
-
* anything for it
|
|
102
|
-
*
|
|
103
|
-
* logged.
|
|
104
|
-
*/
|
|
105
|
-
onDelivered?(target: JsonValue, run: HttpChannelRunInfo): Promise<void>;
|
|
106
|
-
/**
|
|
107
|
-
* Send a verified delivery on to other services, besides acting on it here.
|
|
108
|
-
* Called for every verified delivery, after `parse`, with the delivery as
|
|
109
|
-
* the provider sent it: its raw body and its headers, signature included,
|
|
110
|
-
* minus the ones the platform in front of the deployment adds. Return a
|
|
111
|
-
* request to send, such as `new Request(url, request)`, several, or nothing.
|
|
120
|
+
* anything for it. For providers that expect a prompt acknowledgement.
|
|
121
|
+
* Each message that gets it later gets `onFinish`. Runs in the
|
|
122
|
+
* background; failures are logged.
|
|
112
123
|
*
|
|
113
|
-
*
|
|
114
|
-
* without following redirects; failures are logged. The provider's answer
|
|
115
|
-
* never waits for them, so delivery is best effort: a receiver should
|
|
116
|
-
* dedupe by the provider's delivery ID.
|
|
124
|
+
* @experimental This may change in a minor release.
|
|
117
125
|
*/
|
|
118
|
-
|
|
126
|
+
onReceived?(target: JsonValue, delivery: HttpDelivery): Promise<void>;
|
|
119
127
|
/**
|
|
120
|
-
*
|
|
121
|
-
*
|
|
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;
|
|
133
|
+
* failures are logged.
|
|
134
|
+
*
|
|
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.
|
|
138
|
+
*
|
|
139
|
+
* @experimental This may change in a minor release.
|
|
122
140
|
*/
|
|
123
|
-
|
|
124
|
-
cancelled: number;
|
|
125
|
-
}): Promise<void>;
|
|
141
|
+
onFinish?(target: JsonValue, delivery: HttpFinishedDelivery): Promise<void>;
|
|
126
142
|
}
|
|
127
|
-
/**
|
|
128
|
-
export interface
|
|
143
|
+
/** A delivery's thread, for notices and links into LangSmith Studio. */
|
|
144
|
+
export interface HttpDelivery {
|
|
129
145
|
threadId: string;
|
|
130
146
|
/** The assistant that runs on the thread, when known. */
|
|
131
147
|
assistantId?: string;
|
|
132
|
-
/** The provider event
|
|
148
|
+
/** The provider event `parse` returned, if any. */
|
|
133
149
|
rawEvent?: JsonValue;
|
|
134
150
|
}
|
|
135
|
-
/**
|
|
136
|
-
export type
|
|
151
|
+
/** A delivery that is done; see {@link HttpChannelAdapter.onFinish}. */
|
|
152
|
+
export type HttpFinishedDelivery = HttpDelivery & HttpFinish;
|
|
153
|
+
/**
|
|
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.
|
|
156
|
+
*
|
|
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.
|
|
164
|
+
*/
|
|
165
|
+
export type HttpFinish = {
|
|
166
|
+
type: "run";
|
|
167
|
+
run: HttpFinishedRun;
|
|
168
|
+
interrupts: Interrupt[];
|
|
169
|
+
} | {
|
|
170
|
+
type: "skipped";
|
|
171
|
+
reason: HttpSkipReason;
|
|
172
|
+
interrupts: Interrupt[];
|
|
173
|
+
} | {
|
|
174
|
+
type: "failed";
|
|
175
|
+
reason: "start" | "retry" | "observe";
|
|
176
|
+
interrupts: Interrupt[];
|
|
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
|
+
}
|
|
137
202
|
export interface HttpChannelRequest {
|
|
138
203
|
request: Request;
|
|
139
204
|
rawBody: Uint8Array;
|
|
140
205
|
}
|
|
141
|
-
/** What `forward` learns about a delivery besides the request. */
|
|
142
|
-
export interface HttpForwardContext {
|
|
143
|
-
/** What `parse` decided. */
|
|
144
|
-
result: "message" | "ignore" | "cancel";
|
|
145
|
-
/** The provider's event `parse` returned, if any. */
|
|
146
|
-
rawEvent?: JsonValue;
|
|
147
|
-
/** The thread the delivery is for, unless it is ignored. */
|
|
148
|
-
threadId?: string;
|
|
149
|
-
}
|
|
150
|
-
/** The requests `forward` sends a delivery on as. */
|
|
151
|
-
export type HttpForwardResult = Request | readonly Request[] | null | undefined;
|
|
152
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":"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"}
|
|
@@ -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"}
|