@ricsam/r5d-worker 0.0.136 → 0.0.138
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 +4 -94
- package/dist/cjs/package.json +1 -1
- package/dist/mjs/main.mjs +46 -7537
- package/dist/mjs/package.json +1 -1
- package/dist/mjs/personal/action-scheduler.mjs +31 -0
- package/dist/mjs/personal/client.mjs +215 -0
- package/dist/mjs/personal/runtime.mjs +328 -0
- package/dist/mjs/personal/tcp.mjs +217 -0
- package/dist/mjs/runtime/adapter.mjs +42 -0
- package/dist/mjs/runtime/client.mjs +95 -0
- package/dist/mjs/runtime/daemon.mjs +131 -0
- package/dist/mjs/runtime/executor.mjs +436 -0
- package/dist/mjs/runtime/index.mjs +15 -0
- package/dist/mjs/runtime/protocol.mjs +139 -0
- package/dist/mjs/runtime/pty-host.mjs +156 -0
- package/dist/mjs/runtime/pty.mjs +127 -0
- package/dist/mjs/runtime/releases/artifacts.mjs +201 -0
- package/dist/mjs/runtime/releases/grants.mjs +93 -0
- package/dist/mjs/runtime/releases/main.mjs +101 -0
- package/dist/mjs/runtime/releases/manager.mjs +541 -0
- package/dist/mjs/runtime/releases/process.mjs +88 -0
- package/dist/mjs/runtime/releases/retirement.mjs +18 -0
- package/dist/mjs/runtime/releases/rpc-client.mjs +184 -0
- package/dist/mjs/runtime/releases/rpc-main.mjs +213 -0
- package/dist/mjs/runtime/releases/rpc-protocol.mjs +103 -0
- package/dist/mjs/runtime/storage.mjs +156 -0
- package/dist/mjs/runtime/workspace/artifacts.mjs +121 -0
- package/dist/mjs/runtime/workspace/authority.mjs +1355 -0
- package/dist/mjs/runtime/workspace/contracts.mjs +60 -0
- package/dist/mjs/runtime/workspace/file-write.mjs +23 -0
- package/dist/mjs/runtime/workspace/files.mjs +308 -0
- package/dist/mjs/runtime/workspace/http-body.mjs +45 -0
- package/dist/mjs/runtime/workspace/storage-client.mjs +59 -0
- package/dist/mjs/runtime/workspace/storage-wire.mjs +53 -0
- package/dist/types/main.d.ts +0 -1167
- package/dist/types/personal/action-scheduler.d.ts +23 -0
- package/dist/types/personal/client.d.ts +14 -0
- package/dist/types/personal/runtime.d.ts +121 -0
- package/dist/types/personal/tcp.d.ts +14 -0
- package/dist/types/runtime/client.d.ts +17 -0
- package/dist/types/runtime/daemon.d.ts +8 -0
- package/dist/types/runtime/executor.d.ts +35 -0
- package/dist/types/runtime/index.d.ts +5 -0
- package/dist/types/runtime/protocol.d.ts +544 -0
- package/dist/types/runtime/pty.d.ts +30 -0
- package/dist/types/runtime/releases/artifacts.d.ts +51 -0
- package/dist/types/runtime/releases/grants.d.ts +16 -0
- package/dist/types/runtime/releases/manager.d.ts +145 -0
- package/dist/types/runtime/releases/process.d.ts +14 -0
- package/dist/types/runtime/releases/retirement.d.ts +15 -0
- package/dist/types/runtime/releases/rpc-client.d.ts +52 -0
- package/dist/types/runtime/releases/rpc-main.d.ts +10 -0
- package/dist/types/runtime/releases/rpc-protocol.d.ts +1139 -0
- package/dist/types/runtime/storage.d.ts +21 -0
- package/dist/types/runtime/test-harness.d.ts +53 -0
- package/dist/types/runtime/workspace/artifacts.d.ts +30 -0
- package/dist/types/runtime/workspace/authority.d.ts +338 -0
- package/dist/types/runtime/workspace/contracts.d.ts +86 -0
- package/dist/types/runtime/workspace/file-write.d.ts +14 -0
- package/dist/types/runtime/workspace/files.d.ts +21 -0
- package/dist/types/runtime/workspace/http-body.d.ts +9 -0
- package/dist/types/runtime/workspace/storage-client.d.ts +23 -0
- package/dist/types/runtime/workspace/storage-wire.d.ts +138 -0
- package/package.json +8 -6
- package/dist/cjs/atomic-rename.cjs +0 -303
- package/dist/cjs/browser-upload.cjs +0 -73
- package/dist/cjs/cli-update.cjs +0 -108
- package/dist/cjs/command-launcher.cjs +0 -423
- package/dist/cjs/control-command-policy.cjs +0 -177
- package/dist/cjs/git-blob-hash.cjs +0 -41
- package/dist/cjs/git-identity.cjs +0 -39
- package/dist/cjs/git-process-environment.cjs +0 -133
- package/dist/cjs/inline-output.cjs +0 -62
- package/dist/cjs/main.cjs +0 -7511
- package/dist/cjs/managed-paths.cjs +0 -215
- package/dist/cjs/plan-lint.cjs +0 -165
- package/dist/cjs/plan-parser.cjs +0 -127
- package/dist/cjs/plan-paths.cjs +0 -53
- package/dist/cjs/port-forward-client.cjs +0 -206
- package/dist/cjs/process-tree.cjs +0 -117
- package/dist/cjs/project-checkout-garbage.cjs +0 -219
- package/dist/cjs/project-mirror-fetch-policy.cjs +0 -82
- package/dist/cjs/project-mirror-refs-token.cjs +0 -85
- package/dist/cjs/project-workspace-state.cjs +0 -972
- package/dist/cjs/project-worktrees.cjs +0 -1713
- package/dist/cjs/pty-output-coalescer.cjs +0 -87
- package/dist/cjs/recovery-journal-protocol.cjs +0 -56
- package/dist/cjs/recovery-journal-runtime.cjs +0 -133
- package/dist/cjs/recovery-journal-thread.cjs +0 -9
- package/dist/cjs/recovery-journal.cjs +0 -742
- package/dist/cjs/recovery-output-window.cjs +0 -77
- package/dist/cjs/recovery-protocol.cjs +0 -31
- package/dist/cjs/recovery-store.cjs +0 -252
- package/dist/cjs/registry-auth.cjs +0 -310
- package/dist/cjs/repository-transition-policy.cjs +0 -49
- package/dist/cjs/runtime-version.cjs +0 -88
- package/dist/cjs/session-file-mutations.cjs +0 -61
- package/dist/cjs/supervisor.cjs +0 -147
- package/dist/cjs/three-way-merge.cjs +0 -346
- package/dist/cjs/working-tree-mirror.cjs +0 -1872
- package/dist/cjs/workspace-automatic-sync-policy.cjs +0 -79
- package/dist/cjs/workspace-branch-incarnation-policy.cjs +0 -37
- package/dist/cjs/workspace-command-sync-policy.cjs +0 -112
- package/dist/cjs/workspace-command-targets.cjs +0 -63
- package/dist/cjs/workspace-filesystem-executor-thread.cjs +0 -36
- package/dist/cjs/workspace-filesystem-executor.cjs +0 -327
- package/dist/cjs/workspace-filesystem-job-types.cjs +0 -144
- package/dist/cjs/workspace-filesystem-jobs.cjs +0 -59
- package/dist/cjs/workspace-git-sync.cjs +0 -3450
- package/dist/cjs/workspace-hydration-ledger.cjs +0 -66
- package/dist/cjs/workspace-hydration-merge.cjs +0 -433
- package/dist/cjs/workspace-hydration-recovery-state.cjs +0 -53
- package/dist/cjs/workspace-incident-state.cjs +0 -37
- package/dist/cjs/workspace-merge-projection.cjs +0 -467
- package/dist/cjs/workspace-mount-boundary.cjs +0 -71
- package/dist/cjs/workspace-mount-hold-fence.cjs +0 -120
- package/dist/cjs/workspace-mutation-gate.cjs +0 -127
- package/dist/cjs/workspace-path-move.cjs +0 -195
- package/dist/cjs/workspace-preserve-only-policy.cjs +0 -36
- package/dist/cjs/workspace-project-config-policy.cjs +0 -53
- package/dist/cjs/workspace-projection-ledger.cjs +0 -81
- package/dist/cjs/workspace-publication-evidence.cjs +0 -46
- package/dist/cjs/workspace-sync-coalescer.cjs +0 -58
- package/dist/mjs/atomic-rename.mjs +0 -261
- package/dist/mjs/browser-upload.mjs +0 -42
- package/dist/mjs/command-launcher.mjs +0 -393
- package/dist/mjs/control-command-policy.mjs +0 -146
- package/dist/mjs/git-blob-hash.mjs +0 -16
- package/dist/mjs/git-identity.mjs +0 -15
- package/dist/mjs/git-process-environment.mjs +0 -105
- package/dist/mjs/inline-output.mjs +0 -37
- package/dist/mjs/managed-paths.mjs +0 -174
- package/dist/mjs/plan-lint.mjs +0 -129
- package/dist/mjs/plan-parser.mjs +0 -94
- package/dist/mjs/plan-paths.mjs +0 -25
- package/dist/mjs/port-forward-client.mjs +0 -172
- package/dist/mjs/project-checkout-garbage.mjs +0 -178
- package/dist/mjs/project-mirror-fetch-policy.mjs +0 -56
- package/dist/mjs/project-mirror-refs-token.mjs +0 -53
- package/dist/mjs/project-workspace-state.mjs +0 -937
- package/dist/mjs/project-worktrees.mjs +0 -1657
- package/dist/mjs/pty-output-coalescer.mjs +0 -61
- package/dist/mjs/recovery-journal-protocol.mjs +0 -30
- package/dist/mjs/recovery-journal-runtime.mjs +0 -112
- package/dist/mjs/recovery-journal-thread.mjs +0 -8
- package/dist/mjs/recovery-journal.mjs +0 -694
- package/dist/mjs/recovery-output-window.mjs +0 -53
- package/dist/mjs/recovery-protocol.mjs +0 -6
- package/dist/mjs/recovery-store.mjs +0 -217
- package/dist/mjs/registry-auth.mjs +0 -269
- package/dist/mjs/repository-transition-policy.mjs +0 -22
- package/dist/mjs/runtime-version.mjs +0 -54
- package/dist/mjs/session-file-mutations.mjs +0 -37
- package/dist/mjs/supervisor.mjs +0 -114
- package/dist/mjs/three-way-merge.mjs +0 -318
- package/dist/mjs/working-tree-mirror.mjs +0 -1817
- package/dist/mjs/workspace-automatic-sync-policy.mjs +0 -48
- package/dist/mjs/workspace-branch-incarnation-policy.mjs +0 -13
- package/dist/mjs/workspace-command-sync-policy.mjs +0 -84
- package/dist/mjs/workspace-command-targets.mjs +0 -37
- package/dist/mjs/workspace-filesystem-executor-thread.mjs +0 -38
- package/dist/mjs/workspace-filesystem-executor.mjs +0 -287
- package/dist/mjs/workspace-filesystem-job-types.mjs +0 -116
- package/dist/mjs/workspace-filesystem-jobs.mjs +0 -55
- package/dist/mjs/workspace-git-sync.mjs +0 -3407
- package/dist/mjs/workspace-hydration-ledger.mjs +0 -42
- package/dist/mjs/workspace-hydration-merge.mjs +0 -399
- package/dist/mjs/workspace-hydration-recovery-state.mjs +0 -29
- package/dist/mjs/workspace-incident-state.mjs +0 -12
- package/dist/mjs/workspace-merge-projection.mjs +0 -433
- package/dist/mjs/workspace-mount-boundary.mjs +0 -37
- package/dist/mjs/workspace-mount-hold-fence.mjs +0 -95
- package/dist/mjs/workspace-mutation-gate.mjs +0 -103
- package/dist/mjs/workspace-path-move.mjs +0 -160
- package/dist/mjs/workspace-preserve-only-policy.mjs +0 -11
- package/dist/mjs/workspace-project-config-policy.mjs +0 -27
- package/dist/mjs/workspace-projection-ledger.mjs +0 -57
- package/dist/mjs/workspace-publication-evidence.mjs +0 -21
- package/dist/mjs/workspace-sync-coalescer.mjs +0 -34
- package/dist/types/atomic-rename.d.ts +0 -78
- package/dist/types/browser-upload.d.ts +0 -7
- package/dist/types/command-launcher.d.ts +0 -104
- package/dist/types/control-command-policy.d.ts +0 -53
- package/dist/types/git-blob-hash.d.ts +0 -10
- package/dist/types/git-identity.d.ts +0 -9
- package/dist/types/git-process-environment.d.ts +0 -9
- package/dist/types/inline-output.d.ts +0 -3
- package/dist/types/managed-paths.d.ts +0 -19
- package/dist/types/plan-lint.d.ts +0 -16
- package/dist/types/plan-parser.d.ts +0 -38
- package/dist/types/plan-paths.d.ts +0 -36
- package/dist/types/port-forward-client.d.ts +0 -8
- package/dist/types/project-checkout-garbage.d.ts +0 -86
- package/dist/types/project-mirror-fetch-policy.d.ts +0 -84
- package/dist/types/project-mirror-refs-token.d.ts +0 -53
- package/dist/types/project-workspace-state.d.ts +0 -188
- package/dist/types/project-worktrees.d.ts +0 -397
- package/dist/types/pty-output-coalescer.d.ts +0 -20
- package/dist/types/recovery-journal-protocol.d.ts +0 -35
- package/dist/types/recovery-journal-runtime.d.ts +0 -12
- package/dist/types/recovery-journal-thread.d.ts +0 -1
- package/dist/types/recovery-journal.d.ts +0 -248
- package/dist/types/recovery-output-window.d.ts +0 -19
- package/dist/types/recovery-protocol.d.ts +0 -59
- package/dist/types/recovery-store.d.ts +0 -52
- package/dist/types/registry-auth.d.ts +0 -47
- package/dist/types/repository-transition-policy.d.ts +0 -26
- package/dist/types/runtime-version.d.ts +0 -1
- package/dist/types/session-file-mutations.d.ts +0 -22
- package/dist/types/supervisor-daemonized-fixture.d.ts +0 -1
- package/dist/types/supervisor-launcher-cleanup-fixture.d.ts +0 -1
- package/dist/types/supervisor-signal-fixture.d.ts +0 -1
- package/dist/types/supervisor.d.ts +0 -23
- package/dist/types/three-way-merge.d.ts +0 -77
- package/dist/types/working-tree-mirror.d.ts +0 -424
- package/dist/types/workspace-automatic-sync-policy.d.ts +0 -57
- package/dist/types/workspace-branch-incarnation-policy.d.ts +0 -14
- package/dist/types/workspace-command-sync-policy.d.ts +0 -57
- package/dist/types/workspace-command-targets.d.ts +0 -37
- package/dist/types/workspace-filesystem-executor-thread.d.ts +0 -1
- package/dist/types/workspace-filesystem-executor.d.ts +0 -123
- package/dist/types/workspace-filesystem-job-types.d.ts +0 -288
- package/dist/types/workspace-filesystem-jobs.d.ts +0 -7
- package/dist/types/workspace-git-sync.d.ts +0 -495
- package/dist/types/workspace-hydration-ledger.d.ts +0 -43
- package/dist/types/workspace-hydration-merge.d.ts +0 -95
- package/dist/types/workspace-hydration-recovery-state.d.ts +0 -10
- package/dist/types/workspace-incident-state.d.ts +0 -19
- package/dist/types/workspace-merge-projection.d.ts +0 -60
- package/dist/types/workspace-mount-boundary.d.ts +0 -10
- package/dist/types/workspace-mount-hold-fence.d.ts +0 -42
- package/dist/types/workspace-mutation-gate.d.ts +0 -42
- package/dist/types/workspace-path-move.d.ts +0 -21
- package/dist/types/workspace-preserve-only-policy.d.ts +0 -15
- package/dist/types/workspace-project-config-policy.d.ts +0 -48
- package/dist/types/workspace-projection-ledger.d.ts +0 -59
- package/dist/types/workspace-publication-evidence.d.ts +0 -17
- package/dist/types/workspace-sync-coalescer.d.ts +0 -28
- /package/dist/types/{credential-authority-lock-fixture.d.ts → runtime/adapter.d.ts} +0 -0
- /package/dist/types/{recovery-journal-stall-fixture.d.ts → runtime/releases/main.d.ts} +0 -0
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { OwnershipFence, RuntimeHello } from "@ricsam/r5d-api/runtime-protocol";
|
|
3
|
+
import { HostExecutorClient } from "../client";
|
|
4
|
+
import { AdapterConfig, AdapterGrant, ExecutorCommand, type AdapterRegistration } from "../protocol";
|
|
5
|
+
import { AdapterManifest, ImmutableAdapterArtifacts } from "./artifacts";
|
|
6
|
+
import { AdapterRetirementCompletion } from "./retirement";
|
|
7
|
+
import type { DeliveryReceipt } from "./rpc-protocol";
|
|
8
|
+
export declare const ReleaseManagerConfig: z.ZodObject<{
|
|
9
|
+
installationId: z.ZodString;
|
|
10
|
+
workerId: z.ZodString;
|
|
11
|
+
stateDir: z.ZodString;
|
|
12
|
+
artifactsDir: z.ZodString;
|
|
13
|
+
workspaceRoots: z.ZodArray<z.ZodString>;
|
|
14
|
+
runtimePath: z.ZodString;
|
|
15
|
+
runtimeSha256: z.ZodString;
|
|
16
|
+
controller: z.ZodObject<{
|
|
17
|
+
socketPath: z.ZodString;
|
|
18
|
+
principalId: z.ZodString;
|
|
19
|
+
token: z.ZodString;
|
|
20
|
+
hello: z.ZodObject<{
|
|
21
|
+
installationId: z.ZodString;
|
|
22
|
+
instanceId: z.ZodString;
|
|
23
|
+
releaseId: z.ZodString;
|
|
24
|
+
role: z.ZodEnum<{
|
|
25
|
+
web: "web";
|
|
26
|
+
scheduler: "scheduler";
|
|
27
|
+
runner: "runner";
|
|
28
|
+
gateway: "gateway";
|
|
29
|
+
"worker-adapter": "worker-adapter";
|
|
30
|
+
"browser-adapter": "browser-adapter";
|
|
31
|
+
executor: "executor";
|
|
32
|
+
keeper: "keeper";
|
|
33
|
+
storage: "storage";
|
|
34
|
+
}>;
|
|
35
|
+
protocol: z.ZodObject<{
|
|
36
|
+
min: z.ZodNumber;
|
|
37
|
+
max: z.ZodNumber;
|
|
38
|
+
}, z.core.$strict>;
|
|
39
|
+
capabilities: z.ZodArray<z.ZodString>;
|
|
40
|
+
}, z.core.$strict>;
|
|
41
|
+
timeoutMs: z.ZodDefault<z.ZodNumber>;
|
|
42
|
+
}, z.core.$strict>;
|
|
43
|
+
}, z.core.$strict>;
|
|
44
|
+
export type ReleaseManagerConfig = z.input<typeof ReleaseManagerConfig>;
|
|
45
|
+
export type ReleaseRecord = {
|
|
46
|
+
principalId: string;
|
|
47
|
+
manifest: AdapterManifest;
|
|
48
|
+
artifactDigest: string;
|
|
49
|
+
grant: AdapterGrant;
|
|
50
|
+
phase: "staged" | "ready" | "active" | "retained" | "retired";
|
|
51
|
+
retirementCompletion?: AdapterRetirementCompletion;
|
|
52
|
+
};
|
|
53
|
+
type KeeperStatus = {
|
|
54
|
+
hello: RuntimeHello;
|
|
55
|
+
workerId: string;
|
|
56
|
+
authority: {
|
|
57
|
+
fence: OwnershipFence;
|
|
58
|
+
validUntil: number;
|
|
59
|
+
} | null;
|
|
60
|
+
degraded: boolean;
|
|
61
|
+
adapters: AdapterRegistration[];
|
|
62
|
+
};
|
|
63
|
+
type Call = {
|
|
64
|
+
id: string;
|
|
65
|
+
principal: string;
|
|
66
|
+
hash: string;
|
|
67
|
+
state: "pending" | "completed" | "unknown";
|
|
68
|
+
acknowledged: number;
|
|
69
|
+
};
|
|
70
|
+
/** Local installation agent, independently supervised from the keeper. Its controller token is never passed to adapters. */
|
|
71
|
+
export declare class WorkerAdapterReleases {
|
|
72
|
+
readonly invocation: `${string}-${string}-${string}-${string}-${string}`;
|
|
73
|
+
readonly config: z.output<typeof ReleaseManagerConfig>;
|
|
74
|
+
readonly artifacts: ImmutableAdapterArtifacts;
|
|
75
|
+
readonly controller: HostExecutorClient;
|
|
76
|
+
private readonly db;
|
|
77
|
+
private readonly lock;
|
|
78
|
+
private readonly ackKey;
|
|
79
|
+
private readonly children;
|
|
80
|
+
private readonly deliveries;
|
|
81
|
+
private probes;
|
|
82
|
+
private readonly retiring;
|
|
83
|
+
private serial;
|
|
84
|
+
private closing;
|
|
85
|
+
private closed?;
|
|
86
|
+
constructor(input: ReleaseManagerConfig);
|
|
87
|
+
private verifyRuntime;
|
|
88
|
+
private exclusive;
|
|
89
|
+
list(): ReleaseRecord[];
|
|
90
|
+
calls(): Call[];
|
|
91
|
+
transitions(): unknown[];
|
|
92
|
+
private get;
|
|
93
|
+
private put;
|
|
94
|
+
private configPath;
|
|
95
|
+
private keeper;
|
|
96
|
+
/** Approval digest must come from the authenticated release ledger, not the source directory itself. */
|
|
97
|
+
stage(input: {
|
|
98
|
+
source: string;
|
|
99
|
+
manifest: AdapterManifest;
|
|
100
|
+
approvalDigest: string;
|
|
101
|
+
grant: AdapterGrant;
|
|
102
|
+
adapter: AdapterConfig;
|
|
103
|
+
}): Promise<ReleaseRecord>;
|
|
104
|
+
launch(id: string): Promise<{
|
|
105
|
+
pid: number;
|
|
106
|
+
}>;
|
|
107
|
+
/** Fence/lease are the committed DB grant from the separately authenticated controller, not a locally invented epoch. */
|
|
108
|
+
promote(id: string, inputFence: OwnershipFence, validUntil: number): Promise<void>;
|
|
109
|
+
private recordAuthority;
|
|
110
|
+
/** Recovery reads the keeper, never replays a promotion or kills a remembered PID. */
|
|
111
|
+
reconcile(): Promise<KeeperStatus>;
|
|
112
|
+
bindRpcPrincipals(principals: unknown): void;
|
|
113
|
+
/** Actual child request, independent of the delivery/admin queues; never substitutes direct executor status. */
|
|
114
|
+
probe(id: string, hello: RuntimeHello): Promise<KeeperStatus & {
|
|
115
|
+
adapterPid: number;
|
|
116
|
+
}>;
|
|
117
|
+
delivery(callId: string): DeliveryReceipt | null;
|
|
118
|
+
private ackToken;
|
|
119
|
+
private saveDelivery;
|
|
120
|
+
/** Stable transport ID: persisted completed outcomes replay exactly; unknown never redispatches. */
|
|
121
|
+
deliver(callId: string, id: string, hello: RuntimeHello, requesterId: string, command: ExecutorCommand): Promise<DeliveryReceipt>;
|
|
122
|
+
observe(id: string, hello: RuntimeHello, requesterId: string, command: ExecutorCommand): Promise<DeliveryReceipt>;
|
|
123
|
+
private dispatchDelivery;
|
|
124
|
+
acknowledgeDelivery(callId: string, responseDigest: string, ackToken: string, requesterId: string): {
|
|
125
|
+
callId: string;
|
|
126
|
+
responseDigest: string;
|
|
127
|
+
acknowledged: true;
|
|
128
|
+
};
|
|
129
|
+
/** Admin-only attestation to independently durable reconciliation. Never replays or changes the unknown outcome. */
|
|
130
|
+
settleUnknownDelivery(callId: string, evidenceDigest: string): DeliveryReceipt;
|
|
131
|
+
deliveryDrain(id: string): {
|
|
132
|
+
unsettled: number;
|
|
133
|
+
unknown: number;
|
|
134
|
+
};
|
|
135
|
+
/** Stable callId journals delivery; reusing it never dispatches twice. Explicit retry uses reconcileCall. */
|
|
136
|
+
request<T = unknown>(callId: string, id: string, command: ExecutorCommand): Promise<T>;
|
|
137
|
+
reconcileCall<T = unknown>(callId: string, id: string, command: ExecutorCommand): Promise<T>;
|
|
138
|
+
private dispatch;
|
|
139
|
+
/** Called only after the controller's durable inbox/outbox has recorded the result OR explicit unknown reconciliation. */
|
|
140
|
+
acknowledge(callId: string): Promise<void>;
|
|
141
|
+
retire(id: string, retirementIntentDigest?: string): Promise<void>;
|
|
142
|
+
stopAdapter(id: string): Promise<void>;
|
|
143
|
+
close(): Promise<void>;
|
|
144
|
+
}
|
|
145
|
+
export {};
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { type ChildProcessWithoutNullStreams } from "node:child_process";
|
|
2
|
+
import { type ExecutorCommand } from "../protocol";
|
|
3
|
+
/** Owns only a translation process. Never starts, signals, supervises or adopts the executor. */
|
|
4
|
+
export declare class AdapterChild {
|
|
5
|
+
private readonly timeoutMs;
|
|
6
|
+
readonly process: ChildProcessWithoutNullStreams;
|
|
7
|
+
private readonly pending;
|
|
8
|
+
private gone;
|
|
9
|
+
constructor(runtimePath: string, entrypoint: string, configPath: string, home: string, timeoutMs?: number);
|
|
10
|
+
private fail;
|
|
11
|
+
get alive(): boolean;
|
|
12
|
+
request<T = unknown>(command: ExecutorCommand): Promise<T>;
|
|
13
|
+
close(): Promise<void>;
|
|
14
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
/** Written only after closing a known owned child. Not inferred from process absence. */
|
|
3
|
+
export declare const AdapterRetirementCompletion: z.ZodObject<{
|
|
4
|
+
format: z.ZodLiteral<1>;
|
|
5
|
+
installationId: z.ZodString;
|
|
6
|
+
workerId: z.ZodString;
|
|
7
|
+
adapterId: z.ZodString;
|
|
8
|
+
manifestDigest: z.ZodString;
|
|
9
|
+
grantDigest: z.ZodString;
|
|
10
|
+
retirementIntentDigest: z.ZodString;
|
|
11
|
+
managerInvocation: z.ZodString;
|
|
12
|
+
childPid: z.ZodNumber;
|
|
13
|
+
completionId: z.ZodString;
|
|
14
|
+
}, z.core.$strict>;
|
|
15
|
+
export type AdapterRetirementCompletion = z.infer<typeof AdapterRetirementCompletion>;
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import type { OperationEnvelope } from "@ricsam/r5d-api/runtime-protocol";
|
|
2
|
+
import { ExecutorCommand, type RunIdentity, type RunReceipt, type PollResult, type ActionReceipt } from "../protocol";
|
|
3
|
+
import { DeliveryReceipt, ManagerRpcClientConfig, type ManagerCommand } from "./rpc-protocol";
|
|
4
|
+
export type DeliveryReceiptSink = (receipt: DeliveryReceipt) => Promise<void>;
|
|
5
|
+
export declare class ManagerRpcClient {
|
|
6
|
+
readonly config: ReturnType<typeof ManagerRpcClientConfig.parse>;
|
|
7
|
+
constructor(config: ManagerRpcClientConfig);
|
|
8
|
+
request<T = unknown>(command: ManagerCommand): Promise<T>;
|
|
9
|
+
probe(): Promise<unknown>;
|
|
10
|
+
execute(callId: string, command: ExecutorCommand): Promise<DeliveryReceipt>;
|
|
11
|
+
observe(command: ExecutorCommand): Promise<DeliveryReceipt>;
|
|
12
|
+
receipt(callId: string): Promise<DeliveryReceipt>;
|
|
13
|
+
acknowledge(callId: string, responseDigest: string, ackToken: string): Promise<{
|
|
14
|
+
callId: string;
|
|
15
|
+
responseDigest: string;
|
|
16
|
+
acknowledged: true;
|
|
17
|
+
}>;
|
|
18
|
+
}
|
|
19
|
+
/** Workspace facade: every resource method traverses manager -> actual child -> executor. No executor token/socket available. */
|
|
20
|
+
export declare class ManagedExecutorClient {
|
|
21
|
+
private readonly receiptSink?;
|
|
22
|
+
private readonly onAcknowledged?;
|
|
23
|
+
readonly rpc: ManagerRpcClient;
|
|
24
|
+
constructor(config: ManagerRpcClientConfig, receiptSink?: DeliveryReceiptSink | undefined, onAcknowledged?: DeliveryReceiptSink | undefined);
|
|
25
|
+
get config(): {
|
|
26
|
+
socketPath: string;
|
|
27
|
+
installationId: string;
|
|
28
|
+
workerId: string;
|
|
29
|
+
principalId: string;
|
|
30
|
+
token: string;
|
|
31
|
+
adapterId: string;
|
|
32
|
+
hello: {
|
|
33
|
+
installationId: string;
|
|
34
|
+
instanceId: string;
|
|
35
|
+
releaseId: string;
|
|
36
|
+
role: "web" | "scheduler" | "runner" | "gateway" | "worker-adapter" | "browser-adapter" | "executor" | "keeper" | "storage";
|
|
37
|
+
protocol: {
|
|
38
|
+
min: number;
|
|
39
|
+
max: number;
|
|
40
|
+
};
|
|
41
|
+
capabilities: string[];
|
|
42
|
+
};
|
|
43
|
+
timeoutMs: number;
|
|
44
|
+
};
|
|
45
|
+
status(): Promise<unknown>;
|
|
46
|
+
request<T = unknown>(command: ExecutorCommand): Promise<T>;
|
|
47
|
+
start(operation: OperationEnvelope): Promise<RunReceipt>;
|
|
48
|
+
poll(run: RunIdentity, stdoutOffset?: number, stderrOffset?: number, maxBytes?: number): Promise<PollResult>;
|
|
49
|
+
write(run: RunIdentity, actionId: string, data: string, eof?: boolean): Promise<ActionReceipt>;
|
|
50
|
+
resize(run: RunIdentity, actionId: string, cols: number, rows: number): Promise<ActionReceipt>;
|
|
51
|
+
cancel(run: RunIdentity, actionId: string): Promise<ActionReceipt>;
|
|
52
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { WorkerAdapterReleases } from "./manager";
|
|
2
|
+
import { ManagerRpcConfig } from "./rpc-protocol";
|
|
3
|
+
export declare function readManagerPrivateJson(path: string): unknown;
|
|
4
|
+
/** Independently supervised Unix service; callers never receive grants, adapter tokens or admin authority. */
|
|
5
|
+
export declare function startManagerRpc(input: ManagerRpcConfig): Promise<{
|
|
6
|
+
manager: WorkerAdapterReleases;
|
|
7
|
+
socketPath: string;
|
|
8
|
+
readonly pending: number;
|
|
9
|
+
close(): Promise<void>;
|
|
10
|
+
}>;
|