@plurnk/plurnk-digest 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/Share.js ADDED
@@ -0,0 +1,97 @@
1
+ var __addDisposableResource = (this && this.__addDisposableResource) || function (env, value, async) {
2
+ if (value !== null && value !== void 0) {
3
+ if (typeof value !== "object" && typeof value !== "function") throw new TypeError("Object expected.");
4
+ var dispose, inner;
5
+ if (async) {
6
+ if (!Symbol.asyncDispose) throw new TypeError("Symbol.asyncDispose is not defined.");
7
+ dispose = value[Symbol.asyncDispose];
8
+ }
9
+ if (dispose === void 0) {
10
+ if (!Symbol.dispose) throw new TypeError("Symbol.dispose is not defined.");
11
+ dispose = value[Symbol.dispose];
12
+ if (async) inner = dispose;
13
+ }
14
+ if (typeof dispose !== "function") throw new TypeError("Object not disposable.");
15
+ if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };
16
+ env.stack.push({ value: value, dispose: dispose, async: async });
17
+ }
18
+ else if (async) {
19
+ env.stack.push({ async: true });
20
+ }
21
+ return value;
22
+ };
23
+ var __disposeResources = (this && this.__disposeResources) || (function (SuppressedError) {
24
+ return function (env) {
25
+ function fail(e) {
26
+ env.error = env.hasError ? new SuppressedError(e, env.error, "An error was suppressed during disposal.") : e;
27
+ env.hasError = true;
28
+ }
29
+ var r, s = 0;
30
+ function next() {
31
+ while (r = env.stack.pop()) {
32
+ try {
33
+ if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);
34
+ if (r.dispose) {
35
+ var result = r.dispose.call(r.value);
36
+ if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); });
37
+ }
38
+ else s |= 1;
39
+ }
40
+ catch (e) {
41
+ fail(e);
42
+ }
43
+ }
44
+ if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();
45
+ if (env.hasError) throw env.error;
46
+ }
47
+ return next();
48
+ };
49
+ })(typeof SuppressedError === "function" ? SuppressedError : function (error, suppressed, message) {
50
+ var e = new Error(message);
51
+ return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
52
+ });
53
+ import { existsSync, mkdtempSync, rmSync } from "node:fs";
54
+ import { tmpdir } from "node:os";
55
+ import { join, resolve } from "node:path";
56
+ import SqlRiteSync from "@possumtech/sqlrite/sync";
57
+ import Digest from "./Digest.js";
58
+ // {§share}: a share is the digest of a consistent copy of the database.
59
+ export default class Share {
60
+ // {§share-snapshot}: a live or WAL-mode database is copied by SQLite, never by the filesystem.
61
+ static snapshot(dbPath, copy) {
62
+ const env_1 = { stack: [], error: void 0, hasError: false };
63
+ try {
64
+ const source = resolve(dbPath);
65
+ if (!existsSync(source))
66
+ throw new Error(`share: no database at ${source}`);
67
+ if (existsSync(copy))
68
+ throw new Error(`share: ${resolve(copy)} already exists; remove it first`);
69
+ const database = __addDisposableResource(env_1, new SqlRiteSync({ path: source, dir: [import.meta.dirname] }), false);
70
+ database.share_snapshot.run({ path: resolve(copy) });
71
+ }
72
+ catch (e_1) {
73
+ env_1.error = e_1;
74
+ env_1.hasError = true;
75
+ }
76
+ finally {
77
+ __disposeResources(env_1);
78
+ }
79
+ }
80
+ static async write({ dbPath, folder, workspaceId, requiem, openEvidence }) {
81
+ const target = resolve(folder);
82
+ const scratch = mkdtempSync(join(tmpdir(), "plurnk-share-"));
83
+ try {
84
+ const copy = join(scratch, "plurnk.db");
85
+ Share.snapshot(dbPath, copy);
86
+ const scoped = { openEvidence, dbPath: copy, digestDir: target, ...(workspaceId === undefined ? {} : { workspaceId }) };
87
+ Digest.run(scoped);
88
+ if (requiem)
89
+ await Digest.requiem({ ...scoped, provider: requiem });
90
+ }
91
+ finally {
92
+ rmSync(scratch, { recursive: true, force: true });
93
+ }
94
+ return { folder: target };
95
+ }
96
+ }
97
+ //# sourceMappingURL=Share.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Share.js","sourceRoot":"","sources":["../src/Share.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAC1D,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,WAAW,MAAM,0BAA0B,CAAC;AACnD,OAAO,MAAM,MAAM,aAAa,CAAC;AAcjC,wEAAwE;AACxE,MAAM,CAAC,OAAO,OAAO,KAAK;IACtB,+FAA+F;IAC/F,MAAM,CAAC,QAAQ,CAAC,MAAc,EAAE,IAAY;;;YACxC,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;YAC/B,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;gBAAE,MAAM,IAAI,KAAK,CAAC,yBAAyB,MAAM,EAAE,CAAC,CAAC;YAC5E,IAAI,UAAU,CAAC,IAAI,CAAC;gBAAE,MAAM,IAAI,KAAK,CAAC,UAAU,OAAO,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAAC;YACjG,MAAM,QAAQ,kCAAG,IAAI,WAAW,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,QAAA,CAAC;YAC/E,QAAQ,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;;;;;;;;;IACzD,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,YAAY,EAAgB;QACnF,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;QAC/B,MAAM,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,eAAe,CAAC,CAAC,CAAC;QAC7D,IAAI,CAAC;YACD,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;YACxC,KAAK,CAAC,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;YAC7B,MAAM,MAAM,GAAG,EAAE,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,CAAC;YACxH,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YACnB,IAAI,OAAO;gBAAE,MAAM,MAAM,CAAC,OAAO,CAAC,EAAE,GAAG,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC;QACxE,CAAC;gBAAS,CAAC;YACP,MAAM,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QACtD,CAAC;QACD,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;IAC9B,CAAC;CACJ"}
@@ -0,0 +1,6 @@
1
+ import type { DigestOptions } from "./digest-rows.ts";
2
+ export declare const digestPaths: (opts: DigestOptions) => {
3
+ dbPath: string;
4
+ digestDir: string;
5
+ };
6
+ //# sourceMappingURL=digest-paths.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"digest-paths.d.ts","sourceRoot":"","sources":["../src/digest-paths.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAItD,eAAO,MAAM,WAAW,SAAU,aAAa,KAAG;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAMpF,CAAC"}
@@ -0,0 +1,14 @@
1
+ import { existsSync } from "node:fs";
2
+ import { join, resolve } from "node:path";
3
+ // {§digest-programmatic-surface}: the input database must exist and the output folder must be named. A
4
+ // writer never deletes: the digest refuses a folder that already holds files ({§share}).
5
+ export const digestPaths = (opts) => {
6
+ const dbPath = resolve(opts.dbPath);
7
+ if (!existsSync(dbPath))
8
+ throw new Error(`digest: no DB at ${dbPath}`);
9
+ const digestDir = opts.digestDir ?? join(process.cwd(), "test", "digest");
10
+ if (digestDir.length === 0)
11
+ throw new Error("digest: output directory must not be empty");
12
+ return { dbPath, digestDir: resolve(digestDir) };
13
+ };
14
+ //# sourceMappingURL=digest-paths.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"digest-paths.js","sourceRoot":"","sources":["../src/digest-paths.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAG1C,uGAAuG;AACvG,yFAAyF;AACzF,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,IAAmB,EAAyC,EAAE;IACtF,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACpC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,oBAAoB,MAAM,EAAE,CAAC,CAAC;IACvE,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC1E,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;IAC1F,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;AACrD,CAAC,CAAC"}
@@ -0,0 +1,347 @@
1
+ import type { ChatMessage, ProviderAccounting, ProviderRequestAccounting } from "@plurnk/plurnk-providers";
2
+ import type { DigestEvidence, EvidencePacket, OpenEvidence } from "./evidence.ts";
3
+ export interface WorkspaceRow {
4
+ id: number;
5
+ name: string;
6
+ }
7
+ export interface WorkerRow {
8
+ id: number;
9
+ workspace_id: number;
10
+ name: string;
11
+ provider_identity: string;
12
+ }
13
+ export interface LoopRow {
14
+ id: number;
15
+ worker_id: number;
16
+ sequence: number;
17
+ status: number;
18
+ prompt: string;
19
+ policy: string;
20
+ terminated_by: string | null;
21
+ terminal_result: string | null;
22
+ claimed_at: string | null;
23
+ terminated_at: string | null;
24
+ }
25
+ export interface ErrorEvidence {
26
+ name: string;
27
+ message: string;
28
+ cause?: ErrorEvidence;
29
+ }
30
+ interface PacketFailure {
31
+ raw: string;
32
+ error: ErrorEvidence;
33
+ }
34
+ export interface TurnRow {
35
+ id: number;
36
+ loop_id: number;
37
+ sequence: number;
38
+ producer: "model" | "client" | "_plurnk";
39
+ kind: "inference" | "initialization" | "operation" | "maintenance";
40
+ status: number;
41
+ timestamp: string;
42
+ completed_at: string | null;
43
+ has_packet: 0 | 1;
44
+ has_reasoning: 0 | 1;
45
+ finish_reason: string | null;
46
+ model: string | null;
47
+ meta: string | null;
48
+ program: string | null;
49
+ outside: string | null;
50
+ packetEchoes: number;
51
+ }
52
+ export interface PacketEvidence {
53
+ packet: EvidencePacket | null;
54
+ packetFailure: PacketFailure | null;
55
+ }
56
+ export interface TurnAttemptRow {
57
+ id: number;
58
+ model_call_id: number;
59
+ turn_id: number;
60
+ sequence: number;
61
+ kind: "emission";
62
+ state: "pending" | "response" | "error";
63
+ accepted: number | null;
64
+ failure: string | null;
65
+ parse_errors: string;
66
+ attributions: string;
67
+ finish_reason: string | null;
68
+ model: string;
69
+ timestamp: string;
70
+ completed_at: string | null;
71
+ request_model: string;
72
+ response_model: string | null;
73
+ }
74
+ export interface InferenceCallRow {
75
+ id: number;
76
+ workspace_id: number;
77
+ turn_id: number;
78
+ sequence: number;
79
+ kind: "emission" | "bare";
80
+ state: "pending" | "response" | "error";
81
+ attributions: string;
82
+ request_model: string;
83
+ timestamp: string;
84
+ completed_at: string | null;
85
+ }
86
+ export interface ModelCallRow {
87
+ id: number;
88
+ workspace_id: number;
89
+ turn_id: number;
90
+ sequence: number;
91
+ kind: "emission" | "bare";
92
+ state: "pending" | "response" | "error";
93
+ failure: string | null;
94
+ capacity: string | null;
95
+ attributions: string;
96
+ finish_reason: string | null;
97
+ model: string;
98
+ request_model: string;
99
+ response_model: string | null;
100
+ timestamp: string;
101
+ completed_at: string | null;
102
+ turn_attempt_id: number | null;
103
+ accepted: number | null;
104
+ parse_errors: string | null;
105
+ log_entry_id: number | null;
106
+ }
107
+ export interface ProviderRequestRow {
108
+ accounting: ProviderRequestAccounting | null;
109
+ id: number;
110
+ inference_call_id: number;
111
+ turn_attempt_id: number | null;
112
+ kind: InferenceCallRow["kind"];
113
+ turn_id: number;
114
+ loop_id: number | null;
115
+ worker_id: number | null;
116
+ workspace_id: number;
117
+ sequence: number;
118
+ provider: string;
119
+ model: string;
120
+ state: "pending" | "settled";
121
+ outcome: "response" | "error" | null;
122
+ status: number | null;
123
+ usage_input: number | null;
124
+ usage_output: number | null;
125
+ usage_total: number | null;
126
+ usage_input_no_cache: number | null;
127
+ usage_input_cache_read: number | null;
128
+ usage_input_cache_write: number | null;
129
+ usage_output_text: number | null;
130
+ usage_output_reasoning: number | null;
131
+ cost_kind: "charged" | "estimated" | "unknown" | null;
132
+ cost_amount: string | null;
133
+ cost_currency: string | null;
134
+ cost_usd_equivalent: string | null;
135
+ cost_source: string | null;
136
+ cost_reason: string | null;
137
+ started_at: string;
138
+ completed_at: string | null;
139
+ }
140
+ export interface LogRow {
141
+ target: string | null;
142
+ id: number;
143
+ worker_id: number;
144
+ loop_id: number;
145
+ turn_id: number;
146
+ sequence: number;
147
+ origin: string;
148
+ source: string | null;
149
+ model_call_id: number | null;
150
+ attrs: string;
151
+ op: string | null;
152
+ scheme: string | null;
153
+ hostname: string | null;
154
+ port: number | null;
155
+ pathname: string | null;
156
+ query: string | null;
157
+ fragment: string | null;
158
+ rx: string | null;
159
+ mimetype_rx: string;
160
+ status_rx: number;
161
+ state: string;
162
+ outcome: string | null;
163
+ initial_folded: string;
164
+ projection_active: 0 | 1;
165
+ projection_folded: string;
166
+ }
167
+ export interface EmissionRow {
168
+ worker_id: number;
169
+ coordinate: string;
170
+ content: string;
171
+ active: 0 | 1;
172
+ }
173
+ export interface ReasoningRow {
174
+ worker_id: number;
175
+ coordinate: string;
176
+ content: string;
177
+ active: 0 | 1;
178
+ }
179
+ export interface EditRow {
180
+ id: number;
181
+ worker_id: number;
182
+ loop_id: number;
183
+ turn_id: number;
184
+ sequence: number;
185
+ pathname: string | null;
186
+ status_rx: number;
187
+ line_marker: string | null;
188
+ pattern: string | null;
189
+ }
190
+ export declare const EDIT_FORMS: readonly ["hash", "line", "range", "insert", "column", "prepend", "append", "offset", "pattern", "whole"];
191
+ export type EditForm = (typeof EDIT_FORMS)[number];
192
+ export interface EditCensus {
193
+ edits: number;
194
+ refused: number;
195
+ revisits: number;
196
+ forms: Record<EditForm, number>;
197
+ }
198
+ export interface ExecutionEnvironmentRow {
199
+ workspace_id: number;
200
+ stream: string;
201
+ env: string;
202
+ }
203
+ export interface LogCurationEffectRow {
204
+ operation_log_entry_id: number;
205
+ target_log_entry_id: number;
206
+ active_before: 0 | 1;
207
+ active_after: 0 | 1;
208
+ folded_before: string;
209
+ folded_after: string;
210
+ }
211
+ export interface WorkerRollupRow {
212
+ worker_id: number;
213
+ loops: number;
214
+ turns: number;
215
+ last_status: number | null;
216
+ }
217
+ export interface OpMixRow {
218
+ worker_id: number;
219
+ op: string;
220
+ n: number;
221
+ }
222
+ export interface SearchStateRow {
223
+ channel_entries: number;
224
+ derivation_complete: number;
225
+ unfinished: number;
226
+ }
227
+ export interface DispositionCountRow {
228
+ disposition: string;
229
+ n: number;
230
+ }
231
+ export interface DispositionRow {
232
+ scheme: string;
233
+ authority: string;
234
+ pathname: string;
235
+ channel: string;
236
+ disposition: string;
237
+ reason: string | null;
238
+ }
239
+ export interface DerivationStateRow {
240
+ complete: number;
241
+ building: number;
242
+ }
243
+ export interface StorageRow {
244
+ bytes: number;
245
+ free_bytes: number;
246
+ auto_vacuum: number;
247
+ }
248
+ export interface StorageTableRow {
249
+ name: string;
250
+ bytes: number;
251
+ }
252
+ export interface DigestModel {
253
+ evidence: DigestEvidence;
254
+ dbPath: string;
255
+ storage: StorageRow & {
256
+ tables: StorageTableRow[];
257
+ };
258
+ digestDir: string;
259
+ workspaces: WorkspaceRow[];
260
+ workers: WorkerRow[];
261
+ loops: LoopRow[];
262
+ turns: TurnRow[];
263
+ inferenceCalls: InferenceCallRow[];
264
+ modelCalls: ModelCallRow[];
265
+ turnAttempts: TurnAttemptRow[];
266
+ providerRequests: ProviderRequestRow[];
267
+ logEntries: LogRow[];
268
+ curationEffects: LogCurationEffectRow[];
269
+ workersByWorkspace: Map<number, WorkerRow[]>;
270
+ loopsByWorker: Map<number, LoopRow[]>;
271
+ turnsByLoop: Map<number, TurnRow[]>;
272
+ attemptsByTurn: Map<number, TurnAttemptRow[]>;
273
+ requestsByInferenceCall: Map<number, ProviderRequestRow[]>;
274
+ requestsByAttempt: Map<number, ProviderRequestRow[]>;
275
+ requestsByTurn: Map<number, ProviderRequestRow[]>;
276
+ requestsByLoop: Map<number, ProviderRequestRow[]>;
277
+ requestsByWorker: Map<number, ProviderRequestRow[]>;
278
+ requestsByWorkspace: Map<number, ProviderRequestRow[]>;
279
+ logEntriesByTurn: Map<number, LogRow[]>;
280
+ emissionRows: EmissionRow[];
281
+ reasoningRows: ReasoningRow[];
282
+ emissionsByWorker: Map<number, ReadonlyMap<string, string>>;
283
+ editRows: EditRow[];
284
+ editRowsByWorker: Map<number, EditRow[]>;
285
+ environments: Map<string, Record<string, unknown>>;
286
+ loopsById: Map<number, LoopRow>;
287
+ workersById: Map<number, WorkerRow>;
288
+ workerRollups: Map<number, WorkerRollupRow>;
289
+ opMixByWorker: Map<number, OpMixRow[]>;
290
+ search: {
291
+ channel_entries: number;
292
+ derivation_complete: number;
293
+ indexed: number;
294
+ excluded: number;
295
+ unsearchable: number;
296
+ failed: number;
297
+ dispositions: Array<{
298
+ scheme: string;
299
+ authority: string;
300
+ pathname: string;
301
+ channel: string;
302
+ disposition: string;
303
+ reason: string | null;
304
+ }>;
305
+ unfinished: number;
306
+ derivation_artifacts_complete: number;
307
+ derivation_artifacts_building: number;
308
+ };
309
+ }
310
+ export interface CacheLedgerEntry {
311
+ adjacentPrefixTokensEstimate: number | null;
312
+ cachedTokens: number | null;
313
+ inputTokens: number | null;
314
+ }
315
+ export interface DigestOptions {
316
+ openEvidence: OpenEvidence;
317
+ dbPath: string;
318
+ digestDir?: string;
319
+ workerId?: number;
320
+ workspaceId?: number;
321
+ }
322
+ export type RequiemCallRecord = {
323
+ openedAt: string;
324
+ completedAt: string | null;
325
+ state: "open" | "response" | "error";
326
+ requests: Array<{
327
+ provider: string;
328
+ model: string;
329
+ openedAt: string;
330
+ completedAt: string | null;
331
+ state: "open" | "settled";
332
+ accounting: ProviderRequestAccounting | null;
333
+ evidence: unknown;
334
+ }>;
335
+ failure: unknown;
336
+ };
337
+ export type RequiemWorkerReport = {
338
+ workerId: number;
339
+ workerName: string;
340
+ messages: ChatMessage[];
341
+ responses: unknown[];
342
+ calls: RequiemCallRecord[];
343
+ accounting: ProviderAccounting;
344
+ testimony: string | null;
345
+ };
346
+ export {};
347
+ //# sourceMappingURL=digest-rows.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"digest-rows.d.ts","sourceRoot":"","sources":["../src/digest-rows.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export const EDIT_FORMS = Object.freeze(["hash", "line", "range", "insert", "column", "prepend", "append", "offset", "pattern", "whole"]);
2
+ //# sourceMappingURL=digest-rows.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"digest-rows.js","sourceRoot":"","sources":["../src/digest-rows.ts"],"names":[],"mappings":"AAkIA,MAAM,CAAC,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,CAAU,CAAC,CAAC"}
@@ -0,0 +1,49 @@
1
+ import type { ChatMessage } from "@plurnk/plurnk-providers";
2
+ import type { DerivationStateRow, DispositionCountRow, DispositionRow, EditRow, EmissionRow, ExecutionEnvironmentRow, InferenceCallRow, LogCurationEffectRow, LogRow, LoopRow, ModelCallRow, OpMixRow, PacketEvidence, ProviderRequestRow, ReasoningRow, SearchStateRow, StorageRow, StorageTableRow, TurnAttemptRow, TurnRow, WorkerRollupRow, WorkerRow, WorkspaceRow } from "./digest-rows.ts";
3
+ export interface EvidencePacket {
4
+ readonly assistant: {
5
+ readonly content: string;
6
+ readonly reasoning: string | null;
7
+ } | null;
8
+ readonly assistantRaw: unknown;
9
+ readonly attributions: readonly string[];
10
+ readonly attachments: readonly unknown[];
11
+ slot(name: "system" | "user"): string;
12
+ messages(emissions: ReadonlyMap<string, string>): Array<ChatMessage & {
13
+ content: string;
14
+ }>;
15
+ }
16
+ export interface EvidenceRows {
17
+ workspaces: WorkspaceRow[];
18
+ workers: WorkerRow[];
19
+ loops: LoopRow[];
20
+ turns: TurnRow[];
21
+ inferenceCalls: InferenceCallRow[];
22
+ modelCalls: ModelCallRow[];
23
+ turnAttempts: TurnAttemptRow[];
24
+ providerRequests: ProviderRequestRow[];
25
+ logEntries: LogRow[];
26
+ editRows: EditRow[];
27
+ emissionRows: EmissionRow[];
28
+ reasoningRows: ReasoningRow[];
29
+ curationEffects: LogCurationEffectRow[];
30
+ workerRollupRows: WorkerRollupRow[];
31
+ opMixRows: OpMixRow[];
32
+ environmentRows: ExecutionEnvironmentRow[];
33
+ searchState: SearchStateRow;
34
+ derivationState: DerivationStateRow;
35
+ dispositionCounts: DispositionCountRow[];
36
+ dispositions: DispositionRow[];
37
+ storage: StorageRow;
38
+ storageTables: StorageTableRow[];
39
+ }
40
+ export interface DigestEvidence extends Disposable {
41
+ rows(): EvidenceRows;
42
+ packet(turn: TurnRow): PacketEvidence;
43
+ response(modelCallId: number): string | null;
44
+ request(requestId: number): string | null;
45
+ reasoning(turn: TurnRow): string | null;
46
+ textWeight(text: string): number;
47
+ }
48
+ export type OpenEvidence = (dbPath: string) => DigestEvidence;
49
+ //# sourceMappingURL=evidence.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"evidence.d.ts","sourceRoot":"","sources":["../src/evidence.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,KAAK,EACR,kBAAkB,EAAE,mBAAmB,EAAE,cAAc,EAAE,OAAO,EAAE,WAAW,EAC7E,uBAAuB,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,EAAE,OAAO,EAChF,YAAY,EAAE,QAAQ,EAAE,cAAc,EAAE,kBAAkB,EAAE,YAAY,EACxE,cAAc,EAAE,UAAU,EAAE,eAAe,EAAE,cAAc,EAAE,OAAO,EAAE,eAAe,EACrF,SAAS,EAAE,YAAY,EAC1B,MAAM,kBAAkB,CAAC;AAG1B,MAAM,WAAW,cAAc;IAC3B,QAAQ,CAAC,SAAS,EAAE;QAAE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,GAAG,IAAI,CAAC;IAC3F,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC;IAC/B,QAAQ,CAAC,YAAY,EAAE,SAAS,MAAM,EAAE,CAAC;IACzC,QAAQ,CAAC,WAAW,EAAE,SAAS,OAAO,EAAE,CAAC;IACzC,IAAI,CAAC,IAAI,EAAE,QAAQ,GAAG,MAAM,GAAG,MAAM,CAAC;IACtC,QAAQ,CAAC,SAAS,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,KAAK,CAAC,WAAW,GAAG;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAC9F;AAED,MAAM,WAAW,YAAY;IACzB,UAAU,EAAE,YAAY,EAAE,CAAC;IAC3B,OAAO,EAAE,SAAS,EAAE,CAAC;IACrB,KAAK,EAAE,OAAO,EAAE,CAAC;IACjB,KAAK,EAAE,OAAO,EAAE,CAAC;IACjB,cAAc,EAAE,gBAAgB,EAAE,CAAC;IACnC,UAAU,EAAE,YAAY,EAAE,CAAC;IAC3B,YAAY,EAAE,cAAc,EAAE,CAAC;IAC/B,gBAAgB,EAAE,kBAAkB,EAAE,CAAC;IACvC,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,YAAY,EAAE,WAAW,EAAE,CAAC;IAC5B,aAAa,EAAE,YAAY,EAAE,CAAC;IAC9B,eAAe,EAAE,oBAAoB,EAAE,CAAC;IACxC,gBAAgB,EAAE,eAAe,EAAE,CAAC;IACpC,SAAS,EAAE,QAAQ,EAAE,CAAC;IACtB,eAAe,EAAE,uBAAuB,EAAE,CAAC;IAC3C,WAAW,EAAE,cAAc,CAAC;IAC5B,eAAe,EAAE,kBAAkB,CAAC;IACpC,iBAAiB,EAAE,mBAAmB,EAAE,CAAC;IACzC,YAAY,EAAE,cAAc,EAAE,CAAC;IAC/B,OAAO,EAAE,UAAU,CAAC;IACpB,aAAa,EAAE,eAAe,EAAE,CAAC;CACpC;AAED,MAAM,WAAW,cAAe,SAAQ,UAAU;IAC9C,IAAI,IAAI,YAAY,CAAC;IACrB,MAAM,CAAC,IAAI,EAAE,OAAO,GAAG,cAAc,CAAC;IACtC,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IAC7C,OAAO,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IAC1C,SAAS,CAAC,IAAI,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAAC;IACxC,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;CACpC;AAED,MAAM,MAAM,YAAY,GAAG,CAAC,MAAM,EAAE,MAAM,KAAK,cAAc,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=evidence.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"evidence.js","sourceRoot":"","sources":["../src/evidence.ts"],"names":[],"mappings":""}
@@ -0,0 +1,7 @@
1
+ export { default as Digest } from "./Digest.ts";
2
+ export { default as DigestRender } from "./DigestRender.ts";
3
+ export { default as Share, type ShareOptions } from "./Share.ts";
4
+ export type * from "./digest-rows.ts";
5
+ export { EDIT_FORMS } from "./digest-rows.ts";
6
+ export type * from "./evidence.ts";
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,KAAK,YAAY,EAAE,MAAM,YAAY,CAAC;AACjE,mBAAmB,kBAAkB,CAAC;AACtC,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,mBAAmB,eAAe,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,5 @@
1
+ export { default as Digest } from "./Digest.js";
2
+ export { default as DigestRender } from "./DigestRender.js";
3
+ export { default as Share } from "./Share.js";
4
+ export { EDIT_FORMS } from "./digest-rows.js";
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,EAAE,OAAO,IAAI,KAAK,EAAqB,MAAM,YAAY,CAAC;AAEjE,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC"}
package/dist/share.sql ADDED
@@ -0,0 +1,6 @@
1
+ -- The share's snapshot ({§share}). VACUUM INTO writes a transactionally consistent copy of the open
2
+ -- database to a new file, so a live daemon's database is never read in place. No INIT blocks: this
3
+ -- compiles against whatever database is shared and never alters it.
4
+
5
+ -- PREP: share_snapshot
6
+ VACUUM INTO :path;
package/package.json ADDED
@@ -0,0 +1,53 @@
1
+ {
2
+ "name": "@plurnk/plurnk-digest",
3
+ "version": "2.0.0",
4
+ "description": "Forensic reports, snapshots and model interviews for Plurnk evidence",
5
+ "type": "module",
6
+ "license": "MIT",
7
+ "repository": {
8
+ "type": "git",
9
+ "url": "git+https://github.com/plurnk/plurnk-service.git",
10
+ "directory": "plurnk-digest"
11
+ },
12
+ "exports": {
13
+ ".": {
14
+ "types": "./dist/index.d.ts",
15
+ "default": "./dist/index.js"
16
+ },
17
+ "./package.json": "./package.json"
18
+ },
19
+ "files": [
20
+ ".env.defaults",
21
+ "dist/**/*",
22
+ "README.md",
23
+ "SPEC.md"
24
+ ],
25
+ "engines": {
26
+ "node": ">=26"
27
+ },
28
+ "scripts": {
29
+ "test": "npm run test:lint && npm run test:unit",
30
+ "test:lint": "tsc --noEmit",
31
+ "test:unit": "node --conditions=plurnk-dev --env-file=.env.defaults --test --test-timeout=30000 src/*.test.ts",
32
+ "build:clean": "rm -rf dist",
33
+ "build:dist": "tsc -p tsconfig.build.json",
34
+ "build": "npm run build:clean && npm run build:dist && node --input-type=module -e 'import { copyFileSync } from \"node:fs\"; copyFileSync(\"src/share.sql\", \"dist/share.sql\");'",
35
+ "prepack": "npm run build"
36
+ },
37
+ "dependencies": {
38
+ "@opentelemetry/api": "^1.9.1",
39
+ "@plurnk/plurnk-contracts": "^2.0.0",
40
+ "@plurnk/plurnk-meta": "^2.0.0",
41
+ "@plurnk/plurnk-providers": "^2.0.0",
42
+ "@possumtech/sqlrite": "^6.5.3"
43
+ },
44
+ "publishConfig": {
45
+ "access": "public"
46
+ },
47
+ "homepage": "https://github.com/plurnk/plurnk-service/tree/main/plurnk-digest#readme",
48
+ "bugs": {
49
+ "url": "https://repo.possumtech.com/plurnk/plurnk-service/issues"
50
+ },
51
+ "author": "@wikitopian",
52
+ "gitHead": "3b2cae63115333d1b2e820abcf44b0fe4959d9ea"
53
+ }