@first-tree-ai/context-tree 0.1.1-alpha.202608250345 → 0.1.1
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/README.md +22 -16
- package/dist/cli/index.mjs +9 -34
- package/dist/index.d.mts +3 -12
- package/dist/index.mjs +2 -3
- package/dist/{schemas-DfX23thi.d.mts → schemas-BZkU14CI.d.mts} +58 -38
- package/dist/{schemas-DMs8vItE.mjs → schemas-DyQ0V9Z3.mjs} +65 -43
- package/dist/schemas.d.mts +2 -2
- package/dist/schemas.mjs +2 -2
- package/dist/{src-zCLwoWEK.mjs → src-DJZoQVCF.mjs} +196 -269
- package/docs/specification.md +38 -30
- package/examples/basic/NODE.md +3 -0
- package/examples/basic/members/NODE.md +8 -0
- package/examples/basic/members/example-agent/NODE.md +7 -0
- package/package.json +1 -2
- package/policy/context-tree-policy.md +8 -7
- package/skills/context-tree-init/SKILL.md +29 -23
- package/skills/context-tree-init/agents/openai.yaml +2 -2
- package/skills/context-tree-read/SKILL.md +9 -8
- package/skills/context-tree-read/agents/openai.yaml +1 -1
- package/skills/context-tree-write/SKILL.md +7 -6
- package/skills/context-tree-write/agents/openai.yaml +1 -1
- package/templates/root-node.md +1 -0
- package/templates/validate-context-tree.yml +1 -1
- package/examples/basic/SCOPE.md +0 -7
- package/templates/scope.md +0 -5
package/README.md
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
`@first-tree-ai/context-tree` is the portable core for a GitHub-backed Context
|
|
4
4
|
Tree: durable decisions, constraints, and cross-domain relationships
|
|
5
5
|
stored as Markdown in a private GitHub repository. It ships deterministic local
|
|
6
|
-
scaffolding, validation,
|
|
6
|
+
scaffolding, validation, indexed reading, the canonical policy, Zod contracts,
|
|
7
7
|
and framework-neutral agent skills.
|
|
8
8
|
|
|
9
9
|
The core and CLI never make network requests or manage credentials. Init takes
|
|
@@ -41,20 +41,27 @@ JSON object on stdout. Help and version output remain plain text.
|
|
|
41
41
|
```bash
|
|
42
42
|
context-tree init \
|
|
43
43
|
--repository acme/context \
|
|
44
|
-
--tree-path ./context-tree
|
|
45
|
-
--title "Acme"
|
|
44
|
+
--tree-path ./context-tree
|
|
46
45
|
context-tree policy
|
|
47
46
|
context-tree verify --tree-path ./context-tree
|
|
48
|
-
context-tree read --tree-path ./context-tree
|
|
47
|
+
context-tree read --tree-path ./context-tree
|
|
48
|
+
context-tree read product --tree-path ./context-tree
|
|
49
49
|
```
|
|
50
50
|
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
51
|
+
When `--tree-path` is omitted, init writes to `./REPO` and uses the `REPO`
|
|
52
|
+
segment verbatim as the tree title. Scaffolding is create-only and always
|
|
53
|
+
includes GitHub Actions validation pinned to the package version that created
|
|
54
|
+
the tree and filtered to the branch selected by ordinary `git init`. Init
|
|
55
|
+
requires Git and respects Git's effective `init.defaultBranch` configuration or
|
|
56
|
+
its compiled fallback. The CLI and library perform no GitHub or credential
|
|
57
|
+
operations. The init skill uses the CLI-created repository and current branch
|
|
58
|
+
for its local commit and, when GitHub CLI is authenticated, private-repository
|
|
59
|
+
publication and default-branch configuration.
|
|
60
|
+
|
|
61
|
+
Directory reads return that directory's `NODE.md` body and metadata plus
|
|
62
|
+
summaries of its immediate children. Leaf reads return the leaf body and no
|
|
63
|
+
children. Member classification is semantic metadata, not core access control.
|
|
64
|
+
The read skill fast-forward refreshes an explicitly
|
|
58
65
|
supplied existing checkout, requires it to be clean and on the expected branch,
|
|
59
66
|
derives `OWNER/REPO` from its safe GitHub origin, and reports the exact Git
|
|
60
67
|
commit SHA. If GitHub is unavailable, a stale read requires explicit
|
|
@@ -73,8 +80,8 @@ exhausted, the skill rebases against the latest default branch and opens a
|
|
|
73
80
|
conflict-free fallback PR without merging it or requesting reviewers. An
|
|
74
81
|
invalid base blocks semantic changes; an explicit repair request may produce a
|
|
75
82
|
repair-only write and commit limited to validator findings. Each write and
|
|
76
|
-
commit is scoped to one concrete source. Read and write use `
|
|
77
|
-
to select optional private memory at `members/<
|
|
83
|
+
commit is scoped to one concrete source. Read and write use `agent_slug` solely
|
|
84
|
+
to select optional private memory at `members/<agent_slug>/memory.md`.
|
|
78
85
|
|
|
79
86
|
## Library integration
|
|
80
87
|
|
|
@@ -85,15 +92,14 @@ import { contextTreeReadResultSchema, verifyTreeReportSchema } from "@first-tree
|
|
|
85
92
|
scaffoldTree({
|
|
86
93
|
path: "./context-tree",
|
|
87
94
|
repository: "acme/context",
|
|
88
|
-
title: "Acme",
|
|
89
95
|
});
|
|
90
96
|
const verification = verifyTree("./context-tree");
|
|
91
|
-
const relevant = readTree("./context-tree",
|
|
97
|
+
const relevant = readTree("./context-tree", "systems");
|
|
92
98
|
|
|
93
99
|
verifyTreeReportSchema.parse(verification);
|
|
94
100
|
contextTreeReadResultSchema.parse(relevant);
|
|
95
101
|
```
|
|
96
102
|
|
|
97
|
-
Git commit SHAs identify shared snapshots. Read
|
|
103
|
+
Git commit SHAs identify shared snapshots. Read nodes, child summaries, read results,
|
|
98
104
|
verification reports, and policy results intentionally contain no hashes or
|
|
99
105
|
digest fields. See [the format specification](docs/specification.md).
|
package/dist/cli/index.mjs
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import {
|
|
3
|
-
import { a as readContextTreePolicy, i as readTree, n as verifyTree, o as
|
|
2
|
+
import { t as CLI_ERROR_CODES } from "../schemas-DyQ0V9Z3.mjs";
|
|
3
|
+
import { a as readContextTreePolicy, i as readTree, n as verifyTree, o as readPackageVersion, r as parseGitHubRepositoryIdentity, t as scaffoldTree } from "../src-DJZoQVCF.mjs";
|
|
4
4
|
import { resolve } from "node:path";
|
|
5
5
|
import { Command, CommanderError } from "commander";
|
|
6
6
|
//#region src/cli/api.ts
|
|
@@ -11,50 +11,25 @@ const defaultIo = {
|
|
|
11
11
|
function line(io, value) {
|
|
12
12
|
io.stdout(`${value}\n`);
|
|
13
13
|
}
|
|
14
|
-
function packageVersion() {
|
|
15
|
-
const manifest = readPackageManifest();
|
|
16
|
-
if (!("version" in manifest) || typeof manifest.version !== "string") throw new Error("Package version is missing or invalid.");
|
|
17
|
-
return manifest.version;
|
|
18
|
-
}
|
|
19
|
-
function parseDepth(value) {
|
|
20
|
-
if (value === void 0) return void 0;
|
|
21
|
-
const parsed = Number(value);
|
|
22
|
-
if (!Number.isInteger(parsed) || parsed < 0) throw new Error("--depth must be a non-negative integer.");
|
|
23
|
-
return parsed;
|
|
24
|
-
}
|
|
25
|
-
function parseClass(value) {
|
|
26
|
-
if (value === void 0) return void 0;
|
|
27
|
-
if (value === "all") return "all";
|
|
28
|
-
return [contextContentClassSchema.parse(value)];
|
|
29
|
-
}
|
|
30
14
|
function createContextTreeCli(io = defaultIo) {
|
|
31
|
-
const program = new Command().name("context-tree").description("Portable tools for scaffolding, reading, and validating Context Trees.").addHelpCommand(false).version(
|
|
15
|
+
const program = new Command().name("context-tree").description("Portable tools for scaffolding, reading, and validating Context Trees.").addHelpCommand(false).version(readPackageVersion()).exitOverride().configureOutput({
|
|
32
16
|
writeErr: () => void 0,
|
|
33
17
|
writeOut: io.stdout
|
|
34
18
|
});
|
|
35
19
|
program.command("policy").description("Print the canonical packaged Context Tree policy.").action(() => {
|
|
36
20
|
line(io, JSON.stringify(readContextTreePolicy()));
|
|
37
21
|
});
|
|
38
|
-
program.command("init").description("Scaffold a new
|
|
22
|
+
program.command("init").description("Scaffold a new Context Tree.").requiredOption("--repository <owner/repo>", "GitHub repository identity").option("--tree-path <path>", "destination directory").action((options) => {
|
|
23
|
+
const repositoryName = parseGitHubRepositoryIdentity(options.repository);
|
|
39
24
|
const result = scaffoldTree({
|
|
40
|
-
path: resolve(io.cwd(), options.treePath),
|
|
41
|
-
repository: options.repository
|
|
42
|
-
title: options.title
|
|
25
|
+
path: resolve(io.cwd(), options.treePath ?? repositoryName),
|
|
26
|
+
repository: options.repository
|
|
43
27
|
});
|
|
44
28
|
line(io, JSON.stringify(result));
|
|
45
29
|
});
|
|
46
|
-
program.command("read").description("Read
|
|
30
|
+
program.command("read").description("Read an indexed Context Tree directory or Markdown leaf.").argument("[path]", "tree-relative path", ".").option("--tree-path <path>", "Context Tree root", ".").action((path, options) => {
|
|
47
31
|
if (!verifyTree(resolve(io.cwd(), options.treePath)).ok) throw new Error("Refusing to read an invalid Context Tree; run context-tree verify.");
|
|
48
|
-
const
|
|
49
|
-
content: options.content === true,
|
|
50
|
-
path
|
|
51
|
-
};
|
|
52
|
-
const classes = parseClass(options.class);
|
|
53
|
-
const depth = parseDepth(options.depth);
|
|
54
|
-
if (classes !== void 0) readOptions.classes = classes;
|
|
55
|
-
if (depth !== void 0) readOptions.depth = depth;
|
|
56
|
-
if (options.pattern !== void 0) readOptions.pattern = options.pattern;
|
|
57
|
-
const result = readTree(resolve(io.cwd(), options.treePath), readOptions);
|
|
32
|
+
const result = readTree(resolve(io.cwd(), options.treePath), path);
|
|
58
33
|
line(io, JSON.stringify(result));
|
|
59
34
|
});
|
|
60
35
|
program.command("verify").description("Validate Context Tree structure and safety.").option("--tree-path <path>", "Context Tree root", ".").action((options) => {
|
package/dist/index.d.mts
CHANGED
|
@@ -1,28 +1,19 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { c as ContextTreePolicy, d as ContextTreeReadResult, m as ScaffoldTreeResult, v as VerifyTreeReport } from "./schemas-BZkU14CI.mjs";
|
|
2
2
|
|
|
3
3
|
//#region src/core/policy.d.ts
|
|
4
4
|
declare function readContextTreePolicy(): ContextTreePolicy;
|
|
5
5
|
//#endregion
|
|
6
6
|
//#region src/core/read.d.ts
|
|
7
|
-
|
|
8
|
-
classes?: ContextContentClass[] | "all";
|
|
9
|
-
content?: boolean;
|
|
10
|
-
depth?: number;
|
|
11
|
-
path?: string;
|
|
12
|
-
pattern?: string;
|
|
13
|
-
};
|
|
14
|
-
declare function readTree(treePath: string, options?: ReadTreeOptions): ContextTreeReadResult;
|
|
15
|
-
declare function classifyTreePath(path: string): ContextContentClass;
|
|
7
|
+
declare function readTree(treePath: string, path?: string): ContextTreeReadResult;
|
|
16
8
|
//#endregion
|
|
17
9
|
//#region src/core/scaffold.d.ts
|
|
18
10
|
type ScaffoldTreeOptions = {
|
|
19
11
|
path: string;
|
|
20
12
|
repository: string;
|
|
21
|
-
title: string;
|
|
22
13
|
};
|
|
23
14
|
declare function scaffoldTree(options: ScaffoldTreeOptions): ScaffoldTreeResult;
|
|
24
15
|
//#endregion
|
|
25
16
|
//#region src/core/verify.d.ts
|
|
26
17
|
declare function verifyTree(treePath: string): VerifyTreeReport;
|
|
27
18
|
//#endregion
|
|
28
|
-
export {
|
|
19
|
+
export { type ScaffoldTreeOptions, readContextTreePolicy, readTree, scaffoldTree, verifyTree };
|
package/dist/index.mjs
CHANGED
|
@@ -1,3 +1,2 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
export { CLI_ERROR_CODES, CONTEXT_TREE_SCOPE_MAX_BYTES, SCHEMA_VERSION, VALIDATION_CODES, classifyTreePath, contextContentClassCountsSchema, contextContentClassSchema, contextTreeCliErrorCodeSchema, contextTreeCliErrorEnvelopeSchema, contextTreeCliErrorSchema, contextTreePolicySchema, contextTreeReadEntrySchema, contextTreeReadResultSchema, contextTreeScopeFrontmatterSchema, contextTreeScopeSchema, credentialFreeRepositoryUrlSchema, parseContextTreeScope, readContextTreePolicy, readTree, scaffoldTree, scaffoldTreeResultSchema, treeValidationFindingSchema, validationCodeSchema, verifyTree, verifyTreeReportSchema };
|
|
1
|
+
import { a as readContextTreePolicy, i as readTree, n as verifyTree, t as scaffoldTree } from "./src-DJZoQVCF.mjs";
|
|
2
|
+
export { readContextTreePolicy, readTree, scaffoldTree, verifyTree };
|
|
@@ -2,11 +2,12 @@ import { z } from "zod";
|
|
|
2
2
|
|
|
3
3
|
//#region src/schemas.d.ts
|
|
4
4
|
declare const SCHEMA_VERSION: 1;
|
|
5
|
-
declare const
|
|
5
|
+
declare const CONTEXT_TREE_ROOT_NODE_MAX_BYTES: number;
|
|
6
6
|
declare const VALIDATION_CODES: {
|
|
7
7
|
readonly rootMissing: "TREE_ROOT_MISSING";
|
|
8
|
+
readonly rootNodeInvalid: "TREE_ROOT_NODE_INVALID";
|
|
9
|
+
readonly rootOnlyFields: "TREE_ROOT_ONLY_FIELDS";
|
|
8
10
|
readonly directoryNodeMissing: "TREE_DIRECTORY_NODE_MISSING";
|
|
9
|
-
readonly scopeInvalid: "TREE_SCOPE_INVALID";
|
|
10
11
|
readonly frontmatterMissing: "TREE_FRONTMATTER_MISSING";
|
|
11
12
|
readonly frontmatterParse: "TREE_FRONTMATTER_PARSE";
|
|
12
13
|
readonly titleMissing: "TREE_TITLE_MISSING";
|
|
@@ -15,9 +16,7 @@ declare const VALIDATION_CODES: {
|
|
|
15
16
|
readonly softLinksInvalid: "TREE_SOFT_LINKS_INVALID";
|
|
16
17
|
readonly softLinkBroken: "TREE_SOFT_LINK_BROKEN";
|
|
17
18
|
readonly softLinkPathEscape: "TREE_SOFT_LINK_PATH_ESCAPE";
|
|
18
|
-
readonly softLinkArchiveDependency: "TREE_SOFT_LINK_ARCHIVE_DEPENDENCY";
|
|
19
19
|
readonly markdownPathEscape: "TREE_MARKDOWN_LINK_PATH_ESCAPE";
|
|
20
|
-
readonly markdownArchiveDependency: "TREE_MARKDOWN_LINK_ARCHIVE_DEPENDENCY";
|
|
21
20
|
readonly markdownFileSymlinkBroken: "TREE_MARKDOWN_FILE_SYMLINK_BROKEN";
|
|
22
21
|
readonly markdownFileSymlinkUnsupported: "TREE_MARKDOWN_FILE_SYMLINK_UNSUPPORTED";
|
|
23
22
|
readonly markdownFilePathEscape: "TREE_MARKDOWN_FILE_PATH_ESCAPE";
|
|
@@ -29,30 +28,36 @@ declare const CLI_ERROR_CODES: {
|
|
|
29
28
|
readonly failed: "CONTEXT_TREE_FAILED";
|
|
30
29
|
};
|
|
31
30
|
declare const credentialFreeRepositoryUrlSchema: z.ZodString;
|
|
32
|
-
declare const
|
|
31
|
+
declare const contextTreeRootNodeFrontmatterSchema: z.ZodObject<{
|
|
33
32
|
schemaVersion: z.ZodLiteral<1>;
|
|
33
|
+
title: z.ZodString;
|
|
34
|
+
description: z.ZodOptional<z.ZodString>;
|
|
35
|
+
soft_links: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
34
36
|
relatedRepositories: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
35
|
-
}, z.core.$
|
|
36
|
-
declare const
|
|
37
|
+
}, z.core.$loose>;
|
|
38
|
+
declare const contextTreeRootNodeSchema: z.ZodObject<{
|
|
37
39
|
frontmatter: z.ZodObject<{
|
|
38
40
|
schemaVersion: z.ZodLiteral<1>;
|
|
41
|
+
title: z.ZodString;
|
|
42
|
+
description: z.ZodOptional<z.ZodString>;
|
|
43
|
+
soft_links: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
39
44
|
relatedRepositories: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
40
|
-
}, z.core.$
|
|
45
|
+
}, z.core.$loose>;
|
|
41
46
|
body: z.ZodString;
|
|
42
47
|
}, z.core.$strip>;
|
|
43
|
-
type
|
|
44
|
-
declare function
|
|
48
|
+
type ContextTreeRootNode = z.infer<typeof contextTreeRootNodeSchema>;
|
|
49
|
+
declare function parseContextTreeRootNode(markdown: string): ContextTreeRootNode;
|
|
45
50
|
declare const contextContentClassSchema: z.ZodEnum<{
|
|
46
51
|
normal: "normal";
|
|
47
|
-
"archive-supporting": "archive-supporting";
|
|
48
52
|
member: "member";
|
|
49
53
|
"repo-infra": "repo-infra";
|
|
50
54
|
}>;
|
|
51
55
|
type ContextContentClass = z.infer<typeof contextContentClassSchema>;
|
|
52
56
|
declare const validationCodeSchema: z.ZodEnum<{
|
|
53
57
|
readonly rootMissing: "TREE_ROOT_MISSING";
|
|
58
|
+
readonly rootNodeInvalid: "TREE_ROOT_NODE_INVALID";
|
|
59
|
+
readonly rootOnlyFields: "TREE_ROOT_ONLY_FIELDS";
|
|
54
60
|
readonly directoryNodeMissing: "TREE_DIRECTORY_NODE_MISSING";
|
|
55
|
-
readonly scopeInvalid: "TREE_SCOPE_INVALID";
|
|
56
61
|
readonly frontmatterMissing: "TREE_FRONTMATTER_MISSING";
|
|
57
62
|
readonly frontmatterParse: "TREE_FRONTMATTER_PARSE";
|
|
58
63
|
readonly titleMissing: "TREE_TITLE_MISSING";
|
|
@@ -61,9 +66,7 @@ declare const validationCodeSchema: z.ZodEnum<{
|
|
|
61
66
|
readonly softLinksInvalid: "TREE_SOFT_LINKS_INVALID";
|
|
62
67
|
readonly softLinkBroken: "TREE_SOFT_LINK_BROKEN";
|
|
63
68
|
readonly softLinkPathEscape: "TREE_SOFT_LINK_PATH_ESCAPE";
|
|
64
|
-
readonly softLinkArchiveDependency: "TREE_SOFT_LINK_ARCHIVE_DEPENDENCY";
|
|
65
69
|
readonly markdownPathEscape: "TREE_MARKDOWN_LINK_PATH_ESCAPE";
|
|
66
|
-
readonly markdownArchiveDependency: "TREE_MARKDOWN_LINK_ARCHIVE_DEPENDENCY";
|
|
67
70
|
readonly markdownFileSymlinkBroken: "TREE_MARKDOWN_FILE_SYMLINK_BROKEN";
|
|
68
71
|
readonly markdownFileSymlinkUnsupported: "TREE_MARKDOWN_FILE_SYMLINK_UNSUPPORTED";
|
|
69
72
|
readonly markdownFilePathEscape: "TREE_MARKDOWN_FILE_PATH_ESCAPE";
|
|
@@ -75,8 +78,9 @@ type ValidationCode = z.infer<typeof validationCodeSchema>;
|
|
|
75
78
|
declare const treeValidationFindingSchema: z.ZodObject<{
|
|
76
79
|
code: z.ZodEnum<{
|
|
77
80
|
readonly rootMissing: "TREE_ROOT_MISSING";
|
|
81
|
+
readonly rootNodeInvalid: "TREE_ROOT_NODE_INVALID";
|
|
82
|
+
readonly rootOnlyFields: "TREE_ROOT_ONLY_FIELDS";
|
|
78
83
|
readonly directoryNodeMissing: "TREE_DIRECTORY_NODE_MISSING";
|
|
79
|
-
readonly scopeInvalid: "TREE_SCOPE_INVALID";
|
|
80
84
|
readonly frontmatterMissing: "TREE_FRONTMATTER_MISSING";
|
|
81
85
|
readonly frontmatterParse: "TREE_FRONTMATTER_PARSE";
|
|
82
86
|
readonly titleMissing: "TREE_TITLE_MISSING";
|
|
@@ -85,9 +89,7 @@ declare const treeValidationFindingSchema: z.ZodObject<{
|
|
|
85
89
|
readonly softLinksInvalid: "TREE_SOFT_LINKS_INVALID";
|
|
86
90
|
readonly softLinkBroken: "TREE_SOFT_LINK_BROKEN";
|
|
87
91
|
readonly softLinkPathEscape: "TREE_SOFT_LINK_PATH_ESCAPE";
|
|
88
|
-
readonly softLinkArchiveDependency: "TREE_SOFT_LINK_ARCHIVE_DEPENDENCY";
|
|
89
92
|
readonly markdownPathEscape: "TREE_MARKDOWN_LINK_PATH_ESCAPE";
|
|
90
|
-
readonly markdownArchiveDependency: "TREE_MARKDOWN_LINK_ARCHIVE_DEPENDENCY";
|
|
91
93
|
readonly markdownFileSymlinkBroken: "TREE_MARKDOWN_FILE_SYMLINK_BROKEN";
|
|
92
94
|
readonly markdownFileSymlinkUnsupported: "TREE_MARKDOWN_FILE_SYMLINK_UNSUPPORTED";
|
|
93
95
|
readonly markdownFilePathEscape: "TREE_MARKDOWN_FILE_PATH_ESCAPE";
|
|
@@ -102,7 +104,6 @@ declare const treeValidationFindingSchema: z.ZodObject<{
|
|
|
102
104
|
type TreeValidationFinding = z.infer<typeof treeValidationFindingSchema>;
|
|
103
105
|
declare const contextContentClassCountsSchema: z.ZodObject<{
|
|
104
106
|
normal: z.ZodNumber;
|
|
105
|
-
"archive-supporting": z.ZodNumber;
|
|
106
107
|
member: z.ZodNumber;
|
|
107
108
|
"repo-infra": z.ZodNumber;
|
|
108
109
|
}, z.core.$strict>;
|
|
@@ -112,42 +113,65 @@ declare const contextTreePolicySchema: z.ZodObject<{
|
|
|
112
113
|
schemaVersion: z.ZodLiteral<1>;
|
|
113
114
|
}, z.core.$strict>;
|
|
114
115
|
type ContextTreePolicy = z.infer<typeof contextTreePolicySchema>;
|
|
115
|
-
declare const
|
|
116
|
-
content: z.ZodOptional<z.ZodString>;
|
|
116
|
+
declare const contextTreeReadNodeSchema: z.ZodObject<{
|
|
117
117
|
contentClass: z.ZodEnum<{
|
|
118
118
|
normal: "normal";
|
|
119
|
-
"archive-supporting": "archive-supporting";
|
|
120
119
|
member: "member";
|
|
121
120
|
"repo-infra": "repo-infra";
|
|
122
121
|
}>;
|
|
123
|
-
depth: z.ZodNumber;
|
|
124
|
-
description: z.ZodOptional<z.ZodString>;
|
|
125
122
|
kind: z.ZodEnum<{
|
|
126
123
|
file: "file";
|
|
127
124
|
directory: "directory";
|
|
128
125
|
}>;
|
|
129
126
|
path: z.ZodString;
|
|
127
|
+
body: z.ZodString;
|
|
128
|
+
frontmatter: z.ZodRecord<z.ZodString, z.ZodUnknown>;
|
|
129
|
+
}, z.core.$strict>;
|
|
130
|
+
type ContextTreeReadNode = z.infer<typeof contextTreeReadNodeSchema>;
|
|
131
|
+
declare const contextTreeReadChildSchema: z.ZodObject<{
|
|
132
|
+
contentClass: z.ZodEnum<{
|
|
133
|
+
normal: "normal";
|
|
134
|
+
member: "member";
|
|
135
|
+
"repo-infra": "repo-infra";
|
|
136
|
+
}>;
|
|
137
|
+
kind: z.ZodEnum<{
|
|
138
|
+
file: "file";
|
|
139
|
+
directory: "directory";
|
|
140
|
+
}>;
|
|
141
|
+
path: z.ZodString;
|
|
142
|
+
description: z.ZodOptional<z.ZodString>;
|
|
130
143
|
title: z.ZodString;
|
|
131
144
|
}, z.core.$strict>;
|
|
132
|
-
type
|
|
145
|
+
type ContextTreeReadChild = z.infer<typeof contextTreeReadChildSchema>;
|
|
133
146
|
declare const contextTreeReadResultSchema: z.ZodObject<{
|
|
134
|
-
|
|
135
|
-
content: z.ZodOptional<z.ZodString>;
|
|
147
|
+
children: z.ZodArray<z.ZodObject<{
|
|
136
148
|
contentClass: z.ZodEnum<{
|
|
137
149
|
normal: "normal";
|
|
138
|
-
"archive-supporting": "archive-supporting";
|
|
139
150
|
member: "member";
|
|
140
151
|
"repo-infra": "repo-infra";
|
|
141
152
|
}>;
|
|
142
|
-
depth: z.ZodNumber;
|
|
143
|
-
description: z.ZodOptional<z.ZodString>;
|
|
144
153
|
kind: z.ZodEnum<{
|
|
145
154
|
file: "file";
|
|
146
155
|
directory: "directory";
|
|
147
156
|
}>;
|
|
148
157
|
path: z.ZodString;
|
|
158
|
+
description: z.ZodOptional<z.ZodString>;
|
|
149
159
|
title: z.ZodString;
|
|
150
160
|
}, z.core.$strict>>;
|
|
161
|
+
node: z.ZodObject<{
|
|
162
|
+
contentClass: z.ZodEnum<{
|
|
163
|
+
normal: "normal";
|
|
164
|
+
member: "member";
|
|
165
|
+
"repo-infra": "repo-infra";
|
|
166
|
+
}>;
|
|
167
|
+
kind: z.ZodEnum<{
|
|
168
|
+
file: "file";
|
|
169
|
+
directory: "directory";
|
|
170
|
+
}>;
|
|
171
|
+
path: z.ZodString;
|
|
172
|
+
body: z.ZodString;
|
|
173
|
+
frontmatter: z.ZodRecord<z.ZodString, z.ZodUnknown>;
|
|
174
|
+
}, z.core.$strict>;
|
|
151
175
|
root: z.ZodString;
|
|
152
176
|
schemaVersion: z.ZodLiteral<1>;
|
|
153
177
|
target: z.ZodString;
|
|
@@ -157,8 +181,9 @@ declare const verifyTreeReportSchema: z.ZodObject<{
|
|
|
157
181
|
findings: z.ZodArray<z.ZodObject<{
|
|
158
182
|
code: z.ZodEnum<{
|
|
159
183
|
readonly rootMissing: "TREE_ROOT_MISSING";
|
|
184
|
+
readonly rootNodeInvalid: "TREE_ROOT_NODE_INVALID";
|
|
185
|
+
readonly rootOnlyFields: "TREE_ROOT_ONLY_FIELDS";
|
|
160
186
|
readonly directoryNodeMissing: "TREE_DIRECTORY_NODE_MISSING";
|
|
161
|
-
readonly scopeInvalid: "TREE_SCOPE_INVALID";
|
|
162
187
|
readonly frontmatterMissing: "TREE_FRONTMATTER_MISSING";
|
|
163
188
|
readonly frontmatterParse: "TREE_FRONTMATTER_PARSE";
|
|
164
189
|
readonly titleMissing: "TREE_TITLE_MISSING";
|
|
@@ -167,9 +192,7 @@ declare const verifyTreeReportSchema: z.ZodObject<{
|
|
|
167
192
|
readonly softLinksInvalid: "TREE_SOFT_LINKS_INVALID";
|
|
168
193
|
readonly softLinkBroken: "TREE_SOFT_LINK_BROKEN";
|
|
169
194
|
readonly softLinkPathEscape: "TREE_SOFT_LINK_PATH_ESCAPE";
|
|
170
|
-
readonly softLinkArchiveDependency: "TREE_SOFT_LINK_ARCHIVE_DEPENDENCY";
|
|
171
195
|
readonly markdownPathEscape: "TREE_MARKDOWN_LINK_PATH_ESCAPE";
|
|
172
|
-
readonly markdownArchiveDependency: "TREE_MARKDOWN_LINK_ARCHIVE_DEPENDENCY";
|
|
173
196
|
readonly markdownFileSymlinkBroken: "TREE_MARKDOWN_FILE_SYMLINK_BROKEN";
|
|
174
197
|
readonly markdownFileSymlinkUnsupported: "TREE_MARKDOWN_FILE_SYMLINK_UNSUPPORTED";
|
|
175
198
|
readonly markdownFilePathEscape: "TREE_MARKDOWN_FILE_PATH_ESCAPE";
|
|
@@ -185,7 +208,6 @@ declare const verifyTreeReportSchema: z.ZodObject<{
|
|
|
185
208
|
root: z.ZodString;
|
|
186
209
|
scannedByContentClass: z.ZodObject<{
|
|
187
210
|
normal: z.ZodNumber;
|
|
188
|
-
"archive-supporting": z.ZodNumber;
|
|
189
211
|
member: z.ZodNumber;
|
|
190
212
|
"repo-infra": z.ZodNumber;
|
|
191
213
|
}, z.core.$strict>;
|
|
@@ -200,8 +222,9 @@ declare const scaffoldTreeResultSchema: z.ZodObject<{
|
|
|
200
222
|
findings: z.ZodArray<z.ZodObject<{
|
|
201
223
|
code: z.ZodEnum<{
|
|
202
224
|
readonly rootMissing: "TREE_ROOT_MISSING";
|
|
225
|
+
readonly rootNodeInvalid: "TREE_ROOT_NODE_INVALID";
|
|
226
|
+
readonly rootOnlyFields: "TREE_ROOT_ONLY_FIELDS";
|
|
203
227
|
readonly directoryNodeMissing: "TREE_DIRECTORY_NODE_MISSING";
|
|
204
|
-
readonly scopeInvalid: "TREE_SCOPE_INVALID";
|
|
205
228
|
readonly frontmatterMissing: "TREE_FRONTMATTER_MISSING";
|
|
206
229
|
readonly frontmatterParse: "TREE_FRONTMATTER_PARSE";
|
|
207
230
|
readonly titleMissing: "TREE_TITLE_MISSING";
|
|
@@ -210,9 +233,7 @@ declare const scaffoldTreeResultSchema: z.ZodObject<{
|
|
|
210
233
|
readonly softLinksInvalid: "TREE_SOFT_LINKS_INVALID";
|
|
211
234
|
readonly softLinkBroken: "TREE_SOFT_LINK_BROKEN";
|
|
212
235
|
readonly softLinkPathEscape: "TREE_SOFT_LINK_PATH_ESCAPE";
|
|
213
|
-
readonly softLinkArchiveDependency: "TREE_SOFT_LINK_ARCHIVE_DEPENDENCY";
|
|
214
236
|
readonly markdownPathEscape: "TREE_MARKDOWN_LINK_PATH_ESCAPE";
|
|
215
|
-
readonly markdownArchiveDependency: "TREE_MARKDOWN_LINK_ARCHIVE_DEPENDENCY";
|
|
216
237
|
readonly markdownFileSymlinkBroken: "TREE_MARKDOWN_FILE_SYMLINK_BROKEN";
|
|
217
238
|
readonly markdownFileSymlinkUnsupported: "TREE_MARKDOWN_FILE_SYMLINK_UNSUPPORTED";
|
|
218
239
|
readonly markdownFilePathEscape: "TREE_MARKDOWN_FILE_PATH_ESCAPE";
|
|
@@ -228,7 +249,6 @@ declare const scaffoldTreeResultSchema: z.ZodObject<{
|
|
|
228
249
|
root: z.ZodString;
|
|
229
250
|
scannedByContentClass: z.ZodObject<{
|
|
230
251
|
normal: z.ZodNumber;
|
|
231
|
-
"archive-supporting": z.ZodNumber;
|
|
232
252
|
member: z.ZodNumber;
|
|
233
253
|
"repo-infra": z.ZodNumber;
|
|
234
254
|
}, z.core.$strict>;
|
|
@@ -259,4 +279,4 @@ declare const contextTreeCliErrorEnvelopeSchema: z.ZodObject<{
|
|
|
259
279
|
}, z.core.$strict>;
|
|
260
280
|
type ContextTreeCliErrorEnvelope = z.infer<typeof contextTreeCliErrorEnvelopeSchema>;
|
|
261
281
|
//#endregion
|
|
262
|
-
export {
|
|
282
|
+
export { credentialFreeRepositoryUrlSchema as A, contextTreeCliErrorSchema as C, contextTreeReadResultSchema as D, contextTreeReadNodeSchema as E, verifyTreeReportSchema as F, scaffoldTreeResultSchema as M, treeValidationFindingSchema as N, contextTreeRootNodeFrontmatterSchema as O, validationCodeSchema as P, contextTreeCliErrorEnvelopeSchema as S, contextTreeReadChildSchema as T, ValidationCode as _, ContextTreeCliError as a, contextContentClassSchema as b, ContextTreePolicy as c, ContextTreeReadResult as d, ContextTreeRootNode as f, VALIDATION_CODES as g, TreeValidationFinding as h, ContextContentClassCounts as i, parseContextTreeRootNode as j, contextTreeRootNodeSchema as k, ContextTreeReadChild as l, ScaffoldTreeResult as m, CONTEXT_TREE_ROOT_NODE_MAX_BYTES as n, ContextTreeCliErrorCode as o, SCHEMA_VERSION as p, ContextContentClass as r, ContextTreeCliErrorEnvelope as s, CLI_ERROR_CODES as t, ContextTreeReadNode as u, VerifyTreeReport as v, contextTreePolicySchema as w, contextTreeCliErrorCodeSchema as x, contextContentClassCountsSchema as y };
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
|
-
import matter from "gray-matter";
|
|
3
2
|
import { parse } from "yaml";
|
|
4
3
|
//#region src/internal/value.ts
|
|
5
4
|
function isRecord(value) {
|
|
@@ -7,38 +6,54 @@ function isRecord(value) {
|
|
|
7
6
|
}
|
|
8
7
|
//#endregion
|
|
9
8
|
//#region src/internal/frontmatter.ts
|
|
10
|
-
const STRICT_FRONTMATTER_RE = /^---\r?\n([\s\S]*?)\r?\n---(?:\r?\n|$)([\s\S]*)$/u;
|
|
11
|
-
const PERMISSIVE_FRONTMATTER_RE = /^---\s*\r?\n([\s\S]*?)\r?\n---(?:\s*\r?\n|\s*$)([\s\S]*)$/u;
|
|
12
9
|
function parseYamlMapping(source) {
|
|
13
10
|
const value = parse(source);
|
|
14
11
|
if (!isRecord(value)) throw new Error("frontmatter must be a YAML mapping");
|
|
15
12
|
return value;
|
|
16
13
|
}
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
const
|
|
20
|
-
|
|
14
|
+
function readLine(source, start) {
|
|
15
|
+
const newline = source.indexOf("\n", start);
|
|
16
|
+
const end = newline === -1 ? source.length : newline + 1;
|
|
17
|
+
const contentEnd = newline === -1 ? source.length : source.charCodeAt(newline - 1) === 13 ? newline - 1 : newline;
|
|
18
|
+
return {
|
|
19
|
+
end,
|
|
20
|
+
start,
|
|
21
|
+
value: source.slice(start, contentEnd)
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
function parseMarkdownFrontmatter(source) {
|
|
25
|
+
const opening = readLine(source, 0);
|
|
26
|
+
if (opening.value !== "---") return {
|
|
21
27
|
body: source,
|
|
22
28
|
data: null,
|
|
23
29
|
frontmatter: "missing"
|
|
24
30
|
};
|
|
31
|
+
let closing;
|
|
32
|
+
let lineStart = opening.end;
|
|
33
|
+
while (lineStart < source.length) {
|
|
34
|
+
const line = readLine(source, lineStart);
|
|
35
|
+
if (line.value === "---") {
|
|
36
|
+
closing = line;
|
|
37
|
+
break;
|
|
38
|
+
}
|
|
39
|
+
lineStart = line.end;
|
|
40
|
+
}
|
|
41
|
+
if (closing === void 0) return {
|
|
42
|
+
body: "",
|
|
43
|
+
data: null,
|
|
44
|
+
error: "frontmatter closing delimiter is missing",
|
|
45
|
+
frontmatter: "invalid"
|
|
46
|
+
};
|
|
47
|
+
const body = source.slice(closing.end);
|
|
25
48
|
try {
|
|
26
|
-
const parsed = matter(source, MATTER_OPTIONS);
|
|
27
|
-
const data = parsed.data;
|
|
28
|
-
if (!isRecord(data)) return {
|
|
29
|
-
body: parsed.content,
|
|
30
|
-
data: null,
|
|
31
|
-
error: "frontmatter must be a YAML mapping",
|
|
32
|
-
frontmatter: "invalid"
|
|
33
|
-
};
|
|
34
49
|
return {
|
|
35
|
-
body
|
|
36
|
-
data,
|
|
50
|
+
body,
|
|
51
|
+
data: parseYamlMapping(source.slice(opening.end, closing.start)),
|
|
37
52
|
frontmatter: "valid"
|
|
38
53
|
};
|
|
39
54
|
} catch (error) {
|
|
40
55
|
return {
|
|
41
|
-
body
|
|
56
|
+
body,
|
|
42
57
|
data: null,
|
|
43
58
|
error: error instanceof Error ? error.message : String(error),
|
|
44
59
|
frontmatter: "invalid"
|
|
@@ -48,11 +63,12 @@ function parseMarkdownFrontmatter(source, options = {}) {
|
|
|
48
63
|
//#endregion
|
|
49
64
|
//#region src/schemas.ts
|
|
50
65
|
const SCHEMA_VERSION = 1;
|
|
51
|
-
const
|
|
66
|
+
const CONTEXT_TREE_ROOT_NODE_MAX_BYTES = 16 * 1024;
|
|
52
67
|
const VALIDATION_CODES = {
|
|
53
68
|
rootMissing: "TREE_ROOT_MISSING",
|
|
69
|
+
rootNodeInvalid: "TREE_ROOT_NODE_INVALID",
|
|
70
|
+
rootOnlyFields: "TREE_ROOT_ONLY_FIELDS",
|
|
54
71
|
directoryNodeMissing: "TREE_DIRECTORY_NODE_MISSING",
|
|
55
|
-
scopeInvalid: "TREE_SCOPE_INVALID",
|
|
56
72
|
frontmatterMissing: "TREE_FRONTMATTER_MISSING",
|
|
57
73
|
frontmatterParse: "TREE_FRONTMATTER_PARSE",
|
|
58
74
|
titleMissing: "TREE_TITLE_MISSING",
|
|
@@ -61,9 +77,7 @@ const VALIDATION_CODES = {
|
|
|
61
77
|
softLinksInvalid: "TREE_SOFT_LINKS_INVALID",
|
|
62
78
|
softLinkBroken: "TREE_SOFT_LINK_BROKEN",
|
|
63
79
|
softLinkPathEscape: "TREE_SOFT_LINK_PATH_ESCAPE",
|
|
64
|
-
softLinkArchiveDependency: "TREE_SOFT_LINK_ARCHIVE_DEPENDENCY",
|
|
65
80
|
markdownPathEscape: "TREE_MARKDOWN_LINK_PATH_ESCAPE",
|
|
66
|
-
markdownArchiveDependency: "TREE_MARKDOWN_LINK_ARCHIVE_DEPENDENCY",
|
|
67
81
|
markdownFileSymlinkBroken: "TREE_MARKDOWN_FILE_SYMLINK_BROKEN",
|
|
68
82
|
markdownFileSymlinkUnsupported: "TREE_MARKDOWN_FILE_SYMLINK_UNSUPPORTED",
|
|
69
83
|
markdownFilePathEscape: "TREE_MARKDOWN_FILE_PATH_ESCAPE",
|
|
@@ -104,27 +118,29 @@ const credentialFreeRepositoryUrlSchema = z.string().superRefine((value, context
|
|
|
104
118
|
});
|
|
105
119
|
}
|
|
106
120
|
});
|
|
107
|
-
const
|
|
121
|
+
const contextTreeRootNodeFrontmatterSchema = z.object({
|
|
108
122
|
schemaVersion: z.literal(1),
|
|
123
|
+
title: z.string().trim().min(1),
|
|
124
|
+
description: z.string().trim().min(1).optional(),
|
|
125
|
+
soft_links: z.array(z.string().trim().min(1)).min(1).optional(),
|
|
109
126
|
relatedRepositories: z.array(credentialFreeRepositoryUrlSchema).max(64).optional()
|
|
110
|
-
}).
|
|
111
|
-
const
|
|
112
|
-
frontmatter:
|
|
113
|
-
body: z.string().trim().min(1, "
|
|
127
|
+
}).loose();
|
|
128
|
+
const contextTreeRootNodeSchema = z.object({
|
|
129
|
+
frontmatter: contextTreeRootNodeFrontmatterSchema,
|
|
130
|
+
body: z.string().trim().min(1, "Root NODE.md must contain repository-wide context.")
|
|
114
131
|
});
|
|
115
|
-
function
|
|
116
|
-
if (Buffer.byteLength(markdown, "utf8") > 16384) throw new Error(`
|
|
117
|
-
const document = parseMarkdownFrontmatter(markdown
|
|
118
|
-
if (document.frontmatter === "missing") throw new Error("
|
|
119
|
-
if (document.frontmatter === "invalid"
|
|
120
|
-
return
|
|
132
|
+
function parseContextTreeRootNode(markdown) {
|
|
133
|
+
if (Buffer.byteLength(markdown, "utf8") > 16384) throw new Error(`Root NODE.md exceeds the ${CONTEXT_TREE_ROOT_NODE_MAX_BYTES}-byte limit.`);
|
|
134
|
+
const document = parseMarkdownFrontmatter(markdown);
|
|
135
|
+
if (document.frontmatter === "missing") throw new Error("Root NODE.md must contain YAML frontmatter.");
|
|
136
|
+
if (document.frontmatter === "invalid") throw new Error(`Root NODE.md frontmatter is invalid: ${document.error}`);
|
|
137
|
+
return contextTreeRootNodeSchema.parse({
|
|
121
138
|
frontmatter: document.data,
|
|
122
139
|
body: document.body
|
|
123
140
|
});
|
|
124
141
|
}
|
|
125
142
|
const contextContentClassSchema = z.enum([
|
|
126
143
|
"normal",
|
|
127
|
-
"archive-supporting",
|
|
128
144
|
"member",
|
|
129
145
|
"repo-infra"
|
|
130
146
|
]);
|
|
@@ -137,7 +153,6 @@ const treeValidationFindingSchema = z.object({
|
|
|
137
153
|
}).strict();
|
|
138
154
|
const contextContentClassCountsSchema = z.object({
|
|
139
155
|
normal: z.number().int().nonnegative(),
|
|
140
|
-
"archive-supporting": z.number().int().nonnegative(),
|
|
141
156
|
member: z.number().int().nonnegative(),
|
|
142
157
|
"repo-infra": z.number().int().nonnegative()
|
|
143
158
|
}).strict();
|
|
@@ -145,17 +160,24 @@ const contextTreePolicySchema = z.object({
|
|
|
145
160
|
content: z.string(),
|
|
146
161
|
schemaVersion: z.literal(1)
|
|
147
162
|
}).strict();
|
|
148
|
-
const
|
|
149
|
-
content: z.string().optional(),
|
|
163
|
+
const contextTreeReadCommonFields = {
|
|
150
164
|
contentClass: contextContentClassSchema,
|
|
151
|
-
depth: z.number().int().nonnegative(),
|
|
152
|
-
description: z.string().optional(),
|
|
153
165
|
kind: z.enum(["directory", "file"]),
|
|
154
|
-
path: z.string()
|
|
155
|
-
|
|
166
|
+
path: z.string()
|
|
167
|
+
};
|
|
168
|
+
const contextTreeReadNodeSchema = z.object({
|
|
169
|
+
body: z.string(),
|
|
170
|
+
frontmatter: z.record(z.string(), z.unknown()),
|
|
171
|
+
...contextTreeReadCommonFields
|
|
172
|
+
}).strict();
|
|
173
|
+
const contextTreeReadChildSchema = z.object({
|
|
174
|
+
description: z.string().optional(),
|
|
175
|
+
title: z.string(),
|
|
176
|
+
...contextTreeReadCommonFields
|
|
156
177
|
}).strict();
|
|
157
178
|
const contextTreeReadResultSchema = z.object({
|
|
158
|
-
|
|
179
|
+
children: z.array(contextTreeReadChildSchema),
|
|
180
|
+
node: contextTreeReadNodeSchema,
|
|
159
181
|
root: z.string(),
|
|
160
182
|
schemaVersion: z.literal(1),
|
|
161
183
|
target: z.string()
|
|
@@ -184,4 +206,4 @@ const contextTreeCliErrorEnvelopeSchema = z.object({
|
|
|
184
206
|
schemaVersion: z.literal(1)
|
|
185
207
|
}).strict();
|
|
186
208
|
//#endregion
|
|
187
|
-
export { isRecord as S,
|
|
209
|
+
export { isRecord as C, parseMarkdownFrontmatter as S, parseContextTreeRootNode as _, contextContentClassCountsSchema as a, validationCodeSchema as b, contextTreeCliErrorEnvelopeSchema as c, contextTreeReadChildSchema as d, contextTreeReadNodeSchema as f, credentialFreeRepositoryUrlSchema as g, contextTreeRootNodeSchema as h, VALIDATION_CODES as i, contextTreeCliErrorSchema as l, contextTreeRootNodeFrontmatterSchema as m, CONTEXT_TREE_ROOT_NODE_MAX_BYTES as n, contextContentClassSchema as o, contextTreeReadResultSchema as p, SCHEMA_VERSION as r, contextTreeCliErrorCodeSchema as s, CLI_ERROR_CODES as t, contextTreePolicySchema as u, scaffoldTreeResultSchema as v, verifyTreeReportSchema as x, treeValidationFindingSchema as y };
|
package/dist/schemas.d.mts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { A as
|
|
2
|
-
export { CLI_ERROR_CODES,
|
|
1
|
+
import { A as credentialFreeRepositoryUrlSchema, C as contextTreeCliErrorSchema, D as contextTreeReadResultSchema, E as contextTreeReadNodeSchema, F as verifyTreeReportSchema, M as scaffoldTreeResultSchema, N as treeValidationFindingSchema, O as contextTreeRootNodeFrontmatterSchema, P as validationCodeSchema, S as contextTreeCliErrorEnvelopeSchema, T as contextTreeReadChildSchema, _ as ValidationCode, a as ContextTreeCliError, b as contextContentClassSchema, c as ContextTreePolicy, d as ContextTreeReadResult, f as ContextTreeRootNode, g as VALIDATION_CODES, h as TreeValidationFinding, i as ContextContentClassCounts, j as parseContextTreeRootNode, k as contextTreeRootNodeSchema, l as ContextTreeReadChild, m as ScaffoldTreeResult, n as CONTEXT_TREE_ROOT_NODE_MAX_BYTES, o as ContextTreeCliErrorCode, p as SCHEMA_VERSION, r as ContextContentClass, s as ContextTreeCliErrorEnvelope, t as CLI_ERROR_CODES, u as ContextTreeReadNode, v as VerifyTreeReport, w as contextTreePolicySchema, x as contextTreeCliErrorCodeSchema, y as contextContentClassCountsSchema } from "./schemas-BZkU14CI.mjs";
|
|
2
|
+
export { CLI_ERROR_CODES, CONTEXT_TREE_ROOT_NODE_MAX_BYTES, ContextContentClass, ContextContentClassCounts, ContextTreeCliError, ContextTreeCliErrorCode, ContextTreeCliErrorEnvelope, ContextTreePolicy, ContextTreeReadChild, ContextTreeReadNode, ContextTreeReadResult, ContextTreeRootNode, SCHEMA_VERSION, ScaffoldTreeResult, TreeValidationFinding, VALIDATION_CODES, ValidationCode, VerifyTreeReport, contextContentClassCountsSchema, contextContentClassSchema, contextTreeCliErrorCodeSchema, contextTreeCliErrorEnvelopeSchema, contextTreeCliErrorSchema, contextTreePolicySchema, contextTreeReadChildSchema, contextTreeReadNodeSchema, contextTreeReadResultSchema, contextTreeRootNodeFrontmatterSchema, contextTreeRootNodeSchema, credentialFreeRepositoryUrlSchema, parseContextTreeRootNode, scaffoldTreeResultSchema, treeValidationFindingSchema, validationCodeSchema, verifyTreeReportSchema };
|