lorenz 0.1.4 → 0.1.6
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/README.md +83 -20
- package/RELEASE-MANIFEST.json +6 -1
- package/node_modules/@lorenz/agent-sdk/dist/index.d.ts +1 -0
- package/node_modules/@lorenz/agent-sdk/dist/index.d.ts.map +1 -1
- package/node_modules/@lorenz/agent-sdk/dist/index.js +1 -0
- package/node_modules/@lorenz/agent-sdk/dist/index.js.map +1 -1
- package/node_modules/@lorenz/agent-sdk/dist/module.d.ts +38 -0
- package/node_modules/@lorenz/agent-sdk/dist/module.d.ts.map +1 -0
- package/node_modules/@lorenz/agent-sdk/dist/module.js +41 -0
- package/node_modules/@lorenz/agent-sdk/dist/module.js.map +1 -0
- package/node_modules/@lorenz/cli/dist/agentExecutorLoader.d.ts +30 -0
- package/node_modules/@lorenz/cli/dist/agentExecutorLoader.d.ts.map +1 -0
- package/node_modules/@lorenz/cli/dist/agentExecutorLoader.js +63 -0
- package/node_modules/@lorenz/cli/dist/agentExecutorLoader.js.map +1 -0
- package/node_modules/@lorenz/cli/dist/daemon.d.ts +42 -19
- package/node_modules/@lorenz/cli/dist/daemon.d.ts.map +1 -1
- package/node_modules/@lorenz/cli/dist/daemon.js +72 -23
- package/node_modules/@lorenz/cli/dist/daemon.js.map +1 -1
- package/node_modules/@lorenz/cli/dist/daemonLock.d.ts +59 -0
- package/node_modules/@lorenz/cli/dist/daemonLock.d.ts.map +1 -0
- package/node_modules/@lorenz/cli/dist/daemonLock.js +304 -0
- package/node_modules/@lorenz/cli/dist/daemonLock.js.map +1 -0
- package/node_modules/@lorenz/cli/dist/daemonStatus.d.ts +16 -0
- package/node_modules/@lorenz/cli/dist/daemonStatus.d.ts.map +1 -0
- package/node_modules/@lorenz/cli/dist/daemonStatus.js +21 -0
- package/node_modules/@lorenz/cli/dist/daemonStatus.js.map +1 -0
- package/node_modules/@lorenz/cli/dist/doctor.d.ts +6 -0
- package/node_modules/@lorenz/cli/dist/doctor.d.ts.map +1 -1
- package/node_modules/@lorenz/cli/dist/doctor.js +39 -2
- package/node_modules/@lorenz/cli/dist/doctor.js.map +1 -1
- package/node_modules/@lorenz/cli/dist/extensionLoader.d.ts +126 -0
- package/node_modules/@lorenz/cli/dist/extensionLoader.d.ts.map +1 -0
- package/node_modules/@lorenz/cli/dist/extensionLoader.js +187 -0
- package/node_modules/@lorenz/cli/dist/extensionLoader.js.map +1 -0
- package/node_modules/@lorenz/cli/dist/flags-manifest.d.ts +42 -0
- package/node_modules/@lorenz/cli/dist/flags-manifest.d.ts.map +1 -0
- package/node_modules/@lorenz/cli/dist/flags-manifest.js +67 -0
- package/node_modules/@lorenz/cli/dist/flags-manifest.js.map +1 -0
- package/node_modules/@lorenz/cli/dist/index.d.ts +6 -0
- package/node_modules/@lorenz/cli/dist/index.d.ts.map +1 -1
- package/node_modules/@lorenz/cli/dist/index.js +4 -0
- package/node_modules/@lorenz/cli/dist/index.js.map +1 -1
- package/node_modules/@lorenz/cli/dist/leadershipStore.d.ts +42 -0
- package/node_modules/@lorenz/cli/dist/leadershipStore.d.ts.map +1 -0
- package/node_modules/@lorenz/cli/dist/leadershipStore.js +2 -0
- package/node_modules/@lorenz/cli/dist/leadershipStore.js.map +1 -0
- package/node_modules/@lorenz/cli/dist/main.d.ts +11 -7
- package/node_modules/@lorenz/cli/dist/main.d.ts.map +1 -1
- package/node_modules/@lorenz/cli/dist/main.js +58 -8
- package/node_modules/@lorenz/cli/dist/main.js.map +1 -1
- package/node_modules/@lorenz/cli/dist/toolLoader.d.ts +28 -0
- package/node_modules/@lorenz/cli/dist/toolLoader.d.ts.map +1 -0
- package/node_modules/@lorenz/cli/dist/toolLoader.js +62 -0
- package/node_modules/@lorenz/cli/dist/toolLoader.js.map +1 -0
- package/node_modules/@lorenz/cli/dist/trackerLoader.d.ts +24 -0
- package/node_modules/@lorenz/cli/dist/trackerLoader.d.ts.map +1 -0
- package/node_modules/@lorenz/cli/dist/trackerLoader.js +34 -0
- package/node_modules/@lorenz/cli/dist/trackerLoader.js.map +1 -0
- package/node_modules/@lorenz/cli/dist/workerDriverLoader.d.ts +15 -55
- package/node_modules/@lorenz/cli/dist/workerDriverLoader.d.ts.map +1 -1
- package/node_modules/@lorenz/cli/dist/workerDriverLoader.js +26 -203
- package/node_modules/@lorenz/cli/dist/workerDriverLoader.js.map +1 -1
- package/node_modules/@lorenz/cli/package.json +1 -0
- package/node_modules/@lorenz/config/dist/index.d.ts +1 -1
- package/node_modules/@lorenz/config/dist/index.d.ts.map +1 -1
- package/node_modules/@lorenz/config/dist/index.js +1 -1
- package/node_modules/@lorenz/config/dist/index.js.map +1 -1
- package/node_modules/@lorenz/config/dist/parse.d.ts +17 -0
- package/node_modules/@lorenz/config/dist/parse.d.ts.map +1 -1
- package/node_modules/@lorenz/config/dist/parse.js +107 -11
- package/node_modules/@lorenz/config/dist/parse.js.map +1 -1
- package/node_modules/@lorenz/config/dist/schemas.d.ts +0 -2
- package/node_modules/@lorenz/config/dist/schemas.d.ts.map +1 -1
- package/node_modules/@lorenz/config/dist/schemas.js +5 -1
- package/node_modules/@lorenz/config/dist/schemas.js.map +1 -1
- package/node_modules/@lorenz/dispatch-coordinator/dist/coordinator.d.ts +55 -21
- package/node_modules/@lorenz/dispatch-coordinator/dist/coordinator.d.ts.map +1 -1
- package/node_modules/@lorenz/dispatch-coordinator/dist/coordinator.js +187 -82
- package/node_modules/@lorenz/dispatch-coordinator/dist/coordinator.js.map +1 -1
- package/node_modules/@lorenz/dispatch-coordinator/dist/gate.d.ts +6 -4
- package/node_modules/@lorenz/dispatch-coordinator/dist/gate.d.ts.map +1 -1
- package/node_modules/@lorenz/dispatch-coordinator/dist/gate.js +9 -6
- package/node_modules/@lorenz/dispatch-coordinator/dist/gate.js.map +1 -1
- package/node_modules/@lorenz/dispatch-coordinator/dist/index.d.ts +1 -1
- package/node_modules/@lorenz/dispatch-coordinator/dist/index.d.ts.map +1 -1
- package/node_modules/@lorenz/dispatch-coordinator/dist/index.js +5 -6
- package/node_modules/@lorenz/dispatch-coordinator/dist/index.js.map +1 -1
- package/node_modules/@lorenz/dispatch-coordinator/dist/mcpEndpointManager.d.ts +7 -5
- package/node_modules/@lorenz/dispatch-coordinator/dist/mcpEndpointManager.d.ts.map +1 -1
- package/node_modules/@lorenz/dispatch-coordinator/dist/mcpEndpointManager.js +12 -10
- package/node_modules/@lorenz/dispatch-coordinator/dist/mcpEndpointManager.js.map +1 -1
- package/node_modules/@lorenz/dispatch-coordinator/dist/nullEndpointManager.d.ts +11 -10
- package/node_modules/@lorenz/dispatch-coordinator/dist/nullEndpointManager.d.ts.map +1 -1
- package/node_modules/@lorenz/dispatch-coordinator/dist/nullEndpointManager.js +15 -22
- package/node_modules/@lorenz/dispatch-coordinator/dist/nullEndpointManager.js.map +1 -1
- package/node_modules/@lorenz/dispatch-coordinator/dist/types.d.ts +16 -15
- package/node_modules/@lorenz/dispatch-coordinator/dist/types.d.ts.map +1 -1
- package/node_modules/@lorenz/dispatch-coordinator/dist/types.js +6 -7
- package/node_modules/@lorenz/dispatch-coordinator/dist/types.js.map +1 -1
- package/node_modules/@lorenz/domain/dist/index.d.ts +75 -9
- package/node_modules/@lorenz/domain/dist/index.d.ts.map +1 -1
- package/node_modules/@lorenz/domain/dist/index.js +40 -0
- package/node_modules/@lorenz/domain/dist/index.js.map +1 -1
- package/node_modules/@lorenz/flags/dist/coerce.d.ts +12 -0
- package/node_modules/@lorenz/flags/dist/coerce.d.ts.map +1 -0
- package/node_modules/@lorenz/flags/dist/coerce.js +44 -0
- package/node_modules/@lorenz/flags/dist/coerce.js.map +1 -0
- package/node_modules/@lorenz/flags/dist/default.d.ts +6 -0
- package/node_modules/@lorenz/flags/dist/default.d.ts.map +1 -0
- package/node_modules/@lorenz/flags/dist/default.js +22 -0
- package/node_modules/@lorenz/flags/dist/default.js.map +1 -0
- package/node_modules/@lorenz/flags/dist/deprecations.d.ts +20 -0
- package/node_modules/@lorenz/flags/dist/deprecations.d.ts.map +1 -0
- package/node_modules/@lorenz/flags/dist/deprecations.js +42 -0
- package/node_modules/@lorenz/flags/dist/deprecations.js.map +1 -0
- package/node_modules/@lorenz/flags/dist/env.d.ts +17 -0
- package/node_modules/@lorenz/flags/dist/env.d.ts.map +1 -0
- package/node_modules/@lorenz/flags/dist/env.js +90 -0
- package/node_modules/@lorenz/flags/dist/env.js.map +1 -0
- package/node_modules/@lorenz/flags/dist/errors.d.ts +22 -0
- package/node_modules/@lorenz/flags/dist/errors.d.ts.map +1 -0
- package/node_modules/@lorenz/flags/dist/errors.js +61 -0
- package/node_modules/@lorenz/flags/dist/errors.js.map +1 -0
- package/node_modules/@lorenz/flags/dist/index.d.ts +8 -0
- package/node_modules/@lorenz/flags/dist/index.d.ts.map +1 -0
- package/node_modules/@lorenz/flags/dist/index.js +11 -0
- package/node_modules/@lorenz/flags/dist/index.js.map +1 -0
- package/node_modules/@lorenz/flags/dist/keys.d.ts +6 -0
- package/node_modules/@lorenz/flags/dist/keys.d.ts.map +1 -0
- package/node_modules/@lorenz/flags/dist/keys.js +15 -0
- package/node_modules/@lorenz/flags/dist/keys.js.map +1 -0
- package/node_modules/@lorenz/flags/dist/layers.d.ts +14 -0
- package/node_modules/@lorenz/flags/dist/layers.d.ts.map +1 -0
- package/node_modules/@lorenz/flags/dist/layers.js +107 -0
- package/node_modules/@lorenz/flags/dist/layers.js.map +1 -0
- package/node_modules/@lorenz/flags/dist/manifest.d.ts +71 -0
- package/node_modules/@lorenz/flags/dist/manifest.d.ts.map +1 -0
- package/node_modules/@lorenz/flags/dist/manifest.js +137 -0
- package/node_modules/@lorenz/flags/dist/manifest.js.map +1 -0
- package/node_modules/@lorenz/flags/dist/resolve.d.ts +8 -0
- package/node_modules/@lorenz/flags/dist/resolve.d.ts.map +1 -0
- package/node_modules/@lorenz/flags/dist/resolve.js +178 -0
- package/node_modules/@lorenz/flags/dist/resolve.js.map +1 -0
- package/node_modules/@lorenz/flags/dist/testing.d.ts +19 -0
- package/node_modules/@lorenz/flags/dist/testing.d.ts.map +1 -0
- package/node_modules/@lorenz/flags/dist/testing.js +68 -0
- package/node_modules/@lorenz/flags/dist/testing.js.map +1 -0
- package/node_modules/@lorenz/flags/dist/types.d.ts +93 -0
- package/node_modules/@lorenz/flags/dist/types.d.ts.map +1 -0
- package/node_modules/@lorenz/flags/dist/types.js +2 -0
- package/node_modules/@lorenz/flags/dist/types.js.map +1 -0
- package/node_modules/@lorenz/flags/package.json +16 -0
- package/node_modules/@lorenz/mcp/dist/agentEndpoint.d.ts +16 -3
- package/node_modules/@lorenz/mcp/dist/agentEndpoint.d.ts.map +1 -1
- package/node_modules/@lorenz/mcp/dist/agentEndpoint.js +105 -17
- package/node_modules/@lorenz/mcp/dist/agentEndpoint.js.map +1 -1
- package/node_modules/@lorenz/mcp/dist/auth.d.ts +88 -0
- package/node_modules/@lorenz/mcp/dist/auth.d.ts.map +1 -1
- package/node_modules/@lorenz/mcp/dist/auth.js +53 -0
- package/node_modules/@lorenz/mcp/dist/auth.js.map +1 -1
- package/node_modules/@lorenz/mcp/dist/index.d.ts +3 -2
- package/node_modules/@lorenz/mcp/dist/index.d.ts.map +1 -1
- package/node_modules/@lorenz/mcp/dist/index.js +1 -1
- package/node_modules/@lorenz/mcp/dist/index.js.map +1 -1
- package/node_modules/@lorenz/mcp/dist/server.d.ts +22 -0
- package/node_modules/@lorenz/mcp/dist/server.d.ts.map +1 -1
- package/node_modules/@lorenz/mcp/dist/server.js +85 -12
- package/node_modules/@lorenz/mcp/dist/server.js.map +1 -1
- package/node_modules/@lorenz/orchestrator/dist/claimStore.d.ts +157 -0
- package/node_modules/@lorenz/orchestrator/dist/claimStore.d.ts.map +1 -0
- package/node_modules/@lorenz/orchestrator/dist/claimStore.js +621 -0
- package/node_modules/@lorenz/orchestrator/dist/claimStore.js.map +1 -0
- package/node_modules/@lorenz/orchestrator/dist/codec.d.ts +38 -0
- package/node_modules/@lorenz/orchestrator/dist/codec.d.ts.map +1 -0
- package/node_modules/@lorenz/orchestrator/dist/codec.js +176 -0
- package/node_modules/@lorenz/orchestrator/dist/codec.js.map +1 -0
- package/node_modules/@lorenz/orchestrator/dist/index.d.ts +55 -51
- package/node_modules/@lorenz/orchestrator/dist/index.d.ts.map +1 -1
- package/node_modules/@lorenz/orchestrator/dist/index.js +285 -45
- package/node_modules/@lorenz/orchestrator/dist/index.js.map +1 -1
- package/node_modules/@lorenz/orchestrator/dist/sqlite.d.ts +34 -0
- package/node_modules/@lorenz/orchestrator/dist/sqlite.d.ts.map +1 -0
- package/node_modules/@lorenz/orchestrator/dist/sqlite.js +142 -0
- package/node_modules/@lorenz/orchestrator/dist/sqlite.js.map +1 -0
- package/node_modules/@lorenz/orchestrator/dist/state.d.ts +47 -0
- package/node_modules/@lorenz/orchestrator/dist/state.d.ts.map +1 -0
- package/node_modules/@lorenz/orchestrator/dist/state.js +15 -0
- package/node_modules/@lorenz/orchestrator/dist/state.js.map +1 -0
- package/node_modules/@lorenz/orchestrator/dist/turso.d.ts +28 -0
- package/node_modules/@lorenz/orchestrator/dist/turso.d.ts.map +1 -0
- package/node_modules/@lorenz/orchestrator/dist/turso.js +125 -0
- package/node_modules/@lorenz/orchestrator/dist/turso.js.map +1 -0
- package/node_modules/@lorenz/orchestrator/package.json +6 -2
- package/node_modules/@lorenz/presenter/dist/index.d.ts +14 -0
- package/node_modules/@lorenz/presenter/dist/index.d.ts.map +1 -1
- package/node_modules/@lorenz/presenter/dist/index.js +18 -0
- package/node_modules/@lorenz/presenter/dist/index.js.map +1 -1
- package/node_modules/@lorenz/projections/dist/index.d.ts.map +1 -1
- package/node_modules/@lorenz/projections/dist/index.js +1 -0
- package/node_modules/@lorenz/projections/dist/index.js.map +1 -1
- package/node_modules/@lorenz/runtime/dist/index.d.ts +27 -8
- package/node_modules/@lorenz/runtime/dist/index.d.ts.map +1 -1
- package/node_modules/@lorenz/runtime/dist/index.js +422 -98
- package/node_modules/@lorenz/runtime/dist/index.js.map +1 -1
- package/node_modules/@lorenz/runtime-events/dist/index.d.ts +14 -0
- package/node_modules/@lorenz/runtime-events/dist/index.d.ts.map +1 -1
- package/node_modules/@lorenz/server/dist/index.js +1 -1
- package/node_modules/@lorenz/server/dist/index.js.map +1 -1
- package/node_modules/@lorenz/ssh/dist/index.d.ts +2 -0
- package/node_modules/@lorenz/ssh/dist/index.d.ts.map +1 -1
- package/node_modules/@lorenz/ssh/dist/index.js +2 -1
- package/node_modules/@lorenz/ssh/dist/index.js.map +1 -1
- package/node_modules/@lorenz/tool-sdk/dist/index.d.ts +1 -0
- package/node_modules/@lorenz/tool-sdk/dist/index.d.ts.map +1 -1
- package/node_modules/@lorenz/tool-sdk/dist/index.js +1 -0
- package/node_modules/@lorenz/tool-sdk/dist/index.js.map +1 -1
- package/node_modules/@lorenz/tool-sdk/dist/module.d.ts +38 -0
- package/node_modules/@lorenz/tool-sdk/dist/module.d.ts.map +1 -0
- package/node_modules/@lorenz/tool-sdk/dist/module.js +42 -0
- package/node_modules/@lorenz/tool-sdk/dist/module.js.map +1 -0
- package/node_modules/@lorenz/tracker-sdk/dist/index.d.ts +1 -0
- package/node_modules/@lorenz/tracker-sdk/dist/index.d.ts.map +1 -1
- package/node_modules/@lorenz/tracker-sdk/dist/index.js +1 -0
- package/node_modules/@lorenz/tracker-sdk/dist/index.js.map +1 -1
- package/node_modules/@lorenz/tracker-sdk/dist/module.d.ts +37 -0
- package/node_modules/@lorenz/tracker-sdk/dist/module.d.ts.map +1 -0
- package/node_modules/@lorenz/tracker-sdk/dist/module.js +38 -0
- package/node_modules/@lorenz/tracker-sdk/dist/module.js.map +1 -0
- package/node_modules/@lorenz/worker-host-pool/dist/index.d.ts +34 -6
- package/node_modules/@lorenz/worker-host-pool/dist/index.d.ts.map +1 -1
- package/node_modules/@lorenz/worker-host-pool/dist/index.js +110 -143
- package/node_modules/@lorenz/worker-host-pool/dist/index.js.map +1 -1
- package/node_modules/@lorenz/worker-sdk/dist/index.d.ts +1 -0
- package/node_modules/@lorenz/worker-sdk/dist/index.d.ts.map +1 -1
- package/node_modules/@lorenz/worker-sdk/dist/index.js +1 -0
- package/node_modules/@lorenz/worker-sdk/dist/index.js.map +1 -1
- package/node_modules/@lorenz/worker-sdk/dist/local.d.ts +74 -0
- package/node_modules/@lorenz/worker-sdk/dist/local.d.ts.map +1 -0
- package/node_modules/@lorenz/worker-sdk/dist/local.js +112 -0
- package/node_modules/@lorenz/worker-sdk/dist/local.js.map +1 -0
- package/node_modules/@lorenz/worker-sdk/dist/module.d.ts +8 -16
- package/node_modules/@lorenz/worker-sdk/dist/module.d.ts.map +1 -1
- package/node_modules/@lorenz/worker-sdk/dist/module.js +15 -35
- package/node_modules/@lorenz/worker-sdk/dist/module.js.map +1 -1
- package/node_modules/@lorenz/workflow/dist/index.d.ts +11 -0
- package/node_modules/@lorenz/workflow/dist/index.d.ts.map +1 -1
- package/node_modules/@lorenz/workflow/dist/index.js +3 -0
- package/node_modules/@lorenz/workflow/dist/index.js.map +1 -1
- package/package.json +4 -1
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
import { defaultWorkerDriverRegistry } from "./registry.js";
|
|
2
|
+
const KIND = "local";
|
|
3
|
+
const CAPABILITIES = {
|
|
4
|
+
sshAddressable: false,
|
|
5
|
+
ephemeral: false,
|
|
6
|
+
usesLedger: false,
|
|
7
|
+
};
|
|
8
|
+
/**
|
|
9
|
+
* The single-machine, in-process {@link WorkerDriver}. It provisions workers
|
|
10
|
+
* whose `workerHost` is the EMPTY string, the canonical "no remote worker"
|
|
11
|
+
* signal the orchestrator/endpoint-manager understands: an empty host mints NO
|
|
12
|
+
* tunnel and NO MCP lease, so acp keeps its own in-process MCP endpoint and the
|
|
13
|
+
* run executes locally. A warm pool at `slotsPerMachine=1` over this driver
|
|
14
|
+
* runs one local worker, single-tenant.
|
|
15
|
+
*
|
|
16
|
+
* Mechanically it is a purely in-memory `Map<workerId, WorkerDescriptor>` with
|
|
17
|
+
* deterministic `createdAtMs` from the injected clock, idempotent
|
|
18
|
+
* provision/destroy, and a probe that returns `{ ok: true }` WITHOUT touching
|
|
19
|
+
* SSH (there is no remote machine to reach). The yielded `workerHost` is empty
|
|
20
|
+
* (so downstream wiring takes the local-execution arm), and the `driverRef`
|
|
21
|
+
* stays distinct per worker (`local://<workerId>`) so destroy/list/reconcile
|
|
22
|
+
* key per-worker even though every worker shares the empty host. There is no
|
|
23
|
+
* failure injection: a local in-process worker has no remote faults to model.
|
|
24
|
+
*
|
|
25
|
+
* This driver is single-machine by design: the pool affinity-keys on
|
|
26
|
+
* `workerHost`, so an empty host collapses every local worker into ONE affinity
|
|
27
|
+
* bucket. That is inert at the configuration this driver is meant for
|
|
28
|
+
* (`slotsPerMachine=1`, `max=1`): there is at most one local worker, so the
|
|
29
|
+
* bucket never matters.
|
|
30
|
+
*/
|
|
31
|
+
export class LocalWorkerDriver {
|
|
32
|
+
deps;
|
|
33
|
+
kind = KIND;
|
|
34
|
+
capabilities = CAPABILITIES;
|
|
35
|
+
// The live inventory: provisioned-minus-destroyed, keyed on the pool's
|
|
36
|
+
// idempotency key so `provision` is idempotent on `workerId`.
|
|
37
|
+
workers = new Map();
|
|
38
|
+
constructor(deps) {
|
|
39
|
+
this.deps = deps;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Provisions (or re-adopts) a local worker for `req.workerId`. Idempotent on
|
|
43
|
+
* `workerId`: a second call returns the SAME descriptor without creating a
|
|
44
|
+
* duplicate. The yielded `workerHost` is the EMPTY string (local execution,
|
|
45
|
+
* no tunnel); the `driverRef` is `local://<workerId>` so it stays distinct
|
|
46
|
+
* per worker for destroy/list keying. `createdAtMs` is stamped from the
|
|
47
|
+
* injected clock so it is deterministic.
|
|
48
|
+
*/
|
|
49
|
+
async provision(req) {
|
|
50
|
+
const existing = this.workers.get(req.workerId);
|
|
51
|
+
if (existing) {
|
|
52
|
+
return Promise.resolve(existing);
|
|
53
|
+
}
|
|
54
|
+
const descriptor = {
|
|
55
|
+
workerId: req.workerId,
|
|
56
|
+
// The empty host is load-bearing: it routes the run through acp's own
|
|
57
|
+
// in-process MCP endpoint (no tunnel, no MCP lease).
|
|
58
|
+
workerHost: "",
|
|
59
|
+
// A distinct, non-empty ref per worker so destroy/list/reconcile key
|
|
60
|
+
// per-worker even though every local worker shares the empty host.
|
|
61
|
+
driverRef: `local://${req.workerId}`,
|
|
62
|
+
createdAtMs: this.deps.clock.now().getTime(),
|
|
63
|
+
labels: [...req.labels],
|
|
64
|
+
metadata: {},
|
|
65
|
+
};
|
|
66
|
+
this.workers.set(req.workerId, descriptor);
|
|
67
|
+
return Promise.resolve(descriptor);
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Reports the worker healthy if it is in the live inventory. There is no
|
|
71
|
+
* remote machine to reach, so this NEVER calls SSH; an unknown/destroyed
|
|
72
|
+
* worker is reported `ok: false` rather than throwing (mirroring a probe
|
|
73
|
+
* against a gone worker).
|
|
74
|
+
*/
|
|
75
|
+
async probe(worker, _opts) {
|
|
76
|
+
if (!this.workers.has(worker.workerId)) {
|
|
77
|
+
return Promise.resolve({ ok: false, reason: "local_worker_not_found" });
|
|
78
|
+
}
|
|
79
|
+
return Promise.resolve({ ok: true });
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Destroys a local worker. Idempotent and tolerant of an already-gone (or
|
|
83
|
+
* never-provisioned) worker.
|
|
84
|
+
*/
|
|
85
|
+
async destroy(worker, _opts) {
|
|
86
|
+
this.workers.delete(worker.workerId);
|
|
87
|
+
return Promise.resolve();
|
|
88
|
+
}
|
|
89
|
+
/** Returns the live inventory (provisioned-minus-destroyed). */
|
|
90
|
+
async list() {
|
|
91
|
+
return Promise.resolve([...this.workers.values()]);
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
/** The registered `local` factory: constructs a fresh in-process driver per pool. */
|
|
95
|
+
export const localWorkerDriverFactory = {
|
|
96
|
+
kind: KIND,
|
|
97
|
+
create: (_options, deps) => new LocalWorkerDriver(deps),
|
|
98
|
+
};
|
|
99
|
+
/**
|
|
100
|
+
* Registers the `local` driver. The SDK ships this driver (rather than an
|
|
101
|
+
* extension) because it is the default backend a pool falls back to when no
|
|
102
|
+
* remote workers are configured: the composition root registers it next to the
|
|
103
|
+
* `fake`/`static-ssh`/`docker` drivers so a default-on local pool can provision
|
|
104
|
+
* an empty-host worker and keep execution in-process.
|
|
105
|
+
*/
|
|
106
|
+
export function registerLocalWorkerDriver(registries = {}) {
|
|
107
|
+
const drivers = registries.workerDrivers ?? defaultWorkerDriverRegistry;
|
|
108
|
+
if (drivers.get(KIND) === undefined) {
|
|
109
|
+
drivers.register(localWorkerDriverFactory);
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
//# sourceMappingURL=local.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"local.js","sourceRoot":"","sources":["../src/local.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,14 +9,18 @@ import type { WorkerDriverFactory } from "./types.js";
|
|
|
9
9
|
export declare const WORKER_DRIVER_SDK_VERSION = 1;
|
|
10
10
|
/**
|
|
11
11
|
* The unit an OUT-OF-TREE worker-driver module exports: a {@link WorkerDriverFactory}
|
|
12
|
-
* carrying the SDK version it targets.
|
|
13
|
-
*
|
|
14
|
-
*
|
|
15
|
-
* the explicit `sdkVersion` handshake stands in for the compiler.
|
|
12
|
+
* carrying the SDK version it targets. A dynamically imported module crosses a
|
|
13
|
+
* version boundary the daemon cannot type-check, so the explicit `sdkVersion`
|
|
14
|
+
* handshake stands in for the compiler.
|
|
16
15
|
*/
|
|
17
16
|
export interface WorkerDriverModule extends WorkerDriverFactory {
|
|
18
17
|
readonly sdkVersion: number;
|
|
19
18
|
}
|
|
19
|
+
/**
|
|
20
|
+
* Structural check + version handshake for a dynamically loaded worker-driver
|
|
21
|
+
* module. `source` names where the value came from so every error is actionable.
|
|
22
|
+
*/
|
|
23
|
+
export declare const assertWorkerDriverModule: (value: unknown, source: string) => asserts value is WorkerDriverModule;
|
|
20
24
|
/**
|
|
21
25
|
* Authoring sugar for out-of-tree driver modules: shape-asserts the module at
|
|
22
26
|
* definition time (so a typo fails in the author's tests, not the operator's
|
|
@@ -31,16 +35,4 @@ export interface WorkerDriverModule extends WorkerDriverFactory {
|
|
|
31
35
|
* ```
|
|
32
36
|
*/
|
|
33
37
|
export declare function defineWorkerDriver(module: WorkerDriverModule): WorkerDriverModule;
|
|
34
|
-
/**
|
|
35
|
-
* Structural check + version handshake for a dynamically loaded worker-driver
|
|
36
|
-
* module. `source` names where the value came from (a module specifier, or
|
|
37
|
-
* `defineWorkerDriver` at authoring time) so every error is actionable. Throws:
|
|
38
|
-
*
|
|
39
|
-
* - `worker_pool_driver_module_invalid: <source> ...` when the value is not an
|
|
40
|
-
* object, `kind` is not a non-empty string, `create` is not a function, or
|
|
41
|
-
* `sdkVersion` is not a number;
|
|
42
|
-
* - `worker_pool_driver_sdk_mismatch: <source> targets SDK v<n>, this build
|
|
43
|
-
* supports v<WORKER_DRIVER_SDK_VERSION>` when the declared version differs.
|
|
44
|
-
*/
|
|
45
|
-
export declare function assertWorkerDriverModule(value: unknown, source: string): asserts value is WorkerDriverModule;
|
|
46
38
|
//# sourceMappingURL=module.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"module.d.ts","sourceRoot":"","sources":["../src/module.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"module.d.ts","sourceRoot":"","sources":["../src/module.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAEtD;;;;;;GAMG;AACH,eAAO,MAAM,yBAAyB,IAAI,CAAC;AAE3C;;;;;GAKG;AACH,MAAM,WAAW,kBAAmB,SAAQ,mBAAmB;IAC7D,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B;AAWD;;;GAGG;AACH,eAAO,MAAM,wBAAwB,EAAE,CACrC,KAAK,EAAE,OAAO,EACd,MAAM,EAAE,MAAM,KACX,OAAO,CAAC,KAAK,IAAI,kBAA0C,CAAC;AAEjE;;;;;;;;;;;;GAYG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,kBAAkB,GAAG,kBAAkB,CAEjF"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { makeSdkModuleContract } from "@lorenz/domain";
|
|
1
2
|
/**
|
|
2
3
|
* The worker-driver SDK version this build of the engine speaks. Out-of-tree
|
|
3
4
|
* driver modules declare the version they target via
|
|
@@ -6,6 +7,19 @@
|
|
|
6
7
|
* SDK changes never bump it.
|
|
7
8
|
*/
|
|
8
9
|
export const WORKER_DRIVER_SDK_VERSION = 1;
|
|
10
|
+
const contract = makeSdkModuleContract({
|
|
11
|
+
errorPrefix: "worker_pool_driver",
|
|
12
|
+
moduleNoun: "a worker driver module",
|
|
13
|
+
identityField: "kind",
|
|
14
|
+
defineCall: "defineWorkerDriver({ kind, sdkVersion, create })",
|
|
15
|
+
requiredFns: [{ field: "create", signature: "create(options, deps)", article: "a" }],
|
|
16
|
+
sdkVersion: WORKER_DRIVER_SDK_VERSION,
|
|
17
|
+
});
|
|
18
|
+
/**
|
|
19
|
+
* Structural check + version handshake for a dynamically loaded worker-driver
|
|
20
|
+
* module. `source` names where the value came from so every error is actionable.
|
|
21
|
+
*/
|
|
22
|
+
export const assertWorkerDriverModule = contract.assertModule;
|
|
9
23
|
/**
|
|
10
24
|
* Authoring sugar for out-of-tree driver modules: shape-asserts the module at
|
|
11
25
|
* definition time (so a typo fails in the author's tests, not the operator's
|
|
@@ -20,40 +34,6 @@ export const WORKER_DRIVER_SDK_VERSION = 1;
|
|
|
20
34
|
* ```
|
|
21
35
|
*/
|
|
22
36
|
export function defineWorkerDriver(module) {
|
|
23
|
-
|
|
24
|
-
return module;
|
|
25
|
-
}
|
|
26
|
-
/**
|
|
27
|
-
* Structural check + version handshake for a dynamically loaded worker-driver
|
|
28
|
-
* module. `source` names where the value came from (a module specifier, or
|
|
29
|
-
* `defineWorkerDriver` at authoring time) so every error is actionable. Throws:
|
|
30
|
-
*
|
|
31
|
-
* - `worker_pool_driver_module_invalid: <source> ...` when the value is not an
|
|
32
|
-
* object, `kind` is not a non-empty string, `create` is not a function, or
|
|
33
|
-
* `sdkVersion` is not a number;
|
|
34
|
-
* - `worker_pool_driver_sdk_mismatch: <source> targets SDK v<n>, this build
|
|
35
|
-
* supports v<WORKER_DRIVER_SDK_VERSION>` when the declared version differs.
|
|
36
|
-
*/
|
|
37
|
-
export function assertWorkerDriverModule(value, source) {
|
|
38
|
-
if (typeof value !== "object" || value === null) {
|
|
39
|
-
throw new Error(`worker_pool_driver_module_invalid: ${source} did not yield a worker driver module object ` +
|
|
40
|
-
`(got ${value === null ? "null" : typeof value}); export defineWorkerDriver({ kind, sdkVersion, create }) ` +
|
|
41
|
-
`as the default export or a named export`);
|
|
42
|
-
}
|
|
43
|
-
const candidate = value;
|
|
44
|
-
if (typeof candidate.kind !== "string" || candidate.kind.trim() === "") {
|
|
45
|
-
throw new Error(`worker_pool_driver_module_invalid: ${source} is missing a non-empty string \`kind\``);
|
|
46
|
-
}
|
|
47
|
-
if (typeof candidate.create !== "function") {
|
|
48
|
-
throw new Error(`worker_pool_driver_module_invalid: ${source} (kind: ${candidate.kind}) is missing a \`create(options, deps)\` function`);
|
|
49
|
-
}
|
|
50
|
-
if (typeof candidate.sdkVersion !== "number") {
|
|
51
|
-
throw new Error(`worker_pool_driver_module_invalid: ${source} (kind: ${candidate.kind}) is missing a numeric \`sdkVersion\` ` +
|
|
52
|
-
`(declare sdkVersion: ${WORKER_DRIVER_SDK_VERSION})`);
|
|
53
|
-
}
|
|
54
|
-
if (candidate.sdkVersion !== WORKER_DRIVER_SDK_VERSION) {
|
|
55
|
-
throw new Error(`worker_pool_driver_sdk_mismatch: ${source} targets SDK v${candidate.sdkVersion}, ` +
|
|
56
|
-
`this build supports v${WORKER_DRIVER_SDK_VERSION}`);
|
|
57
|
-
}
|
|
37
|
+
return contract.defineModule(module, "defineWorkerDriver");
|
|
58
38
|
}
|
|
59
39
|
//# sourceMappingURL=module.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"module.js","sourceRoot":"","sources":["../src/module.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"module.js","sourceRoot":"","sources":["../src/module.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AAIvD;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,CAAC;AAY3C,MAAM,QAAQ,GAAG,qBAAqB,CAAqB;IACzD,WAAW,EAAE,oBAAoB;IACjC,UAAU,EAAE,wBAAwB;IACpC,aAAa,EAAE,MAAM;IACrB,UAAU,EAAE,kDAAkD;IAC9D,WAAW,EAAE,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,uBAAuB,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC;IACpF,UAAU,EAAE,yBAAyB;CACtC,CAAC,CAAC;AAEH;;;GAGG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAGM,QAAQ,CAAC,YAAY,CAAC;AAEjE;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,kBAAkB,CAAC,MAA0B;IAC3D,OAAO,QAAQ,CAAC,YAAY,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAC;AAC7D,CAAC"}
|
|
@@ -16,6 +16,17 @@ type WorkflowLoadOptions = DefaultSettingsOptions & {
|
|
|
16
16
|
* registry is used.
|
|
17
17
|
*/
|
|
18
18
|
executors?: AgentExecutorRegistry | undefined;
|
|
19
|
+
/**
|
|
20
|
+
* Async hook run AFTER the front matter is parsed but BEFORE {@link parseConfig}, so the
|
|
21
|
+
* composition root can dynamic-import any out-of-tree extension named by config (a
|
|
22
|
+
* `tracker.kind` module specifier) and register it into the registries the parser then
|
|
23
|
+
* resolves against. `baseDir` is the workflow file's directory, anchoring `./relative`
|
|
24
|
+
* specifiers. Loading here (not inside the sync parser) keeps the extension trust boundary
|
|
25
|
+
* and the audit events in the composition root.
|
|
26
|
+
*/
|
|
27
|
+
prepareRegistries?: ((rawConfig: Record<string, unknown>, context: {
|
|
28
|
+
baseDir: string;
|
|
29
|
+
}) => Promise<void>) | undefined;
|
|
19
30
|
};
|
|
20
31
|
export declare const defaultPromptTemplate = "You are working on an issue from the configured tracker.\n\nIdentifier: {{ issue.identifier }}\nTitle: {{ issue.title }}\n\nBody:\n{% if issue.description %}\n{{ issue.description }}\n{% else %}\nNo description provided.\n{% endif %}\n";
|
|
21
32
|
export declare function workflowFilePath(env?: NodeJS.ProcessEnv, cwd?: string): string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAQA,OAAO,EAGL,KAAK,oBAAoB,EACzB,KAAK,oBAAoB,EACzB,KAAK,kBAAkB,EACxB,MAAM,gBAAgB,CAAC;AACxB,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AAC7D,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAC/D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAE3D,KAAK,mBAAmB,GAAG,sBAAsB,GAAG;IAClD,GAAG,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACzB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,eAAe,GAAG,SAAS,CAAC;IACvC;;;;OAIG;IACH,SAAS,CAAC,EAAE,qBAAqB,GAAG,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAQA,OAAO,EAGL,KAAK,oBAAoB,EACzB,KAAK,oBAAoB,EACzB,KAAK,kBAAkB,EACxB,MAAM,gBAAgB,CAAC;AACxB,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AAC7D,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAC/D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAE3D,KAAK,mBAAmB,GAAG,sBAAsB,GAAG;IAClD,GAAG,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACzB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,eAAe,GAAG,SAAS,CAAC;IACvC;;;;OAIG;IACH,SAAS,CAAC,EAAE,qBAAqB,GAAG,SAAS,CAAC;IAC9C;;;;;;;OAOG;IACH,iBAAiB,CAAC,EACd,CAAC,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,EAAE;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC,GACrF,SAAS,CAAC;CACf,CAAC;AAOF,eAAO,MAAM,qBAAqB,gPAWjC,CAAC;AAEF,wBAAgB,gBAAgB,CAC9B,GAAG,GAAE,MAAM,CAAC,UAAwB,EACpC,GAAG,SAAgB,GAClB,MAAM,CAIR;AAED,wBAAsB,YAAY,CAChC,YAAY,CAAC,EAAE,MAAM,EACrB,GAAG,GAAE,MAAM,CAAC,UAAwB,EACpC,QAAQ,GAAE,mBAAwB,GACjC,OAAO,CAAC,kBAAkB,CAAC,CAuB7B;AAED,wBAAsB,oBAAoB,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAQ9F;AAED,wBAAsB,mBAAmB,CAAC,QAAQ,EAAE,kBAAkB,GAAG,OAAO,CAAC,OAAO,CAAC,CAGxF;AAED,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,oBAAoB,GAAG,SAAS,EACtC,KAAK,EAAE,oBAAoB,GAAG,SAAS,GACtC,OAAO,CAQT;AAED,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG;IACrD,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,IAAI,EAAE,MAAM,CAAC;CACd,CAyBA;AAED,wBAAgB,uBAAuB,CAAC,cAAc,EAAE,MAAM,GAAG,MAAM,CAEtE;AAED,wBAAgB,mBAAmB,CAAC,cAAc,EAAE,MAAM,GAAG,oBAAoB,CAUhF"}
|
|
@@ -39,6 +39,9 @@ export async function loadWorkflow(workflowPath, env = process.env, defaults = {
|
|
|
39
39
|
}
|
|
40
40
|
const { config, body } = parseWorkflowContent(content);
|
|
41
41
|
const configDefaults = { ...defaults, configDir: path.dirname(absolute) };
|
|
42
|
+
// Load out-of-tree extensions named by config into the registries BEFORE parsing, so the
|
|
43
|
+
// parser's provider option parsing resolves an out-of-tree tracker exactly like a built-in.
|
|
44
|
+
await defaults.prepareRegistries?.(config, { baseDir: path.dirname(absolute) });
|
|
42
45
|
const settings = parseConfig(config, env, configDefaults, defaults.trackers, defaults.executors);
|
|
43
46
|
return {
|
|
44
47
|
path: absolute,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAClC,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EACL,YAAY,EACZ,QAAQ,GAIT,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "lorenz",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.6",
|
|
4
4
|
"license": "Apache-2.0",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -33,6 +33,7 @@
|
|
|
33
33
|
"@lorenz/dispatch-coordinator": "0.1.1",
|
|
34
34
|
"@lorenz/docker-worker": "0.1.1",
|
|
35
35
|
"@lorenz/domain": "0.1.1",
|
|
36
|
+
"@lorenz/flags": "0.1.0",
|
|
36
37
|
"@lorenz/humanize": "0.1.1",
|
|
37
38
|
"@lorenz/issue": "0.1.1",
|
|
38
39
|
"@lorenz/jira-tracker": "0.1.1",
|
|
@@ -64,6 +65,7 @@
|
|
|
64
65
|
"@lorenz/workflow": "0.1.1",
|
|
65
66
|
"@lorenz/workspace": "0.1.1",
|
|
66
67
|
"@openai/codex": "0.128.0",
|
|
68
|
+
"@tursodatabase/database": "^0.6.1",
|
|
67
69
|
"better-sqlite3": "^12.10.0",
|
|
68
70
|
"commander": "^14.0.3",
|
|
69
71
|
"diff": "^8.0.3",
|
|
@@ -95,6 +97,7 @@
|
|
|
95
97
|
"@lorenz/dispatch-coordinator",
|
|
96
98
|
"@lorenz/docker-worker",
|
|
97
99
|
"@lorenz/domain",
|
|
100
|
+
"@lorenz/flags",
|
|
98
101
|
"@lorenz/humanize",
|
|
99
102
|
"@lorenz/issue",
|
|
100
103
|
"@lorenz/jira-tracker",
|