@appport/sdk 1.1.18 → 1.1.19

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 (479) hide show
  1. package/README.md +9 -86
  2. package/dist/index.d.ts +13 -18
  3. package/dist/index.d.ts.map +1 -1
  4. package/dist/index.js +13 -18
  5. package/dist/index.js.map +1 -1
  6. package/dist/node.d.ts +1 -1
  7. package/dist/node.js +1 -1
  8. package/package.json +22 -32
  9. package/LICENSE +0 -126
  10. package/dist/application-onboarding.d.ts +0 -52
  11. package/dist/application-onboarding.d.ts.map +0 -1
  12. package/dist/application-onboarding.js +0 -50
  13. package/dist/application-onboarding.js.map +0 -1
  14. package/dist/external-compatibility.d.ts +0 -142
  15. package/dist/external-compatibility.d.ts.map +0 -1
  16. package/dist/external-compatibility.js +0 -132
  17. package/dist/external-compatibility.js.map +0 -1
  18. package/dist/provider-lifecycle.d.ts +0 -247
  19. package/dist/provider-lifecycle.d.ts.map +0 -1
  20. package/dist/provider-lifecycle.js +0 -314
  21. package/dist/provider-lifecycle.js.map +0 -1
  22. package/dist/resolution-policy.d.ts +0 -81
  23. package/dist/resolution-policy.d.ts.map +0 -1
  24. package/dist/resolution-policy.js +0 -131
  25. package/dist/resolution-policy.js.map +0 -1
  26. package/vendor/@appport/authorization/README.md +0 -28
  27. package/vendor/@appport/authorization/dist/index.d.ts +0 -94
  28. package/vendor/@appport/authorization/dist/index.d.ts.map +0 -1
  29. package/vendor/@appport/authorization/dist/index.js +0 -131
  30. package/vendor/@appport/authorization/dist/index.js.map +0 -1
  31. package/vendor/@appport/authorization/package.json +0 -28
  32. package/vendor/@appport/client/README.md +0 -35
  33. package/vendor/@appport/client/dist/channel.d.ts +0 -14
  34. package/vendor/@appport/client/dist/channel.d.ts.map +0 -1
  35. package/vendor/@appport/client/dist/channel.js +0 -58
  36. package/vendor/@appport/client/dist/channel.js.map +0 -1
  37. package/vendor/@appport/client/dist/client.d.ts +0 -61
  38. package/vendor/@appport/client/dist/client.d.ts.map +0 -1
  39. package/vendor/@appport/client/dist/client.js +0 -214
  40. package/vendor/@appport/client/dist/client.js.map +0 -1
  41. package/vendor/@appport/client/dist/contract.d.ts +0 -55
  42. package/vendor/@appport/client/dist/contract.d.ts.map +0 -1
  43. package/vendor/@appport/client/dist/contract.js +0 -12
  44. package/vendor/@appport/client/dist/contract.js.map +0 -1
  45. package/vendor/@appport/client/dist/discovery.d.ts +0 -17
  46. package/vendor/@appport/client/dist/discovery.d.ts.map +0 -1
  47. package/vendor/@appport/client/dist/discovery.js +0 -56
  48. package/vendor/@appport/client/dist/discovery.js.map +0 -1
  49. package/vendor/@appport/client/dist/duplex.d.ts +0 -25
  50. package/vendor/@appport/client/dist/duplex.d.ts.map +0 -1
  51. package/vendor/@appport/client/dist/duplex.js +0 -194
  52. package/vendor/@appport/client/dist/duplex.js.map +0 -1
  53. package/vendor/@appport/client/dist/host.d.ts +0 -62
  54. package/vendor/@appport/client/dist/host.d.ts.map +0 -1
  55. package/vendor/@appport/client/dist/host.js +0 -139
  56. package/vendor/@appport/client/dist/host.js.map +0 -1
  57. package/vendor/@appport/client/dist/index.d.ts +0 -14
  58. package/vendor/@appport/client/dist/index.d.ts.map +0 -1
  59. package/vendor/@appport/client/dist/index.js +0 -14
  60. package/vendor/@appport/client/dist/index.js.map +0 -1
  61. package/vendor/@appport/client/dist/transport.d.ts +0 -42
  62. package/vendor/@appport/client/dist/transport.d.ts.map +0 -1
  63. package/vendor/@appport/client/dist/transport.js +0 -2
  64. package/vendor/@appport/client/dist/transport.js.map +0 -1
  65. package/vendor/@appport/client/package.json +0 -32
  66. package/vendor/@appport/core/README.md +0 -91
  67. package/vendor/@appport/core/dist/appboundry-capability-catalog.d.ts +0 -930
  68. package/vendor/@appport/core/dist/appboundry-capability-catalog.d.ts.map +0 -1
  69. package/vendor/@appport/core/dist/appboundry-capability-catalog.js +0 -352
  70. package/vendor/@appport/core/dist/appboundry-capability-catalog.js.map +0 -1
  71. package/vendor/@appport/core/dist/appboundry-composition.d.ts +0 -93
  72. package/vendor/@appport/core/dist/appboundry-composition.d.ts.map +0 -1
  73. package/vendor/@appport/core/dist/appboundry-composition.js +0 -184
  74. package/vendor/@appport/core/dist/appboundry-composition.js.map +0 -1
  75. package/vendor/@appport/core/dist/appboundry-contract.d.ts +0 -80
  76. package/vendor/@appport/core/dist/appboundry-contract.d.ts.map +0 -1
  77. package/vendor/@appport/core/dist/appboundry-contract.js +0 -160
  78. package/vendor/@appport/core/dist/appboundry-contract.js.map +0 -1
  79. package/vendor/@appport/core/dist/appboundry-diagnostics.d.ts +0 -107
  80. package/vendor/@appport/core/dist/appboundry-diagnostics.d.ts.map +0 -1
  81. package/vendor/@appport/core/dist/appboundry-diagnostics.js +0 -358
  82. package/vendor/@appport/core/dist/appboundry-diagnostics.js.map +0 -1
  83. package/vendor/@appport/core/dist/appboundry-discovery.d.ts +0 -110
  84. package/vendor/@appport/core/dist/appboundry-discovery.d.ts.map +0 -1
  85. package/vendor/@appport/core/dist/appboundry-discovery.js +0 -141
  86. package/vendor/@appport/core/dist/appboundry-discovery.js.map +0 -1
  87. package/vendor/@appport/core/dist/appboundry-entitlements.d.ts +0 -128
  88. package/vendor/@appport/core/dist/appboundry-entitlements.d.ts.map +0 -1
  89. package/vendor/@appport/core/dist/appboundry-entitlements.js +0 -312
  90. package/vendor/@appport/core/dist/appboundry-entitlements.js.map +0 -1
  91. package/vendor/@appport/core/dist/appboundry-execution.d.ts +0 -84
  92. package/vendor/@appport/core/dist/appboundry-execution.d.ts.map +0 -1
  93. package/vendor/@appport/core/dist/appboundry-execution.js +0 -150
  94. package/vendor/@appport/core/dist/appboundry-execution.js.map +0 -1
  95. package/vendor/@appport/core/dist/appboundry-exercise.d.ts +0 -152
  96. package/vendor/@appport/core/dist/appboundry-exercise.d.ts.map +0 -1
  97. package/vendor/@appport/core/dist/appboundry-exercise.js +0 -416
  98. package/vendor/@appport/core/dist/appboundry-exercise.js.map +0 -1
  99. package/vendor/@appport/core/dist/appboundry-materialization.d.ts +0 -222
  100. package/vendor/@appport/core/dist/appboundry-materialization.d.ts.map +0 -1
  101. package/vendor/@appport/core/dist/appboundry-materialization.js +0 -494
  102. package/vendor/@appport/core/dist/appboundry-materialization.js.map +0 -1
  103. package/vendor/@appport/core/dist/appboundry-migration.d.ts +0 -195
  104. package/vendor/@appport/core/dist/appboundry-migration.d.ts.map +0 -1
  105. package/vendor/@appport/core/dist/appboundry-migration.js +0 -227
  106. package/vendor/@appport/core/dist/appboundry-migration.js.map +0 -1
  107. package/vendor/@appport/core/dist/appboundry-onboarding.d.ts +0 -70
  108. package/vendor/@appport/core/dist/appboundry-onboarding.d.ts.map +0 -1
  109. package/vendor/@appport/core/dist/appboundry-onboarding.js +0 -232
  110. package/vendor/@appport/core/dist/appboundry-onboarding.js.map +0 -1
  111. package/vendor/@appport/core/dist/appboundry-operation-discovery.d.ts +0 -93
  112. package/vendor/@appport/core/dist/appboundry-operation-discovery.d.ts.map +0 -1
  113. package/vendor/@appport/core/dist/appboundry-operation-discovery.js +0 -89
  114. package/vendor/@appport/core/dist/appboundry-operation-discovery.js.map +0 -1
  115. package/vendor/@appport/core/dist/appboundry-resolution.d.ts +0 -160
  116. package/vendor/@appport/core/dist/appboundry-resolution.d.ts.map +0 -1
  117. package/vendor/@appport/core/dist/appboundry-resolution.js +0 -218
  118. package/vendor/@appport/core/dist/appboundry-resolution.js.map +0 -1
  119. package/vendor/@appport/core/dist/appboundry-surface.d.ts +0 -96
  120. package/vendor/@appport/core/dist/appboundry-surface.d.ts.map +0 -1
  121. package/vendor/@appport/core/dist/appboundry-surface.js +0 -223
  122. package/vendor/@appport/core/dist/appboundry-surface.js.map +0 -1
  123. package/vendor/@appport/core/dist/appboundry-usage.d.ts +0 -94
  124. package/vendor/@appport/core/dist/appboundry-usage.d.ts.map +0 -1
  125. package/vendor/@appport/core/dist/appboundry-usage.js +0 -80
  126. package/vendor/@appport/core/dist/appboundry-usage.js.map +0 -1
  127. package/vendor/@appport/core/dist/application-implementation.d.ts +0 -125
  128. package/vendor/@appport/core/dist/application-implementation.d.ts.map +0 -1
  129. package/vendor/@appport/core/dist/application-implementation.js +0 -220
  130. package/vendor/@appport/core/dist/application-implementation.js.map +0 -1
  131. package/vendor/@appport/core/dist/application-lifecycle.d.ts +0 -150
  132. package/vendor/@appport/core/dist/application-lifecycle.d.ts.map +0 -1
  133. package/vendor/@appport/core/dist/application-lifecycle.js +0 -70
  134. package/vendor/@appport/core/dist/application-lifecycle.js.map +0 -1
  135. package/vendor/@appport/core/dist/application-package.d.ts +0 -105
  136. package/vendor/@appport/core/dist/application-package.d.ts.map +0 -1
  137. package/vendor/@appport/core/dist/application-package.js +0 -349
  138. package/vendor/@appport/core/dist/application-package.js.map +0 -1
  139. package/vendor/@appport/core/dist/application-source.d.ts +0 -109
  140. package/vendor/@appport/core/dist/application-source.d.ts.map +0 -1
  141. package/vendor/@appport/core/dist/application-source.js +0 -186
  142. package/vendor/@appport/core/dist/application-source.js.map +0 -1
  143. package/vendor/@appport/core/dist/application.d.ts +0 -124
  144. package/vendor/@appport/core/dist/application.d.ts.map +0 -1
  145. package/vendor/@appport/core/dist/application.js +0 -518
  146. package/vendor/@appport/core/dist/application.js.map +0 -1
  147. package/vendor/@appport/core/dist/artifact.d.ts +0 -395
  148. package/vendor/@appport/core/dist/artifact.d.ts.map +0 -1
  149. package/vendor/@appport/core/dist/artifact.js +0 -392
  150. package/vendor/@appport/core/dist/artifact.js.map +0 -1
  151. package/vendor/@appport/core/dist/assembly.d.ts +0 -237
  152. package/vendor/@appport/core/dist/assembly.d.ts.map +0 -1
  153. package/vendor/@appport/core/dist/assembly.js +0 -458
  154. package/vendor/@appport/core/dist/assembly.js.map +0 -1
  155. package/vendor/@appport/core/dist/authority-attestation.d.ts +0 -34
  156. package/vendor/@appport/core/dist/authority-attestation.d.ts.map +0 -1
  157. package/vendor/@appport/core/dist/authority-attestation.js +0 -72
  158. package/vendor/@appport/core/dist/authority-attestation.js.map +0 -1
  159. package/vendor/@appport/core/dist/authorization-grant.d.ts +0 -107
  160. package/vendor/@appport/core/dist/authorization-grant.d.ts.map +0 -1
  161. package/vendor/@appport/core/dist/authorization-grant.js +0 -131
  162. package/vendor/@appport/core/dist/authorization-grant.js.map +0 -1
  163. package/vendor/@appport/core/dist/binding.d.ts +0 -294
  164. package/vendor/@appport/core/dist/binding.d.ts.map +0 -1
  165. package/vendor/@appport/core/dist/binding.js +0 -263
  166. package/vendor/@appport/core/dist/binding.js.map +0 -1
  167. package/vendor/@appport/core/dist/builtins.d.ts +0 -18
  168. package/vendor/@appport/core/dist/builtins.d.ts.map +0 -1
  169. package/vendor/@appport/core/dist/builtins.js +0 -38
  170. package/vendor/@appport/core/dist/builtins.js.map +0 -1
  171. package/vendor/@appport/core/dist/capability.d.ts +0 -94
  172. package/vendor/@appport/core/dist/capability.d.ts.map +0 -1
  173. package/vendor/@appport/core/dist/capability.js +0 -85
  174. package/vendor/@appport/core/dist/capability.js.map +0 -1
  175. package/vendor/@appport/core/dist/concurrency.d.ts +0 -16
  176. package/vendor/@appport/core/dist/concurrency.d.ts.map +0 -1
  177. package/vendor/@appport/core/dist/concurrency.js +0 -46
  178. package/vendor/@appport/core/dist/concurrency.js.map +0 -1
  179. package/vendor/@appport/core/dist/context.d.ts +0 -59
  180. package/vendor/@appport/core/dist/context.d.ts.map +0 -1
  181. package/vendor/@appport/core/dist/context.js +0 -14
  182. package/vendor/@appport/core/dist/context.js.map +0 -1
  183. package/vendor/@appport/core/dist/contract-artifact.d.ts +0 -15
  184. package/vendor/@appport/core/dist/contract-artifact.d.ts.map +0 -1
  185. package/vendor/@appport/core/dist/contract-artifact.js +0 -161
  186. package/vendor/@appport/core/dist/contract-artifact.js.map +0 -1
  187. package/vendor/@appport/core/dist/contract-attestation.d.ts +0 -68
  188. package/vendor/@appport/core/dist/contract-attestation.d.ts.map +0 -1
  189. package/vendor/@appport/core/dist/contract-attestation.js +0 -76
  190. package/vendor/@appport/core/dist/contract-attestation.js.map +0 -1
  191. package/vendor/@appport/core/dist/crash-injection.d.ts +0 -3
  192. package/vendor/@appport/core/dist/crash-injection.d.ts.map +0 -1
  193. package/vendor/@appport/core/dist/crash-injection.js +0 -8
  194. package/vendor/@appport/core/dist/crash-injection.js.map +0 -1
  195. package/vendor/@appport/core/dist/events.d.ts +0 -33
  196. package/vendor/@appport/core/dist/events.d.ts.map +0 -1
  197. package/vendor/@appport/core/dist/events.js +0 -79
  198. package/vendor/@appport/core/dist/events.js.map +0 -1
  199. package/vendor/@appport/core/dist/execution-barrier.d.ts +0 -13
  200. package/vendor/@appport/core/dist/execution-barrier.d.ts.map +0 -1
  201. package/vendor/@appport/core/dist/execution-barrier.js +0 -33
  202. package/vendor/@appport/core/dist/execution-barrier.js.map +0 -1
  203. package/vendor/@appport/core/dist/execution-ledger.d.ts +0 -81
  204. package/vendor/@appport/core/dist/execution-ledger.d.ts.map +0 -1
  205. package/vendor/@appport/core/dist/execution-ledger.js +0 -173
  206. package/vendor/@appport/core/dist/execution-ledger.js.map +0 -1
  207. package/vendor/@appport/core/dist/execution.d.ts +0 -387
  208. package/vendor/@appport/core/dist/execution.d.ts.map +0 -1
  209. package/vendor/@appport/core/dist/execution.js +0 -165
  210. package/vendor/@appport/core/dist/execution.js.map +0 -1
  211. package/vendor/@appport/core/dist/idempotency.d.ts +0 -36
  212. package/vendor/@appport/core/dist/idempotency.d.ts.map +0 -1
  213. package/vendor/@appport/core/dist/idempotency.js +0 -36
  214. package/vendor/@appport/core/dist/idempotency.js.map +0 -1
  215. package/vendor/@appport/core/dist/implementation.d.ts +0 -110
  216. package/vendor/@appport/core/dist/implementation.d.ts.map +0 -1
  217. package/vendor/@appport/core/dist/implementation.js +0 -65
  218. package/vendor/@appport/core/dist/implementation.js.map +0 -1
  219. package/vendor/@appport/core/dist/index.d.ts +0 -61
  220. package/vendor/@appport/core/dist/index.d.ts.map +0 -1
  221. package/vendor/@appport/core/dist/index.js +0 -60
  222. package/vendor/@appport/core/dist/index.js.map +0 -1
  223. package/vendor/@appport/core/dist/invocation.d.ts +0 -253
  224. package/vendor/@appport/core/dist/invocation.d.ts.map +0 -1
  225. package/vendor/@appport/core/dist/invocation.js +0 -258
  226. package/vendor/@appport/core/dist/invocation.js.map +0 -1
  227. package/vendor/@appport/core/dist/manifest.d.ts +0 -157
  228. package/vendor/@appport/core/dist/manifest.d.ts.map +0 -1
  229. package/vendor/@appport/core/dist/manifest.js +0 -255
  230. package/vendor/@appport/core/dist/manifest.js.map +0 -1
  231. package/vendor/@appport/core/dist/memory-application-data-store.d.ts +0 -19
  232. package/vendor/@appport/core/dist/memory-application-data-store.d.ts.map +0 -1
  233. package/vendor/@appport/core/dist/memory-application-data-store.js +0 -161
  234. package/vendor/@appport/core/dist/memory-application-data-store.js.map +0 -1
  235. package/vendor/@appport/core/dist/operations.d.ts +0 -61
  236. package/vendor/@appport/core/dist/operations.d.ts.map +0 -1
  237. package/vendor/@appport/core/dist/operations.js +0 -210
  238. package/vendor/@appport/core/dist/operations.js.map +0 -1
  239. package/vendor/@appport/core/dist/provider-contract.d.ts +0 -89
  240. package/vendor/@appport/core/dist/provider-contract.d.ts.map +0 -1
  241. package/vendor/@appport/core/dist/provider-contract.js +0 -40
  242. package/vendor/@appport/core/dist/provider-contract.js.map +0 -1
  243. package/vendor/@appport/core/dist/public.d.ts +0 -20
  244. package/vendor/@appport/core/dist/public.d.ts.map +0 -1
  245. package/vendor/@appport/core/dist/public.js +0 -19
  246. package/vendor/@appport/core/dist/public.js.map +0 -1
  247. package/vendor/@appport/core/dist/registration.d.ts +0 -165
  248. package/vendor/@appport/core/dist/registration.d.ts.map +0 -1
  249. package/vendor/@appport/core/dist/registration.js +0 -253
  250. package/vendor/@appport/core/dist/registration.js.map +0 -1
  251. package/vendor/@appport/core/dist/registry.d.ts +0 -30
  252. package/vendor/@appport/core/dist/registry.d.ts.map +0 -1
  253. package/vendor/@appport/core/dist/registry.js +0 -149
  254. package/vendor/@appport/core/dist/registry.js.map +0 -1
  255. package/vendor/@appport/core/dist/repository-connection.d.ts +0 -100
  256. package/vendor/@appport/core/dist/repository-connection.d.ts.map +0 -1
  257. package/vendor/@appport/core/dist/repository-connection.js +0 -57
  258. package/vendor/@appport/core/dist/repository-connection.js.map +0 -1
  259. package/vendor/@appport/core/dist/resolver.d.ts +0 -130
  260. package/vendor/@appport/core/dist/resolver.d.ts.map +0 -1
  261. package/vendor/@appport/core/dist/resolver.js +0 -252
  262. package/vendor/@appport/core/dist/resolver.js.map +0 -1
  263. package/vendor/@appport/core/dist/runtime-manifest.d.ts +0 -68
  264. package/vendor/@appport/core/dist/runtime-manifest.d.ts.map +0 -1
  265. package/vendor/@appport/core/dist/runtime-manifest.js +0 -84
  266. package/vendor/@appport/core/dist/runtime-manifest.js.map +0 -1
  267. package/vendor/@appport/core/dist/sanitize.d.ts +0 -14
  268. package/vendor/@appport/core/dist/sanitize.d.ts.map +0 -1
  269. package/vendor/@appport/core/dist/sanitize.js +0 -49
  270. package/vendor/@appport/core/dist/sanitize.js.map +0 -1
  271. package/vendor/@appport/core/dist/server-internal.d.ts +0 -5
  272. package/vendor/@appport/core/dist/server-internal.d.ts.map +0 -1
  273. package/vendor/@appport/core/dist/server-internal.js +0 -4
  274. package/vendor/@appport/core/dist/server-internal.js.map +0 -1
  275. package/vendor/@appport/core/dist/sessions.d.ts +0 -29
  276. package/vendor/@appport/core/dist/sessions.d.ts.map +0 -1
  277. package/vendor/@appport/core/dist/sessions.js +0 -39
  278. package/vendor/@appport/core/dist/sessions.js.map +0 -1
  279. package/vendor/@appport/core/dist/sha256.d.ts +0 -3
  280. package/vendor/@appport/core/dist/sha256.d.ts.map +0 -1
  281. package/vendor/@appport/core/dist/sha256.js +0 -46
  282. package/vendor/@appport/core/dist/sha256.js.map +0 -1
  283. package/vendor/@appport/core/dist/source-verification.d.ts +0 -53
  284. package/vendor/@appport/core/dist/source-verification.d.ts.map +0 -1
  285. package/vendor/@appport/core/dist/source-verification.js +0 -92
  286. package/vendor/@appport/core/dist/source-verification.js.map +0 -1
  287. package/vendor/@appport/core/dist/state-context.d.ts +0 -312
  288. package/vendor/@appport/core/dist/state-context.d.ts.map +0 -1
  289. package/vendor/@appport/core/dist/state-context.js +0 -100
  290. package/vendor/@appport/core/dist/state-context.js.map +0 -1
  291. package/vendor/@appport/core/dist/state.d.ts +0 -96
  292. package/vendor/@appport/core/dist/state.d.ts.map +0 -1
  293. package/vendor/@appport/core/dist/state.js +0 -89
  294. package/vendor/@appport/core/dist/state.js.map +0 -1
  295. package/vendor/@appport/core/dist/streams.d.ts +0 -38
  296. package/vendor/@appport/core/dist/streams.d.ts.map +0 -1
  297. package/vendor/@appport/core/dist/streams.js +0 -123
  298. package/vendor/@appport/core/dist/streams.js.map +0 -1
  299. package/vendor/@appport/core/dist/telemetry.d.ts +0 -42
  300. package/vendor/@appport/core/dist/telemetry.d.ts.map +0 -1
  301. package/vendor/@appport/core/dist/telemetry.js +0 -32
  302. package/vendor/@appport/core/dist/telemetry.js.map +0 -1
  303. package/vendor/@appport/core/dist/wasm-engine.d.ts +0 -24
  304. package/vendor/@appport/core/dist/wasm-engine.d.ts.map +0 -1
  305. package/vendor/@appport/core/dist/wasm-engine.js +0 -376
  306. package/vendor/@appport/core/dist/wasm-engine.js.map +0 -1
  307. package/vendor/@appport/core/package.json +0 -58
  308. package/vendor/@appport/mcp/README.md +0 -29
  309. package/vendor/@appport/mcp/dist/index.d.ts +0 -58
  310. package/vendor/@appport/mcp/dist/index.d.ts.map +0 -1
  311. package/vendor/@appport/mcp/dist/index.js +0 -69
  312. package/vendor/@appport/mcp/dist/index.js.map +0 -1
  313. package/vendor/@appport/mcp/package.json +0 -29
  314. package/vendor/@appport/mobile/README.md +0 -10
  315. package/vendor/@appport/mobile/dist/index.d.ts +0 -66
  316. package/vendor/@appport/mobile/dist/index.d.ts.map +0 -1
  317. package/vendor/@appport/mobile/dist/index.js +0 -182
  318. package/vendor/@appport/mobile/dist/index.js.map +0 -1
  319. package/vendor/@appport/mobile/package.json +0 -33
  320. package/vendor/@appport/protocol/README.md +0 -41
  321. package/vendor/@appport/protocol/dist/blob.d.ts +0 -46
  322. package/vendor/@appport/protocol/dist/blob.d.ts.map +0 -1
  323. package/vendor/@appport/protocol/dist/blob.js +0 -23
  324. package/vendor/@appport/protocol/dist/blob.js.map +0 -1
  325. package/vendor/@appport/protocol/dist/compatibility.d.ts +0 -25
  326. package/vendor/@appport/protocol/dist/compatibility.d.ts.map +0 -1
  327. package/vendor/@appport/protocol/dist/compatibility.js +0 -189
  328. package/vendor/@appport/protocol/dist/compatibility.js.map +0 -1
  329. package/vendor/@appport/protocol/dist/envelopes.d.ts +0 -175
  330. package/vendor/@appport/protocol/dist/envelopes.d.ts.map +0 -1
  331. package/vendor/@appport/protocol/dist/envelopes.js +0 -97
  332. package/vendor/@appport/protocol/dist/envelopes.js.map +0 -1
  333. package/vendor/@appport/protocol/dist/errors.d.ts +0 -74
  334. package/vendor/@appport/protocol/dist/errors.d.ts.map +0 -1
  335. package/vendor/@appport/protocol/dist/errors.js +0 -92
  336. package/vendor/@appport/protocol/dist/errors.js.map +0 -1
  337. package/vendor/@appport/protocol/dist/ids.d.ts +0 -12
  338. package/vendor/@appport/protocol/dist/ids.d.ts.map +0 -1
  339. package/vendor/@appport/protocol/dist/ids.js +0 -50
  340. package/vendor/@appport/protocol/dist/ids.js.map +0 -1
  341. package/vendor/@appport/protocol/dist/index.d.ts +0 -21
  342. package/vendor/@appport/protocol/dist/index.d.ts.map +0 -1
  343. package/vendor/@appport/protocol/dist/index.js +0 -21
  344. package/vendor/@appport/protocol/dist/index.js.map +0 -1
  345. package/vendor/@appport/protocol/dist/jsonschema.d.ts +0 -50
  346. package/vendor/@appport/protocol/dist/jsonschema.d.ts.map +0 -1
  347. package/vendor/@appport/protocol/dist/jsonschema.js +0 -6
  348. package/vendor/@appport/protocol/dist/jsonschema.js.map +0 -1
  349. package/vendor/@appport/protocol/dist/manifest.d.ts +0 -134
  350. package/vendor/@appport/protocol/dist/manifest.d.ts.map +0 -1
  351. package/vendor/@appport/protocol/dist/manifest.js +0 -20
  352. package/vendor/@appport/protocol/dist/manifest.js.map +0 -1
  353. package/vendor/@appport/protocol/dist/materialization.d.ts +0 -59
  354. package/vendor/@appport/protocol/dist/materialization.d.ts.map +0 -1
  355. package/vendor/@appport/protocol/dist/materialization.js +0 -2
  356. package/vendor/@appport/protocol/dist/materialization.js.map +0 -1
  357. package/vendor/@appport/protocol/dist/names.d.ts +0 -26
  358. package/vendor/@appport/protocol/dist/names.d.ts.map +0 -1
  359. package/vendor/@appport/protocol/dist/names.js +0 -85
  360. package/vendor/@appport/protocol/dist/names.js.map +0 -1
  361. package/vendor/@appport/protocol/dist/operations.d.ts +0 -34
  362. package/vendor/@appport/protocol/dist/operations.d.ts.map +0 -1
  363. package/vendor/@appport/protocol/dist/operations.js +0 -9
  364. package/vendor/@appport/protocol/dist/operations.js.map +0 -1
  365. package/vendor/@appport/protocol/dist/session.d.ts +0 -27
  366. package/vendor/@appport/protocol/dist/session.d.ts.map +0 -1
  367. package/vendor/@appport/protocol/dist/session.js +0 -7
  368. package/vendor/@appport/protocol/dist/session.js.map +0 -1
  369. package/vendor/@appport/protocol/dist/validate.d.ts +0 -37
  370. package/vendor/@appport/protocol/dist/validate.d.ts.map +0 -1
  371. package/vendor/@appport/protocol/dist/validate.js +0 -321
  372. package/vendor/@appport/protocol/dist/validate.js.map +0 -1
  373. package/vendor/@appport/protocol/dist/version.d.ts +0 -27
  374. package/vendor/@appport/protocol/dist/version.d.ts.map +0 -1
  375. package/vendor/@appport/protocol/dist/version.js +0 -26
  376. package/vendor/@appport/protocol/dist/version.js.map +0 -1
  377. package/vendor/@appport/protocol/package.json +0 -25
  378. package/vendor/@appport/schema/README.md +0 -32
  379. package/vendor/@appport/schema/dist/builder.d.ts +0 -85
  380. package/vendor/@appport/schema/dist/builder.d.ts.map +0 -1
  381. package/vendor/@appport/schema/dist/builder.js +0 -278
  382. package/vendor/@appport/schema/dist/builder.js.map +0 -1
  383. package/vendor/@appport/schema/dist/from-json-schema.d.ts +0 -12
  384. package/vendor/@appport/schema/dist/from-json-schema.d.ts.map +0 -1
  385. package/vendor/@appport/schema/dist/from-json-schema.js +0 -186
  386. package/vendor/@appport/schema/dist/from-json-schema.js.map +0 -1
  387. package/vendor/@appport/schema/dist/index.d.ts +0 -23
  388. package/vendor/@appport/schema/dist/index.d.ts.map +0 -1
  389. package/vendor/@appport/schema/dist/index.js +0 -22
  390. package/vendor/@appport/schema/dist/index.js.map +0 -1
  391. package/vendor/@appport/schema/dist/standard.d.ts +0 -46
  392. package/vendor/@appport/schema/dist/standard.d.ts.map +0 -1
  393. package/vendor/@appport/schema/dist/standard.js +0 -42
  394. package/vendor/@appport/schema/dist/standard.js.map +0 -1
  395. package/vendor/@appport/schema/dist/types.d.ts +0 -40
  396. package/vendor/@appport/schema/dist/types.d.ts.map +0 -1
  397. package/vendor/@appport/schema/dist/types.js +0 -19
  398. package/vendor/@appport/schema/dist/types.js.map +0 -1
  399. package/vendor/@appport/schema/package.json +0 -28
  400. package/vendor/@appport/server/README.md +0 -39
  401. package/vendor/@appport/server/dist/connection.d.ts +0 -45
  402. package/vendor/@appport/server/dist/connection.d.ts.map +0 -1
  403. package/vendor/@appport/server/dist/connection.js +0 -217
  404. package/vendor/@appport/server/dist/connection.js.map +0 -1
  405. package/vendor/@appport/server/dist/fetch.d.ts +0 -10
  406. package/vendor/@appport/server/dist/fetch.d.ts.map +0 -1
  407. package/vendor/@appport/server/dist/fetch.js +0 -50
  408. package/vendor/@appport/server/dist/fetch.js.map +0 -1
  409. package/vendor/@appport/server/dist/http.d.ts +0 -80
  410. package/vendor/@appport/server/dist/http.d.ts.map +0 -1
  411. package/vendor/@appport/server/dist/http.js +0 -307
  412. package/vendor/@appport/server/dist/http.js.map +0 -1
  413. package/vendor/@appport/server/dist/index.d.ts +0 -11
  414. package/vendor/@appport/server/dist/index.d.ts.map +0 -1
  415. package/vendor/@appport/server/dist/index.js +0 -11
  416. package/vendor/@appport/server/dist/index.js.map +0 -1
  417. package/vendor/@appport/server/dist/node-entry.d.ts +0 -4
  418. package/vendor/@appport/server/dist/node-entry.d.ts.map +0 -1
  419. package/vendor/@appport/server/dist/node-entry.js +0 -4
  420. package/vendor/@appport/server/dist/node-entry.js.map +0 -1
  421. package/vendor/@appport/server/dist/node.d.ts +0 -45
  422. package/vendor/@appport/server/dist/node.d.ts.map +0 -1
  423. package/vendor/@appport/server/dist/node.js +0 -190
  424. package/vendor/@appport/server/dist/node.js.map +0 -1
  425. package/vendor/@appport/server/dist/server.d.ts +0 -83
  426. package/vendor/@appport/server/dist/server.d.ts.map +0 -1
  427. package/vendor/@appport/server/dist/server.js +0 -114
  428. package/vendor/@appport/server/dist/server.js.map +0 -1
  429. package/vendor/@appport/server/dist/websocket.d.ts +0 -25
  430. package/vendor/@appport/server/dist/websocket.d.ts.map +0 -1
  431. package/vendor/@appport/server/dist/websocket.js +0 -221
  432. package/vendor/@appport/server/dist/websocket.js.map +0 -1
  433. package/vendor/@appport/server/package.json +0 -34
  434. package/vendor/@appport/transport-electron/README.md +0 -56
  435. package/vendor/@appport/transport-electron/dist/index.d.ts +0 -11
  436. package/vendor/@appport/transport-electron/dist/index.d.ts.map +0 -1
  437. package/vendor/@appport/transport-electron/dist/index.js +0 -11
  438. package/vendor/@appport/transport-electron/dist/index.js.map +0 -1
  439. package/vendor/@appport/transport-electron/dist/main.d.ts +0 -31
  440. package/vendor/@appport/transport-electron/dist/main.d.ts.map +0 -1
  441. package/vendor/@appport/transport-electron/dist/main.js +0 -61
  442. package/vendor/@appport/transport-electron/dist/main.js.map +0 -1
  443. package/vendor/@appport/transport-electron/dist/preload.d.ts +0 -22
  444. package/vendor/@appport/transport-electron/dist/preload.d.ts.map +0 -1
  445. package/vendor/@appport/transport-electron/dist/preload.js +0 -29
  446. package/vendor/@appport/transport-electron/dist/preload.js.map +0 -1
  447. package/vendor/@appport/transport-electron/dist/renderer.d.ts +0 -16
  448. package/vendor/@appport/transport-electron/dist/renderer.d.ts.map +0 -1
  449. package/vendor/@appport/transport-electron/dist/renderer.js +0 -36
  450. package/vendor/@appport/transport-electron/dist/renderer.js.map +0 -1
  451. package/vendor/@appport/transport-electron/dist/types.d.ts +0 -49
  452. package/vendor/@appport/transport-electron/dist/types.d.ts.map +0 -1
  453. package/vendor/@appport/transport-electron/dist/types.js +0 -5
  454. package/vendor/@appport/transport-electron/dist/types.js.map +0 -1
  455. package/vendor/@appport/transport-electron/package.json +0 -46
  456. package/vendor/@appport/transport-http/README.md +0 -24
  457. package/vendor/@appport/transport-http/dist/index.d.ts +0 -18
  458. package/vendor/@appport/transport-http/dist/index.d.ts.map +0 -1
  459. package/vendor/@appport/transport-http/dist/index.js +0 -223
  460. package/vendor/@appport/transport-http/dist/index.js.map +0 -1
  461. package/vendor/@appport/transport-http/package.json +0 -29
  462. package/vendor/@appport/transport-inprocess/README.md +0 -24
  463. package/vendor/@appport/transport-inprocess/dist/index.d.ts +0 -16
  464. package/vendor/@appport/transport-inprocess/dist/index.d.ts.map +0 -1
  465. package/vendor/@appport/transport-inprocess/dist/index.js +0 -30
  466. package/vendor/@appport/transport-inprocess/dist/index.js.map +0 -1
  467. package/vendor/@appport/transport-inprocess/package.json +0 -30
  468. package/vendor/@appport/transport-tauri/README.md +0 -45
  469. package/vendor/@appport/transport-tauri/dist/index.d.ts +0 -23
  470. package/vendor/@appport/transport-tauri/dist/index.d.ts.map +0 -1
  471. package/vendor/@appport/transport-tauri/dist/index.js +0 -44
  472. package/vendor/@appport/transport-tauri/dist/index.js.map +0 -1
  473. package/vendor/@appport/transport-tauri/package.json +0 -29
  474. package/vendor/@appport/transport-websocket/README.md +0 -22
  475. package/vendor/@appport/transport-websocket/dist/index.d.ts +0 -26
  476. package/vendor/@appport/transport-websocket/dist/index.d.ts.map +0 -1
  477. package/vendor/@appport/transport-websocket/dist/index.js +0 -72
  478. package/vendor/@appport/transport-websocket/dist/index.js.map +0 -1
  479. package/vendor/@appport/transport-websocket/package.json +0 -29
