@jinn-network/core 0.1.0-canary.3afae198

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 (155) hide show
  1. package/dist/canonical-json.d.ts +1 -0
  2. package/dist/canonical-json.js +67 -0
  3. package/dist/captured-task.d.ts +140 -0
  4. package/dist/captured-task.js +122 -0
  5. package/dist/contribution-store.d.ts +97 -0
  6. package/dist/contribution-store.js +770 -0
  7. package/dist/corpus-read/acquire.d.ts +39 -0
  8. package/dist/corpus-read/acquire.js +212 -0
  9. package/dist/corpus-read/cache.d.ts +14 -0
  10. package/dist/corpus-read/cache.js +17 -0
  11. package/dist/corpus-read/capture-meta.d.ts +16 -0
  12. package/dist/corpus-read/capture-meta.js +18 -0
  13. package/dist/corpus-read/create-corpus.d.ts +2 -0
  14. package/dist/corpus-read/create-corpus.js +97 -0
  15. package/dist/corpus-read/fetch-artifact.d.ts +21 -0
  16. package/dist/corpus-read/fetch-artifact.js +32 -0
  17. package/dist/corpus-read/fetch.d.ts +12 -0
  18. package/dist/corpus-read/fetch.js +24 -0
  19. package/dist/corpus-read/http-discovery.d.ts +9 -0
  20. package/dist/corpus-read/http-discovery.js +128 -0
  21. package/dist/corpus-read/index.d.ts +10 -0
  22. package/dist/corpus-read/index.js +10 -0
  23. package/dist/corpus-read/ipfs.d.ts +14 -0
  24. package/dist/corpus-read/ipfs.js +81 -0
  25. package/dist/corpus-read/route-resolver.d.ts +16 -0
  26. package/dist/corpus-read/route-resolver.js +19 -0
  27. package/dist/corpus-read/types.d.ts +177 -0
  28. package/dist/corpus-read/types.js +42 -0
  29. package/dist/envelope.d.ts +134 -0
  30. package/dist/envelope.js +162 -0
  31. package/dist/evidence-adapter.d.ts +26 -0
  32. package/dist/evidence-adapter.js +321 -0
  33. package/dist/evidence-filesystem.d.ts +40 -0
  34. package/dist/evidence-filesystem.js +267 -0
  35. package/dist/evidence-index.d.ts +117 -0
  36. package/dist/evidence-index.js +1083 -0
  37. package/dist/evidence-store-lock.d.ts +2 -0
  38. package/dist/evidence-store-lock.js +208 -0
  39. package/dist/execution-envelope.d.ts +3142 -0
  40. package/dist/execution-envelope.js +203 -0
  41. package/dist/index.d.ts +12 -0
  42. package/dist/index.js +12 -0
  43. package/dist/manifest.d.ts +75 -0
  44. package/dist/manifest.js +184 -0
  45. package/dist/paired.d.ts +68 -0
  46. package/dist/paired.js +92 -0
  47. package/dist/scrub/apply-dispositions.d.ts +74 -0
  48. package/dist/scrub/apply-dispositions.js +309 -0
  49. package/dist/scrub/build.d.ts +75 -0
  50. package/dist/scrub/build.js +143 -0
  51. package/dist/scrub/checksummed-instruments-detector.d.ts +13 -0
  52. package/dist/scrub/checksummed-instruments-detector.js +119 -0
  53. package/dist/scrub/data/bip39-english.d.ts +2 -0
  54. package/dist/scrub/data/bip39-english.js +2051 -0
  55. package/dist/scrub/data/gitleaks-rules.d.ts +56 -0
  56. package/dist/scrub/data/gitleaks-rules.js +67 -0
  57. package/dist/scrub/emit-scrub.d.ts +52 -0
  58. package/dist/scrub/emit-scrub.js +122 -0
  59. package/dist/scrub/eval/findings-from-scrub.d.ts +18 -0
  60. package/dist/scrub/eval/findings-from-scrub.js +99 -0
  61. package/dist/scrub/eval/fixtures.d.ts +14 -0
  62. package/dist/scrub/eval/fixtures.js +159 -0
  63. package/dist/scrub/eval/index.d.ts +6 -0
  64. package/dist/scrub/eval/index.js +6 -0
  65. package/dist/scrub/eval/local-corpus.d.ts +15 -0
  66. package/dist/scrub/eval/local-corpus.js +29 -0
  67. package/dist/scrub/eval/metrics.d.ts +19 -0
  68. package/dist/scrub/eval/metrics.js +77 -0
  69. package/dist/scrub/eval/run-bench.d.ts +8 -0
  70. package/dist/scrub/eval/run-bench.js +125 -0
  71. package/dist/scrub/eval/types.d.ts +69 -0
  72. package/dist/scrub/eval/types.js +7 -0
  73. package/dist/scrub/finding.d.ts +38 -0
  74. package/dist/scrub/finding.js +7 -0
  75. package/dist/scrub/git-identity-detector.d.ts +16 -0
  76. package/dist/scrub/git-identity-detector.js +116 -0
  77. package/dist/scrub/gitleaks-detector.d.ts +13 -0
  78. package/dist/scrub/gitleaks-detector.js +45 -0
  79. package/dist/scrub/gliner-detector.d.ts +65 -0
  80. package/dist/scrub/gliner-detector.js +129 -0
  81. package/dist/scrub/index.d.ts +26 -0
  82. package/dist/scrub/index.js +26 -0
  83. package/dist/scrub/ip-address-detector.d.ts +12 -0
  84. package/dist/scrub/ip-address-detector.js +81 -0
  85. package/dist/scrub/key-policy.d.ts +30 -0
  86. package/dist/scrub/key-policy.js +72 -0
  87. package/dist/scrub/known-identity-detector.d.ts +66 -0
  88. package/dist/scrub/known-identity-detector.js +284 -0
  89. package/dist/scrub/layer2.d.ts +18 -0
  90. package/dist/scrub/layer2.js +28 -0
  91. package/dist/scrub/ml-pii-stage.d.ts +42 -0
  92. package/dist/scrub/ml-pii-stage.js +119 -0
  93. package/dist/scrub/pii-build.d.ts +47 -0
  94. package/dist/scrub/pii-build.js +67 -0
  95. package/dist/scrub/pipeline.d.ts +77 -0
  96. package/dist/scrub/pipeline.js +225 -0
  97. package/dist/scrub/plain-patterns-stage.d.ts +33 -0
  98. package/dist/scrub/plain-patterns-stage.js +88 -0
  99. package/dist/scrub/policy.d.ts +28 -0
  100. package/dist/scrub/policy.js +156 -0
  101. package/dist/scrub/provenance.d.ts +53 -0
  102. package/dist/scrub/provenance.js +83 -0
  103. package/dist/scrub/reject-classes-detector.d.ts +11 -0
  104. package/dist/scrub/reject-classes-detector.js +195 -0
  105. package/dist/scrub/reject-publish-error.d.ts +30 -0
  106. package/dist/scrub/reject-publish-error.js +47 -0
  107. package/dist/scrub/review-queue.d.ts +90 -0
  108. package/dist/scrub/review-queue.js +259 -0
  109. package/dist/scrub/secretlint-stage.d.ts +21 -0
  110. package/dist/scrub/secretlint-stage.js +264 -0
  111. package/dist/scrub/transformers-detector.d.ts +41 -0
  112. package/dist/scrub/transformers-detector.js +77 -0
  113. package/dist/scrub/types.d.ts +36 -0
  114. package/dist/scrub/types.js +1 -0
  115. package/dist/scrub/url-credentials-detector.d.ts +9 -0
  116. package/dist/scrub/url-credentials-detector.js +66 -0
  117. package/dist/session-provenance.d.ts +75 -0
  118. package/dist/session-provenance.js +20 -0
  119. package/dist/skill-artifact.d.ts +442 -0
  120. package/dist/skill-artifact.js +136 -0
  121. package/dist/trajectory/hash-chain.d.ts +18 -0
  122. package/dist/trajectory/hash-chain.js +47 -0
  123. package/dist/trajectory/index.d.ts +4 -0
  124. package/dist/trajectory/index.js +4 -0
  125. package/dist/trajectory/schema.d.ts +681 -0
  126. package/dist/trajectory/schema.js +119 -0
  127. package/dist/trajectory/transcript-parsers/aider-history.d.ts +42 -0
  128. package/dist/trajectory/transcript-parsers/aider-history.js +181 -0
  129. package/dist/trajectory/transcript-parsers/claude-code-jsonl.d.ts +37 -0
  130. package/dist/trajectory/transcript-parsers/claude-code-jsonl.js +142 -0
  131. package/dist/trajectory/transcript-parsers/codex-session.d.ts +42 -0
  132. package/dist/trajectory/transcript-parsers/codex-session.js +235 -0
  133. package/dist/trajectory/transcript-parsers/continue-devdata.d.ts +41 -0
  134. package/dist/trajectory/transcript-parsers/continue-devdata.js +190 -0
  135. package/dist/trajectory/transcript-parsers/cursor-sqlite.d.ts +38 -0
  136. package/dist/trajectory/transcript-parsers/cursor-sqlite.js +118 -0
  137. package/dist/trajectory/transcript-parsers/gemini-session.d.ts +35 -0
  138. package/dist/trajectory/transcript-parsers/gemini-session.js +137 -0
  139. package/dist/trajectory/transcript-parsers/index.d.ts +7 -0
  140. package/dist/trajectory/transcript-parsers/index.js +7 -0
  141. package/dist/trajectory/transcript-parsers/types.d.ts +101 -0
  142. package/dist/trajectory/transcript-parsers/types.js +32 -0
  143. package/dist/trajectory/transcript-to-spans/attrs.d.ts +4 -0
  144. package/dist/trajectory/transcript-to-spans/attrs.js +30 -0
  145. package/dist/trajectory/transcript-to-spans/claude-code-stream-json.d.ts +8 -0
  146. package/dist/trajectory/transcript-to-spans/claude-code-stream-json.js +162 -0
  147. package/dist/trajectory/transcript-to-spans/codex-exec-json.d.ts +8 -0
  148. package/dist/trajectory/transcript-to-spans/codex-exec-json.js +253 -0
  149. package/dist/trajectory/transcript-to-spans/index.d.ts +4 -0
  150. package/dist/trajectory/transcript-to-spans/index.js +4 -0
  151. package/dist/trajectory/transcript-to-spans/types.d.ts +18 -0
  152. package/dist/trajectory/transcript-to-spans/types.js +1 -0
  153. package/dist/window.d.ts +12 -0
  154. package/dist/window.js +5 -0
  155. package/package.json +72 -0
