@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.
Files changed (214) hide show
  1. package/LICENSE +4 -0
  2. package/README.md +19 -2
  3. package/dist/Action.d.ts +201 -0
  4. package/dist/Action.d.ts.map +1 -0
  5. package/dist/Action.js +172 -0
  6. package/dist/Action.js.map +1 -0
  7. package/dist/AgentChannel.d.ts +1717 -0
  8. package/dist/AgentChannel.d.ts.map +1 -0
  9. package/dist/AgentChannel.js +708 -0
  10. package/dist/AgentChannel.js.map +1 -0
  11. package/dist/AgentChannelConformance.d.ts +1543 -0
  12. package/dist/AgentChannelConformance.d.ts.map +1 -0
  13. package/dist/AgentChannelConformance.js +163 -0
  14. package/dist/AgentChannelConformance.js.map +1 -0
  15. package/dist/AgentChannelRuntime.d.ts +78 -0
  16. package/dist/AgentChannelRuntime.d.ts.map +1 -0
  17. package/dist/AgentChannelRuntime.js +270 -0
  18. package/dist/AgentChannelRuntime.js.map +1 -0
  19. package/dist/AiProvider.d.ts +132 -0
  20. package/dist/AiProvider.d.ts.map +1 -0
  21. package/dist/AiProvider.js +100 -0
  22. package/dist/AiProvider.js.map +1 -0
  23. package/dist/AuthMethod.d.ts +381 -0
  24. package/dist/AuthMethod.d.ts.map +1 -0
  25. package/dist/AuthMethod.js +225 -0
  26. package/dist/AuthMethod.js.map +1 -0
  27. package/dist/AuthMethodBinding.d.ts +77 -0
  28. package/dist/AuthMethodBinding.d.ts.map +1 -0
  29. package/dist/AuthMethodBinding.js +31 -0
  30. package/dist/AuthMethodBinding.js.map +1 -0
  31. package/dist/AuthMethodExecution.d.ts +223 -0
  32. package/dist/AuthMethodExecution.d.ts.map +1 -0
  33. package/dist/AuthMethodExecution.js +277 -0
  34. package/dist/AuthMethodExecution.js.map +1 -0
  35. package/dist/ConnectionResolver.d.ts +219 -0
  36. package/dist/ConnectionResolver.d.ts.map +1 -0
  37. package/dist/ConnectionResolver.js +153 -0
  38. package/dist/ConnectionResolver.js.map +1 -0
  39. package/dist/DefinitionError.d.ts +67 -0
  40. package/dist/DefinitionError.d.ts.map +1 -0
  41. package/dist/DefinitionError.js +82 -0
  42. package/dist/DefinitionError.js.map +1 -0
  43. package/dist/DualRegistry.d.ts +71 -0
  44. package/dist/DualRegistry.d.ts.map +1 -0
  45. package/dist/DualRegistry.js +96 -0
  46. package/dist/DualRegistry.js.map +1 -0
  47. package/dist/DualRuntime.d.ts +279 -0
  48. package/dist/DualRuntime.d.ts.map +1 -0
  49. package/dist/DualRuntime.js +311 -0
  50. package/dist/DualRuntime.js.map +1 -0
  51. package/dist/Files.d.ts +80 -0
  52. package/dist/Files.d.ts.map +1 -0
  53. package/dist/Files.js +66 -0
  54. package/dist/Files.js.map +1 -0
  55. package/dist/Group.d.ts +106 -0
  56. package/dist/Group.d.ts.map +1 -0
  57. package/dist/Group.js +86 -0
  58. package/dist/Group.js.map +1 -0
  59. package/dist/Http.d.ts +342 -0
  60. package/dist/Http.d.ts.map +1 -0
  61. package/dist/Http.js +677 -0
  62. package/dist/Http.js.map +1 -0
  63. package/dist/Mcp.d.ts +109 -0
  64. package/dist/Mcp.d.ts.map +1 -0
  65. package/dist/Mcp.js +176 -0
  66. package/dist/Mcp.js.map +1 -0
  67. package/dist/OAuth2TokenRefresher.d.ts +18 -0
  68. package/dist/OAuth2TokenRefresher.d.ts.map +1 -0
  69. package/dist/OAuth2TokenRefresher.js +19 -0
  70. package/dist/OAuth2TokenRefresher.js.map +1 -0
  71. package/dist/OAuthFlow.d.ts +71 -0
  72. package/dist/OAuthFlow.d.ts.map +1 -0
  73. package/dist/OAuthFlow.js +488 -0
  74. package/dist/OAuthFlow.js.map +1 -0
  75. package/dist/Plugin.d.ts +383 -0
  76. package/dist/Plugin.d.ts.map +1 -0
  77. package/dist/Plugin.js +249 -0
  78. package/dist/Plugin.js.map +1 -0
  79. package/dist/PluginRuntime.d.ts +3186 -0
  80. package/dist/PluginRuntime.d.ts.map +1 -0
  81. package/dist/PluginRuntime.js +331 -0
  82. package/dist/PluginRuntime.js.map +1 -0
  83. package/dist/Runner.d.ts +1 -0
  84. package/dist/Runner.js +124 -0
  85. package/dist/Runner.js.map +1 -0
  86. package/dist/ToolFile.d.ts +23 -0
  87. package/dist/ToolFile.d.ts.map +1 -0
  88. package/dist/ToolFile.js +33 -0
  89. package/dist/ToolFile.js.map +1 -0
  90. package/dist/Trigger.d.ts +358 -0
  91. package/dist/Trigger.d.ts.map +1 -0
  92. package/dist/Trigger.js +287 -0
  93. package/dist/Trigger.js.map +1 -0
  94. package/dist/_virtual/_rolldown/runtime.js +13 -0
  95. package/dist/index.d.ts +24 -0
  96. package/dist/index.js +24 -0
  97. package/dist/internal/auth-context.d.ts +23 -0
  98. package/dist/internal/auth-context.d.ts.map +1 -0
  99. package/dist/internal/auth-context.js +1 -0
  100. package/dist/internal/auth-execution.d.ts +27 -0
  101. package/dist/internal/auth-execution.d.ts.map +1 -0
  102. package/dist/internal/auth-execution.js +66 -0
  103. package/dist/internal/auth-execution.js.map +1 -0
  104. package/dist/internal/auth-runtime.d.ts +5 -0
  105. package/dist/internal/auth-runtime.d.ts.map +1 -0
  106. package/dist/internal/auth-runtime.js +16 -0
  107. package/dist/internal/auth-runtime.js.map +1 -0
  108. package/dist/internal/capabilities.d.ts +24 -0
  109. package/dist/internal/capabilities.d.ts.map +1 -0
  110. package/dist/internal/capabilities.js +22 -0
  111. package/dist/internal/capabilities.js.map +1 -0
  112. package/dist/internal/children.d.ts +34 -0
  113. package/dist/internal/children.d.ts.map +1 -0
  114. package/dist/internal/children.js +53 -0
  115. package/dist/internal/children.js.map +1 -0
  116. package/dist/internal/collection-utils.d.ts +4 -0
  117. package/dist/internal/collection-utils.d.ts.map +1 -0
  118. package/dist/internal/collection-utils.js +6 -0
  119. package/dist/internal/collection-utils.js.map +1 -0
  120. package/dist/internal/dual/actions.d.ts +33 -0
  121. package/dist/internal/dual/actions.d.ts.map +1 -0
  122. package/dist/internal/dual/actions.js +26 -0
  123. package/dist/internal/dual/actions.js.map +1 -0
  124. package/dist/internal/dual/invoke.d.ts +63 -0
  125. package/dist/internal/dual/invoke.d.ts.map +1 -0
  126. package/dist/internal/dual/invoke.js +75 -0
  127. package/dist/internal/dual/invoke.js.map +1 -0
  128. package/dist/internal/dual/registry.d.ts +125 -0
  129. package/dist/internal/dual/registry.d.ts.map +1 -0
  130. package/dist/internal/dual/registry.js +172 -0
  131. package/dist/internal/dual/registry.js.map +1 -0
  132. package/dist/internal/dual/triggers.d.ts +29 -0
  133. package/dist/internal/dual/triggers.d.ts.map +1 -0
  134. package/dist/internal/dual/triggers.js +26 -0
  135. package/dist/internal/dual/triggers.js.map +1 -0
  136. package/dist/internal/handler-context.d.ts +9 -0
  137. package/dist/internal/handler-context.d.ts.map +1 -0
  138. package/dist/internal/handler-context.js +31 -0
  139. package/dist/internal/handler-context.js.map +1 -0
  140. package/dist/internal/identifier.d.ts +6 -0
  141. package/dist/internal/identifier.d.ts.map +1 -0
  142. package/dist/internal/identifier.js +28 -0
  143. package/dist/internal/identifier.js.map +1 -0
  144. package/dist/internal/plugin-handlers.d.ts +38 -0
  145. package/dist/internal/plugin-handlers.d.ts.map +1 -0
  146. package/dist/internal/plugin-handlers.js +52 -0
  147. package/dist/internal/plugin-handlers.js.map +1 -0
  148. package/dist/internal/proto.d.ts +7 -0
  149. package/dist/internal/proto.d.ts.map +1 -0
  150. package/dist/internal/proto.js +10 -0
  151. package/dist/internal/proto.js.map +1 -0
  152. package/dist/internal/schema-runtime.d.ts +6 -0
  153. package/dist/internal/schema-runtime.d.ts.map +1 -0
  154. package/dist/internal/schema-runtime.js +10 -0
  155. package/dist/internal/schema-runtime.js.map +1 -0
  156. package/dist/internal/trigger-runtime-shared.d.ts +41 -0
  157. package/dist/internal/trigger-runtime-shared.d.ts.map +1 -0
  158. package/dist/internal/trigger-runtime-shared.js +132 -0
  159. package/dist/internal/trigger-runtime-shared.js.map +1 -0
  160. package/dist/internal/trigger-runtime.d.ts +12 -0
  161. package/dist/internal/trigger-runtime.d.ts.map +1 -0
  162. package/dist/internal/trigger-runtime.js +95 -0
  163. package/dist/internal/trigger-runtime.js.map +1 -0
  164. package/dist/internal/types.d.ts +7 -0
  165. package/dist/internal/types.d.ts.map +1 -0
  166. package/dist/internal/types.js +1 -0
  167. package/dist/remote-runtime.d.ts +585 -0
  168. package/dist/remote-runtime.d.ts.map +1 -0
  169. package/dist/remote-runtime.js +367 -0
  170. package/dist/remote-runtime.js.map +1 -0
  171. package/package.json +55 -4
  172. package/src/Action.ts +370 -0
  173. package/src/AgentChannel.ts +860 -0
  174. package/src/AgentChannelConformance.ts +124 -0
  175. package/src/AgentChannelRuntime.ts +616 -0
  176. package/src/AiProvider.ts +255 -0
  177. package/src/AuthMethod.ts +954 -0
  178. package/src/AuthMethodBinding.ts +112 -0
  179. package/src/AuthMethodExecution.ts +542 -0
  180. package/src/ConnectionResolver.ts +265 -0
  181. package/src/DefinitionError.ts +115 -0
  182. package/src/DualRegistry.ts +152 -0
  183. package/src/DualRuntime.ts +1081 -0
  184. package/src/Files.ts +89 -0
  185. package/src/Group.ts +292 -0
  186. package/src/Http.ts +1205 -0
  187. package/src/Mcp.ts +299 -0
  188. package/src/OAuth2TokenRefresher.ts +22 -0
  189. package/src/OAuthFlow.ts +874 -0
  190. package/src/Plugin.ts +912 -0
  191. package/src/PluginRuntime.ts +414 -0
  192. package/src/Runner.ts +248 -0
  193. package/src/ToolFile.ts +28 -0
  194. package/src/Trigger.ts +722 -0
  195. package/src/index.ts +158 -0
  196. package/src/internal/auth-context.ts +27 -0
  197. package/src/internal/auth-execution.ts +241 -0
  198. package/src/internal/auth-runtime.ts +20 -0
  199. package/src/internal/capabilities.ts +55 -0
  200. package/src/internal/children.ts +126 -0
  201. package/src/internal/collection-utils.ts +8 -0
  202. package/src/internal/dual/actions.ts +116 -0
  203. package/src/internal/dual/invoke.ts +307 -0
  204. package/src/internal/dual/registry.ts +340 -0
  205. package/src/internal/dual/triggers.ts +128 -0
  206. package/src/internal/handler-context.ts +57 -0
  207. package/src/internal/identifier.ts +27 -0
  208. package/src/internal/plugin-handlers.ts +146 -0
  209. package/src/internal/proto.ts +8 -0
  210. package/src/internal/schema-runtime.ts +15 -0
  211. package/src/internal/trigger-runtime-shared.ts +449 -0
  212. package/src/internal/trigger-runtime.ts +223 -0
  213. package/src/internal/types.ts +12 -0
  214. package/src/remote-runtime.ts +469 -0