@@ -1,94 +0,0 @@
1
- import type { JsonValue, MaterializationRequest } from "../../protocol/dist/index.d.ts";
2
- import type { CapabilityContext } from "./context.js";
3
- import type { AppBoundryExecutionEvidence } from "./appboundry-materialization.js";
4
- export type UsageOutcome = "success" | "failure";
5
- export interface AppBoundryUsageRecord {
6
- readonly applicationId: string;
7
- readonly executionId: string;
8
- readonly executionMode: "managed";
9
- readonly capability: string;
10
- readonly startedAt: string;
11
- readonly durationMs: number;
12
- readonly requests: 1;
13
- readonly memoryMb: number;
14
- readonly stateOperations: number;
15
- readonly status: "success" | "failure";
16
- }
17
- export interface AppBoundryUsageSummary {
18
- readonly applicationId: string;
19
- readonly managedExecutions: number;
20
- readonly requests: number;
21
- readonly computeTimeMs: number;
22
- readonly stateOperations: number;
23
- readonly successful: number;
24
- readonly failed: number;
25
- }
26
- export interface UsageEvent {
27
- readonly id: string;
28
- readonly organizationId: string;
29
- readonly consumerId: string;
30
- readonly consumerApplicationId?: string;
31
- readonly providerId: string;
32
- readonly providerOrganizationId: string;
33
- readonly providerApplicationId?: string;
34
- readonly capability: string;
35
- readonly capabilityVersion: string;
36
- readonly environment: string;
37
- readonly invocationId: string;
38
- readonly evidenceId?: string;
39
- readonly timestamp: string;
40
- readonly outcome: UsageOutcome;
41
- readonly quantity: number;
42
- readonly unit: string;
43
- readonly metadata?: Readonly<Record<string, JsonValue>>;
44
- }
45
- export interface UsageMeasurement {
46
- readonly quantity: number;
47
- readonly unit: string;
48
- readonly metadata?: Readonly<Record<string, JsonValue>>;
49
- }
50
- export interface UsageMeterInput {
51
- readonly outcome: UsageOutcome;
52
- readonly requestId: string;
53
- readonly executionId: string;
54
- readonly context: CapabilityContext;
55
- readonly materializationRequest: MaterializationRequest;
56
- readonly evidence: AppBoundryExecutionEvidence;
57
- }
58
- export type UsageMeter = (input: UsageMeterInput) => UsageMeasurement | Promise<UsageMeasurement>;
59
- export interface UsageCaptureOverrides {
60
- readonly id?: string;
61
- readonly organizationId?: string;
62
- readonly consumerId?: string;
63
- readonly consumerApplicationId?: string;
64
- readonly providerId?: string;
65
- readonly providerOrganizationId?: string;
66
- readonly providerApplicationId?: string;
67
- readonly environment?: string;
68
- readonly evidenceId?: string;
69
- readonly timestamp?: string;
70
- readonly quantity?: number;
71
- readonly unit?: string;
72
- readonly metadata?: Readonly<Record<string, JsonValue>>;
73
- }
74
- export interface UsageEventSink {
75
- record(event: UsageEvent): Promise<void> | void;
76
- }
77
- export declare class InMemoryUsageEventSink implements UsageEventSink {
78
- #private;
79
- record(event: UsageEvent): void;
80
- list(): readonly UsageEvent[];
81
- }
82
- export declare function defaultUsageMeter(): UsageMeasurement;
83
- export declare function createUsageEvent(input: {
84
- readonly outcome: UsageOutcome;
85
- readonly requestId: string;
86
- readonly executionId: string;
87
- readonly context: CapabilityContext;
88
- readonly materializationRequest: MaterializationRequest;
89
- readonly evidence: AppBoundryExecutionEvidence;
90
- readonly measurement?: UsageMeasurement;
91
- readonly overrides?: UsageCaptureOverrides;
92
- readonly timestamp?: string;
93
- }): UsageEvent;
94
- //# sourceMappingURL=appboundry-usage.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"appboundry-usage.d.ts","sourceRoot":"","sources":["../src/appboundry-usage.ts"],"names":[],"mappings":"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"}
@@ -1,80 +0,0 @@
1
- import { randomUUID } from "node:crypto";
2
- export class InMemoryUsageEventSink {
3
- #events = [];
4
- record(event) {
5
- this.#events.push(event);
6
- }
7
- list() {
8
- return [...this.#events];
9
- }
10
- }
11
- export function defaultUsageMeter() {
12
- return { quantity: 1, unit: "invocation" };
13
- }
14
- export function createUsageEvent(input) {
15
- const materializationContext = input.materializationRequest.context ?? {};
16
- const measurement = input.measurement ?? defaultUsageMeter();
17
- const quantity = input.overrides?.quantity ?? measurement.quantity;
18
- const unit = input.overrides?.unit ?? measurement.unit;
19
- if (!Number.isFinite(quantity) || quantity < 0)
20
- throw new Error("usage quantity must be a finite non-negative number");
21
- if (!unit)
22
- throw new Error("usage unit must be non-empty");
23
- const metadata = mergeMetadata(measurement.metadata, input.overrides?.metadata);
24
- const event = {
25
- id: input.overrides?.id ?? `use_${randomUUID()}`,
26
- organizationId: input.overrides?.organizationId ??
27
- stringField(materializationContext, "organizationId") ??
28
- stringField(materializationContext, "consumerOrganizationId") ??
29
- input.evidence.consumerApplicationId,
30
- consumerId: input.overrides?.consumerId ??
31
- stringField(materializationContext, "consumerId") ??
32
- input.context.principal?.id ??
33
- input.context.authorization.principal?.id ??
34
- input.evidence.consumerApplicationId,
35
- ...(input.overrides?.consumerApplicationId ?? input.evidence.consumerApplicationId
36
- ? { consumerApplicationId: input.overrides?.consumerApplicationId ?? input.evidence.consumerApplicationId }
37
- : {}),
38
- providerId: input.overrides?.providerId ??
39
- stringField(materializationContext, "providerId") ??
40
- input.evidence.providerApplicationId,
41
- providerOrganizationId: input.overrides?.providerOrganizationId ??
42
- stringField(materializationContext, "providerOrganizationId") ??
43
- input.evidence.providerApplicationId,
44
- ...(input.overrides?.providerApplicationId ?? input.evidence.providerApplicationId
45
- ? { providerApplicationId: input.overrides?.providerApplicationId ?? input.evidence.providerApplicationId }
46
- : {}),
47
- capability: input.evidence.capability.name,
48
- capabilityVersion: String(input.evidence.capability.version),
49
- environment: input.overrides?.environment ??
50
- input.evidence.resolvedEnvironment ??
51
- input.evidence.resolvedTarget ??
52
- input.evidence.requestedTarget,
53
- invocationId: input.executionId,
54
- evidenceId: input.overrides?.evidenceId ?? input.evidence.executionId,
55
- timestamp: input.overrides?.timestamp ?? input.timestamp ?? new Date().toISOString(),
56
- outcome: input.outcome,
57
- quantity,
58
- unit,
59
- ...(metadata ? { metadata } : {})
60
- };
61
- return deepFreeze(event);
62
- }
63
- function stringField(record, key) {
64
- const value = record[key];
65
- return typeof value === "string" && value.length > 0 ? value : undefined;
66
- }
67
- function mergeMetadata(base, override) {
68
- if (!base && !override)
69
- return undefined;
70
- return deepFreeze({ ...(base ?? {}), ...(override ?? {}) });
71
- }
72
- function deepFreeze(value) {
73
- if (value && typeof value === "object" && !Object.isFrozen(value)) {
74
- for (const item of Object.values(value))
75
- deepFreeze(item);
76
- Object.freeze(value);
77
- }
78
- return value;
79
- }
80
- //# sourceMappingURL=appboundry-usage.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"appboundry-usage.js","sourceRoot":"","sources":["../src/appboundry-usage.ts"],"names":[],"mappings":"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"}
@@ -1,125 +0,0 @@
1
- /**
2
- * Application Implementations (F6)
3
- *
4
- * An implementation is the executable association between an application
5
- * capability, a verified source connection, and an artifact. It carries no
6
- * application identity and no authorization of its own.
7
- *
8
- * Runtime order is unchanged by F6:
9
- *
10
- * discovery → compatibility → authorization → binding
11
- * → implementation selection → materialization → execution
12
- *
13
- * Implementation selection therefore requires an authorized binding, and the
14
- * selection is revalidated against durable authority before materialization so
15
- * a serialized binding can never turn eligibility into an in-memory assumption.
16
- */
17
- import type { AuthoritativeApplicationContract } from "./contract-attestation.js";
18
- import { type ApplicationSourceStore } from "./application-source.js";
19
- import { type AuthorizedCapabilityBinding } from "./binding.js";
20
- import type { ExecutableArtifact } from "./artifact.js";
21
- export type ApplicationImplementationStatus = "verified" | "stale" | "revoked" | "failed";
22
- /** Durable record of one executable implementation of one capability. */
23
- export interface ApplicationImplementation {
24
- readonly id: string;
25
- readonly applicationId: string;
26
- readonly sourceConnectionId: string;
27
- readonly capability: {
28
- readonly name: string;
29
- readonly version: number;
30
- };
31
- readonly contractFingerprint: string;
32
- readonly artifactHash: string;
33
- readonly status: ApplicationImplementationStatus;
34
- readonly sequence: number;
35
- readonly createdAt: string;
36
- readonly verifiedAt?: string;
37
- }
38
- export interface ApplicationImplementationStore {
39
- get(applicationId: string, implementationId: string): Promise<ApplicationImplementation | undefined>;
40
- put(record: ApplicationImplementation, expectedSequence?: number): Promise<void>;
41
- list(applicationId?: string): Promise<ApplicationImplementation[]>;
42
- }
43
- export declare class ApplicationImplementationConflictError extends Error {
44
- constructor(id: string);
45
- }
46
- export declare class MemoryApplicationImplementationStore implements ApplicationImplementationStore {
47
- #private;
48
- get(applicationId: string, implementationId: string): Promise<ApplicationImplementation | undefined>;
49
- put(record: ApplicationImplementation, expectedSequence?: number): Promise<void>;
50
- list(applicationId?: string): Promise<ApplicationImplementation[]>;
51
- }
52
- /**
53
- * The implementation chosen for one authorized execution.
54
- *
55
- * Structural data only: the durable proof that selected it is module-private,
56
- * exactly as binding issuance is.
57
- */
58
- export interface SelectedImplementation {
59
- readonly implementationId: string;
60
- readonly sourceConnectionId: string;
61
- readonly applicationId: string;
62
- readonly capability: {
63
- readonly name: string;
64
- readonly version: number;
65
- };
66
- readonly contractFingerprint: string;
67
- readonly artifactHash: string;
68
- }
69
- /** Throws unless the selection was issued by ApplicationImplementationOperations. */
70
- export declare function assertIssuedImplementationSelection(selection: SelectedImplementation): void;
71
- /** Revalidate the selection against durable source/implementation authority. */
72
- export declare function assertImplementationSelectionEligible(selection: SelectedImplementation): Promise<void>;
73
- /** The artifact must be the exact artifact the selected implementation names. */
74
- export declare function assertArtifactMatchesSelection(selection: SelectedImplementation, artifact: ExecutableArtifact): void;
75
- /** Registers, revalidates and selects implementations from verified sources. */
76
- export declare class ApplicationImplementationOperations {
77
- #private;
78
- private readonly store;
79
- private readonly sources;
80
- private readonly authority;
81
- private readonly now;
82
- constructor(store: ApplicationImplementationStore, sources: ApplicationSourceStore, authority: AuthoritativeApplicationContract, now?: () => string);
83
- /**
84
- * Register an executable implementation for a verified source.
85
- *
86
- * The contract fingerprint is derived from authority, never accepted from the
87
- * caller, and the capability must be covered by the source connection.
88
- */
89
- register(input: {
90
- applicationId: string;
91
- sourceConnectionId: string;
92
- capability: {
93
- name: string;
94
- version: number;
95
- };
96
- artifactHash: string;
97
- }): Promise<ApplicationImplementation>;
98
- /** Revoke an implementation without touching the application or its history. */
99
- revoke(applicationId: string, implementationId: string): Promise<ApplicationImplementation>;
100
- /** Mark implementations of superseded contract revisions stale. */
101
- refresh(applicationId: string): Promise<ApplicationImplementation[]>;
102
- /**
103
- * Implementations that may currently execute a capability, in deterministic
104
- * order: source identity first, then implementation identity. Selection is
105
- * never timing-dependent.
106
- */
107
- eligible(applicationId: string, capability: {
108
- name: string;
109
- version: number;
110
- }): Promise<ApplicationImplementation[]>;
111
- /**
112
- * Select an implementation for an authorized binding.
113
- *
114
- * Provider resolution has already chosen the *application*; this chooses an
115
- * eligible source/artifact for it. Without an authorized, still-authoritative
116
- * binding there is no selection and therefore no materialization.
117
- */
118
- selectForBinding(binding: AuthorizedCapabilityBinding, capability: {
119
- name: string;
120
- version: number;
121
- }): Promise<SelectedImplementation>;
122
- get: (applicationId: string, implementationId: string) => Promise<ApplicationImplementation | undefined>;
123
- list: (applicationId?: string) => Promise<ApplicationImplementation[]>;
124
- }
125
- //# sourceMappingURL=application-implementation.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"application-implementation.d.ts","sourceRoot":"","sources":["../src/application-implementation.ts"],"names":[],"mappings":"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"}
@@ -1,220 +0,0 @@
1
- /**
2
- * Application Implementations (F6)
3
- *
4
- * An implementation is the executable association between an application
5
- * capability, a verified source connection, and an artifact. It carries no
6
- * application identity and no authorization of its own.
7
- *
8
- * Runtime order is unchanged by F6:
9
- *
10
- * discovery → compatibility → authorization → binding
11
- * → implementation selection → materialization → execution
12
- *
13
- * Implementation selection therefore requires an authorized binding, and the
14
- * selection is revalidated against durable authority before materialization so
15
- * a serialized binding can never turn eligibility into an in-memory assumption.
16
- */
17
- import { randomUUID } from "node:crypto";
18
- import { capabilityCoverageKey } from "./appboundry-contract.js";
19
- import { sourceIsEligible } from "./application-source.js";
20
- import { assertBindingAuthoritative } from "./authority-attestation.js";
21
- import { assertIssuedAuthorizedBinding } from "./binding.js";
22
- export class ApplicationImplementationConflictError extends Error {
23
- constructor(id) {
24
- super(`Concurrent application implementation update rejected for "${id}"`);
25
- this.name = "ApplicationImplementationConflictError";
26
- }
27
- }
28
- export class MemoryApplicationImplementationStore {
29
- #records = new Map();
30
- async get(applicationId, implementationId) {
31
- const found = this.#records.get(`${applicationId}:${implementationId}`);
32
- return found && structuredClone(found);
33
- }
34
- async put(record, expectedSequence) {
35
- const key = `${record.applicationId}:${record.id}`;
36
- if (this.#records.get(key)?.sequence !== expectedSequence)
37
- throw new ApplicationImplementationConflictError(record.id);
38
- this.#records.set(key, structuredClone(record));
39
- }
40
- async list(applicationId) {
41
- return [...this.#records.values()]
42
- .filter((record) => !applicationId || record.applicationId === applicationId)
43
- .map((record) => structuredClone(record))
44
- .sort((left, right) => left.id.localeCompare(right.id));
45
- }
46
- }
47
- const issuedSelections = new WeakSet();
48
- const selectionValidators = new WeakMap();
49
- /** Throws unless the selection was issued by ApplicationImplementationOperations. */
50
- export function assertIssuedImplementationSelection(selection) {
51
- if (typeof selection !== "object" || selection === null || !issuedSelections.has(selection)) {
52
- throw new Error("Implementation selection was not issued by application implementation authority");
53
- }
54
- }
55
- /** Revalidate the selection against durable source/implementation authority. */
56
- export async function assertImplementationSelectionEligible(selection) {
57
- assertIssuedImplementationSelection(selection);
58
- await selectionValidators.get(selection)?.();
59
- }
60
- /** The artifact must be the exact artifact the selected implementation names. */
61
- export function assertArtifactMatchesSelection(selection, artifact) {
62
- if (artifact.contentHash !== selection.artifactHash) {
63
- throw new Error(`Artifact ${artifact.contentHash} is not the selected implementation artifact ${selection.artifactHash}`);
64
- }
65
- if (artifact.metadata.contractFingerprint !== selection.contractFingerprint) {
66
- throw new Error("Artifact contract fingerprint does not match the selected implementation");
67
- }
68
- }
69
- /** Registers, revalidates and selects implementations from verified sources. */
70
- export class ApplicationImplementationOperations {
71
- store;
72
- sources;
73
- authority;
74
- now;
75
- constructor(store, sources, authority, now = () => new Date().toISOString()) {
76
- this.store = store;
77
- this.sources = sources;
78
- this.authority = authority;
79
- this.now = now;
80
- }
81
- /**
82
- * Register an executable implementation for a verified source.
83
- *
84
- * The contract fingerprint is derived from authority, never accepted from the
85
- * caller, and the capability must be covered by the source connection.
86
- */
87
- async register(input) {
88
- const authoritative = await this.#authoritative(input.applicationId);
89
- const source = await this.sources.get(input.applicationId, input.sourceConnectionId);
90
- if (!source)
91
- throw new Error(`Unknown application source "${input.sourceConnectionId}"`);
92
- if (!sourceIsEligible(source, authoritative.fingerprint)) {
93
- throw new Error(`Source "${source.id}" is not a verified implementation source (${source.status})`);
94
- }
95
- const key = capabilityCoverageKey(input.capability);
96
- if (!source.coveredCapabilities.includes(key)) {
97
- throw new Error(`Source "${source.id}" does not cover capability ${key}`);
98
- }
99
- if (typeof input.artifactHash !== "string" || !input.artifactHash.length) {
100
- throw new Error("artifactHash must be a non-empty string");
101
- }
102
- const at = this.now();
103
- const existing = (await this.store.list(input.applicationId)).find((record) => record.sourceConnectionId === source.id &&
104
- capabilityCoverageKey(record.capability) === key &&
105
- record.contractFingerprint === authoritative.fingerprint);
106
- const record = {
107
- id: existing?.id ?? `impl_${randomUUID()}`,
108
- applicationId: input.applicationId,
109
- sourceConnectionId: source.id,
110
- capability: { name: input.capability.name, version: input.capability.version },
111
- contractFingerprint: authoritative.fingerprint,
112
- artifactHash: input.artifactHash,
113
- status: "verified",
114
- sequence: (existing?.sequence ?? 0) + 1,
115
- createdAt: existing?.createdAt ?? at,
116
- verifiedAt: at
117
- };
118
- await this.store.put(record, existing?.sequence);
119
- return record;
120
- }
121
- /** Revoke an implementation without touching the application or its history. */
122
- async revoke(applicationId, implementationId) {
123
- const current = await this.store.get(applicationId, implementationId);
124
- if (!current)
125
- throw new Error(`Unknown implementation "${implementationId}"`);
126
- if (current.status === "revoked")
127
- return current;
128
- const next = { ...current, status: "revoked", sequence: current.sequence + 1 };
129
- await this.store.put(next, current.sequence);
130
- return next;
131
- }
132
- /** Mark implementations of superseded contract revisions stale. */
133
- async refresh(applicationId) {
134
- const authoritative = await this.#authoritative(applicationId);
135
- const refreshed = [];
136
- for (const record of await this.store.list(applicationId)) {
137
- if (record.status !== "verified" || record.contractFingerprint === authoritative.fingerprint) {
138
- refreshed.push(record);
139
- continue;
140
- }
141
- const next = { ...record, status: "stale", sequence: record.sequence + 1 };
142
- await this.store.put(next, record.sequence);
143
- refreshed.push(next);
144
- }
145
- return refreshed;
146
- }
147
- /**
148
- * Implementations that may currently execute a capability, in deterministic
149
- * order: source identity first, then implementation identity. Selection is
150
- * never timing-dependent.
151
- */
152
- async eligible(applicationId, capability) {
153
- const authoritative = await this.#authoritative(applicationId);
154
- const sources = new Map((await this.sources.list(applicationId)).map((source) => [source.id, source]));
155
- const key = capabilityCoverageKey(capability);
156
- return (await this.store.list(applicationId))
157
- .filter((record) => this.#eligible(record, sources.get(record.sourceConnectionId), authoritative.fingerprint, key))
158
- .sort((left, right) => this.#order(left, right, sources));
159
- }
160
- /**
161
- * Select an implementation for an authorized binding.
162
- *
163
- * Provider resolution has already chosen the *application*; this chooses an
164
- * eligible source/artifact for it. Without an authorized, still-authoritative
165
- * binding there is no selection and therefore no materialization.
166
- */
167
- async selectForBinding(binding, capability) {
168
- assertIssuedAuthorizedBinding(binding);
169
- await assertBindingAuthoritative(binding);
170
- const applicationId = binding.provider.id;
171
- const candidates = await this.eligible(applicationId, capability);
172
- const chosen = candidates[0];
173
- if (!chosen) {
174
- throw new Error(`No eligible implementation for ${capabilityCoverageKey(capability)} of application "${applicationId}"`);
175
- }
176
- const selection = {
177
- implementationId: chosen.id,
178
- sourceConnectionId: chosen.sourceConnectionId,
179
- applicationId,
180
- capability: { name: capability.name, version: capability.version },
181
- contractFingerprint: chosen.contractFingerprint,
182
- artifactHash: chosen.artifactHash
183
- };
184
- issuedSelections.add(selection);
185
- selectionValidators.set(selection, () => this.#assertStillEligible(selection));
186
- return selection;
187
- }
188
- get = (applicationId, implementationId) => this.store.get(applicationId, implementationId);
189
- list = (applicationId) => this.store.list(applicationId);
190
- /** Re-read durable authority and confirm the selection is still executable. */
191
- async #assertStillEligible(selection) {
192
- const authoritative = await this.#authoritative(selection.applicationId);
193
- const record = await this.store.get(selection.applicationId, selection.implementationId);
194
- const source = await this.sources.get(selection.applicationId, selection.sourceConnectionId);
195
- const key = capabilityCoverageKey(selection.capability);
196
- if (!record || !this.#eligible(record, source, authoritative.fingerprint, key) || record.artifactHash !== selection.artifactHash) {
197
- throw new Error(`Implementation "${selection.implementationId}" is no longer an eligible implementation`);
198
- }
199
- }
200
- #eligible(record, source, authoritativeFingerprint, capabilityKey) {
201
- return (record.status === "verified" &&
202
- record.contractFingerprint === authoritativeFingerprint &&
203
- capabilityCoverageKey(record.capability) === capabilityKey &&
204
- !!source &&
205
- sourceIsEligible(source, authoritativeFingerprint) &&
206
- source.coveredCapabilities.includes(capabilityKey));
207
- }
208
- #order(left, right, sources) {
209
- const leftSource = sources.get(left.sourceConnectionId)?.repositoryIdentity ?? left.sourceConnectionId;
210
- const rightSource = sources.get(right.sourceConnectionId)?.repositoryIdentity ?? right.sourceConnectionId;
211
- return leftSource.localeCompare(rightSource) || left.artifactHash.localeCompare(right.artifactHash) || left.id.localeCompare(right.id);
212
- }
213
- async #authoritative(applicationId) {
214
- const authoritative = await this.authority.get(applicationId);
215
- if (!authoritative)
216
- throw new Error(`Unknown application "${applicationId}"`);
217
- return authoritative;
218
- }
219
- }
220
- //# sourceMappingURL=application-implementation.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"application-implementation.js","sourceRoot":"","sources":["../src/application-implementation.ts"],"names":[],"mappings":"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"}