@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 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, scoped reading, the canonical policy, Zod contracts,
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 --content
47
+ context-tree read --tree-path ./context-tree
48
+ context-tree read product --tree-path ./context-tree
49
49
  ```
50
50
 
51
- Scaffolding is create-only and always includes GitHub Actions validation pinned
52
- to the package version that created the tree. New repositories always start on
53
- `main`, independently of the user's Git configuration. The init skill verifies,
54
- commits, creates a private GitHub repository, and pushes `main`.
55
-
56
- Reads default to normal content. Select member, archive-supporting, or all
57
- classes only when needed. The read skill fast-forward refreshes an explicitly
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 `agent-slug` solely
77
- to select optional private memory at `members/<agent-slug>/memory.md`.
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", { path: "systems", content: true });
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 entries, read results,
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).
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env node
2
- import { o as contextContentClassSchema, t as CLI_ERROR_CODES } from "../schemas-DMs8vItE.mjs";
3
- import { a as readContextTreePolicy, i as readTree, n as verifyTree, o as readPackageManifest, t as scaffoldTree } from "../src-zCLwoWEK.mjs";
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(packageVersion()).exitOverride().configureOutput({
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 GitHub-backed Context Tree.").requiredOption("--tree-path <path>", "destination directory").requiredOption("--repository <owner/repo>", "GitHub repository identity").requiredOption("--title <title>", "tree title").action((options) => {
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 a Context Tree hierarchy and optional file content.").argument("[path]", "tree-relative path", ".").option("--tree-path <path>", "Context Tree root", ".").option("--pattern <glob>", "glob matched against paths and metadata").option("--depth <number>", "maximum depth below the selected path").option("--class <class>", "normal, archive-supporting, member, or all").option("--content", "include Markdown bodies").action((path, options) => {
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 readOptions = {
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 { A as scaffoldTreeResultSchema, C as contextTreePolicySchema, D as contextTreeScopeSchema, E as contextTreeScopeFrontmatterSchema, M as validationCodeSchema, N as verifyTreeReportSchema, O as credentialFreeRepositoryUrlSchema, S as contextTreeCliErrorSchema, T as contextTreeReadResultSchema, _ as VerifyTreeReport, a as ContextTreeCliError, b as contextTreeCliErrorCodeSchema, c as ContextTreePolicy, d as ContextTreeScope, f as SCHEMA_VERSION, g as ValidationCode, h as VALIDATION_CODES, i as ContextContentClassCounts, j as treeValidationFindingSchema, k as parseContextTreeScope, l as ContextTreeReadEntry, m as TreeValidationFinding, n as CONTEXT_TREE_SCOPE_MAX_BYTES, o as ContextTreeCliErrorCode, p as ScaffoldTreeResult, r as ContextContentClass, s as ContextTreeCliErrorEnvelope, t as CLI_ERROR_CODES, u as ContextTreeReadResult, v as contextContentClassCountsSchema, w as contextTreeReadEntrySchema, x as contextTreeCliErrorEnvelopeSchema, y as contextContentClassSchema } from "./schemas-DfX23thi.mjs";
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
- type ReadTreeOptions = {
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 { CLI_ERROR_CODES, CONTEXT_TREE_SCOPE_MAX_BYTES, type ContextContentClass, type ContextContentClassCounts, type ContextTreeCliError, type ContextTreeCliErrorCode, type ContextTreeCliErrorEnvelope, type ContextTreePolicy, type ContextTreeReadEntry, type ContextTreeReadResult, type ContextTreeScope, type ReadTreeOptions, SCHEMA_VERSION, type ScaffoldTreeOptions, type ScaffoldTreeResult, type TreeValidationFinding, VALIDATION_CODES, type ValidationCode, type VerifyTreeReport, classifyTreePath, contextContentClassCountsSchema, contextContentClassSchema, contextTreeCliErrorCodeSchema, contextTreeCliErrorEnvelopeSchema, contextTreeCliErrorSchema, contextTreePolicySchema, contextTreeReadEntrySchema, contextTreeReadResultSchema, contextTreeScopeFrontmatterSchema, contextTreeScopeSchema, credentialFreeRepositoryUrlSchema, parseContextTreeScope, readContextTreePolicy, readTree, scaffoldTree, scaffoldTreeResultSchema, treeValidationFindingSchema, validationCodeSchema, verifyTree, verifyTreeReportSchema };
19
+ export { type ScaffoldTreeOptions, readContextTreePolicy, readTree, scaffoldTree, verifyTree };
package/dist/index.mjs CHANGED
@@ -1,3 +1,2 @@
1
- import { _ as scaffoldTreeResultSchema, a as contextContentClassCountsSchema, b as verifyTreeReportSchema, c as contextTreeCliErrorEnvelopeSchema, d as contextTreeReadEntrySchema, f as contextTreeReadResultSchema, g as parseContextTreeScope, h as credentialFreeRepositoryUrlSchema, i as VALIDATION_CODES, l as contextTreeCliErrorSchema, m as contextTreeScopeSchema, n as CONTEXT_TREE_SCOPE_MAX_BYTES, o as contextContentClassSchema, p as contextTreeScopeFrontmatterSchema, r as SCHEMA_VERSION, s as contextTreeCliErrorCodeSchema, t as CLI_ERROR_CODES, u as contextTreePolicySchema, v as treeValidationFindingSchema, y as validationCodeSchema } from "./schemas-DMs8vItE.mjs";
2
- import { a as readContextTreePolicy, i as readTree, n as verifyTree, r as classifyTreePath, t as scaffoldTree } from "./src-zCLwoWEK.mjs";
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 CONTEXT_TREE_SCOPE_MAX_BYTES: number;
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 contextTreeScopeFrontmatterSchema: z.ZodObject<{
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.$strict>;
36
- declare const contextTreeScopeSchema: z.ZodObject<{
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.$strict>;
45
+ }, z.core.$loose>;
41
46
  body: z.ZodString;
42
47
  }, z.core.$strip>;
43
- type ContextTreeScope = z.infer<typeof contextTreeScopeSchema>;
44
- declare function parseContextTreeScope(markdown: string): ContextTreeScope;
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 contextTreeReadEntrySchema: z.ZodObject<{
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 ContextTreeReadEntry = z.infer<typeof contextTreeReadEntrySchema>;
145
+ type ContextTreeReadChild = z.infer<typeof contextTreeReadChildSchema>;
133
146
  declare const contextTreeReadResultSchema: z.ZodObject<{
134
- entries: z.ZodArray<z.ZodObject<{
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 { scaffoldTreeResultSchema as A, contextTreePolicySchema as C, contextTreeScopeSchema as D, contextTreeScopeFrontmatterSchema as E, validationCodeSchema as M, verifyTreeReportSchema as N, credentialFreeRepositoryUrlSchema as O, contextTreeCliErrorSchema as S, contextTreeReadResultSchema as T, VerifyTreeReport as _, ContextTreeCliError as a, contextTreeCliErrorCodeSchema as b, ContextTreePolicy as c, ContextTreeScope as d, SCHEMA_VERSION as f, ValidationCode as g, VALIDATION_CODES as h, ContextContentClassCounts as i, treeValidationFindingSchema as j, parseContextTreeScope as k, ContextTreeReadEntry as l, TreeValidationFinding as m, CONTEXT_TREE_SCOPE_MAX_BYTES as n, ContextTreeCliErrorCode as o, ScaffoldTreeResult as p, ContextContentClass as r, ContextTreeCliErrorEnvelope as s, CLI_ERROR_CODES as t, ContextTreeReadResult as u, contextContentClassCountsSchema as v, contextTreeReadEntrySchema as w, contextTreeCliErrorEnvelopeSchema as x, contextContentClassSchema as y };
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
- const MATTER_OPTIONS = { engines: { yaml: parseYamlMapping } };
18
- function parseMarkdownFrontmatter(source, options = {}) {
19
- const match = (options.strictDelimiters === true ? STRICT_FRONTMATTER_RE : PERMISSIVE_FRONTMATTER_RE).exec(source);
20
- if (!matter.test(source) || match === null) return {
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: parsed.content,
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: match[2] ?? "",
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 CONTEXT_TREE_SCOPE_MAX_BYTES = 16 * 1024;
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 contextTreeScopeFrontmatterSchema = z.object({
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
- }).strict();
111
- const contextTreeScopeSchema = z.object({
112
- frontmatter: contextTreeScopeFrontmatterSchema,
113
- body: z.string().trim().min(1, "SCOPE.md must describe what the Context Tree covers.")
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 parseContextTreeScope(markdown) {
116
- if (Buffer.byteLength(markdown, "utf8") > 16384) throw new Error(`SCOPE.md exceeds the ${CONTEXT_TREE_SCOPE_MAX_BYTES}-byte limit.`);
117
- const document = parseMarkdownFrontmatter(markdown, { strictDelimiters: true });
118
- if (document.frontmatter === "missing") throw new Error("SCOPE.md must contain YAML frontmatter.");
119
- if (document.frontmatter === "invalid" || document.data === null) throw new Error(`SCOPE.md frontmatter is invalid${document.error === void 0 ? "." : `: ${document.error}`}`);
120
- return contextTreeScopeSchema.parse({
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 contextTreeReadEntrySchema = z.object({
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
- title: z.string()
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
- entries: z.array(contextTreeReadEntrySchema),
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, scaffoldTreeResultSchema as _, contextContentClassCountsSchema as a, verifyTreeReportSchema as b, contextTreeCliErrorEnvelopeSchema as c, contextTreeReadEntrySchema as d, contextTreeReadResultSchema as f, parseContextTreeScope as g, credentialFreeRepositoryUrlSchema as h, VALIDATION_CODES as i, contextTreeCliErrorSchema as l, contextTreeScopeSchema as m, CONTEXT_TREE_SCOPE_MAX_BYTES as n, contextContentClassSchema as o, contextTreeScopeFrontmatterSchema as p, SCHEMA_VERSION as r, contextTreeCliErrorCodeSchema as s, CLI_ERROR_CODES as t, contextTreePolicySchema as u, treeValidationFindingSchema as v, parseMarkdownFrontmatter as x, validationCodeSchema as y };
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 };
@@ -1,2 +1,2 @@
1
- import { A as scaffoldTreeResultSchema, C as contextTreePolicySchema, D as contextTreeScopeSchema, E as contextTreeScopeFrontmatterSchema, M as validationCodeSchema, N as verifyTreeReportSchema, O as credentialFreeRepositoryUrlSchema, S as contextTreeCliErrorSchema, T as contextTreeReadResultSchema, _ as VerifyTreeReport, a as ContextTreeCliError, b as contextTreeCliErrorCodeSchema, c as ContextTreePolicy, d as ContextTreeScope, f as SCHEMA_VERSION, g as ValidationCode, h as VALIDATION_CODES, i as ContextContentClassCounts, j as treeValidationFindingSchema, k as parseContextTreeScope, l as ContextTreeReadEntry, m as TreeValidationFinding, n as CONTEXT_TREE_SCOPE_MAX_BYTES, o as ContextTreeCliErrorCode, p as ScaffoldTreeResult, r as ContextContentClass, s as ContextTreeCliErrorEnvelope, t as CLI_ERROR_CODES, u as ContextTreeReadResult, v as contextContentClassCountsSchema, w as contextTreeReadEntrySchema, x as contextTreeCliErrorEnvelopeSchema, y as contextContentClassSchema } from "./schemas-DfX23thi.mjs";
2
- export { CLI_ERROR_CODES, CONTEXT_TREE_SCOPE_MAX_BYTES, ContextContentClass, ContextContentClassCounts, ContextTreeCliError, ContextTreeCliErrorCode, ContextTreeCliErrorEnvelope, ContextTreePolicy, ContextTreeReadEntry, ContextTreeReadResult, ContextTreeScope, SCHEMA_VERSION, ScaffoldTreeResult, TreeValidationFinding, VALIDATION_CODES, ValidationCode, VerifyTreeReport, contextContentClassCountsSchema, contextContentClassSchema, contextTreeCliErrorCodeSchema, contextTreeCliErrorEnvelopeSchema, contextTreeCliErrorSchema, contextTreePolicySchema, contextTreeReadEntrySchema, contextTreeReadResultSchema, contextTreeScopeFrontmatterSchema, contextTreeScopeSchema, credentialFreeRepositoryUrlSchema, parseContextTreeScope, scaffoldTreeResultSchema, treeValidationFindingSchema, validationCodeSchema, verifyTreeReportSchema };
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 };