@nimbus-sh/worker 0.5.0 → 0.6.0
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/_shared/preview-host.d.ts +26 -8
- package/dist/_shared/preview-host.d.ts.map +1 -1
- package/dist/_shared/preview-host.js +51 -11
- package/dist/facets/durable-images.d.ts +9 -0
- package/dist/facets/durable-images.d.ts.map +1 -1
- package/dist/facets/durable-images.js +20 -1
- package/dist/facets/durable-slots.d.ts +1 -1
- package/dist/facets/durable-slots.d.ts.map +1 -1
- package/dist/facets/durable-slots.js +2 -1
- package/dist/facets/manager.d.ts +98 -15
- package/dist/facets/manager.d.ts.map +1 -1
- package/dist/facets/manager.js +443 -116
- package/dist/facets/resident-identity.d.ts +23 -0
- package/dist/facets/resident-identity.d.ts.map +1 -0
- package/dist/facets/resident-identity.js +31 -0
- package/dist/git/commands.d.ts +0 -1
- package/dist/git/commands.d.ts.map +1 -1
- package/dist/git/commands.js +0 -3
- package/dist/router/index.d.ts.map +1 -1
- package/dist/router/index.js +47 -10
- package/dist/router/public-directory.d.ts +5 -1
- package/dist/router/public-directory.d.ts.map +1 -1
- package/dist/router/public-directory.js +9 -2
- package/dist/router/remote-api.d.ts +18 -0
- package/dist/router/remote-api.d.ts.map +1 -1
- package/dist/router/remote-api.js +33 -4
- package/dist/runtime/cpython-resident.d.ts.map +1 -1
- package/dist/runtime/cpython-resident.js +3 -1
- package/dist/runtime/package-manager.d.ts +44 -1
- package/dist/runtime/package-manager.d.ts.map +1 -1
- package/dist/runtime/package-manager.js +168 -3
- package/dist/runtime/ruby-resident.d.ts.map +1 -1
- package/dist/runtime/ruby-resident.js +2 -0
- package/dist/session/agent.d.ts.map +1 -1
- package/dist/session/agent.js +28 -1
- package/dist/session/init.d.ts.map +1 -1
- package/dist/session/init.js +9 -0
- package/dist/session/keys.d.ts +4 -0
- package/dist/session/keys.d.ts.map +1 -1
- package/dist/session/keys.js +4 -0
- package/dist/session/nimbus-session.d.ts +34 -1
- package/dist/session/nimbus-session.d.ts.map +1 -1
- package/dist/session/nimbus-session.js +71 -10
- package/dist/session/port-capability.d.ts +46 -0
- package/dist/session/port-capability.d.ts.map +1 -1
- package/dist/session/port-capability.js +109 -9
- package/dist/session/programmatic.d.ts +95 -1
- package/dist/session/programmatic.d.ts.map +1 -1
- package/dist/session/programmatic.js +350 -26
- package/dist/session/routes.d.ts +9 -0
- package/dist/session/routes.d.ts.map +1 -1
- package/dist/session/routes.js +27 -2
- package/dist/session/rpc.d.ts +24 -1
- package/dist/session/rpc.d.ts.map +1 -1
- package/dist/session/rpc.js +51 -94
- package/dist/session/supervisor-op.d.ts +41 -4
- package/dist/session/supervisor-op.d.ts.map +1 -1
- package/dist/session/supervisor-op.js +95 -73
- package/dist/session/supervisor-rpc.d.ts.map +1 -1
- package/dist/session/supervisor-rpc.js +2 -3
- package/package.json +4 -4
|
@@ -55,24 +55,42 @@ declare const PortVisibilitySchema: z.ZodEnum<{
|
|
|
55
55
|
public: "public";
|
|
56
56
|
}>;
|
|
57
57
|
export type PortVisibility = z.infer<typeof PortVisibilitySchema>;
|
|
58
|
+
/**
|
|
59
|
+
* The optional name alias a reservation may carry: one DNS label, so it can
|
|
60
|
+
* stand where the port stands in a preview host (`<name>--<sid>`). Never
|
|
61
|
+
* purely numeric — a numeric middle label IS a port. No `--`: that is the
|
|
62
|
+
* host-label separator. No 24 lowercase hex: that is ambiguous with a
|
|
63
|
+
* capability label, so parsing could mistake a name for a bearer.
|
|
64
|
+
*/
|
|
65
|
+
export declare const APP_NAME_RE: RegExp;
|
|
66
|
+
export declare function isValidAppName(name: string): boolean;
|
|
58
67
|
export declare const PortRecordSchema: z.ZodObject<{
|
|
68
|
+
kind: z.ZodDefault<z.ZodEnum<{
|
|
69
|
+
explicit: "explicit";
|
|
70
|
+
derived: "derived";
|
|
71
|
+
}>>;
|
|
59
72
|
capability: z.ZodNullable<z.ZodString>;
|
|
60
73
|
owner: z.ZodNullable<z.ZodString>;
|
|
61
74
|
visibility: z.ZodOptional<z.ZodEnum<{
|
|
62
75
|
scoped: "scoped";
|
|
63
76
|
public: "public";
|
|
64
77
|
}>>;
|
|
78
|
+
name: z.ZodOptional<z.ZodString>;
|
|
65
79
|
}, z.core.$strip>;
|
|
66
80
|
export interface PortExposure {
|
|
67
81
|
readonly capability: string;
|
|
68
82
|
readonly owner: string | null;
|
|
69
83
|
readonly visibility: PortVisibility;
|
|
84
|
+
readonly name?: string;
|
|
70
85
|
}
|
|
71
86
|
/** The per-port record as stored: a bare reservation has no capability yet. */
|
|
72
87
|
export interface PortReservation {
|
|
88
|
+
readonly kind: 'explicit' | 'derived';
|
|
73
89
|
readonly owner: string | null;
|
|
74
90
|
readonly capability: string | null;
|
|
75
91
|
readonly visibility: PortVisibility;
|
|
92
|
+
/** The reservation's name alias, when one was given at expose time. */
|
|
93
|
+
readonly name?: string;
|
|
76
94
|
}
|
|
77
95
|
export declare function portRecordKey(port: number): string;
|
|
78
96
|
/** Read the raw per-port record: a reservation, an exposure, or nothing. */
|
|
@@ -81,6 +99,24 @@ export declare function readPortReservation(ctx: {
|
|
|
81
99
|
}, port: number): Promise<PortReservation | null>;
|
|
82
100
|
/** Read retained exposure metadata without starting a session or restoring a listener. */
|
|
83
101
|
export declare function readPortExposure(ctx: PortCapabilityHost['ctx'], port: number): Promise<PortExposure | null>;
|
|
102
|
+
/** Every stored port record, keyed by port — the scan `apps.list` and the name lookups read. */
|
|
103
|
+
export declare function listPortReservations(ctx: {
|
|
104
|
+
storage: PortReservationTransaction;
|
|
105
|
+
}): Promise<Map<number, PortReservation>>;
|
|
106
|
+
/** The port a name alias resolves to inside this session, or null. */
|
|
107
|
+
export declare function readPortReservationByName(ctx: {
|
|
108
|
+
storage: PortReservationTransaction;
|
|
109
|
+
}, name: string): Promise<{
|
|
110
|
+
port: number;
|
|
111
|
+
reservation: PortReservation;
|
|
112
|
+
} | null>;
|
|
113
|
+
/** The port an owner holds, or null when the owner has no reservation. */
|
|
114
|
+
export declare function readPortReservationByOwner(ctx: {
|
|
115
|
+
storage: PortReservationTransaction;
|
|
116
|
+
}, owner: string): Promise<{
|
|
117
|
+
port: number;
|
|
118
|
+
reservation: PortReservation;
|
|
119
|
+
} | null>;
|
|
84
120
|
/**
|
|
85
121
|
* Hold a port for `owner` across instances. The owner's existing port is
|
|
86
122
|
* answered again; otherwise the preferred port is claimed, or the lowest
|
|
@@ -97,9 +133,12 @@ export declare function readPortExposure(ctx: PortCapabilityHost['ctx'], port: n
|
|
|
97
133
|
export declare function reservePort(ctx: PortReservationHost['ctx'], input: {
|
|
98
134
|
owner: string;
|
|
99
135
|
preferredPort?: number;
|
|
136
|
+
kind?: 'explicit' | 'derived';
|
|
100
137
|
occupiedPorts: ReadonlySet<number>;
|
|
101
138
|
capability?: string;
|
|
102
139
|
visibility?: PortVisibility;
|
|
140
|
+
/** A name alias for the reservation — unique per session, DNS-label-safe. */
|
|
141
|
+
name?: string;
|
|
103
142
|
}): Promise<number>;
|
|
104
143
|
/** End an owner's hold on a port. Another owner's record is left alone and refused. */
|
|
105
144
|
export declare function releasePortReservation(ctx: PortReservationHost['ctx'], input: {
|
|
@@ -120,6 +159,13 @@ export declare function restorePortCapability(self: PortCapabilityHost, port: nu
|
|
|
120
159
|
*/
|
|
121
160
|
export declare function restoreReservedPortCapability(self: PortCapabilityHost, port: number, owner: string): Promise<string | null>;
|
|
122
161
|
export declare function persistPortCapability(self: PortCapabilityHost, port: number, capability: string): Promise<void>;
|
|
162
|
+
/**
|
|
163
|
+
* Replace the port's capability with a freshly minted one, in place: owner,
|
|
164
|
+
* visibility and name stay, every URL built on the old value stops
|
|
165
|
+
* resolving. Answers the new capability, or null when no record exists —
|
|
166
|
+
* there is nothing to rotate on a port nobody has reserved or exposed.
|
|
167
|
+
*/
|
|
168
|
+
export declare function rotatePortCapability(self: PortCapabilityHost, port: number, capability: string): Promise<string | null>;
|
|
123
169
|
/**
|
|
124
170
|
* Retire the durable capability for a port. Called before every registration
|
|
125
171
|
* that is not a restore, so a token handed out for the previous occupant of a
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"port-capability.d.ts","sourceRoot":"","sources":["../../src/session/port-capability.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAC3B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0CAA0C,CAAC;AAG7E,2DAA2D;AAC3D,MAAM,WAAW,kBAAkB;IACjC,GAAG,EAAE;QACH,OAAO,EAAE,sBAAsB,CAAC;KACjC,CAAC;IACF,YAAY,EAAE,YAAY,CAAC;CAC5B;AAED,iHAAiH;AACjH,MAAM,WAAW,0BAA0B;IACzC,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACnC,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAChD,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACtC,IAAI,CAAC,CAAC,GAAG,OAAO,EAAE,OAAO,EAAE;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;CACzE;AAED,+FAA+F;AAC/F,MAAM,WAAW,sBAAuB,SAAQ,0BAA0B;IACxE,WAAW,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,GAAG,EAAE,0BAA0B,KAAK,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;CACnF;AAED,MAAM,WAAW,mBAAmB;IAClC,GAAG,EAAE;QAAE,OAAO,EAAE,sBAAsB,CAAA;KAAE,CAAC;CAC1C;AAID,+EAA+E;AAC/E,QAAA,MAAM,oBAAoB;;;EAA+B,CAAC;AAC1D,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAClE,eAAO,MAAM,gBAAgB
|
|
1
|
+
{"version":3,"file":"port-capability.d.ts","sourceRoot":"","sources":["../../src/session/port-capability.ts"],"names":[],"mappings":"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"}
|
|
@@ -28,10 +28,25 @@ import { PORT_CAPABILITY_KEY_PREFIX } from './keys.js';
|
|
|
28
28
|
const PortCapabilitySchema = z.string().regex(/^[a-f0-9]{24}$/);
|
|
29
29
|
/** 'scoped' is the default: capability-checked but never the public bearer. */
|
|
30
30
|
const PortVisibilitySchema = z.enum(['scoped', 'public']);
|
|
31
|
+
/**
|
|
32
|
+
* The optional name alias a reservation may carry: one DNS label, so it can
|
|
33
|
+
* stand where the port stands in a preview host (`<name>--<sid>`). Never
|
|
34
|
+
* purely numeric — a numeric middle label IS a port. No `--`: that is the
|
|
35
|
+
* host-label separator. No 24 lowercase hex: that is ambiguous with a
|
|
36
|
+
* capability label, so parsing could mistake a name for a bearer.
|
|
37
|
+
*/
|
|
38
|
+
export const APP_NAME_RE = /^[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?$/;
|
|
39
|
+
export function isValidAppName(name) {
|
|
40
|
+
return APP_NAME_RE.test(name) && !name.includes('--')
|
|
41
|
+
&& !/^\d+$/.test(name) && !/^[a-f0-9]{24}$/.test(name);
|
|
42
|
+
}
|
|
43
|
+
const AppNameSchema = z.string().refine(isValidAppName, 'app name must be a DNS label: no --, not numeric, not 24 lowercase hex');
|
|
31
44
|
export const PortRecordSchema = z.object({
|
|
45
|
+
kind: z.enum(['explicit', 'derived']).default('explicit'),
|
|
32
46
|
capability: PortCapabilitySchema.nullable(),
|
|
33
47
|
owner: z.string().nullable(),
|
|
34
48
|
visibility: PortVisibilitySchema.optional(),
|
|
49
|
+
name: AppNameSchema.optional(),
|
|
35
50
|
});
|
|
36
51
|
const RESERVATION_FIRST_PORT = 20000;
|
|
37
52
|
const RESERVATION_LAST_PORT = 65535;
|
|
@@ -52,9 +67,43 @@ export async function readPortReservation(ctx, port) {
|
|
|
52
67
|
export async function readPortExposure(ctx, port) {
|
|
53
68
|
const stored = await readPortReservation(ctx, port);
|
|
54
69
|
return stored !== null && stored.capability !== null
|
|
55
|
-
? {
|
|
70
|
+
? {
|
|
71
|
+
capability: stored.capability, owner: stored.owner, visibility: stored.visibility,
|
|
72
|
+
...(stored.name !== undefined ? { name: stored.name } : {}),
|
|
73
|
+
}
|
|
56
74
|
: null;
|
|
57
75
|
}
|
|
76
|
+
/** Every stored port record, keyed by port — the scan `apps.list` and the name lookups read. */
|
|
77
|
+
export async function listPortReservations(ctx) {
|
|
78
|
+
const rows = await ctx.storage.list({ prefix: PORT_CAPABILITY_KEY_PREFIX });
|
|
79
|
+
const out = new Map();
|
|
80
|
+
for (const [key, value] of rows) {
|
|
81
|
+
const port = Number(key.slice(PORT_CAPABILITY_KEY_PREFIX.length));
|
|
82
|
+
const parsed = PortRecordSchema.safeParse(value);
|
|
83
|
+
if (!Number.isInteger(port) || !parsed.success)
|
|
84
|
+
continue;
|
|
85
|
+
out.set(port, { ...parsed.data, visibility: parsed.data.visibility ?? 'scoped' });
|
|
86
|
+
}
|
|
87
|
+
return out;
|
|
88
|
+
}
|
|
89
|
+
/** The port a name alias resolves to inside this session, or null. */
|
|
90
|
+
export async function readPortReservationByName(ctx, name) {
|
|
91
|
+
if (!isValidAppName(name))
|
|
92
|
+
return null;
|
|
93
|
+
for (const [port, reservation] of await listPortReservations(ctx)) {
|
|
94
|
+
if (reservation.name === name)
|
|
95
|
+
return { port, reservation };
|
|
96
|
+
}
|
|
97
|
+
return null;
|
|
98
|
+
}
|
|
99
|
+
/** The port an owner holds, or null when the owner has no reservation. */
|
|
100
|
+
export async function readPortReservationByOwner(ctx, owner) {
|
|
101
|
+
for (const [port, reservation] of await listPortReservations(ctx)) {
|
|
102
|
+
if (reservation.owner === owner)
|
|
103
|
+
return { port, reservation };
|
|
104
|
+
}
|
|
105
|
+
return null;
|
|
106
|
+
}
|
|
58
107
|
/**
|
|
59
108
|
* Hold a port for `owner` across instances. The owner's existing port is
|
|
60
109
|
* answered again; otherwise the preferred port is claimed, or the lowest
|
|
@@ -69,32 +118,52 @@ export async function readPortExposure(ctx, port) {
|
|
|
69
118
|
* capability is never rotated, a URL already handed out stays good.
|
|
70
119
|
*/
|
|
71
120
|
export async function reservePort(ctx, input) {
|
|
121
|
+
if (input.name !== undefined && !isValidAppName(input.name)) {
|
|
122
|
+
throw conflict(`'${input.name}' is not a valid app name (one DNS label, not numeric, not 24 hex)`);
|
|
123
|
+
}
|
|
72
124
|
const claim = async (txn) => {
|
|
73
125
|
const records = await txn.list({ prefix: PORT_CAPABILITY_KEY_PREFIX });
|
|
74
126
|
const taken = new Set(input.occupiedPorts);
|
|
127
|
+
const unowned = new Map();
|
|
75
128
|
let held = null;
|
|
76
129
|
for (const [storedKey, value] of records) {
|
|
77
130
|
const port = Number(storedKey.slice(PORT_CAPABILITY_KEY_PREFIX.length));
|
|
78
131
|
if (!Number.isInteger(port))
|
|
79
132
|
continue;
|
|
80
|
-
taken.add(port);
|
|
81
133
|
const parsed = PortRecordSchema.safeParse(value);
|
|
82
|
-
|
|
134
|
+
// listPorts may already have persisted the live capability without an
|
|
135
|
+
// owner. That is an exposure to adopt, not somebody else's reservation.
|
|
136
|
+
if (parsed.success && parsed.data.owner === null)
|
|
137
|
+
unowned.set(port, parsed.data);
|
|
138
|
+
else
|
|
139
|
+
taken.add(port);
|
|
140
|
+
if (!parsed.success)
|
|
141
|
+
continue;
|
|
142
|
+
if (parsed.data.owner === input.owner) {
|
|
83
143
|
held = { port, stored: parsed.data };
|
|
84
144
|
}
|
|
145
|
+
else if (input.name !== undefined && parsed.data.name === input.name
|
|
146
|
+
&& !(parsed.data.owner === null && port === input.preferredPort)) {
|
|
147
|
+
throw conflict(`name '${input.name}' is already taken by another app on port ${port}`);
|
|
148
|
+
}
|
|
85
149
|
}
|
|
86
150
|
const preferred = input.preferredPort;
|
|
87
151
|
if (held !== null) {
|
|
88
152
|
if (preferred !== undefined && preferred !== held.port) {
|
|
89
153
|
throw conflict(`owner already holds port ${held.port}, cannot reserve ${preferred}`);
|
|
90
154
|
}
|
|
91
|
-
// Upgrade in place: adopt a caller-supplied capability the row lacks
|
|
92
|
-
//
|
|
155
|
+
// Upgrade in place: adopt a caller-supplied capability the row lacks,
|
|
156
|
+
// apply the caller's visibility and/or name — never rotate an existing
|
|
157
|
+
// capability.
|
|
93
158
|
const stored = held.stored;
|
|
94
159
|
const capability = stored?.capability ?? input.capability ?? null;
|
|
95
160
|
const visibility = input.visibility ?? stored?.visibility ?? 'scoped';
|
|
96
|
-
|
|
97
|
-
|
|
161
|
+
const name = input.name ?? stored?.name;
|
|
162
|
+
if (stored === null || capability !== stored.capability
|
|
163
|
+
|| visibility !== (stored.visibility ?? 'scoped') || name !== stored.name) {
|
|
164
|
+
await txn.put(portRecordKey(held.port), {
|
|
165
|
+
owner: input.owner, kind: stored?.kind ?? input.kind ?? 'explicit', capability, visibility, ...(name !== undefined ? { name } : {}),
|
|
166
|
+
});
|
|
98
167
|
}
|
|
99
168
|
return held.port;
|
|
100
169
|
}
|
|
@@ -114,10 +183,14 @@ export async function reservePort(ctx, input) {
|
|
|
114
183
|
if (port > RESERVATION_LAST_PORT)
|
|
115
184
|
throw conflict('no free port left to reserve');
|
|
116
185
|
}
|
|
186
|
+
const exposure = unowned.get(port);
|
|
187
|
+
const name = input.name ?? exposure?.name;
|
|
117
188
|
await txn.put(portRecordKey(port), {
|
|
118
189
|
owner: input.owner,
|
|
119
|
-
|
|
120
|
-
|
|
190
|
+
kind: input.kind ?? 'explicit',
|
|
191
|
+
capability: exposure?.capability ?? input.capability ?? null,
|
|
192
|
+
visibility: input.visibility ?? exposure?.visibility ?? 'scoped',
|
|
193
|
+
...(name !== undefined ? { name } : {}),
|
|
121
194
|
});
|
|
122
195
|
return port;
|
|
123
196
|
};
|
|
@@ -178,11 +251,36 @@ export async function persistPortCapability(self, port, capability) {
|
|
|
178
251
|
await txn.put(portRecordKey(port), {
|
|
179
252
|
capability: PortCapabilitySchema.parse(capability),
|
|
180
253
|
owner: parsed.success ? parsed.data.owner : null,
|
|
254
|
+
kind: parsed.success ? parsed.data.kind : 'explicit',
|
|
181
255
|
...(parsed.success && parsed.data.visibility !== undefined
|
|
182
256
|
? { visibility: parsed.data.visibility }
|
|
183
257
|
: {}),
|
|
258
|
+
...(parsed.success && parsed.data.name !== undefined
|
|
259
|
+
? { name: parsed.data.name }
|
|
260
|
+
: {}),
|
|
261
|
+
});
|
|
262
|
+
});
|
|
263
|
+
}
|
|
264
|
+
/**
|
|
265
|
+
* Replace the port's capability with a freshly minted one, in place: owner,
|
|
266
|
+
* visibility and name stay, every URL built on the old value stops
|
|
267
|
+
* resolving. Answers the new capability, or null when no record exists —
|
|
268
|
+
* there is nothing to rotate on a port nobody has reserved or exposed.
|
|
269
|
+
*/
|
|
270
|
+
export async function rotatePortCapability(self, port, capability) {
|
|
271
|
+
const rotated = await self.ctx.storage.transaction(async (txn) => {
|
|
272
|
+
const parsed = PortRecordSchema.safeParse(await txn.get(portRecordKey(port)));
|
|
273
|
+
if (!parsed.success)
|
|
274
|
+
return null;
|
|
275
|
+
await txn.put(portRecordKey(port), {
|
|
276
|
+
...parsed.data,
|
|
277
|
+
capability: PortCapabilitySchema.parse(capability),
|
|
184
278
|
});
|
|
279
|
+
return capability;
|
|
185
280
|
});
|
|
281
|
+
// Registry adoption belongs to the caller, after a fresh serving-owner
|
|
282
|
+
// check: the storage await above may have allowed a new listener to bind.
|
|
283
|
+
return rotated;
|
|
186
284
|
}
|
|
187
285
|
/**
|
|
188
286
|
* Retire the durable capability for a port. Called before every registration
|
|
@@ -196,8 +294,10 @@ export async function clearPortCapability(self, port) {
|
|
|
196
294
|
if (record !== null && record.owner !== null) {
|
|
197
295
|
await txn.put(portRecordKey(port), {
|
|
198
296
|
owner: record.owner,
|
|
297
|
+
kind: record.kind,
|
|
199
298
|
capability: null,
|
|
200
299
|
...(record.visibility !== undefined ? { visibility: record.visibility } : {}),
|
|
300
|
+
...(record.name !== undefined ? { name: record.name } : {}),
|
|
201
301
|
});
|
|
202
302
|
return;
|
|
203
303
|
}
|
|
@@ -13,6 +13,8 @@ import { PortRegistry } from '@nimbus-sh/core/runtime/port-registry.js';
|
|
|
13
13
|
import type { RuntimeCatalogEnv } from '../runtime/runtime-catalog.js';
|
|
14
14
|
import type { SqliteVFS } from '@nimbus-sh/core/vfs/sqlite-vfs.js';
|
|
15
15
|
import { type VfsCred } from '@nimbus-sh/core/runtime/os-contracts.js';
|
|
16
|
+
import { type PortVisibility } from './port-capability.js';
|
|
17
|
+
import type { ResidentAppSummary, ResidentIdentity, ResidentRestartPolicy } from '../facets/manager.js';
|
|
16
18
|
export interface ProgrammaticShell {
|
|
17
19
|
env?: Record<string, string>;
|
|
18
20
|
getEnv(): Record<string, string>;
|
|
@@ -62,6 +64,8 @@ interface ProgrammaticFacetManager {
|
|
|
62
64
|
kill(pid: number): boolean;
|
|
63
65
|
hasResidentProcess(pid: number): boolean;
|
|
64
66
|
removeDurableApp(owner: string): Promise<boolean>;
|
|
67
|
+
residentIdentity(pid: number): Promise<ResidentIdentity | null>;
|
|
68
|
+
listResidentApps(): Promise<ResidentAppSummary[]>;
|
|
65
69
|
}
|
|
66
70
|
interface ProgrammaticViteServer {
|
|
67
71
|
isRunning: boolean;
|
|
@@ -101,9 +105,13 @@ export interface ProgrammaticHost {
|
|
|
101
105
|
nimbusWrangler?: unknown;
|
|
102
106
|
npmInstaller?: unknown;
|
|
103
107
|
fetchProxyEntrypoint?: unknown;
|
|
104
|
-
|
|
108
|
+
_supervisorOps?: {
|
|
109
|
+
forget(pid: number): void;
|
|
110
|
+
} | null;
|
|
105
111
|
sessionBasePath?: string;
|
|
106
112
|
sessionBasePathHydrated?: boolean;
|
|
113
|
+
/** The origin the session was last reached at — what a path-form URL is built on. */
|
|
114
|
+
sessionOrigin?: string;
|
|
107
115
|
wranglerAliasBannerShown?: boolean;
|
|
108
116
|
_b4Phase?: string | null;
|
|
109
117
|
_w9PersistWired?: boolean;
|
|
@@ -136,6 +144,13 @@ export interface ProgrammaticExecOptions extends ProgrammaticReadyOptions {
|
|
|
136
144
|
shellId?: string;
|
|
137
145
|
/** @internal Initial cwd for a shellId with no durable state yet. */
|
|
138
146
|
shellRoot?: string;
|
|
147
|
+
/**
|
|
148
|
+
* What to do when the started process exits on its own with a non-zero
|
|
149
|
+
* code: 'never' (the default) leaves it stopped; 'on-failure' restarts it
|
|
150
|
+
* under the restart budget with backoff. A platform reset re-drives it
|
|
151
|
+
* either way. Carried to the launch as `$NIMBUS_RESTART`.
|
|
152
|
+
*/
|
|
153
|
+
restart?: ResidentRestartPolicy;
|
|
139
154
|
}
|
|
140
155
|
/**
|
|
141
156
|
* A second Shell over the session's own kernel, filesystem and command
|
|
@@ -265,8 +280,55 @@ export declare function rpcProcessLogs(self: ProgrammaticHost, pid: number, opti
|
|
|
265
280
|
exit: import("@nimbus-sh/core/runtime/process-logs.js").ProcessExitInfo | null;
|
|
266
281
|
}>;
|
|
267
282
|
export declare function rpcListPorts(self: ProgrammaticHost): Promise<SerializedPort[]>;
|
|
283
|
+
/** What `apps.expose` / `apps.rotateLink` answer: the application's address, as the caller can reach it. */
|
|
284
|
+
export interface ExposedAppResult {
|
|
285
|
+
owner: string;
|
|
286
|
+
name: string | null;
|
|
287
|
+
port: number;
|
|
288
|
+
pid: number | null;
|
|
289
|
+
capability: string | null;
|
|
290
|
+
visibility: PortVisibility;
|
|
291
|
+
/** Built from the deployment's preview suffix or the session's last-seen origin; null when neither is known. */
|
|
292
|
+
url: string | null;
|
|
293
|
+
}
|
|
294
|
+
export interface ListedApp extends ResidentAppSummary {
|
|
295
|
+
url: string | null;
|
|
296
|
+
}
|
|
297
|
+
/** An app target as every app verb takes it: a port, a pid, or a name/owner. */
|
|
298
|
+
export type AppTarget = number | string | {
|
|
299
|
+
port: number;
|
|
300
|
+
} | {
|
|
301
|
+
pid: number;
|
|
302
|
+
} | {
|
|
303
|
+
name: string;
|
|
304
|
+
} | {
|
|
305
|
+
owner: string;
|
|
306
|
+
};
|
|
307
|
+
/**
|
|
308
|
+
* Browser-facing URL for an application, built inside the session: the
|
|
309
|
+
* host form when the deployment carries a preview suffix (name first, port
|
|
310
|
+
* otherwise; the public bearer form when public and a capability exists),
|
|
311
|
+
* else the path form on the origin the session was last reached at. Null
|
|
312
|
+
* when the session has never been reached over HTTP and has no suffix —
|
|
313
|
+
* an embedder builds its own from the port and capability in that case.
|
|
314
|
+
*/
|
|
315
|
+
export declare function appUrl(self: ProgrammaticHost, app: {
|
|
316
|
+
port: number;
|
|
317
|
+
name?: string | null;
|
|
318
|
+
capability?: string | null;
|
|
319
|
+
visibility?: PortVisibility;
|
|
320
|
+
}): string | null;
|
|
321
|
+
/**
|
|
322
|
+
* The port-centric surface, kept for every caller that has a port and
|
|
323
|
+
* nothing else — a dev server or a process outside the
|
|
324
|
+
* resident lifecycle. When the port's occupant carries an identity the
|
|
325
|
+
* exposure is the same lazy reservation `apps.expose` makes; when it does
|
|
326
|
+
* not, this compatibility path writes the row port-only, as before. One implementation:
|
|
327
|
+
* `applyExposure` below.
|
|
328
|
+
*/
|
|
268
329
|
export declare function rpcExposePort(self: ProgrammaticHost, port: number, options?: {
|
|
269
330
|
visibility?: 'scoped' | 'public';
|
|
331
|
+
name?: string;
|
|
270
332
|
}): Promise<{
|
|
271
333
|
port: number;
|
|
272
334
|
listening: boolean;
|
|
@@ -274,6 +336,38 @@ export declare function rpcExposePort(self: ProgrammaticHost, port: number, opti
|
|
|
274
336
|
registeredAt: number | null;
|
|
275
337
|
capability: string | null;
|
|
276
338
|
visibility: "scoped" | "public";
|
|
339
|
+
owner: string | null;
|
|
340
|
+
name: string | null;
|
|
341
|
+
}>;
|
|
342
|
+
/**
|
|
343
|
+
* The identity-centric surface: the target names a running application —
|
|
344
|
+
* by port, by pid, or by name — and the exposure is what makes it durable
|
|
345
|
+
* under its identity: the port is reserved for the owner lazily, the
|
|
346
|
+
* capability minted when public and bound in the directory, the name
|
|
347
|
+
* stored on the reservation. Returns the address the caller can reach.
|
|
348
|
+
*/
|
|
349
|
+
export declare function rpcExposeApp(self: ProgrammaticHost, target: AppTarget, options?: {
|
|
350
|
+
visibility?: 'scoped' | 'public';
|
|
351
|
+
name?: string;
|
|
352
|
+
}): Promise<ExposedAppResult>;
|
|
353
|
+
/**
|
|
354
|
+
* Mint a new capability for the application and rebind the directory:
|
|
355
|
+
* every URL built on the old one stops resolving. The registry adopts the
|
|
356
|
+
* new value at once if the port is live, so the new URL answers without
|
|
357
|
+
* waiting for a restore.
|
|
358
|
+
*/
|
|
359
|
+
export declare function rpcRotateLink(self: ProgrammaticHost, target: AppTarget): Promise<ExposedAppResult>;
|
|
360
|
+
/** Every stamped identity, with the URL each is reachable at. */
|
|
361
|
+
export declare function rpcListApps(self: ProgrammaticHost): Promise<ListedApp[]>;
|
|
362
|
+
/**
|
|
363
|
+
* End an application: kill its live pids, release the reservation, purge
|
|
364
|
+
* its journal rows, free the durable slot and its storage, unbind the
|
|
365
|
+
* directory — `removeDurableApp`, addressed by any target.
|
|
366
|
+
*/
|
|
367
|
+
export declare function rpcRemoveApp(self: ProgrammaticHost, target: AppTarget): Promise<{
|
|
368
|
+
owner: string;
|
|
369
|
+
removed: boolean;
|
|
370
|
+
port: number | null;
|
|
277
371
|
}>;
|
|
278
372
|
/**
|
|
279
373
|
* The embedder's durable-application seam: reserve (or re-answer) the port
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"programmatic.d.ts","sourceRoot":"","sources":["../../src/session/programmatic.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"programmatic.d.ts","sourceRoot":"","sources":["../../src/session/programmatic.ts"],"names":[],"mappings":"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"}
|