@mmnto/totem 1.38.0 → 1.40.0
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/errors.d.ts +1 -1
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/ledger.d.ts +71 -13
- package/dist/ledger.d.ts.map +1 -1
- package/dist/ledger.js +65 -7
- package/dist/ledger.js.map +1 -1
- package/dist/ledger.test.js +228 -0
- package/dist/ledger.test.js.map +1 -1
- package/dist/session-id.d.ts +36 -0
- package/dist/session-id.d.ts.map +1 -0
- package/dist/session-id.js +92 -0
- package/dist/session-id.js.map +1 -0
- package/dist/session-id.test.d.ts +2 -0
- package/dist/session-id.test.d.ts.map +1 -0
- package/dist/session-id.test.js +191 -0
- package/dist/session-id.test.js.map +1 -0
- package/package.json +1 -1
package/dist/errors.d.ts
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
* - A recoveryHint telling the user exactly how to fix it
|
|
7
7
|
* - A code for programmatic handling
|
|
8
8
|
*/
|
|
9
|
-
export type TotemErrorCode = 'CONFIG_MISSING' | 'CONFIG_INVALID' | 'DATABASE_CORRUPT' | 'DATABASE_MISMATCH' | 'EMBEDDING_UNAVAILABLE' | 'ORCHESTRATOR_UNAVAILABLE' | 'COMPILE_FAILED' | 'PARSE_FAILED' | 'SYNC_FAILED' | 'GIT_FAILED' | 'NO_LESSONS' | 'NO_LESSONS_DIR' | 'NO_RULES' | 'SHIELD_FAILED' | 'LINT_LESSONS_FAILED' | 'DRIFT_FAILED' | 'TEST_FAILED' | 'CHECK_FAILED' | 'MCP_ERROR' | 'UPGRADE_HASH_NOT_FOUND' | 'UPGRADE_HASH_AMBIGUOUS' | 'STAGED_READ_FAILED' | 'UPGRADE_CLOUD_UNSUPPORTED' | 'STALE_MANIFEST' | 'FLAG_CONFLICT' | 'HOOKS_LOAD_FAILED';
|
|
9
|
+
export type TotemErrorCode = 'CONFIG_MISSING' | 'CONFIG_INVALID' | 'DATABASE_CORRUPT' | 'DATABASE_MISMATCH' | 'EMBEDDING_UNAVAILABLE' | 'ORCHESTRATOR_UNAVAILABLE' | 'COMPILE_FAILED' | 'PARSE_FAILED' | 'SYNC_FAILED' | 'GIT_FAILED' | 'NO_LESSONS' | 'NO_LESSONS_DIR' | 'NO_RULES' | 'SHIELD_FAILED' | 'LINT_LESSONS_FAILED' | 'DRIFT_FAILED' | 'TEST_FAILED' | 'CHECK_FAILED' | 'MCP_ERROR' | 'UPGRADE_HASH_NOT_FOUND' | 'UPGRADE_HASH_AMBIGUOUS' | 'STAGED_READ_FAILED' | 'UPGRADE_CLOUD_UNSUPPORTED' | 'STALE_MANIFEST' | 'FLAG_CONFLICT' | 'HOOKS_LOAD_FAILED' | 'SESSION_ID_WRITE_FAILED' | 'SESSION_ID_READ_FAILED';
|
|
10
10
|
export declare class TotemError extends Error {
|
|
11
11
|
readonly code: TotemErrorCode;
|
|
12
12
|
readonly recoveryHint: string;
|
package/dist/errors.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,MAAM,MAAM,cAAc,GACtB,gBAAgB,GAChB,gBAAgB,GAChB,kBAAkB,GAClB,mBAAmB,GACnB,uBAAuB,GACvB,0BAA0B,GAC1B,gBAAgB,GAChB,cAAc,GACd,aAAa,GACb,YAAY,GACZ,YAAY,GACZ,gBAAgB,GAChB,UAAU,GACV,eAAe,GACf,qBAAqB,GACrB,cAAc,GACd,aAAa,GACb,cAAc,GACd,WAAW,GACX,wBAAwB,GACxB,wBAAwB,GACxB,oBAAoB,GACpB,2BAA2B,GAC3B,gBAAgB,GAChB,eAAe,GACf,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,MAAM,MAAM,cAAc,GACtB,gBAAgB,GAChB,gBAAgB,GAChB,kBAAkB,GAClB,mBAAmB,GACnB,uBAAuB,GACvB,0BAA0B,GAC1B,gBAAgB,GAChB,cAAc,GACd,aAAa,GACb,YAAY,GACZ,YAAY,GACZ,gBAAgB,GAChB,UAAU,GACV,eAAe,GACf,qBAAqB,GACrB,cAAc,GACd,aAAa,GACb,cAAc,GACd,WAAW,GACX,wBAAwB,GACxB,wBAAwB,GACxB,oBAAoB,GACpB,2BAA2B,GAC3B,gBAAgB,GAChB,eAAe,GACf,mBAAmB,GACnB,yBAAyB,GACzB,wBAAwB,CAAC;AAE7B,qBAAa,UAAW,SAAQ,KAAK;IACnC,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAC;IAC9B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;gBAElB,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO;CAMzF;AAED,qBAAa,gBAAiB,SAAQ,UAAU;gBAE5C,OAAO,EAAE,MAAM,EACf,YAAY,EAAE,MAAM,EACpB,IAAI,GAAE,gBAAgB,GAAG,gBAAmC,EAC5D,KAAK,CAAC,EAAE,OAAO;CAKlB;AAED,qBAAa,kBAAmB,SAAQ,UAAU;gBAE9C,OAAO,EAAE,MAAM,EACf,YAAY,EAAE,MAAM,EACpB,IAAI,GAAE,kBAAkB,GAAG,mBAAwC,EACnE,KAAK,CAAC,EAAE,OAAO;CAKlB;AAED,qBAAa,iBAAkB,SAAQ,UAAU;gBACnC,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO;CAInE;AAED,qBAAa,eAAgB,SAAQ,UAAU;gBACjC,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO;CAInE;AAED,qBAAa,sBAAuB,SAAQ,UAAU;gBACxC,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO;CAInE;AAED,qBAAa,aAAc,SAAQ,UAAU;gBAC/B,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO;CAInE;AAID,qEAAqE;AACrE,wBAAgB,eAAe,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,CAEpD;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,GAAG,KAAK,CAGpF"}
|
package/dist/errors.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAgCH,MAAM,OAAO,UAAW,SAAQ,KAAK;IAC1B,IAAI,CAAiB;IACrB,YAAY,CAAS;IAE9B,YAAY,IAAoB,EAAE,OAAe,EAAE,YAAoB,EAAE,KAAe;QACtF,KAAK,CAAC,iBAAiB,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;QAC7C,IAAI,CAAC,IAAI,GAAG,YAAY,CAAC;QACzB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;IACnC,CAAC;CACF;AAED,MAAM,OAAO,gBAAiB,SAAQ,UAAU;IAC9C,YACE,OAAe,EACf,YAAoB,EACpB,OAA4C,gBAAgB,EAC5D,KAAe;QAEf,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE,YAAY,EAAE,KAAK,CAAC,CAAC;QAC1C,IAAI,CAAC,IAAI,GAAG,kBAAkB,CAAC;IACjC,CAAC;CACF;AAED,MAAM,OAAO,kBAAmB,SAAQ,UAAU;IAChD,YACE,OAAe,EACf,YAAoB,EACpB,OAAiD,kBAAkB,EACnE,KAAe;QAEf,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE,YAAY,EAAE,KAAK,CAAC,CAAC;QAC1C,IAAI,CAAC,IAAI,GAAG,oBAAoB,CAAC;IACnC,CAAC;CACF;AAED,MAAM,OAAO,iBAAkB,SAAQ,UAAU;IAC/C,YAAY,OAAe,EAAE,YAAoB,EAAE,KAAe;QAChE,KAAK,CAAC,gBAAgB,EAAE,OAAO,EAAE,YAAY,EAAE,KAAK,CAAC,CAAC;QACtD,IAAI,CAAC,IAAI,GAAG,mBAAmB,CAAC;IAClC,CAAC;CACF;AAED,MAAM,OAAO,eAAgB,SAAQ,UAAU;IAC7C,YAAY,OAAe,EAAE,YAAoB,EAAE,KAAe;QAChE,KAAK,CAAC,cAAc,EAAE,OAAO,EAAE,YAAY,EAAE,KAAK,CAAC,CAAC;QACpD,IAAI,CAAC,IAAI,GAAG,iBAAiB,CAAC;IAChC,CAAC;CACF;AAED,MAAM,OAAO,sBAAuB,SAAQ,UAAU;IACpD,YAAY,OAAe,EAAE,YAAoB,EAAE,KAAe;QAChE,KAAK,CAAC,0BAA0B,EAAE,OAAO,EAAE,YAAY,EAAE,KAAK,CAAC,CAAC;QAChE,IAAI,CAAC,IAAI,GAAG,wBAAwB,CAAC;IACvC,CAAC;CACF;AAED,MAAM,OAAO,aAAc,SAAQ,UAAU;IAC3C,YAAY,OAAe,EAAE,YAAoB,EAAE,KAAe;QAChE,KAAK,CAAC,YAAY,EAAE,OAAO,EAAE,YAAY,EAAE,KAAK,CAAC,CAAC;QAClD,IAAI,CAAC,IAAI,GAAG,eAAe,CAAC;IAC9B,CAAC;CACF;AAED,uDAAuD;AAEvD,qEAAqE;AACrE,MAAM,UAAU,eAAe,CAAC,GAAY;IAC1C,OAAO,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;AAC1D,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,mBAAmB,CAAC,KAAa,EAAE,GAAY,EAAE,IAAY;IAC3E,IAAI,GAAG,YAAY,eAAe;QAAE,MAAM,GAAG,CAAC;IAC9C,MAAM,IAAI,eAAe,CAAC,GAAG,KAAK,KAAK,eAAe,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,0EAA0E;AACvJ,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -85,6 +85,7 @@ export type { CustomSecret, SecretsFile } from './secrets.js';
|
|
|
85
85
|
export { CustomSecretSchema, loadCustomSecrets, SecretsFileSchema } from './secrets.js';
|
|
86
86
|
export type { LedgerEvent } from './ledger.js';
|
|
87
87
|
export { appendLedgerEvent, LedgerEventSchema, readLedgerEvents } from './ledger.js';
|
|
88
|
+
export { mintSessionId, readSessionId, writeSessionId } from './session-id.js';
|
|
88
89
|
export type { ImmutableOverrideBlock, MergeRulesResult } from './pack-merge.js';
|
|
89
90
|
export { mergeRules } from './pack-merge.js';
|
|
90
91
|
export type { SafeExecOptions } from './sys/exec.js';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,YAAY,EAAE,eAAe,EAAE,eAAe,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAClG,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAGtE,YAAY,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EACL,eAAe,EACf,mBAAmB,EACnB,iBAAiB,EACjB,gBAAgB,EAChB,kBAAkB,EAClB,UAAU,EACV,aAAa,EACb,sBAAsB,EACtB,eAAe,GAChB,MAAM,aAAa,CAAC;AAGrB,YAAY,EACV,aAAa,EACb,UAAU,EACV,WAAW,EACX,SAAS,EACT,YAAY,EACZ,iBAAiB,EACjB,uBAAuB,EACvB,YAAY,EACZ,YAAY,EACZ,WAAW,GACZ,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,2BAA2B,EAC3B,mBAAmB,EACnB,YAAY,EACZ,gBAAgB,EAChB,iBAAiB,EACjB,uBAAuB,EACvB,gCAAgC,EAChC,eAAe,EACf,kBAAkB,EAClB,uBAAuB,EACvB,uBAAuB,EACvB,wBAAwB,EACxB,oBAAoB,EACpB,aAAa,EACb,kBAAkB,EAClB,oBAAoB,EACpB,oBAAoB,EACpB,kBAAkB,EAClB,gBAAgB,EAChB,kBAAkB,EAClB,2BAA2B,EAC3B,uBAAuB,EACvB,iBAAiB,GAClB,MAAM,oBAAoB,CAAC;AAG5B,YAAY,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AACtE,OAAO,EAAE,0BAA0B,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AACzF,YAAY,EAAE,iBAAiB,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAChE,OAAO,EAAE,uBAAuB,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAGvE,YAAY,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AACnE,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAG9D,YAAY,EACV,KAAK,EACL,iBAAiB,EACjB,aAAa,EACb,YAAY,EACZ,WAAW,EACX,WAAW,EACX,SAAS,GACV,MAAM,YAAY,CAAC;AAGpB,YAAY,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EACL,SAAS,IAAI,sBAAsB,EACnC,eAAe,IAAI,yBAAyB,GAC7C,MAAM,gCAAgC,CAAC;AAMxC,OAAO,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAGpG,YAAY,EACV,sBAAsB,EACtB,UAAU,EACV,yBAAyB,EACzB,oBAAoB,EACpB,mBAAmB,GACpB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,4BAA4B,EAC5B,cAAc,EACd,WAAW,EACX,kBAAkB,EAClB,oBAAoB,GACrB,MAAM,qBAAqB,CAAC;AAG7B,YAAY,EACV,oBAAoB,EACpB,qBAAqB,EACrB,0BAA0B,GAC3B,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,qBAAqB,EAAE,2BAA2B,EAAE,MAAM,2BAA2B,CAAC;AAG/F,YAAY,EACV,0BAA0B,EAC1B,sBAAsB,EACtB,mBAAmB,GACpB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAG9E,YAAY,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAG5E,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAGpD,YAAY,EAAE,aAAa,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AACtF,OAAO,EACL,kBAAkB,EAClB,eAAe,EACf,UAAU,EACV,qBAAqB,EACrB,YAAY,EACZ,OAAO,EACP,eAAe,GAChB,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAGlD,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACrE,OAAO,EACL,WAAW,EACX,qBAAqB,EACrB,gBAAgB,EAChB,kBAAkB,GACnB,MAAM,qBAAqB,CAAC;AAG7B,OAAO,EACL,cAAc,EACd,cAAc,EACd,eAAe,EACf,oBAAoB,GACrB,MAAM,gBAAgB,CAAC;AAGxB,YAAY,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EACL,gBAAgB,EAChB,kBAAkB,EAClB,oBAAoB,EACpB,YAAY,EACZ,mBAAmB,GACpB,MAAM,sBAAsB,CAAC;AAG9B,YAAY,EACV,UAAU,EACV,eAAe,EACf,YAAY,EACZ,iBAAiB,EACjB,cAAc,EACd,YAAY,EACZ,UAAU,EACV,kBAAkB,EAClB,uBAAuB,EACvB,iBAAiB,EACjB,gBAAgB,EAChB,SAAS,GACV,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,wBAAwB,EACxB,UAAU,EACV,qBAAqB,EACrB,qBAAqB,EACrB,kBAAkB,EAClB,uBAAuB,EACvB,oBAAoB,EACpB,KAAK,UAAU,EACf,YAAY,EACZ,iBAAiB,EACjB,oBAAoB,EACpB,gBAAgB,EAChB,UAAU,EACV,0BAA0B,EAC1B,iBAAiB,EACjB,qBAAqB,EACrB,WAAW,EACX,gBAAgB,EAChB,4BAA4B,EAC5B,6BAA6B,EAC7B,6BAA6B,EAC7B,qBAAqB,EACrB,KAAK,eAAe,EACpB,KAAK,iBAAiB,EACtB,iBAAiB,EACjB,iBAAiB,EACjB,qBAAqB,EACrB,mBAAmB,EACnB,aAAa,GACd,MAAM,eAAe,CAAC;AAGvB,OAAO,EACL,4BAA4B,EAC5B,KAAK,mBAAmB,EACxB,KAAK,kBAAkB,EACvB,KAAK,kBAAkB,EACvB,KAAK,WAAW,GACjB,MAAM,uCAAuC,CAAC;AAC/C,OAAO,EACL,KAAK,aAAa,EAClB,KAAK,cAAc,EACnB,cAAc,EACd,KAAK,oBAAoB,GAC1B,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,UAAU,EAAE,KAAK,cAAc,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AAGpG,OAAO,EACL,eAAe,EACf,gBAAgB,EAChB,KAAK,aAAa,EAClB,KAAK,cAAc,EACnB,aAAa,EACb,YAAY,EACZ,YAAY,EACZ,KAAK,eAAe,EACpB,KAAK,cAAc,EACnB,KAAK,eAAe,EACpB,YAAY,EACZ,eAAe,EACf,mBAAmB,EACnB,QAAQ,GACT,MAAM,kBAAkB,CAAC;AAG1B,YAAY,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,mBAAmB,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClG,YAAY,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAGrD,YAAY,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAGrE,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACrE,OAAO,EAAE,mBAAmB,EAAE,yBAAyB,EAAE,MAAM,qBAAqB,CAAC;AAGrF,OAAO,EACL,aAAa,EACb,uBAAuB,EACvB,mBAAmB,EACnB,YAAY,EACZ,cAAc,GACf,MAAM,eAAe,CAAC;AAGvB,YAAY,EAAE,QAAQ,EAAE,YAAY,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAChF,OAAO,EAAE,aAAa,EAAE,qBAAqB,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAG1E,YAAY,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACxE,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAGxD,YAAY,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAGhD,OAAO,EACL,qBAAqB,EACrB,iBAAiB,EACjB,qBAAqB,EACrB,eAAe,GAChB,MAAM,oBAAoB,CAAC;AAC5B,YAAY,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACjF,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,YAAY,EAAE,eAAe,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACxF,OAAO,EACL,gBAAgB,EAChB,sBAAsB,EACtB,YAAY,EACZ,oBAAoB,EACpB,mBAAmB,EACnB,qBAAqB,EACrB,eAAe,GAChB,MAAM,qBAAqB,CAAC;AAC7B,YAAY,EAAE,wBAAwB,EAAE,MAAM,eAAe,CAAC;AAC9D,OAAO,EACL,cAAc,EACd,oBAAoB,EACpB,wBAAwB,EACxB,WAAW,EACX,WAAW,EACX,QAAQ,EACR,oBAAoB,EACpB,iBAAiB,EACjB,kBAAkB,GACnB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,gBAAgB,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAG5D,YAAY,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EACL,iBAAiB,EACjB,oBAAoB,EACpB,0BAA0B,EAC1B,qBAAqB,EACrB,sBAAsB,EACtB,6BAA6B,GAC9B,MAAM,wBAAwB,CAAC;AAGhC,OAAO,EACL,gBAAgB,EAChB,oBAAoB,EACpB,kBAAkB,EAClB,gBAAgB,GACjB,MAAM,qBAAqB,CAAC;AAG7B,YAAY,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAG7D,YAAY,EAAE,aAAa,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpF,OAAO,EACL,eAAe,EACf,gBAAgB,EAChB,gBAAgB,EAChB,iBAAiB,EACjB,aAAa,EACb,eAAe,GAChB,MAAM,mBAAmB,CAAC;AAG3B,YAAY,EACV,eAAe,EACf,sBAAsB,EACtB,iBAAiB,EACjB,mBAAmB,EACnB,eAAe,EACf,WAAW,GACZ,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,iBAAiB,EACjB,eAAe,EACf,aAAa,EACb,qBAAqB,EACrB,oBAAoB,EACpB,sBAAsB,EACtB,kBAAkB,GACnB,MAAM,qBAAqB,CAAC;AAG7B,YAAY,EACV,0BAA0B,EAC1B,cAAc,EACd,aAAa,EACb,wBAAwB,EACxB,kBAAkB,GACnB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,sBAAsB,EACtB,kBAAkB,EAClB,6BAA6B,EAC7B,qBAAqB,EACrB,0BAA0B,EAC1B,qBAAqB,GACtB,MAAM,sBAAsB,CAAC;AAG9B,YAAY,EAAE,uBAAuB,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAC;AAClG,OAAO,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAClF,YAAY,EACV,wBAAwB,EACxB,wBAAwB,EACxB,wBAAwB,EACxB,yBAAyB,GAC1B,MAAM,4BAA4B,CAAC;AACpC,OAAO,EACL,wBAAwB,EACxB,mBAAmB,EACnB,8BAA8B,EAC9B,8BAA8B,EAC9B,yBAAyB,GAC1B,MAAM,4BAA4B,CAAC;AAGpC,YAAY,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EACL,gBAAgB,EAChB,kBAAkB,EAClB,qBAAqB,EACrB,iBAAiB,EACjB,kBAAkB,EAClB,mBAAmB,EACnB,oBAAoB,GACrB,MAAM,uBAAuB,CAAC;AAG/B,YAAY,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAClE,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAGlE,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC9D,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAGxF,YAAY,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAGrF,YAAY,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAChF,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAG7C,YAAY,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,EAAE,qBAAqB,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAGhE,OAAO,EACL,mBAAmB,EACnB,oBAAoB,EACpB,gBAAgB,EAChB,YAAY,EACZ,gBAAgB,EAChB,UAAU,EACV,eAAe,EACf,cAAc,EACd,cAAc,EACd,YAAY,EACZ,YAAY,EACZ,UAAU,EACV,mBAAmB,EACnB,WAAW,EACX,cAAc,GACf,MAAM,cAAc,CAAC;AAGtB,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAG3C,YAAY,EACV,sBAAsB,EACtB,uBAAuB,EACvB,kBAAkB,GACnB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAG7D,YAAY,EACV,cAAc,EACd,uBAAuB,EACvB,wBAAwB,GACzB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAGhE,YAAY,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAGzD,YAAY,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAC9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAGxD,YAAY,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAGzE,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAG9D,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAG7D,YAAY,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAClE,OAAO,EAAE,uBAAuB,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AAG7F,YAAY,EACV,iBAAiB,EACjB,wBAAwB,EACxB,eAAe,EACf,cAAc,GACf,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,gBAAgB,EAChB,OAAO,EACP,oBAAoB,EACpB,uBAAuB,EACvB,8BAA8B,EAC9B,qBAAqB,EACrB,oBAAoB,EACpB,kBAAkB,EAClB,gBAAgB,GACjB,MAAM,uBAAuB,CAAC;AAG/B,YAAY,EACV,wBAAwB,EACxB,iBAAiB,EACjB,gBAAgB,EAChB,eAAe,EACf,wBAAwB,GACzB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,mBAAmB,EACnB,eAAe,EACf,gBAAgB,EAChB,oBAAoB,EACpB,4BAA4B,EAC5B,8BAA8B,EAC9B,uBAAuB,EACvB,sBAAsB,EACtB,qBAAqB,EACrB,8BAA8B,EAC9B,eAAe,EACf,eAAe,EACf,eAAe,GAChB,MAAM,iBAAiB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -60,6 +60,8 @@ export { canonicalizeKeys, canonicalStringify, CompileManifestSchema, generateIn
|
|
|
60
60
|
export { readRegistry, updateRegistryEntry } from './registry.js';
|
|
61
61
|
export { CustomSecretSchema, loadCustomSecrets, SecretsFileSchema } from './secrets.js';
|
|
62
62
|
export { appendLedgerEvent, LedgerEventSchema, readLedgerEvents } from './ledger.js';
|
|
63
|
+
// Session ID — A.3.a SessionStart hook + MCP correlation
|
|
64
|
+
export { mintSessionId, readSessionId, writeSessionId } from './session-id.js';
|
|
63
65
|
export { mergeRules } from './pack-merge.js';
|
|
64
66
|
export { describeSafeExecError, safeExec } from './sys/exec.js';
|
|
65
67
|
// Git utilities (pure helpers — no CLI dependencies)
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/ledger.d.ts
CHANGED
|
@@ -2,17 +2,37 @@ import { z } from 'zod';
|
|
|
2
2
|
export declare const LedgerEventSchema: z.ZodObject<{
|
|
3
3
|
/** ISO 8601 timestamp */
|
|
4
4
|
timestamp: z.ZodString;
|
|
5
|
-
/**
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
5
|
+
/**
|
|
6
|
+
* Event type. Two semantic families:
|
|
7
|
+
*
|
|
8
|
+
* Override events (require `ruleId` + `file` at writer side):
|
|
9
|
+
* - `suppress` — inline directive (`// totem-ignore`, `// totem-context:`)
|
|
10
|
+
* - `override` — `shield --override`
|
|
11
|
+
* - `exemption` — auto/manual pattern exemption
|
|
12
|
+
*
|
|
13
|
+
* Activity events (require `agent_source` + `session_id` at writer side; no rule context):
|
|
14
|
+
* - `mcp_call` — MCP tool invocation (see `activity_name` for which tool)
|
|
15
|
+
* - `tool_call_first_significant` — first non-Read/Grep/Glob orchestrator tool call in session
|
|
16
|
+
* - `hook_fire` — lifecycle hook executed (see `activity_name` for which hook)
|
|
17
|
+
* - `session_start` — SessionStart hook fired; new `session_id` minted
|
|
18
|
+
*
|
|
19
|
+
* Schema-level: `ruleId` + `file` are optional to accommodate activity events. Writer-side
|
|
20
|
+
* discipline enforces required-by-type. Promotion to `z.discriminatedUnion` deferred to A.3.c
|
|
21
|
+
* per design doc OQ-1 (.handoff/_shared/2026-05-15-a3a-schema-extension-design.md).
|
|
22
|
+
*/
|
|
23
|
+
type: z.ZodEnum<["suppress", "override", "exemption", "mcp_call", "tool_call_first_significant", "hook_fire", "session_start"]>;
|
|
24
|
+
/** Rule ID (lessonHash) for override events. Optional; required by writer for suppress/override/exemption. */
|
|
25
|
+
ruleId: z.ZodOptional<z.ZodString>;
|
|
26
|
+
/** File where the suppression/override occurred. Optional; required by writer for suppress/override/exemption. */
|
|
27
|
+
file: z.ZodOptional<z.ZodString>;
|
|
11
28
|
/** Line number in the file */
|
|
12
29
|
line: z.ZodOptional<z.ZodNumber>;
|
|
13
30
|
/** The justification text from totem-context: (or deprecated shield-context: alias). Empty for totem-ignore. */
|
|
14
31
|
justification: z.ZodDefault<z.ZodString>;
|
|
15
|
-
/**
|
|
32
|
+
/**
|
|
33
|
+
* Emitting subsystem. Identifies which code path produced the event,
|
|
34
|
+
* orthogonal to `agent_source` (agent runtime attribution).
|
|
35
|
+
*/
|
|
16
36
|
source: z.ZodEnum<["lint", "shield", "bot"]>;
|
|
17
37
|
/**
|
|
18
38
|
* True when the bypassed rule was shipped by a pack with
|
|
@@ -22,24 +42,62 @@ export declare const LedgerEventSchema: z.ZodObject<{
|
|
|
22
42
|
* mmnto-ai/totem#1485). Absent on events from non-immutable rules.
|
|
23
43
|
*/
|
|
24
44
|
immutable: z.ZodOptional<z.ZodBoolean>;
|
|
45
|
+
/**
|
|
46
|
+
* Agent runtime that produced the event. Orthogonal to `source`
|
|
47
|
+
* (which identifies the emitting subsystem). Optional for
|
|
48
|
+
* backward-compat with pre-A.3.a events; required by writer for
|
|
49
|
+
* activity events. Per ADR-078 § Event Attribution, with the
|
|
50
|
+
* field renamed from `source` to disambiguate against the
|
|
51
|
+
* load-bearing emitter identifier already in production code.
|
|
52
|
+
*/
|
|
53
|
+
agent_source: z.ZodOptional<z.ZodEnum<["claude", "gemini", "human"]>>;
|
|
54
|
+
/**
|
|
55
|
+
* Session UUID minted at SessionStart hook fire (24h TTL, rotates on
|
|
56
|
+
* subsequent SessionStart). Persisted to `.totem/ledger/.session-id`
|
|
57
|
+
* for cross-event correlation within a session. Per ADR-029 § Session
|
|
58
|
+
* Heuristic (explicit UUID supersedes the rolling-2h activity heuristic
|
|
59
|
+
* when present). Optional for backward-compat.
|
|
60
|
+
*/
|
|
61
|
+
session_id: z.ZodOptional<z.ZodString>;
|
|
62
|
+
/**
|
|
63
|
+
* Trace correlation ID per ADR-014 — links an orchestrator run to
|
|
64
|
+
* the MCP tool calls it triggered. Optional; populated by A.3.c
|
|
65
|
+
* end-to-end correlation propagation.
|
|
66
|
+
*/
|
|
67
|
+
correlation_id: z.ZodOptional<z.ZodString>;
|
|
68
|
+
/**
|
|
69
|
+
* Sub-type discriminator for activity events. Examples:
|
|
70
|
+
* `mcp_call` → 'search_knowledge' | 'describe_project' | ...
|
|
71
|
+
* `hook_fire` → 'SessionStart' | 'PreToolUse' | 'pre-push' | ...
|
|
72
|
+
* Optional; meaningful only on activity events.
|
|
73
|
+
*/
|
|
74
|
+
activity_name: z.ZodOptional<z.ZodString>;
|
|
25
75
|
}, "strip", z.ZodTypeAny, {
|
|
26
|
-
type: "suppress" | "override" | "exemption";
|
|
27
|
-
file: string;
|
|
76
|
+
type: "suppress" | "override" | "exemption" | "mcp_call" | "tool_call_first_significant" | "hook_fire" | "session_start";
|
|
28
77
|
justification: string;
|
|
29
78
|
source: "lint" | "shield" | "bot";
|
|
30
79
|
timestamp: string;
|
|
31
|
-
ruleId: string;
|
|
32
80
|
immutable?: boolean | undefined;
|
|
81
|
+
file?: string | undefined;
|
|
33
82
|
line?: number | undefined;
|
|
83
|
+
ruleId?: string | undefined;
|
|
84
|
+
agent_source?: "gemini" | "claude" | "human" | undefined;
|
|
85
|
+
session_id?: string | undefined;
|
|
86
|
+
correlation_id?: string | undefined;
|
|
87
|
+
activity_name?: string | undefined;
|
|
34
88
|
}, {
|
|
35
|
-
type: "suppress" | "override" | "exemption";
|
|
36
|
-
file: string;
|
|
89
|
+
type: "suppress" | "override" | "exemption" | "mcp_call" | "tool_call_first_significant" | "hook_fire" | "session_start";
|
|
37
90
|
source: "lint" | "shield" | "bot";
|
|
38
91
|
timestamp: string;
|
|
39
|
-
ruleId: string;
|
|
40
92
|
immutable?: boolean | undefined;
|
|
93
|
+
file?: string | undefined;
|
|
41
94
|
line?: number | undefined;
|
|
42
95
|
justification?: string | undefined;
|
|
96
|
+
ruleId?: string | undefined;
|
|
97
|
+
agent_source?: "gemini" | "claude" | "human" | undefined;
|
|
98
|
+
session_id?: string | undefined;
|
|
99
|
+
correlation_id?: string | undefined;
|
|
100
|
+
activity_name?: string | undefined;
|
|
43
101
|
}>;
|
|
44
102
|
export type LedgerEvent = z.infer<typeof LedgerEventSchema>;
|
|
45
103
|
/**
|
package/dist/ledger.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ledger.d.ts","sourceRoot":"","sources":["../src/ledger.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,eAAO,MAAM,iBAAiB;IAC5B,yBAAyB;;IAEzB
|
|
1
|
+
{"version":3,"file":"ledger.d.ts","sourceRoot":"","sources":["../src/ledger.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,eAAO,MAAM,iBAAiB;IAC5B,yBAAyB;;IAEzB;;;;;;;;;;;;;;;;;OAiBG;;IAUH,8GAA8G;;IAE9G,kHAAkH;;IAElH,8BAA8B;;IAE9B,gHAAgH;;IAEhH;;;OAGG;;IAEH;;;;;;OAMG;;IAEH;;;;;;;OAOG;;IAEH;;;;;;OAMG;;IAEH;;;;OAIG;;IAEH;;;;;OAKG;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAEH,CAAC;AAEH,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAS5D;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,WAAW,EAClB,MAAM,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,GAC7B,IAAI,CAaN;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,GAAG,WAAW,EAAE,CAwBhG"}
|
package/dist/ledger.js
CHANGED
|
@@ -5,17 +5,45 @@ import { z } from 'zod';
|
|
|
5
5
|
export const LedgerEventSchema = z.object({
|
|
6
6
|
/** ISO 8601 timestamp */
|
|
7
7
|
timestamp: z.string().datetime(),
|
|
8
|
-
/**
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
8
|
+
/**
|
|
9
|
+
* Event type. Two semantic families:
|
|
10
|
+
*
|
|
11
|
+
* Override events (require `ruleId` + `file` at writer side):
|
|
12
|
+
* - `suppress` — inline directive (`// totem-ignore`, `// totem-context:`)
|
|
13
|
+
* - `override` — `shield --override`
|
|
14
|
+
* - `exemption` — auto/manual pattern exemption
|
|
15
|
+
*
|
|
16
|
+
* Activity events (require `agent_source` + `session_id` at writer side; no rule context):
|
|
17
|
+
* - `mcp_call` — MCP tool invocation (see `activity_name` for which tool)
|
|
18
|
+
* - `tool_call_first_significant` — first non-Read/Grep/Glob orchestrator tool call in session
|
|
19
|
+
* - `hook_fire` — lifecycle hook executed (see `activity_name` for which hook)
|
|
20
|
+
* - `session_start` — SessionStart hook fired; new `session_id` minted
|
|
21
|
+
*
|
|
22
|
+
* Schema-level: `ruleId` + `file` are optional to accommodate activity events. Writer-side
|
|
23
|
+
* discipline enforces required-by-type. Promotion to `z.discriminatedUnion` deferred to A.3.c
|
|
24
|
+
* per design doc OQ-1 (.handoff/_shared/2026-05-15-a3a-schema-extension-design.md).
|
|
25
|
+
*/
|
|
26
|
+
type: z.enum([
|
|
27
|
+
'suppress',
|
|
28
|
+
'override',
|
|
29
|
+
'exemption',
|
|
30
|
+
'mcp_call',
|
|
31
|
+
'tool_call_first_significant',
|
|
32
|
+
'hook_fire',
|
|
33
|
+
'session_start',
|
|
34
|
+
]),
|
|
35
|
+
/** Rule ID (lessonHash) for override events. Optional; required by writer for suppress/override/exemption. */
|
|
36
|
+
ruleId: z.string().trim().min(1).optional(),
|
|
37
|
+
/** File where the suppression/override occurred. Optional; required by writer for suppress/override/exemption. */
|
|
38
|
+
file: z.string().trim().min(1).optional(),
|
|
14
39
|
/** Line number in the file */
|
|
15
40
|
line: z.number().int().positive().optional(),
|
|
16
41
|
/** The justification text from totem-context: (or deprecated shield-context: alias). Empty for totem-ignore. */
|
|
17
42
|
justification: z.string().default(''),
|
|
18
|
-
/**
|
|
43
|
+
/**
|
|
44
|
+
* Emitting subsystem. Identifies which code path produced the event,
|
|
45
|
+
* orthogonal to `agent_source` (agent runtime attribution).
|
|
46
|
+
*/
|
|
19
47
|
source: z.enum(['lint', 'shield', 'bot']),
|
|
20
48
|
/**
|
|
21
49
|
* True when the bypassed rule was shipped by a pack with
|
|
@@ -25,6 +53,36 @@ export const LedgerEventSchema = z.object({
|
|
|
25
53
|
* mmnto-ai/totem#1485). Absent on events from non-immutable rules.
|
|
26
54
|
*/
|
|
27
55
|
immutable: z.boolean().optional(),
|
|
56
|
+
/**
|
|
57
|
+
* Agent runtime that produced the event. Orthogonal to `source`
|
|
58
|
+
* (which identifies the emitting subsystem). Optional for
|
|
59
|
+
* backward-compat with pre-A.3.a events; required by writer for
|
|
60
|
+
* activity events. Per ADR-078 § Event Attribution, with the
|
|
61
|
+
* field renamed from `source` to disambiguate against the
|
|
62
|
+
* load-bearing emitter identifier already in production code.
|
|
63
|
+
*/
|
|
64
|
+
agent_source: z.enum(['claude', 'gemini', 'human']).optional(),
|
|
65
|
+
/**
|
|
66
|
+
* Session UUID minted at SessionStart hook fire (24h TTL, rotates on
|
|
67
|
+
* subsequent SessionStart). Persisted to `.totem/ledger/.session-id`
|
|
68
|
+
* for cross-event correlation within a session. Per ADR-029 § Session
|
|
69
|
+
* Heuristic (explicit UUID supersedes the rolling-2h activity heuristic
|
|
70
|
+
* when present). Optional for backward-compat.
|
|
71
|
+
*/
|
|
72
|
+
session_id: z.string().uuid().optional(),
|
|
73
|
+
/**
|
|
74
|
+
* Trace correlation ID per ADR-014 — links an orchestrator run to
|
|
75
|
+
* the MCP tool calls it triggered. Optional; populated by A.3.c
|
|
76
|
+
* end-to-end correlation propagation.
|
|
77
|
+
*/
|
|
78
|
+
correlation_id: z.string().uuid().optional(),
|
|
79
|
+
/**
|
|
80
|
+
* Sub-type discriminator for activity events. Examples:
|
|
81
|
+
* `mcp_call` → 'search_knowledge' | 'describe_project' | ...
|
|
82
|
+
* `hook_fire` → 'SessionStart' | 'PreToolUse' | 'pre-push' | ...
|
|
83
|
+
* Optional; meaningful only on activity events.
|
|
84
|
+
*/
|
|
85
|
+
activity_name: z.string().trim().min(1).optional(),
|
|
28
86
|
});
|
|
29
87
|
// ─── Constants ──────────────────────────────────────
|
|
30
88
|
const LEDGER_DIR = 'ledger';
|
package/dist/ledger.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ledger.js","sourceRoot":"","sources":["../src/ledger.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAElC,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,uDAAuD;AAEvD,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,CAAC;IACxC,yBAAyB;IACzB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAChC
|
|
1
|
+
{"version":3,"file":"ledger.js","sourceRoot":"","sources":["../src/ledger.ts"],"names":[],"mappings":"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"}
|
package/dist/ledger.test.js
CHANGED
|
@@ -23,6 +23,18 @@ function makeEvent(overrides = {}) {
|
|
|
23
23
|
...overrides,
|
|
24
24
|
};
|
|
25
25
|
}
|
|
26
|
+
function makeActivityEvent(overrides = {}) {
|
|
27
|
+
return {
|
|
28
|
+
timestamp: '2026-05-15T03:00:00.000Z',
|
|
29
|
+
type: 'mcp_call',
|
|
30
|
+
justification: '',
|
|
31
|
+
source: 'bot',
|
|
32
|
+
agent_source: 'claude',
|
|
33
|
+
session_id: '550e8400-e29b-41d4-a716-446655440000',
|
|
34
|
+
activity_name: 'search_knowledge',
|
|
35
|
+
...overrides,
|
|
36
|
+
};
|
|
37
|
+
}
|
|
26
38
|
// ─── LedgerEventSchema ─────────────────────────────────
|
|
27
39
|
describe('LedgerEventSchema', () => {
|
|
28
40
|
it('validates a well-formed event', () => {
|
|
@@ -57,6 +69,188 @@ describe('LedgerEventSchema', () => {
|
|
|
57
69
|
const result = LedgerEventSchema.safeParse(event);
|
|
58
70
|
expect(result.success).toBe(false);
|
|
59
71
|
});
|
|
72
|
+
// ─── Activity events (A.3.a schema extension) ────────────────
|
|
73
|
+
it('accepts an mcp_call activity event with agent_source + session_id + activity_name', () => {
|
|
74
|
+
const event = makeActivityEvent();
|
|
75
|
+
const result = LedgerEventSchema.safeParse(event);
|
|
76
|
+
expect(result.success).toBe(true);
|
|
77
|
+
if (result.success) {
|
|
78
|
+
expect(result.data.type).toBe('mcp_call');
|
|
79
|
+
expect(result.data.agent_source).toBe('claude');
|
|
80
|
+
expect(result.data.session_id).toBe('550e8400-e29b-41d4-a716-446655440000');
|
|
81
|
+
expect(result.data.activity_name).toBe('search_knowledge');
|
|
82
|
+
expect(result.data.ruleId).toBeUndefined();
|
|
83
|
+
expect(result.data.file).toBeUndefined();
|
|
84
|
+
}
|
|
85
|
+
});
|
|
86
|
+
it('accepts a session_start activity event without ruleId or file', () => {
|
|
87
|
+
const event = makeActivityEvent({
|
|
88
|
+
type: 'session_start',
|
|
89
|
+
activity_name: 'SessionStart',
|
|
90
|
+
});
|
|
91
|
+
const result = LedgerEventSchema.safeParse(event);
|
|
92
|
+
expect(result.success).toBe(true);
|
|
93
|
+
if (result.success) {
|
|
94
|
+
expect(result.data.type).toBe('session_start');
|
|
95
|
+
expect(result.data.activity_name).toBe('SessionStart');
|
|
96
|
+
}
|
|
97
|
+
});
|
|
98
|
+
it('accepts a tool_call_first_significant activity event', () => {
|
|
99
|
+
const event = makeActivityEvent({
|
|
100
|
+
type: 'tool_call_first_significant',
|
|
101
|
+
activity_name: 'Write',
|
|
102
|
+
file: 'src/foo.ts',
|
|
103
|
+
});
|
|
104
|
+
const result = LedgerEventSchema.safeParse(event);
|
|
105
|
+
expect(result.success).toBe(true);
|
|
106
|
+
});
|
|
107
|
+
it('accepts a hook_fire activity event with activity_name discriminator', () => {
|
|
108
|
+
const event = makeActivityEvent({
|
|
109
|
+
type: 'hook_fire',
|
|
110
|
+
activity_name: 'PreToolUse',
|
|
111
|
+
});
|
|
112
|
+
const result = LedgerEventSchema.safeParse(event);
|
|
113
|
+
expect(result.success).toBe(true);
|
|
114
|
+
});
|
|
115
|
+
it('accepts all three agent_source values', () => {
|
|
116
|
+
for (const value of ['claude', 'gemini', 'human']) {
|
|
117
|
+
const event = makeActivityEvent({ agent_source: value });
|
|
118
|
+
const result = LedgerEventSchema.safeParse(event);
|
|
119
|
+
expect(result.success).toBe(true);
|
|
120
|
+
}
|
|
121
|
+
});
|
|
122
|
+
it('rejects an unknown agent_source value', () => {
|
|
123
|
+
const event = makeActivityEvent({
|
|
124
|
+
// @ts-expect-error — intentionally invalid for the test
|
|
125
|
+
agent_source: 'cursor',
|
|
126
|
+
});
|
|
127
|
+
const result = LedgerEventSchema.safeParse(event);
|
|
128
|
+
expect(result.success).toBe(false);
|
|
129
|
+
});
|
|
130
|
+
it('rejects a malformed session_id UUID', () => {
|
|
131
|
+
const event = makeActivityEvent({ session_id: 'not-a-uuid' });
|
|
132
|
+
const result = LedgerEventSchema.safeParse(event);
|
|
133
|
+
expect(result.success).toBe(false);
|
|
134
|
+
});
|
|
135
|
+
it('rejects a malformed correlation_id UUID', () => {
|
|
136
|
+
const event = makeActivityEvent({ correlation_id: 'not-a-uuid' });
|
|
137
|
+
const result = LedgerEventSchema.safeParse(event);
|
|
138
|
+
expect(result.success).toBe(false);
|
|
139
|
+
});
|
|
140
|
+
it('rejects an empty activity_name', () => {
|
|
141
|
+
const event = makeActivityEvent({ activity_name: '' });
|
|
142
|
+
const result = LedgerEventSchema.safeParse(event);
|
|
143
|
+
expect(result.success).toBe(false);
|
|
144
|
+
});
|
|
145
|
+
it('accepts a pre-A.3.a override event (no new optional fields populated)', () => {
|
|
146
|
+
// Mirrors what a pre-A.3.a writer produces; round-trip must remain compatible.
|
|
147
|
+
const legacyEvent = {
|
|
148
|
+
timestamp: '2026-03-25T12:00:00.000Z',
|
|
149
|
+
type: 'suppress',
|
|
150
|
+
ruleId: 'abc123',
|
|
151
|
+
file: 'src/index.ts',
|
|
152
|
+
justification: 'legacy',
|
|
153
|
+
source: 'lint',
|
|
154
|
+
};
|
|
155
|
+
const result = LedgerEventSchema.safeParse(legacyEvent);
|
|
156
|
+
expect(result.success).toBe(true);
|
|
157
|
+
if (result.success) {
|
|
158
|
+
expect(result.data.agent_source).toBeUndefined();
|
|
159
|
+
expect(result.data.session_id).toBeUndefined();
|
|
160
|
+
expect(result.data.correlation_id).toBeUndefined();
|
|
161
|
+
expect(result.data.activity_name).toBeUndefined();
|
|
162
|
+
}
|
|
163
|
+
});
|
|
164
|
+
it('accepts an override event with the new optional attribution fields populated', () => {
|
|
165
|
+
const event = makeEvent({
|
|
166
|
+
type: 'override',
|
|
167
|
+
source: 'shield',
|
|
168
|
+
agent_source: 'claude',
|
|
169
|
+
session_id: '550e8400-e29b-41d4-a716-446655440000',
|
|
170
|
+
correlation_id: '6ba7b810-9dad-11d1-80b4-00c04fd430c8',
|
|
171
|
+
});
|
|
172
|
+
const result = LedgerEventSchema.safeParse(event);
|
|
173
|
+
expect(result.success).toBe(true);
|
|
174
|
+
if (result.success) {
|
|
175
|
+
expect(result.data.agent_source).toBe('claude');
|
|
176
|
+
expect(result.data.correlation_id).toBe('6ba7b810-9dad-11d1-80b4-00c04fd430c8');
|
|
177
|
+
}
|
|
178
|
+
});
|
|
179
|
+
});
|
|
180
|
+
// ─── Test-fixture per-branch field-presence (factory output validation) ─────
|
|
181
|
+
//
|
|
182
|
+
// SCOPE (honest about what this catches): these tests exercise the local
|
|
183
|
+
// `makeEvent` / `makeActivityEvent` test factories defined above and assert
|
|
184
|
+
// each event type's factory output carries its required-by-semantics fields.
|
|
185
|
+
// They catch FIXTURE drift — if a future edit to `makeEvent` removes a default
|
|
186
|
+
// required-by-type field, these tests fail.
|
|
187
|
+
//
|
|
188
|
+
// THEY DO NOT exercise real writers (CR R2 catch — `ledger.test.ts:291`).
|
|
189
|
+
// Writer-regression coverage lives in the consumer-side test files where the
|
|
190
|
+
// actual writers run:
|
|
191
|
+
// - `mcp_call` → `packages/mcp/src/ledger-writer.test.ts` (logMcpCall)
|
|
192
|
+
// - `session_start`→ `packages/cli/src/commands/init.test.ts` (CLAUDE_SESSION_START template content tests)
|
|
193
|
+
// - `suppress` / `override` / `exemption` → run-compiled-rules.test.ts /
|
|
194
|
+
// shield.test.ts / exemption.test.ts (writers in @mmnto/cli)
|
|
195
|
+
//
|
|
196
|
+
// STRUCTURAL FIX: per OQ-1 disposition (strategy-Claude T0345Z, cross-stream
|
|
197
|
+
// dispatch chain), the discriminated-union promotion in A.3.c will enforce
|
|
198
|
+
// per-branch field presence at the schema level — at that point these
|
|
199
|
+
// fixture-validation tests become redundant against the schema AND the
|
|
200
|
+
// distributed consumer-side writer tests serve as the regression coverage.
|
|
201
|
+
//
|
|
202
|
+
// Retaining the block as a sanity-check on factory stability; full real-writer
|
|
203
|
+
// coverage in the A.3.a window would require cross-package test imports that
|
|
204
|
+
// exceed the sprint's "no call-site changes to existing writers" DoD.
|
|
205
|
+
describe('test-fixture per-branch field presence (factory output validation)', () => {
|
|
206
|
+
// Helper: each test builds an event using makeEvent/makeActivityEvent
|
|
207
|
+
// factories (which populate required-by-type fields by default), then
|
|
208
|
+
// asserts each required field is defined and non-empty on the resulting
|
|
209
|
+
// object. Catches factory drift; does NOT catch real writer regressions
|
|
210
|
+
// (see § "SCOPE" above for the writer-coverage map).
|
|
211
|
+
function expectWriterCarriesFields(event, requiredByType) {
|
|
212
|
+
for (const field of requiredByType) {
|
|
213
|
+
const fieldValue = event[field];
|
|
214
|
+
expect(fieldValue, `expected ${event.type} event to carry ${String(field)}`).toBeDefined();
|
|
215
|
+
if (typeof fieldValue === 'string') {
|
|
216
|
+
expect(fieldValue.length, `expected non-empty ${String(field)}`).toBeGreaterThan(0);
|
|
217
|
+
}
|
|
218
|
+
}
|
|
219
|
+
}
|
|
220
|
+
it('suppress events carry ruleId + file', () => {
|
|
221
|
+
expectWriterCarriesFields(makeEvent({ type: 'suppress' }), ['ruleId', 'file']);
|
|
222
|
+
});
|
|
223
|
+
it('override events carry ruleId + file', () => {
|
|
224
|
+
expectWriterCarriesFields(makeEvent({ type: 'override', source: 'shield' }), [
|
|
225
|
+
'ruleId',
|
|
226
|
+
'file',
|
|
227
|
+
]);
|
|
228
|
+
});
|
|
229
|
+
it('exemption events carry ruleId + file', () => {
|
|
230
|
+
expectWriterCarriesFields(makeEvent({ type: 'exemption', source: 'bot' }), ['ruleId', 'file']);
|
|
231
|
+
});
|
|
232
|
+
it('mcp_call events carry agent_source + session_id + activity_name', () => {
|
|
233
|
+
expectWriterCarriesFields(makeActivityEvent({ type: 'mcp_call' }), [
|
|
234
|
+
'agent_source',
|
|
235
|
+
'session_id',
|
|
236
|
+
'activity_name',
|
|
237
|
+
]);
|
|
238
|
+
});
|
|
239
|
+
it('session_start events carry agent_source + session_id', () => {
|
|
240
|
+
// session_start is what the SessionStart hook emits; agent_source identifies
|
|
241
|
+
// the orchestrator vendor (hook knows its own origin), session_id is the
|
|
242
|
+
// freshly-minted UUID that subsequent events correlate against.
|
|
243
|
+
expectWriterCarriesFields(makeActivityEvent({ type: 'session_start', activity_name: 'SessionStart' }), ['agent_source', 'session_id']);
|
|
244
|
+
});
|
|
245
|
+
it('hook_fire events carry agent_source + session_id + activity_name', () => {
|
|
246
|
+
expectWriterCarriesFields(makeActivityEvent({ type: 'hook_fire', activity_name: 'PreToolUse' }), ['agent_source', 'session_id', 'activity_name']);
|
|
247
|
+
});
|
|
248
|
+
it('tool_call_first_significant events carry agent_source + session_id', () => {
|
|
249
|
+
// activity_name (e.g., 'Write', 'Bash') is informational on this event type
|
|
250
|
+
// but not required by writer discipline — the timestamp + session_id pair is
|
|
251
|
+
// what the ADR-029 metric anchors on.
|
|
252
|
+
expectWriterCarriesFields(makeActivityEvent({ type: 'tool_call_first_significant', activity_name: 'Write' }), ['agent_source', 'session_id']);
|
|
253
|
+
});
|
|
60
254
|
});
|
|
61
255
|
// ─── appendLedgerEvent ──────────────────────────────────
|
|
62
256
|
describe('appendLedgerEvent', () => {
|
|
@@ -144,5 +338,39 @@ describe('readLedgerEvents', () => {
|
|
|
144
338
|
const events = readLedgerEvents(tmpDir);
|
|
145
339
|
expect(events).toEqual([]);
|
|
146
340
|
});
|
|
341
|
+
it('round-trips activity events alongside override events', () => {
|
|
342
|
+
// Mixed-event ledger — simulates a real session where override events
|
|
343
|
+
// (lint/shield bypasses) coexist with activity events (MCP calls, etc.).
|
|
344
|
+
const sessionId = '550e8400-e29b-41d4-a716-446655440000';
|
|
345
|
+
const sessionStart = makeActivityEvent({
|
|
346
|
+
type: 'session_start',
|
|
347
|
+
activity_name: 'SessionStart',
|
|
348
|
+
session_id: sessionId,
|
|
349
|
+
});
|
|
350
|
+
const mcpCall = makeActivityEvent({
|
|
351
|
+
type: 'mcp_call',
|
|
352
|
+
activity_name: 'search_knowledge',
|
|
353
|
+
session_id: sessionId,
|
|
354
|
+
});
|
|
355
|
+
const overrideEvent = makeEvent({
|
|
356
|
+
type: 'override',
|
|
357
|
+
source: 'shield',
|
|
358
|
+
ruleId: 'rule-xyz',
|
|
359
|
+
agent_source: 'claude',
|
|
360
|
+
session_id: sessionId,
|
|
361
|
+
});
|
|
362
|
+
appendLedgerEvent(tmpDir, sessionStart);
|
|
363
|
+
appendLedgerEvent(tmpDir, mcpCall);
|
|
364
|
+
appendLedgerEvent(tmpDir, overrideEvent);
|
|
365
|
+
const events = readLedgerEvents(tmpDir);
|
|
366
|
+
expect(events).toHaveLength(3);
|
|
367
|
+
expect(events[0].type).toBe('session_start');
|
|
368
|
+
expect(events[1].type).toBe('mcp_call');
|
|
369
|
+
expect(events[1].activity_name).toBe('search_knowledge');
|
|
370
|
+
expect(events[2].type).toBe('override');
|
|
371
|
+
expect(events[2].ruleId).toBe('rule-xyz');
|
|
372
|
+
// All three share the session_id — enables per-session compliance computation (A.3.b).
|
|
373
|
+
expect(events.every((e) => e.session_id === sessionId)).toBe(true);
|
|
374
|
+
});
|
|
147
375
|
});
|
|
148
376
|
//# sourceMappingURL=ledger.test.js.map
|
package/dist/ledger.test.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ledger.test.js","sourceRoot":"","sources":["../src/ledger.test.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ledger.test.js","sourceRoot":"","sources":["../src/ledger.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Session ID utilities for the Trap Ledger A.3.a schema extension.
|
|
3
|
+
*
|
|
4
|
+
* The SessionStart hook mints a UUID and persists it to `.totem/ledger/.session-id`.
|
|
5
|
+
* Subsequent MCP calls and ledger writes within the same session correlate via this
|
|
6
|
+
* UUID. Per ADR-029 § Session Heuristic, the explicit UUID supersedes the rolling-2h
|
|
7
|
+
* activity-based heuristic when present; the TTL fallback handles long-running
|
|
8
|
+
* sessions exceeding 24h or sessions that bypass the SessionStart hook.
|
|
9
|
+
*/
|
|
10
|
+
/** Mint a fresh session UUID. */
|
|
11
|
+
export declare function mintSessionId(): string;
|
|
12
|
+
/**
|
|
13
|
+
* Persist a session ID to `<totemDir>/ledger/.session-id`.
|
|
14
|
+
* Creates the ledger directory if it doesn't exist. Fire-and-forget on I/O failure.
|
|
15
|
+
*/
|
|
16
|
+
export declare function writeSessionId(totemDir: string, sessionId: string, onWarn?: (msg: string) => void): void;
|
|
17
|
+
/**
|
|
18
|
+
* Read the current session ID from `<totemDir>/ledger/.session-id`.
|
|
19
|
+
*
|
|
20
|
+
* Returns the persisted UUID when present AND within the TTL window. Returns
|
|
21
|
+
* undefined when the file is missing, malformed, or expired (file older than
|
|
22
|
+
* `ttlHours` per Q-9 — fallback for long sessions or hookless agents).
|
|
23
|
+
*
|
|
24
|
+
* The TTL fallback uses file mtime; sessions exceeding the window are treated
|
|
25
|
+
* as "missing" so callers can defensively decide whether to rotate.
|
|
26
|
+
*
|
|
27
|
+
* Race-condition note (strategy-Claude T0345Z): if a ledger writer reads this
|
|
28
|
+
* file mid-SessionStart-hook rotation, it will stamp the event with the prior
|
|
29
|
+
* session UUID. This is intentional and NOT a bug — the event's timestamp
|
|
30
|
+
* reflects when it actually fired, and the ADR-029 compliance metric considers
|
|
31
|
+
* it part of the prior session (correctly, per its temporal semantics). Future
|
|
32
|
+
* readers tempted to "fix" this race by guarding rotation with a lockfile
|
|
33
|
+
* should re-read this doc-comment and the metric semantics before changing.
|
|
34
|
+
*/
|
|
35
|
+
export declare function readSessionId(totemDir: string, ttlHours?: number): string | undefined;
|
|
36
|
+
//# sourceMappingURL=session-id.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session-id.d.ts","sourceRoot":"","sources":["../src/session-id.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAYH,iCAAiC;AACjC,wBAAgB,aAAa,IAAI,MAAM,CAEtC;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAC5B,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,MAAM,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,GAC7B,IAAI,CAwBN;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,SAAoB,GAAG,MAAM,GAAG,SAAS,CAgChG"}
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Session ID utilities for the Trap Ledger A.3.a schema extension.
|
|
3
|
+
*
|
|
4
|
+
* The SessionStart hook mints a UUID and persists it to `.totem/ledger/.session-id`.
|
|
5
|
+
* Subsequent MCP calls and ledger writes within the same session correlate via this
|
|
6
|
+
* UUID. Per ADR-029 § Session Heuristic, the explicit UUID supersedes the rolling-2h
|
|
7
|
+
* activity-based heuristic when present; the TTL fallback handles long-running
|
|
8
|
+
* sessions exceeding 24h or sessions that bypass the SessionStart hook.
|
|
9
|
+
*/
|
|
10
|
+
import * as crypto from 'node:crypto';
|
|
11
|
+
import * as fs from 'node:fs';
|
|
12
|
+
import * as path from 'node:path';
|
|
13
|
+
import { TotemError } from './errors.js';
|
|
14
|
+
const SESSION_ID_FILE = '.session-id';
|
|
15
|
+
const LEDGER_DIR = 'ledger';
|
|
16
|
+
const DEFAULT_TTL_HOURS = 24;
|
|
17
|
+
/** Mint a fresh session UUID. */
|
|
18
|
+
export function mintSessionId() {
|
|
19
|
+
return crypto.randomUUID();
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Persist a session ID to `<totemDir>/ledger/.session-id`.
|
|
23
|
+
* Creates the ledger directory if it doesn't exist. Fire-and-forget on I/O failure.
|
|
24
|
+
*/
|
|
25
|
+
export function writeSessionId(totemDir, sessionId, onWarn) {
|
|
26
|
+
try {
|
|
27
|
+
const ledgerDir = path.join(totemDir, LEDGER_DIR);
|
|
28
|
+
fs.mkdirSync(ledgerDir, { recursive: true });
|
|
29
|
+
fs.writeFileSync(path.join(ledgerDir, SESSION_ID_FILE), sessionId, 'utf-8');
|
|
30
|
+
}
|
|
31
|
+
catch (err) {
|
|
32
|
+
const code = typeof err === 'object' && err !== null ? err.code : undefined;
|
|
33
|
+
const msg = err instanceof Error ? err.message : String(err);
|
|
34
|
+
// Known fs failure classes are fire-and-forget — SessionStart must not
|
|
35
|
+
// block on telemetry write (sensors-not-actuators per lesson-b1bae311).
|
|
36
|
+
if (code === 'ENOENT' || code === 'EACCES' || code === 'EPERM' || code === 'EROFS') {
|
|
37
|
+
onWarn?.(`Session-ID write failed: ${msg}`);
|
|
38
|
+
return;
|
|
39
|
+
}
|
|
40
|
+
// Unexpected error class — wrap with TotemError per styleguide cause-chains
|
|
41
|
+
// rule (line 120). Tenet 4 Fail Loud satisfied via .cause chain.
|
|
42
|
+
throw new TotemError('SESSION_ID_WRITE_FAILED', 'Unexpected error writing session ID', 'Check filesystem permissions for the .totem/ledger directory.', err);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Read the current session ID from `<totemDir>/ledger/.session-id`.
|
|
47
|
+
*
|
|
48
|
+
* Returns the persisted UUID when present AND within the TTL window. Returns
|
|
49
|
+
* undefined when the file is missing, malformed, or expired (file older than
|
|
50
|
+
* `ttlHours` per Q-9 — fallback for long sessions or hookless agents).
|
|
51
|
+
*
|
|
52
|
+
* The TTL fallback uses file mtime; sessions exceeding the window are treated
|
|
53
|
+
* as "missing" so callers can defensively decide whether to rotate.
|
|
54
|
+
*
|
|
55
|
+
* Race-condition note (strategy-Claude T0345Z): if a ledger writer reads this
|
|
56
|
+
* file mid-SessionStart-hook rotation, it will stamp the event with the prior
|
|
57
|
+
* session UUID. This is intentional and NOT a bug — the event's timestamp
|
|
58
|
+
* reflects when it actually fired, and the ADR-029 compliance metric considers
|
|
59
|
+
* it part of the prior session (correctly, per its temporal semantics). Future
|
|
60
|
+
* readers tempted to "fix" this race by guarding rotation with a lockfile
|
|
61
|
+
* should re-read this doc-comment and the metric semantics before changing.
|
|
62
|
+
*/
|
|
63
|
+
export function readSessionId(totemDir, ttlHours = DEFAULT_TTL_HOURS) {
|
|
64
|
+
const filePath = path.join(totemDir, LEDGER_DIR, SESSION_ID_FILE);
|
|
65
|
+
try {
|
|
66
|
+
const stat = fs.statSync(filePath);
|
|
67
|
+
const ageMs = Date.now() - stat.mtimeMs;
|
|
68
|
+
if (ageMs > ttlHours * 60 * 60 * 1000)
|
|
69
|
+
return undefined;
|
|
70
|
+
const contents = fs.readFileSync(filePath, 'utf-8').trim();
|
|
71
|
+
// Validate UUID shape — defensive against partial writes or hand-edits.
|
|
72
|
+
if (!/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i.test(contents)) {
|
|
73
|
+
return undefined;
|
|
74
|
+
}
|
|
75
|
+
return contents;
|
|
76
|
+
}
|
|
77
|
+
catch (err) {
|
|
78
|
+
const code = typeof err === 'object' && err !== null ? err.code : undefined;
|
|
79
|
+
// Missing/unreadable .session-id is a normal state (pre-hook session,
|
|
80
|
+
// hookless agent, stale file outside TTL). Treat as "no session ID
|
|
81
|
+
// available" — same downstream behavior as the TTL-expired branch.
|
|
82
|
+
// EPERM + EROFS added for parity with writeSessionId's fs-failure-class
|
|
83
|
+
// discrimination (CR + GCA Round-1 catch).
|
|
84
|
+
if (code === 'ENOENT' || code === 'EACCES' || code === 'EPERM' || code === 'EROFS') {
|
|
85
|
+
return undefined;
|
|
86
|
+
}
|
|
87
|
+
// Unexpected error class — wrap with TotemError per styleguide cause-chains
|
|
88
|
+
// rule (line 120). Tenet 4 Fail Loud satisfied via .cause chain.
|
|
89
|
+
throw new TotemError('SESSION_ID_READ_FAILED', 'Unexpected error reading session ID', 'Check filesystem permissions for the .totem/ledger/.session-id file.', err);
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
//# sourceMappingURL=session-id.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session-id.js","sourceRoot":"","sources":["../src/session-id.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session-id.test.d.ts","sourceRoot":"","sources":["../src/session-id.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,191 @@
|
|
|
1
|
+
import * as os from 'node:os';
|
|
2
|
+
import * as path from 'node:path';
|
|
3
|
+
import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest';
|
|
4
|
+
// Mock node:fs so spyOn works in ESM — same pattern as test-utils.test.ts.
|
|
5
|
+
vi.mock('node:fs', async () => {
|
|
6
|
+
const actual = await vi.importActual('node:fs');
|
|
7
|
+
return { ...actual, default: actual };
|
|
8
|
+
});
|
|
9
|
+
import * as fs from 'node:fs';
|
|
10
|
+
import { TotemError } from './errors.js';
|
|
11
|
+
import { mintSessionId, readSessionId, writeSessionId } from './session-id.js';
|
|
12
|
+
import { cleanTmpDir } from './test-utils.js';
|
|
13
|
+
let tmpDir;
|
|
14
|
+
beforeEach(() => {
|
|
15
|
+
tmpDir = fs.mkdtempSync(path.join(os.tmpdir(), 'totem-session-'));
|
|
16
|
+
});
|
|
17
|
+
afterEach(() => {
|
|
18
|
+
cleanTmpDir(tmpDir);
|
|
19
|
+
});
|
|
20
|
+
describe('mintSessionId', () => {
|
|
21
|
+
it('returns a v4 UUID string', () => {
|
|
22
|
+
const id = mintSessionId();
|
|
23
|
+
expect(id).toMatch(/^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i);
|
|
24
|
+
});
|
|
25
|
+
it('returns distinct values across calls', () => {
|
|
26
|
+
const a = mintSessionId();
|
|
27
|
+
const b = mintSessionId();
|
|
28
|
+
expect(a).not.toBe(b);
|
|
29
|
+
});
|
|
30
|
+
});
|
|
31
|
+
describe('writeSessionId', () => {
|
|
32
|
+
it('creates ledger directory and persists the UUID', () => {
|
|
33
|
+
const id = mintSessionId();
|
|
34
|
+
writeSessionId(tmpDir, id);
|
|
35
|
+
const persisted = fs.readFileSync(path.join(tmpDir, 'ledger', '.session-id'), 'utf-8');
|
|
36
|
+
expect(persisted).toBe(id);
|
|
37
|
+
});
|
|
38
|
+
it('overwrites an existing session-id file', () => {
|
|
39
|
+
writeSessionId(tmpDir, mintSessionId());
|
|
40
|
+
const second = mintSessionId();
|
|
41
|
+
writeSessionId(tmpDir, second);
|
|
42
|
+
const persisted = fs.readFileSync(path.join(tmpDir, 'ledger', '.session-id'), 'utf-8');
|
|
43
|
+
expect(persisted).toBe(second);
|
|
44
|
+
});
|
|
45
|
+
});
|
|
46
|
+
describe('readSessionId', () => {
|
|
47
|
+
it('returns undefined when the file does not exist', () => {
|
|
48
|
+
expect(readSessionId(tmpDir)).toBeUndefined();
|
|
49
|
+
});
|
|
50
|
+
it('returns the persisted UUID', () => {
|
|
51
|
+
const id = mintSessionId();
|
|
52
|
+
writeSessionId(tmpDir, id);
|
|
53
|
+
expect(readSessionId(tmpDir)).toBe(id);
|
|
54
|
+
});
|
|
55
|
+
it('returns undefined when the file contents are not a UUID', () => {
|
|
56
|
+
const ledgerDir = path.join(tmpDir, 'ledger');
|
|
57
|
+
fs.mkdirSync(ledgerDir, { recursive: true });
|
|
58
|
+
fs.writeFileSync(path.join(ledgerDir, '.session-id'), 'not-a-uuid', 'utf-8');
|
|
59
|
+
expect(readSessionId(tmpDir)).toBeUndefined();
|
|
60
|
+
});
|
|
61
|
+
it('returns undefined when the file is older than the TTL', () => {
|
|
62
|
+
const id = mintSessionId();
|
|
63
|
+
writeSessionId(tmpDir, id);
|
|
64
|
+
const filePath = path.join(tmpDir, 'ledger', '.session-id');
|
|
65
|
+
// Backdate the file to 25 hours ago (1 hour past default TTL).
|
|
66
|
+
const past = new Date(Date.now() - 25 * 60 * 60 * 1000);
|
|
67
|
+
fs.utimesSync(filePath, past, past);
|
|
68
|
+
expect(readSessionId(tmpDir)).toBeUndefined();
|
|
69
|
+
});
|
|
70
|
+
it('honors a custom ttlHours argument', () => {
|
|
71
|
+
const id = mintSessionId();
|
|
72
|
+
writeSessionId(tmpDir, id);
|
|
73
|
+
const filePath = path.join(tmpDir, 'ledger', '.session-id');
|
|
74
|
+
// Backdate to 30 minutes ago.
|
|
75
|
+
const past = new Date(Date.now() - 30 * 60 * 1000);
|
|
76
|
+
fs.utimesSync(filePath, past, past);
|
|
77
|
+
// Within 1h TTL: returns the UUID.
|
|
78
|
+
expect(readSessionId(tmpDir, 1)).toBe(id);
|
|
79
|
+
// Within 15-minute TTL: expired, returns undefined.
|
|
80
|
+
expect(readSessionId(tmpDir, 0.25)).toBeUndefined();
|
|
81
|
+
});
|
|
82
|
+
it('trims trailing whitespace from the persisted UUID', () => {
|
|
83
|
+
const ledgerDir = path.join(tmpDir, 'ledger');
|
|
84
|
+
fs.mkdirSync(ledgerDir, { recursive: true });
|
|
85
|
+
const id = mintSessionId();
|
|
86
|
+
fs.writeFileSync(path.join(ledgerDir, '.session-id'), id + '\n', 'utf-8');
|
|
87
|
+
expect(readSessionId(tmpDir)).toBe(id);
|
|
88
|
+
});
|
|
89
|
+
it('rethrows on unexpected error classes (Tenet 4 Fail Loud)', () => {
|
|
90
|
+
// Force statSync to throw a non-fs error class — simulates an unexpected
|
|
91
|
+
// failure mode the writer should propagate rather than silently swallow.
|
|
92
|
+
// Per styleguide line 120, the rethrow wraps in TotemError with the
|
|
93
|
+
// original error preserved via .cause (chain-preserving propagation).
|
|
94
|
+
const spy = vi.spyOn(fs, 'statSync').mockImplementation(() => {
|
|
95
|
+
throw new TypeError('unexpected non-fs error');
|
|
96
|
+
});
|
|
97
|
+
try {
|
|
98
|
+
let caught;
|
|
99
|
+
try {
|
|
100
|
+
readSessionId(tmpDir);
|
|
101
|
+
}
|
|
102
|
+
catch (err) {
|
|
103
|
+
caught = err;
|
|
104
|
+
}
|
|
105
|
+
expect(caught).toBeInstanceOf(TotemError);
|
|
106
|
+
expect(caught.code).toBe('SESSION_ID_READ_FAILED');
|
|
107
|
+
expect(caught.cause).toBeInstanceOf(TypeError);
|
|
108
|
+
}
|
|
109
|
+
finally {
|
|
110
|
+
spy.mockRestore();
|
|
111
|
+
}
|
|
112
|
+
});
|
|
113
|
+
it('returns undefined on EACCES (known fs failure class)', () => {
|
|
114
|
+
const spy = vi.spyOn(fs, 'statSync').mockImplementation(() => {
|
|
115
|
+
const err = new Error('permission denied');
|
|
116
|
+
err.code = 'EACCES';
|
|
117
|
+
throw err;
|
|
118
|
+
});
|
|
119
|
+
try {
|
|
120
|
+
expect(readSessionId(tmpDir)).toBeUndefined();
|
|
121
|
+
}
|
|
122
|
+
finally {
|
|
123
|
+
spy.mockRestore();
|
|
124
|
+
}
|
|
125
|
+
});
|
|
126
|
+
it('rethrows when caught value is not an object (defensive type guard)', () => {
|
|
127
|
+
const spy = vi.spyOn(fs, 'statSync').mockImplementation(() => {
|
|
128
|
+
throw 'string-thrown-not-an-error';
|
|
129
|
+
});
|
|
130
|
+
try {
|
|
131
|
+
// String values have no `.code` property; with the defensive type guard
|
|
132
|
+
// the function rethrows rather than crashing on property access. The
|
|
133
|
+
// rethrow is wrapped in TotemError with the original string preserved
|
|
134
|
+
// via .cause.
|
|
135
|
+
let caught;
|
|
136
|
+
try {
|
|
137
|
+
readSessionId(tmpDir);
|
|
138
|
+
}
|
|
139
|
+
catch (err) {
|
|
140
|
+
caught = err;
|
|
141
|
+
}
|
|
142
|
+
expect(caught).toBeInstanceOf(TotemError);
|
|
143
|
+
expect(caught.code).toBe('SESSION_ID_READ_FAILED');
|
|
144
|
+
expect(caught.cause).toBe('string-thrown-not-an-error');
|
|
145
|
+
}
|
|
146
|
+
finally {
|
|
147
|
+
spy.mockRestore();
|
|
148
|
+
}
|
|
149
|
+
});
|
|
150
|
+
});
|
|
151
|
+
describe('writeSessionId fail-loud behavior', () => {
|
|
152
|
+
it('rethrows on unexpected error classes (Tenet 4 Fail Loud)', () => {
|
|
153
|
+
// Per styleguide line 120, the rethrow wraps in TotemError with the
|
|
154
|
+
// original error preserved via .cause (chain-preserving propagation).
|
|
155
|
+
const spy = vi.spyOn(fs, 'writeFileSync').mockImplementation(() => {
|
|
156
|
+
throw new TypeError('unexpected non-fs error');
|
|
157
|
+
});
|
|
158
|
+
try {
|
|
159
|
+
let caught;
|
|
160
|
+
try {
|
|
161
|
+
writeSessionId(tmpDir, mintSessionId());
|
|
162
|
+
}
|
|
163
|
+
catch (err) {
|
|
164
|
+
caught = err;
|
|
165
|
+
}
|
|
166
|
+
expect(caught).toBeInstanceOf(TotemError);
|
|
167
|
+
expect(caught.code).toBe('SESSION_ID_WRITE_FAILED');
|
|
168
|
+
expect(caught.cause).toBeInstanceOf(TypeError);
|
|
169
|
+
}
|
|
170
|
+
finally {
|
|
171
|
+
spy.mockRestore();
|
|
172
|
+
}
|
|
173
|
+
});
|
|
174
|
+
it('invokes onWarn and returns silently on EACCES (known fs failure class)', () => {
|
|
175
|
+
const onWarn = vi.fn();
|
|
176
|
+
const spy = vi.spyOn(fs, 'writeFileSync').mockImplementation(() => {
|
|
177
|
+
const err = new Error('permission denied');
|
|
178
|
+
err.code = 'EACCES';
|
|
179
|
+
throw err;
|
|
180
|
+
});
|
|
181
|
+
try {
|
|
182
|
+
writeSessionId(tmpDir, mintSessionId(), onWarn);
|
|
183
|
+
expect(onWarn).toHaveBeenCalledOnce();
|
|
184
|
+
expect(onWarn.mock.calls[0][0]).toContain('Session-ID write failed');
|
|
185
|
+
}
|
|
186
|
+
finally {
|
|
187
|
+
spy.mockRestore();
|
|
188
|
+
}
|
|
189
|
+
});
|
|
190
|
+
});
|
|
191
|
+
//# sourceMappingURL=session-id.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session-id.test.js","sourceRoot":"","sources":["../src/session-id.test.ts"],"names":[],"mappings":"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"}
|