@@ -0,0 +1,96 @@
1
+ import { __exportAll } from "./_virtual/_rolldown/runtime.js";
2
+ import { collectActionEntries } from "./internal/dual/actions.js";
3
+ import { collectTriggerEntries, resolveRuntimeTrigger } from "./internal/dual/triggers.js";
4
+ import { materializeResolvedRegistry } from "./internal/dual/registry.js";
5
+ import "./DualRegistry.js";
6
+ import { Schema } from "effect";
7
+ //#region src/DualRegistry.ts
8
+ /**
9
+ * Dual registry resolution and materialization.
10
+ *
11
+ * @since 0.0.0
12
+ */
13
+ var DualRegistry_exports = /* @__PURE__ */ __exportAll({
14
+ DualRegistry: () => DualRegistry_exports,
15
+ TriggerNotFoundError: () => TriggerNotFoundError,
16
+ actionIds: () => actionIds,
17
+ materializePlugin: () => materializePlugin,
18
+ materializePlugins: () => materializePlugins,
19
+ materializeRegistry: () => materializeRegistry,
20
+ resolveTrigger: () => resolveTrigger,
21
+ triggerIds: () => triggerIds
22
+ });
23
+ /** Raised when a trigger lifecycle request references an unknown trigger id. */
24
+ var TriggerNotFoundError = class extends Schema.TaggedError()("TriggerNotFoundError", { triggerId: Schema.String }) {};
25
+ /**
26
+ * Enumerate the canonical machine ids for every action in the app.
27
+ *
28
+ * @since 0.0.0
29
+ * @category getters
30
+ */
31
+ const actionIds = (app) => collectActionEntries(app.plugins).map((entry) => entry.actionId);
32
+ /**
33
+ * Enumerate the canonical machine ids for every trigger in the app.
34
+ *
35
+ * @since 0.0.0
36
+ * @category getters
37
+ */
38
+ const triggerIds = (app) => collectTriggerEntries(app.plugins).map((entry) => entry.triggerId);
39
+ /**
40
+ * Resolve one trigger entry from the app, including its auth methods.
41
+ *
42
+ * @since 0.0.0
43
+ * @category getters
44
+ */
45
+ const resolveTrigger = (app, triggerId, options = {}) => resolveRuntimeTrigger(app.plugins, triggerId, options.triggerVersion);
46
+ /**
47
+ * Materialize the capability catalog of an app's installed releases.
48
+ *
49
+ * @since 0.0.0
50
+ * @category registry
51
+ */
52
+ const materializeRegistry = (app, options = {}) => materializeResolvedRegistry({
53
+ aiProviders: app.aiProviders,
54
+ dualIdentifier: app.identifier,
55
+ plugins: app.plugins,
56
+ projectSchemas: options.projectSchemas,
57
+ projections: options.projections,
58
+ schemaJson: options.schemaJson
59
+ });
60
+ /**
61
+ * Extract a release's contracts without building Layers or running handlers.
62
+ *
63
+ * @since 0.0.0
64
+ * @category registry
65
+ */
66
+ const materializePlugin = (plugin, options) => ({
67
+ pluginIdentifier: plugin.identifier,
68
+ pluginVersion: options.version,
69
+ providers: materializeResolvedRegistry({
70
+ aiProviders: [],
71
+ dualIdentifier: plugin.identifier,
72
+ plugins: [{
73
+ plugin,
74
+ version: options.version
75
+ }],
76
+ projectSchemas: options.projectSchemas,
77
+ projections: options.projections,
78
+ schemaJson: options.schemaJson
79
+ }).providers
80
+ });
81
+ /** Every installed plugin release and its contracts. @since 0.0.0 @category registry */
82
+ const materializePlugins = (app, options = {}) => {
83
+ const projections = options.projections ?? /* @__PURE__ */ new Map();
84
+ return app.plugins.map((installation) => ({
85
+ ...materializePlugin(installation.plugin, {
86
+ ...options,
87
+ projections,
88
+ version: installation.version
89
+ }),
90
+ ordinal: 0
91
+ }));
92
+ };
93
+ //#endregion
94
+ export { DualRegistry_exports as DualRegistry, DualRegistry_exports, TriggerNotFoundError, actionIds, materializePlugin, materializePlugins, materializeRegistry, resolveTrigger, triggerIds };
95
+
96
+ //# sourceMappingURL=DualRegistry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DualRegistry.js","names":[],"sources":["../src/DualRegistry.ts"],"sourcesContent":["/**\n * Dual registry resolution and materialization.\n *\n * @since 0.0.0\n */\nimport { Schema } from \"effect\";\n\nimport type * as AiProvider from \"./AiProvider.ts\";\nimport type { AnyApp, App } from \"./DualRuntime.ts\";\nimport { collectActionEntries, type AllActionEntries } from \"./internal/dual/actions.ts\";\nimport {\n materializeResolvedRegistry,\n type MaterializedRegistry,\n type MaterializedRegistryOptions,\n} from \"./internal/dual/registry.ts\";\nimport {\n type AllTriggerEntries,\n collectTriggerEntries,\n type RuntimeTriggerEntry,\n resolveRuntimeTrigger,\n} from \"./internal/dual/triggers.ts\";\nimport type * as Plugin from \"./Plugin.ts\";\n\n/** Raised when a trigger lifecycle request references an unknown trigger id. */\nexport class TriggerNotFoundError extends Schema.TaggedError<TriggerNotFoundError>()(\n \"TriggerNotFoundError\",\n { triggerId: Schema.String },\n) {}\n\n/**\n * Enumerate the canonical machine ids for every action in the app.\n *\n * @since 0.0.0\n * @category getters\n */\nexport const actionIds = <\n const P extends Plugin.Any,\n LayerOutput,\n LayerError,\n LayerRequirements,\n const AiProviders extends readonly AiProvider.Any[],\n>(\n app: App<P, LayerOutput, LayerError, LayerRequirements, AiProviders>,\n): readonly AllActionEntries<readonly [P]>[\"actionId\"][] =>\n // The ids are walked from the erased plugin trees; the signature carries their literal types.\n collectActionEntries(app.plugins).map(entry => entry.actionId) as never;\n\n/**\n * Enumerate the canonical machine ids for every trigger in the app.\n *\n * @since 0.0.0\n * @category getters\n */\nexport const triggerIds = <\n const P extends Plugin.Any,\n LayerOutput,\n LayerError,\n LayerRequirements,\n const AiProviders extends readonly AiProvider.Any[],\n>(\n app: App<P, LayerOutput, LayerError, LayerRequirements, AiProviders>,\n): readonly AllTriggerEntries<readonly [P]>[\"triggerId\"][] =>\n // The ids are walked from the erased plugin trees; the signature carries their literal types.\n collectTriggerEntries(app.plugins).map(entry => entry.triggerId) as never;\n\n/**\n * Resolve one trigger entry from the app, including its auth methods.\n *\n * @since 0.0.0\n * @category getters\n */\nexport const resolveTrigger = (\n app: AnyApp,\n triggerId: string,\n options: { readonly triggerVersion?: string } = {},\n): RuntimeTriggerEntry | undefined =>\n resolveRuntimeTrigger(app.plugins, triggerId, options.triggerVersion);\n\n/** @since 0.0.0 @category registry */\nexport type {\n MaterializedActionCapabilityVersion,\n MaterializedChannelCapabilityVersion,\n MaterializedAuthMethod,\n MaterializedCapabilityVersion,\n MaterializedProvider,\n MaterializedRegistry,\n MaterializedRegistryOptions,\n MaterializedTriggerCapabilityVersion,\n} from \"./internal/dual/registry.ts\";\n\n/**\n * Materialize the capability catalog of an app's installed releases.\n *\n * @since 0.0.0\n * @category registry\n */\nexport const materializeRegistry = (\n app: AnyApp,\n options: MaterializedRegistryOptions = {},\n): MaterializedRegistry =>\n materializeResolvedRegistry({\n aiProviders: app.aiProviders,\n dualIdentifier: app.identifier,\n plugins: app.plugins,\n projectSchemas: options.projectSchemas,\n projections: options.projections,\n schemaJson: options.schemaJson,\n });\n\n/** The contracts of one plugin release. @since 0.0.0 @category registry */\nexport interface MaterializedPlugin {\n readonly pluginIdentifier: string;\n readonly pluginVersion: string;\n readonly providers: readonly MaterializedRegistry[\"providers\"][number][];\n}\n\n/**\n * Extract a release's contracts without building Layers or running handlers.\n *\n * @since 0.0.0\n * @category registry\n */\nexport const materializePlugin = (\n plugin: Plugin.Any,\n options: MaterializedRegistryOptions & { readonly version: string },\n): MaterializedPlugin => ({\n pluginIdentifier: plugin.identifier,\n pluginVersion: options.version,\n providers: materializeResolvedRegistry({\n aiProviders: [],\n dualIdentifier: plugin.identifier,\n plugins: [{ plugin, version: options.version }],\n projectSchemas: options.projectSchemas,\n projections: options.projections,\n schemaJson: options.schemaJson,\n }).providers,\n});\n\n/** Every installed plugin release and its contracts. @since 0.0.0 @category registry */\nexport const materializePlugins = (app: AnyApp, options: MaterializedRegistryOptions = {}) => {\n const projections = options.projections ?? new Map<Schema.Top, unknown>();\n return app.plugins.map(installation => ({\n ...materializePlugin(installation.plugin, {\n ...options,\n projections,\n version: installation.version,\n }),\n ordinal: 0,\n }));\n};\n\nexport * as DualRegistry from \"./DualRegistry.ts\";\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAwBA,IAAa,uBAAb,cAA0C,OAAO,YAAkC,CAAC,CAClF,wBACA,EAAE,WAAW,OAAO,OAAO,CAC7B,CAAC,CAAC,CAAC;;;;;;;AAQH,MAAa,aAOX,QAGA,qBAAqB,IAAI,OAAO,CAAC,CAAC,KAAI,UAAS,MAAM,QAAQ;;;;;;;AAQ/D,MAAa,cAOX,QAGA,sBAAsB,IAAI,OAAO,CAAC,CAAC,KAAI,UAAS,MAAM,SAAS;;;;;;;AAQjE,MAAa,kBACX,KACA,WACA,UAAgD,CAAC,MAEjD,sBAAsB,IAAI,SAAS,WAAW,QAAQ,cAAc;;;;;;;AAoBtE,MAAa,uBACX,KACA,UAAuC,CAAC,MAExC,4BAA4B;CAC1B,aAAa,IAAI;CACjB,gBAAgB,IAAI;CACpB,SAAS,IAAI;CACb,gBAAgB,QAAQ;CACxB,aAAa,QAAQ;CACrB,YAAY,QAAQ;AACtB,CAAC;;;;;;;AAeH,MAAa,qBACX,QACA,aACwB;CACxB,kBAAkB,OAAO;CACzB,eAAe,QAAQ;CACvB,WAAW,4BAA4B;EACrC,aAAa,CAAC;EACd,gBAAgB,OAAO;EACvB,SAAS,CAAC;GAAE;GAAQ,SAAS,QAAQ;EAAQ,CAAC;EAC9C,gBAAgB,QAAQ;EACxB,aAAa,QAAQ;EACrB,YAAY,QAAQ;CACtB,CAAC,CAAC,CAAC;AACL;;AAGA,MAAa,sBAAsB,KAAa,UAAuC,CAAC,MAAM;CAC5F,MAAM,cAAc,QAAQ,+BAAe,IAAI,IAAyB;CACxE,OAAO,IAAI,QAAQ,KAAI,kBAAiB;EACtC,GAAG,kBAAkB,aAAa,QAAQ;GACxC,GAAG;GACH;GACA,SAAS,aAAa;EACxB,CAAC;EACD,SAAS;CACX,EAAE;AACJ"}
@@ -0,0 +1,279 @@
1
+ import { Binding } from "./AuthMethodBinding.js";
2
+ import { JsonRequest } from "./AuthMethodExecution.js";
3
+ import { Any, AuthMethodHookError, ExpectedOAuth2MethodError, InputSchema, MaterialSchema, OAuth2RefreshTokenUnavailableError, OAuth2TokenResponse, RefreshReason, Requirements, SetupSchema, ValueSchema } from "./AuthMethod.js";
4
+ import { ActionHandlerError, ActionHandlerFailure, RetryableActionHandlerError } from "./Action.js";
5
+ import { ConnectionIdNotAllowedError, ConnectionReauthorizationRequiredError, ConnectionRequiredError, ConnectionResolutionContext, ConnectionResolverStoreError, ConnectionSelectionRequiredError, InvalidConnectionIdError, InvalidResolvedConnectionError } from "./ConnectionResolver.js";
6
+ import { ActivateSuccess, DeactivateSuccess, EmittedEventsSuccess, VerifySuccess, WebhookRequest } from "./Trigger.js";
7
+ import { Any as Any$1, LayerError, LayerOutput as LayerOutput$1, LayerRequirements as LayerRequirements$1 } from "./Plugin.js";
8
+ import { Interface, Requirements as Requirements$1 } from "./AgentChannelRuntime.js";
9
+ import { Any as Any$2, RuntimeConfig, RuntimeModel } from "./AiProvider.js";
10
+ import { PluginActions } from "./internal/dual/actions.js";
11
+ import { ActionHandlerNotFoundError, ActionNotFoundError, FieldIssue, InvalidActionInputError, InvalidActionOutputError, InvokeError, InvokeMeta, InvokeRequest, InvokeRequirementsFor, InvokeSuccess, PluginRequirements } from "./internal/dual/invoke.js";
12
+ import "./DualRuntime.js";
13
+ import { Context, Effect, Layer, Schema } from "effect";
14
+ import { HttpClientRequest } from "effect/http";
15
+ declare namespace DualRuntime_d_exports {
16
+ export { ActionHandlerError, ActionHandlerFailure, ActionHandlerNotFoundError, ActionNotFoundError, AiModelConfigError, AiProviderRuntimeNotConfiguredError, AnyApp, App, AuthMethodExecutionError, AuthMethodNotFoundError, AuthMethodRequest, ConnectionIdNotAllowedError, ConnectionReauthorizationRequiredError, ConnectionRequiredError, ConnectionResolverStoreError, ConnectionSelectionRequiredError, DecodeAuthMethodSetupRequest, DualRuntime_d_exports as DualRuntime, FieldIssue, InvalidActionInputError, InvalidActionOutputError, InvalidConnectionIdError, InvalidResolvedConnectionError, InvokeError, InvokeMeta, InvokeRequest, InvokeRequirementsFor, InvokeSuccess, PluginInstallation, PrepareAuthMethodRequest, PrepareOAuth2TokensRequest, RefreshAuthMethodRequest, ResolveAiModelConfigRequest, ResolveAuthMethodRequest, ResolvedSandboxAccess, RetryableActionHandlerError, RuntimeInvokeRequest, RuntimeRequirementsFor, RuntimeService, RuntimeTriggerLifecycleRequest, RuntimeWebhookActivationRequest, RuntimeWebhookTriggerLifecycleRequest, SandboxAccessError, SandboxAccessNotDeclaredError, SandboxRequestNotAllowedError, Service, ToLayerError, ToLayerRequirements, WithPlugin, WithPlugins, fromPlugin, install, invoke, make, toLayer, withPlugin, withPlugins };
17
+ }
18
+ /**
19
+ * One installed plugin release.
20
+ *
21
+ * @since 0.7.0
22
+ * @category models
23
+ */
24
+ export interface PluginInstallation<P extends Any$1 = Any$1> {
25
+ readonly plugin: P;
26
+ /** The plugin's package version. */
27
+ readonly version: string;
28
+ }
29
+ /**
30
+ * The plugin releases and AI providers one runtime executes, with the services their handlers need.
31
+ *
32
+ * @since 0.7.0
33
+ * @category models
34
+ */
35
+ export interface App<out P extends Any$1 = Any$1, LayerOutput = never, out LayerError = never, out LayerRequirements = never, out AiProviders extends readonly Any$2[] = readonly Any$2[]> {
36
+ readonly identifier: string;
37
+ readonly aiProviders: AiProviders;
38
+ readonly plugins: readonly PluginInstallation<P>[];
39
+ readonly layer: Layer.Layer<LayerOutput, LayerError, LayerRequirements>;
40
+ }
41
+ /**
42
+ * Constraint type for working with any {@link App}.
43
+ *
44
+ * @since 0.7.0
45
+ * @category type-level
46
+ */
47
+ export interface AnyApp extends App<Any$1, never, any, any, readonly Any$2[]> {}
48
+ /**
49
+ * Install one plugin release.
50
+ *
51
+ * @since 0.7.0
52
+ * @category constructors
53
+ */
54
+ export declare const install: <P extends Any$1>(plugin: P, version: string) => PluginInstallation<P>;
55
+ /**
56
+ * The runtime of one plugin release, as the plugin's own process runs it. `version` defaults to
57
+ * `0.0.0` for tests that do not need the package version.
58
+ *
59
+ * @since 0.7.0
60
+ * @category constructors
61
+ */
62
+ export declare const fromPlugin: <const P extends Any$1>(plugin: P, version?: string) => App<P, LayerOutput$1<readonly [P]>, LayerError<readonly [P]>, LayerRequirements$1<readonly [P]>, readonly []>;
63
+ /**
64
+ * An app runtime without plugins, for {@link withPlugin} and {@link withPlugins} to fill.
65
+ *
66
+ * @since 0.7.0
67
+ * @category constructors
68
+ */
69
+ export declare const make: (identifier: string) => App<never, never, never, never, readonly []>;
70
+ type AppPlugin<A extends AnyApp> = A extends App<infer P, any, any, any, any> ? P : never;
71
+ type AppLayerOutput<A extends AnyApp> = A extends App<any, infer Output, any, any, any> ? Output : never;
72
+ type AppLayerError<A extends AnyApp> = A extends App<any, any, infer Error, any, any> ? Error : never;
73
+ type AppLayerRequirements<A extends AnyApp> = A extends App<any, any, any, infer Requirements, any> ? Requirements : never;
74
+ /**
75
+ * Result of adding a plugin release to an app runtime. A named interface keeps declaration emit
76
+ * from expanding every plugin and layer member at large call sites.
77
+ *
78
+ * @since 0.7.0
79
+ * @category type-level
80
+ */
81
+ export interface WithPlugin<Self extends AnyApp, Added extends Any$1> extends App<AppPlugin<Self> | Added, AppLayerOutput<Self> | LayerOutput$1<readonly [Added]>, AppLayerError<Self> | LayerError<readonly [Added]>, LayerRequirements$1<readonly [Added]> | Exclude<AppLayerRequirements<Self>, LayerOutput$1<readonly [Added]>>, Self["aiProviders"]> {}
82
+ type BulkLayerRequirements<Added extends readonly Any$1[], Requirements> = number extends Added["length"] ? Requirements | Layer.Services<Added[number]["layer"]> : Added extends readonly [infer Head extends Any$1, ...infer Tail extends readonly Any$1[]] ? BulkLayerRequirements<Tail, Layer.Services<Head["layer"]> | Exclude<Requirements, Layer.Success<Head["layer"]>>> : Requirements;
83
+ /**
84
+ * Result of adding several plugin releases to an app runtime in one step.
85
+ *
86
+ * @since 0.7.0
87
+ * @category type-level
88
+ */
89
+ export interface WithPlugins<Self extends AnyApp, Added extends readonly Any$1[]> extends App<AppPlugin<Self> | Added[number], AppLayerOutput<Self> | Layer.Success<Added[number]["layer"]>, AppLayerError<Self> | Layer.Error<Added[number]["layer"]>, BulkLayerRequirements<Added, AppLayerRequirements<Self>>, Self["aiProviders"]> {}
90
+ /** A plugin and the package version of its release. */
91
+ type PluginEntry = readonly [plugin: Any$1, version: string];
92
+ type PluginsOf<Entries extends readonly PluginEntry[]> = { readonly [K in keyof Entries]: Entries[K][0]; };
93
+ /**
94
+ * Add one plugin release: the plugin and its package version.
95
+ *
96
+ * @since 0.7.0
97
+ * @category combinators
98
+ */
99
+ export declare const withPlugin: {
100
+ <const P extends Any$1>(plugin: P, version: string): <Self extends AnyApp>(app: Self) => WithPlugin<Self, P>;
101
+ <Self extends AnyApp, const P extends Any$1>(app: Self, plugin: P, version: string): WithPlugin<Self, P>;
102
+ };
103
+ /**
104
+ * Add several plugin releases in one step, which keeps a large app's inferred type compact.
105
+ *
106
+ * @since 0.7.0
107
+ * @category combinators
108
+ */
109
+ export declare const withPlugins: {
110
+ <const E extends readonly PluginEntry[]>(entries: E): <Self extends AnyApp>(app: Self) => WithPlugins<Self, PluginsOf<E>>;
111
+ <Self extends AnyApp, const E extends readonly PluginEntry[]>(app: Self, entries: E): WithPlugins<Self, PluginsOf<E>>;
112
+ };
113
+ export declare const invoke: <const P extends Any$1, LayerOutput, LayerError, LayerRequirements, const AiProviders extends readonly Any$2[]>(app: App<P, LayerOutput, LayerError, LayerRequirements, AiProviders>, request: InvokeRequest) => Effect.Effect<InvokeSuccess, InvokeError | LayerError, LayerRequirements | Exclude<RuntimeRequirementsFor<P>, LayerOutput>>;
114
+ /**
115
+ * Runtime-first invocation request accepted by {@link Service}.
116
+ *
117
+ * @since 0.0.0
118
+ * @category models
119
+ */
120
+ export type RuntimeInvokeRequest = InvokeRequest;
121
+ /**
122
+ * Runtime-first trigger lifecycle request accepted by {@link Service}.
123
+ *
124
+ * @since 0.0.0
125
+ * @category models
126
+ */
127
+ export interface RuntimeTriggerLifecycleRequest {
128
+ readonly triggerId: string;
129
+ readonly pluginKey?: string;
130
+ /** The exact plugin release the caller pinned; another installed release does not run. */
131
+ readonly triggerVersion?: string | undefined;
132
+ readonly config: unknown;
133
+ readonly state?: unknown | undefined;
134
+ readonly connectionId?: string | undefined;
135
+ readonly context?: ConnectionResolutionContext | undefined;
136
+ }
137
+ export interface RuntimeWebhookActivationRequest extends RuntimeTriggerLifecycleRequest {
138
+ readonly webhookUrl: string;
139
+ }
140
+ export interface RuntimeWebhookTriggerLifecycleRequest extends RuntimeWebhookActivationRequest {
141
+ readonly request: WebhookRequest;
142
+ }
143
+ export interface AuthMethodRequest {
144
+ readonly providerId: string;
145
+ readonly authMethodId: string;
146
+ }
147
+ export interface DecodeAuthMethodSetupRequest extends AuthMethodRequest {
148
+ readonly encoding?: "json";
149
+ readonly setup: unknown;
150
+ }
151
+ export interface PrepareAuthMethodRequest extends AuthMethodRequest {
152
+ readonly input: unknown;
153
+ readonly setup: unknown;
154
+ }
155
+ export interface PrepareOAuth2TokensRequest extends AuthMethodRequest {
156
+ readonly tokens: OAuth2TokenResponse;
157
+ readonly setup: unknown;
158
+ }
159
+ export interface RefreshAuthMethodRequest extends AuthMethodRequest {
160
+ readonly material: unknown;
161
+ readonly setup: unknown;
162
+ readonly now: number;
163
+ readonly minValidityMs: number;
164
+ readonly reason: RefreshReason;
165
+ }
166
+ export interface ResolveAuthMethodRequest extends AuthMethodRequest {
167
+ /** `json` when the material and setup arrive in their canonical JSON encoding, as in the sandbox. */
168
+ readonly encoding?: "json";
169
+ readonly material: unknown;
170
+ readonly setup: unknown;
171
+ }
172
+ export interface ResolveAiModelConfigRequest extends ResolveAuthMethodRequest {
173
+ readonly model: RuntimeModel;
174
+ }
175
+ declare const AuthMethodNotFoundError_base: Schema.Class<AuthMethodNotFoundError, Schema.TaggedStruct<"AuthMethodNotFoundError", {
176
+ readonly authMethodId: Schema.String;
177
+ readonly providerId: Schema.String;
178
+ }>, import("effect/Cause").YieldableError>;
179
+ export declare class AuthMethodNotFoundError extends AuthMethodNotFoundError_base {}
180
+ export type AuthMethodExecutionError = AuthMethodNotFoundError | Schema.SchemaError | ExpectedOAuth2MethodError | OAuth2RefreshTokenUnavailableError | AuthMethodHookError;
181
+ declare const AiProviderRuntimeNotConfiguredError_base: Schema.Class<AiProviderRuntimeNotConfiguredError, Schema.TaggedStruct<"AiProviderRuntimeNotConfiguredError", {
182
+ readonly providerId: Schema.String;
183
+ }>, import("effect/Cause").YieldableError>;
184
+ export declare class AiProviderRuntimeNotConfiguredError extends AiProviderRuntimeNotConfiguredError_base {}
185
+ export type AiModelConfigError = AuthMethodExecutionError | AiProviderRuntimeNotConfiguredError;
186
+ declare const SandboxAccessNotDeclaredError_base: Schema.Class<SandboxAccessNotDeclaredError, Schema.TaggedStruct<"SandboxAccessNotDeclaredError", {
187
+ readonly providerId: Schema.String;
188
+ }>, import("effect/Cause").YieldableError>;
189
+ /** Raised when a provider declares no sandbox access. */
190
+ export declare class SandboxAccessNotDeclaredError extends SandboxAccessNotDeclaredError_base {}
191
+ declare const SandboxRequestNotAllowedError_base: Schema.Class<SandboxRequestNotAllowedError, Schema.TaggedStruct<"SandboxRequestNotAllowedError", {
192
+ readonly origin: Schema.String;
193
+ readonly path: Schema.String;
194
+ readonly providerId: Schema.String;
195
+ }>, import("effect/Cause").YieldableError>;
196
+ /** Raised when the Connection may not be sent with a sandbox request: another origin, or a request the provider refuses. */
197
+ export declare class SandboxRequestNotAllowedError extends SandboxRequestNotAllowedError_base {}
198
+ export type SandboxAccessError = AuthMethodExecutionError | SandboxAccessNotDeclaredError;
199
+ /** One Connection's sandbox access: where its credential may go, and how a request gets it. */
200
+ export interface ResolvedSandboxAccess {
201
+ readonly origins: readonly string[];
202
+ readonly authorize: (request: HttpClientRequest.HttpClientRequest) => Effect.Effect<HttpClientRequest.HttpClientRequest, SandboxRequestNotAllowedError>;
203
+ }
204
+ /**
205
+ * Runtime service materialized from an {@link App}.
206
+ *
207
+ * @since 0.0.0
208
+ * @category services
209
+ */
210
+ export interface RuntimeService {
211
+ readonly executeAuthJson: (request: JsonRequest) => Effect.Effect<unknown, AuthMethodExecutionError>;
212
+ readonly invokeJson: (request: RuntimeInvokeRequest) => Effect.Effect<InvokeSuccess<string, Schema.Json>, InvokeError | Schema.SchemaError>;
213
+ readonly decodeAgentChannelDefinitionSettings: Interface["decodeDefinitionSettings"];
214
+ readonly decodeAgentChannelDeploymentSettings: Interface["decodeDeploymentSettings"];
215
+ readonly getAgentChannel: Interface["get"];
216
+ readonly checkAccessAgentChannel: Interface["checkAccess"];
217
+ readonly executeAgentChannel: Interface["execute"];
218
+ readonly invoke: (request: RuntimeInvokeRequest) => Effect.Effect<InvokeSuccess, InvokeError>;
219
+ readonly activateTrigger: (request: RuntimeWebhookActivationRequest) => Effect.Effect<ActivateSuccess, unknown>;
220
+ readonly deactivateTrigger: (request: RuntimeWebhookActivationRequest) => Effect.Effect<DeactivateSuccess, unknown>;
221
+ readonly verifyTrigger: (request: RuntimeWebhookTriggerLifecycleRequest) => Effect.Effect<VerifySuccess, unknown>;
222
+ readonly parseTrigger: (request: RuntimeWebhookTriggerLifecycleRequest) => Effect.Effect<EmittedEventsSuccess<string, "parse">, unknown>;
223
+ readonly pollTrigger: (request: RuntimeTriggerLifecycleRequest) => Effect.Effect<EmittedEventsSuccess<string, "poll">, unknown>;
224
+ readonly getAuthMethod: (request: AuthMethodRequest) => Effect.Effect<Any, AuthMethodNotFoundError>;
225
+ readonly decodeAuthMethodSetup: (request: DecodeAuthMethodSetupRequest) => Effect.Effect<unknown, AuthMethodExecutionError>;
226
+ readonly prepareAuthMethod: (request: PrepareAuthMethodRequest) => Effect.Effect<unknown, AuthMethodExecutionError>;
227
+ readonly prepareOAuth2Tokens: (request: PrepareOAuth2TokensRequest) => Effect.Effect<unknown, AuthMethodExecutionError>;
228
+ readonly refreshAuthMethod: (request: RefreshAuthMethodRequest) => Effect.Effect<unknown | undefined, AuthMethodExecutionError>;
229
+ readonly resolveAuthMethod: (request: ResolveAuthMethodRequest) => Effect.Effect<Binding, AuthMethodExecutionError>;
230
+ readonly resolveAiModelConfig: (request: ResolveAiModelConfigRequest) => Effect.Effect<RuntimeConfig, AiModelConfigError>;
231
+ readonly resolveSandboxAccess: (request: ResolveAuthMethodRequest) => Effect.Effect<ResolvedSandboxAccess, SandboxAccessError>;
232
+ }
233
+ declare const Service_base: Context.ServiceClass<Service, "@dual-os/sdk/Dual/Service", RuntimeService>;
234
+ /**
235
+ * Effect service provided by {@link toLayer}.
236
+ *
237
+ * @since 0.0.0
238
+ * @category services
239
+ */
240
+ export declare class Service extends Service_base {}
241
+ export type RuntimeRequirementsFor<P extends Any$1> = Requirements$1<P> | (P extends Any$1 ? PluginRequirements<P, PluginActions<P>> : never);
242
+ type AuthProvider = Any$1 | Any$2;
243
+ type AuthMethodFor<Providers extends AuthProvider> = Providers["authMethods"][number];
244
+ type AuthMethodSetupDecodeRequirements<Method extends Any> = SetupSchema<Method> extends Schema.Top ? Schema.Codec.DecodingServices<SetupSchema<Method>> : never;
245
+ type AuthMethodInputDecodeRequirements<Method extends Any> = InputSchema<Method> extends Schema.Top ? Schema.Codec.DecodingServices<InputSchema<Method>> : never;
246
+ type AuthMethodExecutionRequirementsFor<Providers extends AuthProvider> = AuthMethodFor<Providers> extends (infer Method) ? Method extends Any ? Requirements<Method> | AuthMethodSetupDecodeRequirements<Method> | AuthMethodInputDecodeRequirements<Method> | Schema.Codec.DecodingServices<MaterialSchema<Method>> | Schema.Codec.DecodingServices<ValueSchema<Method>> | Schema.Codec.EncodingServices<MaterialSchema<Method>> | Schema.Codec.EncodingServices<ValueSchema<Method>> | (SetupSchema<Method> extends Schema.Top ? Schema.Codec.EncodingServices<SetupSchema<Method>> : never) : never : never;
247
+ /**
248
+ * Requirements still needed by {@link toLayer} for an app.
249
+ *
250
+ * Hosts (the server, a worker, a test harness) never know an app's concrete
251
+ * implementations: they talk to it exclusively through the generic
252
+ * {@link Service} layer. App-specific dependencies — a plugin's API client, an
253
+ * auth hook's token service — are discharged where they are known, at the
254
+ * plugin or app definition (the `Exclude<..., LayerOutput>` below cancels
255
+ * them). Only what the definition did not discharge surfaces here,
256
+ * generically, and the host entrypoint forces it to `never` before anything
257
+ * runs.
258
+ *
259
+ * @since 0.0.0
260
+ * @category type-level
261
+ */
262
+ export type ToLayerRequirements<A extends AnyApp> = A extends App<infer P extends Any$1, infer LayerOutput, any, infer LayerRequirements, infer AiProviders extends readonly Any$2[]> ? LayerRequirements | Exclude<RuntimeRequirementsFor<P>, LayerOutput> | Exclude<AuthMethodExecutionRequirementsFor<P | AiProviders[number]>, LayerOutput> : never;
263
+ /**
264
+ * Layer-construction errors surfaced by {@link toLayer} for an app.
265
+ *
266
+ * @since 0.0.0
267
+ * @category type-level
268
+ */
269
+ export type ToLayerError<A extends AnyApp> = A extends App<any, any, infer LayerError, any, any> ? LayerError : never;
270
+ /**
271
+ * Turn an {@link App} into a runtime Effect service layer.
272
+ *
273
+ * @since 0.0.0
274
+ * @category layers
275
+ */
276
+ export declare const toLayer: <const P extends Any$1, LayerOutput, LayerError, LayerRequirements, const AiProviders extends readonly Any$2[]>(app: App<P, LayerOutput, LayerError, LayerRequirements, AiProviders>) => Layer.Layer<Service, LayerError, LayerRequirements | Exclude<RuntimeRequirementsFor<P>, LayerOutput> | Exclude<AuthMethodExecutionRequirementsFor<P | AiProviders[number]>, LayerOutput>>;
277
+ //#endregion
278
+ export { ActionHandlerError, type ActionHandlerFailure, ActionHandlerNotFoundError, ActionNotFoundError, ConnectionIdNotAllowedError, ConnectionReauthorizationRequiredError, ConnectionRequiredError, ConnectionResolverStoreError, ConnectionSelectionRequiredError, DualRuntime_d_exports as DualRuntime, DualRuntime_d_exports, FieldIssue, InvalidActionInputError, InvalidActionOutputError, InvalidConnectionIdError, InvalidResolvedConnectionError, type InvokeError, type InvokeMeta, type InvokeRequest, type InvokeRequirementsFor, type InvokeSuccess, RetryableActionHandlerError };
279
+ //# sourceMappingURL=DualRuntime.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DualRuntime.d.ts","names":["Plugin.Any","AiProvider.Any","Plugin.LayerOutput","Plugin.LayerError","Plugin.LayerRequirements","Trigger.WebhookRequest","AuthMethod.OAuth2TokenResponse","AuthMethod.RefreshReason","AiProvider.RuntimeModel","AuthMethod.ExpectedOAuth2MethodError","AuthMethod.OAuth2RefreshTokenUnavailableError","AuthMethod.AuthMethodHookError","AuthMethodExecution.JsonRequest","AgentChannelRuntime.Interface","Trigger.ActivateSuccess","Trigger.DeactivateSuccess","Trigger.VerifySuccess","Trigger.EmittedEventsSuccess","AuthMethod.Any","AuthMethodBinding.Binding","AiProvider.RuntimeConfig","AgentChannelRuntime.Requirements","AuthMethod.SetupSchema","AuthMethod.InputSchema","AuthMethod.Requirements","AuthMethod.MaterialSchema","AuthMethod.ValueSchema"],"sources":["../src/DualRuntime.ts"],"mappings":"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"}