@intentic/machine 1.366.0 → 1.367.1

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 (50) hide show
  1. package/README.md +47 -3
  2. package/dist/commands.d.ts.map +1 -1
  3. package/dist/commands.js +2 -0
  4. package/dist/commands.js.map +1 -1
  5. package/dist/device/egress/follower.d.ts +20 -0
  6. package/dist/device/egress/follower.d.ts.map +1 -0
  7. package/dist/device/egress/follower.js +110 -0
  8. package/dist/device/egress/follower.js.map +1 -0
  9. package/dist/device/egress/pins.d.ts +37 -0
  10. package/dist/device/egress/pins.d.ts.map +1 -0
  11. package/dist/device/egress/pins.js +58 -0
  12. package/dist/device/egress/pins.js.map +1 -0
  13. package/dist/device/egress/proof.d.ts +25 -0
  14. package/dist/device/egress/proof.d.ts.map +1 -0
  15. package/dist/device/egress/proof.js +86 -0
  16. package/dist/device/egress/proof.js.map +1 -0
  17. package/dist/device/egress/set-egress.d.ts +30 -0
  18. package/dist/device/egress/set-egress.d.ts.map +1 -0
  19. package/dist/device/egress/set-egress.js +136 -0
  20. package/dist/device/egress/set-egress.js.map +1 -0
  21. package/dist/device/egress/trust-command.d.ts +3 -0
  22. package/dist/device/egress/trust-command.d.ts.map +1 -0
  23. package/dist/device/egress/trust-command.js +45 -0
  24. package/dist/device/egress/trust-command.js.map +1 -0
  25. package/dist/device/grant.d.ts +43 -0
  26. package/dist/device/grant.d.ts.map +1 -1
  27. package/dist/device/router.d.ts +43 -0
  28. package/dist/device/router.d.ts.map +1 -1
  29. package/dist/device/router.js +20 -5
  30. package/dist/device/router.js.map +1 -1
  31. package/dist/keyring/commands.d.ts +4 -2
  32. package/dist/keyring/commands.d.ts.map +1 -1
  33. package/dist/keyring/commands.js +3 -31
  34. package/dist/keyring/commands.js.map +1 -1
  35. package/dist/keyring/keyring-status.d.ts +2 -0
  36. package/dist/keyring/keyring-status.d.ts.map +1 -1
  37. package/dist/keyring/keyring-status.js +18 -3
  38. package/dist/keyring/keyring-status.js.map +1 -1
  39. package/dist/keyring/lifecycle-commands.d.ts +16 -0
  40. package/dist/keyring/lifecycle-commands.d.ts.map +1 -0
  41. package/dist/keyring/lifecycle-commands.js +55 -0
  42. package/dist/keyring/lifecycle-commands.js.map +1 -0
  43. package/dist/keyring/service.d.ts +12 -0
  44. package/dist/keyring/service.d.ts.map +1 -1
  45. package/dist/keyring/service.js +44 -6
  46. package/dist/keyring/service.js.map +1 -1
  47. package/dist/resident/resident.d.ts.map +1 -1
  48. package/dist/resident/resident.js +10 -1
  49. package/dist/resident/resident.js.map +1 -1
  50. package/package.json +9 -9
