eve 0.83.3 → 0.84.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +57 -0
- package/README.md +1 -5
- package/dist/src/_virtual/_rolldown/runtime.js +1 -1
- package/dist/src/acp/adapter.d.ts +8 -5
- package/dist/src/acp/adapter.js +1 -1
- package/dist/src/ai/decide.d.ts +3 -7
- package/dist/src/ai/decide.js +1 -1
- package/dist/src/ai/decision-adapter.d.ts +7 -0
- package/dist/src/ai/decision-adapter.js +1 -0
- package/dist/src/ai/decision-types.d.ts +86 -0
- package/dist/src/approval/definition.d.ts +5 -12
- package/dist/src/approval/evaluation.d.ts +48 -0
- package/dist/src/approval/evaluation.js +1 -0
- package/dist/src/approval/status.d.ts +14 -0
- package/dist/src/approval/status.js +1 -0
- package/dist/src/channel/adapter-context.d.ts +1 -3
- package/dist/src/channel/adapter-context.js +1 -1
- package/dist/src/channel/adapter.d.ts +34 -26
- package/dist/src/channel/adapter.js +1 -1
- package/dist/src/channel/audience.d.ts +0 -3
- package/dist/src/channel/audience.js +1 -1
- package/dist/src/channel/auth/definitions.d.ts +532 -0
- package/dist/src/channel/auth/definitions.js +1 -0
- package/dist/src/channel/auth/jwt-ecdsa.js +1 -1
- package/dist/src/channel/auth/jwt-hmac.js +1 -1
- package/dist/src/channel/auth/oidc.js +1 -1
- package/dist/src/channel/channel-address.d.ts +12 -10
- package/dist/src/channel/channel-address.js +1 -1
- package/dist/src/channel/channel-operations.d.ts +21 -22
- package/dist/src/channel/channel-operations.js +1 -1
- package/dist/src/channel/compiled-channel.d.ts +4 -4
- package/dist/src/channel/conversation-context.js +1 -1
- package/dist/src/channel/cors.d.ts +2 -2
- package/dist/src/channel/cors.js +1 -1
- package/dist/src/channel/cross-channel-receive.d.ts +7 -4
- package/dist/src/channel/cross-channel-receive.js +1 -1
- package/dist/src/channel/delivery-idempotency.d.ts +6 -0
- package/dist/src/channel/delivery-idempotency.js +1 -1
- package/dist/src/channel/delivery-metadata.d.ts +2 -2
- package/dist/src/channel/delivery.d.ts +8 -0
- package/dist/src/channel/delivery.js +1 -0
- package/dist/src/channel/interaction-prompts.d.ts +54 -0
- package/dist/src/channel/interaction-prompts.js +1 -0
- package/dist/src/channel/invoke-tool.d.ts +11 -18
- package/dist/src/channel/pending-authorization.d.ts +3 -14
- package/dist/src/channel/pending-authorization.js +1 -1
- package/dist/src/channel/prompt-queue.d.ts +11 -19
- package/dist/src/channel/prompt-queue.js +1 -1
- package/dist/src/channel/resolve-text.d.ts +11 -18
- package/dist/src/channel/resolve-text.js +2 -2
- package/dist/src/channel/resolved-prompt.d.ts +7 -5
- package/dist/src/channel/resolved-prompt.js +1 -1
- package/dist/src/channel/routes.d.ts +4 -4
- package/dist/src/channel/schedule.d.ts +2 -2
- package/dist/src/channel/schedule.js +1 -1
- package/dist/src/channel/send-input.d.ts +3 -3
- package/dist/src/channel/send-input.js +1 -1
- package/dist/src/channel/session-callback.js +1 -1
- package/dist/src/channel/session-not-active-error.d.ts +8 -12
- package/dist/src/channel/session-not-active-error.js +1 -1
- package/dist/src/channel/session.d.ts +33 -59
- package/dist/src/channel/session.js +1 -1
- package/dist/src/channel/sign-in.d.ts +61 -0
- package/dist/src/channel/sign-in.js +3 -0
- package/dist/src/channel/surface.d.ts +44 -0
- package/dist/src/channel/surface.js +1 -0
- package/dist/src/channel/task-card.d.ts +24 -114
- package/dist/src/channel/task-card.js +1 -1
- package/dist/src/channel/types.d.ts +118 -110
- package/dist/src/channel/types.js +1 -1
- package/dist/src/chunks/use-eve-agent-DMeP0JOF.js +5046 -0
- package/dist/src/chunks/use-eve-agent-DP5Rso9C.js +5093 -0
- package/dist/src/cli/commands/init.js +1 -1
- package/dist/src/cli/commands/logs-events.d.ts +2 -0
- package/dist/src/cli/commands/logs-events.js +2 -2
- package/dist/src/cli/dev/command.js +1 -1
- package/dist/src/cli/dev/remote-print.d.ts +8 -0
- package/dist/src/cli/dev/remote-print.js +1 -0
- package/dist/src/cli/dev/tui/conversation-view.d.ts +24 -19
- package/dist/src/cli/dev/tui/conversation-view.js +1 -1
- package/dist/src/cli/dev/tui/diagnostic-presentation.d.ts +0 -10
- package/dist/src/cli/dev/tui/diagnostic-presentation.js +2 -3
- package/dist/src/cli/dev/tui/errors.d.ts +9 -65
- package/dist/src/cli/dev/tui/errors.js +1 -1
- package/dist/src/cli/dev/tui/prompt-command-handler.js +1 -1
- package/dist/src/cli/dev/tui/runner.js +3 -3
- package/dist/src/cli/dev/tui/task-records.d.ts +3 -3
- package/dist/src/cli/dev/tui/task-records.js +1 -1
- package/dist/src/cli/dev/tui/terminal-renderer.js +10 -10
- package/dist/src/cli/dev/tui/terminal-tool-part.d.ts +2 -2
- package/dist/src/cli/dev/tui/terminal-tool-part.js +1 -1
- package/dist/src/cli/dev/tui/test/fake-eve-server.d.ts +3 -3
- package/dist/src/cli/dev/tui/test/fake-eve-server.js +1 -1
- package/dist/src/cli/dev/tui/tool-presentation.js +1 -1
- package/dist/src/cli/dev/tui/transcript-parts.d.ts +16 -16
- package/dist/src/cli/dev/tui/transcript-parts.js +3 -3
- package/dist/src/cli/dev/tui/transcript.d.ts +0 -4
- package/dist/src/cli/dev/tui/transcript.js +1 -1
- package/dist/src/cli/dev/tui/tui.js +1 -1
- package/dist/src/cli/run.d.ts +0 -2
- package/dist/src/cli/run.js +1 -1
- package/dist/src/cli/telemetry/index.js +1 -1
- package/dist/src/client/agent-base-url.d.ts +4 -0
- package/dist/src/client/agent-base-url.js +1 -0
- package/dist/src/client/agent-info-schema.d.ts +1 -923
- package/dist/src/client/agent-info-schema.js +1 -1
- package/dist/src/client/agent-info-types.d.ts +281 -0
- package/dist/src/client/agent-session.d.ts +19 -22
- package/dist/src/client/agent-session.js +1 -1
- package/dist/src/client/agent-stream-follower.d.ts +11 -20
- package/dist/src/client/agent-stream-follower.js +1 -1
- package/dist/src/client/client-error.d.ts +2 -1
- package/dist/src/client/client-error.js +1 -1
- package/dist/src/client/client.d.ts +1 -1
- package/dist/src/client/client.js +1 -1
- package/dist/src/client/conversation-client.d.ts +37 -28
- package/dist/src/client/conversation-client.js +1 -1
- package/dist/src/client/conversation-state.d.ts +70 -73
- package/dist/src/client/conversation-state.js +1 -1
- package/dist/src/client/conversation.d.ts +51 -0
- package/dist/src/client/conversation.js +1 -0
- package/dist/src/client/delivery-events.d.ts +3 -0
- package/dist/src/client/delivery-events.js +1 -0
- package/dist/src/client/delivery.d.ts +38 -0
- package/dist/src/client/delivery.js +1 -0
- package/dist/src/client/file-parts.d.ts +9 -4
- package/dist/src/client/file-parts.js +1 -1
- package/dist/src/client/health-schema.d.ts +1 -1
- package/dist/src/client/health-types.d.ts +6 -0
- package/dist/src/client/index.d.ts +17 -23
- package/dist/src/client/index.js +1 -1
- package/dist/src/client/message-types.d.ts +92 -0
- package/dist/src/client/message-types.js +1 -0
- package/dist/src/client/messages.d.ts +30 -0
- package/dist/src/client/messages.js +1 -0
- package/dist/src/client/ndjson.d.ts +6 -11
- package/dist/src/client/ndjson.js +3 -3
- package/dist/src/client/open-stream.d.ts +47 -20
- package/dist/src/client/open-stream.js +1 -1
- package/dist/src/client/optimistic-message-submissions.d.ts +10 -18
- package/dist/src/client/optimistic-message-submissions.js +1 -1
- package/dist/src/client/session-controls.d.ts +23 -26
- package/dist/src/client/session-controls.js +1 -1
- package/dist/src/client/session-event-stream.d.ts +5 -16
- package/dist/src/client/session-event-stream.js +1 -1
- package/dist/src/client/session-store-helpers.d.ts +8 -0
- package/dist/src/client/session-store-helpers.js +2 -0
- package/dist/src/client/session-store-state.d.ts +80 -0
- package/dist/src/client/session-store-state.js +1 -0
- package/dist/src/client/session-store.d.ts +48 -0
- package/dist/src/client/session-store.js +1 -0
- package/dist/src/client/session-utils.d.ts +45 -41
- package/dist/src/client/session-utils.js +2 -1
- package/dist/src/client/session.d.ts +32 -23
- package/dist/src/client/session.js +1 -1
- package/dist/src/client/sessions.d.ts +3 -2
- package/dist/src/client/sessions.js +1 -1
- package/dist/src/client/stream-version.d.ts +3 -1
- package/dist/src/client/stream-version.js +1 -1
- package/dist/src/client/transcript.d.ts +43 -0
- package/dist/src/client/transcript.js +2 -0
- package/dist/src/client/types.d.ts +23 -82
- package/dist/src/client/url.d.ts +3 -3
- package/dist/src/compiled/.vendor-stamp.json +2 -2
- package/dist/src/compiled/@ai-sdk/anthropic/index.d.ts +34 -34
- package/dist/src/compiled/@ai-sdk/google/index.d.ts +15 -15
- package/dist/src/compiled/@ai-sdk/openai/index.d.ts +38 -38
- package/dist/src/compiled/@chat-adapter/slack/fetch-QqNM_Ef3.d.ts +4 -0
- package/dist/src/compiled/@chat-adapter/slack/index.js +13 -13
- package/dist/src/compiled/@chat-adapter/twilio/types-BaIqtt65.d.ts +100 -0
- package/dist/src/compiled/@linqapp/chat-sdk-adapter/adapter.d.ts +129 -0
- package/dist/src/compiled/@linqapp/chat-sdk-adapter/message-parser.d.ts +14 -0
- package/dist/src/compiled/@linqapp/chat-sdk-adapter/text-decorations.d.ts +28 -0
- package/dist/src/compiled/@vercel/sandbox/api-client/api-client.d.ts +75 -0
- package/dist/src/compiled/@vercel/sandbox/api-client/validators.d.ts +4 -0
- package/dist/src/compiled/@vercel/sandbox/command.d.ts +78 -0
- package/dist/src/compiled/@vercel/sandbox/drive.d.ts +41 -1
- package/dist/src/compiled/@vercel/sandbox/index.js +13 -13
- package/dist/src/compiled/@vercel/sandbox/network-policy.d.ts +35 -4
- package/dist/src/compiled/@vercel/sandbox/sandbox.d.ts +18 -4
- package/dist/src/compiled/@vercel/sandbox/session.d.ts +29 -3
- package/dist/src/compiled/@vercel/sandbox/utils/pipe-stdin.d.ts +19 -0
- package/dist/src/compiled/@workflow/core/runtime/step-executor.d.ts +1 -1
- package/dist/src/compiled/@workflow/core/serialization/types.d.ts +1 -1
- package/dist/src/compiled/@workflow/core/serialization.d.ts +2 -2
- package/dist/src/compiled/@workflow/core/telemetry/semantic-conventions.d.ts +2 -2
- package/dist/src/compiled/_chunks/client/{core-CspsxXR-.js → core-BsvaaMUJ.js} +1 -1
- package/dist/src/compiled/_chunks/node/{auth-Dztlx9pE.js → auth-v5pS3mLo.js} +1 -1
- package/dist/src/compiled/_chunks/node/is-stream-DsuQX_bd.js +1 -0
- package/dist/src/compiled/_chunks/node/token-DHGH-jVc.js +1 -0
- package/dist/src/compiled/_chunks/node/token-util-BH2pw9Qm.js +25 -0
- package/dist/src/compiled/_chunks/node/token-util-CcvxNv76.js +1 -0
- package/dist/src/compiled/_chunks/node/version-C2PfNyEv.js +1 -0
- package/dist/src/compiled/semver/index.d.ts +2 -0
- package/dist/src/compiled/zod/index.js +1 -1
- package/dist/src/compiled/zod/v4/core.js +1 -1
- package/dist/src/compiled/zod-validation-error/index.js +1 -1
- package/dist/src/compiler/artifacts.d.ts +1 -0
- package/dist/src/compiler/artifacts.js +1 -1
- package/dist/src/compiler/development-extensions.js +1 -1
- package/dist/src/compiler/extension-compatibility.d.ts +19 -290
- package/dist/src/compiler/extension-compatibility.js +1 -1
- package/dist/src/compiler/manifest.d.ts +3 -11
- package/dist/src/compiler/manifest.js +1 -1
- package/dist/src/compiler/model-catalog.d.ts +8 -18
- package/dist/src/compiler/model-catalog.js +1 -1
- package/dist/src/compiler/normalize-agent-config.js +1 -1
- package/dist/src/compiler/normalize-connection.js +1 -1
- package/dist/src/compiler/normalize-hook.js +1 -1
- package/dist/src/compiler/normalize-instructions.js +1 -1
- package/dist/src/compiler/normalize-manifest-types.d.ts +3 -0
- package/dist/src/compiler/normalize-manifest.js +1 -1
- package/dist/src/compiler/normalize-memory.js +1 -1
- package/dist/src/compiler/normalize-schedule.js +1 -1
- package/dist/src/compiler/normalize-skill.js +1 -1
- package/dist/src/compiler/normalize-subagent.d.ts +0 -5
- package/dist/src/compiler/normalize-subagent.js +1 -1
- package/dist/src/compiler/normalize-tool.js +1 -1
- package/dist/src/compiler/remote-agent-node.d.ts +1 -6
- package/dist/src/compiler/source-graph.d.ts +0 -1
- package/dist/src/compiler/source-graph.js +1 -1
- package/dist/src/computer-use/extension/lib/computer-use-sandbox.js +1 -1
- package/dist/src/computer-use/extension/lib/sandbox.d.ts +1 -1
- package/dist/src/computer-use/extension/lib/sandbox.js +1 -1
- package/dist/src/computer-use/extension/tools/computer_use.js +1 -1
- package/dist/src/connections/errors.d.ts +3 -3
- package/dist/src/context/accessors.d.ts +0 -13
- package/dist/src/context/accessors.js +1 -1
- package/dist/src/context/container.d.ts +8 -11
- package/dist/src/context/container.js +1 -1
- package/dist/src/context/key-names.d.ts +1 -0
- package/dist/src/context/key-names.js +1 -1
- package/dist/src/context/keys.d.ts +20 -112
- package/dist/src/context/keys.js +1 -1
- package/dist/src/context/memory-tools.d.ts +4 -2
- package/dist/src/context/memory-tools.js +1 -1
- package/dist/src/context/providers/connection.js +1 -1
- package/dist/src/context/providers/session.js +1 -1
- package/dist/src/context/schedule-collection-tools.d.ts +2 -2
- package/dist/src/context/schedule-collection-tools.js +1 -1
- package/dist/src/context/session-context.d.ts +4 -2
- package/dist/src/discover/extensions.d.ts +2 -3
- package/dist/src/discover/extensions.js +1 -1
- package/dist/src/discover/manifest.js +1 -1
- package/dist/src/discover/skills.js +1 -1
- package/dist/src/dynamic/definition.d.ts +98 -108
- package/dist/src/dynamic/definition.js +1 -1
- package/dist/src/evals/assertions/collector.js +1 -1
- package/dist/src/evals/assertions/run.d.ts +12 -11
- package/dist/src/evals/assertions/run.js +2 -2
- package/dist/src/evals/assertions/scoped.js +1 -1
- package/dist/src/evals/cli/eval-client.js +1 -1
- package/dist/src/evals/cli/eval.js +2 -2
- package/dist/src/evals/context.js +1 -1
- package/dist/src/evals/expect/index.d.ts +0 -1
- package/dist/src/evals/index.d.ts +2 -5
- package/dist/src/evals/judge.js +1 -1
- package/dist/src/evals/match.d.ts +20 -17
- package/dist/src/evals/match.js +1 -1
- package/dist/src/evals/mock-model.d.ts +5 -1
- package/dist/src/evals/mock-model.js +1 -1
- package/dist/src/evals/output.d.ts +3 -0
- package/dist/src/evals/output.js +1 -0
- package/dist/src/evals/reported-tool-name.js +1 -1
- package/dist/src/evals/reporters/index.d.ts +4 -4
- package/dist/src/evals/reporters/index.js +1 -1
- package/dist/src/evals/runner/artifacts.js +1 -1
- package/dist/src/evals/runner/derive-run-facts.d.ts +8 -40
- package/dist/src/evals/runner/derive-run-facts.js +1 -1
- package/dist/src/evals/runner/execute-eval.js +1 -1
- package/dist/src/evals/runner/execute-task.d.ts +3 -1
- package/dist/src/evals/runner/execute-task.js +1 -1
- package/dist/src/evals/runner/reporters/braintrust.d.ts +1 -1
- package/dist/src/evals/runner/reporters/braintrust.js +2 -2
- package/dist/src/evals/runner/reporters/console.d.ts +1 -1
- package/dist/src/evals/runner/reporters/console.js +1 -1
- package/dist/src/evals/runner/reporters/datadog.d.ts +1 -1
- package/dist/src/evals/runner/reporters/datadog.js +2 -2
- package/dist/src/evals/runner/reporters/junit.d.ts +1 -1
- package/dist/src/evals/runner/reporters/junit.js +2 -2
- package/dist/src/evals/runner/reporters/types.d.ts +2 -2
- package/dist/src/evals/runner/run-evals.d.ts +1 -1
- package/dist/src/evals/session-cleanup.d.ts +1 -1
- package/dist/src/evals/session-cleanup.js +1 -1
- package/dist/src/evals/session-content.d.ts +2 -2
- package/dist/src/evals/session-content.js +2 -1
- package/dist/src/evals/session-manager.d.ts +3 -6
- package/dist/src/evals/session-manager.js +1 -1
- package/dist/src/evals/session.d.ts +33 -24
- package/dist/src/evals/session.js +2 -2
- package/dist/src/evals/target.js +1 -1
- package/dist/src/evals/types.d.ts +115 -94
- package/dist/src/eve-channel/create-request.d.ts +3 -5
- package/dist/src/eve-channel/descendant-stream.d.ts +9 -0
- package/dist/src/eve-channel/descendant-stream.js +1 -0
- package/dist/src/eve-channel/index.d.ts +2 -2
- package/dist/src/eve-channel/index.js +1 -1
- package/dist/src/eve-channel/request.d.ts +8 -6
- package/dist/src/eve-channel/request.js +1 -3
- package/dist/src/eve-channel/stream-headers.d.ts +1 -1
- package/dist/src/eve-channel/stream-headers.js +1 -1
- package/dist/src/eve-channel/support.d.ts +25 -13
- package/dist/src/eve-channel/support.js +2 -2
- package/dist/src/eve-channel/types.d.ts +7 -30
- package/dist/src/execution/agent-sessions/message.d.ts +4 -0
- package/dist/src/execution/agent-sessions/message.js +1 -0
- package/dist/src/execution/agent-sessions/metadata.js +1 -1
- package/dist/src/execution/agent-sessions/remote-credentials.d.ts +19 -0
- package/dist/src/execution/agent-sessions/remote-credentials.js +1 -0
- package/dist/src/execution/agent-sessions/remote.d.ts +35 -13
- package/dist/src/execution/agent-sessions/remote.js +1 -1
- package/dist/src/execution/agent-sessions/requests.d.ts +6 -6
- package/dist/src/execution/agent-sessions/requests.js +1 -1
- package/dist/src/execution/agent-sessions/session.js +1 -1
- package/dist/src/execution/agent-sessions/steps.d.ts +26 -4
- package/dist/src/execution/agent-sessions/steps.js +1 -1
- package/dist/src/execution/agent-sessions/target.d.ts +2 -1
- package/dist/src/execution/agent-sessions/target.js +1 -1
- package/dist/src/execution/agent-sessions/usage.d.ts +0 -8
- package/dist/src/execution/agent-sessions/usage.js +1 -1
- package/dist/src/execution/cancelled-model-call-batch.d.ts +4 -2
- package/dist/src/execution/cancelled-model-call-batch.js +1 -1
- package/dist/src/execution/cancelled-turn-message.d.ts +2 -2
- package/dist/src/execution/cancelled-turn-message.js +1 -1
- package/dist/src/execution/catalog/connection-entry.js +1 -1
- package/dist/src/execution/catalog/search.js +1 -1
- package/dist/src/execution/catalog/skills.js +1 -1
- package/dist/src/execution/catalog/step-catalog.js +1 -1
- package/dist/src/execution/child-binding.d.ts +19 -0
- package/dist/src/execution/child-binding.js +1 -0
- package/dist/src/execution/close-session-stream-step.d.ts +9 -0
- package/dist/src/execution/close-session-stream-step.js +1 -0
- package/dist/src/execution/coordination-dispatch-shared.d.ts +13 -3
- package/dist/src/execution/coordination-dispatch-shared.js +1 -1
- package/dist/src/execution/coordination-dispatch-step.d.ts +9 -13
- package/dist/src/execution/coordination-dispatch-step.js +1 -1
- package/dist/src/execution/deliver-payloads.js +1 -1
- package/dist/src/execution/durable-session-store.d.ts +2 -5
- package/dist/src/execution/dynamic-workflow/tool.js +1 -1
- package/dist/src/execution/dynamic-workflow/workflow.js +1 -1
- package/dist/src/execution/failure-summary.d.ts +11 -0
- package/dist/src/execution/failure-summary.js +1 -0
- package/dist/src/execution/forward-session-input.d.ts +2 -2
- package/dist/src/execution/forward-session-input.js +1 -1
- package/dist/src/execution/invoke-tool.js +1 -1
- package/dist/src/execution/legacy-session/snapshot.d.ts +4 -1
- package/dist/src/execution/legacy-session/snapshot.js +1 -1
- package/dist/src/execution/model-call-batching.d.ts +3 -3
- package/dist/src/execution/model-call-batching.js +1 -1
- package/dist/src/execution/ndjson-stream.d.ts +1 -1
- package/dist/src/execution/node-step.d.ts +2 -8
- package/dist/src/execution/node-step.js +1 -1
- package/dist/src/execution/proxied-deliver-step.d.ts +8 -3
- package/dist/src/execution/proxied-deliver-step.js +1 -1
- package/dist/src/execution/public-destination.d.ts +34 -0
- package/dist/src/execution/public-destination.js +1 -0
- package/dist/src/execution/publish-session-events.d.ts +98 -36
- package/dist/src/execution/publish-session-events.js +1 -1
- package/dist/src/execution/runtime-context.js +1 -1
- package/dist/src/execution/sandbox/abort-bound-session.js +1 -1
- package/dist/src/execution/sandbox/bash.js +1 -1
- package/dist/src/execution/sandbox/bindings/docker-cli.d.ts +2 -0
- package/dist/src/execution/sandbox/bindings/docker-cli.js +1 -1
- package/dist/src/execution/sandbox/bindings/docker-connection.js +1 -1
- package/dist/src/execution/sandbox/bindings/docker.js +1 -1
- package/dist/src/execution/sandbox/bindings/eve-image.d.ts +0 -2
- package/dist/src/execution/sandbox/bindings/eve-image.js +1 -1
- package/dist/src/execution/sandbox/bindings/just-bash-runtime.js +1 -1
- package/dist/src/execution/sandbox/bindings/vercel.js +1 -1
- package/dist/src/execution/sandbox/ensure.js +1 -1
- package/dist/src/{extensions/code/extension/lib → execution/sandbox}/grep-search.d.ts +3 -2
- package/dist/src/execution/sandbox/grep-search.js +6 -0
- package/dist/src/execution/sandbox/multiplexed-command.d.ts +11 -1
- package/dist/src/execution/sandbox/multiplexed-command.js +1 -1
- package/dist/src/execution/sandbox/read-file.d.ts +1 -1
- package/dist/src/execution/sandbox/session.js +1 -1
- package/dist/src/execution/sandbox/workspace-root.d.ts +31 -0
- package/dist/src/execution/sandbox/workspace-root.js +1 -0
- package/dist/src/execution/session/active-turn.d.ts +12 -6
- package/dist/src/execution/session/active-turn.js +1 -1
- package/dist/src/execution/session/admission.d.ts +7 -2
- package/dist/src/execution/session/admission.js +1 -1
- package/dist/src/execution/session/answer-caller.d.ts +4 -4
- package/dist/src/execution/session/answer-caller.js +1 -1
- package/dist/src/execution/session/checkpoint-migrations.d.ts +4 -6
- package/dist/src/execution/session/checkpoint-migrations.js +1 -1
- package/dist/src/execution/session/control-delivery.d.ts +4 -0
- package/dist/src/execution/session/control-delivery.js +1 -0
- package/dist/src/execution/session/delivery-facts.d.ts +27 -0
- package/dist/src/execution/session/delivery-facts.js +1 -0
- package/dist/src/execution/session/end-sandbox-step.js +1 -1
- package/dist/src/execution/session/entry.js +1 -1
- package/dist/src/execution/session/finalization.d.ts +4 -0
- package/dist/src/execution/session/finalization.js +1 -1
- package/dist/src/execution/session/handoff-state.js +1 -1
- package/dist/src/execution/session/handoff-steps.d.ts +0 -8
- package/dist/src/execution/session/handoff-steps.js +1 -1
- package/dist/src/execution/session/handoff.d.ts +4 -3
- package/dist/src/execution/session/handoff.js +1 -1
- package/dist/src/execution/session/input-queue.d.ts +8 -2
- package/dist/src/execution/session/input-queue.js +1 -1
- package/dist/src/execution/session/interrupted-step.d.ts +64 -0
- package/dist/src/execution/session/interrupted-step.js +3 -0
- package/dist/src/execution/session/next-input.d.ts +7 -1
- package/dist/src/execution/session/next-input.js +1 -1
- package/dist/src/execution/session/pending-turn-state.d.ts +32 -12
- package/dist/src/execution/session/pending-turn-state.js +1 -1
- package/dist/src/execution/session/prewarm-step.d.ts +1 -1
- package/dist/src/execution/session/prewarm-step.js +1 -1
- package/dist/src/execution/session/program.js +1 -1
- package/dist/src/execution/session/settle-control-delivery-step.d.ts +8 -0
- package/dist/src/execution/session/settle-control-delivery-step.js +1 -0
- package/dist/src/execution/session/settle-duplicate-delivery-step.d.ts +8 -0
- package/dist/src/execution/session/settle-duplicate-delivery-step.js +1 -0
- package/dist/src/execution/session/state-delta.d.ts +2 -12
- package/dist/src/execution/session/state-delta.js +1 -1
- package/dist/src/execution/session/step-decision-check.d.ts +9 -0
- package/dist/src/execution/session/step-decision-check.js +1 -0
- package/dist/src/execution/session/step-state-delta.d.ts +16 -0
- package/dist/src/execution/session/step-state-delta.js +1 -0
- package/dist/src/execution/session/task-tool-tracing-step.d.ts +0 -3
- package/dist/src/execution/session/task-tool-tracing-step.js +1 -1
- package/dist/src/execution/session/turn-event-handler.d.ts +6 -16
- package/dist/src/execution/session/turn-event-handler.js +1 -1
- package/dist/src/execution/session/turn-step-result.d.ts +7 -2
- package/dist/src/execution/session/turn-step-result.js +1 -1
- package/dist/src/execution/session/turn-step-types.d.ts +35 -33
- package/dist/src/execution/session/turn-step.js +1 -1
- package/dist/src/execution/session/turn.d.ts +19 -32
- package/dist/src/execution/session/turn.js +1 -1
- package/dist/src/execution/session-callback-request.d.ts +7 -1
- package/dist/src/execution/session-callback-request.js +1 -1
- package/dist/src/execution/session-event-stream.d.ts +37 -16
- package/dist/src/execution/session-event-stream.js +1 -1
- package/dist/src/execution/session-inbox/address.d.ts +1 -0
- package/dist/src/execution/session-inbox/end-stranded-session.d.ts +7 -1
- package/dist/src/execution/session-inbox/end-stranded-session.js +1 -1
- package/dist/src/execution/session-inbox/handle.d.ts +7 -0
- package/dist/src/execution/session-inbox/handle.js +1 -0
- package/dist/src/execution/session-inbox/inbox.js +1 -1
- package/dist/src/execution/session-inbox/owner.d.ts +9 -6
- package/dist/src/execution/session-inbox/owner.js +1 -1
- package/dist/src/execution/session-inbox/pre-v27.d.ts +5 -0
- package/dist/src/execution/session-inbox/pre-v27.js +1 -0
- package/dist/src/execution/session-inbox/protocol.js +1 -1
- package/dist/src/execution/session-inbox/resume.d.ts +1 -0
- package/dist/src/execution/session-inbox/resume.js +1 -1
- package/dist/src/execution/session-inbox/stranded-replay-guard.js +1 -1
- package/dist/src/execution/session-workflow-tool-run.js +1 -1
- package/dist/src/execution/session.d.ts +3 -14
- package/dist/src/execution/session.js +2 -2
- package/dist/src/execution/settle-cancelled-turn-step.d.ts +3 -0
- package/dist/src/execution/settle-cancelled-turn-step.js +1 -1
- package/dist/src/execution/stop-runs.d.ts +35 -0
- package/dist/src/execution/stop-runs.js +1 -0
- package/dist/src/execution/tasks/model-step.d.ts +5 -9
- package/dist/src/execution/tasks/model-step.js +1 -1
- package/dist/src/execution/tasks/render.d.ts +5 -2
- package/dist/src/execution/tasks/render.js +1 -1
- package/dist/src/execution/tasks/session.d.ts +6 -3
- package/dist/src/execution/tasks/session.js +1 -1
- package/dist/src/execution/tasks/start.d.ts +9 -6
- package/dist/src/execution/tasks/start.js +1 -1
- package/dist/src/execution/tasks/steps.d.ts +11 -6
- package/dist/src/execution/tasks/steps.js +1 -1
- package/dist/src/execution/tasks/table.d.ts +18 -5
- package/dist/src/execution/tasks/table.js +1 -1
- package/dist/src/execution/tasks/task-id-input.js +1 -1
- package/dist/src/execution/terminal-session-completion-step.d.ts +11 -1
- package/dist/src/execution/terminal-session-completion-step.js +1 -1
- package/dist/src/execution/terminal-session-failure-step.d.ts +6 -1
- package/dist/src/execution/terminal-session-failure-step.js +1 -1
- package/dist/src/execution/terminate-child-sessions-step.d.ts +5 -1
- package/dist/src/execution/terminate-child-sessions-step.js +1 -1
- package/dist/src/execution/tools/agent-router-workflow.js +1 -1
- package/dist/src/execution/tools/workflow/answer.d.ts +4 -5
- package/dist/src/execution/tools/workflow/answer.js +1 -1
- package/dist/src/execution/tools/workflow/apply-run-messages-step.d.ts +1 -1
- package/dist/src/execution/tools/workflow/apply-run-messages-step.js +1 -1
- package/dist/src/execution/tools/workflow/ask.d.ts +3 -3
- package/dist/src/execution/tools/workflow/body.js +1 -1
- package/dist/src/execution/tools/workflow/harness-definition.js +1 -1
- package/dist/src/execution/tools/workflow/messages.d.ts +25 -33
- package/dist/src/execution/tools/workflow/messages.js +1 -1
- package/dist/src/execution/tools/workflow/owner-inbox.d.ts +9 -5
- package/dist/src/execution/tools/workflow/owner-inbox.js +1 -1
- package/dist/src/execution/tools/workflow/owner.d.ts +3 -3
- package/dist/src/execution/tools/workflow/owner.js +1 -1
- package/dist/src/execution/tools/workflow/serve.js +1 -1
- package/dist/src/execution/tools/workflow/step.js +1 -1
- package/dist/src/execution/tools/workflow/withdraw-step.d.ts +2 -2
- package/dist/src/execution/tools/workflow/withdraw-step.js +1 -1
- package/dist/src/execution/v26-history.d.ts +28 -0
- package/dist/src/execution/v26-history.fixtures.d.ts +4 -0
- package/dist/src/execution/v26-history.fixtures.js +2 -0
- package/dist/src/execution/v26-history.js +1 -0
- package/dist/src/execution/web-fetch/request.js +1 -1
- package/dist/src/execution/workflow-errors.d.ts +5 -0
- package/dist/src/execution/workflow-errors.js +1 -1
- package/dist/src/execution/workflow-runtime.js +1 -1
- package/dist/src/extensions/code/extension/extension.d.ts +1 -11
- package/dist/src/extensions/code/extension/extension.js +1 -1
- package/dist/src/extensions/code/extension/lib/prwatch-github.d.ts +5 -1
- package/dist/src/extensions/code/extension/lib/prwatch-github.js +1 -1
- package/dist/src/extensions/code/extension/lib/repository-root.js +1 -1
- package/dist/src/extensions/code/extension/lib/sandbox.d.ts +0 -4
- package/dist/src/extensions/code/extension/lib/sandbox.js +2 -2
- package/dist/src/extensions/code/extension/lib/tooling.d.ts +1 -1
- package/dist/src/extensions/code/extension/lib/tooling.js +1 -1
- package/dist/src/extensions/code/extension/lib/workspace-root.d.ts +1 -31
- package/dist/src/extensions/code/extension/lib/workspace-root.js +1 -1
- package/dist/src/extensions/code/extension/subagents/worker/agent.d.ts +1 -1
- package/dist/src/extensions/code/extension/subagents/worker/agent.js +1 -1
- package/dist/src/extensions/code/extension/tools/apply_patch.js +2 -2
- package/dist/src/extensions/code/extension/tools/grep.d.ts +1 -28
- package/dist/src/extensions/code/extension/tools/grep.js +1 -1
- package/dist/src/extensions/code/sandbox.d.ts +1 -0
- package/dist/src/extensions/code/sandbox.js +1 -0
- package/dist/src/extensions/code/tools.d.ts +1 -5
- package/dist/src/extensions/code/tools.js +1 -1
- package/dist/src/extensions/git/extension/extension.d.ts +3 -3
- package/dist/src/extensions/git/extension/instructions/github.d.ts +1 -1
- package/dist/src/extensions/git/extension/instructions/github.js +1 -1
- package/dist/src/extensions/git/extension/lib/gh-tool.d.ts +2 -11
- package/dist/src/extensions/git/extension/lib/gh-tool.js +1 -1
- package/dist/src/extensions/git/extension/lib/github-shell.d.ts +13 -3
- package/dist/src/extensions/git/extension/lib/sandbox.d.ts +0 -4
- package/dist/src/extensions/git/extension/lib/sandbox.js +1 -1
- package/dist/src/extensions/git/extension/skills/pr.d.ts +1 -4
- package/dist/src/extensions/git/extension/skills/pr.js +1 -1
- package/dist/src/extensions/git/extension/tools/gh.d.ts +1 -26
- package/dist/src/extensions/git/extension/tools/gh.js +1 -1
- package/dist/src/framework/sources/modules/schedule-collection-wrapper.js +1 -1
- package/dist/src/harness/action-presentation.d.ts +3 -5
- package/dist/src/harness/action-presentation.js +1 -1
- package/dist/src/harness/action-result-helpers.d.ts +2 -8
- package/dist/src/harness/action-result-helpers.js +1 -1
- package/dist/src/harness/approval-outcome.d.ts +32 -0
- package/dist/src/harness/approval-outcome.js +1 -0
- package/dist/src/harness/attachment-staging.js +1 -1
- package/dist/src/harness/authorization.d.ts +2 -3
- package/dist/src/harness/authorization.js +1 -1
- package/dist/src/harness/call-executor.d.ts +118 -0
- package/dist/src/harness/call-executor.js +1 -0
- package/dist/src/harness/call-facts.d.ts +31 -0
- package/dist/src/harness/call-facts.js +1 -0
- package/dist/src/harness/call-outcome.d.ts +6 -0
- package/dist/src/harness/call-outcome.js +1 -0
- package/dist/src/harness/compaction/engine.d.ts +11 -0
- package/dist/src/harness/compaction/engine.js +2 -2
- package/dist/src/harness/compaction/step.d.ts +25 -5
- package/dist/src/harness/compaction/step.js +1 -1
- package/dist/src/harness/coordination.js +1 -1
- package/dist/src/harness/current-messages.d.ts +10 -0
- package/dist/src/harness/current-messages.js +1 -1
- package/dist/src/harness/emission.d.ts +9 -20
- package/dist/src/harness/emission.js +1 -1
- package/dist/src/harness/execute-call.d.ts +6 -23
- package/dist/src/harness/execute-call.js +1 -1
- package/dist/src/harness/execute-tool.d.ts +7 -3
- package/dist/src/harness/facts.d.ts +82 -0
- package/dist/src/harness/facts.js +1 -0
- package/dist/src/harness/finish-reason.d.ts +6 -1
- package/dist/src/harness/generation-steering.d.ts +4 -2
- package/dist/src/harness/generation-steering.js +1 -1
- package/dist/src/harness/hitl/approval-prompt.d.ts +3 -3
- package/dist/src/harness/hitl/approval-prompt.js +3 -3
- package/dist/src/harness/hitl/approvals.d.ts +66 -78
- package/dist/src/harness/hitl/approvals.js +2 -1
- package/dist/src/harness/hitl/approved-calls.d.ts +14 -36
- package/dist/src/harness/hitl/approved-calls.js +1 -1
- package/dist/src/harness/hitl/budget-request.d.ts +8 -46
- package/dist/src/harness/hitl/budget-request.js +1 -1
- package/dist/src/harness/hitl/budget.d.ts +9 -8
- package/dist/src/harness/hitl/budget.js +1 -1
- package/dist/src/harness/hitl/delivery.d.ts +16 -17
- package/dist/src/harness/hitl/delivery.js +1 -1
- package/dist/src/harness/hitl/index.d.ts +14 -19
- package/dist/src/harness/hitl/index.js +1 -1
- package/dist/src/harness/hitl/intake.d.ts +32 -43
- package/dist/src/harness/hitl/intake.js +1 -1
- package/dist/src/harness/hitl/relays.d.ts +7 -51
- package/dist/src/harness/hitl/relays.js +1 -1
- package/dist/src/harness/hitl/requests.d.ts +11 -53
- package/dist/src/harness/hitl/requests.js +1 -1
- package/dist/src/harness/hitl/responders.d.ts +50 -0
- package/dist/src/harness/hitl/responders.js +1 -0
- package/dist/src/harness/hitl/sign-ins.d.ts +7 -3
- package/dist/src/harness/hitl/sign-ins.js +1 -1
- package/dist/src/harness/hitl/stale-responses.d.ts +11 -11
- package/dist/src/harness/hitl/stale-responses.js +3 -3
- package/dist/src/harness/inline-tool-authorization.d.ts +8 -9
- package/dist/src/harness/inline-tool-authorization.js +1 -1
- package/dist/src/harness/interaction-facts.d.ts +36 -0
- package/dist/src/harness/interaction-facts.js +1 -0
- package/dist/src/harness/interaction-relay.d.ts +10 -0
- package/dist/src/harness/interaction-relay.js +1 -0
- package/dist/src/harness/interrupted-attempt.d.ts +19 -0
- package/dist/src/harness/interrupted-attempt.js +2 -0
- package/dist/src/harness/messages.d.ts +28 -15
- package/dist/src/harness/messages.js +1 -1
- package/dist/src/harness/model-call/call.d.ts +28 -12
- package/dist/src/harness/model-call/call.js +1 -1
- package/dist/src/harness/model-call/errors.js +1 -1
- package/dist/src/harness/model-call/failure.d.ts +4 -49
- package/dist/src/harness/model-call/failure.js +1 -1
- package/dist/src/harness/model-call/model.js +1 -1
- package/dist/src/harness/model-call/recovery.d.ts +4 -32
- package/dist/src/harness/model-call/recovery.js +1 -1
- package/dist/src/harness/model-call/request.d.ts +0 -1
- package/dist/src/harness/model-call/request.js +1 -1
- package/dist/src/harness/model-call/response.d.ts +22 -12
- package/dist/src/harness/model-call/response.js +1 -1
- package/dist/src/harness/model-call/retry.d.ts +23 -6
- package/dist/src/harness/model-call/retry.js +1 -1
- package/dist/src/harness/model-call/run.d.ts +4 -12
- package/dist/src/harness/model-call/run.js +1 -1
- package/dist/src/harness/model-call/tools.d.ts +0 -19
- package/dist/src/harness/model-call/tools.js +1 -1
- package/dist/src/harness/model-call/unique-call-ids.d.ts +13 -0
- package/dist/src/harness/model-call/unique-call-ids.js +1 -0
- package/dist/src/harness/model-call/usage.d.ts +7 -5
- package/dist/src/harness/model-call/usage.js +1 -1
- package/dist/src/harness/ordered-stream-emitter.d.ts +1 -0
- package/dist/src/harness/ordered-stream-emitter.js +1 -1
- package/dist/src/harness/provider-tool-history.js +1 -1
- package/dist/src/harness/publication.d.ts +4 -0
- package/dist/src/harness/publication.js +1 -0
- package/dist/src/harness/request-envelope.d.ts +0 -3
- package/dist/src/harness/request-envelope.js +1 -1
- package/dist/src/harness/running-work.d.ts +10 -0
- package/dist/src/harness/running-work.js +1 -0
- package/dist/src/harness/semantic-errors/rules/gateway.js +1 -1
- package/dist/src/harness/session-machine/cascade.d.ts +17 -0
- package/dist/src/harness/session-machine/cascade.js +1 -0
- package/dist/src/harness/session-machine/commit.d.ts +16 -16
- package/dist/src/harness/session-machine/commit.js +1 -1
- package/dist/src/harness/session-machine/current.d.ts +25 -17
- package/dist/src/harness/session-machine/current.js +1 -1
- package/dist/src/harness/session-machine/state.d.ts +43 -16
- package/dist/src/harness/session-machine/state.js +1 -1
- package/dist/src/harness/session-machine/suspended-steps.d.ts +22 -0
- package/dist/src/harness/session-machine/suspended-steps.js +1 -0
- package/dist/src/harness/session-machine/transitions.d.ts +144 -120
- package/dist/src/harness/session-machine/transitions.js +1 -1
- package/dist/src/harness/session-machine/view.d.ts +12 -8
- package/dist/src/harness/session-machine/view.js +1 -1
- package/dist/src/harness/session-machine/waiting.d.ts +16 -0
- package/dist/src/harness/session-machine/waiting.js +1 -0
- package/dist/src/harness/session-usage.d.ts +22 -0
- package/dist/src/harness/session-usage.js +1 -0
- package/dist/src/harness/step/after-model.d.ts +1 -4
- package/dist/src/harness/step/after-model.js +1 -1
- package/dist/src/harness/step/context.d.ts +21 -21
- package/dist/src/harness/step/context.js +1 -1
- package/dist/src/harness/step/intake.d.ts +7 -8
- package/dist/src/harness/step/intake.js +1 -1
- package/dist/src/harness/step/park.d.ts +19 -0
- package/dist/src/harness/step/park.js +1 -0
- package/dist/src/harness/step/prompt.d.ts +4 -5
- package/dist/src/harness/step/prompt.js +1 -1
- package/dist/src/harness/step-hooks.d.ts +24 -24
- package/dist/src/harness/step-hooks.js +1 -1
- package/dist/src/harness/stream-actions.d.ts +3 -9
- package/dist/src/harness/stream-actions.js +1 -1
- package/dist/src/harness/token-estimate.js +1 -1
- package/dist/src/harness/tool-history-repair.js +1 -1
- package/dist/src/harness/tool-loop.js +1 -1
- package/dist/src/harness/tools.d.ts +22 -38
- package/dist/src/harness/tools.js +1 -1
- package/dist/src/harness/types.d.ts +69 -67
- package/dist/src/harness/user-parts.d.ts +4 -0
- package/dist/src/harness/user-parts.js +1 -0
- package/dist/src/harness/workflow-tool-runs.d.ts +0 -1
- package/dist/src/harness/workflow-tool-runs.js +1 -1
- package/dist/src/instrumentation/ai-sdk-hook-bridge.d.ts +2 -2
- package/dist/src/instrumentation/ai-sdk-hook-bridge.js +1 -1
- package/dist/src/instrumentation/channel-delivery.d.ts +4 -23
- package/dist/src/instrumentation/channel-delivery.js +1 -1
- package/dist/src/instrumentation/content.d.ts +1 -7
- package/dist/src/instrumentation/content.js +1 -1
- package/dist/src/instrumentation/dispatch.js +1 -1
- package/dist/src/instrumentation/lifecycle.d.ts +135 -198
- package/dist/src/instrumentation/lifecycle.js +1 -1
- package/dist/src/instrumentation/memory.d.ts +4 -2
- package/dist/src/instrumentation/memory.js +1 -1
- package/dist/src/instrumentation/native-events.d.ts +17 -10
- package/dist/src/instrumentation/native-events.js +1 -1
- package/dist/src/instrumentation/prepare-trace-context.d.ts +3 -3
- package/dist/src/instrumentation/provider.d.ts +20 -28
- package/dist/src/instrumentation/providers.js +1 -1
- package/dist/src/instrumentation/runtime-context.d.ts +1 -0
- package/dist/src/instrumentation/runtime-context.js +1 -1
- package/dist/src/instrumentation/runtime.d.ts +9 -30
- package/dist/src/instrumentation/runtime.js +1 -1
- package/dist/src/instrumentation/scope.d.ts +6 -0
- package/dist/src/instrumentation/scope.js +1 -0
- package/dist/src/instrumentation/session-context.d.ts +1 -1
- package/dist/src/instrumentation/session-context.js +1 -1
- package/dist/src/instrumentation/session-init.js +1 -1
- package/dist/src/instrumentation/setup-context.d.ts +2 -2
- package/dist/src/instrumentation/setup-context.js +1 -1
- package/dist/src/instrumentation/state.d.ts +0 -21
- package/dist/src/instrumentation/state.js +1 -1
- package/dist/src/internal/application/compiled-artifacts.d.ts +2 -0
- package/dist/src/internal/application/compiled-artifacts.js +2 -2
- package/dist/src/internal/application/dev-environment.d.ts +8 -2
- package/dist/src/internal/application/dev-environment.js +1 -1
- package/dist/src/internal/application/optional-package-install.js +1 -1
- package/dist/src/internal/application/stamped-package-version.js +1 -1
- package/dist/src/internal/authored-definition/approval.d.ts +2 -4
- package/dist/src/internal/authored-definition/approval.js +1 -1
- package/dist/src/internal/authored-definition/connection.js +1 -1
- package/dist/src/internal/authored-definition/core.d.ts +1 -1
- package/dist/src/internal/authored-definition/core.js +1 -1
- package/dist/src/internal/authored-definition/memory.js +1 -1
- package/dist/src/internal/authored-definition/schema-backed.d.ts +0 -3
- package/dist/src/internal/authored-definition/schema-backed.js +1 -1
- package/dist/src/internal/authored-module-loader.d.ts +0 -1
- package/dist/src/internal/authored-module-loader.js +1 -1
- package/dist/src/internal/authored-package-boundary.js +1 -1
- package/dist/src/internal/git.d.ts +2 -0
- package/dist/src/internal/git.js +1 -0
- package/dist/src/internal/grep.d.ts +1 -0
- package/dist/src/internal/grep.js +1 -0
- package/dist/src/internal/helpers/markdown.js +1 -1
- package/dist/src/internal/invocation/agent-invocation.d.ts +16 -19
- package/dist/src/internal/invocation/metadata.d.ts +0 -2
- package/dist/src/internal/invocation/metadata.js +1 -1
- package/dist/src/internal/invocation/workflow-execution.d.ts +4 -4
- package/dist/src/internal/invocation/workflow-execution.js +1 -1
- package/dist/src/internal/legacy-events.d.ts +5 -0
- package/dist/src/internal/legacy-events.js +1 -0
- package/dist/src/internal/logging.d.ts +0 -12
- package/dist/src/internal/logging.js +1 -1
- package/dist/src/internal/mcp/protected-resource.js +1 -1
- package/dist/src/internal/mcp/published-tools.js +1 -1
- package/dist/src/internal/model-auth/api-key.js +1 -1
- package/dist/src/internal/model-auth/development-broker-client.js +1 -1
- package/dist/src/internal/model-auth/development-broker-server.js +1 -1
- package/dist/src/internal/model-auth/transport.js +1 -1
- package/dist/src/internal/model-catalog.d.ts +39 -16
- package/dist/src/internal/model-catalog.js +1 -1
- package/dist/src/internal/nitro/dev-runtime-artifacts.js +1 -1
- package/dist/src/internal/nitro/dev-runtime-generation-metadata.js +1 -1
- package/dist/src/internal/nitro/host/build-extension.js +2 -2
- package/dist/src/internal/nitro/host/create-application-nitro.js +1 -1
- package/dist/src/internal/nitro/host/dev-build-host.js +1 -1
- package/dist/src/internal/nitro/host/dev-host-fingerprint.js +1 -1
- package/dist/src/internal/nitro/host/dev-server-state.js +1 -1
- package/dist/src/internal/nitro/host/drained-nitro-dev-server.js +1 -1
- package/dist/src/internal/nitro/host/start-development-server.js +1 -1
- package/dist/src/internal/nitro/routes/agent-info/build-agent-info-response.js +1 -1
- package/dist/src/internal/nitro/routes/channel-dispatch.js +1 -1
- package/dist/src/internal/nitro/routes/channel-route-context.d.ts +8 -1
- package/dist/src/internal/nitro/routes/info.js +1 -1
- package/dist/src/internal/nitro/routes/schedule-task.js +1 -1
- package/dist/src/internal/scaffold.d.ts +5 -0
- package/dist/src/internal/scaffold.js +1 -0
- package/dist/src/internal/workflow/cancel-expired-development-run.js +1 -1
- package/dist/src/internal/workflow/development-world-client.js +1 -1
- package/dist/src/internal/workflow/development-world-server.js +1 -1
- package/dist/src/internal/workflow/local-world-data-directory.js +1 -1
- package/dist/src/internal/workspace.d.ts +1 -0
- package/dist/src/internal/workspace.js +1 -0
- package/dist/src/models/auto.d.ts +27 -14
- package/dist/src/models/auto.js +2 -2
- package/dist/src/protocol/delivery.d.ts +12 -0
- package/dist/src/protocol/delivery.js +1 -0
- package/dist/src/protocol/descendant-observation.d.ts +12 -0
- package/dist/src/protocol/descendant-observation.js +1 -0
- package/dist/src/protocol/interaction-json.d.ts +66 -0
- package/dist/src/protocol/interaction-json.js +1 -0
- package/dist/src/protocol/interaction-options.d.ts +4 -0
- package/dist/src/protocol/interaction-options.js +1 -0
- package/dist/src/protocol/remote-agent-protocol.d.ts +28 -1
- package/dist/src/protocol/remote-agent-protocol.js +1 -1
- package/dist/src/protocol/routes.d.ts +3 -2
- package/dist/src/protocol/routes.js +1 -1
- package/dist/src/protocol/session-event.d.ts +22 -0
- package/dist/src/protocol/session-event.js +1 -0
- package/dist/src/protocol/session-events/authoring.d.ts +2 -0
- package/dist/src/protocol/session-events/authoring.js +1 -0
- package/dist/src/protocol/session-events/catalog.d.ts +50 -0
- package/dist/src/protocol/session-events/catalog.js +1 -0
- package/dist/src/protocol/session-events/checker.d.ts +23 -0
- package/dist/src/protocol/session-events/checker.js +1 -0
- package/dist/src/protocol/session-events/common.d.ts +105 -0
- package/dist/src/protocol/session-events/common.js +1 -0
- package/dist/src/protocol/session-events/envelope.d.ts +174 -0
- package/dist/src/protocol/session-events/envelope.js +1 -0
- package/dist/src/protocol/session-events/facts.d.ts +24 -0
- package/dist/src/protocol/session-events/facts.js +1 -0
- package/dist/src/protocol/session-events/families/call.d.ts +142 -0
- package/dist/src/protocol/session-events/families/call.js +1 -0
- package/dist/src/protocol/session-events/families/child.d.ts +51 -0
- package/dist/src/protocol/session-events/families/child.js +1 -0
- package/dist/src/protocol/session-events/families/content.d.ts +56 -0
- package/dist/src/protocol/session-events/families/content.js +1 -0
- package/dist/src/protocol/session-events/families/context.d.ts +55 -0
- package/dist/src/protocol/session-events/families/context.js +1 -0
- package/dist/src/protocol/session-events/families/delivery.d.ts +86 -0
- package/dist/src/protocol/session-events/families/delivery.js +1 -0
- package/dist/src/protocol/session-events/families/interaction.d.ts +163 -0
- package/dist/src/protocol/session-events/families/interaction.js +1 -0
- package/dist/src/protocol/session-events/families/model.d.ts +88 -0
- package/dist/src/protocol/session-events/families/model.js +1 -0
- package/dist/src/protocol/session-events/families/response.d.ts +66 -0
- package/dist/src/protocol/session-events/families/response.js +1 -0
- package/dist/src/protocol/session-events/families/session.d.ts +73 -0
- package/dist/src/protocol/session-events/families/session.js +1 -0
- package/dist/src/protocol/session-events/families/task.d.ts +46 -0
- package/dist/src/protocol/session-events/families/task.js +1 -0
- package/dist/src/protocol/session-events/families/turn.d.ts +68 -0
- package/dist/src/protocol/session-events/families/turn.js +1 -0
- package/dist/src/protocol/session-events/families/usage.d.ts +30 -0
- package/dist/src/protocol/session-events/families/usage.js +1 -0
- package/dist/src/protocol/session-events/guards.d.ts +11 -0
- package/dist/src/protocol/session-events/guards.js +1 -0
- package/dist/src/protocol/session-events/index.d.ts +16 -0
- package/dist/src/protocol/session-events/index.js +1 -0
- package/dist/src/protocol/session-events/json.d.ts +20 -0
- package/dist/src/protocol/session-events/json.js +1 -0
- package/dist/src/protocol/session-events/schemas.d.ts +320 -0
- package/dist/src/protocol/session-events/schemas.js +1 -0
- package/dist/src/protocol/session-http.d.ts +7 -0
- package/dist/src/protocol/session-http.js +1 -0
- package/dist/src/protocol/session-lines.d.ts +19 -0
- package/dist/src/protocol/session-lines.js +1 -0
- package/dist/src/protocol/session-projection/fold.d.ts +75 -0
- package/dist/src/protocol/session-projection/fold.js +1 -0
- package/dist/src/protocol/session-projection/index.d.ts +4 -0
- package/dist/src/protocol/session-projection/index.js +1 -0
- package/dist/src/protocol/session-projection/observations.d.ts +150 -0
- package/dist/src/protocol/session-projection/observations.js +1 -0
- package/dist/src/protocol/session-projection/public-view.d.ts +74 -0
- package/dist/src/protocol/session-projection/public-view.js +1 -0
- package/dist/src/protocol/session-projection/reader.d.ts +62 -0
- package/dist/src/protocol/session-projection/reader.js +1 -0
- package/dist/src/protocol/session-projection/request-status.d.ts +7 -0
- package/dist/src/protocol/session-projection/request-status.js +1 -0
- package/dist/src/protocol/session-projection/selectors.d.ts +169 -0
- package/dist/src/protocol/session-projection/selectors.js +2 -0
- package/dist/src/protocol/session-projection/session-view.d.ts +18 -0
- package/dist/src/protocol/session-projection/session-view.js +1 -0
- package/dist/src/protocol/session-projection/tables.d.ts +237 -0
- package/dist/src/protocol/session-projection/tables.js +1 -0
- package/dist/src/protocol/session-projection/tree.d.ts +72 -0
- package/dist/src/protocol/session-projection/tree.js +1 -0
- package/dist/src/protocol/session-projection.d.ts +38 -157
- package/dist/src/protocol/session-projection.js +1 -1
- package/dist/src/protocol/task-tools.d.ts +8 -6
- package/dist/src/protocol/task-tools.js +1 -1
- package/dist/src/protocol/v26-interactions.d.ts +11 -0
- package/dist/src/protocol/v26-interactions.js +1 -0
- package/dist/src/protocol/v26-lines.d.ts +5 -0
- package/dist/src/protocol/v26-lines.js +1 -0
- package/dist/src/public/agents/auth.d.ts +2 -2
- package/dist/src/public/agents/auth.js +1 -1
- package/dist/src/public/ai/index.d.ts +1 -0
- package/dist/src/public/channels/auth.d.ts +2 -532
- package/dist/src/public/channels/auth.js +1 -1
- package/dist/src/public/channels/chat-sdk/authorization.d.ts +5 -2
- package/dist/src/public/channels/chat-sdk/authorization.js +1 -3
- package/dist/src/public/channels/chat-sdk/chatSdkChannel.d.ts +10 -10
- package/dist/src/public/channels/chat-sdk/chatSdkChannel.js +1 -3
- package/dist/src/public/channels/chat-sdk/index.d.ts +1 -1
- package/dist/src/public/channels/chat-sdk/index.js +1 -1
- package/dist/src/public/channels/chat-sdk/input-actions.d.ts +4 -4
- package/dist/src/public/channels/chat-sdk/input-actions.js +3 -3
- package/dist/src/public/channels/chat-sdk/{messageToUserContent.d.ts → message-content.d.ts} +3 -3
- package/dist/src/public/channels/chat-sdk/message-content.js +1 -0
- package/dist/src/public/channels/discord/api.d.ts +8 -11
- package/dist/src/public/channels/discord/api.js +1 -1
- package/dist/src/public/channels/discord/attachments.d.ts +2 -2
- package/dist/src/public/channels/discord/authorization.d.ts +3 -13
- package/dist/src/public/channels/discord/authorization.js +2 -2
- package/dist/src/public/channels/discord/credentials.d.ts +11 -0
- package/dist/src/public/channels/discord/credentials.js +1 -0
- package/dist/src/public/channels/discord/defaults.d.ts +7 -1
- package/dist/src/public/channels/discord/defaults.js +1 -3
- package/dist/src/public/channels/discord/discordChannel.d.ts +36 -48
- package/dist/src/public/channels/discord/discordChannel.js +1 -1
- package/dist/src/public/channels/discord/hitl.d.ts +5 -4
- package/dist/src/public/channels/discord/hitl.js +1 -1
- package/dist/src/public/channels/discord/index.d.ts +4 -12
- package/dist/src/public/channels/discord/index.js +1 -1
- package/dist/src/public/channels/discord/messages.js +1 -1
- package/dist/src/public/channels/github/defaults.js +2 -4
- package/dist/src/public/channels/github/githubChannel.d.ts +23 -36
- package/dist/src/public/channels/github/githubChannel.js +1 -1
- package/dist/src/public/channels/github/index.d.ts +3 -2
- package/dist/src/public/channels/github/index.js +1 -1
- package/dist/src/public/channels/github/state.d.ts +2 -0
- package/dist/src/public/channels/imessage-tapbacks.d.ts +1 -1
- package/dist/src/public/channels/index.d.ts +16 -37
- package/dist/src/public/channels/index.js +1 -1
- package/dist/src/public/channels/linear/defaults.js +2 -4
- package/dist/src/public/channels/linear/hitl.d.ts +3 -3
- package/dist/src/public/channels/linear/hitl.js +2 -2
- package/dist/src/public/channels/linear/inbound-uploads.d.ts +3 -3
- package/dist/src/public/channels/linear/inbound-uploads.js +1 -1
- package/dist/src/public/channels/linear/inbound.d.ts +5 -3
- package/dist/src/public/channels/linear/inbound.js +1 -1
- package/dist/src/public/channels/linear/index.d.ts +4 -6
- package/dist/src/public/channels/linear/index.js +1 -1
- package/dist/src/public/channels/linear/linearChannel.d.ts +19 -30
- package/dist/src/public/channels/linear/linearChannel.js +1 -1
- package/dist/src/public/channels/linq/inboundContent.d.ts +2 -2
- package/dist/src/public/channels/linq/inboundContent.js +1 -1
- package/dist/src/public/channels/linq/index.d.ts +1 -1
- package/dist/src/public/channels/linq/linqChannel.d.ts +1 -2
- package/dist/src/public/channels/mcp.d.ts +2 -2
- package/dist/src/public/channels/mcp.js +1 -1
- package/dist/src/public/channels/photon/inboundContent.d.ts +2 -2
- package/dist/src/public/channels/photon/inboundContent.js +1 -1
- package/dist/src/public/channels/photon/index.d.ts +1 -1
- package/dist/src/public/channels/photon/photonIMessageChannel.d.ts +1 -2
- package/dist/src/public/channels/reply.d.ts +22 -0
- package/dist/src/public/channels/reply.js +3 -0
- package/dist/src/public/channels/slack/action-status.js +1 -1
- package/dist/src/public/channels/slack/{input-response.d.ts → answers.d.ts} +5 -5
- package/dist/src/public/channels/slack/answers.js +1 -0
- package/dist/src/public/channels/slack/api.d.ts +5 -2
- package/dist/src/public/channels/slack/api.js +1 -1
- package/dist/src/public/channels/slack/approval-cards.d.ts +15 -5
- package/dist/src/public/channels/slack/approval-cards.js +2 -2
- package/dist/src/public/channels/slack/attachments.d.ts +6 -6
- package/dist/src/public/channels/slack/attachments.js +1 -1
- package/dist/src/public/channels/slack/blocks.d.ts +1 -1
- package/dist/src/public/channels/slack/blocks.js +1 -1
- package/dist/src/public/channels/slack/cards.d.ts +576 -0
- package/dist/src/public/channels/slack/cards.js +1 -0
- package/dist/src/public/channels/slack/connections.d.ts +4 -22
- package/dist/src/public/channels/slack/connections.js +1 -1
- package/dist/src/public/channels/slack/defaults.d.ts +13 -2
- package/dist/src/public/channels/slack/defaults.js +5 -5
- package/dist/src/public/channels/slack/hitl.d.ts +20 -19
- package/dist/src/public/channels/slack/hitl.js +3 -3
- package/dist/src/public/channels/slack/index.d.ts +7 -16
- package/dist/src/public/channels/slack/index.js +1 -1
- package/dist/src/public/channels/slack/interaction-cards.js +1 -1
- package/dist/src/public/channels/slack/interactions.d.ts +2 -2
- package/dist/src/public/channels/slack/interactions.js +1 -1
- package/dist/src/public/channels/slack/limits.js +1 -1
- package/dist/src/public/channels/slack/private-approval-delivery.d.ts +3 -3
- package/dist/src/public/channels/slack/private-approval-delivery.js +1 -1
- package/dist/src/public/channels/slack/renderers.d.ts +21 -27
- package/dist/src/public/channels/slack/renderers.js +1 -1
- package/dist/src/public/channels/slack/reply-delivery.d.ts +4 -4
- package/dist/src/public/channels/slack/reply-delivery.js +1 -1
- package/dist/src/public/channels/slack/session-operations.d.ts +4 -4
- package/dist/src/public/channels/slack/sign-in-cancel.js +1 -1
- package/dist/src/public/channels/slack/slackChannel.d.ts +30 -37
- package/dist/src/public/channels/slack/slackChannel.js +1 -1
- package/dist/src/public/channels/slack/task-card.d.ts +9 -9
- package/dist/src/public/channels/slack/task-card.js +1 -1
- package/dist/src/public/channels/teams/api.d.ts +3 -7
- package/dist/src/public/channels/teams/attachments.d.ts +4 -4
- package/dist/src/public/channels/teams/authorization.d.ts +5 -9
- package/dist/src/public/channels/teams/authorization.js +1 -1
- package/dist/src/public/channels/teams/credentials.d.ts +13 -0
- package/dist/src/public/channels/teams/credentials.js +1 -0
- package/dist/src/public/channels/teams/defaults.d.ts +2 -6
- package/dist/src/public/channels/teams/defaults.js +1 -3
- package/dist/src/public/channels/teams/hitl.d.ts +8 -7
- package/dist/src/public/channels/teams/hitl.js +1 -1
- package/dist/src/public/channels/teams/index.d.ts +6 -8
- package/dist/src/public/channels/teams/index.js +1 -1
- package/dist/src/public/channels/teams/teamsChannel.d.ts +25 -44
- package/dist/src/public/channels/teams/teamsChannel.js +1 -1
- package/dist/src/public/channels/telegram/api.d.ts +3 -4
- package/dist/src/public/channels/telegram/attachments.d.ts +5 -5
- package/dist/src/public/channels/telegram/authorization-callback.js +1 -1
- package/dist/src/public/channels/telegram/authorization.d.ts +4 -8
- package/dist/src/public/channels/telegram/authorization.js +2 -2
- package/dist/src/public/channels/telegram/credentials.d.ts +9 -0
- package/dist/src/public/channels/telegram/credentials.js +1 -0
- package/dist/src/public/channels/telegram/defaults.js +1 -3
- package/dist/src/public/channels/telegram/hitl.d.ts +22 -20
- package/dist/src/public/channels/telegram/hitl.js +2 -2
- package/dist/src/public/channels/telegram/index.d.ts +5 -7
- package/dist/src/public/channels/telegram/index.js +1 -1
- package/dist/src/public/channels/telegram/telegramChannel.d.ts +23 -36
- package/dist/src/public/channels/telegram/telegramChannel.js +1 -1
- package/dist/src/public/channels/text.d.ts +4 -0
- package/dist/src/public/channels/text.js +1 -0
- package/dist/src/public/channels/twilio/api.d.ts +8 -8
- package/dist/src/public/channels/twilio/api.js +1 -1
- package/dist/src/public/channels/twilio/credentials.d.ts +7 -0
- package/dist/src/public/channels/twilio/credentials.js +1 -0
- package/dist/src/public/channels/twilio/defaults.d.ts +0 -1
- package/dist/src/public/channels/twilio/defaults.js +1 -5
- package/dist/src/public/channels/twilio/inbound.d.ts +2 -2
- package/dist/src/public/channels/twilio/index.d.ts +4 -4
- package/dist/src/public/channels/twilio/index.js +1 -1
- package/dist/src/public/channels/twilio/twilioChannel.d.ts +24 -37
- package/dist/src/public/channels/twilio/twilioChannel.js +1 -1
- package/dist/src/public/channels/twilio/verify.d.ts +6 -4
- package/dist/src/public/channels/undelivered-reply.d.ts +2 -2
- package/dist/src/public/channels/upload-policy.d.ts +7 -7
- package/dist/src/public/connections/index.d.ts +3 -5
- package/dist/src/public/context/index.d.ts +3 -2
- package/dist/src/public/definitions/agent.d.ts +18 -18
- package/dist/src/public/definitions/agent.js +1 -1
- package/dist/src/public/definitions/approval.d.ts +1 -1
- package/dist/src/public/definitions/channel.d.ts +57 -60
- package/dist/src/public/definitions/channel.js +1 -1
- package/dist/src/public/definitions/connections/dynamic.d.ts +3 -15
- package/dist/src/public/definitions/connections/dynamic.js +1 -1
- package/dist/src/public/definitions/connections/events.d.ts +9 -9
- package/dist/src/public/definitions/connections/mcp.d.ts +5 -3
- package/dist/src/public/definitions/connections/openapi.d.ts +1 -1
- package/dist/src/public/definitions/extension.d.ts +2 -4
- package/dist/src/public/definitions/extension.js +1 -1
- package/dist/src/public/definitions/hook.d.ts +63 -85
- package/dist/src/public/definitions/hook.js +1 -1
- package/dist/src/public/definitions/instructions.d.ts +3 -10
- package/dist/src/public/definitions/instructions.js +1 -1
- package/dist/src/public/definitions/model.d.ts +21 -0
- package/dist/src/public/definitions/model.js +1 -0
- package/dist/src/public/definitions/removed-event-keys.d.ts +2 -0
- package/dist/src/public/definitions/removed-event-keys.js +1 -0
- package/dist/src/public/definitions/sandbox.d.ts +1 -1
- package/dist/src/public/definitions/schedule.d.ts +4 -4
- package/dist/src/public/definitions/skill.d.ts +5 -0
- package/dist/src/public/definitions/skill.js +1 -1
- package/dist/src/public/events/index.d.ts +27 -0
- package/dist/src/public/events/index.js +1 -0
- package/dist/src/public/experimental/connections/index.d.ts +1 -0
- package/dist/src/public/experimental/connections/index.js +1 -0
- package/dist/src/public/experimental/schedules/client.js +1 -1
- package/dist/src/public/hooks/index.d.ts +4 -3
- package/dist/src/public/index.d.ts +3 -2
- package/dist/src/public/instructions/index.d.ts +2 -2
- package/dist/src/public/instrumentation/index.d.ts +9 -28
- package/dist/src/public/instrumentation/index.js +1 -1
- package/dist/src/public/instrumentation/otel.d.ts +1 -1
- package/dist/src/public/instrumentation/otel.js +1 -1
- package/dist/src/public/instrumentation/provider.d.ts +1 -1
- package/dist/src/public/instrumentation/provider.js +1 -1
- package/dist/src/public/local-dev.d.ts +3 -1
- package/dist/src/public/memory/file/backend.d.ts +1 -1
- package/dist/src/public/memory/file/backends/in-memory.js +1 -1
- package/dist/src/public/memory/file/backends/vercel-blob.js +1 -1
- package/dist/src/public/memory/file/provider.js +1 -1
- package/dist/src/public/memory/index.d.ts +14 -20
- package/dist/src/public/models/index.d.ts +3 -0
- package/dist/src/public/models/index.js +1 -1
- package/dist/src/public/models/openai/index.d.ts +0 -2
- package/dist/src/public/models/openai/index.js +1 -1
- package/dist/src/public/next/index.d.ts +5 -36
- package/dist/src/public/next/index.js +1 -1
- package/dist/src/public/nuxt/index.d.ts +1 -1
- package/dist/src/public/nuxt/module.d.ts +5 -2
- package/dist/src/public/nuxt/module.js +1 -1
- package/dist/src/public/sandbox/index.d.ts +1 -1
- package/dist/src/public/sandbox/vercel-sandbox.d.ts +52 -12
- package/dist/src/public/sandbox/vercel.d.ts +1 -1
- package/dist/src/public/schedules/subscription.d.ts +5 -8
- package/dist/src/public/server/index.d.ts +2 -14
- package/dist/src/public/server/index.js +1 -1
- package/dist/src/public/sessions/index.d.ts +6 -0
- package/dist/src/public/sessions/index.js +1 -0
- package/dist/src/public/skills/index.d.ts +2 -2
- package/dist/src/public/skills/index.js +1 -1
- package/dist/src/public/sveltekit/routing.d.ts +0 -4
- package/dist/src/public/sveltekit/routing.js +1 -1
- package/dist/src/public/tools/approval/index.d.ts +1 -1
- package/dist/src/public/tools/bash.d.ts +1 -1
- package/dist/src/public/tools/bash.js +1 -1
- package/dist/src/public/tools/glob.d.ts +1 -1
- package/dist/src/public/tools/glob.js +1 -1
- package/dist/src/public/tools/grep.d.ts +1 -1
- package/dist/src/public/tools/grep.js +1 -1
- package/dist/src/public/tools/index.d.ts +5 -9
- package/dist/src/public/tools/index.js +1 -1
- package/dist/src/public/tools/read-file.d.ts +1 -1
- package/dist/src/public/tools/read-file.js +1 -1
- package/dist/src/public/tools/result.d.ts +17 -9
- package/dist/src/public/tools/result.js +1 -1
- package/dist/src/public/tools/web-fetch.d.ts +1 -1
- package/dist/src/public/tools/web-fetch.js +1 -1
- package/dist/src/public/tools/web-search.d.ts +1 -3
- package/dist/src/public/tools/web-search.js +1 -1
- package/dist/src/public/tools/write-file.d.ts +1 -1
- package/dist/src/public/tools/write-file.js +1 -1
- package/dist/src/public/workflow-modules.d.ts +8 -2
- package/dist/src/react/index.d.ts +4 -7
- package/dist/src/react/index.js +1 -1
- package/dist/src/react/use-eve-agent.d.ts +68 -50
- package/dist/src/react/use-eve-agent.js +1 -1
- package/dist/src/reactions/bundle.d.ts +4 -0
- package/dist/src/reactions/bundle.js +1 -0
- package/dist/src/reactions/frame.d.ts +13 -0
- package/dist/src/reactions/frame.js +1 -0
- package/dist/src/reactions/intents.d.ts +22 -0
- package/dist/src/reactions/intents.js +1 -0
- package/dist/src/reactions/kinds/connection.d.ts +18 -0
- package/dist/src/reactions/kinds/connection.js +1 -0
- package/dist/src/reactions/kinds/hook.d.ts +8 -0
- package/dist/src/reactions/kinds/hook.js +1 -0
- package/dist/src/reactions/kinds/instructions.d.ts +21 -0
- package/dist/src/reactions/kinds/instructions.js +1 -0
- package/dist/src/reactions/kinds/memory.d.ts +72 -0
- package/dist/src/reactions/kinds/memory.js +1 -0
- package/dist/src/reactions/kinds/model.d.ts +21 -0
- package/dist/src/reactions/kinds/model.js +1 -0
- package/dist/src/reactions/kinds/skill.d.ts +27 -0
- package/dist/src/reactions/kinds/skill.js +1 -0
- package/dist/src/reactions/kinds/subagent.d.ts +16 -0
- package/dist/src/reactions/kinds/subagent.js +1 -0
- package/dist/src/reactions/kinds/tool.d.ts +16 -0
- package/dist/src/reactions/kinds/tool.js +1 -0
- package/dist/src/reactions/policy.d.ts +13 -0
- package/dist/src/reactions/policy.js +1 -0
- package/dist/src/reactions/reaction.d.ts +83 -0
- package/dist/src/reactions/reaction.js +1 -0
- package/dist/src/reactions/records.d.ts +40 -0
- package/dist/src/reactions/records.js +1 -0
- package/dist/src/reactions/remote.d.ts +25 -0
- package/dist/src/reactions/remote.js +1 -0
- package/dist/src/reactions/runner.d.ts +45 -0
- package/dist/src/reactions/runner.js +1 -0
- package/dist/src/reactions/state.d.ts +102 -0
- package/dist/src/reactions/state.js +1 -0
- package/dist/src/reactions/turn.d.ts +12 -0
- package/dist/src/reactions/turn.js +2 -0
- package/dist/src/runtime/agent/bootstrap.d.ts +1 -3
- package/dist/src/runtime/agent/mock-model-adapter.js +1 -1
- package/dist/src/runtime/agent/resolve-model.d.ts +3 -4
- package/dist/src/runtime/agent/resolve-model.js +1 -1
- package/dist/src/runtime/connections/principal.d.ts +2 -0
- package/dist/src/runtime/connections/principal.js +1 -1
- package/dist/src/runtime/connections/registry.d.ts +2 -2
- package/dist/src/runtime/connections/registry.js +1 -1
- package/dist/src/runtime/connections/scoped-authorization.d.ts +8 -1
- package/dist/src/runtime/connections/scoped-authorization.js +1 -1
- package/dist/src/runtime/graph.d.ts +0 -6
- package/dist/src/runtime/loaders/artifact-paths.d.ts +1 -0
- package/dist/src/runtime/loaders/artifact-paths.js +1 -1
- package/dist/src/runtime/loaders/bundled-artifacts.d.ts +2 -0
- package/dist/src/runtime/loaders/bundled-artifacts.js +1 -1
- package/dist/src/runtime/loaders/model-metadata.d.ts +4 -0
- package/dist/src/runtime/loaders/model-metadata.js +1 -0
- package/dist/src/runtime/local-dev-capability.d.ts +2 -3
- package/dist/src/runtime/local-dev-capability.js +1 -1
- package/dist/src/runtime/resolve-agent-graph.js +1 -1
- package/dist/src/runtime/resolve-agent.js +1 -1
- package/dist/src/runtime/resolve-connection.js +1 -1
- package/dist/src/runtime/resolve-dynamic.d.ts +9 -0
- package/dist/src/runtime/resolve-dynamic.js +1 -0
- package/dist/src/runtime/resolve-hook.js +1 -1
- package/dist/src/runtime/resolve-memory.js +1 -1
- package/dist/src/runtime/resolve-tool.js +1 -1
- package/dist/src/runtime/schedules/collection-client.js +1 -1
- package/dist/src/runtime/schedules/dispatch-occurrence.js +1 -1
- package/dist/src/runtime/sessions/compiled-agent-cache.d.ts +3 -2
- package/dist/src/runtime/sessions/compiled-agent-cache.js +1 -1
- package/dist/src/runtime/subagents/dynamic-agent-config.d.ts +2 -2
- package/dist/src/runtime/subagents/dynamic-agent-config.js +1 -1
- package/dist/src/runtime/subagents/dynamic-remote-agent-config.d.ts +16 -3
- package/dist/src/runtime/subagents/dynamic-remote-agent-config.js +1 -1
- package/dist/src/runtime/subagents/workflow.js +1 -1
- package/dist/src/runtime/types.d.ts +22 -39
- package/dist/src/sandbox/provider.d.ts +5 -3
- package/dist/src/sandbox/providers/default.d.ts +4 -2
- package/dist/src/sandbox/providers/default.js +1 -1
- package/dist/src/self-modification/agent.d.ts +3 -3
- package/dist/src/self-modification/agent.js +1 -1
- package/dist/src/self-modification/config.d.ts +1 -1
- package/dist/src/self-modification/config.js +1 -1
- package/dist/src/self-modification/deployed-sandbox.js +1 -1
- package/dist/src/self-modification/extension/extension.d.ts +1 -0
- package/dist/src/self-modification/extension/local-only.d.ts +1 -1
- package/dist/src/self-modification/extension/local-only.js +1 -1
- package/dist/src/self-modification/extension/subagents/agent/agent.d.ts +15 -4
- package/dist/src/self-modification/extension/subagents/agent/agent.js +1 -1
- package/dist/src/self-modification/extension/subagents/agent/instructions.d.ts +1 -1
- package/dist/src/self-modification/extension/subagents/agent/instructions.js +2 -2
- package/dist/src/self-modification/extension/subagents/agent/sandbox.d.ts +2 -2
- package/dist/src/self-modification/extension/subagents/agent/sandbox.js +1 -1
- package/dist/src/self-modification/extension/subagents/agent/skills/trace_analysis.d.ts +3 -3
- package/dist/src/self-modification/extension/subagents/agent/skills/trace_analysis.js +1 -1
- package/dist/src/self-modification/extension/subagents/agent/tools/inspect_trace.d.ts +1 -1
- package/dist/src/self-modification/extension/subagents/agent/tools/inspect_trace_spans.d.ts +1 -1
- package/dist/src/self-modification/extension/subagents/agent/tools/registry_add.d.ts +1 -1
- package/dist/src/self-modification/extension/subagents/agent/tools/search_traces.d.ts +1 -1
- package/dist/src/self-modification/mode.d.ts +8 -0
- package/dist/src/self-modification/mode.js +1 -1
- package/dist/src/self-modification/remote/config.d.ts +3 -6
- package/dist/src/self-modification/remote/extension.d.ts +1 -0
- package/dist/src/self-modification/remote/production-registry-add.js +1 -1
- package/dist/src/self-modification/remote/subagents/agent/agent.d.ts +6 -3
- package/dist/src/self-modification/remote/subagents/agent/agent.js +1 -1
- package/dist/src/self-modification/remote/subagents/agent/instructions.d.ts +1 -1
- package/dist/src/self-modification/remote/subagents/agent/instructions.js +2 -2
- package/dist/src/self-modification/remote/subagents/agent/tools/publish.d.ts +1 -3
- package/dist/src/self-modification/remote/subagents/agent/tools/publish.js +1 -1
- package/dist/src/self-modification/remote/subagents/agent/tools/registry_add.d.ts +1 -3
- package/dist/src/self-modification/remote/subagents/agent/tools/registry_add.js +1 -1
- package/dist/src/self-modification/scaffold.js +1 -1
- package/dist/src/self-modification/setup.js +3 -6
- package/dist/src/services/dev-client/client-options.js +1 -1
- package/dist/src/services/dev-client.d.ts +4 -4
- package/dist/src/services/dev-client.js +1 -1
- package/dist/src/setup/flows/model-source-change.js +1 -1
- package/dist/src/setup/integrations/self-modification/setup.d.ts +1 -4
- package/dist/src/setup/integrations/self-modification/setup.js +1 -1
- package/dist/src/setup/scaffold/create/project.js +1 -1
- package/dist/src/setup/scaffold/create/web-template.d.ts +9 -18
- package/dist/src/setup/scaffold/create/web-template.js +1015 -2537
- package/dist/src/setup/verified-remote-agent.js +1 -1
- package/dist/src/shared/action-label.d.ts +5 -3
- package/dist/src/shared/action-label.js +1 -1
- package/dist/src/shared/action-types.d.ts +5 -0
- package/dist/src/shared/action-types.js +1 -1
- package/dist/src/shared/agent-definition.d.ts +14 -10
- package/dist/src/shared/answers-delivery-id.d.ts +1 -0
- package/dist/src/shared/answers-delivery-id.js +1 -0
- package/dist/src/shared/channel-context.d.ts +12 -0
- package/dist/src/shared/channel-context.js +1 -0
- package/dist/src/shared/channel-definition.d.ts +19 -26
- package/dist/src/shared/channel-delivery.d.ts +16 -0
- package/dist/src/shared/channel-delivery.js +1 -0
- package/dist/src/shared/connection-events.d.ts +2 -2
- package/dist/src/shared/connection-types.d.ts +7 -32
- package/dist/src/shared/conversation-context.d.ts +4 -13
- package/dist/src/shared/delivery.d.ts +38 -0
- package/dist/src/shared/delivery.js +1 -0
- package/dist/src/shared/history-message.d.ts +190 -0
- package/dist/src/shared/history-message.js +1 -0
- package/dist/src/shared/input.d.ts +23 -97
- package/dist/src/shared/input.js +1 -1
- package/dist/src/shared/instructions-definition.d.ts +2 -8
- package/dist/src/shared/instrumentation-channel-kind.d.ts +1 -1
- package/dist/src/shared/instrumentation-channel.d.ts +12 -0
- package/dist/src/shared/instrumentation-channel.js +1 -0
- package/dist/src/shared/json.d.ts +2 -18
- package/dist/src/shared/memory-state.d.ts +4 -40
- package/dist/src/shared/memory-state.js +1 -1
- package/dist/src/shared/message-content.d.ts +19 -0
- package/dist/src/shared/message-content.js +1 -0
- package/dist/src/shared/network-address.d.ts +9 -0
- package/dist/src/shared/network-address.js +1 -1
- package/dist/src/shared/sandbox-environment.d.ts +2 -2
- package/dist/src/shared/sandbox-provider.d.ts +1 -1
- package/dist/src/shared/sandbox-session.d.ts +64 -85
- package/dist/src/shared/schedule-definition.d.ts +5 -5
- package/dist/src/shared/serialized-observability-state.d.ts +0 -2
- package/dist/src/shared/serialized-observability-state.js +1 -1
- package/dist/src/shared/session-history.d.ts +2 -2
- package/dist/src/shared/session.d.ts +22 -0
- package/dist/src/shared/session.js +1 -0
- package/dist/src/shared/skill-definition.d.ts +1 -1
- package/dist/src/shared/skill-package.d.ts +2 -2
- package/dist/src/shared/skill-package.js +1 -1
- package/dist/src/shared/token-usage-math.d.ts +5 -0
- package/dist/src/shared/token-usage-math.js +1 -0
- package/dist/src/shared/token-usage.d.ts +0 -2
- package/dist/src/shared/token-usage.js +1 -1
- package/dist/src/shared/validate-authorization.js +1 -1
- package/dist/src/shared/wait-with-signal.d.ts +2 -0
- package/dist/src/shared/wait-with-signal.js +1 -0
- package/dist/src/subagents/adapter.d.ts +3 -5
- package/dist/src/subagents/adapter.js +1 -1
- package/dist/src/subagents/callback-route.js +1 -1
- package/dist/src/subagents/event-proxy-step.d.ts +6 -9
- package/dist/src/subagents/event-proxy-step.js +1 -1
- package/dist/src/subagents/hitl-proxy.d.ts +11 -23
- package/dist/src/subagents/hitl-proxy.js +1 -1
- package/dist/src/subagents/invocation.d.ts +8 -8
- package/dist/src/subagents/invocation.js +2 -2
- package/dist/src/subagents/parent-notification.d.ts +5 -0
- package/dist/src/subagents/parent-notification.js +1 -1
- package/dist/src/subagents/protocol-two-callback.d.ts +27 -0
- package/dist/src/subagents/protocol-two-callback.js +1 -0
- package/dist/src/svelte/index.d.ts +3 -6
- package/dist/src/svelte/index.js +2 -39
- package/dist/src/svelte/use-eve-agent.d.ts +67 -56
- package/dist/src/svelte/use-eve-agent.js +1 -1
- package/dist/src/tool-stubs/rules.js +1 -1
- package/dist/src/tools/approval/policies.d.ts +4 -16
- package/dist/src/tools/approval/policies.js +1 -1
- package/dist/src/tools/auth.d.ts +3 -3
- package/dist/src/tools/definition.d.ts +13 -35
- package/dist/src/tools/definition.js +1 -1
- package/dist/src/tools/dynamic.d.ts +13 -72
- package/dist/src/tools/dynamic.js +1 -1
- package/dist/src/tools/framework/agent.js +1 -1
- package/dist/src/tools/provided/ask-question-workflow.d.ts +3 -3
- package/dist/src/tools/provided/ask-question-workflow.js +1 -1
- package/dist/src/tools/provided/ask-question.d.ts +2 -2
- package/dist/src/tools/provided/ask-question.js +1 -1
- package/dist/src/tools/provided/grep.d.ts +2 -15
- package/dist/src/tools/provided/grep.js +1 -2
- package/dist/src/tools/provided/no-reply.d.ts +2 -2
- package/dist/src/tools/provided/no-reply.js +1 -1
- package/dist/src/tools/provided/sleep-workflow.js +1 -1
- package/dist/src/tools/provided/sleep.d.ts +2 -2
- package/dist/src/tools/provided/sleep.js +1 -1
- package/dist/src/tools/provided/workflow.js +1 -1
- package/dist/src/tools/workflow-definition.d.ts +17 -15
- package/dist/src/tracing/eve/agent-approval-instrumentation.d.ts +1 -1
- package/dist/src/tracing/eve/agent-approval-instrumentation.js +1 -1
- package/dist/src/tracing/eve/agent-channel-delivery-instrumentation.d.ts +2 -2
- package/dist/src/tracing/eve/agent-channel-delivery-instrumentation.js +1 -1
- package/dist/src/tracing/eve/agent-invocation-coordinator.d.ts +2 -2
- package/dist/src/tracing/eve/agent-otel-provider.js +1 -1
- package/dist/src/tracing/eve/agent-tool-instrumentation.d.ts +6 -7
- package/dist/src/tracing/eve/agent-tool-instrumentation.js +1 -1
- package/dist/src/tracing/eve/agent-trace-context-store.d.ts +3 -3
- package/dist/src/tracing/eve/agent-trace-state.d.ts +1 -6
- package/dist/src/tracing/eve/delegation.d.ts +4 -4
- package/dist/src/tracing/eve/install-instrumentation-runtime.js +1 -1
- package/dist/src/tracing/eve/invoke-tool-span.d.ts +3 -2
- package/dist/src/tracing/eve/invoke-tool-span.js +1 -1
- package/dist/src/tracing/eve/otel-declaration.d.ts +9 -10
- package/dist/src/tracing/eve/otel-declaration.js +1 -1
- package/dist/src/tracing/eve/policy.d.ts +2 -2
- package/dist/src/tracing/eve/policy.js +1 -1
- package/dist/src/tracing/eve/session.d.ts +4 -3
- package/dist/src/tracing/eve/session.js +1 -1
- package/dist/src/vue/index.d.ts +3 -6
- package/dist/src/vue/index.js +2 -39
- package/dist/src/vue/use-eve-agent.d.ts +70 -59
- package/dist/src/vue/use-eve-agent.js +1 -1
- package/docs/agent-config.md +41 -44
- package/docs/channels/chat-sdk.mdx +19 -13
- package/docs/channels/custom.mdx +106 -85
- package/docs/channels/discord.mdx +12 -12
- package/docs/channels/eve.mdx +48 -15
- package/docs/channels/github.mdx +2 -2
- package/docs/channels/linear.mdx +8 -8
- package/docs/channels/linq.mdx +1 -1
- package/docs/channels/mcp.mdx +2 -2
- package/docs/channels/overview.mdx +11 -1
- package/docs/channels/photon.mdx +1 -1
- package/docs/channels/slack.mdx +64 -57
- package/docs/channels/teams.mdx +4 -4
- package/docs/channels/telegram.mdx +1 -1
- package/docs/channels/twilio.mdx +2 -2
- package/docs/code-extension.mdx +19 -7
- package/docs/concepts/built-in-tools.md +21 -9
- package/docs/concepts/context-control.md +5 -8
- package/docs/concepts/default-harness.md +13 -8
- package/docs/concepts/execution-model-and-durability.mdx +119 -12
- package/docs/concepts/meta.json +1 -0
- package/docs/concepts/sessions-runs-and-streaming.md +244 -138
- package/docs/concepts/state.md +1 -1
- package/docs/concepts/upgrade-to-v27-events.md +128 -0
- package/docs/connections/mcp.mdx +38 -34
- package/docs/connections/openapi.mdx +23 -2
- package/docs/connections/overview.mdx +66 -57
- package/docs/evals/assertions.mdx +30 -24
- package/docs/evals/cases.mdx +19 -24
- package/docs/evals/judge.mdx +15 -2
- package/docs/evals/overview.mdx +7 -7
- package/docs/evals/reporters.mdx +15 -11
- package/docs/evals/targets.mdx +5 -3
- package/docs/evals/tool-stubs.mdx +2 -2
- package/docs/extensions.md +6 -3
- package/docs/guides/client/continuations.mdx +10 -10
- package/docs/guides/client/messages.mdx +50 -48
- package/docs/guides/client/output-schema.mdx +13 -13
- package/docs/guides/client/overview.mdx +35 -13
- package/docs/guides/client/streaming.mdx +160 -123
- package/docs/guides/decide.md +15 -9
- package/docs/guides/deployment/self-hosting.md +5 -40
- package/docs/guides/dynamic-capabilities.md +151 -406
- package/docs/guides/frontend/nextjs.mdx +1 -1
- package/docs/guides/frontend/nuxt.mdx +2 -2
- package/docs/guides/frontend/overview.mdx +257 -181
- package/docs/guides/frontend/sveltekit.mdx +4 -4
- package/docs/guides/frontend/tanstack.mdx +5 -5
- package/docs/guides/frontend/use-eve-agent-svelte.mdx +30 -38
- package/docs/guides/frontend/use-eve-agent-vue.mdx +35 -36
- package/docs/guides/hooks.md +67 -55
- package/docs/guides/instrumentation/instrumentation.mdx +33 -27
- package/docs/guides/instrumentation/otel.mdx +4 -2
- package/docs/guides/remote-agents.md +116 -50
- package/docs/guides/self-modification.md +11 -7
- package/docs/instructions.mdx +4 -6
- package/docs/memory/custom-provider.md +63 -56
- package/docs/memory/file.md +1 -1
- package/docs/memory/overview.mdx +10 -18
- package/docs/patterns/durable-cross-channel-notifications.md +4 -3
- package/docs/patterns/multi-tenant-approvals.md +3 -3
- package/docs/patterns/multi-tenant-auth.md +3 -3
- package/docs/patterns/multi-tenant-memory.md +6 -7
- package/docs/patterns/voice-notes.md +1 -1
- package/docs/reference/cli.md +9 -25
- package/docs/reference/typescript-api.md +85 -60
- package/docs/sandbox/custom-providers.mdx +13 -14
- package/docs/sandbox/default.mdx +1 -1
- package/docs/sandbox/docker.mdx +10 -0
- package/docs/sandbox/index.mdx +5 -1
- package/docs/sandbox/vercel.mdx +6 -6
- package/docs/schedules.mdx +4 -4
- package/docs/skills.mdx +6 -6
- package/docs/subagents/index.mdx +25 -34
- package/docs/tools/human-in-the-loop.md +42 -34
- package/docs/tools/overview.mdx +14 -12
- package/docs/tools/tasks-upgrade.md +13 -1
- package/docs/tools/tasks.md +58 -89
- package/docs/tools/workflows.mdx +48 -33
- package/docs/tutorial/guard-the-spend.mdx +1 -1
- package/docs/tutorial/run-analysis.mdx +15 -12
- package/docs/tutorial/team-playbooks.mdx +19 -23
- package/package.json +147 -96
- package/dist/src/chunks/use-eve-agent-BE2_zd5q.js +0 -4968
- package/dist/src/chunks/use-eve-agent-e8a5vcFO.js +0 -4926
- package/dist/src/cli/invoke/command.d.ts +0 -19
- package/dist/src/cli/invoke/command.js +0 -1
- package/dist/src/cli/invoke/invoke.d.ts +0 -27
- package/dist/src/cli/invoke/invoke.js +0 -1
- package/dist/src/cli/invoke/result.d.ts +0 -137
- package/dist/src/cli/invoke/result.js +0 -1
- package/dist/src/client/agent-host.d.ts +0 -4
- package/dist/src/client/agent-host.js +0 -1
- package/dist/src/client/authorization-message-parts.d.ts +0 -4
- package/dist/src/client/authorization-message-parts.js +0 -1
- package/dist/src/client/conversation-projection.d.ts +0 -4
- package/dist/src/client/conversation-projection.js +0 -1
- package/dist/src/client/conversation-reducer.d.ts +0 -29
- package/dist/src/client/conversation-reducer.js +0 -1
- package/dist/src/client/eve-agent-projection.d.ts +0 -28
- package/dist/src/client/eve-agent-projection.js +0 -1
- package/dist/src/client/eve-agent-store-helpers.d.ts +0 -34
- package/dist/src/client/eve-agent-store-helpers.js +0 -2
- package/dist/src/client/eve-agent-store-state.d.ts +0 -96
- package/dist/src/client/eve-agent-store.d.ts +0 -45
- package/dist/src/client/eve-agent-store.js +0 -1
- package/dist/src/client/message-action-parts.d.ts +0 -37
- package/dist/src/client/message-action-parts.js +0 -1
- package/dist/src/client/message-reducer-primitives.d.ts +0 -6
- package/dist/src/client/message-reducer-primitives.js +0 -1
- package/dist/src/client/message-reducer-types.d.ts +0 -244
- package/dist/src/client/message-reducer.d.ts +0 -14
- package/dist/src/client/message-reducer.js +0 -1
- package/dist/src/client/message-response.d.ts +0 -74
- package/dist/src/client/message-response.js +0 -1
- package/dist/src/client/message-run-parts.d.ts +0 -22
- package/dist/src/client/message-run-parts.js +0 -1
- package/dist/src/client/output-schema.d.ts +0 -5
- package/dist/src/client/output-schema.js +0 -1
- package/dist/src/client/reducer.d.ts +0 -67
- package/dist/src/client/session-turn-dispatch.d.ts +0 -15
- package/dist/src/client/session-turn-dispatch.js +0 -1
- package/dist/src/client/tool-call-state.d.ts +0 -23
- package/dist/src/client/tool-call-state.js +0 -1
- package/dist/src/client/tool-part-state.d.ts +0 -7
- package/dist/src/client/tool-part-state.js +0 -1
- package/dist/src/client/transcript-reducer.d.ts +0 -49
- package/dist/src/client/transcript-reducer.js +0 -2
- package/dist/src/compiled/_chunks/node/token-Bedbhv5z.js +0 -1
- package/dist/src/compiled/_chunks/node/token-util-DpJNusVS.js +0 -1
- package/dist/src/compiled/_chunks/node/token-util-DwHQ2a3c.js +0 -1
- package/dist/src/compiled/_chunks/node/version-C__MqbLM.js +0 -1
- package/dist/src/context/build-dynamic-tools.d.ts +0 -10
- package/dist/src/context/build-dynamic-tools.js +0 -1
- package/dist/src/context/dynamic-connection-lifecycle.d.ts +0 -15
- package/dist/src/context/dynamic-connection-lifecycle.js +0 -1
- package/dist/src/context/dynamic-instruction-lifecycle.d.ts +0 -31
- package/dist/src/context/dynamic-instruction-lifecycle.js +0 -1
- package/dist/src/context/dynamic-model-lifecycle.d.ts +0 -19
- package/dist/src/context/dynamic-model-lifecycle.js +0 -1
- package/dist/src/context/dynamic-resolve-context.d.ts +0 -12
- package/dist/src/context/dynamic-resolve-context.js +0 -1
- package/dist/src/context/dynamic-skill-lifecycle.d.ts +0 -15
- package/dist/src/context/dynamic-skill-lifecycle.js +0 -1
- package/dist/src/context/dynamic-subagent-lifecycle.d.ts +0 -27
- package/dist/src/context/dynamic-subagent-lifecycle.js +0 -1
- package/dist/src/context/dynamic-tool-lifecycle.d.ts +0 -46
- package/dist/src/context/dynamic-tool-lifecycle.js +0 -1
- package/dist/src/context/dynamic-tool-metadata.d.ts +0 -47
- package/dist/src/context/dynamic-tool-metadata.js +0 -1
- package/dist/src/context/effective-model.d.ts +0 -5
- package/dist/src/context/effective-model.js +0 -1
- package/dist/src/context/hook-lifecycle.d.ts +0 -15
- package/dist/src/context/hook-lifecycle.js +0 -1
- package/dist/src/context/memory-event-lifecycle.d.ts +0 -15
- package/dist/src/context/memory-event-lifecycle.js +0 -1
- package/dist/src/context/memory-lifecycle.d.ts +0 -47
- package/dist/src/context/memory-lifecycle.js +0 -1
- package/dist/src/context/serialized-dynamic-model-selection.d.ts +0 -2
- package/dist/src/context/serialized-dynamic-model-selection.js +0 -1
- package/dist/src/execution/cancel-descendant-turns-step.d.ts +0 -6
- package/dist/src/execution/cancel-descendant-turns-step.js +0 -1
- package/dist/src/execution/dynamic-connection-recovery.d.ts +0 -14
- package/dist/src/execution/dynamic-connection-recovery.js +0 -1
- package/dist/src/execution/dynamic-connections.d.ts +0 -12
- package/dist/src/execution/dynamic-connections.js +0 -1
- package/dist/src/execution/history-view.d.ts +0 -10
- package/dist/src/execution/history-view.js +0 -1
- package/dist/src/execution/legacy-remote-agent/protocol.d.ts +0 -49
- package/dist/src/execution/legacy-remote-agent/protocol.js +0 -1
- package/dist/src/execution/runtime-errors.d.ts +0 -13
- package/dist/src/execution/runtime-errors.js +0 -1
- package/dist/src/execution/sandbox/grep-tool.d.ts +0 -26
- package/dist/src/execution/sandbox/grep-tool.js +0 -3
- package/dist/src/execution/session/turn-waiting-step.d.ts +0 -4
- package/dist/src/execution/session/turn-waiting-step.js +0 -1
- package/dist/src/execution/tools/workflow/cancel.d.ts +0 -13
- package/dist/src/execution/tools/workflow/cancel.js +0 -1
- package/dist/src/execution/workflow-trace-context.d.ts +0 -8
- package/dist/src/execution/workflow-trace-context.js +0 -1
- package/dist/src/extensions/code/extension/instructions/github.d.ts +0 -3
- package/dist/src/extensions/code/extension/instructions/github.js +0 -1
- package/dist/src/extensions/code/extension/lib/github-compat.d.ts +0 -28
- package/dist/src/extensions/code/extension/lib/github-compat.js +0 -1
- package/dist/src/extensions/code/extension/lib/grep-search.js +0 -6
- package/dist/src/extensions/code/extension/skills/pr.d.ts +0 -6
- package/dist/src/extensions/code/extension/skills/pr.js +0 -1
- package/dist/src/extensions/code/extension/tools/gh.d.ts +0 -28
- package/dist/src/extensions/code/extension/tools/gh.js +0 -1
- package/dist/src/harness/approval-recheck.d.ts +0 -7
- package/dist/src/harness/approval-recheck.js +0 -1
- package/dist/src/harness/authorization-event-fields.d.ts +0 -16
- package/dist/src/harness/authorization-event-fields.js +0 -1
- package/dist/src/harness/hitl/candidates.d.ts +0 -139
- package/dist/src/harness/hitl/candidates.js +0 -1
- package/dist/src/harness/hitl/coordinator.d.ts +0 -35
- package/dist/src/harness/hitl/coordinator.js +0 -1
- package/dist/src/harness/input-extraction.d.ts +0 -13
- package/dist/src/harness/input-extraction.js +0 -1
- package/dist/src/harness/input-request-class.d.ts +0 -3
- package/dist/src/harness/input-request-class.js +0 -1
- package/dist/src/harness/input-request-resolution.d.ts +0 -39
- package/dist/src/harness/input-request-resolution.js +0 -1
- package/dist/src/harness/open-input-request.d.ts +0 -8
- package/dist/src/harness/open-input-request.js +0 -1
- package/dist/src/harness/session-machine/events.d.ts +0 -6
- package/dist/src/harness/session-machine/events.js +0 -1
- package/dist/src/harness/session-machine/resolver-events.d.ts +0 -12
- package/dist/src/harness/session-machine/resolver-events.js +0 -1
- package/dist/src/harness/tool-call-action.d.ts +0 -9
- package/dist/src/harness/tool-call-action.js +0 -1
- package/dist/src/harness/tool-interrupts.d.ts +0 -22
- package/dist/src/harness/tool-interrupts.js +0 -1
- package/dist/src/harness/tool-presentation.d.ts +0 -5
- package/dist/src/harness/tool-presentation.js +0 -1
- package/dist/src/harness/turn-tag-state.d.ts +0 -115
- package/dist/src/harness/turn-tag-state.js +0 -1
- package/dist/src/internal/dynamic-tool-rebind.d.ts +0 -3
- package/dist/src/internal/dynamic-tool-rebind.js +0 -1
- package/dist/src/internal/nitro/host/extension-capability-requirements.d.ts +0 -14
- package/dist/src/internal/nitro/host/extension-capability-requirements.js +0 -1
- package/dist/src/internal/workflow-bundle/dynamic-capability-transform-plugin.d.ts +0 -12
- package/dist/src/internal/workflow-bundle/dynamic-capability-transform-plugin.js +0 -1
- package/dist/src/internal/workflow-bundle/dynamic-remote-agent-transform.d.ts +0 -7
- package/dist/src/internal/workflow-bundle/dynamic-remote-agent-transform.js +0 -3
- package/dist/src/internal/workflow-bundle/dynamic-tool-ast-references.d.ts +0 -79
- package/dist/src/internal/workflow-bundle/dynamic-tool-ast-references.js +0 -1
- package/dist/src/internal/workflow-bundle/dynamic-tool-transform.d.ts +0 -14
- package/dist/src/internal/workflow-bundle/dynamic-tool-transform.js +0 -3
- package/dist/src/protocol/event-dedupe.d.ts +0 -26
- package/dist/src/protocol/event-dedupe.js +0 -1
- package/dist/src/protocol/event-id.d.ts +0 -10
- package/dist/src/protocol/event-id.js +0 -1
- package/dist/src/protocol/message-version.d.ts +0 -53
- package/dist/src/protocol/message-version.js +0 -1
- package/dist/src/protocol/message.d.ts +0 -1198
- package/dist/src/protocol/message.js +0 -2
- package/dist/src/public/channels/chat-sdk/messageToUserContent.js +0 -1
- package/dist/src/public/channels/slack/input-response.js +0 -1
- package/dist/src/runtime/agent/model-catalog.d.ts +0 -10
- package/dist/src/runtime/agent/model-catalog.js +0 -1
- package/dist/src/runtime/hooks/registry.d.ts +0 -34
- package/dist/src/runtime/hooks/registry.js +0 -1
- package/dist/src/runtime/resolve-dynamic-connection.d.ts +0 -5
- package/dist/src/runtime/resolve-dynamic-connection.js +0 -1
- package/dist/src/runtime/resolve-dynamic-instructions.d.ts +0 -4
- package/dist/src/runtime/resolve-dynamic-instructions.js +0 -1
- package/dist/src/runtime/resolve-dynamic-skill.d.ts +0 -8
- package/dist/src/runtime/resolve-dynamic-skill.js +0 -1
- package/dist/src/runtime/resolve-dynamic-subagent.d.ts +0 -9
- package/dist/src/runtime/resolve-dynamic-subagent.js +0 -1
- package/dist/src/runtime/resolve-dynamic-tool.d.ts +0 -12
- package/dist/src/runtime/resolve-dynamic-tool.js +0 -1
- package/dist/src/self-modification/migration.d.ts +0 -9
- package/dist/src/self-modification/migration.js +0 -28
- package/dist/src/shared/history-view.d.ts +0 -22
- package/dist/src/shared/history-view.js +0 -1
- package/dist/src/shared/package-version.d.ts +0 -2
- package/dist/src/shared/package-version.js +0 -1
- package/dist/src/tools/durable-callbacks.d.ts +0 -118
- package/dist/src/tools/durable-callbacks.js +0 -1
- package/dist/src/tools/durable-schema.d.ts +0 -16
- package/dist/src/tools/durable-schema.js +0 -1
- /package/dist/src/{client/eve-agent-store-state.js → ai/decision-types.js} +0 -0
- /package/dist/src/client/{message-reducer-types.js → agent-info-types.js} +0 -0
- /package/dist/src/client/{reducer.js → health-types.js} +0 -0
- /package/dist/src/{shared → protocol/session-projection}/display-name.d.ts +0 -0
- /package/dist/src/{shared → protocol/session-projection}/display-name.js +0 -0
|
@@ -1,14 +1,16 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { ChannelEventContext, ChannelEventOf, CommittedLine } from "#public/definitions/channel.js";
|
|
2
|
+
import type { SessionEvent } from "#protocol/session-event.js";
|
|
3
|
+
import type { MessageContent } from "#shared/message-content.js";
|
|
2
4
|
import type { ChannelResolveSession, ChannelSource } from "#channel/channel-operations.js";
|
|
3
|
-
import type {
|
|
5
|
+
import type { Delivery } from "#shared/delivery.js";
|
|
4
6
|
import type { SessionAuthContext, TurnPolicy } from "#channel/types.js";
|
|
5
7
|
import type { VercelConnectMetadata } from "#shared/vercel-connect-metadata.js";
|
|
6
|
-
import type { CardElement } from "#
|
|
8
|
+
import type { CardElement } from "#public/channels/slack/cards.js";
|
|
7
9
|
import type { SessionContext } from "#public/definitions/callback-context.js";
|
|
8
10
|
import type { SessionHistoryMessage } from "#shared/session-history.js";
|
|
9
11
|
import type { ChannelContinuationOps } from "#public/definitions/channel.js";
|
|
10
|
-
import type {
|
|
11
|
-
import type {
|
|
12
|
+
import type { Answer, StrictAnswers, ValidatedAnswer } from "#shared/input.js";
|
|
13
|
+
import type { Interaction } from "#channel/interaction-prompts.js";
|
|
12
14
|
import { type SlackBotToken, type SlackHandle, type SlackThread, type SlackWorkspaceHandle } from "#public/channels/slack/api.js";
|
|
13
15
|
import { type SlackTransportOptions } from "#public/channels/slack/transport.js";
|
|
14
16
|
import { type SlackRenderedEvent, type SlackRenderer } from "#public/channels/slack/renderers.js";
|
|
@@ -23,11 +25,6 @@ import { type UndeliveredReplyState } from "#public/channels/undelivered-reply.j
|
|
|
23
25
|
import { type Channel } from "#public/definitions/channel.js";
|
|
24
26
|
import { type ChannelAudience } from "#shared/channel-audience.js";
|
|
25
27
|
export type { SlackRespondOptions, SlackSendOptions, SlackSessionOperations, } from "#public/channels/slack/session-operations.js";
|
|
26
|
-
type EventData<T extends UnstampedMessageStreamEvent["type"]> = Extract<UnstampedMessageStreamEvent, {
|
|
27
|
-
type: T;
|
|
28
|
-
}> extends {
|
|
29
|
-
data: infer D;
|
|
30
|
-
} ? D : undefined;
|
|
31
28
|
/**
|
|
32
29
|
* Base Slack context for inbound webhook handlers. These hooks run before the
|
|
33
30
|
* runtime hydrates session state, so `state` is absent here.
|
|
@@ -58,9 +55,9 @@ export interface SlackEventContext extends SlackChannelContext, ChannelContinuat
|
|
|
58
55
|
}
|
|
59
56
|
export type { SlackApiResponse, SlackBotToken, SlackHandle, SlackThread, SlackWorkspaceHandle, } from "#public/channels/slack/api.js";
|
|
60
57
|
export type { SlackWebhookVerifier } from "#public/channels/slack/verify.js";
|
|
61
|
-
type SlackEventHandler<T extends
|
|
58
|
+
type SlackEventHandler<T extends SessionEvent["type"]> = (event: ChannelEventOf<T>, ctx: ChannelEventContext<SlackEventContext>) => void | Promise<void>;
|
|
62
59
|
/**
|
|
63
|
-
* Delivery surface handed to a renderer's `
|
|
60
|
+
* Delivery surface handed to a renderer's sign-in `interaction.opened` handler. The
|
|
64
61
|
* connection challenge is a credential: anyone who completes the sign-in
|
|
65
62
|
* binds their identity to this session's connection. So the only
|
|
66
63
|
* delivery capabilities here are private ones, an ephemeral reply in the
|
|
@@ -86,7 +83,6 @@ export interface SlackAuthorizationEventContext {
|
|
|
86
83
|
*/
|
|
87
84
|
readonly state: SlackChannelState;
|
|
88
85
|
}
|
|
89
|
-
type SlackSessionFailedHandler = (data: EventData<"session.failed">, channel: SlackEventContext) => void | Promise<void>;
|
|
90
86
|
/**
|
|
91
87
|
* JSON-serializable per-session state, stored verbatim across workflow
|
|
92
88
|
* step boundaries. Anything written here must round-trip through
|
|
@@ -122,8 +118,7 @@ export interface SlackChannelState extends UndeliveredReplyState {
|
|
|
122
118
|
*/
|
|
123
119
|
triggeringUserId?: string | null;
|
|
124
120
|
/**
|
|
125
|
-
* Buffered
|
|
126
|
-
* was `"tool-calls"`. The default `actions.requested` handler uses the
|
|
121
|
+
* Buffered narration from a `content.completed` event (`phase: "narration"`). The default `call.requested` handler uses the
|
|
127
122
|
* first non-empty line as the next typing indicator, surfacing the
|
|
128
123
|
* model's pre-tool narration instead of the action label. Cleared at
|
|
129
124
|
* `turn.started` and after use.
|
|
@@ -137,15 +132,15 @@ export interface SlackChannelState extends UndeliveredReplyState {
|
|
|
137
132
|
/**
|
|
138
133
|
* Connection name to Slack message ts. Each entry is the public
|
|
139
134
|
* link-free status post created by the default
|
|
140
|
-
* `
|
|
141
|
-
* `
|
|
135
|
+
* sign-in `interaction.opened` handler; the matching
|
|
136
|
+
* sign-in `interaction.settled` handler edits it in place to surface the
|
|
142
137
|
* resolution outcome.
|
|
143
138
|
*/
|
|
144
139
|
pendingAuthMessageTs?: Record<string, string>;
|
|
145
140
|
pendingApprovalCards?: Record<string, SlackPendingApprovalCard>;
|
|
146
141
|
/**
|
|
147
142
|
* Each recent turn's tool calls and the task card eve last wrote for it, by
|
|
148
|
-
* turn id. The default `turn.
|
|
143
|
+
* turn id. The default `turn.paused` handler names the working tasks.
|
|
149
144
|
*/
|
|
150
145
|
taskCards?: Record<string, SlackTaskCardState> | null;
|
|
151
146
|
/**
|
|
@@ -160,7 +155,7 @@ export interface SlackChannelState extends UndeliveredReplyState {
|
|
|
160
155
|
/**
|
|
161
156
|
* Principal id to Slack user id, recorded as each message or input response
|
|
162
157
|
* is delivered. Default handlers use it to address the principal named on
|
|
163
|
-
* `
|
|
158
|
+
* sign-in `interaction.opened` and approval events.
|
|
164
159
|
*/
|
|
165
160
|
slackUsersByPrincipal?: Record<string, string>;
|
|
166
161
|
/**
|
|
@@ -259,9 +254,9 @@ export interface SlackEventRespondOptions {
|
|
|
259
254
|
* Starts a session on the current Slack channel from `onEvent`. Call it zero,
|
|
260
255
|
* one, or many times; each invocation returns the resulting session.
|
|
261
256
|
*/
|
|
262
|
-
export type SlackEventSendFn = (message:
|
|
257
|
+
export type SlackEventSendFn = (message: MessageContent, options: SlackEventSendOptions) => Promise<Delivery>;
|
|
263
258
|
/** Answers pending input requests on one Slack thread. */
|
|
264
|
-
export type SlackEventRespondFn = <const TResponses extends readonly
|
|
259
|
+
export type SlackEventRespondFn = <const TResponses extends readonly Answer[]>(answers: StrictAnswers<TResponses>, options: SlackEventRespondOptions) => ReturnType<SlackSessionOperations["respond"]>;
|
|
265
260
|
/**
|
|
266
261
|
* Slack thread identity used by workspace-scoped inbound helpers.
|
|
267
262
|
*/
|
|
@@ -337,8 +332,8 @@ export interface SlackSlashCommandContext {
|
|
|
337
332
|
/** Slack workspace identity and raw Web API escape hatch. */
|
|
338
333
|
readonly slack: SlackWorkspaceHandle;
|
|
339
334
|
}
|
|
340
|
-
/** Context handed to `slackChannel({
|
|
341
|
-
export interface
|
|
335
|
+
/** Context handed to `slackChannel({ onAnswers })` before eve resumes HITL. */
|
|
336
|
+
export interface SlackAnswerContext extends SlackContext {
|
|
342
337
|
/** Auth derived from the Slack user who submitted the signed interaction. */
|
|
343
338
|
readonly defaultAuth: SessionAuthContext;
|
|
344
339
|
}
|
|
@@ -425,20 +420,20 @@ export type SlackShortcut = {
|
|
|
425
420
|
readonly teamId?: string;
|
|
426
421
|
};
|
|
427
422
|
/** Decoded eve-owned HITL response submitted through Slack interactivity. */
|
|
428
|
-
export type
|
|
423
|
+
export type SlackAnswerSubmission = {
|
|
429
424
|
readonly type: "block_actions";
|
|
430
|
-
readonly
|
|
425
|
+
readonly answers: readonly ValidatedAnswer[];
|
|
431
426
|
readonly actions: readonly SlackInteractionAction[];
|
|
432
427
|
readonly messageTs?: string;
|
|
433
428
|
readonly user: SlackInteractionUser;
|
|
434
429
|
} | {
|
|
435
430
|
readonly type: "view_submission";
|
|
436
|
-
readonly
|
|
431
|
+
readonly answers: readonly ValidatedAnswer[];
|
|
437
432
|
readonly messageTs: string;
|
|
438
433
|
readonly user: SlackInteractionUser;
|
|
439
434
|
};
|
|
440
435
|
/** Result of a Slack HITL response admission hook. Return `null` to reject. */
|
|
441
|
-
export type
|
|
436
|
+
export type SlackAnswerResult = {
|
|
442
437
|
readonly auth: SessionAuthContext | null;
|
|
443
438
|
} | null;
|
|
444
439
|
/**
|
|
@@ -456,28 +451,26 @@ export type SlackMentionResult = {
|
|
|
456
451
|
readonly history?: readonly SessionHistoryMessage[];
|
|
457
452
|
readonly title?: string;
|
|
458
453
|
} | null;
|
|
459
|
-
export type SlackMentionResultOrPromise = SlackMentionResult | Promise<SlackMentionResult>;
|
|
460
454
|
/**
|
|
461
455
|
* Alias of {@link SlackMentionResult} for the `onDirectMessage` signature,
|
|
462
456
|
* so DM handlers do not read in terms of "mention".
|
|
463
457
|
*/
|
|
464
458
|
export type SlackInboundResult = SlackMentionResult;
|
|
465
459
|
/** {@link SlackInboundResult}, or a promise resolving to one. */
|
|
466
|
-
export type SlackInboundResultOrPromise = SlackMentionResultOrPromise;
|
|
467
460
|
/**
|
|
468
461
|
* eve's full-context Slack event handlers: the innermost link of every
|
|
469
|
-
* channel's renderer chain. The default `
|
|
462
|
+
* channel's renderer chain. The default sign-in `interaction.opened` handler keeps
|
|
470
463
|
* the full {@link SlackEventContext} because it owns the public link-free
|
|
471
464
|
* status, which authored renderers, limited to private delivery, can't post.
|
|
472
465
|
*/
|
|
473
466
|
export type SlackChannelInternalEvents = {
|
|
474
|
-
readonly [T in
|
|
467
|
+
readonly [T in SlackRenderedEvent]?: SlackEventHandler<T>;
|
|
475
468
|
} & {
|
|
476
|
-
readonly "
|
|
469
|
+
readonly committed?: (line: CommittedLine, ctx: Parameters<SlackEventHandler<"turn.started">>[1]) => void | Promise<void>;
|
|
477
470
|
};
|
|
478
471
|
export type SlackApprovalChannel = "direct-message" | "thread";
|
|
479
472
|
/** Input request passed to a {@link SlackApprovalChannelResolver}. */
|
|
480
|
-
export type SlackApprovalRequest =
|
|
473
|
+
export type SlackApprovalRequest = Interaction;
|
|
481
474
|
/** Chooses the Slack destination for one input request. */
|
|
482
475
|
export type SlackApprovalChannelResolver = (request: SlackApprovalRequest, ctx: SessionContext) => SlackApprovalChannel | Promise<SlackApprovalChannel>;
|
|
483
476
|
export interface SlackChannelConfig {
|
|
@@ -517,7 +510,7 @@ export interface SlackChannelConfig {
|
|
|
517
510
|
* `onDirectMessage` handlers take precedence for their event types. Other
|
|
518
511
|
* channel messages are ignored when this hook is omitted.
|
|
519
512
|
*/
|
|
520
|
-
onMessage?(ctx: SlackInboundMessageContext, message: SlackMessage):
|
|
513
|
+
onMessage?(ctx: SlackInboundMessageContext, message: SlackMessage): SlackMentionResult | Promise<SlackMentionResult>;
|
|
521
514
|
/**
|
|
522
515
|
* Invoked when a Slack `app_mention` event arrives (only `app_mention`;
|
|
523
516
|
* other event types are ignored). Decides whether to dispatch and with
|
|
@@ -529,7 +522,7 @@ export interface SlackChannelConfig {
|
|
|
529
522
|
* dispatching. Thrown errors are caught and logged and the mention is
|
|
530
523
|
* dropped. Defaults to a workspace-scoped auth derivation.
|
|
531
524
|
*/
|
|
532
|
-
onAppMention?(ctx: SlackInboundMessageContext, message: SlackMessage):
|
|
525
|
+
onAppMention?(ctx: SlackInboundMessageContext, message: SlackMessage): SlackMentionResult | Promise<SlackMentionResult>;
|
|
533
526
|
/**
|
|
534
527
|
* Invoked on a direct message: a Slack `message` event with
|
|
535
528
|
* `channel_type: "im"`. Subtype messages (edits, deletes, joins, etc.)
|
|
@@ -545,7 +538,7 @@ export interface SlackChannelConfig {
|
|
|
545
538
|
* Requires the bot's Slack app to subscribe to `message.im` with the
|
|
546
539
|
* `im:history` scope.
|
|
547
540
|
*/
|
|
548
|
-
onDirectMessage?(ctx: SlackInboundMessageContext, message: SlackMessage):
|
|
541
|
+
onDirectMessage?(ctx: SlackInboundMessageContext, message: SlackMessage): SlackMentionResult | Promise<SlackMentionResult>;
|
|
549
542
|
/**
|
|
550
543
|
* Fallback handler for signed Slack Events API callbacks. An authored
|
|
551
544
|
* `onAppMention` or `onDirectMessage` takes precedence for events accepted
|
|
@@ -608,7 +601,7 @@ export interface SlackChannelConfig {
|
|
|
608
601
|
* accepts the response with the submitting user's auth, regardless of other
|
|
609
602
|
* authored handlers.
|
|
610
603
|
*/
|
|
611
|
-
|
|
604
|
+
onAnswers?(ctx: SlackAnswerContext, submission: SlackAnswerSubmission): SlackAnswerResult | Promise<SlackAnswerResult>;
|
|
612
605
|
/**
|
|
613
606
|
* Renderers that wrap eve's default Slack rendering, outermost first. Omit
|
|
614
607
|
* it and eve renders with its default alone. Each renderer can acknowledge
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{markEventHandled}from"./utils.js";import{attachInputText}from"#internal/input-text.js";import{createLogger,logError}from"#internal/logging.js";import{normalizeChannelAudience}from"#shared/channel-audience.js";import{setChannelBuildMetadata}from"#channel/compiled-channel.js";import{defaultDeliverResult}from"#channel/adapter.js";import{POST,defineChannel}from"#public/definitions/channel.js";import{mergeUploadPolicy}from"#public/channels/upload-policy.js";import{maxBytesOf}from"#internal/attachments/limited-read.js";import{withUndeliveredReplyNote}from"#public/channels/undelivered-reply.js";import{resolveSlackTransportOptions}from"#public/channels/slack/transport.js";import{buildSlackAuthContext,slackUserIdFromAuthContext}from"#public/channels/slack/auth.js";import{buildSlackBinding,buildSlackWorkspaceHandle,fetchSlackThreadWindow,slackContinuationToken}from"#public/channels/slack/api.js";import{parseMessageEvent,parseSlackEventEnvelope,slackEventBotUserId,slackEventInstallationTeamId,slackEventReceivingBotUserId,slackMessageFromWebhookPayload}from"#public/channels/slack/inbound.js";import{defaultInputRequestedHandler}from"#public/channels/slack/approval-cards.js";import{withFinalReplyDelivery}from"#public/channels/slack/reply-delivery.js";import{defaultEvents,defaultOnMessage,defaultReceived}from"#public/channels/slack/defaults.js";import{composeSlackRenderers}from"#public/channels/slack/renderers.js";import{loadThreadContextMessages}from"#public/channels/slack/thread.js";import{parseSlackWebhookBody}from"#compiled/@chat-adapter/slack/webhook.js";import{bindSlackSessionOperations,withSlackResponder}from"#public/channels/slack/session-operations.js";import{buildSlackTurnMessage,collectInboundFileParts,createSlackFetchFile}from"#public/channels/slack/attachments.js";import{renderDefaultSlackTaskCard,withTaskCards}from"#public/channels/slack/task-card.js";import{formatSlackInboundMessage,formatSlackThreadContext,slackThreadSessionHistory}from"#public/channels/slack/model-context.js";import{isPrivateSlackConversation}from"#public/channels/slack/privacy.js";import{SLACK_CHANNEL_DEFAULT_ROUTE}from"#public/channels/slack/constants.js";import{defineSlackAppManifest}from"#public/channels/slack/app-manifest.js";import{handleInteractionPost}from"#public/channels/slack/interactions.js";import{verifySlackRequest as verifySlackRequest$1}from"#public/channels/slack/verify.js";const log=createLogger(`slack.channel`);function rebuildSlackContext(e,t,n,r){let{thread:i,slack:a}=buildSlackBinding({api:n,botToken:r?.botToken,channelId:e.channelId??``,threadTs:e.threadTs??``,installationTeamId:e.installationTeamId??void 0,teamId:e.teamId??void 0,onThreadTsChanged(n){e.threadTs=n,e.channelId&&t.continuation?.alias(slackContinuationToken(e.channelId,n))},onPosted(){e.postedInThread=!0}});return{thread:i,slack:a,state:e}}function slackChannel(e={}){let t=resolveSlackTransportOptions(e.api),n=mergeUploadPolicy(e.uploadPolicy),r=createSlackFetchFile({api:t,botToken:e.credentials?.botToken,maxBytes:maxBytesOf(n)}),i=e.onInputResponse??defaultOnInputResponse,a=composeSlackRenderers(e.renderers??[],{events:{...defaultEvents,"input.requested":defaultInputRequestedHandler(e.approvalChannel)},received:defaultReceived,taskCard:renderDefaultSlackTaskCard}),o=a.events[`turn.started`],s=withTaskCards({...a.events,"message.completed":withFinalReplyDelivery(a.events[`message.completed`]),async"turn.started"(e,t,n){let r=slackUserIdFromAuthContext(n.session.auth.current);r!==void 0&&(t.state.triggeringUserId=r),await o?.(e,t,n)}},a.taskCard),c=new Set,l=defineChannel({kindHint:`slack`,turnPolicy:e.turnPolicy,uploadPolicy:e.uploadPolicy,state:{channelId:null,threadTs:null,teamId:null,installationTeamId:null,triggeringUserId:null,triggeringMessageTs:null,pendingToolCallMessage:null,pendingAuthMessageTs:{},pendingApprovalCards:{},slackUsersByPrincipal:{}},fetchFile:r,metadata(e){return{channelId:e.channelId,teamId:e.teamId,threadTs:e.threadTs,triggeringUserId:e.triggeringUserId??null}},audience:({state:e})=>e.audience??`unknown`,context(n,r){return rebuildSlackContext(n,r,t,e.credentials)},deliver(e,t){return recordSlackPrincipal(t.state,t.session.auth.current,e),defaultDeliverResult(withUndeliveredReplyNote(t.state,e,`Slack`))},routes:[POST(e.route??SLACK_CHANNEL_DEFAULT_ROUTE,async(r,o)=>{let{waitUntil:s}=o,{from:l,resolveSession:u}=o,d=await verifyInbound(r,e.credentials);return d===null?new Response(`unauthorized`,{status:401}):shouldDropSlackHttpTimeoutRetry(r.headers)?new Response(`ok`):(r.headers.get(`content-type`)??``).includes(`application/x-www-form-urlencoded`)?handleInteractionPost(d,{from:l,resolveSession:u,waitUntil:s},{api:t,config:e,onInputResponse:i}):handleEventPost({api:t,body:d,from:l,resolveSession:u,waitUntil:s,config:e,received:a.received,uploadPolicy:n,handledEvents:c,headers:r.headers})})],receive(n,{from:r}){return receiveOnSlack(n,{from:r,api:t,credentials:e.credentials})},events:s}),u=e.credentials,d=defineSlackAppManifest({botName:e.botName});return setChannelBuildMetadata(l,e=>({externalCredentials:u?.vercelConnect,manifest:d.build(e)})),l}function defaultOnInputResponse(e){return{auth:e.defaultAuth}}async function receiveOnSlack(e,t){let n=e.target,r=n.channelId;if(!r||typeof r!=`string`)throw Error(`slackChannel().receive requires target.channelId.`);let i=typeof n.threadTs==`string`?n.threadTs:``,a=typeof n.installationTeamId==`string`?n.installationTeamId:t.installationTeamId,o=n.initialMessage;if(o&&i.length>0)throw Error("slackChannel().receive: `threadTs` and `initialMessage` are mutually exclusive.");let s=i;if(o){let{thread:e}=buildSlackBinding({api:t.api,botToken:t.credentials?.botToken,channelId:r,threadTs:``,installationTeamId:a,teamId:t.teamId}),n={card:o.card};o.fallbackText!==void 0&&(n.fallbackText=o.fallbackText),s=(await e.post(n)).id}let c=s||crypto.randomUUID(),l=n.audience===void 0?void 0:normalizeChannelAudience(n.audience),u={channelId:r,installationTeamId:a??null,threadTs:s||null,teamId:t.teamId??null,triggeringUserId:t.triggeringUserId??null};return l!==void 0&&(u.audience=l),t.from(slackContinuationToken(r,c)).send(e.message,{auth:e.auth,history:e.history,state:u,title:e.title})}function shouldDropSlackHttpTimeoutRetry(e){return Number(e.get(`x-slack-retry-num`)??`0`)>=1&&e.get(`x-slack-retry-reason`)===`http_timeout`}async function handleEventPost(e){let{config:t}=e,n,r;try{n=parseSlackWebhookBody(e.body,{headers:e.headers}),r=parseSlackEventEnvelope(e.body)}catch(e){return log.warn(`inbound webhook body is not valid JSON`,{error:e}),new Response(`ok`)}if(n.kind===`url_verification`)return new Response(n.challenge,{status:200,headers:{"content-type":`text/plain`}});if(r===null)return new Response(`ok`);let i=typeof r.api_app_id==`string`?r.api_app_id:void 0,a=slackEventBotUserId(r),o=slackEventReceivingBotUserId(r),s=slackEventInstallationTeamId(r),dispatch=null,c=null,dispatchMessage=(n,r,c)=>()=>dispatchSlackMessage({api:e.api,appId:i,botUserId:a,receivingBotUserId:o,from:e.from,resolveSession:e.resolveSession,credentials:t.credentials,handler:c,installationTeamId:s,kind:n,message:r,received:e.received,resolvesTypedInput:t.onInputResponse===void 0&&t.approvalChannel===void 0,threadContext:t.threadContext,uploadPolicy:e.uploadPolicy});if(n.kind===`app_mention`||n.kind===`direct_message`){let e=n.kind,r=slackMessageFromWebhookPayload(n,s);if(r!==null&&!isSelfAuthoredSlackMessage({appId:i,botUserId:a},r)){let n=(e===`app_mention`?t.onAppMention:t.onDirectMessage)??t.onMessage;n===void 0?c=dispatchMessage(e,r,defaultOnMessage):dispatch=dispatchMessage(e,r,n)}}let l=t.onMessage;if(dispatch===null&&l!==void 0){let e=parseMessageEvent(r);e!==null&&!isSelfAuthoredSlackMessage({appId:i,botUserId:a},e)&&(a===void 0||!e.text.includes(`<@${a}`))&&(dispatch=dispatchMessage(`channel_message`,e,l))}let u=t.onEvent;if(dispatch===null&&u!==void 0&&(dispatch=()=>dispatchSlackEvent({api:e.api,from:e.from,resolveSession:e.resolveSession,credentials:t.credentials,envelope:r,handler:u,installationTeamId:s})),dispatch??=c,dispatch===null)return new Response(`ok`);let d=r.event_id;if(d){if(e.handledEvents.has(d))return log.warn(`received a duplicate event`,{event_id:d,event_time:r.event_time,retry_num:n.retry?.num??`(null)`,retry_reason:n.retry?.reason??`(null)`}),new Response(`ok`);markEventHandled(d,e.handledEvents)}return e.waitUntil(dispatch()),new Response(`ok`)}function isSelfAuthoredSlackMessage(e,t){return e.botUserId!==void 0&&t.author?.userId===e.botUserId||e.appId!==void 0&&t.raw.app_id===e.appId}async function dispatchSlackMessage(e){let t=slackContinuationToken(e.message.channelId,e.message.threadTs),{thread:n,slack:r}=buildSlackBinding({api:e.api,appId:e.appId,botToken:e.credentials?.botToken,botUserId:e.botUserId,channelId:e.message.channelId,threadTs:e.message.threadTs,threadHasReplies:e.message.threadTs!==e.message.ts,installationTeamId:e.installationTeamId,teamId:e.message.teamId}),i=e.message.author,a={channelId:e.message.channelId,installationTeamId:e.installationTeamId??null,teamId:e.message.teamId??null,threadTs:e.message.threadTs,triggeringMessageTs:e.message.ts,triggeringUserId:i?.userId??null},o=bindSlackSessionOperations({address:t,defaultAuth:i===void 0?null:buildSlackAuthContext({channelId:e.message.channelId,fullName:i.fullName,installationTeamId:e.installationTeamId,isBot:i.isBot,teamId:e.message.teamId,threadTs:e.message.threadTs,userId:i.userId,userName:i.userName}),from:e.from,resolveSession:e.resolveSession,state:a}),s,isDMOrPrivateChannel=()=>s??=isPrivateSlackConversation({channelId:e.message.channelId,raw:e.message.raw,request:r.request}),c=e.kind===`app_mention`||e.botUserId!==void 0&&e.message.text.includes(`<@${e.botUserId}`),l={...o,isBotMentioned:()=>c,isDMOrPrivateChannel,isSubscribed:async()=>await o.resolveSession()!==void 0,slack:r,thread:n},u=e.kind===`channel_message`?void 0:acknowledgeMessage(e.received,e.message,{slack:r,thread:n}),d;try{d=await e.handler(l,e.message)}catch(t){logError(log,`${e.kind} handler failed`,t,{channelId:e.message.channelId})}if(d==null){u!==void 0&&(await u,await n.startTyping());return}await(u??acknowledgeMessage(e.received,e.message,{slack:r,thread:n}));let f=await isDMOrPrivateChannel();a.audience=e.kind===`direct_message`||f?`private`:`public`,await deliverSlackMessage({botUserId:e.receivingBotUserId,credentials:e.credentials,kind:e.kind,isPrivateConversation:f,isMentioned:c,message:e.message,resolvesTypedInput:e.resolvesTypedInput,result:d,sessionOperations:o,thread:n,threadContext:e.threadContext,uploadPolicy:e.uploadPolicy})}async function acknowledgeMessage(e,t,n){try{await e(t,n)}catch(e){logError(log,`received renderer failed`,e,{channelId:t.channelId})}}async function dispatchSlackEvent(e){let t=e.envelope.event.team_id,n=typeof t==`string`?t:typeof e.envelope.team_id==`string`?e.envelope.team_id:void 0,r=[],sourceFor=t=>e.from(slackContinuationToken(t.channelId,t.threadTs)),i={cancel:({target:e,turnId:t})=>sourceFor(e).cancel({turnId:t}),clear:({target:e})=>sourceFor(e).clear(),compact:({target:e})=>sourceFor(e).compact(),envelope:e.envelope,reset:({reason:e,target:t})=>sourceFor(t).reset({reason:e}),resolveSession:({target:t})=>e.resolveSession(slackContinuationToken(t.channelId,t.threadTs)),respond:(t,{auth:n,target:r})=>sourceFor(r).respond(t,{auth:n,state:withSlackResponder(void 0,typeof e.envelope.event.user==`string`?e.envelope.event.user:void 0)}),send:(t,{auth:r,history:i,target:a,title:o})=>receiveOnSlack({auth:r,history:i,message:t,target:a,title:o},{from:e.from,api:e.api,credentials:e.credentials,installationTeamId:e.installationTeamId,teamId:n,...typeof e.envelope.event.user==`string`?{triggeringUserId:e.envelope.event.user}:{}}),slack:buildSlackWorkspaceHandle({api:e.api,botToken:e.credentials?.botToken,installationTeamId:e.installationTeamId,teamId:n}),waitUntil(e){r.push(e)}};try{await e.handler(i,e.envelope.event)}catch(t){logError(log,`event handler failed`,t,{eventId:e.envelope.event_id,eventType:e.envelope.event.type})}await Promise.allSettled(r)}async function verifyInbound(e,t){try{return await verifySlackRequest$1(e,{signingSecret:t?.signingSecret??(t?.webhookVerifier?void 0:process.env.SLACK_SIGNING_SECRET),webhookVerifier:t?.webhookVerifier})}catch(e){return log.warn(`slack inbound verification failed`,{error:e}),null}}async function deliverSlackMessage(e){let{message:t,thread:n}=e;try{let r=e.threadContext===void 0?[]:await loadThreadContextMessages(n,t,e.threadContext),i=r.length>0&&e.result.history===void 0&&await e.sessionOperations.resolveSession()===void 0,a=i?void 0:formatSlackThreadContext(r),o=e.result.history??(i?slackThreadSessionHistory(r):void 0),s=await collectInboundFileParts({botUserId:e.botUserId,fetchThreadWindow:(e,t)=>fetchSlackThreadWindow(n,e,t),isMentioned:e.kind===`app_mention`,mention:t,thread:n,policy:e.uploadPolicy}),c={botUserId:e.botUserId,channelId:t.channelId,fullName:t.author?.fullName,isMentioned:e.isMentioned,teamId:t.teamId,threadTs:t.threadTs,userId:t.author?.userId??``,userName:t.author?.userName},l=formatSlackInboundMessage(c,t),u=buildSlackTurnMessage(a===void 0?l:`${a}\n\n${l}`,s),d=e.result.context??[],f=e.isPrivateConversation?`Private message`:e.result.title??t.markdown,p=e.resolvesTypedInput?slackTypedText(t.text,e.botUserId):``,m=attachInputText({auth:e.result.auth,title:f,...d.length>0&&{context:d},...o!==void 0&&{history:o}},s.length===0?p:void 0);await e.sessionOperations.send(u,m)}catch(n){logError(log,`${e.kind} delivery failed`,n,{channelId:t.channelId})}}function slackTypedText(e,t){return t===void 0?e:e.replace(RegExp(`<@${t}(?:\\|[^>]*)?>`,`gu`),``).trim()}function recordSlackPrincipal(e,t,n){if(t===null)return;let r=n.state?.triggeringUserId,i=slackUserIdFromAuthContext(t)??(typeof r==`string`?r:void 0);i!==void 0&&(e.slackUsersByPrincipal={...e.slackUsersByPrincipal,[t.principalId]:i})}export{slackChannel};
|
|
1
|
+
import{markEventHandled}from"./utils.js";import{attachInputText}from"#internal/input-text.js";import{createLogger,logError}from"#internal/logging.js";import{normalizeChannelAudience}from"#shared/channel-audience.js";import{setChannelBuildMetadata}from"#channel/compiled-channel.js";import{POST,defineChannel}from"#public/definitions/channel.js";import{mergeUploadPolicy}from"#public/channels/upload-policy.js";import{maxBytesOf}from"#internal/attachments/limited-read.js";import{withUndeliveredReplyNote}from"#public/channels/undelivered-reply.js";import{buildSlackBinding,buildSlackWorkspaceHandle,fetchSlackThreadWindow,slackContinuationToken}from"#public/channels/slack/api.js";import{buildSlackAuthContext,slackUserIdFromAuthContext}from"#public/channels/slack/auth.js";import{resolveSlackTransportOptions}from"#public/channels/slack/transport.js";import{parseMessageEvent,parseSlackEventEnvelope,slackEventBotUserId,slackEventInstallationTeamId,slackEventReceivingBotUserId,slackMessageFromWebhookPayload}from"#public/channels/slack/inbound.js";import{withFinalReplyDelivery}from"#public/channels/slack/reply-delivery.js";import{defaultEvents,defaultInteractionOpenedHandler,defaultOnMessage,defaultReceived}from"#public/channels/slack/defaults.js";import{composeSlackRenderers}from"#public/channels/slack/renderers.js";import{loadThreadContextMessages}from"#public/channels/slack/thread.js";import{parseSlackWebhookBody}from"#compiled/@chat-adapter/slack/webhook.js";import{bindSlackSessionOperations,withSlackResponder}from"#public/channels/slack/session-operations.js";import{buildSlackTurnMessage,collectInboundFileParts,createSlackFetchFile}from"#public/channels/slack/attachments.js";import{renderDefaultSlackTaskCard,withTaskCards}from"#public/channels/slack/task-card.js";import{formatSlackInboundMessage,formatSlackThreadContext,slackThreadSessionHistory}from"#public/channels/slack/model-context.js";import{isPrivateSlackConversation}from"#public/channels/slack/privacy.js";import{SLACK_CHANNEL_DEFAULT_ROUTE}from"#public/channels/slack/constants.js";import{defineSlackAppManifest}from"#public/channels/slack/app-manifest.js";import{handleInteractionPost}from"#public/channels/slack/interactions.js";import{verifySlackRequest as verifySlackRequest$1}from"#public/channels/slack/verify.js";const log=createLogger(`slack.channel`);function rebuildSlackContext(e,t,n,r){let{thread:i,slack:a}=buildSlackBinding({api:n,botToken:r?.botToken,channelId:e.channelId??``,threadTs:e.threadTs??``,installationTeamId:e.installationTeamId??void 0,teamId:e.teamId??void 0,onThreadTsChanged(n){e.threadTs=n,e.channelId&&t.continuation?.alias(slackContinuationToken({channelId:e.channelId,threadTs:n}))},onPosted(){e.postedInThread=!0}});return{thread:i,slack:a,state:e}}function slackChannel(e={}){let t=resolveSlackTransportOptions(e.api),n=mergeUploadPolicy(e.uploadPolicy),r=createSlackFetchFile({api:t,botToken:e.credentials?.botToken,maxBytes:maxBytesOf(n)}),i=e.onAnswers??defaultOnAnswers,a=composeSlackRenderers(e.renderers??[],{events:{...defaultEvents,"interaction.opened":defaultInteractionOpenedHandler(e.approvalChannel)},received:defaultReceived,taskCard:renderDefaultSlackTaskCard}),o=a.events[`turn.started`],s=withTaskCards({...a.events,"content.completed":withFinalReplyDelivery(a.events[`content.completed`]),async"turn.started"(e,t){let{channel:n}=t,r=slackUserIdFromAuthContext(t.session.auth.current);r!==void 0&&(n.state.triggeringUserId=r),await o?.(e,t)}},a.taskCard),c=new Set,l=defineChannel({turnPolicy:e.turnPolicy,uploadPolicy:e.uploadPolicy,state:{channelId:null,threadTs:null,teamId:null,installationTeamId:null,triggeringUserId:null,triggeringMessageTs:null,pendingToolCallMessage:null,pendingAuthMessageTs:{},pendingApprovalCards:{},slackUsersByPrincipal:{}},fetchFile:r,metadata(e){return{channelId:e.channelId,teamId:e.teamId,threadTs:e.threadTs,triggeringUserId:e.triggeringUserId??null}},audience:({state:e})=>e.audience??`unknown`,context(n,r){return rebuildSlackContext(n,r,t,e.credentials)},deliver(e,t){return recordSlackPrincipal(t.state,t.session.auth.current,e),withUndeliveredReplyNote(t.state,e,`Slack`)},routes:[POST(e.route??SLACK_CHANNEL_DEFAULT_ROUTE,async(r,o)=>{let{waitUntil:s}=o,{from:l,resolveSession:u}=o,d=await verifyInbound(r,e.credentials);return d===null?new Response(`unauthorized`,{status:401}):shouldDropSlackHttpTimeoutRetry(r.headers)?new Response(`ok`):(r.headers.get(`content-type`)??``).includes(`application/x-www-form-urlencoded`)?handleInteractionPost(d,{from:l,resolveSession:u,waitUntil:s},{api:t,config:e,onAnswers:i}):handleEventPost({api:t,body:d,from:l,resolveSession:u,waitUntil:s,config:e,received:a.received,uploadPolicy:n,handledEvents:c,headers:r.headers})})],receive(n,{from:r}){return receiveOnSlack(n,{from:r,api:t,credentials:e.credentials})},events:s}),u=e.credentials,d=defineSlackAppManifest({botName:e.botName});return setChannelBuildMetadata(l,e=>({externalCredentials:u?.vercelConnect,manifest:d.build(e)})),l}function defaultOnAnswers(e){return{auth:e.defaultAuth}}async function receiveOnSlack(e,t){let n=e.target,r=n.channelId;if(!r||typeof r!=`string`)throw Error(`slackChannel().receive requires target.channelId.`);let i=typeof n.threadTs==`string`?n.threadTs:``,a=typeof n.installationTeamId==`string`?n.installationTeamId:t.installationTeamId,o=n.initialMessage;if(o&&i.length>0)throw Error("slackChannel().receive: `threadTs` and `initialMessage` are mutually exclusive.");let s=i;if(o){let{thread:e}=buildSlackBinding({api:t.api,botToken:t.credentials?.botToken,channelId:r,threadTs:``,installationTeamId:a,teamId:t.teamId}),n={card:o.card};o.fallbackText!==void 0&&(n.fallbackText=o.fallbackText),s=(await e.post(n)).id}let c=s||crypto.randomUUID(),l=n.audience===void 0?void 0:normalizeChannelAudience(n.audience),u={channelId:r,installationTeamId:a??null,threadTs:s||null,teamId:t.teamId??null,triggeringUserId:t.triggeringUserId??null};return l!==void 0&&(u.audience=l),t.from(slackContinuationToken({channelId:r,threadTs:c})).send(e.message,{auth:e.auth,history:e.history,state:u,title:e.title})}function shouldDropSlackHttpTimeoutRetry(e){return Number(e.get(`x-slack-retry-num`)??`0`)>=1&&e.get(`x-slack-retry-reason`)===`http_timeout`}async function handleEventPost(e){let{config:t}=e,n,r;try{n=parseSlackWebhookBody(e.body,{headers:e.headers}),r=parseSlackEventEnvelope(e.body)}catch(e){return log.warn(`inbound webhook body is not valid JSON`,{error:e}),new Response(`ok`)}if(n.kind===`url_verification`)return new Response(n.challenge,{status:200,headers:{"content-type":`text/plain`}});if(r===null)return new Response(`ok`);let i=typeof r.api_app_id==`string`?r.api_app_id:void 0,a=slackEventBotUserId(r),o=slackEventReceivingBotUserId(r),s=slackEventInstallationTeamId(r),dispatch=null,c=null,dispatchMessage=(n,r,c)=>()=>dispatchSlackMessage({api:e.api,appId:i,botUserId:a,receivingBotUserId:o,from:e.from,resolveSession:e.resolveSession,credentials:t.credentials,handler:c,installationTeamId:s,kind:n,message:r,received:e.received,resolvesTypedInput:t.onAnswers===void 0&&t.approvalChannel===void 0,threadContext:t.threadContext,uploadPolicy:e.uploadPolicy});if(n.kind===`app_mention`||n.kind===`direct_message`){let e=n.kind,r=slackMessageFromWebhookPayload(n,s);if(r!==null&&!isSelfAuthoredSlackMessage({appId:i,botUserId:a},r)){let n=(e===`app_mention`?t.onAppMention:t.onDirectMessage)??t.onMessage;n===void 0?c=dispatchMessage(e,r,defaultOnMessage):dispatch=dispatchMessage(e,r,n)}}let l=t.onMessage;if(dispatch===null&&l!==void 0){let e=parseMessageEvent(r);e!==null&&!isSelfAuthoredSlackMessage({appId:i,botUserId:a},e)&&(a===void 0||!e.text.includes(`<@${a}`))&&(dispatch=dispatchMessage(`channel_message`,e,l))}let u=t.onEvent;if(dispatch===null&&u!==void 0&&(dispatch=()=>dispatchSlackEvent({api:e.api,from:e.from,resolveSession:e.resolveSession,credentials:t.credentials,envelope:r,handler:u,installationTeamId:s})),dispatch??=c,dispatch===null)return new Response(`ok`);let d=r.event_id;if(d){if(e.handledEvents.has(d))return log.warn(`received a duplicate event`,{event_id:d,event_time:r.event_time,retry_num:n.retry?.num??`(null)`,retry_reason:n.retry?.reason??`(null)`}),new Response(`ok`);markEventHandled(d,e.handledEvents)}return e.waitUntil(dispatch()),new Response(`ok`)}function isSelfAuthoredSlackMessage(e,t){return e.botUserId!==void 0&&t.author?.userId===e.botUserId||e.appId!==void 0&&t.raw.app_id===e.appId}async function dispatchSlackMessage(e){let t=slackContinuationToken({channelId:e.message.channelId,threadTs:e.message.threadTs}),{thread:n,slack:r}=buildSlackBinding({api:e.api,appId:e.appId,botToken:e.credentials?.botToken,botUserId:e.botUserId,channelId:e.message.channelId,threadTs:e.message.threadTs,threadHasReplies:e.message.threadTs!==e.message.ts,installationTeamId:e.installationTeamId,teamId:e.message.teamId}),i=e.message.author,a={channelId:e.message.channelId,installationTeamId:e.installationTeamId??null,teamId:e.message.teamId??null,threadTs:e.message.threadTs,triggeringMessageTs:e.message.ts,triggeringUserId:i?.userId??null},o=bindSlackSessionOperations({address:t,defaultAuth:i===void 0?null:buildSlackAuthContext({channelId:e.message.channelId,fullName:i.fullName,installationTeamId:e.installationTeamId,isBot:i.isBot,teamId:e.message.teamId,threadTs:e.message.threadTs,userId:i.userId,userName:i.userName}),from:e.from,resolveSession:e.resolveSession,state:a}),s,isDMOrPrivateChannel=()=>s??=isPrivateSlackConversation({channelId:e.message.channelId,raw:e.message.raw,request:r.request}),c=e.kind===`app_mention`||e.botUserId!==void 0&&e.message.text.includes(`<@${e.botUserId}`),l={...o,isBotMentioned:()=>c,isDMOrPrivateChannel,isSubscribed:async()=>await o.resolveSession()!==void 0,slack:r,thread:n},u=e.kind===`channel_message`?void 0:acknowledgeMessage(e.received,e.message,{slack:r,thread:n}),d;try{d=await e.handler(l,e.message)}catch(t){logError(log,`${e.kind} handler failed`,t,{channelId:e.message.channelId})}if(d==null){u!==void 0&&(await u,await n.startTyping());return}await(u??acknowledgeMessage(e.received,e.message,{slack:r,thread:n}));let f=await isDMOrPrivateChannel();a.audience=e.kind===`direct_message`||f?`private`:`public`,await deliverSlackMessage({botUserId:e.receivingBotUserId,credentials:e.credentials,kind:e.kind,isPrivateConversation:f,isMentioned:c,message:e.message,resolvesTypedInput:e.resolvesTypedInput,result:d,sessionOperations:o,thread:n,threadContext:e.threadContext,uploadPolicy:e.uploadPolicy})}async function acknowledgeMessage(e,t,n){try{await e(t,n)}catch(e){logError(log,`received renderer failed`,e,{channelId:t.channelId})}}async function dispatchSlackEvent(e){let t=e.envelope.event.team_id,n=typeof t==`string`?t:typeof e.envelope.team_id==`string`?e.envelope.team_id:void 0,r=[],sourceFor=t=>e.from(slackContinuationToken({channelId:t.channelId,threadTs:t.threadTs})),i={cancel:({target:e,turnId:t})=>sourceFor(e).cancel({turnId:t}),clear:({target:e})=>sourceFor(e).clear(),compact:({target:e})=>sourceFor(e).compact(),envelope:e.envelope,reset:({reason:e,target:t})=>sourceFor(t).reset({reason:e}),resolveSession:({target:t})=>e.resolveSession(slackContinuationToken({channelId:t.channelId,threadTs:t.threadTs})),respond:(t,{auth:n,target:r})=>sourceFor(r).respond(t,{auth:n,state:withSlackResponder(void 0,typeof e.envelope.event.user==`string`?e.envelope.event.user:void 0)}),send:(t,{auth:r,history:i,target:a,title:o})=>receiveOnSlack({auth:r,history:i,message:t,target:a,title:o},{from:e.from,api:e.api,credentials:e.credentials,installationTeamId:e.installationTeamId,teamId:n,...typeof e.envelope.event.user==`string`?{triggeringUserId:e.envelope.event.user}:{}}),slack:buildSlackWorkspaceHandle({api:e.api,botToken:e.credentials?.botToken,installationTeamId:e.installationTeamId,teamId:n}),waitUntil(e){r.push(e)}};try{await e.handler(i,e.envelope.event)}catch(t){logError(log,`event handler failed`,t,{eventId:e.envelope.event_id,eventType:e.envelope.event.type})}await Promise.allSettled(r)}async function verifyInbound(e,t){try{return await verifySlackRequest$1(e,{signingSecret:t?.signingSecret??(t?.webhookVerifier?void 0:process.env.SLACK_SIGNING_SECRET),webhookVerifier:t?.webhookVerifier})}catch(e){return log.warn(`slack inbound verification failed`,{error:e}),null}}async function deliverSlackMessage(e){let{message:t,thread:n}=e;try{let r=e.threadContext===void 0?[]:await loadThreadContextMessages(n,t,e.threadContext),i=r.length>0&&e.result.history===void 0&&await e.sessionOperations.resolveSession()===void 0,a=i?void 0:formatSlackThreadContext(r),o=e.result.history??(i?slackThreadSessionHistory(r):void 0),s=await collectInboundFileParts({botUserId:e.botUserId,fetchThreadWindow:(e,t)=>fetchSlackThreadWindow(n,e,t),isMentioned:e.kind===`app_mention`,mention:t,thread:n,policy:e.uploadPolicy}),c={botUserId:e.botUserId,channelId:t.channelId,fullName:t.author?.fullName,isMentioned:e.isMentioned,teamId:t.teamId,threadTs:t.threadTs,userId:t.author?.userId??``,userName:t.author?.userName},l=formatSlackInboundMessage(c,t),u=buildSlackTurnMessage(a===void 0?l:`${a}\n\n${l}`,s),d=e.result.context??[],f=e.isPrivateConversation?`Private message`:e.result.title??t.markdown,p=e.resolvesTypedInput?slackTypedText(t.text,e.botUserId):``,m=attachInputText({auth:e.result.auth,title:f,...d.length>0&&{context:d},...o!==void 0&&{history:o}},s.length===0?p:void 0);await e.sessionOperations.send(u,m)}catch(n){logError(log,`${e.kind} delivery failed`,n,{channelId:t.channelId})}}function slackTypedText(e,t){return t===void 0?e:e.replace(RegExp(`<@${t}(?:\\|[^>]*)?>`,`gu`),``).trim()}function recordSlackPrincipal(e,t,n){if(t===null)return;let r=n.state?.triggeringUserId,i=slackUserIdFromAuthContext(t)??(typeof r==`string`?r:void 0);i!==void 0&&(e.slackUsersByPrincipal={...e.slackUsersByPrincipal,[t.principalId]:i})}export{slackChannel};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { type
|
|
1
|
+
import { type TaskCard } from "#channel/task-card.js";
|
|
2
2
|
import type { SlackTaskCard } from "#public/channels/slack/renderers.js";
|
|
3
3
|
import type { SlackChannelInternalEvents } from "#public/channels/slack/slackChannel.js";
|
|
4
4
|
/**
|
|
@@ -8,17 +8,17 @@ import type { SlackChannelInternalEvents } from "#public/channels/slack/slackCha
|
|
|
8
8
|
* with `eve__task_cancel` shows as done, since it no longer needed the work; a
|
|
9
9
|
* failed task, or one stopped any other way, shows as an error.
|
|
10
10
|
*/
|
|
11
|
-
export declare function renderDefaultSlackTaskCard(
|
|
12
|
-
/**
|
|
11
|
+
export declare function renderDefaultSlackTaskCard(snapshot: TaskCard): SlackTaskCard | null;
|
|
12
|
+
/** The card message eve last wrote for a turn: the card that begins at `since`. */
|
|
13
13
|
export interface SlackTaskCardState {
|
|
14
|
-
readonly turn: TaskCardTurn;
|
|
15
14
|
readonly ts?: string;
|
|
16
15
|
readonly fingerprint?: string;
|
|
16
|
+
/** Where the card it shows begins; absent for the turn's first. */
|
|
17
|
+
readonly since?: number;
|
|
17
18
|
}
|
|
18
19
|
/**
|
|
19
|
-
* Keeps each turn's task
|
|
20
|
-
*
|
|
21
|
-
*
|
|
22
|
-
* then writes the card `taskCard` returns if it changed.
|
|
20
|
+
* Keeps each turn's task cards current from the session's tables, once per commit. It runs after
|
|
21
|
+
* the renderer chain's own `committed`, so the card never depends on which handlers a renderer
|
|
22
|
+
* keeps, and writes each card `taskCard` returns if it changed.
|
|
23
23
|
*/
|
|
24
|
-
export declare function withTaskCards(events: SlackChannelInternalEvents, taskCard: (
|
|
24
|
+
export declare function withTaskCards(events: SlackChannelInternalEvents, taskCard: (card: TaskCard) => SlackTaskCard | null): SlackChannelInternalEvents;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{createHash}from"node:crypto";import{createLogger,logError}from"#internal/logging.js";import{normalizeChannelAudience}from"#shared/channel-audience.js";import{contextStorage}from"#context/container.js";import{ScheduleIdKey}from"#context/keys.js";import{displayName}from"#
|
|
1
|
+
import{createHash}from"node:crypto";import{callLabel,callOutputSource,callState,openInteractions}from"#protocol/session-projection/selectors.js";import{createLogger,logError}from"#internal/logging.js";import{normalizeChannelAudience}from"#shared/channel-audience.js";import{sessionTables}from"#protocol/session-projection/session-view.js";import{contextStorage}from"#context/container.js";import{ScheduleIdKey}from"#context/keys.js";import{displayName}from"#protocol/session-projection/display-name.js";import{AGENT_TOOL_NAME}from"#tools/framework/agent-contract.js";import{formatDuration}from"#shared/format-duration.js";import{firstSentence,normalizePresentationText}from"#shared/presentation-text.js";import{truncateMessageText}from"#public/channels/slack/limits.js";import{taskCards}from"#channel/task-card.js";import{restoreStatus}from"#public/channels/slack/thread-status.js";const log=createLogger(`slack.task-card`);function renderDefaultSlackTaskCard(e){let t=sessionTables(e.view),n={...e,view:t,calls:e.calls.flatMap(e=>t.calls[e.callId]??[])},r=n.calls.filter(e=>e.taskId!==void 0);if(r.length===0)return null;let{earlier:i,rows:a}=collapseEarlierRows(n.view,r),o=planTitle(n,r),s=[...i===void 0?[]:[i],...a.map(e=>toSlackTask(n,e))],c=slackBlockId(n.turnId),l=s.length===1?[{block_id:c,type:`task_card`,...s[0]}]:[{block_id:c,type:`plan`,tasks:s,title:o}],u=r.map(e=>callLabel(e)).join(`, `);return{blocks:l,text:truncateMessageText(`${o}: ${u}`)}}function planTitle(e,t){let{view:n}=e;if(e.state===`blocked`)return waitingText(t.flatMap(e=>openInteractions(n,{about:{callId:e.callId}}))[0]?.request.kind);let r=t.length,names=e=>r>1?agentNames(n,e):void 0;if(e.state===`working`){let e=t.filter(e=>e.status!==`settled`),n=r-e.length;if(n===0){let e=names(t);return e===void 0?`Working on ${countTasks(r)}`:`Asking ${e}`}let i=`${String(n)} of ${countTasks(r)} done`,a=names(e);return a===void 0?i:`Waiting on ${a} · ${i}`}let i=t.filter(e=>failedTask(n,e)).length,a=t.filter(e=>isInterrupted(n,e)).length,o=[];i>0&&o.push(`${String(i)} failed`),a>0&&o.push(`${String(a)} stopped`);let s=turnDuration(t),c=`Finished ${countTasks(r)}${s===void 0?``:` in ${s}`}`;return o.length===0?c:`${c}: ${o.join(`, `)}`}function agentNames(e,t){let agent=t=>(t.taskId===void 0?void 0:e.tasks[t.taskId]?.kind)??t.capability.kind;if(t.some(e=>agent(e)!==`agent`||e.capability.name===AGENT_TOOL_NAME))return;let n=[...new Set(t.map(e=>displayName(e.capability.name)))];if(!(n.length===0||n.length>3))return n.length<=2?n.join(` and `):`${n.slice(0,-1).join(`, `)}, and ${n.at(-1)}`}function turnDuration(e){let t=e.flatMap(e=>e.endedAt===void 0?[]:[Date.parse(e.endedAt)]);if(t.length===0)return;let n=Math.min(...e.map(e=>Date.parse(e.startedAt)));return shownDuration(Math.max(...t)-n)}function taskDuration(e){if(e.endedAt!==void 0)return shownDuration(Date.parse(e.endedAt)-Date.parse(e.startedAt))}function shownDuration(e){return Number.isFinite(e)&&e>=1e3?formatDuration(e):void 0}function failedTask(e,t){let n=callState(e,t.callId);return n===`failed`||n===`rejected`}function isInterrupted(e,t){return callState(e,t.callId)===`cancelled`&&t.reason!==`task-cancel`}function countTasks(e){return e===1?`1 task`:`${String(e)} tasks`}function collapseEarlierRows(e,t){if(t.length<=50)return{rows:t};let n=t.length-49,r=t.filter(e=>e.status===`settled`).slice(0,n),i=new Set(r.map(e=>e.callId)),a=t.filter(e=>!i.has(e.callId));return r.length===0?{rows:a.slice(-50)}:{earlier:{status:r.some(t=>failedTask(e,t)||isInterrupted(e,t))?`error`:`complete`,task_id:`earlier`,title:truncate(`${countTasks(r.length)} finished earlier`,80)},rows:a.slice(-49)}}function toSlackTask(e,t){let{view:n}=e,r={status:slackStatus(n,t),task_id:slackTaskId(t.callId),title:truncate(callLabel(t),80)},i=openInteractions(n,{about:{callId:t.callId}}).at(-1);i!==void 0&&(r.details=richText(blockerLine(e,i)));let a=outputLine(e,t);return a!==void 0&&(r.output=richText(a)),r}function slackStatus(e,t){switch(callState(e,t.callId)){case`completed`:return`complete`;case`cancelled`:return isInterrupted(e,t)?`error`:`complete`;case`failed`:case`rejected`:return`error`;default:return`in_progress`}}function outputLine(e,t){let{view:n}=e,r=taskDuration(t);switch(callState(n,t.callId)){case`completed`:{let e=brief(resultText(callOutputSource(n,t.callId)?.output??t.output));if(r===void 0)return e;let i=`Done in ${r}`;return e===void 0?i:`${i}: ${e}`}case`failed`:case`rejected`:{let n=r===void 0?`Failed`:`Failed after ${r}`,i=e.audience===`private`?brief(t.error?.message):void 0;return i===void 0?n:`${n}: ${i}`}case`cancelled`:return stoppedLine(t.reason);default:return}}function stoppedLine(e){switch(e){case`task-cancel`:return`Stopped early since it was no longer needed`;case`turn-cancelled`:return`Stopped by request`;case`turn-ended`:return`Stopped when the turn ended`;default:return`Stopped`}}function blockerLine(e,t){let{request:n}=t,r=waitingText(n.kind);if(e.audience!==`private`)return r;let i=n.kind===`sign-in`?n.signIn?.displayName??n.signIn?.name??n.prompt:n.prompt,a=i===void 0?``:normalizePresentationText(i);return a===``?r:`${r}: ${a.slice(0,200)}`}function waitingText(e){switch(e){case`approval`:return`Waiting for approval`;case`sign-in`:return`Waiting for sign-in`;default:return`Waiting for a response`}}function resultText(e){if(typeof e==`string`)return e;if(typeof e!=`object`||!e||Array.isArray(e))return;let t=e;return t.message??t.text??t.summary}function brief(e){return typeof e==`string`?firstSentence(e):void 0}function richText(e){return{elements:[{elements:[{text:truncate(e,100),type:`text`}],type:`rich_text_section`}],type:`rich_text`}}function truncate(e,t){if(e.length<=t)return e;let n=e.slice(0,t-1),r=n.lastIndexOf(` `);return`${(r>t/2?n.slice(0,r):n).trimEnd()}…`}function slackTaskId(e){return e.replace(/[^a-zA-Z0-9_-]/g,`_`).slice(-200)}function slackBlockId(e){return`eve_task_card_${slackTaskId(e)}`}function withTaskCards(e,t){let n=e.committed;return{...e,async committed(e,r){try{await n?.(e,r)}finally{let{channel:n,view:i}=r,a=new Set([...e.facts.flatMap(e=>e.scope?.turnId??[]),...Object.keys(n.state.taskCards??{})]);for(let e of a)await writeTaskCards(n,sessionTables(i),e,t)}}}}async function writeTaskCards(e,t,n,r){if(t.turns[n]===void 0)return;let i=normalizeChannelAudience(e.state.audience),a=taskCards(t,n,i),o=e.state.taskCards?.[n]?.since??0;for(let t of a)t.since<o||(t.since>(e.state.taskCards?.[n]?.since??0)&&rememberCard(e.state,n,{since:t.since}),await writeChangedCard(e,n,t,r));a.at(-1)?.state===`finished`&&forgetTurn(e.state,n)}async function writeChangedCard(e,t,n,r){let{channelId:i,threadTs:a}=e.state,o=contextStorage.getStore()?.get(ScheduleIdKey)!==void 0;if(!i||!a||o)return;let s=renderCard(r,n);if(s===null)return;let c=e.state.taskCards?.[t]??{},l=createHash(`sha256`).update(JSON.stringify(s)).digest(`base64url`);if(l===c.fingerprint)return;let u=await writeCardWithRetry(e.slack,{card:s,channelId:i,threadTs:a,ts:c.ts});u!==void 0&&(rememberCard(e.state,t,{...c,fingerprint:l,ts:u}),u!==c.ts&&n.state===`working`&&await restoreStatus(e))}function rememberCard(e,t,n){let r={...e.taskCards,[t]:n},i=Object.keys(r);for(let e of i.slice(0,Math.max(0,i.length-20)))delete r[e];e.taskCards=r}function forgetTurn(e,t){let{[t]:n,...r}=e.taskCards??{};e.taskCards=r}function renderCard(e,t){try{return e(t)}catch(e){return logError(log,`task card renderer failed`,e,{turnId:t.turnId}),null}}async function writeCardWithRetry(e,t){for(let n of[1,2])try{return await writeCard(e,t)}catch(e){logError(log,`task card write failed`,e,{attempt:n}),n===1&&await new Promise(e=>setTimeout(e,1e3))}}async function writeCard(e,t){let n={blocks:t.card.blocks,channel:t.channelId,text:t.card.text};if(t.ts!==void 0){let r=await e.request(`chat.update`,{...n,ts:t.ts});if(r.ok===!0)return t.ts;if(r.error!==`message_not_found`)throw slackError(r.error)}let r=await e.request(`chat.postMessage`,{...n,thread_ts:t.threadTs,unfurl_links:!1,unfurl_media:!1});if(r.ok!==!0)throw slackError(r.error);if(typeof r.ts!=`string`||r.ts===``)throw Error(`Slack did not return a ts for the task card.`);return r.ts}function slackError(e){return Error(`Slack task card failed: ${e??`unknown_error`}`)}export{renderDefaultSlackTaskCard,withTaskCards};
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import type { TeamsChannelCredentials } from "#public/channels/teams/credentials.js";
|
|
2
|
+
export type { TeamsChannelCredentials } from "#public/channels/teams/credentials.js";
|
|
1
3
|
/**
|
|
2
4
|
* Minimal Microsoft Teams Bot Framework Connector REST wrapper.
|
|
3
5
|
*
|
|
@@ -22,15 +24,9 @@ export type TeamsAccessTokenResult = string | {
|
|
|
22
24
|
/** Caller-owned Bot Connector token provider. */
|
|
23
25
|
export type TeamsTokenProvider = () => TeamsAccessTokenResult | Promise<TeamsAccessTokenResult>;
|
|
24
26
|
/** Credentials used by the native Teams channel. */
|
|
25
|
-
export interface TeamsCredentials {
|
|
26
|
-
readonly appId?: TeamsAppId;
|
|
27
|
-
readonly appPassword?: TeamsAppPassword;
|
|
28
|
-
readonly tenantId?: TeamsTenantId;
|
|
29
|
-
readonly tokenProvider?: TeamsTokenProvider;
|
|
30
|
-
}
|
|
31
27
|
/** Shared Teams API options. */
|
|
32
28
|
export interface TeamsApiOptions {
|
|
33
|
-
readonly credentials?:
|
|
29
|
+
readonly credentials?: TeamsChannelCredentials;
|
|
34
30
|
/** Fetch override for tests or non-standard runtimes. */
|
|
35
31
|
readonly fetch?: TeamsFetch;
|
|
36
32
|
/**
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { MessageContent, MessageFilePart } from "#shared/message-content.js";
|
|
2
2
|
import type { FetchFileResult } from "#channel/adapter.js";
|
|
3
3
|
import { type TeamsApiOptions, type TeamsAttachment } from "#public/channels/teams/api.js";
|
|
4
4
|
import { type UploadPolicyInput } from "#public/channels/upload-policy.js";
|
|
@@ -24,9 +24,9 @@ export interface TeamsFilesPolicy {
|
|
|
24
24
|
/** Normalizes author-provided Teams file options. */
|
|
25
25
|
export declare function normalizeTeamsFilesPolicy(config: TeamsFilesConfig | undefined): TeamsFilesPolicy;
|
|
26
26
|
/** Collects Teams attachment file parts unless file support is disabled. */
|
|
27
|
-
export declare function collectTeamsFileParts(attachments: readonly TeamsAttachment[], policy: TeamsFilesPolicy):
|
|
28
|
-
/** Combines text + file parts into the
|
|
29
|
-
export declare function buildTeamsTurnMessage(text: string, fileParts: readonly
|
|
27
|
+
export declare function collectTeamsFileParts(attachments: readonly TeamsAttachment[], policy: TeamsFilesPolicy): MessageFilePart[];
|
|
28
|
+
/** Combines text + file parts into the MessagePart[] shape expected by the harness. */
|
|
29
|
+
export declare function buildTeamsTurnMessage(text: string, fileParts: readonly MessageFilePart[]): MessageContent;
|
|
30
30
|
/**
|
|
31
31
|
* Builds the channel `fetchFile` resolver for Teams file URLs. Returns null when
|
|
32
32
|
* files are disabled or the URL host is not in `allowedHosts`; otherwise fetches
|
|
@@ -7,31 +7,28 @@
|
|
|
7
7
|
*/
|
|
8
8
|
import type { Session } from "#channel/session.js";
|
|
9
9
|
import type { SessionAuthContext } from "#channel/types.js";
|
|
10
|
-
import type {
|
|
10
|
+
import type { SignIn } from "#channel/sign-in.js";
|
|
11
11
|
import type { TeamsChannelAccount, TeamsMessageBody } from "#public/channels/teams/api.js";
|
|
12
12
|
import type { TeamsInvokeActivity } from "#public/channels/teams/inbound.js";
|
|
13
13
|
import { type JsonObject } from "#shared/json.js";
|
|
14
|
-
type AuthorizationRequired = AuthorizationRequiredStreamEvent["data"];
|
|
15
14
|
/** Identifies one sign-in attempt from the shared card's button press. */
|
|
16
15
|
export interface TeamsAuthorizationReveal {
|
|
17
|
-
readonly
|
|
16
|
+
readonly interactionId: string;
|
|
18
17
|
readonly name: string;
|
|
19
18
|
readonly replyToActivityId?: string;
|
|
20
19
|
}
|
|
21
20
|
/** A connection's display name for its sign-in cards (`linear` → `Linear`). */
|
|
22
21
|
export declare function teamsAuthorizationDisplayName(event: {
|
|
23
|
-
readonly
|
|
24
|
-
readonly displayName?: string;
|
|
25
|
-
};
|
|
22
|
+
readonly displayName: string;
|
|
26
23
|
readonly name: string;
|
|
27
24
|
}): string;
|
|
28
25
|
/** The full sign-in card, link and code included, for the person signing in alone. */
|
|
29
|
-
export declare function renderTeamsAuthorizationPrompt(event:
|
|
26
|
+
export declare function renderTeamsAuthorizationPrompt(event: SignIn, options: {
|
|
30
27
|
readonly adaptiveCardVersion: string;
|
|
31
28
|
readonly requester: string | undefined;
|
|
32
29
|
}): TeamsMessageBody;
|
|
33
30
|
/** The shared sign-in card: who must sign in, and a button that shows them the challenge. */
|
|
34
|
-
export declare function renderTeamsAuthorizationStatus(event:
|
|
31
|
+
export declare function renderTeamsAuthorizationStatus(event: SignIn, options: {
|
|
35
32
|
readonly adaptiveCardVersion: string;
|
|
36
33
|
readonly replyToActivityId: string | undefined;
|
|
37
34
|
readonly requester: string | undefined;
|
|
@@ -50,4 +47,3 @@ export declare function answerTeamsAuthorizationReveal(input: {
|
|
|
50
47
|
readonly resolveSession: () => Promise<Session | undefined>;
|
|
51
48
|
readonly reveal: TeamsAuthorizationReveal;
|
|
52
49
|
}): Promise<JsonObject>;
|
|
53
|
-
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{createLogger}from"#internal/logging.js";import{isObject}from"#shared/guards.js";import{
|
|
1
|
+
import{createLogger}from"#internal/logging.js";import{isObject}from"#shared/guards.js";import{parseJsonObject}from"#shared/json.js";import{findPendingAuthorization}from"#channel/pending-authorization.js";import{TEAMS_ADAPTIVE_CARD_CONTENT_TYPE,teamsInvokeResponse}from"#public/channels/teams/hitl.js";const log=createLogger(`teams.authorization`),NOT_YOURS=`Only the person who needs to sign in can open this sign-in.`,TEAMS_AUTHORIZATION_DATA_KEY=`eve_authorization`;function teamsAuthorizationDisplayName(e){return e.displayName}function renderTeamsAuthorizationPrompt(e,t){let n=teamsAuthorizationDisplayName(e),r=e.url,i=e.instructions,a=e.userCode,o=a?`If ${n} asks for a confirmation code, enter ${a}.`:void 0,s=[r?`Authorization required for ${n}: ${r}`:`Authorization required for ${n}.`,i,o].filter(Boolean).join(` `);return{attachments:[adaptiveCard(t.adaptiveCardVersion,{actions:r?[{title:`Sign in with ${n}`,type:`Action.OpenUrl`,url:r}]:[],body:[heading(`Authorization required for ${n}`),textBlock(t.requester?`Requested by ${t.requester}.`:`No triggering user is available for a private prompt.`),...[i,o].filter(e=>!!e).map(e=>textBlock(e))]})],text:s}}function renderTeamsAuthorizationStatus(e,t){let n=teamsAuthorizationDisplayName(e),r=t.requester?`${t.requester} must sign in to continue. Only they can open the sign-in.`:`Only the person who needs to sign in can open it.`,i={interactionId:e.interactionId,name:e.name,replyToActivityId:t.replyToActivityId},a=`Authorization required for ${n}. ${r}`;return{attachments:[adaptiveCard(t.adaptiveCardVersion,{actions:[{data:{[TEAMS_AUTHORIZATION_DATA_KEY]:i},title:`Sign in`,type:`Action.Execute`,verb:`eve.authorization.reveal`}],body:[heading(`Authorization required for ${n}`),textBlock(r)]})],text:a}}function readTeamsAuthorizationReveal(e){let t=isObject(e.value?.action)?e.value.action:null,n=(t&&isObject(t.data)?t.data:null)?.[TEAMS_AUTHORIZATION_DATA_KEY];return!isObject(n)||typeof n.name!=`string`||typeof n.interactionId!=`string`?null:{interactionId:n.interactionId,name:n.name,replyToActivityId:typeof n.replyToActivityId==`string`?n.replyToActivityId:void 0}}async function answerTeamsAuthorizationReveal(e){if(e.auth===null)return teamsInvokeResponse({message:NOT_YOURS});let{name:t,interactionId:n}=e.reveal,r;try{let i=await e.resolveSession();r=i&&await findPendingAuthorization(i,e=>e.name===t&&e.interactionId===n)}catch(e){log.error(`Teams sign-in lookup failed`,{error:e})}if(r===void 0)return teamsInvokeResponse({message:`This sign-in is no longer active.`});if(e.auth.principalId!==r.principalId)return teamsInvokeResponse({message:NOT_YOURS});let i=renderTeamsAuthorizationPrompt(r,{adaptiveCardVersion:e.adaptiveCardVersion,requester:e.presser.name??e.presser.id});return parseJsonObject({statusCode:200,type:TEAMS_ADAPTIVE_CARD_CONTENT_TYPE,value:i.attachments?.[0]?.content})}function adaptiveCard(e,t){return{content:parseJsonObject({$schema:`http://adaptivecards.io/schemas/adaptive-card.json`,...t,type:`AdaptiveCard`,version:e}),contentType:TEAMS_ADAPTIVE_CARD_CONTENT_TYPE}}function heading(e){return{text:e,type:`TextBlock`,weight:`Bolder`,wrap:!0}}function textBlock(e){return{text:e,type:`TextBlock`,wrap:!0}}export{answerTeamsAuthorizationReveal,readTeamsAuthorizationReveal,renderTeamsAuthorizationPrompt,renderTeamsAuthorizationStatus,teamsAuthorizationDisplayName};
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { TeamsAppId } from "#public/channels/teams/api.js";
|
|
2
|
+
import type { TeamsAppPassword } from "#public/channels/teams/api.js";
|
|
3
|
+
import type { TeamsTenantId } from "#public/channels/teams/api.js";
|
|
4
|
+
import type { TeamsTokenProvider } from "#public/channels/teams/api.js";
|
|
5
|
+
import type { TeamsWebhookVerifier } from "#public/channels/teams/verify.js";
|
|
6
|
+
/** Credentials for the Teams channel and its API. */
|
|
7
|
+
export interface TeamsChannelCredentials {
|
|
8
|
+
readonly appId?: TeamsAppId;
|
|
9
|
+
readonly appPassword?: TeamsAppPassword;
|
|
10
|
+
readonly tenantId?: TeamsTenantId;
|
|
11
|
+
readonly tokenProvider?: TeamsTokenProvider;
|
|
12
|
+
readonly webhookVerifier?: TeamsWebhookVerifier;
|
|
13
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export{};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
+
import { signInEndedText } from "#channel/sign-in.js";
|
|
1
2
|
import type { SessionAuthContext } from "#channel/types.js";
|
|
2
|
-
import type { ConnectionAuthorizationOutcome } from "#protocol/message.js";
|
|
3
3
|
import { type TeamsMention } from "#public/channels/teams/api.js";
|
|
4
4
|
import type { TeamsInvokeActivity, TeamsMessageActivity } from "#public/channels/teams/inbound.js";
|
|
5
5
|
import type { TeamsChannelEvents, TeamsContext, TeamsInboundResult } from "#public/channels/teams/teamsChannel.js";
|
|
@@ -12,11 +12,7 @@ export declare const defaultEvents: TeamsChannelEvents;
|
|
|
12
12
|
/** A connection name for the Teams auth card (`linear` → `Linear`). */
|
|
13
13
|
export declare function formatConnectionDisplayName(connectionName: string): string;
|
|
14
14
|
/** Builds final-state text for a completed connection authorization attempt. */
|
|
15
|
-
export declare
|
|
16
|
-
readonly displayName: string;
|
|
17
|
-
readonly outcome: ConnectionAuthorizationOutcome;
|
|
18
|
-
readonly reason?: string;
|
|
19
|
-
}): string;
|
|
15
|
+
export declare const buildAuthCompletedText: typeof signInEndedText;
|
|
20
16
|
/** Builds a Teams mention entity and matching text for one channel account. */
|
|
21
17
|
export declare function teamsMentionUser(user: {
|
|
22
18
|
readonly id: string;
|
|
@@ -1,3 +1 @@
|
|
|
1
|
-
import{
|
|
2
|
-
`))},async"turn.failed"(e,t,n){if(e.terminal)return;let r=formatErrorHint(e),i=extractErrorId(e.details);await t.thread.post([`I hit an error while handling your request${r}.`,``,`Please try again, rephrase, or reach out if it keeps failing.`,...i?[``,`Error id: ${i}`]:[]].join(`
|
|
3
|
-
`))},async"authorization.required"(e,t,n){let r=signInAccount(e,t.state),i={adaptiveCardVersion:t.adaptiveCardVersion,replyToActivityId:t.teams.replyToActivityId,requester:r?r.name??r.id:void 0},a=await t.thread.post(t.state.conversationType===`personal`?renderTeamsAuthorizationPrompt(e,i):renderTeamsAuthorizationStatus(e,i));a.id&&(t.state.pendingAuthActivityId=a.id)},async"authorization.completed"(e,t,n){e.outcome===`authorized`&&await t.thread.startTyping();let r=t.state.pendingAuthActivityId;if(!r)return;let i=buildAuthCompletedText({displayName:teamsAuthorizationDisplayName(e),outcome:e.outcome,reason:e.reason});await t.thread.update(r,renderAnsweredInputRequestMessage({prompt:i})),t.state.pendingAuthActivityId=null}};function signInAccount(e,t){let n=e.principalId===void 0?void 0:t.approvalResponderAccounts?.[e.principalId];return n===void 0?e.candidateId===void 0?t.triggeringUser:null:n}function formatConnectionDisplayName(e){return displayProperName(e)}function buildAuthCompletedText(e){if(e.outcome===`authorized`)return`${e.displayName} connected.`;let t=e.reason===void 0?``:` (${e.reason})`;return`${e.displayName} authorization ${e.outcome}${t}.`}function teamsMentionUser(e){let t=e.name??e.id;return{mentioned:{id:e.id,name:e.name},text:`<at>${t}</at>`,type:`mention`}}export{buildAuthCompletedText,defaultEvents,defaultOnMessage,defaultTeamsAuth,formatConnectionDisplayName,teamsMentionUser};
|
|
1
|
+
import{postedIn,signInEndedText}from"#channel/sign-in.js";import{displayProperName}from"#protocol/session-projection/display-name.js";import{resolvedPromptAnswer}from"#channel/resolved-prompt.js";import{surfaceEvents}from"#channel/surface.js";import{splitTeamsMessageText}from"#public/channels/teams/api.js";import{renderAnsweredInteractionMessage,renderInteractionMessage}from"#public/channels/teams/hitl.js";import{renderTeamsAuthorizationPrompt,renderTeamsAuthorizationStatus}from"#public/channels/teams/authorization.js";function defaultTeamsAuth(e){let t=e.tenantId,n={activity_id:e.id,conversation_id:e.conversation.id,scope:e.scope,user_id:e.from.id};e.from.name!==void 0&&(n.user_name=e.from.name),e.from.aadObjectId!==void 0&&(n.aad_object_id=e.from.aadObjectId),t!==void 0&&(n.tenant_id=t),e.teamId!==void 0&&(n.team_id=e.teamId),e.teamsChannelId!==void 0&&(n.channel_id=e.teamsChannelId);let r=t?`teams:${t}:${e.from.id}`:`teams:${e.from.id}`;return{attributes:n,authenticator:`teams-activity`,issuer:t?`teams:${t}`:`teams`,principalId:r,principalType:e.from.role===`bot`?`service`:`user`,subject:e.from.aadObjectId}}async function defaultOnMessage(e,t){return t.from.role===`bot`||t.from.id===t.recipient.id||t.scope!==`personal`&&!t.isBotMentioned?null:(await e.thread.startTyping(),{auth:defaultTeamsAuth(t)})}async function showTeamsRequest(e,t){let n=await e.thread.post(renderInteractionMessage(t,{adaptiveCardVersion:e.adaptiveCardVersion,replyToActivityId:e.teams.replyToActivityId}));if(!n.id)return;let r={activityId:n.id,prompt:t.request.prompt};e.state.pendingPromptCards={...e.state.pendingPromptCards,[t.interactionId]:t.request.kind===`question`?{...r,options:(t.request.options??[]).map(({id:e,label:t})=>({id:e,label:t}))}:r}}async function settleTeamsRequest(e,t){let{[t.interactionId]:n,...r}=e.state.pendingPromptCards??{};if(n===void 0)return;let{kind:i,outcome:a,responder:o}=t,s=i===`approval`&&o!==void 0&&(a===`accepted`||a===`declined`),c=resolvedPromptAnswer(t,n.options);if(s){let t=e.state.approvalResponderAccounts?.[o.id],n=t?.name??t?.id,r=a===`accepted`?`Approved`:`Cancelled`;c=n===void 0?r:`${r} by ${n}`}await e.thread.update(n.activityId,renderAnsweredInteractionMessage({includeText:!1,label:c,prompt:n.prompt})),e.state.pendingPromptCards=r}function teamsSignIns(e){return{private:e.state.conversationType===`personal`,postChallenge:async t=>(await e.thread.post(renderTeamsAuthorizationPrompt(t,signInOptions(e,t)))).id,post:async t=>(await e.thread.post({text:t})).id,postStatus:async t=>(await e.thread.post(renderTeamsAuthorizationStatus(t,signInOptions(e,t)))).id,async edit(t,n){await e.thread.update(t,renderAnsweredInteractionMessage({prompt:n}))},typing:()=>e.thread.startTyping(),posted:postedIn(e.state,`pendingAuthActivityIds`)}}function signInOptions(e,t){let n=(t.principalId===void 0?void 0:e.state.approvalResponderAccounts?.[t.principalId])??(t.responseId===void 0?e.state.triggeringUser:null);return{adaptiveCardVersion:e.adaptiveCardVersion,replyToActivityId:e.teams.replyToActivityId,requester:n==null?void 0:n.name??n.id}}const defaultEvents=surfaceEvents({typing:e=>e.thread.startTyping(),async post(e,t){for(let n of splitTeamsMessageText(t))await e.thread.post(n)},restart:`Teams conversation`,requests:{show:showTeamsRequest,settle:settleTeamsRequest},signIns:teamsSignIns});function formatConnectionDisplayName(e){return displayProperName(e)}const buildAuthCompletedText=signInEndedText;function teamsMentionUser(e){let t=e.name??e.id;return{mentioned:{id:e.id,name:e.name},text:`<at>${t}</at>`,type:`mention`}}export{buildAuthCompletedText,defaultEvents,defaultOnMessage,defaultTeamsAuth,formatConnectionDisplayName,teamsMentionUser};
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Teams Adaptive Card rendering and decode helpers for eve HITL prompts.
|
|
3
3
|
*/
|
|
4
|
-
import { type
|
|
4
|
+
import { type ValidatedAnswer } from "#shared/input.js";
|
|
5
|
+
import type { Interaction } from "#channel/interaction-prompts.js";
|
|
5
6
|
import type { TeamsActivity } from "#public/channels/teams/inbound.js";
|
|
6
7
|
import type { TeamsAttachment, TeamsMessageBody } from "#public/channels/teams/api.js";
|
|
7
8
|
import { type JsonObject } from "#shared/json.js";
|
|
@@ -18,7 +19,7 @@ export declare const TEAMS_HITL_REQUEST_KIND_KEY = "kind";
|
|
|
18
19
|
/** Prompt carried on approval actions so a response can recover its card record. */
|
|
19
20
|
export declare const TEAMS_HITL_PROMPT_KEY = "prompt";
|
|
20
21
|
/** Renders one input request as a Teams message body containing an Adaptive Card. */
|
|
21
|
-
export declare function
|
|
22
|
+
export declare function renderInteractionMessage(request: Interaction, options?: {
|
|
22
23
|
readonly adaptiveCardVersion?: string;
|
|
23
24
|
readonly replyToActivityId?: string;
|
|
24
25
|
}): TeamsMessageBody;
|
|
@@ -27,12 +28,12 @@ export declare function renderInputRequestMessage(request: InputRequest, options
|
|
|
27
28
|
* `options.adaptiveCardVersion` sets the card schema version (default "1.5").
|
|
28
29
|
* Long prompt, choice, and action text is truncated to Teams card limits.
|
|
29
30
|
*/
|
|
30
|
-
export declare function
|
|
31
|
+
export declare function renderInteractionAttachment(request: Interaction, options?: {
|
|
31
32
|
readonly adaptiveCardVersion?: string;
|
|
32
33
|
readonly replyToActivityId?: string;
|
|
33
34
|
}): TeamsAttachment;
|
|
34
35
|
/** Renders an answered Teams card that replaces a pending HITL prompt. */
|
|
35
|
-
export declare function
|
|
36
|
+
export declare function renderAnsweredInteractionMessage(input: {
|
|
36
37
|
readonly includeText?: boolean;
|
|
37
38
|
readonly label?: string;
|
|
38
39
|
readonly prompt: string;
|
|
@@ -43,7 +44,7 @@ export declare function renderAnsweredInputRequestMessage(input: {
|
|
|
43
44
|
*/
|
|
44
45
|
export declare function renderInactiveInputRequestMessage(prompt: string | undefined, label: string): TeamsMessageBody;
|
|
45
46
|
/** Returns true when a Teams activity carries an eve HITL submit payload. */
|
|
46
|
-
export declare function
|
|
47
|
+
export declare function isTeamsAnswerActivity(activity: TeamsActivity): boolean;
|
|
47
48
|
/** Returns whether an eve HITL activity answers a tool approval. */
|
|
48
49
|
export declare function isTeamsToolApprovalResponseActivity(activity: TeamsActivity): boolean;
|
|
49
50
|
/** Reads the original prompt from a tool-approval submit activity. */
|
|
@@ -52,11 +53,11 @@ export declare function readTeamsToolApprovalPrompt(activity: TeamsActivity): st
|
|
|
52
53
|
export declare function readTeamsInputPrompt(activity: TeamsActivity): string | undefined;
|
|
53
54
|
/**
|
|
54
55
|
* Decodes the eve HITL submit payload from a Teams activity. Returns a single
|
|
55
|
-
* `
|
|
56
|
+
* `Answer` (option selection, freeform text, or a bare requestId
|
|
56
57
|
* acknowledgement), or an empty array when the activity has no recognizable
|
|
57
58
|
* HITL payload or requestId.
|
|
58
59
|
*/
|
|
59
|
-
export declare function
|
|
60
|
+
export declare function deriveTeamsAnswers(activity: TeamsActivity): readonly ValidatedAnswer[];
|
|
60
61
|
/**
|
|
61
62
|
* Builds the HTTP body Teams expects after an Adaptive Card invoke action.
|
|
62
63
|
* Defaults to statusCode 200 and message "Answer received."; `type` is always
|