@vibe-agent-toolkit/agent-config 0.1.0-rc.7

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 ADDED
@@ -0,0 +1,71 @@
1
+ # @vibe-agent-toolkit/agent-config
2
+
3
+ Agent manifest loading and validation for vibe-agent-toolkit.
4
+
5
+ ## Features
6
+
7
+ - Load and validate agent manifests (using `@vibe-agent-toolkit/agent-schema`)
8
+ - Validate tool prerequisites (RAG databases exist, etc.)
9
+ - Validate resource file existence (prompts, docs, templates)
10
+ - Foundation for future agent execution (no LLM integration in this phase)
11
+
12
+ ## Installation
13
+
14
+ ```bash
15
+ bun add @vibe-agent-toolkit/agent-config
16
+ ```
17
+
18
+ ## Usage
19
+
20
+ ### Loading an Agent
21
+
22
+ ```typescript
23
+ import { loadAgentManifest } from '@vibe-agent-toolkit/agent-config';
24
+
25
+ const manifest = await loadAgentManifest('./agent.yaml');
26
+ console.log(`Loaded: ${manifest.metadata.name} v${manifest.metadata.version}`);
27
+ ```
28
+
29
+ ### Validating an Agent
30
+
31
+ ```typescript
32
+ import { validateAgent } from '@vibe-agent-toolkit/agent-config';
33
+
34
+ const result = await validateAgent('./agent.yaml');
35
+
36
+ if (result.valid) {
37
+ console.log('✅ Agent is valid');
38
+ } else {
39
+ console.error('❌ Validation errors:', result.errors);
40
+ }
41
+ ```
42
+
43
+ ## API
44
+
45
+ ### `loadAgentManifest(path: string): Promise<LoadedAgentManifest>`
46
+
47
+ Load and parse agent manifest from file.
48
+
49
+ **Parameters**:
50
+ - `path` - Path to agent.yaml or agent directory
51
+
52
+ **Returns**: Validated agent manifest with `__manifestPath` property
53
+
54
+ **Throws**: Error if file not found or invalid
55
+
56
+ ---
57
+
58
+ ### `validateAgent(path: string): Promise<ValidationResult>`
59
+
60
+ Validate agent manifest and check prerequisites.
61
+
62
+ **Parameters**:
63
+ - `path` - Path to agent.yaml or agent directory
64
+
65
+ **Returns**: Validation result with errors/warnings
66
+
67
+ ---
68
+
69
+ ## License
70
+
71
+ MIT
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Agent manifest loading and validation
3
+ * @packageDocumentation
4
+ */
5
+ export type { AgentManifest, AgentMetadata, AgentSpec, LLMConfig, Tool, } from '@vibe-agent-toolkit/agent-schema';
6
+ export { findManifestPath, loadAgentManifest, type LoadedAgentManifest, } from './loader/manifest-loader.js';
7
+ export { validateAgent, type ValidationResult, } from './validator/agent-validator.js';
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,YAAY,EACV,aAAa,EACb,aAAa,EACb,SAAS,EACT,SAAS,EACT,IAAI,GACL,MAAM,kCAAkC,CAAC;AAG1C,OAAO,EACL,gBAAgB,EAChB,iBAAiB,EACjB,KAAK,mBAAmB,GACzB,MAAM,6BAA6B,CAAC;AAGrC,OAAO,EACL,aAAa,EACb,KAAK,gBAAgB,GACtB,MAAM,gCAAgC,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Agent manifest loading and validation
3
+ * @packageDocumentation
4
+ */
5
+ // Loader
6
+ export { findManifestPath, loadAgentManifest, } from './loader/manifest-loader.js';
7
+ // Validator
8
+ export { validateAgent, } from './validator/agent-validator.js';
9
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAWH,SAAS;AACT,OAAO,EACL,gBAAgB,EAChB,iBAAiB,GAElB,MAAM,6BAA6B,CAAC;AAErC,YAAY;AACZ,OAAO,EACL,aAAa,GAEd,MAAM,gCAAgC,CAAC"}
@@ -0,0 +1,21 @@
1
+ import { type AgentManifest } from '@vibe-agent-toolkit/agent-schema';
2
+ export interface LoadedAgentManifest extends AgentManifest {
3
+ /**
4
+ * Absolute path to the manifest file
5
+ * Added by loader for reference
6
+ */
7
+ __manifestPath: string;
8
+ }
9
+ /**
10
+ * Find agent manifest file from path argument
11
+ * Supports:
12
+ * - Direct path to manifest (agent.yaml, agent.yml)
13
+ * - Directory containing manifest
14
+ */
15
+ export declare function findManifestPath(pathArg: string): Promise<string>;
16
+ /**
17
+ * Load and validate agent manifest from file
18
+ * Returns manifest with additional __manifestPath property
19
+ */
20
+ export declare function loadAgentManifest(pathArg: string): Promise<LoadedAgentManifest>;
21
+ //# sourceMappingURL=manifest-loader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"manifest-loader.d.ts","sourceRoot":"","sources":["../../src/loader/manifest-loader.ts"],"names":[],"mappings":"AAGA,OAAO,EAAuB,KAAK,aAAa,EAAE,MAAM,kCAAkC,CAAC;AAG3F,MAAM,WAAW,mBAAoB,SAAQ,aAAa;IACxD;;;OAGG;IACH,cAAc,EAAE,MAAM,CAAC;CACxB;AAED;;;;;GAKG;AACH,wBAAsB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CA+BvE;AAED;;;GAGG;AACH,wBAAsB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAuCrF"}
@@ -0,0 +1,79 @@
1
+ import fs from 'node:fs/promises';
2
+ import path from 'node:path';
3
+ import { AgentManifestSchema } from '@vibe-agent-toolkit/agent-schema';
4
+ import { parse as parseYaml } from 'yaml';
5
+ /**
6
+ * Find agent manifest file from path argument
7
+ * Supports:
8
+ * - Direct path to manifest (agent.yaml, agent.yml)
9
+ * - Directory containing manifest
10
+ */
11
+ export async function findManifestPath(pathArg) {
12
+ const absolutePath = path.resolve(process.cwd(), pathArg);
13
+ // Check if it's a direct file reference
14
+ if (pathArg.endsWith('.yaml') || pathArg.endsWith('.yml')) {
15
+ try {
16
+ await fs.access(absolutePath);
17
+ return absolutePath;
18
+ }
19
+ catch {
20
+ throw new Error(`Manifest file not found: ${absolutePath}`);
21
+ }
22
+ }
23
+ // Assume it's a directory - search for manifest
24
+ const candidates = [
25
+ path.join(absolutePath, 'agent.yaml'),
26
+ path.join(absolutePath, 'agent.yml'),
27
+ ];
28
+ for (const candidate of candidates) {
29
+ try {
30
+ await fs.access(candidate);
31
+ return candidate;
32
+ }
33
+ catch {
34
+ // Continue to next candidate
35
+ }
36
+ }
37
+ throw new Error(`No agent manifest found in ${absolutePath}. Expected agent.yaml or agent.yml`);
38
+ }
39
+ /**
40
+ * Load and validate agent manifest from file
41
+ * Returns manifest with additional __manifestPath property
42
+ */
43
+ export async function loadAgentManifest(pathArg) {
44
+ try {
45
+ // Find manifest file
46
+ const manifestPath = await findManifestPath(pathArg);
47
+ // Read file (manifestPath validated by findManifestPath)
48
+ // eslint-disable-next-line security/detect-non-literal-fs-filename -- Path validated above
49
+ const content = await fs.readFile(manifestPath, 'utf-8');
50
+ // Parse YAML
51
+ let data;
52
+ try {
53
+ data = parseYaml(content);
54
+ }
55
+ catch (error) {
56
+ throw new Error(`Failed to parse YAML: ${error instanceof Error ? error.message : 'unknown error'}`);
57
+ }
58
+ // Validate schema
59
+ const result = AgentManifestSchema.safeParse(data);
60
+ if (!result.success) {
61
+ const errors = result.error.errors
62
+ .map(err => ` - ${err.path.join('.')}: ${err.message}`)
63
+ .join('\n');
64
+ throw new Error(`Agent manifest validation failed:\n${errors}`);
65
+ }
66
+ // Add manifest path to result
67
+ return {
68
+ ...result.data,
69
+ __manifestPath: manifestPath,
70
+ };
71
+ }
72
+ catch (error) {
73
+ if (error instanceof Error) {
74
+ throw new Error(`Failed to load agent manifest from ${pathArg}: ${error.message}`);
75
+ }
76
+ throw error;
77
+ }
78
+ }
79
+ //# sourceMappingURL=manifest-loader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"manifest-loader.js","sourceRoot":"","sources":["../../src/loader/manifest-loader.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ export interface ValidationResult {
2
+ valid: boolean;
3
+ errors: string[];
4
+ warnings: string[];
5
+ manifest: {
6
+ name: string;
7
+ version: string;
8
+ path: string;
9
+ };
10
+ }
11
+ /**
12
+ * Validate agent manifest and check prerequisites
13
+ * Performs:
14
+ * - Schema validation (via loader)
15
+ * - Tool configuration checks (RAG databases, etc.)
16
+ * - Resource file existence checks
17
+ */
18
+ export declare function validateAgent(pathArg: string): Promise<ValidationResult>;
19
+ //# sourceMappingURL=agent-validator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-validator.d.ts","sourceRoot":"","sources":["../../src/validator/agent-validator.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,QAAQ,EAAE;QACR,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,MAAM,CAAC;QAChB,IAAI,EAAE,MAAM,CAAC;KACd,CAAC;CACH;AAED;;;;;;GAMG;AACH,wBAAsB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC,CA+C9E"}
@@ -0,0 +1,148 @@
1
+ import fs from 'node:fs/promises';
2
+ import path from 'node:path';
3
+ import { loadAgentManifest } from '../loader/manifest-loader.js';
4
+ /**
5
+ * Validate agent manifest and check prerequisites
6
+ * Performs:
7
+ * - Schema validation (via loader)
8
+ * - Tool configuration checks (RAG databases, etc.)
9
+ * - Resource file existence checks
10
+ */
11
+ export async function validateAgent(pathArg) {
12
+ const errors = [];
13
+ const warnings = [];
14
+ try {
15
+ // Load and validate schema
16
+ const manifest = await loadAgentManifest(pathArg);
17
+ const agentDir = path.dirname(manifest.__manifestPath);
18
+ // Validate RAG configuration
19
+ if (manifest.spec.rag) {
20
+ await validateRAGConfig(manifest, agentDir, errors, warnings);
21
+ }
22
+ // Validate resource files
23
+ if (manifest.spec.resources) {
24
+ await validateResources(manifest, agentDir, errors, warnings);
25
+ }
26
+ // Validate prompt references
27
+ if (manifest.spec.prompts) {
28
+ await validatePrompts(manifest, agentDir, errors, warnings);
29
+ }
30
+ return {
31
+ valid: errors.length === 0,
32
+ errors,
33
+ warnings,
34
+ manifest: {
35
+ name: manifest.metadata.name,
36
+ version: manifest.metadata.version ?? 'unknown',
37
+ path: manifest.__manifestPath,
38
+ },
39
+ };
40
+ }
41
+ catch (error) {
42
+ // Schema validation or file loading failed
43
+ return {
44
+ valid: false,
45
+ errors: [error instanceof Error ? error.message : 'Unknown validation error'],
46
+ warnings: [],
47
+ manifest: {
48
+ name: 'unknown',
49
+ version: 'unknown',
50
+ path: pathArg,
51
+ },
52
+ };
53
+ }
54
+ }
55
+ /**
56
+ * Validate RAG configuration
57
+ */
58
+ async function validateRAGConfig(manifest, agentDir, errors, warnings) {
59
+ // Check if RAG database exists
60
+ // Default location is .rag-db in agent directory
61
+ const ragDbPath = path.join(agentDir, '.rag-db');
62
+ try {
63
+ await fs.access(ragDbPath);
64
+ // Database exists - good!
65
+ }
66
+ catch {
67
+ errors.push(`RAG database not found: ${ragDbPath}. Run 'vat rag index' to create database.`);
68
+ }
69
+ // Warn if no RAG sources defined
70
+ if (manifest.spec.rag) {
71
+ const ragConfigs = Object.values(manifest.spec.rag);
72
+ const hasSources = ragConfigs.some(config => config.sources);
73
+ if (!hasSources) {
74
+ warnings.push('RAG configuration defined but no sources specified');
75
+ }
76
+ }
77
+ }
78
+ /**
79
+ * Validate resource files exist
80
+ */
81
+ async function validateResources(manifest, agentDir, errors, _warnings) {
82
+ if (!manifest.spec.resources)
83
+ return;
84
+ for (const [resourceId, resource] of Object.entries(manifest.spec.resources)) {
85
+ // Resource can be either a Resource object or a nested record of Resource objects
86
+ if ('path' in resource && typeof resource.path === 'string') {
87
+ await validateSingleResource(agentDir, resourceId, resource.path, errors);
88
+ }
89
+ else {
90
+ await validateNestedResources(agentDir, resourceId, resource, errors);
91
+ }
92
+ }
93
+ }
94
+ /**
95
+ * Validate a single resource file
96
+ */
97
+ async function validateSingleResource(agentDir, resourceId, resourcePath, errors) {
98
+ const fullPath = path.resolve(agentDir, resourcePath);
99
+ try {
100
+ await fs.access(fullPath);
101
+ }
102
+ catch {
103
+ errors.push(`Resource '${resourceId}' not found: ${resourcePath}`);
104
+ }
105
+ }
106
+ /**
107
+ * Validate nested resource files
108
+ */
109
+ async function validateNestedResources(agentDir, resourceId, resourceRecord, errors) {
110
+ for (const [nestedId, nestedResource] of Object.entries(resourceRecord)) {
111
+ if (typeof nestedResource !== 'object' || !nestedResource || !('path' in nestedResource)) {
112
+ continue;
113
+ }
114
+ const resourcePath = path.resolve(agentDir, nestedResource.path);
115
+ try {
116
+ await fs.access(resourcePath);
117
+ }
118
+ catch {
119
+ errors.push(`Resource '${resourceId}.${nestedId}' not found: ${nestedResource.path}`);
120
+ }
121
+ }
122
+ }
123
+ /**
124
+ * Validate prompt files exist
125
+ */
126
+ async function validatePrompts(manifest, agentDir, errors, _warnings) {
127
+ if (!manifest.spec.prompts)
128
+ return;
129
+ if (manifest.spec.prompts.system) {
130
+ const systemPath = path.resolve(agentDir, manifest.spec.prompts.system.$ref);
131
+ try {
132
+ await fs.access(systemPath);
133
+ }
134
+ catch {
135
+ errors.push(`System prompt not found: ${manifest.spec.prompts.system.$ref}`);
136
+ }
137
+ }
138
+ if (manifest.spec.prompts.user) {
139
+ const userPath = path.resolve(agentDir, manifest.spec.prompts.user.$ref);
140
+ try {
141
+ await fs.access(userPath);
142
+ }
143
+ catch {
144
+ errors.push(`User prompt not found: ${manifest.spec.prompts.user.$ref}`);
145
+ }
146
+ }
147
+ }
148
+ //# sourceMappingURL=agent-validator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-validator.js","sourceRoot":"","sources":["../../src/validator/agent-validator.ts"],"names":[],"mappings":"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"}
package/package.json ADDED
@@ -0,0 +1,49 @@
1
+ {
2
+ "name": "@vibe-agent-toolkit/agent-config",
3
+ "version": "0.1.0-rc.7",
4
+ "description": "Agent manifest loading and validation",
5
+ "type": "module",
6
+ "main": "./dist/index.js",
7
+ "types": "./dist/index.d.ts",
8
+ "exports": {
9
+ ".": {
10
+ "types": "./dist/index.d.ts",
11
+ "import": "./dist/index.js"
12
+ }
13
+ },
14
+ "files": [
15
+ "dist",
16
+ "README.md"
17
+ ],
18
+ "scripts": {
19
+ "build": "tsc --build",
20
+ "build:watch": "tsc --build --watch",
21
+ "clean": "rm -rf dist",
22
+ "test": "vitest run",
23
+ "test:watch": "vitest watch",
24
+ "test:coverage": "vitest run --coverage",
25
+ "typecheck": "tsc --noEmit"
26
+ },
27
+ "dependencies": {
28
+ "@vibe-agent-toolkit/agent-schema": "workspace:*",
29
+ "@vibe-agent-toolkit/utils": "workspace:*",
30
+ "@vibe-agent-toolkit/rag": "workspace:*",
31
+ "yaml": "^2.3.4"
32
+ },
33
+ "devDependencies": {
34
+ "@types/node": "^22.0.0",
35
+ "typescript": "~5.7.2",
36
+ "vitest": "^3.0.3"
37
+ },
38
+ "keywords": [
39
+ "ai",
40
+ "agent",
41
+ "config",
42
+ "validation",
43
+ "manifest"
44
+ ],
45
+ "repository": {
46
+ "type": "git",
47
+ "url": "https://github.com/jdutton/vibe-agent-toolkit.git"
48
+ }
49
+ }