@ontrails/trails 1.0.0-beta.15 → 1.0.0-beta.17

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 (201) hide show
  1. package/CHANGELOG.md +215 -2
  2. package/README.md +27 -0
  3. package/package.json +21 -8
  4. package/src/app.ts +15 -5
  5. package/src/cli.ts +303 -10
  6. package/src/completions.ts +240 -0
  7. package/src/load-app-mirror.ts +160 -0
  8. package/src/local-state-io.ts +153 -0
  9. package/src/project-writes.ts +320 -0
  10. package/src/run-collision.ts +125 -0
  11. package/src/run-completions-install.ts +179 -0
  12. package/src/run-example.ts +149 -0
  13. package/src/run-examples.ts +148 -0
  14. package/src/run-quiet.ts +75 -0
  15. package/src/run-trace.ts +273 -0
  16. package/src/run-warden.ts +39 -0
  17. package/src/run-watch.ts +432 -0
  18. package/src/scaffold-versions.generated.ts +12 -0
  19. package/src/trails/add-surface.ts +45 -23
  20. package/src/trails/add-trail.ts +27 -17
  21. package/src/trails/add-verify.ts +57 -17
  22. package/src/trails/completions-complete.ts +165 -0
  23. package/src/trails/completions.ts +47 -0
  24. package/src/trails/create-scaffold.ts +86 -33
  25. package/src/trails/create.ts +11 -3
  26. package/src/trails/dev-clean.ts +6 -1
  27. package/src/trails/dev-reset.ts +6 -1
  28. package/src/trails/dev-stats.ts +6 -1
  29. package/src/trails/dev-support.ts +29 -17
  30. package/src/trails/draft-promote.ts +289 -80
  31. package/src/trails/guide.ts +54 -34
  32. package/src/trails/load-app.ts +251 -56
  33. package/src/trails/root-dir.ts +21 -0
  34. package/src/trails/run-example.ts +482 -0
  35. package/src/trails/run-examples.ts +141 -0
  36. package/src/trails/run.ts +403 -0
  37. package/src/trails/survey.ts +534 -200
  38. package/src/trails/topo-activation.ts +385 -0
  39. package/src/trails/topo-compile.ts +55 -0
  40. package/src/trails/topo-history.ts +6 -1
  41. package/src/trails/topo-output-schemas.ts +219 -0
  42. package/src/trails/topo-pin.ts +19 -6
  43. package/src/trails/topo-read-support.ts +171 -228
  44. package/src/trails/topo-reports.ts +587 -25
  45. package/src/trails/topo-store-support.ts +43 -19
  46. package/src/trails/topo-support.ts +18 -28
  47. package/src/trails/topo-unpin.ts +6 -1
  48. package/src/trails/topo-verify.ts +18 -5
  49. package/src/trails/topo.ts +60 -23
  50. package/src/trails/warden-guide.ts +121 -0
  51. package/src/trails/warden.ts +137 -56
  52. package/src/versions.ts +3 -18
  53. package/.turbo/turbo-build.log +0 -1
  54. package/.turbo/turbo-lint.log +0 -3
  55. package/.turbo/turbo-typecheck.log +0 -1
  56. package/__tests__/examples.test.ts +0 -45
  57. package/dist/bin/trails.d.ts +0 -3
  58. package/dist/bin/trails.d.ts.map +0 -1
  59. package/dist/bin/trails.js +0 -4
  60. package/dist/bin/trails.js.map +0 -1
  61. package/dist/src/app.d.ts +0 -2
  62. package/dist/src/app.d.ts.map +0 -1
  63. package/dist/src/app.js +0 -22
  64. package/dist/src/app.js.map +0 -1
  65. package/dist/src/clack.d.ts +0 -9
  66. package/dist/src/clack.d.ts.map +0 -1
  67. package/dist/src/clack.js +0 -84
  68. package/dist/src/clack.js.map +0 -1
  69. package/dist/src/cli.d.ts +0 -2
  70. package/dist/src/cli.d.ts.map +0 -1
  71. package/dist/src/cli.js +0 -14
  72. package/dist/src/cli.js.map +0 -1
  73. package/dist/src/trails/add-surface.d.ts +0 -13
  74. package/dist/src/trails/add-surface.d.ts.map +0 -1
  75. package/dist/src/trails/add-surface.js +0 -110
  76. package/dist/src/trails/add-surface.js.map +0 -1
  77. package/dist/src/trails/add-trail.d.ts +0 -12
  78. package/dist/src/trails/add-trail.d.ts.map +0 -1
  79. package/dist/src/trails/add-trail.js +0 -104
  80. package/dist/src/trails/add-trail.js.map +0 -1
  81. package/dist/src/trails/add-trailhead.d.ts +0 -13
  82. package/dist/src/trails/add-trailhead.d.ts.map +0 -1
  83. package/dist/src/trails/add-trailhead.js +0 -88
  84. package/dist/src/trails/add-trailhead.js.map +0 -1
  85. package/dist/src/trails/add-verify.d.ts +0 -10
  86. package/dist/src/trails/add-verify.d.ts.map +0 -1
  87. package/dist/src/trails/add-verify.js +0 -68
  88. package/dist/src/trails/add-verify.js.map +0 -1
  89. package/dist/src/trails/create-scaffold.d.ts +0 -15
  90. package/dist/src/trails/create-scaffold.d.ts.map +0 -1
  91. package/dist/src/trails/create-scaffold.js +0 -295
  92. package/dist/src/trails/create-scaffold.js.map +0 -1
  93. package/dist/src/trails/create.d.ts +0 -18
  94. package/dist/src/trails/create.d.ts.map +0 -1
  95. package/dist/src/trails/create.js +0 -126
  96. package/dist/src/trails/create.js.map +0 -1
  97. package/dist/src/trails/dev-clean.d.ts +0 -9
  98. package/dist/src/trails/dev-clean.d.ts.map +0 -1
  99. package/dist/src/trails/dev-clean.js +0 -66
  100. package/dist/src/trails/dev-clean.js.map +0 -1
  101. package/dist/src/trails/dev-reset.d.ts +0 -6
  102. package/dist/src/trails/dev-reset.d.ts.map +0 -1
  103. package/dist/src/trails/dev-reset.js +0 -39
  104. package/dist/src/trails/dev-reset.js.map +0 -1
  105. package/dist/src/trails/dev-stats.d.ts +0 -7
  106. package/dist/src/trails/dev-stats.d.ts.map +0 -1
  107. package/dist/src/trails/dev-stats.js +0 -61
  108. package/dist/src/trails/dev-stats.js.map +0 -1
  109. package/dist/src/trails/dev-support.d.ts +0 -64
  110. package/dist/src/trails/dev-support.d.ts.map +0 -1
  111. package/dist/src/trails/dev-support.js +0 -181
  112. package/dist/src/trails/dev-support.js.map +0 -1
  113. package/dist/src/trails/draft-promote.d.ts +0 -18
  114. package/dist/src/trails/draft-promote.d.ts.map +0 -1
  115. package/dist/src/trails/draft-promote.js +0 -400
  116. package/dist/src/trails/draft-promote.js.map +0 -1
  117. package/dist/src/trails/guide.d.ts +0 -21
  118. package/dist/src/trails/guide.d.ts.map +0 -1
  119. package/dist/src/trails/guide.js +0 -61
  120. package/dist/src/trails/guide.js.map +0 -1
  121. package/dist/src/trails/load-app.d.ts +0 -12
  122. package/dist/src/trails/load-app.d.ts.map +0 -1
  123. package/dist/src/trails/load-app.js +0 -415
  124. package/dist/src/trails/load-app.js.map +0 -1
  125. package/dist/src/trails/project.d.ts +0 -8
  126. package/dist/src/trails/project.d.ts.map +0 -1
  127. package/dist/src/trails/project.js +0 -54
  128. package/dist/src/trails/project.js.map +0 -1
  129. package/dist/src/trails/survey.d.ts +0 -18
  130. package/dist/src/trails/survey.d.ts.map +0 -1
  131. package/dist/src/trails/survey.js +0 -234
  132. package/dist/src/trails/survey.js.map +0 -1
  133. package/dist/src/trails/topo-constants.d.ts +0 -3
  134. package/dist/src/trails/topo-constants.d.ts.map +0 -1
  135. package/dist/src/trails/topo-constants.js +0 -3
  136. package/dist/src/trails/topo-constants.js.map +0 -1
  137. package/dist/src/trails/topo-export.d.ts +0 -19
  138. package/dist/src/trails/topo-export.d.ts.map +0 -1
  139. package/dist/src/trails/topo-export.js +0 -31
  140. package/dist/src/trails/topo-export.js.map +0 -1
  141. package/dist/src/trails/topo-history.d.ts +0 -20
  142. package/dist/src/trails/topo-history.d.ts.map +0 -1
  143. package/dist/src/trails/topo-history.js +0 -32
  144. package/dist/src/trails/topo-history.js.map +0 -1
  145. package/dist/src/trails/topo-pin.d.ts +0 -17
  146. package/dist/src/trails/topo-pin.d.ts.map +0 -1
  147. package/dist/src/trails/topo-pin.js +0 -31
  148. package/dist/src/trails/topo-pin.js.map +0 -1
  149. package/dist/src/trails/topo-read-support.d.ts +0 -58
  150. package/dist/src/trails/topo-read-support.d.ts.map +0 -1
  151. package/dist/src/trails/topo-read-support.js +0 -167
  152. package/dist/src/trails/topo-read-support.js.map +0 -1
  153. package/dist/src/trails/topo-reports.d.ts +0 -54
  154. package/dist/src/trails/topo-reports.d.ts.map +0 -1
  155. package/dist/src/trails/topo-reports.js +0 -128
  156. package/dist/src/trails/topo-reports.js.map +0 -1
  157. package/dist/src/trails/topo-show.d.ts +0 -23
  158. package/dist/src/trails/topo-show.d.ts.map +0 -1
  159. package/dist/src/trails/topo-show.js +0 -49
  160. package/dist/src/trails/topo-show.js.map +0 -1
  161. package/dist/src/trails/topo-store-support.d.ts +0 -13
  162. package/dist/src/trails/topo-store-support.d.ts.map +0 -1
  163. package/dist/src/trails/topo-store-support.js +0 -55
  164. package/dist/src/trails/topo-store-support.js.map +0 -1
  165. package/dist/src/trails/topo-support.d.ts +0 -76
  166. package/dist/src/trails/topo-support.d.ts.map +0 -1
  167. package/dist/src/trails/topo-support.js +0 -132
  168. package/dist/src/trails/topo-support.js.map +0 -1
  169. package/dist/src/trails/topo-unpin.d.ts +0 -20
  170. package/dist/src/trails/topo-unpin.d.ts.map +0 -1
  171. package/dist/src/trails/topo-unpin.js +0 -44
  172. package/dist/src/trails/topo-unpin.js.map +0 -1
  173. package/dist/src/trails/topo-verify.d.ts +0 -5
  174. package/dist/src/trails/topo-verify.d.ts.map +0 -1
  175. package/dist/src/trails/topo-verify.js +0 -24
  176. package/dist/src/trails/topo-verify.js.map +0 -1
  177. package/dist/src/trails/topo.d.ts +0 -5
  178. package/dist/src/trails/topo.d.ts.map +0 -1
  179. package/dist/src/trails/topo.js +0 -63
  180. package/dist/src/trails/topo.js.map +0 -1
  181. package/dist/src/trails/warden.d.ts +0 -20
  182. package/dist/src/trails/warden.d.ts.map +0 -1
  183. package/dist/src/trails/warden.js +0 -98
  184. package/dist/src/trails/warden.js.map +0 -1
  185. package/dist/src/versions.d.ts +0 -12
  186. package/dist/src/versions.d.ts.map +0 -1
  187. package/dist/src/versions.js +0 -23
  188. package/dist/src/versions.js.map +0 -1
  189. package/dist/tsconfig.tsbuildinfo +0 -1
  190. package/src/__tests__/add-trail.test.ts +0 -97
  191. package/src/__tests__/create.test.ts +0 -415
  192. package/src/__tests__/draft-promote.test.ts +0 -144
  193. package/src/__tests__/guide.test.ts +0 -96
  194. package/src/__tests__/load-app.test.ts +0 -419
  195. package/src/__tests__/survey.test.ts +0 -377
  196. package/src/__tests__/topo-dev.test.ts +0 -426
  197. package/src/__tests__/warden.test.ts +0 -74
  198. package/src/trails/topo-export.ts +0 -35
  199. package/src/trails/topo-show.ts +0 -54
  200. package/tsconfig.json +0 -9
  201. package/tsconfig.tests.json +0 -10
