@ontrails/core 1.0.0-beta.14 → 1.0.0-beta.16

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 (314) hide show
  1. package/CHANGELOG.md +74 -0
  2. package/README.md +73 -24
  3. package/package.json +11 -4
  4. package/src/activation-provenance.ts +111 -0
  5. package/src/activation-source-compatibility.ts +430 -0
  6. package/src/activation-source-projection.ts +221 -0
  7. package/src/activation-source.ts +91 -0
  8. package/src/blob-ref.ts +51 -0
  9. package/src/branded.ts +1 -1
  10. package/src/context.ts +28 -4
  11. package/src/contour.ts +344 -0
  12. package/src/cross-batch.ts +69 -0
  13. package/src/cross-schema.ts +36 -0
  14. package/src/detours.ts +8 -0
  15. package/src/draft.ts +60 -52
  16. package/src/error-projection.ts +51 -0
  17. package/src/errors.ts +245 -48
  18. package/src/execute.ts +1250 -40
  19. package/src/fire.ts +1169 -0
  20. package/src/index.ts +383 -49
  21. package/src/internal/fork-ctx.ts +69 -0
  22. package/src/layer-projection.ts +192 -0
  23. package/src/layer.ts +81 -0
  24. package/src/observe.ts +361 -0
  25. package/src/path-security.ts +1 -1
  26. package/src/permits.ts +12 -0
  27. package/src/redaction/patterns.ts +6 -3
  28. package/src/resilience.ts +11 -11
  29. package/src/resource-config.ts +792 -0
  30. package/src/resource.ts +175 -0
  31. package/src/result.ts +18 -0
  32. package/src/run.ts +7 -6
  33. package/src/schedule-runtime.ts +689 -0
  34. package/src/schedule.ts +324 -0
  35. package/src/serialization.ts +90 -55
  36. package/src/signal-diagnostics.ts +633 -0
  37. package/src/signal-ref.ts +87 -0
  38. package/src/signal.ts +37 -0
  39. package/src/store/accessor-protocol.ts +56 -0
  40. package/src/store/index.ts +4 -0
  41. package/src/structured-examples.ts +245 -0
  42. package/src/surface-derivation.ts +91 -0
  43. package/src/surface-filter.ts +176 -0
  44. package/src/topo.ts +710 -59
  45. package/src/tracing.ts +345 -0
  46. package/src/trail.ts +347 -33
  47. package/src/trails/derive-trail.ts +842 -0
  48. package/src/trails/index.ts +9 -0
  49. package/src/trails/ingest.ts +138 -0
  50. package/src/{internal/trails-db.ts → trails-db.ts} +50 -31
  51. package/src/transport-error-map.ts +174 -0
  52. package/src/type-utils.ts +17 -2
  53. package/src/types.ts +208 -17
  54. package/src/validate-established-topo.ts +8 -2
  55. package/src/validate-topo.ts +244 -13
  56. package/src/validation.ts +58 -1
  57. package/src/webhook.ts +276 -0
  58. package/src/workspace.ts +1 -1
  59. package/src/zod-wrappers.ts +72 -0
  60. package/.turbo/turbo-build.log +0 -1
  61. package/.turbo/turbo-lint.log +0 -3
  62. package/.turbo/turbo-typecheck.log +0 -1
  63. package/dist/adapters.d.ts +0 -39
  64. package/dist/adapters.d.ts.map +0 -1
  65. package/dist/adapters.js +0 -2
  66. package/dist/adapters.js.map +0 -1
  67. package/dist/blob-ref.d.ts +0 -20
  68. package/dist/blob-ref.d.ts.map +0 -1
  69. package/dist/blob-ref.js +0 -22
  70. package/dist/blob-ref.js.map +0 -1
  71. package/dist/branded.d.ts +0 -36
  72. package/dist/branded.d.ts.map +0 -1
  73. package/dist/branded.js +0 -89
  74. package/dist/branded.js.map +0 -1
  75. package/dist/collections.d.ts +0 -31
  76. package/dist/collections.d.ts.map +0 -1
  77. package/dist/collections.js +0 -60
  78. package/dist/collections.js.map +0 -1
  79. package/dist/context.d.ts +0 -10
  80. package/dist/context.d.ts.map +0 -1
  81. package/dist/context.js +0 -21
  82. package/dist/context.js.map +0 -1
  83. package/dist/derive.d.ts +0 -44
  84. package/dist/derive.d.ts.map +0 -1
  85. package/dist/derive.js +0 -149
  86. package/dist/derive.js.map +0 -1
  87. package/dist/dispatch.d.ts +0 -27
  88. package/dist/dispatch.d.ts.map +0 -1
  89. package/dist/dispatch.js +0 -34
  90. package/dist/dispatch.js.map +0 -1
  91. package/dist/draft.d.ts +0 -28
  92. package/dist/draft.d.ts.map +0 -1
  93. package/dist/draft.js +0 -156
  94. package/dist/draft.js.map +0 -1
  95. package/dist/errors.d.ts +0 -83
  96. package/dist/errors.d.ts.map +0 -1
  97. package/dist/errors.js +0 -142
  98. package/dist/errors.js.map +0 -1
  99. package/dist/event.d.ts +0 -8
  100. package/dist/event.d.ts.map +0 -1
  101. package/dist/event.js +0 -7
  102. package/dist/event.js.map +0 -1
  103. package/dist/execute.d.ts +0 -35
  104. package/dist/execute.d.ts.map +0 -1
  105. package/dist/execute.js +0 -90
  106. package/dist/execute.js.map +0 -1
  107. package/dist/fetch.d.ts +0 -15
  108. package/dist/fetch.d.ts.map +0 -1
  109. package/dist/fetch.js +0 -102
  110. package/dist/fetch.js.map +0 -1
  111. package/dist/gate.d.ts +0 -17
  112. package/dist/gate.d.ts.map +0 -1
  113. package/dist/gate.js +0 -21
  114. package/dist/gate.js.map +0 -1
  115. package/dist/guards.d.ts +0 -17
  116. package/dist/guards.d.ts.map +0 -1
  117. package/dist/guards.js +0 -25
  118. package/dist/guards.js.map +0 -1
  119. package/dist/health.d.ts +0 -18
  120. package/dist/health.d.ts.map +0 -1
  121. package/dist/health.js +0 -5
  122. package/dist/health.js.map +0 -1
  123. package/dist/index.d.ts +0 -48
  124. package/dist/index.d.ts.map +0 -1
  125. package/dist/index.js +0 -51
  126. package/dist/index.js.map +0 -1
  127. package/dist/internal/topo-saves.d.ts +0 -47
  128. package/dist/internal/topo-saves.d.ts.map +0 -1
  129. package/dist/internal/topo-saves.js +0 -310
  130. package/dist/internal/topo-saves.js.map +0 -1
  131. package/dist/internal/topo-store-read.d.ts +0 -67
  132. package/dist/internal/topo-store-read.d.ts.map +0 -1
  133. package/dist/internal/topo-store-read.js +0 -222
  134. package/dist/internal/topo-store-read.js.map +0 -1
  135. package/dist/internal/topo-store.d.ts +0 -12
  136. package/dist/internal/topo-store.d.ts.map +0 -1
  137. package/dist/internal/topo-store.js +0 -571
  138. package/dist/internal/topo-store.js.map +0 -1
  139. package/dist/internal/trails-db.d.ts +0 -16
  140. package/dist/internal/trails-db.d.ts.map +0 -1
  141. package/dist/internal/trails-db.js +0 -118
  142. package/dist/internal/trails-db.js.map +0 -1
  143. package/dist/job.d.ts +0 -24
  144. package/dist/job.d.ts.map +0 -1
  145. package/dist/job.js +0 -17
  146. package/dist/job.js.map +0 -1
  147. package/dist/layer.d.ts +0 -6
  148. package/dist/layer.d.ts.map +0 -1
  149. package/dist/layer.js +0 -4
  150. package/dist/layer.js.map +0 -1
  151. package/dist/path-security.d.ts +0 -28
  152. package/dist/path-security.d.ts.map +0 -1
  153. package/dist/path-security.js +0 -63
  154. package/dist/path-security.js.map +0 -1
  155. package/dist/patterns/bulk.d.ts +0 -15
  156. package/dist/patterns/bulk.d.ts.map +0 -1
  157. package/dist/patterns/bulk.js +0 -14
  158. package/dist/patterns/bulk.js.map +0 -1
  159. package/dist/patterns/change.d.ts +0 -10
  160. package/dist/patterns/change.d.ts.map +0 -1
  161. package/dist/patterns/change.js +0 -10
  162. package/dist/patterns/change.js.map +0 -1
  163. package/dist/patterns/date-range.d.ts +0 -10
  164. package/dist/patterns/date-range.d.ts.map +0 -1
  165. package/dist/patterns/date-range.js +0 -10
  166. package/dist/patterns/date-range.js.map +0 -1
  167. package/dist/patterns/index.d.ts +0 -9
  168. package/dist/patterns/index.d.ts.map +0 -1
  169. package/dist/patterns/index.js +0 -9
  170. package/dist/patterns/index.js.map +0 -1
  171. package/dist/patterns/pagination.d.ts +0 -18
  172. package/dist/patterns/pagination.d.ts.map +0 -1
  173. package/dist/patterns/pagination.js +0 -18
  174. package/dist/patterns/pagination.js.map +0 -1
  175. package/dist/patterns/progress.d.ts +0 -11
  176. package/dist/patterns/progress.d.ts.map +0 -1
  177. package/dist/patterns/progress.js +0 -11
  178. package/dist/patterns/progress.js.map +0 -1
  179. package/dist/patterns/sorting.d.ts +0 -13
  180. package/dist/patterns/sorting.d.ts.map +0 -1
  181. package/dist/patterns/sorting.js +0 -10
  182. package/dist/patterns/sorting.js.map +0 -1
  183. package/dist/patterns/status.d.ts +0 -15
  184. package/dist/patterns/status.d.ts.map +0 -1
  185. package/dist/patterns/status.js +0 -9
  186. package/dist/patterns/status.js.map +0 -1
  187. package/dist/patterns/timestamps.d.ts +0 -10
  188. package/dist/patterns/timestamps.d.ts.map +0 -1
  189. package/dist/patterns/timestamps.js +0 -10
  190. package/dist/patterns/timestamps.js.map +0 -1
  191. package/dist/provision-config.d.ts +0 -22
  192. package/dist/provision-config.d.ts.map +0 -1
  193. package/dist/provision-config.js +0 -210
  194. package/dist/provision-config.js.map +0 -1
  195. package/dist/provision.d.ts +0 -71
  196. package/dist/provision.d.ts.map +0 -1
  197. package/dist/provision.js +0 -56
  198. package/dist/provision.js.map +0 -1
  199. package/dist/redaction/index.d.ts +0 -4
  200. package/dist/redaction/index.d.ts.map +0 -1
  201. package/dist/redaction/index.js +0 -3
  202. package/dist/redaction/index.js.map +0 -1
  203. package/dist/redaction/patterns.d.ts +0 -9
  204. package/dist/redaction/patterns.d.ts.map +0 -1
  205. package/dist/redaction/patterns.js +0 -39
  206. package/dist/redaction/patterns.js.map +0 -1
  207. package/dist/redaction/redactor.d.ts +0 -27
  208. package/dist/redaction/redactor.d.ts.map +0 -1
  209. package/dist/redaction/redactor.js +0 -89
  210. package/dist/redaction/redactor.js.map +0 -1
  211. package/dist/resilience.d.ts +0 -34
  212. package/dist/resilience.d.ts.map +0 -1
  213. package/dist/resilience.js +0 -164
  214. package/dist/resilience.js.map +0 -1
  215. package/dist/result.d.ts +0 -57
  216. package/dist/result.d.ts.map +0 -1
  217. package/dist/result.js +0 -156
  218. package/dist/result.js.map +0 -1
  219. package/dist/run.d.ts +0 -27
  220. package/dist/run.d.ts.map +0 -1
  221. package/dist/run.js +0 -34
  222. package/dist/run.js.map +0 -1
  223. package/dist/serialization.d.ts +0 -27
  224. package/dist/serialization.d.ts.map +0 -1
  225. package/dist/serialization.js +0 -153
  226. package/dist/serialization.js.map +0 -1
  227. package/dist/service-config.d.ts +0 -22
  228. package/dist/service-config.d.ts.map +0 -1
  229. package/dist/service-config.js +0 -210
  230. package/dist/service-config.js.map +0 -1
  231. package/dist/service.d.ts +0 -71
  232. package/dist/service.d.ts.map +0 -1
  233. package/dist/service.js +0 -56
  234. package/dist/service.js.map +0 -1
  235. package/dist/signal.d.ts +0 -33
  236. package/dist/signal.d.ts.map +0 -1
  237. package/dist/signal.js +0 -17
  238. package/dist/signal.js.map +0 -1
  239. package/dist/topo-store.d.ts +0 -48
  240. package/dist/topo-store.d.ts.map +0 -1
  241. package/dist/topo-store.js +0 -175
  242. package/dist/topo-store.js.map +0 -1
  243. package/dist/topo.d.ts +0 -25
  244. package/dist/topo.d.ts.map +0 -1
  245. package/dist/topo.js +0 -112
  246. package/dist/topo.js.map +0 -1
  247. package/dist/trail.d.ts +0 -96
  248. package/dist/trail.d.ts.map +0 -1
  249. package/dist/trail.js +0 -20
  250. package/dist/trail.js.map +0 -1
  251. package/dist/type-utils.d.ts +0 -24
  252. package/dist/type-utils.d.ts.map +0 -1
  253. package/dist/type-utils.js +0 -12
  254. package/dist/type-utils.js.map +0 -1
  255. package/dist/types.d.ts +0 -71
  256. package/dist/types.d.ts.map +0 -1
  257. package/dist/types.js +0 -3
  258. package/dist/types.js.map +0 -1
  259. package/dist/validate-established-topo.d.ts +0 -76
  260. package/dist/validate-established-topo.d.ts.map +0 -1
  261. package/dist/validate-established-topo.js +0 -43
  262. package/dist/validate-established-topo.js.map +0 -1
  263. package/dist/validate-topo.d.ts +0 -24
  264. package/dist/validate-topo.d.ts.map +0 -1
  265. package/dist/validate-topo.js +0 -176
  266. package/dist/validate-topo.js.map +0 -1
  267. package/dist/validation.d.ts +0 -27
  268. package/dist/validation.d.ts.map +0 -1
  269. package/dist/validation.js +0 -165
  270. package/dist/validation.js.map +0 -1
  271. package/dist/workspace.d.ts +0 -25
  272. package/dist/workspace.d.ts.map +0 -1
  273. package/dist/workspace.js +0 -57
  274. package/dist/workspace.js.map +0 -1
  275. package/src/__tests__/blob-ref.test.ts +0 -103
  276. package/src/__tests__/branded.test.ts +0 -148
  277. package/src/__tests__/collections.test.ts +0 -126
  278. package/src/__tests__/context.test.ts +0 -77
  279. package/src/__tests__/derive.test.ts +0 -260
  280. package/src/__tests__/errors.test.ts +0 -309
  281. package/src/__tests__/execute.test.ts +0 -525
  282. package/src/__tests__/fetch.test.ts +0 -217
  283. package/src/__tests__/gate.test.ts +0 -125
  284. package/src/__tests__/guards.test.ts +0 -102
  285. package/src/__tests__/path-security.test.ts +0 -114
  286. package/src/__tests__/patterns.test.ts +0 -273
  287. package/src/__tests__/redaction.test.ts +0 -244
  288. package/src/__tests__/resilience.test.ts +0 -246
  289. package/src/__tests__/result.test.ts +0 -155
  290. package/src/__tests__/run.test.ts +0 -181
  291. package/src/__tests__/serialization.test.ts +0 -401
  292. package/src/__tests__/service-config.test.ts +0 -228
  293. package/src/__tests__/service.test.ts +0 -197
  294. package/src/__tests__/signal.test.ts +0 -82
  295. package/src/__tests__/topo-store-read.test.ts +0 -251
  296. package/src/__tests__/topo-store.test.ts +0 -469
  297. package/src/__tests__/topo.test.ts +0 -277
  298. package/src/__tests__/trail-permit.test.ts +0 -60
  299. package/src/__tests__/trail.test.ts +0 -261
  300. package/src/__tests__/trails-db.test.ts +0 -191
  301. package/src/__tests__/type-utils.test.ts +0 -90
  302. package/src/__tests__/validate-topo.test.ts +0 -489
  303. package/src/__tests__/validation.test.ts +0 -336
  304. package/src/__tests__/workspace.test.ts +0 -183
  305. package/src/event.ts +0 -15
  306. package/src/gate.ts +0 -44
  307. package/src/internal/topo-saves.ts +0 -429
  308. package/src/internal/topo-store-read.ts +0 -473
  309. package/src/internal/topo-store.ts +0 -1087
  310. package/src/provision-config.ts +0 -373
  311. package/src/provision.ts +0 -148
  312. package/src/topo-store.ts +0 -301
  313. package/tsconfig.json +0 -9
  314. package/tsconfig.tsbuildinfo +0 -1
