@ontrails/core 1.0.0-beta.15 → 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 (348) hide show
  1. package/CHANGELOG.md +63 -0
  2. package/README.md +61 -16
  3. package/package.json +9 -8
  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/context.ts +4 -0
  10. package/src/{internal/cross-batch.ts → cross-batch.ts} +3 -11
  11. package/src/detours.ts +8 -0
  12. package/src/draft.ts +4 -0
  13. package/src/error-projection.ts +51 -0
  14. package/src/errors.ts +192 -39
  15. package/src/execute.ts +443 -44
  16. package/src/fire.ts +965 -91
  17. package/src/index.ts +285 -38
  18. package/src/layer-projection.ts +192 -0
  19. package/src/layer.ts +32 -1
  20. package/src/observe.ts +361 -0
  21. package/src/permits.ts +12 -0
  22. package/src/redaction/patterns.ts +6 -3
  23. package/src/resilience.ts +8 -8
  24. package/src/resource-config.ts +477 -44
  25. package/src/resource.ts +21 -1
  26. package/src/result.ts +18 -0
  27. package/src/run.ts +2 -2
  28. package/src/schedule-runtime.ts +689 -0
  29. package/src/schedule.ts +324 -0
  30. package/src/serialization.ts +90 -57
  31. package/src/signal-diagnostics.ts +633 -0
  32. package/src/{internal/signal-ref.ts → signal-ref.ts} +1 -1
  33. package/src/signal.ts +37 -0
  34. package/src/store/accessor-protocol.ts +5 -5
  35. package/src/structured-examples.ts +245 -0
  36. package/src/surface-derivation.ts +91 -0
  37. package/src/surface-filter.ts +7 -13
  38. package/src/topo.ts +386 -6
  39. package/src/tracing.ts +345 -0
  40. package/src/trail.ts +168 -22
  41. package/src/trails/derive-trail.ts +1 -1
  42. package/src/trails/ingest.ts +7 -15
  43. package/src/{internal/trails-db.ts → trails-db.ts} +42 -21
  44. package/src/transport-error-map.ts +146 -28
  45. package/src/types.ts +82 -28
  46. package/src/validate-established-topo.ts +6 -0
  47. package/src/validate-topo.ts +212 -5
  48. package/src/validation.ts +58 -1
  49. package/src/webhook.ts +276 -0
  50. package/src/{internal/zod-wrappers.ts → zod-wrappers.ts} +0 -6
  51. package/.turbo/turbo-build.log +0 -1
  52. package/.turbo/turbo-lint.log +0 -3
  53. package/.turbo/turbo-typecheck.log +0 -1
  54. package/dist/blob-ref.d.ts +0 -20
  55. package/dist/blob-ref.d.ts.map +0 -1
  56. package/dist/blob-ref.js +0 -22
  57. package/dist/blob-ref.js.map +0 -1
  58. package/dist/branded.d.ts +0 -36
  59. package/dist/branded.d.ts.map +0 -1
  60. package/dist/branded.js +0 -89
  61. package/dist/branded.js.map +0 -1
  62. package/dist/collections.d.ts +0 -31
  63. package/dist/collections.d.ts.map +0 -1
  64. package/dist/collections.js +0 -60
  65. package/dist/collections.js.map +0 -1
  66. package/dist/context.d.ts +0 -22
  67. package/dist/context.d.ts.map +0 -1
  68. package/dist/context.js +0 -37
  69. package/dist/context.js.map +0 -1
  70. package/dist/contour.d.ts +0 -81
  71. package/dist/contour.d.ts.map +0 -1
  72. package/dist/contour.js +0 -176
  73. package/dist/contour.js.map +0 -1
  74. package/dist/cross-schema.d.ts +0 -18
  75. package/dist/cross-schema.d.ts.map +0 -1
  76. package/dist/cross-schema.js +0 -29
  77. package/dist/cross-schema.js.map +0 -1
  78. package/dist/derive.d.ts +0 -44
  79. package/dist/derive.d.ts.map +0 -1
  80. package/dist/derive.js +0 -149
  81. package/dist/derive.js.map +0 -1
  82. package/dist/draft.d.ts +0 -28
  83. package/dist/draft.d.ts.map +0 -1
  84. package/dist/draft.js +0 -157
  85. package/dist/draft.js.map +0 -1
  86. package/dist/errors.d.ts +0 -141
  87. package/dist/errors.d.ts.map +0 -1
  88. package/dist/errors.js +0 -185
  89. package/dist/errors.js.map +0 -1
  90. package/dist/execute.d.ts +0 -52
  91. package/dist/execute.d.ts.map +0 -1
  92. package/dist/execute.js +0 -511
  93. package/dist/execute.js.map +0 -1
  94. package/dist/fetch.d.ts +0 -15
  95. package/dist/fetch.d.ts.map +0 -1
  96. package/dist/fetch.js +0 -102
  97. package/dist/fetch.js.map +0 -1
  98. package/dist/fire.d.ts +0 -43
  99. package/dist/fire.d.ts.map +0 -1
  100. package/dist/fire.js +0 -185
  101. package/dist/fire.js.map +0 -1
  102. package/dist/guards.d.ts +0 -17
  103. package/dist/guards.d.ts.map +0 -1
  104. package/dist/guards.js +0 -25
  105. package/dist/guards.js.map +0 -1
  106. package/dist/index.d.ts +0 -59
  107. package/dist/index.d.ts.map +0 -1
  108. package/dist/index.js +0 -61
  109. package/dist/index.js.map +0 -1
  110. package/dist/internal/cross-batch.d.ts +0 -44
  111. package/dist/internal/cross-batch.d.ts.map +0 -1
  112. package/dist/internal/cross-batch.js +0 -58
  113. package/dist/internal/cross-batch.js.map +0 -1
  114. package/dist/internal/fork-ctx.d.ts +0 -41
  115. package/dist/internal/fork-ctx.d.ts.map +0 -1
  116. package/dist/internal/fork-ctx.js +0 -47
  117. package/dist/internal/fork-ctx.js.map +0 -1
  118. package/dist/internal/signal-ref.d.ts +0 -15
  119. package/dist/internal/signal-ref.d.ts.map +0 -1
  120. package/dist/internal/signal-ref.js +0 -41
  121. package/dist/internal/signal-ref.js.map +0 -1
  122. package/dist/internal/topo-saves.d.ts +0 -53
  123. package/dist/internal/topo-saves.d.ts.map +0 -1
  124. package/dist/internal/topo-saves.js +0 -449
  125. package/dist/internal/topo-saves.js.map +0 -1
  126. package/dist/internal/topo-snapshots.d.ts +0 -57
  127. package/dist/internal/topo-snapshots.d.ts.map +0 -1
  128. package/dist/internal/topo-snapshots.js +0 -372
  129. package/dist/internal/topo-snapshots.js.map +0 -1
  130. package/dist/internal/topo-store-read.d.ts +0 -70
  131. package/dist/internal/topo-store-read.d.ts.map +0 -1
  132. package/dist/internal/topo-store-read.js +0 -221
  133. package/dist/internal/topo-store-read.js.map +0 -1
  134. package/dist/internal/topo-store.d.ts +0 -26
  135. package/dist/internal/topo-store.d.ts.map +0 -1
  136. package/dist/internal/topo-store.js +0 -621
  137. package/dist/internal/topo-store.js.map +0 -1
  138. package/dist/internal/tracing.d.ts +0 -98
  139. package/dist/internal/tracing.d.ts.map +0 -1
  140. package/dist/internal/tracing.js +0 -102
  141. package/dist/internal/tracing.js.map +0 -1
  142. package/dist/internal/trails-db.d.ts +0 -16
  143. package/dist/internal/trails-db.d.ts.map +0 -1
  144. package/dist/internal/trails-db.js +0 -118
  145. package/dist/internal/trails-db.js.map +0 -1
  146. package/dist/internal/zod-wrappers.d.ts +0 -40
  147. package/dist/internal/zod-wrappers.d.ts.map +0 -1
  148. package/dist/internal/zod-wrappers.js +0 -59
  149. package/dist/internal/zod-wrappers.js.map +0 -1
  150. package/dist/layer.d.ts +0 -23
  151. package/dist/layer.d.ts.map +0 -1
  152. package/dist/layer.js +0 -21
  153. package/dist/layer.js.map +0 -1
  154. package/dist/path-security.d.ts +0 -28
  155. package/dist/path-security.d.ts.map +0 -1
  156. package/dist/path-security.js +0 -63
  157. package/dist/path-security.js.map +0 -1
  158. package/dist/patterns/bulk.d.ts +0 -15
  159. package/dist/patterns/bulk.d.ts.map +0 -1
  160. package/dist/patterns/bulk.js +0 -14
  161. package/dist/patterns/bulk.js.map +0 -1
  162. package/dist/patterns/change.d.ts +0 -10
  163. package/dist/patterns/change.d.ts.map +0 -1
  164. package/dist/patterns/change.js +0 -10
  165. package/dist/patterns/change.js.map +0 -1
  166. package/dist/patterns/date-range.d.ts +0 -10
  167. package/dist/patterns/date-range.d.ts.map +0 -1
  168. package/dist/patterns/date-range.js +0 -10
  169. package/dist/patterns/date-range.js.map +0 -1
  170. package/dist/patterns/index.d.ts +0 -9
  171. package/dist/patterns/index.d.ts.map +0 -1
  172. package/dist/patterns/index.js +0 -9
  173. package/dist/patterns/index.js.map +0 -1
  174. package/dist/patterns/pagination.d.ts +0 -18
  175. package/dist/patterns/pagination.d.ts.map +0 -1
  176. package/dist/patterns/pagination.js +0 -18
  177. package/dist/patterns/pagination.js.map +0 -1
  178. package/dist/patterns/progress.d.ts +0 -11
  179. package/dist/patterns/progress.d.ts.map +0 -1
  180. package/dist/patterns/progress.js +0 -11
  181. package/dist/patterns/progress.js.map +0 -1
  182. package/dist/patterns/sorting.d.ts +0 -13
  183. package/dist/patterns/sorting.d.ts.map +0 -1
  184. package/dist/patterns/sorting.js +0 -10
  185. package/dist/patterns/sorting.js.map +0 -1
  186. package/dist/patterns/status.d.ts +0 -15
  187. package/dist/patterns/status.d.ts.map +0 -1
  188. package/dist/patterns/status.js +0 -9
  189. package/dist/patterns/status.js.map +0 -1
  190. package/dist/patterns/timestamps.d.ts +0 -10
  191. package/dist/patterns/timestamps.d.ts.map +0 -1
  192. package/dist/patterns/timestamps.js +0 -10
  193. package/dist/patterns/timestamps.js.map +0 -1
  194. package/dist/redaction/index.d.ts +0 -4
  195. package/dist/redaction/index.d.ts.map +0 -1
  196. package/dist/redaction/index.js +0 -3
  197. package/dist/redaction/index.js.map +0 -1
  198. package/dist/redaction/patterns.d.ts +0 -9
  199. package/dist/redaction/patterns.d.ts.map +0 -1
  200. package/dist/redaction/patterns.js +0 -39
  201. package/dist/redaction/patterns.js.map +0 -1
  202. package/dist/redaction/redactor.d.ts +0 -27
  203. package/dist/redaction/redactor.d.ts.map +0 -1
  204. package/dist/redaction/redactor.js +0 -89
  205. package/dist/redaction/redactor.js.map +0 -1
  206. package/dist/resilience.d.ts +0 -34
  207. package/dist/resilience.d.ts.map +0 -1
  208. package/dist/resilience.js +0 -164
  209. package/dist/resilience.js.map +0 -1
  210. package/dist/resource-config.d.ts +0 -22
  211. package/dist/resource-config.d.ts.map +0 -1
  212. package/dist/resource-config.js +0 -210
  213. package/dist/resource-config.js.map +0 -1
  214. package/dist/resource.d.ts +0 -74
  215. package/dist/resource.d.ts.map +0 -1
  216. package/dist/resource.js +0 -61
  217. package/dist/resource.js.map +0 -1
  218. package/dist/result.d.ts +0 -57
  219. package/dist/result.d.ts.map +0 -1
  220. package/dist/result.js +0 -156
  221. package/dist/result.js.map +0 -1
  222. package/dist/run.d.ts +0 -28
  223. package/dist/run.d.ts.map +0 -1
  224. package/dist/run.js +0 -35
  225. package/dist/run.js.map +0 -1
  226. package/dist/serialization.d.ts +0 -27
  227. package/dist/serialization.d.ts.map +0 -1
  228. package/dist/serialization.js +0 -154
  229. package/dist/serialization.js.map +0 -1
  230. package/dist/signal.d.ts +0 -33
  231. package/dist/signal.d.ts.map +0 -1
  232. package/dist/signal.js +0 -17
  233. package/dist/signal.js.map +0 -1
  234. package/dist/store/accessor-protocol.d.ts +0 -51
  235. package/dist/store/accessor-protocol.d.ts.map +0 -1
  236. package/dist/store/accessor-protocol.js +0 -2
  237. package/dist/store/accessor-protocol.js.map +0 -1
  238. package/dist/store/index.d.ts +0 -2
  239. package/dist/store/index.d.ts.map +0 -1
  240. package/dist/store/index.js +0 -2
  241. package/dist/store/index.js.map +0 -1
  242. package/dist/surface-filter.d.ts +0 -13
  243. package/dist/surface-filter.d.ts.map +0 -1
  244. package/dist/surface-filter.js +0 -76
  245. package/dist/surface-filter.js.map +0 -1
  246. package/dist/topo-store.d.ts +0 -62
  247. package/dist/topo-store.d.ts.map +0 -1
  248. package/dist/topo-store.js +0 -319
  249. package/dist/topo-store.js.map +0 -1
  250. package/dist/topo.d.ts +0 -39
  251. package/dist/topo.d.ts.map +0 -1
  252. package/dist/topo.js +0 -241
  253. package/dist/topo.js.map +0 -1
  254. package/dist/trail.d.ts +0 -163
  255. package/dist/trail.d.ts.map +0 -1
  256. package/dist/trail.js +0 -75
  257. package/dist/trail.js.map +0 -1
  258. package/dist/trails/derive-trail.d.ts +0 -66
  259. package/dist/trails/derive-trail.d.ts.map +0 -1
  260. package/dist/trails/derive-trail.js +0 -378
  261. package/dist/trails/derive-trail.js.map +0 -1
  262. package/dist/trails/index.d.ts +0 -5
  263. package/dist/trails/index.d.ts.map +0 -1
  264. package/dist/trails/index.js +0 -3
  265. package/dist/trails/index.js.map +0 -1
  266. package/dist/trails/ingest.d.ts +0 -24
  267. package/dist/trails/ingest.d.ts.map +0 -1
  268. package/dist/trails/ingest.js +0 -63
  269. package/dist/trails/ingest.js.map +0 -1
  270. package/dist/transport-error-map.d.ts +0 -106
  271. package/dist/transport-error-map.d.ts.map +0 -1
  272. package/dist/transport-error-map.js +0 -24
  273. package/dist/transport-error-map.js.map +0 -1
  274. package/dist/type-checks.test-d.d.ts +0 -71
  275. package/dist/type-checks.test-d.d.ts.map +0 -1
  276. package/dist/type-checks.test-d.js +0 -12
  277. package/dist/type-checks.test-d.js.map +0 -1
  278. package/dist/type-utils.d.ts +0 -33
  279. package/dist/type-utils.d.ts.map +0 -1
  280. package/dist/type-utils.js +0 -12
  281. package/dist/type-utils.js.map +0 -1
  282. package/dist/types.d.ts +0 -177
  283. package/dist/types.d.ts.map +0 -1
  284. package/dist/types.js +0 -3
  285. package/dist/types.js.map +0 -1
  286. package/dist/validate-established-topo.d.ts +0 -76
  287. package/dist/validate-established-topo.d.ts.map +0 -1
  288. package/dist/validate-established-topo.js +0 -43
  289. package/dist/validate-established-topo.js.map +0 -1
  290. package/dist/validate-topo.d.ts +0 -24
  291. package/dist/validate-topo.d.ts.map +0 -1
  292. package/dist/validate-topo.js +0 -193
  293. package/dist/validate-topo.js.map +0 -1
  294. package/dist/validation.d.ts +0 -27
  295. package/dist/validation.d.ts.map +0 -1
  296. package/dist/validation.js +0 -165
  297. package/dist/validation.js.map +0 -1
  298. package/dist/workspace.d.ts +0 -25
  299. package/dist/workspace.d.ts.map +0 -1
  300. package/dist/workspace.js +0 -57
  301. package/dist/workspace.js.map +0 -1
  302. package/src/__tests__/blob-ref.test.ts +0 -103
  303. package/src/__tests__/branded.test.ts +0 -148
  304. package/src/__tests__/collections.test.ts +0 -126
  305. package/src/__tests__/context.test.ts +0 -77
  306. package/src/__tests__/contour.test.ts +0 -263
  307. package/src/__tests__/derive-trail.test.ts +0 -668
  308. package/src/__tests__/derive.test.ts +0 -260
  309. package/src/__tests__/errors.test.ts +0 -427
  310. package/src/__tests__/execute.test.ts +0 -1563
  311. package/src/__tests__/fetch.test.ts +0 -217
  312. package/src/__tests__/fire.test.ts +0 -1056
  313. package/src/__tests__/fork-ctx.test.ts +0 -83
  314. package/src/__tests__/guards.test.ts +0 -102
  315. package/src/__tests__/ingest.test.ts +0 -191
  316. package/src/__tests__/layer.test.ts +0 -125
  317. package/src/__tests__/path-security.test.ts +0 -114
  318. package/src/__tests__/patterns.test.ts +0 -273
  319. package/src/__tests__/redaction.test.ts +0 -244
  320. package/src/__tests__/resilience.test.ts +0 -246
  321. package/src/__tests__/resource.test.ts +0 -204
  322. package/src/__tests__/result.test.ts +0 -155
  323. package/src/__tests__/run.test.ts +0 -181
  324. package/src/__tests__/serialization.test.ts +0 -401
  325. package/src/__tests__/service-config.test.ts +0 -224
  326. package/src/__tests__/signal.test.ts +0 -82
  327. package/src/__tests__/surface-filter.test.ts +0 -196
  328. package/src/__tests__/topo-store-read.test.ts +0 -256
  329. package/src/__tests__/topo-store.test.ts +0 -869
  330. package/src/__tests__/topo.test.ts +0 -573
  331. package/src/__tests__/trail-permit.test.ts +0 -60
  332. package/src/__tests__/trail.test.ts +0 -426
  333. package/src/__tests__/trails-db.test.ts +0 -198
  334. package/src/__tests__/transport-error-map.test.ts +0 -82
  335. package/src/__tests__/type-utils.test.ts +0 -118
  336. package/src/__tests__/validate-topo.test.ts +0 -611
  337. package/src/__tests__/validation.test.ts +0 -336
  338. package/src/__tests__/workspace.test.ts +0 -183
  339. package/src/__tests__/zod-wrappers.test.ts +0 -62
  340. package/src/internal/topo-snapshots.ts +0 -517
  341. package/src/internal/topo-store-read.ts +0 -481
  342. package/src/internal/topo-store.ts +0 -1192
  343. package/src/internal/tracing.ts +0 -187
  344. package/src/topo-store.ts +0 -510
  345. package/src/type-checks.test-d.ts +0 -106
  346. package/tsconfig.json +0 -9
  347. package/tsconfig.tests.json +0 -10
  348. package/tsconfig.tsbuildinfo +0 -1
