@appport/sdk 1.0.1 → 1.1.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 (444) hide show
  1. package/README.md +39 -1
  2. package/dist/external-compatibility.d.ts +142 -0
  3. package/dist/external-compatibility.d.ts.map +1 -0
  4. package/dist/external-compatibility.js +132 -0
  5. package/dist/external-compatibility.js.map +1 -0
  6. package/dist/index.d.ts +16 -12
  7. package/dist/index.d.ts.map +1 -1
  8. package/dist/index.js +16 -12
  9. package/dist/index.js.map +1 -1
  10. package/dist/node.d.ts +1 -1
  11. package/dist/node.js +1 -1
  12. package/dist/provider-lifecycle.d.ts +247 -0
  13. package/dist/provider-lifecycle.d.ts.map +1 -0
  14. package/dist/provider-lifecycle.js +314 -0
  15. package/dist/provider-lifecycle.js.map +1 -0
  16. package/dist/resolution-policy.d.ts +81 -0
  17. package/dist/resolution-policy.d.ts.map +1 -0
  18. package/dist/resolution-policy.js +131 -0
  19. package/dist/resolution-policy.js.map +1 -0
  20. package/package.json +3 -30
  21. package/{node_modules → vendor}/@appport/authorization/dist/index.d.ts +1 -1
  22. package/{node_modules → vendor}/@appport/authorization/dist/index.js +1 -1
  23. package/{node_modules → vendor}/@appport/client/dist/client.d.ts +1 -1
  24. package/{node_modules → vendor}/@appport/client/dist/client.js +1 -1
  25. package/{node_modules → vendor}/@appport/client/dist/contract.d.ts +1 -1
  26. package/{node_modules → vendor}/@appport/client/dist/discovery.js +1 -1
  27. package/{node_modules → vendor}/@appport/client/dist/duplex.d.ts +1 -1
  28. package/{node_modules → vendor}/@appport/client/dist/duplex.js +1 -1
  29. package/{node_modules → vendor}/@appport/client/dist/transport.d.ts +1 -1
  30. package/vendor/@appport/core/dist/appboundry-capability-catalog.d.ts +930 -0
  31. package/vendor/@appport/core/dist/appboundry-capability-catalog.d.ts.map +1 -0
  32. package/vendor/@appport/core/dist/appboundry-capability-catalog.js +352 -0
  33. package/vendor/@appport/core/dist/appboundry-capability-catalog.js.map +1 -0
  34. package/vendor/@appport/core/dist/appboundry-composition.d.ts +93 -0
  35. package/vendor/@appport/core/dist/appboundry-composition.d.ts.map +1 -0
  36. package/vendor/@appport/core/dist/appboundry-composition.js +184 -0
  37. package/vendor/@appport/core/dist/appboundry-composition.js.map +1 -0
  38. package/{node_modules → vendor}/@appport/core/dist/appboundry-contract.d.ts +1 -1
  39. package/vendor/@appport/core/dist/appboundry-discovery.d.ts +110 -0
  40. package/vendor/@appport/core/dist/appboundry-discovery.d.ts.map +1 -0
  41. package/vendor/@appport/core/dist/appboundry-discovery.js +141 -0
  42. package/vendor/@appport/core/dist/appboundry-discovery.js.map +1 -0
  43. package/vendor/@appport/core/dist/appboundry-entitlements.d.ts +128 -0
  44. package/vendor/@appport/core/dist/appboundry-entitlements.d.ts.map +1 -0
  45. package/vendor/@appport/core/dist/appboundry-entitlements.js +312 -0
  46. package/vendor/@appport/core/dist/appboundry-entitlements.js.map +1 -0
  47. package/vendor/@appport/core/dist/appboundry-execution.d.ts +72 -0
  48. package/vendor/@appport/core/dist/appboundry-execution.d.ts.map +1 -0
  49. package/vendor/@appport/core/dist/appboundry-execution.js +114 -0
  50. package/vendor/@appport/core/dist/appboundry-execution.js.map +1 -0
  51. package/vendor/@appport/core/dist/appboundry-materialization.d.ts +222 -0
  52. package/vendor/@appport/core/dist/appboundry-materialization.d.ts.map +1 -0
  53. package/vendor/@appport/core/dist/appboundry-materialization.js +474 -0
  54. package/vendor/@appport/core/dist/appboundry-materialization.js.map +1 -0
  55. package/vendor/@appport/core/dist/appboundry-resolution.d.ts +160 -0
  56. package/vendor/@appport/core/dist/appboundry-resolution.d.ts.map +1 -0
  57. package/vendor/@appport/core/dist/appboundry-resolution.js +218 -0
  58. package/vendor/@appport/core/dist/appboundry-resolution.js.map +1 -0
  59. package/vendor/@appport/core/dist/appboundry-surface.d.ts +96 -0
  60. package/vendor/@appport/core/dist/appboundry-surface.d.ts.map +1 -0
  61. package/vendor/@appport/core/dist/appboundry-surface.js +223 -0
  62. package/vendor/@appport/core/dist/appboundry-surface.js.map +1 -0
  63. package/{node_modules → vendor}/@appport/core/dist/application.d.ts +4 -2
  64. package/vendor/@appport/core/dist/application.d.ts.map +1 -0
  65. package/{node_modules → vendor}/@appport/core/dist/application.js +6 -3
  66. package/vendor/@appport/core/dist/application.js.map +1 -0
  67. package/{node_modules → vendor}/@appport/core/dist/artifact.d.ts +1 -1
  68. package/{node_modules → vendor}/@appport/core/dist/assembly.d.ts +1 -1
  69. package/{node_modules → vendor}/@appport/core/dist/builtins.d.ts +1 -1
  70. package/{node_modules → vendor}/@appport/core/dist/builtins.js +1 -1
  71. package/{node_modules → vendor}/@appport/core/dist/capability.d.ts +2 -2
  72. package/{node_modules → vendor}/@appport/core/dist/capability.js +2 -2
  73. package/{node_modules → vendor}/@appport/core/dist/concurrency.d.ts +1 -1
  74. package/{node_modules → vendor}/@appport/core/dist/concurrency.js +1 -1
  75. package/{node_modules → vendor}/@appport/core/dist/context.d.ts +2 -2
  76. package/{node_modules → vendor}/@appport/core/dist/events.d.ts +1 -1
  77. package/{node_modules → vendor}/@appport/core/dist/idempotency.d.ts +1 -1
  78. package/{node_modules → vendor}/@appport/core/dist/index.d.ts +8 -0
  79. package/{node_modules → vendor}/@appport/core/dist/index.d.ts.map +1 -1
  80. package/{node_modules → vendor}/@appport/core/dist/index.js +8 -0
  81. package/{node_modules → vendor}/@appport/core/dist/index.js.map +1 -1
  82. package/{node_modules → vendor}/@appport/core/dist/invocation.js +1 -1
  83. package/{node_modules → vendor}/@appport/core/dist/manifest.d.ts +1 -1
  84. package/{node_modules → vendor}/@appport/core/dist/operations.d.ts +1 -1
  85. package/{node_modules → vendor}/@appport/core/dist/operations.js +2 -2
  86. package/{node_modules → vendor}/@appport/core/dist/public.d.ts +1 -0
  87. package/{node_modules → vendor}/@appport/core/dist/public.d.ts.map +1 -1
  88. package/{node_modules → vendor}/@appport/core/dist/public.js +1 -0
  89. package/{node_modules → vendor}/@appport/core/dist/public.js.map +1 -1
  90. package/{node_modules → vendor}/@appport/core/dist/registry.d.ts +2 -1
  91. package/vendor/@appport/core/dist/registry.d.ts.map +1 -0
  92. package/{node_modules → vendor}/@appport/core/dist/registry.js +2 -1
  93. package/{node_modules → vendor}/@appport/core/dist/registry.js.map +1 -1
  94. package/{node_modules → vendor}/@appport/core/dist/sanitize.d.ts +1 -1
  95. package/{node_modules → vendor}/@appport/core/dist/sanitize.js +1 -1
  96. package/{node_modules → vendor}/@appport/core/dist/sessions.d.ts +1 -1
  97. package/{node_modules → vendor}/@appport/core/dist/sessions.js +1 -1
  98. package/{node_modules → vendor}/@appport/core/dist/streams.d.ts +1 -1
  99. package/{node_modules → vendor}/@appport/core/dist/streams.js +1 -1
  100. package/{node_modules → vendor}/@appport/core/dist/telemetry.d.ts +1 -1
  101. package/vendor/@appport/mcp/README.md +29 -0
  102. package/vendor/@appport/mcp/dist/index.d.ts +58 -0
  103. package/vendor/@appport/mcp/dist/index.d.ts.map +1 -0
  104. package/vendor/@appport/mcp/dist/index.js +69 -0
  105. package/vendor/@appport/mcp/dist/index.js.map +1 -0
  106. package/vendor/@appport/mcp/package.json +29 -0
  107. package/{node_modules → vendor}/@appport/mobile/dist/index.d.ts +1 -1
  108. package/{node_modules → vendor}/@appport/mobile/dist/index.js +2 -2
  109. package/{node_modules → vendor}/@appport/protocol/dist/errors.d.ts +1 -1
  110. package/{node_modules → vendor}/@appport/protocol/dist/errors.d.ts.map +1 -1
  111. package/{node_modules → vendor}/@appport/protocol/dist/errors.js +1 -0
  112. package/vendor/@appport/protocol/dist/errors.js.map +1 -0
  113. package/{node_modules → vendor}/@appport/protocol/dist/index.d.ts +1 -0
  114. package/{node_modules → vendor}/@appport/protocol/dist/index.d.ts.map +1 -1
  115. package/{node_modules → vendor}/@appport/protocol/dist/index.js +1 -0
  116. package/{node_modules → vendor}/@appport/protocol/dist/index.js.map +1 -1
  117. package/{node_modules → vendor}/@appport/protocol/dist/manifest.d.ts +3 -0
  118. package/vendor/@appport/protocol/dist/manifest.d.ts.map +1 -0
  119. package/{node_modules → vendor}/@appport/protocol/dist/manifest.js.map +1 -1
  120. package/vendor/@appport/protocol/dist/materialization.d.ts +59 -0
  121. package/vendor/@appport/protocol/dist/materialization.d.ts.map +1 -0
  122. package/vendor/@appport/protocol/dist/materialization.js +2 -0
  123. package/vendor/@appport/protocol/dist/materialization.js.map +1 -0
  124. package/{node_modules → vendor}/@appport/schema/dist/builder.d.ts +1 -1
  125. package/{node_modules → vendor}/@appport/schema/dist/builder.js +1 -1
  126. package/{node_modules → vendor}/@appport/schema/dist/from-json-schema.d.ts +1 -1
  127. package/{node_modules → vendor}/@appport/schema/dist/index.d.ts +1 -1
  128. package/{node_modules → vendor}/@appport/schema/dist/standard.d.ts +1 -1
  129. package/{node_modules → vendor}/@appport/schema/dist/types.d.ts +1 -1
  130. package/{node_modules → vendor}/@appport/server/dist/connection.d.ts +2 -2
  131. package/{node_modules → vendor}/@appport/server/dist/connection.js +3 -3
  132. package/{node_modules → vendor}/@appport/server/dist/http.d.ts +1 -1
  133. package/{node_modules → vendor}/@appport/server/dist/http.d.ts.map +1 -1
  134. package/{node_modules → vendor}/@appport/server/dist/http.js +3 -2
  135. package/vendor/@appport/server/dist/http.js.map +1 -0
  136. package/{node_modules → vendor}/@appport/server/dist/node.js +1 -1
  137. package/{node_modules → vendor}/@appport/server/dist/server.d.ts +2 -2
  138. package/{node_modules → vendor}/@appport/server/dist/server.js +2 -2
  139. package/{node_modules → vendor}/@appport/transport-electron/dist/main.d.ts +1 -1
  140. package/{node_modules → vendor}/@appport/transport-electron/dist/main.js +1 -1
  141. package/{node_modules → vendor}/@appport/transport-electron/dist/renderer.d.ts +1 -1
  142. package/{node_modules → vendor}/@appport/transport-electron/dist/renderer.js +2 -2
  143. package/{node_modules → vendor}/@appport/transport-http/dist/index.d.ts +1 -1
  144. package/{node_modules → vendor}/@appport/transport-http/dist/index.js +1 -1
  145. package/{node_modules → vendor}/@appport/transport-inprocess/dist/index.d.ts +2 -2
  146. package/{node_modules → vendor}/@appport/transport-inprocess/dist/index.js +1 -1
  147. package/{node_modules → vendor}/@appport/transport-tauri/dist/index.d.ts +1 -1
  148. package/{node_modules → vendor}/@appport/transport-tauri/dist/index.js +2 -2
  149. package/{node_modules → vendor}/@appport/transport-websocket/dist/index.d.ts +1 -1
  150. package/{node_modules → vendor}/@appport/transport-websocket/dist/index.js +2 -2
  151. package/node_modules/@appport/core/dist/application.d.ts.map +0 -1
  152. package/node_modules/@appport/core/dist/application.js.map +0 -1
  153. package/node_modules/@appport/core/dist/registry.d.ts.map +0 -1
  154. package/node_modules/@appport/protocol/dist/errors.js.map +0 -1
  155. package/node_modules/@appport/protocol/dist/manifest.d.ts.map +0 -1
  156. package/node_modules/@appport/server/dist/http.js.map +0 -1
  157. /package/{node_modules → vendor}/@appport/authorization/README.md +0 -0
  158. /package/{node_modules → vendor}/@appport/authorization/dist/index.d.ts.map +0 -0
  159. /package/{node_modules → vendor}/@appport/authorization/dist/index.js.map +0 -0
  160. /package/{node_modules → vendor}/@appport/authorization/package.json +0 -0
  161. /package/{node_modules → vendor}/@appport/client/README.md +0 -0
  162. /package/{node_modules → vendor}/@appport/client/dist/channel.d.ts +0 -0
  163. /package/{node_modules → vendor}/@appport/client/dist/channel.d.ts.map +0 -0
  164. /package/{node_modules → vendor}/@appport/client/dist/channel.js +0 -0
  165. /package/{node_modules → vendor}/@appport/client/dist/channel.js.map +0 -0
  166. /package/{node_modules → vendor}/@appport/client/dist/client.d.ts.map +0 -0
  167. /package/{node_modules → vendor}/@appport/client/dist/client.js.map +0 -0
  168. /package/{node_modules → vendor}/@appport/client/dist/contract.d.ts.map +0 -0
  169. /package/{node_modules → vendor}/@appport/client/dist/contract.js +0 -0
  170. /package/{node_modules → vendor}/@appport/client/dist/contract.js.map +0 -0
  171. /package/{node_modules → vendor}/@appport/client/dist/discovery.d.ts +0 -0
  172. /package/{node_modules → vendor}/@appport/client/dist/discovery.d.ts.map +0 -0
  173. /package/{node_modules → vendor}/@appport/client/dist/discovery.js.map +0 -0
  174. /package/{node_modules → vendor}/@appport/client/dist/duplex.d.ts.map +0 -0
  175. /package/{node_modules → vendor}/@appport/client/dist/duplex.js.map +0 -0
  176. /package/{node_modules → vendor}/@appport/client/dist/index.d.ts +0 -0
  177. /package/{node_modules → vendor}/@appport/client/dist/index.d.ts.map +0 -0
  178. /package/{node_modules → vendor}/@appport/client/dist/index.js +0 -0
  179. /package/{node_modules → vendor}/@appport/client/dist/index.js.map +0 -0
  180. /package/{node_modules → vendor}/@appport/client/dist/transport.d.ts.map +0 -0
  181. /package/{node_modules → vendor}/@appport/client/dist/transport.js +0 -0
  182. /package/{node_modules → vendor}/@appport/client/dist/transport.js.map +0 -0
  183. /package/{node_modules → vendor}/@appport/client/package.json +0 -0
  184. /package/{node_modules → vendor}/@appport/core/README.md +0 -0
  185. /package/{node_modules → vendor}/@appport/core/dist/appboundry-contract.d.ts.map +0 -0
  186. /package/{node_modules → vendor}/@appport/core/dist/appboundry-contract.js +0 -0
  187. /package/{node_modules → vendor}/@appport/core/dist/appboundry-contract.js.map +0 -0
  188. /package/{node_modules → vendor}/@appport/core/dist/application-implementation.d.ts +0 -0
  189. /package/{node_modules → vendor}/@appport/core/dist/application-implementation.d.ts.map +0 -0
  190. /package/{node_modules → vendor}/@appport/core/dist/application-implementation.js +0 -0
  191. /package/{node_modules → vendor}/@appport/core/dist/application-implementation.js.map +0 -0
  192. /package/{node_modules → vendor}/@appport/core/dist/application-lifecycle.d.ts +0 -0
  193. /package/{node_modules → vendor}/@appport/core/dist/application-lifecycle.d.ts.map +0 -0
  194. /package/{node_modules → vendor}/@appport/core/dist/application-lifecycle.js +0 -0
  195. /package/{node_modules → vendor}/@appport/core/dist/application-lifecycle.js.map +0 -0
  196. /package/{node_modules → vendor}/@appport/core/dist/application-source.d.ts +0 -0
  197. /package/{node_modules → vendor}/@appport/core/dist/application-source.d.ts.map +0 -0
  198. /package/{node_modules → vendor}/@appport/core/dist/application-source.js +0 -0
  199. /package/{node_modules → vendor}/@appport/core/dist/application-source.js.map +0 -0
  200. /package/{node_modules → vendor}/@appport/core/dist/artifact.d.ts.map +0 -0
  201. /package/{node_modules → vendor}/@appport/core/dist/artifact.js +0 -0
  202. /package/{node_modules → vendor}/@appport/core/dist/artifact.js.map +0 -0
  203. /package/{node_modules → vendor}/@appport/core/dist/assembly.d.ts.map +0 -0
  204. /package/{node_modules → vendor}/@appport/core/dist/assembly.js +0 -0
  205. /package/{node_modules → vendor}/@appport/core/dist/assembly.js.map +0 -0
  206. /package/{node_modules → vendor}/@appport/core/dist/authority-attestation.d.ts +0 -0
  207. /package/{node_modules → vendor}/@appport/core/dist/authority-attestation.d.ts.map +0 -0
  208. /package/{node_modules → vendor}/@appport/core/dist/authority-attestation.js +0 -0
  209. /package/{node_modules → vendor}/@appport/core/dist/authority-attestation.js.map +0 -0
  210. /package/{node_modules → vendor}/@appport/core/dist/authorization-grant.d.ts +0 -0
  211. /package/{node_modules → vendor}/@appport/core/dist/authorization-grant.d.ts.map +0 -0
  212. /package/{node_modules → vendor}/@appport/core/dist/authorization-grant.js +0 -0
  213. /package/{node_modules → vendor}/@appport/core/dist/authorization-grant.js.map +0 -0
  214. /package/{node_modules → vendor}/@appport/core/dist/binding.d.ts +0 -0
  215. /package/{node_modules → vendor}/@appport/core/dist/binding.d.ts.map +0 -0
  216. /package/{node_modules → vendor}/@appport/core/dist/binding.js +0 -0
  217. /package/{node_modules → vendor}/@appport/core/dist/binding.js.map +0 -0
  218. /package/{node_modules → vendor}/@appport/core/dist/builtins.d.ts.map +0 -0
  219. /package/{node_modules → vendor}/@appport/core/dist/builtins.js.map +0 -0
  220. /package/{node_modules → vendor}/@appport/core/dist/capability.d.ts.map +0 -0
  221. /package/{node_modules → vendor}/@appport/core/dist/capability.js.map +0 -0
  222. /package/{node_modules → vendor}/@appport/core/dist/concurrency.d.ts.map +0 -0
  223. /package/{node_modules → vendor}/@appport/core/dist/concurrency.js.map +0 -0
  224. /package/{node_modules → vendor}/@appport/core/dist/context.d.ts.map +0 -0
  225. /package/{node_modules → vendor}/@appport/core/dist/context.js +0 -0
  226. /package/{node_modules → vendor}/@appport/core/dist/context.js.map +0 -0
  227. /package/{node_modules → vendor}/@appport/core/dist/contract-artifact.d.ts +0 -0
  228. /package/{node_modules → vendor}/@appport/core/dist/contract-artifact.d.ts.map +0 -0
  229. /package/{node_modules → vendor}/@appport/core/dist/contract-artifact.js +0 -0
  230. /package/{node_modules → vendor}/@appport/core/dist/contract-artifact.js.map +0 -0
  231. /package/{node_modules → vendor}/@appport/core/dist/contract-attestation.d.ts +0 -0
  232. /package/{node_modules → vendor}/@appport/core/dist/contract-attestation.d.ts.map +0 -0
  233. /package/{node_modules → vendor}/@appport/core/dist/contract-attestation.js +0 -0
  234. /package/{node_modules → vendor}/@appport/core/dist/contract-attestation.js.map +0 -0
  235. /package/{node_modules → vendor}/@appport/core/dist/crash-injection.d.ts +0 -0
  236. /package/{node_modules → vendor}/@appport/core/dist/crash-injection.d.ts.map +0 -0
  237. /package/{node_modules → vendor}/@appport/core/dist/crash-injection.js +0 -0
  238. /package/{node_modules → vendor}/@appport/core/dist/crash-injection.js.map +0 -0
  239. /package/{node_modules → vendor}/@appport/core/dist/events.d.ts.map +0 -0
  240. /package/{node_modules → vendor}/@appport/core/dist/events.js +0 -0
  241. /package/{node_modules → vendor}/@appport/core/dist/events.js.map +0 -0
  242. /package/{node_modules → vendor}/@appport/core/dist/execution-barrier.d.ts +0 -0
  243. /package/{node_modules → vendor}/@appport/core/dist/execution-barrier.d.ts.map +0 -0
  244. /package/{node_modules → vendor}/@appport/core/dist/execution-barrier.js +0 -0
  245. /package/{node_modules → vendor}/@appport/core/dist/execution-barrier.js.map +0 -0
  246. /package/{node_modules → vendor}/@appport/core/dist/execution-ledger.d.ts +0 -0
  247. /package/{node_modules → vendor}/@appport/core/dist/execution-ledger.d.ts.map +0 -0
  248. /package/{node_modules → vendor}/@appport/core/dist/execution-ledger.js +0 -0
  249. /package/{node_modules → vendor}/@appport/core/dist/execution-ledger.js.map +0 -0
  250. /package/{node_modules → vendor}/@appport/core/dist/execution.d.ts +0 -0
  251. /package/{node_modules → vendor}/@appport/core/dist/execution.d.ts.map +0 -0
  252. /package/{node_modules → vendor}/@appport/core/dist/execution.js +0 -0
  253. /package/{node_modules → vendor}/@appport/core/dist/execution.js.map +0 -0
  254. /package/{node_modules → vendor}/@appport/core/dist/idempotency.d.ts.map +0 -0
  255. /package/{node_modules → vendor}/@appport/core/dist/idempotency.js +0 -0
  256. /package/{node_modules → vendor}/@appport/core/dist/idempotency.js.map +0 -0
  257. /package/{node_modules → vendor}/@appport/core/dist/implementation.d.ts +0 -0
  258. /package/{node_modules → vendor}/@appport/core/dist/implementation.d.ts.map +0 -0
  259. /package/{node_modules → vendor}/@appport/core/dist/implementation.js +0 -0
  260. /package/{node_modules → vendor}/@appport/core/dist/implementation.js.map +0 -0
  261. /package/{node_modules → vendor}/@appport/core/dist/invocation.d.ts +0 -0
  262. /package/{node_modules → vendor}/@appport/core/dist/invocation.d.ts.map +0 -0
  263. /package/{node_modules → vendor}/@appport/core/dist/invocation.js.map +0 -0
  264. /package/{node_modules → vendor}/@appport/core/dist/manifest.d.ts.map +0 -0
  265. /package/{node_modules → vendor}/@appport/core/dist/manifest.js +0 -0
  266. /package/{node_modules → vendor}/@appport/core/dist/manifest.js.map +0 -0
  267. /package/{node_modules → vendor}/@appport/core/dist/memory-application-data-store.d.ts +0 -0
  268. /package/{node_modules → vendor}/@appport/core/dist/memory-application-data-store.d.ts.map +0 -0
  269. /package/{node_modules → vendor}/@appport/core/dist/memory-application-data-store.js +0 -0
  270. /package/{node_modules → vendor}/@appport/core/dist/memory-application-data-store.js.map +0 -0
  271. /package/{node_modules → vendor}/@appport/core/dist/operations.d.ts.map +0 -0
  272. /package/{node_modules → vendor}/@appport/core/dist/operations.js.map +0 -0
  273. /package/{node_modules → vendor}/@appport/core/dist/registration.d.ts +0 -0
  274. /package/{node_modules → vendor}/@appport/core/dist/registration.d.ts.map +0 -0
  275. /package/{node_modules → vendor}/@appport/core/dist/registration.js +0 -0
  276. /package/{node_modules → vendor}/@appport/core/dist/registration.js.map +0 -0
  277. /package/{node_modules → vendor}/@appport/core/dist/repository-connection.d.ts +0 -0
  278. /package/{node_modules → vendor}/@appport/core/dist/repository-connection.d.ts.map +0 -0
  279. /package/{node_modules → vendor}/@appport/core/dist/repository-connection.js +0 -0
  280. /package/{node_modules → vendor}/@appport/core/dist/repository-connection.js.map +0 -0
  281. /package/{node_modules → vendor}/@appport/core/dist/resolver.d.ts +0 -0
  282. /package/{node_modules → vendor}/@appport/core/dist/resolver.d.ts.map +0 -0
  283. /package/{node_modules → vendor}/@appport/core/dist/resolver.js +0 -0
  284. /package/{node_modules → vendor}/@appport/core/dist/resolver.js.map +0 -0
  285. /package/{node_modules → vendor}/@appport/core/dist/runtime-manifest.d.ts +0 -0
  286. /package/{node_modules → vendor}/@appport/core/dist/runtime-manifest.d.ts.map +0 -0
  287. /package/{node_modules → vendor}/@appport/core/dist/runtime-manifest.js +0 -0
  288. /package/{node_modules → vendor}/@appport/core/dist/runtime-manifest.js.map +0 -0
  289. /package/{node_modules → vendor}/@appport/core/dist/sanitize.d.ts.map +0 -0
  290. /package/{node_modules → vendor}/@appport/core/dist/sanitize.js.map +0 -0
  291. /package/{node_modules → vendor}/@appport/core/dist/server-internal.d.ts +0 -0
  292. /package/{node_modules → vendor}/@appport/core/dist/server-internal.d.ts.map +0 -0
  293. /package/{node_modules → vendor}/@appport/core/dist/server-internal.js +0 -0
  294. /package/{node_modules → vendor}/@appport/core/dist/server-internal.js.map +0 -0
  295. /package/{node_modules → vendor}/@appport/core/dist/sessions.d.ts.map +0 -0
  296. /package/{node_modules → vendor}/@appport/core/dist/sessions.js.map +0 -0
  297. /package/{node_modules → vendor}/@appport/core/dist/sha256.d.ts +0 -0
  298. /package/{node_modules → vendor}/@appport/core/dist/sha256.d.ts.map +0 -0
  299. /package/{node_modules → vendor}/@appport/core/dist/sha256.js +0 -0
  300. /package/{node_modules → vendor}/@appport/core/dist/sha256.js.map +0 -0
  301. /package/{node_modules → vendor}/@appport/core/dist/source-verification.d.ts +0 -0
  302. /package/{node_modules → vendor}/@appport/core/dist/source-verification.d.ts.map +0 -0
  303. /package/{node_modules → vendor}/@appport/core/dist/source-verification.js +0 -0
  304. /package/{node_modules → vendor}/@appport/core/dist/source-verification.js.map +0 -0
  305. /package/{node_modules → vendor}/@appport/core/dist/state-context.d.ts +0 -0
  306. /package/{node_modules → vendor}/@appport/core/dist/state-context.d.ts.map +0 -0
  307. /package/{node_modules → vendor}/@appport/core/dist/state-context.js +0 -0
  308. /package/{node_modules → vendor}/@appport/core/dist/state-context.js.map +0 -0
  309. /package/{node_modules → vendor}/@appport/core/dist/state.d.ts +0 -0
  310. /package/{node_modules → vendor}/@appport/core/dist/state.d.ts.map +0 -0
  311. /package/{node_modules → vendor}/@appport/core/dist/state.js +0 -0
  312. /package/{node_modules → vendor}/@appport/core/dist/state.js.map +0 -0
  313. /package/{node_modules → vendor}/@appport/core/dist/streams.d.ts.map +0 -0
  314. /package/{node_modules → vendor}/@appport/core/dist/streams.js.map +0 -0
  315. /package/{node_modules → vendor}/@appport/core/dist/telemetry.d.ts.map +0 -0
  316. /package/{node_modules → vendor}/@appport/core/dist/telemetry.js +0 -0
  317. /package/{node_modules → vendor}/@appport/core/dist/telemetry.js.map +0 -0
  318. /package/{node_modules → vendor}/@appport/core/dist/wasm-engine.d.ts +0 -0
  319. /package/{node_modules → vendor}/@appport/core/dist/wasm-engine.d.ts.map +0 -0
  320. /package/{node_modules → vendor}/@appport/core/dist/wasm-engine.js +0 -0
  321. /package/{node_modules → vendor}/@appport/core/dist/wasm-engine.js.map +0 -0
  322. /package/{node_modules → vendor}/@appport/core/package.json +0 -0
  323. /package/{node_modules → vendor}/@appport/mobile/README.md +0 -0
  324. /package/{node_modules → vendor}/@appport/mobile/dist/index.d.ts.map +0 -0
  325. /package/{node_modules → vendor}/@appport/mobile/dist/index.js.map +0 -0
  326. /package/{node_modules → vendor}/@appport/mobile/package.json +0 -0
  327. /package/{node_modules → vendor}/@appport/protocol/README.md +0 -0
  328. /package/{node_modules → vendor}/@appport/protocol/dist/blob.d.ts +0 -0
  329. /package/{node_modules → vendor}/@appport/protocol/dist/blob.d.ts.map +0 -0
  330. /package/{node_modules → vendor}/@appport/protocol/dist/blob.js +0 -0
  331. /package/{node_modules → vendor}/@appport/protocol/dist/blob.js.map +0 -0
  332. /package/{node_modules → vendor}/@appport/protocol/dist/compatibility.d.ts +0 -0
  333. /package/{node_modules → vendor}/@appport/protocol/dist/compatibility.d.ts.map +0 -0
  334. /package/{node_modules → vendor}/@appport/protocol/dist/compatibility.js +0 -0
  335. /package/{node_modules → vendor}/@appport/protocol/dist/compatibility.js.map +0 -0
  336. /package/{node_modules → vendor}/@appport/protocol/dist/envelopes.d.ts +0 -0
  337. /package/{node_modules → vendor}/@appport/protocol/dist/envelopes.d.ts.map +0 -0
  338. /package/{node_modules → vendor}/@appport/protocol/dist/envelopes.js +0 -0
  339. /package/{node_modules → vendor}/@appport/protocol/dist/envelopes.js.map +0 -0
  340. /package/{node_modules → vendor}/@appport/protocol/dist/ids.d.ts +0 -0
  341. /package/{node_modules → vendor}/@appport/protocol/dist/ids.d.ts.map +0 -0
  342. /package/{node_modules → vendor}/@appport/protocol/dist/ids.js +0 -0
  343. /package/{node_modules → vendor}/@appport/protocol/dist/ids.js.map +0 -0
  344. /package/{node_modules → vendor}/@appport/protocol/dist/jsonschema.d.ts +0 -0
  345. /package/{node_modules → vendor}/@appport/protocol/dist/jsonschema.d.ts.map +0 -0
  346. /package/{node_modules → vendor}/@appport/protocol/dist/jsonschema.js +0 -0
  347. /package/{node_modules → vendor}/@appport/protocol/dist/jsonschema.js.map +0 -0
  348. /package/{node_modules → vendor}/@appport/protocol/dist/manifest.js +0 -0
  349. /package/{node_modules → vendor}/@appport/protocol/dist/names.d.ts +0 -0
  350. /package/{node_modules → vendor}/@appport/protocol/dist/names.d.ts.map +0 -0
  351. /package/{node_modules → vendor}/@appport/protocol/dist/names.js +0 -0
  352. /package/{node_modules → vendor}/@appport/protocol/dist/names.js.map +0 -0
  353. /package/{node_modules → vendor}/@appport/protocol/dist/operations.d.ts +0 -0
  354. /package/{node_modules → vendor}/@appport/protocol/dist/operations.d.ts.map +0 -0
  355. /package/{node_modules → vendor}/@appport/protocol/dist/operations.js +0 -0
  356. /package/{node_modules → vendor}/@appport/protocol/dist/operations.js.map +0 -0
  357. /package/{node_modules → vendor}/@appport/protocol/dist/session.d.ts +0 -0
  358. /package/{node_modules → vendor}/@appport/protocol/dist/session.d.ts.map +0 -0
  359. /package/{node_modules → vendor}/@appport/protocol/dist/session.js +0 -0
  360. /package/{node_modules → vendor}/@appport/protocol/dist/session.js.map +0 -0
  361. /package/{node_modules → vendor}/@appport/protocol/dist/validate.d.ts +0 -0
  362. /package/{node_modules → vendor}/@appport/protocol/dist/validate.d.ts.map +0 -0
  363. /package/{node_modules → vendor}/@appport/protocol/dist/validate.js +0 -0
  364. /package/{node_modules → vendor}/@appport/protocol/dist/validate.js.map +0 -0
  365. /package/{node_modules → vendor}/@appport/protocol/dist/version.d.ts +0 -0
  366. /package/{node_modules → vendor}/@appport/protocol/dist/version.d.ts.map +0 -0
  367. /package/{node_modules → vendor}/@appport/protocol/dist/version.js +0 -0
  368. /package/{node_modules → vendor}/@appport/protocol/dist/version.js.map +0 -0
  369. /package/{node_modules → vendor}/@appport/protocol/package.json +0 -0
  370. /package/{node_modules → vendor}/@appport/schema/README.md +0 -0
  371. /package/{node_modules → vendor}/@appport/schema/dist/builder.d.ts.map +0 -0
  372. /package/{node_modules → vendor}/@appport/schema/dist/builder.js.map +0 -0
  373. /package/{node_modules → vendor}/@appport/schema/dist/from-json-schema.d.ts.map +0 -0
  374. /package/{node_modules → vendor}/@appport/schema/dist/from-json-schema.js +0 -0
  375. /package/{node_modules → vendor}/@appport/schema/dist/from-json-schema.js.map +0 -0
  376. /package/{node_modules → vendor}/@appport/schema/dist/index.d.ts.map +0 -0
  377. /package/{node_modules → vendor}/@appport/schema/dist/index.js +0 -0
  378. /package/{node_modules → vendor}/@appport/schema/dist/index.js.map +0 -0
  379. /package/{node_modules → vendor}/@appport/schema/dist/standard.d.ts.map +0 -0
  380. /package/{node_modules → vendor}/@appport/schema/dist/standard.js +0 -0
  381. /package/{node_modules → vendor}/@appport/schema/dist/standard.js.map +0 -0
  382. /package/{node_modules → vendor}/@appport/schema/dist/types.d.ts.map +0 -0
  383. /package/{node_modules → vendor}/@appport/schema/dist/types.js +0 -0
  384. /package/{node_modules → vendor}/@appport/schema/dist/types.js.map +0 -0
  385. /package/{node_modules → vendor}/@appport/schema/package.json +0 -0
  386. /package/{node_modules → vendor}/@appport/server/README.md +0 -0
  387. /package/{node_modules → vendor}/@appport/server/dist/connection.d.ts.map +0 -0
  388. /package/{node_modules → vendor}/@appport/server/dist/connection.js.map +0 -0
  389. /package/{node_modules → vendor}/@appport/server/dist/fetch.d.ts +0 -0
  390. /package/{node_modules → vendor}/@appport/server/dist/fetch.d.ts.map +0 -0
  391. /package/{node_modules → vendor}/@appport/server/dist/fetch.js +0 -0
  392. /package/{node_modules → vendor}/@appport/server/dist/fetch.js.map +0 -0
  393. /package/{node_modules → vendor}/@appport/server/dist/index.d.ts +0 -0
  394. /package/{node_modules → vendor}/@appport/server/dist/index.d.ts.map +0 -0
  395. /package/{node_modules → vendor}/@appport/server/dist/index.js +0 -0
  396. /package/{node_modules → vendor}/@appport/server/dist/index.js.map +0 -0
  397. /package/{node_modules → vendor}/@appport/server/dist/node-entry.d.ts +0 -0
  398. /package/{node_modules → vendor}/@appport/server/dist/node-entry.d.ts.map +0 -0
  399. /package/{node_modules → vendor}/@appport/server/dist/node-entry.js +0 -0
  400. /package/{node_modules → vendor}/@appport/server/dist/node-entry.js.map +0 -0
  401. /package/{node_modules → vendor}/@appport/server/dist/node.d.ts +0 -0
  402. /package/{node_modules → vendor}/@appport/server/dist/node.d.ts.map +0 -0
  403. /package/{node_modules → vendor}/@appport/server/dist/node.js.map +0 -0
  404. /package/{node_modules → vendor}/@appport/server/dist/server.d.ts.map +0 -0
  405. /package/{node_modules → vendor}/@appport/server/dist/server.js.map +0 -0
  406. /package/{node_modules → vendor}/@appport/server/dist/websocket.d.ts +0 -0
  407. /package/{node_modules → vendor}/@appport/server/dist/websocket.d.ts.map +0 -0
  408. /package/{node_modules → vendor}/@appport/server/dist/websocket.js +0 -0
  409. /package/{node_modules → vendor}/@appport/server/dist/websocket.js.map +0 -0
  410. /package/{node_modules → vendor}/@appport/server/package.json +0 -0
  411. /package/{node_modules → vendor}/@appport/transport-electron/README.md +0 -0
  412. /package/{node_modules → vendor}/@appport/transport-electron/dist/index.d.ts +0 -0
  413. /package/{node_modules → vendor}/@appport/transport-electron/dist/index.d.ts.map +0 -0
  414. /package/{node_modules → vendor}/@appport/transport-electron/dist/index.js +0 -0
  415. /package/{node_modules → vendor}/@appport/transport-electron/dist/index.js.map +0 -0
  416. /package/{node_modules → vendor}/@appport/transport-electron/dist/main.d.ts.map +0 -0
  417. /package/{node_modules → vendor}/@appport/transport-electron/dist/main.js.map +0 -0
  418. /package/{node_modules → vendor}/@appport/transport-electron/dist/preload.d.ts +0 -0
  419. /package/{node_modules → vendor}/@appport/transport-electron/dist/preload.d.ts.map +0 -0
  420. /package/{node_modules → vendor}/@appport/transport-electron/dist/preload.js +0 -0
  421. /package/{node_modules → vendor}/@appport/transport-electron/dist/preload.js.map +0 -0
  422. /package/{node_modules → vendor}/@appport/transport-electron/dist/renderer.d.ts.map +0 -0
  423. /package/{node_modules → vendor}/@appport/transport-electron/dist/renderer.js.map +0 -0
  424. /package/{node_modules → vendor}/@appport/transport-electron/dist/types.d.ts +0 -0
  425. /package/{node_modules → vendor}/@appport/transport-electron/dist/types.d.ts.map +0 -0
  426. /package/{node_modules → vendor}/@appport/transport-electron/dist/types.js +0 -0
  427. /package/{node_modules → vendor}/@appport/transport-electron/dist/types.js.map +0 -0
  428. /package/{node_modules → vendor}/@appport/transport-electron/package.json +0 -0
  429. /package/{node_modules → vendor}/@appport/transport-http/README.md +0 -0
  430. /package/{node_modules → vendor}/@appport/transport-http/dist/index.d.ts.map +0 -0
  431. /package/{node_modules → vendor}/@appport/transport-http/dist/index.js.map +0 -0
  432. /package/{node_modules → vendor}/@appport/transport-http/package.json +0 -0
  433. /package/{node_modules → vendor}/@appport/transport-inprocess/README.md +0 -0
  434. /package/{node_modules → vendor}/@appport/transport-inprocess/dist/index.d.ts.map +0 -0
  435. /package/{node_modules → vendor}/@appport/transport-inprocess/dist/index.js.map +0 -0
  436. /package/{node_modules → vendor}/@appport/transport-inprocess/package.json +0 -0
  437. /package/{node_modules → vendor}/@appport/transport-tauri/README.md +0 -0
  438. /package/{node_modules → vendor}/@appport/transport-tauri/dist/index.d.ts.map +0 -0
  439. /package/{node_modules → vendor}/@appport/transport-tauri/dist/index.js.map +0 -0
  440. /package/{node_modules → vendor}/@appport/transport-tauri/package.json +0 -0
  441. /package/{node_modules → vendor}/@appport/transport-websocket/README.md +0 -0
  442. /package/{node_modules → vendor}/@appport/transport-websocket/dist/index.d.ts.map +0 -0
  443. /package/{node_modules → vendor}/@appport/transport-websocket/dist/index.js.map +0 -0
  444. /package/{node_modules → vendor}/@appport/transport-websocket/package.json +0 -0
