@plurnk/plurnk-service 1.29.0 → 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.
Files changed (214) hide show
  1. package/.env.defaults +3 -18
  2. package/INSTALL.md +65 -15
  3. package/README.md +8 -5
  4. package/SPEC.md +197 -444
  5. package/dist/build-info.json +1 -1
  6. package/dist/content/body-preview.d.ts.map +1 -1
  7. package/dist/content/body-preview.js +11 -2
  8. package/dist/content/body-preview.js.map +1 -1
  9. package/dist/content/line-marker.js +1 -1
  10. package/dist/content/line-marker.js.map +1 -1
  11. package/dist/content/path-mimetype.js +1 -1
  12. package/dist/content/path-mimetype.js.map +1 -1
  13. package/dist/core/AdmittedTurnExecutor.d.ts +4 -3
  14. package/dist/core/AdmittedTurnExecutor.d.ts.map +1 -1
  15. package/dist/core/AdmittedTurnExecutor.js +19 -17
  16. package/dist/core/AdmittedTurnExecutor.js.map +1 -1
  17. package/dist/core/BareBatchRunner.d.ts +2 -2
  18. package/dist/core/BareBatchRunner.d.ts.map +1 -1
  19. package/dist/core/BareBatchRunner.js.map +1 -1
  20. package/dist/core/Dispatcher.d.ts +2 -2
  21. package/dist/core/Dispatcher.d.ts.map +1 -1
  22. package/dist/core/Dispatcher.js +3 -8
  23. package/dist/core/Dispatcher.js.map +1 -1
  24. package/dist/core/Engine.d.ts +1 -1
  25. package/dist/core/Engine.d.ts.map +1 -1
  26. package/dist/core/Engine.js +1 -1
  27. package/dist/core/Engine.js.map +1 -1
  28. package/dist/core/ExecutorRegistry.d.ts +3 -17
  29. package/dist/core/ExecutorRegistry.d.ts.map +1 -1
  30. package/dist/core/ExecutorRegistry.js +6 -6
  31. package/dist/core/ExecutorRegistry.js.map +1 -1
  32. package/dist/core/HostPaths.d.ts +2 -0
  33. package/dist/core/HostPaths.d.ts.map +1 -1
  34. package/dist/core/HostPaths.js +14 -0
  35. package/dist/core/HostPaths.js.map +1 -1
  36. package/dist/core/PacketBuilder.js +1 -1
  37. package/dist/core/PacketBuilder.js.map +1 -1
  38. package/dist/core/SchemeRegistry.d.ts +5 -4
  39. package/dist/core/SchemeRegistry.d.ts.map +1 -1
  40. package/dist/core/SchemeRegistry.js +9 -9
  41. package/dist/core/SchemeRegistry.js.map +1 -1
  42. package/dist/core/ToolResources.js +5 -5
  43. package/dist/core/ToolResources.js.map +1 -1
  44. package/dist/core/Turn.js +1 -1
  45. package/dist/core/Turn.js.map +1 -1
  46. package/dist/core/TurnOps.d.ts +1 -1
  47. package/dist/core/TurnOps.d.ts.map +1 -1
  48. package/dist/core/TurnOps.js +4 -12
  49. package/dist/core/TurnOps.js.map +1 -1
  50. package/dist/core/TurnRunner.d.ts +1 -2
  51. package/dist/core/TurnRunner.d.ts.map +1 -1
  52. package/dist/core/TurnRunner.js +11 -24
  53. package/dist/core/TurnRunner.js.map +1 -1
  54. package/dist/core/caps/DbNotifyCaps.js +2 -2
  55. package/dist/core/caps/DbNotifyCaps.js.map +1 -1
  56. package/dist/core/caps/DbProjectionCaps.js +1 -1
  57. package/dist/core/caps/DbProjectionCaps.js.map +1 -1
  58. package/dist/core/env-defaults.d.ts +2 -1
  59. package/dist/core/env-defaults.d.ts.map +1 -1
  60. package/dist/core/env-defaults.js +17 -9
  61. package/dist/core/env-defaults.js.map +1 -1
  62. package/dist/core/packet-wire.d.ts +1 -2
  63. package/dist/core/packet-wire.d.ts.map +1 -1
  64. package/dist/core/packet-wire.js +9 -6
  65. package/dist/core/packet-wire.js.map +1 -1
  66. package/dist/evidence/EvidenceReader.d.ts +14 -0
  67. package/dist/evidence/EvidenceReader.d.ts.map +1 -0
  68. package/dist/evidence/EvidenceReader.js +134 -0
  69. package/dist/evidence/EvidenceReader.js.map +1 -0
  70. package/dist/index.d.ts +0 -1
  71. package/dist/index.d.ts.map +1 -1
  72. package/dist/index.js +2 -4
  73. package/dist/index.js.map +1 -1
  74. package/dist/schemes/Exec.d.ts.map +1 -1
  75. package/dist/schemes/Exec.js +3 -3
  76. package/dist/schemes/Exec.js.map +1 -1
  77. package/dist/schemes/ExecOutputScheme.d.ts +1 -1
  78. package/dist/schemes/ExecOutputScheme.d.ts.map +1 -1
  79. package/dist/schemes/File.js +1 -1
  80. package/dist/schemes/File.js.map +1 -1
  81. package/dist/schemes/Log.d.ts.map +1 -1
  82. package/dist/schemes/Log.js +14 -11
  83. package/dist/schemes/Log.js.map +1 -1
  84. package/dist/schemes/{Skill.d.ts → ResourceTreeScheme.d.ts} +5 -6
  85. package/dist/schemes/ResourceTreeScheme.d.ts.map +1 -0
  86. package/dist/schemes/{Skill.js → ResourceTreeScheme.js} +63 -43
  87. package/dist/schemes/ResourceTreeScheme.js.map +1 -0
  88. package/dist/schemes/Worker.js +1 -1
  89. package/dist/schemes/Worker.js.map +1 -1
  90. package/dist/schemes/_entry-crud.sql +1 -1
  91. package/dist/schemes/_entry-find.js +2 -2
  92. package/dist/schemes/_entry-find.js.map +1 -1
  93. package/dist/schemes/_entry-find.sql +1 -1
  94. package/dist/schemes/_entry-manifest.js +1 -1
  95. package/dist/schemes/_entry-manifest.js.map +1 -1
  96. package/dist/server/AgentRoots.d.ts +2 -1
  97. package/dist/server/AgentRoots.d.ts.map +1 -1
  98. package/dist/server/AgentRoots.js +13 -10
  99. package/dist/server/AgentRoots.js.map +1 -1
  100. package/dist/server/ConfigurationDiagnostics.d.ts +4 -3
  101. package/dist/server/ConfigurationDiagnostics.d.ts.map +1 -1
  102. package/dist/server/ConfigurationDiagnostics.js +15 -8
  103. package/dist/server/ConfigurationDiagnostics.js.map +1 -1
  104. package/dist/server/Daemon.d.ts +13 -8
  105. package/dist/server/Daemon.d.ts.map +1 -1
  106. package/dist/server/Daemon.js +91 -49
  107. package/dist/server/Daemon.js.map +1 -1
  108. package/dist/server/EnvFunctionality.d.ts +2 -2
  109. package/dist/server/EnvFunctionality.d.ts.map +1 -1
  110. package/dist/server/EnvFunctionality.js +2 -2
  111. package/dist/server/EnvFunctionality.js.map +1 -1
  112. package/dist/server/Functionality.d.ts +3 -2
  113. package/dist/server/Functionality.d.ts.map +1 -1
  114. package/dist/server/Functionality.js +1 -1
  115. package/dist/server/Functionality.js.map +1 -1
  116. package/dist/server/HttpListener.d.ts +2 -0
  117. package/dist/server/HttpListener.d.ts.map +1 -1
  118. package/dist/server/HttpListener.js +17 -9
  119. package/dist/server/HttpListener.js.map +1 -1
  120. package/dist/server/MembersFunctionality.d.ts +1 -1
  121. package/dist/server/MembersFunctionality.d.ts.map +1 -1
  122. package/dist/server/MembersFunctionality.js.map +1 -1
  123. package/dist/server/ModuleHost.d.ts +33 -0
  124. package/dist/server/ModuleHost.d.ts.map +1 -0
  125. package/dist/server/ModuleHost.js +2 -0
  126. package/dist/server/ModuleHost.js.map +1 -0
  127. package/dist/server/PlurnkSkill.d.ts.map +1 -1
  128. package/dist/server/PlurnkSkill.js +54 -6
  129. package/dist/server/PlurnkSkill.js.map +1 -1
  130. package/dist/server/ServiceModules.d.ts +0 -2
  131. package/dist/server/ServiceModules.d.ts.map +1 -1
  132. package/dist/server/ServiceModules.js +5 -9
  133. package/dist/server/ServiceModules.js.map +1 -1
  134. package/dist/server/WorkspacePlugins.d.ts +2 -11
  135. package/dist/server/WorkspacePlugins.d.ts.map +1 -1
  136. package/dist/server/WorkspacePlugins.js.map +1 -1
  137. package/dist/server/WorkspaceResidency.d.ts +2 -1
  138. package/dist/server/WorkspaceResidency.d.ts.map +1 -1
  139. package/dist/server/WorkspaceStorage.d.ts +1 -0
  140. package/dist/server/WorkspaceStorage.d.ts.map +1 -1
  141. package/dist/server/WorkspaceStorage.js +31 -5
  142. package/dist/server/WorkspaceStorage.js.map +1 -1
  143. package/dist/server/module-discovery.d.ts +11 -3
  144. package/dist/server/module-discovery.d.ts.map +1 -1
  145. package/dist/server/module-discovery.js +32 -18
  146. package/dist/server/module-discovery.js.map +1 -1
  147. package/dist/server/workspace-storage.sql +5 -0
  148. package/dist/service.d.ts.map +1 -1
  149. package/dist/service.js +37 -34
  150. package/dist/service.js.map +1 -1
  151. package/migrations/016_selection_statements.sql +43 -0
  152. package/migrations/017_skills_module.sql +5 -0
  153. package/package.json +71 -72
  154. package/dist/core/EmissionHead.d.ts +0 -8
  155. package/dist/core/EmissionHead.d.ts.map +0 -1
  156. package/dist/core/EmissionHead.js +0 -29
  157. package/dist/core/EmissionHead.js.map +0 -1
  158. package/dist/core/operation-target-groups.d.ts +0 -3
  159. package/dist/core/operation-target-groups.d.ts.map +0 -1
  160. package/dist/core/operation-target-groups.js +0 -77
  161. package/dist/core/operation-target-groups.js.map +0 -1
  162. package/dist/digest/Digest.d.ts +0 -10
  163. package/dist/digest/Digest.d.ts.map +0 -1
  164. package/dist/digest/Digest.js +0 -252
  165. package/dist/digest/Digest.js.map +0 -1
  166. package/dist/digest/DigestEvidence.d.ts +0 -11
  167. package/dist/digest/DigestEvidence.d.ts.map +0 -1
  168. package/dist/digest/DigestEvidence.js +0 -66
  169. package/dist/digest/DigestEvidence.js.map +0 -1
  170. package/dist/digest/DigestRender.d.ts +0 -18
  171. package/dist/digest/DigestRender.d.ts.map +0 -1
  172. package/dist/digest/DigestRender.js +0 -1044
  173. package/dist/digest/DigestRender.js.map +0 -1
  174. package/dist/digest/DigestRequiem.d.ts +0 -13
  175. package/dist/digest/DigestRequiem.d.ts.map +0 -1
  176. package/dist/digest/DigestRequiem.js +0 -337
  177. package/dist/digest/DigestRequiem.js.map +0 -1
  178. package/dist/digest/digest-db.d.ts +0 -3
  179. package/dist/digest/digest-db.d.ts.map +0 -1
  180. package/dist/digest/digest-db.js +0 -68
  181. package/dist/digest/digest-db.js.map +0 -1
  182. package/dist/digest/digest-paths.d.ts +0 -6
  183. package/dist/digest/digest-paths.d.ts.map +0 -1
  184. package/dist/digest/digest-paths.js +0 -14
  185. package/dist/digest/digest-paths.js.map +0 -1
  186. package/dist/digest/digest-rows.d.ts +0 -346
  187. package/dist/digest/digest-rows.d.ts.map +0 -1
  188. package/dist/digest/digest-rows.js +0 -2
  189. package/dist/digest/digest-rows.js.map +0 -1
  190. package/dist/schemes/Skill.d.ts.map +0 -1
  191. package/dist/schemes/Skill.js.map +0 -1
  192. package/dist/server/DaemonModule.d.ts +0 -101
  193. package/dist/server/DaemonModule.d.ts.map +0 -1
  194. package/dist/server/DaemonModule.js +0 -2
  195. package/dist/server/DaemonModule.js.map +0 -1
  196. package/dist/server/SkillSource.d.ts +0 -37
  197. package/dist/server/SkillSource.d.ts.map +0 -1
  198. package/dist/server/SkillSource.js +0 -267
  199. package/dist/server/SkillSource.js.map +0 -1
  200. package/dist/server/SkillsFunctionality.d.ts +0 -45
  201. package/dist/server/SkillsFunctionality.d.ts.map +0 -1
  202. package/dist/server/SkillsFunctionality.js +0 -405
  203. package/dist/server/SkillsFunctionality.js.map +0 -1
  204. package/dist/server/skills-problems.d.ts +0 -8
  205. package/dist/server/skills-problems.d.ts.map +0 -1
  206. package/dist/server/skills-problems.js +0 -18
  207. package/dist/server/skills-problems.js.map +0 -1
  208. package/dist/share/Share.d.ts +0 -15
  209. package/dist/share/Share.d.ts.map +0 -1
  210. package/dist/share/Share.js +0 -106
  211. package/dist/share/Share.js.map +0 -1
  212. package/dist/share/share.sql +0 -6
  213. package/docs/skills.md +0 -73
  214. /package/dist/{digest → evidence}/digest.sql +0 -0
