agentskeptic 2.1.0 → 2.3.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.
Files changed (71) hide show
  1. package/README.md +22 -12
  2. package/dist/cli/initCommand.d.ts.map +1 -1
  3. package/dist/cli/initCommand.js +17 -5
  4. package/dist/cli/initCommand.js.map +1 -1
  5. package/dist/cli.js +95 -4
  6. package/dist/cli.js.map +1 -1
  7. package/dist/cliOperationalCodes.d.ts +6 -0
  8. package/dist/cliOperationalCodes.d.ts.map +1 -1
  9. package/dist/cliOperationalCodes.js +6 -0
  10. package/dist/cliOperationalCodes.js.map +1 -1
  11. package/dist/decisionGate.d.ts +1 -0
  12. package/dist/decisionGate.d.ts.map +1 -1
  13. package/dist/decisionGate.js +10 -0
  14. package/dist/decisionGate.js.map +1 -1
  15. package/dist/index.d.ts +2 -0
  16. package/dist/index.d.ts.map +1 -1
  17. package/dist/index.js +1 -0
  18. package/dist/index.js.map +1 -1
  19. package/dist/loop/failureHints.d.ts +6 -0
  20. package/dist/loop/failureHints.d.ts.map +1 -0
  21. package/dist/loop/failureHints.js +36 -0
  22. package/dist/loop/failureHints.js.map +1 -0
  23. package/dist/loop/localRunStore.d.ts +26 -0
  24. package/dist/loop/localRunStore.d.ts.map +1 -0
  25. package/dist/loop/localRunStore.js +96 -0
  26. package/dist/loop/localRunStore.js.map +1 -0
  27. package/dist/loop/loopOutput.d.ts +22 -0
  28. package/dist/loop/loopOutput.d.ts.map +1 -0
  29. package/dist/loop/loopOutput.js +42 -0
  30. package/dist/loop/loopOutput.js.map +1 -0
  31. package/dist/loop/runLoopSubcommand.d.ts +2 -0
  32. package/dist/loop/runLoopSubcommand.d.ts.map +1 -0
  33. package/dist/loop/runLoopSubcommand.js +105 -0
  34. package/dist/loop/runLoopSubcommand.js.map +1 -0
  35. package/dist/operationalDisposition.d.ts +48 -0
  36. package/dist/operationalDisposition.d.ts.map +1 -1
  37. package/dist/operationalDisposition.js +48 -0
  38. package/dist/operationalDisposition.js.map +1 -1
  39. package/dist/publicDistribution.generated.d.ts +1 -1
  40. package/dist/publicDistribution.generated.js +1 -1
  41. package/dist/schemaLoad.d.ts +1 -1
  42. package/dist/schemaLoad.d.ts.map +1 -1
  43. package/dist/schemaLoad.js +2 -0
  44. package/dist/schemaLoad.js.map +1 -1
  45. package/dist/sdk/AgentSkeptic.d.ts +8 -0
  46. package/dist/sdk/AgentSkeptic.d.ts.map +1 -1
  47. package/dist/sdk/AgentSkeptic.js +9 -0
  48. package/dist/sdk/AgentSkeptic.js.map +1 -1
  49. package/dist/sdk/events/CanonicalEventEmitter.d.ts +50 -0
  50. package/dist/sdk/events/CanonicalEventEmitter.d.ts.map +1 -0
  51. package/dist/sdk/events/CanonicalEventEmitter.js +145 -0
  52. package/dist/sdk/events/CanonicalEventEmitter.js.map +1 -0
  53. package/dist/sdk/events/index.d.ts +4 -0
  54. package/dist/sdk/events/index.d.ts.map +1 -0
  55. package/dist/sdk/events/index.js +3 -0
  56. package/dist/sdk/events/index.js.map +1 -0
  57. package/dist/sdk/events/sinks.d.ts +13 -0
  58. package/dist/sdk/events/sinks.d.ts.map +1 -0
  59. package/dist/sdk/events/sinks.js +20 -0
  60. package/dist/sdk/events/sinks.js.map +1 -0
  61. package/dist/sdk/events/types.d.ts +19 -0
  62. package/dist/sdk/events/types.d.ts.map +1 -0
  63. package/dist/sdk/events/types.js +2 -0
  64. package/dist/sdk/events/types.js.map +1 -0
  65. package/dist/sdk/frameworks/next.d.ts +2 -0
  66. package/dist/sdk/frameworks/next.d.ts.map +1 -1
  67. package/dist/sdk/frameworks/next.js +4 -0
  68. package/dist/sdk/frameworks/next.js.map +1 -1
  69. package/package.json +2 -1
  70. package/schemas/local-run-history-index-v1.schema.json +57 -0
  71. package/schemas/openapi-commercial-v1.yaml +1 -1
@@ -1,5 +1,5 @@
1
1
  import { type ValidateFunction } from "ajv/dist/2020.js";
2
2
  export declare function schemasDir(): string;
3
- export type SchemaValidatorName = "agent-run-record-v1" | "agent-run-record-v2" | "workflow-result-signature" | "event" | "execution-trace-view" | "tools-registry" | "workflow-engine-result" | "workflow-truth-report" | "workflow-result" | "workflow-result-v9" | "workflow-result-compare-input" | "run-comparison-report" | "registry-validation-result" | "cli-error-envelope" | "plan-validation-core" | "quick-verify-report" | "tools-registry-export" | "ci-lock-v1" | "assurance-manifest-v1" | "assurance-run-report-v1" | "assurance-output-v1" | "public-verification-report-v1" | "public-verification-report-v2" | "outcome-certificate-v1" | "compare-run-manifest-v1" | "regression-artifact-v1" | "bootstrap-pack-input-v1" | "openai-function-tool-call-item-v1" | "contract-manifest";
3
+ export type SchemaValidatorName = "agent-run-record-v1" | "agent-run-record-v2" | "workflow-result-signature" | "event" | "execution-trace-view" | "tools-registry" | "workflow-engine-result" | "workflow-truth-report" | "workflow-result" | "workflow-result-v9" | "workflow-result-compare-input" | "run-comparison-report" | "registry-validation-result" | "cli-error-envelope" | "plan-validation-core" | "quick-verify-report" | "tools-registry-export" | "ci-lock-v1" | "assurance-manifest-v1" | "assurance-run-report-v1" | "assurance-output-v1" | "public-verification-report-v1" | "public-verification-report-v2" | "outcome-certificate-v1" | "compare-run-manifest-v1" | "regression-artifact-v1" | "bootstrap-pack-input-v1" | "openai-function-tool-call-item-v1" | "contract-manifest" | "local-run-history-index-v1";
4
4
  export declare function loadSchemaValidator(name: SchemaValidatorName): ValidateFunction;
