@kashscript/hudhud 0.1.0 → 0.1.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/dist/errors.d.ts CHANGED
@@ -3,9 +3,36 @@ export declare class HudhudError extends Error {
3
3
  readonly code: string;
4
4
  constructor(code: string, message: string);
5
5
  }
6
- /** Thrown when an SOP manual cannot be compiled (cycle, malformed goto, empty). */
6
+ /** Structured diagnostic for a SOP compilation failure. A consuming venture maps
7
+ * this onto its own wire envelope (e.g. an "empty" vs "error" track + a
8
+ * line-indexed cycle diagnostic) — the message alone is lossy. */
9
+ export type SopCompilationDetail = {
10
+ readonly kind: "empty";
11
+ } | {
12
+ readonly kind: "no-steps";
13
+ } | {
14
+ readonly kind: "invalid-institution-did";
15
+ } | {
16
+ readonly kind: "invalid-version";
17
+ } | {
18
+ readonly kind: "invalid-input";
19
+ } | {
20
+ readonly kind: "cycle";
21
+ /** Node ids on the cycle, in traversal order. */
22
+ readonly cyclePath: ReadonlyArray<string>;
23
+ /** The edge that closes the cycle (`closingFrom` → `closingTo`). */
24
+ readonly closingFrom: string;
25
+ readonly closingTo: string;
26
+ /** 1-indexed source line of the node whose goto closes the cycle, or null
27
+ * if it could not be resolved. */
28
+ readonly lineIndex: number | null;
29
+ };
30
+ /** Thrown when an SOP manual cannot be compiled (cycle, malformed goto, empty).
31
+ * `detail` carries a structured discriminant so a consumer can build a precise
32
+ * wire diagnostic without parsing the message. */
7
33
  export declare class SopCompilationError extends HudhudError {
8
- constructor(message: string);
34
+ readonly detail: SopCompilationDetail | null;
35
+ constructor(message: string, detail?: SopCompilationDetail | null);
9
36
  }
10
37
  /** Thrown when an MCP tool call exceeds the hard timeout. */
