@amalgm/shell 0.1.164-preview.34652103948 → 0.1.164-preview.34945470121

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 (46) hide show
  1. package/PURPOSE.md +55 -8
  2. package/dist/boot.js +11 -4
  3. package/dist/boot.js.map +1 -1
  4. package/dist/builtin-agents.d.ts +1 -1
  5. package/dist/builtin-agents.js +8 -4
  6. package/dist/builtin-agents.js.map +1 -1
  7. package/dist/chat-composition.d.ts +0 -6
  8. package/dist/chat-composition.js +26 -77
  9. package/dist/chat-composition.js.map +1 -1
  10. package/dist/chat-host.d.ts +1 -0
  11. package/dist/chat-host.js +3 -1
  12. package/dist/chat-host.js.map +1 -1
  13. package/dist/chat-toolbox.d.ts +10 -0
  14. package/dist/chat-toolbox.js +37 -0
  15. package/dist/chat-toolbox.js.map +1 -0
  16. package/dist/chat-tools.d.ts +23 -0
  17. package/dist/chat-tools.js +37 -0
  18. package/dist/chat-tools.js.map +1 -0
  19. package/dist/cli.js +19 -9
  20. package/dist/cli.js.map +1 -1
  21. package/dist/credentials-host.d.ts +3 -0
  22. package/dist/credentials-host.js +6 -1
  23. package/dist/credentials-host.js.map +1 -1
  24. package/dist/development/fly-guest.d.ts +21 -0
  25. package/dist/development/fly-guest.js +123 -0
  26. package/dist/development/fly-guest.js.map +1 -0
  27. package/dist/development/fly.d.ts +13 -0
  28. package/dist/development/fly.js +280 -0
  29. package/dist/development/fly.js.map +1 -0
  30. package/dist/development/profile.d.ts +8 -1
  31. package/dist/development/profile.js +24 -4
  32. package/dist/development/profile.js.map +1 -1
  33. package/dist/machine-host.d.ts +11 -0
  34. package/dist/machine-host.js +62 -17
  35. package/dist/machine-host.js.map +1 -1
  36. package/dist/platform-product-host.js +7 -4
  37. package/dist/platform-product-host.js.map +1 -1
  38. package/dist/tool-mcp-client.d.ts +7 -0
  39. package/dist/tool-mcp-client.js +99 -0
  40. package/dist/tool-mcp-client.js.map +1 -0
  41. package/dist/updates/artifacts.d.ts +1 -1
  42. package/dist/updates/store.d.ts +3 -3
  43. package/dist/updates/store.js +3 -3
  44. package/examinations/fixtures/machine-control-plane.js +3 -3
  45. package/npm-shrinkwrap.json +108 -54
  46. package/package.json +12 -12