5
5
  //# sourceMappingURL=schemaLoad.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"schemaLoad.d.ts","sourceRoot":"","sources":["../src/schemaLoad.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,KAAK,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AA6ClE,wBAAgB,UAAU,IAAI,MAAM,CAKnC;AAaD,MAAM,MAAM,mBAAmB,GAC3B,qBAAqB,GACrB,qBAAqB,GACrB,2BAA2B,GAC3B,OAAO,GACP,sBAAsB,GACtB,gBAAgB,GAChB,wBAAwB,GACxB,uBAAuB,GACvB,iBAAiB,GACjB,oBAAoB,GACpB,+BAA+B,GAC/B,uBAAuB,GACvB,4BAA4B,GAC5B,oBAAoB,GACpB,sBAAsB,GACtB,qBAAqB,GACrB,uBAAuB,GACvB,YAAY,GACZ,uBAAuB,GACvB,yBAAyB,GACzB,qBAAqB,GACrB,+BAA+B,GAC/B,+BAA+B,GAC/B,wBAAwB,GACxB,yBAAyB,GACzB,wBAAwB,GACxB,yBAAyB,GACzB,mCAAmC,GACnC,mBAAmB,CAAC;AA0CxB,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,mBAAmB,GAAG,gBAAgB,CAkF/E"}
