@stage-labs/metro 0.1.0-beta.76 → 0.1.0-beta.78

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 (233) hide show
  1. package/dist/cli.js +4 -4
  2. package/dist/runtime-install.js +7 -4
  3. package/dist/runtime.js +6 -2
  4. package/dist/serve.js +2 -3
  5. package/dist/service.js +29 -11
  6. package/package.json +1 -1
  7. package/runtime/node_modules/@metro-labs/core/package.json +43 -0
  8. package/runtime/node_modules/@metro-labs/core/src/endpoints.ts +7 -0
  9. package/runtime/node_modules/@metro-labs/{mcp/src/daemon → core/src}/events.ts +1 -1
  10. package/runtime/node_modules/@metro-labs/{mcp/src/daemon → core/src}/identity.ts +1 -1
  11. package/runtime/node_modules/@metro-labs/{mcp/src/daemon → core/src}/protocol.ts +1 -1
  12. package/runtime/node_modules/@metro-labs/{mcp → core}/src/stations/account-store.ts +2 -2
  13. package/runtime/node_modules/@metro-labs/{mcp → core}/src/stations/station-runtime.ts +1 -1
  14. package/runtime/node_modules/@metro-labs/daemon/package.json +47 -0
  15. package/runtime/node_modules/@metro-labs/{mcp/src/db → daemon/src/agents}/account-attach.ts +1 -1
  16. package/runtime/node_modules/@metro-labs/{mcp/src/daemon/account-api.ts → daemon/src/agents/accounts-api.ts} +6 -6
  17. package/runtime/node_modules/@metro-labs/{mcp/src/db/agent-admin.ts → daemon/src/agents/admin.ts} +2 -2
  18. package/runtime/node_modules/@metro-labs/{mcp/src/daemon/agent-api.ts → daemon/src/agents/api.ts} +6 -6
  19. package/runtime/node_modules/@metro-labs/{mcp/src/daemon/bundle-api.ts → daemon/src/agents/bundle.ts} +7 -7
  20. package/runtime/node_modules/@metro-labs/{mcp/src/db → daemon/src/agents}/file-admin.ts +9 -9
  21. package/runtime/node_modules/@metro-labs/{mcp/src/db/file-source.ts → daemon/src/agents/files.ts} +4 -4
  22. package/runtime/node_modules/@metro-labs/{mcp/src/db/key-map.ts → daemon/src/agents/keys.ts} +1 -1
  23. package/runtime/node_modules/@metro-labs/{mcp/src/db/agent-scope.ts → daemon/src/agents/scope.ts} +2 -2
  24. package/runtime/node_modules/@metro-labs/{mcp/src/daemon → daemon/src/boot}/boot.ts +23 -51
  25. package/runtime/node_modules/@metro-labs/{mcp/src/daemon → daemon/src/boot}/crash-guard.ts +1 -1
  26. package/runtime/node_modules/@metro-labs/{mcp/src/daemon → daemon/src/boot}/local-owner.ts +2 -2
  27. package/runtime/node_modules/@metro-labs/{mcp/src/daemon → daemon/src/boot}/paths.ts +1 -4
  28. package/runtime/node_modules/@metro-labs/{mcp → daemon}/src/channels/addressed.ts +1 -1
  29. package/runtime/node_modules/@metro-labs/{mcp → daemon}/src/channels/dedupe.ts +1 -1
  30. package/runtime/node_modules/@metro-labs/{mcp → daemon}/src/channels/inbound.ts +1 -1
  31. package/runtime/node_modules/@metro-labs/{mcp → daemon}/src/channels/pending.ts +1 -1
  32. package/runtime/node_modules/@metro-labs/{mcp → daemon}/src/channels/relay.ts +1 -1
  33. package/runtime/node_modules/@metro-labs/{mcp/src/daemon/claude-api.ts → daemon/src/claude/api.ts} +7 -7
  34. package/runtime/node_modules/@metro-labs/{mcp/src/daemon/claude-files.ts → daemon/src/claude/files.ts} +2 -2
  35. package/runtime/node_modules/@metro-labs/{mcp/src/daemon/claude-login.ts → daemon/src/claude/login.ts} +3 -3
  36. package/runtime/node_modules/@metro-labs/{mcp/src/daemon/claude-settings.ts → daemon/src/claude/settings.ts} +4 -4
  37. package/runtime/node_modules/@metro-labs/{mcp/src/daemon/connector-api.ts → daemon/src/connectors/api.ts} +6 -6
  38. package/runtime/node_modules/@metro-labs/{mcp/src/daemon/local-cli-api.ts → daemon/src/connectors/cli-api.ts} +5 -5
  39. package/runtime/node_modules/@metro-labs/{mcp/src/db/connector-config.ts → daemon/src/connectors/config.ts} +4 -4
  40. package/runtime/node_modules/@metro-labs/{mcp/src/db/connectors.ts → daemon/src/connectors/model.ts} +3 -3
  41. package/runtime/node_modules/@metro-labs/{mcp/src/daemon → daemon/src/connectors}/oauth-client.ts +2 -2
  42. package/runtime/node_modules/@metro-labs/{mcp/src/daemon → daemon/src/connectors}/oauth-discovery.ts +2 -2
  43. package/runtime/node_modules/@metro-labs/{mcp/src/daemon/connector-oauth-routes.ts → daemon/src/connectors/oauth-routes.ts} +6 -6
  44. package/runtime/node_modules/@metro-labs/{mcp/src/daemon/connector-oauth.ts → daemon/src/connectors/oauth.ts} +3 -3
  45. package/runtime/node_modules/@metro-labs/{mcp/src/db/connector-relay.ts → daemon/src/connectors/relay-target.ts} +1 -1
  46. package/runtime/node_modules/@metro-labs/{mcp/src/daemon → daemon/src/connectors}/relay.ts +4 -4
  47. package/runtime/node_modules/@metro-labs/{mcp/src/db/local-connectors.ts → daemon/src/connectors/store.ts} +12 -12
  48. package/runtime/node_modules/@metro-labs/{mcp/src/daemon/connector-tools.ts → daemon/src/connectors/tools.ts} +1 -1
  49. package/runtime/node_modules/@metro-labs/{mcp/src/daemon/connector-url.ts → daemon/src/connectors/url.ts} +1 -1
  50. package/runtime/node_modules/@metro-labs/{mcp/src/daemon/connector-verify.ts → daemon/src/connectors/verify.ts} +5 -5
  51. package/runtime/node_modules/@metro-labs/{mcp/src/daemon → daemon/src/files}/attach-grant.ts +3 -3
  52. package/runtime/node_modules/@metro-labs/{mcp/src/daemon → daemon/src/files}/attach-owner.ts +3 -3
  53. package/runtime/node_modules/@metro-labs/{mcp/src/daemon → daemon/src/files}/attach-serve.ts +5 -12
  54. package/runtime/node_modules/@metro-labs/{mcp/src/daemon → daemon/src/files}/upload-api.ts +5 -5
  55. package/runtime/node_modules/@metro-labs/{mcp/src/daemon → daemon/src/files}/upload-store.ts +2 -2
  56. package/runtime/node_modules/@metro-labs/{mcp → daemon}/src/gateway/bedrock.ts +1 -1
  57. package/runtime/node_modules/@metro-labs/{mcp → daemon}/src/gateway/codex-auth.ts +1 -1
  58. package/runtime/node_modules/@metro-labs/{mcp → daemon}/src/gateway/codex-device.ts +2 -2
  59. package/runtime/node_modules/@metro-labs/{mcp → daemon}/src/gateway/codex-stream.ts +1 -1
  60. package/runtime/node_modules/@metro-labs/{mcp → daemon}/src/gateway/codex-translate.ts +1 -1
  61. package/runtime/node_modules/@metro-labs/{mcp → daemon}/src/gateway/codex.ts +2 -2
  62. package/runtime/node_modules/@metro-labs/{mcp → daemon}/src/gateway/gateway.ts +2 -2
  63. package/runtime/node_modules/@metro-labs/{mcp/src/daemon → daemon/src/gateway}/model-api.ts +12 -12
  64. package/runtime/node_modules/@metro-labs/{mcp → daemon}/src/gateway/model-config.ts +3 -3
  65. package/runtime/node_modules/@metro-labs/{mcp → daemon}/src/gateway/openrouter.ts +1 -1
  66. package/runtime/node_modules/@metro-labs/{mcp → daemon}/src/mcp/accounts.ts +3 -7
  67. package/runtime/node_modules/@metro-labs/{mcp → daemon}/src/mcp/call-tools.ts +3 -3
  68. package/runtime/node_modules/@metro-labs/{mcp → daemon}/src/mcp/channel-owner.ts +1 -1
  69. package/runtime/node_modules/@metro-labs/{mcp → daemon}/src/mcp/ctx.ts +4 -4
  70. package/runtime/node_modules/@metro-labs/{mcp → daemon}/src/mcp/frame-scope.ts +2 -2
  71. package/runtime/node_modules/@metro-labs/{mcp → daemon}/src/mcp/group-tools.ts +2 -2
  72. package/runtime/node_modules/@metro-labs/{mcp → daemon}/src/mcp/index.ts +1 -1
  73. package/runtime/node_modules/@metro-labs/{mcp → daemon}/src/mcp/member-tools.ts +2 -2
  74. package/runtime/node_modules/@metro-labs/{mcp → daemon}/src/mcp/request-identity.ts +1 -1
  75. package/runtime/node_modules/@metro-labs/{mcp → daemon}/src/mcp/session-registry.ts +2 -2
  76. package/runtime/node_modules/@metro-labs/{mcp → daemon}/src/mcp/session.ts +2 -2
  77. package/runtime/node_modules/@metro-labs/{mcp → daemon}/src/mcp/tool-dispatch.ts +4 -4
  78. package/runtime/node_modules/@metro-labs/{mcp → daemon}/src/mcp/upload-tool.ts +5 -5
  79. package/runtime/node_modules/@metro-labs/{mcp → daemon}/src/monitor/api.ts +5 -5
  80. package/runtime/node_modules/@metro-labs/{mcp/src/daemon → daemon/src/net}/tunnel.ts +6 -10
  81. package/runtime/node_modules/@metro-labs/{mcp/src/daemon → daemon/src/routes}/http.ts +15 -15
  82. package/runtime/node_modules/@metro-labs/{mcp/src/daemon/identity-routes.ts → daemon/src/routes/identity.ts} +5 -5
  83. package/runtime/node_modules/@metro-labs/{mcp/src/daemon → daemon/src/routes}/local-mode.ts +16 -16
  84. package/runtime/node_modules/@metro-labs/{mcp/src/daemon → daemon/src/routes}/session-apis.ts +14 -20
  85. package/runtime/node_modules/@metro-labs/{mcp/src/daemon/session-api.ts → daemon/src/routes/session.ts} +1 -1
  86. package/runtime/node_modules/@metro-labs/{mcp/src/daemon/control-api.ts → daemon/src/server/control.ts} +3 -3
  87. package/runtime/node_modules/@metro-labs/{mcp/src/daemon/machine-api.ts → daemon/src/server/machine.ts} +8 -8
  88. package/runtime/node_modules/@metro-labs/{mcp/src/daemon/update-api.ts → daemon/src/server/update.ts} +5 -5
  89. package/runtime/node_modules/@metro-labs/daemon/src/server.ts +2 -0
  90. package/runtime/node_modules/@metro-labs/{mcp → daemon}/src/stations/attach-resolve.ts +5 -3
  91. package/runtime/node_modules/@metro-labs/{mcp/src/daemon → daemon/src/stations}/attach-session.ts +4 -4
  92. package/runtime/node_modules/@metro-labs/{mcp → daemon}/src/stations/attach-xmtp.ts +1 -1
  93. package/runtime/node_modules/@metro-labs/{mcp → daemon}/src/stations/attach.ts +3 -3
  94. package/runtime/node_modules/@metro-labs/{mcp/src/db → daemon/src/stations}/materialize.ts +9 -14
  95. package/runtime/node_modules/@metro-labs/{mcp → daemon}/src/stations/registry.ts +2 -2
  96. package/runtime/node_modules/@metro-labs/{mcp/src/daemon → daemon/src/stations}/runtime-deps.ts +4 -4
  97. package/runtime/node_modules/@metro-labs/{mcp/src/daemon → daemon/src/stations}/supervisor-io.ts +2 -2
  98. package/runtime/node_modules/@metro-labs/{mcp/src/daemon → daemon/src/stations}/supervisor.ts +4 -4
  99. package/runtime/node_modules/@metro-labs/{mcp/src/daemon → daemon/src/stations}/train-call.ts +1 -1
  100. package/runtime/node_modules/@metro-labs/{mcp/src/daemon/terminal-api.ts → daemon/src/terminal/api.ts} +4 -4
  101. package/runtime/node_modules/@metro-labs/{mcp/src/daemon/terminal-ws.ts → daemon/src/terminal/socket.ts} +3 -3
  102. package/runtime/node_modules/@metro-labs/discord-bot/package.json +1 -1
  103. package/runtime/node_modules/@metro-labs/discord-bot/src/accounts.ts +2 -2
  104. package/runtime/node_modules/@metro-labs/discord-bot/src/actions.ts +3 -3
  105. package/runtime/node_modules/@metro-labs/discord-bot/src/attachments.ts +2 -2
  106. package/runtime/node_modules/@metro-labs/discord-bot/src/group.ts +2 -2
  107. package/runtime/node_modules/@metro-labs/discord-bot/src/index.ts +2 -2
  108. package/runtime/node_modules/@metro-labs/discord-bot/src/members.ts +2 -2
  109. package/runtime/node_modules/@metro-labs/discord-bot/src/send-files.ts +1 -1
  110. package/runtime/node_modules/@metro-labs/discord-bot/src/station.ts +1 -1
  111. package/runtime/node_modules/@metro-labs/discord-bot/src/voice-speak.ts +1 -1
  112. package/runtime/node_modules/@metro-labs/discord-bot/src/voice-transcribe.ts +1 -1
  113. package/runtime/node_modules/@metro-labs/discord-bot/src/voice.ts +1 -1
  114. package/runtime/node_modules/@metro-labs/discord-bot/src/wire.ts +1 -1
  115. package/runtime/node_modules/@metro-labs/http/package.json +33 -0
  116. package/runtime/node_modules/@metro-labs/{mcp/src/daemon → http/src}/api-http.ts +1 -1
  117. package/runtime/node_modules/@metro-labs/{mcp/src/daemon → http/src}/signed-identity.ts +1 -1
  118. package/runtime/node_modules/@metro-labs/telegram/package.json +1 -1
  119. package/runtime/node_modules/@metro-labs/telegram/src/accounts.ts +1 -1
  120. package/runtime/node_modules/@metro-labs/telegram/src/actions.ts +3 -3
  121. package/runtime/node_modules/@metro-labs/telegram/src/attachments.ts +1 -1
  122. package/runtime/node_modules/@metro-labs/telegram/src/client.ts +2 -2
  123. package/runtime/node_modules/@metro-labs/telegram/src/format.ts +1 -1
  124. package/runtime/node_modules/@metro-labs/telegram/src/group.ts +3 -3
  125. package/runtime/node_modules/@metro-labs/telegram/src/inbound.ts +1 -1
  126. package/runtime/node_modules/@metro-labs/telegram/src/index.ts +3 -3
  127. package/runtime/node_modules/@metro-labs/telegram/src/media-actions.ts +1 -1
  128. package/runtime/node_modules/@metro-labs/telegram/src/members.ts +1 -1
  129. package/runtime/node_modules/@metro-labs/telegram/src/normalize.ts +1 -1
  130. package/runtime/node_modules/@metro-labs/telegram/src/reactions.ts +1 -1
  131. package/runtime/node_modules/@metro-labs/telegram/src/station.ts +1 -1
  132. package/runtime/node_modules/@metro-labs/telegram/src/wire.ts +1 -1
  133. package/runtime/node_modules/@metro-labs/telegram-bot/package.json +1 -1
  134. package/runtime/node_modules/@metro-labs/telegram-bot/src/accounts.ts +2 -2
  135. package/runtime/node_modules/@metro-labs/telegram-bot/src/actions.ts +4 -4
  136. package/runtime/node_modules/@metro-labs/telegram-bot/src/attachments.ts +2 -2
  137. package/runtime/node_modules/@metro-labs/telegram-bot/src/format.ts +1 -1
  138. package/runtime/node_modules/@metro-labs/telegram-bot/src/index.ts +2 -2
  139. package/runtime/node_modules/@metro-labs/telegram-bot/src/media-actions.ts +1 -1
  140. package/runtime/node_modules/@metro-labs/telegram-bot/src/members.ts +1 -1
  141. package/runtime/node_modules/@metro-labs/telegram-bot/src/station.ts +1 -1
  142. package/runtime/node_modules/@metro-labs/telegram-bot/src/wire.ts +1 -1
  143. package/runtime/node_modules/@metro-labs/webhook/package.json +1 -1
  144. package/runtime/node_modules/@metro-labs/webhook/src/station.ts +4 -4
  145. package/runtime/node_modules/@metro-labs/whatsapp/package.json +1 -1
  146. package/runtime/node_modules/@metro-labs/whatsapp/src/accounts.ts +1 -1
  147. package/runtime/node_modules/@metro-labs/whatsapp/src/ack.ts +1 -1
  148. package/runtime/node_modules/@metro-labs/whatsapp/src/actions.ts +4 -4
  149. package/runtime/node_modules/@metro-labs/whatsapp/src/attachments.ts +2 -2
  150. package/runtime/node_modules/@metro-labs/whatsapp/src/auth-state.ts +1 -1
  151. package/runtime/node_modules/@metro-labs/whatsapp/src/client.ts +2 -2
  152. package/runtime/node_modules/@metro-labs/whatsapp/src/format.ts +1 -1
  153. package/runtime/node_modules/@metro-labs/whatsapp/src/inbound.ts +1 -1
  154. package/runtime/node_modules/@metro-labs/whatsapp/src/index.ts +3 -3
  155. package/runtime/node_modules/@metro-labs/whatsapp/src/keys.ts +1 -1
  156. package/runtime/node_modules/@metro-labs/whatsapp/src/login.ts +1 -1
  157. package/runtime/node_modules/@metro-labs/whatsapp/src/media.ts +1 -1
  158. package/runtime/node_modules/@metro-labs/whatsapp/src/normalize.ts +1 -1
  159. package/runtime/node_modules/@metro-labs/whatsapp/src/station.ts +1 -1
  160. package/runtime/node_modules/@metro-labs/whatsapp/src/token-store.ts +2 -2
  161. package/runtime/node_modules/@metro-labs/whatsapp/src/wire.ts +1 -1
  162. package/runtime/node_modules/@metro-labs/xmtp/package.json +1 -1
  163. package/runtime/node_modules/@metro-labs/xmtp/src/accounts.ts +2 -2
  164. package/runtime/node_modules/@metro-labs/xmtp/src/actions-close.ts +1 -1
  165. package/runtime/node_modules/@metro-labs/xmtp/src/actions-conv.ts +1 -1
  166. package/runtime/node_modules/@metro-labs/xmtp/src/actions-meta.ts +1 -1
  167. package/runtime/node_modules/@metro-labs/xmtp/src/actions.ts +3 -3
  168. package/runtime/node_modules/@metro-labs/xmtp/src/attachments.ts +3 -3
  169. package/runtime/node_modules/@metro-labs/xmtp/src/conv-helpers.ts +2 -2
  170. package/runtime/node_modules/@metro-labs/xmtp/src/emit-payloads.ts +1 -1
  171. package/runtime/node_modules/@metro-labs/xmtp/src/emit.ts +1 -1
  172. package/runtime/node_modules/@metro-labs/xmtp/src/group-members.ts +1 -1
  173. package/runtime/node_modules/@metro-labs/xmtp/src/group.ts +2 -2
  174. package/runtime/node_modules/@metro-labs/xmtp/src/index.ts +2 -2
  175. package/runtime/node_modules/@metro-labs/xmtp/src/member-args.ts +1 -1
  176. package/runtime/node_modules/@metro-labs/xmtp/src/push.ts +2 -2
  177. package/runtime/node_modules/@metro-labs/xmtp/src/station.ts +1 -1
  178. package/runtime/node_modules/@metro-labs/xmtp/src/tools-handlers.ts +3 -3
  179. package/runtime/node_modules/@metro-labs/xmtp/src/tools.ts +1 -1
  180. package/runtime/node_modules/@metro-labs/xmtp/src/transcribe.ts +1 -1
  181. package/runtime/node_modules/@metro-labs/xmtp/src/wire.ts +1 -1
  182. package/runtime/runtime.json +1 -1
  183. package/runtime/server.ts +1 -0
  184. package/dist/bedrock-eventstream.js +0 -120
  185. package/dist/bedrock-proxy.js +0 -260
  186. package/dist/bedrock-upstream.js +0 -72
  187. package/dist/bedrock.js +0 -37
  188. package/runtime/node_modules/@metro-labs/mcp/package.json +0 -64
  189. package/runtime/node_modules/@metro-labs/mcp/src/daemon/server-types.ts +0 -21
  190. package/runtime/node_modules/@metro-labs/mcp/src/daemon/servers-api.ts +0 -80
  191. package/runtime/node_modules/@metro-labs/mcp/src/daemon/vault-api.ts +0 -78
  192. package/runtime/node_modules/@metro-labs/mcp/src/daemon/vault-types.ts +0 -12
  193. package/runtime/node_modules/@metro-labs/mcp/src/db/client.ts +0 -32
  194. package/runtime/node_modules/@metro-labs/mcp/src/db/schema.ts +0 -33
  195. package/runtime/node_modules/@metro-labs/mcp/src/db/servers.ts +0 -83
  196. package/runtime/node_modules/@metro-labs/mcp/src/db/vault.ts +0 -109
  197. package/runtime/node_modules/@metro-labs/mcp/src/server.ts +0 -2
  198. /package/runtime/node_modules/@metro-labs/{mcp/src/db → core/src}/address.ts +0 -0
  199. /package/runtime/node_modules/@metro-labs/{mcp/src/db → core/src}/ids.ts +0 -0
  200. /package/runtime/node_modules/@metro-labs/{mcp/src/daemon → core/src}/is-record.ts +0 -0
  201. /package/runtime/node_modules/@metro-labs/{mcp/src/stations → core/src}/lines.ts +0 -0
  202. /package/runtime/node_modules/@metro-labs/{mcp/src/daemon → core/src}/log.ts +0 -0
  203. /package/runtime/node_modules/@metro-labs/{mcp/src/daemon → core/src}/secure-fs.ts +0 -0
  204. /package/runtime/node_modules/@metro-labs/{mcp/src/db/stations.ts → core/src/station-names.ts} +0 -0
  205. /package/runtime/node_modules/@metro-labs/{mcp → core}/src/stations/attachments.ts +0 -0
  206. /package/runtime/node_modules/@metro-labs/{mcp → core}/src/stations/messaging-normalize.ts +0 -0
  207. /package/runtime/node_modules/@metro-labs/{mcp → core}/src/stations/types.ts +0 -0
  208. /package/runtime/node_modules/@metro-labs/{mcp/src/mcp → core/src}/str.ts +0 -0
  209. /package/runtime/node_modules/@metro-labs/{mcp/src/daemon → core/src}/train-error.ts +0 -0
  210. /package/runtime/node_modules/@metro-labs/{mcp/src/daemon → core/src}/version.ts +0 -0
  211. /package/runtime/node_modules/@metro-labs/{mcp/src/db/agent-map.ts → daemon/src/agents/map.ts} +0 -0
  212. /package/runtime/node_modules/@metro-labs/{mcp/src/daemon → daemon/src/boot}/connect-hint.ts +0 -0
  213. /package/runtime/node_modules/@metro-labs/{mcp → daemon}/src/channels/media-note.ts +0 -0
  214. /package/runtime/node_modules/@metro-labs/{mcp → daemon}/src/channels/webhook-note.ts +0 -0
  215. /package/runtime/node_modules/@metro-labs/{mcp/src/daemon/connector-json.ts → daemon/src/connectors/json.ts} +0 -0
  216. /package/runtime/node_modules/@metro-labs/{mcp/src/daemon → daemon/src/connectors}/oauth-pending.ts +0 -0
  217. /package/runtime/node_modules/@metro-labs/{mcp → daemon}/src/gateway/eventstream.ts +0 -0
  218. /package/runtime/node_modules/@metro-labs/{mcp → daemon}/src/gateway/forward.ts +0 -0
  219. /package/runtime/node_modules/@metro-labs/{mcp → daemon}/src/gateway/served.ts +0 -0
  220. /package/runtime/node_modules/@metro-labs/{mcp → daemon}/src/mcp/event-store.ts +0 -0
  221. /package/runtime/node_modules/@metro-labs/{mcp → daemon}/src/mcp/permission-relay.ts +0 -0
  222. /package/runtime/node_modules/@metro-labs/{mcp → daemon}/src/mcp/raw-get-stream.ts +0 -0
  223. /package/runtime/node_modules/@metro-labs/{mcp → daemon}/src/mcp/session-route.ts +0 -0
  224. /package/runtime/node_modules/@metro-labs/{mcp → daemon}/src/mcp/tool-schemas.ts +0 -0
  225. /package/runtime/node_modules/@metro-labs/{mcp → daemon}/src/stations/attach-inline.ts +0 -0
  226. /package/runtime/node_modules/@metro-labs/{mcp → daemon}/src/stations/attach-interactive.ts +0 -0
  227. /package/runtime/node_modules/@metro-labs/{mcp/src/daemon/terminal-tickets.ts → daemon/src/terminal/tickets.ts} +0 -0
  228. /package/runtime/node_modules/@metro-labs/{mcp/src/daemon → http/src}/api-error.ts +0 -0
  229. /package/runtime/node_modules/@metro-labs/{mcp/src/daemon → http/src}/cors.ts +0 -0
  230. /package/runtime/node_modules/@metro-labs/{mcp/src/daemon → http/src}/identity-key.ts +0 -0
  231. /package/runtime/node_modules/@metro-labs/{mcp/src/daemon → http/src}/identity-registry.ts +0 -0
  232. /package/runtime/node_modules/@metro-labs/{mcp/src/daemon → http/src}/mode-api.ts +0 -0
  233. /package/runtime/node_modules/@metro-labs/{mcp/src/daemon → http/src}/return-to.ts +0 -0
