@aeolus-fleet/gateway 0.0.0-stage → 0.0.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 (474) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +104 -2
  3. package/dist/adapters/crypto/call-keys.d.ts +7 -0
  4. package/dist/adapters/crypto/call-keys.js +18 -0
  5. package/dist/adapters/crypto/call-keys.js.map +1 -0
  6. package/dist/adapters/crypto/oauth-secrets.d.ts +3 -0
  7. package/dist/adapters/crypto/oauth-secrets.js +10 -0
  8. package/dist/adapters/crypto/oauth-secrets.js.map +1 -0
  9. package/dist/adapters/crypto/request-hasher.d.ts +3 -0
  10. package/dist/adapters/crypto/request-hasher.js +4 -0
  11. package/dist/adapters/crypto/request-hasher.js.map +1 -0
  12. package/dist/adapters/crypto/request-ids.d.ts +4 -0
  13. package/dist/adapters/crypto/request-ids.js +14 -0
  14. package/dist/adapters/crypto/request-ids.js.map +1 -0
  15. package/dist/adapters/crypto/sealer.d.ts +14 -0
  16. package/dist/adapters/crypto/sealer.js +41 -0
  17. package/dist/adapters/crypto/sealer.js.map +1 -0
  18. package/dist/adapters/crypto/ship-aliases.d.ts +7 -0
  19. package/dist/adapters/crypto/ship-aliases.js +19 -0
  20. package/dist/adapters/crypto/ship-aliases.js.map +1 -0
  21. package/dist/adapters/crypto/sign-in-seals.d.ts +7 -0
  22. package/dist/adapters/crypto/sign-in-seals.js +27 -0
  23. package/dist/adapters/crypto/sign-in-seals.js.map +1 -0
  24. package/dist/adapters/crypto/waiting-seals.d.ts +3 -0
  25. package/dist/adapters/crypto/waiting-seals.js +24 -0
  26. package/dist/adapters/crypto/waiting-seals.js.map +1 -0
  27. package/dist/adapters/fleet/console-sessions.d.ts +2 -0
  28. package/dist/adapters/fleet/console-sessions.js +23 -0
  29. package/dist/adapters/fleet/console-sessions.js.map +1 -0
  30. package/dist/adapters/fleet/core-version.d.ts +11 -0
  31. package/dist/adapters/fleet/core-version.js +59 -0
  32. package/dist/adapters/fleet/core-version.js.map +1 -0
  33. package/dist/adapters/fleet/fleet-network.d.ts +2 -0
  34. package/dist/adapters/fleet/fleet-network.js +44 -0
  35. package/dist/adapters/fleet/fleet-network.js.map +1 -0
  36. package/dist/adapters/fleet/rest-fleet-door.d.ts +14 -0
  37. package/dist/adapters/fleet/rest-fleet-door.js +189 -0
  38. package/dist/adapters/fleet/rest-fleet-door.js.map +1 -0
  39. package/dist/adapters/http/html.d.ts +15 -0
  40. package/dist/adapters/http/html.js +53 -0
  41. package/dist/adapters/http/html.js.map +1 -0
  42. package/dist/adapters/http/live.d.ts +29 -0
  43. package/dist/adapters/http/live.js +100 -0
  44. package/dist/adapters/http/live.js.map +1 -0
  45. package/dist/adapters/http/mcp-endpoint.d.ts +20 -0
  46. package/dist/adapters/http/mcp-endpoint.js +164 -0
  47. package/dist/adapters/http/mcp-endpoint.js.map +1 -0
  48. package/dist/adapters/http/mcp-task.d.ts +45 -0
  49. package/dist/adapters/http/mcp-task.js +35 -0
  50. package/dist/adapters/http/mcp-task.js.map +1 -0
  51. package/dist/adapters/http/oauth-routes.d.ts +35 -0
  52. package/dist/adapters/http/oauth-routes.js +305 -0
  53. package/dist/adapters/http/oauth-routes.js.map +1 -0
  54. package/dist/adapters/http/outside-parties-page.d.ts +6 -0
  55. package/dist/adapters/http/outside-parties-page.js +149 -0
  56. package/dist/adapters/http/outside-parties-page.js.map +1 -0
  57. package/dist/adapters/http/overview-page.d.ts +16 -0
  58. package/dist/adapters/http/overview-page.js +255 -0
  59. package/dist/adapters/http/overview-page.js.map +1 -0
  60. package/dist/adapters/http/parties-page.d.ts +6 -0
  61. package/dist/adapters/http/parties-page.js +141 -0
  62. package/dist/adapters/http/parties-page.js.map +1 -0
  63. package/dist/adapters/http/person-tools.d.ts +22 -0
  64. package/dist/adapters/http/person-tools.js +98 -0
  65. package/dist/adapters/http/person-tools.js.map +1 -0
  66. package/dist/adapters/http/signal.d.ts +52 -0
  67. package/dist/adapters/http/signal.js +220 -0
  68. package/dist/adapters/http/signal.js.map +1 -0
  69. package/dist/adapters/http/version.d.ts +6 -0
  70. package/dist/adapters/http/version.js +12 -0
  71. package/dist/adapters/http/version.js.map +1 -0
  72. package/dist/adapters/mcp/mcp-servers.d.ts +2 -0
  73. package/dist/adapters/mcp/mcp-servers.js +154 -0
  74. package/dist/adapters/mcp/mcp-servers.js.map +1 -0
  75. package/dist/adapters/oauth/client-metadata-documents.d.ts +9 -0
  76. package/dist/adapters/oauth/client-metadata-documents.js +25 -0
  77. package/dist/adapters/oauth/client-metadata-documents.js.map +1 -0
  78. package/dist/adapters/pagasae/pagasae-client.d.ts +8 -0
  79. package/dist/adapters/pagasae/pagasae-client.js +90 -0
  80. package/dist/adapters/pagasae/pagasae-client.js.map +1 -0
  81. package/dist/adapters/prisma/account-grants.d.ts +4 -0
  82. package/dist/adapters/prisma/account-grants.js +27 -0
  83. package/dist/adapters/prisma/account-grants.js.map +1 -0
  84. package/dist/adapters/prisma/calls.d.ts +4 -0
  85. package/dist/adapters/prisma/calls.js +35 -0
  86. package/dist/adapters/prisma/calls.js.map +1 -0
  87. package/dist/adapters/prisma/changes.d.ts +21 -0
  88. package/dist/adapters/prisma/changes.js +86 -0
  89. package/dist/adapters/prisma/changes.js.map +1 -0
  90. package/dist/adapters/prisma/client-calls.d.ts +4 -0
  91. package/dist/adapters/prisma/client-calls.js +50 -0
  92. package/dist/adapters/prisma/client-calls.js.map +1 -0
  93. package/dist/adapters/prisma/client.d.ts +8 -0
  94. package/dist/adapters/prisma/client.js +11 -0
  95. package/dist/adapters/prisma/client.js.map +1 -0
  96. package/dist/adapters/prisma/connection-store.d.ts +4 -0
  97. package/dist/adapters/prisma/connection-store.js +28 -0
  98. package/dist/adapters/prisma/connection-store.js.map +1 -0
  99. package/dist/adapters/prisma/fleet-forgetter.d.ts +4 -0
  100. package/dist/adapters/prisma/fleet-forgetter.js +10 -0
  101. package/dist/adapters/prisma/fleet-forgetter.js.map +1 -0
  102. package/dist/adapters/prisma/fleet-switches.d.ts +4 -0
  103. package/dist/adapters/prisma/fleet-switches.js +10 -0
  104. package/dist/adapters/prisma/fleet-switches.js.map +1 -0
  105. package/dist/adapters/prisma/generated/browser.d.ts +108 -0
  106. package/dist/adapters/prisma/generated/browser.js +18 -0
  107. package/dist/adapters/prisma/generated/browser.js.map +1 -0
  108. package/dist/adapters/prisma/generated/client.d.ts +127 -0
  109. package/dist/adapters/prisma/generated/client.js +38 -0
  110. package/dist/adapters/prisma/generated/client.js.map +1 -0
  111. package/dist/adapters/prisma/generated/commonInputTypes.d.ts +490 -0
  112. package/dist/adapters/prisma/generated/commonInputTypes.js +11 -0
  113. package/dist/adapters/prisma/generated/commonInputTypes.js.map +1 -0
  114. package/dist/adapters/prisma/generated/enums.d.ts +1 -0
  115. package/dist/adapters/prisma/generated/enums.js +12 -0
  116. package/dist/adapters/prisma/generated/enums.js.map +1 -0
  117. package/dist/adapters/prisma/generated/internal/class.d.ts +319 -0
  118. package/dist/adapters/prisma/generated/internal/class.js +50 -0
  119. package/dist/adapters/prisma/generated/internal/class.js.map +1 -0
  120. package/dist/adapters/prisma/generated/internal/prismaNamespace.d.ts +2102 -0
  121. package/dist/adapters/prisma/generated/internal/prismaNamespace.js +294 -0
  122. package/dist/adapters/prisma/generated/internal/prismaNamespace.js.map +1 -0
  123. package/dist/adapters/prisma/generated/internal/prismaNamespaceBrowser.d.ts +273 -0
  124. package/dist/adapters/prisma/generated/internal/prismaNamespaceBrowser.js +264 -0
  125. package/dist/adapters/prisma/generated/internal/prismaNamespaceBrowser.js.map +1 -0
  126. package/dist/adapters/prisma/generated/models/AccountGrant.d.ts +1056 -0
  127. package/dist/adapters/prisma/generated/models/AccountGrant.js +2 -0
  128. package/dist/adapters/prisma/generated/models/AccountGrant.js.map +1 -0
  129. package/dist/adapters/prisma/generated/models/AuthorizationCode.d.ts +1171 -0
  130. package/dist/adapters/prisma/generated/models/AuthorizationCode.js +2 -0
  131. package/dist/adapters/prisma/generated/models/AuthorizationCode.js.map +1 -0
  132. package/dist/adapters/prisma/generated/models/Call.d.ts +994 -0
  133. package/dist/adapters/prisma/generated/models/Call.js +2 -0
  134. package/dist/adapters/prisma/generated/models/Call.js.map +1 -0
  135. package/dist/adapters/prisma/generated/models/ClientCall.d.ts +1119 -0
  136. package/dist/adapters/prisma/generated/models/ClientCall.js +2 -0
  137. package/dist/adapters/prisma/generated/models/ClientCall.js.map +1 -0
  138. package/dist/adapters/prisma/generated/models/ClientCallReply.d.ts +1129 -0
  139. package/dist/adapters/prisma/generated/models/ClientCallReply.js +2 -0
  140. package/dist/adapters/prisma/generated/models/ClientCallReply.js.map +1 -0
  141. package/dist/adapters/prisma/generated/models/Connection.d.ts +1011 -0
  142. package/dist/adapters/prisma/generated/models/Connection.js +2 -0
  143. package/dist/adapters/prisma/generated/models/Connection.js.map +1 -0
  144. package/dist/adapters/prisma/generated/models/FleetSwitch.d.ts +945 -0
  145. package/dist/adapters/prisma/generated/models/FleetSwitch.js +2 -0
  146. package/dist/adapters/prisma/generated/models/FleetSwitch.js.map +1 -0
  147. package/dist/adapters/prisma/generated/models/InstallationRequest.d.ts +1030 -0
  148. package/dist/adapters/prisma/generated/models/InstallationRequest.js +2 -0
  149. package/dist/adapters/prisma/generated/models/InstallationRequest.js.map +1 -0
  150. package/dist/adapters/prisma/generated/models/IssuedToken.d.ts +1224 -0
  151. package/dist/adapters/prisma/generated/models/IssuedToken.js +2 -0
  152. package/dist/adapters/prisma/generated/models/IssuedToken.js.map +1 -0
  153. package/dist/adapters/prisma/generated/models/OAuthClient.d.ts +1005 -0
  154. package/dist/adapters/prisma/generated/models/OAuthClient.js +2 -0
  155. package/dist/adapters/prisma/generated/models/OAuthClient.js.map +1 -0
  156. package/dist/adapters/prisma/generated/models/OpenedDelivery.d.ts +1087 -0
  157. package/dist/adapters/prisma/generated/models/OpenedDelivery.js +2 -0
  158. package/dist/adapters/prisma/generated/models/OpenedDelivery.js.map +1 -0
  159. package/dist/adapters/prisma/generated/models/OutsidePartySwitch.d.ts +942 -0
  160. package/dist/adapters/prisma/generated/models/OutsidePartySwitch.js +2 -0
  161. package/dist/adapters/prisma/generated/models/OutsidePartySwitch.js.map +1 -0
  162. package/dist/adapters/prisma/generated/models/OwnerQuestion.d.ts +1035 -0
  163. package/dist/adapters/prisma/generated/models/OwnerQuestion.js +2 -0
  164. package/dist/adapters/prisma/generated/models/OwnerQuestion.js.map +1 -0
  165. package/dist/adapters/prisma/generated/models/Party.d.ts +1338 -0
  166. package/dist/adapters/prisma/generated/models/Party.js +2 -0
  167. package/dist/adapters/prisma/generated/models/Party.js.map +1 -0
  168. package/dist/adapters/prisma/generated/models/PendingRequest.d.ts +1252 -0
  169. package/dist/adapters/prisma/generated/models/PendingRequest.js +2 -0
  170. package/dist/adapters/prisma/generated/models/PendingRequest.js.map +1 -0
  171. package/dist/adapters/prisma/generated/models/PersonCrew.d.ts +974 -0
  172. package/dist/adapters/prisma/generated/models/PersonCrew.js +2 -0
  173. package/dist/adapters/prisma/generated/models/PersonCrew.js.map +1 -0
  174. package/dist/adapters/prisma/generated/models/RequestOutcomeNotice.d.ts +1120 -0
  175. package/dist/adapters/prisma/generated/models/RequestOutcomeNotice.js +2 -0
  176. package/dist/adapters/prisma/generated/models/RequestOutcomeNotice.js.map +1 -0
  177. package/dist/adapters/prisma/generated/models/ToolMark.d.ts +947 -0
  178. package/dist/adapters/prisma/generated/models/ToolMark.js +2 -0
  179. package/dist/adapters/prisma/generated/models/ToolMark.js.map +1 -0
  180. package/dist/adapters/prisma/generated/models.d.ts +19 -0
  181. package/dist/adapters/prisma/generated/models.js +2 -0
  182. package/dist/adapters/prisma/generated/models.js.map +1 -0
  183. package/dist/adapters/prisma/installation-requests.d.ts +4 -0
  184. package/dist/adapters/prisma/installation-requests.js +25 -0
  185. package/dist/adapters/prisma/installation-requests.js.map +1 -0
  186. package/dist/adapters/prisma/migrate.d.ts +5 -0
  187. package/dist/adapters/prisma/migrate.js +53 -0
  188. package/dist/adapters/prisma/migrate.js.map +1 -0
  189. package/dist/adapters/prisma/oauth-stores.d.ts +5 -0
  190. package/dist/adapters/prisma/oauth-stores.js +82 -0
  191. package/dist/adapters/prisma/oauth-stores.js.map +1 -0
  192. package/dist/adapters/prisma/opened-deliveries.d.ts +4 -0
  193. package/dist/adapters/prisma/opened-deliveries.js +29 -0
  194. package/dist/adapters/prisma/opened-deliveries.js.map +1 -0
  195. package/dist/adapters/prisma/outcome-notices.d.ts +4 -0
  196. package/dist/adapters/prisma/outcome-notices.js +24 -0
  197. package/dist/adapters/prisma/outcome-notices.js.map +1 -0
  198. package/dist/adapters/prisma/outside-party-switches.d.ts +4 -0
  199. package/dist/adapters/prisma/outside-party-switches.js +10 -0
  200. package/dist/adapters/prisma/outside-party-switches.js.map +1 -0
  201. package/dist/adapters/prisma/owner-questions.d.ts +8 -0
  202. package/dist/adapters/prisma/owner-questions.js +54 -0
  203. package/dist/adapters/prisma/owner-questions.js.map +1 -0
  204. package/dist/adapters/prisma/party-store.d.ts +7 -0
  205. package/dist/adapters/prisma/party-store.js +73 -0
  206. package/dist/adapters/prisma/party-store.js.map +1 -0
  207. package/dist/adapters/prisma/pending-requests.d.ts +11 -0
  208. package/dist/adapters/prisma/pending-requests.js +122 -0
  209. package/dist/adapters/prisma/pending-requests.js.map +1 -0
  210. package/dist/adapters/prisma/person-crews.d.ts +4 -0
  211. package/dist/adapters/prisma/person-crews.js +18 -0
  212. package/dist/adapters/prisma/person-crews.js.map +1 -0
  213. package/dist/adapters/prisma/tool-marks.d.ts +4 -0
  214. package/dist/adapters/prisma/tool-marks.js +15 -0
  215. package/dist/adapters/prisma/tool-marks.js.map +1 -0
  216. package/dist/adapters/timers/sleep.d.ts +3 -0
  217. package/dist/adapters/timers/sleep.js +11 -0
  218. package/dist/adapters/timers/sleep.js.map +1 -0
  219. package/dist/adapters/trpc/router.d.ts +408 -0
  220. package/dist/adapters/trpc/router.js +367 -0
  221. package/dist/adapters/trpc/router.js.map +1 -0
  222. package/dist/app.d.ts +43 -0
  223. package/dist/app.js +400 -0
  224. package/dist/app.js.map +1 -0
  225. package/dist/bin/aeolus-gateway.d.ts +2 -0
  226. package/dist/bin/aeolus-gateway.js +65 -0
  227. package/dist/bin/aeolus-gateway.js.map +1 -0
  228. package/dist/config.d.ts +41 -0
  229. package/dist/config.js +65 -0
  230. package/dist/config.js.map +1 -0
  231. package/dist/core/actors/authenticate-actor.d.ts +38 -0
  232. package/dist/core/actors/authenticate-actor.js +30 -0
  233. package/dist/core/actors/authenticate-actor.js.map +1 -0
  234. package/dist/core/connection/connect.d.ts +26 -0
  235. package/dist/core/connection/connect.js +57 -0
  236. package/dist/core/connection/connect.js.map +1 -0
  237. package/dist/core/connection/ports.d.ts +87 -0
  238. package/dist/core/connection/ports.js +2 -0
  239. package/dist/core/connection/ports.js.map +1 -0
  240. package/dist/core/connection/read-connection.d.ts +14 -0
  241. package/dist/core/connection/read-connection.js +24 -0
  242. package/dist/core/connection/read-connection.js.map +1 -0
  243. package/dist/core/installation/delete-fleet.d.ts +21 -0
  244. package/dist/core/installation/delete-fleet.js +21 -0
  245. package/dist/core/installation/delete-fleet.js.map +1 -0
  246. package/dist/core/installation/ports.d.ts +43 -0
  247. package/dist/core/installation/ports.js +2 -0
  248. package/dist/core/installation/ports.js.map +1 -0
  249. package/dist/core/installation/read-fleet.d.ts +18 -0
  250. package/dist/core/installation/read-fleet.js +9 -0
  251. package/dist/core/installation/read-fleet.js.map +1 -0
  252. package/dist/core/installation/request-id.d.ts +8 -0
  253. package/dist/core/installation/request-id.js +10 -0
  254. package/dist/core/installation/request-id.js.map +1 -0
  255. package/dist/core/installation/served.d.ts +12 -0
  256. package/dist/core/installation/served.js +8 -0
  257. package/dist/core/installation/served.js.map +1 -0
  258. package/dist/core/installation/set-fleet-enabled.d.ts +25 -0
  259. package/dist/core/installation/set-fleet-enabled.js +22 -0
  260. package/dist/core/installation/set-fleet-enabled.js.map +1 -0
  261. package/dist/core/mcp-in/call-tool.d.ts +42 -0
  262. package/dist/core/mcp-in/call-tool.js +82 -0
  263. package/dist/core/mcp-in/call-tool.js.map +1 -0
  264. package/dist/core/mcp-in/client-call.d.ts +51 -0
  265. package/dist/core/mcp-in/client-call.js +39 -0
  266. package/dist/core/mcp-in/client-call.js.map +1 -0
  267. package/dist/core/mcp-in/collect-replies.d.ts +29 -0
  268. package/dist/core/mcp-in/collect-replies.js +44 -0
  269. package/dist/core/mcp-in/collect-replies.js.map +1 -0
  270. package/dist/core/mcp-in/list-tools.d.ts +44 -0
  271. package/dist/core/mcp-in/list-tools.js +70 -0
  272. package/dist/core/mcp-in/list-tools.js.map +1 -0
  273. package/dist/core/mcp-in/ports.d.ts +85 -0
  274. package/dist/core/mcp-in/ports.js +2 -0
  275. package/dist/core/mcp-in/ports.js.map +1 -0
  276. package/dist/core/mcp-in/read-client-call.d.ts +23 -0
  277. package/dist/core/mcp-in/read-client-call.js +15 -0
  278. package/dist/core/mcp-in/read-client-call.js.map +1 -0
  279. package/dist/core/mcp-out/content-types.d.ts +12 -0
  280. package/dist/core/mcp-out/content-types.js +28 -0
  281. package/dist/core/mcp-out/content-types.js.map +1 -0
  282. package/dist/core/mcp-out/hand-call.d.ts +103 -0
  283. package/dist/core/mcp-out/hand-call.js +116 -0
  284. package/dist/core/mcp-out/hand-call.js.map +1 -0
  285. package/dist/core/mcp-out/mark-tool.d.ts +20 -0
  286. package/dist/core/mcp-out/mark-tool.js +17 -0
  287. package/dist/core/mcp-out/mark-tool.js.map +1 -0
  288. package/dist/core/mcp-out/ports.d.ts +66 -0
  289. package/dist/core/mcp-out/ports.js +2 -0
  290. package/dist/core/mcp-out/ports.js.map +1 -0
  291. package/dist/core/mcp-out/run-party.d.ts +26 -0
  292. package/dist/core/mcp-out/run-party.js +62 -0
  293. package/dist/core/mcp-out/run-party.js.map +1 -0
  294. package/dist/core/mcp-out/state-party.d.ts +38 -0
  295. package/dist/core/mcp-out/state-party.js +30 -0
  296. package/dist/core/mcp-out/state-party.js.map +1 -0
  297. package/dist/core/mcp-out/statement.d.ts +26 -0
  298. package/dist/core/mcp-out/statement.js +32 -0
  299. package/dist/core/mcp-out/statement.js.map +1 -0
  300. package/dist/core/oauth/authenticate-access-token.d.ts +25 -0
  301. package/dist/core/oauth/authenticate-access-token.js +19 -0
  302. package/dist/core/oauth/authenticate-access-token.js.map +1 -0
  303. package/dist/core/oauth/exchange-token.d.ts +32 -0
  304. package/dist/core/oauth/exchange-token.js +98 -0
  305. package/dist/core/oauth/exchange-token.js.map +1 -0
  306. package/dist/core/oauth/issue-code.d.ts +23 -0
  307. package/dist/core/oauth/issue-code.js +34 -0
  308. package/dist/core/oauth/issue-code.js.map +1 -0
  309. package/dist/core/oauth/ports.d.ts +103 -0
  310. package/dist/core/oauth/ports.js +2 -0
  311. package/dist/core/oauth/ports.js.map +1 -0
  312. package/dist/core/oauth/read-authorization.d.ts +43 -0
  313. package/dist/core/oauth/read-authorization.js +74 -0
  314. package/dist/core/oauth/read-authorization.js.map +1 -0
  315. package/dist/core/oauth/redirect-uri.d.ts +6 -0
  316. package/dist/core/oauth/redirect-uri.js +20 -0
  317. package/dist/core/oauth/redirect-uri.js.map +1 -0
  318. package/dist/core/oauth/register-client.d.ts +22 -0
  319. package/dist/core/oauth/register-client.js +20 -0
  320. package/dist/core/oauth/register-client.js.map +1 -0
  321. package/dist/core/operator/authenticate-operator.d.ts +22 -0
  322. package/dist/core/operator/authenticate-operator.js +26 -0
  323. package/dist/core/operator/authenticate-operator.js.map +1 -0
  324. package/dist/core/operator/ports.d.ts +15 -0
  325. package/dist/core/operator/ports.js +2 -0
  326. package/dist/core/operator/ports.js.map +1 -0
  327. package/dist/core/outside-parties/ports.d.ts +21 -0
  328. package/dist/core/outside-parties/ports.js +2 -0
  329. package/dist/core/outside-parties/ports.js.map +1 -0
  330. package/dist/core/outside-parties/set-outside-parties.d.ts +34 -0
  331. package/dist/core/outside-parties/set-outside-parties.js +34 -0
  332. package/dist/core/outside-parties/set-outside-parties.js.map +1 -0
  333. package/dist/core/parties/approve-party.d.ts +55 -0
  334. package/dist/core/parties/approve-party.js +111 -0
  335. package/dist/core/parties/approve-party.js.map +1 -0
  336. package/dist/core/parties/crew-party.d.ts +21 -0
  337. package/dist/core/parties/crew-party.js +29 -0
  338. package/dist/core/parties/crew-party.js.map +1 -0
  339. package/dist/core/parties/list-parties.d.ts +8 -0
  340. package/dist/core/parties/list-parties.js +8 -0
  341. package/dist/core/parties/list-parties.js.map +1 -0
  342. package/dist/core/parties/party.d.ts +46 -0
  343. package/dist/core/parties/party.js +2 -0
  344. package/dist/core/parties/party.js.map +1 -0
  345. package/dist/core/parties/ports.d.ts +39 -0
  346. package/dist/core/parties/ports.js +2 -0
  347. package/dist/core/parties/ports.js.map +1 -0
  348. package/dist/core/parties/shown-party.d.ts +21 -0
  349. package/dist/core/parties/shown-party.js +10 -0
  350. package/dist/core/parties/shown-party.js.map +1 -0
  351. package/dist/core/people/answer-delivery.d.ts +24 -0
  352. package/dist/core/people/answer-delivery.js +28 -0
  353. package/dist/core/people/answer-delivery.js.map +1 -0
  354. package/dist/core/people/crew-person-ship.d.ts +42 -0
  355. package/dist/core/people/crew-person-ship.js +59 -0
  356. package/dist/core/people/crew-person-ship.js.map +1 -0
  357. package/dist/core/people/done-delivery.d.ts +16 -0
  358. package/dist/core/people/done-delivery.js +9 -0
  359. package/dist/core/people/done-delivery.js.map +1 -0
  360. package/dist/core/people/inbox-entry.d.ts +14 -0
  361. package/dist/core/people/inbox-entry.js +11 -0
  362. package/dist/core/people/inbox-entry.js.map +1 -0
  363. package/dist/core/people/open-delivery.d.ts +30 -0
  364. package/dist/core/people/open-delivery.js +40 -0
  365. package/dist/core/people/open-delivery.js.map +1 -0
  366. package/dist/core/people/opened-of.d.ts +29 -0
  367. package/dist/core/people/opened-of.js +30 -0
  368. package/dist/core/people/opened-of.js.map +1 -0
  369. package/dist/core/people/person-crew.d.ts +39 -0
  370. package/dist/core/people/person-crew.js +61 -0
  371. package/dist/core/people/person-crew.js.map +1 -0
  372. package/dist/core/people/ports.d.ts +102 -0
  373. package/dist/core/people/ports.js +2 -0
  374. package/dist/core/people/ports.js.map +1 -0
  375. package/dist/core/people/read-inbox.d.ts +37 -0
  376. package/dist/core/people/read-inbox.js +36 -0
  377. package/dist/core/people/read-inbox.js.map +1 -0
  378. package/dist/core/requests/ask-for-client.d.ts +45 -0
  379. package/dist/core/requests/ask-for-client.js +33 -0
  380. package/dist/core/requests/ask-for-client.js.map +1 -0
  381. package/dist/core/requests/ask-for-server.d.ts +32 -0
  382. package/dist/core/requests/ask-for-server.js +42 -0
  383. package/dist/core/requests/ask-for-server.js.map +1 -0
  384. package/dist/core/requests/ask-owners.d.ts +28 -0
  385. package/dist/core/requests/ask-owners.js +85 -0
  386. package/dist/core/requests/ask-owners.js.map +1 -0
  387. package/dist/core/requests/decide-request.d.ts +53 -0
  388. package/dist/core/requests/decide-request.js +75 -0
  389. package/dist/core/requests/decide-request.js.map +1 -0
  390. package/dist/core/requests/expire-requests.d.ts +14 -0
  391. package/dist/core/requests/expire-requests.js +21 -0
  392. package/dist/core/requests/expire-requests.js.map +1 -0
  393. package/dist/core/requests/list-to-decide.d.ts +11 -0
  394. package/dist/core/requests/list-to-decide.js +13 -0
  395. package/dist/core/requests/list-to-decide.js.map +1 -0
  396. package/dist/core/requests/open-request.d.ts +21 -0
  397. package/dist/core/requests/open-request.js +26 -0
  398. package/dist/core/requests/open-request.js.map +1 -0
  399. package/dist/core/requests/outcome-notice.d.ts +13 -0
  400. package/dist/core/requests/outcome-notice.js +26 -0
  401. package/dist/core/requests/outcome-notice.js.map +1 -0
  402. package/dist/core/requests/ports.d.ts +186 -0
  403. package/dist/core/requests/ports.js +2 -0
  404. package/dist/core/requests/ports.js.map +1 -0
  405. package/dist/core/requests/read-waiting.d.ts +46 -0
  406. package/dist/core/requests/read-waiting.js +41 -0
  407. package/dist/core/requests/read-waiting.js.map +1 -0
  408. package/dist/core/requests/request-state.d.ts +5 -0
  409. package/dist/core/requests/request-state.js +10 -0
  410. package/dist/core/requests/request-state.js.map +1 -0
  411. package/dist/core/requests/tell-outcomes.d.ts +24 -0
  412. package/dist/core/requests/tell-outcomes.js +39 -0
  413. package/dist/core/requests/tell-outcomes.js.map +1 -0
  414. package/dist/core/requests/watch-waiting.d.ts +32 -0
  415. package/dist/core/requests/watch-waiting.js +31 -0
  416. package/dist/core/requests/watch-waiting.js.map +1 -0
  417. package/dist/core/shared/clock.d.ts +4 -0
  418. package/dist/core/shared/clock.js +2 -0
  419. package/dist/core/shared/clock.js.map +1 -0
  420. package/dist/core/shared/errors.d.ts +10 -0
  421. package/dist/core/shared/errors.js +6 -0
  422. package/dist/core/shared/errors.js.map +1 -0
  423. package/dist/core/shared/result.d.ts +16 -0
  424. package/dist/core/shared/result.js +7 -0
  425. package/dist/core/shared/result.js.map +1 -0
  426. package/dist/core/sign-in/account-token.d.ts +38 -0
  427. package/dist/core/sign-in/account-token.js +46 -0
  428. package/dist/core/sign-in/account-token.js.map +1 -0
  429. package/dist/core/sign-in/complete-sign-in.d.ts +55 -0
  430. package/dist/core/sign-in/complete-sign-in.js +50 -0
  431. package/dist/core/sign-in/complete-sign-in.js.map +1 -0
  432. package/dist/core/sign-in/end-sign-ins.d.ts +19 -0
  433. package/dist/core/sign-in/end-sign-ins.js +17 -0
  434. package/dist/core/sign-in/end-sign-ins.js.map +1 -0
  435. package/dist/core/sign-in/ports.d.ts +85 -0
  436. package/dist/core/sign-in/ports.js +2 -0
  437. package/dist/core/sign-in/ports.js.map +1 -0
  438. package/dist/core/sign-in/start-sign-in.d.ts +30 -0
  439. package/dist/core/sign-in/start-sign-in.js +25 -0
  440. package/dist/core/sign-in/start-sign-in.js.map +1 -0
  441. package/dist/core/vault/credential.d.ts +18 -0
  442. package/dist/core/vault/credential.js +2 -0
  443. package/dist/core/vault/credential.js.map +1 -0
  444. package/dist/outcome-worker.d.ts +29 -0
  445. package/dist/outcome-worker.js +60 -0
  446. package/dist/outcome-worker.js.map +1 -0
  447. package/dist/party-workers.d.ts +32 -0
  448. package/dist/party-workers.js +57 -0
  449. package/dist/party-workers.js.map +1 -0
  450. package/package.json +70 -4
  451. package/prisma.config.ts +18 -0
  452. package/src/adapters/prisma/migrations/20261018200000_init/migration.sql +35 -0
  453. package/src/adapters/prisma/migrations/20261018210000_parties/migration.sql +19 -0
  454. package/src/adapters/prisma/migrations/20261018220000_tool_marks/migration.sql +8 -0
  455. package/src/adapters/prisma/migrations/20261018230000_calls/migration.sql +13 -0
  456. package/src/adapters/prisma/migrations/20261019090000_oauth/migration.sql +60 -0
  457. package/src/adapters/prisma/migrations/20261019100000_client_parties/migration.sql +8 -0
  458. package/src/adapters/prisma/migrations/20261019110000_oauth_parties/migration.sql +5 -0
  459. package/src/adapters/prisma/migrations/20261019120000_client_calls/migration.sql +15 -0
  460. package/src/adapters/prisma/migrations/20261019130000_client_call_replies/migration.sql +20 -0
  461. package/src/adapters/prisma/migrations/20261019140000_identity_providers/migration.sql +10 -0
  462. package/src/adapters/prisma/migrations/20261020090000_no_identity_providers/migration.sql +2 -0
  463. package/src/adapters/prisma/migrations/20261020100000_account_grants_in_tokens/migration.sql +5 -0
  464. package/src/adapters/prisma/migrations/20261020110000_account_grants/migration.sql +15 -0
  465. package/src/adapters/prisma/migrations/20261020120000_person_crews/migration.sql +9 -0
  466. package/src/adapters/prisma/migrations/20261020130000_opened_deliveries/migration.sql +13 -0
  467. package/src/adapters/prisma/migrations/20261020140000_pending_requests/migration.sql +26 -0
  468. package/src/adapters/prisma/migrations/20261020150000_outside_party_switches/migration.sql +8 -0
  469. package/src/adapters/prisma/migrations/20261020160000_pending_requests_told/migration.sql +2 -0
  470. package/src/adapters/prisma/migrations/20261020170000_request_outcome_notices/migration.sql +17 -0
  471. package/src/adapters/prisma/migrations/20261020180000_owner_questions/migration.sql +11 -0
  472. package/src/adapters/prisma/migrations/20261020190000_request_changes/migration.sql +12 -0
  473. package/src/adapters/prisma/migrations/migration_lock.toml +3 -0
  474. package/src/adapters/prisma/schema.prisma +311 -0