1
+ {"version":3,"file":"schemaLoad.d.ts","sourceRoot":"","sources":["../src/schemaLoad.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,KAAK,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AA6ClE,wBAAgB,UAAU,IAAI,MAAM,CAKnC;AAaD,MAAM,MAAM,mBAAmB,GAC3B,qBAAqB,GACrB,qBAAqB,GACrB,2BAA2B,GAC3B,OAAO,GACP,sBAAsB,GACtB,gBAAgB,GAChB,wBAAwB,GACxB,uBAAuB,GACvB,iBAAiB,GACjB,oBAAoB,GACpB,+BAA+B,GAC/B,uBAAuB,GACvB,4BAA4B,GAC5B,oBAAoB,GACpB,sBAAsB,GACtB,qBAAqB,GACrB,uBAAuB,GACvB,YAAY,GACZ,uBAAuB,GACvB,yBAAyB,GACzB,qBAAqB,GACrB,+BAA+B,GAC/B,+BAA+B,GAC/B,wBAAwB,GACxB,yBAAyB,GACzB,wBAAwB,GACxB,yBAAyB,GACzB,mCAAmC,GACnC,mBAAmB,GACnB,4BAA4B,CAAC;AA0CjC,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,mBAAmB,GAAG,gBAAgB,CAoF/E"}
@@ -165,6 +165,8 @@ export function loadSchemaValidator(name) {
165
165
  return compileSchemaFile(name, "bootstrap-pack-input-v1.schema.json");
166
166
  case "contract-manifest":
167
167
  return compileSchemaFile(name, "contract-manifest.schema.json");
168
+ case "local-run-history-index-v1":
169
+ return compileSchemaFile(name, "local-run-history-index-v1.schema.json");
168
170
  default: {
169
171
  const _exhaustive = name;
170
172
  return _exhaustive;
@@ -1 +1 @@
1
- {"version":3,"file":"schemaLoad.js","sourceRoot":"","sources":["../src/schemaLoad.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"schemaLoad.js","sourceRoot":"","sources":["../src/schemaLoad.ts"],"names":[],"mappings":"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"}
@@ -5,6 +5,8 @@ import { type CurrentUsageResponse } from "../commercial/getCurrentUsage.js";
5
5
  import { type LicensePreflightIntent, type LicensePreflightResult } from "../commercial/licensePreflight.js";
6
6
  import type { WorkflowResult } from "../types.js";
7
7
  import type { OutcomeCertificateV1 } from "../outcomeCertificate.js";
8
+ import { CanonicalEventEmitter } from "./events/CanonicalEventEmitter.js";
9
+ import type { EventSink } from "./events/types.js";
8
10
  export type AgentSkepticOptions = Omit<CreateDecisionGateOptions, "workflowId">;
9
11
  /**
10
12
  * AgentSkeptic v2 SDK facade: one entry for gating, verify, quick verify, license preflight, and usage.
@@ -33,5 +35,11 @@ export declare class AgentSkeptic {
33
35
  }): Promise<LicensePreflightResult>;
34
36
  /** Current-month usage for the authenticated API key (commercial only). */
35
37
  currentUsage(): Promise<CurrentUsageResponse>;
38
+ /** Canonical event emitter for faithful event production. */
39
+ createEmitter(options: {
40
+ workflowId: string;
41
+ sink: EventSink;
42
+ defaultToolObservedSchemaVersion?: 1 | 2;
43
+ }): CanonicalEventEmitter;
36
44
  }
37
45
  //# sourceMappingURL=AgentSkeptic.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"AgentSkeptic.d.ts","sourceRoot":"","sources":["../../src/sdk/AgentSkeptic.ts"],"names":[],"mappings":"AAAA,OAAO,EAA0B,KAAK,yBAAyB,EAAE,KAAK,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAC/G,OAAO,EAAE,cAAc,IAAI,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AACvE,OAAO,EAEL,KAAK,qBAAqB,EAC1B,KAAK,oBAAoB,EAC1B,MAAM,kCAAkC,CAAC;AAE1C,OAAO,EAAqB,KAAK,oBAAoB,EAAE,MAAM,kCAAkC,CAAC;AAChG,OAAO,EAEL,KAAK,sBAAsB,EAC3B,KAAK,sBAAsB,EAC5B,MAAM,mCAAmC,CAAC;AAC3C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAErE,MAAM,MAAM,mBAAmB,GAAG,IAAI,CAAC,yBAAyB,EAAE,YAAY,CAAC,CAAC;AAEhF;;GAEG;AACH,qBAAa,YAAY;IACX,OAAO,CAAC,QAAQ,CAAC,IAAI;gBAAJ,IAAI,EAAE,mBAAmB;IAEtD,4GAA4G;IAC5G,IAAI,CAAC,gBAAgB,EAAE,MAAM,GAAG;QAAE,UAAU,EAAE,MAAM,CAAA;KAAE,GAAG,YAAY;IAKrE,2EAA2E;IACrE,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,OAAO,mBAAmB,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,cAAc,CAAC;IAIzF,kGAAkG;IAC5F,cAAc,CAAC,OAAO,EAAE;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAQhI,yDAAyD;IACnD,KAAK,CAAC,IAAI,EAAE,qBAAqB,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAIvE,gFAAgF;IAC1E,gBAAgB,CACpB,MAAM,GAAE,sBAAiC,EACzC,IAAI,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE,GAC7C,OAAO,CAAC,sBAAsB,CAAC;IAIlC,2EAA2E;IACrE,YAAY,IAAI,OAAO,CAAC,oBAAoB,CAAC;CAGpD"}
1
+ {"version":3,"file":"AgentSkeptic.d.ts","sourceRoot":"","sources":["../../src/sdk/AgentSkeptic.ts"],"names":[],"mappings":"AAAA,OAAO,EAA0B,KAAK,yBAAyB,EAAE,KAAK,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAC/G,OAAO,EAAE,cAAc,IAAI,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AACvE,OAAO,EAEL,KAAK,qBAAqB,EAC1B,KAAK,oBAAoB,EAC1B,MAAM,kCAAkC,CAAC;AAE1C,OAAO,EAAqB,KAAK,oBAAoB,EAAE,MAAM,kCAAkC,CAAC;AAChG,OAAO,EAEL,KAAK,sBAAsB,EAC3B,KAAK,sBAAsB,EAC5B,MAAM,mCAAmC,CAAC;AAC3C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AACrE,OAAO,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAC1E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAEnD,MAAM,MAAM,mBAAmB,GAAG,IAAI,CAAC,yBAAyB,EAAE,YAAY,CAAC,CAAC;AAEhF;;GAEG;AACH,qBAAa,YAAY;IACX,OAAO,CAAC,QAAQ,CAAC,IAAI;gBAAJ,IAAI,EAAE,mBAAmB;IAEtD,4GAA4G;IAC5G,IAAI,CAAC,gBAAgB,EAAE,MAAM,GAAG;QAAE,UAAU,EAAE,MAAM,CAAA;KAAE,GAAG,YAAY;IAKrE,2EAA2E;IACrE,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,OAAO,mBAAmB,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,cAAc,CAAC;IAIzF,kGAAkG;IAC5F,cAAc,CAAC,OAAO,EAAE;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAQhI,yDAAyD;IACnD,KAAK,CAAC,IAAI,EAAE,qBAAqB,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAIvE,gFAAgF;IAC1E,gBAAgB,CACpB,MAAM,GAAE,sBAAiC,EACzC,IAAI,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE,GAC7C,OAAO,CAAC,sBAAsB,CAAC;IAIlC,2EAA2E;IACrE,YAAY,IAAI,OAAO,CAAC,oBAAoB,CAAC;IAInD,6DAA6D;IAC7D,aAAa,CAAC,OAAO,EAAE;QACrB,UAAU,EAAE,MAAM,CAAC;QACnB,IAAI,EAAE,SAAS,CAAC;QAChB,gCAAgC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;KAC1C,GAAG,qBAAqB;CAO1B"}
@@ -4,6 +4,7 @@ import { runQuickVerify as runQuickVerifyInner, } from "../quickVerify/runQuickV
4
4
  import { verifyAgentskepticImpl } from "../verifyAgentskeptic.js";
5
5
  import { fetchCurrentUsage } from "../commercial/getCurrentUsage.js";
6
6
  import { runLicensePreflightIfNeeded, } from "../commercial/licensePreflight.js";
7
+ import { CanonicalEventEmitter } from "./events/CanonicalEventEmitter.js";
7
8
  /**
8
9
  * AgentSkeptic v2 SDK facade: one entry for gating, verify, quick verify, license preflight, and usage.
9
10
  */
@@ -41,5 +42,13 @@ export class AgentSkeptic {
41
42
  async currentUsage() {
42
43
  return fetchCurrentUsage();
43
44
  }
45
+ /** Canonical event emitter for faithful event production. */
46
+ createEmitter(options) {
47
+ return new CanonicalEventEmitter({
48
+ workflowId: options.workflowId,
49
+ sink: options.sink,
50
+ defaultToolObservedSchemaVersion: options.defaultToolObservedSchemaVersion,
51
+ });
52
+ }
44
53
  }
45
54
  //# sourceMappingURL=AgentSkeptic.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"AgentSkeptic.js","sourceRoot":"","sources":["../../src/sdk/AgentSkeptic.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAqD,MAAM,oBAAoB,CAAC;AAC/G,OAAO,EAAE,cAAc,IAAI,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AACvE,OAAO,EACL,cAAc,IAAI,mBAAmB,GAGtC,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,iBAAiB,EAA6B,MAAM,kCAAkC,CAAC;AAChG,OAAO,EACL,2BAA2B,GAG5B,MAAM,mCAAmC,CAAC;AAM3C;;GAEG;AACH,MAAM,OAAO,YAAY;IACM;IAA7B,YAA6B,IAAyB;QAAzB,SAAI,GAAJ,IAAI,CAAqB;IAAG,CAAC;IAE1D,4GAA4G;IAC5G,IAAI,CAAC,gBAAiD;QACpD,MAAM,UAAU,GAAG,OAAO,gBAAgB,KAAK,QAAQ,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,gBAAgB,CAAC,UAAU,CAAC;QACzG,OAAO,sBAAsB,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,EAAE,UAAU,EAAE,CAAC,CAAC;IAC9D,CAAC;IAED,2EAA2E;IAC3E,KAAK,CAAC,MAAM,CAAC,OAAkD;QAC7D,OAAO,mBAAmB,CAAC,OAAO,CAAC,CAAC;IACtC,CAAC;IAED,kGAAkG;IAClG,KAAK,CAAC,cAAc,CAAC,OAA2E;QAC9F,OAAO,sBAAsB,CAAC;YAC5B,UAAU,EAAE,OAAO,CAAC,UAAU;YAC9B,WAAW,EAAE,OAAO,CAAC,WAAW,IAAI,IAAI,CAAC,IAAI,CAAC,WAAW;YACzD,WAAW,EAAE,OAAO,CAAC,WAAW,IAAI,IAAI,CAAC,IAAI,CAAC,WAAW;SAC1D,CAAC,CAAC;IACL,CAAC;IAED,yDAAyD;IACzD,KAAK,CAAC,KAAK,CAAC,IAA2B;QACrC,OAAO,mBAAmB,CAAC,IAAI,CAAC,CAAC;IACnC,CAAC;IAED,gFAAgF;IAChF,KAAK,CAAC,gBAAgB,CACpB,SAAiC,QAAQ,EACzC,IAA8C;QAE9C,OAAO,2BAA2B,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IACnD,CAAC;IAED,2EAA2E;IAC3E,KAAK,CAAC,YAAY;QAChB,OAAO,iBAAiB,EAAE,CAAC;IAC7B,CAAC;CACF"}
1
+ {"version":3,"file":"AgentSkeptic.js","sourceRoot":"","sources":["../../src/sdk/AgentSkeptic.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAqD,MAAM,oBAAoB,CAAC;AAC/G,OAAO,EAAE,cAAc,IAAI,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AACvE,OAAO,EACL,cAAc,IAAI,mBAAmB,GAGtC,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,iBAAiB,EAA6B,MAAM,kCAAkC,CAAC;AAChG,OAAO,EACL,2BAA2B,GAG5B,MAAM,mCAAmC,CAAC;AAG3C,OAAO,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAK1E;;GAEG;AACH,MAAM,OAAO,YAAY;IACM;IAA7B,YAA6B,IAAyB;QAAzB,SAAI,GAAJ,IAAI,CAAqB;IAAG,CAAC;IAE1D,4GAA4G;IAC5G,IAAI,CAAC,gBAAiD;QACpD,MAAM,UAAU,GAAG,OAAO,gBAAgB,KAAK,QAAQ,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,gBAAgB,CAAC,UAAU,CAAC;QACzG,OAAO,sBAAsB,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,EAAE,UAAU,EAAE,CAAC,CAAC;IAC9D,CAAC;IAED,2EAA2E;IAC3E,KAAK,CAAC,MAAM,CAAC,OAAkD;QAC7D,OAAO,mBAAmB,CAAC,OAAO,CAAC,CAAC;IACtC,CAAC;IAED,kGAAkG;IAClG,KAAK,CAAC,cAAc,CAAC,OAA2E;QAC9F,OAAO,sBAAsB,CAAC;YAC5B,UAAU,EAAE,OAAO,CAAC,UAAU;YAC9B,WAAW,EAAE,OAAO,CAAC,WAAW,IAAI,IAAI,CAAC,IAAI,CAAC,WAAW;YACzD,WAAW,EAAE,OAAO,CAAC,WAAW,IAAI,IAAI,CAAC,IAAI,CAAC,WAAW;SAC1D,CAAC,CAAC;IACL,CAAC;IAED,yDAAyD;IACzD,KAAK,CAAC,KAAK,CAAC,IAA2B;QACrC,OAAO,mBAAmB,CAAC,IAAI,CAAC,CAAC;IACnC,CAAC;IAED,gFAAgF;IAChF,KAAK,CAAC,gBAAgB,CACpB,SAAiC,QAAQ,EACzC,IAA8C;QAE9C,OAAO,2BAA2B,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IACnD,CAAC;IAED,2EAA2E;IAC3E,KAAK,CAAC,YAAY;QAChB,OAAO,iBAAiB,EAAE,CAAC;IAC7B,CAAC;IAED,6DAA6D;IAC7D,aAAa,CAAC,OAIb;QACC,OAAO,IAAI,qBAAqB,CAAC;YAC/B,UAAU,EAAE,OAAO,CAAC,UAAU;YAC9B,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,gCAAgC,EAAE,OAAO,CAAC,gCAAgC;SAC3E,CAAC,CAAC;IACL,CAAC;CACF"}
@@ -0,0 +1,50 @@
1
+ import type { ControlRunEvent, ModelTurnRunEvent, RetrievalRunEvent, ToolObservedEvent, ToolSkippedRunEvent } from "../../types.js";
2
+ import type { ControlKind, EventEmitterInit, ModelTurnStatus, RetrievalStatus } from "./types.js";
3
+ export declare class CanonicalEventEmitter {
4
+ private readonly init;
5
+ private seq;
6
+ private parentRunEventId;
7
+ private readonly workflowId;
8
+ private readonly defaultToolObservedSchemaVersion;
9
+ constructor(init: EventEmitterInit);
10
+ private emit;
11
+ emitToolObserved(input: {
12
+ toolId: string;
13
+ params: Record<string, unknown>;
14
+ timestamp?: string;
15
+ schemaVersion?: 1 | 2;
16
+ }): Promise<ToolObservedEvent>;
17
+ emitToolObservedLangGraphCheckpoint(input: {
18
+ toolId: string;
19
+ params: Record<string, unknown>;
20
+ threadId: string;
21
+ checkpointNs: string;
22
+ checkpointId: string;
23
+ timestamp?: string;
24
+ }): Promise<ToolObservedEvent>;
25
+ emitModelTurn(input: {
26
+ status: ModelTurnStatus;
27
+ summary?: string;
28
+ timestamp?: string;
29
+ }): Promise<ModelTurnRunEvent>;
30
+ emitRetrieval(input: {
31
+ source: string;
32
+ status: RetrievalStatus;
33
+ querySummary?: string;
34
+ hitCount?: number;
35
+ timestamp?: string;
36
+ }): Promise<RetrievalRunEvent>;
37
+ emitControl(input: {
38
+ controlKind: ControlKind;
39
+ decision?: "taken" | "skipped";
40
+ label?: string;
41
+ timestamp?: string;
42
+ }): Promise<ControlRunEvent>;
43
+ emitToolSkipped(input: {
44
+ toolId: string;
45
+ reason: string;
46
+ timestamp?: string;
47
+ }): Promise<ToolSkippedRunEvent>;
48
+ finalizeRun(timestamp?: string): Promise<ControlRunEvent>;
49
+ }
50
+ //# sourceMappingURL=CanonicalEventEmitter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CanonicalEventEmitter.d.ts","sourceRoot":"","sources":["../../../src/sdk/events/CanonicalEventEmitter.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,eAAe,EACf,iBAAiB,EACjB,iBAAiB,EAEjB,iBAAiB,EACjB,mBAAmB,EACpB,MAAM,gBAAgB,CAAC;AACxB,OAAO,KAAK,EAAE,WAAW,EAAE,gBAAgB,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAElG,qBAAa,qBAAqB;IAMpB,OAAO,CAAC,QAAQ,CAAC,IAAI;IALjC,OAAO,CAAC,GAAG,CAAK;IAChB,OAAO,CAAC,gBAAgB,CAAqB;IAC7C,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IACpC,OAAO,CAAC,QAAQ,CAAC,gCAAgC,CAAQ;gBAE5B,IAAI,EAAE,gBAAgB;YAQrC,IAAI;IAQZ,gBAAgB,CAAC,KAAK,EAAE;QAC5B,MAAM,EAAE,MAAM,CAAC;QACf,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAChC,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,aAAa,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;KACvB,GAAG,OAAO,CAAC,iBAAiB,CAAC;IA+BxB,mCAAmC,CAAC,KAAK,EAAE;QAC/C,MAAM,EAAE,MAAM,CAAC;QACf,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAChC,QAAQ,EAAE,MAAM,CAAC;QACjB,YAAY,EAAE,MAAM,CAAC;QACrB,YAAY,EAAE,MAAM,CAAC;QACrB,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,GAAG,OAAO,CAAC,iBAAiB,CAAC;IA6BxB,aAAa,CAAC,KAAK,EAAE;QACzB,MAAM,EAAE,eAAe,CAAC;QACxB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAcxB,aAAa,CAAC,KAAK,EAAE;QACzB,MAAM,EAAE,MAAM,CAAC;QACf,MAAM,EAAE,eAAe,CAAC;QACxB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAmBxB,WAAW,CAAC,KAAK,EAAE;QACvB,WAAW,EAAE,WAAW,CAAC;QACzB,QAAQ,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;QAC/B,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,GAAG,OAAO,CAAC,eAAe,CAAC;IAetB,eAAe,CAAC,KAAK,EAAE;QAC3B,MAAM,EAAE,MAAM,CAAC;QACf,MAAM,EAAE,MAAM,CAAC;QACf,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAiB1B,WAAW,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC;CAGhE"}
@@ -0,0 +1,145 @@
1
+ import { randomUUID } from "node:crypto";
2
+ import { CLI_OPERATIONAL_CODES } from "../../cliOperationalCodes.js";
3
+ import { TruthLayerError } from "../../truthLayerError.js";
4
+ export class CanonicalEventEmitter {
5
+ init;
6
+ seq = 0;
7
+ parentRunEventId;
8
+ workflowId;
9
+ defaultToolObservedSchemaVersion;
10
+ constructor(init) {
11
+ this.init = init;
12
+ if (!init.workflowId.trim()) {
13
+ throw new TruthLayerError(CLI_OPERATIONAL_CODES.EMIT_WORKFLOW_ID_INVALID, "workflowId must be non-empty.");
14
+ }
15
+ this.workflowId = init.workflowId;
16
+ this.defaultToolObservedSchemaVersion = init.defaultToolObservedSchemaVersion ?? 2;
17
+ }
18
+ async emit(event) {
19
+ await this.init.sink.write(event);
20
+ if (event.schemaVersion === 2 || event.schemaVersion === 3) {
21
+ this.parentRunEventId = event.runEventId;
22
+ }
23
+ return event;
24
+ }
25
+ async emitToolObserved(input) {
26
+ if (!input.toolId.trim()) {
27
+ throw new TruthLayerError(CLI_OPERATIONAL_CODES.EMIT_TOOL_ID_INVALID, "toolId must be non-empty.");
28
+ }
29
+ const schemaVersion = input.schemaVersion ?? this.defaultToolObservedSchemaVersion;
30
+ if (schemaVersion === 1) {
31
+ const ev = {
32
+ schemaVersion: 1,
33
+ workflowId: this.workflowId,
34
+ seq: this.seq++,
35
+ type: "tool_observed",
36
+ toolId: input.toolId,
37
+ params: input.params,
38
+ ...(input.timestamp ? { timestamp: input.timestamp } : {}),
39
+ };
40
+ return (await this.emit(ev));
41
+ }
42
+ const ev = {
43
+ schemaVersion: 2,
44
+ workflowId: this.workflowId,
45
+ runEventId: randomUUID(),
46
+ ...(this.parentRunEventId ? { parentRunEventId: this.parentRunEventId } : {}),
47
+ type: "tool_observed",
48
+ seq: this.seq++,
49
+ toolId: input.toolId,
50
+ params: input.params,
51
+ ...(input.timestamp ? { timestamp: input.timestamp } : {}),
52
+ };
53
+ return (await this.emit(ev));
54
+ }
55
+ async emitToolObservedLangGraphCheckpoint(input) {
56
+ if (!input.toolId.trim()) {
57
+ throw new TruthLayerError(CLI_OPERATIONAL_CODES.EMIT_TOOL_ID_INVALID, "toolId must be non-empty.");
58
+ }
59
+ if (!input.threadId.trim() || !input.checkpointId.trim()) {
60
+ throw new TruthLayerError(CLI_OPERATIONAL_CODES.EMIT_LANGGRAPH_CHECKPOINT_INVALID, "langgraph checkpoint threadId/checkpointId must be non-empty.");
61
+ }
62
+ const ev = {
63
+ schemaVersion: 3,
64
+ workflowId: this.workflowId,
65
+ runEventId: randomUUID(),
66
+ ...(this.parentRunEventId ? { parentRunEventId: this.parentRunEventId } : {}),
67
+ type: "tool_observed",
68
+ seq: this.seq++,
69
+ toolId: input.toolId,
70
+ params: input.params,
71
+ ...(input.timestamp ? { timestamp: input.timestamp } : {}),
72
+ langgraphCheckpoint: {
73
+ threadId: input.threadId,
74
+ checkpointNs: input.checkpointNs,
75
+ checkpointId: input.checkpointId,
76
+ },
77
+ };
78
+ return (await this.emit(ev));
79
+ }
80
+ async emitModelTurn(input) {
81
+ const ev = {
82
+ schemaVersion: 2,
83
+ workflowId: this.workflowId,
84
+ runEventId: randomUUID(),
85
+ ...(this.parentRunEventId ? { parentRunEventId: this.parentRunEventId } : {}),
86
+ type: "model_turn",
87
+ status: input.status,
88
+ ...(input.summary ? { summary: input.summary } : {}),
89
+ ...(input.timestamp ? { timestamp: input.timestamp } : {}),
90
+ };
91
+ return (await this.emit(ev));
92
+ }
93
+ async emitRetrieval(input) {
94
+ if (!input.source.trim()) {
95
+ throw new TruthLayerError(CLI_OPERATIONAL_CODES.EMIT_RETRIEVAL_SOURCE_INVALID, "retrieval source must be non-empty.");
96
+ }
97
+ const ev = {
98
+ schemaVersion: 2,
99
+ workflowId: this.workflowId,
100
+ runEventId: randomUUID(),
101
+ ...(this.parentRunEventId ? { parentRunEventId: this.parentRunEventId } : {}),
102
+ type: "retrieval",
103
+ source: input.source,
104
+ status: input.status,
105
+ ...(input.querySummary ? { querySummary: input.querySummary } : {}),
106
+ ...(input.hitCount !== undefined ? { hitCount: input.hitCount } : {}),
107
+ ...(input.timestamp ? { timestamp: input.timestamp } : {}),
108
+ };
109
+ return (await this.emit(ev));
110
+ }
111
+ async emitControl(input) {
112
+ const ev = {
113
+ schemaVersion: 2,
114
+ workflowId: this.workflowId,
115
+ runEventId: randomUUID(),
116
+ ...(this.parentRunEventId ? { parentRunEventId: this.parentRunEventId } : {}),
117
+ type: "control",
118
+ controlKind: input.controlKind,
119
+ ...(input.decision ? { decision: input.decision } : {}),
120
+ ...(input.label ? { label: input.label } : {}),
121
+ ...(input.timestamp ? { timestamp: input.timestamp } : {}),
122
+ };
123
+ return (await this.emit(ev));
124
+ }
125
+ async emitToolSkipped(input) {
126
+ if (!input.toolId.trim()) {
127
+ throw new TruthLayerError(CLI_OPERATIONAL_CODES.EMIT_TOOL_ID_INVALID, "toolId must be non-empty.");
128
+ }
129
+ const ev = {
130
+ schemaVersion: 2,
131
+ workflowId: this.workflowId,
132
+ runEventId: randomUUID(),
133
+ ...(this.parentRunEventId ? { parentRunEventId: this.parentRunEventId } : {}),
134
+ type: "tool_skipped",
135
+ toolId: input.toolId,
136
+ reason: input.reason,
137
+ ...(input.timestamp ? { timestamp: input.timestamp } : {}),
138
+ };
139
+ return (await this.emit(ev));
140
+ }
141
+ async finalizeRun(timestamp) {
142
+ return this.emitControl({ controlKind: "run_completed", timestamp });
143
+ }
144
+ }
145
+ //# sourceMappingURL=CanonicalEventEmitter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CanonicalEventEmitter.js","sourceRoot":"","sources":["../../../src/sdk/events/CanonicalEventEmitter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ export { CanonicalEventEmitter } from "./CanonicalEventEmitter.js";
2
+ export { BufferSink, NdjsonFileSink } from "./sinks.js";
3
+ export type { EventEmitterInit, EventSink } from "./types.js";
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/sdk/events/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AACxD,YAAY,EAAE,gBAAgB,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC"}
@@ -0,0 +1,3 @@
1
+ export { CanonicalEventEmitter } from "./CanonicalEventEmitter.js";
2
+ export { BufferSink, NdjsonFileSink } from "./sinks.js";
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/sdk/events/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC"}
@@ -0,0 +1,13 @@
1
+ import type { RunEvent } from "../../types.js";
2
+ import type { EventSink } from "./types.js";
3
+ export declare class BufferSink implements EventSink {
4
+ private readonly events;
5
+ write(event: RunEvent): void;
6
+ snapshot(): RunEvent[];
7
+ }
8
+ export declare class NdjsonFileSink implements EventSink {
9
+ private readonly filePath;
10
+ constructor(filePath: string);
11
+ write(event: RunEvent): void;
12
+ }
13
+ //# sourceMappingURL=sinks.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sinks.d.ts","sourceRoot":"","sources":["../../../src/sdk/events/sinks.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAE5C,qBAAa,UAAW,YAAW,SAAS;IAC1C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAkB;IAEzC,KAAK,CAAC,KAAK,EAAE,QAAQ,GAAG,IAAI;IAI5B,QAAQ,IAAI,QAAQ,EAAE;CAGvB;AAED,qBAAa,cAAe,YAAW,SAAS;IAClC,OAAO,CAAC,QAAQ,CAAC,QAAQ;gBAAR,QAAQ,EAAE,MAAM;IAE7C,KAAK,CAAC,KAAK,EAAE,QAAQ,GAAG,IAAI;CAG7B"}
@@ -0,0 +1,20 @@
1
+ import { appendFileSync } from "node:fs";
2
+ export class BufferSink {
3
+ events = [];
4
+ write(event) {
5
+ this.events.push(event);
6
+ }
7
+ snapshot() {
8
+ return this.events.slice();
9
+ }
10
+ }
11
+ export class NdjsonFileSink {
12
+ filePath;
13
+ constructor(filePath) {
14
+ this.filePath = filePath;
15
+ }
16
+ write(event) {
17
+ appendFileSync(this.filePath, `${JSON.stringify(event)}\n`, "utf8");
18
+ }
19
+ }
20
+ //# sourceMappingURL=sinks.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sinks.js","sourceRoot":"","sources":["../../../src/sdk/events/sinks.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAIzC,MAAM,OAAO,UAAU;IACJ,MAAM,GAAe,EAAE,CAAC;IAEzC,KAAK,CAAC,KAAe;QACnB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC1B,CAAC;IAED,QAAQ;QACN,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;IAC7B,CAAC;CACF;AAED,MAAM,OAAO,cAAc;IACI;IAA7B,YAA6B,QAAgB;QAAhB,aAAQ,GAAR,QAAQ,CAAQ;IAAG,CAAC;IAEjD,KAAK,CAAC,KAAe;QACnB,cAAc,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACtE,CAAC;CACF"}
@@ -0,0 +1,19 @@
1
+ import type { RunEvent } from "../../types.js";
2
+ export type EventSink = {
3
+ write(event: RunEvent): void | Promise<void>;
4
+ flush?(): void | Promise<void>;
5
+ close?(): void | Promise<void>;
6
+ };
7
+ export type EventEmitterInit = {
8
+ workflowId: string;
9
+ sink: EventSink;
10
+ /**
11
+ * Default schema version for emitted tool_observed rows unless a specific
12
+ * emission method requires a different version.
13
+ */
14
+ defaultToolObservedSchemaVersion?: 1 | 2;
15
+ };
16
+ export type ModelTurnStatus = "completed" | "error" | "aborted" | "incomplete";
17
+ export type RetrievalStatus = "ok" | "empty" | "error";
18
+ export type ControlKind = "branch" | "loop" | "interrupt" | "gate" | "run_completed";
19
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/sdk/events/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE/C,MAAM,MAAM,SAAS,GAAG;IACtB,KAAK,CAAC,KAAK,EAAE,QAAQ,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7C,KAAK,CAAC,IAAI,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/B,KAAK,CAAC,IAAI,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAChC,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,SAAS,CAAC;IAChB;;;OAGG;IACH,gCAAgC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;CAC1C,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG,WAAW,GAAG,OAAO,GAAG,SAAS,GAAG,YAAY,CAAC;AAC/E,MAAM,MAAM,eAAe,GAAG,IAAI,GAAG,OAAO,GAAG,OAAO,CAAC;AACvD,MAAM,MAAM,WAAW,GAAG,QAAQ,GAAG,MAAM,GAAG,WAAW,GAAG,MAAM,GAAG,eAAe,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/sdk/events/types.ts"],"names":[],"mappings":""}
@@ -3,6 +3,8 @@ import type { DecisionGate } from "../../decisionGate.js";
3
3
  export type CreateNextRouteHandlerOptions = {
4
4
  /** When the request has no `workflowId` in JSON body, use this gate id. */
5
5
  defaultWorkflowId?: string;
6
+ /** When true, enforce run-event integrity before handler response is returned. */
7
+ strictEmissionQuality?: boolean;
6
8
  };
7
9
  /**
8
10
  * Next.js App Router helper: returns a `POST` handler that creates a `DecisionGate` per request.
@@ -1 +1 @@
1
- {"version":3,"file":"next.d.ts","sourceRoot":"","sources":["../../../src/sdk/frameworks/next.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAE1D,MAAM,MAAM,6BAA6B,GAAG;IAC1C,2EAA2E;IAC3E,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B,CAAC;AAEF;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,CAAC,EACtC,OAAO,EAAE,YAAY,EACrB,OAAO,EAAE,CAAC,IAAI,EAAE,YAAY,EAAE,GAAG,EAAE,OAAO,KAAK,OAAO,CAAC,CAAC,CAAC,EACzD,OAAO,CAAC,EAAE,6BAA6B,GACtC,CAAC,GAAG,EAAE,OAAO,KAAK,OAAO,CAAC,QAAQ,CAAC,CAwBrC"}
1
+ {"version":3,"file":"next.d.ts","sourceRoot":"","sources":["../../../src/sdk/frameworks/next.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAE1D,MAAM,MAAM,6BAA6B,GAAG;IAC1C,2EAA2E;IAC3E,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,kFAAkF;IAClF,qBAAqB,CAAC,EAAE,OAAO,CAAC;CACjC,CAAC;AAEF;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,CAAC,EACtC,OAAO,EAAE,YAAY,EACrB,OAAO,EAAE,CAAC,IAAI,EAAE,YAAY,EAAE,GAAG,EAAE,OAAO,KAAK,OAAO,CAAC,CAAC,CAAC,EACzD,OAAO,CAAC,EAAE,6BAA6B,GACtC,CAAC,GAAG,EAAE,OAAO,KAAK,OAAO,CAAC,QAAQ,CAAC,CA4BrC"}
@@ -4,6 +4,7 @@
4
4
  */
5
5
  export function createNextRouteHandler(skeptic, handler, options) {
6
6
  const fallbackId = options?.defaultWorkflowId ?? "api";
7
+ const strictEmissionQuality = options?.strictEmissionQuality ?? false;
7
8
  return async (req) => {
8
9
  let workflowId = fallbackId;
9
10
  const ct = req.headers.get("content-type") ?? "";
@@ -23,6 +24,9 @@ export function createNextRouteHandler(skeptic, handler, options) {
23
24
  }
24
25
  const gate = skeptic.gate({ workflowId });
25
26
  const out = await handler(gate, req);
27
+ if (strictEmissionQuality) {
28
+ gate.assertEmissionQuality();
29
+ }
26
30
  return Response.json(out);
27
31
  };
28
32
  }
@@ -1 +1 @@
1
- {"version":3,"file":"next.js","sourceRoot":"","sources":["../../../src/sdk/frameworks/next.ts"],"names":[],"mappings":"AAQA;;;GAGG;AACH,MAAM,UAAU,sBAAsB,CACpC,OAAqB,EACrB,OAAyD,EACzD,OAAuC;IAEvC,MAAM,UAAU,GAAG,OAAO,EAAE,iBAAiB,IAAI,KAAK,CAAC;IACvD,OAAO,KAAK,EAAE,GAAY,EAAE,EAAE;QAC5B,IAAI,UAAU,GAAG,UAAU,CAAC;QAC5B,MAAM,EAAE,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC;QACjD,IAAI,EAAE,CAAC,QAAQ,CAAC,kBAAkB,CAAC,EAAE,CAAC;YACpC,IAAI,CAAC;gBACH,MAAM,IAAI,GAAY,MAAM,GAAG,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,CAAC;gBAC/C,IACE,IAAI;oBACJ,OAAO,IAAI,KAAK,QAAQ;oBACxB,YAAY,IAAI,IAAI;oBACpB,OAAQ,IAAiC,CAAC,UAAU,KAAK,QAAQ,EACjE,CAAC;oBACD,UAAU,GAAI,IAA+B,CAAC,UAAU,CAAC;gBAC3D,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;gBACP,kBAAkB;YACpB,CAAC;QACH,CAAC;QACD,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC;QAC1C,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QACrC,OAAO,QAAQ,CAAC,IAAI,CAAC,GAAa,CAAC,CAAC;IACtC,CAAC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"next.js","sourceRoot":"","sources":["../../../src/sdk/frameworks/next.ts"],"names":[],"mappings":"AAUA;;;GAGG;AACH,MAAM,UAAU,sBAAsB,CACpC,OAAqB,EACrB,OAAyD,EACzD,OAAuC;IAEvC,MAAM,UAAU,GAAG,OAAO,EAAE,iBAAiB,IAAI,KAAK,CAAC;IACvD,MAAM,qBAAqB,GAAG,OAAO,EAAE,qBAAqB,IAAI,KAAK,CAAC;IACtE,OAAO,KAAK,EAAE,GAAY,EAAE,EAAE;QAC5B,IAAI,UAAU,GAAG,UAAU,CAAC;QAC5B,MAAM,EAAE,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC;QACjD,IAAI,EAAE,CAAC,QAAQ,CAAC,kBAAkB,CAAC,EAAE,CAAC;YACpC,IAAI,CAAC;gBACH,MAAM,IAAI,GAAY,MAAM,GAAG,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,CAAC;gBAC/C,IACE,IAAI;oBACJ,OAAO,IAAI,KAAK,QAAQ;oBACxB,YAAY,IAAI,IAAI;oBACpB,OAAQ,IAAiC,CAAC,UAAU,KAAK,QAAQ,EACjE,CAAC;oBACD,UAAU,GAAI,IAA+B,CAAC,UAAU,CAAC;gBAC3D,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;gBACP,kBAAkB;YACpB,CAAC;QACH,CAAC;QACD,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC;QAC1C,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QACrC,IAAI,qBAAqB,EAAE,CAAC;YAC1B,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAC/B,CAAC;QACD,OAAO,QAAQ,CAAC,IAAI,CAAC,GAAa,CAAC,CAAC;IACtC,CAAC,CAAC;AACJ,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "agentskeptic",
3
- "version": "2.1.0",
3
+ "version": "2.3.0",
4
4
  "description": "AgentSkeptic compares agent claims with real downstream state — databases, APIs, object stores, and vector stores — and returns a clear verdict.",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -86,6 +86,7 @@
86
86
  "conformance:gate": "node conformance/assert-supported-100.mjs",
87
87
  "docs:generate:capabilities": "node scripts/generate-capability-docs.mjs",
88
88
  "docs:check:capabilities": "node scripts/generate-capability-docs.mjs --check",
89
+ "measure:emission-onboarding-metrics": "node scripts/measure-emission-onboarding-metrics.mjs",
89
90
  "release:dry": "semantic-release --dry-run",
90
91
  "lock:align-esbuild-nested": "node scripts/align-esbuild-kit-lock-nested.mjs",
91
92
  "prepare": "npx --yes patch-package@8.0.1 && node scripts/patch-lhci-punycode.mjs && husky"
@@ -0,0 +1,57 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://agentskeptic.com/schemas/local-run-history-index-v1.schema.json",
4
+ "title": "LocalRunHistoryIndexV1",
5
+ "type": "object",
6
+ "additionalProperties": false,
7
+ "required": [
8
+ "schemaVersion",
9
+ "runs"
10
+ ],
11
+ "properties": {
12
+ "schemaVersion": {
13
+ "const": 1
14
+ },
15
+ "runs": {
16
+ "type": "array",
17
+ "items": {
18
+ "type": "object",
19
+ "additionalProperties": false,
20
+ "required": [
21
+ "workflowId",
22
+ "capturedAt",
23
+ "runDir",
24
+ "workflowResultPath",
25
+ "eventsPath",
26
+ "outcomeCertificatePath"
27
+ ],
28
+ "properties": {
29
+ "workflowId": {
30
+ "type": "string",
31
+ "minLength": 1
32
+ },
33
+ "capturedAt": {
34
+ "type": "string",
35
+ "format": "date-time"
36
+ },
37
+ "runDir": {
38
+ "type": "string",
39
+ "minLength": 1
40
+ },
41
+ "workflowResultPath": {
42
+ "type": "string",
43
+ "minLength": 1
44
+ },
45
+ "eventsPath": {
46
+ "type": "string",
47
+ "minLength": 1
48
+ },
49
+ "outcomeCertificatePath": {
50
+ "type": "string",
51
+ "minLength": 1
52
+ }
53
+ }
54
+ }
55
+ }
56
+ }
57
+ }
@@ -1,7 +1,7 @@
1
1
  openapi: "3.0.3"
2
2
  info:
3
3
  title: AgentSkeptic commercial license API
4
- version: "2.1.0"
4
+ version: "2.3.0"
5
5
  contact:
6
6
  url: https://agentskeptic.com
7
7
  x-agentskeptic-distribution: