@dual-os/sdk 0.0.0-stage → 0.8.0-next.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +4 -0
- package/README.md +19 -2
- package/dist/Action.d.ts +201 -0
- package/dist/Action.d.ts.map +1 -0
- package/dist/Action.js +172 -0
- package/dist/Action.js.map +1 -0
- package/dist/AgentChannel.d.ts +1717 -0
- package/dist/AgentChannel.d.ts.map +1 -0
- package/dist/AgentChannel.js +708 -0
- package/dist/AgentChannel.js.map +1 -0
- package/dist/AgentChannelConformance.d.ts +1543 -0
- package/dist/AgentChannelConformance.d.ts.map +1 -0
- package/dist/AgentChannelConformance.js +163 -0
- package/dist/AgentChannelConformance.js.map +1 -0
- package/dist/AgentChannelRuntime.d.ts +78 -0
- package/dist/AgentChannelRuntime.d.ts.map +1 -0
- package/dist/AgentChannelRuntime.js +270 -0
- package/dist/AgentChannelRuntime.js.map +1 -0
- package/dist/AiProvider.d.ts +132 -0
- package/dist/AiProvider.d.ts.map +1 -0
- package/dist/AiProvider.js +100 -0
- package/dist/AiProvider.js.map +1 -0
- package/dist/AuthMethod.d.ts +381 -0
- package/dist/AuthMethod.d.ts.map +1 -0
- package/dist/AuthMethod.js +225 -0
- package/dist/AuthMethod.js.map +1 -0
- package/dist/AuthMethodBinding.d.ts +77 -0
- package/dist/AuthMethodBinding.d.ts.map +1 -0
- package/dist/AuthMethodBinding.js +31 -0
- package/dist/AuthMethodBinding.js.map +1 -0
- package/dist/AuthMethodExecution.d.ts +223 -0
- package/dist/AuthMethodExecution.d.ts.map +1 -0
- package/dist/AuthMethodExecution.js +277 -0
- package/dist/AuthMethodExecution.js.map +1 -0
- package/dist/ConnectionResolver.d.ts +219 -0
- package/dist/ConnectionResolver.d.ts.map +1 -0
- package/dist/ConnectionResolver.js +153 -0
- package/dist/ConnectionResolver.js.map +1 -0
- package/dist/DefinitionError.d.ts +67 -0
- package/dist/DefinitionError.d.ts.map +1 -0
- package/dist/DefinitionError.js +82 -0
- package/dist/DefinitionError.js.map +1 -0
- package/dist/DualRegistry.d.ts +71 -0
- package/dist/DualRegistry.d.ts.map +1 -0
- package/dist/DualRegistry.js +96 -0
- package/dist/DualRegistry.js.map +1 -0
- package/dist/DualRuntime.d.ts +279 -0
- package/dist/DualRuntime.d.ts.map +1 -0
- package/dist/DualRuntime.js +311 -0
- package/dist/DualRuntime.js.map +1 -0
- package/dist/Files.d.ts +80 -0
- package/dist/Files.d.ts.map +1 -0
- package/dist/Files.js +66 -0
- package/dist/Files.js.map +1 -0
- package/dist/Group.d.ts +106 -0
- package/dist/Group.d.ts.map +1 -0
- package/dist/Group.js +86 -0
- package/dist/Group.js.map +1 -0
- package/dist/Http.d.ts +342 -0
- package/dist/Http.d.ts.map +1 -0
- package/dist/Http.js +677 -0
- package/dist/Http.js.map +1 -0
- package/dist/Mcp.d.ts +109 -0
- package/dist/Mcp.d.ts.map +1 -0
- package/dist/Mcp.js +176 -0
- package/dist/Mcp.js.map +1 -0
- package/dist/OAuth2TokenRefresher.d.ts +18 -0
- package/dist/OAuth2TokenRefresher.d.ts.map +1 -0
- package/dist/OAuth2TokenRefresher.js +19 -0
- package/dist/OAuth2TokenRefresher.js.map +1 -0
- package/dist/OAuthFlow.d.ts +71 -0
- package/dist/OAuthFlow.d.ts.map +1 -0
- package/dist/OAuthFlow.js +488 -0
- package/dist/OAuthFlow.js.map +1 -0
- package/dist/Plugin.d.ts +383 -0
- package/dist/Plugin.d.ts.map +1 -0
- package/dist/Plugin.js +249 -0
- package/dist/Plugin.js.map +1 -0
- package/dist/PluginRuntime.d.ts +3186 -0
- package/dist/PluginRuntime.d.ts.map +1 -0
- package/dist/PluginRuntime.js +331 -0
- package/dist/PluginRuntime.js.map +1 -0
- package/dist/Runner.d.ts +1 -0
- package/dist/Runner.js +124 -0
- package/dist/Runner.js.map +1 -0
- package/dist/ToolFile.d.ts +23 -0
- package/dist/ToolFile.d.ts.map +1 -0
- package/dist/ToolFile.js +33 -0
- package/dist/ToolFile.js.map +1 -0
- package/dist/Trigger.d.ts +358 -0
- package/dist/Trigger.d.ts.map +1 -0
- package/dist/Trigger.js +287 -0
- package/dist/Trigger.js.map +1 -0
- package/dist/_virtual/_rolldown/runtime.js +13 -0
- package/dist/index.d.ts +24 -0
- package/dist/index.js +24 -0
- package/dist/internal/auth-context.d.ts +23 -0
- package/dist/internal/auth-context.d.ts.map +1 -0
- package/dist/internal/auth-context.js +1 -0
- package/dist/internal/auth-execution.d.ts +27 -0
- package/dist/internal/auth-execution.d.ts.map +1 -0
- package/dist/internal/auth-execution.js +66 -0
- package/dist/internal/auth-execution.js.map +1 -0
- package/dist/internal/auth-runtime.d.ts +5 -0
- package/dist/internal/auth-runtime.d.ts.map +1 -0
- package/dist/internal/auth-runtime.js +16 -0
- package/dist/internal/auth-runtime.js.map +1 -0
- package/dist/internal/capabilities.d.ts +24 -0
- package/dist/internal/capabilities.d.ts.map +1 -0
- package/dist/internal/capabilities.js +22 -0
- package/dist/internal/capabilities.js.map +1 -0
- package/dist/internal/children.d.ts +34 -0
- package/dist/internal/children.d.ts.map +1 -0
- package/dist/internal/children.js +53 -0
- package/dist/internal/children.js.map +1 -0
- package/dist/internal/collection-utils.d.ts +4 -0
- package/dist/internal/collection-utils.d.ts.map +1 -0
- package/dist/internal/collection-utils.js +6 -0
- package/dist/internal/collection-utils.js.map +1 -0
- package/dist/internal/dual/actions.d.ts +33 -0
- package/dist/internal/dual/actions.d.ts.map +1 -0
- package/dist/internal/dual/actions.js +26 -0
- package/dist/internal/dual/actions.js.map +1 -0
- package/dist/internal/dual/invoke.d.ts +63 -0
- package/dist/internal/dual/invoke.d.ts.map +1 -0
- package/dist/internal/dual/invoke.js +75 -0
- package/dist/internal/dual/invoke.js.map +1 -0
- package/dist/internal/dual/registry.d.ts +125 -0
- package/dist/internal/dual/registry.d.ts.map +1 -0
- package/dist/internal/dual/registry.js +172 -0
- package/dist/internal/dual/registry.js.map +1 -0
- package/dist/internal/dual/triggers.d.ts +29 -0
- package/dist/internal/dual/triggers.d.ts.map +1 -0
- package/dist/internal/dual/triggers.js +26 -0
- package/dist/internal/dual/triggers.js.map +1 -0
- package/dist/internal/handler-context.d.ts +9 -0
- package/dist/internal/handler-context.d.ts.map +1 -0
- package/dist/internal/handler-context.js +31 -0
- package/dist/internal/handler-context.js.map +1 -0
- package/dist/internal/identifier.d.ts +6 -0
- package/dist/internal/identifier.d.ts.map +1 -0
- package/dist/internal/identifier.js +28 -0
- package/dist/internal/identifier.js.map +1 -0
- package/dist/internal/plugin-handlers.d.ts +38 -0
- package/dist/internal/plugin-handlers.d.ts.map +1 -0
- package/dist/internal/plugin-handlers.js +52 -0
- package/dist/internal/plugin-handlers.js.map +1 -0
- package/dist/internal/proto.d.ts +7 -0
- package/dist/internal/proto.d.ts.map +1 -0
- package/dist/internal/proto.js +10 -0
- package/dist/internal/proto.js.map +1 -0
- package/dist/internal/schema-runtime.d.ts +6 -0
- package/dist/internal/schema-runtime.d.ts.map +1 -0
- package/dist/internal/schema-runtime.js +10 -0
- package/dist/internal/schema-runtime.js.map +1 -0
- package/dist/internal/trigger-runtime-shared.d.ts +41 -0
- package/dist/internal/trigger-runtime-shared.d.ts.map +1 -0
- package/dist/internal/trigger-runtime-shared.js +132 -0
- package/dist/internal/trigger-runtime-shared.js.map +1 -0
- package/dist/internal/trigger-runtime.d.ts +12 -0
- package/dist/internal/trigger-runtime.d.ts.map +1 -0
- package/dist/internal/trigger-runtime.js +95 -0
- package/dist/internal/trigger-runtime.js.map +1 -0
- package/dist/internal/types.d.ts +7 -0
- package/dist/internal/types.d.ts.map +1 -0
- package/dist/internal/types.js +1 -0
- package/dist/remote-runtime.d.ts +585 -0
- package/dist/remote-runtime.d.ts.map +1 -0
- package/dist/remote-runtime.js +367 -0
- package/dist/remote-runtime.js.map +1 -0
- package/package.json +55 -4
- package/src/Action.ts +370 -0
- package/src/AgentChannel.ts +860 -0
- package/src/AgentChannelConformance.ts +124 -0
- package/src/AgentChannelRuntime.ts +616 -0
- package/src/AiProvider.ts +255 -0
- package/src/AuthMethod.ts +954 -0
- package/src/AuthMethodBinding.ts +112 -0
- package/src/AuthMethodExecution.ts +542 -0
- package/src/ConnectionResolver.ts +265 -0
- package/src/DefinitionError.ts +115 -0
- package/src/DualRegistry.ts +152 -0
- package/src/DualRuntime.ts +1081 -0
- package/src/Files.ts +89 -0
- package/src/Group.ts +292 -0
- package/src/Http.ts +1205 -0
- package/src/Mcp.ts +299 -0
- package/src/OAuth2TokenRefresher.ts +22 -0
- package/src/OAuthFlow.ts +874 -0
- package/src/Plugin.ts +912 -0
- package/src/PluginRuntime.ts +414 -0
- package/src/Runner.ts +248 -0
- package/src/ToolFile.ts +28 -0
- package/src/Trigger.ts +722 -0
- package/src/index.ts +158 -0
- package/src/internal/auth-context.ts +27 -0
- package/src/internal/auth-execution.ts +241 -0
- package/src/internal/auth-runtime.ts +20 -0
- package/src/internal/capabilities.ts +55 -0
- package/src/internal/children.ts +126 -0
- package/src/internal/collection-utils.ts +8 -0
- package/src/internal/dual/actions.ts +116 -0
- package/src/internal/dual/invoke.ts +307 -0
- package/src/internal/dual/registry.ts +340 -0
- package/src/internal/dual/triggers.ts +128 -0
- package/src/internal/handler-context.ts +57 -0
- package/src/internal/identifier.ts +27 -0
- package/src/internal/plugin-handlers.ts +146 -0
- package/src/internal/proto.ts +8 -0
- package/src/internal/schema-runtime.ts +15 -0
- package/src/internal/trigger-runtime-shared.ts +449 -0
- package/src/internal/trigger-runtime.ts +223 -0
- package/src/internal/types.ts +12 -0
- package/src/remote-runtime.ts +469 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AgentChannel.js","names":["AuthMethod.isAuthMethod"],"sources":["../src/AgentChannel.ts"],"sourcesContent":["/** Provider-neutral external Agent Channel contracts. @since 0.0.0 */\nimport type { Context, Effect, Pipeable, SchemaAST } from \"effect\";\nimport { Match, Predicate, Schema } from \"effect\";\n\nimport * as AuthMethod from \"./AuthMethod.ts\";\nimport { validateIdentifier } from \"./internal/identifier.ts\";\nimport { PipeableProto } from \"./internal/proto.ts\";\nimport * as ToolFile from \"./ToolFile.ts\";\n\nexport const TypeId = \"@dual-os/sdk/AgentChannel\" as const;\nexport type TypeId = typeof TypeId;\n\n/** Keys are opaque and installation-scoped. Never parse them into product identities. */\nexport const Key = Schema.NonEmptyString.check(\n Schema.isMaxLength(512),\n Schema.isPattern(/^[^\\p{Cc}]+$/u),\n);\n/**\n * The command and result schemas a version uses. Absent means the original protocol, whose\n * projection stays byte-identical for contracts already published with it. `v2` adds the stop\n * event, conversation reads and output operations.\n */\nexport const Protocol = Schema.Literals([\"v2\"]);\nexport type Protocol = typeof Protocol.Type;\n/** What a `v2` destination can show. Every channel shows `present_outcome`. */\nexport const OperationKind = Schema.Literals([\n \"present_outcome\",\n \"create_message\",\n \"update_message\",\n \"delete_message\",\n \"set_reaction\",\n \"set_activity\",\n \"render_plan\",\n]);\nexport type OperationKind = typeof OperationKind.Type;\nexport const Features = Schema.Struct({\n assets: Schema.Boolean,\n /** Whether replaying one durable delivery key is safe at the provider boundary. */\n deliveryMode: Schema.Literals([\"idempotent\", \"at-most-once\"]),\n deliveryState: Schema.Boolean,\n directText: Schema.Literal(true),\n groups: Schema.Boolean,\n /** Maximum Unicode code points per physical text message, including server-added prefixes. */\n maxTextLength: Schema.optionalKey(Schema.Int.check(Schema.isGreaterThan(0))),\n mentions: Schema.Boolean,\n /** `v2` only: the output operations every destination of this version shows. */\n operations: Schema.optionalKey(Schema.Array(OperationKind)),\n /** `v2` only: whether `read_context` returns the conversation's earlier messages. */\n readContext: Schema.optionalKey(Schema.Boolean),\n replies: Schema.Boolean,\n /** Maximum age of the original responding input before preparation and delivery. */\n responseWindowMs: Schema.optionalKey(Schema.Int.check(Schema.isGreaterThan(0))),\n threads: Schema.Boolean,\n});\nexport type Features = typeof Features.Type;\n\nconst HttpUrl = Schema.String.check(\n Schema.isMaxLength(8192),\n Schema.makeFilter(value => {\n const url = URL.parse(value);\n return (\n url !== null &&\n (url.protocol === \"https:\" || url.protocol === \"http:\") &&\n url.username === \"\" &&\n url.password === \"\"\n );\n }),\n);\nconst Text = Schema.String.check(Schema.isMaxLength(65_536));\nconst ExtensionKey = Schema.String.check(\n Schema.isPattern(/^[a-z0-9]+(?:-[a-z0-9]+)*\\/[a-z0-9]+(?:-[a-z0-9]+)*$/),\n);\nconst Extensions = Schema.Record(Schema.String, Schema.Json).check(\n Schema.makeFilter(values => Object.keys(values).every(Schema.is(ExtensionKey))),\n);\nexport const Destination = Schema.Struct({\n conversationKey: Key,\n kind: Schema.Literals([\"direct\", \"group\"]),\n threadKey: Schema.optionalKey(Key),\n});\nexport type Destination = typeof Destination.Type;\nexport const Asset = Schema.Struct({\n assetKey: Key,\n mediaType: Schema.NonEmptyString.check(Schema.isMaxLength(256)),\n url: HttpUrl,\n});\nexport const Content = Schema.Struct({\n assets: Schema.optionalKey(Schema.Array(Asset).check(Schema.isMaxLength(20))),\n mentions: Schema.optionalKey(Schema.Array(Key).check(Schema.isMaxLength(100))),\n replyToMessageKey: Schema.optionalKey(Key),\n text: Text,\n}).check(\n Schema.makeFilter(content => content.text.length > 0 || (content.assets?.length ?? 0) > 0),\n);\nexport type Content = typeof Content.Type;\n\n/** The body is the unmodified UTF-8 provider body, before JSON parsing/signature verification. */\nexport const Request = Schema.Struct({\n body: Schema.String.check(\n Schema.isMaxLength(1_048_576),\n Schema.makeFilter(body => new TextEncoder().encode(body).byteLength <= 1_048_576),\n ),\n headers: Schema.Record(\n Schema.NonEmptyString.check(Schema.isMaxLength(256)),\n Schema.String.check(Schema.isMaxLength(8192)),\n ),\n method: Schema.Literals([\"GET\", \"POST\", \"PUT\", \"PATCH\", \"DELETE\"]),\n url: HttpUrl,\n});\nexport type Request = typeof Request.Type;\nconst ResponseHeaders = Schema.Record(\n Schema.NonEmptyString.check(Schema.isMaxLength(256), Schema.isPattern(/^[a-z0-9-]+$/)),\n Schema.String.check(Schema.isMaxLength(8192)),\n).check(\n Schema.makeFilter(headers =>\n Object.keys(headers).every(name => name === \"content-type\" || name === \"cache-control\"),\n ),\n);\n/** Bounded provider-required webhook response, returned only after request verification. */\nexport const WebhookResponse = Schema.Struct({\n body: Schema.String.check(\n Schema.isMaxLength(65_536),\n Schema.makeFilter(body => new TextEncoder().encode(body).byteLength <= 65_536),\n ),\n headers: Schema.optionalKey(ResponseHeaders),\n status: Schema.Int.check(Schema.isBetween({ maximum: 299, minimum: 200 })),\n});\nexport type WebhookResponse = typeof WebhookResponse.Type;\nexport const Timestamp = Schema.String.check(\n Schema.isMaxLength(64),\n Schema.isPattern(/^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(?:\\.\\d+)?(?:Z|[+-]\\d{2}:\\d{2})$/),\n Schema.makeFilter(value => {\n const year = Number(value.slice(0, 4));\n const month = Number(value.slice(5, 7));\n const day = Number(value.slice(8, 10));\n const leap = year % 4 === 0 && (year % 100 !== 0 || year % 400 === 0);\n const days = month === 2 ? (leap ? 29 : 28) : [4, 6, 9, 11].includes(month) ? 30 : 31;\n return (\n month >= 1 &&\n month <= 12 &&\n day >= 1 &&\n day <= days &&\n Number(value.slice(11, 13)) < 24 &&\n Number(value.slice(14, 16)) < 60 &&\n Number(value.slice(17, 19)) < 60 &&\n Schema.decodeUnknownExit(Schema.DateTimeUtcFromString)(value)._tag === \"Success\"\n );\n }),\n);\nexport const VerifiedIdentity = Schema.Struct({ conversation: Destination, senderKey: Key });\nexport type VerifiedIdentity = typeof VerifiedIdentity.Type;\nexport const AccessOutcome = Schema.Struct({ decision: Schema.Literals([\"allow\", \"deny\"]) });\nexport type AccessOutcome = typeof AccessOutcome.Type;\nexport const Verification = Schema.Struct({ verified: Schema.Literal(true) });\nexport type Verification = typeof Verification.Type;\nexport const Exposure = Schema.Literals([\"webhook\", \"host\"]);\nexport const RequiredChecks = Schema.Tuple([Schema.Literal(\"access\")]);\nexport const Message = Schema.Struct({\n content: Content,\n conversation: Destination,\n eventKey: Key,\n extensions: Schema.optionalKey(Extensions),\n kind: Schema.Literal(\"message\"),\n messageKey: Key,\n respond: Schema.Boolean,\n senderKey: Key,\n timestamp: Timestamp,\n});\nexport const DeliveryUpdate = Schema.Struct({\n deliveryKey: Key,\n deliveryUpdateKey: Key,\n eventKey: Key,\n extensions: Schema.optionalKey(Extensions),\n kind: Schema.Literal(\"delivery_update\"),\n providerDeliveryKey: Key,\n sequence: Schema.Natural,\n status: Schema.Literals([\"succeeded\", \"failed\"]),\n timestamp: Timestamp,\n});\n/** Provider-confirmed own output. No content is accepted or added to conversation history. */\nexport const Echo = Schema.Struct({\n ...VerifiedIdentity.fields,\n eventKey: Key,\n extensions: Schema.optionalKey(Extensions),\n kind: Schema.Literal(\"echo\"),\n messageKey: Key,\n timestamp: Timestamp,\n});\nexport const Event = Schema.Union([Message, Echo, DeliveryUpdate]);\nexport type Event = typeof Event.Type;\n/** `v2`: the sender asked the agent to stop working in this conversation. Access applies. */\nexport const Stop = Schema.Struct({\n ...VerifiedIdentity.fields,\n eventKey: Key,\n extensions: Schema.optionalKey(Extensions),\n kind: Schema.Literal(\"stop\"),\n timestamp: Timestamp,\n});\nexport const EventV2 = Schema.Union([Message, Echo, DeliveryUpdate, Stop]);\nexport type EventV2 = typeof EventV2.Type;\n\n/** The reactions every `v2` provider can show. Each provider maps them to its own emoji. */\nexport const Reaction = Schema.Literals([\n \"thumbs_up\",\n \"thumbs_down\",\n \"laugh\",\n \"confused\",\n \"heart\",\n \"hooray\",\n \"rocket\",\n \"eyes\",\n]);\nexport type Reaction = typeof Reaction.Type;\nconst ShortText = Schema.NonEmptyString.check(Schema.isMaxLength(200));\nexport const PlanItem = Schema.Struct({\n itemKey: Key,\n note: Schema.optionalKey(Schema.NonEmptyString.check(Schema.isMaxLength(2000))),\n state: Schema.Literals([\"pending\", \"in_progress\", \"completed\", \"failed\"]),\n title: Schema.NonEmptyString.check(Schema.isMaxLength(256)),\n});\n/** A whole task list, always sent complete. Item keys are unique and stable across revisions. */\nexport const Plan = Schema.Struct({\n items: Schema.Array(PlanItem).check(\n Schema.isMaxLength(50),\n Schema.makeFilter(items => new Set(items.map(item => item.itemKey)).size === items.length),\n ),\n title: Schema.optionalKey(Schema.NonEmptyString.check(Schema.isMaxLength(256))),\n});\nexport type Plan = typeof Plan.Type;\n/**\n * One piece of `v2` output. A `reference` is the `providerDeliveryKey` the provider returned for\n * the message or plan it made; only that provider reads it.\n */\nexport const Operation = Schema.Union([\n /**\n * End the turn. `awaiting_input` ends it with a question, optionally with choices. The\n * provider clears any activity it shows. Earlier parts of a long text arrive as\n * `create_message` operations.\n */\n Schema.Struct({\n kind: Schema.Literal(\"present_outcome\"),\n options: Schema.optionalKey(Schema.Array(ShortText).check(Schema.isMaxLength(10))),\n outcome: Schema.Literals([\"completed\", \"failed\", \"awaiting_input\"]),\n text: Text,\n }).check(\n Schema.makeFilter(\n operation => operation.options === undefined || operation.outcome === \"awaiting_input\",\n ),\n ),\n Schema.Struct({\n kind: Schema.Literal(\"create_message\"),\n messageKey: Key,\n text: Text.check(Schema.isMinLength(1)),\n }),\n Schema.Struct({\n kind: Schema.Literal(\"update_message\"),\n messageKey: Key,\n reference: Key,\n text: Text.check(Schema.isMinLength(1)),\n }),\n Schema.Struct({ kind: Schema.Literal(\"delete_message\"), messageKey: Key, reference: Key }),\n /** Make the agent's reaction present (`active`) or absent. Desired state: repeating is safe. */\n Schema.Struct({\n active: Schema.Boolean,\n kind: Schema.Literal(\"set_reaction\"),\n reaction: Reaction,\n target: Schema.Union([\n /** The message that started the turn: `activationMessageKey` of the command. */\n Schema.Struct({ kind: Schema.Literal(\"activation\") }),\n Schema.Struct({ kind: Schema.Literal(\"message\"), reference: Key }),\n ]),\n }),\n /** What the agent is doing now, such as a typing indicator or a status line. Latest wins. */\n Schema.Struct({\n activity: Schema.Union([\n Schema.Struct({ kind: Schema.Literal(\"working\"), text: Schema.optionalKey(ShortText) }),\n Schema.Struct({ kind: Schema.Literal(\"idle\") }),\n ]),\n kind: Schema.Literal(\"set_activity\"),\n }),\n /** Show this revision of the plan, replacing the one at `reference` when there is one. */\n Schema.Struct({\n kind: Schema.Literal(\"render_plan\"),\n plan: Plan,\n reference: Schema.optionalKey(Key),\n revision: Schema.Int.check(Schema.isGreaterThan(0)),\n }),\n]);\nexport type Operation = typeof Operation.Type;\n/** A message read back from the provider's conversation history. */\nexport const ContextMessage = Schema.Struct({\n messageKey: Key,\n /** The agent's own message. */\n own: Schema.Boolean,\n senderKey: Key,\n senderName: Schema.optionalKey(Schema.NonEmptyString.check(Schema.isMaxLength(256))),\n text: Text,\n timestamp: Timestamp,\n});\nexport type ContextMessage = typeof ContextMessage.Type;\n/** Decoded originals are limited separately by the host; ordinary command JSON stays bounded. */\nexport const AssetFile = ToolFile.Schema.check(\n Schema.makeFilter(\n file =>\n file.sizeBytes > 0 && file.sizeBytes <= 10_485_760 && file.contentBase64.length <= 13_981_016,\n ),\n);\n\n/** Closed error vocabulary: provider messages, payloads, and causes never cross this seam. */\nexport const FailureCode = Schema.Literals([\n \"rejected\",\n \"unauthorized\",\n \"rate_limited\",\n \"unavailable\",\n \"unknown_completion\",\n /** The provider definitely refused this send because its delivery window was closed. */\n \"window_closed\",\n]);\nexport class HandlerError extends Schema.TaggedError<HandlerError>()(\"AgentChannelHandlerError\", {\n code: FailureCode,\n}) {}\nexport const ErrorCode = Schema.Literals([\n \"invalid_definition\",\n \"not_found\",\n \"invalid_input\",\n \"invalid_auth\",\n \"unsupported_feature\",\n \"invalid_result\",\n \"handler_unavailable\",\n \"provider_failure\",\n]);\nexport class ChannelError extends Schema.TaggedError<ChannelError>()(\"AgentChannelError\", {\n code: ErrorCode,\n providerCode: Schema.optionalKey(FailureCode),\n}) {\n override get message(): string {\n return `Agent Channel ${this.code}`;\n }\n}\n\nconst installedCommandSchema = <State extends Schema.Top>(state: State) => {\n const operation = { extensions: Schema.optionalKey(Extensions), operationKey: Key };\n const installed = { ...operation, installationKey: Key, state };\n return Schema.Union([\n Schema.Struct({\n kind: Schema.Literal(\"activate\"),\n ...operation,\n ingressUrl: HttpUrl,\n state: Schema.optionalKey(state),\n }),\n Schema.Struct({ kind: Schema.Literal(\"deactivate\"), ...installed }),\n Schema.Struct({ kind: Schema.Literal(\"receive\"), ...installed, request: Request }),\n Schema.Struct({\n kind: Schema.Literal(\"deliver\"),\n ...installed,\n deliveryKey: Key,\n destination: Destination,\n content: Content,\n /** Original responding input timestamp; retries must preserve this reference. */\n responseToTimestamp: Schema.optionalKey(Timestamp),\n }),\n ]);\n};\n\nconst installedCommandSchemaV2 = <State extends Schema.Top>(state: State) => {\n const operation = { extensions: Schema.optionalKey(Extensions), operationKey: Key };\n const installed = { ...operation, installationKey: Key, state };\n return Schema.Union([\n Schema.Struct({\n kind: Schema.Literal(\"activate\"),\n ...operation,\n ingressUrl: HttpUrl,\n state: Schema.optionalKey(state),\n }),\n Schema.Struct({ kind: Schema.Literal(\"deactivate\"), ...installed }),\n Schema.Struct({ kind: Schema.Literal(\"receive\"), ...installed, request: Request }),\n Schema.Struct({\n kind: Schema.Literal(\"deliver\"),\n ...installed,\n /** The provider message that started the turn, when the host knows it. */\n activationMessageKey: Schema.optionalKey(Key),\n deliveryKey: Key,\n destination: Destination,\n operation: Operation,\n /** Original responding input timestamp; retries must preserve this reference. */\n responseToTimestamp: Schema.optionalKey(Timestamp),\n }),\n /** The conversation's latest messages, oldest first, at most `limit`. */\n Schema.Struct({\n kind: Schema.Literal(\"read_context\"),\n ...installed,\n destination: Destination,\n limit: Schema.Int.check(Schema.isBetween({ maximum: 200, minimum: 1 })),\n }),\n ]);\n};\n\nconst installedResultSchema = <State extends Schema.Top>(state: State) => {\n const operation = { extensions: Schema.optionalKey(Extensions), operationKey: Key };\n return Schema.Union([\n Schema.Struct({\n kind: Schema.Literal(\"activate\"),\n ...operation,\n installationKey: Key,\n state,\n /** Durable read-only provider state that the host must persist before retrying activation. */\n checkpoint: Schema.optionalKey(Schema.Literal(true)),\n /** The host must observe a verified webhook handshake before cutover. */\n verification: Schema.optionalKey(Schema.Literal(\"ingress\")),\n }),\n Schema.Struct({ kind: Schema.Literal(\"deactivate\"), ...operation }),\n Schema.Struct({\n kind: Schema.Literal(\"receive\"),\n ...operation,\n verified: Schema.Literal(true),\n deniedEventKeys: Schema.optionalKey(Schema.Array(Key).check(Schema.isMaxLength(100))),\n events: Schema.Array(Event).check(Schema.isMaxLength(100)),\n response: Schema.optionalKey(WebhookResponse),\n /** A provider-native setup challenge or ping proved the configured ingress. */\n activationProof: Schema.optionalKey(Schema.Literal(\"verified\")),\n }),\n Schema.Struct({\n kind: Schema.Literal(\"deliver\"),\n ...operation,\n deliveryKey: Key,\n status: Schema.Literal(\"succeeded\"),\n providerDeliveryKey: Key,\n }),\n Schema.Struct({\n kind: Schema.Literal(\"deliver\"),\n ...operation,\n deliveryKey: Key,\n status: Schema.Literal(\"pending\"),\n providerDeliveryKey: Key,\n }),\n Schema.Struct({\n kind: Schema.Literal(\"deliver\"),\n ...operation,\n deliveryKey: Key,\n status: Schema.Literal(\"failed\"),\n code: Schema.Literals([\n \"rejected\",\n \"unauthorized\",\n \"rate_limited\",\n \"unavailable\",\n \"window_closed\",\n ]),\n }),\n ]);\n};\n// `v2` keeps every `v1` result except `receive`, which also carries stop events.\nconst installedResultSchemaV2 = <State extends Schema.Top>(state: State) => {\n const operation = { extensions: Schema.optionalKey(Extensions), operationKey: Key };\n return Schema.Union([\n Schema.Struct({\n kind: Schema.Literal(\"activate\"),\n ...operation,\n installationKey: Key,\n state,\n /** Durable read-only provider state that the host must persist before retrying activation. */\n checkpoint: Schema.optionalKey(Schema.Literal(true)),\n /** The host must observe a verified webhook handshake before cutover. */\n verification: Schema.optionalKey(Schema.Literal(\"ingress\")),\n }),\n Schema.Struct({ kind: Schema.Literal(\"deactivate\"), ...operation }),\n Schema.Struct({\n kind: Schema.Literal(\"receive\"),\n ...operation,\n verified: Schema.Literal(true),\n deniedEventKeys: Schema.optionalKey(Schema.Array(Key).check(Schema.isMaxLength(100))),\n events: Schema.Array(EventV2).check(Schema.isMaxLength(100)),\n response: Schema.optionalKey(WebhookResponse),\n /** A provider-native setup challenge or ping proved the configured ingress. */\n activationProof: Schema.optionalKey(Schema.Literal(\"verified\")),\n }),\n Schema.Struct({\n kind: Schema.Literal(\"deliver\"),\n ...operation,\n deliveryKey: Key,\n status: Schema.Literal(\"succeeded\"),\n providerDeliveryKey: Key,\n }),\n Schema.Struct({\n kind: Schema.Literal(\"deliver\"),\n ...operation,\n deliveryKey: Key,\n status: Schema.Literal(\"pending\"),\n providerDeliveryKey: Key,\n }),\n Schema.Struct({\n kind: Schema.Literal(\"deliver\"),\n ...operation,\n deliveryKey: Key,\n status: Schema.Literal(\"failed\"),\n code: Schema.Literals([\n \"rejected\",\n \"unauthorized\",\n \"rate_limited\",\n \"unavailable\",\n \"window_closed\",\n ]),\n }),\n Schema.Struct({\n kind: Schema.Literal(\"read_context\"),\n ...operation,\n messages: Schema.Array(ContextMessage).check(Schema.isMaxLength(200)),\n }),\n ]);\n};\nconst readAssetCommand = <State extends Schema.Top>(state: State) =>\n Schema.Struct({\n asset: Asset,\n extensions: Schema.optionalKey(Extensions),\n identity: VerifiedIdentity,\n installationKey: Key,\n kind: Schema.Literal(\"read_asset\"),\n operationKey: Key,\n state,\n });\nconst readAssetResult = Schema.Struct({\n assetKey: Key,\n extensions: Schema.optionalKey(Extensions),\n file: AssetFile,\n kind: Schema.Literal(\"read_asset\"),\n operationKey: Key,\n});\nexport const commandSchema = <State extends Schema.Top>(state: State) =>\n Schema.Union([installedCommandSchema(state), readAssetCommand(state)]);\nexport const resultSchema = <State extends Schema.Top>(state: State) =>\n Schema.Union([installedResultSchema(state), readAssetResult]);\nexport const commandSchemaV2 = <State extends Schema.Top>(state: State) =>\n Schema.Union([installedCommandSchemaV2(state), readAssetCommand(state)]);\nexport const resultSchemaV2 = <State extends Schema.Top>(state: State) =>\n Schema.Union([installedResultSchemaV2(state), readAssetResult]);\nexport type Command<State extends Schema.Top = Schema.Unknown> = ReturnType<\n typeof commandSchema<State>\n>[\"Type\"];\nexport type Result<State extends Schema.Top = Schema.Unknown> = ReturnType<\n typeof resultSchema<State>\n>[\"Type\"];\nexport type CommandV2<State extends Schema.Top = Schema.Unknown> = ReturnType<\n typeof commandSchemaV2<State>\n>[\"Type\"];\nexport type ResultV2<State extends Schema.Top = Schema.Unknown> = ReturnType<\n typeof resultSchemaV2<State>\n>[\"Type\"];\n/** The command and result schemas of a Channel's protocol. */\nexport const schemasFor = (definition: Pick<Definition, \"protocol\" | \"state\">) =>\n definition.protocol === \"v2\"\n ? {\n command: commandSchemaV2(definition.state),\n result: resultSchemaV2(definition.state),\n typeResult: resultSchemaV2(Schema.toType(definition.state)),\n }\n : {\n command: commandSchema(definition.state),\n result: resultSchema(definition.state),\n typeResult: resultSchema(Schema.toType(definition.state)),\n };\n\n/**\n * Encoded, JSON-safe runtime result suitable for host persistence. It accepts both protocols;\n * a `v1` result decodes unchanged.\n */\nexport const CheckedResult = resultSchemaV2(Schema.Json);\nexport type CheckedResult = typeof CheckedResult.Type;\n\n/** Immutable catalog projection. Live schemas remain the execution validators. */\nexport const Contract = Schema.Struct({\n definitionSettingsSchemaJson: Schema.Json,\n deploymentSettingsSchemaJson: Schema.Json,\n exposure: Exposure,\n extensionsSchemaJson: Schema.Record(Schema.String, Schema.Json),\n featuresJson: Features,\n operationInputSchemaJson: Schema.Json,\n operationOutputSchemaJson: Schema.Json,\n protocol: Schema.optionalKey(Protocol),\n requiredChecks: RequiredChecks,\n stateSchemaJson: Schema.Json,\n});\nexport type Contract = typeof Contract.Type;\n\nexport interface Definition<\n Settings extends Schema.Top = Schema.Top,\n Mappings extends Schema.Top = Schema.Top,\n State extends Schema.Top = Schema.Top,\n Methods extends readonly AuthMethod.Any[] = readonly AuthMethod.Any[],\n> {\n /** Absent for the original protocol. Publish a new release to change it. */\n readonly protocol?: Protocol;\n readonly definitionSettings: Settings;\n readonly deploymentSettings: Mappings;\n readonly state: State;\n readonly features: Features;\n readonly exposure: typeof Exposure.Type;\n readonly requiredChecks: typeof RequiredChecks.Type;\n /** Explicit subset of the provider's methods; [] means the channel accepts no connection. */\n readonly authMethods: Methods;\n /** Each key is provider/name. Values are checked on every command/result/event. */\n readonly extensions?: Readonly<Record<string, Schema.Top>>;\n}\n/** Project the exact declaration once for SDK discovery and server contract comparison. */\nexport const projectContract = (\n definition: Definition,\n project: (schema: Schema.Top) => unknown = schema =>\n Schema.toJsonSchemaDocument(schema, { onExcessProperty: \"error\" }),\n): Contract => {\n const schemas = schemasFor(definition);\n return Schema.decodeUnknownSync(Contract)(\n {\n definitionSettingsSchemaJson: project(definition.definitionSettings),\n deploymentSettingsSchemaJson: project(definition.deploymentSettings),\n exposure: definition.exposure,\n extensionsSchemaJson: Object.fromEntries(\n Object.entries(definition.extensions ?? {}).map(([key, schema]) => [key, project(schema)]),\n ),\n featuresJson: definition.features,\n operationInputSchemaJson: project(schemas.command),\n operationOutputSchemaJson: project(schemas.result),\n ...(definition.protocol === undefined ? {} : { protocol: definition.protocol }),\n requiredChecks: definition.requiredChecks,\n stateSchemaJson: project(definition.state),\n },\n { onExcessProperty: \"error\" },\n );\n};\nexport interface Any extends Pipeable.Pipeable {\n readonly [TypeId]: TypeId;\n readonly identifier: string;\n readonly name: string | undefined;\n readonly description: string | undefined;\n readonly definition: Definition;\n}\nexport interface AgentChannel<\n out Identifier extends string = string,\n out D extends Definition = Definition,\n> extends Any {\n readonly identifier: Identifier;\n readonly definition: D;\n}\nexport type ResolvedAuth<Methods extends readonly AuthMethod.Any[]> =\n Methods[number] extends infer M\n ? M extends AuthMethod.Any\n ? { readonly methodId: M[\"identifier\"]; readonly value: AuthMethod.Value<M> }\n : never\n : never;\nexport type HandlerContext<D extends Definition> = {\n readonly definitionSettings: D[\"definitionSettings\"][\"Type\"];\n readonly deploymentSettings: D[\"deploymentSettings\"][\"Type\"];\n} & (D[\"authMethods\"] extends readonly []\n ? {}\n : number extends D[\"authMethods\"][\"length\"]\n ? { readonly auth?: ResolvedAuth<D[\"authMethods\"]> }\n : { readonly auth: ResolvedAuth<D[\"authMethods\"]> });\n/** The command a Channel's handler receives, by its protocol. */\nexport type CommandFor<D extends Definition> = D extends { readonly protocol: \"v2\" }\n ? CommandV2<D[\"state\"]>\n : Command<D[\"state\"]>;\n/** The result a Channel's handler returns, by its protocol. */\nexport type ResultFor<D extends Definition> = D extends { readonly protocol: \"v2\" }\n ? ResultV2<D[\"state\"]>\n : Result<D[\"state\"]>;\nexport interface RuntimeContract<D extends Definition, R = never> {\n readonly verify: (\n request: Request,\n context: HandlerContext<D>,\n ) => Effect.Effect<Verification, HandlerError, R>;\n readonly checkAccess: (\n identity: VerifiedIdentity,\n context: HandlerContext<D>,\n ) => Effect.Effect<AccessOutcome, HandlerError, R>;\n readonly execute: (\n command: CommandFor<D>,\n context: HandlerContext<D>,\n ) => Effect.Effect<ResultFor<D>, HandlerError, R>;\n}\n/** Erased service representation. Input and output are checked by AgentChannelRuntime. */\nexport interface Handler<Id extends string = string> {\n readonly channelId: Id;\n readonly context: Context.Context<never>;\n readonly runtime: {\n readonly verify: (\n request: unknown,\n context: unknown,\n ) => Effect.Effect<unknown, unknown, unknown>;\n readonly checkAccess: (\n identity: unknown,\n context: unknown,\n ) => Effect.Effect<unknown, unknown, unknown>;\n readonly execute: (\n command: unknown,\n context: unknown,\n ) => Effect.Effect<unknown, unknown, unknown>;\n };\n}\nexport const handlerKey = (channelId: string): string =>\n `@dual-os/sdk/AgentChannel/Handler/${channelId}`;\n\nconst SchemaDefinition = Schema.declare(Schema.isSchema);\n// Fail closed on holes such as Unknown nested inside an otherwise typed state schema.\nconst checkSchema = (schema: Schema.Top, allowOpaque = false): void => {\n const seen = new Set<SchemaAST.AST>();\n const visit = (ast: SchemaAST.AST): void => {\n if (seen.has(ast)) return;\n seen.add(ast);\n if (\n ast.annotations?.[\"parseOptions\"] !== undefined ||\n (ast.checks?.some(check => check.annotations?.[\"parseOptions\"] !== undefined) ?? false)\n ) {\n throw new ChannelError({ code: \"invalid_definition\" });\n }\n ast.encoding?.forEach(link => {\n visit(link.to);\n });\n Match.value(ast).pipe(\n Match.tag(\"Unknown\", \"Any\", \"ObjectKeyword\", () => {\n throw new ChannelError({ code: \"invalid_definition\" });\n }),\n Match.tag(\"Declaration\", declaration => {\n if (!allowOpaque) throw new ChannelError({ code: \"invalid_definition\" });\n declaration.typeParameters.forEach(visit);\n }),\n Match.tag(\"Objects\", objects => {\n objects.propertySignatures.forEach(property => visit(property.type));\n objects.indexSignatures.forEach(index => {\n // Filtered keys may disappear silently; a channel contract must retain them.\n if (\n index.parameter._tag !== \"String\" ||\n index.parameter.checks !== undefined ||\n index.parameter.encoding !== undefined\n ) {\n throw new ChannelError({ code: \"invalid_definition\" });\n }\n visit(index.parameter);\n visit(index.type);\n });\n }),\n Match.tag(\"Arrays\", arrays => {\n arrays.elements.forEach(visit);\n arrays.rest.forEach(visit);\n }),\n Match.tag(\"Union\", union => {\n union.types.forEach(visit);\n }),\n Match.tag(\"Suspend\", suspend => {\n visit(suspend.thunk());\n }),\n Match.orElse(() => undefined),\n );\n };\n visit(schema.ast);\n};\nconst DefinitionSchema = Schema.Struct({\n authMethods: Schema.Array(Schema.declare(AuthMethod.isAuthMethod)),\n definitionSettings: SchemaDefinition,\n deploymentSettings: SchemaDefinition,\n exposure: Exposure,\n extensions: Schema.optionalKey(\n Schema.Record(Schema.String, SchemaDefinition).check(\n Schema.makeFilter(values => Object.keys(values).every(Schema.is(ExtensionKey))),\n ),\n ),\n features: Features,\n protocol: Schema.optionalKey(Protocol),\n requiredChecks: RequiredChecks,\n state: SchemaDefinition,\n}).check(\n Schema.makeFilter(({ features, protocol }) => {\n if (protocol === undefined) {\n return features.operations === undefined && features.readContext === undefined;\n }\n const operations = features.operations ?? [];\n return (\n operations.includes(\"present_outcome\") &&\n new Set(operations).size === operations.length &&\n // A long text arrives as messages before its outcome.\n (features.maxTextLength === undefined || operations.includes(\"create_message\"))\n );\n }),\n);\n\n/** Validate declarations at registration as well as at builder time. */\nexport const validateDefinition = (\n definition: Definition,\n providerId?: string,\n methods?: readonly AuthMethod.Any[],\n): void => {\n try {\n Schema.decodeUnknownSync(DefinitionSchema)(definition, { onExcessProperty: \"error\" });\n for (const schema of [\n definition.definitionSettings,\n definition.deploymentSettings,\n definition.state,\n ...Object.values(definition.extensions ?? {}),\n ]) {\n // A JSON projection must exist; it is catalog metadata, never the execution validator.\n checkSchema(schema);\n Schema.toJsonSchemaDocument(schema);\n }\n const seen = new Set<string>();\n for (const method of definition.authMethods) {\n if (seen.has(method.identifier) || (methods !== undefined && !methods.includes(method))) {\n throw new ChannelError({ code: \"invalid_definition\" });\n }\n seen.add(method.identifier);\n Schema.decodeUnknownSync(SchemaDefinition)(method.material);\n Schema.decodeUnknownSync(SchemaDefinition)(method.value);\n for (const schema of [\n method.material,\n method.value,\n ...(method.setup === undefined ? [] : [method.setup]),\n ]) {\n checkSchema(schema, true);\n }\n }\n if (\n providerId !== undefined &&\n Object.keys(definition.extensions ?? {}).some(key => !key.startsWith(`${providerId}/`))\n ) {\n throw new ChannelError({ code: \"invalid_definition\" });\n }\n } catch {\n throw new ChannelError({ code: \"invalid_definition\" });\n }\n};\n\nexport interface ChannelOptions {\n readonly name?: string;\n readonly description?: string;\n}\n\n/** Create a Channel from its contract. */\nexport const make = <const Id extends string, const O extends Definition & ChannelOptions>(\n identifier: Id,\n options: O,\n): AgentChannel<Id, O> => {\n validateIdentifier(\"agent-channel\", identifier);\n const { description, name, ...definition }: Definition & ChannelOptions = options;\n validateDefinition(definition);\n return {\n ...PipeableProto,\n [TypeId]: TypeId,\n definition: Object.freeze({\n ...definition,\n authMethods: Object.freeze([...definition.authMethods]),\n features: Object.freeze({ ...definition.features }),\n requiredChecks: Object.freeze([...definition.requiredChecks]),\n ...(definition.extensions === undefined\n ? {}\n : { extensions: Object.freeze({ ...definition.extensions }) }),\n }),\n description,\n identifier,\n name,\n } as AgentChannel<Id, O>;\n};\nexport const isAgentChannel = (value: unknown): value is Any =>\n Predicate.hasProperty(value, TypeId);\n\nexport * as AgentChannel from \"./AgentChannel.ts\";\n"],"mappings":"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"}
|