@@ -1,234 +0,0 @@
1
- /**
2
- * `survey` trail -- Full topo introspection.
3
- *
4
- * Lists trails, shows detail for individual trails, generates surface maps,
5
- * and diffs against previous versions.
6
- */
7
- import { join } from 'node:path';
8
- import { NotFoundError, Result, trail } from '@ontrails/core';
9
- import { deriveSurfaceMapDiff, deriveOpenApiSpec, deriveSurfaceMap, readSurfaceMap, } from '@ontrails/schema';
10
- import { z } from 'zod';
11
- import { loadApp, loadFreshAppLease } from './load-app.js';
12
- import { buildCurrentTopoBrief, buildCurrentTopoDetail, buildCurrentTopoList, } from './topo-read-support.js';
13
- import { exportCurrentTopo } from './topo-store-support.js';
14
- export { deriveBriefReport, deriveResourceDetail, deriveSurveyList, deriveTrailDetail, } from './topo-reports.js';
15
- // ---------------------------------------------------------------------------
16
- // Brief report (formerly scout)
17
- // ---------------------------------------------------------------------------
18
- const formatDiff = (diff) => ({
19
- breaking: diff.breaking,
20
- hasBreaking: diff.hasBreaking,
21
- info: diff.info,
22
- warnings: diff.warnings,
23
- });
24
- const buildSurveyDiff = async (app, rootDir, breakingOnly) => {
25
- const currentMap = deriveSurfaceMap(app);
26
- const previousMap = await readSurfaceMap({ dir: join(rootDir, '.trails') });
27
- if (!previousMap) {
28
- return Result.err(new NotFoundError('No saved surface map found. Run `trails topo export` first.'));
29
- }
30
- const diff = deriveSurfaceMapDiff(previousMap, currentMap);
31
- return Result.ok(breakingOnly
32
- ? formatDiff({
33
- ...diff,
34
- entries: diff.breaking,
35
- info: [],
36
- warnings: [],
37
- })
38
- : formatDiff(diff));
39
- };
40
- const buildSurveyDetail = (app, trailId, rootDir) => {
41
- const detail = buildCurrentTopoDetail(app, trailId, { rootDir });
42
- if (detail !== undefined) {
43
- return Result.ok(detail);
44
- }
45
- return Result.err(new NotFoundError(`Trail or resource not found: ${trailId}`));
46
- };
47
- const buildSurveyGenerate = async (app, rootDir) => {
48
- const exported = await exportCurrentTopo(app, { rootDir });
49
- if (exported.isErr()) {
50
- return exported;
51
- }
52
- return Result.ok({
53
- hash: exported.value.hash,
54
- lockPath: exported.value.lockPath,
55
- mapPath: exported.value.mapPath,
56
- });
57
- };
58
- /** Ordered mode checks — first truthy predicate wins, otherwise 'list'. */
59
- const modeChecks = [
60
- [(i) => i.brief, 'brief'],
61
- [(i) => i.diffSaved, 'diff'],
62
- [(i) => Boolean(i.trailId), 'detail'],
63
- [(i) => i.generate, 'generate'],
64
- [(i) => i.openapi, 'openapi'],
65
- ];
66
- /** Determine which survey mode was requested, falling back to 'list'. */
67
- const deriveSurveyMode = (input) => modeChecks.find(([predicate]) => predicate(input))?.[1] ?? 'list';
68
- /** Handlers keyed by survey mode. */
69
- const surveyHandlers = {
70
- brief: (app, _input, rootDir) => Result.ok(buildCurrentTopoBrief(app, { rootDir })),
71
- detail: (app, input, rootDir) => buildSurveyDetail(app, input.trailId ?? '', rootDir),
72
- diff: (app, input, rootDir) => buildSurveyDiff(app, rootDir, input.breakingOnly),
73
- generate: (app, _input, rootDir) => buildSurveyGenerate(app, rootDir),
74
- list: (app, _input, rootDir) => Result.ok(buildCurrentTopoList(app, { rootDir })),
75
- openapi: (app) => Result.ok(deriveOpenApiSpec(app)),
76
- };
77
- /** Dispatch to the appropriate survey sub-command based on input flags. */
78
- const dispatchSurvey = (app, input, rootDir) => {
79
- const mode = deriveSurveyMode(input);
80
- const handler = surveyHandlers[mode];
81
- return handler(app, input, rootDir);
82
- };
83
- // ---------------------------------------------------------------------------
84
- // Trail definition
85
- // ---------------------------------------------------------------------------
86
- export const surveyTrail = trail('survey', {
87
- blaze: async (input, ctx) => {
88
- const rootDir = ctx.cwd ?? '.';
89
- const mode = deriveSurveyMode(input);
90
- // Fresh load only for diffSaved: comparing against a previously-saved
91
- // surface map requires the current app's source state, not any cached
92
- // module graph that a prior import may have frozen. Other modes read
93
- // the in-memory topo and benefit from the standard import cache.
94
- //
95
- // For diff specifically, use a disposable lease rather than retained
96
- // fresh mirrors — the returned diff result is serialisable data, not
97
- // a Topo reference with deferred imports, so the mirror can be
98
- // released the moment dispatchSurvey returns. That keeps MCP/dev
99
- // sessions that poll diff repeatedly from growing .trails-tmp/
100
- // without bound.
101
- if (mode === 'diff') {
102
- const lease = await loadFreshAppLease(input.module, rootDir);
103
- try {
104
- return await dispatchSurvey(lease.app, input, rootDir);
105
- }
106
- finally {
107
- lease.release();
108
- }
109
- }
110
- const app = await loadApp(input.module, rootDir);
111
- return dispatchSurvey(app, input, rootDir);
112
- },
113
- description: 'Full topo introspection',
114
- examples: [
115
- {
116
- description: 'Lists all registered trails with safety and surface info',
117
- input: { module: './src/app.ts' },
118
- name: 'List all trails',
119
- },
120
- {
121
- description: 'Quick capability summary with counts and feature flags',
122
- input: { brief: true, module: './src/app.ts' },
123
- name: 'Brief capability report',
124
- },
125
- {
126
- description: 'Generate an OpenAPI 3.1 specification for the topo',
127
- input: { module: './src/app.ts', openapi: true },
128
- name: 'OpenAPI spec',
129
- },
130
- ],
131
- input: z.object({
132
- breakingOnly: z
133
- .boolean()
134
- .default(false)
135
- .describe('Only show breaking changes'),
136
- brief: z.boolean().default(false).describe('Quick capability summary'),
137
- diffSaved: z
138
- .boolean()
139
- .default(false)
140
- .describe('Diff against the saved local surface map'),
141
- generate: z
142
- .boolean()
143
- .default(false)
144
- .describe('Generate surface map and lock file'),
145
- module: z.string().optional().describe('Path to the app module'),
146
- openapi: z.boolean().default(false).describe('Output OpenAPI 3.1 spec'),
147
- trailId: z.string().optional().describe('Trail ID for detail view'),
148
- }),
149
- intent: 'read',
150
- output: z.union([
151
- z.object({
152
- count: z.number(),
153
- entries: z.array(z.object({
154
- examples: z.number(),
155
- id: z.string(),
156
- kind: z.string(),
157
- safety: z.string(),
158
- })),
159
- resourceCount: z.number(),
160
- resources: z.array(z.object({
161
- description: z.string().nullable(),
162
- health: z.enum(['available', 'none']),
163
- id: z.string(),
164
- kind: z.literal('resource'),
165
- lifetime: z.literal('singleton'),
166
- usedBy: z.array(z.string()),
167
- })),
168
- }),
169
- z.object({
170
- contractVersion: z.string(),
171
- features: z.object({
172
- detours: z.boolean(),
173
- examples: z.boolean(),
174
- outputSchemas: z.boolean(),
175
- resources: z.boolean(),
176
- signals: z.boolean(),
177
- }),
178
- name: z.string(),
179
- resources: z.number(),
180
- signals: z.number(),
181
- trails: z.number(),
182
- version: z.string(),
183
- }),
184
- z.object({
185
- breaking: z.array(z.unknown()),
186
- hasBreaking: z.boolean(),
187
- info: z.array(z.unknown()),
188
- warnings: z.array(z.unknown()),
189
- }),
190
- z.object({
191
- crosses: z.array(z.string()),
192
- description: z.unknown().nullable(),
193
- detours: z.unknown().nullable(),
194
- examples: z.array(z.unknown()),
195
- id: z.string(),
196
- intent: z.enum(['read', 'write', 'destroy']),
197
- kind: z.string(),
198
- resources: z.array(z.string()),
199
- safety: z.string(),
200
- }),
201
- z.object({
202
- description: z.string().nullable(),
203
- health: z.enum(['available', 'none']),
204
- id: z.string(),
205
- kind: z.literal('resource'),
206
- lifetime: z.literal('singleton'),
207
- usedBy: z.array(z.string()),
208
- }),
209
- z.object({
210
- hash: z.string(),
211
- lockPath: z.string(),
212
- mapPath: z.string(),
213
- }),
214
- z.object({
215
- components: z.object({
216
- schemas: z.record(z.string(), z.unknown()),
217
- }),
218
- info: z.object({
219
- description: z.string().optional(),
220
- title: z.string(),
221
- version: z.string(),
222
- }),
223
- openapi: z.literal('3.1.0'),
224
- paths: z.record(z.string(), z.record(z.string(), z.unknown())),
225
- servers: z
226
- .array(z.object({
227
- description: z.string().optional(),
228
- url: z.string(),
229
- }))
230
- .optional(),
231
- }),
232
- ]),
233
- });
234
- //# sourceMappingURL=survey.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"survey.js","sourceRoot":"","sources":["../../../src/trails/survey.ts"],"names":[],"mappings":"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"}
@@ -1,3 +0,0 @@
1
- export declare const REPORT_CONTRACT_VERSION = "2026-03";
2
- export declare const REPORT_VERSION = "0.1.0";
3
- //# sourceMappingURL=topo-constants.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"topo-constants.d.ts","sourceRoot":"","sources":["../../../src/trails/topo-constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,uBAAuB,YAAY,CAAC;AACjD,eAAO,MAAM,cAAc,UAAU,CAAC"}
@@ -1,3 +0,0 @@
1
- export const REPORT_CONTRACT_VERSION = '2026-03';
2
- export const REPORT_VERSION = '0.1.0';
3
- //# sourceMappingURL=topo-constants.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"topo-constants.js","sourceRoot":"","sources":["../../../src/trails/topo-constants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,uBAAuB,GAAG,SAAS,CAAC;AACjD,MAAM,CAAC,MAAM,cAAc,GAAG,OAAO,CAAC"}
@@ -1,19 +0,0 @@
1
- export declare const topoExportTrail: import("@ontrails/core").Trail<{
2
- module?: string | undefined;
3
- rootDir?: string | undefined;
4
- }, {
5
- hash: string;
6
- lockPath: string;
7
- mapPath: string;
8
- snapshot: {
9
- createdAt: string;
10
- gitDirty: boolean;
11
- id: string;
12
- resourceCount: number;
13
- signalCount: number;
14
- trailCount: number;
15
- gitSha?: string | undefined;
16
- pinnedAs?: string | undefined;
17
- };
18
- }, never>;
19
- //# sourceMappingURL=topo-export.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"topo-export.d.ts","sourceRoot":"","sources":["../../../src/trails/topo-export.ts"],"names":[],"mappings":"AAUA,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;SAwB1B,CAAC"}
@@ -1,31 +0,0 @@
1
- import { trail } from '@ontrails/core';
2
- import { z } from 'zod';
3
- import { loadApp } from './load-app.js';
4
- import { exportCurrentTopo } from './topo-store-support.js';
5
- import { createIsolatedExampleInput, topoSnapshotOutput, } from './topo-support.js';
6
- export const topoExportTrail = trail('topo.export', {
7
- blaze: async (input, ctx) => {
8
- const rootDir = input.rootDir ?? ctx.cwd ?? process.cwd();
9
- const app = await loadApp(input.module, rootDir);
10
- return exportCurrentTopo(app, { rootDir });
11
- },
12
- description: 'Export the current topo to .trails artifacts',
13
- examples: [
14
- {
15
- input: createIsolatedExampleInput('topo-export'),
16
- name: 'Write the current topo export',
17
- },
18
- ],
19
- input: z.object({
20
- module: z.string().optional().describe('Path to the app module'),
21
- rootDir: z.string().optional().describe('Workspace root directory'),
22
- }),
23
- intent: 'write',
24
- output: z.object({
25
- hash: z.string(),
26
- lockPath: z.string(),
27
- mapPath: z.string(),
28
- snapshot: topoSnapshotOutput,
29
- }),
30
- });
31
- //# sourceMappingURL=topo-export.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"topo-export.js","sourceRoot":"","sources":["../../../src/trails/topo-export.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AACvC,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EACL,0BAA0B,EAC1B,kBAAkB,GACnB,MAAM,mBAAmB,CAAC;AAE3B,MAAM,CAAC,MAAM,eAAe,GAAG,KAAK,CAAC,aAAa,EAAE;IAClD,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;QAC1B,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,IAAI,GAAG,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;QAC1D,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACjD,OAAO,iBAAiB,CAAC,GAAG,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;IAC7C,CAAC;IACD,WAAW,EAAE,8CAA8C;IAC3D,QAAQ,EAAE;QACR;YACE,KAAK,EAAE,0BAA0B,CAAC,aAAa,CAAC;YAChD,IAAI,EAAE,+BAA+B;SACtC;KACF;IACD,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC;QACd,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,wBAAwB,CAAC;QAChE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,0BAA0B,CAAC;KACpE,CAAC;IACF,MAAM,EAAE,OAAO;IACf,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC;QACf,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;QAChB,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE;QACpB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;QACnB,QAAQ,EAAE,kBAAkB;KAC7B,CAAC;CACH,CAAC,CAAC"}
@@ -1,20 +0,0 @@
1
- export declare const topoHistoryTrail: import("@ontrails/core").Trail<{
2
- limit: number;
3
- rootDir?: string | undefined;
4
- }, {
5
- dbPath: string;
6
- limit: number;
7
- pinnedCount: number;
8
- snapshotCount: number;
9
- snapshots: {
10
- createdAt: string;
11
- gitDirty: boolean;
12
- id: string;
13
- resourceCount: number;
14
- signalCount: number;
15
- trailCount: number;
16
- gitSha?: string | undefined;
17
- pinnedAs?: string | undefined;
18
- }[];
19
- }, never>;
20
- //# sourceMappingURL=topo-history.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"topo-history.d.ts","sourceRoot":"","sources":["../../../src/trails/topo-history.ts"],"names":[],"mappings":"AAUA,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;SA2B3B,CAAC"}
@@ -1,32 +0,0 @@
1
- import { Result, trail } from '@ontrails/core';
2
- import { z } from 'zod';
3
- import { DEFAULT_TOPO_HISTORY_LIMIT, createIsolatedExampleInput, listTopoHistory, topoSnapshotOutput, } from './topo-support.js';
4
- export const topoHistoryTrail = trail('topo.history', {
5
- blaze: (input, ctx) => {
6
- const rootDir = input.rootDir ?? ctx.cwd ?? process.cwd();
7
- return Result.ok(listTopoHistory({ limit: input.limit, rootDir }));
8
- },
9
- description: 'List saved topo snapshots, including pinned references',
10
- examples: [
11
- {
12
- input: createIsolatedExampleInput('topo-history'),
13
- name: 'Show topo history',
14
- },
15
- ],
16
- input: z.object({
17
- limit: z
18
- .number()
19
- .default(DEFAULT_TOPO_HISTORY_LIMIT)
20
- .describe('Maximum number of snapshots to return'),
21
- rootDir: z.string().optional().describe('Workspace root directory'),
22
- }),
23
- intent: 'read',
24
- output: z.object({
25
- dbPath: z.string(),
26
- limit: z.number(),
27
- pinnedCount: z.number(),
28
- snapshotCount: z.number(),
29
- snapshots: z.array(topoSnapshotOutput),
30
- }),
31
- });
32
- //# sourceMappingURL=topo-history.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"topo-history.js","sourceRoot":"","sources":["../../../src/trails/topo-history.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EACL,0BAA0B,EAC1B,0BAA0B,EAC1B,eAAe,EACf,kBAAkB,GACnB,MAAM,mBAAmB,CAAC;AAE3B,MAAM,CAAC,MAAM,gBAAgB,GAAG,KAAK,CAAC,cAAc,EAAE;IACpD,KAAK,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;QACpB,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,IAAI,GAAG,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;QAC1D,OAAO,MAAM,CAAC,EAAE,CAAC,eAAe,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;IACrE,CAAC;IACD,WAAW,EAAE,wDAAwD;IACrE,QAAQ,EAAE;QACR;YACE,KAAK,EAAE,0BAA0B,CAAC,cAAc,CAAC;YACjD,IAAI,EAAE,mBAAmB;SAC1B;KACF;IACD,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC;QACd,KAAK,EAAE,CAAC;aACL,MAAM,EAAE;aACR,OAAO,CAAC,0BAA0B,CAAC;aACnC,QAAQ,CAAC,uCAAuC,CAAC;QACpD,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,0BAA0B,CAAC;KACpE,CAAC;IACF,MAAM,EAAE,MAAM;IACd,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC;QACf,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;QAClB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;QACjB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE;QACvB,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE;QACzB,SAAS,EAAE,CAAC,CAAC,KAAK,CAAC,kBAAkB,CAAC;KACvC,CAAC;CACH,CAAC,CAAC"}
@@ -1,17 +0,0 @@
1
- export declare const topoPinTrail: import("@ontrails/core").Trail<{
2
- name: string;
3
- module?: string | undefined;
4
- rootDir?: string | undefined;
5
- }, {
6
- snapshot: {
7
- createdAt: string;
8
- gitDirty: boolean;
9
- id: string;
10
- resourceCount: number;
11
- signalCount: number;
12
- trailCount: number;
13
- gitSha?: string | undefined;
14
- pinnedAs?: string | undefined;
15
- };
16
- }, never>;
17
- //# sourceMappingURL=topo-pin.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"topo-pin.d.ts","sourceRoot":"","sources":["../../../src/trails/topo-pin.ts"],"names":[],"mappings":"AAUA,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;SA2BvB,CAAC"}
@@ -1,31 +0,0 @@
1
- import { Result, trail } from '@ontrails/core';
2
- import { z } from 'zod';
3
- import { loadApp } from './load-app.js';
4
- import { createIsolatedExampleInput, pinCurrentTopoSnapshot, topoSnapshotOutput, } from './topo-support.js';
5
- export const topoPinTrail = trail('topo.pin', {
6
- blaze: async (input, ctx) => {
7
- const rootDir = input.rootDir ?? ctx.cwd ?? process.cwd();
8
- const app = await loadApp(input.module, rootDir);
9
- return Result.ok(pinCurrentTopoSnapshot(app, { name: input.name, rootDir }));
10
- },
11
- description: 'Pin the current topo under a durable name',
12
- examples: [
13
- {
14
- input: {
15
- ...createIsolatedExampleInput('topo-pin'),
16
- name: 'before-auth-refactor',
17
- },
18
- name: 'Pin the current topo',
19
- },
20
- ],
21
- input: z.object({
22
- module: z.string().optional().describe('Path to the app module'),
23
- name: z.string().describe('Pin name'),
24
- rootDir: z.string().optional().describe('Workspace root directory'),
25
- }),
26
- intent: 'write',
27
- output: z.object({
28
- snapshot: topoSnapshotOutput,
29
- }),
30
- });
31
- //# sourceMappingURL=topo-pin.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"topo-pin.js","sourceRoot":"","sources":["../../../src/trails/topo-pin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,EACL,0BAA0B,EAC1B,sBAAsB,EACtB,kBAAkB,GACnB,MAAM,mBAAmB,CAAC;AAE3B,MAAM,CAAC,MAAM,YAAY,GAAG,KAAK,CAAC,UAAU,EAAE;IAC5C,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;QAC1B,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,IAAI,GAAG,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;QAC1D,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACjD,OAAO,MAAM,CAAC,EAAE,CACd,sBAAsB,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE,CAAC,CAC3D,CAAC;IACJ,CAAC;IACD,WAAW,EAAE,2CAA2C;IACxD,QAAQ,EAAE;QACR;YACE,KAAK,EAAE;gBACL,GAAG,0BAA0B,CAAC,UAAU,CAAC;gBACzC,IAAI,EAAE,sBAAsB;aAC7B;YACD,IAAI,EAAE,sBAAsB;SAC7B;KACF;IACD,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC;QACd,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,wBAAwB,CAAC;QAChE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC;QACrC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,0BAA0B,CAAC;KACpE,CAAC;IACF,MAAM,EAAE,OAAO;IACf,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC;QACf,QAAQ,EAAE,kBAAkB;KAC7B,CAAC;CACH,CAAC,CAAC"}
@@ -1,58 +0,0 @@
1
- /**
2
- * Read-only topo store consumer helpers.
3
- *
4
- * Extracted from topo-support.ts to isolate read-only store consumer helpers,
5
- * keeping module boundaries clean.
6
- */
7
- import { Result } from '@ontrails/core';
8
- import type { Topo } from '@ontrails/core';
9
- import type { BriefReport, SurveyListReport } from './topo-reports.js';
10
- import type { TopoSummaryReport, TopoVerifyReport } from './topo-support.js';
11
- interface CurrentTrailDetail {
12
- readonly crosses: string[];
13
- readonly description: string | null;
14
- readonly detours: readonly {
15
- readonly on: string;
16
- readonly maxAttempts: number;
17
- }[] | null;
18
- readonly examples: unknown[];
19
- readonly id: string;
20
- readonly intent: 'destroy' | 'read' | 'write';
21
- readonly kind: string;
22
- readonly pattern: string | null;
23
- readonly resources: string[];
24
- readonly safety: string;
25
- }
26
- interface CurrentResourceDetail {
27
- readonly description: string | null;
28
- readonly health: 'available' | 'none';
29
- readonly id: string;
30
- readonly kind: 'resource';
31
- readonly lifetime: 'singleton';
32
- readonly usedBy: string[];
33
- }
34
- export declare const buildTopoSummary: (app: Topo, options?: {
35
- readonly rootDir?: string;
36
- }) => TopoSummaryReport;
37
- export declare const buildCurrentTopoBrief: (app: Topo, options?: {
38
- readonly rootDir?: string;
39
- }) => BriefReport;
40
- export declare const buildCurrentTopoList: (app: Topo, options?: {
41
- readonly rootDir?: string;
42
- }) => SurveyListReport;
43
- export declare const buildCurrentGuideEntries: (app: Topo, options?: {
44
- readonly rootDir?: string;
45
- }) => readonly {
46
- readonly description: string;
47
- readonly exampleCount: number;
48
- readonly id: string;
49
- readonly kind: string;
50
- }[];
51
- export declare const buildCurrentTopoDetail: (app: Topo, id: string, options?: {
52
- readonly rootDir?: string;
53
- }) => CurrentResourceDetail | CurrentTrailDetail | undefined;
54
- export declare const verifyCurrentTopo: (app: Topo, options?: {
55
- readonly rootDir?: string;
56
- }) => Promise<Result<TopoVerifyReport, Error>>;
57
- export {};
58
- //# sourceMappingURL=topo-read-support.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"topo-read-support.d.ts","sourceRoot":"","sources":["../../../src/trails/topo-read-support.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,OAAO,EAML,MAAM,EACP,MAAM,gBAAgB,CAAC;AACxB,OAAO,KAAK,EAAE,IAAI,EAAgB,MAAM,gBAAgB,CAAC;AAOzD,OAAO,KAAK,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACvE,OAAO,KAAK,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAoB7E,UAAU,kBAAkB;IAC1B,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC;IAC3B,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC,QAAQ,CAAC,OAAO,EACZ,SAAS;QAAE,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;KAAE,EAAE,GAChE,IAAI,CAAC;IACT,QAAQ,CAAC,QAAQ,EAAE,OAAO,EAAE,CAAC;IAC7B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,MAAM,EAAE,SAAS,GAAG,MAAM,GAAG,OAAO,CAAC;IAC9C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,QAAQ,CAAC,SAAS,EAAE,MAAM,EAAE,CAAC;IAC7B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED,UAAU,qBAAqB;IAC7B,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC,QAAQ,CAAC,MAAM,EAAE,WAAW,GAAG,MAAM,CAAC;IACtC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAC1B,QAAQ,CAAC,QAAQ,EAAE,WAAW,CAAC;IAC/B,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC;CAC3B;AA6ID,eAAO,MAAM,gBAAgB,GAC3B,KAAK,IAAI,EACT,UAAU;IAAE,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,KACtC,iBAUF,CAAC;AAEF,eAAO,MAAM,qBAAqB,GAChC,KAAK,IAAI,EACT,UAAU;IAAE,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,KACtC,WAKF,CAAC;AAEF,eAAO,MAAM,oBAAoB,GAC/B,KAAK,IAAI,EACT,UAAU;IAAE,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,KACtC,gBAKF,CAAC;AAEF,eAAO,MAAM,wBAAwB,GACnC,KAAK,IAAI,EACT,UAAU;IAAE,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,KACtC,SAAS;IACV,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB,EAUA,CAAC;AAEF,eAAO,MAAM,sBAAsB,GACjC,KAAK,IAAI,EACT,IAAI,MAAM,EACV,UAAU;IAAE,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,KACtC,qBAAqB,GAAG,kBAAkB,GAAG,SAa/C,CAAC;AAEF,eAAO,MAAM,iBAAiB,GAC5B,KAAK,IAAI,EACT,UAAU;IAAE,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,KACtC,OAAO,CAAC,MAAM,CAAC,gBAAgB,EAAE,KAAK,CAAC,CA0CzC,CAAC"}