contentbase 0.4.0 → 0.4.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/dist/adapters/node-fs.d.ts +17 -0
- package/dist/adapters/node-fs.d.ts.map +1 -0
- package/dist/adapters/node-fs.js +71 -0
- package/dist/adapters/node-fs.js.map +1 -0
- package/dist/ast-query.d.ts +44 -0
- package/dist/ast-query.d.ts.map +1 -0
- package/dist/ast-query.js +95 -0
- package/dist/ast-query.js.map +1 -0
- package/dist/base-model.d.ts +8 -0
- package/dist/base-model.d.ts.map +1 -0
- package/dist/base-model.js +12 -0
- package/dist/base-model.js.map +1 -0
- package/dist/cli/commands/action.d.ts +2 -0
- package/dist/cli/commands/action.d.ts.map +1 -0
- package/dist/cli/commands/action.js +73 -0
- package/dist/cli/commands/action.js.map +1 -0
- package/dist/cli/commands/api/endpoints/actions.d.ts +13 -0
- package/dist/cli/commands/api/endpoints/actions.d.ts.map +1 -0
- package/dist/cli/commands/api/endpoints/actions.js +28 -0
- package/dist/cli/commands/api/endpoints/actions.js.map +1 -0
- package/dist/cli/commands/api/endpoints/doc.d.ts +5 -0
- package/dist/cli/commands/api/endpoints/doc.d.ts.map +1 -0
- package/dist/cli/commands/api/endpoints/doc.js +186 -0
- package/dist/cli/commands/api/endpoints/doc.js.map +1 -0
- package/dist/cli/commands/api/endpoints/docs-index.d.ts +8 -0
- package/dist/cli/commands/api/endpoints/docs-index.d.ts.map +1 -0
- package/dist/cli/commands/api/endpoints/docs-index.js +23 -0
- package/dist/cli/commands/api/endpoints/docs-index.js.map +1 -0
- package/dist/cli/commands/api/endpoints/document.d.ts +47 -0
- package/dist/cli/commands/api/endpoints/document.d.ts.map +1 -0
- package/dist/cli/commands/api/endpoints/document.js +146 -0
- package/dist/cli/commands/api/endpoints/document.js.map +1 -0
- package/dist/cli/commands/api/endpoints/documents.d.ts +35 -0
- package/dist/cli/commands/api/endpoints/documents.d.ts.map +1 -0
- package/dist/cli/commands/api/endpoints/documents.js +56 -0
- package/dist/cli/commands/api/endpoints/documents.js.map +1 -0
- package/dist/cli/commands/api/endpoints/index.d.ts +22 -0
- package/dist/cli/commands/api/endpoints/index.d.ts.map +1 -0
- package/dist/cli/commands/api/endpoints/index.js +38 -0
- package/dist/cli/commands/api/endpoints/index.js.map +1 -0
- package/dist/cli/commands/api/endpoints/inspect.d.ts +10 -0
- package/dist/cli/commands/api/endpoints/inspect.d.ts.map +1 -0
- package/dist/cli/commands/api/endpoints/inspect.js +15 -0
- package/dist/cli/commands/api/endpoints/inspect.js.map +1 -0
- package/dist/cli/commands/api/endpoints/models.d.ts +5 -0
- package/dist/cli/commands/api/endpoints/models.d.ts.map +1 -0
- package/dist/cli/commands/api/endpoints/models.js +9 -0
- package/dist/cli/commands/api/endpoints/models.js.map +1 -0
- package/dist/cli/commands/api/endpoints/query.d.ts +40 -0
- package/dist/cli/commands/api/endpoints/query.d.ts.map +1 -0
- package/dist/cli/commands/api/endpoints/query.js +106 -0
- package/dist/cli/commands/api/endpoints/query.js.map +1 -0
- package/dist/cli/commands/api/endpoints/root.d.ts +5 -0
- package/dist/cli/commands/api/endpoints/root.d.ts.map +1 -0
- package/dist/cli/commands/api/endpoints/root.js +7 -0
- package/dist/cli/commands/api/endpoints/root.js.map +1 -0
- package/dist/cli/commands/api/endpoints/search-reindex.d.ts +10 -0
- package/dist/cli/commands/api/endpoints/search-reindex.d.ts.map +1 -0
- package/dist/cli/commands/api/endpoints/search-reindex.js +38 -0
- package/dist/cli/commands/api/endpoints/search-reindex.js.map +1 -0
- package/dist/cli/commands/api/endpoints/search-status.d.ts +7 -0
- package/dist/cli/commands/api/endpoints/search-status.d.ts.map +1 -0
- package/dist/cli/commands/api/endpoints/search-status.js +33 -0
- package/dist/cli/commands/api/endpoints/search-status.js.map +1 -0
- package/dist/cli/commands/api/endpoints/search.d.ts +24 -0
- package/dist/cli/commands/api/endpoints/search.d.ts.map +1 -0
- package/dist/cli/commands/api/endpoints/search.js +61 -0
- package/dist/cli/commands/api/endpoints/search.js.map +1 -0
- package/dist/cli/commands/api/endpoints/semantic-search.d.ts +28 -0
- package/dist/cli/commands/api/endpoints/semantic-search.d.ts.map +1 -0
- package/dist/cli/commands/api/endpoints/semantic-search.js +76 -0
- package/dist/cli/commands/api/endpoints/semantic-search.js.map +1 -0
- package/dist/cli/commands/api/endpoints/text-search.d.ts +17 -0
- package/dist/cli/commands/api/endpoints/text-search.d.ts.map +1 -0
- package/dist/cli/commands/api/endpoints/text-search.js +55 -0
- package/dist/cli/commands/api/endpoints/text-search.js.map +1 -0
- package/dist/cli/commands/api/endpoints/validate.d.ts +12 -0
- package/dist/cli/commands/api/endpoints/validate.d.ts.map +1 -0
- package/dist/cli/commands/api/endpoints/validate.js +27 -0
- package/dist/cli/commands/api/endpoints/validate.js.map +1 -0
- package/dist/cli/commands/api/helpers.d.ts +8 -0
- package/dist/cli/commands/api/helpers.d.ts.map +1 -0
- package/dist/cli/commands/api/helpers.js +89 -0
- package/dist/cli/commands/api/helpers.js.map +1 -0
- package/dist/cli/commands/console.d.ts +2 -0
- package/dist/cli/commands/console.d.ts.map +1 -0
- package/dist/cli/commands/console.js +117 -0
- package/dist/cli/commands/console.js.map +1 -0
- package/dist/cli/commands/create.d.ts +2 -0
- package/dist/cli/commands/create.d.ts.map +1 -0
- package/dist/cli/commands/create.js +185 -0
- package/dist/cli/commands/create.js.map +1 -0
- package/dist/cli/commands/embed.d.ts +2 -0
- package/dist/cli/commands/embed.d.ts.map +1 -0
- package/dist/cli/commands/embed.js +231 -0
- package/dist/cli/commands/embed.js.map +1 -0
- package/dist/cli/commands/export.d.ts +2 -0
- package/dist/cli/commands/export.d.ts.map +1 -0
- package/dist/cli/commands/export.js +55 -0
- package/dist/cli/commands/export.js.map +1 -0
- package/dist/cli/commands/extract.d.ts +2 -0
- package/dist/cli/commands/extract.d.ts.map +1 -0
- package/dist/cli/commands/extract.js +149 -0
- package/dist/cli/commands/extract.js.map +1 -0
- package/dist/cli/commands/help.d.ts +2 -0
- package/dist/cli/commands/help.d.ts.map +1 -0
- package/dist/cli/commands/help.js +58 -0
- package/dist/cli/commands/help.js.map +1 -0
- package/dist/cli/commands/index.d.ts +18 -0
- package/dist/cli/commands/index.d.ts.map +1 -0
- package/dist/cli/commands/index.js +19 -0
- package/dist/cli/commands/index.js.map +1 -0
- package/dist/cli/commands/init.d.ts +2 -0
- package/dist/cli/commands/init.d.ts.map +1 -0
- package/dist/cli/commands/init.js +82 -0
- package/dist/cli/commands/init.js.map +1 -0
- package/dist/cli/commands/inspect.d.ts +2 -0
- package/dist/cli/commands/inspect.d.ts.map +1 -0
- package/dist/cli/commands/inspect.js +53 -0
- package/dist/cli/commands/inspect.js.map +1 -0
- package/dist/cli/commands/mcp.d.ts +2 -0
- package/dist/cli/commands/mcp.d.ts.map +1 -0
- package/dist/cli/commands/mcp.js +92 -0
- package/dist/cli/commands/mcp.js.map +1 -0
- package/dist/cli/commands/search.d.ts +2 -0
- package/dist/cli/commands/search.d.ts.map +1 -0
- package/dist/cli/commands/search.js +212 -0
- package/dist/cli/commands/search.js.map +1 -0
- package/dist/cli/commands/serve.d.ts +2 -0
- package/dist/cli/commands/serve.d.ts.map +1 -0
- package/dist/cli/commands/serve.js +298 -0
- package/dist/cli/commands/serve.js.map +1 -0
- package/dist/cli/commands/summary.d.ts +2 -0
- package/dist/cli/commands/summary.d.ts.map +1 -0
- package/dist/cli/commands/summary.js +58 -0
- package/dist/cli/commands/summary.js.map +1 -0
- package/dist/cli/commands/teach.d.ts +2 -0
- package/dist/cli/commands/teach.d.ts.map +1 -0
- package/dist/cli/commands/teach.js +80 -0
- package/dist/cli/commands/teach.js.map +1 -0
- package/dist/cli/commands/text-search.d.ts +2 -0
- package/dist/cli/commands/text-search.d.ts.map +1 -0
- package/dist/cli/commands/text-search.js +125 -0
- package/dist/cli/commands/text-search.js.map +1 -0
- package/dist/cli/commands/update.d.ts +2 -0
- package/dist/cli/commands/update.d.ts.map +1 -0
- package/dist/cli/commands/update.js +167 -0
- package/dist/cli/commands/update.js.map +1 -0
- package/dist/cli/commands/validate.d.ts +2 -0
- package/dist/cli/commands/validate.d.ts.map +1 -0
- package/dist/cli/commands/validate.js +129 -0
- package/dist/cli/commands/validate.js.map +1 -0
- package/dist/cli/index.d.ts +3 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +84 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/cli/load-collection.d.ts +7 -0
- package/dist/cli/load-collection.d.ts.map +1 -0
- package/dist/cli/load-collection.js +201 -0
- package/dist/cli/load-collection.js.map +1 -0
- package/dist/cli/registry.d.ts +17 -0
- package/dist/cli/registry.d.ts.map +1 -0
- package/dist/cli/registry.js +16 -0
- package/dist/cli/registry.js.map +1 -0
- package/dist/cnotes +0 -0
- package/dist/collection.d.ts +145 -0
- package/dist/collection.d.ts.map +1 -0
- package/dist/collection.js +684 -0
- package/dist/collection.js.map +1 -0
- package/dist/define-model.d.ts +45 -0
- package/dist/define-model.d.ts.map +1 -0
- package/dist/define-model.js +106 -0
- package/dist/define-model.js.map +1 -0
- package/dist/document.d.ts +119 -0
- package/dist/document.d.ts.map +1 -0
- package/dist/document.js +418 -0
- package/dist/document.js.map +1 -0
- package/dist/extract-sections.d.ts +46 -0
- package/dist/extract-sections.d.ts.map +1 -0
- package/dist/extract-sections.js +153 -0
- package/dist/extract-sections.js.map +1 -0
- package/dist/index.d.ts +28 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +31 -0
- package/dist/index.js.map +1 -0
- package/dist/mcp/helpers.d.ts +14 -0
- package/dist/mcp/helpers.d.ts.map +1 -0
- package/dist/mcp/helpers.js +7 -0
- package/dist/mcp/helpers.js.map +1 -0
- package/dist/mcp/model-info.d.ts +2 -0
- package/dist/mcp/model-info.d.ts.map +1 -0
- package/dist/mcp/model-info.js +94 -0
- package/dist/mcp/model-info.js.map +1 -0
- package/dist/mcp/prompts.d.ts +2 -0
- package/dist/mcp/prompts.d.ts.map +1 -0
- package/dist/mcp/prompts.js +180 -0
- package/dist/mcp/prompts.js.map +1 -0
- package/dist/mcp/readme.d.ts +2 -0
- package/dist/mcp/readme.d.ts.map +1 -0
- package/dist/mcp/readme.js +71 -0
- package/dist/mcp/readme.js.map +1 -0
- package/dist/mcp/resources.d.ts +2 -0
- package/dist/mcp/resources.d.ts.map +1 -0
- package/dist/mcp/resources.js +85 -0
- package/dist/mcp/resources.js.map +1 -0
- package/dist/mcp/server.d.ts +18 -0
- package/dist/mcp/server.d.ts.map +1 -0
- package/dist/mcp/server.js +83 -0
- package/dist/mcp/server.js.map +1 -0
- package/dist/mcp/tools/mutation.d.ts +2 -0
- package/dist/mcp/tools/mutation.d.ts.map +1 -0
- package/dist/mcp/tools/mutation.js +155 -0
- package/dist/mcp/tools/mutation.js.map +1 -0
- package/dist/mcp/tools/query.d.ts +2 -0
- package/dist/mcp/tools/query.d.ts.map +1 -0
- package/dist/mcp/tools/query.js +130 -0
- package/dist/mcp/tools/query.js.map +1 -0
- package/dist/mcp/tools/search.d.ts +2 -0
- package/dist/mcp/tools/search.d.ts.map +1 -0
- package/dist/mcp/tools/search.js +168 -0
- package/dist/mcp/tools/search.js.map +1 -0
- package/dist/model-instance.d.ts +11 -0
- package/dist/model-instance.d.ts.map +1 -0
- package/dist/model-instance.js +208 -0
- package/dist/model-instance.js.map +1 -0
- package/dist/node-shortcuts.d.ts +25 -0
- package/dist/node-shortcuts.d.ts.map +1 -0
- package/dist/node-shortcuts.js +67 -0
- package/dist/node-shortcuts.js.map +1 -0
- package/dist/parse.d.ts +45 -0
- package/dist/parse.d.ts.map +1 -0
- package/dist/parse.js +98 -0
- package/dist/parse.js.map +1 -0
- package/dist/query/collection-query.d.ts +39 -0
- package/dist/query/collection-query.d.ts.map +1 -0
- package/dist/query/collection-query.js +184 -0
- package/dist/query/collection-query.js.map +1 -0
- package/dist/query/index.d.ts +8 -0
- package/dist/query/index.d.ts.map +1 -0
- package/dist/query/index.js +5 -0
- package/dist/query/index.js.map +1 -0
- package/dist/query/operators.d.ts +3 -0
- package/dist/query/operators.d.ts.map +1 -0
- package/dist/query/operators.js +18 -0
- package/dist/query/operators.js.map +1 -0
- package/dist/query/query-builder.d.ts +34 -0
- package/dist/query/query-builder.d.ts.map +1 -0
- package/dist/query/query-builder.js +84 -0
- package/dist/query/query-builder.js.map +1 -0
- package/dist/query/query-dsl.d.ts +36 -0
- package/dist/query/query-dsl.d.ts.map +1 -0
- package/dist/query/query-dsl.js +195 -0
- package/dist/query/query-dsl.js.map +1 -0
- package/dist/relationships/belongs-to.d.ts +9 -0
- package/dist/relationships/belongs-to.d.ts.map +1 -0
- package/dist/relationships/belongs-to.js +34 -0
- package/dist/relationships/belongs-to.js.map +1 -0
- package/dist/relationships/has-many.d.ts +23 -0
- package/dist/relationships/has-many.d.ts.map +1 -0
- package/dist/relationships/has-many.js +136 -0
- package/dist/relationships/has-many.js.map +1 -0
- package/dist/relationships/index.d.ts +26 -0
- package/dist/relationships/index.d.ts.map +1 -0
- package/dist/relationships/index.js +32 -0
- package/dist/relationships/index.js.map +1 -0
- package/dist/relationships/types.d.ts +2 -0
- package/dist/relationships/types.d.ts.map +1 -0
- package/dist/relationships/types.js +2 -0
- package/dist/relationships/types.js.map +1 -0
- package/dist/search/document-inputs.d.ts +30 -0
- package/dist/search/document-inputs.d.ts.map +1 -0
- package/dist/search/document-inputs.js +52 -0
- package/dist/search/document-inputs.js.map +1 -0
- package/dist/search/luca-semantic-search.d.ts +27 -0
- package/dist/search/luca-semantic-search.d.ts.map +1 -0
- package/dist/search/luca-semantic-search.js +56 -0
- package/dist/search/luca-semantic-search.js.map +1 -0
- package/dist/section.d.ts +21 -0
- package/dist/section.d.ts.map +1 -0
- package/dist/section.js +21 -0
- package/dist/section.js.map +1 -0
- package/dist/types.d.ts +185 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +2 -0
- package/dist/types.js.map +1 -0
- package/dist/utils/index.d.ts +9 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +8 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/inflect.d.ts +6 -0
- package/dist/utils/inflect.d.ts.map +1 -0
- package/dist/utils/inflect.js +75 -0
- package/dist/utils/inflect.js.map +1 -0
- package/dist/utils/match-pattern.d.ts +25 -0
- package/dist/utils/match-pattern.d.ts.map +1 -0
- package/dist/utils/match-pattern.js +52 -0
- package/dist/utils/match-pattern.js.map +1 -0
- package/dist/utils/normalize-headings.d.ts +8 -0
- package/dist/utils/normalize-headings.d.ts.map +1 -0
- package/dist/utils/normalize-headings.js +19 -0
- package/dist/utils/normalize-headings.js.map +1 -0
- package/dist/utils/parse-table.d.ts +7 -0
- package/dist/utils/parse-table.d.ts.map +1 -0
- package/dist/utils/parse-table.js +17 -0
- package/dist/utils/parse-table.js.map +1 -0
- package/dist/utils/read-directory.d.ts +5 -0
- package/dist/utils/read-directory.d.ts.map +1 -0
- package/dist/utils/read-directory.js +29 -0
- package/dist/utils/read-directory.js.map +1 -0
- package/dist/utils/stringify-ast.d.ts +6 -0
- package/dist/utils/stringify-ast.d.ts.map +1 -0
- package/dist/utils/stringify-ast.js +8 -0
- package/dist/utils/stringify-ast.js.map +1 -0
- package/dist/utils/strip-markdown.d.ts +11 -0
- package/dist/utils/strip-markdown.d.ts.map +1 -0
- package/dist/utils/strip-markdown.js +48 -0
- package/dist/utils/strip-markdown.js.map +1 -0
- package/dist/validator.d.ts +10 -0
- package/dist/validator.d.ts.map +1 -0
- package/dist/validator.js +55 -0
- package/dist/validator.js.map +1 -0
- package/package.json +1 -1
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
export { Collection, introspectMetaSchema } from "./collection";
|
|
2
|
+
export type { FieldInfo } from "./collection";
|
|
3
|
+
export { Document } from "./document";
|
|
4
|
+
export { AstQuery } from "./ast-query";
|
|
5
|
+
export { NodeShortcuts } from "./node-shortcuts";
|
|
6
|
+
export { parse } from "./parse";
|
|
7
|
+
export type { ParsedDocument } from "./parse";
|
|
8
|
+
export { extractSections } from "./extract-sections";
|
|
9
|
+
export type { ExtractionEntry, ExtractSectionsOptions, SectionSource, } from "./extract-sections";
|
|
10
|
+
export { defineModel, generateDescription } from "./define-model";
|
|
11
|
+
export { Base } from "./base-model";
|
|
12
|
+
export { section } from "./section";
|
|
13
|
+
export { hasMany, belongsTo } from "./relationships/index";
|
|
14
|
+
export { CollectionQuery } from "./query/collection-query";
|
|
15
|
+
export { QueryBuilder } from "./query/query-builder";
|
|
16
|
+
export { queryDSLSchema, parseWhereClause, parseSortClause, executeQueryDSL, } from "./query/query-dsl";
|
|
17
|
+
export type { QueryDSL } from "./query/query-dsl";
|
|
18
|
+
export { createModelInstance } from "./model-instance";
|
|
19
|
+
export { validateDocument } from "./validator";
|
|
20
|
+
export { matchPattern, matchPatterns } from "./utils/match-pattern";
|
|
21
|
+
export { stripMarkdown } from "./utils/strip-markdown";
|
|
22
|
+
export type { StripMarkdownOptions } from "./utils/strip-markdown";
|
|
23
|
+
import { toString } from "mdast-util-to-string";
|
|
24
|
+
export { NodeStorageAdapter } from "./adapters/node-fs";
|
|
25
|
+
export type { ModelDefinition, InferModelInstance, SectionDefinition, HasManyDefinition, BelongsToDefinition, RelationshipDefinition, CollectionItem, CollectionOptions, HasManyAccessor, BelongsToAccessor, ValidationResult, SerializeOptions, SaveOptions, DocumentRef, StorageAdapter, FileStat, FileEntry, } from "./types";
|
|
26
|
+
export { z } from "zod";
|
|
27
|
+
export { toString };
|
|
28
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAChE,YAAY,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,YAAY,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,YAAY,EACV,eAAe,EACf,sBAAsB,EACtB,aAAa,GACd,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAClE,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AACpC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAG3D,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EACL,cAAc,EACd,gBAAgB,EAChB,eAAe,EACf,eAAe,GAChB,MAAM,mBAAmB,CAAC;AAC3B,YAAY,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAGlD,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAGvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAG/C,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAGpE,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,YAAY,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAEnE,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAGhD,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAGxD,YAAY,EACV,eAAe,EACf,kBAAkB,EAClB,iBAAiB,EACjB,iBAAiB,EACjB,mBAAmB,EACnB,sBAAsB,EACtB,cAAc,EACd,iBAAiB,EACjB,eAAe,EACf,iBAAiB,EACjB,gBAAgB,EAChB,gBAAgB,EAChB,WAAW,EACX,WAAW,EACX,cAAc,EACd,QAAQ,EACR,SAAS,GACV,MAAM,SAAS,CAAC;AAGjB,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,QAAQ,EAAE,CAAC"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
// Core classes
|
|
2
|
+
export { Collection, introspectMetaSchema } from "./collection";
|
|
3
|
+
export { Document } from "./document";
|
|
4
|
+
export { AstQuery } from "./ast-query";
|
|
5
|
+
export { NodeShortcuts } from "./node-shortcuts";
|
|
6
|
+
export { parse } from "./parse";
|
|
7
|
+
export { extractSections } from "./extract-sections";
|
|
8
|
+
// defineModel and helpers
|
|
9
|
+
export { defineModel, generateDescription } from "./define-model";
|
|
10
|
+
export { Base } from "./base-model";
|
|
11
|
+
export { section } from "./section";
|
|
12
|
+
export { hasMany, belongsTo } from "./relationships/index";
|
|
13
|
+
// Query
|
|
14
|
+
export { CollectionQuery } from "./query/collection-query";
|
|
15
|
+
export { QueryBuilder } from "./query/query-builder";
|
|
16
|
+
export { queryDSLSchema, parseWhereClause, parseSortClause, executeQueryDSL, } from "./query/query-dsl";
|
|
17
|
+
// Model instance factory (advanced use)
|
|
18
|
+
export { createModelInstance } from "./model-instance";
|
|
19
|
+
// Validation
|
|
20
|
+
export { validateDocument } from "./validator";
|
|
21
|
+
// Pattern matching
|
|
22
|
+
export { matchPattern, matchPatterns } from "./utils/match-pattern";
|
|
23
|
+
// Markdown utilities
|
|
24
|
+
export { stripMarkdown } from "./utils/strip-markdown";
|
|
25
|
+
import { toString } from "mdast-util-to-string";
|
|
26
|
+
// Storage adapters
|
|
27
|
+
export { NodeStorageAdapter } from "./adapters/node-fs";
|
|
28
|
+
// Re-export zod for convenience
|
|
29
|
+
export { z } from "zod";
|
|
30
|
+
export { toString };
|
|
31
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,eAAe;AACf,OAAO,EAAE,UAAU,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAEhE,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAEhC,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAOrD,0BAA0B;AAC1B,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAClE,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AACpC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAE3D,QAAQ;AACR,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EACL,cAAc,EACd,gBAAgB,EAChB,eAAe,EACf,eAAe,GAChB,MAAM,mBAAmB,CAAC;AAG3B,wCAAwC;AACxC,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAEvD,aAAa;AACb,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAE/C,mBAAmB;AACnB,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAEpE,qBAAqB;AACrB,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAGvD,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAEhD,mBAAmB;AACnB,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAuBxD,gCAAgC;AAChC,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,QAAQ,EAAE,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export declare function errorResult(message: string): {
|
|
2
|
+
content: {
|
|
3
|
+
type: "text";
|
|
4
|
+
text: string;
|
|
5
|
+
}[];
|
|
6
|
+
isError: boolean;
|
|
7
|
+
};
|
|
8
|
+
export declare function textResult(text: string): {
|
|
9
|
+
content: {
|
|
10
|
+
type: "text";
|
|
11
|
+
text: string;
|
|
12
|
+
}[];
|
|
13
|
+
};
|
|
14
|
+
//# sourceMappingURL=helpers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../src/mcp/helpers.ts"],"names":[],"mappings":"AAAA,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM;;;;;;EAE1C;AAED,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM;;;;;EAEtC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../src/mcp/helpers.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,WAAW,CAAC,OAAe;IACzC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAA;AAC/E,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,IAAY;IACrC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,CAAC,EAAE,CAAA;AACvD,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"model-info.d.ts","sourceRoot":"","sources":["../../src/mcp/model-info.ts"],"names":[],"mappings":"AAEA,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,UAmG1D"}
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
import { introspectMetaSchema } from '../index.js';
|
|
2
|
+
export function generateModelInfo(collection, def) {
|
|
3
|
+
const lines = [];
|
|
4
|
+
const name = def.name;
|
|
5
|
+
const prefix = def.prefix;
|
|
6
|
+
const description = def.description || '';
|
|
7
|
+
const prefixDocs = collection.available.filter((id) => id.startsWith(prefix + '/'));
|
|
8
|
+
lines.push(`# Model: ${name}`, '');
|
|
9
|
+
lines.push(`- **Prefix:** \`${prefix}/\``);
|
|
10
|
+
lines.push(`- **Documents:** ${prefixDocs.length}`);
|
|
11
|
+
if (description)
|
|
12
|
+
lines.push(`- **Description:** ${description}`);
|
|
13
|
+
lines.push('');
|
|
14
|
+
// Fields
|
|
15
|
+
const fields = introspectMetaSchema(def.meta);
|
|
16
|
+
if (fields.length > 0) {
|
|
17
|
+
lines.push('## Frontmatter Fields', '');
|
|
18
|
+
lines.push('| Field | Type | Required | Default | Description |');
|
|
19
|
+
lines.push('|-------|------|----------|---------|-------------|');
|
|
20
|
+
for (const f of fields) {
|
|
21
|
+
const req = f.required ? 'yes' : 'no';
|
|
22
|
+
const def_val = f.defaultValue !== undefined ? `\`${JSON.stringify(f.defaultValue)}\`` : '';
|
|
23
|
+
const desc = f.description || '';
|
|
24
|
+
lines.push(`| ${f.name} | ${f.type} | ${req} | ${def_val} | ${desc} |`);
|
|
25
|
+
}
|
|
26
|
+
lines.push('');
|
|
27
|
+
}
|
|
28
|
+
// Sections
|
|
29
|
+
const sections = Object.entries(def.sections || {});
|
|
30
|
+
if (sections.length > 0) {
|
|
31
|
+
lines.push('## Sections', '');
|
|
32
|
+
for (const [key, sec] of sections) {
|
|
33
|
+
lines.push(`- **${sec.heading}** (key: \`${key}\`)${sec.schema ? ' — has schema validation' : ''}`);
|
|
34
|
+
if (sec.alternatives?.length) {
|
|
35
|
+
lines.push(` Alternatives: ${sec.alternatives.join(', ')}`);
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
lines.push('');
|
|
39
|
+
}
|
|
40
|
+
// Relationships
|
|
41
|
+
const relationships = Object.entries(def.relationships || {});
|
|
42
|
+
if (relationships.length > 0) {
|
|
43
|
+
lines.push('## Relationships', '');
|
|
44
|
+
for (const [key, rel] of relationships) {
|
|
45
|
+
lines.push(`- \`${key}\` → ${rel.type} **${rel.model}**`);
|
|
46
|
+
}
|
|
47
|
+
lines.push('');
|
|
48
|
+
}
|
|
49
|
+
// Computed & Scopes
|
|
50
|
+
const computedKeys = Object.keys(def.computed || {});
|
|
51
|
+
if (computedKeys.length > 0) {
|
|
52
|
+
lines.push('## Computed Properties', '');
|
|
53
|
+
lines.push(computedKeys.map(k => `- \`${k}\``).join('\n'));
|
|
54
|
+
lines.push('');
|
|
55
|
+
}
|
|
56
|
+
const scopeKeys = Object.keys(def.scopes || {});
|
|
57
|
+
if (scopeKeys.length > 0) {
|
|
58
|
+
lines.push('## Named Scopes', '');
|
|
59
|
+
lines.push(scopeKeys.map(k => `- \`${k}\``).join('\n'));
|
|
60
|
+
lines.push('');
|
|
61
|
+
}
|
|
62
|
+
// Existing documents
|
|
63
|
+
if (prefixDocs.length > 0) {
|
|
64
|
+
lines.push('## Existing Documents', '');
|
|
65
|
+
for (const id of prefixDocs) {
|
|
66
|
+
lines.push(`- \`${id}\``);
|
|
67
|
+
}
|
|
68
|
+
lines.push('');
|
|
69
|
+
}
|
|
70
|
+
// Example scaffold
|
|
71
|
+
const defaultMeta = {};
|
|
72
|
+
for (const f of fields) {
|
|
73
|
+
if (f.defaultValue !== undefined) {
|
|
74
|
+
defaultMeta[f.name] = f.defaultValue;
|
|
75
|
+
}
|
|
76
|
+
else if (f.required) {
|
|
77
|
+
defaultMeta[f.name] = `<${f.type}>`;
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
const sectionHeadings = sections.map(([, sec]) => `## ${sec.heading}\n\n`);
|
|
81
|
+
lines.push('## Example Document', '');
|
|
82
|
+
lines.push('```markdown');
|
|
83
|
+
lines.push('---');
|
|
84
|
+
for (const [k, v] of Object.entries(defaultMeta)) {
|
|
85
|
+
lines.push(`${k}: ${typeof v === 'string' ? v : JSON.stringify(v)}`);
|
|
86
|
+
}
|
|
87
|
+
lines.push('---');
|
|
88
|
+
lines.push(`# Your Title Here`);
|
|
89
|
+
lines.push('');
|
|
90
|
+
lines.push(sectionHeadings.join(''));
|
|
91
|
+
lines.push('```');
|
|
92
|
+
return lines.join('\n');
|
|
93
|
+
}
|
|
94
|
+
//# sourceMappingURL=model-info.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"model-info.js","sourceRoot":"","sources":["../../src/mcp/model-info.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prompts.d.ts","sourceRoot":"","sources":["../../src/mcp/prompts.ts"],"names":[],"mappings":"AAKA,wBAAgB,eAAe,CAAC,SAAS,EAAE,GAAG,EAAE,UAAU,EAAE,GAAG,QAiM9D"}
|
|
@@ -0,0 +1,180 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import path from 'node:path';
|
|
3
|
+
import fs from 'node:fs/promises';
|
|
4
|
+
import { introspectMetaSchema, validateDocument } from '../index.js';
|
|
5
|
+
export function registerPrompts(mcpServer, collection) {
|
|
6
|
+
const modelDefs = collection.modelDefinitions;
|
|
7
|
+
// Per-model creation prompts
|
|
8
|
+
for (const def of modelDefs) {
|
|
9
|
+
const modelName = def.name;
|
|
10
|
+
const promptName = `create-${modelName.toLowerCase()}`;
|
|
11
|
+
mcpServer.prompt(promptName, {
|
|
12
|
+
description: `Guide creation of a new ${modelName} document with proper schema and sections`,
|
|
13
|
+
args: {
|
|
14
|
+
title: z.string().describe('Title for the new document'),
|
|
15
|
+
},
|
|
16
|
+
handler: (args) => {
|
|
17
|
+
const fields = introspectMetaSchema(def.meta);
|
|
18
|
+
const sections = Object.entries(def.sections || {}).map(([key, sec]) => ({
|
|
19
|
+
key,
|
|
20
|
+
heading: sec.heading,
|
|
21
|
+
hasSchema: !!sec.schema,
|
|
22
|
+
}));
|
|
23
|
+
const fieldDocs = fields.map((f) => `- **${f.name}** (${f.type}${f.required ? ', required' : ''})${f.description ? `: ${f.description}` : ''}${f.defaultValue !== undefined ? ` [default: ${JSON.stringify(f.defaultValue)}]` : ''}`).join('\n');
|
|
24
|
+
const sectionDocs = sections.map((s) => `- **${s.heading}** (key: \`${s.key}\`)${s.hasSchema ? ' — has schema validation' : ''}`).join('\n');
|
|
25
|
+
const content = [
|
|
26
|
+
`# Create a new ${modelName}`,
|
|
27
|
+
'',
|
|
28
|
+
`Title: ${args.title || '(not specified)'}`,
|
|
29
|
+
'',
|
|
30
|
+
'## Frontmatter Fields',
|
|
31
|
+
'',
|
|
32
|
+
fieldDocs || '(no schema fields defined)',
|
|
33
|
+
'',
|
|
34
|
+
'## Sections',
|
|
35
|
+
'',
|
|
36
|
+
sectionDocs || '(no sections defined)',
|
|
37
|
+
'',
|
|
38
|
+
'## Instructions',
|
|
39
|
+
'',
|
|
40
|
+
`Use the \`create_document\` tool with model="${modelName}" and fill in the meta fields.`,
|
|
41
|
+
'Then use `update_section` to populate each section with content.',
|
|
42
|
+
].join('\n');
|
|
43
|
+
return [{ role: 'user', content }];
|
|
44
|
+
},
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
mcpServer.prompt('review-document', {
|
|
48
|
+
description: 'Fetch a document, run validation, and present it for review',
|
|
49
|
+
args: {
|
|
50
|
+
pathId: z.string().describe('Document path ID to review'),
|
|
51
|
+
},
|
|
52
|
+
handler: (args) => {
|
|
53
|
+
const pathId = args.pathId;
|
|
54
|
+
if (!pathId) {
|
|
55
|
+
return [{ role: 'user', content: 'Error: pathId argument is required.' }];
|
|
56
|
+
}
|
|
57
|
+
const doc = collection.document(pathId);
|
|
58
|
+
if (!doc) {
|
|
59
|
+
return [{ role: 'user', content: `Document not found: ${pathId}` }];
|
|
60
|
+
}
|
|
61
|
+
const def = collection.findModelDefinition(pathId);
|
|
62
|
+
let validationText = '';
|
|
63
|
+
if (def) {
|
|
64
|
+
const result = validateDocument(doc, def);
|
|
65
|
+
validationText = result.valid
|
|
66
|
+
? '\n**Validation: PASSED**\n'
|
|
67
|
+
: `\n**Validation: FAILED**\n\nErrors:\n${result.errors.map((e) => `- ${e.path.join('.')}: ${e.message}`).join('\n')}\n`;
|
|
68
|
+
}
|
|
69
|
+
else {
|
|
70
|
+
validationText = '\n*No model definition found — validation skipped.*\n';
|
|
71
|
+
}
|
|
72
|
+
const content = [
|
|
73
|
+
`# Review: ${doc.title}`,
|
|
74
|
+
'',
|
|
75
|
+
`**Path:** ${pathId}`,
|
|
76
|
+
`**Model:** ${def ? def.name : 'untyped'}`,
|
|
77
|
+
validationText,
|
|
78
|
+
'## Outline',
|
|
79
|
+
'',
|
|
80
|
+
doc.toOutline(),
|
|
81
|
+
'',
|
|
82
|
+
'## Frontmatter',
|
|
83
|
+
'',
|
|
84
|
+
'```json',
|
|
85
|
+
JSON.stringify(doc.meta, null, 2),
|
|
86
|
+
'```',
|
|
87
|
+
'',
|
|
88
|
+
'## Content',
|
|
89
|
+
'',
|
|
90
|
+
doc.content,
|
|
91
|
+
].join('\n');
|
|
92
|
+
return [{ role: 'user', content }];
|
|
93
|
+
},
|
|
94
|
+
});
|
|
95
|
+
mcpServer.prompt('teach', {
|
|
96
|
+
description: 'Full contentbase documentation — models, table of contents, CLI reference, and API primer. For a quick-start behavioral guide, use the `read_me` tool instead.',
|
|
97
|
+
handler: async () => {
|
|
98
|
+
const modelsSummary = collection.generateModelSummary();
|
|
99
|
+
const toc = collection.tableOfContents({ title: 'Table of Contents' });
|
|
100
|
+
const packageRoot = path.resolve(import.meta.dir, '../..');
|
|
101
|
+
let primer = '';
|
|
102
|
+
let cli = '';
|
|
103
|
+
try {
|
|
104
|
+
primer = await fs.readFile(path.join(packageRoot, 'PRIMER.md'), 'utf8');
|
|
105
|
+
}
|
|
106
|
+
catch { }
|
|
107
|
+
try {
|
|
108
|
+
cli = await fs.readFile(path.join(packageRoot, 'CLI.md'), 'utf8');
|
|
109
|
+
}
|
|
110
|
+
catch { }
|
|
111
|
+
const content = [
|
|
112
|
+
'> **Quick start:** Call the `read_me` tool for a concise behavioral guide. This prompt provides the full reference.',
|
|
113
|
+
'',
|
|
114
|
+
modelsSummary.trimEnd(),
|
|
115
|
+
'', '---', '',
|
|
116
|
+
toc.trimEnd(),
|
|
117
|
+
'', '---', '',
|
|
118
|
+
cli.trimEnd(),
|
|
119
|
+
'', '---', '',
|
|
120
|
+
primer.trimEnd(),
|
|
121
|
+
].join('\n');
|
|
122
|
+
return [{ role: 'user', content }];
|
|
123
|
+
},
|
|
124
|
+
});
|
|
125
|
+
mcpServer.prompt('query-guide', {
|
|
126
|
+
description: 'Show available models, fields, and query operators to help build queries',
|
|
127
|
+
args: {
|
|
128
|
+
intent: z.string().optional().describe('What you want to find (helps tailor the guide)'),
|
|
129
|
+
},
|
|
130
|
+
handler: () => {
|
|
131
|
+
const modelsInfo = modelDefs.map((def) => {
|
|
132
|
+
const fields = introspectMetaSchema(def.meta);
|
|
133
|
+
const fieldList = fields.map((f) => ` - ${f.name} (${f.type})`).join('\n');
|
|
134
|
+
return `### ${def.name} (prefix: ${def.prefix})\n${fieldList || ' (no schema fields)'}`;
|
|
135
|
+
}).join('\n\n');
|
|
136
|
+
const content = [
|
|
137
|
+
'# Query Guide',
|
|
138
|
+
'',
|
|
139
|
+
'## Available Models',
|
|
140
|
+
'',
|
|
141
|
+
modelsInfo || '(no models registered)',
|
|
142
|
+
'',
|
|
143
|
+
'## Query Operators',
|
|
144
|
+
'',
|
|
145
|
+
'| Operator | Description | Example value |',
|
|
146
|
+
'|----------|-------------|---------------|',
|
|
147
|
+
'| eq | Exact equality (default) | `"published"` |',
|
|
148
|
+
'| in | Value is in array | `["draft", "published"]` |',
|
|
149
|
+
'| notIn | Value is not in array | `["archived"]` |',
|
|
150
|
+
'| gt / lt / gte / lte | Numeric/date comparison | `5` |',
|
|
151
|
+
'| contains | String contains substring | `"auth"` |',
|
|
152
|
+
'| startsWith / endsWith | String prefix/suffix | `"user-"` |',
|
|
153
|
+
'| regex | Regex pattern match | `"^v\\\\d+"` |',
|
|
154
|
+
'| exists / notExists | Field presence check | (no value needed) |',
|
|
155
|
+
'',
|
|
156
|
+
'## Example (MongoDB-style DSL)',
|
|
157
|
+
'',
|
|
158
|
+
'```json',
|
|
159
|
+
'{',
|
|
160
|
+
' "model": "Epic",',
|
|
161
|
+
' "where": {',
|
|
162
|
+
' "meta.status": "active",',
|
|
163
|
+
' "meta.priority": { "$in": ["high", "critical"] }',
|
|
164
|
+
' },',
|
|
165
|
+
' "sort": { "meta.priority": "desc" },',
|
|
166
|
+
' "limit": 10',
|
|
167
|
+
'}',
|
|
168
|
+
'```',
|
|
169
|
+
'',
|
|
170
|
+
'Where value shortcuts:',
|
|
171
|
+
'- Literal value → implicit $eq: `"meta.status": "active"`',
|
|
172
|
+
'- Array → implicit $in: `"meta.tags": ["a", "b"]`',
|
|
173
|
+
'- Operator object: `"meta.priority": { "$gt": 5 }`',
|
|
174
|
+
'- Multiple operators: `"meta.priority": { "$gte": 3, "$lte": 8 }`',
|
|
175
|
+
].join('\n');
|
|
176
|
+
return [{ role: 'user', content }];
|
|
177
|
+
},
|
|
178
|
+
});
|
|
179
|
+
}
|
|
180
|
+
//# sourceMappingURL=prompts.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prompts.js","sourceRoot":"","sources":["../../src/mcp/prompts.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"readme.d.ts","sourceRoot":"","sources":["../../src/mcp/readme.ts"],"names":[],"mappings":"AAEA,wBAAgB,cAAc,CAAC,UAAU,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,UAsJ/D"}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import { introspectMetaSchema } from '../index.js';
|
|
2
|
+
export function generateReadMe(collection, modelDefs) {
|
|
3
|
+
const lines = [];
|
|
4
|
+
// Section 1: The Rules
|
|
5
|
+
const rootPath = collection.rootPath;
|
|
6
|
+
lines.push('# Contentbase Collection Guide', '', `> **This collection is located at \`${rootPath}\`.**`, '', '## Rules — READ CAREFULLY', '', `**Every markdown file under \`${rootPath}\` is a structured document governed by a model schema.** These are NOT freeform files. They have required frontmatter fields, expected section headings, and validation rules. Treat them accordingly.`, '', '1. **DO NOT write or edit markdown files directly** — not with Write, Edit, cat, echo, sed, or any other means. Use `create_document` to scaffold new documents. Use `update_section` to edit section content. Use `update_document` to change frontmatter. These tools ensure the document structure stays valid.', '2. **ALWAYS call `validate` after ANY mutation** — after creating, updating frontmatter, or editing sections. No exceptions. If validation fails, fix the document before moving on.', '3. **Use MCP tools to read content** — not cat, Read, or raw file access. Use `query` to fetch documents by criteria, `search_content` for full-text search, and `list_documents` for discovery.', '4. **A document\'s folder prefix = its model = its contract.** The prefix determines which schema governs the file — what frontmatter fields are required, what sections are expected, and what values are valid. Do not guess. Call `get_model_info` if you are unsure.', '5. **Every document MUST have a title** — either an H1 heading (`# Title`) or a `title` field in frontmatter. Validation will fail without one, unless the model sets `titleOptional: true`.', '');
|
|
7
|
+
// Section 2: Models in This Collection
|
|
8
|
+
lines.push('## Models in This Collection', '');
|
|
9
|
+
for (const def of modelDefs) {
|
|
10
|
+
const name = def.name;
|
|
11
|
+
const prefix = def.prefix;
|
|
12
|
+
const description = def.description || '';
|
|
13
|
+
const prefixDocs = collection.available.filter((id) => id.startsWith(prefix + '/'));
|
|
14
|
+
const docCount = prefixDocs.length;
|
|
15
|
+
lines.push(`### ${name}`, '');
|
|
16
|
+
lines.push(`- **Prefix:** \`${prefix}/\``);
|
|
17
|
+
lines.push(`- **Documents:** ${docCount}`);
|
|
18
|
+
if (description)
|
|
19
|
+
lines.push(`- **Description:** ${description}`);
|
|
20
|
+
lines.push('');
|
|
21
|
+
// Fields
|
|
22
|
+
const fields = introspectMetaSchema(def.meta);
|
|
23
|
+
if (fields.length > 0) {
|
|
24
|
+
lines.push('**Frontmatter Fields:**', '');
|
|
25
|
+
lines.push('| Field | Type | Required | Default | Description |');
|
|
26
|
+
lines.push('|-------|------|----------|---------|-------------|');
|
|
27
|
+
for (const f of fields) {
|
|
28
|
+
const req = f.required ? 'yes' : 'no';
|
|
29
|
+
const def_val = f.defaultValue !== undefined ? `\`${JSON.stringify(f.defaultValue)}\`` : '';
|
|
30
|
+
const desc = f.description || '';
|
|
31
|
+
lines.push(`| ${f.name} | ${f.type} | ${req} | ${def_val} | ${desc} |`);
|
|
32
|
+
}
|
|
33
|
+
lines.push('');
|
|
34
|
+
}
|
|
35
|
+
// Sections
|
|
36
|
+
const sections = Object.entries(def.sections || {});
|
|
37
|
+
if (sections.length > 0) {
|
|
38
|
+
lines.push('**Sections:**', '');
|
|
39
|
+
for (const [key, sec] of sections) {
|
|
40
|
+
lines.push(`- **${sec.heading}** (key: \`${key}\`)${sec.schema ? ' — validated' : ''}`);
|
|
41
|
+
}
|
|
42
|
+
lines.push('');
|
|
43
|
+
}
|
|
44
|
+
// Relationships
|
|
45
|
+
const relationships = Object.entries(def.relationships || {});
|
|
46
|
+
if (relationships.length > 0) {
|
|
47
|
+
lines.push('**Relationships:**', '');
|
|
48
|
+
for (const [key, rel] of relationships) {
|
|
49
|
+
lines.push(`- \`${key}\` → ${rel.type} **${rel.model}**`);
|
|
50
|
+
}
|
|
51
|
+
lines.push('');
|
|
52
|
+
}
|
|
53
|
+
// Computed & Scopes
|
|
54
|
+
const computedKeys = Object.keys(def.computed || {});
|
|
55
|
+
const scopeKeys = Object.keys(def.scopes || {});
|
|
56
|
+
if (computedKeys.length > 0)
|
|
57
|
+
lines.push(`**Computed:** ${computedKeys.join(', ')}`, '');
|
|
58
|
+
if (scopeKeys.length > 0)
|
|
59
|
+
lines.push(`**Scopes:** ${scopeKeys.join(', ')}`, '');
|
|
60
|
+
}
|
|
61
|
+
// Section 3: Capability Map
|
|
62
|
+
lines.push('## Capability Map', '', '| Intent | Tool |', '|--------|------|', '| Orientation & guidance | `read_me` |', '| See what models exist | `inspect` |', '| Deep-dive one model | `get_model_info` |', '| List documents | `list_documents` |', '| Find by criteria | `query` |', '| Full-text search | `search_content` |', '| File-level grep | `text_search` |', '| Keyword search (BM25) | `keyword_search` |', '| Semantic search (embeddings) | `semantic_search` |', '| Hybrid search (keyword + semantic) | `hybrid_search` |', '| Create new document | `create_document` |', '| Edit a section | `update_section` |', '| Update frontmatter | `update_document` |', '| Validate a document | `validate` |', '| Delete a document | `delete_document` |', '| Run a collection action | `run_action` |', '');
|
|
63
|
+
// Section 4: Workflow
|
|
64
|
+
lines.push('## Recommended Workflow', '', '1. **Orientation** — Call `read_me` (this tool) at the start of every session.', '2. **Discovery** — Use `list_documents` or `query` to find what exists.', '3. **Reading** — Use `query` with `select` to fetch specific fields, or read a document resource.', '4. **Creating** — Use `create_document` with the correct prefix. It scaffolds frontmatter and sections.', '5. **Editing** — Use `update_section` for targeted section edits, `update_document` for frontmatter.', '6. **Validation** — Always call `validate` after creating or editing.', '');
|
|
65
|
+
// Section 5: Query Quick Reference
|
|
66
|
+
lines.push('## Query Quick Reference', '', 'The `query` tool uses MongoDB-style DSL:', '', '- Literal value → `$eq`: `"meta.status": "active"`', '- Array → `$in`: `"meta.tags": ["a", "b"]`', '- Operator object: `"meta.priority": { "$gt": 5 }`', '- Operators: `$eq`, `$neq`, `$in`, `$notIn`, `$gt`, `$lt`, `$gte`, `$lte`, `$contains`, `$startsWith`, `$endsWith`, `$regex`, `$exists`', '- Supports `sort`, `limit`, `offset`, `select`, `scopes`, `method` (fetchAll/first/last/count)', '');
|
|
67
|
+
// Section 6: Document Anatomy
|
|
68
|
+
lines.push('## Document Anatomy', '', '```markdown', '---', 'field: value # YAML frontmatter (model schema)', '---', '# Document Title # H1 = title', '', '## Section Name # H2 = sections (defined by model)', '', 'Content here...', '```');
|
|
69
|
+
return lines.join('\n');
|
|
70
|
+
}
|
|
71
|
+
//# sourceMappingURL=readme.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"readme.js","sourceRoot":"","sources":["../../src/mcp/readme.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resources.d.ts","sourceRoot":"","sources":["../../src/mcp/resources.ts"],"names":[],"mappings":"AAIA,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,GAAG,EAAE,UAAU,EAAE,GAAG,QAoFhE"}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
import path from 'node:path';
|
|
2
|
+
import fs from 'node:fs/promises';
|
|
3
|
+
import { buildSchemaJSON } from '../cli/commands/api/helpers.js';
|
|
4
|
+
export function registerResources(mcpServer, collection) {
|
|
5
|
+
mcpServer.resource('contentbase://schema', {
|
|
6
|
+
name: 'Collection Schema',
|
|
7
|
+
description: 'JSON schema of all registered models — fields, sections, relationships, computed properties',
|
|
8
|
+
mimeType: 'application/json',
|
|
9
|
+
handler: () => JSON.stringify(buildSchemaJSON(collection), null, 2),
|
|
10
|
+
});
|
|
11
|
+
mcpServer.resource('contentbase://toc', {
|
|
12
|
+
name: 'Table of Contents',
|
|
13
|
+
description: 'Markdown table of contents for all documents in the collection',
|
|
14
|
+
mimeType: 'text/markdown',
|
|
15
|
+
handler: () => collection.tableOfContents({ title: 'Table of Contents' }),
|
|
16
|
+
});
|
|
17
|
+
mcpServer.resource('contentbase://models-summary', {
|
|
18
|
+
name: 'Models Summary',
|
|
19
|
+
description: 'Generated README.md describing all model definitions with attributes, sections, and relationships',
|
|
20
|
+
mimeType: 'text/markdown',
|
|
21
|
+
handler: () => collection.generateModelSummary(),
|
|
22
|
+
});
|
|
23
|
+
mcpServer.resource('contentbase://primer', {
|
|
24
|
+
name: 'Contentbase Primer',
|
|
25
|
+
description: 'Combined teach output — models summary, table of contents, CLI reference, and API primer',
|
|
26
|
+
mimeType: 'text/markdown',
|
|
27
|
+
handler: async () => {
|
|
28
|
+
const modelsSummary = collection.generateModelSummary();
|
|
29
|
+
const toc = collection.tableOfContents({ title: 'Table of Contents' });
|
|
30
|
+
const packageRoot = path.resolve(import.meta.dir, '../..');
|
|
31
|
+
let primer = '';
|
|
32
|
+
let cli = '';
|
|
33
|
+
try {
|
|
34
|
+
primer = await fs.readFile(path.join(packageRoot, 'PRIMER.md'), 'utf8');
|
|
35
|
+
}
|
|
36
|
+
catch { }
|
|
37
|
+
try {
|
|
38
|
+
cli = await fs.readFile(path.join(packageRoot, 'CLI.md'), 'utf8');
|
|
39
|
+
}
|
|
40
|
+
catch { }
|
|
41
|
+
return [
|
|
42
|
+
modelsSummary.trimEnd(),
|
|
43
|
+
'',
|
|
44
|
+
'---',
|
|
45
|
+
'',
|
|
46
|
+
toc.trimEnd(),
|
|
47
|
+
'',
|
|
48
|
+
'---',
|
|
49
|
+
'',
|
|
50
|
+
cli.trimEnd(),
|
|
51
|
+
'',
|
|
52
|
+
'---',
|
|
53
|
+
'',
|
|
54
|
+
primer.trimEnd(),
|
|
55
|
+
'',
|
|
56
|
+
].join('\n');
|
|
57
|
+
},
|
|
58
|
+
});
|
|
59
|
+
// Per-document resources
|
|
60
|
+
for (const pathId of collection.available) {
|
|
61
|
+
const uri = `contentbase://documents/${pathId}`;
|
|
62
|
+
const doc = collection.document(pathId);
|
|
63
|
+
mcpServer.resource(uri, {
|
|
64
|
+
name: doc.title || pathId,
|
|
65
|
+
description: `Document: ${pathId}`,
|
|
66
|
+
mimeType: 'application/json',
|
|
67
|
+
handler: () => {
|
|
68
|
+
const d = collection.document(pathId);
|
|
69
|
+
const modelDef = collection.findModelDefinition(pathId);
|
|
70
|
+
return JSON.stringify({
|
|
71
|
+
id: d.id,
|
|
72
|
+
title: d.title,
|
|
73
|
+
meta: d.meta,
|
|
74
|
+
content: d.content,
|
|
75
|
+
outline: d.toOutline(),
|
|
76
|
+
model: modelDef?.name || null,
|
|
77
|
+
createdAt: d.createdAt,
|
|
78
|
+
updatedAt: d.updatedAt,
|
|
79
|
+
size: d.size,
|
|
80
|
+
}, null, 2);
|
|
81
|
+
},
|
|
82
|
+
});
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
//# sourceMappingURL=resources.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resources.js","sourceRoot":"","sources":["../../src/mcp/resources.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
export interface McpServerOptions {
|
|
2
|
+
transport: 'stdio' | 'http';
|
|
3
|
+
port: number;
|
|
4
|
+
contentFolder?: string;
|
|
5
|
+
modulePath?: string;
|
|
6
|
+
mcpCompat?: 'standard' | 'codex';
|
|
7
|
+
stdioCompat?: 'standard' | 'codex' | 'auto';
|
|
8
|
+
watch?: boolean;
|
|
9
|
+
}
|
|
10
|
+
export declare function createMcpServer(container: any, options: McpServerOptions): Promise<{
|
|
11
|
+
mcpServer: any;
|
|
12
|
+
collection: import("../collection.js").Collection;
|
|
13
|
+
}>;
|
|
14
|
+
export declare function startMcpServer(container: any, options: McpServerOptions): Promise<{
|
|
15
|
+
mcpServer: any;
|
|
16
|
+
collection: import("../collection.js").Collection;
|
|
17
|
+
}>;
|
|
18
|
+
//# sourceMappingURL=server.d.ts.map
|