@unifyplane/logsdk 0.1.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 (170) hide show
  1. package/README.md +18 -0
  2. package/contracts/repo.capabilities.json +12 -0
  3. package/contracts/repo.runtime.json +49 -0
  4. package/contracts/schemas/repo/repo.runtime.v1.schema.json +134 -0
  5. package/dist/core/clock.d.ts +3 -0
  6. package/dist/core/clock.d.ts.map +1 -0
  7. package/dist/core/clock.js +21 -0
  8. package/dist/core/clock.js.map +1 -0
  9. package/dist/core/context.d.ts +10 -0
  10. package/dist/core/context.d.ts.map +1 -0
  11. package/dist/core/context.js +100 -0
  12. package/dist/core/context.js.map +1 -0
  13. package/dist/core/fanout.d.ts +4 -0
  14. package/dist/core/fanout.d.ts.map +1 -0
  15. package/dist/core/fanout.js +32 -0
  16. package/dist/core/fanout.js.map +1 -0
  17. package/dist/core/ids.d.ts +6 -0
  18. package/dist/core/ids.d.ts.map +1 -0
  19. package/dist/core/ids.js +27 -0
  20. package/dist/core/ids.js.map +1 -0
  21. package/dist/core/message_constraints.d.ts +4 -0
  22. package/dist/core/message_constraints.d.ts.map +1 -0
  23. package/dist/core/message_constraints.js +53 -0
  24. package/dist/core/message_constraints.js.map +1 -0
  25. package/dist/core/outcomes.d.ts +5 -0
  26. package/dist/core/outcomes.d.ts.map +1 -0
  27. package/dist/core/outcomes.js +4 -0
  28. package/dist/core/outcomes.js.map +1 -0
  29. package/dist/core/record_builder.d.ts +34 -0
  30. package/dist/core/record_builder.d.ts.map +1 -0
  31. package/dist/core/record_builder.js +188 -0
  32. package/dist/core/record_builder.js.map +1 -0
  33. package/dist/core/spool.d.ts +4 -0
  34. package/dist/core/spool.d.ts.map +1 -0
  35. package/dist/core/spool.js +31 -0
  36. package/dist/core/spool.js.map +1 -0
  37. package/dist/core/types.d.ts +33 -0
  38. package/dist/core/types.d.ts.map +1 -0
  39. package/dist/core/types.js +4 -0
  40. package/dist/core/types.js.map +1 -0
  41. package/dist/esm/core/clock.js +21 -0
  42. package/dist/esm/core/clock.js.map +1 -0
  43. package/dist/esm/core/context.js +100 -0
  44. package/dist/esm/core/context.js.map +1 -0
  45. package/dist/esm/core/fanout.js +32 -0
  46. package/dist/esm/core/fanout.js.map +1 -0
  47. package/dist/esm/core/ids.js +27 -0
  48. package/dist/esm/core/ids.js.map +1 -0
  49. package/dist/esm/core/message_constraints.js +53 -0
  50. package/dist/esm/core/message_constraints.js.map +1 -0
  51. package/dist/esm/core/outcomes.js +4 -0
  52. package/dist/esm/core/outcomes.js.map +1 -0
  53. package/dist/esm/core/record_builder.js +188 -0
  54. package/dist/esm/core/record_builder.js.map +1 -0
  55. package/dist/esm/core/spool.js +31 -0
  56. package/dist/esm/core/spool.js.map +1 -0
  57. package/dist/esm/core/types.js +4 -0
  58. package/dist/esm/core/types.js.map +1 -0
  59. package/dist/esm/index.js +52 -0
  60. package/dist/esm/index.js.map +1 -0
  61. package/dist/esm/sinks/file_ndjson.js +29 -0
  62. package/dist/esm/sinks/file_ndjson.js.map +1 -0
  63. package/dist/esm/sinks/file_ndjson_sink.js +36 -0
  64. package/dist/esm/sinks/file_ndjson_sink.js.map +1 -0
  65. package/dist/esm/sinks/sink_types.js +2 -0
  66. package/dist/esm/sinks/sink_types.js.map +1 -0
  67. package/dist/esm/sinks/stdout_sink.js +15 -0
  68. package/dist/esm/sinks/stdout_sink.js.map +1 -0
  69. package/dist/esm/validate/api_surface_guard.js +63 -0
  70. package/dist/esm/validate/api_surface_guard.js.map +1 -0
  71. package/dist/esm/validate/noncompliance.js +17 -0
  72. package/dist/esm/validate/noncompliance.js.map +1 -0
  73. package/dist/esm/validate/schema_guard.js +151 -0
  74. package/dist/esm/validate/schema_guard.js.map +1 -0
  75. package/dist/index.d.ts +26 -0
  76. package/dist/index.d.ts.map +1 -0
  77. package/dist/index.js +52 -0
  78. package/dist/index.js.map +1 -0
  79. package/dist/sinks/file_ndjson.d.ts +18 -0
  80. package/dist/sinks/file_ndjson.d.ts.map +1 -0
  81. package/dist/sinks/file_ndjson.js +29 -0
  82. package/dist/sinks/file_ndjson.js.map +1 -0
  83. package/dist/sinks/file_ndjson_sink.d.ts +7 -0
  84. package/dist/sinks/file_ndjson_sink.d.ts.map +1 -0
  85. package/dist/sinks/file_ndjson_sink.js +36 -0
  86. package/dist/sinks/file_ndjson_sink.js.map +1 -0
  87. package/dist/sinks/sink_types.d.ts +12 -0
  88. package/dist/sinks/sink_types.d.ts.map +1 -0
  89. package/dist/sinks/sink_types.js +2 -0
  90. package/dist/sinks/sink_types.js.map +1 -0
  91. package/dist/sinks/stdout_sink.d.ts +6 -0
  92. package/dist/sinks/stdout_sink.d.ts.map +1 -0
  93. package/dist/sinks/stdout_sink.js +15 -0
  94. package/dist/sinks/stdout_sink.js.map +1 -0
  95. package/dist/types/core/clock.d.ts +3 -0
  96. package/dist/types/core/clock.d.ts.map +1 -0
  97. package/dist/types/core/context.d.ts +10 -0
  98. package/dist/types/core/context.d.ts.map +1 -0
  99. package/dist/types/core/fanout.d.ts +4 -0
  100. package/dist/types/core/fanout.d.ts.map +1 -0
  101. package/dist/types/core/ids.d.ts +6 -0
  102. package/dist/types/core/ids.d.ts.map +1 -0
  103. package/dist/types/core/message_constraints.d.ts +4 -0
  104. package/dist/types/core/message_constraints.d.ts.map +1 -0
  105. package/dist/types/core/outcomes.d.ts +5 -0
  106. package/dist/types/core/outcomes.d.ts.map +1 -0
  107. package/dist/types/core/record_builder.d.ts +34 -0
  108. package/dist/types/core/record_builder.d.ts.map +1 -0
  109. package/dist/types/core/spool.d.ts +4 -0
  110. package/dist/types/core/spool.d.ts.map +1 -0
  111. package/dist/types/core/types.d.ts +33 -0
  112. package/dist/types/core/types.d.ts.map +1 -0
  113. package/dist/types/index.d.ts +26 -0
  114. package/dist/types/index.d.ts.map +1 -0
  115. package/dist/types/sinks/file_ndjson.d.ts +18 -0
  116. package/dist/types/sinks/file_ndjson.d.ts.map +1 -0
  117. package/dist/types/sinks/file_ndjson_sink.d.ts +7 -0
  118. package/dist/types/sinks/file_ndjson_sink.d.ts.map +1 -0
  119. package/dist/types/sinks/sink_types.d.ts +12 -0
  120. package/dist/types/sinks/sink_types.d.ts.map +1 -0
  121. package/dist/types/sinks/stdout_sink.d.ts +6 -0
  122. package/dist/types/sinks/stdout_sink.d.ts.map +1 -0
  123. package/dist/types/validate/api_surface_guard.d.ts +2 -0
  124. package/dist/types/validate/api_surface_guard.d.ts.map +1 -0
  125. package/dist/types/validate/noncompliance.d.ts +15 -0
  126. package/dist/types/validate/noncompliance.d.ts.map +1 -0
  127. package/dist/types/validate/schema_guard.d.ts +5 -0
  128. package/dist/types/validate/schema_guard.d.ts.map +1 -0
  129. package/dist/validate/api_surface_guard.d.ts +2 -0
  130. package/dist/validate/api_surface_guard.d.ts.map +1 -0
  131. package/dist/validate/api_surface_guard.js +63 -0
  132. package/dist/validate/api_surface_guard.js.map +1 -0
  133. package/dist/validate/noncompliance.d.ts +15 -0
  134. package/dist/validate/noncompliance.d.ts.map +1 -0
  135. package/dist/validate/noncompliance.js +17 -0
  136. package/dist/validate/noncompliance.js.map +1 -0
  137. package/dist/validate/schema_guard.d.ts +5 -0
  138. package/dist/validate/schema_guard.d.ts.map +1 -0
  139. package/dist/validate/schema_guard.js +151 -0
  140. package/dist/validate/schema_guard.js.map +1 -0
  141. package/evidence/audit/llm/llm_audit_report_2026-01-25T15-11-32Z.json +30 -0
  142. package/evidence/audit/llm/llm_audit_report_2026-01-25T15-53-20Z.json +154 -0
  143. package/evidence/audit/llm/llm_audit_report_2026-01-25T16-14-52Z.json +130 -0
  144. package/evidence/audit/llm/llm_audit_report_2026-01-25T16-15-42Z.json +152 -0
  145. package/evidence/audit/llm/llm_audit_report_2026-01-25T16-17-39Z.json +152 -0
  146. package/evidence/audit/llm/llm_audit_report_2026-01-25T16-18-51Z.json +152 -0
  147. package/evidence/audit/llm/llm_audit_report_2026-01-25T16-19-50Z.json +152 -0
  148. package/evidence/audit/llm/llm_audit_report_2026-01-25T16-20-36Z.json +152 -0
  149. package/evidence/audit/llm/llm_audit_report_2026-01-25T23-22-43Z.json +170 -0
  150. package/evidence/audit/llm/llm_audit_report_2026-01-25T23-39-03Z.json +157 -0
  151. package/filestructure.output.txt +73 -0
  152. package/package.json +16 -0
  153. package/src/core/clock.ts +25 -0
  154. package/src/core/context.ts +142 -0
  155. package/src/core/fanout.ts +38 -0
  156. package/src/core/ids.ts +35 -0
  157. package/src/core/message_constraints.ts +66 -0
  158. package/src/core/outcomes.ts +5 -0
  159. package/src/core/record_builder.ts +269 -0
  160. package/src/core/spool.ts +41 -0
  161. package/src/core/types.ts +56 -0
  162. package/src/index.ts +105 -0
  163. package/src/sinks/file_ndjson.ts +42 -0
  164. package/src/sinks/file_ndjson_sink.ts +45 -0
  165. package/src/sinks/sink_types.ts +15 -0
  166. package/src/sinks/stdout_sink.ts +20 -0
  167. package/src/validate/api_surface_guard.ts +106 -0
  168. package/src/validate/noncompliance.ts +33 -0
  169. package/src/validate/schema_guard.ts +242 -0
  170. package/unifyplane-logsdk-0.1.0.tgz +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema_guard.js","sourceRoot":"","sources":["../../../src/validate/schema_guard.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ import { SystemOwnership } from "./core/record_builder.js";