@@ -1,571 +0,0 @@
1
- import { deriveCliPath } from '../derive.js';
2
- import { Result } from '../result.js';
3
- import { validateEstablishedTopo } from '../validate-established-topo.js';
4
- import { zodToJsonSchema } from '../validation.js';
5
- import { ensureTopoHistorySchema, insertTopoSaveRecord } from './topo-saves.js';
6
- const canonicalLeaf = (value) => {
7
- switch (typeof value) {
8
- case 'bigint': {
9
- return value.toString();
10
- }
11
- case 'function': {
12
- return `[Function:${value.name || 'anonymous'}]`;
13
- }
14
- case 'symbol': {
15
- return `[Symbol:${value.description ?? ''}]`;
16
- }
17
- case 'undefined': {
18
- return '[Undefined]';
19
- }
20
- default: {
21
- return value;
22
- }
23
- }
24
- };
25
- const canonicalObject = (value, visit) => {
26
- const sorted = {};
27
- for (const key of Object.keys(value).toSorted()) {
28
- const next = value[key];
29
- sorted[key] = next === undefined ? '[Undefined]' : visit(next);
30
- }
31
- return sorted;
32
- };
33
- const canonicalize = (value) => {
34
- if (Array.isArray(value)) {
35
- return value.map(canonicalize);
36
- }
37
- if (value instanceof Date) {
38
- return value.toISOString();
39
- }
40
- if (value instanceof RegExp) {
41
- return value.toString();
42
- }
43
- if (value !== null && typeof value === 'object') {
44
- return canonicalObject(value, canonicalize);
45
- }
46
- return canonicalLeaf(value);
47
- };
48
- /**
49
- * Canonicalize a value for schema definition hashing.
50
- *
51
- * Matches the canonicalization logic used in `@ontrails/schema` so that
52
- * schema hashes are consistent regardless of which code path computes them.
53
- * Unlike the general `canonicalize`, this does not convert `Date`, `RegExp`,
54
- * or `undefined` to sentinel strings — Zod `_zod.def` objects are plain
55
- * JSON-serializable structures and both paths must agree on the same encoding.
56
- */
57
- const schemaCanonical = (value) => {
58
- if (Array.isArray(value)) {
59
- return value.map(schemaCanonical);
60
- }
61
- if (value !== null && typeof value === 'object') {
62
- const sorted = {};
63
- for (const key of Object.keys(value).toSorted()) {
64
- sorted[key] = schemaCanonical(value[key]);
65
- }
66
- return sorted;
67
- }
68
- return value;
69
- };
70
- const stableJson = (value) => JSON.stringify(canonicalize(value));
71
- const hashText = (text) => {
72
- const hasher = new Bun.CryptoHasher('sha256');
73
- hasher.update(text);
74
- return hasher.digest('hex');
75
- };
76
- const hashValue = (value) => hashText(stableJson(value));
77
- const parseJsonRecord = (value) => JSON.parse(value);
78
- const schemaDefinitionHash = (schema) => {
79
- const def = typeof schema === 'object' &&
80
- schema !== null &&
81
- '_zod' in schema &&
82
- typeof schema._zod === 'object' &&
83
- schema._zod !== null &&
84
- 'def' in schema._zod
85
- ? schema._zod.def
86
- : schema;
87
- return hashText(JSON.stringify(schemaCanonical(def)));
88
- };
89
- const sortedJsonSchema = (schema) => {
90
- const json = stableJson(zodToJsonSchema(schema));
91
- return {
92
- json,
93
- value: parseJsonRecord(json),
94
- };
95
- };
96
- const sortKeys = (value) => {
97
- const sorted = {};
98
- for (const key of Object.keys(value).toSorted()) {
99
- sorted[key] = value[key];
100
- }
101
- return sorted;
102
- };
103
- const normalizeTrailRows = (trails, saveId) => trails.map((trail) => ({
104
- description: trail.description ?? null,
105
- exampleCount: trail.examples?.length ?? 0,
106
- hasExamples: (trail.examples?.length ?? 0) > 0 ? 1 : 0,
107
- hasOutput: trail.output === undefined ? 0 : 1,
108
- id: trail.id,
109
- idempotent: trail.idempotent === true ? 1 : 0,
110
- intent: trail.intent,
111
- meta: trail.meta === undefined ? null : stableJson(trail.meta),
112
- saveId,
113
- }));
114
- const normalizeCrossingRows = (trails, saveId) => trails.flatMap((trail) => [...new Set(trail.crosses)].toSorted().map((targetId) => ({
115
- saveId,
116
- sourceId: trail.id,
117
- targetId,
118
- })));
119
- const normalizeTrailProvisionRows = (trails, saveId) => trails.flatMap((trail) => [...new Set(trail.provisions.map((provision) => provision.id))]
120
- .toSorted()
121
- .map((provisionId) => ({
122
- provisionId,
123
- saveId,
124
- trailId: trail.id,
125
- })));
126
- const normalizeProvisionRows = (provisions, saveId) => provisions.map((provision) => ({
127
- hasHealth: provision.health === undefined ? 0 : 1,
128
- hasMock: provision.mock === undefined ? 0 : 1,
129
- id: provision.id,
130
- saveId,
131
- }));
132
- const normalizeSignalRows = (signals, saveId) => signals.map((signal) => ({
133
- description: signal.description ?? null,
134
- id: signal.id,
135
- saveId,
136
- }));
137
- const normalizeTrailSignalRows = (signals, saveId) => signals.flatMap((signal) => [...new Set(signal.from)].toSorted().map((trailId) => ({
138
- saveId,
139
- signalId: signal.id,
140
- trailId,
141
- })));
142
- /**
143
- * Project trailhead rows for stored topo.
144
- *
145
- * Currently records only CLI-derived rows. MCP, HTTP, and other trailhead
146
- * projections are intentionally deferred until the topo-store schema supports
147
- * multi-trailhead representation. The JSON export (`trailhead_map` in
148
- * `topo_exports`) is more faithful for now. See ADR-0015 for the target shape.
149
- */
150
- const normalizeTrailheadRows = (trails, saveId) => trails.map((trail) => ({
151
- derivedName: deriveCliPath(trail.id).join(' '),
152
- method: null,
153
- saveId,
154
- trailId: trail.id,
155
- trailhead: 'cli',
156
- }));
157
- const buildExampleId = (saveId, trailId, ordinal) => `${saveId}:${trailId}:${ordinal.toString().padStart(4, '0')}`;
158
- const normalizeExampleRows = (trails, saveId) => trails.flatMap((trail) => (trail.examples ?? []).map((example, index) => ({
159
- description: example.description ?? null,
160
- error: example.error ?? null,
161
- expected: example.expected === undefined ? null : stableJson(example.expected),
162
- id: buildExampleId(saveId, trail.id, index),
163
- input: stableJson(example.input),
164
- name: example.name,
165
- ordinal: index,
166
- saveId,
167
- trailId: trail.id,
168
- })));
169
- const normalizeTopoProjection = (topo, saveId) => {
170
- const trails = topo.list().toSorted((a, b) => a.id.localeCompare(b.id));
171
- const provisions = topo
172
- .listProvisions()
173
- .toSorted((a, b) => a.id.localeCompare(b.id));
174
- const signals = topo
175
- .listSignals()
176
- .toSorted((a, b) => a.id.localeCompare(b.id));
177
- return {
178
- crossings: normalizeCrossingRows(trails, saveId),
179
- examples: normalizeExampleRows(trails, saveId),
180
- provisions: normalizeProvisionRows(provisions, saveId),
181
- signals: normalizeSignalRows(signals, saveId),
182
- trailProvisions: normalizeTrailProvisionRows(trails, saveId),
183
- trailSignals: normalizeTrailSignalRows(signals, saveId),
184
- trailheads: normalizeTrailheadRows(trails, saveId),
185
- trails: normalizeTrailRows(trails, saveId),
186
- };
187
- };
188
- /**
189
- * Look up a cached JSON schema by content hash.
190
- *
191
- * The query matches on `zod_hash` without filtering by `save_id` because the
192
- * cache is intentionally cross-save: if the Zod schema definition has not
193
- * changed (same hash), the serialized JSON Schema is reused regardless of
194
- * which save produced it. This is safe as long as `zodToJsonSchema` is
195
- * deterministic for a given `_def` hash — the `schemaDefinitionHash` pipeline
196
- * guarantees that structurally identical schemas produce the same hash.
197
- */
198
- const readCachedJsonSchema = (db, ownerId, ownerKind, schemaKind, zodHash) => {
199
- const row = db
200
- .query(`SELECT json_schema
201
- FROM topo_schemas
202
- WHERE owner_id = ?
203
- AND owner_kind = ?
204
- AND schema_kind = ?
205
- AND zod_hash = ?
206
- LIMIT 1`)
207
- .get(ownerId, ownerKind, schemaKind, zodHash);
208
- return row?.json_schema;
209
- };
210
- const resolveSchemaRow = (db, ownerId, ownerKind, saveId, schemaKind, schema) => {
211
- const zodHash = schemaDefinitionHash(schema);
212
- const cachedJson = readCachedJsonSchema(db, ownerId, ownerKind, schemaKind, zodHash);
213
- if (cachedJson !== undefined) {
214
- return {
215
- row: {
216
- jsonSchema: cachedJson,
217
- ownerId,
218
- ownerKind,
219
- saveId,
220
- schemaKind,
221
- zodHash,
222
- },
223
- value: parseJsonRecord(cachedJson),
224
- };
225
- }
226
- const generated = sortedJsonSchema(schema);
227
- return {
228
- row: {
229
- jsonSchema: generated.json,
230
- ownerId,
231
- ownerKind,
232
- saveId,
233
- schemaKind,
234
- zodHash,
235
- },
236
- value: generated.value,
237
- };
238
- };
239
- const materializeTrailSchema = (db, saveId, trail) => {
240
- const inputSchema = resolveSchemaRow(db, trail.id, 'trail', saveId, 'input', trail.input);
241
- if (trail.output === undefined) {
242
- return {
243
- rows: [inputSchema.row],
244
- value: {
245
- input: inputSchema.value,
246
- },
247
- };
248
- }
249
- const outputSchema = resolveSchemaRow(db, trail.id, 'trail', saveId, 'output', trail.output);
250
- return {
251
- rows: [inputSchema.row, outputSchema.row],
252
- value: {
253
- input: inputSchema.value,
254
- output: outputSchema.value,
255
- },
256
- };
257
- };
258
- const materializeTrailSchemas = (db, saveId, trails) => {
259
- const rows = [];
260
- const trailSchemas = new Map();
261
- for (const trail of trails) {
262
- const materialized = materializeTrailSchema(db, saveId, trail);
263
- rows.push(...materialized.rows);
264
- trailSchemas.set(trail.id, materialized.value);
265
- }
266
- return {
267
- rows,
268
- trailSchemas,
269
- };
270
- };
271
- const materializeSignalSchemas = (db, saveId, signals) => {
272
- const rows = [];
273
- const signalPayloads = new Map();
274
- for (const signal of signals) {
275
- const payloadSchema = resolveSchemaRow(db, signal.id, 'signal', saveId, 'payload', signal.payload);
276
- rows.push(payloadSchema.row);
277
- signalPayloads.set(signal.id, payloadSchema.value);
278
- }
279
- return {
280
- rows,
281
- signalPayloads,
282
- };
283
- };
284
- const materializeSchemas = (db, saveId, signals, trails) => {
285
- const trailMaterial = materializeTrailSchemas(db, saveId, trails);
286
- const signalMaterial = materializeSignalSchemas(db, saveId, signals);
287
- return {
288
- rows: [...trailMaterial.rows, ...signalMaterial.rows],
289
- signalPayloads: signalMaterial.signalPayloads,
290
- trailSchemas: trailMaterial.trailSchemas,
291
- };
292
- };
293
- const extractTrailheads = (raw) => Array.isArray(raw['trailheads'])
294
- ? raw['trailheads'].toSorted()
295
- : [];
296
- const addSafetyMarkers = (entry, trail) => {
297
- if (trail.intent !== 'write') {
298
- entry['intent'] = trail.intent;
299
- }
300
- if (trail.idempotent === true) {
301
- entry['idempotent'] = true;
302
- }
303
- };
304
- const addExtendedMetadata = (entry, raw, trail) => {
305
- if (raw['deprecated'] === true) {
306
- entry['deprecated'] = true;
307
- }
308
- if (typeof raw['replacedBy'] === 'string') {
309
- entry['replacedBy'] = raw['replacedBy'];
310
- }
311
- if (trail.detours !== undefined) {
312
- const detours = {};
313
- for (const key of Object.keys(trail.detours).toSorted()) {
314
- detours[key] = (trail.detours[key] ?? []).toSorted();
315
- }
316
- entry['detours'] = detours;
317
- }
318
- };
319
- const addTrailRelations = (entry, trail) => {
320
- if (trail.crosses.length > 0) {
321
- entry['crosses'] = trail.crosses.toSorted();
322
- }
323
- if (trail.provisions.length > 0) {
324
- entry['provisions'] = trail.provisions
325
- .map((provision) => provision.id)
326
- .toSorted();
327
- }
328
- };
329
- const buildTrailEntryBase = (trail, trailSchema) => {
330
- const raw = trail;
331
- const entry = {
332
- cli: { path: deriveCliPath(trail.id) },
333
- exampleCount: trail.examples?.length ?? 0,
334
- id: trail.id,
335
- input: trailSchema.input,
336
- kind: trail.kind,
337
- trailheads: extractTrailheads(raw),
338
- };
339
- if (trailSchema.output !== undefined) {
340
- entry['output'] = trailSchema.output;
341
- }
342
- if (trail.description !== undefined) {
343
- entry['description'] = trail.description;
344
- }
345
- return {
346
- entry,
347
- raw,
348
- };
349
- };
350
- const trailToEntryRecord = (trail, trailSchema) => {
351
- const { entry, raw } = buildTrailEntryBase(trail, trailSchema);
352
- addSafetyMarkers(entry, trail);
353
- addExtendedMetadata(entry, raw, trail);
354
- addTrailRelations(entry, trail);
355
- return sortKeys(entry);
356
- };
357
- const signalToEntryRecord = (signal, payloadSchema) => {
358
- const raw = signal;
359
- const entry = {
360
- exampleCount: 0,
361
- id: signal.id,
362
- input: payloadSchema,
363
- kind: 'signal',
364
- trailheads: extractTrailheads(raw),
365
- };
366
- if (signal.description !== undefined) {
367
- entry['description'] = signal.description;
368
- }
369
- if (raw['deprecated'] === true) {
370
- entry['deprecated'] = true;
371
- }
372
- if (typeof raw['replacedBy'] === 'string') {
373
- entry['replacedBy'] = raw['replacedBy'];
374
- }
375
- return sortKeys(entry);
376
- };
377
- const provisionToEntryRecord = (provision) => {
378
- const entry = {
379
- exampleCount: 0,
380
- id: provision.id,
381
- kind: 'provision',
382
- trailheads: [],
383
- };
384
- if (provision.description !== undefined) {
385
- entry['description'] = provision.description;
386
- }
387
- if (provision.health !== undefined) {
388
- entry['healthcheck'] = true;
389
- }
390
- return sortKeys(entry);
391
- };
392
- const requireTrailSchema = (trailSchemas, trailId) => {
393
- const schema = trailSchemas.get(trailId);
394
- if (schema === undefined) {
395
- throw new Error(`Missing cached trail schema for "${trailId}"`);
396
- }
397
- return schema;
398
- };
399
- const requireSignalPayload = (signalPayloads, signalId) => {
400
- const payload = signalPayloads.get(signalId);
401
- if (payload === undefined) {
402
- throw new Error(`Missing cached signal schema for "${signalId}"`);
403
- }
404
- return payload;
405
- };
406
- const buildTrailheadMap = (generatedAt, provisions, signalPayloads, signals, trailSchemas, trails) => {
407
- const entries = [
408
- ...trails.map((trail) => trailToEntryRecord(trail, requireTrailSchema(trailSchemas, trail.id))),
409
- ...signals.map((signal) => signalToEntryRecord(signal, requireSignalPayload(signalPayloads, signal.id))),
410
- ...provisions.map((provision) => provisionToEntryRecord(provision)),
411
- ].toSorted((a, b) => a.id.localeCompare(b.id));
412
- return {
413
- entries,
414
- generatedAt,
415
- version: '1.0',
416
- };
417
- };
418
- const hashTrailheadMapRecord = (trailheadMap) => {
419
- const { generatedAt: _unused, ...rest } = trailheadMap;
420
- return hashValue(rest);
421
- };
422
- const entryPayload = (entry) => {
423
- const { id: _unusedId, kind: _unusedKind, ...rest } = entry;
424
- return sortKeys(rest);
425
- };
426
- const entriesForKind = (entries, kind) => Object.fromEntries(entries
427
- .filter((entry) => entry.kind === kind)
428
- .map((entry) => [entry.id, entryPayload(entry)]));
429
- const buildSerializedLock = (hash, topo, trailheadMap) => sortKeys({
430
- apps: sortKeys({
431
- [topo.name]: sortKeys({
432
- provisions: entriesForKind(trailheadMap.entries, 'provision'),
433
- signals: entriesForKind(trailheadMap.entries, 'signal'),
434
- trails: entriesForKind(trailheadMap.entries, 'trail'),
435
- }),
436
- }),
437
- generatedAt: trailheadMap.generatedAt,
438
- hash,
439
- version: 1,
440
- });
441
- const buildStoredTopoExport = (db, save, topo) => {
442
- const trails = topo.list().toSorted((a, b) => a.id.localeCompare(b.id));
443
- const provisions = topo
444
- .listProvisions()
445
- .toSorted((a, b) => a.id.localeCompare(b.id));
446
- const signals = topo
447
- .listSignals()
448
- .toSorted((a, b) => a.id.localeCompare(b.id));
449
- const schemas = materializeSchemas(db, save.id, signals, trails);
450
- const trailheadMap = buildTrailheadMap(save.createdAt, provisions, schemas.signalPayloads, signals, schemas.trailSchemas, trails);
451
- const trailheadHash = hashTrailheadMapRecord(trailheadMap);
452
- const serializedLock = `${JSON.stringify(buildSerializedLock(trailheadHash, topo, trailheadMap), null, 2)}\n`;
453
- return {
454
- exportRow: {
455
- saveId: save.id,
456
- serializedLock,
457
- trailheadHash,
458
- trailheadMap: `${JSON.stringify(trailheadMap, null, 2)}\n`,
459
- },
460
- schemaRows: schemas.rows,
461
- };
462
- };
463
- const insertRows = (db, rows, statement, toParams) => {
464
- for (const row of rows) {
465
- db.run(statement, toParams(row));
466
- }
467
- };
468
- const insertProjectedRows = (db, projection) => {
469
- insertRows(db, projection.trails, `INSERT INTO topo_trails (
470
- id, intent, idempotent, has_output, has_examples, example_count, description, meta, save_id
471
- ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)`, (row) => [
472
- row.id,
473
- row.intent,
474
- row.idempotent,
475
- row.hasOutput,
476
- row.hasExamples,
477
- row.exampleCount,
478
- row.description,
479
- row.meta,
480
- row.saveId,
481
- ]);
482
- insertRows(db, projection.crossings, 'INSERT INTO topo_crossings (source_id, target_id, save_id) VALUES (?, ?, ?)', (row) => [row.sourceId, row.targetId, row.saveId]);
483
- insertRows(db, projection.trailProvisions, `INSERT INTO topo_trail_provisions (trail_id, provision_id, save_id)
484
- VALUES (?, ?, ?)`, (row) => [row.trailId, row.provisionId, row.saveId]);
485
- insertRows(db, projection.provisions, `INSERT INTO topo_provisions (id, has_mock, has_health, save_id)
486
- VALUES (?, ?, ?, ?)`, (row) => [row.id, row.hasMock, row.hasHealth, row.saveId]);
487
- insertRows(db, projection.signals, 'INSERT INTO topo_signals (id, description, save_id) VALUES (?, ?, ?)', (row) => [row.id, row.description, row.saveId]);
488
- insertRows(db, projection.trailSignals, `INSERT INTO topo_trail_signals (trail_id, signal_id, save_id)
489
- VALUES (?, ?, ?)`, (row) => [row.trailId, row.signalId, row.saveId]);
490
- insertRows(db, projection.trailheads, `INSERT INTO topo_trailheads (trail_id, trailhead, derived_name, method, save_id)
491
- VALUES (?, ?, ?, ?, ?)`, (row) => [
492
- row.trailId,
493
- row.trailhead,
494
- row.derivedName,
495
- row.method,
496
- row.saveId,
497
- ]);
498
- insertRows(db, projection.examples, `INSERT INTO topo_examples (
499
- id, trail_id, ordinal, name, description, input, expected, error, save_id
500
- ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)`, (row) => [
501
- row.id,
502
- row.trailId,
503
- row.ordinal,
504
- row.name,
505
- row.description,
506
- row.input,
507
- row.expected,
508
- row.error,
509
- row.saveId,
510
- ]);
511
- };
512
- const insertSchemaRows = (db, rows) => {
513
- insertRows(db, rows, `INSERT INTO topo_schemas (
514
- owner_id, owner_kind, schema_kind, zod_hash, json_schema, save_id
515
- ) VALUES (?, ?, ?, ?, ?, ?)`, (row) => [
516
- row.ownerId,
517
- row.ownerKind,
518
- row.schemaKind,
519
- row.zodHash,
520
- row.jsonSchema,
521
- row.saveId,
522
- ]);
523
- };
524
- const insertStoredExport = (db, exportRow) => {
525
- db.run(`INSERT INTO topo_exports (
526
- save_id, trailhead_map, trailhead_hash, serialized_lock
527
- ) VALUES (?, ?, ?, ?)`, [
528
- exportRow.saveId,
529
- exportRow.trailheadMap,
530
- exportRow.trailheadHash,
531
- exportRow.serializedLock,
532
- ]);
533
- };
534
- export const getStoredTopoExport = (db, saveId) => {
535
- const row = db
536
- .query(`SELECT trailhead_map, trailhead_hash, serialized_lock
537
- FROM topo_exports
538
- WHERE save_id = ?`)
539
- .get(saveId);
540
- if (row === undefined || row === null) {
541
- return undefined;
542
- }
543
- return {
544
- lockContent: row.serialized_lock,
545
- trailheadHash: row.trailhead_hash,
546
- trailheadMapJson: row.trailhead_map,
547
- };
548
- };
549
- export const persistEstablishedTopoSave = (db, topo, input) => {
550
- const validated = validateEstablishedTopo(topo);
551
- if (validated.isErr()) {
552
- return Result.err(validated.error);
553
- }
554
- ensureTopoHistorySchema(db);
555
- const saveInput = {
556
- ...input,
557
- provisionCount: input?.provisionCount ?? topo.provisions.size,
558
- signalCount: input?.signalCount ?? topo.signals.size,
559
- trailCount: input?.trailCount ?? topo.trails.size,
560
- };
561
- const save = db.transaction(() => {
562
- const record = insertTopoSaveRecord(db, saveInput);
563
- const artifacts = buildStoredTopoExport(db, record, topo);
564
- insertProjectedRows(db, normalizeTopoProjection(topo, record.id));
565
- insertSchemaRows(db, artifacts.schemaRows);
566
- insertStoredExport(db, artifacts.exportRow);
567
- return record;
568
- })();
569
- return Result.ok(save);
570
- };
571
- //# sourceMappingURL=topo-store.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"topo-store.js","sourceRoot":"","sources":["../../src/internal/topo-store.ts"],"names":[],"mappings":"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"}
@@ -1,16 +0,0 @@
1
- import { Database } from 'bun:sqlite';
2
- export interface TrailsDbLocationOptions {
3
- readonly path?: string;
4
- readonly rootDir?: string;
5
- }
6
- export interface EnsureSubsystemSchemaOptions {
7
- readonly migrate: (currentVersion: number) => void;
8
- readonly subsystem: string;
9
- readonly version: number;
10
- }
11
- export declare const resolveTrailsDir: (options?: TrailsDbLocationOptions) => string;
12
- export declare const resolveTrailsDbPath: (options?: TrailsDbLocationOptions) => string;
13
- export declare const openWriteTrailsDb: (options?: TrailsDbLocationOptions) => Database;
14
- export declare const openReadTrailsDb: (options?: TrailsDbLocationOptions) => Database;
15
- export declare const ensureSubsystemSchema: (db: Database, options: EnsureSubsystemSchemaOptions) => void;
16
- //# sourceMappingURL=trails-db.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"trails-db.d.ts","sourceRoot":"","sources":["../../src/internal/trails-db.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AA2BtC,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,4BAA4B;IAC3C,QAAQ,CAAC,OAAO,EAAE,CAAC,cAAc,EAAE,MAAM,KAAK,IAAI,CAAC;IACnD,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AASD,eAAO,MAAM,gBAAgB,GAAI,UAAU,uBAAuB,KAAG,MACjB,CAAC;AAErD,eAAO,MAAM,mBAAmB,GAC9B,UAAU,uBAAuB,KAChC,MAGkD,CAAC;AAsFtD,eAAO,MAAM,iBAAiB,GAC5B,UAAU,uBAAuB,KAChC,QAgBF,CAAC;AAEF,eAAO,MAAM,gBAAgB,GAC3B,UAAU,uBAAuB,KAChC,QAUF,CAAC;AAEF,eAAO,MAAM,qBAAqB,GAChC,IAAI,QAAQ,EACZ,SAAS,4BAA4B,KACpC,IAYF,CAAC"}