@@ -1,7 +1,7 @@
1
1
  import { join } from 'node:path';
2
- import { readJson, writeSecure } from '../daemon/secure-fs.js';
3
- import { agentsDir } from '../db/file-source.js';
4
- import { isRecord } from '../daemon/is-record.js';
2
+ import { readJson, writeSecure } from '@metro-labs/core/secure-fs';
3
+ import { agentsDir } from '../agents/files.js';
4
+ import { isRecord } from '@metro-labs/core/is-record';
5
5
  import type { CodexTokens } from './codex-auth.js';
6
6
 
7
7
  export const PROVIDERS = ['anthropic', 'bedrock', 'openrouter', 'codex'] as const;
@@ -1,4 +1,4 @@
1
- import { isRecord } from '../daemon/is-record.js';
1
+ import { isRecord } from '@metro-labs/core/is-record';
2
2
  import { GatewayError } from './forward.js';
3
3
 
4
4
  export const OPENROUTER_BASE = 'https://openrouter.ai/api';
@@ -1,13 +1,11 @@
1
- import { forwardTrainCall } from '../daemon/train-call.js';
1
+ import { forwardTrainCall } from '../stations/train-call.js';
2
2
  import {
3
3
  accountStationNames,
4
4
  stationByName,
5
5
  } from '../stations/registry.js';