@@ -0,0 +1,681 @@
1
+ /**
2
+ * jinn.trajectory.v1 — OTLP-JSON-shaped trace blob signed and uploaded once
3
+ * per run. Scope: docs/superpowers/specs/2026-04-23-jinn-execution-envelope-tee-scope.md
4
+ * §3.1 trajectory row + K6 span profile, §4.3 trajectory profile deliverable.
5
+ *
6
+ * Each span carries jinn.prevSpanHash (in-run hash chain) + jinn.span.kind
7
+ * (normative profile). Secret-scrub (§4.3 V1 minimum) produces a run-level
8
+ * redactionManifest signed alongside the spans.
9
+ */
10
+ import { z } from 'zod/v3';
11
+ export declare const JinnSpanKindSchema: z.ZodEnum<["jinn.phase", "jinn.llm_call", "jinn.mcp_call", "jinn.artifact.emit", "jinn.venue_io", "jinn.state_transition", "jinn.agent_turn", "jinn.tool_call"]>;
12
+ export type JinnSpanKind = z.infer<typeof JinnSpanKindSchema>;
13
+ /** An OTLP-shaped span with Jinn-required attributes. */
14
+ export declare const SpanSchema: z.ZodObject<{
15
+ traceId: z.ZodString;
16
+ spanId: z.ZodString;
17
+ parentSpanId: z.ZodNullable<z.ZodString>;
18
+ name: z.ZodString;
19
+ kind: z.ZodEnum<["INTERNAL", "CLIENT", "SERVER", "PRODUCER", "CONSUMER"]>;
20
+ startTimeUnixNano: z.ZodString;
21
+ endTimeUnixNano: z.ZodString;
22
+ attributes: z.ZodEffects<z.ZodEffects<z.ZodRecord<z.ZodString, z.ZodUnknown>, Record<string, unknown>, Record<string, unknown>>, Record<string, unknown>, Record<string, unknown>>;
23
+ events: z.ZodArray<z.ZodObject<{
24
+ timeUnixNano: z.ZodString;
25
+ name: z.ZodString;
26
+ attributes: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
27
+ }, "strip", z.ZodTypeAny, {
28
+ name: string;
29
+ timeUnixNano: string;
30
+ attributes?: Record<string, unknown> | undefined;
31
+ }, {
32
+ name: string;
33
+ timeUnixNano: string;
34
+ attributes?: Record<string, unknown> | undefined;
35
+ }>, "many">;
36
+ status: z.ZodObject<{
37
+ code: z.ZodEnum<["UNSET", "OK", "ERROR"]>;
38
+ message: z.ZodOptional<z.ZodString>;
39
+ }, "strip", z.ZodTypeAny, {
40
+ code: "UNSET" | "OK" | "ERROR";
41
+ message?: string | undefined;
42
+ }, {
43
+ code: "UNSET" | "OK" | "ERROR";
44
+ message?: string | undefined;
45
+ }>;
46
+ }, "strip", z.ZodTypeAny, {
47
+ spanId: string;
48
+ parentSpanId: string | null;
49
+ name: string;
50
+ startTimeUnixNano: string;
51
+ endTimeUnixNano: string;
52
+ attributes: Record<string, unknown>;
53
+ status: {
54
+ code: "UNSET" | "OK" | "ERROR";
55
+ message?: string | undefined;
56
+ };
57
+ kind: "INTERNAL" | "CLIENT" | "SERVER" | "PRODUCER" | "CONSUMER";
58
+ events: {
59
+ name: string;
60
+ timeUnixNano: string;
61
+ attributes?: Record<string, unknown> | undefined;
62
+ }[];
63
+ traceId: string;
64
+ }, {
65
+ spanId: string;
66
+ parentSpanId: string | null;
67
+ name: string;
68
+ startTimeUnixNano: string;
69
+ endTimeUnixNano: string;
70
+ attributes: Record<string, unknown>;
71
+ status: {
72
+ code: "UNSET" | "OK" | "ERROR";
73
+ message?: string | undefined;
74
+ };
75
+ kind: "INTERNAL" | "CLIENT" | "SERVER" | "PRODUCER" | "CONSUMER";
76
+ events: {
77
+ name: string;
78
+ timeUnixNano: string;
79
+ attributes?: Record<string, unknown> | undefined;
80
+ }[];
81
+ traceId: string;
82
+ }>;
83
+ export type Span = z.infer<typeof SpanSchema>;
84
+ export declare const RedactionManifestSchema: z.ZodEffects<z.ZodObject<{
85
+ spans: z.ZodArray<z.ZodObject<{
86
+ spanId: z.ZodString;
87
+ redactedKeys: z.ZodArray<z.ZodString, "many">;
88
+ }, "strip", z.ZodTypeAny, {
89
+ spanId: string;
90
+ redactedKeys: string[];
91
+ }, {
92
+ spanId: string;
93
+ redactedKeys: string[];
94
+ }>, "many">;
95
+ totalRedactions: z.ZodNumber;
96
+ /**
97
+ * Additive provenance (#1974 / design §6.7, locked Q5). Optional so
98
+ * pre-v2 envelopes remain readable. Present on newly emitted manifests.
99
+ */
100
+ schemaVersion: z.ZodOptional<z.ZodNumber>;
101
+ /** sha256 hex over policy + detector inventory + model/labels + allowlist. */
102
+ policyHash: z.ZodOptional<z.ZodString>;
103
+ /** Applied disposition counts keyed `${ScrubClass}:${redact|flag|reject}`. */
104
+ perClassCounts: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodNumber>>;
105
+ }, "strip", z.ZodTypeAny, {
106
+ spans: {
107
+ spanId: string;
108
+ redactedKeys: string[];
109
+ }[];
110
+ totalRedactions: number;
111
+ schemaVersion?: number | undefined;
112
+ perClassCounts?: Record<string, number> | undefined;
113
+ policyHash?: string | undefined;
114
+ }, {
115
+ spans: {
116
+ spanId: string;
117
+ redactedKeys: string[];
118
+ }[];
119
+ totalRedactions: number;
120
+ schemaVersion?: number | undefined;
121
+ perClassCounts?: Record<string, number> | undefined;
122
+ policyHash?: string | undefined;
123
+ }>, {
124
+ spans: {
125
+ spanId: string;
126
+ redactedKeys: string[];
127
+ }[];
128
+ totalRedactions: number;
129
+ schemaVersion?: number | undefined;
130
+ perClassCounts?: Record<string, number> | undefined;
131
+ policyHash?: string | undefined;
132
+ }, {
133
+ spans: {
134
+ spanId: string;
135
+ redactedKeys: string[];
136
+ }[];
137
+ totalRedactions: number;
138
+ schemaVersion?: number | undefined;
139
+ perClassCounts?: Record<string, number> | undefined;
140
+ policyHash?: string | undefined;
141
+ }>;
142
+ export type RedactionManifest = z.infer<typeof RedactionManifestSchema>;
143
+ export declare const JinnTrajectoryV1Schema: z.ZodObject<{
144
+ schemaVersion: z.ZodLiteral<"jinn.trajectory.v1">;
145
+ runId: z.ZodString;
146
+ parentEnvelopeCid: z.ZodNullable<z.ZodString>;
147
+ spans: z.ZodArray<z.ZodObject<{
148
+ traceId: z.ZodString;
149
+ spanId: z.ZodString;
150
+ parentSpanId: z.ZodNullable<z.ZodString>;
151
+ name: z.ZodString;
152
+ kind: z.ZodEnum<["INTERNAL", "CLIENT", "SERVER", "PRODUCER", "CONSUMER"]>;
153
+ startTimeUnixNano: z.ZodString;
154
+ endTimeUnixNano: z.ZodString;
155
+ attributes: z.ZodEffects<z.ZodEffects<z.ZodRecord<z.ZodString, z.ZodUnknown>, Record<string, unknown>, Record<string, unknown>>, Record<string, unknown>, Record<string, unknown>>;
156
+ events: z.ZodArray<z.ZodObject<{
157
+ timeUnixNano: z.ZodString;
158
+ name: z.ZodString;
159
+ attributes: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
160
+ }, "strip", z.ZodTypeAny, {
161
+ name: string;
162
+ timeUnixNano: string;
163
+ attributes?: Record<string, unknown> | undefined;
164
+ }, {
165
+ name: string;
166
+ timeUnixNano: string;
167
+ attributes?: Record<string, unknown> | undefined;
168
+ }>, "many">;
169
+ status: z.ZodObject<{
170
+ code: z.ZodEnum<["UNSET", "OK", "ERROR"]>;
171
+ message: z.ZodOptional<z.ZodString>;
172
+ }, "strip", z.ZodTypeAny, {
173
+ code: "UNSET" | "OK" | "ERROR";
174
+ message?: string | undefined;
175
+ }, {
176
+ code: "UNSET" | "OK" | "ERROR";
177
+ message?: string | undefined;
178
+ }>;
179
+ }, "strip", z.ZodTypeAny, {
180
+ spanId: string;
181
+ parentSpanId: string | null;
182
+ name: string;
183
+ startTimeUnixNano: string;
184
+ endTimeUnixNano: string;
185
+ attributes: Record<string, unknown>;
186
+ status: {
187
+ code: "UNSET" | "OK" | "ERROR";
188
+ message?: string | undefined;
189
+ };
190
+ kind: "INTERNAL" | "CLIENT" | "SERVER" | "PRODUCER" | "CONSUMER";
191
+ events: {
192
+ name: string;
193
+ timeUnixNano: string;
194
+ attributes?: Record<string, unknown> | undefined;
195
+ }[];
196
+ traceId: string;
197
+ }, {
198
+ spanId: string;
199
+ parentSpanId: string | null;
200
+ name: string;
201
+ startTimeUnixNano: string;
202
+ endTimeUnixNano: string;
203
+ attributes: Record<string, unknown>;
204
+ status: {
205
+ code: "UNSET" | "OK" | "ERROR";
206
+ message?: string | undefined;
207
+ };
208
+ kind: "INTERNAL" | "CLIENT" | "SERVER" | "PRODUCER" | "CONSUMER";
209
+ events: {
210
+ name: string;
211
+ timeUnixNano: string;
212
+ attributes?: Record<string, unknown> | undefined;
213
+ }[];
214
+ traceId: string;
215
+ }>, "many">;
216
+ redactionManifest: z.ZodEffects<z.ZodObject<{
217
+ spans: z.ZodArray<z.ZodObject<{
218
+ spanId: z.ZodString;
219
+ redactedKeys: z.ZodArray<z.ZodString, "many">;
220
+ }, "strip", z.ZodTypeAny, {
221
+ spanId: string;
222
+ redactedKeys: string[];
223
+ }, {
224
+ spanId: string;
225
+ redactedKeys: string[];
226
+ }>, "many">;
227
+ totalRedactions: z.ZodNumber;
228
+ /**
229
+ * Additive provenance (#1974 / design §6.7, locked Q5). Optional so
230
+ * pre-v2 envelopes remain readable. Present on newly emitted manifests.
231
+ */
232
+ schemaVersion: z.ZodOptional<z.ZodNumber>;
233
+ /** sha256 hex over policy + detector inventory + model/labels + allowlist. */
234
+ policyHash: z.ZodOptional<z.ZodString>;
235
+ /** Applied disposition counts keyed `${ScrubClass}:${redact|flag|reject}`. */
236
+ perClassCounts: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodNumber>>;
237
+ }, "strip", z.ZodTypeAny, {
238
+ spans: {
239
+ spanId: string;
240
+ redactedKeys: string[];
241
+ }[];
242
+ totalRedactions: number;
243
+ schemaVersion?: number | undefined;
244
+ perClassCounts?: Record<string, number> | undefined;
245
+ policyHash?: string | undefined;
246
+ }, {
247
+ spans: {
248
+ spanId: string;
249
+ redactedKeys: string[];
250
+ }[];
251
+ totalRedactions: number;
252
+ schemaVersion?: number | undefined;
253
+ perClassCounts?: Record<string, number> | undefined;
254
+ policyHash?: string | undefined;
255
+ }>, {
256
+ spans: {
257
+ spanId: string;
258
+ redactedKeys: string[];
259
+ }[];
260
+ totalRedactions: number;
261
+ schemaVersion?: number | undefined;
262
+ perClassCounts?: Record<string, number> | undefined;
263
+ policyHash?: string | undefined;
264
+ }, {
265
+ spans: {
266
+ spanId: string;
267
+ redactedKeys: string[];
268
+ }[];
269
+ totalRedactions: number;
270
+ schemaVersion?: number | undefined;
271
+ perClassCounts?: Record<string, number> | undefined;
272
+ policyHash?: string | undefined;
273
+ }>;
274
+ signature: z.ZodObject<{
275
+ algo: z.ZodLiteral<"secp256k1">;
276
+ signer: z.ZodString;
277
+ hash: z.ZodString;
278
+ sig: z.ZodString;
279
+ }, "strip", z.ZodTypeAny, {
280
+ algo: "secp256k1";
281
+ signer: string;
282
+ hash: string;
283
+ sig: string;
284
+ }, {
285
+ algo: "secp256k1";
286
+ signer: string;
287
+ hash: string;
288
+ sig: string;
289
+ }>;
290
+ }, "strip", z.ZodTypeAny, {
291
+ schemaVersion: "jinn.trajectory.v1";
292
+ signature: {
293
+ algo: "secp256k1";
294
+ signer: string;
295
+ hash: string;
296
+ sig: string;
297
+ };
298
+ spans: {
299
+ spanId: string;
300
+ parentSpanId: string | null;
301
+ name: string;
302
+ startTimeUnixNano: string;
303
+ endTimeUnixNano: string;
304
+ attributes: Record<string, unknown>;
305
+ status: {
306
+ code: "UNSET" | "OK" | "ERROR";
307
+ message?: string | undefined;
308
+ };
309
+ kind: "INTERNAL" | "CLIENT" | "SERVER" | "PRODUCER" | "CONSUMER";
310
+ events: {
311
+ name: string;
312
+ timeUnixNano: string;
313
+ attributes?: Record<string, unknown> | undefined;
314
+ }[];
315
+ traceId: string;
316
+ }[];
317
+ runId: string;
318
+ parentEnvelopeCid: string | null;
319
+ redactionManifest: {
320
+ spans: {
321
+ spanId: string;
322
+ redactedKeys: string[];
323
+ }[];
324
+ totalRedactions: number;
325
+ schemaVersion?: number | undefined;
326
+ perClassCounts?: Record<string, number> | undefined;
327
+ policyHash?: string | undefined;
328
+ };
329
+ }, {
330
+ schemaVersion: "jinn.trajectory.v1";
331
+ signature: {
332
+ algo: "secp256k1";
333
+ signer: string;
334
+ hash: string;
335
+ sig: string;
336
+ };
337
+ spans: {
338
+ spanId: string;
339
+ parentSpanId: string | null;
340
+ name: string;
341
+ startTimeUnixNano: string;
342
+ endTimeUnixNano: string;
343
+ attributes: Record<string, unknown>;
344
+ status: {
345
+ code: "UNSET" | "OK" | "ERROR";
346
+ message?: string | undefined;
347
+ };
348
+ kind: "INTERNAL" | "CLIENT" | "SERVER" | "PRODUCER" | "CONSUMER";
349
+ events: {
350
+ name: string;
351
+ timeUnixNano: string;
352
+ attributes?: Record<string, unknown> | undefined;
353
+ }[];
354
+ traceId: string;
355
+ }[];
356
+ runId: string;
357
+ parentEnvelopeCid: string | null;
358
+ redactionManifest: {
359
+ spans: {
360
+ spanId: string;
361
+ redactedKeys: string[];
362
+ }[];
363
+ totalRedactions: number;
364
+ schemaVersion?: number | undefined;
365
+ perClassCounts?: Record<string, number> | undefined;
366
+ policyHash?: string | undefined;
367
+ };
368
+ }>;
369
+ export type JinnTrajectoryV1 = z.infer<typeof JinnTrajectoryV1Schema>;
370
+ /** Unsigned form — what we hash + sign. */
371
+ export declare const UnsignedTrajectorySchema: z.ZodObject<Omit<{
372
+ schemaVersion: z.ZodLiteral<"jinn.trajectory.v1">;
373
+ runId: z.ZodString;
374
+ parentEnvelopeCid: z.ZodNullable<z.ZodString>;
375
+ spans: z.ZodArray<z.ZodObject<{
376
+ traceId: z.ZodString;
377
+ spanId: z.ZodString;
378
+ parentSpanId: z.ZodNullable<z.ZodString>;
379
+ name: z.ZodString;
380
+ kind: z.ZodEnum<["INTERNAL", "CLIENT", "SERVER", "PRODUCER", "CONSUMER"]>;
381
+ startTimeUnixNano: z.ZodString;
382
+ endTimeUnixNano: z.ZodString;
383
+ attributes: z.ZodEffects<z.ZodEffects<z.ZodRecord<z.ZodString, z.ZodUnknown>, Record<string, unknown>, Record<string, unknown>>, Record<string, unknown>, Record<string, unknown>>;
384
+ events: z.ZodArray<z.ZodObject<{
385
+ timeUnixNano: z.ZodString;
386
+ name: z.ZodString;
387
+ attributes: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
388
+ }, "strip", z.ZodTypeAny, {
389
+ name: string;
390
+ timeUnixNano: string;
391
+ attributes?: Record<string, unknown> | undefined;
392
+ }, {
393
+ name: string;
394
+ timeUnixNano: string;
395
+ attributes?: Record<string, unknown> | undefined;
396
+ }>, "many">;
397
+ status: z.ZodObject<{
398
+ code: z.ZodEnum<["UNSET", "OK", "ERROR"]>;
399
+ message: z.ZodOptional<z.ZodString>;
400
+ }, "strip", z.ZodTypeAny, {
401
+ code: "UNSET" | "OK" | "ERROR";
402
+ message?: string | undefined;
403
+ }, {
404
+ code: "UNSET" | "OK" | "ERROR";
405
+ message?: string | undefined;
406
+ }>;
407
+ }, "strip", z.ZodTypeAny, {
408
+ spanId: string;
409
+ parentSpanId: string | null;
410
+ name: string;
411
+ startTimeUnixNano: string;
412
+ endTimeUnixNano: string;
413
+ attributes: Record<string, unknown>;
414
+ status: {
415
+ code: "UNSET" | "OK" | "ERROR";
416
+ message?: string | undefined;
417
+ };
418
+ kind: "INTERNAL" | "CLIENT" | "SERVER" | "PRODUCER" | "CONSUMER";
419
+ events: {
420
+ name: string;
421
+ timeUnixNano: string;
422
+ attributes?: Record<string, unknown> | undefined;
423
+ }[];
424
+ traceId: string;
425
+ }, {
426
+ spanId: string;
427
+ parentSpanId: string | null;
428
+ name: string;
429
+ startTimeUnixNano: string;
430
+ endTimeUnixNano: string;
431
+ attributes: Record<string, unknown>;
432
+ status: {
433
+ code: "UNSET" | "OK" | "ERROR";
434
+ message?: string | undefined;
435
+ };
436
+ kind: "INTERNAL" | "CLIENT" | "SERVER" | "PRODUCER" | "CONSUMER";
437
+ events: {
438
+ name: string;
439
+ timeUnixNano: string;
440
+ attributes?: Record<string, unknown> | undefined;
441
+ }[];
442
+ traceId: string;
443
+ }>, "many">;
444
+ redactionManifest: z.ZodEffects<z.ZodObject<{
445
+ spans: z.ZodArray<z.ZodObject<{
446
+ spanId: z.ZodString;
447
+ redactedKeys: z.ZodArray<z.ZodString, "many">;
448
+ }, "strip", z.ZodTypeAny, {
449
+ spanId: string;
450
+ redactedKeys: string[];
451
+ }, {
452
+ spanId: string;
453
+ redactedKeys: string[];
454
+ }>, "many">;
455
+ totalRedactions: z.ZodNumber;
456
+ /**
457
+ * Additive provenance (#1974 / design §6.7, locked Q5). Optional so
458
+ * pre-v2 envelopes remain readable. Present on newly emitted manifests.
459
+ */
460
+ schemaVersion: z.ZodOptional<z.ZodNumber>;
461
+ /** sha256 hex over policy + detector inventory + model/labels + allowlist. */
462
+ policyHash: z.ZodOptional<z.ZodString>;
463
+ /** Applied disposition counts keyed `${ScrubClass}:${redact|flag|reject}`. */
464
+ perClassCounts: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodNumber>>;
465
+ }, "strip", z.ZodTypeAny, {
466
+ spans: {
467
+ spanId: string;
468
+ redactedKeys: string[];
469
+ }[];
470
+ totalRedactions: number;
471
+ schemaVersion?: number | undefined;
472
+ perClassCounts?: Record<string, number> | undefined;
473
+ policyHash?: string | undefined;
474
+ }, {
475
+ spans: {
476
+ spanId: string;
477
+ redactedKeys: string[];
478
+ }[];
479
+ totalRedactions: number;
480
+ schemaVersion?: number | undefined;
481
+ perClassCounts?: Record<string, number> | undefined;
482
+ policyHash?: string | undefined;
483
+ }>, {
484
+ spans: {
485
+ spanId: string;
486
+ redactedKeys: string[];
487
+ }[];
488
+ totalRedactions: number;
489
+ schemaVersion?: number | undefined;
490
+ perClassCounts?: Record<string, number> | undefined;
491
+ policyHash?: string | undefined;
492
+ }, {
493
+ spans: {
494
+ spanId: string;
495
+ redactedKeys: string[];
496
+ }[];
497
+ totalRedactions: number;
498
+ schemaVersion?: number | undefined;
499
+ perClassCounts?: Record<string, number> | undefined;
500
+ policyHash?: string | undefined;
501
+ }>;
502
+ signature: z.ZodObject<{
503
+ algo: z.ZodLiteral<"secp256k1">;
504
+ signer: z.ZodString;
505
+ hash: z.ZodString;
506
+ sig: z.ZodString;
507
+ }, "strip", z.ZodTypeAny, {
508
+ algo: "secp256k1";
509
+ signer: string;
510
+ hash: string;
511
+ sig: string;
512
+ }, {
513
+ algo: "secp256k1";
514
+ signer: string;
515
+ hash: string;
516
+ sig: string;
517
+ }>;
518
+ }, "signature">, "strip", z.ZodTypeAny, {
519
+ schemaVersion: "jinn.trajectory.v1";
520
+ spans: {
521
+ spanId: string;
522
+ parentSpanId: string | null;
523
+ name: string;
524
+ startTimeUnixNano: string;
525
+ endTimeUnixNano: string;
526
+ attributes: Record<string, unknown>;
527
+ status: {
528
+ code: "UNSET" | "OK" | "ERROR";
529
+ message?: string | undefined;
530
+ };
531
+ kind: "INTERNAL" | "CLIENT" | "SERVER" | "PRODUCER" | "CONSUMER";
532
+ events: {
533
+ name: string;
534
+ timeUnixNano: string;
535
+ attributes?: Record<string, unknown> | undefined;
536
+ }[];
537
+ traceId: string;
538
+ }[];
539
+ runId: string;
540
+ parentEnvelopeCid: string | null;
541
+ redactionManifest: {
542
+ spans: {
543
+ spanId: string;
544
+ redactedKeys: string[];
545
+ }[];
546
+ totalRedactions: number;
547
+ schemaVersion?: number | undefined;
548
+ perClassCounts?: Record<string, number> | undefined;
549
+ policyHash?: string | undefined;
550
+ };
551
+ }, {
552
+ schemaVersion: "jinn.trajectory.v1";
553
+ spans: {
554
+ spanId: string;
555
+ parentSpanId: string | null;
556
+ name: string;
557
+ startTimeUnixNano: string;
558
+ endTimeUnixNano: string;
559
+ attributes: Record<string, unknown>;
560
+ status: {
561
+ code: "UNSET" | "OK" | "ERROR";
562
+ message?: string | undefined;
563
+ };
564
+ kind: "INTERNAL" | "CLIENT" | "SERVER" | "PRODUCER" | "CONSUMER";
565
+ events: {
566
+ name: string;
567
+ timeUnixNano: string;
568
+ attributes?: Record<string, unknown> | undefined;
569
+ }[];
570
+ traceId: string;
571
+ }[];
572
+ runId: string;
573
+ parentEnvelopeCid: string | null;
574
+ redactionManifest: {
575
+ spans: {
576
+ spanId: string;
577
+ redactedKeys: string[];
578
+ }[];
579
+ totalRedactions: number;
580
+ schemaVersion?: number | undefined;
581
+ perClassCounts?: Record<string, number> | undefined;
582
+ policyHash?: string | undefined;
583
+ };
584
+ }>;
585
+ export type UnsignedTrajectory = z.infer<typeof UnsignedTrajectorySchema>;
586
+ /**
587
+ * Per-run capture manifest — records the operator's authorisation and
588
+ * coarse harness-bundle metadata for telemetry capture. v0 deliberately
589
+ * keeps operator control at the bundle level (no per-file curation) per
590
+ * DR-2026-05-07-g; the audit surface is "what did the operator authorise
591
+ * the daemon to read?" not "what did the daemon ultimately read?"
592
+ *
593
+ * Spec: spec/2026-05-07-telemetry-collector-and-task-generator.md §3.3
594
+ */
595
+ export declare const CaptureManifestSchema: z.ZodObject<{
596
+ scrubProcessors: z.ZodArray<z.ZodObject<{
597
+ name: z.ZodString;
598
+ version: z.ZodString;
599
+ config: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
600
+ }, "strip", z.ZodTypeAny, {
601
+ name: string;
602
+ version: string;
603
+ config?: Record<string, unknown> | undefined;
604
+ }, {
605
+ name: string;
606
+ version: string;
607
+ config?: Record<string, unknown> | undefined;
608
+ }>, "many">;
609
+ reviewedBy: z.ZodObject<{
610
+ safeAddress: z.ZodString;
611
+ reviewedAt: z.ZodString;
612
+ }, "strip", z.ZodTypeAny, {
613
+ safeAddress: string;
614
+ reviewedAt: string;
615
+ }, {
616
+ safeAddress: string;
617
+ reviewedAt: string;
618
+ }>;
619
+ trustedRepoToggle: z.ZodBoolean;
620
+ harnessBundle: z.ZodObject<{
621
+ included: z.ZodBoolean;
622
+ sha256: z.ZodString;
623
+ allowedDirectoriesHash: z.ZodString;
624
+ capturePath: z.ZodEnum<["A", "B", "C", "D"]>;
625
+ }, "strip", z.ZodTypeAny, {
626
+ sha256: string;
627
+ included: boolean;
628
+ allowedDirectoriesHash: string;
629
+ capturePath: "A" | "B" | "C" | "D";
630
+ }, {
631
+ sha256: string;
632
+ included: boolean;
633
+ allowedDirectoriesHash: string;
634
+ capturePath: "A" | "B" | "C" | "D";
635
+ }>;
636
+ /**
637
+ * The single `share` consent (mono#1714): may a mined task be published off
638
+ * the box (enforced at the mint publish gate). Local retention is
639
+ * unconditional, so there is no separate retention-consent field.
640
+ */
641
+ publishMinedTasksConsent: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
642
+ }, "strip", z.ZodTypeAny, {
643
+ publishMinedTasksConsent: boolean;
644
+ scrubProcessors: {
645
+ name: string;
646
+ version: string;
647
+ config?: Record<string, unknown> | undefined;
648
+ }[];
649
+ reviewedBy: {
650
+ safeAddress: string;
651
+ reviewedAt: string;
652
+ };
653
+ trustedRepoToggle: boolean;
654
+ harnessBundle: {
655
+ sha256: string;
656
+ included: boolean;
657
+ allowedDirectoriesHash: string;
658
+ capturePath: "A" | "B" | "C" | "D";
659
+ };
660
+ }, {
661
+ scrubProcessors: {
662
+ name: string;
663
+ version: string;
664
+ config?: Record<string, unknown> | undefined;
665
+ }[];
666
+ reviewedBy: {
667
+ safeAddress: string;
668
+ reviewedAt: string;
669
+ };
670
+ trustedRepoToggle: boolean;
671
+ harnessBundle: {
672
+ sha256: string;
673
+ included: boolean;
674
+ allowedDirectoriesHash: string;
675
+ capturePath: "A" | "B" | "C" | "D";
676
+ };
677
+ publishMinedTasksConsent?: boolean | undefined;
678
+ }>;
679
+ export type CaptureManifest = z.infer<typeof CaptureManifestSchema>;
680
+ /** sha256 of an empty (no-files) bundle. Used when the operator opts out of harness-bundle capture. */
681
+ export declare const EMPTY_BUNDLE_SHA256 = "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855";