2
+ import type { StepRecord } from "./core/types.js";
3
+ type SinkClass = "authoritative" | "observability";
4
+ type Sink = {
5
+ emit(record: Readonly<StepRecord>): void | Promise<void>;
6
+ flush?(): void | Promise<void>;
7
+ };
8
+ type SinkEntry = {
9
+ sink: Sink;
10
+ sinkClass: SinkClass;
11
+ };
12
+ export type LogSDKConfig = {
13
+ context: unknown;
14
+ system: SystemOwnership;
15
+ sinks: ReadonlyArray<SinkEntry>;
16
+ };
17
+ export type LogApi = {
18
+ step(message: string): Promise<void>;
19
+ flush?: () => Promise<void>;
20
+ };
21
+ export type { SystemOwnership };
22
+ export declare function initLogSDK(config: LogSDKConfig): LogApi;
23
+ export declare function createLogger(config: LogSDKConfig): LogApi;
24
+ export { fileNdjsonSink } from "./sinks/file_ndjson.js";
25
+ export { authoritativeNdjsonSink } from "./sinks/file_ndjson.js";
26
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAmB,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAW5E,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAElD,KAAK,SAAS,GAAG,eAAe,GAAG,eAAe,CAAC;AAEnD,KAAK,IAAI,GAAG;IACV,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,UAAU,CAAC,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACzD,KAAK,CAAC,IAAI,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAChC,CAAC;AAEF,KAAK,SAAS,GAAG;IACf,IAAI,EAAE,IAAI,CAAC;IACX,SAAS,EAAE,SAAS,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IACzB,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,eAAe,CAAC;IACxB,KAAK,EAAE,aAAa,CAAC,SAAS,CAAC,CAAC;CACjC,CAAC;AAEF,MAAM,MAAM,MAAM,GAAG;IACnB,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACrC,KAAK,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC7B,CAAC;AAEF,YAAY,EAAE,eAAe,EAAE,CAAC;AAEhC,wBAAgB,UAAU,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,CAwDvD;AAED,wBAAgB,YAAY,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,CAEzD;AAED,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAExD,OAAO,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,52 @@
1
+ import { initContext } from "./core/context.js";
2
+ import { createIdGenerator } from "./core/ids.js";
3
+ import { buildStepRecord } from "./core/record_builder.js";
4
+ import { assertValidMessage } from "./core/message_constraints.js";
5
+ import { fanout } from "./core/fanout.js";
6
+ import { assertApiSurface } from "./validate/api_surface_guard.js";
7
+ import { assertStepRecord } from "./validate/schema_guard.js";
8
+ import { AUTHORITATIVE_FAILURE_SWALLOWED, CONTEXT_INJECTION_VIOLATION, PAYLOAD_EMBEDDING_VIOLATION, NonComplianceError, } from "./validate/noncompliance.js";
9
+ export function initLogSDK(config) {
10
+ initContext(config.context);
11
+ const idGenerator = createIdGenerator(config.system.instance_id);
12
+ const sinks = [...config.sinks];
13
+ const api = {
14
+ async step(message) {
15
+ if (typeof message !== "string") {
16
+ if (message && typeof message === "object") {
17
+ throw new NonComplianceError(CONTEXT_INJECTION_VIOLATION, "Per-step context injection is not allowed.");
18
+ }
19
+ throw new NonComplianceError(PAYLOAD_EMBEDDING_VIOLATION, "Message must be a string.");
20
+ }
21
+ try {
22
+ assertValidMessage(message);
23
+ }
24
+ catch (error) {
25
+ throw new NonComplianceError(PAYLOAD_EMBEDDING_VIOLATION, error instanceof Error ? error.message : "Invalid message content.");
26
+ }
27
+ const record = buildStepRecord(message, idGenerator.nextSequence(), config.system, {
28
+ record_id: idGenerator.nextRecordId(),
29
+ });
30
+ assertStepRecord(record);
31
+ const outcome = await fanout(record, sinks);
32
+ if (outcome === "FAILED") {
33
+ throw new NonComplianceError(AUTHORITATIVE_FAILURE_SWALLOWED, "Authoritative sink failed to emit.");
34
+ }
35
+ },
36
+ async flush() {
37
+ for (const entry of sinks) {
38
+ if (entry.sink.flush) {
39
+ await entry.sink.flush();
40
+ }
41
+ }
42
+ },
43
+ };
44
+ assertApiSurface(api);
45
+ return api;
46
+ }
47
+ export function createLogger(config) {
48
+ return initLogSDK(config);
49
+ }
50
+ export { fileNdjsonSink } from "./sinks/file_ndjson.js";
51
+ export { authoritativeNdjsonSink } from "./sinks/file_ndjson.js";
52
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,EAAE,eAAe,EAAmB,MAAM,0BAA0B,CAAC;AAC5E,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AACnE,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AACnE,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,EACL,+BAA+B,EAC/B,2BAA2B,EAC3B,2BAA2B,EAC3B,kBAAkB,GACnB,MAAM,6BAA6B,CAAC;AA4BrC,MAAM,UAAU,UAAU,CAAC,MAAoB;IAC7C,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAE5B,MAAM,WAAW,GAAG,iBAAiB,CAAC,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;IACjE,MAAM,KAAK,GAAG,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAEhC,MAAM,GAAG,GAAW;QAClB,KAAK,CAAC,IAAI,CAAC,OAAe;YACxB,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;gBAChC,IAAI,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;oBAC3C,MAAM,IAAI,kBAAkB,CAC1B,2BAA2B,EAC3B,4CAA4C,CAC7C,CAAC;gBACJ,CAAC;gBAED,MAAM,IAAI,kBAAkB,CAC1B,2BAA2B,EAC3B,2BAA2B,CAC5B,CAAC;YACJ,CAAC;YAED,IAAI,CAAC;gBACH,kBAAkB,CAAC,OAAO,CAAC,CAAC;YAC9B,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,IAAI,kBAAkB,CAC1B,2BAA2B,EAC3B,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,0BAA0B,CACpE,CAAC;YACJ,CAAC;YAED,MAAM,MAAM,GAAG,eAAe,CAAC,OAAO,EAAE,WAAW,CAAC,YAAY,EAAE,EAAE,MAAM,CAAC,MAAM,EAAE;gBACjF,SAAS,EAAE,WAAW,CAAC,YAAY,EAAE;aACtC,CAAC,CAAC;YAEH,gBAAgB,CAAC,MAAM,CAAC,CAAC;YAEzB,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;YAC5C,IAAI,OAAO,KAAK,QAAQ,EAAE,CAAC;gBACzB,MAAM,IAAI,kBAAkB,CAC1B,+BAA+B,EAC/B,oCAAoC,CACrC,CAAC;YACJ,CAAC;QACH,CAAC;QACD,KAAK,CAAC,KAAK;YACT,KAAK,MAAM,KAAK,IAAI,KAAK,EAAE,CAAC;gBAC1B,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;oBACrB,MAAM,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;gBAC3B,CAAC;YACH,CAAC;QACH,CAAC;KACF,CAAC;IAEF,gBAAgB,CAAC,GAAG,CAAC,CAAC;IACtB,OAAO,GAAG,CAAC;AACb,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,MAAoB;IAC/C,OAAO,UAAU,CAAC,MAAM,CAAC,CAAC;AAC5B,CAAC;AAED,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAExD,OAAO,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC"}
@@ -0,0 +1,18 @@
1
+ import type { StepRecord } from "../core/types.js";
2
+ type SinkClass = "authoritative" | "observability";
3
+ type Sink = {
4
+ emit(record: Readonly<StepRecord>): void | Promise<void>;
5
+ flush?(): void | Promise<void>;
6
+ };
7
+ type SinkEntry = {
8
+ sink: Sink;
9
+ sinkClass: SinkClass;
10
+ };
11
+ export declare function fileNdjsonSink(pathOrOptions: string | {
12
+ path: string;
13
+ }): SinkEntry;
14
+ export declare function authoritativeNdjsonSink(pathOrOptions: string | {
15
+ path: string;
16
+ }): SinkEntry;
17
+ export {};
18
+ //# sourceMappingURL=file_ndjson.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"file_ndjson.d.ts","sourceRoot":"","sources":["../../src/sinks/file_ndjson.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAEnD,KAAK,SAAS,GAAG,eAAe,GAAG,eAAe,CAAC;AAEnD,KAAK,IAAI,GAAG;IACV,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,UAAU,CAAC,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACzD,KAAK,CAAC,IAAI,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAChC,CAAC;AAEF,KAAK,SAAS,GAAG;IACf,IAAI,EAAE,IAAI,CAAC;IACX,SAAS,EAAE,SAAS,CAAC;CACtB,CAAC;AAEF,wBAAgB,cAAc,CAAC,aAAa,EAAE,MAAM,GAAG;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,CAYlF;AACD,wBAAgB,uBAAuB,CAAC,aAAa,EAAE,MAAM,GAAG;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,CAY3F"}
@@ -0,0 +1,29 @@
1
+ import fs from "fs";
2
+ import path from "path";
3
+ export function fileNdjsonSink(pathOrOptions) {
4
+ const p = typeof pathOrOptions === "string" ? pathOrOptions : pathOrOptions.path;
5
+ const dir = path.dirname(p);
6
+ if (!fs.existsSync(dir)) {
7
+ fs.mkdirSync(dir, { recursive: true });
8
+ }
9
+ const sink = {
10
+ emit(record) {
11
+ fs.appendFileSync(p, JSON.stringify(record) + "\n", { encoding: "utf8" });
12
+ },
13
+ };
14
+ return { sink, sinkClass: "observability" };
15
+ }
16
+ export function authoritativeNdjsonSink(pathOrOptions) {
17
+ const p = typeof pathOrOptions === "string" ? pathOrOptions : pathOrOptions.path;
18
+ const dir = path.dirname(p);
19
+ if (!fs.existsSync(dir)) {
20
+ fs.mkdirSync(dir, { recursive: true });
21
+ }
22
+ const sink = {
23
+ emit(record) {
24
+ fs.appendFileSync(p, JSON.stringify(record) + "\n", { encoding: "utf8" });
25
+ },
26
+ };
27
+ return { sink, sinkClass: "authoritative" };
28
+ }
29
+ //# sourceMappingURL=file_ndjson.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"file_ndjson.js","sourceRoot":"","sources":["../../src/sinks/file_ndjson.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AAexB,MAAM,UAAU,cAAc,CAAC,aAAwC;IACrE,MAAM,CAAC,GAAG,OAAO,aAAa,KAAK,QAAQ,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC;IACjF,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IAC5B,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QACxB,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACzC,CAAC;IACD,MAAM,IAAI,GAAS;QACjB,IAAI,CAAC,MAA4B;YAC/B,EAAE,CAAC,cAAc,CAAC,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,IAAI,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC;QAC5E,CAAC;KACF,CAAC;IACF,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,eAAe,EAAE,CAAC;AAC9C,CAAC;AACD,MAAM,UAAU,uBAAuB,CAAC,aAAwC;IAC9E,MAAM,CAAC,GAAG,OAAO,aAAa,KAAK,QAAQ,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC;IACjF,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IAC5B,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QACxB,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACzC,CAAC;IACD,MAAM,IAAI,GAAS;QACjB,IAAI,CAAC,MAA4B;YAC/B,EAAE,CAAC,cAAc,CAAC,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,IAAI,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC;QAC5E,CAAC;KACF,CAAC;IACF,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,eAAe,EAAE,CAAC;AAC9C,CAAC"}
@@ -0,0 +1,7 @@
1
+ import type { StepRecord } from "../core/types.js";
2
+ export interface FileNdjsonSink {
3
+ emit(record: StepRecord): Promise<void>;
4
+ close(): Promise<void>;
5
+ }
6
+ export declare function createFileNdjsonSink(filePath: string): FileNdjsonSink;
7
+ //# sourceMappingURL=file_ndjson_sink.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"file_ndjson_sink.d.ts","sourceRoot":"","sources":["../../src/sinks/file_ndjson_sink.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAEnD,MAAM,WAAW,cAAc;IAC7B,IAAI,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACxC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB;AAED,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,GAAG,cAAc,CAkCrE"}
@@ -0,0 +1,36 @@
1
+ /// <reference path="../fs-shim.d.ts" />
2
+ import { promises as fs } from "fs";
3
+ export function createFileNdjsonSink(filePath) {
4
+ let closed = false;
5
+ return {
6
+ async emit(record) {
7
+ if (closed) {
8
+ throw new Error("File NDJSON sink is closed.");
9
+ }
10
+ const line = JSON.stringify(record);
11
+ const payload = `${line}\n`;
12
+ const handle = await fs.open(filePath, "a");
13
+ try {
14
+ const result = await handle.write(payload, undefined, "utf8");
15
+ if (!result || typeof result.bytesWritten !== "number") {
16
+ throw new Error("File NDJSON sink write did not report bytes.");
17
+ }
18
+ if (result.bytesWritten !== payload.length) {
19
+ throw new Error("File NDJSON sink partial write detected.");
20
+ }
21
+ await handle.sync();
22
+ }
23
+ catch (error) {
24
+ const message = error instanceof Error ? error.message : String(error);
25
+ throw new Error(`File NDJSON sink write failed: ${message}`);
26
+ }
27
+ finally {
28
+ await handle.close();
29
+ }
30
+ },
31
+ async close() {
32
+ closed = true;
33
+ },
34
+ };
35
+ }
36
+ //# sourceMappingURL=file_ndjson_sink.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"file_ndjson_sink.js","sourceRoot":"","sources":["../../src/sinks/file_ndjson_sink.ts"],"names":[],"mappings":"AAAA,wCAAwC;AAExC,OAAO,EAAE,QAAQ,IAAI,EAAE,EAAE,MAAM,IAAI,CAAC;AAQpC,MAAM,UAAU,oBAAoB,CAAC,QAAgB;IACnD,IAAI,MAAM,GAAG,KAAK,CAAC;IAEnB,OAAO;QACL,KAAK,CAAC,IAAI,CAAC,MAAkB;YAC3B,IAAI,MAAM,EAAE,CAAC;gBACX,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;YACjD,CAAC;YAED,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;YACpC,MAAM,OAAO,GAAG,GAAG,IAAI,IAAI,CAAC;YAC5B,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;YAE5C,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;gBAC9D,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,CAAC,YAAY,KAAK,QAAQ,EAAE,CAAC;oBACvD,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;gBAClE,CAAC;gBAED,IAAI,MAAM,CAAC,YAAY,KAAK,OAAO,CAAC,MAAM,EAAE,CAAC;oBAC3C,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;gBAC9D,CAAC;gBACD,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;YACtB,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBACvE,MAAM,IAAI,KAAK,CAAC,kCAAkC,OAAO,EAAE,CAAC,CAAC;YAC/D,CAAC;oBAAS,CAAC;gBACT,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;YACvB,CAAC;QACH,CAAC;QACD,KAAK,CAAC,KAAK;YACT,MAAM,GAAG,IAAI,CAAC;QAChB,CAAC;KACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,12 @@
1
+ import type { StepRecord as CoreStepRecord } from "../core/types.js";
2
+ export type StepRecord = Readonly<CoreStepRecord>;
3
+ export type SinkClass = "authoritative" | "observability";
4
+ export interface Sink<TRecord = StepRecord> {
5
+ emit(record: Readonly<TRecord>): void | Promise<void>;
6
+ flush?(): void | Promise<void>;
7
+ }
8
+ export interface SinkEntry<TRecord = StepRecord> {
9
+ sink: Sink<TRecord>;
10
+ sinkClass: SinkClass;
11
+ }
12
+ //# sourceMappingURL=sink_types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sink_types.d.ts","sourceRoot":"","sources":["../../src/sinks/sink_types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,IAAI,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAErE,MAAM,MAAM,UAAU,GAAG,QAAQ,CAAC,cAAc,CAAC,CAAC;AAElD,MAAM,MAAM,SAAS,GAAG,eAAe,GAAG,eAAe,CAAC;AAE1D,MAAM,WAAW,IAAI,CAAC,OAAO,GAAG,UAAU;IACxC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACtD,KAAK,CAAC,IAAI,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAChC;AAED,MAAM,WAAW,SAAS,CAAC,OAAO,GAAG,UAAU;IAC7C,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IACpB,SAAS,EAAE,SAAS,CAAC;CACtB"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=sink_types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sink_types.js","sourceRoot":"","sources":["../../src/sinks/sink_types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,6 @@
1
+ import type { StepRecord } from "../core/types.js";
2
+ export interface StdoutSink {
3
+ emit(record: StepRecord): Promise<void>;
4
+ }
5
+ export declare function createStdoutSink(): StdoutSink;
6
+ //# sourceMappingURL=stdout_sink.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stdout_sink.d.ts","sourceRoot":"","sources":["../../src/sinks/stdout_sink.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAEnD,MAAM,WAAW,UAAU;IACzB,IAAI,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACzC;AAED,wBAAgB,gBAAgB,IAAI,UAAU,CAW7C"}
@@ -0,0 +1,15 @@
1
+ /// <reference path="../process-shim.d.ts" />
2
+ export function createStdoutSink() {
3
+ return {
4
+ async emit(record) {
5
+ try {
6
+ const line = JSON.stringify(record);
7
+ process.stdout.write(`${line}\n`);
8
+ }
9
+ catch {
10
+ // Best-effort only: never throw.
11
+ }
12
+ },
13
+ };
14
+ }
15
+ //# sourceMappingURL=stdout_sink.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stdout_sink.js","sourceRoot":"","sources":["../../src/sinks/stdout_sink.ts"],"names":[],"mappings":"AAAA,6CAA6C;AAQ7C,MAAM,UAAU,gBAAgB;IAC9B,OAAO;QACL,KAAK,CAAC,IAAI,CAAC,MAAkB;YAC3B,IAAI,CAAC;gBACH,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;gBACpC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,IAAI,CAAC,CAAC;YACpC,CAAC;YAAC,MAAM,CAAC;gBACP,iCAAiC;YACnC,CAAC;QACH,CAAC;KACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,3 @@
1
+ export declare function nowUtcIso(): string;
2
+ export declare function monotonicNow(): number;
3
+ //# sourceMappingURL=clock.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"clock.d.ts","sourceRoot":"","sources":["../../../src/core/clock.ts"],"names":[],"mappings":"AAKA,wBAAgB,SAAS,IAAI,MAAM,CAElC;AAED,wBAAgB,YAAY,IAAI,MAAM,CAerC"}
@@ -0,0 +1,10 @@
1
+ type JsonPrimitive = string | number | boolean | null;
2
+ export type JsonValue = JsonPrimitive | JsonValue[] | {
3
+ [key: string]: JsonValue;
4
+ };
5
+ export declare function initContext(context: unknown, version?: string): void;
6
+ export declare function getContextHash(): string;
7
+ export declare function getContextVersion(): string;
8
+ export declare function resetContextForTests(): void;
9
+ export {};
10
+ //# sourceMappingURL=context.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../src/core/context.ts"],"names":[],"mappings":"AAIA,KAAK,aAAa,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,CAAC;AACtD,MAAM,MAAM,SAAS,GAAG,aAAa,GAAG,SAAS,EAAE,GAAG;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,CAAC;AAkBnF,wBAAgB,WAAW,CACzB,OAAO,EAAE,OAAO,EAChB,OAAO,GAAE,MAAgC,GACxC,IAAI,CAiBN;AAED,wBAAgB,cAAc,IAAI,MAAM,CAKvC;AAED,wBAAgB,iBAAiB,IAAI,MAAM,CAK1C;AAED,wBAAgB,oBAAoB,IAAI,IAAI,CAK3C"}
@@ -0,0 +1,4 @@
1
+ import type { SinkEntry, StepRecord } from "../sinks/sink_types.js";
2
+ export type FanoutOutcome = "OK" | "DEGRADED" | "FAILED";
3
+ export declare function fanout(record: StepRecord, sinks: ReadonlyArray<SinkEntry>): Promise<FanoutOutcome>;
4
+ //# sourceMappingURL=fanout.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fanout.d.ts","sourceRoot":"","sources":["../../../src/core/fanout.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAIpE,MAAM,MAAM,aAAa,GAAG,IAAI,GAAG,UAAU,GAAG,QAAQ,CAAC;AAEzD,wBAAsB,MAAM,CAC1B,MAAM,EAAE,UAAU,EAClB,KAAK,EAAE,aAAa,CAAC,SAAS,CAAC,GAC9B,OAAO,CAAC,aAAa,CAAC,CA4BxB"}
@@ -0,0 +1,6 @@
1
+ export interface IdGenerator {
2
+ nextRecordId(): string;
3
+ nextSequence(): number;
4
+ }
5
+ export declare function createIdGenerator(instanceTag?: string): IdGenerator;
6
+ //# sourceMappingURL=ids.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ids.d.ts","sourceRoot":"","sources":["../../../src/core/ids.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,WAAW;IAC1B,YAAY,IAAI,MAAM,CAAC;IACvB,YAAY,IAAI,MAAM,CAAC;CACxB;AASD,wBAAgB,iBAAiB,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,WAAW,CAoBnE"}
@@ -0,0 +1,4 @@
1
+ declare const MESSAGE_MAX_LENGTH = 512;
2
+ export declare function assertValidMessage(message: unknown): string;
3
+ export { MESSAGE_MAX_LENGTH };
4
+ //# sourceMappingURL=message_constraints.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"message_constraints.d.ts","sourceRoot":"","sources":["../../../src/core/message_constraints.ts"],"names":[],"mappings":"AAAA,QAAA,MAAM,kBAAkB,MAAM,CAAC;AAyC/B,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,CAsB3D;AAED,OAAO,EAAE,kBAAkB,EAAE,CAAC"}
@@ -0,0 +1,5 @@
1
+ export declare const OK: "OK";
2
+ export declare const DEGRADED: "DEGRADED";
3
+ export declare const FAILED: "FAILED";
4
+ export type Outcome = typeof OK | typeof DEGRADED | typeof FAILED;
5
+ //# sourceMappingURL=outcomes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"outcomes.d.ts","sourceRoot":"","sources":["../../../src/core/outcomes.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,EAAE,EAAG,IAAa,CAAC;AAChC,eAAO,MAAM,QAAQ,EAAG,UAAmB,CAAC;AAC5C,eAAO,MAAM,MAAM,EAAG,QAAiB,CAAC;AAExC,MAAM,MAAM,OAAO,GAAG,OAAO,EAAE,GAAG,OAAO,QAAQ,GAAG,OAAO,MAAM,CAAC"}
@@ -0,0 +1,34 @@
1
+ import { assertValidMessage } from "./message_constraints.js";
2
+ import type { StepRecord } from "./types.js";
3
+ export declare const message_constraints: {
4
+ maxLength: number;
5
+ validate: typeof assertValidMessage;
6
+ };
7
+ export type EvidenceRef = string;
8
+ export type SystemOwnership = {
9
+ institution: string;
10
+ system_name: string;
11
+ system_type: string;
12
+ environment: string;
13
+ system_version: string;
14
+ instance_id?: string;
15
+ };
16
+ export type StepRecordOverrides = {
17
+ record_id?: string;
18
+ timestamp_utc?: string;
19
+ monotonic_time?: number;
20
+ message_code?: string;
21
+ evidence_refs?: EvidenceRef[];
22
+ trace_id?: string;
23
+ span_id?: string;
24
+ parent_step_id?: string;
25
+ surface_type?: string;
26
+ surface_name?: string;
27
+ surface_instance?: string;
28
+ source_file?: string;
29
+ source_module?: string;
30
+ source_function?: string;
31
+ source_line?: number;
32
+ };
33
+ export declare function buildStepRecord(message: string, sequence: number, system: SystemOwnership, overrides?: StepRecordOverrides): StepRecord;
34
+ //# sourceMappingURL=record_builder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"record_builder.d.ts","sourceRoot":"","sources":["../../../src/core/record_builder.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,kBAAkB,EAAsB,MAAM,0BAA0B,CAAC;AAClF,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAI7C,eAAO,MAAM,mBAAmB;;;CAG/B,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG,MAAM,CAAC;AAEjC,MAAM,MAAM,eAAe,GAAG;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,WAAW,EAAE,CAAC;IAC9B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,wBAAgB,eAAe,CAC7B,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,eAAe,EACvB,SAAS,GAAE,mBAAwB,GAClC,UAAU,CAsDZ"}
@@ -0,0 +1,4 @@
1
+ import type { StepRecord } from "./types.js";
2
+ export declare function getEmergencySpoolPath(): string;
3
+ export declare function writeEmergencySpool(record: StepRecord): Promise<void>;
4
+ //# sourceMappingURL=spool.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"spool.d.ts","sourceRoot":"","sources":["../../../src/core/spool.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAW7C,wBAAgB,qBAAqB,IAAI,MAAM,CAE9C;AAED,wBAAsB,mBAAmB,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAoB3E"}
@@ -0,0 +1,33 @@
1
+ export type SinkClass = "authoritative" | "observability";
2
+ export type FanoutOutcome = "OK" | "DEGRADED" | "FAILED";
3
+ export interface StepRecord {
4
+ record_version: "log.step.v1";
5
+ record_id: string;
6
+ sequence: number;
7
+ timestamp_utc: string;
8
+ monotonic_time: number;
9
+ institution: string;
10
+ system_name: string;
11
+ system_type: string;
12
+ environment: string;
13
+ system_version: string;
14
+ instance_id?: string;
15
+ trace_id?: string;
16
+ span_id?: string;
17
+ parent_step_id?: string;
18
+ surface_type?: string;
19
+ surface_name?: string;
20
+ surface_instance?: string;
21
+ source_file?: string;
22
+ source_module?: string;
23
+ source_function?: string;
24
+ source_line?: number;
25
+ message: string;
26
+ message_code?: string;
27
+ context_hash: string;
28
+ context_version: string;
29
+ evidence_refs?: string[];
30
+ record_hash: string;
31
+ hash_algorithm: string;
32
+ }
33
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/core/types.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,SAAS,GAAG,eAAe,GAAG,eAAe,CAAC;AAE1D,MAAM,MAAM,aAAa,GAAG,IAAI,GAAG,UAAU,GAAG,QAAQ,CAAC;AAEzD,MAAM,WAAW,UAAU;IAEzB,cAAc,EAAE,aAAa,CAAC;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IAGjB,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;IAGvB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IAGrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,cAAc,CAAC,EAAE,MAAM,CAAC;IAGxB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAG1B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;IAGrB,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;IAGtB,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,MAAM,CAAC;IAGxB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IAGzB,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;CACxB"}
@@ -0,0 +1,26 @@
1
+ import { SystemOwnership } from "./core/record_builder.js";
2
+ import type { StepRecord } from "./core/types.js";
3
+ type SinkClass = "authoritative" | "observability";
4
+ type Sink = {
5
+ emit(record: Readonly<StepRecord>): void | Promise<void>;
6
+ flush?(): void | Promise<void>;
7
+ };
8
+ type SinkEntry = {
9
+ sink: Sink;
10
+ sinkClass: SinkClass;
11
+ };
12
+ export type LogSDKConfig = {
13
+ context: unknown;
14
+ system: SystemOwnership;
15
+ sinks: ReadonlyArray<SinkEntry>;
16
+ };
17
+ export type LogApi = {
18
+ step(message: string): Promise<void>;
19
+ flush?: () => Promise<void>;
20
+ };
21
+ export type { SystemOwnership };
22
+ export declare function initLogSDK(config: LogSDKConfig): LogApi;
23
+ export declare function createLogger(config: LogSDKConfig): LogApi;
24
+ export { fileNdjsonSink } from "./sinks/file_ndjson.js";
25
+ export { authoritativeNdjsonSink } from "./sinks/file_ndjson.js";
26
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAmB,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAW5E,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAElD,KAAK,SAAS,GAAG,eAAe,GAAG,eAAe,CAAC;AAEnD,KAAK,IAAI,GAAG;IACV,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,UAAU,CAAC,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACzD,KAAK,CAAC,IAAI,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAChC,CAAC;AAEF,KAAK,SAAS,GAAG;IACf,IAAI,EAAE,IAAI,CAAC;IACX,SAAS,EAAE,SAAS,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IACzB,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,eAAe,CAAC;IACxB,KAAK,EAAE,aAAa,CAAC,SAAS,CAAC,CAAC;CACjC,CAAC;AAEF,MAAM,MAAM,MAAM,GAAG;IACnB,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACrC,KAAK,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC7B,CAAC;AAEF,YAAY,EAAE,eAAe,EAAE,CAAC;AAEhC,wBAAgB,UAAU,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,CAwDvD;AAED,wBAAgB,YAAY,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,CAEzD;AAED,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAExD,OAAO,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC"}
@@ -0,0 +1,18 @@
1
+ import type { StepRecord } from "../core/types.js";
2
+ type SinkClass = "authoritative" | "observability";
3
+ type Sink = {
4
+ emit(record: Readonly<StepRecord>): void | Promise<void>;
5
+ flush?(): void | Promise<void>;
6
+ };
7
+ type SinkEntry = {
8
+ sink: Sink;
9
+ sinkClass: SinkClass;
10
+ };
11
+ export declare function fileNdjsonSink(pathOrOptions: string | {
12
+ path: string;
13
+ }): SinkEntry;
14
+ export declare function authoritativeNdjsonSink(pathOrOptions: string | {
15
+ path: string;
16
+ }): SinkEntry;
17
+ export {};
18
+ //# sourceMappingURL=file_ndjson.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"file_ndjson.d.ts","sourceRoot":"","sources":["../../../src/sinks/file_ndjson.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAEnD,KAAK,SAAS,GAAG,eAAe,GAAG,eAAe,CAAC;AAEnD,KAAK,IAAI,GAAG;IACV,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,UAAU,CAAC,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACzD,KAAK,CAAC,IAAI,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAChC,CAAC;AAEF,KAAK,SAAS,GAAG;IACf,IAAI,EAAE,IAAI,CAAC;IACX,SAAS,EAAE,SAAS,CAAC;CACtB,CAAC;AAEF,wBAAgB,cAAc,CAAC,aAAa,EAAE,MAAM,GAAG;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,CAYlF;AACD,wBAAgB,uBAAuB,CAAC,aAAa,EAAE,MAAM,GAAG;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,CAY3F"}
@@ -0,0 +1,7 @@
1
+ import type { StepRecord } from "../core/types.js";
2
+ export interface FileNdjsonSink {
3
+ emit(record: StepRecord): Promise<void>;
4
+ close(): Promise<void>;
5
+ }
6
+ export declare function createFileNdjsonSink(filePath: string): FileNdjsonSink;
7
+ //# sourceMappingURL=file_ndjson_sink.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"file_ndjson_sink.d.ts","sourceRoot":"","sources":["../../../src/sinks/file_ndjson_sink.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAEnD,MAAM,WAAW,cAAc;IAC7B,IAAI,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACxC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB;AAED,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,GAAG,cAAc,CAkCrE"}
@@ -0,0 +1,12 @@
1
+ import type { StepRecord as CoreStepRecord } from "../core/types.js";
2
+ export type StepRecord = Readonly<CoreStepRecord>;
3
+ export type SinkClass = "authoritative" | "observability";
4
+ export interface Sink<TRecord = StepRecord> {
5
+ emit(record: Readonly<TRecord>): void | Promise<void>;
6
+ flush?(): void | Promise<void>;
7
+ }
8
+ export interface SinkEntry<TRecord = StepRecord> {
9
+ sink: Sink<TRecord>;
10
+ sinkClass: SinkClass;
11
+ }
12
+ //# sourceMappingURL=sink_types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sink_types.d.ts","sourceRoot":"","sources":["../../../src/sinks/sink_types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,IAAI,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAErE,MAAM,MAAM,UAAU,GAAG,QAAQ,CAAC,cAAc,CAAC,CAAC;AAElD,MAAM,MAAM,SAAS,GAAG,eAAe,GAAG,eAAe,CAAC;AAE1D,MAAM,WAAW,IAAI,CAAC,OAAO,GAAG,UAAU;IACxC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACtD,KAAK,CAAC,IAAI,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAChC;AAED,MAAM,WAAW,SAAS,CAAC,OAAO,GAAG,UAAU;IAC7C,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IACpB,SAAS,EAAE,SAAS,CAAC;CACtB"}
@@ -0,0 +1,6 @@
1
+ import type { StepRecord } from "../core/types.js";
2
+ export interface StdoutSink {
3
+ emit(record: StepRecord): Promise<void>;
4
+ }
5
+ export declare function createStdoutSink(): StdoutSink;
6
+ //# sourceMappingURL=stdout_sink.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stdout_sink.d.ts","sourceRoot":"","sources":["../../../src/sinks/stdout_sink.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAEnD,MAAM,WAAW,UAAU;IACzB,IAAI,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACzC;AAED,wBAAgB,gBAAgB,IAAI,UAAU,CAW7C"}
@@ -0,0 +1,2 @@
1
+ export declare function assertApiSurface(surface: unknown): void;
2
+ //# sourceMappingURL=api_surface_guard.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api_surface_guard.d.ts","sourceRoot":"","sources":["../../../src/validate/api_surface_guard.ts"],"names":[],"mappings":"AA2DA,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA8CvD"}
@@ -0,0 +1,15 @@
1
+ export declare const API_SURFACE_VIOLATION: "API_SURFACE_VIOLATION";
2
+ export declare const CONTEXT_INJECTION_VIOLATION: "CONTEXT_INJECTION_VIOLATION";
3
+ export declare const PAYLOAD_EMBEDDING_VIOLATION: "PAYLOAD_EMBEDDING_VIOLATION";
4
+ export declare const CANONICAL_SCHEMA_VIOLATION: "CANONICAL_SCHEMA_VIOLATION";
5
+ export declare const SINK_MUTATION_VIOLATION: "SINK_MUTATION_VIOLATION";
6
+ export declare const NO_AUTHORITATIVE_SINK: "NO_AUTHORITATIVE_SINK";
7
+ export declare const FANOUT_NONDETERMINISM: "FANOUT_NONDETERMINISM";
8
+ export declare const AUTHORITATIVE_FAILURE_SWALLOWED: "AUTHORITATIVE_FAILURE_SWALLOWED";
9
+ export declare const UNBOUNDED_BUFFER_RISK: "UNBOUNDED_BUFFER_RISK";
10
+ export type NonComplianceCode = typeof API_SURFACE_VIOLATION | typeof CONTEXT_INJECTION_VIOLATION | typeof PAYLOAD_EMBEDDING_VIOLATION | typeof CANONICAL_SCHEMA_VIOLATION | typeof SINK_MUTATION_VIOLATION | typeof NO_AUTHORITATIVE_SINK | typeof FANOUT_NONDETERMINISM | typeof AUTHORITATIVE_FAILURE_SWALLOWED | typeof UNBOUNDED_BUFFER_RISK;
11
+ export declare class NonComplianceError extends Error {
12
+ readonly code: NonComplianceCode;
13
+ constructor(code: NonComplianceCode, message: string);
14
+ }
15
+ //# sourceMappingURL=noncompliance.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"noncompliance.d.ts","sourceRoot":"","sources":["../../../src/validate/noncompliance.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,qBAAqB,EAAG,uBAAgC,CAAC;AACtE,eAAO,MAAM,2BAA2B,EACtC,6BAAsC,CAAC;AACzC,eAAO,MAAM,2BAA2B,EACtC,6BAAsC,CAAC;AACzC,eAAO,MAAM,0BAA0B,EACrC,4BAAqC,CAAC;AACxC,eAAO,MAAM,uBAAuB,EAAG,yBAAkC,CAAC;AAC1E,eAAO,MAAM,qBAAqB,EAAG,uBAAgC,CAAC;AACtE,eAAO,MAAM,qBAAqB,EAAG,uBAAgC,CAAC;AACtE,eAAO,MAAM,+BAA+B,EAC1C,iCAA0C,CAAC;AAC7C,eAAO,MAAM,qBAAqB,EAAG,uBAAgC,CAAC;AAEtE,MAAM,MAAM,iBAAiB,GACzB,OAAO,qBAAqB,GAC5B,OAAO,2BAA2B,GAClC,OAAO,2BAA2B,GAClC,OAAO,0BAA0B,GACjC,OAAO,uBAAuB,GAC9B,OAAO,qBAAqB,GAC5B,OAAO,qBAAqB,GAC5B,OAAO,+BAA+B,GACtC,OAAO,qBAAqB,CAAC;AAEjC,qBAAa,kBAAmB,SAAQ,KAAK;IAC3C,QAAQ,CAAC,IAAI,EAAE,iBAAiB,CAAC;gBAErB,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,MAAM;CAIrD"}
@@ -0,0 +1,5 @@
1
+ import type { StepRecord } from "../core/types.js";
2
+ import type { SinkEntry } from "../sinks/sink_types.js";
3
+ export declare function assertStepRecord(record: unknown): asserts record is StepRecord;
4
+ export declare function assertHasAuthoritativeSink(sinks: ReadonlyArray<SinkEntry>): void;
5
+ //# sourceMappingURL=schema_guard.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema_guard.d.ts","sourceRoot":"","sources":["../../../src/validate/schema_guard.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAEnD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AA0DxD,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,IAAI,UAAU,CA8G9E;AAID,wBAAgB,0BAA0B,CACxC,KAAK,EAAE,aAAa,CAAC,SAAS,CAAC,GAC9B,IAAI,CAWN"}
@@ -0,0 +1,2 @@
1
+ export declare function assertApiSurface(surface: unknown): void;
2
+ //# sourceMappingURL=api_surface_guard.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api_surface_guard.d.ts","sourceRoot":"","sources":["../../src/validate/api_surface_guard.ts"],"names":[],"mappings":"AA2DA,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA8CvD"}