@ontrails/trails 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +1906 -0
- package/README.md +48 -0
- package/bin/trails.ts +3 -0
- package/package.json +57 -0
- package/src/app.ts +167 -0
- package/src/clack.ts +111 -0
- package/src/cli.ts +308 -0
- package/src/completions.ts +431 -0
- package/src/lifecycle-source-io.ts +33 -0
- package/src/load-app-mirror.ts +202 -0
- package/src/local-state-io.ts +129 -0
- package/src/mcp-app.ts +42 -0
- package/src/mcp-options.ts +92 -0
- package/src/mcp.ts +8 -0
- package/src/project-writes.ts +377 -0
- package/src/regrade/audit.ts +571 -0
- package/src/regrade/config.ts +152 -0
- package/src/regrade/history.ts +636 -0
- package/src/regrade/lifecycle.ts +76 -0
- package/src/regrade/live-api-preserve.ts +123 -0
- package/src/regrade/plan-artifact.ts +515 -0
- package/src/regrade/plan-derivation.ts +301 -0
- package/src/regrade/prepared-run.ts +259 -0
- package/src/regrade/receipt-history.ts +446 -0
- package/src/regrade/source-transaction.ts +185 -0
- package/src/release/bindings.ts +58 -0
- package/src/release/changeset-packages.ts +99 -0
- package/src/release/check.ts +1191 -0
- package/src/release/cli-bundle.ts +575 -0
- package/src/release/config.ts +73 -0
- package/src/release/contract-facts.ts +425 -0
- package/src/release/homebrew.ts +221 -0
- package/src/release/index.ts +180 -0
- package/src/release/lock-roundtrip-smoke.ts +255 -0
- package/src/release/lock-roundtrip-workspace.ts +107 -0
- package/src/release/native-bun-publish.ts +964 -0
- package/src/release/native-bun-registry.ts +848 -0
- package/src/release/notes-cli.ts +171 -0
- package/src/release/notes.ts +390 -0
- package/src/release/pack-coherence.ts +455 -0
- package/src/release/package-route-facts.ts +146 -0
- package/src/release/packed-artifacts-smoke.ts +236 -0
- package/src/release/policy.ts +1780 -0
- package/src/release/semver.ts +104 -0
- package/src/release/smoke.ts +56 -0
- package/src/release/stable-version-release.ts +80 -0
- package/src/release/wayfinder-dogfood-smoke.ts +762 -0
- package/src/release/zero-line-transition.ts +68 -0
- package/src/retired-topo-command.ts +36 -0
- package/src/run-adapter-check.ts +76 -0
- package/src/run-argv.ts +133 -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-regrade-progress.ts +47 -0
- package/src/run-release-check.ts +74 -0
- package/src/run-schema.ts +74 -0
- package/src/run-trace.ts +273 -0
- package/src/run-warden.ts +39 -0
- package/src/run-watch-project.ts +52 -0
- package/src/run-watch.ts +381 -0
- package/src/run-wayfind-outline.ts +170 -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 +816 -0
- package/src/trails/add-trail.ts +141 -0
- package/src/trails/add-verify.ts +252 -0
- package/src/trails/compile.ts +118 -0
- package/src/trails/completions-complete.ts +236 -0
- package/src/trails/completions.ts +47 -0
- package/src/trails/config-explain.ts +43 -0
- package/src/trails/create-adapter.ts +785 -0
- package/src/trails/create-scaffold.ts +1215 -0
- package/src/trails/create-versions.ts +62 -0
- package/src/trails/create.ts +652 -0
- package/src/trails/deprecate.ts +59 -0
- package/src/trails/dev-clean.ts +80 -0
- package/src/trails/dev-reset.ts +48 -0
- package/src/trails/dev-stats.ts +71 -0
- package/src/trails/dev-support.ts +360 -0
- package/src/trails/doctor.ts +77 -0
- package/src/trails/draft-promote.ts +949 -0
- package/src/trails/guide.ts +106 -0
- package/src/trails/load-app.ts +1145 -0
- package/src/trails/operator-context.ts +66 -0
- package/src/trails/project-context-output.ts +304 -0
- package/src/trails/project-context.ts +613 -0
- package/src/trails/project.ts +65 -0
- package/src/trails/regrade.ts +4951 -0
- package/src/trails/release-check.ts +113 -0
- package/src/trails/release-smoke.ts +49 -0
- package/src/trails/revise.ts +53 -0
- package/src/trails/root-dir.ts +21 -0
- package/src/trails/run-example.ts +592 -0
- package/src/trails/run-examples.ts +149 -0
- package/src/trails/run.ts +496 -0
- package/src/trails/scaffold-json.ts +60 -0
- package/src/trails/scaffold-topo-identity.ts +479 -0
- package/src/trails/survey.ts +990 -0
- package/src/trails/topo-activation.ts +14 -0
- package/src/trails/topo-constants.ts +2 -0
- package/src/trails/topo-history.ts +47 -0
- package/src/trails/topo-output-schemas.ts +259 -0
- package/src/trails/topo-pin.ts +38 -0
- package/src/trails/topo-read-support.ts +368 -0
- package/src/trails/topo-reports.ts +809 -0
- package/src/trails/topo-store-support.ts +323 -0
- package/src/trails/topo-support.ts +247 -0
- package/src/trails/topo-unpin.ts +61 -0
- package/src/trails/topo.ts +92 -0
- package/src/trails/validate.ts +348 -0
- package/src/trails/version-lifecycle-support.ts +936 -0
- package/src/trails/warden-guide.ts +134 -0
- package/src/trails/warden.ts +598 -0
- package/src/trails/wayfind-diff.ts +716 -0
- package/src/trails/wayfind-outline.ts +876 -0
- package/src/trails/wayfind.ts +1319 -0
- package/src/versions.ts +31 -0
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `guide` trail -- Runtime guidance.
|
|
3
|
+
*
|
|
4
|
+
* Lists trails with descriptions and examples. Detailed guidance is planned for post-v1.
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
import { NotFoundError, Result, trail } from '@ontrails/core';
|
|
8
|
+
import { z } from 'zod';
|
|
9
|
+
|
|
10
|
+
import { withFreshOperatorApp } from './operator-context.js';
|
|
11
|
+
import { trailDetailOutput } from './topo-output-schemas.js';
|
|
12
|
+
import {
|
|
13
|
+
deriveCurrentGuideEntries,
|
|
14
|
+
deriveCurrentTopoDetail,
|
|
15
|
+
readSurfaceLayerNamesFromContext,
|
|
16
|
+
} from './topo-read-support.js';
|
|
17
|
+
import { createCurrentAppExampleInput } from './topo-support.js';
|
|
18
|
+
|
|
19
|
+
// ---------------------------------------------------------------------------
|
|
20
|
+
// Types
|
|
21
|
+
// ---------------------------------------------------------------------------
|
|
22
|
+
|
|
23
|
+
interface GuideEntry {
|
|
24
|
+
readonly description: string;
|
|
25
|
+
readonly exampleCount: number;
|
|
26
|
+
readonly id: string;
|
|
27
|
+
readonly kind: 'trail';
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
type GuideTrailOutput =
|
|
31
|
+
| {
|
|
32
|
+
readonly entries: GuideEntry[];
|
|
33
|
+
readonly mode: 'list';
|
|
34
|
+
}
|
|
35
|
+
| {
|
|
36
|
+
readonly detail: z.output<typeof trailDetailOutput>;
|
|
37
|
+
readonly mode: 'detail';
|
|
38
|
+
};
|
|
39
|
+
|
|
40
|
+
const guideTrailInputSchema = z.object({
|
|
41
|
+
module: z.string().optional().describe('Path to the app module'),
|
|
42
|
+
rootDir: z.string().optional().describe('Workspace root directory'),
|
|
43
|
+
trailId: z.string().optional().describe('Trail ID for detailed guidance'),
|
|
44
|
+
});
|
|
45
|
+
|
|
46
|
+
type GuideTrailInput = z.output<typeof guideTrailInputSchema>;
|
|
47
|
+
|
|
48
|
+
// ---------------------------------------------------------------------------
|
|
49
|
+
// Helpers
|
|
50
|
+
// ---------------------------------------------------------------------------
|
|
51
|
+
|
|
52
|
+
export const guideTrail = trail('guide', {
|
|
53
|
+
description: 'Runtime guidance for trails',
|
|
54
|
+
examples: [
|
|
55
|
+
{
|
|
56
|
+
description: 'Lists all trails with descriptions and example counts',
|
|
57
|
+
input: createCurrentAppExampleInput(),
|
|
58
|
+
name: 'List trail guidance',
|
|
59
|
+
},
|
|
60
|
+
],
|
|
61
|
+
implementation: async (input: GuideTrailInput, ctx) =>
|
|
62
|
+
withFreshOperatorApp<GuideTrailOutput>(input, ctx, ({ lease, rootDir }) => {
|
|
63
|
+
if (input.trailId) {
|
|
64
|
+
const detail = deriveCurrentTopoDetail(lease.app, input.trailId, {
|
|
65
|
+
overlays: lease.overlays,
|
|
66
|
+
rootDir,
|
|
67
|
+
surfaceLayerNames: readSurfaceLayerNamesFromContext(ctx),
|
|
68
|
+
});
|
|
69
|
+
if (detail === undefined || detail.kind !== 'trail') {
|
|
70
|
+
return Result.err(
|
|
71
|
+
new NotFoundError(`Trail not found: ${input.trailId}`)
|
|
72
|
+
);
|
|
73
|
+
}
|
|
74
|
+
return Result.ok({
|
|
75
|
+
detail,
|
|
76
|
+
mode: 'detail' as const,
|
|
77
|
+
});
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
return Result.ok({
|
|
81
|
+
entries: deriveCurrentGuideEntries(lease.app, {
|
|
82
|
+
rootDir,
|
|
83
|
+
}) as GuideEntry[],
|
|
84
|
+
mode: 'list' as const,
|
|
85
|
+
});
|
|
86
|
+
}),
|
|
87
|
+
input: guideTrailInputSchema,
|
|
88
|
+
intent: 'read',
|
|
89
|
+
output: z.discriminatedUnion('mode', [
|
|
90
|
+
z.object({
|
|
91
|
+
entries: z.array(
|
|
92
|
+
z.object({
|
|
93
|
+
description: z.string(),
|
|
94
|
+
exampleCount: z.number(),
|
|
95
|
+
id: z.string(),
|
|
96
|
+
kind: z.literal('trail'),
|
|
97
|
+
})
|
|
98
|
+
),
|
|
99
|
+
mode: z.literal('list'),
|
|
100
|
+
}),
|
|
101
|
+
z.object({
|
|
102
|
+
detail: trailDetailOutput,
|
|
103
|
+
mode: z.literal('detail'),
|
|
104
|
+
}),
|
|
105
|
+
]),
|
|
106
|
+
});
|