@stage-labs/metro 0.1.0-beta.75 → 0.1.0-beta.77
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.
- package/dist/cli.js +0 -3
- package/dist/runtime.js +1 -1
- package/dist/serve.js +0 -1
- package/package.json +1 -1
- package/runtime/node_modules/@metro-labs/core/package.json +43 -0
- package/runtime/node_modules/@metro-labs/core/src/endpoints.ts +7 -0
- package/runtime/node_modules/@metro-labs/{mcp/src/daemon → core/src}/events.ts +1 -1
- package/runtime/node_modules/@metro-labs/{mcp/src/daemon → core/src}/identity.ts +1 -1
- package/runtime/node_modules/@metro-labs/{mcp/src/daemon → core/src}/protocol.ts +1 -1
- package/runtime/node_modules/@metro-labs/{mcp → core}/src/stations/account-store.ts +2 -2
- package/runtime/node_modules/@metro-labs/{mcp → core}/src/stations/station-runtime.ts +1 -1
- package/runtime/node_modules/@metro-labs/daemon/package.json +47 -0
- package/runtime/node_modules/@metro-labs/{mcp/src/db → daemon/src/agents}/account-attach.ts +1 -1
- package/runtime/node_modules/@metro-labs/{mcp/src/daemon/account-api.ts → daemon/src/agents/accounts-api.ts} +6 -6
- package/runtime/node_modules/@metro-labs/{mcp/src/db/agent-admin.ts → daemon/src/agents/admin.ts} +2 -2
- package/runtime/node_modules/@metro-labs/{mcp/src/daemon/agent-api.ts → daemon/src/agents/api.ts} +6 -6
- package/runtime/node_modules/@metro-labs/{mcp/src/daemon/bundle-api.ts → daemon/src/agents/bundle.ts} +7 -7
- package/runtime/node_modules/@metro-labs/{mcp/src/db → daemon/src/agents}/file-admin.ts +9 -9
- package/runtime/node_modules/@metro-labs/{mcp/src/db/file-source.ts → daemon/src/agents/files.ts} +4 -4
- package/runtime/node_modules/@metro-labs/{mcp/src/db/key-map.ts → daemon/src/agents/keys.ts} +1 -1
- package/runtime/node_modules/@metro-labs/{mcp/src/db/agent-scope.ts → daemon/src/agents/scope.ts} +2 -2
- package/runtime/node_modules/@metro-labs/{mcp/src/daemon → daemon/src/boot}/boot.ts +23 -51
- package/runtime/node_modules/@metro-labs/{mcp/src/daemon → daemon/src/boot}/crash-guard.ts +1 -1
- package/runtime/node_modules/@metro-labs/{mcp/src/daemon → daemon/src/boot}/local-owner.ts +2 -2
- package/runtime/node_modules/@metro-labs/{mcp/src/daemon → daemon/src/boot}/paths.ts +1 -4
- package/runtime/node_modules/@metro-labs/{mcp → daemon}/src/channels/addressed.ts +1 -1
- package/runtime/node_modules/@metro-labs/{mcp → daemon}/src/channels/dedupe.ts +1 -1
- package/runtime/node_modules/@metro-labs/{mcp → daemon}/src/channels/inbound.ts +1 -1
- package/runtime/node_modules/@metro-labs/{mcp → daemon}/src/channels/pending.ts +1 -1
- package/runtime/node_modules/@metro-labs/{mcp → daemon}/src/channels/relay.ts +1 -1
- package/runtime/node_modules/@metro-labs/{mcp/src/daemon/claude-api.ts → daemon/src/claude/api.ts} +47 -14
- package/runtime/node_modules/@metro-labs/{mcp/src/daemon/claude-files.ts → daemon/src/claude/files.ts} +2 -2
- package/runtime/node_modules/@metro-labs/daemon/src/claude/login.ts +167 -0
- package/runtime/node_modules/@metro-labs/{mcp/src/daemon/claude-settings.ts → daemon/src/claude/settings.ts} +4 -4
- package/runtime/node_modules/@metro-labs/{mcp/src/daemon/connector-api.ts → daemon/src/connectors/api.ts} +6 -6
- package/runtime/node_modules/@metro-labs/{mcp/src/daemon/local-cli-api.ts → daemon/src/connectors/cli-api.ts} +5 -5
- package/runtime/node_modules/@metro-labs/{mcp/src/db/connector-config.ts → daemon/src/connectors/config.ts} +4 -4
- package/runtime/node_modules/@metro-labs/{mcp/src/db/connectors.ts → daemon/src/connectors/model.ts} +3 -3
- package/runtime/node_modules/@metro-labs/{mcp/src/daemon → daemon/src/connectors}/oauth-client.ts +2 -2
- package/runtime/node_modules/@metro-labs/{mcp/src/daemon → daemon/src/connectors}/oauth-discovery.ts +2 -2
- package/runtime/node_modules/@metro-labs/{mcp/src/daemon/connector-oauth-routes.ts → daemon/src/connectors/oauth-routes.ts} +6 -6
- package/runtime/node_modules/@metro-labs/{mcp/src/daemon/connector-oauth.ts → daemon/src/connectors/oauth.ts} +3 -3
- package/runtime/node_modules/@metro-labs/{mcp/src/db/connector-relay.ts → daemon/src/connectors/relay-target.ts} +1 -1
- package/runtime/node_modules/@metro-labs/{mcp/src/daemon → daemon/src/connectors}/relay.ts +4 -4
- package/runtime/node_modules/@metro-labs/{mcp/src/db/local-connectors.ts → daemon/src/connectors/store.ts} +12 -12
- package/runtime/node_modules/@metro-labs/{mcp/src/daemon/connector-tools.ts → daemon/src/connectors/tools.ts} +1 -1
- package/runtime/node_modules/@metro-labs/{mcp/src/daemon/connector-url.ts → daemon/src/connectors/url.ts} +1 -1
- package/runtime/node_modules/@metro-labs/{mcp/src/daemon/connector-verify.ts → daemon/src/connectors/verify.ts} +5 -5
- package/runtime/node_modules/@metro-labs/{mcp/src/daemon → daemon/src/files}/attach-grant.ts +3 -3
- package/runtime/node_modules/@metro-labs/{mcp/src/daemon → daemon/src/files}/attach-owner.ts +3 -3
- package/runtime/node_modules/@metro-labs/{mcp/src/daemon → daemon/src/files}/attach-serve.ts +5 -12
- package/runtime/node_modules/@metro-labs/{mcp/src/daemon → daemon/src/files}/upload-api.ts +5 -5
- package/runtime/node_modules/@metro-labs/{mcp/src/daemon → daemon/src/files}/upload-store.ts +2 -2
- package/runtime/node_modules/@metro-labs/{mcp → daemon}/src/gateway/bedrock.ts +1 -1
- package/runtime/node_modules/@metro-labs/{mcp → daemon}/src/gateway/codex-auth.ts +1 -1
- package/runtime/node_modules/@metro-labs/{mcp → daemon}/src/gateway/codex-device.ts +2 -2
- package/runtime/node_modules/@metro-labs/{mcp → daemon}/src/gateway/codex-stream.ts +1 -1
- package/runtime/node_modules/@metro-labs/{mcp → daemon}/src/gateway/codex-translate.ts +1 -1
- package/runtime/node_modules/@metro-labs/{mcp → daemon}/src/gateway/codex.ts +2 -2
- package/runtime/node_modules/@metro-labs/{mcp → daemon}/src/gateway/gateway.ts +2 -2
- package/runtime/node_modules/@metro-labs/{mcp/src/daemon → daemon/src/gateway}/model-api.ts +12 -12
- package/runtime/node_modules/@metro-labs/{mcp → daemon}/src/gateway/model-config.ts +3 -3
- package/runtime/node_modules/@metro-labs/{mcp → daemon}/src/gateway/openrouter.ts +1 -1
- package/runtime/node_modules/@metro-labs/{mcp → daemon}/src/mcp/accounts.ts +3 -7
- package/runtime/node_modules/@metro-labs/{mcp → daemon}/src/mcp/call-tools.ts +3 -3
- package/runtime/node_modules/@metro-labs/{mcp → daemon}/src/mcp/channel-owner.ts +1 -1
- package/runtime/node_modules/@metro-labs/{mcp → daemon}/src/mcp/ctx.ts +4 -4
- package/runtime/node_modules/@metro-labs/{mcp → daemon}/src/mcp/frame-scope.ts +2 -2
- package/runtime/node_modules/@metro-labs/{mcp → daemon}/src/mcp/group-tools.ts +2 -2
- package/runtime/node_modules/@metro-labs/{mcp → daemon}/src/mcp/index.ts +1 -1
- package/runtime/node_modules/@metro-labs/{mcp → daemon}/src/mcp/member-tools.ts +2 -2
- package/runtime/node_modules/@metro-labs/{mcp → daemon}/src/mcp/request-identity.ts +1 -1
- package/runtime/node_modules/@metro-labs/{mcp → daemon}/src/mcp/session-registry.ts +2 -2
- package/runtime/node_modules/@metro-labs/{mcp → daemon}/src/mcp/session.ts +2 -2
- package/runtime/node_modules/@metro-labs/{mcp → daemon}/src/mcp/tool-dispatch.ts +4 -4
- package/runtime/node_modules/@metro-labs/{mcp → daemon}/src/mcp/upload-tool.ts +5 -5
- package/runtime/node_modules/@metro-labs/{mcp → daemon}/src/monitor/api.ts +5 -5
- package/runtime/node_modules/@metro-labs/{mcp/src/daemon → daemon/src/net}/tunnel.ts +6 -10
- package/runtime/node_modules/@metro-labs/{mcp/src/daemon → daemon/src/routes}/http.ts +15 -15
- package/runtime/node_modules/@metro-labs/{mcp/src/daemon/identity-routes.ts → daemon/src/routes/identity.ts} +5 -5
- package/runtime/node_modules/@metro-labs/{mcp/src/daemon → daemon/src/routes}/local-mode.ts +16 -16
- package/runtime/node_modules/@metro-labs/{mcp/src/daemon → daemon/src/routes}/session-apis.ts +14 -20
- package/runtime/node_modules/@metro-labs/{mcp/src/daemon/session-api.ts → daemon/src/routes/session.ts} +1 -1
- package/runtime/node_modules/@metro-labs/{mcp/src/daemon/control-api.ts → daemon/src/server/control.ts} +3 -3
- package/runtime/node_modules/@metro-labs/{mcp/src/daemon/machine-api.ts → daemon/src/server/machine.ts} +8 -8
- package/runtime/node_modules/@metro-labs/{mcp/src/daemon/update-api.ts → daemon/src/server/update.ts} +5 -5
- package/runtime/node_modules/@metro-labs/daemon/src/server.ts +2 -0
- package/runtime/node_modules/@metro-labs/{mcp → daemon}/src/stations/attach-resolve.ts +3 -3
- package/runtime/node_modules/@metro-labs/{mcp/src/daemon → daemon/src/stations}/attach-session.ts +4 -4
- package/runtime/node_modules/@metro-labs/{mcp → daemon}/src/stations/attach-xmtp.ts +1 -1
- package/runtime/node_modules/@metro-labs/{mcp → daemon}/src/stations/attach.ts +3 -3
- package/runtime/node_modules/@metro-labs/{mcp/src/db → daemon/src/stations}/materialize.ts +9 -14
- package/runtime/node_modules/@metro-labs/{mcp → daemon}/src/stations/registry.ts +2 -2
- package/runtime/node_modules/@metro-labs/{mcp/src/daemon → daemon/src/stations}/runtime-deps.ts +4 -4
- package/runtime/node_modules/@metro-labs/{mcp/src/daemon → daemon/src/stations}/supervisor-io.ts +2 -2
- package/runtime/node_modules/@metro-labs/{mcp/src/daemon → daemon/src/stations}/supervisor.ts +4 -4
- package/runtime/node_modules/@metro-labs/{mcp/src/daemon → daemon/src/stations}/train-call.ts +1 -1
- package/runtime/node_modules/@metro-labs/{mcp/src/daemon/terminal-api.ts → daemon/src/terminal/api.ts} +4 -4
- package/runtime/node_modules/@metro-labs/{mcp/src/daemon/terminal-ws.ts → daemon/src/terminal/socket.ts} +3 -3
- package/runtime/node_modules/@metro-labs/discord-bot/package.json +1 -1
- package/runtime/node_modules/@metro-labs/discord-bot/src/accounts.ts +2 -2
- package/runtime/node_modules/@metro-labs/discord-bot/src/actions.ts +3 -3
- package/runtime/node_modules/@metro-labs/discord-bot/src/attachments.ts +2 -2
- package/runtime/node_modules/@metro-labs/discord-bot/src/group.ts +2 -2
- package/runtime/node_modules/@metro-labs/discord-bot/src/index.ts +2 -2
- package/runtime/node_modules/@metro-labs/discord-bot/src/members.ts +2 -2
- package/runtime/node_modules/@metro-labs/discord-bot/src/send-files.ts +1 -1
- package/runtime/node_modules/@metro-labs/discord-bot/src/station.ts +1 -1
- package/runtime/node_modules/@metro-labs/discord-bot/src/voice-speak.ts +1 -1
- package/runtime/node_modules/@metro-labs/discord-bot/src/voice-transcribe.ts +1 -1
- package/runtime/node_modules/@metro-labs/discord-bot/src/voice.ts +1 -1
- package/runtime/node_modules/@metro-labs/discord-bot/src/wire.ts +1 -1
- package/runtime/node_modules/@metro-labs/http/package.json +33 -0
- package/runtime/node_modules/@metro-labs/{mcp/src/daemon → http/src}/api-http.ts +1 -1
- package/runtime/node_modules/@metro-labs/{mcp/src/daemon → http/src}/signed-identity.ts +1 -1
- package/runtime/node_modules/@metro-labs/telegram/package.json +1 -1
- package/runtime/node_modules/@metro-labs/telegram/src/accounts.ts +1 -1
- package/runtime/node_modules/@metro-labs/telegram/src/actions.ts +3 -3
- package/runtime/node_modules/@metro-labs/telegram/src/attachments.ts +1 -1
- package/runtime/node_modules/@metro-labs/telegram/src/client.ts +2 -2
- package/runtime/node_modules/@metro-labs/telegram/src/format.ts +1 -1
- package/runtime/node_modules/@metro-labs/telegram/src/group.ts +3 -3
- package/runtime/node_modules/@metro-labs/telegram/src/inbound.ts +1 -1
- package/runtime/node_modules/@metro-labs/telegram/src/index.ts +3 -3
- package/runtime/node_modules/@metro-labs/telegram/src/media-actions.ts +1 -1
- package/runtime/node_modules/@metro-labs/telegram/src/members.ts +1 -1
- package/runtime/node_modules/@metro-labs/telegram/src/normalize.ts +1 -1
- package/runtime/node_modules/@metro-labs/telegram/src/reactions.ts +1 -1
- package/runtime/node_modules/@metro-labs/telegram/src/station.ts +1 -1
- package/runtime/node_modules/@metro-labs/telegram/src/wire.ts +1 -1
- package/runtime/node_modules/@metro-labs/telegram-bot/package.json +1 -1
- package/runtime/node_modules/@metro-labs/telegram-bot/src/accounts.ts +2 -2
- package/runtime/node_modules/@metro-labs/telegram-bot/src/actions.ts +4 -4
- package/runtime/node_modules/@metro-labs/telegram-bot/src/attachments.ts +2 -2
- package/runtime/node_modules/@metro-labs/telegram-bot/src/format.ts +1 -1
- package/runtime/node_modules/@metro-labs/telegram-bot/src/index.ts +2 -2
- package/runtime/node_modules/@metro-labs/telegram-bot/src/media-actions.ts +1 -1
- package/runtime/node_modules/@metro-labs/telegram-bot/src/members.ts +1 -1
- package/runtime/node_modules/@metro-labs/telegram-bot/src/station.ts +1 -1
- package/runtime/node_modules/@metro-labs/telegram-bot/src/wire.ts +1 -1
- package/runtime/node_modules/@metro-labs/webhook/package.json +1 -1
- package/runtime/node_modules/@metro-labs/webhook/src/station.ts +4 -4
- package/runtime/node_modules/@metro-labs/whatsapp/package.json +1 -1
- package/runtime/node_modules/@metro-labs/whatsapp/src/accounts.ts +1 -1
- package/runtime/node_modules/@metro-labs/whatsapp/src/ack.ts +1 -1
- package/runtime/node_modules/@metro-labs/whatsapp/src/actions.ts +4 -4
- package/runtime/node_modules/@metro-labs/whatsapp/src/attachments.ts +2 -2
- package/runtime/node_modules/@metro-labs/whatsapp/src/auth-state.ts +1 -1
- package/runtime/node_modules/@metro-labs/whatsapp/src/client.ts +2 -2
- package/runtime/node_modules/@metro-labs/whatsapp/src/format.ts +1 -1
- package/runtime/node_modules/@metro-labs/whatsapp/src/inbound.ts +1 -1
- package/runtime/node_modules/@metro-labs/whatsapp/src/index.ts +3 -3
- package/runtime/node_modules/@metro-labs/whatsapp/src/keys.ts +1 -1
- package/runtime/node_modules/@metro-labs/whatsapp/src/login.ts +1 -1
- package/runtime/node_modules/@metro-labs/whatsapp/src/media.ts +1 -1
- package/runtime/node_modules/@metro-labs/whatsapp/src/normalize.ts +1 -1
- package/runtime/node_modules/@metro-labs/whatsapp/src/station.ts +1 -1
- package/runtime/node_modules/@metro-labs/whatsapp/src/token-store.ts +2 -2
- package/runtime/node_modules/@metro-labs/whatsapp/src/wire.ts +1 -1
- package/runtime/node_modules/@metro-labs/xmtp/package.json +1 -1
- package/runtime/node_modules/@metro-labs/xmtp/src/accounts.ts +2 -2
- package/runtime/node_modules/@metro-labs/xmtp/src/actions-close.ts +1 -1
- package/runtime/node_modules/@metro-labs/xmtp/src/actions-conv.ts +1 -1
- package/runtime/node_modules/@metro-labs/xmtp/src/actions-meta.ts +1 -1
- package/runtime/node_modules/@metro-labs/xmtp/src/actions.ts +3 -3
- package/runtime/node_modules/@metro-labs/xmtp/src/attachments.ts +3 -3
- package/runtime/node_modules/@metro-labs/xmtp/src/conv-helpers.ts +2 -2
- package/runtime/node_modules/@metro-labs/xmtp/src/emit-payloads.ts +1 -1
- package/runtime/node_modules/@metro-labs/xmtp/src/emit.ts +1 -1
- package/runtime/node_modules/@metro-labs/xmtp/src/group-members.ts +1 -1
- package/runtime/node_modules/@metro-labs/xmtp/src/group.ts +2 -2
- package/runtime/node_modules/@metro-labs/xmtp/src/index.ts +2 -2
- package/runtime/node_modules/@metro-labs/xmtp/src/member-args.ts +1 -1
- package/runtime/node_modules/@metro-labs/xmtp/src/push.ts +2 -2
- package/runtime/node_modules/@metro-labs/xmtp/src/station.ts +1 -1
- package/runtime/node_modules/@metro-labs/xmtp/src/tools-handlers.ts +3 -3
- package/runtime/node_modules/@metro-labs/xmtp/src/tools.ts +1 -1
- package/runtime/node_modules/@metro-labs/xmtp/src/transcribe.ts +1 -1
- package/runtime/node_modules/@metro-labs/xmtp/src/wire.ts +1 -1
- package/runtime/runtime.json +1 -1
- package/dist/bedrock-eventstream.js +0 -120
- package/dist/bedrock-proxy.js +0 -260
- package/dist/bedrock-upstream.js +0 -72
- package/dist/bedrock.js +0 -37
- package/runtime/node_modules/@metro-labs/mcp/package.json +0 -64
- package/runtime/node_modules/@metro-labs/mcp/src/daemon/server-types.ts +0 -21
- package/runtime/node_modules/@metro-labs/mcp/src/daemon/servers-api.ts +0 -80
- package/runtime/node_modules/@metro-labs/mcp/src/daemon/vault-api.ts +0 -78
- package/runtime/node_modules/@metro-labs/mcp/src/daemon/vault-types.ts +0 -12
- package/runtime/node_modules/@metro-labs/mcp/src/db/client.ts +0 -32
- package/runtime/node_modules/@metro-labs/mcp/src/db/schema.ts +0 -33
- package/runtime/node_modules/@metro-labs/mcp/src/db/servers.ts +0 -83
- package/runtime/node_modules/@metro-labs/mcp/src/db/vault.ts +0 -109
- package/runtime/node_modules/@metro-labs/mcp/src/server.ts +0 -2
- /package/runtime/node_modules/@metro-labs/{mcp/src/db → core/src}/address.ts +0 -0
- /package/runtime/node_modules/@metro-labs/{mcp/src/db → core/src}/ids.ts +0 -0
- /package/runtime/node_modules/@metro-labs/{mcp/src/daemon → core/src}/is-record.ts +0 -0
- /package/runtime/node_modules/@metro-labs/{mcp/src/stations → core/src}/lines.ts +0 -0
- /package/runtime/node_modules/@metro-labs/{mcp/src/daemon → core/src}/log.ts +0 -0
- /package/runtime/node_modules/@metro-labs/{mcp/src/daemon → core/src}/secure-fs.ts +0 -0
- /package/runtime/node_modules/@metro-labs/{mcp/src/db/stations.ts → core/src/station-names.ts} +0 -0
- /package/runtime/node_modules/@metro-labs/{mcp → core}/src/stations/attachments.ts +0 -0
- /package/runtime/node_modules/@metro-labs/{mcp → core}/src/stations/messaging-normalize.ts +0 -0
- /package/runtime/node_modules/@metro-labs/{mcp → core}/src/stations/types.ts +0 -0
- /package/runtime/node_modules/@metro-labs/{mcp/src/mcp → core/src}/str.ts +0 -0
- /package/runtime/node_modules/@metro-labs/{mcp/src/daemon → core/src}/train-error.ts +0 -0
- /package/runtime/node_modules/@metro-labs/{mcp/src/daemon → core/src}/version.ts +0 -0
- /package/runtime/node_modules/@metro-labs/{mcp/src/db/agent-map.ts → daemon/src/agents/map.ts} +0 -0
- /package/runtime/node_modules/@metro-labs/{mcp/src/daemon → daemon/src/boot}/connect-hint.ts +0 -0
- /package/runtime/node_modules/@metro-labs/{mcp → daemon}/src/channels/media-note.ts +0 -0
- /package/runtime/node_modules/@metro-labs/{mcp → daemon}/src/channels/webhook-note.ts +0 -0
- /package/runtime/node_modules/@metro-labs/{mcp/src/daemon/connector-json.ts → daemon/src/connectors/json.ts} +0 -0
- /package/runtime/node_modules/@metro-labs/{mcp/src/daemon → daemon/src/connectors}/oauth-pending.ts +0 -0
- /package/runtime/node_modules/@metro-labs/{mcp → daemon}/src/gateway/eventstream.ts +0 -0
- /package/runtime/node_modules/@metro-labs/{mcp → daemon}/src/gateway/forward.ts +0 -0
- /package/runtime/node_modules/@metro-labs/{mcp → daemon}/src/gateway/served.ts +0 -0
- /package/runtime/node_modules/@metro-labs/{mcp → daemon}/src/mcp/event-store.ts +0 -0
- /package/runtime/node_modules/@metro-labs/{mcp → daemon}/src/mcp/permission-relay.ts +0 -0
- /package/runtime/node_modules/@metro-labs/{mcp → daemon}/src/mcp/raw-get-stream.ts +0 -0
- /package/runtime/node_modules/@metro-labs/{mcp → daemon}/src/mcp/session-route.ts +0 -0
- /package/runtime/node_modules/@metro-labs/{mcp → daemon}/src/mcp/tool-schemas.ts +0 -0
- /package/runtime/node_modules/@metro-labs/{mcp → daemon}/src/stations/attach-inline.ts +0 -0
- /package/runtime/node_modules/@metro-labs/{mcp → daemon}/src/stations/attach-interactive.ts +0 -0
- /package/runtime/node_modules/@metro-labs/{mcp/src/daemon/terminal-tickets.ts → daemon/src/terminal/tickets.ts} +0 -0
- /package/runtime/node_modules/@metro-labs/{mcp/src/daemon → http/src}/api-error.ts +0 -0
- /package/runtime/node_modules/@metro-labs/{mcp/src/daemon → http/src}/cors.ts +0 -0
- /package/runtime/node_modules/@metro-labs/{mcp/src/daemon → http/src}/identity-key.ts +0 -0
- /package/runtime/node_modules/@metro-labs/{mcp/src/daemon → http/src}/identity-registry.ts +0 -0
- /package/runtime/node_modules/@metro-labs/{mcp/src/daemon → http/src}/mode-api.ts +0 -0
- /package/runtime/node_modules/@metro-labs/{mcp/src/daemon → http/src}/return-to.ts +0 -0
package/dist/cli.js
CHANGED
|
@@ -3,7 +3,6 @@ import { mcpServers, whoisAuthorized } from './api.js';
|
|
|
3
3
|
import { stopAll } from './control.js';
|
|
4
4
|
import { tailEvents } from './tail.js';
|
|
5
5
|
import { launchClaude } from './claude.js';
|
|
6
|
-
import { bedrock } from './bedrock.js';
|
|
7
6
|
import { installPlugin } from './plugin.js';
|
|
8
7
|
import { update } from './update.js';
|
|
9
8
|
import { serve } from './serve.js';
|
|
@@ -34,7 +33,6 @@ const USAGE = `metro — run your agent on this machine
|
|
|
34
33
|
metro plugin set up the Claude Code plugin (connector servers + /metro:refresh)
|
|
35
34
|
metro claude [args...]
|
|
36
35
|
open Claude Code with the metro channel; every argument is passed through
|
|
37
|
-
metro bedrock [args...]
|
|
38
36
|
the same, with inference on Amazon Bedrock through a local proxy so the
|
|
39
37
|
channel still works (needs AWS_BEARER_TOKEN_BEDROCK and AWS_REGION)
|
|
40
38
|
metro update update to the newest published version (--check only reports)
|
|
@@ -79,7 +77,6 @@ const COMMANDS = {
|
|
|
79
77
|
},
|
|
80
78
|
plugin: installPlugin,
|
|
81
79
|
claude: () => launchClaude(process.argv.slice(3)),
|
|
82
|
-
bedrock: () => bedrock(process.argv.slice(3)),
|
|
83
80
|
update: () => update(process.argv.slice(3)),
|
|
84
81
|
version: async () => {
|
|
85
82
|
process.stdout.write(`${currentVersion()}\n`);
|
package/dist/runtime.js
CHANGED
|
@@ -3,7 +3,7 @@ import { existsSync } from 'node:fs';
|
|
|
3
3
|
import { dirname, join } from 'node:path';
|
|
4
4
|
import { fileURLToPath } from 'node:url';
|
|
5
5
|
const AGENT_RE = /^[A-Za-z0-9][A-Za-z0-9_-]{10}$/;
|
|
6
|
-
export const SERVER_ENTRY = join('node_modules', '@metro-labs', '
|
|
6
|
+
export const SERVER_ENTRY = join('node_modules', '@metro-labs', 'daemon', 'src', 'server.ts');
|
|
7
7
|
export class MissingRuntime extends Error {
|
|
8
8
|
}
|
|
9
9
|
export function runtimeDir() {
|
package/dist/serve.js
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@stage-labs/metro",
|
|
3
|
-
"version": "0.1.0-beta.
|
|
3
|
+
"version": "0.1.0-beta.77",
|
|
4
4
|
"description": "The metro command line. Sign in once per machine, then hand your MCP connector list to Claude Code without the credentials touching disk, argv or shell history.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@metro-labs/core",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"private": true,
|
|
5
|
+
"description": "What every metro process shares: the logger, the event bus and its types, ids, secure file writes, the train protocol, station types and attachment handling. No HTTP, no policy.",
|
|
6
|
+
"type": "module",
|
|
7
|
+
"exports": {
|
|
8
|
+
"./log": "./src/log.ts",
|
|
9
|
+
"./events": "./src/events.ts",
|
|
10
|
+
"./identity": "./src/identity.ts",
|
|
11
|
+
"./is-record": "./src/is-record.ts",
|
|
12
|
+
"./secure-fs": "./src/secure-fs.ts",
|
|
13
|
+
"./version": "./src/version.ts",
|
|
14
|
+
"./train-error": "./src/train-error.ts",
|
|
15
|
+
"./trains/protocol": "./src/protocol.ts",
|
|
16
|
+
"./ids": "./src/ids.ts",
|
|
17
|
+
"./address": "./src/address.ts",
|
|
18
|
+
"./station-names": "./src/station-names.ts",
|
|
19
|
+
"./str": "./src/str.ts",
|
|
20
|
+
"./lines": "./src/lines.ts",
|
|
21
|
+
"./endpoints": "./src/endpoints.ts",
|
|
22
|
+
"./stations/types": "./src/stations/types.ts",
|
|
23
|
+
"./stations/station-runtime": "./src/stations/station-runtime.ts",
|
|
24
|
+
"./stations/account-store": "./src/stations/account-store.ts",
|
|
25
|
+
"./stations/attachments": "./src/stations/attachments.ts",
|
|
26
|
+
"./stations/messaging-normalize": "./src/stations/messaging-normalize.ts"
|
|
27
|
+
},
|
|
28
|
+
"scripts": {
|
|
29
|
+
"build": "tsc",
|
|
30
|
+
"test": "tsc --noEmit && METRO_STATE_DIR=\"$(mktemp -d /tmp/metro-test.XXXXXX)\" bun test test/"
|
|
31
|
+
},
|
|
32
|
+
"dependencies": {
|
|
33
|
+
"pino": "^9.5.0",
|
|
34
|
+
"pino-pretty": "^13.1.3"
|
|
35
|
+
},
|
|
36
|
+
"devDependencies": {
|
|
37
|
+
"@stage-labs/config": "0.1.0-beta.2",
|
|
38
|
+
"eslint": "^10.3.0",
|
|
39
|
+
"knip": "^6.15.0",
|
|
40
|
+
"madge": "^8.0.0",
|
|
41
|
+
"typescript": "^5"
|
|
42
|
+
}
|
|
43
|
+
}
|
|
@@ -3,7 +3,7 @@ import { join, parse as parsePath } from 'node:path';
|
|
|
3
3
|
import { errMsg, log } from './log.js';
|
|
4
4
|
import { coerceErrorInfo, type TrainErrorInfo } from './train-error.js';
|
|
5
5
|
import type { StructuredEvent } from './events.js';
|
|
6
|
-
import type { CallMsg } from '
|
|
6
|
+
import type { CallMsg } from './stations/station-runtime.js';
|
|
7
7
|
|
|
8
8
|
export {
|
|
9
9
|
TrainError,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { existsSync, readFileSync } from 'node:fs';
|
|
2
|
-
import { errMsg } from '../
|
|
3
|
-
import { chmodIfExists } from '../
|
|
2
|
+
import { errMsg } from '../log.js';
|
|
3
|
+
import { chmodIfExists } from '../secure-fs.js';
|
|
4
4
|
|
|
5
5
|
export type Die = (msg: string) => never;
|
|
6
6
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { serializeTrainError, type TrainErrorInfo } from '../
|
|
1
|
+
import { serializeTrainError, type TrainErrorInfo } from '../train-error.js';
|
|
2
2
|
import type { Normalized } from './messaging-normalize.js';
|
|
3
3
|
|
|
4
4
|
export const emit = (e: unknown): void =>
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@metro-labs/daemon",
|
|
3
|
+
"version": "0.1.0-beta.15",
|
|
4
|
+
"private": true,
|
|
5
|
+
"description": "The metro daemon a user runs on their own machine with `metro serve`: the MCP server Claude Code connects to, the station subprocesses it supervises, the model gateway, and the signed-identity APIs the page at metro.box talks to.",
|
|
6
|
+
"license": "MIT",
|
|
7
|
+
"repository": {
|
|
8
|
+
"type": "git",
|
|
9
|
+
"url": "git+https://github.com/bonustrack/metro.git"
|
|
10
|
+
},
|
|
11
|
+
"homepage": "https://github.com/bonustrack/metro#readme",
|
|
12
|
+
"bugs": "https://github.com/bonustrack/metro/issues",
|
|
13
|
+
"type": "module",
|
|
14
|
+
"engines": {
|
|
15
|
+
"node": ">=22"
|
|
16
|
+
},
|
|
17
|
+
"exports": {
|
|
18
|
+
".": "./src/mcp/index.ts"
|
|
19
|
+
},
|
|
20
|
+
"scripts": {
|
|
21
|
+
"start": "bun src/server.ts",
|
|
22
|
+
"build": "tsc",
|
|
23
|
+
"test": "tsc --noEmit && DYLD_FALLBACK_LIBRARY_PATH=/usr/lib METRO_STATE_DIR=\"$(mktemp -d /tmp/metro-test.XXXXXX)\" bun test test/"
|
|
24
|
+
},
|
|
25
|
+
"dependencies": {
|
|
26
|
+
"@metro-labs/core": "workspace:*",
|
|
27
|
+
"@metro-labs/http": "workspace:*",
|
|
28
|
+
"@metro-labs/discord-bot": "workspace:*",
|
|
29
|
+
"@metro-labs/telegram": "workspace:*",
|
|
30
|
+
"@metro-labs/telegram-bot": "workspace:*",
|
|
31
|
+
"@metro-labs/webhook": "workspace:*",
|
|
32
|
+
"@metro-labs/whatsapp": "workspace:*",
|
|
33
|
+
"@metro-labs/xmtp": "workspace:*",
|
|
34
|
+
"@modelcontextprotocol/sdk": "^1.12.0",
|
|
35
|
+
"viem": "2.52.2",
|
|
36
|
+
"ws": "^8.18.0",
|
|
37
|
+
"zod": "^3.23.8"
|
|
38
|
+
},
|
|
39
|
+
"devDependencies": {
|
|
40
|
+
"@stage-labs/config": "0.1.0-beta.2",
|
|
41
|
+
"@types/ws": "^8.18.0",
|
|
42
|
+
"eslint": "^10.3.0",
|
|
43
|
+
"knip": "^6.15.0",
|
|
44
|
+
"madge": "^8.0.0",
|
|
45
|
+
"typescript": "^5"
|
|
46
|
+
}
|
|
47
|
+
}
|
|
@@ -1,19 +1,19 @@
|
|
|
1
1
|
import type { IncomingMessage, ServerResponse } from 'node:http';
|
|
2
|
-
import { errMsg, log } from '
|
|
3
|
-
import { ApiError } from '
|
|
2
|
+
import { errMsg, log } from '@metro-labs/core/log';
|
|
3
|
+
import { ApiError } from '@metro-labs/http/api-error';
|
|
4
4
|
import {
|
|
5
5
|
apiFailure,
|
|
6
6
|
bodyField,
|
|
7
7
|
readJsonBody,
|
|
8
8
|
sendJson,
|
|
9
9
|
type ApiSession,
|
|
10
|
-
} from '
|
|
10
|
+
} from '@metro-labs/http/api-http';
|
|
11
11
|
import {
|
|
12
12
|
isStationName,
|
|
13
13
|
parseAccountId,
|
|
14
14
|
type AccountRef,
|
|
15
|
-
} from '
|
|
16
|
-
import type { StationName } from '
|
|
15
|
+
} from './account-attach.js';
|
|
16
|
+
import type { StationName } from '@metro-labs/core/station-names';
|
|
17
17
|
import {
|
|
18
18
|
ATTACHABLE_STATIONS,
|
|
19
19
|
isAttachStation,
|
|
@@ -30,7 +30,7 @@ import {
|
|
|
30
30
|
ATTACH_ID_RE,
|
|
31
31
|
type AttachOwner,
|
|
32
32
|
type AttachView,
|
|
33
|
-
} from '
|
|
33
|
+
} from '../stations/attach-session.js';
|
|
34
34
|
|
|
35
35
|
export interface AttachSessionApi {
|
|
36
36
|
start: (
|
package/runtime/node_modules/@metro-labs/{mcp/src/db/agent-admin.ts → daemon/src/agents/admin.ts}
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { randomBytes } from 'node:crypto';
|
|
2
|
-
import { ApiError } from '
|
|
3
|
-
import { AGENT_NAME_RE } from '
|
|
2
|
+
import { ApiError } from '@metro-labs/http/api-error';
|
|
3
|
+
import { AGENT_NAME_RE } from '@metro-labs/core/ids';
|
|
4
4
|
|
|
5
5
|
export class AgentAdminError extends ApiError {}
|
|
6
6
|
|
package/runtime/node_modules/@metro-labs/{mcp/src/daemon/agent-api.ts → daemon/src/agents/api.ts}
RENAMED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { webhookPort } from '
|
|
1
|
+
import { webhookPort } from '../net/tunnel.js';
|
|
2
2
|
import type { IncomingMessage, ServerResponse } from 'node:http';
|
|
3
|
-
import { parseId } from '
|
|
4
|
-
import { errMsg, log } from '
|
|
3
|
+
import { parseId } from '@metro-labs/core/ids';
|
|
4
|
+
import { errMsg, log } from '@metro-labs/core/log';
|
|
5
5
|
import {
|
|
6
6
|
apiFailure,
|
|
7
7
|
apiSession,
|
|
@@ -10,7 +10,7 @@ import {
|
|
|
10
10
|
readJsonBody,
|
|
11
11
|
sendJson,
|
|
12
12
|
type ApiSession,
|
|
13
|
-
} from '
|
|
13
|
+
} from '@metro-labs/http/api-http';
|
|
14
14
|
import {
|
|
15
15
|
accountRoute,
|
|
16
16
|
accountRouteAllows,
|
|
@@ -18,13 +18,13 @@ import {
|
|
|
18
18
|
handleAccountRoute,
|
|
19
19
|
type AccountApiDeps,
|
|
20
20
|
type AccountRoute,
|
|
21
|
-
} from './
|
|
21
|
+
} from './accounts-api.js';
|
|
22
22
|
import {
|
|
23
23
|
type AgentSummary,
|
|
24
24
|
type CreatedAgent,
|
|
25
25
|
type DeletedAgent,
|
|
26
26
|
type ResetAgentKey,
|
|
27
|
-
} from '
|
|
27
|
+
} from './admin.js';
|
|
28
28
|
|
|
29
29
|
const PREFIX = '/api/agents';
|
|
30
30
|
const SERVER_NAME = 'metro';
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import type { IncomingMessage, ServerResponse } from 'node:http';
|
|
2
|
-
import { errMsg, log } from '
|
|
3
|
-
import { apiFailure, apiSession, cors, readJsonBody, sendJson } from '
|
|
4
|
-
import { ApiError } from '
|
|
5
|
-
import { isRecord } from '
|
|
6
|
-
import { parseId } from '
|
|
7
|
-
import type { LoadedAccount, LoadedAgent, LoadedConnector } from '../
|
|
8
|
-
import { STATIONS } from '
|
|
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 { parseId } from '@metro-labs/core/ids';
|
|
7
|
+
import type { LoadedAccount, LoadedAgent, LoadedConnector } from '../stations/materialize.js';
|
|
8
|
+
import { STATIONS } from '@metro-labs/core/station-names';
|
|
9
9
|
|
|
10
10
|
const AGENTS = '/api/agents';
|
|
11
11
|
const RESTORE_PATH = `${AGENTS}/restore`;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { existsSync, readFileSync, rmdirSync, rmSync } from 'node:fs';
|
|
2
2
|
import { join } from 'node:path';
|
|
3
|
-
import { ApiError } from '
|
|
4
|
-
import { ensureSecureDir, writeSecure } from '
|
|
3
|
+
import { ApiError } from '@metro-labs/http/api-error';
|
|
4
|
+
import { ensureSecureDir, writeSecure } from '@metro-labs/core/secure-fs';
|
|
5
5
|
import {
|
|
6
6
|
AgentAdminError,
|
|
7
7
|
newApiKey,
|
|
@@ -11,7 +11,7 @@ import {
|
|
|
11
11
|
type DeletedAgent,
|
|
12
12
|
type OwnedAgent,
|
|
13
13
|
type ResetAgentKey,
|
|
14
|
-
} from './
|
|
14
|
+
} from './admin.js';
|
|
15
15
|
import type { AccountRef } from './account-attach.js';
|
|
16
16
|
import {
|
|
17
17
|
AGENT_FILE,
|
|
@@ -21,12 +21,12 @@ import {
|
|
|
21
21
|
parseAgentFile,
|
|
22
22
|
readAgentFile,
|
|
23
23
|
type AgentFile,
|
|
24
|
-
} from './
|
|
25
|
-
import { newId } from '
|
|
26
|
-
import { registerKey, rotateAgentKey, unregisterAgentKey } from './
|
|
27
|
-
import { MOVABLE_STATIONS, type LoadedAgent } from '
|
|
28
|
-
import type { StationName } from '
|
|
29
|
-
import { normalizeAddress } from '
|
|
24
|
+
} from './files.js';
|
|
25
|
+
import { newId } from '@metro-labs/core/ids';
|
|
26
|
+
import { registerKey, rotateAgentKey, unregisterAgentKey } from './keys.js';
|
|
27
|
+
import { MOVABLE_STATIONS, type LoadedAgent } from '../stations/materialize.js';
|
|
28
|
+
import type { StationName } from '@metro-labs/core/station-names';
|
|
29
|
+
import { normalizeAddress } from '@metro-labs/core/address';
|
|
30
30
|
|
|
31
31
|
export const LOCAL_PROJECT_ID = 'localdaemon';
|
|
32
32
|
const OWNER_FILE = '.owner';
|
package/runtime/node_modules/@metro-labs/{mcp/src/db/file-source.ts → daemon/src/agents/files.ts}
RENAMED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { existsSync, readdirSync, readFileSync } from 'node:fs';
|
|
2
2
|
import { homedir } from 'node:os';
|
|
3
3
|
import { join } from 'node:path';
|
|
4
|
-
import { AGENT_NAME_RE, ID_RE } from '
|
|
5
|
-
import { STATIONS, type StationName } from '
|
|
6
|
-
import type { LoadedAccount, LoadedAgent, StationSource } from '
|
|
7
|
-
import { isRecord } from '
|
|
4
|
+
import { AGENT_NAME_RE, ID_RE } from '@metro-labs/core/ids';
|
|
5
|
+
import { STATIONS, type StationName } from '@metro-labs/core/station-names';
|
|
6
|
+
import type { LoadedAccount, LoadedAgent, StationSource } from '../stations/materialize.js';
|
|
7
|
+
import { isRecord } from '@metro-labs/core/is-record';
|
|
8
8
|
|
|
9
9
|
export const AGENT_FILE = 'agent.json';
|
|
10
10
|
|
package/runtime/node_modules/@metro-labs/{mcp/src/db/agent-scope.ts → daemon/src/agents/scope.ts}
RENAMED
|
@@ -2,8 +2,8 @@ import {
|
|
|
2
2
|
accountFromLine,
|
|
3
3
|
agentIdForAccount,
|
|
4
4
|
stationAgentIds,
|
|
5
|
-
} from './
|
|
6
|
-
import { STATIONS } from '
|
|
5
|
+
} from './map.js';
|
|
6
|
+
import { STATIONS } from '@metro-labs/core/station-names';
|
|
7
7
|
|
|
8
8
|
const ACCOUNT_STATIONS = new Set<string>(STATIONS);
|
|
9
9
|
|
|
@@ -1,31 +1,30 @@
|
|
|
1
1
|
import { join } from 'node:path';
|
|
2
2
|
import { type Server } from 'node:http';
|
|
3
|
-
import { userSelf } from '
|
|
4
|
-
import { setTrainCallBackend } from '
|
|
5
|
-
import { errMsg, log, logFatalSync } from '
|
|
6
|
-
import { acquireLock,
|
|
3
|
+
import { userSelf } from '@metro-labs/core/events';
|
|
4
|
+
import { setTrainCallBackend } from '../stations/train-call.js';
|
|
5
|
+
import { errMsg, log, logFatalSync } from '@metro-labs/core/log';
|
|
6
|
+
import { acquireLock, STATE_DIR, trainsDir } from './paths.js';
|
|
7
7
|
import { installCrashGuard, markDaemonReady } from './crash-guard.js';
|
|
8
|
-
import { METRO_VERSION } from '
|
|
9
|
-
import { funnelDriver, Tunnel, tunnelWanted, webhookPort } from '
|
|
8
|
+
import { METRO_VERSION } from '@metro-labs/core/version';
|
|
9
|
+
import { funnelDriver, Tunnel, tunnelWanted, webhookPort } from '../net/tunnel.js';
|
|
10
10
|
import {
|
|
11
11
|
localConnectHint,
|
|
12
12
|
publicConnectHint,
|
|
13
13
|
tunnelPendingHint,
|
|
14
14
|
} from './connect-hint.js';
|
|
15
|
-
import { TrainSupervisor } from '
|
|
15
|
+
import { TrainSupervisor } from '../stations/supervisor.js';
|
|
16
16
|
import {
|
|
17
17
|
makeEmit,
|
|
18
18
|
startWebhookServer,
|
|
19
19
|
trainEventToMetroEvent,
|
|
20
|
-
} from '
|
|
21
|
-
import { localAgentKey } from '../
|
|
22
|
-
import { fileSource } from '../
|
|
20
|
+
} from '../routes/http.js';
|
|
21
|
+
import { localAgentKey } from '../stations/materialize.js';
|
|
22
|
+
import { fileSource } from '../agents/files.js';
|
|
23
23
|
import { applyLocalOwner } from './local-owner.js';
|
|
24
|
-
import { localOwner } from '../
|
|
25
|
-
import { ensureStationDeps } from '
|
|
26
|
-
import { localSessionApis } from '
|
|
27
|
-
import type {
|
|
28
|
-
import type { SessionApis } from './session-apis.js';
|
|
24
|
+
import { localOwner } from '../agents/file-admin.js';
|
|
25
|
+
import { ensureStationDeps } from '../stations/runtime-deps.js';
|
|
26
|
+
import { localSessionApis } from '../routes/local-mode.js';
|
|
27
|
+
import type { SessionApis } from '../routes/session-apis.js';
|
|
29
28
|
import {
|
|
30
29
|
agentLiveness,
|
|
31
30
|
closeAgentSession,
|
|
@@ -38,9 +37,9 @@ import {
|
|
|
38
37
|
stationByName,
|
|
39
38
|
} from '../stations/registry.js';
|
|
40
39
|
import { prepareAccount } from '../stations/attach.js';
|
|
41
|
-
import { materializeFrom, reloadFrom } from '../
|
|
42
|
-
import type { StationName } from '
|
|
43
|
-
import { startUploadReaper } from '
|
|
40
|
+
import { materializeFrom, reloadFrom } from '../stations/materialize.js';
|
|
41
|
+
import type { StationName } from '@metro-labs/core/station-names';
|
|
42
|
+
import { startUploadReaper } from '../files/upload-store.js';
|
|
44
43
|
|
|
45
44
|
installCrashGuard();
|
|
46
45
|
acquireLock(join(STATE_DIR, '.tail-lock'));
|
|
@@ -96,16 +95,8 @@ async function syncStations(station: StationName): Promise<void> {
|
|
|
96
95
|
}
|
|
97
96
|
}
|
|
98
97
|
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
owner: null,
|
|
102
|
-
project: null,
|
|
103
|
-
version: METRO_VERSION,
|
|
104
|
-
});
|
|
105
|
-
|
|
106
|
-
async function sessionApis(): Promise<SessionApis> {
|
|
107
|
-
if (isLocalMode())
|
|
108
|
-
return localSessionApis({
|
|
98
|
+
function sessionApis(): SessionApis {
|
|
99
|
+
return localSessionApis({
|
|
109
100
|
syncStations,
|
|
110
101
|
restart: () => {
|
|
111
102
|
exitCode = RESTART_EXIT;
|
|
@@ -121,41 +112,22 @@ async function sessionApis(): Promise<SessionApis> {
|
|
|
121
112
|
liveness: agentLiveness,
|
|
122
113
|
prepareAccount,
|
|
123
114
|
});
|
|
124
|
-
const vault = await import('../db/vault.js');
|
|
125
|
-
const servers = await import('../db/servers.js');
|
|
126
|
-
return {
|
|
127
|
-
vaultApi: {
|
|
128
|
-
list: vault.listVaultForOwner,
|
|
129
|
-
put: vault.putVaultForOwner,
|
|
130
|
-
get: vault.getVaultForOwner,
|
|
131
|
-
remove: vault.deleteVaultForOwner,
|
|
132
|
-
},
|
|
133
|
-
serversApi: {
|
|
134
|
-
list: servers.listServersForOwner,
|
|
135
|
-
add: servers.addServerForOwner,
|
|
136
|
-
rename: servers.renameServerForOwner,
|
|
137
|
-
remove: servers.deleteServerForOwner,
|
|
138
|
-
},
|
|
139
|
-
mode: hostedMode,
|
|
140
|
-
};
|
|
141
115
|
}
|
|
142
116
|
|
|
143
117
|
async function main(): Promise<void> {
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
await materializeFrom(fileSource, { allowEmpty: true });
|
|
147
|
-
}
|
|
118
|
+
applyLocalOwner();
|
|
119
|
+
await materializeFrom(fileSource, { allowEmpty: true });
|
|
148
120
|
supervisor.start();
|
|
149
121
|
const metroMcp = await createMetroMcp();
|
|
150
122
|
webhookServer = await startWebhookServer(
|
|
151
123
|
emit,
|
|
152
|
-
|
|
124
|
+
sessionApis(),
|
|
153
125
|
metroMcp.httpHandler,
|
|
154
126
|
metroCall,
|
|
155
127
|
);
|
|
156
128
|
metroMcp.startInbound();
|
|
157
129
|
startUploadReaper();
|
|
158
|
-
|
|
130
|
+
announceLocalEndpoint();
|
|
159
131
|
tunnel?.start();
|
|
160
132
|
log.info(
|
|
161
133
|
{ tunnel: !!tunnel, trainsDir: trainsDir(), mcp: '/', version: METRO_VERSION },
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { localOwner, setLocalOwner } from '../
|
|
2
|
-
import { log } from '
|
|
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 '
|
|
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());
|