6
- import { listEndpoints } from '../daemon/tunnel.js';
6
+ import { listEndpoints } from '../net/tunnel.js';
7
7
  import { hookUrl } from '../stations/attach.js';
8
- import { agentIdForAccount, knownAccounts, type KnownAccount } from '../db/agent-map.js';
9
- import { stationRunsHere } from '../db/materialize.js';
10
- import { type StationName } from '../db/stations.js';
8
+ import { agentIdForAccount, knownAccounts, type KnownAccount } from '../agents/map.js';
11
9
 
12
10
  const accountId = (acc: unknown): string | undefined => {
13
11
  const id = (acc as { id?: unknown }).id;
@@ -81,8 +79,6 @@ async function liveAccounts(
81
79
  ): Promise<{ rows: unknown[]; reachable: boolean }> {
82
80
  if (!hasTrain(station))
83
81
  return { rows: inCoreAccounts(station), reachable: true };
84
- if (!stationRunsHere(station as StationName))
85
- return { rows: [], reachable: true };
86
82
  try {
87
83
  const resp = await forwardTrainCall(station, 'accounts', {});
88
84
  const list = (resp.result as { accounts?: unknown[] } | undefined)?.accounts;
@@ -1,14 +1,14 @@
1
1
  import { stationForLine } from '../stations/registry.js';
2
- import { kindOf, toCanonical } from '../stations/attachments.js';
2
+ import { kindOf, toCanonical } from '@metro-labs/core/stations/attachments';
3
3
  import {
4
4
  cleanupAttachments,
5
5
  resolveAttachments,
6
6
  type ResolvedAttachment,
7
7
  } from '../stations/attach-resolve.js';
8
- import type { CanonicalAttachment, ToolResult } from '../stations/types.js';
8
+ import type { CanonicalAttachment, ToolResult } from '@metro-labs/core/stations/types';
9
9
  import { errResult, makeCtx, ok, okJson, toErr } from './ctx.js';
10
10
  import { allowedAgents, currentIdentity } from './request-identity.js';
11
- import { str } from './str.js';
11
+ import { str } from '@metro-labs/core/str';
12
12
 
13
13
  type Station = NonNullable<ReturnType<typeof stationForLine>>;
14
14
 
@@ -1,4 +1,4 @@
1
- import { eventInScope } from '../db/agent-scope.js';
1
+ import { eventInScope } from '../agents/scope.js';
2
2
  import { allowedAgents, type RequestIdentity } from './request-identity.js';
3
3
  import { sessionScopeKey } from './session-route.js';
4
4
 
@@ -1,8 +1,8 @@
1
1
  import { readFile } from 'node:fs/promises';
2
- import { forwardTrainCall } from '../daemon/train-call.js';
3
- import { errMsg, log } from '../daemon/log.js';
4
- import { TrainError } from '../daemon/train-error.js';
5
- import { type ToolContext, type ToolResult } from '../stations/types.js';
2
+ import { forwardTrainCall } from '../stations/train-call.js';
3
+ import { errMsg, log } from '@metro-labs/core/log';
4
+ import { TrainError } from '@metro-labs/core/train-error';
5
+ import { type ToolContext, type ToolResult } from '@metro-labs/core/stations/types';
6
6
 
7
7
  export async function metroCall(
8
8
  train: string,
@@ -1,6 +1,6 @@
1
1
  import type { JSONRPCMessage } from '@modelcontextprotocol/sdk/types.js';
2
- import { eventInScope } from '../db/agent-scope.js';
3
- import { str } from './str.js';
2
+ import { eventInScope } from '../agents/scope.js';
3
+ import { str } from '@metro-labs/core/str';
4
4
 
5
5
  export interface FrameOrigin {
6
6
  line: string | undefined;
@@ -5,9 +5,9 @@ import type {
5
5
  MemberOutcome,
6
6
  Station,
7
7
  ToolResult,
8
- } from '../stations/types.js';
8
+ } from '@metro-labs/core/stations/types';
9
9
  import { makeCtx, okJson, toErr } from './ctx.js';
10
- import { str } from './str.js';
10
+ import { str } from '@metro-labs/core/str';
11
11
 
12
12
  export interface GroupOpResult {
13
13
  op: GroupOp;
@@ -2,7 +2,7 @@ import type { IncomingMessage, ServerResponse } from 'node:http';
2
2
  import {
3
3
  BodyTooLargeError,
4
4
  readBody as readBodyBuffer,
5
- } from '../daemon/http.js';
5
+ } from '../routes/http.js';
6
6
  import {
7
7
  allowedAgents,
8
8
  authenticate,
@@ -4,9 +4,9 @@ import type {
4
4
  MemberList,
5
5
  MetroMember,
6
6
  ToolResult,
7
- } from '../stations/types.js';
7
+ } from '@metro-labs/core/stations/types';
8
8
  import { makeCtx, okJson, toErr } from './ctx.js';
9
- import { str } from './str.js';
9
+ import { str } from '@metro-labs/core/str';
10
10
 
11
11
  export interface MemberListResult {
12
12
  line: string;
@@ -1,6 +1,6 @@
1
1
  import { AsyncLocalStorage } from 'node:async_hooks';
2
2
  import type { IncomingMessage } from 'node:http';
3
- import { agentIdForKey } from '../db/key-map.js';
3
+ import { agentIdForKey } from '../agents/keys.js';
4
4
 
5
5
  export type RequestIdentity =
6
6
  | { kind: 'agent'; agentId: string }
@@ -1,6 +1,6 @@
1
1
  import { randomUUID } from 'node:crypto';
2
- import { currentBusSeq } from '../daemon/events.js';
3
- import { errMsg } from '../daemon/log.js';
2
+ import { currentBusSeq } from '@metro-labs/core/events';
3
+ import { errMsg } from '@metro-labs/core/log';
4
4
  import { newReplayLedger, type ReplayLedger } from '../channels/relay.js';
5
5
  import { McpSession, channelLog } from './session.js';
6
6
  import { agentsInScopeKey } from './session-route.js';
@@ -2,11 +2,11 @@ import { Server } from '@modelcontextprotocol/sdk/server/index.js';
2
2
  import { StreamableHTTPServerTransport } from '@modelcontextprotocol/sdk/server/streamableHttp.js';
3
3
  import { InboundRelay } from '../channels/inbound.js';
4
4
  import { ChannelRelay, type ReplayLedger } from '../channels/relay.js';
5
- import { errMsg } from '../daemon/log.js';
5
+ import { errMsg } from '@metro-labs/core/log';
6
6
  import {
7
7
  allowlistForLine,
8
8
  senderMatchesAllowlist,
9
- } from '../db/agent-map.js';
9
+ } from '../agents/map.js';
10
10
  import { accountStationNames } from '../stations/registry.js';
11
11
  import { MCP_INSTRUCTIONS } from './tool-schemas.js';
12
12
  import { ChannelOwner } from './channel-owner.js';
@@ -9,7 +9,7 @@ import {
9
9
  STATIONS,
10
10
  accountStationCapabilities,
11
11
  } from '../stations/registry.js';
12
- import type { Station, StationTool, ToolResult } from '../stations/types.js';
12
+ import type { Station, StationTool, ToolResult } from '@metro-labs/core/stations/types';
13
13
  import { COMMON_TOOLS, LIST_ACCOUNTS_TOOL } from './tool-schemas.js';
14
14
  import { errResult, makeCtx, okJson, toErr } from './ctx.js';
15
15
  import { dispatchMessageTool, type ToolHooks } from './call-tools.js';
@@ -21,16 +21,16 @@ import {
21
21
  dispatchRemoveMembers,
22
22
  } from './group-tools.js';
23
23
  import { dispatchCreateUpload } from './upload-tool.js';
24
- import { callTargetDenied, lineTargetDenied } from '../db/agent-scope.js';
24
+ import { callTargetDenied, lineTargetDenied } from '../agents/scope.js';
25
25
  import { SOURCE_KEYS } from '../stations/attach-resolve.js';
26
26
  import { decodedLengthOf } from '../stations/attach-inline.js';
27
- import { log } from '../daemon/log.js';
27
+ import { log } from '@metro-labs/core/log';
28
28
  import {
29
29
  allowedAgents,
30
30
  currentIdentity,
31
31
  type RequestIdentity,
32
32
  } from './request-identity.js';
33
- import { str } from './str.js';
33
+ import { str } from '@metro-labs/core/str';
34
34
 
35
35
  const STATION_TOOLS = new Map<
36
36
  string,
@@ -1,17 +1,17 @@
1
- import { publicBaseOrDefault } from '../daemon/attach-serve.js';
1
+ import { publicBaseOrDefault } from '../files/attach-serve.js';
2
2
  import { safeFileName } from '../stations/attach-inline.js';
3
- import { guessMime } from '../stations/attachments.js';
3
+ import { guessMime } from '@metro-labs/core/stations/attachments';
4
4
  import {
5
5
  createUploadSlot,
6
6
  issueUploadTicket,
7
7
  MAX_UPLOAD_BYTES,
8
8
  removeUpload,
9
9
  UPLOAD_TTL_MS,
10
- } from '../daemon/upload-store.js';
11
- import type { ToolResult } from '../stations/types.js';
10
+ } from '../files/upload-store.js';
11
+ import type { ToolResult } from '@metro-labs/core/stations/types';
12
12
  import { errResult, okJson } from './ctx.js';
13
13
  import { allowedAgents, currentIdentity } from './request-identity.js';
14
- import { str } from './str.js';
14
+ import { str } from '@metro-labs/core/str';
15
15
 
16
16
  const ttlMinutes = (): number => Math.round(UPLOAD_TTL_MS / 60_000);
17
17
 
@@ -1,14 +1,14 @@
1
1
  import type { IncomingMessage, ServerResponse } from 'node:http';
2
2
  import { stationByName } from '../stations/registry.js';
3
- import { errMsg, log } from '../daemon/log.js';
4
- import { subscribeEvents, type MetroEvent } from '../daemon/events.js';
5
- import { callTargetDenied, eventInScope } from '../db/agent-scope.js';
6
- import { hasAnyKey } from '../db/key-map.js';
3
+ import { errMsg, log } from '@metro-labs/core/log';
4
+ import { subscribeEvents, type MetroEvent } from '@metro-labs/core/events';
5
+ import { callTargetDenied, eventInScope } from '../agents/scope.js';
6
+ import { hasAnyKey } from '../agents/keys.js';
7
7
  import {
8
8
  allowedAgents,
9
9
  authenticate,
10
10
  } from '../mcp/request-identity.js';
11
- import { METRO_VERSION } from '../daemon/version.js';
11
+ import { METRO_VERSION } from '@metro-labs/core/version';
12
12
 
13
13
  export type MonitorCall = (
14
14
  train: string,
@@ -1,12 +1,13 @@
1
+ import type { Endpoint } from '@metro-labs/core/endpoints';
1
2
  import { execFile, spawn, type ChildProcess } from 'node:child_process';
2
3
  import { timingSafeEqual } from 'node:crypto';
3
4
  import { Resolver } from 'node:dns/promises';
4
5
  import { request as httpsRequest } from 'node:https';
5
6
  import { homedir } from 'node:os';
6
7
  import { join } from 'node:path';
7
- import { errMsg, log } from './log.js';
8
- import { readJson } from './secure-fs.js';
9
- import { localOwner } from '../db/file-admin.js';
8
+ import { errMsg, log } from '@metro-labs/core/log';
9
+ import { readJson } from '@metro-labs/core/secure-fs';
10
+ import { localOwner } from '../agents/file-admin.js';
10
11
 
11
12
  const RESTART_DELAY_MS = 2_000;
12
13
  const RESTART_DELAY_MAX_MS = 30_000;
@@ -183,13 +184,6 @@ async function untilResolvable(host: string, resolves: Resolves): Promise<boolea
183
184
  return false;
184
185
  }
185
186
 
186
- export interface Endpoint {
187
- id: string;
188
- webhookId?: string;
189
- label: string;
190
- secret?: string;
191
- createdAt: string;
192
- }
193
187
  interface AccountRecord {
194
188
  id?: unknown;
195
189
  webhookId?: unknown;
@@ -201,6 +195,8 @@ interface AccountRecord {
201
195
  export const webhookPort = (): number =>
202
196
  Number(process.env.METRO_WEBHOOK_PORT) || 8420;
203
197
 
198
+ export type { Endpoint };
199
+
204
200
  const accountsFile = (): string =>
205
201
  process.env.WEBHOOK_ACCOUNTS_FILE ??
206
202
  join(homedir(), '.metro', 'webhook-accounts.json');
@@ -1,14 +1,14 @@
1
1
  import { handleSessionApis, type SessionApis } from './session-apis.js';
2
2
  import { handleGatewayRequest } from '../gateway/gateway.js';
3
- import { handleRelayRequest } from './relay.js';
3
+ import { handleRelayRequest } from '../connectors/relay.js';
4
4
  import {
5
5
  createServer,
6
6
  type IncomingMessage,
7
7
  type Server,
8
8
  type ServerResponse,
9
9
  } from 'node:http';
10
- import { Line } from '../stations/lines.js';
11
- import { errMsg, log } from './log.js';
10
+ import { Line } from '@metro-labs/core/lines';
11
+ import { errMsg, log } from '@metro-labs/core/log';
12
12
  import {
13
13
  classifyEvent,
14
14
  formatDisplay,
@@ -16,29 +16,29 @@ import {
16
16
  publishEvent,
17
17
  userSelf,
18
18
  type MetroEvent,
19
- } from './events.js';
20
- import type { TrainEvent } from './protocol.js';
21
- import { agentForLine, agentIdForLine } from '../db/agent-map.js';
19
+ } from '@metro-labs/core/events';
20
+ import type { TrainEvent } from '@metro-labs/core/trains/protocol';
21
+ import { agentForLine, agentIdForLine } from '../agents/map.js';
22
22
  import {
23
23
  findEndpointByWebhookId,
24
24
  listEndpoints,
25
25
  tokenMatches,
26
26
  webhookPort,
27
27
  type Endpoint,
28
- } from './tunnel.js';
29
- import { attachmentEventUrl, handleAttachRequest } from './attach-serve.js';
28
+ } from '../net/tunnel.js';
29
+ import { attachmentEventUrl, handleAttachRequest } from '../files/attach-serve.js';
30
30
  import { webhookEntry } from '@metro-labs/webhook';
31
- import { handleIdentityRequest } from './identity-routes.js';
32
- import { attachTerminalSockets } from './terminal-ws.js';
33
- import { tmuxCommand } from './terminal-api.js';
34
- import { handleModeRequest } from './mode-api.js';
35
- import { handleUploadRequest } from './upload-api.js';
31
+ import { handleIdentityRequest } from './identity.js';
32
+ import { attachTerminalSockets } from '../terminal/socket.js';
33
+ import { tmuxCommand } from '../terminal/api.js';
34
+ import { handleModeRequest } from '@metro-labs/http/mode-api';
35
+ import { handleUploadRequest } from '../files/upload-api.js';
36
36
  import {
37
37
  handleMonitorRequest,
38
38
  type MonitorCall,
39
39
  } from '../monitor/api.js';
40
- import { applyMcpCors, handleMcpPreflight } from './cors.js';
41
- import { METRO_VERSION } from './version.js';
40
+ import { applyMcpCors, handleMcpPreflight } from '@metro-labs/http/cors';
41
+ import { METRO_VERSION } from '@metro-labs/core/version';
42
42
 
43
43
  const LRU_CAP = 2_000;
44
44
 
@@ -1,10 +1,10 @@
1
1
  import type { IncomingMessage, ServerResponse } from 'node:http';
2
2
  import { verifyTypedData } from 'viem';
3
- import { log } from './log.js';
4
- import { ApiError } from './api-error.js';
5
- import { apiFailure, bodyField, cors, readJsonBody, sendJson } from './api-http.js';
6
- import { ENCRYPTION_KEY_TYPED_DATA, deriveIdentityAddress } from './identity-key.js';
7
- import { authorizeIdentity } from './identity-registry.js';
3
+ import { log } from '@metro-labs/core/log';
4
+ import { ApiError } from '@metro-labs/http/api-error';
5
+ import { apiFailure, bodyField, cors, readJsonBody, sendJson } from '@metro-labs/http/api-http';
6
+ import { ENCRYPTION_KEY_TYPED_DATA, deriveIdentityAddress } from '@metro-labs/http/identity-key';
7
+ import { authorizeIdentity } from '@metro-labs/http/identity-registry';
8
8
 
9
9
  const PATH = '/auth/identity';
10
10
  const SIGNATURE_RE = /^0x[0-9a-fA-F]{130}$/;
@@ -1,16 +1,16 @@
1
- import { ApiError } from './api-error.js';
2
- import { errMsg, log } from './log.js';
3
- import { AttachSessions } from './attach-session.js';
4
- import type { AgentApiDeps } from './agent-api.js';
5
- import { ATTACHABLE, type AccountApiDeps } from './account-api.js';
1
+ import { ApiError } from '@metro-labs/http/api-error';
2
+ import { errMsg, log } from '@metro-labs/core/log';
3
+ import { AttachSessions } from '../stations/attach-session.js';
4
+ import type { AgentApiDeps } from '../agents/api.js';
5
+ import { ATTACHABLE, type AccountApiDeps } from '../agents/accounts-api.js';
6
6
  import type { SessionApis } from './session-apis.js';
7
- import type { ModeInfo } from './mode-api.js';
8
- import { loadedAgentOf, type AgentBundle, type BundleApiDeps } from './bundle-api.js';
9
- import { METRO_VERSION } from './version.js';
10
- import type { ConnectorApiDeps } from './connector-api.js';
11
- import { allowLocalConnectors } from './connector-url.js';
12
- import { keyIdentity, type LocalCliDeps } from './local-cli-api.js';
13
- import type { RelayApiDeps } from './relay.js';
7
+ import type { ModeInfo } from '@metro-labs/http/mode-api';
8
+ import { loadedAgentOf, type AgentBundle, type BundleApiDeps } from '../agents/bundle.js';
9
+ import { METRO_VERSION } from '@metro-labs/core/version';
10
+ import type { ConnectorApiDeps } from '../connectors/api.js';
11
+ import { allowLocalConnectors } from '../connectors/url.js';
12
+ import { keyIdentity, type LocalCliDeps } from '../connectors/cli-api.js';
13
+ import type { RelayApiDeps } from '../connectors/relay.js';
14
14
  import {
15
15
  readLocalConnectors,
16
16
  localImportConnectors,
@@ -25,7 +25,7 @@ import {
25
25
  localRelayTarget,
26
26
  localRenameConnector,
27
27
  localVerifyConnector,
28
- } from '../db/local-connectors.js';
28
+ } from '../connectors/store.js';
29
29
  import {
30
30
  assertLocalOwner,
31
31
  LOCAL_PROJECT_ID,
@@ -39,10 +39,10 @@ import {
39
39
  localOwner,
40
40
  localResetAgentKey,
41
41
  readLocalAgentFile,
42
- } from '../db/file-admin.js';
43
- import { listAgentFiles, readAgentFile } from '../db/file-source.js';
42
+ } from '../agents/file-admin.js';
43
+ import { listAgentFiles, readAgentFile } from '../agents/files.js';
44
44
  import { readModelConfig } from '../gateway/model-config.js';
45
- import type { StationName } from '../db/stations.js';
45
+ import type { StationName } from '@metro-labs/core/station-names';
46
46
 
47
47
  export interface LocalModeDeps {
48
48
  syncStations: (station: StationName) => Promise<void>;
@@ -1,30 +1,26 @@
1
1
  import type { IncomingMessage, ServerResponse } from 'node:http';
2
- import { handleSessionApiRequest } from './session-api.js';
3
- import { handleAgentApiRequest, type AgentApiDeps } from './agent-api.js';
2
+ import { handleSessionApiRequest } from './session.js';
3
+ import { handleAgentApiRequest, type AgentApiDeps } from '../agents/api.js';
4
4
  import {
5
5
  handleConnectorApiRequest,
6
6
  type ConnectorApiDeps,
7
- } from './connector-api.js';
8
- import type { RelayApiDeps } from './relay.js';
9
- import type { IdentityRouteDeps } from './identity-routes.js';
10
- import { handleLocalCliRequest, type LocalCliDeps } from './local-cli-api.js';
11
- import { handleClaudeRequest, type ClaudeApiDeps } from './claude-api.js';
12
- import type { ModeInfo } from './mode-api.js';
13
- import { handleVaultApiRequest, type VaultApiDeps } from './vault-api.js';
14
- import { handleServersApiRequest, type ServersApiDeps } from './servers-api.js';
15
- import { handleBundleRequest, type BundleApiDeps } from './bundle-api.js';
16
- import { handleUpdateRequest, type UpdateApiDeps } from './update-api.js';
17
- import { handleControlRequest, type ControlApiDeps } from './control-api.js';
18
- import { handleMachineRequest, type MachineApiDeps } from './machine-api.js';
19
- import { handleModelRequest, type ModelApiDeps } from './model-api.js';
7
+ } from '../connectors/api.js';
8
+ import type { RelayApiDeps } from '../connectors/relay.js';
9
+ import type { IdentityRouteDeps } from './identity.js';
10
+ import { handleLocalCliRequest, type LocalCliDeps } from '../connectors/cli-api.js';
11
+ import { handleClaudeRequest, type ClaudeApiDeps } from '../claude/api.js';
12
+ import type { ModeInfo } from '@metro-labs/http/mode-api';
13
+ import { handleBundleRequest, type BundleApiDeps } from '../agents/bundle.js';
14
+ import { handleUpdateRequest, type UpdateApiDeps } from '../server/update.js';
15
+ import { handleControlRequest, type ControlApiDeps } from '../server/control.js';
16
+ import { handleMachineRequest, type MachineApiDeps } from '../server/machine.js';
17
+ import { handleModelRequest, type ModelApiDeps } from '../gateway/model-api.js';
20
18
  import type { GatewayDeps } from '../gateway/gateway.js';
21
- import { handleTerminalRequest, type TerminalApiDeps } from './terminal-api.js';
19
+ import { handleTerminalRequest, type TerminalApiDeps } from '../terminal/api.js';
22
20
 
23
21
  export interface SessionApis {
24
22
  agentApi?: AgentApiDeps;
25
23
  bundleApi?: BundleApiDeps;
26
- vaultApi?: VaultApiDeps;
27
- serversApi?: ServersApiDeps;
28
24
  updateApi?: UpdateApiDeps;
29
25
  controlApi?: ControlApiDeps;
30
26
  machineApi?: MachineApiDeps;
@@ -52,8 +48,6 @@ export function handleSessionApis(
52
48
  ...when(apis.localCli, (d) => handleLocalCliRequest(req, res, d)),
53
49
  ...when(apis.connectorApi, (d) => handleConnectorApiRequest(req, res, d)),
54
50
  ...when(apis.bundleApi, (d) => handleBundleRequest(req, res, d)),
55
- ...when(apis.vaultApi, (d) => handleVaultApiRequest(req, res, d)),
56
- ...when(apis.serversApi, (d) => handleServersApiRequest(req, res, d)),
57
51
  ...when(apis.updateApi, (d) => handleUpdateRequest(req, res, d)),
58
52
  ...when(apis.controlApi, (d) => handleControlRequest(req, res, d)),
59
53
  ...when(apis.machineApi, (d) => handleMachineRequest(req, res, d)),
@@ -1,5 +1,5 @@
1
1
  import type { IncomingMessage, ServerResponse } from 'node:http';
2
- import { apiFailure, apiSession, cors, sendJson } from './api-http.js';
2
+ import { apiFailure, apiSession, cors, sendJson } from '@metro-labs/http/api-http';
3
3
 
4
4
  const PATH = '/api/session';
5
5
 
@@ -1,7 +1,7 @@
1
1
  import type { IncomingMessage, ServerResponse } from 'node:http';
2
- import { ApiError } from './api-error.js';
3
- import { apiFailure, apiSession, cors, sendJson } from './api-http.js';
4
- import { errMsg, log } from './log.js';
2
+ import { ApiError } from '@metro-labs/http/api-error';
3
+ import { apiFailure, apiSession, cors, sendJson } from '@metro-labs/http/api-http';
4
+ import { errMsg, log } from '@metro-labs/core/log';
5
5
 
6
6
  const STOP = '/api/stop';
7
7
  const RESTART = '/api/restart';
@@ -1,13 +1,13 @@
1
1
  import type { IncomingMessage, ServerResponse } from 'node:http';
2
2
  import { hostname } from 'node:os';
3
- import { ApiError } from './api-error.js';
4
- import { apiFailure, apiSession, cors, sendJson } from './api-http.js';
5
- import { publicBaseUrl } from './attach-serve.js';
6
- import { claudeDir } from './claude-files.js';
7
- import { webhookPort } from './tunnel.js';
8
- import { METRO_VERSION } from './version.js';
9
- import { agentsDir } from '../db/file-source.js';
10
- import { localOwner } from '../db/file-admin.js';
3
+ import { ApiError } from '@metro-labs/http/api-error';
4
+ import { apiFailure, apiSession, cors, sendJson } from '@metro-labs/http/api-http';
5
+ import { publicBaseUrl } from '../files/attach-serve.js';
6
+ import { claudeDir } from '../claude/files.js';
7
+ import { webhookPort } from '../net/tunnel.js';
8
+ import { METRO_VERSION } from '@metro-labs/core/version';
9
+ import { agentsDir } from '../agents/files.js';
10
+ import { localOwner } from '../agents/file-admin.js';
11
11
 
12
12
  const PATH = '/api/server';
13
13
 
@@ -1,10 +1,10 @@
1
1
  import { execFile } from 'node:child_process';
2
2
  import type { IncomingMessage, ServerResponse } from 'node:http';
3
- import { errMsg, log } from './log.js';
4
- import { ApiError } from './api-error.js';
5
- import { apiFailure, apiSession, cors, sendJson } from './api-http.js';
6
- import { isRecord } from './is-record.js';
7
- import { METRO_VERSION } from './version.js';
3
+ import { errMsg, log } from '@metro-labs/core/log';
4
+ import { ApiError } from '@metro-labs/http/api-error';
5
+ import { apiFailure, apiSession, cors, sendJson } from '@metro-labs/http/api-http';
6
+ import { isRecord } from '@metro-labs/core/is-record';
7
+ import { METRO_VERSION } from '@metro-labs/core/version';
8
8
 
9
9
  const PATH = '/api/update';
10
10
  const CHECK_TTL_MS = 10 * 60_000;
@@ -0,0 +1,2 @@
1
+ #!/usr/bin/env bun
2
+ import './boot/boot.js';
@@ -3,7 +3,7 @@ import {
3
3
  assertContentLength,
4
4
  guessMime,
5
5
  saveBufferToCache,
6
- } from './attachments.js';
6
+ } from '@metro-labs/core/stations/attachments';
7
7
  import {
8
8
  assertInlineTotal,
9
9
  decodeInline,
@@ -12,8 +12,9 @@ import {
12
12
  writeInlineTemp,
13
13
  } from './attach-inline.js';
14
14
  import { realpathSync } from 'node:fs';
15
- import { readUpload, UPLOAD_TTL_MS } from '../daemon/upload-store.js';
16
- import type { CanonicalAttachment } from './types.js';
15
+ import { log } from '@metro-labs/core/log';
16
+ import { readUpload, UPLOAD_TTL_MS } from '../files/upload-store.js';
17
+ import type { CanonicalAttachment } from '@metro-labs/core/stations/types';
17
18
 
18
19
  export interface ResolvedAttachment {
19
20
  path: string;
@@ -167,6 +168,7 @@ async function resolveAttachment(
167
168
  .map((s) => `\`${s}\``)
168
169
  .join(', ')}); pass exactly one of \`upload\`, \`data\`, \`url\` or \`path\``,
169
170
  );
171
+ log.info({ source: sources[0] }, 'send: attachment source');
170
172
  if (a.upload) return fromUpload(a, a.upload, opts.allowed);
171
173
  if (a.data) return fromData(a, a.data, budget);
172
174
  if (a.path) return fromPath(a, a.path);
@@ -1,7 +1,7 @@
1
1
  import { randomBytes } from 'node:crypto';
2
- import { ApiError } from './api-error.js';
3
- import { errMsg, log } from './log.js';
4
- import type { StationName } from '../db/stations.js';
2
+ import { ApiError } from '@metro-labs/http/api-error';
3
+ import { errMsg, log } from '@metro-labs/core/log';
4
+ import type { StationName } from '@metro-labs/core/station-names';
5
5
  import { ensureStationDeps } from './runtime-deps.js';
6
6
  import {
7
7
  startInteractiveAttach,
@@ -12,7 +12,7 @@ import {
12
12
  type DriverHooks,
13
13
  type InteractiveStation,
14
14
  type StartedAttach,
15
- } from '../stations/attach-interactive.js';
15
+ } from './attach-interactive.js';
16
16
 
17
17
  export type StartAttach = (
18
18
  station: InteractiveStation,
@@ -1,7 +1,7 @@
1
1
  import { randomBytes } from 'node:crypto';
2
2
  import { rmSync } from 'node:fs';
3
3
  import { fileURLToPath } from 'node:url';
4
- import { errMsg, log } from '../daemon/log.js';
4
+ import { errMsg, log } from '@metro-labs/core/log';
5
5
 
6
6
  export class XmtpAttachError extends Error {}
7
7
 
@@ -7,9 +7,9 @@ import {
7
7
  TelegramTokenError,
8
8
  verifyTelegramBotToken,
9
9
  } from '@metro-labs/telegram-bot/verify';
10
- import { ApiError } from '../daemon/api-error.js';
11
- import { ensureStationDeps } from '../daemon/runtime-deps.js';
12
- import { publicBaseOrDefault } from '../daemon/attach-serve.js';
10
+ import { ApiError } from '@metro-labs/http/api-error';
11
+ import { ensureStationDeps } from './runtime-deps.js';
12
+ import { publicBaseOrDefault } from '../files/attach-serve.js';
13
13
  import {
14
14
  discardXmtpDb,
15
15
  newXmtpDbPath,