@@ -0,0 +1,136 @@
1
+ import { errorMessage } from "@intentic/base/errors";
2
+ import { canonicalEgressPolicy, egressOnlyTightens, EgressStatusSchema, icEgressSetArgs, icEgressShowArgs } from "@intentic/sandbox-contract/schemas/egress";
3
+ import { environmentKeyOf } from "@intentic/sandbox-contract/schemas/hosts";
4
+ import { parseJsonWith } from "@intentic/base/json";
5
+ import { machineId } from "../../machine-id.js";
6
+ import { wslEnvironment } from "../../environments/wsl.js";
7
+ import { audit } from "../audit.js";
8
+ import { assertScope } from "../policy.js";
9
+ import { findIn, fleet, icFlow, runIc } from "../tools/sandboxes.js";
10
+ import { egressPinStore, narrowsOwnerKeys, sameOwnerKeys } from "./pins.js";
11
+ import { EgressRefusal, looseningText, verifyEgressProof } from "./proof.js";
12
+ export const egressStatusFrom = (stdout) => {
13
+ const line = stdout
14
+ .split(/\r?\n/)
15
+ .map((text) => text.trim())
16
+ .findLast((text) => text.startsWith("{"));
17
+ return line === undefined ? undefined : parseJsonWith(line, EgressStatusSchema);
18
+ };
19
+ const noPinSentence = (slug, opens) => `${opens[0]?.toUpperCase() ?? ""}${opens.slice(1)}, and this machine has no passkey pinned for "${slug}", so it cannot check that you asked for it. Change it on the machine itself with \`ic sandbox egress ${slug}\`, or add a passkey in Access → Sign-in, save the fence once from the editor (a change that only tightens pins your passkeys here), then make this change again.`;
20
+ const tighten = async (ask, sandbox, seams, onLine) => {
21
+ await seams.apply(ask.slug, ask.policy, onLine);
22
+ const said = `Set the egress policy of "${ask.slug}" (${ask.policy.profile}, ${ask.policy.allow.length} exception${ask.policy.allow.length === 1 ? "" : "s"}).`;
23
+ seams.audit({ tool: "set-egress", ok: true, detail: `${ask.slug}: tightened to ${JSON.stringify(canonicalEgressPolicy(ask.policy))}, via ${ask.via}` });
24
+ if (ask.ownerKeys === undefined || ask.ownerKeys.keys.length === 0) {
25
+ return said;
26
+ }
27
+ let held;
28
+ try {
29
+ held = await seams.pins.read(sandbox);
30
+ }
31
+ catch (error) {
32
+ seams.audit({ tool: "set-egress", ok: false, detail: `${ask.slug}: passkeys not pinned, the pin store is unreadable: ${errorMessage(error)}` });
33
+ return said;
34
+ }
35
+ if (held !== undefined) {
36
+ return said;
37
+ }
38
+ await seams.pins.write({ slug: sandbox.slug, sandboxId: sandbox.sandboxId, owner: ask.ownerKeys, counters: {}, pinnedAt: seams.now(), pinnedBy: ask.via });
39
+ seams.audit({
40
+ tool: "set-egress",
41
+ ok: true,
42
+ detail: `${ask.slug}: pinned ${ask.ownerKeys.keys.length} passkey(s) for ${ask.ownerKeys.rpId} on first use, handed over by ${ask.via}: ${ask.ownerKeys.keys.map((key) => key.name ?? key.id).join(", ")}`,
43
+ });
44
+ return `${said} This machine now trusts your ${ask.ownerKeys.keys.length === 1 ? "passkey" : "passkeys"} for loosening it.`;
45
+ };
46
+ const loosen = async (ask, sandbox, current, seams, onLine) => {
47
+ const opens = looseningText(ask.slug, current.policy, ask.policy);
48
+ const pin = await seams.pins.read(sandbox);
49
+ if (pin === undefined || pin.owner.keys.length === 0) {
50
+ throw new EgressRefusal(noPinSentence(ask.slug, opens));
51
+ }
52
+ if (ask.proof === undefined) {
53
+ throw new EgressRefusal(`${opens[0]?.toUpperCase() ?? ""}${opens.slice(1)}: sign it with your passkey.`);
54
+ }
55
+ const { machineId: id, environment } = await seams.identity();
56
+ const verified = verifyEgressProof({
57
+ proof: ask.proof,
58
+ slug: ask.slug,
59
+ asked: ask.policy,
60
+ revision: current.revision,
61
+ machineId: id,
62
+ environment,
63
+ ownerKeys: ask.ownerKeys,
64
+ pin,
65
+ now: seams.now(),
66
+ });
67
+ const differs = ask.ownerKeys !== undefined && !sameOwnerKeys(ask.ownerKeys, pin.owner);
68
+ const moves = verified.ownerKeysSigned && differs && ask.ownerKeys !== undefined && narrowsOwnerKeys(ask.ownerKeys, pin.owner);
69
+ const grew = differs && !moves;
70
+ const owner = moves && ask.ownerKeys !== undefined ? ask.ownerKeys : pin.owner;
71
+ const counters = Object.fromEntries(Object.entries(pin.counters).filter(([key]) => owner.keys.some((pinned) => pinned.id === key)));
72
+ if (owner.keys.some((pinned) => pinned.id === verified.keyId)) {
73
+ counters[verified.keyId] = verified.counter;
74
+ }
75
+ const next = { ...pin, owner, counters };
76
+ if (moves) {
77
+ next.replacedAt = seams.now();
78
+ }
79
+ await seams.pins.write(next);
80
+ await seams.apply(ask.slug, ask.policy, onLine);
81
+ seams.audit({
82
+ tool: "set-egress",
83
+ ok: true,
84
+ detail: `${ask.slug}: loosened from revision ${current.revision} to ${JSON.stringify(canonicalEgressPolicy(ask.policy))}, signed by passkey ${verified.keyId}, via ${ask.via}${moves ? `; pin moved to ${owner.keys.length} passkey(s): ${owner.keys.map((key) => key.name ?? key.id).join(", ")}` : ""}`,
85
+ });
86
+ const pinSaid = moves
87
+ ? " This machine no longer trusts the passkeys you removed."
88
+ : grew
89
+ ? ` Passkeys you added since this machine pinned yours are not trusted for "${ask.slug}" here until you run \`intentic-machine egress trust ${ask.slug} --reset\` on this machine and save the fence once from the editor.`
90
+ : "";
91
+ return `Set the egress policy of "${ask.slug}" under your passkey: ${opens.replace(/^this change /u, "it ")}.${pinSaid}`;
92
+ };
93
+ export const setEgressWith = async (ask, seams, onLine) => {
94
+ try {
95
+ const sandbox = await seams.sandbox(ask.slug);
96
+ const current = await seams.status(ask.slug);
97
+ return egressOnlyTightens(current.policy, ask.policy)
98
+ ? await tighten(ask, sandbox, seams, onLine)
99
+ : await loosen(ask, sandbox, current, seams, onLine);
100
+ }
101
+ catch (error) {
102
+ seams.audit({ tool: "set-egress", ok: false, detail: `${ask.slug}: ${error instanceof EgressRefusal ? "refused" : "failed"}: ${errorMessage(error)}, via ${ask.via}` });
103
+ throw error;
104
+ }
105
+ };
106
+ const status = async (slug) => {
107
+ const run = await runIc(icEgressShowArgs(slug), () => { });
108
+ const read = run.code === 0 ? egressStatusFrom(run.output) : undefined;
109
+ if (read === undefined) {
110
+ throw new Error(`This machine's ic did not say what egress policy "${slug}" has, so the change was not made. Update the agent on this machine (intentic-machine upgrade), then try again.\n\n${run.output}`);
111
+ }
112
+ return read;
113
+ };
114
+ const apply = async (slug, policy, onLine) => {
115
+ const run = await icFlow(slug, icEgressSetArgs(slug, policy), onLine, { moves: false });
116
+ if (run.code !== 0) {
117
+ throw new Error(`ic did not set the egress policy of "${slug}" on this machine.\n\n${run.output}`);
118
+ }
119
+ };
120
+ const realSetEgressSeams = (pins = egressPinStore()) => ({
121
+ sandbox: async (slug) => {
122
+ const row = findIn(await fleet(), slug);
123
+ return { slug: row.slug, sandboxId: row.sandboxId ?? null };
124
+ },
125
+ status,
126
+ apply,
127
+ identity: async () => ({ machineId: machineId(), environment: environmentKeyOf({ wsl: await wslEnvironment() }) }),
128
+ pins,
129
+ audit: (entry) => void audit(entry),
130
+ now: Date.now,
131
+ });
132
+ export const setEgress = async (ask, scopes, onLine) => {
133
+ assertScope(scopes, "sandboxes");
134
+ return await setEgressWith(ask, realSetEgressSeams(), onLine);
135
+ };
136
+ //# sourceMappingURL=set-egress.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"set-egress.js","sourceRoot":"","sources":["../../../src/device/egress/set-egress.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { type CommandContext } from "@stricli/core";
2
+ export declare const egressRoutes: import("@stricli/core").RouteMap<CommandContext>;
3
+ //# sourceMappingURL=trust-command.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trust-command.d.ts","sourceRoot":"","sources":["../../../src/device/egress/trust-command.ts"],"names":[],"mappings":"AACA,OAAO,EAAiB,KAAK,cAAc,EAAE,MAAM,eAAe,CAAC;AAqDnE,eAAO,MAAM,YAAY,kDAGvB,CAAC"}
@@ -0,0 +1,45 @@
1
+ import { buildRouteMap } from "@stricli/core";
2
+ import { buildCommand, machineUi } from "../../cli-ui.js";
3
+ import { egressPinStore, egressPinsPath } from "./pins.js";
4
+ const when = (ms) => new Date(ms).toISOString();
5
+ const pinFields = (pin) => [
6
+ ["sandbox", `${pin.slug}${pin.sandboxId === null ? "" : ` (id ${pin.sandboxId})`}`],
7
+ ["passkeys for", `${pin.owner.rpId}, from ${pin.owner.origins.join(", ")}`],
8
+ ...pin.owner.keys.map((key) => [key.name ?? "passkey", `${key.id}${pin.counters[key.id] === undefined ? "" : `, counter ${pin.counters[key.id]}`}`]),
9
+ ["pinned", `${when(pin.pinnedAt)}, handed over by ${pin.pinnedBy}`],
10
+ ...(pin.replacedAt === undefined ? [] : [["moved to these keys", when(pin.replacedAt)]]),
11
+ ];
12
+ const trust = buildCommand({
13
+ docs: { brief: "Show the passkeys this machine trusts to loosen a sandbox's egress fence, or forget them (--reset)" },
14
+ parameters: {
15
+ positional: { kind: "tuple", parameters: [{ brief: "The sandbox, as `intentic-machine sandbox list` names it", parse: String, placeholder: "slug" }] },
16
+ flags: { reset: { kind: "boolean", brief: "Forget the pinned passkeys; the next change from the editor that carries them pins them again", default: false } },
17
+ },
18
+ async func(flags, slug) {
19
+ const ui = machineUi(this.process);
20
+ const store = egressPinStore();
21
+ if (flags.reset) {
22
+ ui.act(`Forgetting the passkeys pinned for ${slug}`);
23
+ const dropped = await store.reset(slug);
24
+ ui.done(dropped === 0 ? `No passkeys were pinned for ${slug}.` : `Forgot the passkeys pinned for ${slug}.`);
25
+ ui.later([["pin them again", "turn the fence on or save it once from the editor"]]);
26
+ return;
27
+ }
28
+ const pins = await store.list(slug);
29
+ if (pins.length === 0) {
30
+ ui.quiet(`No passkeys are pinned for ${slug} on this machine (${egressPinsPath}).`);
31
+ ui.later([["change its fence here", `ic sandbox egress ${slug}`]]);
32
+ return;
33
+ }
34
+ ui.report(`egress trust: ${slug}`, egressPinsPath);
35
+ for (const pin of pins) {
36
+ ui.fields(pinFields(pin));
37
+ }
38
+ ui.later([["forget them", `intentic-machine egress trust ${slug} --reset`]]);
39
+ },
40
+ });
41
+ export const egressRoutes = buildRouteMap({
42
+ routes: { trust },
43
+ docs: { brief: "The egress fence's trust on this machine: which passkeys may loosen a sandbox's fence from the editor" },
44
+ });
45
+ //# sourceMappingURL=trust-command.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trust-command.js","sourceRoot":"","sources":["../../../src/device/egress/trust-command.ts"],"names":[],"mappings":"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"}
@@ -204,6 +204,7 @@ export declare const tolerantDeviceContract: {
204
204
  rollback: "rollback";
205
205
  "runner-remove": "runner-remove";
206
206
  "runner-up": "runner-up";
207
+ "set-egress": "set-egress";
207
208
  "set-shape": "set-shape";
208
209
  sleep: "sleep";
209
210
  start: "start";
@@ -223,6 +224,48 @@ export declare const tolerantDeviceContract: {
223
224
  nextRestart: "nextRestart";
224
225
  now: "now";
225
226
  }>>;
227
+ egress: z.ZodOptional<z.ZodObject<{
228
+ profile: z.ZodEnum<{
229
+ "internet-only": "internet-only";
230
+ open: "open";
231
+ }>;
232
+ allow: z.ZodArray<z.ZodObject<{
233
+ to: z.ZodString;
234
+ ports: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodInt, z.ZodString]>>>;
235
+ protocol: z.ZodOptional<z.ZodEnum<{
236
+ tcp: "tcp";
237
+ udp: "udp";
238
+ }>>;
239
+ note: z.ZodOptional<z.ZodString>;
240
+ from: z.ZodOptional<z.ZodString>;
241
+ }, z.core.$strict>>;
242
+ }, z.core.$strict>>;
243
+ egressProof: z.ZodOptional<z.ZodObject<{
244
+ document: z.ZodString;
245
+ assertion: z.ZodObject<{
246
+ id: z.ZodString;
247
+ rawId: z.ZodString;
248
+ type: z.ZodLiteral<"public-key">;
249
+ response: z.ZodObject<{
250
+ clientDataJSON: z.ZodString;
251
+ authenticatorData: z.ZodString;
252
+ signature: z.ZodString;
253
+ userHandle: z.ZodOptional<z.ZodString>;
254
+ }, z.core.$strip>;
255
+ authenticatorAttachment: z.ZodOptional<z.ZodString>;
256
+ clientExtensionResults: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
257
+ }, z.core.$strip>;
258
+ }, z.core.$strict>>;
259
+ egressOwnerKeys: z.ZodOptional<z.ZodObject<{
260
+ rpId: z.ZodString;
261
+ origins: z.ZodArray<z.ZodString>;
262
+ keys: z.ZodArray<z.ZodObject<{
263
+ id: z.ZodString;
264
+ alg: z.ZodUnion<readonly [z.ZodLiteral<-7>, z.ZodLiteral<-257>, z.ZodLiteral<-8>]>;
265
+ jwk: z.ZodRecord<z.ZodString, z.ZodString>;
266
+ name: z.ZodOptional<z.ZodString>;
267
+ }, z.core.$strict>>;
268
+ }, z.core.$strict>>;
226
269
  resources: z.ZodOptional<z.ZodObject<{
227
270
  memoryGib: z.ZodOptional<z.ZodNullable<z.ZodInt>>;
228
271
  cpus: z.ZodOptional<z.ZodNullable<z.ZodInt>>;
@@ -1 +1 @@
1
- {"version":3,"file":"grant.d.ts","sourceRoot":"","sources":["../../src/device/grant.ts"],"names":[],"mappings":"AAAA,OAAO,EAAsB,KAAK,YAAY,EAAE,MAAM,iDAAiD,CAAC;AAExG,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AASxB,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAAyE,CAAC;AACvG,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAM1D,MAAM,WAAW,KAAK;IAClB,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;IAC9B,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;CACvC;AAED,eAAO,MAAM,SAAS,UAAW,UAAU,KAAG,KAK5C,CAAC;AAIH,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAGlC,CAAC"}
1
+ {"version":3,"file":"grant.d.ts","sourceRoot":"","sources":["../../src/device/grant.ts"],"names":[],"mappings":"AAAA,OAAO,EAAsB,KAAK,YAAY,EAAE,MAAM,iDAAiD,CAAC;AAExG,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AASxB,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAAyE,CAAC;AACvG,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAM1D,MAAM,WAAW,KAAK;IAClB,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;IAC9B,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;CACvC;AAED,eAAO,MAAM,SAAS,UAAW,UAAU,KAAG,KAK5C,CAAC;AAIH,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAGlC,CAAC"}
@@ -673,6 +673,7 @@ export declare const createHostRouter: (runtime: HostRuntime) => {
673
673
  rollback: "rollback";
674
674
  "runner-remove": "runner-remove";
675
675
  "runner-up": "runner-up";
676
+ "set-egress": "set-egress";
676
677
  "set-shape": "set-shape";
677
678
  sleep: "sleep";
678
679
  start: "start";
@@ -692,6 +693,48 @@ export declare const createHostRouter: (runtime: HostRuntime) => {
692
693
  nextRestart: "nextRestart";
693
694
  now: "now";
694
695
  }>>;
696
+ egress: import("zod").ZodOptional<import("zod").ZodObject<{
697
+ profile: import("zod").ZodEnum<{
698
+ "internet-only": "internet-only";
699
+ open: "open";
700
+ }>;
701
+ allow: import("zod").ZodArray<import("zod").ZodObject<{
702
+ to: import("zod").ZodString;
703
+ ports: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodUnion<readonly [import("zod").ZodInt, import("zod").ZodString]>>>;
704
+ protocol: import("zod").ZodOptional<import("zod").ZodEnum<{
705
+ tcp: "tcp";
706
+ udp: "udp";
707
+ }>>;
708
+ note: import("zod").ZodOptional<import("zod").ZodString>;
709
+ from: import("zod").ZodOptional<import("zod").ZodString>;
710
+ }, import("zod/v4/core").$strict>>;
711
+ }, import("zod/v4/core").$strict>>;
712
+ egressProof: import("zod").ZodOptional<import("zod").ZodObject<{
713
+ document: import("zod").ZodString;
714
+ assertion: import("zod").ZodObject<{
715
+ id: import("zod").ZodString;
716
+ rawId: import("zod").ZodString;
717
+ type: import("zod").ZodLiteral<"public-key">;
718
+ response: import("zod").ZodObject<{
719
+ clientDataJSON: import("zod").ZodString;
720
+ authenticatorData: import("zod").ZodString;
721
+ signature: import("zod").ZodString;
722
+ userHandle: import("zod").ZodOptional<import("zod").ZodString>;
723
+ }, import("zod/v4/core").$strip>;
724
+ authenticatorAttachment: import("zod").ZodOptional<import("zod").ZodString>;
725
+ clientExtensionResults: import("zod").ZodOptional<import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnknown>>;
726
+ }, import("zod/v4/core").$strip>;
727
+ }, import("zod/v4/core").$strict>>;
728
+ egressOwnerKeys: import("zod").ZodOptional<import("zod").ZodObject<{
729
+ rpId: import("zod").ZodString;
730
+ origins: import("zod").ZodArray<import("zod").ZodString>;
731
+ keys: import("zod").ZodArray<import("zod").ZodObject<{
732
+ id: import("zod").ZodString;
733
+ alg: import("zod").ZodUnion<readonly [import("zod").ZodLiteral<-7>, import("zod").ZodLiteral<-257>, import("zod").ZodLiteral<-8>]>;
734
+ jwk: import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodString>;
735
+ name: import("zod").ZodOptional<import("zod").ZodString>;
736
+ }, import("zod/v4/core").$strict>>;
737
+ }, import("zod/v4/core").$strict>>;
695
738
  resources: import("zod").ZodOptional<import("zod").ZodObject<{
696
739
  memoryGib: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodInt>>;
697
740
  cpus: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodInt>>;
@@ -1 +1 @@
1
- {"version":3,"file":"router.d.ts","sourceRoot":"","sources":["../../src/device/router.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iDAAiD,CAAC;AAkDpF,MAAM,WAAW,WAAW;IAExB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,MAAM,EAAE,MAAM,YAAY,CAAC;IACpC,QAAQ,CAAC,SAAS,EAAE,CAAC,MAAM,EAAE,YAAY,KAAK,IAAI,CAAC;IACnD,QAAQ,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAGxC,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,MAAM,GAAG,SAAS,CAAC;IAE7C,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;CACpC;AAmKD,eAAO,MAAM,gBAAgB,YAAa,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmFpD,CAAC"}
1
+ {"version":3,"file":"router.d.ts","sourceRoot":"","sources":["../../src/device/router.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iDAAiD,CAAC;AAmDpF,MAAM,WAAW,WAAW;IAExB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,MAAM,EAAE,MAAM,YAAY,CAAC;IACpC,QAAQ,CAAC,SAAS,EAAE,CAAC,MAAM,EAAE,YAAY,KAAK,IAAI,CAAC;IACnD,QAAQ,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAGxC,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,MAAM,GAAG,SAAS,CAAC;IAE7C,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;CACpC;AAoLD,eAAO,MAAM,gBAAgB,YAAa,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmFpD,CAAC"}
@@ -2,6 +2,7 @@ import { narrate } from "@intentic/base/async";
2
2
  import { errorMessage } from "@intentic/base/errors";
3
3
  import { implement, ORPCError } from "@orpc/server";
4
4
  import { audit } from "./audit.js";
5
+ import { setEgress } from "./egress/set-egress.js";
5
6
  import { readGrant, tolerantDeviceContract } from "./grant.js";
6
7
  import { calling } from "./indicator.js";
7
8
  import { catchLoopback } from "./loopback-catch.js";
@@ -40,6 +41,12 @@ const FLOWS = {
40
41
  }
41
42
  return shapeSandbox(slug, shape, when, scopes, onLine);
42
43
  },
44
+ "set-egress": ({ slug, egress, egressProof, egressOwnerKeys }, scopes, via) => (onLine) => {
45
+ if (egress === undefined) {
46
+ throw new ORPCError("BAD_REQUEST", { message: "An egress policy is set whole: `egress` is required." });
47
+ }
48
+ return setEgress({ slug, policy: egress, proof: egressProof, ownerKeys: egressOwnerKeys, via }, scopes, onLine);
49
+ },
43
50
  "forget-shape": ({ slug }, scopes) => (onLine) => forgetShape(slug, scopes, onLine),
44
51
  reshape: ({ slug, resources, later }, scopes) => (onLine) => reshapeSandbox(slug, resources, scopes, onLine, { later }),
45
52
  remove: ({ slug }, scopes) => (onLine) => removeSandbox(slug, scopes, onLine),
@@ -49,11 +56,19 @@ const FLOWS = {
49
56
  "runner-up": runnerFlowFor,
50
57
  "runner-remove": runnerFlowFor,
51
58
  };
52
- const flowFor = (input, scopes) => input.to !== undefined && input.op !== "rollback"
53
- ? () => {
54
- throw new ORPCError("BAD_REQUEST", { message: `"to" names a version to go back to, which only a rollback takes, not ${input.op}.` });
59
+ const flowFor = (input, scopes, via) => {
60
+ if (input.to !== undefined && input.op !== "rollback") {
61
+ return () => {
62
+ throw new ORPCError("BAD_REQUEST", { message: `"to" names a version to go back to, which only a rollback takes, not ${input.op}.` });
63
+ };
55
64
  }
56
- : FLOWS[input.op](input, scopes);
65
+ if ((input.egress !== undefined || input.egressProof !== undefined || input.egressOwnerKeys !== undefined) && input.op !== "set-egress") {
66
+ return () => {
67
+ throw new ORPCError("BAD_REQUEST", { message: `An egress policy, its proof and the owner's passkeys belong to set-egress, not ${input.op}.` });
68
+ };
69
+ }
70
+ return FLOWS[input.op](input, scopes, via);
71
+ };
57
72
  const deliverOverLink = async (runtime, delivery) => {
58
73
  const asked = `${delivery.remoteDir} ← ${delivery.landing.agentId}${delivery.landing.title === undefined ? "" : ` (${delivery.landing.title})`}, ${delivery.files.length} file(s)`;
59
74
  try {
@@ -119,7 +134,7 @@ export const createHostRouter = (runtime) => {
119
134
  }),
120
135
  ping: os.ping.handler(() => ({ ok: true })),
121
136
  mcp: os.mcp.handler(async ({ input }) => await calling.run(runtime, async () => await handleMcpMessage(input, runtime.scopes()))),
122
- runSandboxFlow: os.runSandboxFlow.handler(({ input }) => streamFlow(flowFor(input, runtime.scopes()))),
137
+ runSandboxFlow: os.runSandboxFlow.handler(({ input }) => streamFlow(flowFor(input, runtime.scopes(), runtime.sandboxUrl))),
123
138
  runAgentFlow: os.runAgentFlow.handler(({ input }) => streamFlow((onLine) => runAgentOp(input.op, onLine))),
124
139
  catchLoopback: os.catchLoopback.handler(({ input, signal }) => catchLoopback(input, signal, (message) => runtime.log(`${runtime.sandboxUrl}: ${message}`))),
125
140
  deliverProject: os.deliverProject.handler(async ({ input }) => await deliverOverLink(runtime, input)),
@@ -1 +1 @@
1
- {"version":3,"file":"router.js","sourceRoot":"","sources":["../../src/device/router.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"router.js","sourceRoot":"","sources":["../../src/device/router.ts"],"names":[],"mappings":"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"}
@@ -4,6 +4,10 @@ import { type CommandContext } from "@stricli/core";
4
4
  export declare const REMEMBERED_WARNING = "a remembered answer can be collected by any program of yours while it lasts, the agent's commands included";
5
5
  export declare const entryItem: (entry: EntryInfo) => Item;
6
6
  export declare const keyringCommands: {
7
+ start: import("@stricli/core").Command<CommandContext>;
8
+ upgrade: import("@stricli/core").Command<CommandContext>;
9
+ reset: import("@stricli/core").Command<CommandContext>;
10
+ uninstall: import("@stricli/core").Command<CommandContext>;
7
11
  setup: import("@stricli/core").Command<CommandContext>;
8
12
  status: import("@stricli/core").Command<CommandContext>;
9
13
  unlock: import("@stricli/core").Command<CommandContext>;
@@ -18,7 +22,5 @@ export declare const keyringCommands: {
18
22
  askpass: import("@stricli/core").RouteMap<CommandContext>;
19
23
  sync: import("@stricli/core").RouteMap<CommandContext>;
20
24
  app: import("@stricli/core").RouteMap<CommandContext>;
21
- upgrade: import("@stricli/core").Command<CommandContext>;
22
- uninstall: import("@stricli/core").Command<CommandContext>;
23
25
  };
24
26
  //# sourceMappingURL=commands.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"commands.d.ts","sourceRoot":"","sources":["../../src/keyring/commands.ts"],"names":[],"mappings":"AACA,OAAO,EAAc,KAAK,SAAS,EAA+F,MAAM,mBAAmB,CAAC;AAC5J,OAAO,KAAK,EAAiB,IAAI,EAAM,MAAM,uBAAuB,CAAC;AAGrE,OAAO,EAAoC,KAAK,cAAc,EAAgB,MAAM,eAAe,CAAC;AAyMpG,eAAO,MAAM,kBAAkB,+GAA+G,CAAC;AAM/I,eAAO,MAAM,SAAS,UAAW,SAAS,KAAG,IAW3C,CAAC;AAgWH,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;CAqB3B,CAAC"}
1
+ {"version":3,"file":"commands.d.ts","sourceRoot":"","sources":["../../src/keyring/commands.ts"],"names":[],"mappings":"AACA,OAAO,EAAc,KAAK,SAAS,EAA+F,MAAM,mBAAmB,CAAC;AAC5J,OAAO,KAAK,EAAiB,IAAI,EAAM,MAAM,uBAAuB,CAAC;AAGrE,OAAO,EAAoC,KAAK,cAAc,EAAgB,MAAM,eAAe,CAAC;AAoMpG,eAAO,MAAM,kBAAkB,+GAA+G,CAAC;AAM/I,eAAO,MAAM,SAAS,UAAW,SAAS,KAAG,IAW3C,CAAC;AAgTH,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;CAoB3B,CAAC"}
@@ -7,15 +7,13 @@ import { readLinks } from "../device/config.js";
7
7
  import { MACHINE_VERSION } from "../version.js";
8
8
  import { keyringAnswer } from "./answer.js";
9
9
  import { askpassStatus, installAskpass, uninstallAskpass } from "./askpass.js";
10
+ import { json, lifecycleCommands } from "./lifecycle-commands.js";
10
11
  import { addPlan, backendConfig, editPatch, editTakesValue, entryName, KeyringCliError, shareTarget, unshareTarget, } from "./flags.js";
11
12
  import { readConfirmed, readStdin } from "./secret-input.js";
12
13
  import { clock, keyringLine, keyringStatusLine, readAskpassAnswer, readKeyringStatus, supportOf } from "./keyring-status.js";
13
- import { ensureService, installKeyring, keyringState, uninstallKeyring, upgradeKeyring } from "./service.js";
14
+ import { ensureService, installKeyring, keyringState } from "./service.js";
14
15
  import { appCommands } from "./app-commands.js";
15
- import { uninstallGitHelper } from "./git-helper.js";
16
- import { uninstallNativeHost } from "./native-host-install.js";
17
16
  const pipe = () => ({ address: keyringPaths().address });
18
- const json = { kind: "boolean", brief: "Print one JSON line, `ok` first (what the desktop app reads)", default: false };
19
17
  const NAME = { brief: "The entry's name, as `{{secret:NAME}}` spells it", parse: String, placeholder: "NAME" };
20
18
  const prompted = async (ui, read) => {
21
19
  ui.suspend();
@@ -332,31 +330,6 @@ const syncStatus = buildCommand({
332
330
  });
333
331
  },
334
332
  });
335
- const stepLine = (cli) => (step) => {
336
- cli.process.stderr.write(`intentic-step ${JSON.stringify({ step })}\n`);
337
- };
338
- const upgrade = buildCommand({
339
- docs: { brief: "Move the keyring to this agent's release, once the running keyring has asked you" },
340
- parameters: { flags: { json } },
341
- async func(flags) {
342
- await keyringAnswer(this, flags.json, { doing: `Updating the keyring to ${MACHINE_VERSION}`, failed: "The keyring was not updated." }, async (ui) => await upgradeKeyring(MACHINE_VERSION, ui.note, flags.json ? stepLine(this) : undefined), (result, ui) => ui.done(result.upgraded ? `Updated the keyring from ${result.from} to ${result.to}.` : `The keyring is already on ${result.to}. Nothing to do.`));
343
- },
344
- });
345
- const uninstall = buildCommand({
346
- docs: { brief: "Remove the keyring from this computer, keeping its vault" },
347
- parameters: { flags: { json } },
348
- async func(flags) {
349
- await keyringAnswer(this, flags.json, { doing: "Removing the keyring", failed: "The keyring was not removed." }, async (ui) => {
350
- await uninstallAskpass();
351
- await uninstallGitHelper();
352
- await uninstallNativeHost();
353
- return { ok: true, ...(await uninstallKeyring(ui.note)) };
354
- }, (result, ui) => {
355
- ui.note(`The vault stays in ${result.vault}: set Passwords up again and the same recovery key opens it.`);
356
- ui.done("Removed the keyring from this computer.");
357
- });
358
- },
359
- });
360
333
  export const keyringCommands = {
361
334
  setup,
362
335
  status,
@@ -375,7 +348,6 @@ export const keyringCommands = {
375
348
  }),
376
349
  sync: buildRouteMap({ routes: { status: syncStatus }, docs: { brief: "The keyring's sync with your other computers" } }),
377
350
  app: appCommands,
378
- upgrade,
379
- uninstall,
351
+ ...lifecycleCommands,
380
352
  };
381
353
  //# sourceMappingURL=commands.js.map