@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,4 +1,4 @@
1
- import { errMsg, log, logFatalSync } from './log.js';
1
+ import { errMsg, log, logFatalSync } from '@metro-labs/core/log';
2
2
 
3
3
  export type CrashKind = 'unhandledRejection' | 'uncaughtException';
4
4
 
@@ -1,5 +1,5 @@
1
- import { localOwner, setLocalOwner } from '../db/file-admin.js';
2
- import { log } from './log.js';
1
+ import { localOwner, setLocalOwner } from '../agents/file-admin.js';
2
+ import { log } from '@metro-labs/core/log';
3
3
 
4
4
  export function applyLocalOwner(): string | null {
5
5
  const wanted = process.env.METRO_OWNER?.trim() ?? '';
@@ -10,7 +10,7 @@ import {
10
10
  import { homedir } from 'node:os';
11
11
  import { join } from 'node:path';
12
12
  import { fileURLToPath } from 'node:url';
13
- import { log } from './log.js';
13
+ import { log } from '@metro-labs/core/log';
14
14
 
15
15
  export const STATE_DIR =
16
16
  process.env.METRO_STATE_DIR ?? join(homedir(), '.cache', 'metro');
@@ -23,9 +23,6 @@ export function trainsDir(): string {
23
23
  return fileURLToPath(new URL('../../trains', import.meta.url));
24
24
  }
25
25
 
26
- export const isLocalMode = (): boolean =>
27
- process.env.METRO_MODE?.trim() === 'local';
28
-
29
26
  function readLockPid(lockFile: string): number {
30
27
  try {
31
28
  return Number(readFileSync(lockFile, 'utf8').trim());
@@ -1,4 +1,4 @@
1
- import { str } from '../mcp/str.js';
1
+ import { str } from '@metro-labs/core/str';
2
2
 
3
3
  export type Addressed = 'direct' | 'mention' | 'reply';
4
4
 
@@ -1,4 +1,4 @@
1
- import { accountFromLine, agentIdForAccount } from '../db/agent-map.js';
1
+ import { accountFromLine, agentIdForAccount } from '../agents/map.js';
2
2
 
3
3
  const accountStrippedLine = (line: string): string => {
4
4
  const parts = line.split('/');
@@ -1,5 +1,5 @@
1
1
  import type { Server } from '@modelcontextprotocol/sdk/server/index.js';
2
- import { str } from '../mcp/str.js';
2
+ import { str } from '@metro-labs/core/str';
3
3
  import { dedupeKey } from './dedupe.js';
4
4
  import {
5
5
  buildMediaFailureNote,
@@ -1,4 +1,4 @@
1
- import { str } from '../mcp/str.js';
1
+ import { str } from '@metro-labs/core/str';
2
2
 
3
3
  export interface PendingAtt {
4
4
  kind?: string;
@@ -3,7 +3,7 @@ import {
3
3
  currentBusSeq,
4
4
  subscribeEvents,
5
5
  type MetroEvent,
6
- } from '../daemon/events.js';
6
+ } from '@metro-labs/core/events';
7
7
  import type { InboundRelay } from './inbound.js';
8
8
 
9
9
  export interface ReplayLedger {
@@ -1,9 +1,9 @@
1
1
  import type { IncomingMessage, ServerResponse } from 'node:http';
2
- import { errMsg, log } from './log.js';
3
- import { apiFailure, apiSession, cors, readJsonBody, sendJson } from './api-http.js';
4
- import { ApiError } from './api-error.js';
5
- import { isRecord } from './is-record.js';
6
- import { listClaudeSettings, SETTINGS_MAX, writeClaudeSettings } from './claude-settings.js';
2
+ import { errMsg, log } from '@metro-labs/core/log';
3
+ import { apiFailure, apiSession, cors, readJsonBody, sendJson } from '@metro-labs/http/api-http';
4
+ import { ApiError } from '@metro-labs/http/api-error';
5
+ import { isRecord } from '@metro-labs/core/is-record';
6
+ import { listClaudeSettings, SETTINGS_MAX, writeClaudeSettings } from './settings.js';
7
7
  import {
8
8
  answerClaudeLogin,
9
9
  claudeAccount,
@@ -12,7 +12,7 @@ import {
12
12
  endClaudeLogin,
13
13
  startClaudeLogin,
14
14
  type LoginDeps,
15
- } from './claude-login.js';
15
+ } from './login.js';
16
16
  import {
17
17
  claudeDir,
18
18
  deleteClaudeSession,
@@ -21,7 +21,7 @@ import {
21
21
  listMemory,
22
22
  readMemoryFile,
23
23
  readTranscript,
24
- } from './claude-files.js';
24
+ } from './files.js';
25
25
 
26
26
  const PREFIX = '/api/claude';
27
27
  const BODY_MAX = SETTINGS_MAX + 4096;
@@ -11,8 +11,8 @@ import {
11
11
  import { homedir } from 'node:os';
12
12
  import { join } from 'node:path';
13
13
  import { createInterface } from 'node:readline';
14
- import { ApiError } from './api-error.js';
15
- import { isRecord } from './is-record.js';
14
+ import { ApiError } from '@metro-labs/http/api-error';
15
+ import { isRecord } from '@metro-labs/core/is-record';
16
16
 
17
17
  const PROJECT_RE = /^[A-Za-z0-9._-]{1,200}$/;
18
18
  const SESSION_RE = /^[A-Za-z0-9][A-Za-z0-9-]{7,63}$/;
@@ -1,8 +1,8 @@
1
1
  import { randomBytes } from 'node:crypto';
2
2
  import { spawnSync } from 'node:child_process';
3
- import { ApiError } from './api-error.js';
4
- import { isRecord } from './is-record.js';
5
- import { errMsg, log } from './log.js';
3
+ import { ApiError } from '@metro-labs/http/api-error';
4
+ import { isRecord } from '@metro-labs/core/is-record';
5
+ import { errMsg, log } from '@metro-labs/core/log';
6
6
 
7
7
  const LOGIN_COMMAND = ['claude', 'auth', 'login', '--claudeai'];
8
8
  const STATUS_COMMAND = ['auth', 'status', '--json'];
@@ -1,9 +1,9 @@
1
1
  import { chmodSync, existsSync, mkdirSync, readFileSync, renameSync, statSync, writeFileSync } from 'node:fs';
2
2
  import { dirname, join } from 'node:path';
3
- import { ApiError } from './api-error.js';
4
- import { claudeDir, listClaudeProjects } from './claude-files.js';
5
- import { isRecord } from './is-record.js';
6
- import { errMsg } from './log.js';
3
+ import { ApiError } from '@metro-labs/http/api-error';
4
+ import { claudeDir, listClaudeProjects } from './files.js';
5
+ import { isRecord } from '@metro-labs/core/is-record';
6
+ import { errMsg } from '@metro-labs/core/log';
7
7
 
8
8
  export const SETTINGS_MAX = 256 * 1024;
9
9
  const USER_ID = 'user';
@@ -1,5 +1,5 @@
1
1
  import type { IncomingMessage, ServerResponse } from 'node:http';
2
- import { errMsg, log } from './log.js';
2
+ import { errMsg, log } from '@metro-labs/core/log';
3
3
  import {
4
4
  apiFailure,
5
5
  apiSession,
@@ -9,22 +9,22 @@ import {
9
9
  readJsonBody,
10
10
  sendJson,
11
11
  type ApiSession,
12
- } from './api-http.js';
13
- import { parseId } from '../db/ids.js';
12
+ } from '@metro-labs/http/api-http';
13
+ import { parseId } from '@metro-labs/core/ids';
14
14
  import {
15
15
  handleCallback,
16
16
  handleConnect,
17
17
  hostOf,
18
18
  startOAuth,
19
19
  type OAuthRouteDeps,
20
- } from './connector-oauth-routes.js';
21
- import { ConnectorUnauthorized } from './connector-verify.js';
20
+ } from './oauth-routes.js';
21
+ import { ConnectorUnauthorized } from './verify.js';
22
22
  import type {
23
23
  Connector,
24
24
  ConnectorCheck,
25
25
  ConnectorInput,
26
26
  DeletedConnector,
27
- } from '../db/connectors.js';
27
+ } from './model.js';
28
28
 
29
29
  const PREFIX = '/api/connectors';
30
30
 
@@ -1,9 +1,9 @@
1
1
  import type { IncomingMessage, ServerResponse } from 'node:http';
2
- import { errMsg, log } from './log.js';
3
- import { cors, sendJson, type AgentIdentity } from './api-http.js';
4
- import { publicBaseOrDefault } from './attach-serve.js';
5
- import { relayServersJson, type RelayServerEntry } from './connector-json.js';
6
- import { agentIdForKey } from '../db/key-map.js';
2
+ import { errMsg, log } from '@metro-labs/core/log';
3
+ import { cors, sendJson, type AgentIdentity } from '@metro-labs/http/api-http';
4
+ import { publicBaseOrDefault } from '../files/attach-serve.js';
5
+ import { relayServersJson, type RelayServerEntry } from './json.js';
6
+ import { agentIdForKey } from '../agents/keys.js';
7
7
 
8
8
  const PATH = '/api/cli/mcp';
9
9
 
@@ -1,11 +1,11 @@
1
- import { ApiError } from '../daemon/api-error.js';
1
+ import { ApiError } from '@metro-labs/http/api-error';
2
2
  import type {
3
3
  ConnectorAuth,
4
4
  VerifiedRecord,
5
5
  VerifiedServer,
6
- } from '../daemon/connector-verify.js';
7
- import { readStoredTools } from '../daemon/connector-tools.js';
8
- import { isRecord } from '../daemon/is-record.js';
6
+ } from './verify.js';
7
+ import { readStoredTools } from './tools.js';
8
+ import { isRecord } from '@metro-labs/core/is-record';
9
9
 
10
10
  const CONNECTOR_NAME_MAX = 64;
11
11
  const HEADER_NAME_RE = /^[A-Za-z0-9!#$%&'*+.^_`|~-]{1,64}$/;
@@ -1,6 +1,6 @@
1
- import type { ConnectorAuth, VerifiedRecord } from '../daemon/connector-verify.js';
2
- import { readConfig, signInState, type ConnectorSignIn } from './connector-config.js';
3
- import type { ConnectorTransport } from './stations.js';
1
+ import type { ConnectorAuth, VerifiedRecord } from './verify.js';
2
+ import { readConfig, signInState, type ConnectorSignIn } from './config.js';
3
+ import type { ConnectorTransport } from '@metro-labs/core/station-names';
4
4
 
5
5
  export interface Connector {
6
6
  id: string;
@@ -2,9 +2,9 @@ import { createHash, randomBytes } from 'node:crypto';
2
2
  import {
3
3
  ConnectorVerifyError,
4
4
  type OAuthTokens,
5
- } from './connector-verify.js';
5
+ } from './verify.js';
6
6
  import type { OAuthServer } from './oauth-discovery.js';
7
- import { isRecord } from './is-record.js';
7
+ import { isRecord } from '@metro-labs/core/is-record';
8
8
 
9
9
  const TOKEN_TIMEOUT_MS = 15_000;
10
10
  const CLIENT_NAME = 'Metro';
@@ -1,5 +1,5 @@
1
- import { ConnectorVerifyError, parseConnectorUrl } from './connector-verify.js';
2
- import { isRecord } from './is-record.js';
1
+ import { ConnectorVerifyError, parseConnectorUrl } from './verify.js';
2
+ import { isRecord } from '@metro-labs/core/is-record';
3
3
 
4
4
  const DISCOVERY_TIMEOUT_MS = 10_000;
5
5
 
@@ -1,15 +1,15 @@
1
1
  import type { IncomingMessage, ServerResponse } from 'node:http';
2
- import { errMsg, log } from './log.js';
3
- import { bodyField, readJsonBody, sendJson, type ApiSession } from './api-http.js';
2
+ import { errMsg, log } from '@metro-labs/core/log';
3
+ import { bodyField, readJsonBody, sendJson, type ApiSession } from '@metro-labs/http/api-http';
4
4
  import {
5
5
  beginOAuth,
6
6
  completeOAuth,
7
7
  takePending,
8
8
  type PendingAuth,
9
- } from './connector-oauth.js';
10
- import { parseConnectorUrl } from './connector-verify.js';
11
- import type { OAuthAuth } from './connector-verify.js';
12
- import type { Connector } from '../db/connectors.js';
9
+ } from './oauth.js';
10
+ import { parseConnectorUrl } from './verify.js';
11
+ import type { OAuthAuth } from './verify.js';
12
+ import type { Connector } from './model.js';
13
13
 
14
14
  const asText = (value: unknown): string =>
15
15
  typeof value === 'string' ? value : '';
@@ -1,10 +1,10 @@
1
- import { publicBaseOrDefault } from './attach-serve.js';
1
+ import { publicBaseOrDefault } from '../files/attach-serve.js';
2
2
  import {
3
3
  ConnectorVerifyError,
4
4
  type OAuthAuth,
5
5
  type OAuthTokens,
6
- } from './connector-verify.js';
7
- import { validateReturnTo } from './return-to.js';
6
+ } from './verify.js';
7
+ import { validateReturnTo } from '@metro-labs/http/return-to';
8
8
  import {
9
9
  authorizeUrl,
10
10
  exchangeCode,
@@ -1,4 +1,4 @@
1
- import type { ConnectorAuth, OAuthAuth } from '../daemon/connector-verify.js';
1
+ import type { ConnectorAuth, OAuthAuth } from './verify.js';
2
2
 
3
3
  export type RelayTarget =
4
4
  | { kind: 'ok'; url: string; headers: Record<string, string> }
@@ -1,8 +1,8 @@
1
1
  import type { IncomingMessage, ServerResponse } from 'node:http';
2
- import type { RelayTarget } from '../db/connector-relay.js';
3
- import type { AgentIdentity } from './api-http.js';
4
- import { ApiError } from './api-error.js';
5
- import { errMsg, log } from './log.js';
2
+ import type { RelayTarget } from './relay-target.js';
3
+ import type { AgentIdentity } from '@metro-labs/http/api-http';
4
+ import { ApiError } from '@metro-labs/http/api-error';
5
+ import { errMsg, log } from '@metro-labs/core/log';
6
6
 
7
7
  export interface RelayApiDeps {
8
8
  target: (connectorId: string, force: boolean) => Promise<RelayTarget>;
@@ -1,6 +1,6 @@
1
1
  import { join } from 'node:path';
2
- import { readJson, writeSecure } from '../daemon/secure-fs.js';
3
- import { errMsg, log } from '../daemon/log.js';
2
+ import { readJson, writeSecure } from '@metro-labs/core/secure-fs';
3
+ import { errMsg, log } from '@metro-labs/core/log';
4
4
  import {
5
5
  connectorUrlText,
6
6
  ConnectorVerifyError,
@@ -8,9 +8,9 @@ import {
8
8
  verifyRemoteMcp,
9
9
  type ConnectorAuth,
10
10
  type OAuthAuth,
11
- } from '../daemon/connector-verify.js';
12
- import { oauthExpired, refreshOAuth } from '../daemon/connector-oauth.js';
13
- import { advertisesOAuth } from '../daemon/oauth-discovery.js';
11
+ } from './verify.js';
12
+ import { oauthExpired, refreshOAuth } from './oauth.js';
13
+ import { advertisesOAuth } from './oauth-discovery.js';
14
14
  import {
15
15
  ConnectorError,
16
16
  connectorAuth,
@@ -18,13 +18,13 @@ import {
18
18
  readConfig,
19
19
  stamp,
20
20
  type ConnectorConfig,
21
- } from './connector-config.js';
21
+ } from './config.js';
22
22
  import {
23
23
  bearerHeaders,
24
24
  fixedTarget,
25
25
  unrefreshedTarget,
26
26
  type RelayTarget,
27
- } from './connector-relay.js';
27
+ } from './relay-target.js';
28
28
  import {
29
29
  connectorFromRow,
30
30
  UNVERIFIED,
@@ -32,11 +32,11 @@ import {
32
32
  type ConnectorCheck,
33
33
  type ConnectorInput,
34
34
  type DeletedConnector,
35
- } from './connectors.js';
36
- import { agentsDir } from './file-source.js';
37
- import { assertLocalOwner, LOCAL_PROJECT_ID } from './file-admin.js';
38
- import { newId } from './ids.js';
39
- import type { LoadedConnector } from './materialize.js';
35
+ } from './model.js';
36
+ import { agentsDir } from '../agents/files.js';
37
+ import { assertLocalOwner, LOCAL_PROJECT_ID } from '../agents/file-admin.js';
38
+ import { newId } from '@metro-labs/core/ids';
39
+ import type { LoadedConnector } from '../stations/materialize.js';
40
40
 
41
41
  export interface LocalConnectorRow {
42
42
  id: string;
@@ -1,4 +1,4 @@
1
- import { isRecord } from './is-record.js';
1
+ import { isRecord } from '@metro-labs/core/is-record';
2
2
 
3
3
  export const TOOL_KINDS = ['read', 'write'] as const;
4
4
 
@@ -1,4 +1,4 @@
1
- import { ApiError } from './api-error.js';
1
+ import { ApiError } from '@metro-labs/http/api-error';
2
2
 
3
3
  export class ConnectorVerifyError extends ApiError {}
4
4
 
@@ -1,19 +1,19 @@
1
- import { errMsg, log } from './log.js';
1
+ import { errMsg, log } from '@metro-labs/core/log';
2
2
  import {
3
3
  ConnectorNotMcp,
4
4
  ConnectorUnauthorized,
5
5
  refused,
6
6
  safeIconSrc,
7
- } from './connector-url.js';
8
- import { toToolList, type ToolInfo } from './connector-tools.js';
7
+ } from './url.js';
8
+ import { toToolList, type ToolInfo } from './tools.js';
9
9
 
10
10
  export {
11
11
  ConnectorUnauthorized,
12
12
  ConnectorVerifyError,
13
13
  connectorUrlText,
14
14
  parseConnectorUrl,
15
- } from './connector-url.js';
16
- import { isRecord } from './is-record.js';
15
+ } from './url.js';
16
+ import { isRecord } from '@metro-labs/core/is-record';
17
17
 
18
18
  export interface OAuthTokens {
19
19
  accessToken: string;
@@ -1,8 +1,8 @@
1
1
  import { randomBytes, timingSafeEqual } from 'node:crypto';
2
- import { ID_RE } from '../db/ids.js';
2
+ import { ID_RE } from '@metro-labs/core/ids';
3
3
  import { readFileSync } from 'node:fs';
4
- import { resolveCachedAttachment } from '../stations/attachments.js';
5
- import { writeSecure } from './secure-fs.js';
4
+ import { resolveCachedAttachment } from '@metro-labs/core/stations/attachments';
5
+ import { writeSecure } from '@metro-labs/core/secure-fs';
6
6
 
7
7
  const GRANT_SUFFIX = '.grant';
8
8
 
@@ -1,7 +1,7 @@
1
1
  import { readFileSync } from 'node:fs';
2
- import { ID_RE } from '../db/ids.js';
3
- import { resolveCachedAttachment } from '../stations/attachments.js';
4
- import { writeSecure } from './secure-fs.js';
2
+ import { ID_RE } from '@metro-labs/core/ids';
3
+ import { resolveCachedAttachment } from '@metro-labs/core/stations/attachments';
4
+ import { writeSecure } from '@metro-labs/core/secure-fs';
5
5
 
6
6
  const OWNER_SUFFIX = '.owner';
7
7
 
@@ -4,7 +4,7 @@ import type { IncomingMessage, ServerResponse } from 'node:http';
4
4
  import {
5
5
  guessMime,
6
6
  resolveCachedAttachment,
7
- } from '../stations/attachments.js';
7
+ } from '@metro-labs/core/stations/attachments';
8
8
  import {
9
9
  allowedAgents,
10
10
  authenticate,
@@ -12,9 +12,8 @@ import {
12
12
  } from '../mcp/request-identity.js';
13
13
  import { attachmentOwner, recordAttachmentOwner } from './attach-owner.js';
14
14
  import { grantAllows, issueAttachmentGrant } from './attach-grant.js';
15
- import { errMsg, log } from './log.js';
16
- import { currentTunnelUrl, webhookPort } from './tunnel.js';
17
- import { isLocalMode } from './paths.js';
15
+ import { errMsg, log } from '@metro-labs/core/log';
16
+ import { currentTunnelUrl, webhookPort } from '../net/tunnel.js';
18
17
 
19
18
  function authorized(req: IncomingMessage, name: string): boolean {
20
19
  const owner = attachmentOwner(name);
@@ -25,21 +24,15 @@ function authorized(req: IncomingMessage, name: string): boolean {
25
24
  );
26
25
  }
27
26
 
28
- const DEFAULT_PUBLIC_BASE = 'https://api.metro.box';
29
-
30
27
  export function publicBaseUrl(): string | null {
31
28
  const env = process.env.METRO_PUBLIC_URL?.trim();
32
29
  if (env) return env.replace(/\/+$/, '');
33
30
  return currentTunnelUrl();
34
31
  }
35
32
 
36
- const servesLocally = (): boolean => isLocalMode();
37
-
38
- const localBase = (): string | null =>
39
- servesLocally() ? `http://127.0.0.1:${String(webhookPort())}` : null;
33
+ const localBase = (): string => `http://127.0.0.1:${String(webhookPort())}`;
40
34
 
41
- export const publicBaseOrDefault = (): string =>
42
- publicBaseUrl() ?? localBase() ?? DEFAULT_PUBLIC_BASE;
35
+ export const publicBaseOrDefault = (): string => publicBaseUrl() ?? localBase();
43
36
 
44
37
  export function attachmentUrl(
45
38
  pathOrName: string,
@@ -1,16 +1,16 @@
1
1
  import { open, rename, rm, type FileHandle } from 'node:fs/promises';
2
2
  import type { IncomingMessage, ServerResponse } from 'node:http';
3
- import { guessMime } from '../stations/attachments.js';
3
+ import { guessMime } from '@metro-labs/core/stations/attachments';
4
4
  import { safeFileName } from '../stations/attach-inline.js';
5
5
  import {
6
6
  allowedAgents,
7
7
  authenticate,
8
8
  extractToken,
9
9
  } from '../mcp/request-identity.js';
10
- import { ApiError } from './api-error.js';
11
- import { apiFailure, cors, sendJson } from './api-http.js';
12
- import { log } from './log.js';
13
- import { writeSecure } from './secure-fs.js';
10
+ import { ApiError } from '@metro-labs/http/api-error';
11
+ import { apiFailure, cors, sendJson } from '@metro-labs/http/api-http';
12
+ import { log } from '@metro-labs/core/log';
13
+ import { writeSecure } from '@metro-labs/core/secure-fs';
14
14
  import {
15
15
  createUploadSlot,
16
16
  liveUploadBytes,
@@ -2,10 +2,10 @@ import { randomBytes } from 'node:crypto';
2
2
  import { readdirSync, rmSync, statSync } from 'node:fs';
3
3
  import { tmpdir } from 'node:os';
4
4
  import { join } from 'node:path';
5
- import { ensureSecureDir, readJson, writeSecure } from './secure-fs.js';
5
+ import { ensureSecureDir, readJson, writeSecure } from '@metro-labs/core/secure-fs';
6
6
  import { grantAllowsPath, issueGrant } from './attach-grant.js';
7
7
  import { ownerOf, recordOwner } from './attach-owner.js';
8
- import { errMsg, log } from './log.js';
8
+ import { errMsg, log } from '@metro-labs/core/log';
9
9
 
10
10
  export const UPLOAD_TTL_MS = 30 * 60 * 1000;
11
11
  export const MAX_UPLOAD_BYTES = 64 * 1024 * 1024;
@@ -1,5 +1,5 @@
1
1
  import type { IncomingMessage, ServerResponse } from 'node:http';
2
- import { log } from '../daemon/log.js';
2
+ import { log } from '@metro-labs/core/log';
3
3
  import { EventStreamDecoder, type EventStreamMessage } from './eventstream.js';
4
4
  import { errorFrame, GatewayError, idleMessage, providerStatus, sendError, upstreamMessage, type Watch } from './forward.js';
5
5
  import type { BedrockSettings } from './model-config.js';
@@ -2,7 +2,7 @@ import { createHash, randomBytes } from 'node:crypto';
2
2
  import { readFileSync } from 'node:fs';
3
3
  import { homedir } from 'node:os';
4
4
  import { join } from 'node:path';
5
- import { isRecord } from '../daemon/is-record.js';
5
+ import { isRecord } from '@metro-labs/core/is-record';
6
6
 
7
7
  export const CODEX_CLIENT_ID = 'app_EMoamEEZ73f0CkXaXp7hrann';
8
8
  export const CODEX_ISSUER = 'https://auth.openai.com';
@@ -1,6 +1,6 @@
1
1
  import { randomBytes } from 'node:crypto';
2
- import { isRecord } from '../daemon/is-record.js';
3
- import { errMsg } from '../daemon/log.js';
2
+ import { isRecord } from '@metro-labs/core/is-record';
3
+ import { errMsg } from '@metro-labs/core/log';
4
4
  import { CODEX_CLIENT_ID, CODEX_ISSUER, CodexAuthError, exchangeCode, type CodexTokens } from './codex-auth.js';
5
5
 
6
6
  const VERIFY_PATH = '/codex/device';
@@ -1,4 +1,4 @@
1
- import { isRecord } from '../daemon/is-record.js';
1
+ import { isRecord } from '@metro-labs/core/is-record';
2
2
  import { encodeSignature } from './codex-translate.js';
3
3
 
4
4
  type Item = Record<string, unknown>;
@@ -1,5 +1,5 @@
1
1
  import { createHash } from 'node:crypto';
2
- import { isRecord } from '../daemon/is-record.js';
2
+ import { isRecord } from '@metro-labs/core/is-record';
3
3
 
4
4
  export const SIGNATURE_PREFIX = 'metro-codex:';
5
5
  const DEFAULT_EFFORT = 'medium';
@@ -1,8 +1,8 @@
1
1
  import { randomUUID } from 'node:crypto';
2
2
  import type { IncomingMessage, ServerResponse } from 'node:http';
3
3
  import { arch, platform, release } from 'node:os';
4
- import { isRecord } from '../daemon/is-record.js';
5
- import { errMsg, log } from '../daemon/log.js';
4
+ import { isRecord } from '@metro-labs/core/is-record';
5
+ import { errMsg, log } from '@metro-labs/core/log';
6
6
  import { refreshTokens, tokensStale, type CodexTokens } from './codex-auth.js';
7
7
  import { assembleMessage, CodexEventTranslator, parseEvent, SseParser } from './codex-stream.js';
8
8
  import { ToolNames, toResponsesRequest } from './codex-translate.js';
@@ -1,6 +1,6 @@
1
1
  import type { IncomingMessage, ServerResponse } from 'node:http';
2
- import { errMsg, log } from '../daemon/log.js';
3
- import { agentIdForKey } from '../db/key-map.js';
2
+ import { errMsg, log } from '@metro-labs/core/log';
3
+ import { agentIdForKey } from '../agents/keys.js';
4
4
  import {
5
5
  assertBedrockReady,
6
6
  bedrockBase,
@@ -1,15 +1,15 @@
1
1
  import type { IncomingMessage, ServerResponse } from 'node:http';
2
- import { ApiError } from './api-error.js';
3
- import { apiFailure, apiSession, cors, readJsonBody, sendJson } from './api-http.js';
4
- import { isRecord } from './is-record.js';
5
- import { log } from './log.js';
6
- import { beginLogin, CodexAuthError, finishLogin, readCodexCliAuth } from '../gateway/codex-auth.js';
7
- import { beginDeviceLogin, pollDeviceLogin } from '../gateway/codex-device.js';
8
- import { codexModels, currentTokens, freshCodexState } from '../gateway/codex.js';
9
- import { openrouterModels } from '../gateway/openrouter.js';
10
- import { lastServed } from '../gateway/served.js';
11
- import type { CodexTokens } from '../gateway/codex-auth.js';
12
- import { GatewayError } from '../gateway/forward.js';
2
+ import { ApiError } from '@metro-labs/http/api-error';
3
+ import { apiFailure, apiSession, cors, readJsonBody, sendJson } from '@metro-labs/http/api-http';
4
+ import { isRecord } from '@metro-labs/core/is-record';
5
+ import { log } from '@metro-labs/core/log';
6
+ import { beginLogin, CodexAuthError, finishLogin, readCodexCliAuth } from './codex-auth.js';
7
+ import { beginDeviceLogin, pollDeviceLogin } from './codex-device.js';
8
+ import { codexModels, currentTokens, freshCodexState } from './codex.js';
9
+ import { openrouterModels } from './openrouter.js';
10
+ import { lastServed } from './served.js';
11
+ import type { CodexTokens } from './codex-auth.js';
12
+ import { GatewayError } from './forward.js';
13
13
  import {
14
14
  applyModelUpdate,
15
15
  ModelConfigError,
@@ -18,7 +18,7 @@ import {
18
18
  setCodexAuth,
19
19
  writeModelConfig,
20
20
  type ModelConfig,
21
- } from '../gateway/model-config.js';
21
+ } from './model-config.js';
22
22
 
23
23
  const PATH = '/api/model';
24
24
  const CODEX = '/api/model/codex/';