@@ -1,76 +0,0 @@
1
- // ---------------------------------------------------------------------------
2
- // Glob matching
3
- // ---------------------------------------------------------------------------
4
- const trailIdSegments = (trailId) => trailId.split('.');
5
- const patternSegments = (pattern) => pattern.split('.');
6
- const matchesDoubleStar = (trail, pattern, trailIndex, patternIndex, matchSegments) => patternIndex === pattern.length - 1 ||
7
- Array.from({ length: trail.length - trailIndex + 1 }, (_, offset) => trailIndex + offset).some((index) => matchSegments(trail, pattern, index, patternIndex + 1));
8
- const matchesSingleSegment = (trail, pattern, trailIndex, patternIndex, current, matchSegments) => trailIndex < trail.length &&
9
- (current === '*' || current === trail[trailIndex]) &&
10
- matchSegments(trail, pattern, trailIndex + 1, patternIndex + 1);
11
- const matchesFrom = function matchesFrom(trail, pattern, trailIndex, patternIndex) {
12
- if (patternIndex >= pattern.length) {
13
- return trailIndex >= trail.length;
14
- }
15
- const current = pattern[patternIndex];
16
- if (current === undefined) {
17
- return false;
18
- }
19
- return current === '**'
20
- ? matchesDoubleStar(trail, pattern, trailIndex, patternIndex, matchesFrom)
21
- : matchesSingleSegment(trail, pattern, trailIndex, patternIndex, current, matchesFrom);
22
- };
23
- export const matchesTrailPattern = (trailId, pattern) => {
24
- if (pattern === trailId) {
25
- return true;
26
- }
27
- return matchesFrom(trailIdSegments(trailId), patternSegments(pattern), 0, 0);
28
- };
29
- // ---------------------------------------------------------------------------
30
- // Trailhead filtering
31
- // ---------------------------------------------------------------------------
32
- const matchesAnyPattern = (trailId, patterns) => patterns !== undefined &&
33
- patterns.some((pattern) => matchesTrailPattern(trailId, pattern));
34
- const isExplicitInternalInclude = (trailId, include) => include !== undefined && include.includes(trailId);
35
- /**
36
- * Resolve the effective visibility for a trail.
37
- *
38
- * Returns `'internal'` when either the explicit `visibility` field is
39
- * `'internal'` or the legacy `meta.internal === true` convention is set.
40
- * Honoring the legacy flag keeps trails authored before the visibility
41
- * field was introduced (e.g. `meta: { internal: true }`) off trailheads.
42
- *
43
- * The runtime always fills in `visibility: 'public'` when the spec did not
44
- * declare it, so we cannot distinguish explicit `'public'` from the default.
45
- * This means a trail that sets both `meta.internal = true` and
46
- * `visibility: 'public'` will still be treated as internal — that
47
- * combination has never been a documented override and, if the author
48
- * really means "public", they should remove the legacy flag.
49
- */
50
- const effectiveVisibility = (trail) => {
51
- if (trail.visibility === 'internal') {
52
- return 'internal';
53
- }
54
- return trail.meta?.['internal'] === true ? 'internal' : 'public';
55
- };
56
- const isVisibleToTrailheads = (trail, include) => effectiveVisibility(trail) !== 'internal' ||
57
- isExplicitInternalInclude(trail.id, include);
58
- const passesIncludeFilter = (trailId, include) => include === undefined ||
59
- include.length === 0 ||
60
- matchesAnyPattern(trailId, include);
61
- const passesIntentFilter = (trail, intent) => intent === undefined || intent.length === 0 || intent.includes(trail.intent);
62
- export const shouldIncludeTrailForSurface = (trail, options = {}) => {
63
- if (trail.on.length > 0) {
64
- return false;
65
- }
66
- const { exclude, include, intent } = options;
67
- if (!isVisibleToTrailheads(trail, include)) {
68
- return false;
69
- }
70
- if (matchesAnyPattern(trail.id, exclude)) {
71
- return false;
72
- }
73
- return (passesIncludeFilter(trail.id, include) && passesIntentFilter(trail, intent));
74
- };
75
- export const filterSurfaceTrails = (trails, options = {}) => trails.filter((trail) => shouldIncludeTrailForSurface(trail, options));
76
- //# sourceMappingURL=surface-filter.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"surface-filter.js","sourceRoot":"","sources":["../src/surface-filter.ts"],"names":[],"mappings":"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"}
@@ -1,62 +0,0 @@
1
- import type { SQLQueryBindings } from 'bun:sqlite';
2
- import type { Topo } from './topo.js';
3
- import { Result } from './result.js';
4
- import type { CreateTopoSnapshotInput, ListTopoSnapshotsOptions, TopoSnapshot } from './internal/topo-snapshots.js';
5
- import type { TopoStoreExportRecord, TopoStoreResourceRecord, TopoStoreRef, TopoStoreTrailDetailRecord, TopoStoreTrailRecord } from './internal/topo-store-read.js';
6
- import type { TrailsDbLocationOptions } from './internal/trails-db.js';
7
- /**
8
- * Test-only instrumentation counters. Incremented by the read-path migration
9
- * check to let tests assert that a current-schema store does not escalate to
10
- * a write-mode open, and that cache invalidation re-runs the check when the
11
- * underlying file is replaced.
12
- *
13
- * @internal
14
- */
15
- export declare const __topoStoreMigrationStats: {
16
- peekCalls: number;
17
- writeEscalations: number;
18
- };
19
- export type { TopoStoreExportRecord, TopoStoreResourceRecord, TopoStoreRef, TopoStoreTrailDetailRecord, TopoStoreTrailRecord, } from './internal/topo-store-read.js';
20
- export type { CreateTopoSnapshotInput, ListTopoSnapshotsOptions, TopoSnapshot, } from './internal/topo-snapshots.js';
21
- export interface ReadOnlyTopoStore {
22
- readonly exports: {
23
- get(ref?: TopoStoreRef): TopoStoreExportRecord | undefined;
24
- };
25
- query<TRow extends Record<string, unknown>>(sql: string, bindings?: readonly SQLQueryBindings[]): readonly TRow[];
26
- readonly resources: {
27
- get(id: string, options?: {
28
- readonly snapshot?: TopoStoreRef;
29
- }): TopoStoreResourceRecord | undefined;
30
- list(options?: {
31
- readonly snapshot?: TopoStoreRef;
32
- }): readonly TopoStoreResourceRecord[];
33
- };
34
- readonly snapshots: {
35
- get(ref?: TopoStoreRef): TopoSnapshot | undefined;
36
- latest(): TopoSnapshot | undefined;
37
- list(options?: ListTopoSnapshotsOptions): readonly TopoSnapshot[];
38
- };
39
- readonly trails: {
40
- get(id: string, options?: {
41
- readonly snapshot?: TopoStoreRef;
42
- }): TopoStoreTrailDetailRecord | undefined;
43
- list(options?: {
44
- readonly intent?: TopoStoreTrailRecord['intent'];
45
- readonly snapshot?: TopoStoreRef;
46
- }): readonly TopoStoreTrailRecord[];
47
- };
48
- }
49
- export interface MockTopoStoreSeed {
50
- readonly exports?: readonly TopoStoreExportRecord[];
51
- readonly resources?: readonly TopoStoreResourceRecord[];
52
- readonly snapshots?: readonly TopoSnapshot[];
53
- readonly trails?: readonly TopoStoreTrailDetailRecord[];
54
- }
55
- export declare const createMockTopoStore: (seed?: MockTopoStoreSeed) => ReadOnlyTopoStore;
56
- export declare const createTopoStore: (options?: TrailsDbLocationOptions) => ReadOnlyTopoStore;
57
- export declare const createTopoSnapshot: (topo: Topo, options?: TrailsDbLocationOptions & CreateTopoSnapshotInput) => Result<TopoSnapshot, Error>;
58
- export declare const listTopoSnapshots: (options?: TrailsDbLocationOptions & ListTopoSnapshotsOptions) => readonly TopoSnapshot[];
59
- export declare const pinTopoSnapshot: (id: string, name: string, options?: TrailsDbLocationOptions) => TopoSnapshot | undefined;
60
- export declare const unpinTopoSnapshot: (nameOrId: string, options?: TrailsDbLocationOptions) => TopoSnapshot | undefined;
61
- export declare const topoStore: import("./resource.js").Resource<ReadOnlyTopoStore>;
62
- //# sourceMappingURL=topo-store.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"topo-store.d.ts","sourceRoot":"","sources":["../src/topo-store.ts"],"names":[],"mappings":"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"}
@@ -1,319 +0,0 @@
1
- import { existsSync, statSync } from 'node:fs';
2
- import { NotFoundError } from './errors.js';
3
- import { resource } from './resource.js';
4
- import { Result } from './result.js';
5
- import { TOPO_SCHEMA_VERSION, ensureTopoSnapshotSchema, listTopoSnapshots as listStoredTopoSnapshots, pinTopoSnapshot as pinStoredTopoSnapshot, unpinTopoSnapshot as unpinStoredTopoSnapshot, } from './internal/topo-snapshots.js';
6
- import { getTopoStoreExport, getTopoStoreResource, getTopoStoreTrail, listTopoStoreResources, listTopoStoreSnapshots, listTopoStoreTrails, queryTopoStore, readTopoStoreSnapshot, } from './internal/topo-store-read.js';
7
- import { createTopoSnapshot as storeTopoSnapshot } from './internal/topo-store.js';
8
- import { openReadTrailsDb, openWriteTrailsDb, deriveTrailsDbPath, } from './internal/trails-db.js';
9
- const migratedTopoDbPaths = new Map();
10
- /**
11
- * Test-only instrumentation counters. Incremented by the read-path migration
12
- * check to let tests assert that a current-schema store does not escalate to
13
- * a write-mode open, and that cache invalidation re-runs the check when the
14
- * underlying file is replaced.
15
- *
16
- * @internal
17
- */
18
- export const __topoStoreMigrationStats = {
19
- peekCalls: 0,
20
- writeEscalations: 0,
21
- };
22
- const peekTopoSchemaVersion = (options) => {
23
- let db;
24
- try {
25
- db = openReadTrailsDb(options);
26
- const row = db
27
- .query('SELECT version FROM meta_schema_versions WHERE subsystem = ?')
28
- .get('topo');
29
- return row?.version ?? 0;
30
- }
31
- catch {
32
- // Table missing or unexpected shape: caller will escalate to a write-mode
33
- // open and run the migration, which rebuilds the schema.
34
- return undefined;
35
- }
36
- finally {
37
- db?.close();
38
- }
39
- };
40
- const statIdentity = (dbPath) => {
41
- try {
42
- const info = statSync(dbPath);
43
- return { mtimeMs: info.mtimeMs, size: info.size };
44
- }
45
- catch {
46
- return undefined;
47
- }
48
- };
49
- const identitiesEqual = (a, b) => a.mtimeMs === b.mtimeMs && a.size === b.size;
50
- const runTopoMigrationEscalation = (options, dbPath, fallbackIdentity) => {
51
- __topoStoreMigrationStats.writeEscalations += 1;
52
- const db = openWriteTrailsDb(options);
53
- try {
54
- ensureTopoSnapshotSchema(db);
55
- }
56
- finally {
57
- db.close();
58
- }
59
- // Re-stat after the migration so the cached identity matches the file we
60
- // just touched, avoiding a spurious second escalation on the next read.
61
- const postIdentity = statIdentity(dbPath) ?? fallbackIdentity;
62
- migratedTopoDbPaths.set(dbPath, postIdentity);
63
- };
64
- const resolveIdentityIfFresh = (dbPath) => {
65
- if (!existsSync(dbPath)) {
66
- return undefined;
67
- }
68
- const identity = statIdentity(dbPath);
69
- if (identity === undefined) {
70
- return undefined;
71
- }
72
- const cached = migratedTopoDbPaths.get(dbPath);
73
- if (cached !== undefined && identitiesEqual(cached, identity)) {
74
- return undefined;
75
- }
76
- return identity;
77
- };
78
- /**
79
- * Ensure the topo snapshot schema is at the current version before any
80
- * read-only access. Peeks the version through a read-only handle first and
81
- * only escalates to a write-mode open + migration when the store is stale.
82
- *
83
- * Memoized per resolved DB path keyed on file identity (mtime + size) so a
84
- * long-running process that deletes and recreates `trails.db` re-runs the
85
- * migration check against the fresh file.
86
- *
87
- * If the DB file does not yet exist, this is a no-op — the downstream read
88
- * path will surface its own NotFoundError.
89
- */
90
- const ensureTopoMigratedIfExists = (options) => {
91
- const dbPath = deriveTrailsDbPath(options);
92
- const identity = resolveIdentityIfFresh(dbPath);
93
- if (identity === undefined) {
94
- return;
95
- }
96
- __topoStoreMigrationStats.peekCalls += 1;
97
- const version = peekTopoSchemaVersion(options);
98
- if (version !== undefined && version >= TOPO_SCHEMA_VERSION) {
99
- // Already current — record identity and skip the write-mode open entirely,
100
- // preserving the read-only contract for callers whose filesystem mounts
101
- // `trails.db` read-only.
102
- migratedTopoDbPaths.set(dbPath, identity);
103
- return;
104
- }
105
- runTopoMigrationEscalation(options, dbPath, identity);
106
- };
107
- const missingStoreMessage = 'No saved topo state found. Populate trails.db first or run a topo-backed surface.';
108
- const resolveStoreRootDir = (options) => options?.rootDir ?? process.cwd();
109
- const requireReadDb = (options) => {
110
- const dbPath = deriveTrailsDbPath(options);
111
- if (!existsSync(dbPath)) {
112
- throw new NotFoundError(missingStoreMessage);
113
- }
114
- ensureTopoMigratedIfExists(options);
115
- return openReadTrailsDb(options);
116
- };
117
- const requireSavedTopoState = (db) => {
118
- if (readTopoStoreSnapshot(db) === undefined) {
119
- throw new NotFoundError(missingStoreMessage);
120
- }
121
- };
122
- const withStoredTopoState = (options, run) => {
123
- const db = requireReadDb(options);
124
- try {
125
- requireSavedTopoState(db);
126
- return run(db);
127
- }
128
- finally {
129
- db.close();
130
- }
131
- };
132
- const createSeedResolver = (seed) => {
133
- const snapshots = [...(seed?.snapshots ?? [])];
134
- const trails = [...(seed?.trails ?? [])];
135
- const resources = [...(seed?.resources ?? [])];
136
- const exports = [...(seed?.exports ?? [])];
137
- const resolveSnapshot = (ref) => {
138
- if (ref?.snapshotId !== undefined) {
139
- return snapshots.find((snapshot) => snapshot.id === ref.snapshotId);
140
- }
141
- if (ref?.pin !== undefined) {
142
- return snapshots.find((snapshot) => snapshot.pinnedAs === ref.pin);
143
- }
144
- return snapshots[0];
145
- };
146
- return {
147
- exports,
148
- resolveSnapshot,
149
- resources,
150
- snapshots,
151
- trails,
152
- };
153
- };
154
- export const createMockTopoStore = (seed) => {
155
- const resolved = createSeedResolver(seed);
156
- return {
157
- exports: {
158
- get(ref) {
159
- const snapshot = resolved.resolveSnapshot(ref);
160
- return snapshot === undefined
161
- ? undefined
162
- : resolved.exports.find((entry) => entry.snapshot.id === snapshot.id);
163
- },
164
- },
165
- query() {
166
- throw new NotFoundError('Mock topoStore.query() is unsupported. Seed typed accessors instead.');
167
- },
168
- resources: {
169
- get(id, options) {
170
- const snapshot = resolved.resolveSnapshot(options?.snapshot);
171
- return resolved.resources.find((item) => item.id === id &&
172
- (snapshot === undefined || item.snapshotId === snapshot.id));
173
- },
174
- list(options) {
175
- const snapshot = resolved.resolveSnapshot(options?.snapshot);
176
- return snapshot === undefined
177
- ? []
178
- : resolved.resources.filter((item) => item.snapshotId === snapshot.id);
179
- },
180
- },
181
- snapshots: {
182
- get(ref) {
183
- return resolved.resolveSnapshot(ref);
184
- },
185
- latest() {
186
- return resolved.snapshots[0];
187
- },
188
- list(options) {
189
- let snapshots = options?.pinned === undefined
190
- ? resolved.snapshots
191
- : resolved.snapshots.filter((snapshot) => options.pinned
192
- ? snapshot.pinnedAs !== undefined
193
- : snapshot.pinnedAs === undefined);
194
- if (options?.before !== undefined) {
195
- const target = snapshots.find((s) => s.id === options.before);
196
- if (target !== undefined) {
197
- snapshots = snapshots.filter((s) => s.createdAt < target.createdAt ||
198
- (s.createdAt === target.createdAt && s.id < target.id));
199
- }
200
- }
201
- if (options?.limit !== undefined) {
202
- snapshots = snapshots.slice(0, options.limit);
203
- }
204
- return snapshots;
205
- },
206
- },
207
- trails: {
208
- get(id, options) {
209
- const snapshot = resolved.resolveSnapshot(options?.snapshot);
210
- if (snapshot === undefined) {
211
- return;
212
- }
213
- return resolved.trails.find((trail) => trail.id === id && trail.snapshotId === snapshot.id);
214
- },
215
- list(options) {
216
- const snapshot = resolved.resolveSnapshot(options?.snapshot);
217
- if (snapshot === undefined) {
218
- return [];
219
- }
220
- return resolved.trails.filter((trail) => trail.snapshotId === snapshot.id &&
221
- (options?.intent === undefined || trail.intent === options.intent));
222
- },
223
- },
224
- };
225
- };
226
- export const createTopoStore = (options) => ({
227
- exports: {
228
- get(ref) {
229
- return withStoredTopoState(options, (db) => getTopoStoreExport(db, ref));
230
- },
231
- },
232
- query(sql, bindings) {
233
- return withStoredTopoState(options, (db) => queryTopoStore(db, sql, bindings));
234
- },
235
- resources: {
236
- get(id, queryOptions) {
237
- return withStoredTopoState(options, (db) => getTopoStoreResource(db, id, queryOptions));
238
- },
239
- list(queryOptions) {
240
- return withStoredTopoState(options, (db) => listTopoStoreResources(db, queryOptions));
241
- },
242
- },
243
- snapshots: {
244
- get(ref) {
245
- return withStoredTopoState(options, (db) => readTopoStoreSnapshot(db, ref));
246
- },
247
- latest() {
248
- return withStoredTopoState(options, (db) => readTopoStoreSnapshot(db));
249
- },
250
- list(snapshotOptions) {
251
- return withStoredTopoState(options, (db) => listTopoStoreSnapshots(db, snapshotOptions));
252
- },
253
- },
254
- trails: {
255
- get(id, queryOptions) {
256
- return withStoredTopoState(options, (db) => getTopoStoreTrail(db, id, queryOptions));
257
- },
258
- list(queryOptions) {
259
- return withStoredTopoState(options, (db) => listTopoStoreTrails(db, queryOptions));
260
- },
261
- },
262
- });
263
- export const createTopoSnapshot = (topo, options) => {
264
- const db = openWriteTrailsDb(options);
265
- try {
266
- return storeTopoSnapshot(db, topo, options);
267
- }
268
- finally {
269
- db.close();
270
- }
271
- };
272
- export const listTopoSnapshots = (options) => {
273
- const dbPath = deriveTrailsDbPath(options);
274
- if (!existsSync(dbPath)) {
275
- return [];
276
- }
277
- ensureTopoMigratedIfExists(options);
278
- const db = openReadTrailsDb(options);
279
- try {
280
- return listStoredTopoSnapshots(db, options);
281
- }
282
- finally {
283
- db.close();
284
- }
285
- };
286
- export const pinTopoSnapshot = (id, name, options) => {
287
- const dbPath = deriveTrailsDbPath(options);
288
- if (!existsSync(dbPath)) {
289
- return undefined;
290
- }
291
- const db = openWriteTrailsDb(options);
292
- try {
293
- return pinStoredTopoSnapshot(db, { id, name });
294
- }
295
- finally {
296
- db.close();
297
- }
298
- };
299
- export const unpinTopoSnapshot = (nameOrId, options) => {
300
- const dbPath = deriveTrailsDbPath(options);
301
- if (!existsSync(dbPath)) {
302
- return undefined;
303
- }
304
- const db = openWriteTrailsDb(options);
305
- try {
306
- return unpinStoredTopoSnapshot(db, nameOrId);
307
- }
308
- finally {
309
- db.close();
310
- }
311
- };
312
- export const topoStore = resource('topo.store', {
313
- create: (svc) => Result.ok(createTopoStore({
314
- rootDir: svc.workspaceRoot ?? svc.cwd ?? resolveStoreRootDir(),
315
- })),
316
- description: 'Read-only query access to saved topo state in trails.db',
317
- mock: () => createMockTopoStore(),
318
- });
319
- //# sourceMappingURL=topo-store.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"topo-store.js","sourceRoot":"","sources":["../src/topo-store.ts"],"names":[],"mappings":"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"}
package/dist/topo.d.ts DELETED
@@ -1,39 +0,0 @@
1
- /**
2
- * Application entry point — scans module exports to build a topology graph.
3
- */
4
- import type { AnyContour } from './contour.js';
5
- import type { AnySignal } from './signal.js';
6
- import type { AnyResource } from './resource.js';
7
- import type { AnyTrail } from './trail.js';
8
- export interface TopoIdentity {
9
- readonly name: string;
10
- readonly version?: string;
11
- readonly description?: string;
12
- }
13
- export interface Topo {
14
- readonly name: string;
15
- readonly version?: string;
16
- readonly description?: string;
17
- readonly contours: ReadonlyMap<string, AnyContour>;
18
- readonly trails: ReadonlyMap<string, AnyTrail>;
19
- readonly signals: ReadonlyMap<string, AnySignal>;
20
- readonly resources: ReadonlyMap<string, AnyResource>;
21
- readonly count: number;
22
- readonly contourCount: number;
23
- readonly resourceCount: number;
24
- getContour(name: string): AnyContour | undefined;
25
- get(id: string): AnyTrail | undefined;
26
- getResource(id: string): AnyResource | undefined;
27
- hasContour(name: string): boolean;
28
- has(id: string): boolean;
29
- hasResource(id: string): boolean;
30
- contourIds(): string[];
31
- ids(): string[];
32
- resourceIds(): string[];
33
- listContours(): AnyContour[];
34
- list(): AnyTrail[];
35
- listSignals(): AnySignal[];
36
- listResources(): AnyResource[];
37
- }
38
- export declare const topo: (nameOrIdentity: string | TopoIdentity, ...modules: Record<string, unknown>[]) => Topo;
39
- //# sourceMappingURL=topo.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"topo.d.ts","sourceRoot":"","sources":["../src/topo.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAM/C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAEjD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAM3C,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;CAC/B;AAED,MAAM,WAAW,IAAI;IACnB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,QAAQ,EAAE,WAAW,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IACnD,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC/C,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IACjD,QAAQ,CAAC,SAAS,EAAE,WAAW,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IACrD,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS,CAAC;IACjD,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,QAAQ,GAAG,SAAS,CAAC;IACtC,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS,CAAC;IACjD,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;IAClC,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC;IACzB,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC;IACjC,UAAU,IAAI,MAAM,EAAE,CAAC;IACvB,GAAG,IAAI,MAAM,EAAE,CAAC;IAChB,WAAW,IAAI,MAAM,EAAE,CAAC;IACxB,YAAY,IAAI,UAAU,EAAE,CAAC;IAC7B,IAAI,IAAI,QAAQ,EAAE,CAAC;IACnB,WAAW,IAAI,SAAS,EAAE,CAAC;IAC3B,aAAa,IAAI,WAAW,EAAE,CAAC;CAChC;AA4XD,eAAO,MAAM,IAAI,GACf,gBAAgB,MAAM,GAAG,YAAY,EACrC,GAAG,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,KACpC,IAsBF,CAAC"}