@ontrails/trails 1.0.0-beta.2 → 1.0.0-beta.22
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +647 -0
- package/README.md +26 -0
- package/package.json +28 -7
- package/src/app.ts +86 -2
- package/src/clack.ts +22 -0
- package/src/cli.ts +330 -11
- package/src/completions.ts +240 -0
- package/src/lifecycle-source-io.ts +33 -0
- package/src/load-app-mirror.ts +202 -0
- package/src/local-state-io.ts +153 -0
- package/src/mcp-app.ts +30 -0
- package/src/mcp-options.ts +77 -0
- package/src/mcp.ts +8 -0
- package/src/project-writes.ts +377 -0
- package/src/release/bindings.ts +39 -0
- package/src/release/check.ts +818 -0
- package/src/release/config.ts +63 -0
- package/src/release/contract-facts.ts +425 -0
- package/src/release/index.ts +85 -0
- package/src/release/native-bun-publish.ts +651 -0
- package/src/release/native-bun-registry.ts +350 -0
- package/src/release/packed-artifacts-smoke.ts +236 -0
- package/src/release/smoke.ts +46 -0
- package/src/release/wayfinder-dogfood-smoke.ts +226 -0
- package/src/retired-topo-command.ts +36 -0
- package/src/run-adapter-check.ts +76 -0
- package/src/run-collision.ts +126 -0
- package/src/run-completions-install.ts +179 -0
- package/src/run-example.ts +149 -0
- package/src/run-examples.ts +148 -0
- package/src/run-quiet.ts +75 -0
- package/src/run-release-check.ts +74 -0
- package/src/run-trace.ts +273 -0
- package/src/run-warden.ts +39 -0
- package/src/run-watch.ts +432 -0
- package/src/scaffold-version-sync.ts +183 -0
- package/src/scaffold-versions.generated.ts +12 -0
- package/src/trails/adapter-check.ts +244 -0
- package/src/trails/add-surface.ts +94 -40
- package/src/trails/add-trail.ts +79 -41
- package/src/trails/add-verify.ts +95 -25
- package/src/trails/compile.ts +67 -0
- package/src/trails/completions-complete.ts +165 -0
- package/src/trails/completions.ts +47 -0
- package/src/trails/create-adapter.ts +1084 -0
- package/src/trails/create-scaffold.ts +399 -104
- package/src/trails/create-versions.ts +62 -0
- package/src/trails/create.ts +185 -71
- package/src/trails/deprecate.ts +59 -0
- package/src/trails/dev-clean.ts +82 -0
- package/src/trails/dev-reset.ts +50 -0
- package/src/trails/dev-stats.ts +72 -0
- package/src/trails/dev-support.ts +340 -0
- package/src/trails/doctor.ts +56 -0
- package/src/trails/draft-promote.ts +949 -0
- package/src/trails/guide.ts +74 -68
- package/src/trails/load-app.ts +1143 -15
- package/src/trails/project.ts +17 -3
- package/src/trails/release-check.ts +104 -0
- package/src/trails/release-smoke.ts +48 -0
- package/src/trails/revise.ts +53 -0
- package/src/trails/root-dir.ts +21 -0
- package/src/trails/run-example.ts +491 -0
- package/src/trails/run-examples.ts +145 -0
- package/src/trails/run.ts +410 -0
- package/src/trails/scaffold-json.ts +58 -0
- package/src/trails/survey.ts +881 -226
- package/src/trails/topo-activation.ts +385 -0
- package/src/trails/topo-constants.ts +2 -0
- package/src/trails/topo-history.ts +47 -0
- package/src/trails/topo-output-schemas.ts +248 -0
- package/src/trails/topo-pin.ts +52 -0
- package/src/trails/topo-read-support.ts +313 -0
- package/src/trails/topo-reports.ts +807 -0
- package/src/trails/topo-store-support.ts +174 -0
- package/src/trails/topo-support.ts +220 -0
- package/src/trails/topo-unpin.ts +61 -0
- package/src/trails/topo.ts +106 -0
- package/src/trails/validate.ts +38 -0
- package/src/trails/version-lifecycle-support.ts +945 -0
- package/src/trails/warden-guide.ts +129 -0
- package/src/trails/warden.ts +165 -58
- package/src/versions.ts +31 -0
- package/.turbo/turbo-build.log +0 -1
- package/.turbo/turbo-lint.log +0 -3
- package/.turbo/turbo-typecheck.log +0 -1
- package/__tests__/examples.test.ts +0 -6
- package/dist/bin/trails.d.ts +0 -3
- package/dist/bin/trails.d.ts.map +0 -1
- package/dist/bin/trails.js +0 -4
- package/dist/bin/trails.js.map +0 -1
- package/dist/src/app.d.ts +0 -2
- package/dist/src/app.d.ts.map +0 -1
- package/dist/src/app.js +0 -11
- package/dist/src/app.js.map +0 -1
- package/dist/src/clack.d.ts +0 -9
- package/dist/src/clack.d.ts.map +0 -1
- package/dist/src/clack.js +0 -62
- package/dist/src/clack.js.map +0 -1
- package/dist/src/cli.d.ts +0 -2
- package/dist/src/cli.d.ts.map +0 -1
- package/dist/src/cli.js +0 -13
- package/dist/src/cli.js.map +0 -1
- package/dist/src/trails/add-surface.d.ts +0 -13
- package/dist/src/trails/add-surface.d.ts.map +0 -1
- package/dist/src/trails/add-surface.js +0 -88
- package/dist/src/trails/add-surface.js.map +0 -1
- package/dist/src/trails/add-trail.d.ts +0 -11
- package/dist/src/trails/add-trail.d.ts.map +0 -1
- package/dist/src/trails/add-trail.js +0 -85
- package/dist/src/trails/add-trail.js.map +0 -1
- package/dist/src/trails/add-verify.d.ts +0 -10
- package/dist/src/trails/add-verify.d.ts.map +0 -1
- package/dist/src/trails/add-verify.js +0 -67
- package/dist/src/trails/add-verify.js.map +0 -1
- package/dist/src/trails/create-scaffold.d.ts +0 -15
- package/dist/src/trails/create-scaffold.d.ts.map +0 -1
- package/dist/src/trails/create-scaffold.js +0 -288
- package/dist/src/trails/create-scaffold.js.map +0 -1
- package/dist/src/trails/create.d.ts +0 -22
- package/dist/src/trails/create.d.ts.map +0 -1
- package/dist/src/trails/create.js +0 -121
- package/dist/src/trails/create.js.map +0 -1
- package/dist/src/trails/guide.d.ts +0 -11
- package/dist/src/trails/guide.d.ts.map +0 -1
- package/dist/src/trails/guide.js +0 -80
- package/dist/src/trails/guide.js.map +0 -1
- package/dist/src/trails/load-app.d.ts +0 -4
- package/dist/src/trails/load-app.d.ts.map +0 -1
- package/dist/src/trails/load-app.js +0 -24
- package/dist/src/trails/load-app.js.map +0 -1
- package/dist/src/trails/project.d.ts +0 -8
- package/dist/src/trails/project.d.ts.map +0 -1
- package/dist/src/trails/project.js +0 -43
- package/dist/src/trails/project.js.map +0 -1
- package/dist/src/trails/survey.d.ts +0 -33
- package/dist/src/trails/survey.d.ts.map +0 -1
- package/dist/src/trails/survey.js +0 -225
- package/dist/src/trails/survey.js.map +0 -1
- package/dist/src/trails/warden.d.ts +0 -19
- package/dist/src/trails/warden.d.ts.map +0 -1
- package/dist/src/trails/warden.js +0 -88
- package/dist/src/trails/warden.js.map +0 -1
- package/dist/tsconfig.tsbuildinfo +0 -1
- package/src/__tests__/create.test.ts +0 -349
- package/src/__tests__/guide.test.ts +0 -91
- package/src/__tests__/load-app.test.ts +0 -15
- package/src/__tests__/survey.test.ts +0 -161
- package/src/__tests__/warden.test.ts +0 -74
- package/tsconfig.json +0 -9
|
@@ -1,121 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* `create` route -- Create a new Trails project.
|
|
3
|
-
*
|
|
4
|
-
* Composes create.scaffold, add.surface, and add.verify sub-trails
|
|
5
|
-
* via ctx.follow().
|
|
6
|
-
*/
|
|
7
|
-
import { Result, hike } from '@ontrails/core';
|
|
8
|
-
import { z } from 'zod';
|
|
9
|
-
const buildScaffoldInput = (input) => ({
|
|
10
|
-
...(input.dir === undefined ? {} : { dir: input.dir }),
|
|
11
|
-
name: input.name,
|
|
12
|
-
starter: input.starter,
|
|
13
|
-
});
|
|
14
|
-
const buildSurfaceInput = (dir, surface) => ({
|
|
15
|
-
dir,
|
|
16
|
-
surface,
|
|
17
|
-
});
|
|
18
|
-
const buildVerifyInput = (input) => ({
|
|
19
|
-
...(input.dir === undefined ? {} : { dir: input.dir }),
|
|
20
|
-
name: input.name,
|
|
21
|
-
});
|
|
22
|
-
const scaffoldProject = (follow, input) => follow('create.scaffold', buildScaffoldInput(input));
|
|
23
|
-
const addSurfaceFiles = async (follow, dir, surfaces) => {
|
|
24
|
-
const created = [];
|
|
25
|
-
for (const surface of surfaces) {
|
|
26
|
-
const result = await follow('add.surface', buildSurfaceInput(dir, surface));
|
|
27
|
-
if (result.isErr()) {
|
|
28
|
-
return Result.err(result.error);
|
|
29
|
-
}
|
|
30
|
-
created.push(result.value.created);
|
|
31
|
-
}
|
|
32
|
-
return Result.ok(created);
|
|
33
|
-
};
|
|
34
|
-
const collectVerifyFiles = async (follow, input) => {
|
|
35
|
-
if (!input.verify) {
|
|
36
|
-
return Result.ok([]);
|
|
37
|
-
}
|
|
38
|
-
const result = await follow('add.verify', buildVerifyInput(input));
|
|
39
|
-
return result.isErr()
|
|
40
|
-
? Result.err(result.error)
|
|
41
|
-
: Result.ok(result.value.created);
|
|
42
|
-
};
|
|
43
|
-
const collectCreatedFiles = (scaffolded, surfaces, verify) => [...scaffolded, ...surfaces, ...verify];
|
|
44
|
-
const runCreate = async (follow, input) => {
|
|
45
|
-
const scaffolded = await scaffoldProject(follow, input);
|
|
46
|
-
if (scaffolded.isErr()) {
|
|
47
|
-
return Result.err(scaffolded.error);
|
|
48
|
-
}
|
|
49
|
-
const surfaceResults = await addSurfaceFiles(follow, scaffolded.value.dir, input.surfaces);
|
|
50
|
-
if (surfaceResults.isErr()) {
|
|
51
|
-
return Result.err(surfaceResults.error);
|
|
52
|
-
}
|
|
53
|
-
const verifyFiles = await collectVerifyFiles(follow, input);
|
|
54
|
-
if (verifyFiles.isErr()) {
|
|
55
|
-
return Result.err(verifyFiles.error);
|
|
56
|
-
}
|
|
57
|
-
return Result.ok({
|
|
58
|
-
created: collectCreatedFiles(scaffolded.value.created, surfaceResults.value, verifyFiles.value),
|
|
59
|
-
dir: scaffolded.value.dir,
|
|
60
|
-
name: input.name,
|
|
61
|
-
});
|
|
62
|
-
};
|
|
63
|
-
// ---------------------------------------------------------------------------
|
|
64
|
-
// Route definition
|
|
65
|
-
// ---------------------------------------------------------------------------
|
|
66
|
-
export const createRoute = hike('create', {
|
|
67
|
-
description: 'Create a new Trails project',
|
|
68
|
-
fields: {
|
|
69
|
-
starter: {
|
|
70
|
-
options: [
|
|
71
|
-
{
|
|
72
|
-
hint: 'One trail, one example',
|
|
73
|
-
label: 'Hello world',
|
|
74
|
-
value: 'hello',
|
|
75
|
-
},
|
|
76
|
-
{
|
|
77
|
-
hint: '4 trails, hike, event, store',
|
|
78
|
-
label: 'Entity CRUD',
|
|
79
|
-
value: 'entity',
|
|
80
|
-
},
|
|
81
|
-
{ hint: 'Just the structure', label: 'Empty', value: 'empty' },
|
|
82
|
-
],
|
|
83
|
-
},
|
|
84
|
-
surfaces: {
|
|
85
|
-
options: [
|
|
86
|
-
{ hint: 'Commander-based command line', label: 'CLI', value: 'cli' },
|
|
87
|
-
{
|
|
88
|
-
hint: 'Model Context Protocol for agents',
|
|
89
|
-
label: 'MCP',
|
|
90
|
-
value: 'mcp',
|
|
91
|
-
},
|
|
92
|
-
],
|
|
93
|
-
},
|
|
94
|
-
},
|
|
95
|
-
follows: ['create.scaffold', 'add.surface', 'add.verify'],
|
|
96
|
-
implementation: async (input, ctx) => {
|
|
97
|
-
if (!ctx.follow) {
|
|
98
|
-
return Result.err(new Error('create route requires ctx.follow'));
|
|
99
|
-
}
|
|
100
|
-
return await runCreate(ctx.follow, input);
|
|
101
|
-
},
|
|
102
|
-
input: z.object({
|
|
103
|
-
dir: z.string().optional().describe('Parent directory'),
|
|
104
|
-
name: z.string().describe('Project name'),
|
|
105
|
-
starter: z
|
|
106
|
-
.enum(['hello', 'entity', 'empty'])
|
|
107
|
-
.default('hello')
|
|
108
|
-
.describe('Starter trail'),
|
|
109
|
-
surfaces: z
|
|
110
|
-
.array(z.enum(['cli', 'mcp']))
|
|
111
|
-
.default(['cli'])
|
|
112
|
-
.describe('Surfaces'),
|
|
113
|
-
verify: z.boolean().default(true).describe('Include testing + warden'),
|
|
114
|
-
}),
|
|
115
|
-
output: z.object({
|
|
116
|
-
created: z.array(z.string()),
|
|
117
|
-
dir: z.string(),
|
|
118
|
-
name: z.string(),
|
|
119
|
-
}),
|
|
120
|
-
});
|
|
121
|
-
//# sourceMappingURL=create.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"create.js","sourceRoot":"","sources":["../../../src/trails/create.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* `guide` trail -- Runtime guidance.
|
|
3
|
-
*
|
|
4
|
-
* Lists trails with descriptions and examples. Detailed guidance is planned for post-v1.
|
|
5
|
-
*/
|
|
6
|
-
import type { Trail } from '@ontrails/core';
|
|
7
|
-
export declare const guideTrail: Trail<{
|
|
8
|
-
module: string;
|
|
9
|
-
trailId?: string | undefined;
|
|
10
|
-
}, object>;
|
|
11
|
-
//# sourceMappingURL=guide.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"guide.d.ts","sourceRoot":"","sources":["../../../src/trails/guide.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAQ,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAkDlD,eAAO,MAAM,UAAU;;;UA+CrB,CAAC"}
|
package/dist/src/trails/guide.js
DELETED
|
@@ -1,80 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* `guide` trail -- Runtime guidance.
|
|
3
|
-
*
|
|
4
|
-
* Lists trails with descriptions and examples. Detailed guidance is planned for post-v1.
|
|
5
|
-
*/
|
|
6
|
-
import { Result, trail } from '@ontrails/core';
|
|
7
|
-
import { z } from 'zod';
|
|
8
|
-
import { loadApp } from './load-app.js';
|
|
9
|
-
// ---------------------------------------------------------------------------
|
|
10
|
-
// Helpers
|
|
11
|
-
// ---------------------------------------------------------------------------
|
|
12
|
-
const toGuideEntries = (app) => {
|
|
13
|
-
const entries = [];
|
|
14
|
-
for (const item of app.list()) {
|
|
15
|
-
const raw = item;
|
|
16
|
-
entries.push({
|
|
17
|
-
description: typeof raw['description'] === 'string'
|
|
18
|
-
? raw['description']
|
|
19
|
-
: '(no description)',
|
|
20
|
-
exampleCount: Array.isArray(raw['examples'])
|
|
21
|
-
? raw['examples'].length
|
|
22
|
-
: 0,
|
|
23
|
-
id: item.id,
|
|
24
|
-
kind: item.kind,
|
|
25
|
-
});
|
|
26
|
-
}
|
|
27
|
-
return entries;
|
|
28
|
-
};
|
|
29
|
-
const toGuideDetail = (item) => ({
|
|
30
|
-
description: item.description ?? null,
|
|
31
|
-
detours: item.detours ?? null,
|
|
32
|
-
examples: item.examples ?? [],
|
|
33
|
-
id: item.id,
|
|
34
|
-
kind: item.kind,
|
|
35
|
-
});
|
|
36
|
-
export const guideTrail = trail('guide', {
|
|
37
|
-
description: 'Runtime guidance for trails',
|
|
38
|
-
examples: [
|
|
39
|
-
{
|
|
40
|
-
description: 'Lists all trails with descriptions and example counts',
|
|
41
|
-
input: {},
|
|
42
|
-
name: 'List trail guidance',
|
|
43
|
-
},
|
|
44
|
-
],
|
|
45
|
-
implementation: async (input, ctx) => {
|
|
46
|
-
const app = await loadApp(input.module, ctx.cwd ?? '.');
|
|
47
|
-
if (input.trailId) {
|
|
48
|
-
const item = app.get(input.trailId);
|
|
49
|
-
if (!item) {
|
|
50
|
-
return Result.err(new Error(`Trail not found: ${input.trailId}`));
|
|
51
|
-
}
|
|
52
|
-
return Result.ok(toGuideDetail(item));
|
|
53
|
-
}
|
|
54
|
-
return Result.ok(toGuideEntries(app));
|
|
55
|
-
},
|
|
56
|
-
input: z.object({
|
|
57
|
-
module: z
|
|
58
|
-
.string()
|
|
59
|
-
.default('./src/app.ts')
|
|
60
|
-
.describe('Path to the app module'),
|
|
61
|
-
trailId: z.string().optional().describe('Trail ID for detailed guidance'),
|
|
62
|
-
}),
|
|
63
|
-
output: z.union([
|
|
64
|
-
z.array(z.object({
|
|
65
|
-
description: z.string(),
|
|
66
|
-
exampleCount: z.number(),
|
|
67
|
-
id: z.string(),
|
|
68
|
-
kind: z.string(),
|
|
69
|
-
})),
|
|
70
|
-
z.object({
|
|
71
|
-
description: z.string().nullable(),
|
|
72
|
-
detours: z.unknown().nullable(),
|
|
73
|
-
examples: z.array(z.unknown()),
|
|
74
|
-
id: z.string(),
|
|
75
|
-
kind: z.string(),
|
|
76
|
-
}),
|
|
77
|
-
]),
|
|
78
|
-
readOnly: true,
|
|
79
|
-
});
|
|
80
|
-
//# sourceMappingURL=guide.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"guide.js","sourceRoot":"","sources":["../../../src/trails/guide.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"load-app.d.ts","sourceRoot":"","sources":["../../../src/trails/load-app.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAgB3C,6DAA6D;AAC7D,eAAO,MAAM,OAAO,GAClB,YAAY,MAAM,EAClB,KAAK,MAAM,KACV,OAAO,CAAC,IAAI,CAad,CAAC"}
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
import { isAbsolute, resolve } from 'node:path';
|
|
2
|
-
import { pathToFileURL } from 'node:url';
|
|
3
|
-
const URL_SCHEME = /^[a-zA-Z][a-zA-Z\d+.-]*:/;
|
|
4
|
-
/** Resolve a module path from cwd so CLI defaults behave like shell paths. */
|
|
5
|
-
const resolveModuleSpecifier = (modulePath, cwd) => {
|
|
6
|
-
if (URL_SCHEME.test(modulePath)) {
|
|
7
|
-
return modulePath;
|
|
8
|
-
}
|
|
9
|
-
const absolutePath = isAbsolute(modulePath)
|
|
10
|
-
? modulePath
|
|
11
|
-
: resolve(cwd, modulePath);
|
|
12
|
-
return pathToFileURL(absolutePath).href;
|
|
13
|
-
};
|
|
14
|
-
/** Load a Topo export from a module path relative to cwd. */
|
|
15
|
-
export const loadApp = async (modulePath, cwd) => {
|
|
16
|
-
const mod = (await import(resolveModuleSpecifier(modulePath, cwd)));
|
|
17
|
-
const app = (mod['default'] ?? mod['app']);
|
|
18
|
-
if (!app?.trails) {
|
|
19
|
-
throw new Error(`Could not find a Topo export in "${modulePath}". ` +
|
|
20
|
-
"Expected a default or named 'app' export created with topo().");
|
|
21
|
-
}
|
|
22
|
-
return app;
|
|
23
|
-
};
|
|
24
|
-
//# sourceMappingURL=load-app.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"load-app.js","sourceRoot":"","sources":["../../../src/trails/load-app.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAIzC,MAAM,UAAU,GAAG,0BAA0B,CAAC;AAE9C,8EAA8E;AAC9E,MAAM,sBAAsB,GAAG,CAAC,UAAkB,EAAE,GAAW,EAAU,EAAE;IACzE,IAAI,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;QAChC,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,MAAM,YAAY,GAAG,UAAU,CAAC,UAAU,CAAC;QACzC,CAAC,CAAC,UAAU;QACZ,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;IAC7B,OAAO,aAAa,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC;AAC1C,CAAC,CAAC;AAEF,6DAA6D;AAC7D,MAAM,CAAC,MAAM,OAAO,GAAG,KAAK,EAC1B,UAAkB,EAClB,GAAW,EACI,EAAE;IACjB,MAAM,GAAG,GAAG,CAAC,MAAM,MAAM,CAAC,sBAAsB,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC,CAGjE,CAAC;IACF,MAAM,GAAG,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC,CAAqB,CAAC;IAC/D,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,CAAC;QACjB,MAAM,IAAI,KAAK,CACb,oCAAoC,UAAU,KAAK;YACjD,+DAA+D,CAClE,CAAC;IACJ,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC,CAAC"}
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Shared Trails-project detection helpers for scaffold trails.
|
|
3
|
-
*/
|
|
4
|
-
/** Find the app module that defines a topo inside `src/`. */
|
|
5
|
-
export declare const findTopoPath: (cwd: string) => Promise<string | null>;
|
|
6
|
-
/** Detect whether the directory already looks like a Trails project. */
|
|
7
|
-
export declare const isInsideProject: (cwd: string) => Promise<boolean>;
|
|
8
|
-
//# sourceMappingURL=project.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"project.d.ts","sourceRoot":"","sources":["../../../src/trails/project.ts"],"names":[],"mappings":"AAAA;;GAEG;AAqBH,6DAA6D;AAC7D,eAAO,MAAM,YAAY,GAAU,KAAK,MAAM,KAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAkBrE,CAAC;AAEF,wEAAwE;AACxE,eAAO,MAAM,eAAe,GAAU,KAAK,MAAM,KAAG,OAAO,CAAC,OAAO,CAKlE,CAAC"}
|
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Shared Trails-project detection helpers for scaffold trails.
|
|
3
|
-
*/
|
|
4
|
-
import { existsSync } from 'node:fs';
|
|
5
|
-
import { join } from 'node:path';
|
|
6
|
-
/** Return all TypeScript entries in a project's src directory. */
|
|
7
|
-
const scanSourceEntries = (srcDir) => [
|
|
8
|
-
...new Bun.Glob('*.ts').scanSync({ cwd: srcDir }),
|
|
9
|
-
];
|
|
10
|
-
/** Resolve an entry to an app import if it contains topo(). */
|
|
11
|
-
const toTopoImport = async (srcDir, entry) => {
|
|
12
|
-
const content = await Bun.file(join(srcDir, entry)).text();
|
|
13
|
-
return content.includes('topo(')
|
|
14
|
-
? `./${entry.replace(/\.ts$/, '.js')}`
|
|
15
|
-
: null;
|
|
16
|
-
};
|
|
17
|
-
/** Find the app module that defines a topo inside `src/`. */
|
|
18
|
-
export const findTopoPath = async (cwd) => {
|
|
19
|
-
const srcDir = join(cwd, 'src');
|
|
20
|
-
if (!existsSync(srcDir)) {
|
|
21
|
-
return null;
|
|
22
|
-
}
|
|
23
|
-
try {
|
|
24
|
-
for (const entry of scanSourceEntries(srcDir)) {
|
|
25
|
-
const appImport = await toTopoImport(srcDir, entry);
|
|
26
|
-
if (appImport) {
|
|
27
|
-
return appImport;
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
catch {
|
|
32
|
-
return null;
|
|
33
|
-
}
|
|
34
|
-
return null;
|
|
35
|
-
};
|
|
36
|
-
/** Detect whether the directory already looks like a Trails project. */
|
|
37
|
-
export const isInsideProject = async (cwd) => {
|
|
38
|
-
if (existsSync(join(cwd, '.trails'))) {
|
|
39
|
-
return true;
|
|
40
|
-
}
|
|
41
|
-
return (await findTopoPath(cwd)) !== null;
|
|
42
|
-
};
|
|
43
|
-
//# sourceMappingURL=project.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"project.js","sourceRoot":"","sources":["../../../src/trails/project.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,kEAAkE;AAClE,MAAM,iBAAiB,GAAG,CAAC,MAAc,EAAY,EAAE,CAAC;IACtD,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC;CAClD,CAAC;AAEF,+DAA+D;AAC/D,MAAM,YAAY,GAAG,KAAK,EACxB,MAAc,EACd,KAAa,EACW,EAAE;IAC1B,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAC3D,OAAO,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC;QAC9B,CAAC,CAAC,KAAK,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE;QACtC,CAAC,CAAC,IAAI,CAAC;AACX,CAAC,CAAC;AAEF,6DAA6D;AAC7D,MAAM,CAAC,MAAM,YAAY,GAAG,KAAK,EAAE,GAAW,EAA0B,EAAE;IACxE,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IAChC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;QACxB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,CAAC;QACH,KAAK,MAAM,KAAK,IAAI,iBAAiB,CAAC,MAAM,CAAC,EAAE,CAAC;YAC9C,MAAM,SAAS,GAAG,MAAM,YAAY,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;YACpD,IAAI,SAAS,EAAE,CAAC;gBACd,OAAO,SAAS,CAAC;YACnB,CAAC;QACH,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAEF,wEAAwE;AACxE,MAAM,CAAC,MAAM,eAAe,GAAG,KAAK,EAAE,GAAW,EAAoB,EAAE;IACrE,IAAI,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC,EAAE,CAAC;QACrC,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,CAAC,MAAM,YAAY,CAAC,GAAG,CAAC,CAAC,KAAK,IAAI,CAAC;AAC5C,CAAC,CAAC"}
|
|
@@ -1,33 +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 type { Topo, Trail } from '@ontrails/core';
|
|
8
|
-
export interface BriefReport {
|
|
9
|
-
readonly name: string;
|
|
10
|
-
readonly version: string;
|
|
11
|
-
readonly contractVersion: string;
|
|
12
|
-
readonly features: {
|
|
13
|
-
readonly outputSchemas: boolean;
|
|
14
|
-
readonly examples: boolean;
|
|
15
|
-
readonly detours: boolean;
|
|
16
|
-
readonly hikes: boolean;
|
|
17
|
-
readonly events: boolean;
|
|
18
|
-
};
|
|
19
|
-
readonly trails: number;
|
|
20
|
-
readonly hikes: number;
|
|
21
|
-
readonly events: number;
|
|
22
|
-
}
|
|
23
|
-
/** Generate a compact capability report for the given topo. */
|
|
24
|
-
export declare const generateBriefReport: (app: Topo) => BriefReport;
|
|
25
|
-
export declare const surveyTrail: Trail<{
|
|
26
|
-
breakingOnly: boolean;
|
|
27
|
-
brief: boolean;
|
|
28
|
-
generate: boolean;
|
|
29
|
-
module: string;
|
|
30
|
-
diff?: string | undefined;
|
|
31
|
-
trailId?: string | undefined;
|
|
32
|
-
}, object>;
|
|
33
|
-
//# sourceMappingURL=survey.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"survey.d.ts","sourceRoot":"","sources":["../../../src/trails/survey.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAmBlD,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,QAAQ,EAAE;QACjB,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAC;QAChC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;QAC3B,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;QAC1B,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;QACxB,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;KAC1B,CAAC;IACF,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAwBD,+DAA+D;AAC/D,eAAO,MAAM,mBAAmB,GAAI,KAAK,IAAI,KAAG,WAkB/C,CAAC;AA2HF,eAAO,MAAM,WAAW;;;;;;;UAoGtB,CAAC"}
|
|
@@ -1,225 +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 { Result, trail } from '@ontrails/core';
|
|
8
|
-
import { diffSurfaceMaps, generateSurfaceMap, hashSurfaceMap, readSurfaceMap, writeSurfaceLock, writeSurfaceMap, } from '@ontrails/schema';
|
|
9
|
-
import { z } from 'zod';
|
|
10
|
-
import { loadApp } from './load-app.js';
|
|
11
|
-
/** Check if a trail has a specific feature. */
|
|
12
|
-
const trailHas = (raw, key) => {
|
|
13
|
-
if (key === 'examples') {
|
|
14
|
-
return Array.isArray(raw[key]) && raw[key].length > 0;
|
|
15
|
-
}
|
|
16
|
-
return Boolean(raw[key]);
|
|
17
|
-
};
|
|
18
|
-
/** Detect which features are used across trails. */
|
|
19
|
-
const detectFeatures = (app) => {
|
|
20
|
-
const trails = [...app.trails.values()].map((item) => item);
|
|
21
|
-
return {
|
|
22
|
-
hasDetours: trails.some((r) => trailHas(r, 'detours')),
|
|
23
|
-
hasExamples: trails.some((r) => trailHas(r, 'examples')),
|
|
24
|
-
hasOutputSchemas: trails.some((r) => trailHas(r, 'output')),
|
|
25
|
-
};
|
|
26
|
-
};
|
|
27
|
-
/** Generate a compact capability report for the given topo. */
|
|
28
|
-
export const generateBriefReport = (app) => {
|
|
29
|
-
const { hasDetours, hasExamples, hasOutputSchemas } = detectFeatures(app);
|
|
30
|
-
return {
|
|
31
|
-
contractVersion: '2026-03',
|
|
32
|
-
events: app.events.size,
|
|
33
|
-
features: {
|
|
34
|
-
detours: hasDetours,
|
|
35
|
-
events: app.events.size > 0,
|
|
36
|
-
examples: hasExamples,
|
|
37
|
-
hikes: app.hikes.size > 0,
|
|
38
|
-
outputSchemas: hasOutputSchemas,
|
|
39
|
-
},
|
|
40
|
-
hikes: app.hikes.size,
|
|
41
|
-
name: app.name,
|
|
42
|
-
trails: app.trails.size,
|
|
43
|
-
version: '0.1.0',
|
|
44
|
-
};
|
|
45
|
-
};
|
|
46
|
-
// ---------------------------------------------------------------------------
|
|
47
|
-
// Formatting helpers
|
|
48
|
-
// ---------------------------------------------------------------------------
|
|
49
|
-
const safetyLabel = (entry) => {
|
|
50
|
-
if (entry.destructive) {
|
|
51
|
-
return 'destructive';
|
|
52
|
-
}
|
|
53
|
-
if (entry.readOnly) {
|
|
54
|
-
return 'readOnly';
|
|
55
|
-
}
|
|
56
|
-
return '-';
|
|
57
|
-
};
|
|
58
|
-
const formatTrailList = (app) => {
|
|
59
|
-
const items = app.list();
|
|
60
|
-
const entries = items.map((item) => {
|
|
61
|
-
const safety = safetyLabel(item);
|
|
62
|
-
const examples = Array.isArray(item.examples)
|
|
63
|
-
? item.examples.length
|
|
64
|
-
: 0;
|
|
65
|
-
return {
|
|
66
|
-
examples,
|
|
67
|
-
id: item.id,
|
|
68
|
-
kind: item.kind,
|
|
69
|
-
safety,
|
|
70
|
-
};
|
|
71
|
-
});
|
|
72
|
-
return { count: items.length, entries };
|
|
73
|
-
};
|
|
74
|
-
/**
|
|
75
|
-
* Build a human-readable detail view for a single trail.
|
|
76
|
-
*
|
|
77
|
-
* Overlaps with `trailToEntry` in `@ontrails/schema` which builds the
|
|
78
|
-
* surface-map entry. The two serve different audiences (human display vs
|
|
79
|
-
* machine-diffable surface map) so they are kept separate.
|
|
80
|
-
*/
|
|
81
|
-
const formatTrailDetail = (item) => {
|
|
82
|
-
const safety = safetyLabel(item);
|
|
83
|
-
return {
|
|
84
|
-
description: item.description ?? null,
|
|
85
|
-
detours: item.detours ?? null,
|
|
86
|
-
examples: item.examples ?? [],
|
|
87
|
-
id: item.id,
|
|
88
|
-
kind: item.kind,
|
|
89
|
-
safety,
|
|
90
|
-
};
|
|
91
|
-
};
|
|
92
|
-
const formatDiff = (diff) => ({
|
|
93
|
-
breaking: diff.breaking,
|
|
94
|
-
hasBreaking: diff.hasBreaking,
|
|
95
|
-
info: diff.info,
|
|
96
|
-
warnings: diff.warnings,
|
|
97
|
-
});
|
|
98
|
-
const buildSurveyDiff = async (app, breakingOnly) => {
|
|
99
|
-
const currentMap = generateSurfaceMap(app);
|
|
100
|
-
const previousMap = await readSurfaceMap();
|
|
101
|
-
if (!previousMap) {
|
|
102
|
-
return Result.err(new Error('No previous surface map found. Run `trails survey generate` first.'));
|
|
103
|
-
}
|
|
104
|
-
const diff = diffSurfaceMaps(previousMap, currentMap);
|
|
105
|
-
return Result.ok(breakingOnly
|
|
106
|
-
? formatDiff({
|
|
107
|
-
...diff,
|
|
108
|
-
entries: diff.breaking,
|
|
109
|
-
info: [],
|
|
110
|
-
warnings: [],
|
|
111
|
-
})
|
|
112
|
-
: formatDiff(diff));
|
|
113
|
-
};
|
|
114
|
-
const buildSurveyDetail = (app, trailId) => {
|
|
115
|
-
const item = app.get(trailId);
|
|
116
|
-
if (!item) {
|
|
117
|
-
return Result.err(new Error(`Trail not found: ${trailId}`));
|
|
118
|
-
}
|
|
119
|
-
return Result.ok(formatTrailDetail(item));
|
|
120
|
-
};
|
|
121
|
-
const buildSurveyGenerate = async (app) => {
|
|
122
|
-
const surfaceMap = generateSurfaceMap(app);
|
|
123
|
-
const mapPath = await writeSurfaceMap(surfaceMap);
|
|
124
|
-
const hash = hashSurfaceMap(surfaceMap);
|
|
125
|
-
const lockPath = await writeSurfaceLock(hash);
|
|
126
|
-
return Result.ok({ hash, lockPath, mapPath });
|
|
127
|
-
};
|
|
128
|
-
// ---------------------------------------------------------------------------
|
|
129
|
-
// Trail definition
|
|
130
|
-
// ---------------------------------------------------------------------------
|
|
131
|
-
export const surveyTrail = trail('survey', {
|
|
132
|
-
description: 'Full topo introspection',
|
|
133
|
-
examples: [
|
|
134
|
-
{
|
|
135
|
-
description: 'Lists all registered trails with safety and surface info',
|
|
136
|
-
input: {},
|
|
137
|
-
name: 'List all trails',
|
|
138
|
-
},
|
|
139
|
-
{
|
|
140
|
-
description: 'Quick capability summary with counts and feature flags',
|
|
141
|
-
input: { brief: true },
|
|
142
|
-
name: 'Brief capability report',
|
|
143
|
-
},
|
|
144
|
-
],
|
|
145
|
-
implementation: async (input, ctx) => {
|
|
146
|
-
const app = await loadApp(input.module, ctx.cwd ?? '.');
|
|
147
|
-
if (input.brief) {
|
|
148
|
-
return Result.ok(generateBriefReport(app));
|
|
149
|
-
}
|
|
150
|
-
if (input.diff) {
|
|
151
|
-
return await buildSurveyDiff(app, input.breakingOnly);
|
|
152
|
-
}
|
|
153
|
-
if (input.trailId) {
|
|
154
|
-
return buildSurveyDetail(app, input.trailId);
|
|
155
|
-
}
|
|
156
|
-
if (input.generate) {
|
|
157
|
-
return await buildSurveyGenerate(app);
|
|
158
|
-
}
|
|
159
|
-
return Result.ok(formatTrailList(app));
|
|
160
|
-
},
|
|
161
|
-
input: z.object({
|
|
162
|
-
breakingOnly: z
|
|
163
|
-
.boolean()
|
|
164
|
-
.default(false)
|
|
165
|
-
.describe('Only show breaking changes'),
|
|
166
|
-
brief: z.boolean().default(false).describe('Quick capability summary'),
|
|
167
|
-
diff: z.string().optional().describe('Diff against a git ref'),
|
|
168
|
-
generate: z
|
|
169
|
-
.boolean()
|
|
170
|
-
.default(false)
|
|
171
|
-
.describe('Generate surface map and lock file'),
|
|
172
|
-
module: z
|
|
173
|
-
.string()
|
|
174
|
-
.default('./src/app.ts')
|
|
175
|
-
.describe('Path to the app module'),
|
|
176
|
-
trailId: z.string().optional().describe('Trail ID for detail view'),
|
|
177
|
-
}),
|
|
178
|
-
output: z.union([
|
|
179
|
-
z.object({
|
|
180
|
-
count: z.number(),
|
|
181
|
-
entries: z.array(z.object({
|
|
182
|
-
examples: z.number(),
|
|
183
|
-
id: z.string(),
|
|
184
|
-
kind: z.string(),
|
|
185
|
-
safety: z.string(),
|
|
186
|
-
})),
|
|
187
|
-
}),
|
|
188
|
-
z.object({
|
|
189
|
-
contractVersion: z.string(),
|
|
190
|
-
events: z.number(),
|
|
191
|
-
features: z.object({
|
|
192
|
-
detours: z.boolean(),
|
|
193
|
-
events: z.boolean(),
|
|
194
|
-
examples: z.boolean(),
|
|
195
|
-
hikes: z.boolean(),
|
|
196
|
-
outputSchemas: z.boolean(),
|
|
197
|
-
}),
|
|
198
|
-
hikes: z.number(),
|
|
199
|
-
name: z.string(),
|
|
200
|
-
trails: z.number(),
|
|
201
|
-
version: z.string(),
|
|
202
|
-
}),
|
|
203
|
-
z.object({
|
|
204
|
-
breaking: z.array(z.unknown()),
|
|
205
|
-
hasBreaking: z.boolean(),
|
|
206
|
-
info: z.array(z.unknown()),
|
|
207
|
-
warnings: z.array(z.unknown()),
|
|
208
|
-
}),
|
|
209
|
-
z.object({
|
|
210
|
-
description: z.unknown().nullable(),
|
|
211
|
-
detours: z.unknown().nullable(),
|
|
212
|
-
examples: z.array(z.unknown()),
|
|
213
|
-
id: z.string(),
|
|
214
|
-
kind: z.string(),
|
|
215
|
-
safety: z.string(),
|
|
216
|
-
}),
|
|
217
|
-
z.object({
|
|
218
|
-
hash: z.string(),
|
|
219
|
-
lockPath: z.string(),
|
|
220
|
-
mapPath: z.string(),
|
|
221
|
-
}),
|
|
222
|
-
]),
|
|
223
|
-
readOnly: true,
|
|
224
|
-
});
|
|
225
|
-
//# 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,19 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* `warden` trail -- Governance checks.
|
|
3
|
-
*
|
|
4
|
-
* Thin wrapper around `runWarden` and `formatWardenReport` from @ontrails/warden.
|
|
5
|
-
*/
|
|
6
|
-
export declare const wardenTrail: import("@ontrails/core").Trail<{
|
|
7
|
-
driftOnly: boolean;
|
|
8
|
-
format: "text" | "github" | "json" | "summary";
|
|
9
|
-
lintOnly: boolean;
|
|
10
|
-
rootDir?: string | undefined;
|
|
11
|
-
}, {
|
|
12
|
-
diagnostics: readonly import("@ontrails/warden").WardenDiagnostic[];
|
|
13
|
-
drift: import("@ontrails/warden").DriftResult | null;
|
|
14
|
-
errorCount: number;
|
|
15
|
-
formatted: string;
|
|
16
|
-
passed: boolean;
|
|
17
|
-
warnCount: number;
|
|
18
|
-
}>;
|
|
19
|
-
//# sourceMappingURL=warden.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"warden.d.ts","sourceRoot":"","sources":["../../../src/trails/warden.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAkBH,eAAO,MAAM,WAAW;;;;;;;;;;;;EAiFtB,CAAC"}
|