@sentropic/h2a 0.97.8 → 0.97.10
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/.claude-plugin/plugin.json +1 -1
- package/.codex-plugin/plugin.json +1 -1
- package/dist/runtime/local-files/succession-lock.d.ts +162 -0
- package/dist/runtime/local-files/succession-lock.d.ts.map +1 -0
- package/dist/runtime/local-files/succession-lock.js +777 -0
- package/dist/runtime/local-files/succession-lock.js.map +1 -0
- package/dist/runtime/mcp/identity-state.d.ts +23 -1
- package/dist/runtime/mcp/identity-state.d.ts.map +1 -1
- package/dist/runtime/mcp/identity-state.js +75 -16
- package/dist/runtime/mcp/identity-state.js.map +1 -1
- package/dist/runtime/mcp/server.d.ts.map +1 -1
- package/dist/runtime/mcp/server.js +27 -7
- package/dist/runtime/mcp/server.js.map +1 -1
- package/dist/runtime/mcp/tools.d.ts.map +1 -1
- package/dist/runtime/mcp/tools.js +5 -2
- package/dist/runtime/mcp/tools.js.map +1 -1
- package/dist/runtime/upgrade/index.d.ts +4 -98
- package/dist/runtime/upgrade/index.d.ts.map +1 -1
- package/dist/runtime/upgrade/index.js +8 -760
- package/dist/runtime/upgrade/index.js.map +1 -1
- package/package.json +3 -3
|
@@ -26,7 +26,7 @@
|
|
|
26
26
|
* atomic publication via `link(2)` (I1), a no-false-positive liveness predicate
|
|
27
27
|
* (I3), a one-shot `SUCC(t)` succession chain (Lemmas B/C), token monotonicity
|
|
28
28
|
* (I2). No age or mtime ever decides acquisition — `at` is diagnostic only
|
|
29
|
-
* (I7). See
|
|
29
|
+
* (I7). See `../local-files/succession-lock.ts`.
|
|
30
30
|
*/
|
|
31
31
|
export declare const H2A_CLI_PACKAGE = "@sentropic/h2a";
|
|
32
32
|
/** Re-check at most once per this window for the passive `--upgrade-check` notice. */
|
|
@@ -136,102 +136,9 @@ export interface UpgradeRuntime {
|
|
|
136
136
|
/** Bounded per-attempt diagnostics file. */
|
|
137
137
|
writeDiagnostics?(path: string, record: UpgradeDiagnosticsRecord): void;
|
|
138
138
|
}
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
* that whose holder reads "live" ONLY for want of a comparable start time is worth
|
|
143
|
-
* surfacing (a reused PID may be masking a dead holder). Set well above any legitimate
|
|
144
|
-
* hold. It NEVER triggers a reclaim — purely diagnostic (I7: `at` informs, never decides).
|
|
145
|
-
*/
|
|
146
|
-
export declare const STALE_LOCK_ALERT_MS: number;
|
|
147
|
-
/** Acquire rounds before giving up (a retry means a rival won meanwhile). */
|
|
148
|
-
export declare const PREFIX_LOCK_MAX_ROUNDS = 3;
|
|
149
|
-
/** Succession chain depth before failing closed with a diagnostic. */
|
|
150
|
-
export declare const PREFIX_LOCK_MAX_CHAIN = 8;
|
|
151
|
-
/** Holder-only GC age for abandoned TMP files (debris, never a decision). */
|
|
152
|
-
export declare const PREFIX_LOCK_TMP_DEBRIS_MAX_AGE_MS: number;
|
|
153
|
-
/** Fallback age for the residue sweep when no owner can be identified. */
|
|
154
|
-
export declare const UPGRADE_RESIDUE_MAX_AGE_MS: number;
|
|
155
|
-
/** Why acquisition failed: live holder, undecidable owner, or an OS error. */
|
|
156
|
-
export type PrefixLockReason = "busy" | "dead-undecidable" | `error:${string}`;
|
|
157
|
-
/** Lease on the global prefix. `token` is present only when acquired. */
|
|
158
|
-
export interface PrefixLockLease {
|
|
159
|
-
readonly acquired: boolean;
|
|
160
|
-
release(): void;
|
|
161
|
-
readonly reason?: PrefixLockReason;
|
|
162
|
-
/** Winning token; present only when acquired. Never republished (I2). */
|
|
163
|
-
readonly token?: string;
|
|
164
|
-
}
|
|
165
|
-
/** Observation window for one deterministic-test hook invocation. */
|
|
166
|
-
export interface PrefixLockHookContext {
|
|
167
|
-
readonly prefix: string;
|
|
168
|
-
readonly lockPath: string;
|
|
169
|
-
/** File the window is about: LOCK for publish/unlink, SUCC(t) after election. */
|
|
170
|
-
readonly path: string;
|
|
171
|
-
/** Our fresh token being published (or held). */
|
|
172
|
-
readonly token?: string;
|
|
173
|
-
/** Succession target g (afterPublishSucc / retire windows). */
|
|
174
|
-
readonly target?: string;
|
|
175
|
-
readonly round: number;
|
|
176
|
-
readonly depth: number;
|
|
177
|
-
}
|
|
178
|
-
/**
|
|
179
|
-
* Critical-section hooks for deterministic tests ONLY. Passed as the 2nd
|
|
180
|
-
* argument of `acquirePrefixLock(prefix, hooks)` by the test; never enabled
|
|
181
|
-
* via environment or configuration (there is no env/config reader for them),
|
|
182
|
-
* and production calls without hooks so every hook is a no-op at zero cost.
|
|
183
|
-
*/
|
|
184
|
-
export interface PrefixLockHooks {
|
|
185
|
-
/** Just BEFORE the initial publish(LOCK) (round 0) — initial race window. */
|
|
186
|
-
readonly beforePublishLock?: (ctx: PrefixLockHookContext) => void;
|
|
187
|
-
/** Just AFTER a publish(SUCC(t)) success, BEFORE retire — unique successor elected. */
|
|
188
|
-
readonly afterPublishSucc?: (ctx: PrefixLockHookContext) => void;
|
|
189
|
-
/** In retire(), around the targeted unlink(LOCK) (removal-to-republish window). */
|
|
190
|
-
readonly beforeRetireUnlink?: (ctx: PrefixLockHookContext) => void;
|
|
191
|
-
readonly afterRetireUnlink?: (ctx: PrefixLockHookContext) => void;
|
|
192
|
-
}
|
|
193
|
-
interface LockIdent {
|
|
194
|
-
readonly host: string;
|
|
195
|
-
readonly boot: string | null;
|
|
196
|
-
readonly ns: string | null;
|
|
197
|
-
/** Reader's time namespace; gates proc-sourced start comparisons (B2). */
|
|
198
|
-
readonly timeNs: string | null;
|
|
199
|
-
readonly pid: number;
|
|
200
|
-
readonly start: string | null;
|
|
201
|
-
}
|
|
202
|
-
interface LockRec extends LockIdent {
|
|
203
|
-
readonly token: string;
|
|
204
|
-
readonly target?: string;
|
|
205
|
-
/** Diagnostic only, never decides (I7). */
|
|
206
|
-
readonly at: number;
|
|
207
|
-
}
|
|
208
|
-
export declare function readPidNs(platform?: NodeJS.Platform, readLink?: (p: string) => string): string | null;
|
|
209
|
-
export declare function readTimeNs(platform?: NodeJS.Platform, readLink?: (p: string) => string): string | null;
|
|
210
|
-
/**
|
|
211
|
-
* Process start identity, prefixed by its source ("proc:" from Linux /proc
|
|
212
|
-
* field 22, "ps:" from `ps lstart`). The prefix is part of the stored value
|
|
213
|
-
* so a reader using a different source never concludes "dead" from a
|
|
214
|
-
* format/TZ-fragile comparison (C1).
|
|
215
|
-
*/
|
|
216
|
-
export declare function procStartInfo(pid: number, platform?: NodeJS.Platform, mapsToSelf?: () => boolean): {
|
|
217
|
-
state?: string;
|
|
218
|
-
start?: string;
|
|
219
|
-
} | undefined;
|
|
220
|
-
interface SelfIdent extends LockIdent {
|
|
221
|
-
readonly pid: number;
|
|
222
|
-
}
|
|
223
|
-
type Liveness = "dead" | "live" | "undecidable";
|
|
224
|
-
/** Injected only by tests (platform / start-probe sims); production passes none. */
|
|
225
|
-
interface LivenessDeps {
|
|
226
|
-
readonly platform?: NodeJS.Platform;
|
|
227
|
-
readonly probe?: (pid: number) => {
|
|
228
|
-
state?: string;
|
|
229
|
-
start?: string;
|
|
230
|
-
} | undefined;
|
|
231
|
-
}
|
|
232
|
-
export declare function livenessOf(r: LockRec, self: SelfIdent, deps?: LivenessDeps): Liveness;
|
|
233
|
-
/** opus `acquirePrefixLock`, plus M5 reasons and test-only critical hooks. */
|
|
234
|
-
export declare function acquirePrefixLock(prefix: string, hooks?: PrefixLockHooks): PrefixLockLease;
|
|
139
|
+
export { STALE_LOCK_ALERT_MS, PREFIX_LOCK_MAX_ROUNDS, PREFIX_LOCK_MAX_CHAIN, PREFIX_LOCK_TMP_DEBRIS_MAX_AGE_MS, UPGRADE_RESIDUE_MAX_AGE_MS, readPidNs, readTimeNs, procStartInfo, livenessOf, acquirePrefixLock } from "../local-files/succession-lock.js";
|
|
140
|
+
export type { PrefixLockReason, PrefixLockLease, PrefixLockHookContext, PrefixLockHooks } from "../local-files/succession-lock.js";
|
|
141
|
+
import type { PrefixLockHooks, PrefixLockLease } from "../local-files/succession-lock.js";
|
|
235
142
|
/**
|
|
236
143
|
* Boot outcomes that stay QUIET so a mass restart does not spam stderr. Everything else —
|
|
237
144
|
* `upgraded`/`failed`/`deferred-propagation`, and critically `blocked-undecidable` (M-2) and
|
|
@@ -328,5 +235,4 @@ export declare function performAutoUpgrade(current: string, options?: {
|
|
|
328
235
|
readonly ttlMs?: number;
|
|
329
236
|
readonly prefix?: string;
|
|
330
237
|
}): AutoUpgradeResult;
|
|
331
|
-
export {};
|
|
332
238
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/runtime/upgrade/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/runtime/upgrade/index.ts"],"names":[],"mappings":"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"}
|