@@ -0,0 +1,474 @@
1
+ /**
2
+ * AppBoundry materialization orchestration for resolved capabilities.
3
+ *
4
+ * AppPort defines the materialization request/result/evidence contract.
5
+ * AppBoundry consumes that contract after authorization and capability
6
+ * resolution, selects a compatible materializer, and executes the resulting
7
+ * ephemeral instance. This layer does not add a protocol, scheduler, daemon,
8
+ * remote deployment system, or FeltDB dependency.
9
+ */
10
+ import { NO_COMPATIBLE_MATERIALIZATION, PROTOCOL_ID } from "../../protocol/dist/index.js";
11
+ const issuedMaterializations = new WeakSet();
12
+ export class AppBoundryMaterializerRegistry {
13
+ #materializers = new Map();
14
+ register(materializer) {
15
+ if (!materializer.id)
16
+ throw new Error("materializer id must be non-empty");
17
+ if (materializer.targets.length === 0)
18
+ throw new Error(`materializer "${materializer.id}" must support at least one target`);
19
+ if (this.#materializers.has(materializer.id))
20
+ throw new Error(`materializer "${materializer.id}" is already registered`);
21
+ this.#materializers.set(materializer.id, materializer);
22
+ return this;
23
+ }
24
+ list() {
25
+ return [...this.#materializers.values()].sort(compareMaterializers);
26
+ }
27
+ compatible(target, resolution, artifact) {
28
+ return this.list().filter((materializer) => materializerCanSatisfy(materializer, target, resolution, artifact));
29
+ }
30
+ }
31
+ export class AppBoundryMaterializationResolver {
32
+ registry;
33
+ constructor(registry) {
34
+ this.registry = registry;
35
+ }
36
+ resolve(input) {
37
+ const requestedTarget = selectRequestedTarget(input.resolution, input.requestedTarget);
38
+ const request = createAppBoundryMaterializationRequest({
39
+ resolution: input.resolution,
40
+ artifact: input.artifact,
41
+ requestedTarget
42
+ });
43
+ const candidates = this.registry.compatible(requestedTarget, input.resolution, input.artifact);
44
+ if (candidates.length === 0) {
45
+ return {
46
+ kind: "unsupported",
47
+ resolution: input.resolution,
48
+ requestedTarget,
49
+ candidates: [],
50
+ request,
51
+ result: noCompatibleMaterializationResult(request, `No materializer supports target "${requestedTarget}"`)
52
+ };
53
+ }
54
+ const topPriority = candidates[0].priority ?? 0;
55
+ const top = candidates.filter((candidate) => (candidate.priority ?? 0) === topPriority);
56
+ if (top.length > 1) {
57
+ return {
58
+ kind: "ambiguous",
59
+ resolution: input.resolution,
60
+ requestedTarget,
61
+ candidates: top,
62
+ request,
63
+ reason: `Multiple materializers can satisfy "${requestedTarget}" with priority ${topPriority}`
64
+ };
65
+ }
66
+ return {
67
+ kind: "resolved",
68
+ resolution: input.resolution,
69
+ materializer: candidates[0],
70
+ request
71
+ };
72
+ }
73
+ }
74
+ export class AppBoundryMaterializationOrchestrator {
75
+ resolver;
76
+ constructor(resolver) {
77
+ this.resolver = resolver;
78
+ }
79
+ async materialize(input) {
80
+ if (input.resolution.kind !== "resolved") {
81
+ const requestedTarget = input.requestedTarget ?? "unknown";
82
+ const request = fallbackMaterializationRequest(input.resolution, input.artifact, requestedTarget);
83
+ return {
84
+ kind: "blocked",
85
+ resolution: input.resolution,
86
+ requestedTarget,
87
+ request,
88
+ result: noCompatibleMaterializationResult(request, `Capability request "${input.resolution.request.requestId}" was not authorized and resolved`)
89
+ };
90
+ }
91
+ const materialization = this.resolver.resolve({
92
+ resolution: input.resolution,
93
+ artifact: input.artifact,
94
+ requestedTarget: input.requestedTarget
95
+ });
96
+ if (materialization.kind !== "resolved")
97
+ return materialization;
98
+ const success = await materialization.materializer.materialize({
99
+ resolution: materialization.resolution,
100
+ artifact: input.artifact,
101
+ request: materialization.request,
102
+ context: input.context
103
+ });
104
+ issuedMaterializations.add(success.materialized);
105
+ return success;
106
+ }
107
+ }
108
+ export function createAppBoundryMaterializationRequest(input) {
109
+ const requestedTarget = selectRequestedTarget(input.resolution, input.requestedTarget);
110
+ return {
111
+ protocol: PROTOCOL_ID,
112
+ requestId: input.requestId ?? `${input.resolution.resolutionId}::materialize::${requestedTarget}`,
113
+ application: input.resolution.materialization.application,
114
+ requestedTarget,
115
+ package: {
116
+ name: input.resolution.provider.id,
117
+ version: input.resolution.provider.version,
118
+ digest: input.artifact.contentHash,
119
+ attributes: {
120
+ capability: `${input.resolution.capability.name}@${input.resolution.capability.version}`,
121
+ artifactFormat: input.artifact.metadata.compiler.format
122
+ }
123
+ },
124
+ configuration: {
125
+ hash: input.resolution.materialization.contractFingerprint
126
+ },
127
+ context: {
128
+ appboundryResolutionId: input.resolution.resolutionId,
129
+ originalRequestId: input.resolution.request.requestId,
130
+ consumerApplicationId: input.resolution.application.id,
131
+ providerApplicationId: input.resolution.provider.id,
132
+ capabilityName: input.resolution.capability.name,
133
+ capabilityVersion: input.resolution.capability.version,
134
+ authorizationOutcome: input.resolution.authorization.outcome,
135
+ authorizationId: computeAuthorizationId(input.resolution),
136
+ ...(input.resolution.eligibility?.source ? { eligibilitySource: input.resolution.eligibility.source } : {}),
137
+ ...(input.resolution.eligibility?.relationshipId
138
+ ? { relationshipId: input.resolution.eligibility.relationshipId }
139
+ : {}),
140
+ ...(input.resolution.eligibility?.relationshipRevision !== undefined
141
+ ? { relationshipRevision: input.resolution.eligibility.relationshipRevision }
142
+ : {}),
143
+ ...(input.resolution.eligibility?.offerId ? { offerId: input.resolution.eligibility.offerId } : {}),
144
+ ...(input.resolution.eligibility?.offerRevision !== undefined
145
+ ? { offerRevision: input.resolution.eligibility.offerRevision }
146
+ : {}),
147
+ resolvedEnvironment: input.resolution.request.context.environment ?? requestedTarget,
148
+ ...(input.resolution.request.discovery?.discoveryId ? { discoveryId: input.resolution.request.discovery.discoveryId } : {})
149
+ }
150
+ };
151
+ }
152
+ export function createBrowserWasmMaterializer(options) {
153
+ return createExecutorMaterializer({
154
+ id: options.id ?? "appboundry.browser.wasm",
155
+ targets: ["browser"],
156
+ priority: options.priority,
157
+ constraints: { ...options.constraints, artifactFormats: ["wasm/1"] },
158
+ resolvedTarget: "browser",
159
+ execute: options.execute
160
+ });
161
+ }
162
+ export function createLocalMaterializer(options) {
163
+ return createExecutorMaterializer({
164
+ id: options.id ?? "appboundry.local.node",
165
+ targets: ["local"],
166
+ priority: options.priority,
167
+ constraints: options.constraints,
168
+ resolvedTarget: "local",
169
+ execute: options.execute
170
+ });
171
+ }
172
+ export function createRemoteMaterializer(options) {
173
+ const id = options.id ?? "appboundry.remote.contract";
174
+ return {
175
+ id,
176
+ targets: ["remote"],
177
+ ...(options.priority !== undefined ? { priority: options.priority } : {}),
178
+ ...(options.constraints ? { constraints: options.constraints } : {}),
179
+ async materialize(input) {
180
+ const materializationId = `${input.request.requestId}::${id}`;
181
+ const remoteHandoffId = `${materializationId}::handoff`;
182
+ const remote = await options.materialize({
183
+ handoffId: remoteHandoffId,
184
+ resolution: input.resolution,
185
+ artifact: input.artifact,
186
+ request: input.request,
187
+ context: input.context
188
+ });
189
+ const result = {
190
+ protocol: PROTOCOL_ID,
191
+ requestId: input.request.requestId,
192
+ ok: true,
193
+ evidence: {
194
+ application: input.request.application,
195
+ requestedTarget: input.request.requestedTarget,
196
+ resolvedTarget: "remote",
197
+ materializer: id,
198
+ materializationId,
199
+ configuration: input.request.configuration,
200
+ runtime: {
201
+ capability: `${input.resolution.capability.name}@${input.resolution.capability.version}`,
202
+ artifactHash: input.artifact.contentHash,
203
+ resolutionId: input.resolution.resolutionId,
204
+ authorizationId: computeAuthorizationId(input.resolution),
205
+ ...(input.resolution.eligibility?.source ? { eligibilitySource: input.resolution.eligibility.source } : {}),
206
+ ...(input.resolution.eligibility?.relationshipId
207
+ ? { relationshipId: input.resolution.eligibility.relationshipId }
208
+ : {}),
209
+ ...(input.resolution.eligibility?.relationshipRevision !== undefined
210
+ ? { relationshipRevision: input.resolution.eligibility.relationshipRevision }
211
+ : {}),
212
+ ...(input.resolution.eligibility?.offerId ? { offerId: input.resolution.eligibility.offerId } : {}),
213
+ ...(input.resolution.eligibility?.offerRevision !== undefined
214
+ ? { offerRevision: input.resolution.eligibility.offerRevision }
215
+ : {}),
216
+ remoteHandoffId: remote.remoteHandoffId,
217
+ resolvedEnvironment: input.resolution.request.context.environment ?? input.request.requestedTarget
218
+ }
219
+ }
220
+ };
221
+ const materialized = {
222
+ resolutionId: input.resolution.resolutionId,
223
+ materializationId,
224
+ materializerId: id,
225
+ requestedTarget: input.request.requestedTarget,
226
+ resolvedTarget: "remote",
227
+ artifact: input.artifact,
228
+ request: input.request,
229
+ result,
230
+ async execute(executionInput) {
231
+ const executionId = executionInput.executionId ?? `${remote.remoteHandoffId}::execute`;
232
+ try {
233
+ if (!issuedMaterializations.has(materialized)) {
234
+ throw new Error("Materialized capability was not issued by AppBoundryMaterializationOrchestrator");
235
+ }
236
+ const output = await remote.execute({
237
+ executionId,
238
+ capabilityInput: executionInput.input,
239
+ context: executionInput.context,
240
+ request: input.request
241
+ });
242
+ return {
243
+ kind: "success",
244
+ executionId,
245
+ resolutionId: input.resolution.resolutionId,
246
+ materializationId,
247
+ materializerId: id,
248
+ artifactHash: input.artifact.contentHash,
249
+ output,
250
+ evidence: executionEvidence(input, result, executionId),
251
+ completed: true
252
+ };
253
+ }
254
+ catch (error) {
255
+ return {
256
+ kind: "failed",
257
+ executionId,
258
+ resolutionId: input.resolution.resolutionId,
259
+ materializationId,
260
+ materializerId: id,
261
+ artifactHash: input.artifact.contentHash,
262
+ error: {
263
+ code: "appboundry.REMOTE_EXECUTION_FAILED",
264
+ message: error instanceof Error ? error.message : String(error)
265
+ },
266
+ evidence: executionEvidence(input, result, executionId),
267
+ completed: true
268
+ };
269
+ }
270
+ }
271
+ };
272
+ return { kind: "materialized", materialized, request: input.request, result };
273
+ }
274
+ };
275
+ }
276
+ function createExecutorMaterializer(options) {
277
+ return {
278
+ id: options.id,
279
+ targets: options.targets,
280
+ ...(options.priority !== undefined ? { priority: options.priority } : {}),
281
+ ...(options.constraints ? { constraints: options.constraints } : {}),
282
+ async materialize(input) {
283
+ const materializationId = `${input.request.requestId}::${options.id}`;
284
+ const result = {
285
+ protocol: PROTOCOL_ID,
286
+ requestId: input.request.requestId,
287
+ ok: true,
288
+ evidence: {
289
+ application: input.request.application,
290
+ requestedTarget: input.request.requestedTarget,
291
+ resolvedTarget: options.resolvedTarget,
292
+ materializer: options.id,
293
+ materializationId,
294
+ configuration: input.request.configuration,
295
+ runtime: {
296
+ capability: `${input.resolution.capability.name}@${input.resolution.capability.version}`,
297
+ artifactHash: input.artifact.contentHash,
298
+ resolutionId: input.resolution.resolutionId,
299
+ authorizationId: computeAuthorizationId(input.resolution),
300
+ ...(input.resolution.eligibility?.source ? { eligibilitySource: input.resolution.eligibility.source } : {}),
301
+ ...(input.resolution.eligibility?.relationshipId
302
+ ? { relationshipId: input.resolution.eligibility.relationshipId }
303
+ : {}),
304
+ ...(input.resolution.eligibility?.relationshipRevision !== undefined
305
+ ? { relationshipRevision: input.resolution.eligibility.relationshipRevision }
306
+ : {}),
307
+ ...(input.resolution.eligibility?.offerId ? { offerId: input.resolution.eligibility.offerId } : {}),
308
+ ...(input.resolution.eligibility?.offerRevision !== undefined
309
+ ? { offerRevision: input.resolution.eligibility.offerRevision }
310
+ : {}),
311
+ resolvedEnvironment: input.resolution.request.context.environment ?? input.request.requestedTarget
312
+ }
313
+ }
314
+ };
315
+ const materialized = {
316
+ resolutionId: input.resolution.resolutionId,
317
+ materializationId,
318
+ materializerId: options.id,
319
+ requestedTarget: input.request.requestedTarget,
320
+ resolvedTarget: options.resolvedTarget,
321
+ artifact: input.artifact,
322
+ request: input.request,
323
+ result,
324
+ async execute(executionInput) {
325
+ const executionId = executionInput.executionId ?? `${materializationId}::execute`;
326
+ try {
327
+ if (!issuedMaterializations.has(materialized)) {
328
+ throw new Error("Materialized capability was not issued by AppBoundryMaterializationOrchestrator");
329
+ }
330
+ const output = await options.execute({
331
+ artifact: input.artifact,
332
+ resolution: input.resolution,
333
+ materialization: materialized,
334
+ executionId,
335
+ capabilityInput: executionInput.input,
336
+ context: executionInput.context
337
+ });
338
+ return {
339
+ kind: "success",
340
+ executionId,
341
+ resolutionId: input.resolution.resolutionId,
342
+ materializationId,
343
+ materializerId: options.id,
344
+ artifactHash: input.artifact.contentHash,
345
+ output,
346
+ evidence: executionEvidence(input, result, executionId),
347
+ completed: true
348
+ };
349
+ }
350
+ catch (error) {
351
+ return {
352
+ kind: "failed",
353
+ executionId,
354
+ resolutionId: input.resolution.resolutionId,
355
+ materializationId,
356
+ materializerId: options.id,
357
+ artifactHash: input.artifact.contentHash,
358
+ error: {
359
+ code: "appboundry.EXECUTION_FAILED",
360
+ message: error instanceof Error ? error.message : String(error)
361
+ },
362
+ evidence: executionEvidence(input, result, executionId),
363
+ completed: true
364
+ };
365
+ }
366
+ }
367
+ };
368
+ return { kind: "materialized", materialized, request: input.request, result };
369
+ }
370
+ };
371
+ }
372
+ function selectRequestedTarget(resolution, requestedTarget) {
373
+ if (requestedTarget)
374
+ return requestedTarget;
375
+ if (resolution.materialization.requestedTarget)
376
+ return resolution.materialization.requestedTarget;
377
+ const [firstTarget] = resolution.materialization.declaration?.targets ?? [];
378
+ return firstTarget ?? "local";
379
+ }
380
+ function materializerCanSatisfy(materializer, target, resolution, artifact) {
381
+ if (!materializer.targets.includes(target))
382
+ return false;
383
+ const declaredTargets = resolution.materialization.declaration?.targets;
384
+ if (declaredTargets && !declaredTargets.includes(target))
385
+ return false;
386
+ const constraints = materializer.constraints;
387
+ if (!constraints)
388
+ return true;
389
+ if (constraints.applicationIds && !constraints.applicationIds.includes(resolution.materialization.application.id))
390
+ return false;
391
+ if (constraints.providerIds && !constraints.providerIds.includes(resolution.provider.id))
392
+ return false;
393
+ if (constraints.capabilities &&
394
+ !constraints.capabilities.some((capability) => capability.name === resolution.capability.name &&
395
+ (capability.version === undefined || capability.version === resolution.capability.version))) {
396
+ return false;
397
+ }
398
+ if (constraints.artifactFormats && !constraints.artifactFormats.includes(artifact.metadata.compiler.format))
399
+ return false;
400
+ return true;
401
+ }
402
+ function compareMaterializers(left, right) {
403
+ return (right.priority ?? 0) - (left.priority ?? 0) || left.id.localeCompare(right.id);
404
+ }
405
+ function noCompatibleMaterializationResult(request, message) {
406
+ return {
407
+ protocol: PROTOCOL_ID,
408
+ requestId: request.requestId,
409
+ ok: false,
410
+ error: {
411
+ code: NO_COMPATIBLE_MATERIALIZATION,
412
+ message
413
+ }
414
+ };
415
+ }
416
+ function fallbackMaterializationRequest(resolution, artifact, requestedTarget) {
417
+ return {
418
+ protocol: PROTOCOL_ID,
419
+ requestId: `${resolution.request.requestId}::materialize::${requestedTarget}`,
420
+ application: "provider" in resolution
421
+ ? { id: resolution.provider.id, name: resolution.provider.name, version: resolution.provider.version }
422
+ : { id: resolution.request.applicationId, name: resolution.request.applicationId, version: "unresolved" },
423
+ requestedTarget,
424
+ package: { digest: artifact.contentHash },
425
+ context: {
426
+ originalRequestId: resolution.request.requestId,
427
+ resolutionKind: resolution.kind
428
+ }
429
+ };
430
+ }
431
+ function executionEvidence(input, result, executionId) {
432
+ return {
433
+ requestId: input.resolution.request.requestId,
434
+ resolutionId: input.resolution.resolutionId,
435
+ materializationRequestId: input.request.requestId,
436
+ materializationId: result.evidence.materializationId,
437
+ ...(input.resolution.request.discovery?.discoveryId ? { discoveryId: input.resolution.request.discovery.discoveryId } : {}),
438
+ authorizationId: typeof result.evidence.runtime?.["authorizationId"] === "string" ? result.evidence.runtime["authorizationId"] : undefined,
439
+ eligibilitySource: typeof result.evidence.runtime?.["eligibilitySource"] === "string"
440
+ ? result.evidence.runtime["eligibilitySource"]
441
+ : undefined,
442
+ relationshipId: typeof result.evidence.runtime?.["relationshipId"] === "string" ? result.evidence.runtime["relationshipId"] : undefined,
443
+ relationshipRevision: typeof result.evidence.runtime?.["relationshipRevision"] === "number"
444
+ ? result.evidence.runtime["relationshipRevision"]
445
+ : undefined,
446
+ offerId: typeof result.evidence.runtime?.["offerId"] === "string" ? result.evidence.runtime["offerId"] : undefined,
447
+ offerRevision: typeof result.evidence.runtime?.["offerRevision"] === "number" ? result.evidence.runtime["offerRevision"] : undefined,
448
+ remoteHandoffId: typeof result.evidence.runtime?.["remoteHandoffId"] === "string" ? result.evidence.runtime["remoteHandoffId"] : undefined,
449
+ executionId,
450
+ providerApplicationId: input.resolution.provider.id,
451
+ consumerApplicationId: input.resolution.application.id,
452
+ capability: {
453
+ name: input.resolution.capability.name,
454
+ version: input.resolution.capability.version
455
+ },
456
+ requestedTarget: input.request.requestedTarget,
457
+ resolvedTarget: result.evidence.resolvedTarget,
458
+ resolvedEnvironment: typeof result.evidence.runtime?.["resolvedEnvironment"] === "string"
459
+ ? result.evidence.runtime["resolvedEnvironment"]
460
+ : undefined,
461
+ materializerId: result.evidence.materializer,
462
+ artifactHash: input.artifact.contentHash,
463
+ contractFingerprint: input.artifact.metadata.contractFingerprint
464
+ };
465
+ }
466
+ function computeAuthorizationId(resolution) {
467
+ return [
468
+ resolution.resolutionId,
469
+ "authorization",
470
+ resolution.authorization.outcome,
471
+ ...(resolution.authorization.grantedScopes ?? [])
472
+ ].join("::");
473
+ }
474
+ //# sourceMappingURL=appboundry-materialization.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"appboundry-materialization.js","sourceRoot":"","sources":["../src/appboundry-materialization.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,160 @@
1
+ /**
2
+ * AppBoundry capability resolution boundary.
3
+ *
4
+ * This is the AppBoundry-owned decision layer above the AppPort protocol:
5
+ * request context + available capabilities → authorization → deterministic
6
+ * resolution record. It produces data only; it does not materialize, schedule,
7
+ * deploy, execute, or depend on any particular state store.
8
+ */
9
+ import { PROTOCOL_ID, type JsonValue, type MaterializationDeclaration, type MaterializationTarget } from "../../protocol/dist/index.d.ts";
10
+ import type { ApplicationState } from "./state.js";
11
+ import type { ApplicationRegistry } from "./registration.js";
12
+ import type { CapabilityManifestEntry } from "./manifest.js";
13
+ import { type CompatibilityResult, type RequirementWithConstraints } from "./resolver.js";
14
+ import type { Denied } from "./binding.js";
15
+ /** The caller and ambient facts AppBoundry may use for authorization. */
16
+ export interface AppBoundryRequestContext {
17
+ readonly subject: {
18
+ readonly id: string;
19
+ readonly roles?: readonly string[];
20
+ readonly scopes?: readonly string[];
21
+ readonly tags?: readonly string[];
22
+ };
23
+ readonly tenantId?: string;
24
+ readonly environment?: string;
25
+ readonly attributes?: Readonly<Record<string, JsonValue>>;
26
+ }
27
+ /** A concrete capability offered by a provider application. */
28
+ export interface OfferedCapability {
29
+ readonly provider: ApplicationState;
30
+ readonly capability: CapabilityManifestEntry;
31
+ /** Deployment-neutral AppPort materialization declaration, if known. */
32
+ readonly materialization?: MaterializationDeclaration;
33
+ readonly metadata?: Readonly<Record<string, JsonValue>>;
34
+ }
35
+ /** AppBoundry request for one required capability. */
36
+ export interface AppBoundryCapabilityRequest {
37
+ readonly requestId: string;
38
+ readonly applicationId: string;
39
+ readonly context: AppBoundryRequestContext;
40
+ readonly requirement: RequirementWithConstraints;
41
+ /**
42
+ * Optional already-discovered offers. If omitted, the resolver discovers from
43
+ * the application registry. Supplying offers lets tests and callers model
44
+ * capability discovery without coupling discovery to a runtime.
45
+ */
46
+ readonly availableCapabilities?: readonly OfferedCapability[];
47
+ readonly discovery?: {
48
+ readonly discoveryId: string;
49
+ readonly providerIds?: readonly string[];
50
+ readonly candidateIds?: readonly string[];
51
+ };
52
+ readonly materialization?: {
53
+ readonly requestedTarget?: MaterializationTarget;
54
+ };
55
+ }
56
+ export interface CapabilityMatch {
57
+ readonly offer: OfferedCapability;
58
+ readonly compatibility: CompatibilityResult;
59
+ }
60
+ export type AppBoundryAuthorizationDecision = {
61
+ readonly outcome: "allow";
62
+ readonly grantedScopes?: readonly string[];
63
+ } | {
64
+ readonly outcome: "deny";
65
+ readonly reason: Denied["reason"];
66
+ readonly message: string;
67
+ };
68
+ export interface AppBoundryAuthorizationInput {
69
+ readonly request: AppBoundryCapabilityRequest;
70
+ readonly consumer: ApplicationState;
71
+ readonly provider: ApplicationState;
72
+ readonly capability: CapabilityManifestEntry;
73
+ readonly requirement: RequirementWithConstraints;
74
+ readonly context: AppBoundryRequestContext;
75
+ }
76
+ /** Injectable, side-effect-free authorization boundary for candidate offers. */
77
+ export interface AppBoundryAuthorizationBoundary {
78
+ evaluate(input: AppBoundryAuthorizationInput): AppBoundryAuthorizationDecision | Promise<AppBoundryAuthorizationDecision>;
79
+ }
80
+ export interface CapabilityAuthorizationEvaluation {
81
+ readonly offer: OfferedCapability;
82
+ readonly compatibility: CompatibilityResult;
83
+ readonly authorization: AppBoundryAuthorizationDecision;
84
+ }
85
+ export interface AppBoundryMaterializationHandoff {
86
+ readonly protocol: typeof PROTOCOL_ID;
87
+ readonly application: {
88
+ readonly id: string;
89
+ readonly name: string;
90
+ readonly version: string;
91
+ };
92
+ readonly capability: {
93
+ readonly name: string;
94
+ readonly version: number;
95
+ };
96
+ readonly contractFingerprint: string;
97
+ readonly requestedTarget?: MaterializationTarget;
98
+ readonly declaration?: MaterializationDeclaration;
99
+ }
100
+ export interface AppBoundryEligibilityEvidence {
101
+ readonly source: string;
102
+ readonly relationshipId?: string;
103
+ readonly relationshipRevision?: number;
104
+ readonly offerId?: string;
105
+ readonly offerRevision?: number;
106
+ readonly availabilityModel?: string;
107
+ }
108
+ export type AppBoundryResolutionRecord = {
109
+ readonly kind: "resolved";
110
+ readonly resolutionId: string;
111
+ readonly request: AppBoundryCapabilityRequest;
112
+ readonly application: ApplicationState;
113
+ readonly provider: ApplicationState;
114
+ readonly capability: CapabilityManifestEntry;
115
+ readonly requirement: RequirementWithConstraints;
116
+ readonly authorization: Extract<AppBoundryAuthorizationDecision, {
117
+ outcome: "allow";
118
+ }>;
119
+ readonly evaluated: readonly CapabilityAuthorizationEvaluation[];
120
+ readonly eligibility?: AppBoundryEligibilityEvidence;
121
+ readonly materialization: AppBoundryMaterializationHandoff;
122
+ } | {
123
+ readonly kind: "denied";
124
+ readonly request: AppBoundryCapabilityRequest;
125
+ readonly application: ApplicationState;
126
+ readonly requirement: RequirementWithConstraints;
127
+ readonly authorization: Extract<AppBoundryAuthorizationDecision, {
128
+ outcome: "deny";
129
+ }>;
130
+ readonly evaluated: readonly CapabilityAuthorizationEvaluation[];
131
+ } | {
132
+ readonly kind: "unresolved";
133
+ readonly request: AppBoundryCapabilityRequest;
134
+ readonly application?: ApplicationState;
135
+ readonly requirement: RequirementWithConstraints;
136
+ readonly candidates: readonly OfferedCapability[];
137
+ readonly reason: string;
138
+ } | {
139
+ readonly kind: "ambiguous";
140
+ readonly request: AppBoundryCapabilityRequest;
141
+ readonly application: ApplicationState;
142
+ readonly requirement: RequirementWithConstraints;
143
+ readonly candidates: readonly CapabilityAuthorizationEvaluation[];
144
+ readonly reason: string;
145
+ };
146
+ export declare function allowAllAppBoundryAuthorizationBoundary(): AppBoundryAuthorizationBoundary;
147
+ /** Evaluate one offered capability without consulting runtime implementation state. */
148
+ export declare function evaluateOfferedCapability(requirement: RequirementWithConstraints, offer: OfferedCapability): CompatibilityResult;
149
+ /** Deterministically filter and order compatible offers for a requirement. */
150
+ export declare function matchCapabilityRequirement(requirement: RequirementWithConstraints, offers: readonly OfferedCapability[]): readonly CapabilityMatch[];
151
+ /** Discover provider offers from the AppBoundry application registry. */
152
+ export declare function discoverCapabilityOffers(registry: ApplicationRegistry, requirement: RequirementWithConstraints): Promise<readonly OfferedCapability[]>;
153
+ /** AppBoundry decision layer for one capability request. */
154
+ export declare class AppBoundryCapabilityResolver {
155
+ private readonly registry;
156
+ private readonly authorization;
157
+ constructor(registry: ApplicationRegistry, authorization?: AppBoundryAuthorizationBoundary);
158
+ resolve(request: AppBoundryCapabilityRequest): Promise<AppBoundryResolutionRecord>;
159
+ }
160
+ //# sourceMappingURL=appboundry-resolution.d.ts.map