@@ -0,0 +1,280 @@
1
+ import { spawn } from 'node:child_process';
2
+ import { createHash, createPublicKey, randomBytes, randomUUID } from 'node:crypto';
3
+ import { copyFile, mkdir, mkdtemp, readFile, rm, writeFile } from 'node:fs/promises';
4
+ import { tmpdir } from 'node:os';
5
+ import { isIP } from 'node:net';
6
+ import { join } from 'node:path';
7
+ import { setTimeout as delay } from 'node:timers/promises';
8
+ import { readDevelopmentEnvironment } from './profile.js';
9
+ const serviceSecrets = {
10
+ automations: ['SUPABASE_URL', 'SUPABASE_SERVICE_ROLE_KEY', 'AUTOMATIONS_WEBHOOK_TOKEN_KEY'],
11
+ channels: ['SUPABASE_URL', 'SUPABASE_SERVICE_ROLE_KEY', 'RESEND_API_KEY', 'RESEND_WEBHOOK_SECRET',
12
+ 'CHANNELS_EMAIL_FROM', 'CHANNELS_EMAIL_INBOX', 'CHANNELS_EMAIL_THREAD_SECRET'],
13
+ };
14
+ /** Child output is captured, never streamed: a template inspection can contain
15
+ * service secrets. Errors identify the operation without printing that output. */
16
+ async function command(program, args, options = {}) {
17
+ return new Promise((resolve, reject) => {
18
+ const child = spawn(program, args, { cwd: options.cwd, stdio: ['pipe', 'pipe', 'pipe'], windowsHide: true });
19
+ let stdout = '', stderr = '', exceeded = false;
20
+ const abort = () => { child.kill('SIGTERM'); };
21
+ const timer = setTimeout(abort, options.timeout ?? 60_000);
22
+ options.signal?.addEventListener('abort', abort, { once: true });
23
+ if (options.signal?.aborted)
24
+ abort();
25
+ child.stdout.on('data', (data) => { stdout += data.toString(); if (stdout.length > 20_000_000) {
26
+ exceeded = true;
27
+ abort();
28
+ } });
29
+ child.stderr.on('data', (data) => { stderr = (stderr + data.toString()).slice(-4000); });
30
+ child.once('error', (error) => { clearTimeout(timer); options.signal?.removeEventListener('abort', abort); reject(error); });
31
+ child.once('close', (code) => {
32
+ clearTimeout(timer);
33
+ options.signal?.removeEventListener('abort', abort);
34
+ if (code === 0 && !exceeded)
35
+ resolve(stdout);
36
+ else
37
+ reject(new Error(`${program} ${args[0]} failed${options.sensitive ? '.' : `: ${(options.redact ?? []).reduce((text, value) => text.replaceAll(value, '<redacted>'), stderr).trim() || `exit ${code}`}`}`));
38
+ });
39
+ child.stdin.end(options.input);
40
+ });
41
+ }
42
+ const fly = (args, options) => command('flyctl', args, options);
43
+ async function machines(app) { return JSON.parse(await fly(['machine', 'list', '--app', app, '--json'])); }
44
+ async function immutableImage(image) {
45
+ const match = /^registry\.fly\.io\/([a-z0-9-]+):([a-z0-9-]+)$/.exec(image);
46
+ if (!match)
47
+ throw new Error('Invalid development image reference.');
48
+ const token = (await fly(['auth', 'token'], { sensitive: true })).trim();
49
+ const deadline = Date.now() + 60_000;
50
+ while (Date.now() < deadline) {
51
+ const response = await fetch(`https://registry.fly.io/v2/${match[1]}/manifests/${match[2]}`, {
52
+ headers: { authorization: `Basic ${Buffer.from(`x:${token}`).toString('base64')}`,
53
+ accept: 'application/vnd.oci.image.manifest.v1+json,application/vnd.docker.distribution.manifest.v2+json' },
54
+ signal: AbortSignal.timeout(15_000),
55
+ });
56
+ if (response.ok) {
57
+ const manifest = Buffer.from(await response.arrayBuffer());
58
+ const digest = `sha256:${createHash('sha256').update(manifest).digest('hex')}`;
59
+ if (response.headers.get('docker-content-digest') !== digest)
60
+ throw new Error('The registry manifest does not match its immutable digest.');
61
+ return `registry.fly.io/${match[1]}@${digest}`;
62
+ }
63
+ await response.body?.cancel();
64
+ if (response.status !== 404 && response.status !== 429 && response.status < 500)
65
+ throw new Error(`The development image registry returned ${response.status}.`);
66
+ await delay(1000);
67
+ }
68
+ throw new Error('The pushed development image was not available from its registry within 60 seconds.');
69
+ }
70
+ export function developmentAppName(product, session) {
71
+ if (!/^[a-z0-9]{16,32}$/.test(session))
72
+ throw new Error('A Fly development app requires the source profile session identity.');
73
+ return `amalgm-${product}-dev-${session}`;
74
+ }
75
+ export function publicDevelopmentKeys(value) {
76
+ const source = JSON.parse(value || '{}');
77
+ if (!Array.isArray(source.keys) || source.keys.length === 0)
78
+ throw new Error('Fly development needs the local issuer signing keyring.');
79
+ return { keys: source.keys.map((key) => ({
80
+ ...createPublicKey({ key, format: 'jwk' }).export({ format: 'jwk' }),
81
+ ...(typeof key.kid === 'string' ? { kid: key.kid } : {}), alg: 'ES256', use: 'sig',
82
+ })) };
83
+ }
84
+ /** One foreground development runtime owns its Fly capacity. App containers
85
+ * retain the cached image and encrypted configuration; every machine is leased,
86
+ * private, source-bound and disposable. Managed source fleets are read-only. */
87
+ export async function startDevelopmentFly(profile, signal, log = console.log) {
88
+ const products = Object.entries(profile.fly ?? {});
89
+ const owned = [];
90
+ let heartbeat;
91
+ let closed = false;
92
+ const failed = new AbortController();
93
+ const work = AbortSignal.any([signal, failed.signal]);
94
+ const close = async () => {
95
+ if (closed)
96
+ return;
97
+ closed = true;
98
+ clearTimeout(heartbeat);
99
+ for (const guest of owned.reverse()) {
100
+ if (guest.proxy) {
101
+ guest.proxy.stdin?.end();
102
+ guest.proxy.kill('SIGTERM');
103
+ }
104
+ try {
105
+ const current = (await machines(guest.app)).find((machine) => machine.id === guest.id);
106
+ if (current && current.config.metadata?.amalgm_dev_owner === guest.owner
107
+ && current.config.metadata?.amalgm_dev_session === profile.localSession) {
108
+ await fly(['machine', 'destroy', current.id, '--app', guest.app, '--force']);
109
+ if ((await machines(guest.app)).some((machine) => machine.id === current.id))
110
+ throw new Error('Fly retained the development machine.');
111
+ }
112
+ }
113
+ catch (error) {
114
+ log(`Fly cleanup: ${error instanceof Error ? error.message : String(error)} The guest lease still expires independently.`);
115
+ }
116
+ }
117
+ };
118
+ if (!products.length)
119
+ return { close, signal: failed.signal };
120
+ const jwks = publicDevelopmentKeys(readDevelopmentEnvironment(profile).AMALGM_AUTHORIZATION_SIGNING_JWKS);
121
+ const scratch = await mkdtemp(join(tmpdir(), 'amalgm-development-fly-'));
122
+ const cacheRoot = join(profile.sources['@amalgm/shell'].root, '.amalgm', 'development-fly');
123
+ try {
124
+ await mkdir(cacheRoot, { recursive: true });
125
+ const packed = JSON.parse(await command('npm', ['pack', '--json', '--ignore-scripts', '--pack-destination', scratch], { cwd: profile.sources['@amalgm/core'].root, signal: work }));
126
+ const coreArchive = join(scratch, packed[0].filename);
127
+ const coreBytes = await readFile(coreArchive);
128
+ const guestBytes = await readFile(new URL('./fly-guest.js', import.meta.url));
129
+ const apps = JSON.parse(await fly(['apps', 'list', '--json'], { signal: work }));
130
+ for (const [product, selected] of products) {
131
+ work.throwIfAborted();
132
+ if (!selected)
133
+ continue;
134
+ const app = developmentAppName(product, profile.localSession);
135
+ const existing = apps.find(({ Name }) => Name === app);
136
+ if (existing && existing.Organization.Slug !== selected.organization)
137
+ throw new Error('The development app belongs to another organization.');
138
+ const template = (await machines(selected.templateApp)).find((machine) => machine.state === 'started');
139
+ if (!template || !/^registry\.fly\.io\/[a-z0-9-]+@sha256:[a-f0-9]{64}$/.test(template.config.image))
140
+ throw new Error(`No immutable running ${product} template is available.`);
141
+ if (!existing)
142
+ await fly(['apps', 'create', app, '--org', selected.organization, '--yes', '--json'], { signal: work });
143
+ // A lost owner stops renewing remotely; wait for expiry instead of taking
144
+ // ownership from a remembered PID or deleting an unproven live machine.
145
+ const before = await machines(app);
146
+ if (before.length)
147
+ throw new Error(`A ${product} dev machine still exists. Stop its owner or wait for its lease to expire before restarting.`);
148
+ log(`Preparing ${product} on Fly from ${selected.templateApp}.`);
149
+ const inspect = `console.log(JSON.stringify(Object.fromEntries(${JSON.stringify(serviceSecrets[product])}.map(k=>[k,process.env[k]]))))`;
150
+ const result = JSON.parse(await fly(['machine', 'exec', template.id,
151
+ `node -e '${inspect.replace(/'/g, `'\"'\"'`)}'`, '--app', selected.templateApp, '--json'], { signal: work, sensitive: true }));
152
+ if (result.exit_code)
153
+ throw new Error(`Could not read the declared ${product} service configuration.`);
154
+ const secrets = JSON.parse(result.stdout || '{}');
155
+ if (serviceSecrets[product].some((key) => !secrets[key] || /[\r\n]/.test(secrets[key])))
156
+ throw new Error(`The ${product} template is missing required service configuration.`);
157
+ await fly(['secrets', 'import', '--app', app, '--stage'], {
158
+ input: serviceSecrets[product].map((key) => `${key}=${secrets[key]}`).join('\n') + '\n', signal: work, sensitive: true,
159
+ });
160
+ const fingerprint = createHash('sha256').update(template.config.image).update(coreBytes).update(guestBytes).digest('hex');
161
+ const image = `registry.fly.io/${app}:dev-${fingerprint}`;
162
+ const receiptFile = join(cacheRoot, `${product}.json`);
163
+ let receipt = {};
164
+ try {
165
+ receipt = JSON.parse(await readFile(receiptFile, 'utf8'));
166
+ }
167
+ catch { /* No previously built image. */ }
168
+ if (receipt.image !== image) {
169
+ const context = join(scratch, product);
170
+ await mkdir(context);
171
+ await copyFile(coreArchive, join(context, 'core.tgz'));
172
+ await writeFile(join(context, 'fly-guest.js'), guestBytes);
173
+ await writeFile(join(context, 'Dockerfile'), `FROM ${template.config.image}\nUSER root\nWORKDIR /service\nCOPY core.tgz /tmp/core.tgz\nRUN npm install --omit=dev --ignore-scripts --no-audit --no-fund /tmp/core.tgz && rm /tmp/core.tgz\nCOPY fly-guest.js /service/dev-guest.js\nUSER node\nCMD ["node", "/service/dev-guest.js"]\n`);
174
+ await writeFile(join(context, 'fly.toml'), `app = "${app}"\nprimary_region = "${template.region}"\n[build]\n dockerfile = "Dockerfile"\n`);
175
+ log(`Building the ${product} dev image remotely.`);
176
+ await fly(['deploy', '--app', app, '--build-only', '--push', '--remote-only', '--image-label', `dev-${fingerprint}`], { cwd: context, signal: work, timeout: 600_000 });
177
+ await writeFile(receiptFile, JSON.stringify({ image, template: template.config.image, core: packed[0].shasum }) + '\n');
178
+ }
179
+ log(`Resolving the immutable ${product} image.`);
180
+ const imageDigest = await immutableImage(image);
181
+ const guest = { app, owner: randomUUID(), origin: profile.endpoints[product], leaseToken: randomBytes(32).toString('base64url') };
182
+ owned.push(guest);
183
+ const config = { product, session: profile.localSession, owner: guest.owner, branch: profile.branch,
184
+ issuer: profile.endpoints.app, origin: guest.origin, jwks, leaseToken: guest.leaseToken,
185
+ leaseMs: 75_000, listenPort: 8080, productPort: 8081 };
186
+ const machineConfig = { image: imageDigest, auto_destroy: true, restart: { policy: 'no' },
187
+ guest: { cpu_kind: 'shared', cpus: 1, memory_mb: 512 }, services: [],
188
+ metadata: { amalgm_dev_session: profile.localSession, amalgm_dev_owner: guest.owner, amalgm_dev_product: product },
189
+ files: [{ guest_path: '/service/dev-session.json', raw_value: Buffer.from(JSON.stringify(config)).toString('base64') }],
190
+ };
191
+ const token = (await fly(['auth', 'token'], { sensitive: true })).trim();
192
+ log(`Starting the private ${product} machine.`);
193
+ const launched = await fetch(`https://api.machines.dev/v1/apps/${app}/machines`, {
194
+ method: 'POST', headers: { authorization: `Bearer ${token}`, 'content-type': 'application/json' },
195
+ body: JSON.stringify({ name: `dev-${guest.owner}`, region: template.region, config: machineConfig }),
196
+ signal: AbortSignal.any([work, AbortSignal.timeout(60_000)]),
197
+ });
198
+ if (!launched.ok) {
199
+ const detail = (await launched.text()).replaceAll(guest.leaseToken, '<redacted>').replaceAll(machineConfig.files[0].raw_value, '<redacted>');
200
+ throw new Error(`Fly could not create ${product} (${launched.status}): ${detail.slice(0, 1500)}`);
201
+ }
202
+ const launchedMachine = await launched.json();
203
+ guest.id = launchedMachine.id;
204
+ const created = (await machines(app)).filter((machine) => machine.config.metadata?.amalgm_dev_owner === guest.owner);
205
+ if (created.length !== 1)
206
+ throw new Error(`Could not establish ownership of the ${product} dev machine.`);
207
+ guest.id = created[0].id;
208
+ if (created[0].config.metadata?.amalgm_dev_session !== profile.localSession)
209
+ throw new Error('The Fly guest has another source binding.');
210
+ if (isIP(launchedMachine.private_ip) !== 6)
211
+ throw new Error('The development machine has no private Fly address.');
212
+ const proxy = spawn('flyctl', ['proxy', `${new URL(guest.origin).port}:8080`, launchedMachine.private_ip,
213
+ '--app', app, '--bind-addr', new URL(guest.origin).hostname, '--watch-stdin'], { stdio: ['pipe', 'ignore', 'pipe'], windowsHide: true });
214
+ guest.proxy = proxy;
215
+ let proxyError = '';
216
+ proxy.stderr?.on('data', (chunk) => { proxyError = (proxyError + chunk.toString()).slice(-1500); });
217
+ proxy.once('error', (error) => failed.abort(error));
218
+ proxy.once('exit', () => { if (!closed)
219
+ failed.abort(new Error(`The ${product} Fly tunnel stopped: ${proxyError.trim()}`)); });
220
+ const deadline = Date.now() + 60_000;
221
+ let ready = false;
222
+ while (Date.now() < deadline) {
223
+ work.throwIfAborted();
224
+ try {
225
+ await renew(guest, profile.localSession);
226
+ const health = await fetch(`${guest.origin}/healthz`, { signal: AbortSignal.timeout(2000) });
227
+ if (health.ok) {
228
+ ready = true;
229
+ break;
230
+ }
231
+ }
232
+ catch { /* Readiness has one bounded budget; ownership is already recorded. */ }
233
+ await delay(500, undefined, { signal: work });
234
+ }
235
+ if (!ready)
236
+ throw new Error(`The ${product} Fly guest did not become ready within 60 seconds.`);
237
+ log(`${product} ready on its private Fly dev machine.`);
238
+ // Keep earlier guests alive while the next image is being built.
239
+ scheduleRenewal();
240
+ }
241
+ return { close, signal: failed.signal };
242
+ }
243
+ catch (error) {
244
+ await close();
245
+ throw work.aborted ? work.reason : error;
246
+ }
247
+ finally {
248
+ await rm(scratch, { recursive: true, force: true });
249
+ }
250
+ function scheduleRenewal() {
251
+ clearTimeout(heartbeat);
252
+ heartbeat = setTimeout(async () => {
253
+ if (closed)
254
+ return;
255
+ try {
256
+ for (const guest of owned)
257
+ if (guest.id)
258
+ await renew(guest, profile.localSession);
259
+ }
260
+ catch (error) {
261
+ if (!closed) {
262
+ failed.abort(error);
263
+ log('The Fly development lease could not renew.');
264
+ }
265
+ }
266
+ if (!closed && !failed.signal.aborted)
267
+ scheduleRenewal();
268
+ }, 20_000);
269
+ }
270
+ }
271
+ async function renew(guest, session) {
272
+ const result = await fetch(`${guest.origin}/__amalgm/dev/lease`, { method: 'POST',
273
+ headers: { 'x-amalgm-dev-lease': guest.leaseToken }, signal: AbortSignal.timeout(5000) });
274
+ if (!result.ok)
275
+ throw new Error('The Fly development lease was refused.');
276
+ const identity = await result.json();
277
+ if (identity.session !== session || identity.owner !== guest.owner)
278
+ throw new Error('The Fly development guest has another owner.');
279
+ }
280
+ //# sourceMappingURL=fly.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fly.js","sourceRoot":"","sources":["../../src/development/fly.ts"],"names":[],"mappings":"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"}
@@ -4,6 +4,10 @@ export interface LocalSource {
4
4
  readonly commit: string | null;
5
5
  readonly dirty: boolean;
6
6
  }
7
+ export interface DevelopmentFlyProduct {
8
+ readonly templateApp: string;
9
+ readonly organization: string;
10
+ }
7
11
  export interface DevelopmentProfile {
8
12
  readonly file: string;
9
13
  readonly branch: string;
@@ -13,9 +17,12 @@ export interface DevelopmentProfile {
13
17
  readonly endpoints: Readonly<Record<string, string>>;
14
18
  readonly uiRoot?: string;
15
19
  readonly environmentFile?: string;
20
+ readonly fly?: Readonly<Partial<Record<'automations' | 'channels', DevelopmentFlyProduct>>>;
16
21
  }
17
22
  /** A local profile is an explicit source selection. It cannot silently import
18
- * an omitted private product from the registry or use a hosted service. */
23
+ * an omitted private product from the registry or use a hosted service; only a
24
+ * declared managed Supabase may be shared, for sign-in. Omitting the wire
25
+ * means Files has no cloud rail and stays unavailable in that runtime. */
19
26
  export declare function readDevelopmentProfile(file: string, shellRoot: string): DevelopmentProfile;
20
27
  /** The profile records only this path; secrets never enter its metadata. */
21
28
  export declare function readDevelopmentEnvironment(profile: DevelopmentProfile): Record<string, string | undefined>;
@@ -6,7 +6,9 @@ import { dirname, isAbsolute, join, relative, resolve } from 'node:path';
6
6
  import { fileURLToPath, pathToFileURL } from 'node:url';
7
7
  import { parseEnv } from 'node:util';
8
8
  /** A local profile is an explicit source selection. It cannot silently import
9
- * an omitted private product from the registry or use a hosted service. */
9
+ * an omitted private product from the registry or use a hosted service; only a
10
+ * declared managed Supabase may be shared, for sign-in. Omitting the wire
11
+ * means Files has no cloud rail and stays unavailable in that runtime. */
10
12
  export function readDevelopmentProfile(file, shellRoot) {
11
13
  const profileFile = realpathSync(file);
12
14
  const raw = JSON.parse(readFileSync(profileFile, 'utf8'));
@@ -76,16 +78,34 @@ export function readDevelopmentProfile(file, shellRoot) {
76
78
  if (url.pathname !== '/wire')
77
79
  throw new Error('The local wire endpoint must name /wire.');
78
80
  }
79
- if (!['127.0.0.1', 'localhost', '[::1]'].includes(url.hostname))
80
- throw new Error(`Local profile endpoint ${name} must be loopback; remote Fly examinations require their own explicit host binding.`);
81
+ const loopback = ['127.0.0.1', 'localhost', '[::1]'].includes(url.hostname);
82
+ if (!loopback && (name !== 'supabase' || url.protocol !== 'https:')) {
83
+ throw new Error(`Local profile endpoint ${name} must be loopback; only supabase may name a managed https authority.`);
84
+ }
81
85
  endpoints[name] = url.href.replace(/\/$/, '');
82
86
  }
83
87
  if (raw.environmentFile !== undefined && typeof raw.environmentFile !== 'string')
84
88
  throw new Error('environmentFile must name an explicit local environment file.');
85
89
  const environmentFile = raw.environmentFile === undefined ? undefined : realpathSync(resolve(dirname(profileFile), raw.environmentFile));
90
+ const fly = {};
91
+ if (raw.fly !== undefined && (!raw.fly || typeof raw.fly !== 'object' || Array.isArray(raw.fly)))
92
+ throw new Error('fly must map product names to template apps.');
93
+ for (const [product, input] of Object.entries(raw.fly ?? {})) {
94
+ if (product !== 'automations' && product !== 'channels')
95
+ throw new Error(`Unsupported development Fly product: ${product}`);
96
+ const value = input;
97
+ if (!value || !/^[a-z][a-z0-9-]{2,62}$/.test(value.templateApp) || !/^[a-z0-9-]+$/.test(value.organization))
98
+ throw new Error(`Fly ${product} needs a templateApp and organization.`);
99
+ if (!sources[`@amalgm/${product}`] || !endpoints[product] || !endpoints.app || !environmentFile)
100
+ throw new Error(`Fly ${product} requires its source, loopback endpoint, app endpoint and issuer environment file.`);
101
+ if (!Number(new URL(endpoints[product]).port))
102
+ throw new Error(`Fly ${product} requires an explicit local port.`);
103
+ fly[product] = Object.freeze({ templateApp: value.templateApp, organization: value.organization });
104
+ }
86
105
  return Object.freeze({ file: profileFile, branch, localSession, sources: Object.freeze(sources),
87
106
  services: Object.freeze([...new Set(['core', 'files', ...raw.services])]), endpoints: Object.freeze(endpoints),
88
- ...(uiRoot ? { uiRoot } : {}), ...(environmentFile ? { environmentFile } : {}) });
107
+ ...(uiRoot ? { uiRoot } : {}), ...(environmentFile ? { environmentFile } : {}),
108
+ ...(Object.keys(fly).length ? { fly: Object.freeze(fly) } : {}) });
89
109
  }
90
110
  /** The profile records only this path; secrets never enter its metadata. */
91
111
  export function readDevelopmentEnvironment(profile) {
@@ -1 +1 @@
1
- {"version":3,"file":"profile.js","sourceRoot":"","sources":["../../src/development/profile.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"profile.js","sourceRoot":"","sources":["../../src/development/profile.ts"],"names":[],"mappings":"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"}
@@ -22,6 +22,8 @@ export interface MachineHostOptions {
22
22
  readonly localSession?: string;
23
23
  /** Explicit local availability; managed installations retain their release selection. */
24
24
  readonly services?: readonly string[];
25
+ /** Available product packages from the explicit local source profile. */
26
+ readonly localProductSources?: readonly string[];
25
27
  readonly proxyUrl?: string;
26
28
  readonly wireUrl?: string;
27
29
  /** Hosted product endpoints. Omit in isolated hosts that do not compose them. */
@@ -68,6 +70,9 @@ interface MachinePaths {
68
70
  }
69
71
  export interface MachineStatus {
70
72
  readonly binding: RuntimeBinding;
73
+ /** A local runtime with no declared Wire composes no Files cloud rail:
74
+ * setup needs no tunnel, Files stays unavailable, everything else runs. */
75
+ readonly wireComposed: boolean;
71
76
  readonly user: string;
72
77
  readonly deviceId: string | null;
73
78
  readonly registration: "absent" | "incomplete" | "ready";
@@ -96,6 +101,9 @@ export declare class MachineHost {
96
101
  readonly deviceFile: string;
97
102
  readonly ports: MachineSetupPorts;
98
103
  readonly binding: RuntimeBinding;
104
+ /** A local runtime with no declared Wire composes no Files cloud rail:
105
+ * setup needs no tunnel, Files stays unavailable, everything else runs. */
106
+ readonly wireComposed: boolean;
99
107
  private readonly ownership;
100
108
  private selectedUserEmail;
101
109
  private groundHost;
@@ -149,6 +157,9 @@ export declare class MachineHost {
149
157
  private resolveUserForResume;
150
158
  private assertRecordBinding;
151
159
  private loadMachine;
160
+ /** A changed declared authority makes durable registration non-adoptable,
161
+ * not a reason to prevent a newly approved setup from replacing it. */
162
+ private loadAdoptableMachine;
152
163
  private saveMachine;
153
164
  private acquireRuntimeOwnership;
154
165
  private startRuntime;