@amalgm/shell 0.1.162 → 0.1.163
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/PURPOSE.md +98 -14
- package/README.md +16 -0
- package/dist/authorization/recovery-host.d.ts +1 -0
- package/dist/authorization/recovery-host.js +2 -3
- package/dist/authorization/recovery-host.js.map +1 -1
- package/dist/cli-arguments.d.ts +8 -0
- package/dist/cli-arguments.js +47 -0
- package/dist/cli-arguments.js.map +1 -0
- package/dist/cli.d.ts +6 -4
- package/dist/cli.js +85 -73
- package/dist/cli.js.map +1 -1
- package/dist/compose.js +4 -3
- package/dist/compose.js.map +1 -1
- package/dist/development/profile.d.ts +27 -0
- package/dist/development/profile.js +142 -0
- package/dist/development/profile.js.map +1 -0
- package/dist/files-register-host.d.ts +1 -0
- package/dist/files-register-host.js +1 -0
- package/dist/files-register-host.js.map +1 -1
- package/dist/installation/environment.d.ts +30 -0
- package/dist/installation/environment.js +28 -0
- package/dist/installation/environment.js.map +1 -0
- package/dist/installation/lease.d.ts +6 -0
- package/dist/installation/lease.js +28 -0
- package/dist/installation/lease.js.map +1 -0
- package/dist/installation/ownership.d.ts +30 -0
- package/dist/installation/ownership.js +156 -0
- package/dist/installation/ownership.js.map +1 -0
- package/dist/installation/selection.d.ts +8 -0
- package/dist/installation/selection.js +29 -0
- package/dist/installation/selection.js.map +1 -0
- package/dist/machine-host.d.ts +26 -5
- package/dist/machine-host.js +192 -69
- package/dist/machine-host.js.map +1 -1
- package/dist/main.js +56 -2
- package/dist/main.js.map +1 -1
- package/dist/platform-product-host.d.ts +9 -9
- package/dist/platform-product-host.js +17 -17
- package/dist/platform-product-host.js.map +1 -1
- package/dist/platform-tools.d.ts +4 -3
- package/dist/platform-tools.js +34 -37
- package/dist/platform-tools.js.map +1 -1
- package/dist/process-lifecycle.d.ts +8 -0
- package/dist/process-lifecycle.js +32 -0
- package/dist/process-lifecycle.js.map +1 -0
- package/dist/runtime-command-host.d.ts +7 -0
- package/dist/runtime-command-host.js +49 -13
- package/dist/runtime-command-host.js.map +1 -1
- package/dist/service/adapter.d.ts +36 -0
- package/dist/service/adapter.js +24 -0
- package/dist/service/adapter.js.map +1 -0
- package/dist/service/cli.d.ts +8 -0
- package/dist/service/cli.js +196 -0
- package/dist/service/cli.js.map +1 -0
- package/dist/service/control.d.ts +29 -0
- package/dist/service/control.js +68 -0
- package/dist/service/control.js.map +1 -0
- package/dist/service/index.d.ts +9 -0
- package/dist/service/index.js +10 -0
- package/dist/service/index.js.map +1 -0
- package/dist/service/keepalive.d.ts +11 -0
- package/dist/service/keepalive.js +180 -0
- package/dist/service/keepalive.js.map +1 -0
- package/dist/service/launchd.d.ts +9 -0
- package/dist/service/launchd.js +105 -0
- package/dist/service/launchd.js.map +1 -0
- package/dist/service/owner.d.ts +4 -0
- package/dist/service/owner.js +14 -0
- package/dist/service/owner.js.map +1 -0
- package/dist/service/portable.d.ts +10 -0
- package/dist/service/portable.js +32 -0
- package/dist/service/portable.js.map +1 -0
- package/dist/service/registration.d.ts +82 -0
- package/dist/service/registration.js +114 -0
- package/dist/service/registration.js.map +1 -0
- package/dist/service/systemd.d.ts +9 -0
- package/dist/service/systemd.js +94 -0
- package/dist/service/systemd.js.map +1 -0
- package/dist/service/windows-task.d.ts +16 -0
- package/dist/service/windows-task.js +82 -0
- package/dist/service/windows-task.js.map +1 -0
- package/dist/service/windows.d.ts +2 -0
- package/dist/service/windows.js +65 -0
- package/dist/service/windows.js.map +1 -0
- package/dist/user-ground-host.d.ts +3 -0
- package/dist/user-ground-host.js +13 -0
- package/dist/user-ground-host.js.map +1 -1
- package/npm-shrinkwrap.json +49 -83
- package/package.json +9 -9
package/PURPOSE.md
CHANGED
|
@@ -1,23 +1,90 @@
|
|
|
1
1
|
# @amalgm/shell — Purpose
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
3
|
+
Amalgm Shell gives a user one dependable machine runtime assembled from the
|
|
4
|
+
published `@amalgm/*` SDKs. An enabled installation should remain available
|
|
5
|
+
while its host can execute, recover without opening a UI, contain a failing
|
|
6
|
+
workload, and leave the machine's resources available for useful work. Shell
|
|
7
|
+
owns composition, process boot, and native host effects; Core and the product
|
|
8
|
+
SDKs own the decisions those effects execute.
|
|
9
|
+
|
|
10
|
+
## Operating axioms
|
|
11
|
+
|
|
12
|
+
These are the required operating contract, not a statement that every current
|
|
13
|
+
installation satisfies it. The [operating contract](docs/operating-contract.md)
|
|
14
|
+
defines the terms and examinations; the [September 2026 audit](docs/operating-audit-2026-09-05.md)
|
|
15
|
+
records implementation gaps and historical evidence.
|
|
16
|
+
The [release environments plan](docs/release-environments-plan.md) records the
|
|
17
|
+
agreed CI/CD and update evolution; its target behavior is not yet delivered.
|
|
18
|
+
|
|
19
|
+
- **O1 — Lifetime follows installation intent.** One installation owner keeps
|
|
20
|
+
the enabled runtime available independently of its launching UI or terminal
|
|
21
|
+
whenever the host can execute and the required machine state is accessible.
|
|
22
|
+
- **O2 — Failure stays with its owner.** A failed workload degrades its own
|
|
23
|
+
capability and declared dependants without restarting its parent or unrelated
|
|
24
|
+
capabilities.
|
|
25
|
+
- **O3 — Recovery has an end.** Automatic process recovery reaches sustained
|
|
26
|
+
health or a durable parked state within a finite attempt budget that parent
|
|
27
|
+
restarts and elapsed backoff cannot replenish.
|
|
28
|
+
- **O4 — Health observation stays available.** Local control and liveness
|
|
29
|
+
perform bounded work independently of product readiness, cloud connectivity,
|
|
30
|
+
and workload size.
|
|
31
|
+
- **O5 — Each decision has one repository owner.** Core owns portable kernel
|
|
32
|
+
policy, each product owns its domain policy, and Shell supplies composition
|
|
33
|
+
and machine effects through their public contracts.
|
|
34
|
+
- **O6 — Resource use follows necessary work.** Every host resource has one
|
|
35
|
+
lifecycle owner and a declared bound, and idle operation performs no work
|
|
36
|
+
except explicitly budgeted health, lease, and reconciliation duties.
|
|
37
|
+
|
|
38
|
+
The detailed axioms below remain binding. Their mechanisms must serve these
|
|
39
|
+
operating rules; a parity-preserved behavior that violates one is a documented
|
|
40
|
+
gap to resolve at its owning SDK, not a reason to perpetuate the violation.
|
|
7
41
|
|
|
8
42
|
## Axioms
|
|
9
43
|
|
|
10
|
-
1. **The shell
|
|
11
|
-
|
|
12
|
-
|
|
44
|
+
1. **The shell implements host effects; SDKs own domain decisions.** Shell
|
|
45
|
+
assembles published capabilities, implements their native effect ports,
|
|
46
|
+
passes configuration, and mounts routes. A portable product decision belongs
|
|
47
|
+
in its product SDK; a portable kernel decision belongs in `@amalgm/core`.
|
|
48
|
+
A missing SDK port is repaired in that owner before Shell consumes it.
|
|
49
|
+
Each SDK remains usable without Shell. Live and Chat preserve their
|
|
50
|
+
Core-free dependency boundaries; Shell injects their host capabilities.
|
|
51
|
+
One installed runtime and command do not require one operating-system
|
|
52
|
+
process: isolation may change the host topology without changing SDK law.
|
|
13
53
|
|
|
14
54
|
Agent-task execution is one example: Agents resolves the current immutable
|
|
15
55
|
revision, Chat owns its new durable conversation and turn, Automations owns
|
|
16
56
|
the queued step and retry key, and Shell only connects those capabilities
|
|
17
57
|
to the selected machine's model, auth, Toolbox, and workspace bindings.
|
|
18
58
|
|
|
19
|
-
|
|
20
|
-
|
|
59
|
+
The environment controller gives each signed-in user and validated binding one
|
|
60
|
+
OS service outside every UI bundle. It holds an OS-released lease, publishes an
|
|
61
|
+
authenticated control endpoint and supervises one child runtime over IPC. A
|
|
62
|
+
missing heartbeat or a remembered PID never transfers ownership. A child exits
|
|
63
|
+
when its controller disconnects; an intentional stop drains that child before
|
|
64
|
+
releasing ownership. Service adapters derive their names from the same binding
|
|
65
|
+
and never operate another environment's process.
|
|
66
|
+
Every control mutation carries the expected user, binding and owner generation;
|
|
67
|
+
the receiving controller verifies that identity before performing the mutation.
|
|
68
|
+
Authenticating a response after an effect cannot authorize that effect.
|
|
69
|
+
Native registration belongs to the current OS account even when the installation
|
|
70
|
+
uses another data home. Windows Task Scheduler owns the controller's lifetime
|
|
71
|
+
and bounded crash recovery in that account's logged-in session; a detached
|
|
72
|
+
logon hook alone is not a recovery owner.
|
|
73
|
+
An active installation from before the ownership protocol must exit once before
|
|
74
|
+
its saved account can move to this controller; a remembered PID is neither a
|
|
75
|
+
stop capability nor permission to start a second writer beside it.
|
|
76
|
+
|
|
77
|
+
Every UI enters one finite setup operation. It serializes installation setup,
|
|
78
|
+
selects the server-approved account, and either proves adoption without changing
|
|
79
|
+
the runtime or acquires that account's runtime lease before enrollment. The OS
|
|
80
|
+
service takes over only after the enrolling foreground owner has drained.
|
|
81
|
+
The operating system selects the credential backend; choosing a data home never
|
|
82
|
+
changes it. Examinations inject their credential store explicitly.
|
|
83
|
+
|
|
84
|
+
2. **Managed bricks arrive through the registry.** Every production/preview
|
|
85
|
+
`@amalgm/*` dependency is an exact published npm version. Explicit local
|
|
86
|
+
development profiles may select local built SDKs; an absent local component
|
|
87
|
+
never silently falls back to a managed package or hosted service.
|
|
21
88
|
Upgrading the runtime means bumping a version, not merging code. Registry
|
|
22
89
|
proof runs under the supported Node executable that launched the gate;
|
|
23
90
|
ambient package-manager shims are not runtime evidence.
|
|
@@ -29,16 +96,32 @@ shell only assembles.
|
|
|
29
96
|
remain in the Engine, but they never run as a fallback beside a released
|
|
30
97
|
Shell service.
|
|
31
98
|
|
|
32
|
-
4. **
|
|
33
|
-
|
|
34
|
-
|
|
99
|
+
4. **Each shared host capability has one scoped owner.** Shell constructs
|
|
100
|
+
shared adapters once for their installation scope and injects them instead
|
|
101
|
+
of letting consumers rediscover them. Product-owned resources stay behind
|
|
102
|
+
their SDK's public API: Apps, for example, owns its app processes and store,
|
|
103
|
+
and Shell never opens a second lifecycle owner for them. Portable SDK
|
|
104
|
+
decisions receive effects explicitly and never discover ambient process
|
|
105
|
+
state or disk on their own.
|
|
35
106
|
|
|
36
|
-
5. **Bricks never update themselves; the shell updates.** Every `@amalgm/*`
|
|
107
|
+
5. **Bricks never update themselves; the shell updates.** Every direct `@amalgm/*`
|
|
37
108
|
dependency is pinned to an exact version — no ranges. Publishing a brick
|
|
38
109
|
changes nothing on any user machine until the shell bumps its pin and ships
|
|
39
110
|
a new release through the existing npm dist-tag rail (one runtime label, one
|
|
40
111
|
tag). One version number, one atomic update, one combination that was
|
|
41
112
|
actually tested together — never a per-brick drift of versions in the wild.
|
|
113
|
+
The shrinkwrap fixes the transitive graph as well; direct pins do not
|
|
114
|
+
imply that every consumer resolves the same Core version. Release proof
|
|
115
|
+
checks those actual resolutions and their public contracts, and upgrades
|
|
116
|
+
affected consumers deliberately instead of forcing an untested override.
|
|
117
|
+
|
|
118
|
+
5a. **One binding selects the whole installation.** Core's validated label,
|
|
119
|
+
exact source branch and local session select separate mutable roots,
|
|
120
|
+
credentials, databases, process owners and endpoints; production retains
|
|
121
|
+
`~/amalgm`, preview uses `~/amalgm-preview`, and local uses
|
|
122
|
+
`~/amalgm-dev/<session>`. Host effects reserve physical writable roots before
|
|
123
|
+
use, including aliases and enclosing paths, so a second installation cannot
|
|
124
|
+
become another writer of the same ground.
|
|
42
125
|
|
|
43
126
|
6. **Authentication exemptions transfer authority; they do not remove it.**
|
|
44
127
|
Every exempt prefix is explicit and narrow, and the mounted brick must
|
|
@@ -799,7 +882,8 @@ shell only assembles.
|
|
|
799
882
|
|
|
800
883
|
60. **Runtime binding is proved, never inferred.** A platform adapter adopts
|
|
801
884
|
an existing runtime only when Shell's published loopback address answers
|
|
802
|
-
its authenticated
|
|
885
|
+
its authenticated identity probe for the selected user, device, environment,
|
|
886
|
+
exact branch, local session, and process generation. A
|
|
803
887
|
durable ready registration with no answering runtime may be resumed; an
|
|
804
888
|
absent or incomplete registration requires login. A UI marker, PID, open
|
|
805
889
|
port, or installed executable alone is never service readiness.
|
package/README.md
CHANGED
|
@@ -4,6 +4,19 @@ The Amalgm runtime, assembled from published `@amalgm/*` SDK capabilities.
|
|
|
4
4
|
This repository owns their host composition; see [PURPOSE.md](PURPOSE.md) for
|
|
5
5
|
the axioms.
|
|
6
6
|
|
|
7
|
+
Start with the [operating contract](docs/operating-contract.md) for always-on
|
|
8
|
+
operation, failure containment, repository ownership, and performance gates.
|
|
9
|
+
The [history and implementation audit](docs/operating-audit-2026-09-05.md)
|
|
10
|
+
separates those requirements from current evidence. Persistent OS supervision
|
|
11
|
+
and subsystem crash isolation are not yet certified for this Shell release;
|
|
12
|
+
`amalgm run` currently runs the composed runtime in the foreground.
|
|
13
|
+
The [runtime hardening plan](docs/runtime-hardening-plan.md) gives the
|
|
14
|
+
implementation sequence, owning repositories, and acceptance gates.
|
|
15
|
+
The [release environments and update plan](docs/release-environments-plan.md)
|
|
16
|
+
records the three CI/CD workstreams: environment bindings, deployment to all
|
|
17
|
+
supported surfaces, and background updates. It includes partial local development,
|
|
18
|
+
the public `amalgm` bootstrap target and the two in-progress engineering skills.
|
|
19
|
+
|
|
7
20
|
The signed runtime composes Core + Files + Agents + Tools + Chat. Agents owns
|
|
8
21
|
identity and immutable revision resolution; Chat alone owns durable
|
|
9
22
|
conversations, turns, reconnect, and interrupt; Shell supplies the host effects
|
|
@@ -38,6 +51,9 @@ Provider credentials are never accepted through UI payloads, local credential
|
|
|
38
51
|
resolution, or environment variables. Products use an injected broker adapter
|
|
39
52
|
that creates a fresh DPoP proof for each protected request.
|
|
40
53
|
|
|
54
|
+
The [login and setup contract](docs/login-setup.md) records the browser/CLI
|
|
55
|
+
boundary and the shared credential-bearing HTTP guarantees.
|
|
56
|
+
|
|
41
57
|
## Run
|
|
42
58
|
|
|
43
59
|
```bash
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { authFromRecord, mergeRecordAuth, publicComputerRecord, } from "@amalgm/core/identity";
|
|
1
|
+
import { authFromRecord, mergeRecordAuth, publicComputerRecord, resolveRuntimeBinding, runtimeBindingRecord, } from "@amalgm/core/identity";
|
|
2
2
|
import { deviceKeyFromStored, installationDeviceKeyStores, promoteInstallationDeviceKeyRecovery, stageInstallationDeviceKeyRecovery, } from "./index.js";
|
|
3
3
|
import { requestAuthorizationKeyRecovery } from "./recovery-client.js";
|
|
4
4
|
export async function recoverMachineAuthorization(options) {
|
|
@@ -55,8 +55,7 @@ function recoveryBody(options, record, deviceId, key) {
|
|
|
55
55
|
name: text(record.name) || options.fallbackName,
|
|
56
56
|
platform: text(record.platform) || options.fallbackPlatform,
|
|
57
57
|
app_version: options.runtimeVersion,
|
|
58
|
-
|
|
59
|
-
branch: options.branch,
|
|
58
|
+
...runtimeBindingRecord(resolveRuntimeBinding(options)),
|
|
60
59
|
purpose: "authorization_key_recovery",
|
|
61
60
|
authorization_key_thumbprint: key,
|
|
62
61
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"recovery-host.js","sourceRoot":"","sources":["../../src/authorization/recovery-host.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EACd,eAAe,EACf,oBAAoB,GAErB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EACL,mBAAmB,EACnB,2BAA2B,EAC3B,oCAAoC,EACpC,kCAAkC,GACnC,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,+BAA+B,EAAE,MAAM,sBAAsB,CAAC;AAWvE,MAAM,CAAC,KAAK,UAAU,2BAA2B,CAAC,
|
|
1
|
+
{"version":3,"file":"recovery-host.js","sourceRoot":"","sources":["../../src/authorization/recovery-host.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/** Argument syntax shared by runtime and service commands; no host effects. */
|
|
2
|
+
export interface ParsedArguments {
|
|
3
|
+
readonly command: string;
|
|
4
|
+
readonly options: Record<string, string | boolean>;
|
|
5
|
+
readonly positionals: readonly string[];
|
|
6
|
+
}
|
|
7
|
+
export declare function parseArguments(args: readonly string[]): ParsedArguments;
|
|
8
|
+
export declare function option(parsed: ParsedArguments, key: string): string;
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
/** Argument syntax shared by runtime and service commands; no host effects. */
|
|
2
|
+
export function parseArguments(args) {
|
|
3
|
+
const remaining = [...args];
|
|
4
|
+
if (remaining[0] === "--help" || remaining[0] === "-h") {
|
|
5
|
+
return { command: "help", options: {}, positionals: [] };
|
|
6
|
+
}
|
|
7
|
+
if (remaining[0] === "--version" || remaining[0] === "-v") {
|
|
8
|
+
return { command: "version", options: {}, positionals: [] };
|
|
9
|
+
}
|
|
10
|
+
const command = remaining.shift() || "help";
|
|
11
|
+
const options = {};
|
|
12
|
+
const setOption = (key, value) => {
|
|
13
|
+
if (!/^[a-z][a-z0-9-]*$/.test(key))
|
|
14
|
+
throw new Error(`Invalid option: --${key}`);
|
|
15
|
+
if (Object.hasOwn(options, key))
|
|
16
|
+
throw new Error(`Duplicate option: --${key}`);
|
|
17
|
+
options[key] = value;
|
|
18
|
+
};
|
|
19
|
+
const positionals = [];
|
|
20
|
+
for (let index = 0; index < remaining.length; index += 1) {
|
|
21
|
+
const argument = remaining[index];
|
|
22
|
+
if (!argument.startsWith("--")) {
|
|
23
|
+
positionals.push(argument);
|
|
24
|
+
continue;
|
|
25
|
+
}
|
|
26
|
+
const separator = argument.indexOf("=");
|
|
27
|
+
if (separator !== -1) {
|
|
28
|
+
setOption(argument.slice(2, separator), argument.slice(separator + 1));
|
|
29
|
+
continue;
|
|
30
|
+
}
|
|
31
|
+
const key = argument.slice(2);
|
|
32
|
+
const next = remaining[index + 1];
|
|
33
|
+
if (next && !next.startsWith("--")) {
|
|
34
|
+
setOption(key, next);
|
|
35
|
+
index += 1;
|
|
36
|
+
}
|
|
37
|
+
else {
|
|
38
|
+
setOption(key, true);
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
return { command, options, positionals };
|
|
42
|
+
}
|
|
43
|
+
export function option(parsed, key) {
|
|
44
|
+
const value = parsed.options[key];
|
|
45
|
+
return typeof value === "string" ? value : "";
|
|
46
|
+
}
|
|
47
|
+
//# sourceMappingURL=cli-arguments.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli-arguments.js","sourceRoot":"","sources":["../src/cli-arguments.ts"],"names":[],"mappings":"AAAA,+EAA+E;AAQ/E,MAAM,UAAU,cAAc,CAAC,IAAuB;IACpD,MAAM,SAAS,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC;IAC5B,IAAI,SAAS,CAAC,CAAC,CAAC,KAAK,QAAQ,IAAI,SAAS,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;QACvD,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE,CAAC;IAC3D,CAAC;IACD,IAAI,SAAS,CAAC,CAAC,CAAC,KAAK,WAAW,IAAI,SAAS,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;QAC1D,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE,CAAC;IAC9D,CAAC;IACD,MAAM,OAAO,GAAG,SAAS,CAAC,KAAK,EAAE,IAAI,MAAM,CAAC;IAC5C,MAAM,OAAO,GAAqC,EAAE,CAAC;IACrD,MAAM,SAAS,GAAG,CAAC,GAAW,EAAE,KAAuB,EAAQ,EAAE;QAC/D,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,GAAG,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,qBAAqB,GAAG,EAAE,CAAC,CAAC;QAChF,IAAI,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,GAAG,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,uBAAuB,GAAG,EAAE,CAAC,CAAC;QAC/E,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;IACvB,CAAC,CAAC;IACF,MAAM,WAAW,GAAa,EAAE,CAAC;IACjC,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,SAAS,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QACzD,MAAM,QAAQ,GAAG,SAAS,CAAC,KAAK,CAAW,CAAC;QAC5C,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YAC/B,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC3B,SAAS;QACX,CAAC;QACD,MAAM,SAAS,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACxC,IAAI,SAAS,KAAK,CAAC,CAAC,EAAE,CAAC;YACrB,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC,EAAE,QAAQ,CAAC,KAAK,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC;YACvE,SAAS;QACX,CAAC;QACD,MAAM,GAAG,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAC9B,MAAM,IAAI,GAAG,SAAS,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;QAClC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YACnC,SAAS,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;YACrB,KAAK,IAAI,CAAC,CAAC;QACb,CAAC;aAAM,CAAC;YACN,SAAS,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QACvB,CAAC;IACH,CAAC;IACD,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC;AAC3C,CAAC;AAED,MAAM,UAAU,MAAM,CAAC,MAAuB,EAAE,GAAW;IACzD,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAClC,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;AAChD,CAAC"}
|
package/dist/cli.d.ts
CHANGED
|
@@ -1,7 +1,9 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
import { type RuntimeBinding } from "@amalgm/core/identity";
|
|
2
|
+
import type { DevelopmentProfile } from './development/profile.js';
|
|
3
|
+
export declare function runCli(argv?: string[], signal?: AbortSignal, profile?: DevelopmentProfile): Promise<number>;
|
|
4
|
+
declare function hostedProducts(appUrl: string, env?: NodeJS.ProcessEnv, binding?: RuntimeBinding): {
|
|
5
5
|
log(event: string, details?: Readonly<Record<string, unknown>>): void;
|
|
6
|
+
channelsBaseUrl?: string | undefined;
|
|
7
|
+
automationsBaseUrl?: string | undefined;
|
|
6
8
|
} | null;
|
|
7
9
|
export { hostedProducts };
|
package/dist/cli.js
CHANGED
|
@@ -2,21 +2,42 @@ import { spawn } from "node:child_process";
|
|
|
2
2
|
import { readFileSync } from "node:fs";
|
|
3
3
|
import { performance } from "node:perf_hooks";
|
|
4
4
|
import { MachineSetupError } from "@amalgm/core/identity";
|
|
5
|
-
import { channelsCliHelp, runChannelsCli } from "@amalgm/channels/cli";
|
|
6
5
|
import { MachineHost, defaultMachineName } from "./machine-host.js";
|
|
7
|
-
import { runShellAutomationsCli } from "./automations-cli-host.js";
|
|
8
6
|
import { renderStageLedger } from "./files-trace.js";
|
|
7
|
+
import { parseArguments, option } from "./cli-arguments.js";
|
|
8
|
+
import { selectRuntimeInvocation, resolveInvocationBinding } from "./installation/selection.js";
|
|
9
|
+
import { runtimeAppOrigin, runtimeHostedEndpoints } from "./installation/environment.js";
|
|
10
|
+
import { resolveRuntimeBinding } from "@amalgm/core/identity";
|
|
11
|
+
import { processShutdown, waitForShutdown } from './process-lifecycle.js';
|
|
12
|
+
import { resolveAvailableInstallation } from '@amalgm/core/supervision';
|
|
13
|
+
import { shellReleaseCatalog } from './release-catalog.js';
|
|
9
14
|
const VERSION = String(JSON.parse(readFileSync(new URL("../package.json", import.meta.url), "utf8")).version);
|
|
10
|
-
export async function runCli(argv = process.argv) {
|
|
11
|
-
const
|
|
15
|
+
export async function runCli(argv = process.argv, signal, profile) {
|
|
16
|
+
const owned = signal ? null : processShutdown();
|
|
17
|
+
try {
|
|
18
|
+
return await runSelectedCli(argv, signal ?? owned.signal, profile);
|
|
19
|
+
}
|
|
20
|
+
catch (error) {
|
|
21
|
+
process.stderr.write(`${error instanceof Error ? error.message : String(error)}\n`);
|
|
22
|
+
return 2;
|
|
23
|
+
}
|
|
24
|
+
finally {
|
|
25
|
+
owned?.close();
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
async function runSelectedCli(argv, shutdown, profile) {
|
|
29
|
+
if (shutdown.aborted)
|
|
30
|
+
return 130;
|
|
31
|
+
const invocation = selectRuntimeInvocation(argv.slice(2));
|
|
32
|
+
const parsed = parseArguments(invocation.args);
|
|
12
33
|
if (parsed.command === "automations" && automationHelp(parsed)) {
|
|
13
|
-
return runShellAutomationsCli(automationArguments(parsed), async () => {
|
|
34
|
+
return (await import("./automations-cli-host.js")).runShellAutomationsCli(automationArguments(parsed), async () => {
|
|
14
35
|
throw new Error("Automations help does not open the user runtime");
|
|
15
36
|
});
|
|
16
37
|
}
|
|
17
38
|
if (parsed.command === "channels"
|
|
18
39
|
&& (parsed.options.help || [undefined, "help", "--help", "-h"].includes(parsed.positionals[0]))) {
|
|
19
|
-
process.stdout.write(channelsCliHelp);
|
|
40
|
+
process.stdout.write((await import("@amalgm/channels/cli")).channelsCliHelp);
|
|
20
41
|
return 0;
|
|
21
42
|
}
|
|
22
43
|
if (parsed.command === "help" || parsed.options.help) {
|
|
@@ -24,29 +45,38 @@ export async function runCli(argv = process.argv) {
|
|
|
24
45
|
return 0;
|
|
25
46
|
}
|
|
26
47
|
if (parsed.command === "version" || parsed.options.version) {
|
|
27
|
-
process.stdout.write(`${VERSION}\n`);
|
|
48
|
+
process.stdout.write(`${parsed.options['setup-protocol'] ? '1' : VERSION}\n`);
|
|
28
49
|
return 0;
|
|
29
50
|
}
|
|
30
51
|
const filesCommand = parsed.command === "files" ? parsed.positionals[0] : undefined;
|
|
31
52
|
const authCommand = parsed.command === "auth" ? parsed.positionals[0] : undefined;
|
|
32
|
-
if (!["login", "run", "status", "files", "auth", "automations", "channels"].includes(parsed.command)
|
|
53
|
+
if (!["setup", "login", "run", "status", "files", "auth", "automations", "channels"].includes(parsed.command)
|
|
33
54
|
|| (parsed.command === "files" && !["register", "add"].includes(String(filesCommand)))) {
|
|
34
55
|
process.stderr.write(`Unknown command: ${parsed.command}\n\n${helpText()}`);
|
|
35
56
|
return 2;
|
|
36
57
|
}
|
|
37
|
-
const
|
|
38
|
-
|
|
58
|
+
const binding = resolveInvocationBinding(invocation.runtimeLabel, parsed);
|
|
59
|
+
if (profile && ['setup', 'login', 'run'].includes(parsed.command) && !profile.endpoints.wire) {
|
|
60
|
+
throw new Error('This local profile needs an explicit wire endpoint to run its required Files capability.');
|
|
61
|
+
}
|
|
62
|
+
const available = profile ? resolveAvailableInstallation(shellReleaseCatalog, profile.services, new Set(shellReleaseCatalog.services.filter(({ id }) => profile.sources[id === 'files' ? '@amalgm/live' : `@amalgm/${id}`]).map(({ id }) => id))) : undefined;
|
|
63
|
+
const appUrl = runtimeAppOrigin(binding, option(parsed, "app-url") || undefined);
|
|
64
|
+
const platformProducts = hostedProducts(appUrl, profile ? {
|
|
65
|
+
AMALGM_AUTOMATIONS_URL: profile.sources['@amalgm/automations'] ? profile.endpoints.automations : undefined,
|
|
66
|
+
AMALGM_CHANNELS_URL: profile.sources['@amalgm/channels'] ? profile.endpoints.channels : undefined,
|
|
67
|
+
} : process.env, binding);
|
|
39
68
|
const userEmail = option(parsed, "user") || undefined;
|
|
40
69
|
const traceFiles = process.env.AMALGM_FILES_TRACE === "1";
|
|
41
70
|
const host = new MachineHost({
|
|
42
71
|
homedir: option(parsed, "home") || undefined,
|
|
43
|
-
amalgmRoot: option(parsed, "amalgm-root") ||
|
|
72
|
+
amalgmRoot: option(parsed, "amalgm-root") || undefined,
|
|
44
73
|
userEmail,
|
|
45
74
|
appUrl,
|
|
46
75
|
runtimeVersion: VERSION,
|
|
47
|
-
|
|
48
|
-
|
|
76
|
+
...binding,
|
|
77
|
+
...(available ? { services: available.services } : {}),
|
|
49
78
|
proxyUrl: option(parsed, "proxy-url") || undefined,
|
|
79
|
+
wireUrl: option(parsed, "wire-url") || undefined,
|
|
50
80
|
...(platformProducts ? { platformProducts } : {}),
|
|
51
81
|
runtimePort: numericOption(parsed, "port"),
|
|
52
82
|
showSetup: async ({ verificationUrl, setupCode, keyThumbprint }) => {
|
|
@@ -82,15 +112,45 @@ export async function runCli(argv = process.argv) {
|
|
|
82
112
|
});
|
|
83
113
|
const started = performance.now();
|
|
84
114
|
try {
|
|
115
|
+
if (parsed.command === 'setup') {
|
|
116
|
+
const result = await host.setup({
|
|
117
|
+
...(available ? { services: available.services } : {}),
|
|
118
|
+
name: option(parsed, 'name') || defaultMachineName(),
|
|
119
|
+
...(option(parsed, 'setup-code') ? { setupCode: option(parsed, 'setup-code') } : {}),
|
|
120
|
+
});
|
|
121
|
+
await host.close();
|
|
122
|
+
const { runServiceCli } = await import('./service/cli.js');
|
|
123
|
+
const serviceArgs = ['start', '--user', result.userEmail, '--home', host.homedir,
|
|
124
|
+
'--amalgm-root', host.amalgmRoot, '--app-url', appUrl, '--branch', binding.branch,
|
|
125
|
+
...(binding.localSession ? ['--local-session', binding.localSession] : []),
|
|
126
|
+
...['proxy-url', 'wire-url', 'port', 'profile', 'mode'].flatMap((name) => option(parsed, name) ? [`--${name}`, option(parsed, name)] : []),
|
|
127
|
+
];
|
|
128
|
+
if (!(await host.status()).running) {
|
|
129
|
+
host.assertRuntimeCanStart();
|
|
130
|
+
const code = await runServiceCli(serviceArgs, binding.runtimeLabel);
|
|
131
|
+
if (code !== 0)
|
|
132
|
+
throw new Error('Registration is saved, but the independent runtime service could not start.');
|
|
133
|
+
}
|
|
134
|
+
const deadline = Date.now() + 300_000;
|
|
135
|
+
while (!shutdown.aborted && Date.now() < deadline) {
|
|
136
|
+
const status = await host.status();
|
|
137
|
+
if (status.running) {
|
|
138
|
+
process.stdout.write(`AMALGM_SETUP_COMPLETE ${JSON.stringify({ ...result, binding, runtimePort: status.runtimePort })}\n`);
|
|
139
|
+
return 0;
|
|
140
|
+
}
|
|
141
|
+
await new Promise((done) => setTimeout(done, 500));
|
|
142
|
+
}
|
|
143
|
+
throw new Error('Registration is saved, but the runtime service has not become ready. Check amalgm service status for this user and environment.');
|
|
144
|
+
}
|
|
85
145
|
if (parsed.command === "automations") {
|
|
86
|
-
return await runShellAutomationsCli(automationArguments(parsed), () => host.automationRuntimeConnection());
|
|
146
|
+
return await (await import("./automations-cli-host.js")).runShellAutomationsCli(automationArguments(parsed), () => host.automationRuntimeConnection());
|
|
87
147
|
}
|
|
88
148
|
if (parsed.command === "status") {
|
|
89
|
-
process.stdout.write(`${JSON.stringify(await host.status(), null, 2)}\n`);
|
|
149
|
+
process.stdout.write(`${JSON.stringify({ ...await host.status(), ...(available ? { capabilities: available.capabilities } : {}) }, null, 2)}\n`);
|
|
90
150
|
return 0;
|
|
91
151
|
}
|
|
92
152
|
if (parsed.command === "channels") {
|
|
93
|
-
return runChannelsCli(channelsArguments(parsed), host.channelsCommands());
|
|
153
|
+
return (await import("@amalgm/channels/cli")).runChannelsCli(channelsArguments(parsed), host.channelsCommands());
|
|
94
154
|
}
|
|
95
155
|
if (parsed.command === "files") {
|
|
96
156
|
if (parsed.positionals.length !== 2) {
|
|
@@ -125,6 +185,7 @@ export async function runCli(argv = process.argv) {
|
|
|
125
185
|
}
|
|
126
186
|
const ready = parsed.command === "login"
|
|
127
187
|
? await host.join({
|
|
188
|
+
...(available ? { services: available.services } : {}),
|
|
128
189
|
name: option(parsed, "name") || defaultMachineName(),
|
|
129
190
|
...(option(parsed, "setup-code") ? { setupCode: option(parsed, "setup-code") } : {}),
|
|
130
191
|
})
|
|
@@ -139,11 +200,12 @@ export async function runCli(argv = process.argv) {
|
|
|
139
200
|
entities: ready.userGround.entityCount,
|
|
140
201
|
watchers: ready.userGround.watcherRoots,
|
|
141
202
|
services: ready.installation.services,
|
|
203
|
+
...(available ? { capabilities: available.capabilities } : {}),
|
|
142
204
|
})}\n`);
|
|
143
205
|
if (parsed.options["exit-after-ready"]) {
|
|
144
206
|
return 0;
|
|
145
207
|
}
|
|
146
|
-
await waitForShutdown();
|
|
208
|
+
await waitForShutdown(shutdown);
|
|
147
209
|
return 0;
|
|
148
210
|
}
|
|
149
211
|
catch (error) {
|
|
@@ -166,13 +228,12 @@ export async function runCli(argv = process.argv) {
|
|
|
166
228
|
await host.close();
|
|
167
229
|
}
|
|
168
230
|
}
|
|
169
|
-
function hostedProducts(appUrl, env = process.env) {
|
|
170
|
-
const
|
|
171
|
-
if (!
|
|
231
|
+
function hostedProducts(appUrl, env = process.env, binding = resolveRuntimeBinding()) {
|
|
232
|
+
const endpoints = runtimeHostedEndpoints(binding, appUrl, env);
|
|
233
|
+
if (!endpoints.automationsBaseUrl && !endpoints.channelsBaseUrl)
|
|
172
234
|
return null;
|
|
173
235
|
return {
|
|
174
|
-
|
|
175
|
-
channelsBaseUrl: env.AMALGM_CHANNELS_URL || 'https://amalgm-channels.fly.dev',
|
|
236
|
+
...endpoints,
|
|
176
237
|
log(event, details = {}) {
|
|
177
238
|
process.stdout.write(`AMALGM_PRODUCT ${JSON.stringify({ event, ...details })}\n`);
|
|
178
239
|
},
|
|
@@ -187,50 +248,12 @@ function reportStages(command, stages, totalMs) {
|
|
|
187
248
|
renderStageLedger(evidence, totalMs),
|
|
188
249
|
].join("\n");
|
|
189
250
|
}
|
|
190
|
-
function parseArguments(args) {
|
|
191
|
-
const remaining = [...args];
|
|
192
|
-
if (remaining[0] === "--help" || remaining[0] === "-h") {
|
|
193
|
-
return { command: "help", options: {}, positionals: [] };
|
|
194
|
-
}
|
|
195
|
-
if (remaining[0] === "--version" || remaining[0] === "-v") {
|
|
196
|
-
return { command: "version", options: {}, positionals: [] };
|
|
197
|
-
}
|
|
198
|
-
const command = remaining.shift() || "help";
|
|
199
|
-
const options = {};
|
|
200
|
-
const positionals = [];
|
|
201
|
-
for (let index = 0; index < remaining.length; index += 1) {
|
|
202
|
-
const argument = remaining[index];
|
|
203
|
-
if (!argument.startsWith("--")) {
|
|
204
|
-
positionals.push(argument);
|
|
205
|
-
continue;
|
|
206
|
-
}
|
|
207
|
-
const separator = argument.indexOf("=");
|
|
208
|
-
if (separator !== -1) {
|
|
209
|
-
options[argument.slice(2, separator)] = argument.slice(separator + 1);
|
|
210
|
-
continue;
|
|
211
|
-
}
|
|
212
|
-
const key = argument.slice(2);
|
|
213
|
-
const next = remaining[index + 1];
|
|
214
|
-
if (next && !next.startsWith("--")) {
|
|
215
|
-
options[key] = next;
|
|
216
|
-
index += 1;
|
|
217
|
-
}
|
|
218
|
-
else {
|
|
219
|
-
options[key] = true;
|
|
220
|
-
}
|
|
221
|
-
}
|
|
222
|
-
return { command, options, positionals };
|
|
223
|
-
}
|
|
224
|
-
function option(parsed, key) {
|
|
225
|
-
const value = parsed.options[key];
|
|
226
|
-
return typeof value === "string" ? value : "";
|
|
227
|
-
}
|
|
228
251
|
function numericOption(parsed, key) {
|
|
229
252
|
const value = Number(option(parsed, key));
|
|
230
253
|
return Number.isInteger(value) && value > 0 && value <= 65_535 ? value : undefined;
|
|
231
254
|
}
|
|
232
255
|
const SHELL_AUTOMATION_OPTIONS = new Set([
|
|
233
|
-
"app-url", "amalgm-root", "home", "user", "runtime-label", "branch", "proxy-url", "port",
|
|
256
|
+
"app-url", "amalgm-root", "home", "user", "runtime-label", "branch", "local-session", "proxy-url", "wire-url", "port", "profile",
|
|
234
257
|
]);
|
|
235
258
|
function automationArguments(parsed) {
|
|
236
259
|
const args = [...parsed.positionals];
|
|
@@ -271,18 +294,7 @@ function openBrowser(url) {
|
|
|
271
294
|
// The URL and setup code are always printed; browser launch is optional.
|
|
272
295
|
}
|
|
273
296
|
}
|
|
274
|
-
function waitForShutdown() {
|
|
275
|
-
return new Promise((resolve) => {
|
|
276
|
-
const finish = () => {
|
|
277
|
-
process.off("SIGINT", finish);
|
|
278
|
-
process.off("SIGTERM", finish);
|
|
279
|
-
resolve();
|
|
280
|
-
};
|
|
281
|
-
process.once("SIGINT", finish);
|
|
282
|
-
process.once("SIGTERM", finish);
|
|
283
|
-
});
|
|
284
|
-
}
|
|
285
297
|
function helpText() {
|
|
286
|
-
return `amalgm ${VERSION}\n\nUsage:\n amalgm login [--setup-code CODE] [--no-open]\n amalgm run --user EMAIL\n amalgm status --user EMAIL\n amalgm auth recover [--setup-code CODE] --user EMAIL\n amalgm files register <path> --user EMAIL\n amalgm files add <workspace-id> --user EMAIL\n amalgm automations <command> [--input JSON | --file PATH | --stdin]\n amalgm channels send --input JSON --user EMAIL\n\nAuthorization:\n recover Replace a missing, corrupt, or rejected device key after browser approval\n\nFiles:\n register Register, watch, upload, and commit one external workspace\n add Materialize one owned cloud workspace through the running Watch host\n\nAutomations:\n create, list, get, update, delete, run-now\n Use the same JSON objects and results as Automations MCP\n\nChannels:\n send Send one deliberate message through the running authenticated Shell\n\nOptions:\n --app-url URL Amalgm control plane (default: https://amalgm.ai)\n --amalgm-root PATH Visible installation root (default: ~/amalgm)\n --home PATH OS home override\n --user EMAIL Select one of multiple local users\n --name NAME Computer display name\n --exit-after-ready Examination-only: prove readiness, then stop\n`;
|
|
298
|
+
return `amalgm ${VERSION}\n\nUsage:\n amalgm setup [--setup-code CODE] (finite setup and OS service)\n amalgm login [--setup-code CODE] [--no-open]\n amalgm start --user EMAIL\n amalgm stop --user EMAIL\n amalgm run --user EMAIL (foreground)\n amalgm status --user EMAIL\n amalgm auth recover [--setup-code CODE] --user EMAIL\n amalgm files register <path> --user EMAIL\n amalgm files add <workspace-id> --user EMAIL\n amalgm automations <command> [--input JSON | --file PATH | --stdin]\n amalgm channels send --input JSON --user EMAIL\n\nEnvironments:\n amalgm ... Production: ~/amalgm\n amalgm preview ... Preview: ~/amalgm-preview\n amalgm dev ... --branch BRANCH --local-session SESSION --app-url URL\n Local: ~/amalgm-dev/SESSION\n\nAuthorization:\n recover Replace a missing, corrupt, or rejected device key after browser approval\n\nFiles:\n register Register, watch, upload, and commit one external workspace\n add Materialize one owned cloud workspace through the running Watch host\n\nAutomations:\n create, list, get, update, delete, run-now\n Use the same JSON objects and results as Automations MCP\n\nChannels:\n send Send one deliberate message through the running authenticated Shell\n\nOptions:\n --app-url URL Amalgm control plane (default: https://amalgm.ai)\n --amalgm-root PATH Visible installation root (default: ~/amalgm)\n --home PATH OS home override\n --user EMAIL Select one of multiple local users\n --name NAME Computer display name\n --exit-after-ready Examination-only: prove readiness, then stop\n`;
|
|
287
299
|
}
|
|
288
300
|
//# sourceMappingURL=cli.js.map
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|