nawabari 0.2.0 → 0.4.1
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 +230 -15
- package/dist/cli.d.ts +5 -0
- package/dist/cli.js +704 -115
- package/dist/cli.js.map +1 -1
- package/dist/contract.js +135 -2
- package/dist/contract.js.map +1 -1
- package/dist/domain/errors.d.ts +1 -1
- package/dist/domain/errors.js +4 -1
- package/dist/domain/errors.js.map +1 -1
- package/dist/domain/sandbox-launcher.d.ts +35 -0
- package/dist/domain/sandbox-launcher.js +679 -0
- package/dist/domain/sandbox-launcher.js.map +1 -0
- package/dist/domain/sandbox.d.ts +190 -0
- package/dist/domain/sandbox.js +363 -0
- package/dist/domain/sandbox.js.map +1 -0
- package/dist/domain/session-backend.d.ts +5 -3
- package/dist/domain/session-backend.js +102 -4
- package/dist/domain/session-backend.js.map +1 -1
- package/dist/domain/session.d.ts +116 -2
- package/dist/domain/session.js +36 -0
- package/dist/domain/session.js.map +1 -1
- package/dist/errors.d.ts +1 -1
- package/dist/errors.js.map +1 -1
- package/dist/git.d.ts +62 -0
- package/dist/git.js +299 -0
- package/dist/git.js.map +1 -1
- package/dist/operation-authorization.d.ts +5 -2
- package/dist/operation-authorization.js +6 -7
- package/dist/operation-authorization.js.map +1 -1
- package/dist/output-budget.d.ts +16 -0
- package/dist/output-budget.js +58 -0
- package/dist/output-budget.js.map +1 -0
- package/dist/presentation.js +28 -4
- package/dist/presentation.js.map +1 -1
- package/dist/registry/atomic.d.ts +24 -0
- package/dist/registry/atomic.js +35 -2
- package/dist/registry/atomic.js.map +1 -1
- package/dist/registry/errors.d.ts +1 -1
- package/dist/registry/errors.js +1 -0
- package/dist/registry/errors.js.map +1 -1
- package/dist/repository-evidence.d.ts +74 -0
- package/dist/repository-evidence.js +7 -0
- package/dist/repository-evidence.js.map +1 -0
- package/dist/resource-claims.d.ts +25 -3
- package/dist/resource-claims.js +57 -5
- package/dist/resource-claims.js.map +1 -1
- package/dist/session-registry.d.ts +68 -7
- package/dist/session-registry.js +422 -149
- package/dist/session-registry.js.map +1 -1
- package/package.json +5 -3
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { RegistryError } from "./errors.js";
|
|
1
2
|
export interface AtomicWritePaths {
|
|
2
3
|
temporaryPath: string;
|
|
3
4
|
targetPath: string;
|
|
@@ -10,6 +11,29 @@ export interface AtomicWriteOptions {
|
|
|
10
11
|
ensureParent?: boolean;
|
|
11
12
|
hooks?: AtomicWriteHooks;
|
|
12
13
|
}
|
|
14
|
+
/**
|
|
15
|
+
* A failure observed after the target file was already renamed into place.
|
|
16
|
+
* Callers must not read this as "the write succeeded" — durability past
|
|
17
|
+
* that point is unproven — but they must also not treat it as an ordinary
|
|
18
|
+
* pre-effect failure: the renamed document may already be the one readers
|
|
19
|
+
* observe. `cause` always carries the original thrown value verbatim
|
|
20
|
+
* (whatever it was — an Error, a frozen object, a primitive), since a
|
|
21
|
+
* classification that depended on mutating or reading properties off the
|
|
22
|
+
* original thrown value would silently fail for values that reject writes
|
|
23
|
+
* (frozen/non-extensible objects) or carry no properties at all
|
|
24
|
+
* (primitives). Wrapping in a fresh, always-extensible error is fail-safe
|
|
25
|
+
* regardless of what the underlying I/O call happened to throw.
|
|
26
|
+
*/
|
|
27
|
+
export declare class AtomicWritePostRenameFailure extends RegistryError {
|
|
28
|
+
constructor(paths: AtomicWritePaths, cause: unknown);
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* True when `writeJsonAtomically`/`writeJsonAtomicallySync` failed only
|
|
32
|
+
* after the rename had already committed the new document. Recovery must
|
|
33
|
+
* reconcile authoritative state instead of assuming the mutation never
|
|
34
|
+
* happened.
|
|
35
|
+
*/
|
|
36
|
+
export declare function isPostRenameFailure(error: unknown): error is AtomicWritePostRenameFailure;
|
|
13
37
|
/**
|
|
14
38
|
* Persist JSON by writing and syncing a same-directory temporary file, then
|
|
15
39
|
* replacing the target with rename. Readers therefore observe either the
|
package/dist/registry/atomic.js
CHANGED
|
@@ -14,6 +14,37 @@ function isUnsupportedDirectorySync(error) {
|
|
|
14
14
|
const code = errorCode(error);
|
|
15
15
|
return code === "EINVAL" || code === "ENOTSUP" || code === "EISDIR";
|
|
16
16
|
}
|
|
17
|
+
/**
|
|
18
|
+
* A failure observed after the target file was already renamed into place.
|
|
19
|
+
* Callers must not read this as "the write succeeded" — durability past
|
|
20
|
+
* that point is unproven — but they must also not treat it as an ordinary
|
|
21
|
+
* pre-effect failure: the renamed document may already be the one readers
|
|
22
|
+
* observe. `cause` always carries the original thrown value verbatim
|
|
23
|
+
* (whatever it was — an Error, a frozen object, a primitive), since a
|
|
24
|
+
* classification that depended on mutating or reading properties off the
|
|
25
|
+
* original thrown value would silently fail for values that reject writes
|
|
26
|
+
* (frozen/non-extensible objects) or carry no properties at all
|
|
27
|
+
* (primitives). Wrapping in a fresh, always-extensible error is fail-safe
|
|
28
|
+
* regardless of what the underlying I/O call happened to throw.
|
|
29
|
+
*/
|
|
30
|
+
export class AtomicWritePostRenameFailure extends RegistryError {
|
|
31
|
+
constructor(paths, cause) {
|
|
32
|
+
super("REGISTRY_DURABILITY_UNCERTAIN", `Rename to ${paths.targetPath} may have already committed, but durable persistence past that point could not be proven`, { ...paths }, { cause });
|
|
33
|
+
this.name = "AtomicWritePostRenameFailure";
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
function toPostRenameFailure(error, paths) {
|
|
37
|
+
return new AtomicWritePostRenameFailure(paths, error);
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* True when `writeJsonAtomically`/`writeJsonAtomicallySync` failed only
|
|
41
|
+
* after the rename had already committed the new document. Recovery must
|
|
42
|
+
* reconcile authoritative state instead of assuming the mutation never
|
|
43
|
+
* happened.
|
|
44
|
+
*/
|
|
45
|
+
export function isPostRenameFailure(error) {
|
|
46
|
+
return error instanceof AtomicWritePostRenameFailure;
|
|
47
|
+
}
|
|
17
48
|
async function syncDirectory(directory) {
|
|
18
49
|
let handle;
|
|
19
50
|
try {
|
|
@@ -86,8 +117,9 @@ export async function writeJsonAtomically(targetPath, value, options = {}) {
|
|
|
86
117
|
}
|
|
87
118
|
if (!renamed) {
|
|
88
119
|
await rm(temporaryPath, { force: true });
|
|
120
|
+
throw error;
|
|
89
121
|
}
|
|
90
|
-
throw error;
|
|
122
|
+
throw toPostRenameFailure(error, { temporaryPath, targetPath });
|
|
91
123
|
}
|
|
92
124
|
}
|
|
93
125
|
/** Synchronous counterpart used by the legacy synchronous registry boundary. */
|
|
@@ -121,8 +153,9 @@ export function writeJsonAtomicallySync(targetPath, value, options = {}) {
|
|
|
121
153
|
}
|
|
122
154
|
if (!renamed) {
|
|
123
155
|
fs.rmSync(temporaryPath, { force: true });
|
|
156
|
+
throw error;
|
|
124
157
|
}
|
|
125
|
-
throw error;
|
|
158
|
+
throw toPostRenameFailure(error, { temporaryPath, targetPath });
|
|
126
159
|
}
|
|
127
160
|
}
|
|
128
161
|
//# sourceMappingURL=atomic.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"atomic.js","sourceRoot":"","sources":["../../src/registry/atomic.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"atomic.js","sourceRoot":"","sources":["../../src/registry/atomic.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,kBAAkB,CAAC;AAE3D,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEpD,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAiB5C,SAAS,SAAS,CAAC,KAAc;IAC/B,IAAI,CAAC,CAAC,KAAK,YAAY,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,EAAE,CAAC;QACpD,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;IACxB,OAAO,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;AACrD,CAAC;AAED,SAAS,0BAA0B,CAAC,KAAc;IAChD,MAAM,IAAI,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC;IAC9B,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,QAAQ,CAAC;AACtE,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,OAAO,4BAA6B,SAAQ,aAAa;IAC7D,YAAmB,KAAuB,EAAE,KAAc;QACxD,KAAK,CACH,+BAA+B,EAC/B,aAAa,KAAK,CAAC,UAAU,0FAA0F,EACvH,EAAE,GAAG,KAAK,EAAE,EACZ,EAAE,KAAK,EAAE,CACV,CAAC;QACF,IAAI,CAAC,IAAI,GAAG,8BAA8B,CAAC;IAC7C,CAAC;CACF;AAED,SAAS,mBAAmB,CAAC,KAAc,EAAE,KAAuB;IAClE,OAAO,IAAI,4BAA4B,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;AACxD,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,mBAAmB,CAAC,KAAc;IAChD,OAAO,KAAK,YAAY,4BAA4B,CAAC;AACvD,CAAC;AAED,KAAK,UAAU,aAAa,CAAC,SAAiB;IAC5C,IAAI,MAA8B,CAAC;IACnC,IAAI,CAAC;QACH,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;QACpC,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;IACtB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,CAAC,0BAA0B,CAAC,KAAK,CAAC,EAAE,CAAC;YACvC,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;YAAS,CAAC;QACT,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACzB,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;QACvB,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAS,iBAAiB,CAAC,SAAiB;IAC1C,IAAI,UAA8B,CAAC;IACnC,IAAI,CAAC;QACH,UAAU,GAAG,EAAE,CAAC,QAAQ,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;QACzC,EAAE,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;IAC3B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,CAAC,0BAA0B,CAAC,KAAK,CAAC,EAAE,CAAC;YACvC,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;YAAS,CAAC;QACT,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;YAC7B,EAAE,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;QAC3B,CAAC;IACH,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,UAAkB,EAClB,KAAc,EACd,UAA8B,EAAE;IAEhC,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IACtC,IAAI,OAAO,CAAC,YAAY,KAAK,KAAK,EAAE,CAAC;QACnC,MAAM,KAAK,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IAC3D,CAAC;IAED,MAAM,aAAa,GAAG,IAAI,CAAC,SAAS,EAAE,IAAI,QAAQ,CAAC,UAAU,CAAC,IAAI,OAAO,CAAC,GAAG,IAAI,UAAU,EAAE,MAAM,CAAC,CAAC;IACrG,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IAClD,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;QAC7B,MAAM,IAAI,aAAa,CAAC,mBAAmB,EAAE,iCAAiC,EAAE;YAC9E,UAAU;SACX,CAAC,CAAC;IACL,CAAC;IAED,IAAI,MAA8B,CAAC;IACnC,IAAI,OAAO,GAAG,KAAK,CAAC;IACpB,IAAI,CAAC;QACH,MAAM,GAAG,MAAM,IAAI,CAAC,aAAa,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;QAChD,MAAM,MAAM,CAAC,SAAS,CAAC,GAAG,UAAU,IAAI,EAAE,MAAM,CAAC,CAAC;QAClD,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;QACpB,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;QACrB,MAAM,GAAG,SAAS,CAAC;QAEnB,MAAM,KAAK,GAAG,EAAE,aAAa,EAAE,UAAU,EAAE,CAAC;QAC5C,MAAM,OAAO,CAAC,KAAK,EAAE,YAAY,EAAE,CAAC,KAAK,CAAC,CAAC;QAC3C,MAAM,MAAM,CAAC,aAAa,EAAE,UAAU,CAAC,CAAC;QACxC,OAAO,GAAG,IAAI,CAAC;QACf,MAAM,aAAa,CAAC,SAAS,CAAC,CAAC;QAC/B,MAAM,OAAO,CAAC,KAAK,EAAE,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC;IAC5C,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACzB,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;QACvB,CAAC;QACD,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,EAAE,CAAC,aAAa,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YACzC,MAAM,KAAK,CAAC;QACd,CAAC;QACD,MAAM,mBAAmB,CAAC,KAAK,EAAE,EAAE,aAAa,EAAE,UAAU,EAAE,CAAC,CAAC;IAClE,CAAC;AACH,CAAC;AAED,gFAAgF;AAChF,MAAM,UAAU,uBAAuB,CACrC,UAAkB,EAClB,KAAc,EACd,UAAoD,EAAE;IAEtD,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IACtC,IAAI,OAAO,CAAC,YAAY,KAAK,KAAK,EAAE,CAAC;QACnC,EAAE,CAAC,SAAS,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IAC5D,CAAC;IAED,MAAM,aAAa,GAAG,IAAI,CAAC,SAAS,EAAE,IAAI,QAAQ,CAAC,UAAU,CAAC,IAAI,OAAO,CAAC,GAAG,IAAI,UAAU,EAAE,MAAM,CAAC,CAAC;IACrG,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IAClD,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;QAC7B,MAAM,IAAI,aAAa,CAAC,mBAAmB,EAAE,iCAAiC,EAAE;YAC9E,UAAU;SACX,CAAC,CAAC;IACL,CAAC;IAED,IAAI,UAA8B,CAAC;IACnC,IAAI,OAAO,GAAG,KAAK,CAAC;IACpB,IAAI,CAAC;QACH,UAAU,GAAG,EAAE,CAAC,QAAQ,CAAC,aAAa,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;QACrD,EAAE,CAAC,aAAa,CAAC,UAAU,EAAE,GAAG,UAAU,IAAI,EAAE,MAAM,CAAC,CAAC;QACxD,EAAE,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;QACzB,EAAE,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;QACzB,UAAU,GAAG,SAAS,CAAC;QAEvB,EAAE,CAAC,UAAU,CAAC,aAAa,EAAE,UAAU,CAAC,CAAC;QACzC,OAAO,GAAG,IAAI,CAAC;QACf,iBAAiB,CAAC,SAAS,CAAC,CAAC;IAC/B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;YAC7B,EAAE,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;QAC3B,CAAC;QACD,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,EAAE,CAAC,MAAM,CAAC,aAAa,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YAC1C,MAAM,KAAK,CAAC;QACd,CAAC;QACD,MAAM,mBAAmB,CAAC,KAAK,EAAE,EAAE,aAAa,EAAE,UAAU,EAAE,CAAC,CAAC;IAClE,CAAC;AACH,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export declare const REGISTRY_ERROR_CODES: readonly ["REGISTRY_NOT_FOUND", "REGISTRY_CORRUPT", "REGISTRY_UNSUPPORTED_SCHEMA", "REGISTRY_REPOSITORY_MISMATCH", "REGISTRY_DUPLICATE_SESSION", "REGISTRY_DUPLICATE_WORKTREE", "REGISTRY_DUPLICATE_BRANCH", "REGISTRY_IO_ERROR", "REGISTRY_MUTATION_FAILED", "LOCK_BUSY", "LOCK_STALE", "LOCK_INVALID", "LOCK_IO_ERROR", "LOCK_RELEASE_FAILED"];
|
|
1
|
+
export declare const REGISTRY_ERROR_CODES: readonly ["REGISTRY_NOT_FOUND", "REGISTRY_CORRUPT", "REGISTRY_UNSUPPORTED_SCHEMA", "REGISTRY_REPOSITORY_MISMATCH", "REGISTRY_DUPLICATE_SESSION", "REGISTRY_DUPLICATE_WORKTREE", "REGISTRY_DUPLICATE_BRANCH", "REGISTRY_IO_ERROR", "REGISTRY_DURABILITY_UNCERTAIN", "REGISTRY_MUTATION_FAILED", "LOCK_BUSY", "LOCK_STALE", "LOCK_INVALID", "LOCK_IO_ERROR", "LOCK_RELEASE_FAILED"];
|
|
2
2
|
export type RegistryErrorCode = (typeof REGISTRY_ERROR_CODES)[number];
|
|
3
3
|
export declare class RegistryError extends Error {
|
|
4
4
|
readonly code: RegistryErrorCode;
|
package/dist/registry/errors.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/registry/errors.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,oBAAoB,GAAG;IAClC,oBAAoB;IACpB,kBAAkB;IAClB,6BAA6B;IAC7B,8BAA8B;IAC9B,4BAA4B;IAC5B,6BAA6B;IAC7B,2BAA2B;IAC3B,mBAAmB;IACnB,0BAA0B;IAC1B,WAAW;IACX,YAAY;IACZ,cAAc;IACd,eAAe;IACf,qBAAqB;CACb,CAAC;AAIX,MAAM,OAAO,aAAc,SAAQ,KAAK;IACtB,IAAI,CAAoB;IACxB,OAAO,CAAoC;IAE3D,YACE,IAAuB,EACvB,OAAe,EACf,UAA6C,EAAE,EAC/C,OAAsB;QAEtB,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACxB,IAAI,CAAC,IAAI,GAAG,eAAe,CAAC;QAC5B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;CACF;AAED,MAAM,UAAU,eAAe,CAAC,KAAc;IAC5C,OAAO,KAAK,YAAY,aAAa,CAAC;AACxC,CAAC"}
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/registry/errors.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,oBAAoB,GAAG;IAClC,oBAAoB;IACpB,kBAAkB;IAClB,6BAA6B;IAC7B,8BAA8B;IAC9B,4BAA4B;IAC5B,6BAA6B;IAC7B,2BAA2B;IAC3B,mBAAmB;IACnB,+BAA+B;IAC/B,0BAA0B;IAC1B,WAAW;IACX,YAAY;IACZ,cAAc;IACd,eAAe;IACf,qBAAqB;CACb,CAAC;AAIX,MAAM,OAAO,aAAc,SAAQ,KAAK;IACtB,IAAI,CAAoB;IACxB,OAAO,CAAoC;IAE3D,YACE,IAAuB,EACvB,OAAe,EACf,UAA6C,EAAE,EAC/C,OAAsB;QAEtB,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACxB,IAAI,CAAC,IAAI,GAAG,eAAe,CAAC;QAC5B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;CACF;AAED,MAAM,UAAU,eAAe,CAAC,KAAc;IAC5C,OAAO,KAAK,YAAY,aAAa,CAAC;AACxC,CAAC"}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import { DIFF_EVIDENCE_SCHEMA_VERSION, EVIDENCE_MAX_DIFF_BYTES, EVIDENCE_MAX_DIFF_HUNKS, EVIDENCE_MAX_DIFF_PATHS, REPOSITORY_EVIDENCE_SCHEMA_VERSION, type GitPathStat } from "./git.js";
|
|
2
|
+
import type { GitCheckpointPaths } from "./operation-authorization.js";
|
|
3
|
+
export { DIFF_EVIDENCE_SCHEMA_VERSION, EVIDENCE_MAX_DIFF_BYTES, EVIDENCE_MAX_DIFF_HUNKS, EVIDENCE_MAX_DIFF_PATHS, REPOSITORY_EVIDENCE_SCHEMA_VERSION, };
|
|
4
|
+
export type { GitPathStat } from "./git.js";
|
|
5
|
+
export interface RepositoryEvidenceOptions {
|
|
6
|
+
readonly sessionId: string;
|
|
7
|
+
}
|
|
8
|
+
export interface RepositoryDiffOptions {
|
|
9
|
+
readonly sessionId: string;
|
|
10
|
+
readonly paths: readonly string[];
|
|
11
|
+
readonly from?: string;
|
|
12
|
+
readonly to?: string;
|
|
13
|
+
readonly includePatch?: boolean;
|
|
14
|
+
readonly maxBytes?: number;
|
|
15
|
+
readonly maxHunks?: number;
|
|
16
|
+
}
|
|
17
|
+
export interface RepositoryEvidencePaths extends GitCheckpointPaths {
|
|
18
|
+
readonly stats: readonly GitPathStat[];
|
|
19
|
+
}
|
|
20
|
+
export interface RepositoryEvidenceBounds {
|
|
21
|
+
readonly maxPaths: number;
|
|
22
|
+
readonly maxDiffPaths: number;
|
|
23
|
+
readonly maxDiffBytes: number;
|
|
24
|
+
readonly maxDiffHunks: number;
|
|
25
|
+
}
|
|
26
|
+
export interface RepositoryEvidenceSnapshot {
|
|
27
|
+
readonly schemaVersion: typeof REPOSITORY_EVIDENCE_SCHEMA_VERSION;
|
|
28
|
+
readonly source: "git";
|
|
29
|
+
readonly guarantee: "git-observable-only";
|
|
30
|
+
readonly repositoryId: string;
|
|
31
|
+
readonly worktreePath: string;
|
|
32
|
+
readonly branchId: string;
|
|
33
|
+
readonly branchName: string;
|
|
34
|
+
readonly sessionId: string;
|
|
35
|
+
readonly sessionState: string;
|
|
36
|
+
readonly sessionCreatedAt: string;
|
|
37
|
+
readonly sessionUpdatedAt: string;
|
|
38
|
+
readonly baseRevision: string | null;
|
|
39
|
+
readonly baseRevisionProven: boolean;
|
|
40
|
+
readonly headId: string;
|
|
41
|
+
readonly clean: boolean;
|
|
42
|
+
readonly complete: boolean;
|
|
43
|
+
readonly incompleteReasons: readonly string[];
|
|
44
|
+
readonly paths: RepositoryEvidencePaths;
|
|
45
|
+
/** SHA-256 over all non-volatile evidence fields in this snapshot. */
|
|
46
|
+
readonly evidenceHash: string;
|
|
47
|
+
readonly bounds: RepositoryEvidenceBounds;
|
|
48
|
+
}
|
|
49
|
+
export interface RepositoryDiffEvidence {
|
|
50
|
+
readonly schemaVersion: typeof DIFF_EVIDENCE_SCHEMA_VERSION;
|
|
51
|
+
readonly source: "git";
|
|
52
|
+
readonly guarantee: "git-observable-only";
|
|
53
|
+
readonly repositoryId: string;
|
|
54
|
+
readonly worktreePath: string;
|
|
55
|
+
readonly branchId: string;
|
|
56
|
+
readonly branchName: string;
|
|
57
|
+
readonly sessionId: string;
|
|
58
|
+
readonly sessionState: string;
|
|
59
|
+
readonly headId: string;
|
|
60
|
+
readonly fromRevision: string;
|
|
61
|
+
readonly toRevision: string | null;
|
|
62
|
+
readonly paths: readonly string[];
|
|
63
|
+
readonly stats: readonly GitPathStat[];
|
|
64
|
+
readonly complete: boolean;
|
|
65
|
+
readonly incompleteReasons: readonly string[];
|
|
66
|
+
readonly patch: string | null;
|
|
67
|
+
readonly patchBytes: number;
|
|
68
|
+
readonly hunkCount: number;
|
|
69
|
+
readonly maxBytes: number;
|
|
70
|
+
readonly maxHunks: number;
|
|
71
|
+
/** SHA-256 over all non-volatile evidence fields in this diff. */
|
|
72
|
+
readonly evidenceHash: string;
|
|
73
|
+
}
|
|
74
|
+
export declare function evidenceHash(value: unknown): string;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { createHash } from "node:crypto";
|
|
2
|
+
import { DIFF_EVIDENCE_SCHEMA_VERSION, EVIDENCE_MAX_DIFF_BYTES, EVIDENCE_MAX_DIFF_HUNKS, EVIDENCE_MAX_DIFF_PATHS, REPOSITORY_EVIDENCE_SCHEMA_VERSION, } from "./git.js";
|
|
3
|
+
export { DIFF_EVIDENCE_SCHEMA_VERSION, EVIDENCE_MAX_DIFF_BYTES, EVIDENCE_MAX_DIFF_HUNKS, EVIDENCE_MAX_DIFF_PATHS, REPOSITORY_EVIDENCE_SCHEMA_VERSION, };
|
|
4
|
+
export function evidenceHash(value) {
|
|
5
|
+
return createHash("sha256").update(JSON.stringify(value)).digest("hex");
|
|
6
|
+
}
|
|
7
|
+
//# sourceMappingURL=repository-evidence.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"repository-evidence.js","sourceRoot":"","sources":["../src/repository-evidence.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,OAAO,EACL,4BAA4B,EAC5B,uBAAuB,EACvB,uBAAuB,EACvB,uBAAuB,EACvB,kCAAkC,GAEnC,MAAM,UAAU,CAAC;AAGlB,OAAO,EACL,4BAA4B,EAC5B,uBAAuB,EACvB,uBAAuB,EACvB,uBAAuB,EACvB,kCAAkC,GACnC,CAAC;AA8EF,MAAM,UAAU,YAAY,CAAC,KAAc;IACzC,OAAO,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAC1E,CAAC"}
|
|
@@ -1,13 +1,25 @@
|
|
|
1
1
|
import { SessionRegistryError, type RegistryErrorDetails } from "./errors.js";
|
|
2
|
-
|
|
2
|
+
/**
|
|
3
|
+
* Claim schema version 2 records the distinct overlap semantics below. A
|
|
4
|
+
* persisted v1 claim must be explicitly migrated before it is interpreted by
|
|
5
|
+
* the v2 authority.
|
|
6
|
+
*/
|
|
7
|
+
export declare const RESOURCE_CLAIM_SCHEMA_VERSION: 2;
|
|
8
|
+
export declare const LEGACY_RESOURCE_CLAIM_SCHEMA_VERSION: 1;
|
|
3
9
|
export declare const RESOURCE_CLAIM_MODES: readonly ["read", "write", "exclusive-write"];
|
|
4
10
|
export type ResourceClaimMode = (typeof RESOURCE_CLAIM_MODES)[number];
|
|
5
11
|
/**
|
|
6
|
-
*
|
|
7
|
-
* read
|
|
12
|
+
* Normative mode definitions:
|
|
13
|
+
* - read is a non-mutating access declaration, not a consistency lease;
|
|
14
|
+
* - write is ordinary mutation authority and may coexist with read;
|
|
15
|
+
* - exclusive-write is stronger mutation authority and excludes every
|
|
16
|
+
* overlapping claim.
|
|
17
|
+
*
|
|
8
18
|
* A non-overlapping pair is always compatible, regardless of mode.
|
|
9
19
|
*/
|
|
10
20
|
export declare const RESOURCE_CLAIM_COMPATIBILITY_MATRIX: Readonly<Record<ResourceClaimMode, Readonly<Record<ResourceClaimMode, "compatible" | "conflict">>>>;
|
|
21
|
+
/** Access strength used by operation authorization; higher includes lower access. */
|
|
22
|
+
export declare const RESOURCE_CLAIM_ACCESS_STRENGTH: Readonly<Record<ResourceClaimMode, number>>;
|
|
11
23
|
export interface ResourceClaim {
|
|
12
24
|
readonly schemaVersion: typeof RESOURCE_CLAIM_SCHEMA_VERSION;
|
|
13
25
|
readonly claimId: string;
|
|
@@ -41,6 +53,7 @@ export interface CanonicalResourceClaimInput {
|
|
|
41
53
|
readonly mode: ResourceClaimMode;
|
|
42
54
|
}
|
|
43
55
|
export declare function isResourceClaimMode(value: unknown): value is ResourceClaimMode;
|
|
56
|
+
export declare function claimModeGrantsAccess(granted: ResourceClaimMode, required: ResourceClaimMode): boolean;
|
|
44
57
|
export declare function canonicalClaimId(sessionId: string, resource: string, mode: ResourceClaimMode): string;
|
|
45
58
|
export declare function canonicalizeClaimInput(input: ResourceClaimInput, owner: ClaimOwnerContext): CanonicalResourceClaimInput;
|
|
46
59
|
/**
|
|
@@ -49,6 +62,15 @@ export declare function canonicalizeClaimInput(input: ResourceClaimInput, owner:
|
|
|
49
62
|
* represented unambiguously instead of guessing what a caller meant.
|
|
50
63
|
*/
|
|
51
64
|
export declare function canonicalizeClaimResource(resource: string, worktreePath: string): string;
|
|
65
|
+
/**
|
|
66
|
+
* Canonicalize a concrete repository-relative path (NOT a glob pattern)
|
|
67
|
+
* against the physical worktree. Any `*` or `?` characters in the input are
|
|
68
|
+
* treated as literal filename characters, not glob wildcards. The path is
|
|
69
|
+
* validated for traversal and symlink escapes exactly like
|
|
70
|
+
* `canonicalizeClaimResource`, but without glob expansion or candidate
|
|
71
|
+
* scanning.
|
|
72
|
+
*/
|
|
73
|
+
export declare function canonicalizeConcretePath(resource: string, worktreePath: string): string;
|
|
52
74
|
/** Validate a resource already persisted as canonical without requiring its worktree to exist. */
|
|
53
75
|
export declare function assertCanonicalClaimResource(resource: string): void;
|
|
54
76
|
export declare function createResourceClaim(input: CanonicalResourceClaimInput, owner: ClaimOwnerContext, timestamp: string): ResourceClaim;
|
package/dist/resource-claims.js
CHANGED
|
@@ -2,18 +2,34 @@ import fs from "node:fs";
|
|
|
2
2
|
import path from "node:path";
|
|
3
3
|
import { createHash } from "node:crypto";
|
|
4
4
|
import { SessionRegistryError } from "./errors.js";
|
|
5
|
-
|
|
5
|
+
/**
|
|
6
|
+
* Claim schema version 2 records the distinct overlap semantics below. A
|
|
7
|
+
* persisted v1 claim must be explicitly migrated before it is interpreted by
|
|
8
|
+
* the v2 authority.
|
|
9
|
+
*/
|
|
10
|
+
export const RESOURCE_CLAIM_SCHEMA_VERSION = 2;
|
|
11
|
+
export const LEGACY_RESOURCE_CLAIM_SCHEMA_VERSION = 1;
|
|
6
12
|
export const RESOURCE_CLAIM_MODES = ["read", "write", "exclusive-write"];
|
|
7
13
|
/**
|
|
8
|
-
*
|
|
9
|
-
* read
|
|
14
|
+
* Normative mode definitions:
|
|
15
|
+
* - read is a non-mutating access declaration, not a consistency lease;
|
|
16
|
+
* - write is ordinary mutation authority and may coexist with read;
|
|
17
|
+
* - exclusive-write is stronger mutation authority and excludes every
|
|
18
|
+
* overlapping claim.
|
|
19
|
+
*
|
|
10
20
|
* A non-overlapping pair is always compatible, regardless of mode.
|
|
11
21
|
*/
|
|
12
22
|
export const RESOURCE_CLAIM_COMPATIBILITY_MATRIX = Object.freeze({
|
|
13
|
-
read: Object.freeze({ read: "compatible", write: "
|
|
14
|
-
write: Object.freeze({ read: "
|
|
23
|
+
read: Object.freeze({ read: "compatible", write: "compatible", "exclusive-write": "conflict" }),
|
|
24
|
+
write: Object.freeze({ read: "compatible", write: "conflict", "exclusive-write": "conflict" }),
|
|
15
25
|
"exclusive-write": Object.freeze({ read: "conflict", write: "conflict", "exclusive-write": "conflict" }),
|
|
16
26
|
});
|
|
27
|
+
/** Access strength used by operation authorization; higher includes lower access. */
|
|
28
|
+
export const RESOURCE_CLAIM_ACCESS_STRENGTH = Object.freeze({
|
|
29
|
+
read: 0,
|
|
30
|
+
write: 1,
|
|
31
|
+
"exclusive-write": 2,
|
|
32
|
+
});
|
|
17
33
|
const CLAIM_ID_PREFIX = "claim-";
|
|
18
34
|
const MAX_SYMLINK_SCAN_ENTRIES = 20_000;
|
|
19
35
|
const WINDOWS_ABSOLUTE_PATH = /^[A-Za-z]:[\\/]/u;
|
|
@@ -24,6 +40,9 @@ const ISO_TIMESTAMP_PATTERN = /^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}\.\d{3}Z$/u;
|
|
|
24
40
|
export function isResourceClaimMode(value) {
|
|
25
41
|
return typeof value === "string" && RESOURCE_CLAIM_MODES.includes(value);
|
|
26
42
|
}
|
|
43
|
+
export function claimModeGrantsAccess(granted, required) {
|
|
44
|
+
return RESOURCE_CLAIM_ACCESS_STRENGTH[granted] >= RESOURCE_CLAIM_ACCESS_STRENGTH[required];
|
|
45
|
+
}
|
|
27
46
|
export function canonicalClaimId(sessionId, resource, mode) {
|
|
28
47
|
const digest = createHash("sha256")
|
|
29
48
|
.update(sessionId)
|
|
@@ -116,6 +135,39 @@ export function canonicalizeClaimResource(resource, worktreePath) {
|
|
|
116
135
|
}
|
|
117
136
|
return canonical;
|
|
118
137
|
}
|
|
138
|
+
/**
|
|
139
|
+
* Canonicalize a concrete repository-relative path (NOT a glob pattern)
|
|
140
|
+
* against the physical worktree. Any `*` or `?` characters in the input are
|
|
141
|
+
* treated as literal filename characters, not glob wildcards. The path is
|
|
142
|
+
* validated for traversal and symlink escapes exactly like
|
|
143
|
+
* `canonicalizeClaimResource`, but without glob expansion or candidate
|
|
144
|
+
* scanning.
|
|
145
|
+
*/
|
|
146
|
+
export function canonicalizeConcretePath(resource, worktreePath) {
|
|
147
|
+
validateResourceString(resource);
|
|
148
|
+
const canonical = canonicalResourceSyntax(resource);
|
|
149
|
+
const root = canonicalWorktreeRoot(worktreePath);
|
|
150
|
+
const segments = canonical.split("/");
|
|
151
|
+
const candidate = walkStaticPath(root, segments, canonical);
|
|
152
|
+
assertWithinRoot(root, candidate, canonical);
|
|
153
|
+
const entry = lstatIfPresent(candidate);
|
|
154
|
+
if (entry?.isSymbolicLink()) {
|
|
155
|
+
throw claimError("CLAIM_SYMLINK_ESCAPE", "Resource path is a symbolic link", { resource: canonical });
|
|
156
|
+
}
|
|
157
|
+
if (entry !== undefined) {
|
|
158
|
+
try {
|
|
159
|
+
assertWithinRoot(root, fs.realpathSync.native(candidate), canonical);
|
|
160
|
+
}
|
|
161
|
+
catch (error) {
|
|
162
|
+
if (error instanceof SessionRegistryError)
|
|
163
|
+
throw error;
|
|
164
|
+
throw claimError("CLAIM_SYMLINK_ESCAPE", "Resource path escapes its owning worktree", {
|
|
165
|
+
resource: canonical,
|
|
166
|
+
});
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
return canonical;
|
|
170
|
+
}
|
|
119
171
|
/** Validate a resource already persisted as canonical without requiring its worktree to exist. */
|
|
120
172
|
export function assertCanonicalClaimResource(resource) {
|
|
121
173
|
validateResourceString(resource);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resource-claims.js","sourceRoot":"","sources":["../src/resource-claims.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"resource-claims.js","sourceRoot":"","sources":["../src/resource-claims.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,11 @@
|
|
|
1
1
|
import { type GitCommandRunner, type GitWorktreeInfo, type PhysicalExecutionContext, type RepositoryContext } from "./git.js";
|
|
2
2
|
import { type RegistryErrorCode, type RegistryErrorDetails } from "./errors.js";
|
|
3
|
-
import { RESOURCE_CLAIM_SCHEMA_VERSION, type ResourceClaim, type ResourceClaimInput, type ResourceClaimMode } from "./resource-claims.js";
|
|
3
|
+
import { LEGACY_RESOURCE_CLAIM_SCHEMA_VERSION, RESOURCE_CLAIM_SCHEMA_VERSION, type ResourceClaim, type ResourceClaimInput, type ResourceClaimMode } from "./resource-claims.js";
|
|
4
4
|
import { type CheckpointEvidence, type CheckpointOptions, type OperationAuthorizationDecision, type OperationAuthorizationOptions } from "./operation-authorization.js";
|
|
5
|
+
import { type RepositoryDiffEvidence, type RepositoryDiffOptions, type RepositoryEvidenceOptions, type RepositoryEvidenceSnapshot } from "./repository-evidence.js";
|
|
5
6
|
export type { ResourceClaim } from "./resource-claims.js";
|
|
7
|
+
export type { RepositoryDiffEvidence, RepositoryDiffOptions, RepositoryEvidenceBounds, RepositoryEvidenceOptions, RepositoryEvidencePaths, RepositoryEvidenceSnapshot, } from "./repository-evidence.js";
|
|
8
|
+
export { DIFF_EVIDENCE_SCHEMA_VERSION, EVIDENCE_MAX_DIFF_BYTES, EVIDENCE_MAX_DIFF_HUNKS, EVIDENCE_MAX_DIFF_PATHS, REPOSITORY_EVIDENCE_SCHEMA_VERSION, } from "./repository-evidence.js";
|
|
6
9
|
export declare const REGISTRY_SCHEMA_VERSION: 1;
|
|
7
10
|
export { RESOURCE_CLAIM_SCHEMA_VERSION };
|
|
8
11
|
export declare const REGISTRY_DIRECTORY_NAME = "nawabari";
|
|
@@ -11,6 +14,8 @@ export declare const REGISTRY_LOCK_FILE_NAME = "session-registry.lock";
|
|
|
11
14
|
export declare const DEFAULT_STALE_AFTER_MS: number;
|
|
12
15
|
export declare const CLEANUP_DECISION_SCHEMA_VERSION: 1;
|
|
13
16
|
export declare const RECONCILIATION_SCHEMA_VERSION: 1;
|
|
17
|
+
/** Bounds a caller-declared commit-message pattern before it is compiled. */
|
|
18
|
+
export declare const MAX_MESSAGE_PATTERN_LENGTH: 512;
|
|
14
19
|
export type RegistrySchemaVersion = typeof REGISTRY_SCHEMA_VERSION;
|
|
15
20
|
export type SessionState = "new" | "active" | "closing" | "closed" | "stale";
|
|
16
21
|
export interface SessionRecord {
|
|
@@ -24,6 +29,8 @@ export interface SessionRecord {
|
|
|
24
29
|
readonly state: SessionState;
|
|
25
30
|
readonly createdAt: string;
|
|
26
31
|
readonly updatedAt: string;
|
|
32
|
+
/** Exact revision observed at session creation, when the registry can prove it. */
|
|
33
|
+
readonly baseRevision?: string;
|
|
27
34
|
readonly label?: string;
|
|
28
35
|
}
|
|
29
36
|
export interface CreateSessionOptions {
|
|
@@ -174,11 +181,19 @@ export interface CommitOptions {
|
|
|
174
181
|
readonly resources?: readonly string[];
|
|
175
182
|
/** Alias for callers that name the same explicit paths as paths. */
|
|
176
183
|
readonly paths?: readonly string[];
|
|
184
|
+
/**
|
|
185
|
+
* Caller-declared commit-message rule (a RegExp source the final message
|
|
186
|
+
* must match). Nawabari does not own or infer commit-message conventions;
|
|
187
|
+
* it validates this pattern only when the caller explicitly supplies one.
|
|
188
|
+
*/
|
|
189
|
+
readonly messagePattern?: string | null;
|
|
190
|
+
readonly message_pattern?: string | null;
|
|
177
191
|
}
|
|
178
192
|
export interface CommitResult {
|
|
179
193
|
readonly schemaVersion: typeof GOVERNED_GIT_OPERATION_SCHEMA_VERSION;
|
|
180
194
|
readonly commitSha: string;
|
|
181
195
|
readonly message: string;
|
|
196
|
+
/** The commit's actual changed paths, read back from Git and proven to be within the authorized/staged set. */
|
|
182
197
|
readonly resources: readonly string[];
|
|
183
198
|
}
|
|
184
199
|
export type PushRelation = "no-upstream" | "up-to-date" | "ahead" | "behind" | "diverged";
|
|
@@ -197,9 +212,15 @@ export interface PushOptions {
|
|
|
197
212
|
}
|
|
198
213
|
export interface PushResult {
|
|
199
214
|
readonly schemaVersion: typeof GOVERNED_GIT_OPERATION_SCHEMA_VERSION;
|
|
215
|
+
/** The immutable local commit SHA used as the push source. */
|
|
216
|
+
readonly sourceSha: string;
|
|
200
217
|
readonly remote: string;
|
|
201
218
|
readonly branch: string;
|
|
202
219
|
readonly target: string;
|
|
220
|
+
/** The explicit remote ref targeted by the push. */
|
|
221
|
+
readonly targetRef: string;
|
|
222
|
+
/** The remote branch SHA observed before ancestry inspection and mutation. */
|
|
223
|
+
readonly observedRemoteSha: string | null;
|
|
203
224
|
readonly relation: PushRelation;
|
|
204
225
|
readonly force: boolean;
|
|
205
226
|
readonly upstreamCreated: boolean;
|
|
@@ -235,10 +256,11 @@ export interface PersistedSessionRecord {
|
|
|
235
256
|
readonly state: SessionState;
|
|
236
257
|
readonly created_at: string;
|
|
237
258
|
readonly updated_at: string;
|
|
259
|
+
readonly base_revision?: string;
|
|
238
260
|
readonly label?: string;
|
|
239
261
|
}
|
|
240
262
|
export interface PersistedResourceClaim {
|
|
241
|
-
readonly schema_version: typeof RESOURCE_CLAIM_SCHEMA_VERSION;
|
|
263
|
+
readonly schema_version: typeof RESOURCE_CLAIM_SCHEMA_VERSION | typeof LEGACY_RESOURCE_CLAIM_SCHEMA_VERSION;
|
|
242
264
|
readonly claim_id: string;
|
|
243
265
|
readonly session_id: string;
|
|
244
266
|
readonly repository_id: string;
|
|
@@ -252,9 +274,9 @@ export interface PersistedRegistry {
|
|
|
252
274
|
readonly schema_version: RegistrySchemaVersion;
|
|
253
275
|
readonly repository_id: string;
|
|
254
276
|
readonly sessions: readonly PersistedSessionRecord[];
|
|
255
|
-
/** Optional in the TypeScript shape so
|
|
256
|
-
readonly claims_schema_version?: typeof RESOURCE_CLAIM_SCHEMA_VERSION;
|
|
257
|
-
/** Optional in the TypeScript shape so
|
|
277
|
+
/** Optional in the TypeScript shape so pre-claim fixtures remain readable. */
|
|
278
|
+
readonly claims_schema_version?: typeof RESOURCE_CLAIM_SCHEMA_VERSION | typeof LEGACY_RESOURCE_CLAIM_SCHEMA_VERSION;
|
|
279
|
+
/** Optional in the TypeScript shape so pre-claim fixtures remain readable. */
|
|
258
280
|
readonly claims?: readonly PersistedResourceClaim[];
|
|
259
281
|
}
|
|
260
282
|
export declare class SessionRegistry {
|
|
@@ -273,6 +295,8 @@ export declare class SessionRegistry {
|
|
|
273
295
|
private readonly lockMetadataGraceMs;
|
|
274
296
|
private readonly lock;
|
|
275
297
|
constructor(options?: SessionRegistryOptions);
|
|
298
|
+
/** Resolved repository-local root used for default managed session worktrees. */
|
|
299
|
+
get managedWorktreeRoot(): string;
|
|
276
300
|
read(): readonly SessionRecord[];
|
|
277
301
|
list(): readonly SessionRecord[];
|
|
278
302
|
get(sessionId: string): SessionRecord | undefined;
|
|
@@ -281,8 +305,9 @@ export declare class SessionRegistry {
|
|
|
281
305
|
claims(sessionId?: string | null): readonly ResourceClaim[];
|
|
282
306
|
getClaim(claimId: string): ResourceClaim | undefined;
|
|
283
307
|
/**
|
|
284
|
-
* Explicitly materialize
|
|
285
|
-
*
|
|
308
|
+
* Explicitly materialize a claim section or upgrade its semantics. A v1
|
|
309
|
+
* claim registry is intentionally unreadable through ordinary operations;
|
|
310
|
+
* only this locked, explicit migration rewrites it as v2.
|
|
286
311
|
*/
|
|
287
312
|
migrate(): RegistryMigrationResult;
|
|
288
313
|
claim(sessionIdOrOptions: string | ClaimResourcesOptions, inputs?: readonly ResourceClaimInput[]): ClaimResourcesResult;
|
|
@@ -296,6 +321,22 @@ export declare class SessionRegistry {
|
|
|
296
321
|
createSession(options?: CreateSessionOptions): SessionRecord;
|
|
297
322
|
/** Provision one isolated Git worktree and commit its ownership atomically. */
|
|
298
323
|
provision(options?: ProvisionSessionOptions): SessionRecord;
|
|
324
|
+
/**
|
|
325
|
+
* Decide whether it is safe to destroy the just-created worktree/branch
|
|
326
|
+
* after a provisioning failure. Only an ordinary (non-durability-uncertain)
|
|
327
|
+
* failure, or a durability-uncertain failure whose registry re-read
|
|
328
|
+
* positively proves the session record absent, licenses a rollback.
|
|
329
|
+
*
|
|
330
|
+
* A durability-uncertain write means the rename may have already
|
|
331
|
+
* committed this session as the registry's visible ownership record:
|
|
332
|
+
* rolling back the worktree/branch would then strand a registry entry
|
|
333
|
+
* pointing at resources we just deleted. Absence must be *proven*, not
|
|
334
|
+
* merely unconfirmed — if the reconciliation read itself cannot complete
|
|
335
|
+
* (I/O failure, corrupt registry state, or any other exception), that is
|
|
336
|
+
* not proof of absence, so no rollback happens and the original
|
|
337
|
+
* durability-uncertain outcome propagates unchanged.
|
|
338
|
+
*/
|
|
339
|
+
private absenceProvenAfterProvisioningFailure;
|
|
299
340
|
provisionSession(options?: ProvisionSessionOptions): SessionRecord;
|
|
300
341
|
createProvisionedSession(options?: ProvisionSessionOptions): SessionRecord;
|
|
301
342
|
register(record: SessionRecord): SessionRecord;
|
|
@@ -307,6 +348,8 @@ export declare class SessionRegistry {
|
|
|
307
348
|
* fail-closed observation for governed operations.
|
|
308
349
|
*/
|
|
309
350
|
verifyExecutionContext(options?: GuardOptions): VerifiedExecutionContext;
|
|
351
|
+
/** Resolve and physically verify an explicitly addressed active session. */
|
|
352
|
+
private verifyEvidenceSession;
|
|
310
353
|
/** Shared physical/protected/ownership path for every governed decision. */
|
|
311
354
|
private verifyGovernedExecutionContext;
|
|
312
355
|
private resolveSessionOwnership;
|
|
@@ -336,6 +379,15 @@ export declare class SessionRegistry {
|
|
|
336
379
|
/** Capture bounded Git evidence for the current owned session's declaration. */
|
|
337
380
|
checkpoint(options?: CheckpointOptions): CheckpointEvidence;
|
|
338
381
|
captureCheckpoint(options?: CheckpointOptions): CheckpointEvidence;
|
|
382
|
+
/**
|
|
383
|
+
* Capture one deterministic, read-only physical repository generation for
|
|
384
|
+
* an explicitly addressed owned session.
|
|
385
|
+
*/
|
|
386
|
+
repositoryEvidence(options: RepositoryEvidenceOptions): RepositoryEvidenceSnapshot;
|
|
387
|
+
evidenceSnapshot(options: RepositoryEvidenceOptions): RepositoryEvidenceSnapshot;
|
|
388
|
+
/** Inspect only explicitly selected paths with bounded stat/patch output. */
|
|
389
|
+
repositoryDiff(options: RepositoryDiffOptions): RepositoryDiffEvidence;
|
|
390
|
+
diff(options: RepositoryDiffOptions): RepositoryDiffEvidence;
|
|
339
391
|
/**
|
|
340
392
|
* Produce the authoritative, non-mutating cleanup decision for one session.
|
|
341
393
|
* The decision observes registry claims and current Git/filesystem state in
|
|
@@ -375,6 +427,15 @@ export declare class SessionRegistry {
|
|
|
375
427
|
private resolveCreationResources;
|
|
376
428
|
private readStateUnsafe;
|
|
377
429
|
private readUnsafe;
|
|
430
|
+
/**
|
|
431
|
+
* The single authoritative persistence path for session/claim registry
|
|
432
|
+
* state, sharing its durability policy with `registry/atomic.ts`: the
|
|
433
|
+
* temporary file and target directory are fsynced around an atomic
|
|
434
|
+
* rename, and only known unsupported-directory-fsync conditions are
|
|
435
|
+
* tolerated. A failure observed after rename is reported as a distinct
|
|
436
|
+
* durability-uncertain outcome rather than an ordinary write failure,
|
|
437
|
+
* since the renamed document may already be the one readers observe.
|
|
438
|
+
*/
|
|
378
439
|
private writeUnsafe;
|
|
379
440
|
private mutate;
|
|
380
441
|
private withLock;
|