Skip to content

Commit bbf3cf2

Browse files
committed
refactor(move): move the daemon proxy into @agent-device/proxy
Moves the proxy that backs `agent-device proxy` out of src/remote into a private workspace package so a later change can publish it for gateways. Health-only host helpers load on the first /health request to keep the package entry within the domain-facade eager-closure ceiling.
1 parent 6278fde commit bbf3cf2

14 files changed

Lines changed: 61 additions & 12 deletions

‎package.json‎

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -175,7 +175,7 @@
175175
"check:unit": "pnpm test:unit && pnpm check:tmpdir-leaks && pnpm test:smoke",
176176
"check": "pnpm check:tooling && pnpm check:fallow && pnpm check:unit",
177177
"prepack": "pnpm check:mcp-metadata && pnpm package:npm",
178-
"typecheck": "tsc -b packages/xml packages/kernel packages/contracts packages/device-selection packages/host-kit packages/capture-kit packages/managed-allocation packages/provision-kit packages/platform-apple packages/platform-android packages/platform-harmonyos packages/platform-vega packages/platform-linux packages/platform-web packages/ad-script packages/selectors packages/command-registry packages/session-journal packages/ad-replay packages/maestro packages/replay-port packages/replay-test packages/provider-webdriver packages/provider-limrun && tsc -p tsconfig.json && tsc -p examples/sdk/tsconfig.json",
178+
"typecheck": "tsc -b packages/xml packages/kernel packages/contracts packages/device-selection packages/host-kit packages/capture-kit packages/managed-allocation packages/provision-kit packages/platform-apple packages/platform-android packages/platform-harmonyos packages/platform-vega packages/platform-linux packages/platform-web packages/ad-script packages/selectors packages/command-registry packages/session-journal packages/ad-replay packages/maestro packages/replay-port packages/replay-test packages/provider-webdriver packages/provider-limrun packages/proxy && tsc -p tsconfig.json && tsc -p examples/sdk/tsconfig.json",
179179
"test-app:install": "pnpm install --dir examples/test-app",
180180
"test-app:start": "pnpm --dir examples/test-app start",
181181
"test-app:ios": "pnpm --dir examples/test-app ios",
@@ -302,6 +302,7 @@
302302
"@agent-device/provider-limrun": "workspace:*",
303303
"@agent-device/provider-webdriver": "workspace:*",
304304
"@agent-device/provision-kit": "workspace:*",
305+
"@agent-device/proxy": "workspace:*",
305306
"@agent-device/replay-port": "workspace:*",
306307
"@agent-device/replay-test": "workspace:*",
307308
"@agent-device/selectors": "workspace:*",

‎packages/proxy/package.json‎

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
{
2+
"name": "@agent-device/proxy",
3+
"version": "0.0.0",
4+
"private": true,
5+
"type": "module",
6+
"description": "Authenticating proxy in front of an agent-device daemon. Internal workspace package bundled into the published artifact.",
7+
"dependencies": {
8+
"@agent-device/contracts": "workspace:*",
9+
"@agent-device/host-kit": "workspace:*",
10+
"@agent-device/kernel": "workspace:*"
11+
},
12+
"exports": {
13+
".": {
14+
"types": "./src/index.ts",
15+
"default": "./src/index.ts"
16+
}
17+
}
18+
}
Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,12 +17,10 @@ import {
1717
buildDaemonHttpAuthHeaders,
1818
buildDaemonHttpUrl,
1919
} from '@agent-device/contracts/daemon-http';
20-
import { readVersion } from '@agent-device/host-kit/version';
21-
import { readHostCpuArch } from '@agent-device/host-kit/process';
2220
import {
2321
carriesUnbackedHostPathInstallSource,
2422
sendHostPathInstallSourceRefused,
25-
} from './proxy-install-source-admission.ts';
23+
} from './install-source-admission.ts';
2624

2725
export type DaemonProxyOptions = {
2826
upstreamBaseUrl: string;
@@ -115,7 +113,11 @@ async function sendProxyHealth(
115113
options: Required<DaemonProxyOptions>,
116114
instanceId: string,
117115
) {
118-
const upstream = await readUpstreamHealth(options);
116+
const [upstream, { readVersion }, { readHostCpuArch }] = await Promise.all([
117+
readUpstreamHealth(options),
118+
import('@agent-device/host-kit/version'),
119+
import('@agent-device/host-kit/process'),
120+
]);
119121
res.statusCode = 200;
120122
res.setHeader('content-type', 'application/json');
121123
res.end(

‎packages/proxy/src/index.ts‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
export { createDaemonProxyServer } from './daemon-proxy.ts';
File renamed without changes.

‎packages/proxy/tsconfig.json‎

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
{
2+
"extends": "../../tsconfig.json",
3+
"compilerOptions": {
4+
"composite": true,
5+
"noEmit": false,
6+
"emitDeclarationOnly": true,
7+
"declaration": true,
8+
"declarationDir": "./dist-types",
9+
"rootDir": "./src"
10+
},
11+
"include": ["src"]
12+
}

‎pnpm-lock.yaml‎

Lines changed: 15 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

‎src/__tests__/daemon-proxy.test.ts‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import { test } from 'vitest';
22
import assert from 'node:assert/strict';
33
import crypto from 'node:crypto';
44
import http from 'node:http';
5-
import { createDaemonProxyServer } from '../remote/daemon-proxy.ts';
5+
import { createDaemonProxyServer } from '@agent-device/proxy';
66
import { createDaemonHttpServer } from '../daemon/server/http-server.ts';
77
import { getRequestSignal } from '@agent-device/host-kit/request';
88
import { readHostCpuArch } from '@agent-device/host-kit/process';

‎src/cli/commands/proxy.ts‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { randomBytes } from 'node:crypto';
2-
import { createDaemonProxyServer } from '../../remote/daemon-proxy.ts';
2+
import { createDaemonProxyServer } from '@agent-device/proxy';
33
import { buildDaemonHttpBaseUrl } from '@agent-device/contracts/daemon-http';
44
import {
55
ensureDaemon,

‎src/daemon-client/__tests__/daemon-client-transport.test.ts‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ import {
2121
sendRequest,
2222
} from '../daemon-client-transport.ts';
2323
import { resolveDaemonPaths } from '../../daemon-resolution.ts';
24-
import { createDaemonProxyServer } from '../../remote/daemon-proxy.ts';
24+
import { createDaemonProxyServer } from '@agent-device/proxy';
2525
import {
2626
closeLoopbackServer,
2727
listenOnLoopback,

0 commit comments

Comments
 (0)