@@ -1,252 +0,0 @@
1
- #!/usr/bin/env node
2
- //
3
- // Worker-digest tool for plurnk-service DBs. Reads a sqlite plurnk*.db and
4
- // emits per-worker forensic artifacts to test/digest/. First-order forensic
5
- // surface; read-only; safe to re-run.
6
- //
7
- // test/digest/digest.md Health triage rollup (clean/degenerate-win/failed loops) +
8
- // worker-shape header + waterfall (per-loop health verdict; per-turn:
9
- // status, ⚠ errs=N, source-artifact summary, indented op list)
10
- // test/digest/digest.json Same data, machine-queryable
11
- // test/digest/reasoning.md Every provider attempt's reasoning and admission result
12
- // test/digest/requiem.md Out-of-band model audit
13
- // test/digest/requiem.json Exact audit messages, responses, usage, and cost
14
- // <digest>/<stem>.system.md BYTE-FOR-BYTE the system message sent
15
- // when the turn involved a provider.
16
- // <digest>/<stem>.user.md User text slot; digest.json retains native attachment descriptors.
17
- // <digest>/<stem>.wire.json The request's text messages in order, emissions in place.
18
- // <digest>/<stem>.response.md Request-only note when no response was admitted.
19
- // <digest>/<stem>.assistant.md Exact persisted turnOps, regardless of producer.
20
- // <digest>/<stem>.reasoning.md Exact persisted reasoning, regardless of producer.
21
- // <digest>/<stem>.assistantRaw.json Opaque provider response.
22
- // <digest>/<stem>.packet.raw.txt Exact malformed stored packet text.
23
- // <digest>/<stem>.packet.invalid.json Validation failure for that packet.
24
- // <digest>/<stem>.attemptNNN.rejected.assistant.md
25
- // Rejected provider emission.
26
- // <digest>/<stem>.attemptNNN.rejected.response.json
27
- // Full rejected provider response.
28
- // <digest>/<stem>.attemptNNN.rejected.parse-errors.json
29
- // Admission errors for that attempt.
30
- //
31
- // Provider request slots are byte-identical to what Engine emits because both
32
- // paths project through PacketWire. Assistant files preserve durable turnOps.
33
- //
34
- // SQL lives in the co-located digest.sql; opened the sqlrite way (SqlRiteSync,
35
- // the sync CLI/script facade). Each PREP block is read through its own accessor.
36
- import { closeSync, existsSync, mkdirSync, openSync, readdirSync, renameSync, statSync, writeFileSync } from "node:fs";
37
- import { join, resolve } from "node:path";
38
- import { observedSync } from "../observe/spans.js";
39
- import HostPaths from "../core/HostPaths.js";
40
- import DigestRender from "./DigestRender.js";
41
- import DigestRequiem from "./DigestRequiem.js";
42
- import DigestEvidence from "./DigestEvidence.js";
43
- import { digestPaths } from "./digest-paths.js";
44
- import { readDigestDb } from "./digest-db.js";
45
- export default class Digest {
46
- // Default DB path mirrors the host path contract and an explicit service override.
47
- static defaultDbPath() {
48
- const paths = new HostPaths();
49
- const env = process.env.PLURNK_SERVICE_DB_PATH;
50
- return env !== undefined && env.length > 0
51
- ? resolve(paths.expandUserPath(env))
52
- : paths.databaseFile;
53
- }
54
- // {§digest-requiem} — the out-of-band forensic interview lives in DigestRequiem.
55
- static requiem(opts) {
56
- return DigestRequiem.interview(opts);
57
- }
58
- static run(opts) {
59
- // {§observability-boundary} — the evidence write is observed; the digest
60
- // paths themselves are environment-specific and stay off the boundary.
61
- observedSync("digest.write", {}, () => { Digest.#runSettled(opts); });
62
- }
63
- static #runSettled(opts) {
64
- // {§digest-programmatic-surface}: digest.sql is packaged beside this module
65
- // (src/digest → dist/digest via copy-sql), including in an installed package.
66
- const { dbPath, digestDir } = digestPaths(opts);
67
- // {§share}: the digest never deletes; a caller reusing a folder removes it first.
68
- if (existsSync(digestDir) && (!statSync(digestDir).isDirectory() || readdirSync(digestDir).length > 0)) {
69
- throw new Error(`digest: ${digestDir} already exists and is not an empty folder; remove it first`);
70
- }
71
- readDigestDb(dbPath, (db) => Digest.#write(db, dbPath, digestDir, opts));
72
- }
73
- static #write(db, dbPath, digestDir, opts) {
74
- // Opens without readOnly so WAL-mode DBs (the daemon's normal operating
75
- // mode) inspect cleanly; this tool only reads. The DB is quiescent at
76
- // digest time, so each PREP reads on its own — no cross-query snapshot.
77
- const rows = {
78
- workspaces: db.digest_workspaces.all(),
79
- workers: db.digest_workers.all(),
80
- loops: db.digest_loops.all(),
81
- turns: db.digest_turns.all(),
82
- inferenceCalls: db.digest_inference_calls.all(),
83
- modelCalls: db.digest_model_calls.all(),
84
- turnAttempts: db.digest_turn_attempts.all(),
85
- providerRequests: db.digest_provider_requests.all(),
86
- logEntries: db.digest_log_entries.all(),
87
- editRows: db.digest_edit_statements.all(),
88
- emissionRows: db.digest_emissions.all(),
89
- reasoningRows: db.digest_reasonings.all(),
90
- curationEffects: db.digest_curation_effects.all(),
91
- workerRollupRows: db.digest_worker_rollups.all(),
92
- opMixRows: db.digest_worker_op_mix.all(),
93
- environmentRows: db.digest_execution_environments.all(),
94
- searchState: db.digest_channel_search_state.get(),
95
- derivationState: db.digest_derivation_state.get(),
96
- dispositionCounts: db.digest_channel_disposition_counts.all(),
97
- dispositions: db.digest_channel_dispositions.all(),
98
- storage: db.digest_storage.get(),
99
- storageTables: db.digest_storage_tables.all(),
100
- };
101
- let { workspaces, workers, inferenceCalls, modelCalls, turnAttempts, providerRequests, logEntries, editRows, curationEffects, workerRollupRows, opMixRows } = rows;
102
- const { environmentRows, searchState, derivationState, dispositionCounts, dispositions, storageTables, emissionRows, reasoningRows } = rows;
103
- let loops = rows.loops.map((loop) => ({ ...loop, claimed_at: loop.claimed_at ?? null }));
104
- if (rows.storage === undefined)
105
- throw new Error("digest: the database reported no storage facts");
106
- const storage = { ...rows.storage, tables: storageTables };
107
- let turns = rows.turns;
108
- if (searchState === undefined || derivationState === undefined)
109
- throw new Error("digest: search aggregate returned no row");
110
- const dispositionCount = (value) => dispositionCounts.find(({ disposition }) => disposition === value)?.n ?? 0;
111
- const search = {
112
- ...searchState,
113
- indexed: dispositionCount("indexed"),
114
- excluded: dispositionCount("excluded"),
115
- unsearchable: dispositionCount("unsearchable"),
116
- failed: dispositionCount("failed"),
117
- dispositions,
118
- derivation_artifacts_complete: derivationState.complete,
119
- derivation_artifacts_building: derivationState.building,
120
- };
121
- // {§digest-programmatic-surface} — optional worker/workspace selectors narrow the
122
- // kept worker graph and its dependent evidence rather than emitting the whole DB.
123
- if (opts.workerId !== undefined)
124
- workers = workers.filter((r) => r.id === opts.workerId);
125
- if (opts.workspaceId !== undefined)
126
- workers = workers.filter((r) => r.workspace_id === opts.workspaceId);
127
- if (opts.workerId !== undefined || opts.workspaceId !== undefined) {
128
- const keptWorkerIds = new Set(workers.map((r) => r.id));
129
- const keptWorkspaceIds = new Set(workers.map((r) => r.workspace_id));
130
- workspaces = workspaces.filter((s) => keptWorkspaceIds.has(s.id));
131
- loops = loops.filter((l) => keptWorkerIds.has(l.worker_id));
132
- const keptLoopIds = new Set(loops.map((l) => l.id));
133
- turns = turns.filter((t) => keptLoopIds.has(t.loop_id));
134
- const keptTurnIds = new Set(turns.map((t) => t.id));
135
- inferenceCalls = inferenceCalls.filter((call) => keptTurnIds.has(call.turn_id));
136
- const keptInferenceCallIds = new Set(inferenceCalls.map((call) => call.id));
137
- modelCalls = modelCalls.filter((call) => keptInferenceCallIds.has(call.id));
138
- turnAttempts = turnAttempts.filter((attempt) => keptTurnIds.has(attempt.turn_id));
139
- providerRequests = providerRequests.filter((request) => keptInferenceCallIds.has(request.inference_call_id));
140
- logEntries = logEntries.filter((le) => keptTurnIds.has(le.turn_id));
141
- editRows = editRows.filter((row) => keptTurnIds.has(row.turn_id));
142
- const keptLogEntryIds = new Set(logEntries.map((entry) => entry.id));
143
- curationEffects = curationEffects.filter((effect) => keptLogEntryIds.has(effect.operation_log_entry_id)
144
- && keptLogEntryIds.has(effect.target_log_entry_id));
145
- workerRollupRows = workerRollupRows.filter((r) => keptWorkerIds.has(r.worker_id));
146
- opMixRows = opMixRows.filter((o) => keptWorkerIds.has(o.worker_id));
147
- }
148
- mkdirSync(digestDir, { recursive: true });
149
- const workersByWorkspace = new Map();
150
- for (const r of workers) {
151
- const arr = workersByWorkspace.get(r.workspace_id) ?? [];
152
- arr.push(r);
153
- workersByWorkspace.set(r.workspace_id, arr);
154
- }
155
- const loopsByWorker = new Map();
156
- for (const l of loops) {
157
- const arr = loopsByWorker.get(l.worker_id) ?? [];
158
- arr.push(l);
159
- loopsByWorker.set(l.worker_id, arr);
160
- }
161
- const turnsByLoop = new Map();
162
- for (const t of turns) {
163
- const arr = turnsByLoop.get(t.loop_id) ?? [];
164
- arr.push(t);
165
- turnsByLoop.set(t.loop_id, arr);
166
- }
167
- const attemptsByTurn = new Map();
168
- for (const attempt of turnAttempts) {
169
- const arr = attemptsByTurn.get(attempt.turn_id) ?? [];
170
- arr.push(attempt);
171
- attemptsByTurn.set(attempt.turn_id, arr);
172
- }
173
- const requestsByInferenceCall = new Map();
174
- const requestsByAttempt = new Map();
175
- const requestsByTurn = new Map();
176
- const requestsByLoop = new Map();
177
- const requestsByWorker = new Map();
178
- const requestsByWorkspace = new Map();
179
- const appendRequest = (map, id, request) => {
180
- const rows = map.get(id) ?? [];
181
- rows.push(request);
182
- map.set(id, rows);
183
- };
184
- for (const request of providerRequests) {
185
- appendRequest(requestsByInferenceCall, request.inference_call_id, request);
186
- if (request.turn_attempt_id !== null) {
187
- appendRequest(requestsByAttempt, request.turn_attempt_id, request);
188
- }
189
- if (request.turn_id !== null)
190
- appendRequest(requestsByTurn, request.turn_id, request);
191
- if (request.loop_id !== null)
192
- appendRequest(requestsByLoop, request.loop_id, request);
193
- if (request.worker_id !== null)
194
- appendRequest(requestsByWorker, request.worker_id, request);
195
- appendRequest(requestsByWorkspace, request.workspace_id, request);
196
- }
197
- const editRowsByWorker = new Map();
198
- for (const row of editRows) {
199
- const arr = editRowsByWorker.get(row.worker_id) ?? [];
200
- arr.push(row);
201
- editRowsByWorker.set(row.worker_id, arr);
202
- }
203
- const logEntriesByTurn = new Map();
204
- for (const le of logEntries) {
205
- const arr = logEntriesByTurn.get(le.turn_id) ?? [];
206
- arr.push(le);
207
- logEntriesByTurn.set(le.turn_id, arr);
208
- }
209
- const loopsById = new Map(loops.map((l) => [l.id, l]));
210
- const workersById = new Map(workers.map((r) => [r.id, r]));
211
- const workerRollups = new Map(workerRollupRows.map((r) => [r.worker_id, r]));
212
- const environments = new Map(environmentRows.map((row) => [`${row.workspace_id}:${row.stream}`, JSON.parse(row.env)]));
213
- const emissionsByWorker = new Map();
214
- for (const row of emissionRows) {
215
- const map = emissionsByWorker.get(row.worker_id) ?? new Map();
216
- map.set(row.coordinate, row.content);
217
- emissionsByWorker.set(row.worker_id, map);
218
- }
219
- const opMixByWorker = new Map();
220
- for (const o of opMixRows) {
221
- const arr = opMixByWorker.get(o.worker_id) ?? [];
222
- arr.push(o);
223
- opMixByWorker.set(o.worker_id, arr);
224
- }
225
- const m = {
226
- evidence: new DigestEvidence(db),
227
- dbPath, storage, digestDir, workspaces, workers, loops, turns, inferenceCalls, modelCalls, turnAttempts, providerRequests, logEntries, curationEffects,
228
- workersByWorkspace, loopsByWorker, turnsByLoop, attemptsByTurn,
229
- requestsByInferenceCall, requestsByAttempt, requestsByTurn, requestsByLoop, requestsByWorker, requestsByWorkspace,
230
- logEntriesByTurn, emissionRows, reasoningRows, emissionsByWorker, editRows, editRowsByWorker, environments, loopsById, workersById,
231
- workerRollups, opMixByWorker, search,
232
- };
233
- writeFileSync(join(digestDir, "digest.md"), DigestRender.waterfall(m));
234
- const pending = join(digestDir, "digest.json.partial");
235
- const descriptor = openSync(pending, "w");
236
- try {
237
- for (const chunk of DigestRender.json(m))
238
- writeFileSync(descriptor, chunk);
239
- }
240
- finally {
241
- closeSync(descriptor);
242
- }
243
- writeFileSync(join(digestDir, "reasoning.md"), DigestRender.reasoning(m));
244
- const packetFiles = DigestRender.packetFiles(m);
245
- const packetIds = [...new Set(packetFiles.map((f) => f.slice(0, f.indexOf("."))))];
246
- renameSync(pending, join(digestDir, "digest.json"));
247
- console.log(`digest: wrote ${digestDir}/{digest.md,digest.json,reasoning.md} + ${packetFiles.length} packet artifact files (${packetIds.join(", ") || "none"})`);
248
- console.log(` source: ${dbPath}`);
249
- console.log(` workspaces=${workspaces.length} workers=${workers.length} loops=${loops.length} turns=${turns.length} inference_calls=${inferenceCalls.length} model_calls=${modelCalls.length} turn_attempts=${turnAttempts.length} provider_requests=${providerRequests.length} log_entries=${logEntries.length} log_curation_effects=${curationEffects.length}`);
250
- }
251
- }
252
- //# sourceMappingURL=Digest.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Digest.js","sourceRoot":"","sources":["../../src/digest/Digest.ts"],"names":[],"mappings":"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"}
@@ -1,11 +0,0 @@
1
- import type SqlRiteSync from "@possumtech/sqlrite/sync";
2
- import type { PacketEvidence, TurnRow } from "./digest-rows.ts";
3
- export default class DigestEvidence {
4
- #private;
5
- constructor(db: SqlRiteSync);
6
- packet(turn: TurnRow): PacketEvidence;
7
- response(modelCallId: number): string | null;
8
- request(requestId: number): string | null;
9
- reasoning(turn: TurnRow): string | null;
10
- }
11
- //# sourceMappingURL=DigestEvidence.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"DigestEvidence.d.ts","sourceRoot":"","sources":["../../src/digest/DigestEvidence.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,WAAW,MAAM,0BAA0B,CAAC;AAExD,OAAO,KAAK,EAAiB,cAAc,EAAY,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAsBzF,MAAM,CAAC,OAAO,OAAO,cAAc;;IAI/B,YAAY,EAAE,EAAE,WAAW,EAAoB;IAE/C,MAAM,CAAC,IAAI,EAAE,OAAO,GAAG,cAAc,CAepC;IAED,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAE3C;IAED,OAAO,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAIxC;IAED,SAAS,CAAC,IAAI,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAKtC;CACJ"}
@@ -1,66 +0,0 @@
1
- import StoredPacket from "../core/StoredPacket.js";
2
- const describeNonError = (value) => {
3
- if (typeof value === "string")
4
- return value;
5
- try {
6
- return JSON.stringify(value) ?? String(value);
7
- }
8
- catch {
9
- return String(value);
10
- }
11
- };
12
- const errorEvidence = (value, seen = new Set()) => {
13
- if (seen.has(value))
14
- return { name: "Error", message: "Circular error cause" };
15
- if (typeof value === "object" && value !== null)
16
- seen.add(value);
17
- if (!(value instanceof Error))
18
- return { name: "NonError", message: describeNonError(value) };
19
- return {
20
- name: value.name, message: value.message,
21
- ...(value.cause === undefined ? {} : { cause: errorEvidence(value.cause, seen) }),
22
- };
23
- };
24
- // {§digest-forensic-fidelity}: heavy evidence is read on demand, never multiplied by graph size.
25
- export default class DigestEvidence {
26
- #db;
27
- #lastPacket;
28
- constructor(db) { this.#db = db; }
29
- packet(turn) {
30
- if (this.#lastPacket?.turnId === turn.id)
31
- return this.#lastPacket.evidence;
32
- this.#lastPacket = undefined;
33
- let evidence = { packet: null, packetFailure: null };
34
- if (turn.has_packet === 1) {
35
- const row = this.#db.digest_turn_packet.get({ turn_id: turn.id });
36
- if (row === undefined)
37
- throw new Error(`digest: turn ${turn.id} packet disappeared`);
38
- try {
39
- evidence = { packet: StoredPacket.parse(row.packet, `digest turn ${turn.id}`), packetFailure: null };
40
- }
41
- catch (cause) {
42
- evidence = { packet: null, packetFailure: { raw: row.packet_bag, error: errorEvidence(cause) } };
43
- }
44
- }
45
- this.#lastPacket = { turnId: turn.id, evidence };
46
- return evidence;
47
- }
48
- response(modelCallId) {
49
- return this.#db.digest_model_response.get({ model_call_id: modelCallId })?.response ?? null;
50
- }
51
- request(requestId) {
52
- const row = this.#db.digest_provider_request_evidence.get({ request_id: requestId });
53
- if (row === undefined)
54
- throw new Error(`digest: provider request ${requestId} disappeared`);
55
- return row.evidence ?? null;
56
- }
57
- reasoning(turn) {
58
- if (turn.has_reasoning === 0)
59
- return null;
60
- const row = this.#db.digest_turn_reasoning.get({ turn_id: turn.id });
61
- if (row === undefined)
62
- throw new Error(`digest: turn ${turn.id} reasoning source disappeared`);
63
- return row.content;
64
- }
65
- }
66
- //# sourceMappingURL=DigestEvidence.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"DigestEvidence.js","sourceRoot":"","sources":["../../src/digest/DigestEvidence.ts"],"names":[],"mappings":"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"}
@@ -1,18 +0,0 @@
1
- import { type ProviderAccounting } from "@plurnk/plurnk-providers";
2
- import type { EditRow, EditForm, DigestModel, CacheLedgerEntry } from "./digest-rows.ts";
3
- export default class DigestRender {
4
- #private;
5
- static parseJson(s: unknown, fallback?: unknown): unknown;
6
- static usageSummary(accounting: ProviderAccounting | null): string;
7
- static costSummary(accounting: ProviderAccounting | null): string;
8
- static envLine(env: unknown): string | null;
9
- static editForm(row: Pick<EditRow, "line_marker" | "pattern">): EditForm;
10
- static cacheLedger(m: DigestModel): Map<number, CacheLedgerEntry>;
11
- static wireLine(assistantRaw: unknown): string | null;
12
- static waterfall(m: DigestModel): string;
13
- static reasoning(m: DigestModel): string;
14
- static packetStems(m: DigestModel): Map<number, string>;
15
- static packetFiles(m: DigestModel): string[];
16
- static json(m: DigestModel): Generator<string>;
17
- }
18
- //# sourceMappingURL=DigestRender.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"DigestRender.d.ts","sourceRoot":"","sources":["../../src/digest/DigestRender.ts"],"names":[],"mappings":"AASA,OAAO,EAEH,KAAK,kBAAkB,EAE1B,MAAM,0BAA0B,CAAC;AAMlC,OAAO,KAAK,EAMR,OAAO,EAEP,QAAQ,EAER,WAAW,EACX,gBAAgB,EACnB,MAAM,kBAAkB,CAAC;AAQ1B,MAAM,CAAC,OAAO,OAAO,YAAY;;IAY7B,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,OAAO,EAAE,QAAQ,GAAE,OAAc,GAAG,OAAO,CAG9D;IAeD,MAAM,CAAC,YAAY,CAAC,UAAU,EAAE,kBAAkB,GAAG,IAAI,GAAG,MAAM,CAYjE;IAED,MAAM,CAAC,WAAW,CAAC,UAAU,EAAE,kBAAkB,GAAG,IAAI,GAAG,MAAM,CAGhE;IAsCD,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAe1C;IA6HD,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC,OAAO,EAAE,aAAa,GAAG,SAAS,CAAC,GAAG,QAAQ,CAevE;IAyDD,MAAM,CAAC,WAAW,CAAC,CAAC,EAAE,WAAW,GAAG,GAAG,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAuChE;IAqHD,MAAM,CAAC,QAAQ,CAAC,YAAY,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAiBpD;IA2ED,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,WAAW,GAAG,MAAM,CA2EvC;IAED,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,WAAW,GAAG,MAAM,CAuEvC;IASD,MAAM,CAAC,WAAW,CAAC,CAAC,EAAE,WAAW,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CA6BtD;IAWD,MAAM,CAAC,WAAW,CAAC,CAAC,EAAE,WAAW,GAAG,MAAM,EAAE,CAmG3C;IAED,MAAM,CAAE,IAAI,CAAC,CAAC,EAAE,WAAW,GAAG,SAAS,CAAC,MAAM,CAAC,CA6J9C;CACJ"}