instar 1.3.728 → 1.3.730
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 +259 -2
- package/dist/commands/server.js.map +1 -1
- package/dist/config/ConfigDefaults.d.ts.map +1 -1
- package/dist/config/ConfigDefaults.js +11 -0
- package/dist/config/ConfigDefaults.js.map +1 -1
- package/dist/core/FileClassifier.d.ts.map +1 -1
- package/dist/core/FileClassifier.js +11 -0
- package/dist/core/FileClassifier.js.map +1 -1
- package/dist/core/LocalSessionOwnershipStore.d.ts +5 -0
- package/dist/core/LocalSessionOwnershipStore.d.ts.map +1 -1
- package/dist/core/LocalSessionOwnershipStore.js +13 -0
- package/dist/core/LocalSessionOwnershipStore.js.map +1 -1
- package/dist/core/ModelSwapService.d.ts +13 -0
- package/dist/core/ModelSwapService.d.ts.map +1 -1
- package/dist/core/ModelSwapService.js +11 -0
- package/dist/core/ModelSwapService.js.map +1 -1
- package/dist/core/ModelTierEscalation.d.ts +10 -0
- package/dist/core/ModelTierEscalation.d.ts.map +1 -1
- package/dist/core/ModelTierEscalation.js +4 -0
- package/dist/core/ModelTierEscalation.js.map +1 -1
- package/dist/core/PostUpdateMigrator.d.ts +1 -0
- package/dist/core/PostUpdateMigrator.d.ts.map +1 -1
- package/dist/core/PostUpdateMigrator.js +35 -0
- package/dist/core/PostUpdateMigrator.js.map +1 -1
- package/dist/core/ProactiveSwapMonitor.d.ts +74 -20
- package/dist/core/ProactiveSwapMonitor.d.ts.map +1 -1
- package/dist/core/ProactiveSwapMonitor.js +349 -28
- package/dist/core/ProactiveSwapMonitor.js.map +1 -1
- package/dist/core/QuotaAwareScheduler.d.ts +70 -3
- package/dist/core/QuotaAwareScheduler.d.ts.map +1 -1
- package/dist/core/QuotaAwareScheduler.js +100 -16
- package/dist/core/QuotaAwareScheduler.js.map +1 -1
- package/dist/core/SessionBuildContextStore.d.ts +20 -0
- package/dist/core/SessionBuildContextStore.d.ts.map +1 -1
- package/dist/core/SessionBuildContextStore.js +20 -3
- package/dist/core/SessionBuildContextStore.js.map +1 -1
- package/dist/core/SessionManager.d.ts +33 -0
- package/dist/core/SessionManager.d.ts.map +1 -1
- package/dist/core/SessionManager.js +105 -0
- package/dist/core/SessionManager.js.map +1 -1
- package/dist/core/SessionOwnershipRegistry.d.ts +16 -0
- package/dist/core/SessionOwnershipRegistry.d.ts.map +1 -1
- package/dist/core/SessionOwnershipRegistry.js +13 -0
- package/dist/core/SessionOwnershipRegistry.js.map +1 -1
- package/dist/core/SessionRefresh.d.ts +116 -1
- package/dist/core/SessionRefresh.d.ts.map +1 -1
- package/dist/core/SessionRefresh.js +280 -17
- package/dist/core/SessionRefresh.js.map +1 -1
- package/dist/core/StateManager.d.ts +20 -0
- package/dist/core/StateManager.d.ts.map +1 -1
- package/dist/core/StateManager.js +72 -4
- package/dist/core/StateManager.js.map +1 -1
- package/dist/core/SwapAntiThrash.d.ts +329 -0
- package/dist/core/SwapAntiThrash.d.ts.map +1 -0
- package/dist/core/SwapAntiThrash.js +1025 -0
- package/dist/core/SwapAntiThrash.js.map +1 -0
- package/dist/core/SwapLedger.d.ts +168 -0
- package/dist/core/SwapLedger.d.ts.map +1 -0
- package/dist/core/SwapLedger.js +275 -0
- package/dist/core/SwapLedger.js.map +1 -0
- package/dist/core/SwapWorkGate.d.ts +100 -0
- package/dist/core/SwapWorkGate.d.ts.map +1 -0
- package/dist/core/SwapWorkGate.js +175 -0
- package/dist/core/SwapWorkGate.js.map +1 -0
- package/dist/core/WriteAdmission.d.ts +277 -0
- package/dist/core/WriteAdmission.d.ts.map +1 -0
- package/dist/core/WriteAdmission.js +514 -0
- package/dist/core/WriteAdmission.js.map +1 -0
- package/dist/core/WriteDomainRegistry.d.ts +132 -0
- package/dist/core/WriteDomainRegistry.d.ts.map +1 -0
- package/dist/core/WriteDomainRegistry.js +186 -0
- package/dist/core/WriteDomainRegistry.js.map +1 -0
- package/dist/core/devGatedFeatures.d.ts.map +1 -1
- package/dist/core/devGatedFeatures.js +12 -0
- package/dist/core/devGatedFeatures.js.map +1 -1
- package/dist/core/types.d.ts +89 -1
- package/dist/core/types.d.ts.map +1 -1
- package/dist/core/types.js.map +1 -1
- package/dist/monitoring/guardManifest.d.ts.map +1 -1
- package/dist/monitoring/guardManifest.js +58 -1
- package/dist/monitoring/guardManifest.js.map +1 -1
- package/dist/scaffold/templates.d.ts.map +1 -1
- package/dist/scaffold/templates.js +3 -1
- 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 +20 -0
- package/dist/server/AgentServer.js.map +1 -1
- package/dist/server/CapabilityIndex.d.ts.map +1 -1
- package/dist/server/CapabilityIndex.js +1 -0
- package/dist/server/CapabilityIndex.js.map +1 -1
- package/dist/server/routes.d.ts +6 -0
- package/dist/server/routes.d.ts.map +1 -1
- package/dist/server/routes.js +115 -3
- package/dist/server/routes.js.map +1 -1
- package/package.json +1 -1
- package/src/data/builtin-manifest.json +65 -65
- package/src/scaffold/templates.ts +3 -1
- package/upgrades/1.3.729.md +92 -0
- package/upgrades/1.3.730.md +112 -0
- package/upgrades/side-effects/standby-write-reconciliation.md +62 -0
- package/upgrades/side-effects/swap-continuity-antithrash.md +118 -0
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* WriteDomainRegistry — the single source of truth mapping every classified
|
|
3
|
+
* mutating surface (StateManager op names, exact kv keys, HTTP route prefixes)
|
|
4
|
+
* to its write DOMAIN + convergence story.
|
|
5
|
+
*
|
|
6
|
+
* Spec: docs/specs/standby-write-reconciliation.md §3.1 (taxonomy), §3.5
|
|
7
|
+
* (registry + conformance ratchet), invariants I8/I9.
|
|
8
|
+
*
|
|
9
|
+
* Design rules enforced HERE (not by review vigilance):
|
|
10
|
+
* - I8 Registry-or-legacy, never neither: an unclassified StateManager op or
|
|
11
|
+
* kv key resolves to `cluster-shared` — exactly today's blanket guard. An
|
|
12
|
+
* unwired route resolves to null (no admission wiring, today's behavior).
|
|
13
|
+
* - I9 No machine-local without a convergence story — on BOTH axes: a
|
|
14
|
+
* machine-local entry with no logical story, or one sitting on a git-synced
|
|
15
|
+
* shared path with no file-level arm (`per-machine-path` |
|
|
16
|
+
* `git-sync-excluded`), is REFUSED the classification and downgraded to
|
|
17
|
+
* `cluster-shared` (recorded in `refusedClassifications` so the Tier-1 test
|
|
18
|
+
* and the observability surface can see it).
|
|
19
|
+
* - kv classification is EXACT-KEY (§9.12) — no prefix matching in wave 1. A
|
|
20
|
+
* key whose contents mix domains is refused classification until the store
|
|
21
|
+
* is split or re-keyed (first instance: `session-build-context` re-keyed
|
|
22
|
+
* per machine; the LEGACY key stays cluster-shared).
|
|
23
|
+
* - Topic-scoped absent-window opt-in (§3.2 table exception, §9.18) is
|
|
24
|
+
* audited under the SAME story schema (I9).
|
|
25
|
+
*/
|
|
26
|
+
export type WriteDomain = 'machine-local' | 'session-scoped' | 'topic-scoped' | 'cluster-shared';
|
|
27
|
+
export type LogicalConvergenceStory = 'ws2x-replicated' | 'pool-scope-read-merge' | 'per-machine-path' | 'git-sync-excluded' | 'ephemeral-rebuildable';
|
|
28
|
+
export type FileLevelArm = 'per-machine-path' | 'git-sync-excluded';
|
|
29
|
+
/** The two-axis convergence story a machine-local entry must carry (§3.1). */
|
|
30
|
+
export interface ConvergenceStory {
|
|
31
|
+
/** How the LOGICAL state converges across machines. */
|
|
32
|
+
logical: LogicalConvergenceStory;
|
|
33
|
+
/** Whether the backing store sits on a git-synced shared path (the round-2
|
|
34
|
+
* S1 axis: a logical story says nothing about the FILE). */
|
|
35
|
+
onSharedGitSyncedPath: boolean;
|
|
36
|
+
/** REQUIRED when onSharedGitSyncedPath — the file-level arm. */
|
|
37
|
+
fileLevel?: FileLevelArm;
|
|
38
|
+
/** Honesty note (e.g. "WS2.5 replication covers action-queue.json only and
|
|
39
|
+
* is dark on the fleet"). Human-facing, never consulted by admission. */
|
|
40
|
+
note?: string;
|
|
41
|
+
}
|
|
42
|
+
export interface OpEntry {
|
|
43
|
+
kind: 'op';
|
|
44
|
+
/** StateManager operation name (e.g. 'saveSession'). */
|
|
45
|
+
op: string;
|
|
46
|
+
domain: WriteDomain;
|
|
47
|
+
story?: ConvergenceStory;
|
|
48
|
+
}
|
|
49
|
+
export interface KvEntry {
|
|
50
|
+
kind: 'kv';
|
|
51
|
+
/** EXACT kv key (post-validateKey charset) — never a prefix (§9.12). */
|
|
52
|
+
key: string;
|
|
53
|
+
domain: WriteDomain;
|
|
54
|
+
story?: ConvergenceStory;
|
|
55
|
+
/** §3.2 table exception (§9.18): a topic-scoped entry may opt into
|
|
56
|
+
* admit-on-absent ONLY by declaring an explicit absent-window story,
|
|
57
|
+
* I9-audited on both axes. */
|
|
58
|
+
absentWindowStory?: ConvergenceStory;
|
|
59
|
+
}
|
|
60
|
+
export type MutatingMethod = 'POST' | 'PATCH' | 'PUT' | 'DELETE';
|
|
61
|
+
export interface RouteEntry {
|
|
62
|
+
kind: 'route';
|
|
63
|
+
method: MutatingMethod;
|
|
64
|
+
/** Route path prefix (matched against the request path). */
|
|
65
|
+
pathPrefix: string;
|
|
66
|
+
domain: WriteDomain;
|
|
67
|
+
story?: ConvergenceStory;
|
|
68
|
+
absentWindowStory?: ConvergenceStory;
|
|
69
|
+
}
|
|
70
|
+
export type WriteDomainEntry = OpEntry | KvEntry | RouteEntry;
|
|
71
|
+
export interface RefusedClassification {
|
|
72
|
+
entry: WriteDomainEntry;
|
|
73
|
+
reason: string;
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Wave-2 inventory gate (§3.5 ladder gate (a), §9.14): `dryRun:false` is
|
|
77
|
+
* REFUSED until the complete write-surface inventory is present in the
|
|
78
|
+
* registry (TODO-classify rows permitted; absent rows are not). This constant
|
|
79
|
+
* is the structural latch: WriteAdmission treats live mode as unreachable
|
|
80
|
+
* while it is false, no matter what config says. Flipped by the wave-2 PR
|
|
81
|
+
* that lands the reviewed inventory — never by config.
|
|
82
|
+
*/
|
|
83
|
+
export declare const WRITE_SURFACE_INVENTORY_COMPLETE = false;
|
|
84
|
+
/**
|
|
85
|
+
* Charset-jail a machine id for embedding in a kv key (mirrors the
|
|
86
|
+
* sessionFileName jail in LocalSessionOwnershipStore, tightened to the
|
|
87
|
+
* StateManager validateKey charset [A-Za-z0-9_-]).
|
|
88
|
+
*/
|
|
89
|
+
export declare function jailMachineIdForKey(machineId: string): string;
|
|
90
|
+
/**
|
|
91
|
+
* The per-machine kv key for SessionBuildContextStore (§3.3 / §9.12).
|
|
92
|
+
* `machineId` comes from the coordinator/mesh identity; installs with no mesh
|
|
93
|
+
* identity use the literal 'local' (no peers ⇒ no second writer ⇒ no fork).
|
|
94
|
+
*/
|
|
95
|
+
export declare function sessionBuildContextKeyFor(machineId: string | null | undefined): string;
|
|
96
|
+
export declare class WriteDomainRegistry {
|
|
97
|
+
private readonly ops;
|
|
98
|
+
private readonly kv;
|
|
99
|
+
private readonly routes;
|
|
100
|
+
/** Entries that failed I9 validation and were downgraded to cluster-shared. */
|
|
101
|
+
readonly refusedClassifications: RefusedClassification[];
|
|
102
|
+
/** Add an entry, enforcing I9. A machine-local entry failing the story
|
|
103
|
+
* validation is DOWNGRADED to cluster-shared (refused classification) —
|
|
104
|
+
* fail toward today, never silently machine-local. */
|
|
105
|
+
add(entry: WriteDomainEntry): void;
|
|
106
|
+
/**
|
|
107
|
+
* Resolve the domain for a StateManager op (I8: unclassified ⇒
|
|
108
|
+
* cluster-shared, today's exact guard). kv ops ('set'/'delete') resolve by
|
|
109
|
+
* EXACT key when one is supplied.
|
|
110
|
+
*/
|
|
111
|
+
entryForOp(op: string, key?: string): OpEntry | KvEntry | null;
|
|
112
|
+
domainForOp(op: string, key?: string): {
|
|
113
|
+
domain: WriteDomain;
|
|
114
|
+
entry: OpEntry | KvEntry | null;
|
|
115
|
+
};
|
|
116
|
+
/** Resolve a mutating HTTP route. null ⇒ unwired (today's exact behavior,
|
|
117
|
+
* lint-visible — I8). */
|
|
118
|
+
entryForRoute(method: string, routePath: string): RouteEntry | null;
|
|
119
|
+
/** All route entries (conformance-ratchet + observability reads). */
|
|
120
|
+
routeEntries(): readonly RouteEntry[];
|
|
121
|
+
kvKeys(): string[];
|
|
122
|
+
opNames(): string[];
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* Build the WAVE-1 registry (§3.1 initial classification + §3.5 wave-1 route
|
|
126
|
+
* wiring). ONE builder — the server wires THIS map and the tests assert
|
|
127
|
+
* against THIS map (the PR-#334 dead-code lesson: registry↔wiring identity).
|
|
128
|
+
*/
|
|
129
|
+
export declare function buildWriteDomainRegistry(opts: {
|
|
130
|
+
machineId: string | null;
|
|
131
|
+
}): WriteDomainRegistry;
|
|
132
|
+
//# sourceMappingURL=WriteDomainRegistry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WriteDomainRegistry.d.ts","sourceRoot":"","sources":["../../src/core/WriteDomainRegistry.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,186 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* WriteDomainRegistry — the single source of truth mapping every classified
|
|
3
|
+
* mutating surface (StateManager op names, exact kv keys, HTTP route prefixes)
|
|
4
|
+
* to its write DOMAIN + convergence story.
|
|
5
|
+
*
|
|
6
|
+
* Spec: docs/specs/standby-write-reconciliation.md §3.1 (taxonomy), §3.5
|
|
7
|
+
* (registry + conformance ratchet), invariants I8/I9.
|
|
8
|
+
*
|
|
9
|
+
* Design rules enforced HERE (not by review vigilance):
|
|
10
|
+
* - I8 Registry-or-legacy, never neither: an unclassified StateManager op or
|
|
11
|
+
* kv key resolves to `cluster-shared` — exactly today's blanket guard. An
|
|
12
|
+
* unwired route resolves to null (no admission wiring, today's behavior).
|
|
13
|
+
* - I9 No machine-local without a convergence story — on BOTH axes: a
|
|
14
|
+
* machine-local entry with no logical story, or one sitting on a git-synced
|
|
15
|
+
* shared path with no file-level arm (`per-machine-path` |
|
|
16
|
+
* `git-sync-excluded`), is REFUSED the classification and downgraded to
|
|
17
|
+
* `cluster-shared` (recorded in `refusedClassifications` so the Tier-1 test
|
|
18
|
+
* and the observability surface can see it).
|
|
19
|
+
* - kv classification is EXACT-KEY (§9.12) — no prefix matching in wave 1. A
|
|
20
|
+
* key whose contents mix domains is refused classification until the store
|
|
21
|
+
* is split or re-keyed (first instance: `session-build-context` re-keyed
|
|
22
|
+
* per machine; the LEGACY key stays cluster-shared).
|
|
23
|
+
* - Topic-scoped absent-window opt-in (§3.2 table exception, §9.18) is
|
|
24
|
+
* audited under the SAME story schema (I9).
|
|
25
|
+
*/
|
|
26
|
+
/**
|
|
27
|
+
* Wave-2 inventory gate (§3.5 ladder gate (a), §9.14): `dryRun:false` is
|
|
28
|
+
* REFUSED until the complete write-surface inventory is present in the
|
|
29
|
+
* registry (TODO-classify rows permitted; absent rows are not). This constant
|
|
30
|
+
* is the structural latch: WriteAdmission treats live mode as unreachable
|
|
31
|
+
* while it is false, no matter what config says. Flipped by the wave-2 PR
|
|
32
|
+
* that lands the reviewed inventory — never by config.
|
|
33
|
+
*/
|
|
34
|
+
export const WRITE_SURFACE_INVENTORY_COMPLETE = false;
|
|
35
|
+
function storyValid(story) {
|
|
36
|
+
if (!story)
|
|
37
|
+
return { ok: false, reason: 'no convergence story declared (I9 first axis)' };
|
|
38
|
+
if (story.onSharedGitSyncedPath && !story.fileLevel) {
|
|
39
|
+
return {
|
|
40
|
+
ok: false,
|
|
41
|
+
reason: 'store sits on a git-synced shared path but declares no file-level arm (I9 second axis: per-machine-path | git-sync-excluded)',
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
return { ok: true };
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Charset-jail a machine id for embedding in a kv key (mirrors the
|
|
48
|
+
* sessionFileName jail in LocalSessionOwnershipStore, tightened to the
|
|
49
|
+
* StateManager validateKey charset [A-Za-z0-9_-]).
|
|
50
|
+
*/
|
|
51
|
+
export function jailMachineIdForKey(machineId) {
|
|
52
|
+
return machineId.replace(/[^A-Za-z0-9_-]/g, '_');
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* The per-machine kv key for SessionBuildContextStore (§3.3 / §9.12).
|
|
56
|
+
* `machineId` comes from the coordinator/mesh identity; installs with no mesh
|
|
57
|
+
* identity use the literal 'local' (no peers ⇒ no second writer ⇒ no fork).
|
|
58
|
+
*/
|
|
59
|
+
export function sessionBuildContextKeyFor(machineId) {
|
|
60
|
+
const id = machineId && machineId.trim() ? jailMachineIdForKey(machineId) : 'local';
|
|
61
|
+
return `session-build-context-${id}`;
|
|
62
|
+
}
|
|
63
|
+
export class WriteDomainRegistry {
|
|
64
|
+
ops = new Map();
|
|
65
|
+
kv = new Map();
|
|
66
|
+
routes = [];
|
|
67
|
+
/** Entries that failed I9 validation and were downgraded to cluster-shared. */
|
|
68
|
+
refusedClassifications = [];
|
|
69
|
+
/** Add an entry, enforcing I9. A machine-local entry failing the story
|
|
70
|
+
* validation is DOWNGRADED to cluster-shared (refused classification) —
|
|
71
|
+
* fail toward today, never silently machine-local. */
|
|
72
|
+
add(entry) {
|
|
73
|
+
let effective = entry;
|
|
74
|
+
if (entry.domain === 'machine-local') {
|
|
75
|
+
const v = storyValid(entry.story);
|
|
76
|
+
if (!v.ok) {
|
|
77
|
+
this.refusedClassifications.push({ entry, reason: v.reason });
|
|
78
|
+
effective = { ...entry, domain: 'cluster-shared' };
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
// An absent-window opt-in on a scoped entry is audited under the same schema.
|
|
82
|
+
if ((entry.kind === 'kv' || entry.kind === 'route') && entry.absentWindowStory) {
|
|
83
|
+
const v = storyValid(entry.absentWindowStory);
|
|
84
|
+
if (!v.ok) {
|
|
85
|
+
this.refusedClassifications.push({ entry, reason: `absent-window story invalid: ${v.reason}` });
|
|
86
|
+
effective = { ...effective, absentWindowStory: undefined };
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
if (effective.kind === 'op')
|
|
90
|
+
this.ops.set(effective.op, effective);
|
|
91
|
+
else if (effective.kind === 'kv')
|
|
92
|
+
this.kv.set(effective.key, effective);
|
|
93
|
+
else
|
|
94
|
+
this.routes.push(effective);
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Resolve the domain for a StateManager op (I8: unclassified ⇒
|
|
98
|
+
* cluster-shared, today's exact guard). kv ops ('set'/'delete') resolve by
|
|
99
|
+
* EXACT key when one is supplied.
|
|
100
|
+
*/
|
|
101
|
+
entryForOp(op, key) {
|
|
102
|
+
if ((op === 'set' || op === 'delete') && key !== undefined) {
|
|
103
|
+
return this.kv.get(key) ?? null;
|
|
104
|
+
}
|
|
105
|
+
return this.ops.get(op) ?? null;
|
|
106
|
+
}
|
|
107
|
+
domainForOp(op, key) {
|
|
108
|
+
const entry = this.entryForOp(op, key);
|
|
109
|
+
return { domain: entry?.domain ?? 'cluster-shared', entry };
|
|
110
|
+
}
|
|
111
|
+
/** Resolve a mutating HTTP route. null ⇒ unwired (today's exact behavior,
|
|
112
|
+
* lint-visible — I8). */
|
|
113
|
+
entryForRoute(method, routePath) {
|
|
114
|
+
const m = method.toUpperCase();
|
|
115
|
+
for (const r of this.routes) {
|
|
116
|
+
if (r.method === m && routePath.startsWith(r.pathPrefix))
|
|
117
|
+
return r;
|
|
118
|
+
}
|
|
119
|
+
return null;
|
|
120
|
+
}
|
|
121
|
+
/** All route entries (conformance-ratchet + observability reads). */
|
|
122
|
+
routeEntries() {
|
|
123
|
+
return this.routes;
|
|
124
|
+
}
|
|
125
|
+
kvKeys() {
|
|
126
|
+
return [...this.kv.keys()];
|
|
127
|
+
}
|
|
128
|
+
opNames() {
|
|
129
|
+
return [...this.ops.keys()];
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
/**
|
|
133
|
+
* Build the WAVE-1 registry (§3.1 initial classification + §3.5 wave-1 route
|
|
134
|
+
* wiring). ONE builder — the server wires THIS map and the tests assert
|
|
135
|
+
* against THIS map (the PR-#334 dead-code lesson: registry↔wiring identity).
|
|
136
|
+
*/
|
|
137
|
+
export function buildWriteDomainRegistry(opts) {
|
|
138
|
+
const reg = new WriteDomainRegistry();
|
|
139
|
+
// ── Store seam: StateManager ops (§3.1 table) ──────────────────────────
|
|
140
|
+
// Today's `sessionScoped` carve-out generalizes into the session-scoped rule.
|
|
141
|
+
reg.add({ kind: 'op', op: 'saveSession', domain: 'session-scoped' });
|
|
142
|
+
reg.add({ kind: 'op', op: 'removeSession', domain: 'session-scoped' });
|
|
143
|
+
// Genuinely cluster-shared, single-writer = lease holder (byte-identical to today).
|
|
144
|
+
reg.add({ kind: 'op', op: 'saveJobState', domain: 'cluster-shared' });
|
|
145
|
+
reg.add({ kind: 'op', op: 'appendEvent', domain: 'cluster-shared' });
|
|
146
|
+
// kv `set`/`delete` default cluster-shared for unclassified keys (I8) — no
|
|
147
|
+
// op-level entry needed; exact-key entries below override per key.
|
|
148
|
+
// ── First kv entry: SessionBuildContextStore re-keyed per machine (§3.3) ──
|
|
149
|
+
// Convergence: per-machine key ⇒ single writer per file by construction;
|
|
150
|
+
// git-sync carries peers' copies inertly. The LEGACY shared key
|
|
151
|
+
// `session-build-context` is deliberately NOT classified — it stays
|
|
152
|
+
// cluster-shared (I8) and self-drains (6h max age) + one-time lease-holder
|
|
153
|
+
// cleanup.
|
|
154
|
+
reg.add({
|
|
155
|
+
kind: 'kv',
|
|
156
|
+
key: sessionBuildContextKeyFor(opts.machineId),
|
|
157
|
+
domain: 'machine-local',
|
|
158
|
+
story: {
|
|
159
|
+
logical: 'per-machine-path',
|
|
160
|
+
onSharedGitSyncedPath: true,
|
|
161
|
+
fileLevel: 'per-machine-path',
|
|
162
|
+
note: 'machine id embedded in the kv key — single writer per file; peers’ copies ride git-sync inertly',
|
|
163
|
+
},
|
|
164
|
+
});
|
|
165
|
+
// ── Route seam, wave 1: the P2-6 family (§3.5) ─────────────────────────
|
|
166
|
+
// Both families are machine-local ⇒ admit everywhere — the user-visible
|
|
167
|
+
// P2-6 fix. Stories per §3.1 + frontloaded decision §9.3.
|
|
168
|
+
const evolutionStory = {
|
|
169
|
+
logical: 'ws2x-replicated',
|
|
170
|
+
onSharedGitSyncedPath: true,
|
|
171
|
+
fileLevel: 'git-sync-excluded',
|
|
172
|
+
note: 'WS2.5 replication covers state/evolution/action-queue.json ONLY and is dark on the fleet (the fleet’s logical story today is honestly “none yet”); file-level arm shipped in FileClassifier sync exclusions (wave-1 build item)',
|
|
173
|
+
};
|
|
174
|
+
const attentionStory = {
|
|
175
|
+
logical: 'pool-scope-read-merge',
|
|
176
|
+
onSharedGitSyncedPath: true,
|
|
177
|
+
fileLevel: 'git-sync-excluded',
|
|
178
|
+
note: 'pool-scope GET merge + WS4.1 durable remote-ack; file-level arm shipped in FileClassifier sync exclusions (wave-1 build item)',
|
|
179
|
+
};
|
|
180
|
+
reg.add({ kind: 'route', method: 'POST', pathPrefix: '/evolution/', domain: 'machine-local', story: evolutionStory });
|
|
181
|
+
reg.add({ kind: 'route', method: 'PATCH', pathPrefix: '/evolution/', domain: 'machine-local', story: evolutionStory });
|
|
182
|
+
reg.add({ kind: 'route', method: 'POST', pathPrefix: '/attention', domain: 'machine-local', story: attentionStory });
|
|
183
|
+
reg.add({ kind: 'route', method: 'PATCH', pathPrefix: '/attention', domain: 'machine-local', story: attentionStory });
|
|
184
|
+
return reg;
|
|
185
|
+
}
|
|
186
|
+
//# sourceMappingURL=WriteDomainRegistry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WriteDomainRegistry.js","sourceRoot":"","sources":["../../src/core/WriteDomainRegistry.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"devGatedFeatures.d.ts","sourceRoot":"","sources":["../../src/core/devGatedFeatures.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,oEAAoE;AACpE,MAAM,WAAW,eAAe;IAC9B,mEAAmE;IACnE,IAAI,EAAE,MAAM,CAAC;IACb,uEAAuE;IACvE,UAAU,EAAE,MAAM,CAAC;IACnB,6DAA6D;IAC7D,WAAW,EAAE,MAAM,CAAC;IACpB;;;;;;OAMG;IACH,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,eAAO,MAAM,kBAAkB,EAAE,eAAe,
|
|
1
|
+
{"version":3,"file":"devGatedFeatures.d.ts","sourceRoot":"","sources":["../../src/core/devGatedFeatures.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,oEAAoE;AACpE,MAAM,WAAW,eAAe;IAC9B,mEAAmE;IACnE,IAAI,EAAE,MAAM,CAAC;IACb,uEAAuE;IACvE,UAAU,EAAE,MAAM,CAAC;IACnB,6DAA6D;IAC7D,WAAW,EAAE,MAAM,CAAC;IACpB;;;;;;OAMG;IACH,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,eAAO,MAAM,kBAAkB,EAAE,eAAe,EA0c/C,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAM,MAAM,gBAAgB,GACxB,aAAa,GACb,cAAc,GACd,gBAAgB,GAChB,sBAAsB,GACtB,iBAAiB,CAAC;AAEtB,MAAM,WAAW,iBAAiB;IAChC,uEAAuE;IACvE,UAAU,EAAE,MAAM,CAAC;IACnB,6CAA6C;IAC7C,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,mFAAmF;IACnF,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,eAAO,MAAM,oBAAoB,EAAE,iBAAiB,EAsJnD,CAAC;AAEF;;;GAGG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAO5E"}
|
|
@@ -180,6 +180,12 @@ export const DEV_GATED_FEATURES = [
|
|
|
180
180
|
description: 'WS3 one-voice gate — the SpeakerElection that gives a multi-machine conversation a single outbound voice (no double-replies across machines).',
|
|
181
181
|
justification: 'Coordinates between the operator\'s OWN machines only — no external egress; when dark/single-machine the election returns "speak" unconditionally (byte-for-byte today\'s behavior) and never engages below 2 online machines; a verdict only WITHHOLDS a duplicate send (the safe direction), never fabricates one. No destructive action, no third-party spend. Operator directive 2026-06-13 topic 13481.',
|
|
182
182
|
},
|
|
183
|
+
{
|
|
184
|
+
name: 'writeAdmission',
|
|
185
|
+
configPath: 'multiMachine.writeAdmission.enabled',
|
|
186
|
+
description: 'Standby-write reconciliation — ownership-scoped write admission + typed refusal (docs/specs/standby-write-reconciliation.md). Replaces the blanket lease-boolean standby guard with a per-domain, synchronous in-memory admission decision.',
|
|
187
|
+
justification: 'Ships dryRun:true even on dev (FD-7 telemetry pattern): the layer only EVALUATES and logs would-verdicts while the legacy blanket guard keeps enforcing — zero authority, zero behavior change, no egress, no spend. Refusal authority is double-latched behind dryRun:false AND the wave-2 inventory constant (WRITE_SURFACE_INVENTORY_COMPLETE, §9.14), so live-on-dev soak is observe-only by construction. Single-machine agents are a strict no-op (every domain admits).',
|
|
188
|
+
},
|
|
183
189
|
{
|
|
184
190
|
name: 'ws13Reconcile',
|
|
185
191
|
configPath: 'multiMachine.seamlessness.ws13Reconcile',
|
|
@@ -451,6 +457,12 @@ export const DEV_GATED_FEATURES = [
|
|
|
451
457
|
description: 'tmux Event-Loop Resilience (C) — the DegradedTmuxGuard: a signal-only watcher that raises ONE deduped agent-health Attention item when the shared tmux server is degraded (slow sync calls / event-loop stalls). NEVER kills the shared socket.',
|
|
452
458
|
justification: 'Observe-and-escalate only. Bounded by construction — a fixed-capacity O(1) modulo-write ring (never an unbounded array), load-gated (suppressed above a 1-min-load-per-core threshold so a busy multi-agent box does not false-fire) and N-cycle corroborated before any escalation. Signal vs Authority: the ONLY automated action is ONE deduped, NORMAL-priority agent-health Attention item; any actual tmux refresh is an explicit operator Y/N, never auto-performed. Registered in GUARD_MANIFEST with a pure in-memory getter (no I/O on the guard-status read). No spend, no egress beyond the operator-facing dedup line, no destructive action.',
|
|
453
459
|
},
|
|
460
|
+
{
|
|
461
|
+
name: 'swapContinuity',
|
|
462
|
+
configPath: 'subscriptionPool.swapContinuity.enabled',
|
|
463
|
+
description: 'Swap-continuity in-flight work gate (swap-continuity-antithrash §4) — every session-killing mutation (proactive/reactive account swap, agent/API refresh) consults the SwapWorkGate at the SessionRefresh funnel: a proactive swap DEFERS over in-flight work (ceiling-dropped, never forced), a reactive swap gets a bounded ≤120s grace then proceeds WITH the F3 mitigations (enumerated killed subagents + re-injected unanswered inbound), an interactive refresh gets a structured session-busy refusal + force.',
|
|
464
|
+
justification: 'Ships dryRun:true (the dry-run canary): on a dev agent the gate probes and LOGS every would-defer/would-refuse/would-mitigate verdict but changes NOTHING — every refresh kills exactly as today until a deliberate dryRun:false. The gate itself is deterministic structural-state math (pane footer / child process / subagent registry — Tier 0, no LLM), bounded on every edge (30-min deferral ceiling, 120-s reactive grace, force override, recovery-class exemption), and its uncertainty direction only ever DELAYS an optimization — it can never kill work, spend, or egress. Same dogfooding posture as topicProfiles / agentOwnedFollowthrough.',
|
|
465
|
+
},
|
|
454
466
|
];
|
|
455
467
|
export const DARK_GATE_EXCLUSIONS = [
|
|
456
468
|
// ── destructive — kills/deletes on a heuristic; off + dry-run for EVERYONE ──
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"devGatedFeatures.js","sourceRoot":"","sources":["../../src/core/devGatedFeatures.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"devGatedFeatures.js","sourceRoot":"","sources":["../../src/core/devGatedFeatures.ts"],"names":[],"mappings":"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"}
|
package/dist/core/types.d.ts
CHANGED
|
@@ -2212,6 +2212,17 @@ export interface MultiMachineConfig {
|
|
|
2212
2212
|
* the single-awake seamlessness model above; a 1-machine agent is a no-op.
|
|
2213
2213
|
*/
|
|
2214
2214
|
sessionPool?: SessionPoolConfig;
|
|
2215
|
+
/**
|
|
2216
|
+
* Standby-Write Reconciliation + Typed Refusal
|
|
2217
|
+
* (docs/specs/standby-write-reconciliation.md §7): ownership-scoped write
|
|
2218
|
+
* admission replacing the blanket lease-boolean standby guard. Dev-gated
|
|
2219
|
+
* dark (`enabled` OMITTED from defaults → resolveDevAgentGate) and dry-run
|
|
2220
|
+
* FIRST: while `dryRun` is true the layer only evaluates + logs
|
|
2221
|
+
* would-verdicts and the LEGACY blanket guard keeps enforcing (§9.6).
|
|
2222
|
+
* Refusal authority additionally requires the wave-2 write-surface
|
|
2223
|
+
* inventory latch (WRITE_SURFACE_INVENTORY_COMPLETE, §9.14).
|
|
2224
|
+
*/
|
|
2225
|
+
writeAdmission?: WriteAdmissionConfig;
|
|
2215
2226
|
/**
|
|
2216
2227
|
* Cross-machine secret-sync (spec Phase 4): a secret given to the agent on one
|
|
2217
2228
|
* machine becomes usable on its other machines automatically (encrypted to the
|
|
@@ -2538,6 +2549,21 @@ export interface CoherenceJournalUserConfig {
|
|
|
2538
2549
|
* later layers (placement, transfer, registry, clock-skew) are added to this
|
|
2539
2550
|
* interface by their tracks as they land.
|
|
2540
2551
|
*/
|
|
2552
|
+
/**
|
|
2553
|
+
* Standby-Write Reconciliation config (docs/specs/standby-write-reconciliation.md §7).
|
|
2554
|
+
*/
|
|
2555
|
+
export interface WriteAdmissionConfig {
|
|
2556
|
+
/** OMITTED by default → resolveDevAgentGate: LIVE on a development agent,
|
|
2557
|
+
* DARK on the fleet (house Maturation Path). */
|
|
2558
|
+
enabled?: boolean;
|
|
2559
|
+
/** Dry-run FIRST even on dev (FD-7 telemetry pattern). Default true. While
|
|
2560
|
+
* true, the legacy blanket guard keeps enforcing; the new layer only logs
|
|
2561
|
+
* would-verdicts (§9.6). */
|
|
2562
|
+
dryRun?: boolean;
|
|
2563
|
+
/** ≥N refusals of one (route/op, code) within the window ⇒ ONE deduped
|
|
2564
|
+
* aggregate attention item (§6 — never per-event). Default 5. */
|
|
2565
|
+
refusalAggregateThreshold?: number;
|
|
2566
|
+
}
|
|
2541
2567
|
export interface SessionPoolConfig {
|
|
2542
2568
|
/** Master switch. Default false — the entire session-pool layer is inert when false. */
|
|
2543
2569
|
enabled?: boolean;
|
|
@@ -3382,10 +3408,72 @@ export interface InstarConfig {
|
|
|
3382
3408
|
watchMarginPct?: number;
|
|
3383
3409
|
/** Max sessions swapped per evaluation cycle (storm guard). Default 3. */
|
|
3384
3410
|
maxSwapsPerCycle?: number;
|
|
3385
|
-
/** Per-session cooldown (ms) after a successful swap. Default 600000 (10m).
|
|
3411
|
+
/** Per-session cooldown (ms) after a successful swap. Default 600000 (10m).
|
|
3412
|
+
* SUBSUMED by antiThrash.dwellMs when the brakes are live (kept working
|
|
3413
|
+
* for back-compat while antiThrash is dark/dry-run — spec §9). */
|
|
3386
3414
|
cooldownMs?: number;
|
|
3387
3415
|
/** Monitor tick cadence (ms). Default 180000 (3m). */
|
|
3388
3416
|
tickMs?: number;
|
|
3417
|
+
/**
|
|
3418
|
+
* swap-continuity-antithrash §3/§7 — anti-thrash brakes on the proactive
|
|
3419
|
+
* swap. An ABSENT block resolves `enabled:true, dryRun:true` (dry-run
|
|
3420
|
+
* ledger rows, zero decision change) on any install that opted into
|
|
3421
|
+
* proactiveSwap — the soak is the default, never a silent skip. All
|
|
3422
|
+
* knobs read LIVE per tick (§7.1). All numeric reads use `??` (zero is
|
|
3423
|
+
* a legal disable for several).
|
|
3424
|
+
*/
|
|
3425
|
+
antiThrash?: {
|
|
3426
|
+
/** Brakes bind decisions when true AND dryRun false. Default true. */
|
|
3427
|
+
enabled?: boolean;
|
|
3428
|
+
/** Log would-refuse/would-defer rows, change nothing. Default true. */
|
|
3429
|
+
dryRun?: boolean;
|
|
3430
|
+
/** Target ceiling = thresholdPct − this (default 15 → ceiling 65%). */
|
|
3431
|
+
targetHeadroomPct?: number;
|
|
3432
|
+
/** source − target must be ≥ this many points (default 15). */
|
|
3433
|
+
minImprovementPct?: number;
|
|
3434
|
+
/** Per-session dwell after ANY account swap (default 2700000 = 45m). */
|
|
3435
|
+
dwellMs?: number;
|
|
3436
|
+
/** Reversal-detection window (default 1800000 = 30m). */
|
|
3437
|
+
reversalWindowMs?: number;
|
|
3438
|
+
/** T1: inversion-class increments within reversalWindowMs (default 2). */
|
|
3439
|
+
thrashBreakerThreshold?: number;
|
|
3440
|
+
/** Breaker suppression backoff (default 3600000 = 1h). */
|
|
3441
|
+
thrashBreakerBackoffMs?: number;
|
|
3442
|
+
/** T2 rotation detector: N proactive executions of one session… (default 3) */
|
|
3443
|
+
swapFrequencyThreshold?: number;
|
|
3444
|
+
/** …within this window (default 10800000 = 3h) opens the breaker. */
|
|
3445
|
+
swapFrequencyWindowMs?: number;
|
|
3446
|
+
/** all-hot / breaker heartbeat-row cadence (default 1800000 = 30m). */
|
|
3447
|
+
allHotHeartbeatMs?: number;
|
|
3448
|
+
/** Reactive hops per session per reversalWindowMs → ONE alert (default 2). */
|
|
3449
|
+
reactiveHopAlertThreshold?: number;
|
|
3450
|
+
/** §3.3 bound 0: a reading older than this is not a measurement
|
|
3451
|
+
* (default 1800000 = 30m — 2× the quota poller's 15-min cadence). */
|
|
3452
|
+
quotaFreshnessMs?: number;
|
|
3453
|
+
};
|
|
3454
|
+
};
|
|
3455
|
+
/**
|
|
3456
|
+
* swap-continuity-antithrash §4/§7 — Piece 2 (the in-flight work gate for
|
|
3457
|
+
* every session-killing mutation). The `enabled` KEY IS OMITTED from the
|
|
3458
|
+
* shipped config ON PURPOSE — omission routes it through the dev-agent
|
|
3459
|
+
* gate (live on a development agent, dark on the fleet); an explicit
|
|
3460
|
+
* `enabled: false` would pin it dark EVERYWHERE including dev (the #1001
|
|
3461
|
+
* anti-mechanism). `enabled` is restart-required (§7.1 — the gate wiring
|
|
3462
|
+
* into SessionRefresh is constructor-injected); dryRun + numeric knobs
|
|
3463
|
+
* are read live per evaluation.
|
|
3464
|
+
*/
|
|
3465
|
+
swapContinuity?: {
|
|
3466
|
+
enabled?: boolean;
|
|
3467
|
+
/** Log would-defer/would-mitigate, change nothing. Default true. */
|
|
3468
|
+
dryRun?: boolean;
|
|
3469
|
+
/** Proactive deferral ceiling (default 1800000 = 30m) — at the ceiling
|
|
3470
|
+
* the intent is DROPPED (the wall wins; the reactive floor exists). */
|
|
3471
|
+
deferralCeilingMs?: number;
|
|
3472
|
+
/** Reactive grace bound (default 120000 = 2m) — the swap proceeds at
|
|
3473
|
+
* the FIRST not-busy observation, and always at the deadline. */
|
|
3474
|
+
reactiveGraceMs?: number;
|
|
3475
|
+
/** Busy re-check cadence inside a grace window (default 10000). */
|
|
3476
|
+
recheckMs?: number;
|
|
3389
3477
|
};
|
|
3390
3478
|
/** P2.1 enrollment wizard knobs (all optional). */
|
|
3391
3479
|
enrollment?: {
|