@@ -0,0 +1,122 @@
1
+ import { idSchema } from '@aeolus-fleet/common';
2
+ import { z } from 'zod';
3
+ const requestersSchema = z.array(z.object({ accountId: z.string(), personShipId: idSchema('ship').nullable() }));
4
+ const decidedBySchema = z.union([z.object({ kind: z.literal('ship'), shipId: idSchema('ship') }), z.object({ kind: z.enum(['operator', 'viewer']) })]).nullable();
5
+ const toldAccountIdsSchema = z.array(z.string());
6
+ const stateSchema = z.enum(['pending', 'approving', 'approved', 'denied', 'expired']);
7
+ /** A row as the table holds it, whether read by Prisma or by the raw insert. */
8
+ const rowSchema = z.object({
9
+ fleetId: idSchema('fleet'),
10
+ requestId: z.string(),
11
+ kind: z.enum(['client', 'server']),
12
+ clientId: z.string().nullable(),
13
+ clientName: z.string().nullable(),
14
+ url: z.string().nullable(),
15
+ requesters: z.unknown(),
16
+ askedAt: z.date(),
17
+ expiresAt: z.date(),
18
+ state: stateSchema,
19
+ decidedBy: z.unknown(),
20
+ decidedAt: z.date().nullable(),
21
+ });
22
+ /** What one open request is unique by in its fleet. */
23
+ function subjectKeyOf(subject) {
24
+ return subject.kind === 'client' ? `client:${subject.clientId}` : `server:${subject.url}`;
25
+ }
26
+ /** A pending request from a row, whether read by Prisma or by raw SQL. */
27
+ export function requestOf(raw) {
28
+ const row = rowSchema.parse(raw);
29
+ const subject = row.kind === 'client' ? { kind: 'client', clientId: z.string().parse(row.clientId), clientName: z.string().parse(row.clientName) } : { kind: 'server', url: z.string().parse(row.url) };
30
+ return {
31
+ fleetId: row.fleetId,
32
+ requestId: row.requestId,
33
+ subject,
34
+ requesters: requestersSchema.parse(row.requesters),
35
+ askedAt: row.askedAt,
36
+ expiresAt: row.expiresAt,
37
+ state: row.state,
38
+ decidedBy: decidedBySchema.parse(row.decidedBy),
39
+ decidedAt: row.decidedAt,
40
+ };
41
+ }
42
+ /** The outcomes to tell, as rows written with the step that ends their request. */
43
+ function noticeRowsOf(notices, createdAt) {
44
+ return notices.map((notice) => ({ ...notice, createdAt }));
45
+ }
46
+ /**
47
+ * The pending requests in Postgres. Opening is one insert that joins the
48
+ * open request for the same client or server on the partial unique index,
49
+ * so two requesters asking at once share one request; every decision is a
50
+ * conditional update, so the first counts.
51
+ */
52
+ export function createPrismaPendingRequests(db) {
53
+ return {
54
+ open: async ({ now, ...request }) => {
55
+ const subjectKey = subjectKeyOf(request.subject);
56
+ const { subject } = request;
57
+ const [requester] = request.requesters;
58
+ await db.pendingRequest.updateMany({ where: { fleetId: request.fleetId, subjectKey, state: 'pending', expiresAt: { lte: now } }, data: { state: 'expired' } });
59
+ const rows = await db.$queryRaw `
60
+ INSERT INTO "pending_requests" ("fleet_id", "request_id", "kind", "subject_key", "client_id", "client_name", "url", "requesters", "asked_at", "expires_at", "state")
61
+ VALUES (${request.fleetId}, ${request.requestId}, ${subject.kind}, ${subjectKey},
62
+ ${subject.kind === 'client' ? subject.clientId : null}, ${subject.kind === 'client' ? subject.clientName : null}, ${subject.kind === 'server' ? subject.url : null},
63
+ ${JSON.stringify(request.requesters)}::jsonb, ${request.askedAt}, ${request.expiresAt}, 'pending')
64
+ ON CONFLICT ("fleet_id", "subject_key") WHERE "state" IN ('pending', 'approving')
65
+ DO UPDATE SET "requesters" = CASE
66
+ WHEN "pending_requests"."requesters" @> jsonb_build_array(jsonb_build_object('accountId', ${requester?.accountId ?? ''}::text)) THEN "pending_requests"."requesters"
67
+ ELSE "pending_requests"."requesters" || ${JSON.stringify(request.requesters)}::jsonb
68
+ END
69
+ RETURNING "fleet_id" AS "fleetId", "request_id" AS "requestId", "kind", "client_id" AS "clientId", "client_name" AS "clientName", "url", "requesters",
70
+ "asked_at" AS "askedAt", "expires_at" AS "expiresAt", "state", "decided_by" AS "decidedBy", "decided_at" AS "decidedAt"`;
71
+ return requestOf(rows[0]);
72
+ },
73
+ latestAskedBy: async (fleetId, { subject, accountId }) => {
74
+ const row = await db.pendingRequest.findFirst({
75
+ where: { fleetId, subjectKey: subjectKeyOf(subject), requesters: { array_contains: [{ accountId }] } },
76
+ orderBy: { askedAt: 'desc' },
77
+ });
78
+ return row === null ? undefined : { request: requestOf(row), isTold: toldAccountIdsSchema.parse(row.toldAccountIds).includes(accountId) };
79
+ },
80
+ markTold: async (fleetId, { requestId, accountId }) => {
81
+ await db.$executeRaw `
82
+ UPDATE "pending_requests" SET "told_account_ids" = "told_account_ids" || jsonb_build_array(${accountId}::text)
83
+ WHERE "fleet_id" = ${fleetId} AND "request_id" = ${requestId} AND NOT "told_account_ids" @> jsonb_build_array(${accountId}::text)`;
84
+ },
85
+ find: async (fleetId, requestId) => {
86
+ const row = await db.pendingRequest.findUnique({ where: { fleetId_requestId: { fleetId, requestId } } });
87
+ return row === null ? undefined : requestOf(row);
88
+ },
89
+ listOpen: async (fleetId, now) => {
90
+ const rows = await db.pendingRequest.findMany({ where: { fleetId, state: { in: ['pending', 'approving'] }, expiresAt: { gt: now } }, orderBy: { askedAt: 'asc' } });
91
+ return rows.map(requestOf);
92
+ },
93
+ claim: async (fleetId, { requestId, now }) => {
94
+ const claimed = await db.pendingRequest.updateMany({ where: { fleetId, requestId, state: 'pending', expiresAt: { gt: now } }, data: { state: 'approving' } });
95
+ return claimed.count === 1;
96
+ },
97
+ release: async (fleetId, requestId) => {
98
+ await db.pendingRequest.updateMany({ where: { fleetId, requestId, state: 'approving' }, data: { state: 'pending' } });
99
+ },
100
+ decide: (fleetId, { requestId, from, decision, notices }) => db.$transaction(async (tx) => {
101
+ const decided = await tx.pendingRequest.updateMany({
102
+ where: { fleetId, requestId, state: { in: [...from] } },
103
+ data: { state: decision.outcome, decidedBy: decision.decidedBy, decidedAt: decision.decidedAt },
104
+ });
105
+ if (decided.count !== 1) {
106
+ return false;
107
+ }
108
+ await tx.requestOutcomeNotice.createMany({ data: noticeRowsOf(notices, decision.decidedAt), skipDuplicates: true });
109
+ return true;
110
+ }),
111
+ listDue: async (now) => (await db.pendingRequest.findMany({ where: { state: 'pending', expiresAt: { lte: now } }, orderBy: { expiresAt: 'asc' } })).map(requestOf),
112
+ expire: (fleetId, { requestId, now, notices }) => db.$transaction(async (tx) => {
113
+ const expired = await tx.pendingRequest.updateMany({ where: { fleetId, requestId, state: 'pending', expiresAt: { lte: now } }, data: { state: 'expired' } });
114
+ if (expired.count !== 1) {
115
+ return false;
116
+ }
117
+ await tx.requestOutcomeNotice.createMany({ data: noticeRowsOf(notices, now), skipDuplicates: true });
118
+ return true;
119
+ }),
120
+ };
121
+ }
122
+ //# sourceMappingURL=pending-requests.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pending-requests.js","sourceRoot":"","sources":["../../../src/adapters/prisma/pending-requests.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import type { PersonCrews } from '../../core/people/ports.js';
2
+ import type { Db } from './client.js';
3
+ /** The crews the gateway holds for person ships, one per ship in its fleet (decision 0054). */
4
+ export declare function createPrismaPersonCrews(db: Db): PersonCrews;
@@ -0,0 +1,18 @@
1
+ import { idSchema } from '@aeolus-fleet/common';
2
+ /** The crews the gateway holds for person ships, one per ship in its fleet (decision 0054). */
3
+ export function createPrismaPersonCrews(db) {
4
+ return {
5
+ find: async (fleetId, shipId) => {
6
+ const row = await db.personCrew.findUnique({ where: { fleetId_shipId: { fleetId, shipId } } });
7
+ return row ? { fleetId: idSchema('fleet').parse(row.fleetId), shipId: idSchema('ship').parse(row.shipId), crewToken: row.crewToken, crewedAt: row.crewedAt } : undefined;
8
+ },
9
+ save: async (crew) => {
10
+ const { fleetId, shipId, crewToken, crewedAt } = crew;
11
+ await db.personCrew.upsert({ where: { fleetId_shipId: { fleetId, shipId } }, create: { fleetId, shipId, crewToken, crewedAt }, update: { crewToken, crewedAt } });
12
+ },
13
+ drop: async (fleetId, shipId) => {
14
+ await db.personCrew.deleteMany({ where: { fleetId, shipId } });
15
+ },
16
+ };
17
+ }
18
+ //# sourceMappingURL=person-crews.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"person-crews.js","sourceRoot":"","sources":["../../../src/adapters/prisma/person-crews.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAKhD,+FAA+F;AAC/F,MAAM,UAAU,uBAAuB,CAAC,EAAM;IAC5C,OAAO;QACL,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE;YAC9B,MAAM,GAAG,GAAG,MAAM,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,KAAK,EAAE,EAAE,cAAc,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC;YAC/F,OAAO,GAAG,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,GAAG,CAAC,SAAS,EAAE,QAAQ,EAAE,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;QAC3K,CAAC;QACD,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;YACnB,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC;YACtD,MAAM,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,EAAE,cAAc,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;QACpK,CAAC;QACD,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE;YAC9B,MAAM,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;QACjE,CAAC;KACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type { ToolMarks } from '../../core/mcp-out/state-party.js';
2
+ import type { Db } from './client.js';
3
+ /** argo's repeatable marks, one row per marked tool: taking a mark off removes its row. */
4
+ export declare function createPrismaToolMarks(db: Db): ToolMarks;
@@ -0,0 +1,15 @@
1
+ /** argo's repeatable marks, one row per marked tool: taking a mark off removes its row. */
2
+ export function createPrismaToolMarks(db) {
3
+ return {
4
+ repeatable: async (fleetId, party) => new Set((await db.toolMark.findMany({ where: { fleetId, party }, select: { tool: true } })).map(({ tool }) => tool)),
5
+ mark: async (fleetId, { party, tool, isRepeatable }) => {
6
+ if (isRepeatable) {
7
+ await db.toolMark.upsert({ where: { fleetId_party_tool: { fleetId, party, tool } }, create: { fleetId, party, tool }, update: {} });
8
+ }
9
+ else {
10
+ await db.toolMark.deleteMany({ where: { fleetId, party, tool } });
11
+ }
12
+ },
13
+ };
14
+ }
15
+ //# sourceMappingURL=tool-marks.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-marks.js","sourceRoot":"","sources":["../../../src/adapters/prisma/tool-marks.ts"],"names":[],"mappings":"AAGA,2FAA2F;AAC3F,MAAM,UAAU,qBAAqB,CAAC,EAAM;IAC1C,OAAO;QACL,UAAU,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;QAC1J,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,EAAE;YACrD,IAAI,YAAY,EAAE,CAAC;gBACjB,MAAM,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,EAAE,kBAAkB,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC;YACtI,CAAC;iBAAM,CAAC;gBACN,MAAM,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;YACpE,CAAC;QACH,CAAC;KACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { Sleep } from '../../core/mcp-out/run-party.js';
2
+ /** Waits the given time, or less once the signal aborts. */
3
+ export declare const sleep: Sleep;
@@ -0,0 +1,11 @@
1
+ import { setTimeout as wait } from 'node:timers/promises';
2
+ /** Waits the given time, or less once the signal aborts. */
3
+ export const sleep = async (ms, signal) => {
4
+ try {
5
+ await wait(ms, undefined, { signal });
6
+ }
7
+ catch {
8
+ // Aborted: the wait ends early, as the port says.
9
+ }
10
+ };
11
+ //# sourceMappingURL=sleep.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sleep.js","sourceRoot":"","sources":["../../../src/adapters/timers/sleep.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,IAAI,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAI1D,4DAA4D;AAC5D,MAAM,CAAC,MAAM,KAAK,GAAU,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE;IAC/C,IAAI,CAAC;QACH,MAAM,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;IACxC,CAAC;IAAC,MAAM,CAAC;QACP,kDAAkD;IACpD,CAAC;AACH,CAAC,CAAC"}
@@ -0,0 +1,408 @@
1
+ import type { Connect } from '../../core/connection/connect.js';
2
+ import type { ReadConnection } from '../../core/connection/read-connection.js';
3
+ import type { DeleteFleet } from '../../core/installation/delete-fleet.js';
4
+ import type { InstallationMode } from '../../core/installation/ports.js';
5
+ import type { ReadFleet } from '../../core/installation/read-fleet.js';
6
+ import type { IsServed } from '../../core/installation/served.js';
7
+ import type { SetFleetEnabled } from '../../core/installation/set-fleet-enabled.js';
8
+ import type { AuthenticateActor } from '../../core/actors/authenticate-actor.js';
9
+ import type { ReadOutsideParties, SetOutsideParties } from '../../core/outside-parties/set-outside-parties.js';
10
+ import type { ApproveParty } from '../../core/parties/approve-party.js';
11
+ import type { CrewParty } from '../../core/parties/crew-party.js';
12
+ import type { ListParties } from '../../core/parties/list-parties.js';
13
+ import type { MarkTool } from '../../core/mcp-out/mark-tool.js';
14
+ import type { StateParty } from '../../core/mcp-out/state-party.js';
15
+ import type { RegisterClient } from '../../core/oauth/register-client.js';
16
+ import type { DecideRequest } from '../../core/requests/decide-request.js';
17
+ import type { ListToDecide } from '../../core/requests/list-to-decide.js';
18
+ import type { EndSignIns } from '../../core/sign-in/end-sign-ins.js';
19
+ export interface Context {
20
+ /** The Cookie header the console's server or the gateway's page forwarded. */
21
+ cookie: string | undefined;
22
+ /** The crew token a ship sent as its bearer token, if any. */
23
+ crewToken: string | undefined;
24
+ authenticateActor: AuthenticateActor;
25
+ isServed: IsServed;
26
+ /** The fleet's connection as the gateway holds it, without asking the fleet: what a fleet that is off reads. */
27
+ heldConnection: ReadConnection;
28
+ /** The installation token header the caller sent, if any. */
29
+ installationTokenSent: string | undefined;
30
+ installation: {
31
+ mode: InstallationMode;
32
+ token: string | undefined;
33
+ };
34
+ setFleetEnabled: SetFleetEnabled;
35
+ readFleet: ReadFleet;
36
+ deleteFleet: DeleteFleet;
37
+ endSignIns: EndSignIns;
38
+ readConnection: ReadConnection;
39
+ connect: Connect;
40
+ approveParty: ApproveParty;
41
+ crewParty: CrewParty;
42
+ listParties: ListParties;
43
+ stateParty: StateParty;
44
+ markTool: MarkTool;
45
+ registerClient: RegisterClient;
46
+ listToDecide: ListToDecide;
47
+ decideRequest: DecideRequest;
48
+ readOutsideParties: ReadOutsideParties;
49
+ setOutsideParties: SetOutsideParties;
50
+ }
51
+ /** What a caller reads of a failure: nothing of it, so no crew token, secret or query ever leaves; the log holds it whole. */
52
+ export declare const INTERNAL_ERROR_MESSAGE = "Internal error";
53
+ export declare const gatewayRouter: import("@trpc/server").TRPCBuiltRouter<{
54
+ ctx: Context;
55
+ meta: object;
56
+ errorShape: import("@trpc/server").TRPCDefaultErrorShape;
57
+ transformer: false;
58
+ }, import("@trpc/server").TRPCDecorateCreateRouterOptions<{
59
+ connection: import("@trpc/server").TRPCBuiltRouter<{
60
+ ctx: Context;
61
+ meta: object;
62
+ errorShape: import("@trpc/server").TRPCDefaultErrorShape;
63
+ transformer: false;
64
+ }, import("@trpc/server").TRPCDecorateCreateRouterOptions<{
65
+ /** Whether the gateway is connected to the operator's fleet, as which ship, and the ship it was last connected as. */
66
+ status: import("@trpc/server").TRPCQueryProcedure<{
67
+ input: void;
68
+ output: {
69
+ enabled: boolean;
70
+ state: "not-connected" | "connected";
71
+ ship: {
72
+ shipId: string;
73
+ name: string;
74
+ } | null;
75
+ lastShipId: string | null;
76
+ };
77
+ meta: object;
78
+ }>;
79
+ /**
80
+ * Connects the gateway with its ship's secret, which the console's server
81
+ * hands over server to server: it registers with it and keeps only the
82
+ * crew token. Only while not connected, while the gateway serves the
83
+ * fleet, and in a fleet with a registered networking plugin (interop I-3).
84
+ */
85
+ connect: import("@trpc/server").TRPCMutationProcedure<{
86
+ input: {
87
+ shipId: unknown;
88
+ secret: string;
89
+ };
90
+ output: {
91
+ enabled: boolean;
92
+ state: "not-connected" | "connected";
93
+ ship: {
94
+ shipId: string;
95
+ name: string;
96
+ } | null;
97
+ lastShipId: string | null;
98
+ };
99
+ meta: object;
100
+ }>;
101
+ }>>;
102
+ parties: import("@trpc/server").TRPCBuiltRouter<{
103
+ ctx: Context;
104
+ meta: object;
105
+ errorShape: import("@trpc/server").TRPCDefaultErrorShape;
106
+ transformer: false;
107
+ }, import("@trpc/server").TRPCDecorateCreateRouterOptions<{
108
+ /** The parties argo approved for its fleet, by name. A viewer reads them too. */
109
+ list: import("@trpc/server").TRPCQueryProcedure<{
110
+ input: void;
111
+ output: ({
112
+ kind: "mcpServer";
113
+ url: string;
114
+ credentialKind: "bearer" | "clientCredentials";
115
+ concurrencyLimit: number;
116
+ name: string;
117
+ ownerShipId: string;
118
+ state: "awaitingCrew" | "crewed" | "commissioning";
119
+ proxyShipId: string | null;
120
+ } | {
121
+ kind: "mcpClient";
122
+ clientId: string;
123
+ name: string;
124
+ ownerShipId: string;
125
+ state: "awaitingCrew" | "crewed" | "commissioning";
126
+ proxyShipId: string | null;
127
+ })[];
128
+ meta: object;
129
+ }>;
130
+ /**
131
+ * argo approves an outside MCP server as a party: the gateway commissions
132
+ * its app proxy ship owned by the owner argo picked, crews it, and keeps
133
+ * the credential in its vault (interop I-5). A repeat with the same
134
+ * request id picks up where the last one stopped.
135
+ */
136
+ approve: import("@trpc/server").TRPCMutationProcedure<{
137
+ input: {
138
+ requestId: string;
139
+ name: string;
140
+ url: string;
141
+ credential: {
142
+ kind: "bearer";
143
+ token: string;
144
+ } | {
145
+ kind: "clientCredentials";
146
+ clientId: string;
147
+ clientSecret: string;
148
+ issuer: string;
149
+ scope?: string | undefined;
150
+ };
151
+ ownerShipId: unknown;
152
+ concurrencyLimit?: number | undefined;
153
+ };
154
+ output: {
155
+ kind: "mcpServer";
156
+ url: string;
157
+ credentialKind: "bearer" | "clientCredentials";
158
+ concurrencyLimit: number;
159
+ name: string;
160
+ ownerShipId: string;
161
+ state: "awaitingCrew" | "crewed" | "commissioning";
162
+ proxyShipId: string | null;
163
+ } | {
164
+ kind: "mcpClient";
165
+ clientId: string;
166
+ name: string;
167
+ ownerShipId: string;
168
+ state: "awaitingCrew" | "crewed" | "commissioning";
169
+ proxyShipId: string | null;
170
+ };
171
+ meta: object;
172
+ }>;
173
+ /** argo hands over a new secret, from a new starting prompt in the console, for a proxy ship that awaits crew. */
174
+ crew: import("@trpc/server").TRPCMutationProcedure<{
175
+ input: {
176
+ name: string;
177
+ secret: string;
178
+ };
179
+ output: {
180
+ kind: "mcpServer";
181
+ url: string;
182
+ credentialKind: "bearer" | "clientCredentials";
183
+ concurrencyLimit: number;
184
+ name: string;
185
+ ownerShipId: string;
186
+ state: "awaitingCrew" | "crewed" | "commissioning";
187
+ proxyShipId: string | null;
188
+ } | {
189
+ kind: "mcpClient";
190
+ clientId: string;
191
+ name: string;
192
+ ownerShipId: string;
193
+ state: "awaitingCrew" | "crewed" | "commissioning";
194
+ proxyShipId: string | null;
195
+ };
196
+ meta: object;
197
+ }>;
198
+ /** The gateway states the party's proxy ship anew, from what its server lists now, with argo's marks. */
199
+ state: import("@trpc/server").TRPCMutationProcedure<{
200
+ input: {
201
+ name: string;
202
+ };
203
+ output: {
204
+ capabilities: string[];
205
+ };
206
+ meta: object;
207
+ }>;
208
+ /** argo marks a party's tool repeatable, or takes the mark off (interop 5.2): kept, then stated at once. */
209
+ markTool: import("@trpc/server").TRPCMutationProcedure<{
210
+ input: {
211
+ name: string;
212
+ tool: string;
213
+ isRepeatable: boolean;
214
+ };
215
+ output: {
216
+ capabilities: string[];
217
+ };
218
+ meta: object;
219
+ }>;
220
+ }>>;
221
+ requests: import("@trpc/server").TRPCBuiltRouter<{
222
+ ctx: Context;
223
+ meta: object;
224
+ errorShape: import("@trpc/server").TRPCDefaultErrorShape;
225
+ transformer: false;
226
+ }, import("@trpc/server").TRPCDecorateCreateRouterOptions<{
227
+ /** Every open request of the fleet, for an actor holding gateway:approve (decision 0056). */
228
+ toDecide: import("@trpc/server").TRPCQueryProcedure<{
229
+ input: void;
230
+ output: {
231
+ fleetId: string;
232
+ requestId: string;
233
+ subject: {
234
+ kind: "client";
235
+ clientId: string;
236
+ clientName: string;
237
+ } | {
238
+ kind: "server";
239
+ url: string;
240
+ };
241
+ requesters: {
242
+ accountId: string;
243
+ personShipId: string | null;
244
+ }[];
245
+ askedAt: string;
246
+ expiresAt: string;
247
+ state: "pending" | "approving" | "approved" | "denied" | "expired";
248
+ decidedBy: {
249
+ kind: "ship";
250
+ shipId: string;
251
+ } | {
252
+ kind: "operator" | "viewer";
253
+ } | null;
254
+ decidedAt: string | null;
255
+ }[];
256
+ meta: object;
257
+ }>;
258
+ /** Decides a pending request as the actor: the first decision counts. */
259
+ decide: import("@trpc/server").TRPCMutationProcedure<{
260
+ input: {
261
+ requestId: string;
262
+ decision: {
263
+ kind: "deny";
264
+ } | {
265
+ kind: "approve";
266
+ party: {
267
+ name: string;
268
+ ownerShipId: unknown;
269
+ scopes: string[];
270
+ };
271
+ server?: {
272
+ credential: {
273
+ kind: "bearer";
274
+ token: string;
275
+ } | {
276
+ kind: "clientCredentials";
277
+ clientId: string;
278
+ clientSecret: string;
279
+ issuer: string;
280
+ scope?: string | undefined;
281
+ };
282
+ concurrencyLimit: number;
283
+ } | undefined;
284
+ };
285
+ };
286
+ output: {
287
+ state: "approved" | "denied";
288
+ party: {
289
+ kind: "mcpServer";
290
+ url: string;
291
+ credentialKind: "bearer" | "clientCredentials";
292
+ concurrencyLimit: number;
293
+ name: string;
294
+ ownerShipId: string;
295
+ state: "awaitingCrew" | "crewed" | "commissioning";
296
+ proxyShipId: string | null;
297
+ } | {
298
+ kind: "mcpClient";
299
+ clientId: string;
300
+ name: string;
301
+ ownerShipId: string;
302
+ state: "awaitingCrew" | "crewed" | "commissioning";
303
+ proxyShipId: string | null;
304
+ } | null;
305
+ };
306
+ meta: object;
307
+ }>;
308
+ }>>;
309
+ outsideParties: import("@trpc/server").TRPCBuiltRouter<{
310
+ ctx: Context;
311
+ meta: object;
312
+ errorShape: import("@trpc/server").TRPCDefaultErrorShape;
313
+ transformer: false;
314
+ }, import("@trpc/server").TRPCDecorateCreateRouterOptions<{
315
+ /** Whether the fleet's outside parties are on (interop I-3). */
316
+ status: import("@trpc/server").TRPCQueryProcedure<{
317
+ input: void;
318
+ output: {
319
+ isOn: boolean;
320
+ };
321
+ meta: object;
322
+ }>;
323
+ /** Turns them on or off as an actor holding fleet:network; on in an open network needs its warning confirmed. */
324
+ set: import("@trpc/server").TRPCMutationProcedure<{
325
+ input: {
326
+ isOn: boolean;
327
+ isOpenNetworkConfirmed: boolean;
328
+ };
329
+ output: {
330
+ isOn: boolean;
331
+ };
332
+ meta: object;
333
+ }>;
334
+ }>>;
335
+ oauth: import("@trpc/server").TRPCBuiltRouter<{
336
+ ctx: Context;
337
+ meta: object;
338
+ errorShape: import("@trpc/server").TRPCDefaultErrorShape;
339
+ transformer: false;
340
+ }, import("@trpc/server").TRPCDecorateCreateRouterOptions<{
341
+ /**
342
+ * argo pre-registers an MCP client for its fleet: its name and redirect
343
+ * URIs, and whether it keeps a secret. The secret is answered this once.
344
+ */
345
+ registerClient: import("@trpc/server").TRPCMutationProcedure<{
346
+ input: {
347
+ name: string;
348
+ redirectUris: string[];
349
+ isConfidential: boolean;
350
+ };
351
+ output: {
352
+ clientId: string;
353
+ clientSecret: string | null;
354
+ };
355
+ meta: object;
356
+ }>;
357
+ }>>;
358
+ installation: import("@trpc/server").TRPCBuiltRouter<{
359
+ ctx: Context;
360
+ meta: object;
361
+ errorShape: import("@trpc/server").TRPCDefaultErrorShape;
362
+ transformer: false;
363
+ }, import("@trpc/server").TRPCDecorateCreateRouterOptions<{
364
+ /** Switches the gateway on or off for a fleet; off keeps everything of it. A replayed request id answers its first answer. */
365
+ setEnabled: import("@trpc/server").TRPCMutationProcedure<{
366
+ input: {
367
+ requestId: string;
368
+ fleetId: unknown;
369
+ enabled: boolean;
370
+ };
371
+ output: {
372
+ fleetId: string;
373
+ enabled: boolean;
374
+ };
375
+ meta: object;
376
+ }>;
377
+ /** Whether the gateway serves the fleet, and whether it is connected to it. */
378
+ get: import("@trpc/server").TRPCQueryProcedure<{
379
+ input: {
380
+ fleetId: unknown;
381
+ };
382
+ output: {
383
+ enabled: boolean;
384
+ connected: boolean;
385
+ };
386
+ meta: object;
387
+ }>;
388
+ /** Forgets everything the gateway holds of the fleet, telling the fleet nothing. A replayed request id answers its first answer. */
389
+ delete: import("@trpc/server").TRPCMutationProcedure<{
390
+ input: {
391
+ requestId: string;
392
+ fleetId: unknown;
393
+ };
394
+ output: Record<string, never>;
395
+ meta: object;
396
+ }>;
397
+ /** pagasae disabled the account (decision 0055): every sign-in of it in the fleet ends, and its clients' tokens are revoked. Told again, it ends nothing more. */
398
+ accountDisabled: import("@trpc/server").TRPCMutationProcedure<{
399
+ input: {
400
+ fleetId: unknown;
401
+ accountId: string;
402
+ };
403
+ output: Record<string, never>;
404
+ meta: object;
405
+ }>;
406
+ }>>;
407
+ }>>;
408
+ export type GatewayRouter = typeof gatewayRouter;