11
38
  export declare class McpTimeoutError extends HudhudError {
@@ -1 +1 @@
1
- {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAWA,sDAAsD;AACtD,qBAAa,WAAY,SAAQ,KAAK;IACpC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;gBACV,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;CAK1C;AAED,mFAAmF;AACnF,qBAAa,mBAAoB,SAAQ,WAAW;gBACtC,OAAO,EAAE,MAAM;CAI5B;AAED,6DAA6D;AAC7D,qBAAa,eAAgB,SAAQ,WAAW;IAC9C,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;gBACf,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;CAK/C;AAED,wEAAwE;AACxE,MAAM,MAAM,0BAA0B,GAClC,sBAAsB,GACtB,iBAAiB,GACjB,sBAAsB,GACtB,qBAAqB,GACrB,iBAAiB,GACjB,cAAc,CAAC;AAEnB;+DAC+D;AAC/D,qBAAa,yBAA0B,SAAQ,WAAW;IACxD,QAAQ,CAAC,MAAM,EAAE,0BAA0B,CAAC;IAC5C,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,UAAU,CAAC;gBACzB,MAAM,EAAE,0BAA0B,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,GAAE,OAAO,GAAG,UAAuB;CAM1G;AAED;gFACgF;AAChF,qBAAa,4BAA6B,SAAQ,WAAW;gBAC/C,OAAO,EAAE,MAAM;CAI5B;AAED;;sEAEsE;AACtE,qBAAa,iBAAkB,SAAQ,WAAW;gBACpC,OAAO,EAAE,MAAM;CAI5B"}
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAWA,sDAAsD;AACtD,qBAAa,WAAY,SAAQ,KAAK;IACpC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;gBACV,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;CAK1C;AAED;;mEAEmE;AACnE,MAAM,MAAM,oBAAoB,GAC5B;IAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAA;CAAE,GAC1B;IAAE,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAA;CAAE,GAC7B;IAAE,QAAQ,CAAC,IAAI,EAAE,yBAAyB,CAAA;CAAE,GAC5C;IAAE,QAAQ,CAAC,IAAI,EAAE,iBAAiB,CAAA;CAAE,GACpC;IAAE,QAAQ,CAAC,IAAI,EAAE,eAAe,CAAA;CAAE,GAClC;IACE,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,iDAAiD;IACjD,QAAQ,CAAC,SAAS,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IAC1C,oEAAoE;IACpE,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B;uCACmC;IACnC,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CACnC,CAAC;AAEN;;mDAEmD;AACnD,qBAAa,mBAAoB,SAAQ,WAAW;IAClD,QAAQ,CAAC,MAAM,EAAE,oBAAoB,GAAG,IAAI,CAAC;gBACjC,OAAO,EAAE,MAAM,EAAE,MAAM,GAAE,oBAAoB,GAAG,IAAW;CAKxE;AAED,6DAA6D;AAC7D,qBAAa,eAAgB,SAAQ,WAAW;IAC9C,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;gBACf,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;CAK/C;AAED,wEAAwE;AACxE,MAAM,MAAM,0BAA0B,GAClC,sBAAsB,GACtB,iBAAiB,GACjB,sBAAsB,GACtB,qBAAqB,GACrB,iBAAiB,GACjB,cAAc,CAAC;AAEnB;+DAC+D;AAC/D,qBAAa,yBAA0B,SAAQ,WAAW;IACxD,QAAQ,CAAC,MAAM,EAAE,0BAA0B,CAAC;IAC5C,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,UAAU,CAAC;gBACzB,MAAM,EAAE,0BAA0B,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,GAAE,OAAO,GAAG,UAAuB;CAM1G;AAED;gFACgF;AAChF,qBAAa,4BAA6B,SAAQ,WAAW;gBAC/C,OAAO,EAAE,MAAM;CAI5B;AAED;;sEAEsE;AACtE,qBAAa,iBAAkB,SAAQ,WAAW;gBACpC,OAAO,EAAE,MAAM;CAI5B"}
package/dist/errors.js CHANGED
@@ -17,11 +17,15 @@ export class HudhudError extends Error {
17
17
  this.code = code;
18
18
  }
19
19
  }
20
- /** Thrown when an SOP manual cannot be compiled (cycle, malformed goto, empty). */
20
+ /** Thrown when an SOP manual cannot be compiled (cycle, malformed goto, empty).
21
+ * `detail` carries a structured discriminant so a consumer can build a precise
22
+ * wire diagnostic without parsing the message. */
21
23
  export class SopCompilationError extends HudhudError {
22
- constructor(message) {
24
+ detail;
25
+ constructor(message, detail = null) {
23
26
  super("SOP_COMPILATION", message);
24
27
  this.name = "SopCompilationError";
28
+ this.detail = detail;
25
29
  }
26
30
  }
27
31
  /** Thrown when an MCP tool call exceeds the hard timeout. */
@@ -1 +1 @@
1
- {"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,+EAA+E;AAC/E,yDAAyD;AACzD,+EAA+E;AAC/E,6EAA6E;AAC7E,6EAA6E;AAC7E,6EAA6E;AAC7E,EAAE;AACF,gFAAgF;AAChF,mDAAmD;AACnD,+EAA+E;AAE/E,sDAAsD;AACtD,MAAM,OAAO,WAAY,SAAQ,KAAK;IAC3B,IAAI,CAAS;IACtB,YAAY,IAAY,EAAE,OAAe;QACvC,KAAK,CAAC,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC,CAAC;QAC9B,IAAI,CAAC,IAAI,GAAG,aAAa,CAAC;QAC1B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;CACF;AAED,mFAAmF;AACnF,MAAM,OAAO,mBAAoB,SAAQ,WAAW;IAClD,YAAY,OAAe;QACzB,KAAK,CAAC,iBAAiB,EAAE,OAAO,CAAC,CAAC;QAClC,IAAI,CAAC,IAAI,GAAG,qBAAqB,CAAC;IACpC,CAAC;CACF;AAED,6DAA6D;AAC7D,MAAM,OAAO,eAAgB,SAAQ,WAAW;IACrC,SAAS,CAAS;IAC3B,YAAY,SAAiB,EAAE,OAAe;QAC5C,KAAK,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;QAC9B,IAAI,CAAC,IAAI,GAAG,iBAAiB,CAAC;QAC9B,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC7B,CAAC;CACF;AAWD;+DAC+D;AAC/D,MAAM,OAAO,yBAA0B,SAAQ,WAAW;IAC/C,MAAM,CAA6B;IACnC,KAAK,CAAuB;IACrC,YAAY,MAAkC,EAAE,OAAe,EAAE,QAA8B,UAAU;QACvG,KAAK,CAAC,wBAAwB,EAAE,OAAO,CAAC,CAAC;QACzC,IAAI,CAAC,IAAI,GAAG,2BAA2B,CAAC;QACxC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;CACF;AAED;gFACgF;AAChF,MAAM,OAAO,4BAA6B,SAAQ,WAAW;IAC3D,YAAY,OAAe;QACzB,KAAK,CAAC,0BAA0B,EAAE,OAAO,CAAC,CAAC;QAC3C,IAAI,CAAC,IAAI,GAAG,8BAA8B,CAAC;IAC7C,CAAC;CACF;AAED;;sEAEsE;AACtE,MAAM,OAAO,iBAAkB,SAAQ,WAAW;IAChD,YAAY,OAAe;QACzB,KAAK,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC;QAChC,IAAI,CAAC,IAAI,GAAG,mBAAmB,CAAC;IAClC,CAAC;CACF"}
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,+EAA+E;AAC/E,yDAAyD;AACzD,+EAA+E;AAC/E,6EAA6E;AAC7E,6EAA6E;AAC7E,6EAA6E;AAC7E,EAAE;AACF,gFAAgF;AAChF,mDAAmD;AACnD,+EAA+E;AAE/E,sDAAsD;AACtD,MAAM,OAAO,WAAY,SAAQ,KAAK;IAC3B,IAAI,CAAS;IACtB,YAAY,IAAY,EAAE,OAAe;QACvC,KAAK,CAAC,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC,CAAC;QAC9B,IAAI,CAAC,IAAI,GAAG,aAAa,CAAC;QAC1B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;CACF;AAuBD;;mDAEmD;AACnD,MAAM,OAAO,mBAAoB,SAAQ,WAAW;IACzC,MAAM,CAA8B;IAC7C,YAAY,OAAe,EAAE,SAAsC,IAAI;QACrE,KAAK,CAAC,iBAAiB,EAAE,OAAO,CAAC,CAAC;QAClC,IAAI,CAAC,IAAI,GAAG,qBAAqB,CAAC;QAClC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;CACF;AAED,6DAA6D;AAC7D,MAAM,OAAO,eAAgB,SAAQ,WAAW;IACrC,SAAS,CAAS;IAC3B,YAAY,SAAiB,EAAE,OAAe;QAC5C,KAAK,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;QAC9B,IAAI,CAAC,IAAI,GAAG,iBAAiB,CAAC;QAC9B,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC7B,CAAC;CACF;AAWD;+DAC+D;AAC/D,MAAM,OAAO,yBAA0B,SAAQ,WAAW;IAC/C,MAAM,CAA6B;IACnC,KAAK,CAAuB;IACrC,YAAY,MAAkC,EAAE,OAAe,EAAE,QAA8B,UAAU;QACvG,KAAK,CAAC,wBAAwB,EAAE,OAAO,CAAC,CAAC;QACzC,IAAI,CAAC,IAAI,GAAG,2BAA2B,CAAC;QACxC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;CACF;AAED;gFACgF;AAChF,MAAM,OAAO,4BAA6B,SAAQ,WAAW;IAC3D,YAAY,OAAe;QACzB,KAAK,CAAC,0BAA0B,EAAE,OAAO,CAAC,CAAC;QAC3C,IAAI,CAAC,IAAI,GAAG,8BAA8B,CAAC;IAC7C,CAAC;CACF;AAED;;sEAEsE;AACtE,MAAM,OAAO,iBAAkB,SAAQ,WAAW;IAChD,YAAY,OAAe;QACzB,KAAK,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC;QAChC,IAAI,CAAC,IAAI,GAAG,mBAAmB,CAAC;IAClC,CAAC;CACF"}
@@ -1,3 +1,4 @@
1
+ export { ExceptionClassificationError } from "../errors";
1
2
  /** The failure classes. No "unclassified": classification is mandatory. */
2
3
  export declare const FAILURE_CLASSES: readonly ["judgment", "gap-filling", "ambiguous"];
3
4
  export type FailureClass = (typeof FAILURE_CLASSES)[number];
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/exception/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/exception/index.ts"],"names":[],"mappings":"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"}
@@ -13,6 +13,9 @@
13
13
  // ============================================================================
14
14
  import { signEvent, verifyEvent } from "@kashscript/identity-core";
15
15
  import { ExceptionClassificationError } from "../errors";
16
+ // Re-export the error this module throws so a consumer can catch it from the
17
+ // same subpath it imports the mandatory gate from.
18
+ export { ExceptionClassificationError } from "../errors";
16
19
  /** The failure classes. No "unclassified": classification is mandatory. */
17
20
  export const FAILURE_CLASSES = ["judgment", "gap-filling", "ambiguous"];
18
21
  /** DST so a classification signature can't replay as a ledger/attestation sig.
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/exception/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/exception/index.ts"],"names":[],"mappings":"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"}
@@ -10,12 +10,15 @@ export interface HostActorSigner {
10
10
  readonly actorClass: ActorClass;
11
11
  sign(payload: LedgerSignaturePayload): Promise<string>;
12
12
  }
13
- /** Build a HostActorSigner from a raw Ed25519 private key. `actorDid` must be a
14
- * did:kash and be registered in the DidRegistry the service verifies against. */
13
+ /** Build a HostActorSigner from a raw Ed25519 private key. `actorDid` must be
14
+ * accepted by `isValidActorDid` (default: canonical did:kash) and be registered
15
+ * in the DidRegistry the service verifies against. */
15
16
  export declare function createEd25519HostSigner(opts: {
16
17
  readonly actorDid: string;
17
18
  readonly actorClass: ActorClass;
18
19
  readonly privateKey: Uint8Array;
20
+ /** Override the DID acceptance policy (default: canonical `did:kash`). */
21
+ readonly isValidActorDid?: (did: string) => boolean;
19
22
  }): HostActorSigner;
20
23
  export interface AppendTransitionLogInput {
21
24
  readonly sessionId: string;
@@ -43,10 +46,15 @@ export interface ForensicLedgerServiceDeps {
43
46
  readonly didRegistry: DidRegistry;
44
47
  /** Required only for `appendActorTransition` (the self-signing path). */
45
48
  readonly hostSigner?: HostActorSigner;
49
+ /** DID acceptance policy for `actorDid` (default: canonical `did:kash`).
50
+ * DID-format is an identity-method policy the CONSUMER owns; the ledger's
51
+ * hard gates remain registry-resolution + signature-verification. */
52
+ readonly isValidActorDid?: (did: string) => boolean;
46
53
  }
47
54
  export declare class ForensicLedgerService {
48
55
  private readonly deps;
49
56
  constructor(deps: ForensicLedgerServiceDeps);
57
+ private isValidActorDid;
50
58
  /** Append a caller-pre-signed transition. @throws LedgerAppendError on any
51
59
  * validation / signature / store failure. */
52
60
  appendTransitionLog(input: AppendTransitionLogInput): Promise<AppendedLedgerBlock>;
@@ -1 +1 @@
1
- {"version":3,"file":"writer.d.ts","sourceRoot":"","sources":["../../src/ledger/writer.ts"],"names":[],"mappings":"AAsBA,OAAO,KAAK,EAAE,WAAW,EAAE,kBAAkB,EAAqB,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAGrH,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAEvC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAE3C,eAAO,MAAM,aAAa,6EAA8E,CAAC;AACzG,MAAM,MAAM,UAAU,GAAG,CAAC,OAAO,aAAa,CAAC,CAAC,MAAM,CAAC,CAAC;AAExD;iFACiF;AACjF,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC;IAChC,IAAI,CAAC,OAAO,EAAE,sBAAsB,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CACxD;AAED;kFACkF;AAClF,wBAAgB,uBAAuB,CAAC,IAAI,EAAE;IAC5C,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC;IAChC,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC;CACjC,GAAG,eAAe,CASlB;AAED,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC;IAChC,QAAQ,CAAC,eAAe,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IAC5D,mEAAmE;IACnE,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC;IAChC,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;IACnC,QAAQ,CAAC,2BAA2B,EAAE,MAAM,CAAC;IAC7C,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;CAChC;AAED,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAC7B,QAAQ,CAAC,YAAY,EAAE,YAAY,CAAC;IACpC,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;IAClC,yEAAyE;IACzE,QAAQ,CAAC,UAAU,CAAC,EAAE,eAAe,CAAC;CACvC;AAED,qBAAa,qBAAqB;IACpB,OAAO,CAAC,QAAQ,CAAC,IAAI;gBAAJ,IAAI,EAAE,yBAAyB;IAE5D;kDAC8C;IACxC,mBAAmB,CAAC,KAAK,EAAE,wBAAwB,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAuCxF;;6BAEyB;IACnB,qBAAqB,CAAC,KAAK,EAAE;QACjC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;QAC3B,QAAQ,CAAC,eAAe,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;KAC7D,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAoChC;qDACiD;YACnC,mBAAmB;IAiEjC;;;4DAGwD;IAClD,uBAAuB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC;CAI9E"}
1
+ {"version":3,"file":"writer.d.ts","sourceRoot":"","sources":["../../src/ledger/writer.ts"],"names":[],"mappings":"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"}
@@ -16,10 +16,19 @@ import { LedgerAppendError } from "../errors";
16
16
  import { SessionMutex } from "./mutex";
17
17
  import { resolvePreviousBlockHash } from "./store";
18
18
  export const ACTOR_CLASSES = ["AGENT", "SYSTEM_KERNEL", "OPERATOR_ADMIN", "COMPLIANCE_AUDITOR"];
19
- /** Build a HostActorSigner from a raw Ed25519 private key. `actorDid` must be a
20
- * did:kash and be registered in the DidRegistry the service verifies against. */
19
+ /** Default DID acceptance policy: the canonical `did:kash:<base58btc>` shape
20
+ * (identity-core `DID_KASH_RE` / attest `KASH_DID_PATTERN`). A consumer whose
21
+ * DID method-specific-ids are STRUCTURED (e.g. hierarchical role DIDs such as
22
+ * `did:kash:oreoasis:kernel:host`) injects its own validator — DID-format is an
23
+ * identity-method policy the CONSUMER owns; the ledger's hard gates stay
24
+ * registry-resolution + signature-verification, not string shape. */
25
+ const isCanonicalKashDid = (did) => KASH_DID_PATTERN.test(did);
26
+ /** Build a HostActorSigner from a raw Ed25519 private key. `actorDid` must be
27
+ * accepted by `isValidActorDid` (default: canonical did:kash) and be registered
28
+ * in the DidRegistry the service verifies against. */
21
29
  export function createEd25519HostSigner(opts) {
22
- if (!KASH_DID_PATTERN.test(opts.actorDid)) {
30
+ const isValidActorDid = opts.isValidActorDid ?? isCanonicalKashDid;
31
+ if (!isValidActorDid(opts.actorDid)) {
23
32
  throw new LedgerAppendError("host signer actorDid is not a valid did:kash:… identifier");
24
33
  }
25
34
  return {
@@ -33,13 +42,16 @@ export class ForensicLedgerService {
33
42
  constructor(deps) {
34
43
  this.deps = deps;
35
44
  }
45
+ isValidActorDid(did) {
46
+ return (this.deps.isValidActorDid ?? isCanonicalKashDid)(did);
47
+ }
36
48
  /** Append a caller-pre-signed transition. @throws LedgerAppendError on any
37
49
  * validation / signature / store failure. */
38
50
  async appendTransitionLog(input) {
39
51
  if (typeof input.sessionId !== "string" || input.sessionId.length === 0) {
40
52
  throw new LedgerAppendError("sessionId is required");
41
53
  }
42
- if (typeof input.actorDid !== "string" || !KASH_DID_PATTERN.test(input.actorDid)) {
54
+ if (typeof input.actorDid !== "string" || !this.isValidActorDid(input.actorDid)) {
43
55
  throw new LedgerAppendError("actorDid must be a valid did:kash:… identifier");
44
56
  }
45
57
  if (typeof input.signature !== "string" || input.signature.length === 0) {
@@ -1 +1 @@
1
- {"version":3,"file":"writer.js","sourceRoot":"","sources":["../../src/ledger/writer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"writer.js","sourceRoot":"","sources":["../../src/ledger/writer.ts"],"names":[],"mappings":"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"}
@@ -26,6 +26,9 @@ export interface BuildHumanApprovalEnvelopeInput {
26
26
  readonly publicKey: Uint8Array;
27
27
  };
28
28
  readonly ttlMs?: number;
29
+ /** Override the DID acceptance policy for agent/operator `did` (default:
30
+ * canonical `did:kash`). */
31
+ readonly isValidDid?: (did: string) => boolean;
29
32
  }
30
33
  /**
31
34
  * Build the two-key `SignedActionEnvelope` that authorizes a resume of a
@@ -49,6 +52,8 @@ export interface AppendOperatorSignoffInput {
49
52
  /** MANDATORY classification (required `failureClass`, no "unclassified"). */
50
53
  readonly classification: ExceptionClassificationInput;
51
54
  readonly exceptionClassificationStore: ExceptionClassificationStore;
55
+ /** Override the DID acceptance policy for operator `did` (default: canonical). */
56
+ readonly isValidDid?: (did: string) => boolean;
52
57
  }
53
58
  /**
54
59
  * Append a SIGNED ledger row recording the operator's sign-off (OPERATOR key,
@@ -1 +1 @@
1
- {"version":3,"file":"escalation.d.ts","sourceRoot":"","sources":["../../src/runtime/escalation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"escalation.d.ts","sourceRoot":"","sources":["../../src/runtime/escalation.ts"],"names":[],"mappings":"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"}
@@ -20,6 +20,16 @@ import { PermissionGate, assembleEnvelope, stripDerivedFields, } from "@kashscri
20
20
  import { NEURON_DST } from "@kashscript/neuron/schemas";
21
21
  import { assertFailureClass, buildSignedClassification, } from "../exception";
22
22
  import { resolvePreviousBlockHash } from "../ledger/store";
23
+ // Both identities are `did:kash` keys so the operator sign-off is a first-class
24
+ // ledger actor. The two-key guarantee comes from DISTINCTNESS, not a DID
25
+ // namespace: the agent key is the one the host holds; the operator key is
26
+ // SEPARATE, so the host cannot mint the operator (invoker) signature. Enforced
27
+ // below by requiring agent.did ≠ operator.did (their derived DIDs differ because
28
+ // their keys do). The DID-STRING shape is an identity-method policy the consumer
29
+ // owns (`isValidDid`, default canonical); it is NOT a security boundary here.
30
+ /** Default DID acceptance policy: the canonical `did:kash:<base58btc>` shape.
31
+ * Consumers with structured DIDs (e.g. `did:kash:operator:…`) inject their own. */
32
+ const isCanonicalKashDid = (did) => KASH_DID_PATTERN.test(did);
23
33
  export class EscalationError extends Error {
24
34
  code;
25
35
  detail;
@@ -46,10 +56,11 @@ function deriveKashDid(publicKey) {
46
56
  * operator), so forging human judgment would require the operator private key.
47
57
  */
48
58
  export async function buildHumanApprovalEnvelope(input) {
49
- if (!KASH_DID_PATTERN.test(input.agent.did)) {
59
+ const isValidDid = input.isValidDid ?? isCanonicalKashDid;
60
+ if (!isValidDid(input.agent.did)) {
50
61
  throw new EscalationError("AGENT_DID_INVALID", "agent.did must be a valid did:kash identifier");
51
62
  }
52
- if (!KASH_DID_PATTERN.test(input.operator.did)) {
63
+ if (!isValidDid(input.operator.did)) {
53
64
  throw new EscalationError("OPERATOR_DID_INVALID", "operator.did must be a valid did:kash identifier");
54
65
  }
55
66
  if (input.agent.did === input.operator.did) {
@@ -87,7 +98,8 @@ export async function buildHumanApprovalEnvelope(input) {
87
98
  * The mandatory `failureClass` gate fails-fast before any row is written.
88
99
  */
89
100
  export async function appendOperatorSignoff(input) {
90
- if (!KASH_DID_PATTERN.test(input.operator.did)) {
101
+ const isValidDid = input.isValidDid ?? isCanonicalKashDid;
102
+ if (!isValidDid(input.operator.did)) {
91
103
  throw new EscalationError("OPERATOR_DID_INVALID", "operator.did must be a valid did:kash identifier");
92
104
  }
93
105
  assertFailureClass(input.classification.failureClass);
@@ -1 +1 @@
1
- {"version":3,"file":"escalation.js","sourceRoot":"","sources":["../../src/runtime/escalation.ts"],"names":[],"mappings":"AAAA,+EAA+E;AAC/E,kEAAkE;AAClE,+EAA+E;AAC/E,6EAA6E;AAC7E,2EAA2E;AAC3E,kCAAkC;AAClC,+EAA+E;AAC/E,4EAA4E;AAC5E,wEAAwE;AACxE,uEAAuE;AACvE,6EAA6E;AAC7E,+CAA+C;AAC/C,iFAAiF;AACjF,8EAA8E;AAC9E,uCAAuC;AACvC,+EAA+E;AAE/E,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAC9E,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACvE,OAAO,EACL,cAAc,EACd,gBAAgB,EAChB,kBAAkB,GACnB,MAAM,8BAA8B,CAAC;AAEtC,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAExD,OAAO,EACL,kBAAkB,EAClB,yBAAyB,GAC1B,MAAM,cAAc,CAAC;AAEtB,OAAO,EAAE,wBAAwB,EAAE,MAAM,iBAAiB,CAAC;AAiB3D,MAAM,OAAO,eAAgB,SAAQ,KAAK;IAC/B,IAAI,CAAsB;IAC1B,MAAM,CAAoC;IACnD,YAAY,IAAyB,EAAE,OAAe,EAAE,SAA4C,EAAE;QACpG,KAAK,CAAC,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC,CAAC;QAC9B,IAAI,CAAC,IAAI,GAAG,iBAAiB,CAAC;QAC9B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,MAAM,EAAE,CAAC,CAAC;IAC7C,CAAC;CACF;AAED,sFAAsF;AACtF,SAAS,WAAW,CAAC,CAAS;IAC5B,MAAM,KAAK,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC;IAC9B,MAAM,GAAG,GAAG,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;IAC5D,OAAO,KAAK,GAAG,EAA0B,CAAC;AAC5C,CAAC;AAED,+EAA+E;AAC/E,SAAS,aAAa,CAAC,SAAqB;IAC1C,OAAO,SAAS,CAAC,SAAS,CAAmB,CAAC;AAChD,CAAC;AAcD;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,0BAA0B,CAAC,KAAsC;IACrF,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;QAC5C,MAAM,IAAI,eAAe,CAAC,mBAAmB,EAAE,+CAA+C,CAAC,CAAC;IAClG,CAAC;IACD,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QAC/C,MAAM,IAAI,eAAe,CAAC,sBAAsB,EAAE,kDAAkD,CAAC,CAAC;IACxG,CAAC;IACD,IAAI,KAAK,CAAC,KAAK,CAAC,GAAG,KAAK,KAAK,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC;QAC3C,MAAM,IAAI,eAAe,CACvB,6BAA6B,EAC7B,iGAAiG,CAClG,CAAC;IACJ,CAAC;IAED,sEAAsE;IACtE,MAAM,MAAM,GAAG,KAAK,EAAE,IAAuC,EAA+B,EAAE;QAC5F,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,UAAU,EAAE,EAAE,GAAG,EAAE,UAAU,CAAC,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC;QACvI,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,EAAE,GAAG,EAAE,UAAU,CAAC,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;IAC/G,CAAC,CAAC;IAEF,MAAM,IAAI,GAAG,IAAI,cAAc,EAAE,CAAC;IAClC,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,cAAc,CACzC,KAAK,CAAC,WAAW,EACjB;QACE,OAAO,EAAE,aAAa,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC;QAC7C,SAAS,EAAE,aAAa,CAAC,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC;QAClD,WAAW,EAAE,WAAW,CAAC,KAAK,CAAC,WAAW,CAAC;KAC5C,EACD,MAAM,EACN,EAAE,KAAK,EAAE,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAClG,CAAC;IAEF,kEAAkE;IAClE,MAAM,cAAc,GAAG,MAAM,SAAS,CAAC,EAAE,EAAE,kBAAkB,CAAC,SAAS,CAAC,EAAE,KAAK,CAAC,QAAQ,CAAC,UAAU,EAAE;QACnG,GAAG,EAAE,UAAU,CAAC,SAAS;QACzB,QAAQ,EAAE,KAAK;QACf,GAAG,EAAE,KAAK,CAAC,QAAQ,CAAC,GAAG;KACxB,CAAC,CAAC;IACH,MAAM,gBAAgB,GAAuB;QAC3C,GAAG,EAAE,SAAS;QACd,GAAG,EAAE,cAAc,CAAC,GAAG;QACvB,GAAG,EAAE,UAAU,CAAC,SAAS;QACzB,QAAQ,EAAE,KAAK;QACf,GAAG,EAAE,KAAK,CAAC,QAAQ,CAAC,GAAG;KACxB,CAAC;IAEF,OAAO,gBAAgB,CAAC,SAAS,EAAE,gBAAgB,CAAC,CAAC;AACvD,CAAC;AAaD;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,KAAiC;IAEjC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QAC/C,MAAM,IAAI,eAAe,CAAC,sBAAsB,EAAE,kDAAkD,CAAC,CAAC;IACxG,CAAC;IACD,kBAAkB,CAAC,KAAK,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC;IAEtD,MAAM,eAAe,GAAsC;QACzD,KAAK,EAAE,oBAAoB;QAC3B,eAAe,EAAE,KAAK,CAAC,UAAU,CAAC,eAAe;QACjD,IAAI,EAAE,KAAK,CAAC,UAAU,CAAC,QAAQ;QAC/B,YAAY,EAAE,KAAK,CAAC,cAAc,CAAC,YAAY;QAC/C,UAAU,EAAE,KAAK,CAAC,cAAc,CAAC,UAAU;KAC5C,CAAC;IAEF,MAAM,EAAE,iBAAiB,EAAE,aAAa,EAAE,GAAG,MAAM,wBAAwB,CAAC,KAAK,CAAC,WAAW,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;IAChH,MAAM,SAAS,GAAG,MAAM,eAAe,CACrC,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,SAAS,EAAE,aAAa,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,GAAG,EAAE,iBAAiB,EAAE,eAAe,EAAE,EAC1H,KAAK,CAAC,QAAQ,CAAC,UAAU,CAC1B,CAAC;IAEF,MAAM,KAAK,GAAG,MAAM,KAAK,CAAC,cAAc,CAAC,mBAAmB,CAAC;QAC3D,SAAS,EAAE,KAAK,CAAC,SAAS;QAC1B,SAAS,EAAE,aAAa;QACxB,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,GAAG;QAC5B,UAAU,EAAE,gBAAgB;QAC5B,eAAe;QACf,SAAS;KACV,CAAC,CAAC;IAEH,MAAM,cAAc,GAAG,MAAM,yBAAyB,CAAC,KAAK,CAAC,cAAc,EAAE,KAAK,CAAC,QAAQ,EAAE;QAC3F,YAAY,EAAE,KAAK,CAAC,UAAU,CAAC,YAAY,IAAI,IAAI;QACnD,sBAAsB,EAAE,KAAK,CAAC,SAAS;KACxC,CAAC,CAAC;IACH,MAAM,KAAK,CAAC,4BAA4B,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;IAEhE,OAAO,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,cAAc,EAAE,CAAC;AACxD,CAAC;AA4BD,SAAS,aAAa,CAAC,IAAa,EAAE,GAAuB;IAC3D,8EAA8E;IAC9E,iFAAiF;IACjF,OAAO;QACL,MAAM,EAAE,EAAuC;QAC/C,IAAI;QACJ,SAAS,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,QAAQ,EAAE,GAAG,CAAC,QAAQ,IAAI,KAAK,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,IAAI,EAAE,EAAE;KAC7G,CAAC;AACJ,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAAC,KAAkC;IAC7E,MAAM,EAAE,QAAQ,EAAE,cAAc,EAAE,iBAAiB,EAAE,GAAG,KAAK,CAAC;IAC9D,MAAM,SAAS,GAAG,QAAQ,CAAC,SAAS,CAAC;IACrC,MAAM,gBAAgB,GAAG,SAAS,CAAC,gBAAgB,CAAC;IACpD,MAAM,gBAAgB,GAAG,QAAQ,CAAC,gBAAgB,CAAC;IAEnD,MAAM,QAAQ,GAAG,gBAAgB,EAAE,GAAG,CAAC;IACvC,MAAM,UAAU,GAAG,gBAAgB,EAAE,GAAG,CAAC;IACzC,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,OAAO,UAAU,KAAK,QAAQ;QAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,uBAAuB,EAAE,CAAC;IAC1H,2EAA2E;IAC3E,IAAI,QAAQ,KAAK,UAAU;QAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,mBAAmB,EAAE,CAAC;IAC/E,IAAI,KAAK,CAAC,gBAAgB,KAAK,SAAS,IAAI,SAAS,CAAC,cAAc,CAAC,QAAQ,KAAK,KAAK,CAAC,gBAAgB,EAAE,CAAC;QACzG,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,eAAe,EAAE,CAAC;IAChD,CAAC;IACD,IAAI,gBAAgB,CAAC,GAAG,KAAK,UAAU,CAAC,SAAS,IAAI,gBAAgB,CAAC,GAAG,KAAK,UAAU,CAAC,SAAS,EAAE,CAAC;QACnG,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC;IAC5C,CAAC;IACD,IAAI,KAAK,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;QAC9B,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;QAClD,IAAI,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,KAAK,CAAC,KAAK,GAAG,SAAS;YAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;IACrG,CAAC;IAED,MAAM,QAAQ,GAAG,kBAAkB,CAAC,SAAS,CAAC,CAAC;IAC/C,MAAM,OAAO,GAAG,MAAM,WAAW,CAAC,aAAa,CAAC,QAAQ,EAAE,gBAAgB,CAAC,EAAE,cAAc,CAAC,CAAC;IAC7F,IAAI,CAAC,OAAO;QAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,2BAA2B,EAAE,CAAC;IACxE,6EAA6E;IAC7E,wEAAwE;IACxE,oEAAoE;IACpE,MAAM,UAAU,GAAG,MAAM,WAAW,CAAC,aAAa,CAAC,QAAQ,EAAE,gBAAgB,CAAC,EAAE,iBAAiB,CAAC,CAAC;IACnG,IAAI,CAAC,UAAU;QAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,4BAA4B,EAAE,CAAC;IAE5E,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;AACpC,CAAC;AAED;;4DAE4D;AAC5D,MAAM,OAAO,WAAW;IACL,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;IAE7C;yDACqD;IACrD,KAAK,CAAC,aAAqB;QACzB,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE,CAAC;YACpC,MAAM,IAAI,eAAe,CAAC,wBAAwB,EAAE,eAAe,aAAa,gDAAgD,EAAE,EAAE,aAAa,EAAE,CAAC,CAAC;QACvJ,CAAC;QACD,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;IAClC,CAAC;IAED,SAAS,CAAC,aAAqB;QAC7B,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;IACzC,CAAC;CACF"}
1
+ {"version":3,"file":"escalation.js","sourceRoot":"","sources":["../../src/runtime/escalation.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"compiler.d.ts","sourceRoot":"","sources":["../../src/sop/compiler.ts"],"names":[],"mappings":"AAgBA,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,OAAO;IACtB,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC,WAAW,CAAC,CAAC;IAC3C,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC,WAAW,CAAC,CAAC;IAC3C,QAAQ,CAAC,IAAI,EAAE;QACb,QAAQ,CAAC,YAAY,EAAE,oBAAoB,CAAC;QAC5C,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;QACjC,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;QACjC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;KAC5B,CAAC;CACH;AAOD,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,uDAAuD;IACvD,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,oCAAoC;IACpC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B;AAED;;;GAGG;AACH,wBAAsB,oBAAoB,CAAC,KAAK,EAAE,eAAe,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAsC5F"}
1
+ {"version":3,"file":"compiler.d.ts","sourceRoot":"","sources":["../../src/sop/compiler.ts"],"names":[],"mappings":"AAgBA,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,OAAO;IACtB,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC,WAAW,CAAC,CAAC;IAC3C,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC,WAAW,CAAC,CAAC;IAC3C,QAAQ,CAAC,IAAI,EAAE;QACb,QAAQ,CAAC,YAAY,EAAE,oBAAoB,CAAC;QAC5C,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;QACjC,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;QACjC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;KAC5B,CAAC;CACH;AAOD,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,uDAAuD;IACvD,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,oCAAoC;IACpC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B;AAED;;;GAGG;AACH,wBAAsB,oBAAoB,CAAC,KAAK,EAAE,eAAe,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAuC5F"}
@@ -22,7 +22,7 @@ const LIST_ITEM_PATTERN = /^\s*(?:\d+[.)]|[-*•])\s+(.+)$/;
22
22
  export async function compileSopStructural(input) {
23
23
  const lines = input.sopText.split(/\r?\n/);
24
24
  if (input.sopText.trim().length === 0) {
25
- throw new SopCompilationError("SOP text is empty or whitespace-only — at least one step required");
25
+ throw new SopCompilationError("SOP text is empty or whitespace-only — at least one step required", { kind: "empty" });
26
26
  }
27
27
  const nodes = [];
28
28
  for (let i = 0; i < lines.length; i++) {
@@ -32,7 +32,7 @@ export async function compileSopStructural(input) {
32
32
  }
33
33
  }
34
34
  if (nodes.length === 0) {
35
- throw new SopCompilationError("No numbered/bulleted steps detected — structural compiler requires `1.` / `-` / `*` / `•` prefixes");
35
+ throw new SopCompilationError("No numbered/bulleted steps detected — structural compiler requires `1.` / `-` / `*` / `•` prefixes", { kind: "no-steps" });
36
36
  }
37
37
  const edges = [];
38
38
  for (let i = 0; i < nodes.length - 1; i++) {
@@ -1 +1 @@
1
- {"version":3,"file":"compiler.js","sourceRoot":"","sources":["../../src/sop/compiler.ts"],"names":[],"mappings":"AAAA,+EAA+E;AAC/E,gEAAgE;AAChE,+EAA+E;AAC/E,8EAA8E;AAC9E,4EAA4E;AAC5E,qEAAqE;AACrE,8EAA8E;AAC9E,yEAAyE;AACzE,EAAE;AACF,6EAA6E;AAC7E,oEAAoE;AACpE,+EAA+E;AAE/E,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAyBhD,MAAM,2BAA2B,GAAG,OAAO,CAAC;AAE5C,oDAAoD;AACpD,MAAM,iBAAiB,GAAG,+BAA+B,CAAC;AAc1D;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,KAAsB;IAC/D,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAE3C,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtC,MAAM,IAAI,mBAAmB,CAAC,mEAAmE,CAAC,CAAC;IACrG,CAAC;IAED,MAAM,KAAK,GAAkB,EAAE,CAAC;IAChC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACtC,MAAM,KAAK,GAAG,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAE,CAAC,CAAC;QAChD,IAAI,KAAK,EAAE,CAAC;YACV,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,CAAE,CAAC,IAAI,EAAE,EAAE,UAAU,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACtG,CAAC;IACH,CAAC;IAED,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,MAAM,IAAI,mBAAmB,CAC3B,oGAAoG,CACrG,CAAC;IACJ,CAAC;IAED,MAAM,KAAK,GAAkB,EAAE,CAAC;IAChC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC1C,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,CAAE,CAAC,EAAE,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC,GAAG,CAAC,CAAE,CAAC,EAAE,EAAE,CAAC,CAAC;IAC3D,CAAC;IAED,MAAM,SAAS,GAAG,MAAM,SAAS,CAAC,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;IAC3E,MAAM,OAAO,GAAY;QACvB,KAAK;QACL,KAAK;QACL,IAAI,EAAE;YACJ,YAAY,EAAE,oBAAoB;YAClC,eAAe,EAAE,2BAA2B;YAC5C,eAAe,EAAE,KAAK,CAAC,MAAM;YAC7B,SAAS;SACV;KACF,CAAC;IACF,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC;AAChC,CAAC"}
1
+ {"version":3,"file":"compiler.js","sourceRoot":"","sources":["../../src/sop/compiler.ts"],"names":[],"mappings":"AAAA,+EAA+E;AAC/E,gEAAgE;AAChE,+EAA+E;AAC/E,8EAA8E;AAC9E,4EAA4E;AAC5E,qEAAqE;AACrE,8EAA8E;AAC9E,yEAAyE;AACzE,EAAE;AACF,6EAA6E;AAC7E,oEAAoE;AACpE,+EAA+E;AAE/E,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAyBhD,MAAM,2BAA2B,GAAG,OAAO,CAAC;AAE5C,oDAAoD;AACpD,MAAM,iBAAiB,GAAG,+BAA+B,CAAC;AAc1D;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,KAAsB;IAC/D,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAE3C,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtC,MAAM,IAAI,mBAAmB,CAAC,mEAAmE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;IACxH,CAAC;IAED,MAAM,KAAK,GAAkB,EAAE,CAAC;IAChC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACtC,MAAM,KAAK,GAAG,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAE,CAAC,CAAC;QAChD,IAAI,KAAK,EAAE,CAAC;YACV,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,CAAE,CAAC,IAAI,EAAE,EAAE,UAAU,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACtG,CAAC;IACH,CAAC;IAED,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,MAAM,IAAI,mBAAmB,CAC3B,oGAAoG,EACpG,EAAE,IAAI,EAAE,UAAU,EAAE,CACrB,CAAC;IACJ,CAAC;IAED,MAAM,KAAK,GAAkB,EAAE,CAAC;IAChC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC1C,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,CAAE,CAAC,EAAE,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC,GAAG,CAAC,CAAE,CAAC,EAAE,EAAE,CAAC,CAAC;IAC3D,CAAC;IAED,MAAM,SAAS,GAAG,MAAM,SAAS,CAAC,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;IAC3E,MAAM,OAAO,GAAY;QACvB,KAAK;QACL,KAAK;QACL,IAAI,EAAE;YACJ,YAAY,EAAE,oBAAoB;YAClC,eAAe,EAAE,2BAA2B;YAC5C,eAAe,EAAE,KAAK,CAAC,MAAM;YAC7B,SAAS;SACV;KACF,CAAC;IACF,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC;AAChC,CAAC"}
@@ -4,6 +4,10 @@ export interface SopCompilerServiceOptions {
4
4
  /** Seam for the deferred LLM decomposer wire-up (not yet invoked). */
5
5
  readonly llmProvider?: LLMProvider;
6
6
  readonly llmModel?: string;
7
+ /** Override the `institutionDid` acceptance policy (default: canonical
8
+ * `did:kash`). A consumer with structured institution DIDs injects its own —
9
+ * DID-string shape is an identity-method policy the consumer owns. */
10
+ readonly isValidInstitutionDid?: (did: string) => boolean;
7
11
  }
8
12
  export interface CompiledCorporateManual {
9
13
  readonly taskDag: TaskDag;
@@ -13,6 +17,7 @@ export interface CompiledCorporateManual {
13
17
  }
14
18
  export declare class SopCompilerService {
15
19
  private readonly llmBackendActive;
20
+ private readonly isValidInstitutionDid;
16
21
  constructor(opts?: SopCompilerServiceOptions);
17
22
  /** Whether an LLM provider seam is plumbed. */
18
23
  hasLlmBackend(): boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../src/sop/service.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAI7D,OAAO,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAEpE,MAAM,WAAW,yBAAyB;IACxC,sEAAsE;IACtE,QAAQ,CAAC,WAAW,CAAC,EAAE,WAAW,CAAC;IACnC,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAOD,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAU;gBAE/B,IAAI,GAAE,yBAA8B;IAIhD,+CAA+C;IACxC,aAAa,IAAI,OAAO;IAI/B;uEACmE;IACtD,sBAAsB,CACjC,cAAc,EAAE,MAAM,EACtB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,uBAAuB,CAAC;CAoCpC;AAED,UAAU,QAAQ;IAChB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B;AAED;kFACkF;AAClF,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,aAAa,CAAC,WAAW,CAAC,GAAG,aAAa,CAAC,QAAQ,CAAC,CAmB3F;AAED,UAAU,WAAW;IACnB,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IACrC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B;AAED;4EAC4E;AAC5E,wBAAgB,WAAW,CACzB,KAAK,EAAE,aAAa,CAAC,WAAW,CAAC,EACjC,KAAK,EAAE,aAAa,CAAC,WAAW,CAAC,GAChC,WAAW,GAAG,IAAI,CAmDpB"}
1
+ {"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../src/sop/service.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAI7D,OAAO,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAEpE,MAAM,WAAW,yBAAyB;IACxC,sEAAsE;IACtE,QAAQ,CAAC,WAAW,CAAC,EAAE,WAAW,CAAC;IACnC,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B;;2EAEuE;IACvE,QAAQ,CAAC,qBAAqB,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC;CAC3D;AAKD,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAOD,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAU;IAC3C,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAA2B;gBAErD,IAAI,GAAE,yBAA8B;IAKhD,+CAA+C;IACxC,aAAa,IAAI,OAAO;IAI/B;uEACmE;IACtD,sBAAsB,CACjC,cAAc,EAAE,MAAM,EACtB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,uBAAuB,CAAC;CAoDpC;AAED,UAAU,QAAQ;IAChB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B;AAED;kFACkF;AAClF,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,aAAa,CAAC,WAAW,CAAC,GAAG,aAAa,CAAC,QAAQ,CAAC,CAmB3F;AAED,UAAU,WAAW;IACnB,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IACrC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B;AAED;4EAC4E;AAC5E,wBAAgB,WAAW,CACzB,KAAK,EAAE,aAAa,CAAC,WAAW,CAAC,EACjC,KAAK,EAAE,aAAa,CAAC,WAAW,CAAC,GAChC,WAAW,GAAG,IAAI,CAmDpB"}
@@ -11,14 +11,18 @@
11
11
  import { KASH_DID_PATTERN } from "@kashscript/attest";
12
12
  import { SopCompilationError } from "../errors";
13
13
  import { compileSopStructural } from "./compiler";
14
+ /** Default DID acceptance policy: the canonical `did:kash:<base58btc>` shape. */
15
+ const isCanonicalKashDid = (did) => KASH_DID_PATTERN.test(did);
14
16
  /** Match `goto N`, `goto step N`, `go to step N`, `→ step N`. Captures `N`. */
15
17
  const GOTO_MARKER_PATTERN = /(?:goto|go\s+to|→)\s*(?:step\s*)?(\d{1,4})/gi;
16
18
  /** Semver MAJOR.MINOR.PATCH. */
17
19
  const SEMVER_PATTERN = /^\d+\.\d+\.\d+$/;
18
20
  export class SopCompilerService {
19
21
  llmBackendActive;
22
+ isValidInstitutionDid;
20
23
  constructor(opts = {}) {
21
24
  this.llmBackendActive = opts.llmProvider !== undefined;
25
+ this.isValidInstitutionDid = opts.isValidInstitutionDid ?? isCanonicalKashDid;
22
26
  }
23
27
  /** Whether an LLM provider seam is plumbed. */
24
28
  hasLlmBackend() {
@@ -28,16 +32,22 @@ export class SopCompilerService {
28
32
  * @throws SopCompilationError on nil / empty / cyclical input. */
29
33
  async compileCorporateManual(institutionDid, rawText, version) {
30
34
  if (typeof institutionDid !== "string" || institutionDid.length === 0) {
31
- throw new SopCompilationError("institutionDid is required (non-empty did:kash:… identifier)");
35
+ throw new SopCompilationError("institutionDid is required (non-empty did:kash:… identifier)", {
36
+ kind: "invalid-institution-did",
37
+ });
32
38
  }
33
- if (!KASH_DID_PATTERN.test(institutionDid)) {
34
- throw new SopCompilationError("institutionDid is not a valid did:kash:… identifier");
39
+ if (!this.isValidInstitutionDid(institutionDid)) {
40
+ throw new SopCompilationError("institutionDid is not a valid did:kash:… identifier", {
41
+ kind: "invalid-institution-did",
42
+ });
35
43
  }
36
44
  if (typeof version !== "string" || version.length === 0 || !SEMVER_PATTERN.test(version)) {
37
- throw new SopCompilationError("version must be a semver MAJOR.MINOR.PATCH string");
45
+ throw new SopCompilationError("version must be a semver MAJOR.MINOR.PATCH string", {
46
+ kind: "invalid-version",
47
+ });
38
48
  }
39
49
  if (typeof rawText !== "string") {
40
- throw new SopCompilationError("rawText is required and must be a string");
50
+ throw new SopCompilationError("rawText is required and must be a string", { kind: "invalid-input" });
41
51
  }
42
52
  // Structural compile (throws SopCompilationError on empty / no steps).
43
53
  const { taskDag: structural, sopSha256 } = await compileSopStructural({
@@ -51,7 +61,16 @@ export class SopCompilerService {
51
61
  ];
52
62
  const cycle = detectCycle(structural.nodes, allEdges);
53
63
  if (cycle !== null) {
54
- throw new SopCompilationError(`SOP TaskDAG contains a cycle: ${cycle.path.join(" ")} (closing edge ${cycle.closingFrom} → ${cycle.closingTo})`);
64
+ // The offending goto lives on the source line of the node whose edge
65
+ // closes the cycle — surface it so a consumer can point at the raw line.
66
+ const closingNode = structural.nodes.find((n) => n.id === cycle.closingFrom);
67
+ throw new SopCompilationError(`SOP TaskDAG contains a cycle: ${cycle.path.join(" → ")} (closing edge ${cycle.closingFrom} → ${cycle.closingTo})`, {
68
+ kind: "cycle",
69
+ cyclePath: cycle.path,
70
+ closingFrom: cycle.closingFrom,
71
+ closingTo: cycle.closingTo,
72
+ lineIndex: closingNode?.sourceLine ?? null,
73
+ });
55
74
  }
56
75
  const taskDag = { nodes: structural.nodes, edges: allEdges, meta: structural.meta };
57
76
  return { taskDag, sopSha256, institutionDid, version };
@@ -1 +1 @@
1
- {"version":3,"file":"service.js","sourceRoot":"","sources":["../../src/sop/service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"service.js","sourceRoot":"","sources":["../../src/sop/service.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kashscript/hudhud",
3
- "version": "0.1.0",
3
+ "version": "0.1.1",
4
4
  "description": "The Agent Protocol — the accountable agent runtime. SOP compiler, MCP allowlist + circuit breaker, PII-redaction interceptor, a signed action ledger + forensic scan (on @kashscript/attest), exception classification, AIUC-1 work certificates, DID registry, and a neuron-kernel work runtime. Agent auth via @kashscript/identity-server MCP OAuth 2.1 tokens. Ventures import hudhud, never raw neuron. Commercial (SSLA Schedule B).",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
package/src/errors.ts CHANGED
@@ -19,11 +19,36 @@ export class HudhudError extends Error {
19
19
  }
20
20
  }
21
21
 
22
- /** Thrown when an SOP manual cannot be compiled (cycle, malformed goto, empty). */
22
+ /** Structured diagnostic for a SOP compilation failure. A consuming venture maps
23
+ * this onto its own wire envelope (e.g. an "empty" vs "error" track + a
24
+ * line-indexed cycle diagnostic) — the message alone is lossy. */
25
+ export type SopCompilationDetail =
26
+ | { readonly kind: "empty" }
27
+ | { readonly kind: "no-steps" }
28
+ | { readonly kind: "invalid-institution-did" }
29
+ | { readonly kind: "invalid-version" }
30
+ | { readonly kind: "invalid-input" }
31
+ | {
32
+ readonly kind: "cycle";
33
+ /** Node ids on the cycle, in traversal order. */
34
+ readonly cyclePath: ReadonlyArray<string>;
35
+ /** The edge that closes the cycle (`closingFrom` → `closingTo`). */
36
+ readonly closingFrom: string;
37
+ readonly closingTo: string;
38
+ /** 1-indexed source line of the node whose goto closes the cycle, or null
39
+ * if it could not be resolved. */
40
+ readonly lineIndex: number | null;
41
+ };
42
+
43
+ /** Thrown when an SOP manual cannot be compiled (cycle, malformed goto, empty).
44
+ * `detail` carries a structured discriminant so a consumer can build a precise
45
+ * wire diagnostic without parsing the message. */
23
46
  export class SopCompilationError extends HudhudError {
24
- constructor(message: string) {
47
+ readonly detail: SopCompilationDetail | null;
48
+ constructor(message: string, detail: SopCompilationDetail | null = null) {
25
49
  super("SOP_COMPILATION", message);
26
50
  this.name = "SopCompilationError";
51
+ this.detail = detail;
27
52
  }
28
53
  }
29
54
 
@@ -14,6 +14,9 @@
14
14
 
15
15
  import { signEvent, verifyEvent } from "@kashscript/identity-core";
16
16
  import { ExceptionClassificationError } from "../errors";
17
+ // Re-export the error this module throws so a consumer can catch it from the
18
+ // same subpath it imports the mandatory gate from.
19
+ export { ExceptionClassificationError } from "../errors";
17
20
 
18
21
  /** The failure classes. No "unclassified": classification is mandatory. */
19
22
  export const FAILURE_CLASSES = ["judgment", "gap-filling", "ambiguous"] as const;
@@ -38,14 +38,26 @@ export interface HostActorSigner {
38
38
  sign(payload: LedgerSignaturePayload): Promise<string>;
39
39
  }
40
40
 
41
- /** Build a HostActorSigner from a raw Ed25519 private key. `actorDid` must be a
42
- * did:kash and be registered in the DidRegistry the service verifies against. */
41
+ /** Default DID acceptance policy: the canonical `did:kash:<base58btc>` shape
42
+ * (identity-core `DID_KASH_RE` / attest `KASH_DID_PATTERN`). A consumer whose
43
+ * DID method-specific-ids are STRUCTURED (e.g. hierarchical role DIDs such as
44
+ * `did:kash:oreoasis:kernel:host`) injects its own validator — DID-format is an
45
+ * identity-method policy the CONSUMER owns; the ledger's hard gates stay
46
+ * registry-resolution + signature-verification, not string shape. */
47
+ const isCanonicalKashDid = (did: string): boolean => KASH_DID_PATTERN.test(did);
48
+
49
+ /** Build a HostActorSigner from a raw Ed25519 private key. `actorDid` must be
50
+ * accepted by `isValidActorDid` (default: canonical did:kash) and be registered
51
+ * in the DidRegistry the service verifies against. */
43
52
  export function createEd25519HostSigner(opts: {
44
53
  readonly actorDid: string;
45
54
  readonly actorClass: ActorClass;
46
55
  readonly privateKey: Uint8Array;
56
+ /** Override the DID acceptance policy (default: canonical `did:kash`). */
57
+ readonly isValidActorDid?: (did: string) => boolean;
47
58
  }): HostActorSigner {
48
- if (!KASH_DID_PATTERN.test(opts.actorDid)) {
59
+ const isValidActorDid = opts.isValidActorDid ?? isCanonicalKashDid;
60
+ if (!isValidActorDid(opts.actorDid)) {
49
61
  throw new LedgerAppendError("host signer actorDid is not a valid did:kash:… identifier");
50
62
  }
51
63
  return {
@@ -83,18 +95,26 @@ export interface ForensicLedgerServiceDeps {
83
95
  readonly didRegistry: DidRegistry;
84
96
  /** Required only for `appendActorTransition` (the self-signing path). */
85
97
  readonly hostSigner?: HostActorSigner;
98
+ /** DID acceptance policy for `actorDid` (default: canonical `did:kash`).
99
+ * DID-format is an identity-method policy the CONSUMER owns; the ledger's
100
+ * hard gates remain registry-resolution + signature-verification. */
101
+ readonly isValidActorDid?: (did: string) => boolean;
86
102
  }
87
103
 
88
104
  export class ForensicLedgerService {
89
105
  constructor(private readonly deps: ForensicLedgerServiceDeps) {}
90
106
 
107
+ private isValidActorDid(did: string): boolean {
108
+ return (this.deps.isValidActorDid ?? isCanonicalKashDid)(did);
109
+ }
110
+
91
111
  /** Append a caller-pre-signed transition. @throws LedgerAppendError on any
92
112
  * validation / signature / store failure. */
93
113
  async appendTransitionLog(input: AppendTransitionLogInput): Promise<AppendedLedgerBlock> {
94
114
  if (typeof input.sessionId !== "string" || input.sessionId.length === 0) {
95
115
  throw new LedgerAppendError("sessionId is required");
96
116
  }
97
- if (typeof input.actorDid !== "string" || !KASH_DID_PATTERN.test(input.actorDid)) {
117
+ if (typeof input.actorDid !== "string" || !this.isValidActorDid(input.actorDid)) {
98
118
  throw new LedgerAppendError("actorDid must be a valid did:kash:… identifier");
99
119
  }
100
120
  if (typeof input.signature !== "string" || input.signature.length === 0) {
@@ -34,12 +34,17 @@ import { resolvePreviousBlockHash } from "../ledger/store";
34
34
  import type { LedgerStore } from "../ledger/store";
35
35
  import type { ForensicLedgerService } from "../ledger/writer";
36
36
 
37
- // Both identities are ordinary `did:kash` keys (base58btc, attest's
38
- // KASH_DID_PATTERN) so the operator sign-off is a first-class ledger actor.
39
- // The two-key guarantee comes from DISTINCTNESS, not a DID namespace: the agent
40
- // key is the one the host holds; the operator key is SEPARATE, so the host
41
- // cannot mint the operator (invoker) signature. Enforced below by requiring
42
- // agent.did operator.did (their derived DIDs differ because their keys do).
37
+ // Both identities are `did:kash` keys so the operator sign-off is a first-class
38
+ // ledger actor. The two-key guarantee comes from DISTINCTNESS, not a DID
39
+ // namespace: the agent key is the one the host holds; the operator key is
40
+ // SEPARATE, so the host cannot mint the operator (invoker) signature. Enforced
41
+ // below by requiring agent.did ≠ operator.did (their derived DIDs differ because
42
+ // their keys do). The DID-STRING shape is an identity-method policy the consumer
43
+ // owns (`isValidDid`, default canonical); it is NOT a security boundary here.
44
+
45
+ /** Default DID acceptance policy: the canonical `did:kash:<base58btc>` shape.
46
+ * Consumers with structured DIDs (e.g. `did:kash:operator:…`) inject their own. */
47
+ const isCanonicalKashDid = (did: string): boolean => KASH_DID_PATTERN.test(did);
43
48
 
44
49
  export type EscalationErrorCode =
45
50
  | "AGENT_DID_INVALID"
@@ -80,6 +85,9 @@ export interface BuildHumanApprovalEnvelopeInput {
80
85
  /** The OPERATOR identity — the SEPARATE human key. */
81
86
  readonly operator: { readonly did: string; readonly privateKey: Uint8Array; readonly publicKey: Uint8Array };
82
87
  readonly ttlMs?: number;
88
+ /** Override the DID acceptance policy for agent/operator `did` (default:
89
+ * canonical `did:kash`). */
90
+ readonly isValidDid?: (did: string) => boolean;
83
91
  }
84
92
 
85
93
  /**
@@ -88,10 +96,11 @@ export interface BuildHumanApprovalEnvelopeInput {
88
96
  * operator), so forging human judgment would require the operator private key.
89
97
  */
90
98
  export async function buildHumanApprovalEnvelope(input: BuildHumanApprovalEnvelopeInput): Promise<SignedActionEnvelope> {
91
- if (!KASH_DID_PATTERN.test(input.agent.did)) {
99
+ const isValidDid = input.isValidDid ?? isCanonicalKashDid;
100
+ if (!isValidDid(input.agent.did)) {
92
101
  throw new EscalationError("AGENT_DID_INVALID", "agent.did must be a valid did:kash identifier");
93
102
  }
94
- if (!KASH_DID_PATTERN.test(input.operator.did)) {
103
+ if (!isValidDid(input.operator.did)) {
95
104
  throw new EscalationError("OPERATOR_DID_INVALID", "operator.did must be a valid did:kash identifier");
96
105
  }
97
106
  if (input.agent.did === input.operator.did) {
@@ -145,6 +154,8 @@ export interface AppendOperatorSignoffInput {
145
154
  /** MANDATORY classification (required `failureClass`, no "unclassified"). */
146
155
  readonly classification: ExceptionClassificationInput;
147
156
  readonly exceptionClassificationStore: ExceptionClassificationStore;
157
+ /** Override the DID acceptance policy for operator `did` (default: canonical). */
158
+ readonly isValidDid?: (did: string) => boolean;
148
159
  }
149
160
 
150
161
  /**
@@ -155,7 +166,8 @@ export interface AppendOperatorSignoffInput {
155
166
  export async function appendOperatorSignoff(
156
167
  input: AppendOperatorSignoffInput,
157
168
  ): Promise<{ stepIndex: number; classification: ExceptionClassificationRecord }> {
158
- if (!KASH_DID_PATTERN.test(input.operator.did)) {
169
+ const isValidDid = input.isValidDid ?? isCanonicalKashDid;
170
+ if (!isValidDid(input.operator.did)) {
159
171
  throw new EscalationError("OPERATOR_DID_INVALID", "operator.did must be a valid did:kash identifier");
160
172
  }
161
173
  assertFailureClass(input.classification.failureClass);
@@ -62,7 +62,7 @@ export async function compileSopStructural(input: CompileSopInput): Promise<Comp
62
62
  const lines = input.sopText.split(/\r?\n/);
63
63
 
64
64
  if (input.sopText.trim().length === 0) {
65
- throw new SopCompilationError("SOP text is empty or whitespace-only — at least one step required");
65
+ throw new SopCompilationError("SOP text is empty or whitespace-only — at least one step required", { kind: "empty" });
66
66
  }
67
67
 
68
68
  const nodes: TaskDagNode[] = [];
@@ -76,6 +76,7 @@ export async function compileSopStructural(input: CompileSopInput): Promise<Comp
76
76
  if (nodes.length === 0) {
77
77
  throw new SopCompilationError(
78
78
  "No numbered/bulleted steps detected — structural compiler requires `1.` / `-` / `*` / `•` prefixes",
79
+ { kind: "no-steps" },
79
80
  );
80
81
  }
81
82
 
@@ -20,8 +20,15 @@ export interface SopCompilerServiceOptions {
20
20
  /** Seam for the deferred LLM decomposer wire-up (not yet invoked). */
21
21
  readonly llmProvider?: LLMProvider;
22
22
  readonly llmModel?: string;
23
+ /** Override the `institutionDid` acceptance policy (default: canonical
24
+ * `did:kash`). A consumer with structured institution DIDs injects its own —
25
+ * DID-string shape is an identity-method policy the consumer owns. */
26
+ readonly isValidInstitutionDid?: (did: string) => boolean;
23
27
  }
24
28
 
29
+ /** Default DID acceptance policy: the canonical `did:kash:<base58btc>` shape. */
30
+ const isCanonicalKashDid = (did: string): boolean => KASH_DID_PATTERN.test(did);
31
+
25
32
  export interface CompiledCorporateManual {
26
33
  readonly taskDag: TaskDag;
27
34
  readonly sopSha256: string;
@@ -36,9 +43,11 @@ const SEMVER_PATTERN = /^\d+\.\d+\.\d+$/;
36
43
 
37
44
  export class SopCompilerService {
38
45
  private readonly llmBackendActive: boolean;
46
+ private readonly isValidInstitutionDid: (did: string) => boolean;
39
47
 
40
48
  constructor(opts: SopCompilerServiceOptions = {}) {
41
49
  this.llmBackendActive = opts.llmProvider !== undefined;
50
+ this.isValidInstitutionDid = opts.isValidInstitutionDid ?? isCanonicalKashDid;
42
51
  }
43
52
 
44
53
  /** Whether an LLM provider seam is plumbed. */
@@ -54,16 +63,22 @@ export class SopCompilerService {
54
63
  version: string,
55
64
  ): Promise<CompiledCorporateManual> {
56
65
  if (typeof institutionDid !== "string" || institutionDid.length === 0) {
57
- throw new SopCompilationError("institutionDid is required (non-empty did:kash:… identifier)");
66
+ throw new SopCompilationError("institutionDid is required (non-empty did:kash:… identifier)", {
67
+ kind: "invalid-institution-did",
68
+ });
58
69
  }
59
- if (!KASH_DID_PATTERN.test(institutionDid)) {
60
- throw new SopCompilationError("institutionDid is not a valid did:kash:… identifier");
70
+ if (!this.isValidInstitutionDid(institutionDid)) {
71
+ throw new SopCompilationError("institutionDid is not a valid did:kash:… identifier", {
72
+ kind: "invalid-institution-did",
73
+ });
61
74
  }
62
75
  if (typeof version !== "string" || version.length === 0 || !SEMVER_PATTERN.test(version)) {
63
- throw new SopCompilationError("version must be a semver MAJOR.MINOR.PATCH string");
76
+ throw new SopCompilationError("version must be a semver MAJOR.MINOR.PATCH string", {
77
+ kind: "invalid-version",
78
+ });
64
79
  }
65
80
  if (typeof rawText !== "string") {
66
- throw new SopCompilationError("rawText is required and must be a string");
81
+ throw new SopCompilationError("rawText is required and must be a string", { kind: "invalid-input" });
67
82
  }
68
83
 
69
84
  // Structural compile (throws SopCompilationError on empty / no steps).
@@ -80,8 +95,18 @@ export class SopCompilerService {
80
95
 
81
96
  const cycle = detectCycle(structural.nodes, allEdges);
82
97
  if (cycle !== null) {
98
+ // The offending goto lives on the source line of the node whose edge
99
+ // closes the cycle — surface it so a consumer can point at the raw line.
100
+ const closingNode = structural.nodes.find((n) => n.id === cycle.closingFrom);
83
101
  throw new SopCompilationError(
84
102
  `SOP TaskDAG contains a cycle: ${cycle.path.join(" → ")} (closing edge ${cycle.closingFrom} → ${cycle.closingTo})`,
103
+ {
104
+ kind: "cycle",
105
+ cyclePath: cycle.path,
106
+ closingFrom: cycle.closingFrom,
107
+ closingTo: cycle.closingTo,
108
+ lineIndex: closingNode?.sourceLine ?? null,
109
+ },
85
110
  );
86
111
  }
87
112