instar 1.3.365 → 1.3.367
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/commands/server.d.ts.map +1 -1
- package/dist/commands/server.js +200 -1
- package/dist/commands/server.js.map +1 -1
- package/dist/config/ConfigDefaults.d.ts.map +1 -1
- package/dist/config/ConfigDefaults.js +18 -0
- package/dist/config/ConfigDefaults.js.map +1 -1
- package/dist/core/IntentTestHarness.d.ts +27 -0
- package/dist/core/IntentTestHarness.d.ts.map +1 -1
- package/dist/core/IntentTestHarness.js +91 -0
- package/dist/core/IntentTestHarness.js.map +1 -1
- package/dist/core/MeshRpc.d.ts +8 -0
- package/dist/core/MeshRpc.d.ts.map +1 -1
- package/dist/core/MeshRpc.js +6 -1
- package/dist/core/MeshRpc.js.map +1 -1
- package/dist/core/PeerPresencePuller.d.ts +6 -0
- package/dist/core/PeerPresencePuller.d.ts.map +1 -1
- package/dist/core/PeerPresencePuller.js +5 -0
- package/dist/core/PeerPresencePuller.js.map +1 -1
- package/dist/core/PeerVisibilityGuard.d.ts +83 -0
- package/dist/core/PeerVisibilityGuard.d.ts.map +1 -0
- package/dist/core/PeerVisibilityGuard.js +204 -0
- package/dist/core/PeerVisibilityGuard.js.map +1 -0
- package/dist/core/PendingPullLedger.d.ts +129 -0
- package/dist/core/PendingPullLedger.d.ts.map +1 -0
- package/dist/core/PendingPullLedger.js +239 -0
- package/dist/core/PendingPullLedger.js.map +1 -0
- package/dist/core/PostUpdateMigrator.d.ts.map +1 -1
- package/dist/core/PostUpdateMigrator.js +20 -0
- package/dist/core/PostUpdateMigrator.js.map +1 -1
- package/dist/core/WorkingSetManifest.d.ts +2 -0
- package/dist/core/WorkingSetManifest.d.ts.map +1 -1
- package/dist/core/WorkingSetManifest.js +13 -1
- package/dist/core/WorkingSetManifest.js.map +1 -1
- package/dist/core/WorkingSetPull.d.ts +157 -0
- package/dist/core/WorkingSetPull.d.ts.map +1 -0
- package/dist/core/WorkingSetPull.js +546 -0
- package/dist/core/WorkingSetPull.js.map +1 -0
- package/dist/core/WorkingSetPullCoordinator.d.ts +134 -0
- package/dist/core/WorkingSetPullCoordinator.d.ts.map +1 -0
- package/dist/core/WorkingSetPullCoordinator.js +306 -0
- package/dist/core/WorkingSetPullCoordinator.js.map +1 -0
- package/dist/core/types.d.ts +43 -1
- package/dist/core/types.d.ts.map +1 -1
- package/dist/core/types.js.map +1 -1
- package/dist/redteam/ScenarioPack.d.ts +30 -3
- package/dist/redteam/ScenarioPack.d.ts.map +1 -1
- package/dist/redteam/ScenarioPack.js +46 -1
- package/dist/redteam/ScenarioPack.js.map +1 -1
- package/dist/scaffold/templates.d.ts.map +1 -1
- package/dist/scaffold/templates.js +4 -0
- package/dist/scaffold/templates.js.map +1 -1
- package/dist/server/AgentServer.d.ts +3 -0
- package/dist/server/AgentServer.d.ts.map +1 -1
- package/dist/server/AgentServer.js +1 -0
- package/dist/server/AgentServer.js.map +1 -1
- package/dist/server/routes.d.ts +5 -0
- package/dist/server/routes.d.ts.map +1 -1
- package/dist/server/routes.js +47 -1
- package/dist/server/routes.js.map +1 -1
- package/package.json +1 -1
- package/src/data/builtin-manifest.json +64 -64
- package/src/data/state-coherence-registry.json +48 -12
- package/src/scaffold/templates.ts +4 -0
- package/upgrades/{1.3.365.md → 1.3.366.md} +35 -0
- package/upgrades/1.3.367.md +134 -0
- package/upgrades/side-effects/intent-llm-judge.md +94 -0
- package/upgrades/side-effects/working-set-ci-absorb.md +29 -0
- package/upgrades/side-effects/working-set-parity-absorb.md +35 -0
- package/upgrades/side-effects/working-set-pull-p22a.md +121 -0
- package/upgrades/side-effects/working-set-trigger-p22b.md +115 -0
|
@@ -102,4 +102,6 @@ export interface ComputeWorkingSetOpts {
|
|
|
102
102
|
secretScan?: (content: Buffer) => boolean;
|
|
103
103
|
}
|
|
104
104
|
export declare function computeWorkingSet(opts: ComputeWorkingSetOpts): WorkingSetManifestResult;
|
|
105
|
+
/** Undefined-safe caps merge — a config block with absent keys keeps defaults. */
|
|
106
|
+
export declare function mergeCaps(caps?: Partial<WorkingSetCaps>): WorkingSetCaps;
|
|
105
107
|
//# sourceMappingURL=WorkingSetManifest.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WorkingSetManifest.d.ts","sourceRoot":"","sources":["../../src/core/WorkingSetManifest.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAOH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAErE,8EAA8E;AAC9E,eAAO,MAAM,wBAAwB,EAAE,cAKtC,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,QAAmB,CAAC;AAElD,MAAM,WAAW,cAAc;IAC7B,YAAY,EAAE,MAAM,CAAC;IACrB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB;oEACgE;IAChE,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,eAAe;IAC9B,4EAA4E;IAC5E,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,mEAAmE;IACnE,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,uDAAuD;IACvD,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,MAAM,WAAW,wBAAwB;IACvC,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,eAAe,EAAE,CAAC;IAC3B,mEAAmE;IACnE,OAAO,EAAE,OAAO,CAAC;IACjB,kFAAkF;IAClF,iBAAiB,EAAE,OAAO,CAAC;IAC3B,uEAAuE;IACvE,cAAc,EAAE,MAAM,CAAC;IACvB,oDAAoD;IACpD,YAAY,EAAE,MAAM,CAAC;IACrB,iFAAiF;IACjF,YAAY,EAAE,MAAM,CAAC;IACrB;+CAC2C;IAC3C,iBAAiB,EAAE,MAAM,CAAC;CAC3B;AAED,+BAA+B;AAC/B,MAAM,WAAW,YAAY;IAC3B,WAAW,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,EAAE,CAAC;IACvC,SAAS,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK;QAAE,MAAM,IAAI,OAAO,CAAC;QAAC,cAAc,IAAI,OAAO,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IAC1G,UAAU,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC;IACnC,YAAY,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;IACpC,YAAY,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;CACrC;AAED,MAAM,WAAW,qBAAqB;IACpC,yDAAyD;IACzD,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,6EAA6E;IAC7E,IAAI,EAAE,iBAAiB,CAAC;IACxB,IAAI,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,CAAC;IAC/B,GAAG,CAAC,EAAE,MAAM,IAAI,CAAC;IACjB,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,iFAAiF;IACjF,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC;CAC3C;AAsBD,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,qBAAqB,GAAG,wBAAwB,CA8IvF"}
|
|
1
|
+
{"version":3,"file":"WorkingSetManifest.d.ts","sourceRoot":"","sources":["../../src/core/WorkingSetManifest.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAOH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAErE,8EAA8E;AAC9E,eAAO,MAAM,wBAAwB,EAAE,cAKtC,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,QAAmB,CAAC;AAElD,MAAM,WAAW,cAAc;IAC7B,YAAY,EAAE,MAAM,CAAC;IACrB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB;oEACgE;IAChE,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,eAAe;IAC9B,4EAA4E;IAC5E,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,mEAAmE;IACnE,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,uDAAuD;IACvD,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,MAAM,WAAW,wBAAwB;IACvC,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,eAAe,EAAE,CAAC;IAC3B,mEAAmE;IACnE,OAAO,EAAE,OAAO,CAAC;IACjB,kFAAkF;IAClF,iBAAiB,EAAE,OAAO,CAAC;IAC3B,uEAAuE;IACvE,cAAc,EAAE,MAAM,CAAC;IACvB,oDAAoD;IACpD,YAAY,EAAE,MAAM,CAAC;IACrB,iFAAiF;IACjF,YAAY,EAAE,MAAM,CAAC;IACrB;+CAC2C;IAC3C,iBAAiB,EAAE,MAAM,CAAC;CAC3B;AAED,+BAA+B;AAC/B,MAAM,WAAW,YAAY;IAC3B,WAAW,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,EAAE,CAAC;IACvC,SAAS,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK;QAAE,MAAM,IAAI,OAAO,CAAC;QAAC,cAAc,IAAI,OAAO,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IAC1G,UAAU,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC;IACnC,YAAY,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;IACpC,YAAY,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;CACrC;AAED,MAAM,WAAW,qBAAqB;IACpC,yDAAyD;IACzD,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,6EAA6E;IAC7E,IAAI,EAAE,iBAAiB,CAAC;IACxB,IAAI,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,CAAC;IAC/B,GAAG,CAAC,EAAE,MAAM,IAAI,CAAC;IACjB,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,iFAAiF;IACjF,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC;CAC3C;AAsBD,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,qBAAqB,GAAG,wBAAwB,CA8IvF;AAoCD,kFAAkF;AAClF,wBAAgB,SAAS,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,GAAG,cAAc,CAQxE"}
|
|
@@ -60,7 +60,7 @@ function defaultSecretScan(content) {
|
|
|
60
60
|
}
|
|
61
61
|
export function computeWorkingSet(opts) {
|
|
62
62
|
const io = opts.fsImpl ?? realFs();
|
|
63
|
-
const caps =
|
|
63
|
+
const caps = mergeCaps(opts.caps);
|
|
64
64
|
const now = opts.now ?? (() => new Date());
|
|
65
65
|
const scan = opts.secretScan ?? defaultSecretScan;
|
|
66
66
|
// Realpath the stateDir itself so the jail roots and the realpathed
|
|
@@ -234,4 +234,16 @@ function isContained(root, p) {
|
|
|
234
234
|
const rel = path.relative(root, p);
|
|
235
235
|
return rel === '' || (!rel.startsWith('..') && !path.isAbsolute(rel));
|
|
236
236
|
}
|
|
237
|
+
/** Undefined-safe caps merge — a config block with absent keys keeps defaults. */
|
|
238
|
+
export function mergeCaps(caps) {
|
|
239
|
+
const out = { ...DEFAULT_WORKING_SET_CAPS };
|
|
240
|
+
if (!caps)
|
|
241
|
+
return out;
|
|
242
|
+
for (const k of Object.keys(out)) {
|
|
243
|
+
const v = caps[k];
|
|
244
|
+
if (typeof v === 'number' && Number.isFinite(v) && v > 0)
|
|
245
|
+
out[k] = v;
|
|
246
|
+
}
|
|
247
|
+
return out;
|
|
248
|
+
}
|
|
237
249
|
//# sourceMappingURL=WorkingSetManifest.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WorkingSetManifest.js","sourceRoot":"","sources":["../../src/core/WorkingSetManifest.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAEH,OAAO,MAAM,MAAM,aAAa,CAAC;AACjC,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAG3D,8EAA8E;AAC9E,MAAM,CAAC,MAAM,wBAAwB,GAAmB;IACtD,YAAY,EAAE,CAAC,GAAG,IAAI,GAAG,IAAI;IAC7B,iBAAiB,EAAE,EAAE,GAAG,IAAI,GAAG,IAAI;IACnC,QAAQ,EAAE,EAAE;IACZ,aAAa,EAAE,EAAE,GAAG,IAAI,GAAG,IAAI;CAChC,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI,CAAC;AAiElD,SAAS,MAAM;IACb,OAAO;QACL,WAAW,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC;QACzC,SAAS,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC;QACjC,UAAU,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC;QACnC,YAAY,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC;QACvC,YAAY,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC;KACxC,CAAC;AACJ,CAAC;AAED,SAAS,iBAAiB,CAAC,OAAe;IACxC,OAAO,iBAAiB,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,aAAa,GAAG,CAAC,CAAC;AACxE,CAAC;AAQD,MAAM,UAAU,iBAAiB,CAAC,IAA2B;IAC3D,MAAM,EAAE,GAAG,IAAI,CAAC,MAAM,IAAI,MAAM,EAAE,CAAC;IACnC,MAAM,IAAI,
|
|
1
|
+
{"version":3,"file":"WorkingSetManifest.js","sourceRoot":"","sources":["../../src/core/WorkingSetManifest.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* WorkingSetPull — P2.2 of multi-machine coherence: both sides of the
|
|
3
|
+
* chunked, bounded, verified `working-set-pull` mesh verb.
|
|
4
|
+
*
|
|
5
|
+
* Spec: docs/specs/WORKING-SET-HANDOFF-SPEC.md §3.2 (the verb), §3.5
|
|
6
|
+
* (never-clobber). Transport-agnostic: the server registers the serve side
|
|
7
|
+
* as the verb handler; the puller drives the receive side through an
|
|
8
|
+
* injected `send` seam (MeshRpcClient upstream).
|
|
9
|
+
*
|
|
10
|
+
* Load-bearing transport rules (§3.2):
|
|
11
|
+
* - Every response carries at most `pullMaxBatchBytes` (1 MiB default) of
|
|
12
|
+
* content — a single 32 MiB JSON.stringify is the host's DOCUMENTED
|
|
13
|
+
* event-loop-starvation root cause.
|
|
14
|
+
* - Cross-chunk consistency anchor: the offset-0 response alone carries the
|
|
15
|
+
* whole-file sha256 (ONE full read+hash, amortized) + a cheap fstat
|
|
16
|
+
* anchor {bytes, mtimeNs, ino}; later chunks carry the fstat anchor only.
|
|
17
|
+
* Anchor mismatch → restart FROM 0, bounded by chunkRestartCap, then the
|
|
18
|
+
* file is `unstable` (surfaced, never a livelock).
|
|
19
|
+
* - `busy` is retry-without-penalty: it never consumes the pending-pull
|
|
20
|
+
* breaker's failure budget (§3.2/§3.4).
|
|
21
|
+
* - maxTotalBytes counts ASSEMBLED, verification-passed bytes — never raw
|
|
22
|
+
* wire bytes (anchor restarts can't starve the set's remaining files).
|
|
23
|
+
* - Serve side: the FRESH manifest is the allowlist (recomputed per
|
|
24
|
+
* request); O_NOFOLLOW open + fd identity verify (TOCTOU defense);
|
|
25
|
+
* at most `serveConcurrency` requests served at once.
|
|
26
|
+
* - Receive side: peer relPath is HOSTILE input; full jail before any
|
|
27
|
+
* join; never-clobber with hash-suffixed alongside copies (cap 2,
|
|
28
|
+
* eviction via SafeFsExecutor — the single, narrow deletion exception).
|
|
29
|
+
*/
|
|
30
|
+
import { type WorkingSetCaps, type WorkingSetManifestResult } from './WorkingSetManifest.js';
|
|
31
|
+
import type { OwnAutonomousRuns } from './CoherenceJournalReader.js';
|
|
32
|
+
export declare const DEFAULT_PULL_MAX_BATCH_BYTES: number;
|
|
33
|
+
export declare const DEFAULT_CHUNK_RESTART_CAP = 3;
|
|
34
|
+
export declare const DEFAULT_CHUNKS_PER_TICK = 8;
|
|
35
|
+
export declare const DEFAULT_SERVE_CONCURRENCY = 2;
|
|
36
|
+
export declare const DEFAULT_BUSY_RETRY_CAP = 10;
|
|
37
|
+
/** Cheap per-chunk tear detector (§3.2) — fstat, never a content re-hash. */
|
|
38
|
+
export interface GenerationAnchor {
|
|
39
|
+
bytes: number;
|
|
40
|
+
mtimeNs: string;
|
|
41
|
+
ino: string;
|
|
42
|
+
}
|
|
43
|
+
export interface ServedBlob {
|
|
44
|
+
relPath: string;
|
|
45
|
+
offset: number;
|
|
46
|
+
dataB64: string;
|
|
47
|
+
anchor: GenerationAnchor;
|
|
48
|
+
/** Offset-0 responses only: the whole file's sha256 (the assembly authority). */
|
|
49
|
+
fileSha256?: string;
|
|
50
|
+
/** True when this chunk reaches end-of-file. */
|
|
51
|
+
eof: boolean;
|
|
52
|
+
/** Served hash differs from the requester's manifest view (§3.2 — served wins). */
|
|
53
|
+
changedSinceManifest?: boolean;
|
|
54
|
+
}
|
|
55
|
+
export type RefusalReason = 'refusedPolicy' | 'goneSinceManifest' | 'liveSource' | 'secretFlagged' | 'tooLarge';
|
|
56
|
+
export interface ServeResult {
|
|
57
|
+
busy?: boolean;
|
|
58
|
+
manifest?: WorkingSetManifestResult;
|
|
59
|
+
blobs?: ServedBlob[];
|
|
60
|
+
refused?: {
|
|
61
|
+
relPath: string;
|
|
62
|
+
reason: RefusalReason;
|
|
63
|
+
}[];
|
|
64
|
+
}
|
|
65
|
+
export interface ServeDeps {
|
|
66
|
+
stateDir: string;
|
|
67
|
+
/** Own-stream journal evidence for the topic (reader, threaded by server). */
|
|
68
|
+
readRuns: (topic: number) => OwnAutonomousRuns;
|
|
69
|
+
caps?: Partial<WorkingSetCaps>;
|
|
70
|
+
pullMaxBatchBytes?: number;
|
|
71
|
+
serveConcurrency?: number;
|
|
72
|
+
logger?: (msg: string) => void;
|
|
73
|
+
}
|
|
74
|
+
export interface WorkingSetPullCmd {
|
|
75
|
+
type: 'working-set-pull';
|
|
76
|
+
topic: number;
|
|
77
|
+
manifestOnly?: boolean;
|
|
78
|
+
want?: {
|
|
79
|
+
relPath: string;
|
|
80
|
+
offset: number;
|
|
81
|
+
}[];
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* The serve-side handler — stateless per request except the concurrency
|
|
85
|
+
* gate. Registered by the server as the `working-set-pull` verb handler.
|
|
86
|
+
*/
|
|
87
|
+
export declare class WorkingSetPullServer {
|
|
88
|
+
private inFlight;
|
|
89
|
+
private readonly d;
|
|
90
|
+
constructor(deps: ServeDeps);
|
|
91
|
+
handle(cmd: WorkingSetPullCmd): ServeResult;
|
|
92
|
+
private handleInner;
|
|
93
|
+
/**
|
|
94
|
+
* TOCTOU-safe single-chunk read (§3.2): open O_NOFOLLOW (refuses a symlink
|
|
95
|
+
* swapped in at the final component), fstat the FD (regular file), and
|
|
96
|
+
* verify FD identity against a fresh lstat of the same path (same dev+ino
|
|
97
|
+
* → the fd IS the file at the jailed path, not a different object raced
|
|
98
|
+
* in). Bytes are read once; the offset-0 read covers the whole file so the
|
|
99
|
+
* assembly hash comes from the exact served bytes.
|
|
100
|
+
*/
|
|
101
|
+
private serveChunk;
|
|
102
|
+
}
|
|
103
|
+
export interface PullerDeps {
|
|
104
|
+
stateDir: string;
|
|
105
|
+
/** Send one verb request to the nominee peer. Throws on transport failure. */
|
|
106
|
+
send: (cmd: WorkingSetPullCmd) => Promise<ServeResult>;
|
|
107
|
+
/** Short stable id of the SENDER machine (alongside naming, from env.sender). */
|
|
108
|
+
senderShortId: string;
|
|
109
|
+
/** Re-checked before EVERY write (§3.3): still the owner at this epoch? */
|
|
110
|
+
stillCurrent: () => boolean;
|
|
111
|
+
caps?: Partial<WorkingSetCaps>;
|
|
112
|
+
pullMaxBatchBytes?: number;
|
|
113
|
+
chunkRestartCap?: number;
|
|
114
|
+
chunksPerTick?: number;
|
|
115
|
+
busyRetryCap?: number;
|
|
116
|
+
/** Event-loop yield between chunk groups (test seam; default setImmediate). */
|
|
117
|
+
yieldFn?: () => Promise<void>;
|
|
118
|
+
/** Inter-chunk delay under pressure (ms); 0 default, the scheduler stretches. */
|
|
119
|
+
interChunkDelayMs?: number;
|
|
120
|
+
logger?: (msg: string) => void;
|
|
121
|
+
}
|
|
122
|
+
export interface PullFileOutcome {
|
|
123
|
+
relPath: string;
|
|
124
|
+
outcome: 'written' | 'skippedExisting' | 'alongside' | 'unstable' | 'refused' | 'liveSourceDeferred' | 'superseded' | 'budgetExhausted' | 'busyExhausted' | 'verifyFailed';
|
|
125
|
+
reason?: string;
|
|
126
|
+
alongsidePath?: string;
|
|
127
|
+
}
|
|
128
|
+
export interface PullReport {
|
|
129
|
+
topic: number;
|
|
130
|
+
files: PullFileOutcome[];
|
|
131
|
+
assembledBytes: number;
|
|
132
|
+
/** True when ANY outcome warrants a pending-pull record (§3.4). */
|
|
133
|
+
needsPendingPull: boolean;
|
|
134
|
+
}
|
|
135
|
+
export declare class WorkingSetPuller {
|
|
136
|
+
private readonly d;
|
|
137
|
+
constructor(deps: PullerDeps);
|
|
138
|
+
/**
|
|
139
|
+
* Pull one topic's transferables from the nominee behind `send`.
|
|
140
|
+
* The caller (trigger/ledger layer) handles nomination, single-flight,
|
|
141
|
+
* staggered drain, and pending-pull filing off `needsPendingPull`.
|
|
142
|
+
*/
|
|
143
|
+
pullTopic(topic: number): Promise<PullReport>;
|
|
144
|
+
private pullFile;
|
|
145
|
+
private pullFileOnce;
|
|
146
|
+
private writeNeverClobber;
|
|
147
|
+
/**
|
|
148
|
+
* Cap-2 alongside retention (§3.5) — the single, narrow deletion exception:
|
|
149
|
+
* alongside files only, inside the jail, through SafeFsExecutor. The
|
|
150
|
+
* evicted copy's content still exists on its producer machine (first-hop
|
|
151
|
+
* provenance) — nothing is lost to the fleet, only to this replica.
|
|
152
|
+
*/
|
|
153
|
+
private evictAlongsideOverCap;
|
|
154
|
+
private sendWithBusyRetry;
|
|
155
|
+
private yieldNow;
|
|
156
|
+
}
|
|
157
|
+
//# sourceMappingURL=WorkingSetPull.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WorkingSetPull.d.ts","sourceRoot":"","sources":["../../src/core/WorkingSetPull.ts"],"names":[],"mappings":"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"}
|