@venizia/ignis-docs 0.0.1-1 → 0.0.1-3

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/LICENSE.md ADDED
@@ -0,0 +1,102 @@
1
+ # Ignis Framework License
2
+
3
+ Ignis is a TypeScript Server Infrastructure framework built on [Hono](https://hono.dev/).
4
+
5
+ ## MIT License
6
+
7
+ Copyright (c) 2025 VENIZIA Ltd. Co.
8
+
9
+ Permission is hereby granted, free of charge, to any person obtaining a copy
10
+ of this software and associated documentation files (the "Software"), to deal
11
+ in the Software without restriction, including without limitation the rights
12
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
13
+ copies of the Software, and to permit persons to whom the Software is
14
+ furnished to do so, subject to the following conditions:
15
+
16
+ The above copyright notice and this permission notice shall be included in all
17
+ copies or substantial portions of the Software.
18
+
19
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
20
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
21
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
22
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
23
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
24
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
25
+ SOFTWARE.
26
+
27
+ ---
28
+
29
+ ## Packages
30
+
31
+ This monorepo contains the following packages, all licensed under MIT:
32
+
33
+ | Package | Description |
34
+ |---------|-------------|
35
+ | `@venizia/ignis` | Core framework - controllers, services, decorators |
36
+ | `@venizia/ignis-helpers` | Utility helpers - logging, cron, Redis, queues, storage |
37
+ | `@venizia/ignis-inversion` | Dependency Injection & IoC container |
38
+ | `@venizia/dev-configs` | Shared ESLint, Prettier, TypeScript configurations |
39
+ | `@venizia/ignis-docs` | Documentation and MCP Server |
40
+
41
+ ---
42
+
43
+ ## Third-Party Dependencies
44
+
45
+ Ignis uses the following open-source libraries. We are grateful to the authors and contributors of these projects.
46
+
47
+ ### Core Dependencies
48
+
49
+ | Library | License | Description |
50
+ |---------|---------|-------------|
51
+ | [Hono](https://github.com/honojs/hono) | MIT | Ultrafast web framework |
52
+ | [Zod](https://github.com/colinhacks/zod) | MIT | TypeScript-first schema validation |
53
+ | [Drizzle ORM](https://github.com/drizzle-team/drizzle-orm) | Apache-2.0 | TypeScript ORM |
54
+ | [Jose](https://github.com/panva/jose) | MIT | JavaScript Object Signing and Encryption |
55
+
56
+ ### Helpers Dependencies
57
+
58
+ | Library | License | Description |
59
+ |---------|---------|-------------|
60
+ | [Winston](https://github.com/winstonjs/winston) | MIT | Universal logging library |
61
+ | [BullMQ](https://github.com/taskforcesh/bullmq) | MIT | Message queue and job scheduling |
62
+ | [IORedis](https://github.com/redis/ioredis) | MIT | Redis client for Node.js |
63
+ | [MinIO](https://github.com/minio/minio-js) | Apache-2.0 | S3-compatible object storage client |
64
+ | [Axios](https://github.com/axios/axios) | MIT | HTTP client |
65
+ | [Day.js](https://github.com/iamkun/dayjs) | MIT | Date manipulation library |
66
+ | [Cron](https://github.com/kelektiv/node-cron) | MIT | Cron job scheduler |
67
+ | [Socket.IO](https://github.com/socketio/socket.io) | MIT | Real-time bidirectional communication |
68
+ | [MQTT.js](https://github.com/mqttjs/MQTT.js) | MIT | MQTT client |
69
+
70
+ ### Utility Dependencies
71
+
72
+ | Library | License | Description |
73
+ |---------|---------|-------------|
74
+ | [Lodash](https://github.com/lodash/lodash) | MIT | Utility library |
75
+ | [reflect-metadata](https://github.com/rbuckton/reflect-metadata) | Apache-2.0 | Metadata reflection API |
76
+
77
+ ### Documentation Dependencies
78
+
79
+ | Library | License | Description |
80
+ |---------|---------|-------------|
81
+ | [VitePress](https://github.com/vuejs/vitepress) | MIT | Static site generator |
82
+ | [Fuse.js](https://github.com/krisk/fuse) | Apache-2.0 | Fuzzy search library |
83
+ | [gray-matter](https://github.com/jonschlinkert/gray-matter) | MIT | Front-matter parser |
84
+
85
+ ---
86
+
87
+ ## Acknowledgments
88
+
89
+ Ignis Framework is inspired by and built upon the work of many open-source projects:
90
+
91
+ - **[Hono](https://hono.dev/)** by Yusuke Wada - The ultrafast web framework that powers Ignis
92
+ - **[LoopBack 4](https://loopback.io/)** by IBM/StrongLoop - Inspiration for the enterprise architecture patterns
93
+ - **[NestJS](https://nestjs.com/)** by Kamil Mysliwiec - Inspiration for decorator-based controllers
94
+ - **[InversifyJS](https://inversify.io/)** - Inspiration for the IoC container design
95
+
96
+ We thank all the maintainers and contributors of these projects for their excellent work.
97
+
98
+ ---
99
+
100
+ ## Contributing
101
+
102
+ By contributing to Ignis, you agree that your contributions will be licensed under the MIT License.
package/README.md ADDED
@@ -0,0 +1,53 @@
1
+ # @venizia/ignis-docs
2
+
3
+ [![npm version](https://img.shields.io/npm/v/@venizia/ignis-docs.svg)](https://www.npmjs.com/package/@venizia/ignis-docs)
4
+ [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
5
+
6
+ Documentation and **MCP (Model Context Protocol) Server** for the **Ignis Framework**. The MCP server allows AI assistants to access Ignis documentation in real-time.
7
+
8
+ ## Installation
9
+
10
+ ```bash
11
+ bun add @venizia/ignis-docs
12
+ # or
13
+ npm install @venizia/ignis-docs
14
+ ```
15
+
16
+ ## MCP Server Usage
17
+
18
+ Add to your Claude Desktop config (`claude_desktop_config.json`):
19
+
20
+ ```json
21
+ {
22
+ "mcpServers": {
23
+ "ignis-docs": {
24
+ "command": "npx",
25
+ "args": ["@venizia/ignis-docs"]
26
+ }
27
+ }
28
+ }
29
+ ```
30
+
31
+ ## Available MCP Tools
32
+
33
+ | Tool | Description |
34
+ |------|-------------|
35
+ | **search** | Search documentation by keyword |
36
+ | **getDocContent** | Get full content of a document |
37
+ | **listDocs** | List all available documents |
38
+ | **listCategories** | List documentation categories |
39
+ | **getDocMetadata** | Get document metadata |
40
+
41
+ ## About Ignis
42
+
43
+ Ignis brings together the structured, enterprise development experience of **LoopBack 4** with the blazing speed and simplicity of **Hono** - giving you the best of both worlds.
44
+
45
+ ## Documentation
46
+
47
+ - [Ignis Repository](https://github.com/venizia-ai/ignis)
48
+ - [MCP Server Guide](https://github.com/venizia-ai/ignis/blob/main/packages/docs/wiki/get-started/mcp-docs-server.md)
49
+ - [Main Documentation](https://github.com/venizia-ai/ignis/blob/main/packages/docs/wiki/index.md)
50
+
51
+ ## License
52
+
53
+ MIT
@@ -1 +1 @@
1
- {"version":3,"file":"paths.d.ts","sourceRoot":"","sources":["../../common/paths.ts"],"names":[],"mappings":"AAKA,qBAAa,KAAK;IAChB,MAAM,CAAC,QAAQ,CAAC,IAAI,SAAgC;IAEpD,MAAM,CAAC,QAAQ,CAAC,WAAW,SAAuC;IAClE,MAAM,CAAC,QAAQ,CAAC,cAAc,SAAiD;IAC/E,MAAM,CAAC,QAAQ,CAAC,aAAa,SAAgD;IAE7E,MAAM,CAAC,QAAQ,CAAC,UAAU,SAAsC;IAChE,MAAM,CAAC,QAAQ,CAAC,IAAI,SAAsC;IAC1D,MAAM,CAAC,QAAQ,CAAC,UAAU,SAA4C;IACtE,MAAM,CAAC,QAAQ,CAAC,OAAO,SAAyC;IAChE,MAAM,CAAC,QAAQ,CAAC,cAAc,SAA6C;IAC3E,MAAM,CAAC,QAAQ,CAAC,SAAS,SAA2C;CACrE"}
1
+ {"version":3,"file":"paths.d.ts","sourceRoot":"","sources":["../../common/paths.ts"],"names":[],"mappings":"AAOA,qBAAa,KAAK;IAChB,MAAM,CAAC,QAAQ,CAAC,IAAI,SAAgC;IAEpD,MAAM,CAAC,QAAQ,CAAC,WAAW,SAAuC;IAClE,MAAM,CAAC,QAAQ,CAAC,cAAc,SAAiD;IAC/E,MAAM,CAAC,QAAQ,CAAC,aAAa,SAAgD;IAE7E,MAAM,CAAC,QAAQ,CAAC,UAAU,SAAsC;IAChE,MAAM,CAAC,QAAQ,CAAC,IAAI,SAAsC;IAC1D,MAAM,CAAC,QAAQ,CAAC,UAAU,SAA4C;IACtE,MAAM,CAAC,QAAQ,CAAC,OAAO,SAAyC;IAChE,MAAM,CAAC,QAAQ,CAAC,cAAc,SAA6C;IAC3E,MAAM,CAAC,QAAQ,CAAC,SAAS,SAA2C;CACrE"}
@@ -6,7 +6,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.Paths = void 0;
7
7
  const node_path_1 = __importDefault(require("node:path"));
8
8
  const MCP_ROOT = __dirname;
9
- const DOCS_ROOT = node_path_1.default.resolve(MCP_ROOT, "..", "..");
9
+ // When compiled, __dirname is mcp-server/dist/common
10
+ // Go up 3 levels to reach package root: common -> dist -> mcp-server -> docs
11
+ const DOCS_ROOT = node_path_1.default.resolve(MCP_ROOT, "..", "..", "..");
10
12
  class Paths {
11
13
  static { this.WIKI = node_path_1.default.join(DOCS_ROOT, "wiki"); }
12
14
  static { this.GET_STARTED = node_path_1.default.join(this.WIKI, "get-started"); }
@@ -1 +1 @@
1
- {"version":3,"file":"paths.js","sourceRoot":"","sources":["../../common/paths.ts"],"names":[],"mappings":";;;;;;AAAA,0DAA6B;AAE7B,MAAM,QAAQ,GAAG,SAAS,CAAC;AAC3B,MAAM,SAAS,GAAG,mBAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AAErD,MAAa,KAAK;aACA,SAAI,GAAG,mBAAI,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;aAEpC,gBAAW,GAAG,mBAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;aAClD,mBAAc,GAAG,mBAAI,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,gBAAgB,CAAC,CAAC;aAC/D,kBAAa,GAAG,mBAAI,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,eAAe,CAAC,CAAC;aAE7D,eAAU,GAAG,mBAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;aAChD,SAAI,GAAG,mBAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;aAC1C,eAAU,GAAG,mBAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;aACtD,YAAO,GAAG,mBAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;aAChD,mBAAc,GAAG,mBAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;aAC3D,cAAS,GAAG,mBAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;;AAZtE,sBAaC"}
1
+ {"version":3,"file":"paths.js","sourceRoot":"","sources":["../../common/paths.ts"],"names":[],"mappings":";;;;;;AAAA,0DAA6B;AAE7B,MAAM,QAAQ,GAAG,SAAS,CAAC;AAC3B,qDAAqD;AACrD,6EAA6E;AAC7E,MAAM,SAAS,GAAG,mBAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AAE3D,MAAa,KAAK;aACA,SAAI,GAAG,mBAAI,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;aAEpC,gBAAW,GAAG,mBAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;aAClD,mBAAc,GAAG,mBAAI,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,gBAAgB,CAAC,CAAC;aAC/D,kBAAa,GAAG,mBAAI,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,eAAe,CAAC,CAAC;aAE7D,eAAU,GAAG,mBAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;aAChD,SAAI,GAAG,mBAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;aAC1C,eAAU,GAAG,mBAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;aACtD,YAAO,GAAG,mBAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;aAChD,mBAAc,GAAG,mBAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;aAC3D,cAAS,GAAG,mBAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;;AAZtE,sBAaC"}
@@ -3,26 +3,22 @@ import { BaseTool, type TMastraTool } from "./base.tool";
3
3
  declare const InputSchema: z.ZodObject<{
4
4
  id: z.ZodString;
5
5
  }, z.core.$strip>;
6
- declare const OutputSchema: z.ZodUnion<readonly [z.ZodObject<{
6
+ declare const OutputSchema: z.ZodObject<{
7
7
  id: z.ZodString;
8
- content: z.ZodString;
9
- }, z.core.$strip>, z.ZodObject<{
10
- id: z.ZodString;
11
- error: z.ZodString;
12
- }, z.core.$strip>]>;
8
+ content: z.ZodOptional<z.ZodString>;
9
+ error: z.ZodOptional<z.ZodString>;
10
+ }, z.core.$strip>;
13
11
  export declare class GetDocContentTool extends BaseTool<typeof InputSchema, typeof OutputSchema> {
14
12
  readonly id = "getDocContent";
15
13
  readonly description = "\nRetrieves the complete markdown content of a specific Ignis Framework documentation file.\n\nPURPOSE:\nUse this tool to fetch the full text of a documentation page when you need detailed information\nbeyond what search snippets provide. This is your primary tool for reading documentation content.\n\nWHEN TO USE:\n- After searchDocs returns relevant results and you need full content\n- When user asks for detailed explanation of a specific topic\n- To read code examples, API references, or configuration guides\n- When you need to quote or reference specific documentation sections\n\nWHEN NOT TO USE:\n- Don't use this for discovery - use searchDocs or listDocs first\n- Don't fetch multiple documents blindly - review search results first\n\nDOCUMENT ID FORMAT:\nThe 'id' parameter is the relative file path from the wiki root:\n- \"get-started/quickstart.md\" - Quickstart guide\n- \"references/components/http-server.md\" - HTTP Server component reference\n- \"get-started/core-concepts/dependency-injection.md\" - DI concepts\n\nHOW TO GET VALID IDs:\n1. Use searchDocs to find documents by keyword\n2. Use listDocs to browse all available documents\n3. Use listCategories + listDocs(category) for structured browsing\n\nOUTPUT:\nReturns full markdown content suitable for:\n- Answering user questions with accurate information\n- Extracting code examples\n- Understanding API usage patterns\n- Providing step-by-step guidance\n";
16
14
  readonly inputSchema: z.ZodObject<{
17
15
  id: z.ZodString;
18
16
  }, z.core.$strip>;
19
- readonly outputSchema: z.ZodUnion<readonly [z.ZodObject<{
17
+ readonly outputSchema: z.ZodObject<{
20
18
  id: z.ZodString;
21
- content: z.ZodString;
22
- }, z.core.$strip>, z.ZodObject<{
23
- id: z.ZodString;
24
- error: z.ZodString;
25
- }, z.core.$strip>]>;
19
+ content: z.ZodOptional<z.ZodString>;
20
+ error: z.ZodOptional<z.ZodString>;
21
+ }, z.core.$strip>;
26
22
  execute(input: z.infer<typeof InputSchema>): Promise<z.infer<typeof OutputSchema>>;
27
23
  getTool(): TMastraTool;
28
24
  }
@@ -1 +1 @@
1
- {"version":3,"file":"get-doc-content.tool.d.ts","sourceRoot":"","sources":["../../tools/get-doc-content.tool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,QAAQ,EAAc,KAAK,WAAW,EAAE,MAAM,aAAa,CAAC;AA8FrE,QAAA,MAAM,WAAW;;iBAEf,CAAC;AAEH,QAAA,MAAM,YAAY;;;;;;mBAEuD,CAAC;AAM1E,qBAAa,iBAAkB,SAAQ,QAAQ,CAAC,OAAO,WAAW,EAAE,OAAO,YAAY,CAAC;IACtF,QAAQ,CAAC,EAAE,mBAAmB;IAC9B,QAAQ,CAAC,WAAW,o6CAAoB;IACxC,QAAQ,CAAC,WAAW;;sBAAe;IACnC,QAAQ,CAAC,YAAY;;;;;;wBAAgB;IAE/B,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC;IAUxF,OAAO,IAAI,WAAW;CASvB"}
1
+ {"version":3,"file":"get-doc-content.tool.d.ts","sourceRoot":"","sources":["../../tools/get-doc-content.tool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,QAAQ,EAAc,KAAK,WAAW,EAAE,MAAM,aAAa,CAAC;AAoFrE,QAAA,MAAM,WAAW;;iBAEf,CAAC;AAEH,QAAA,MAAM,YAAY;;;;iBAOhB,CAAC;AAMH,qBAAa,iBAAkB,SAAQ,QAAQ,CAAC,OAAO,WAAW,EAAE,OAAO,YAAY,CAAC;IACtF,QAAQ,CAAC,EAAE,mBAAmB;IAC9B,QAAQ,CAAC,WAAW,o6CAAoB;IACxC,QAAQ,CAAC,WAAW;;sBAAe;IACnC,QAAQ,CAAC,YAAY;;;;sBAAgB;IAE/B,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC;IAUxF,OAAO,IAAI,WAAW;CASvB"}
@@ -81,20 +81,17 @@ TYPICAL STRUCTURE:
81
81
  // ----------------------------------------------------------------------------
82
82
  // SCHEMAS
83
83
  // ----------------------------------------------------------------------------
84
- const SuccessSchema = zod_1.z.object({
85
- id: zod_1.z.string().describe("The document ID that was requested."),
86
- content: zod_1.z.string().describe(CONTENT_DESCRIPTION),
87
- });
88
- const ErrorSchema = zod_1.z.object({
89
- id: zod_1.z.string().describe("The document ID that was requested but not found."),
90
- error: zod_1.z.string().describe("Error message. Verify the ID using listDocs or searchDocs."),
91
- });
92
84
  const InputSchema = zod_1.z.object({
93
85
  id: zod_1.z.string().min(1).describe(ID_DESCRIPTION),
94
86
  });
95
- const OutputSchema = zod_1.z
96
- .union([SuccessSchema, ErrorSchema])
97
- .describe("Document content on success, or error object if not found.");
87
+ const OutputSchema = zod_1.z.object({
88
+ id: zod_1.z.string().describe("The document ID that was requested."),
89
+ content: zod_1.z.string().optional().describe(CONTENT_DESCRIPTION),
90
+ error: zod_1.z
91
+ .string()
92
+ .optional()
93
+ .describe("Error message if document not found. Verify the ID using listDocs or searchDocs."),
94
+ });
98
95
  // ----------------------------------------------------------------------------
99
96
  // TOOL CLASS
100
97
  // ----------------------------------------------------------------------------
@@ -1 +1 @@
1
- {"version":3,"file":"get-doc-content.tool.js","sourceRoot":"","sources":["../../tools/get-doc-content.tool.ts"],"names":[],"mappings":";;;AAAA,6BAAwB;AACxB,wCAAwC;AACxC,2CAAqE;AAErE,+EAA+E;AAC/E,eAAe;AACf,+EAA+E;AAE/E,MAAM,gBAAgB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkCxB,CAAC;AAEF,MAAM,cAAc,GAAG;;;;;;;;;;;;;;;;;;;CAmBtB,CAAC;AAEF,MAAM,mBAAmB,GAAG;;;;;;;;;;;;;;;CAe3B,CAAC;AAEF,+EAA+E;AAC/E,UAAU;AACV,+EAA+E;AAE/E,MAAM,aAAa,GAAG,OAAC,CAAC,MAAM,CAAC;IAC7B,EAAE,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,qCAAqC,CAAC;IAC9D,OAAO,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,mBAAmB,CAAC;CAClD,CAAC,CAAC;AAEH,MAAM,WAAW,GAAG,OAAC,CAAC,MAAM,CAAC;IAC3B,EAAE,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,mDAAmD,CAAC;IAC5E,KAAK,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,4DAA4D,CAAC;CACzF,CAAC,CAAC;AAEH,MAAM,WAAW,GAAG,OAAC,CAAC,MAAM,CAAC;IAC3B,EAAE,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,cAAc,CAAC;CAC/C,CAAC,CAAC;AAEH,MAAM,YAAY,GAAG,OAAC;KACnB,KAAK,CAAC,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC;KACnC,QAAQ,CAAC,4DAA4D,CAAC,CAAC;AAE1E,+EAA+E;AAC/E,aAAa;AACb,+EAA+E;AAE/E,MAAa,iBAAkB,SAAQ,oBAAiD;IAAxF;;QACW,OAAE,GAAG,eAAe,CAAC;QACrB,gBAAW,GAAG,gBAAgB,CAAC;QAC/B,gBAAW,GAAG,WAAW,CAAC;QAC1B,iBAAY,GAAG,YAAY,CAAC;IAqBvC,CAAC;IAnBC,KAAK,CAAC,OAAO,CAAC,KAAkC;QAC9C,MAAM,OAAO,GAAG,MAAM,oBAAU,CAAC,aAAa,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;QAEjE,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,EAAE,KAAK,EAAE,oBAAoB,EAAE,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC;QACvD,CAAC;QAED,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC;IACnC,CAAC;IAED,OAAO;QACL,OAAO,IAAA,sBAAU,EAAC;YAChB,EAAE,EAAE,IAAI,CAAC,EAAE;YACX,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,WAAW,EAAE,WAAW;YACxB,YAAY,EAAE,YAAY;YAC1B,OAAO,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC;SACtD,CAAC,CAAC;IACL,CAAC;CACF;AAzBD,8CAyBC"}
1
+ {"version":3,"file":"get-doc-content.tool.js","sourceRoot":"","sources":["../../tools/get-doc-content.tool.ts"],"names":[],"mappings":";;;AAAA,6BAAwB;AACxB,wCAAwC;AACxC,2CAAqE;AAErE,+EAA+E;AAC/E,eAAe;AACf,+EAA+E;AAE/E,MAAM,gBAAgB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkCxB,CAAC;AAEF,MAAM,cAAc,GAAG;;;;;;;;;;;;;;;;;;;CAmBtB,CAAC;AAEF,MAAM,mBAAmB,GAAG;;;;;;;;;;;;;;;CAe3B,CAAC;AAEF,+EAA+E;AAC/E,UAAU;AACV,+EAA+E;AAE/E,MAAM,WAAW,GAAG,OAAC,CAAC,MAAM,CAAC;IAC3B,EAAE,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,cAAc,CAAC;CAC/C,CAAC,CAAC;AAEH,MAAM,YAAY,GAAG,OAAC,CAAC,MAAM,CAAC;IAC5B,EAAE,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,qCAAqC,CAAC;IAC9D,OAAO,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,mBAAmB,CAAC;IAC5D,KAAK,EAAE,OAAC;SACL,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,kFAAkF,CAAC;CAChG,CAAC,CAAC;AAEH,+EAA+E;AAC/E,aAAa;AACb,+EAA+E;AAE/E,MAAa,iBAAkB,SAAQ,oBAAiD;IAAxF;;QACW,OAAE,GAAG,eAAe,CAAC;QACrB,gBAAW,GAAG,gBAAgB,CAAC;QAC/B,gBAAW,GAAG,WAAW,CAAC;QAC1B,iBAAY,GAAG,YAAY,CAAC;IAqBvC,CAAC;IAnBC,KAAK,CAAC,OAAO,CAAC,KAAkC;QAC9C,MAAM,OAAO,GAAG,MAAM,oBAAU,CAAC,aAAa,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;QAEjE,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,EAAE,KAAK,EAAE,oBAAoB,EAAE,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC;QACvD,CAAC;QAED,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC;IACnC,CAAC;IAED,OAAO;QACL,OAAO,IAAA,sBAAU,EAAC;YAChB,EAAE,EAAE,IAAI,CAAC,EAAE;YACX,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,WAAW,EAAE,WAAW;YACxB,YAAY,EAAE,YAAY;YAC1B,OAAO,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC;SACtD,CAAC,CAAC;IACL,CAAC;CACF;AAzBD,8CAyBC"}
@@ -3,36 +3,32 @@ import { BaseTool, type TMastraTool } from "./base.tool";
3
3
  declare const InputSchema: z.ZodObject<{
4
4
  id: z.ZodString;
5
5
  }, z.core.$strip>;
6
- declare const OutputSchema: z.ZodUnion<readonly [z.ZodObject<{
6
+ declare const OutputSchema: z.ZodObject<{
7
7
  id: z.ZodString;
8
- title: z.ZodString;
9
- category: z.ZodString;
10
- wordCount: z.ZodNumber;
11
- charCount: z.ZodNumber;
12
- lastModified: z.ZodOptional<z.ZodDate>;
8
+ title: z.ZodOptional<z.ZodString>;
9
+ category: z.ZodOptional<z.ZodString>;
10
+ wordCount: z.ZodOptional<z.ZodNumber>;
11
+ charCount: z.ZodOptional<z.ZodNumber>;
12
+ lastModified: z.ZodOptional<z.ZodString>;
13
13
  size: z.ZodOptional<z.ZodNumber>;
14
- }, z.core.$strip>, z.ZodObject<{
15
- id: z.ZodString;
16
- error: z.ZodString;
17
- }, z.core.$strip>]>;
14
+ error: z.ZodOptional<z.ZodString>;
15
+ }, z.core.$strip>;
18
16
  export declare class GetDocMetadataTool extends BaseTool<typeof InputSchema, typeof OutputSchema> {
19
17
  readonly id = "getDocMetadata";
20
18
  readonly description = "\nRetrieves statistical metadata about a specific Ignis Framework documentation file\nwithout fetching its full content.\n\nPURPOSE:\nUse this tool to get information ABOUT a document (size, word count, last modified)\nwithout retrieving the actual content. Useful for assessing documents before reading them fully.\n\nWHEN TO USE:\n- To check document length before fetching full content\n- To estimate reading time or complexity\n- To verify a document exists and get basic info\n- To check when documentation was last updated\n- When you need document stats for comparison or reporting\n\nWHEN NOT TO USE:\n- When you need the actual document content (use getDocContent instead)\n- For searching documents (use searchDocs instead)\n- For listing multiple documents (use listDocs instead)\n\nMETADATA FIELDS EXPLAINED:\n- wordCount: Total words in content body (excludes frontmatter)\n - Quick read: < 500 words\n - Medium: 500-1500 words\n - Long/detailed: > 1500 words\n\n- charCount: Total characters (useful for token estimation)\n - Rough token estimate: charCount / 4 for English text\n\n- lastModified: File modification timestamp\n - Recent = actively maintained documentation\n - Old = may need verification for accuracy\n\n- size: Raw file size in bytes (includes frontmatter YAML)\n\nUSE CASES:\n1. \"Is this document long?\" \u2192 Check wordCount\n2. \"Will this fit in context?\" \u2192 Check charCount, estimate tokens\n3. \"Is this documentation current?\" \u2192 Check lastModified\n4. \"Which document is more detailed?\" \u2192 Compare wordCounts\n";
21
19
  readonly inputSchema: z.ZodObject<{
22
20
  id: z.ZodString;
23
21
  }, z.core.$strip>;
24
- readonly outputSchema: z.ZodUnion<readonly [z.ZodObject<{
22
+ readonly outputSchema: z.ZodObject<{
25
23
  id: z.ZodString;
26
- title: z.ZodString;
27
- category: z.ZodString;
28
- wordCount: z.ZodNumber;
29
- charCount: z.ZodNumber;
30
- lastModified: z.ZodOptional<z.ZodDate>;
24
+ title: z.ZodOptional<z.ZodString>;
25
+ category: z.ZodOptional<z.ZodString>;
26
+ wordCount: z.ZodOptional<z.ZodNumber>;
27
+ charCount: z.ZodOptional<z.ZodNumber>;
28
+ lastModified: z.ZodOptional<z.ZodString>;
31
29
  size: z.ZodOptional<z.ZodNumber>;
32
- }, z.core.$strip>, z.ZodObject<{
33
- id: z.ZodString;
34
- error: z.ZodString;
35
- }, z.core.$strip>]>;
30
+ error: z.ZodOptional<z.ZodString>;
31
+ }, z.core.$strip>;
36
32
  execute(input: z.infer<typeof InputSchema>): Promise<z.infer<typeof OutputSchema>>;
37
33
  getTool(): TMastraTool;
38
34
  }
@@ -1 +1 @@
1
- {"version":3,"file":"get-doc-metadata.tool.d.ts","sourceRoot":"","sources":["../../tools/get-doc-metadata.tool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,QAAQ,EAAc,KAAK,WAAW,EAAE,MAAM,aAAa,CAAC;AAuFrE,QAAA,MAAM,WAAW;;iBAEf,CAAC;AAEH,QAAA,MAAM,YAAY;;;;;;;;;;;mBAEwD,CAAC;AAM3E,qBAAa,kBAAmB,SAAQ,QAAQ,CAAC,OAAO,WAAW,EAAE,OAAO,YAAY,CAAC;IACvF,QAAQ,CAAC,EAAE,oBAAoB;IAC/B,QAAQ,CAAC,WAAW,6iDAAoB;IACxC,QAAQ,CAAC,WAAW;;sBAAe;IACnC,QAAQ,CAAC,YAAY;;;;;;;;;;;wBAAgB;IAE/B,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC;IAUxF,OAAO,IAAI,WAAW;CASvB"}
1
+ {"version":3,"file":"get-doc-metadata.tool.d.ts","sourceRoot":"","sources":["../../tools/get-doc-metadata.tool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,QAAQ,EAAc,KAAK,WAAW,EAAE,MAAM,aAAa,CAAC;AAwErE,QAAA,MAAM,WAAW;;iBAEf,CAAC;AAEH,QAAA,MAAM,YAAY;;;;;;;;;iBAmBhB,CAAC;AAMH,qBAAa,kBAAmB,SAAQ,QAAQ,CAAC,OAAO,WAAW,EAAE,OAAO,YAAY,CAAC;IACvF,QAAQ,CAAC,EAAE,oBAAoB;IAC/B,QAAQ,CAAC,WAAW,6iDAAoB;IACxC,QAAQ,CAAC,WAAW;;sBAAe;IACnC,QAAQ,CAAC,YAAY;;;;;;;;;sBAAgB;IAE/B,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC;IAaxF,OAAO,IAAI,WAAW;CASvB"}
@@ -70,25 +70,29 @@ IMPORTANT:
70
70
  // ----------------------------------------------------------------------------
71
71
  // SCHEMAS
72
72
  // ----------------------------------------------------------------------------
73
- const SuccessSchema = zod_1.z.object({
74
- id: zod_1.z.string().describe("The document ID that was requested."),
75
- title: zod_1.z.string().describe("Document title from frontmatter or filename."),
76
- category: zod_1.z.string().describe('Document category (e.g., "Getting Started", "References").'),
77
- wordCount: zod_1.z.number().int().describe("Total words. Useful for reading time estimation."),
78
- charCount: zod_1.z.number().int().describe("Total characters. Useful for token estimation."),
79
- lastModified: zod_1.z.date().optional().describe("Last modified timestamp. May be undefined."),
80
- size: zod_1.z.number().int().optional().describe("File size in bytes. May be undefined."),
81
- });
82
- const ErrorSchema = zod_1.z.object({
83
- id: zod_1.z.string().describe("The document ID that was requested but not found."),
84
- error: zod_1.z.string().describe("Error message indicating the document was not found."),
85
- });
86
73
  const InputSchema = zod_1.z.object({
87
74
  id: zod_1.z.string().min(1).describe(ID_DESCRIPTION),
88
75
  });
89
- const OutputSchema = zod_1.z
90
- .union([SuccessSchema, ErrorSchema])
91
- .describe("Document metadata on success, or error object if not found.");
76
+ const OutputSchema = zod_1.z.object({
77
+ id: zod_1.z.string().describe("The document ID that was requested."),
78
+ title: zod_1.z.string().optional().describe("Document title from frontmatter or filename."),
79
+ category: zod_1.z
80
+ .string()
81
+ .optional()
82
+ .describe('Document category (e.g., "Getting Started", "References").'),
83
+ wordCount: zod_1.z
84
+ .number()
85
+ .int()
86
+ .optional()
87
+ .describe("Total words. Useful for reading time estimation."),
88
+ charCount: zod_1.z.number().int().optional().describe("Total characters. Useful for token estimation."),
89
+ lastModified: zod_1.z
90
+ .string()
91
+ .optional()
92
+ .describe("Last modified timestamp (ISO string). May be undefined."),
93
+ size: zod_1.z.number().int().optional().describe("File size in bytes. May be undefined."),
94
+ error: zod_1.z.string().optional().describe("Error message if document not found."),
95
+ });
92
96
  // ----------------------------------------------------------------------------
93
97
  // TOOL CLASS
94
98
  // ----------------------------------------------------------------------------
@@ -105,7 +109,10 @@ class GetDocMetadataTool extends base_tool_1.BaseTool {
105
109
  if (!metadata) {
106
110
  return { error: "Document not found", id: input.id };
107
111
  }
108
- return metadata;
112
+ return {
113
+ ...metadata,
114
+ lastModified: metadata.lastModified?.toISOString(),
115
+ };
109
116
  }
110
117
  getTool() {
111
118
  return (0, base_tool_1.createTool)({
@@ -1 +1 @@
1
- {"version":3,"file":"get-doc-metadata.tool.js","sourceRoot":"","sources":["../../tools/get-doc-metadata.tool.ts"],"names":[],"mappings":";;;AAAA,6BAAwB;AACxB,wCAAwC;AACxC,2CAAqE;AAErE,+EAA+E;AAC/E,eAAe;AACf,+EAA+E;AAE/E,MAAM,gBAAgB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAwCxB,CAAC;AAEF,MAAM,cAAc,GAAG;;;;;;;;;;;;;;;;;;CAkBtB,CAAC;AAEF,+EAA+E;AAC/E,UAAU;AACV,+EAA+E;AAE/E,MAAM,aAAa,GAAG,OAAC,CAAC,MAAM,CAAC;IAC7B,EAAE,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,qCAAqC,CAAC;IAC9D,KAAK,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,8CAA8C,CAAC;IAC1E,QAAQ,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,4DAA4D,CAAC;IAC3F,SAAS,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,kDAAkD,CAAC;IACxF,SAAS,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,gDAAgD,CAAC;IACtF,YAAY,EAAE,OAAC,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,4CAA4C,CAAC;IACxF,IAAI,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,uCAAuC,CAAC;CACpF,CAAC,CAAC;AAEH,MAAM,WAAW,GAAG,OAAC,CAAC,MAAM,CAAC;IAC3B,EAAE,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,mDAAmD,CAAC;IAC5E,KAAK,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,sDAAsD,CAAC;CACnF,CAAC,CAAC;AAEH,MAAM,WAAW,GAAG,OAAC,CAAC,MAAM,CAAC;IAC3B,EAAE,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,cAAc,CAAC;CAC/C,CAAC,CAAC;AAEH,MAAM,YAAY,GAAG,OAAC;KACnB,KAAK,CAAC,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC;KACnC,QAAQ,CAAC,6DAA6D,CAAC,CAAC;AAE3E,+EAA+E;AAC/E,aAAa;AACb,+EAA+E;AAE/E,MAAa,kBAAmB,SAAQ,oBAAiD;IAAzF;;QACW,OAAE,GAAG,gBAAgB,CAAC;QACtB,gBAAW,GAAG,gBAAgB,CAAC;QAC/B,gBAAW,GAAG,WAAW,CAAC;QAC1B,iBAAY,GAAG,YAAY,CAAC;IAqBvC,CAAC;IAnBC,KAAK,CAAC,OAAO,CAAC,KAAkC;QAC9C,MAAM,QAAQ,GAAG,MAAM,oBAAU,CAAC,cAAc,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;QAEnE,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,OAAO,EAAE,KAAK,EAAE,oBAAoB,EAAE,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC;QACvD,CAAC;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,OAAO;QACL,OAAO,IAAA,sBAAU,EAAC;YAChB,EAAE,EAAE,IAAI,CAAC,EAAE;YACX,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,WAAW,EAAE,WAAW;YACxB,YAAY,EAAE,YAAY;YAC1B,OAAO,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC;SACtD,CAAC,CAAC;IACL,CAAC;CACF;AAzBD,gDAyBC"}
1
+ {"version":3,"file":"get-doc-metadata.tool.js","sourceRoot":"","sources":["../../tools/get-doc-metadata.tool.ts"],"names":[],"mappings":";;;AAAA,6BAAwB;AACxB,wCAAwC;AACxC,2CAAqE;AAErE,+EAA+E;AAC/E,eAAe;AACf,+EAA+E;AAE/E,MAAM,gBAAgB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAwCxB,CAAC;AAEF,MAAM,cAAc,GAAG;;;;;;;;;;;;;;;;;;CAkBtB,CAAC;AAEF,+EAA+E;AAC/E,UAAU;AACV,+EAA+E;AAE/E,MAAM,WAAW,GAAG,OAAC,CAAC,MAAM,CAAC;IAC3B,EAAE,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,cAAc,CAAC;CAC/C,CAAC,CAAC;AAEH,MAAM,YAAY,GAAG,OAAC,CAAC,MAAM,CAAC;IAC5B,EAAE,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,qCAAqC,CAAC;IAC9D,KAAK,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,8CAA8C,CAAC;IACrF,QAAQ,EAAE,OAAC;SACR,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,4DAA4D,CAAC;IACzE,SAAS,EAAE,OAAC;SACT,MAAM,EAAE;SACR,GAAG,EAAE;SACL,QAAQ,EAAE;SACV,QAAQ,CAAC,kDAAkD,CAAC;IAC/D,SAAS,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,gDAAgD,CAAC;IACjG,YAAY,EAAE,OAAC;SACZ,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,yDAAyD,CAAC;IACtE,IAAI,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,uCAAuC,CAAC;IACnF,KAAK,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,sCAAsC,CAAC;CAC9E,CAAC,CAAC;AAEH,+EAA+E;AAC/E,aAAa;AACb,+EAA+E;AAE/E,MAAa,kBAAmB,SAAQ,oBAAiD;IAAzF;;QACW,OAAE,GAAG,gBAAgB,CAAC;QACtB,gBAAW,GAAG,gBAAgB,CAAC;QAC/B,gBAAW,GAAG,WAAW,CAAC;QAC1B,iBAAY,GAAG,YAAY,CAAC;IAwBvC,CAAC;IAtBC,KAAK,CAAC,OAAO,CAAC,KAAkC;QAC9C,MAAM,QAAQ,GAAG,MAAM,oBAAU,CAAC,cAAc,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;QAEnE,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,OAAO,EAAE,KAAK,EAAE,oBAAoB,EAAE,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC;QACvD,CAAC;QAED,OAAO;YACL,GAAG,QAAQ;YACX,YAAY,EAAE,QAAQ,CAAC,YAAY,EAAE,WAAW,EAAE;SACnD,CAAC;IACJ,CAAC;IAED,OAAO;QACL,OAAO,IAAA,sBAAU,EAAC;YAChB,EAAE,EAAE,IAAI,CAAC,EAAE;YACX,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,WAAW,EAAE,WAAW;YACxB,YAAY,EAAE,YAAY;YAC1B,OAAO,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC;SACtD,CAAC,CAAC;IACL,CAAC;CACF;AA5BD,gDA4BC"}
@@ -4,13 +4,15 @@ declare const InputSchema: z.ZodObject<{
4
4
  query: z.ZodString;
5
5
  limit: z.ZodDefault<z.ZodNumber>;
6
6
  }, z.core.$strip>;
7
- declare const OutputSchema: z.ZodArray<z.ZodObject<{
8
- id: z.ZodString;
9
- title: z.ZodString;
10
- category: z.ZodString;
11
- snippet: z.ZodString;
12
- score: z.ZodOptional<z.ZodNumber>;
13
- }, z.core.$strip>>;
7
+ declare const OutputSchema: z.ZodObject<{
8
+ results: z.ZodArray<z.ZodObject<{
9
+ id: z.ZodString;
10
+ title: z.ZodString;
11
+ category: z.ZodString;
12
+ snippet: z.ZodString;
13
+ score: z.ZodOptional<z.ZodNumber>;
14
+ }, z.core.$strip>>;
15
+ }, z.core.$strip>;
14
16
  export declare class SearchDocsTool extends BaseTool<typeof InputSchema, typeof OutputSchema> {
15
17
  readonly id = "searchDocs";
16
18
  readonly description = "\nPerforms intelligent fuzzy search across the entire Ignis Framework documentation corpus.\n\nPURPOSE:\nUse this tool to find documentation pages relevant to a user's question or topic.\nIt searches both document titles (weighted higher) and content body using the Fuse.js fuzzy matching algorithm.\n\nWHEN TO USE:\n- User asks \"how do I...\" or \"what is...\" questions about Ignis\n- You need to find documentation about a specific feature, concept, or API\n- You want to discover related documentation before diving into specifics\n- User mentions keywords that might appear in documentation\n\nSEARCH BEHAVIOR:\n- Fuzzy matching tolerates typos and partial matches\n- Title matches are weighted 70%, content matches 30%\n- Results sorted by relevance score (lower = better match)\n- Returns snippet previews for quick assessment\n\nWORKFLOW RECOMMENDATION:\n1. Start with searchDocs to find relevant pages\n2. Review returned snippets to identify best matches\n3. Use getDocContent with specific IDs to retrieve full content\n4. Use getDocMetadata if you need document statistics\n\nOUTPUT STRUCTURE:\nReturns array of {id, title, category, snippet, score} objects.\nUse the 'id' field with getDocContent to fetch full document content.\n";
@@ -18,13 +20,15 @@ export declare class SearchDocsTool extends BaseTool<typeof InputSchema, typeof
18
20
  query: z.ZodString;
19
21
  limit: z.ZodDefault<z.ZodNumber>;
20
22
  }, z.core.$strip>;
21
- readonly outputSchema: z.ZodArray<z.ZodObject<{
22
- id: z.ZodString;
23
- title: z.ZodString;
24
- category: z.ZodString;
25
- snippet: z.ZodString;
26
- score: z.ZodOptional<z.ZodNumber>;
27
- }, z.core.$strip>>;
23
+ readonly outputSchema: z.ZodObject<{
24
+ results: z.ZodArray<z.ZodObject<{
25
+ id: z.ZodString;
26
+ title: z.ZodString;
27
+ category: z.ZodString;
28
+ snippet: z.ZodString;
29
+ score: z.ZodOptional<z.ZodNumber>;
30
+ }, z.core.$strip>>;
31
+ }, z.core.$strip>;
28
32
  execute(input: z.infer<typeof InputSchema>): Promise<z.infer<typeof OutputSchema>>;
29
33
  getTool(): TMastraTool;
30
34
  }
@@ -1 +1 @@
1
- {"version":3,"file":"search-docs.tool.d.ts","sourceRoot":"","sources":["../../tools/search-docs.tool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EAAE,QAAQ,EAAc,KAAK,WAAW,EAAE,MAAM,aAAa,CAAC;AAiFrE,QAAA,MAAM,WAAW;;;iBASf,CAAC;AAEH,QAAA,MAAM,YAAY;;;;;;kBAE2D,CAAC;AAM9E,qBAAa,cAAe,SAAQ,QAAQ,CAAC,OAAO,WAAW,EAAE,OAAO,YAAY,CAAC;IACnF,QAAQ,CAAC,EAAE,gBAAgB;IAC3B,QAAQ,CAAC,WAAW,kuCAAoB;IACxC,QAAQ,CAAC,WAAW;;;sBAAe;IACnC,QAAQ,CAAC,YAAY;;;;;;uBAAgB;IAE/B,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC;IAOxF,OAAO,IAAI,WAAW;CASvB"}
1
+ {"version":3,"file":"search-docs.tool.d.ts","sourceRoot":"","sources":["../../tools/search-docs.tool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EAAE,QAAQ,EAAc,KAAK,WAAW,EAAE,MAAM,aAAa,CAAC;AAiFrE,QAAA,MAAM,WAAW;;;iBASf,CAAC;AAEH,QAAA,MAAM,YAAY;;;;;;;;iBAIhB,CAAC;AAMH,qBAAa,cAAe,SAAQ,QAAQ,CAAC,OAAO,WAAW,EAAE,OAAO,YAAY,CAAC;IACnF,QAAQ,CAAC,EAAE,gBAAgB;IAC3B,QAAQ,CAAC,WAAW,kuCAAoB;IACxC,QAAQ,CAAC,WAAW;;;sBAAe;IACnC,QAAQ,CAAC,YAAY;;;;;;;;sBAAgB;IAE/B,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC;IAQxF,OAAO,IAAI,WAAW;CASvB"}
@@ -86,9 +86,11 @@ const InputSchema = zod_1.z.object({
86
86
  .default(common_1.MCP_CONFIG.search.defaultLimit)
87
87
  .describe(LIMIT_DESCRIPTION),
88
88
  });
89
- const OutputSchema = zod_1.z
90
- .array(SearchResultSchema)
91
- .describe("Search results sorted by relevance. Empty array if no matches.");
89
+ const OutputSchema = zod_1.z.object({
90
+ results: zod_1.z
91
+ .array(SearchResultSchema)
92
+ .describe("Search results sorted by relevance. Empty array if no matches."),
93
+ });
92
94
  // ----------------------------------------------------------------------------
93
95
  // TOOL CLASS
94
96
  // ----------------------------------------------------------------------------
@@ -101,10 +103,11 @@ class SearchDocsTool extends base_tool_1.BaseTool {
101
103
  this.outputSchema = OutputSchema;
102
104
  }
103
105
  async execute(input) {
104
- return helpers_1.DocsHelper.searchDocs({
106
+ const results = await helpers_1.DocsHelper.searchDocs({
105
107
  query: input.query,
106
108
  limit: input.limit,
107
109
  });
110
+ return { results };
108
111
  }
109
112
  getTool() {
110
113
  return (0, base_tool_1.createTool)({
@@ -1 +1 @@
1
- {"version":3,"file":"search-docs.tool.js","sourceRoot":"","sources":["../../tools/search-docs.tool.ts"],"names":[],"mappings":";;;AAAA,6BAAwB;AACxB,sCAAuC;AACvC,wCAAwC;AACxC,2CAAqE;AAErE,+EAA+E;AAC/E,eAAe;AACf,+EAA+E;AAE/E,MAAM,gBAAgB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4BxB,CAAC;AAEF,MAAM,iBAAiB,GAAG;;;;YAId,mBAAU,CAAC,MAAM,CAAC,cAAc;;;;;;;;;CAS3C,CAAC;AAEF,MAAM,iBAAiB,GAAG;;;;;aAKb,mBAAU,CAAC,MAAM,CAAC,QAAQ;aAC1B,mBAAU,CAAC,MAAM,CAAC,YAAY;;;;;;CAM1C,CAAC;AAEF,+EAA+E;AAC/E,UAAU;AACV,+EAA+E;AAE/E,MAAM,kBAAkB,GAAG,OAAC,CAAC,MAAM,CAAC;IAClC,EAAE,EAAE,OAAC;SACF,MAAM,EAAE;SACR,QAAQ,CACP,oGAAoG,CACrG;IACH,KAAK,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,6DAA6D,CAAC;IACzF,QAAQ,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,4DAA4D,CAAC;IAC3F,OAAO,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,uDAAuD,CAAC;IACrF,KAAK,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,6CAA6C,CAAC;CACrF,CAAC,CAAC;AAEH,MAAM,WAAW,GAAG,OAAC,CAAC,MAAM,CAAC;IAC3B,KAAK,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,mBAAU,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,QAAQ,CAAC,iBAAiB,CAAC;IACnF,KAAK,EAAE,OAAC;SACL,MAAM,EAAE;SACR,GAAG,EAAE;SACL,GAAG,CAAC,CAAC,CAAC;SACN,GAAG,CAAC,mBAAU,CAAC,MAAM,CAAC,QAAQ,CAAC;SAC/B,OAAO,CAAC,mBAAU,CAAC,MAAM,CAAC,YAAY,CAAC;SACvC,QAAQ,CAAC,iBAAiB,CAAC;CAC/B,CAAC,CAAC;AAEH,MAAM,YAAY,GAAG,OAAC;KACnB,KAAK,CAAC,kBAAkB,CAAC;KACzB,QAAQ,CAAC,gEAAgE,CAAC,CAAC;AAE9E,+EAA+E;AAC/E,aAAa;AACb,+EAA+E;AAE/E,MAAa,cAAe,SAAQ,oBAAiD;IAArF;;QACW,OAAE,GAAG,YAAY,CAAC;QAClB,gBAAW,GAAG,gBAAgB,CAAC;QAC/B,gBAAW,GAAG,WAAW,CAAC;QAC1B,iBAAY,GAAG,YAAY,CAAC;IAkBvC,CAAC;IAhBC,KAAK,CAAC,OAAO,CAAC,KAAkC;QAC9C,OAAO,oBAAU,CAAC,UAAU,CAAC;YAC3B,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,KAAK,EAAE,KAAK,CAAC,KAAK;SACnB,CAAC,CAAC;IACL,CAAC;IAED,OAAO;QACL,OAAO,IAAA,sBAAU,EAAC;YAChB,EAAE,EAAE,IAAI,CAAC,EAAE;YACX,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,WAAW,EAAE,WAAW;YACxB,YAAY,EAAE,YAAY;YAC1B,OAAO,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC;SACtD,CAAC,CAAC;IACL,CAAC;CACF;AAtBD,wCAsBC"}
1
+ {"version":3,"file":"search-docs.tool.js","sourceRoot":"","sources":["../../tools/search-docs.tool.ts"],"names":[],"mappings":";;;AAAA,6BAAwB;AACxB,sCAAuC;AACvC,wCAAwC;AACxC,2CAAqE;AAErE,+EAA+E;AAC/E,eAAe;AACf,+EAA+E;AAE/E,MAAM,gBAAgB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4BxB,CAAC;AAEF,MAAM,iBAAiB,GAAG;;;;YAId,mBAAU,CAAC,MAAM,CAAC,cAAc;;;;;;;;;CAS3C,CAAC;AAEF,MAAM,iBAAiB,GAAG;;;;;aAKb,mBAAU,CAAC,MAAM,CAAC,QAAQ;aAC1B,mBAAU,CAAC,MAAM,CAAC,YAAY;;;;;;CAM1C,CAAC;AAEF,+EAA+E;AAC/E,UAAU;AACV,+EAA+E;AAE/E,MAAM,kBAAkB,GAAG,OAAC,CAAC,MAAM,CAAC;IAClC,EAAE,EAAE,OAAC;SACF,MAAM,EAAE;SACR,QAAQ,CACP,oGAAoG,CACrG;IACH,KAAK,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,6DAA6D,CAAC;IACzF,QAAQ,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,4DAA4D,CAAC;IAC3F,OAAO,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,uDAAuD,CAAC;IACrF,KAAK,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,6CAA6C,CAAC;CACrF,CAAC,CAAC;AAEH,MAAM,WAAW,GAAG,OAAC,CAAC,MAAM,CAAC;IAC3B,KAAK,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,mBAAU,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,QAAQ,CAAC,iBAAiB,CAAC;IACnF,KAAK,EAAE,OAAC;SACL,MAAM,EAAE;SACR,GAAG,EAAE;SACL,GAAG,CAAC,CAAC,CAAC;SACN,GAAG,CAAC,mBAAU,CAAC,MAAM,CAAC,QAAQ,CAAC;SAC/B,OAAO,CAAC,mBAAU,CAAC,MAAM,CAAC,YAAY,CAAC;SACvC,QAAQ,CAAC,iBAAiB,CAAC;CAC/B,CAAC,CAAC;AAEH,MAAM,YAAY,GAAG,OAAC,CAAC,MAAM,CAAC;IAC5B,OAAO,EAAE,OAAC;SACP,KAAK,CAAC,kBAAkB,CAAC;SACzB,QAAQ,CAAC,gEAAgE,CAAC;CAC9E,CAAC,CAAC;AAEH,+EAA+E;AAC/E,aAAa;AACb,+EAA+E;AAE/E,MAAa,cAAe,SAAQ,oBAAiD;IAArF;;QACW,OAAE,GAAG,YAAY,CAAC;QAClB,gBAAW,GAAG,gBAAgB,CAAC;QAC/B,gBAAW,GAAG,WAAW,CAAC;QAC1B,iBAAY,GAAG,YAAY,CAAC;IAmBvC,CAAC;IAjBC,KAAK,CAAC,OAAO,CAAC,KAAkC;QAC9C,MAAM,OAAO,GAAG,MAAM,oBAAU,CAAC,UAAU,CAAC;YAC1C,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,KAAK,EAAE,KAAK,CAAC,KAAK;SACnB,CAAC,CAAC;QACH,OAAO,EAAE,OAAO,EAAE,CAAC;IACrB,CAAC;IAED,OAAO;QACL,OAAO,IAAA,sBAAU,EAAC;YAChB,EAAE,EAAE,IAAI,CAAC,EAAE;YACX,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,WAAW,EAAE,WAAW;YACxB,YAAY,EAAE,YAAY;YAC1B,OAAO,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC;SACtD,CAAC,CAAC;IACL,CAAC;CACF;AAvBD,wCAuBC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@venizia/ignis-docs",
3
- "version": "0.0.1-1",
3
+ "version": "0.0.1-3",
4
4
  "description": "Documentation and MCP Server for Ignis Framework",
5
5
  "keywords": [
6
6
  "ignis",
@@ -34,6 +34,8 @@
34
34
  "ignis-docs-mcp": "./mcp-server/dist/index.js"
35
35
  },
36
36
  "files": [
37
+ "README.md",
38
+ "LICENSE.md",
37
39
  "mcp-server/dist",
38
40
  "wiki"
39
41
  ],
@@ -62,7 +64,7 @@
62
64
  },
63
65
  "repository": {
64
66
  "type": "git",
65
- "url": "https://github.com/venizia-ai/ignis.git",
67
+ "url": "git+https://github.com/VENIZIA-AI/ignis.git",
66
68
  "directory": "packages/docs"
67
69
  },
68
70
  "author": {