@fractary/faber 0.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +146 -0
- package/dist/api.d.ts +81 -0
- package/dist/api.d.ts.map +1 -0
- package/dist/api.js +261 -0
- package/dist/api.js.map +1 -0
- package/dist/bindings/claude-code/transformer.d.ts +55 -0
- package/dist/bindings/claude-code/transformer.d.ts.map +1 -0
- package/dist/bindings/claude-code/transformer.js +271 -0
- package/dist/bindings/claude-code/transformer.js.map +1 -0
- package/dist/bindings/index.d.ts +21 -0
- package/dist/bindings/index.d.ts.map +1 -0
- package/dist/bindings/index.js +43 -0
- package/dist/bindings/index.js.map +1 -0
- package/dist/core/concepts/base.d.ts +89 -0
- package/dist/core/concepts/base.d.ts.map +1 -0
- package/dist/core/concepts/base.js +230 -0
- package/dist/core/concepts/base.js.map +1 -0
- package/dist/core/concepts/eval.d.ts +90 -0
- package/dist/core/concepts/eval.d.ts.map +1 -0
- package/dist/core/concepts/eval.js +118 -0
- package/dist/core/concepts/eval.js.map +1 -0
- package/dist/core/concepts/index.d.ts +9 -0
- package/dist/core/concepts/index.d.ts.map +1 -0
- package/dist/core/concepts/index.js +36 -0
- package/dist/core/concepts/index.js.map +1 -0
- package/dist/core/concepts/role.d.ts +19 -0
- package/dist/core/concepts/role.d.ts.map +1 -0
- package/dist/core/concepts/role.js +227 -0
- package/dist/core/concepts/role.js.map +1 -0
- package/dist/core/concepts/team.d.ts +57 -0
- package/dist/core/concepts/team.d.ts.map +1 -0
- package/dist/core/concepts/team.js +106 -0
- package/dist/core/concepts/team.js.map +1 -0
- package/dist/core/concepts/tool.d.ts +43 -0
- package/dist/core/concepts/tool.d.ts.map +1 -0
- package/dist/core/concepts/tool.js +104 -0
- package/dist/core/concepts/tool.js.map +1 -0
- package/dist/core/concepts/workflow.d.ts +87 -0
- package/dist/core/concepts/workflow.d.ts.map +1 -0
- package/dist/core/concepts/workflow.js +114 -0
- package/dist/core/concepts/workflow.js.map +1 -0
- package/dist/core/config/index.d.ts +34 -0
- package/dist/core/config/index.d.ts.map +1 -0
- package/dist/core/config/index.js +80 -0
- package/dist/core/config/index.js.map +1 -0
- package/dist/core/config/loader.d.ts +53 -0
- package/dist/core/config/loader.d.ts.map +1 -0
- package/dist/core/config/loader.js +234 -0
- package/dist/core/config/loader.js.map +1 -0
- package/dist/core/contexts/index.d.ts +36 -0
- package/dist/core/contexts/index.d.ts.map +1 -0
- package/dist/core/contexts/index.js +75 -0
- package/dist/core/contexts/index.js.map +1 -0
- package/dist/core/contexts/loader.d.ts +66 -0
- package/dist/core/contexts/loader.d.ts.map +1 -0
- package/dist/core/contexts/loader.js +261 -0
- package/dist/core/contexts/loader.js.map +1 -0
- package/dist/core/overlays/index.d.ts +31 -0
- package/dist/core/overlays/index.d.ts.map +1 -0
- package/dist/core/overlays/index.js +82 -0
- package/dist/core/overlays/index.js.map +1 -0
- package/dist/core/overlays/resolver.d.ts +65 -0
- package/dist/core/overlays/resolver.d.ts.map +1 -0
- package/dist/core/overlays/resolver.js +249 -0
- package/dist/core/overlays/resolver.js.map +1 -0
- package/dist/index.d.ts +20 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +56 -0
- package/dist/index.js.map +1 -0
- package/dist/types/bindings.d.ts +59 -0
- package/dist/types/bindings.d.ts.map +1 -0
- package/dist/types/bindings.js +6 -0
- package/dist/types/bindings.js.map +1 -0
- package/dist/types/concepts.d.ts +131 -0
- package/dist/types/concepts.d.ts.map +1 -0
- package/dist/types/concepts.js +29 -0
- package/dist/types/concepts.js.map +1 -0
- package/dist/types/config.d.ts +42 -0
- package/dist/types/config.d.ts.map +1 -0
- package/dist/types/config.js +6 -0
- package/dist/types/config.js.map +1 -0
- package/dist/types/contexts.d.ts +59 -0
- package/dist/types/contexts.d.ts.map +1 -0
- package/dist/types/contexts.js +17 -0
- package/dist/types/contexts.js.map +1 -0
- package/dist/types/index.d.ts +17 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +30 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/overlays.d.ts +28 -0
- package/dist/types/overlays.d.ts.map +1 -0
- package/dist/types/overlays.js +15 -0
- package/dist/types/overlays.js.map +1 -0
- package/dist/utils/file-system.d.ts +40 -0
- package/dist/utils/file-system.d.ts.map +1 -0
- package/dist/utils/file-system.js +105 -0
- package/dist/utils/file-system.js.map +1 -0
- package/dist/utils/template.d.ts +28 -0
- package/dist/utils/template.d.ts.map +1 -0
- package/dist/utils/template.js +107 -0
- package/dist/utils/template.js.map +1 -0
- package/dist/utils/validation.d.ts +42 -0
- package/dist/utils/validation.d.ts.map +1 -0
- package/dist/utils/validation.js +94 -0
- package/dist/utils/validation.js.map +1 -0
- package/package.json +83 -0
|
@@ -0,0 +1,271 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Claude Code binding transformer
|
|
4
|
+
*/
|
|
5
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
6
|
+
if (k2 === undefined) k2 = k;
|
|
7
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
8
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
9
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
10
|
+
}
|
|
11
|
+
Object.defineProperty(o, k2, desc);
|
|
12
|
+
}) : (function(o, m, k, k2) {
|
|
13
|
+
if (k2 === undefined) k2 = k;
|
|
14
|
+
o[k2] = m[k];
|
|
15
|
+
}));
|
|
16
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
17
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
18
|
+
}) : function(o, v) {
|
|
19
|
+
o["default"] = v;
|
|
20
|
+
});
|
|
21
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
22
|
+
var ownKeys = function(o) {
|
|
23
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
24
|
+
var ar = [];
|
|
25
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
26
|
+
return ar;
|
|
27
|
+
};
|
|
28
|
+
return ownKeys(o);
|
|
29
|
+
};
|
|
30
|
+
return function (mod) {
|
|
31
|
+
if (mod && mod.__esModule) return mod;
|
|
32
|
+
var result = {};
|
|
33
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
34
|
+
__setModuleDefault(result, mod);
|
|
35
|
+
return result;
|
|
36
|
+
};
|
|
37
|
+
})();
|
|
38
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
+
exports.ClaudeCodeTransformer = void 0;
|
|
40
|
+
const path = __importStar(require("path"));
|
|
41
|
+
const yaml = __importStar(require("js-yaml"));
|
|
42
|
+
const Handlebars = __importStar(require("handlebars"));
|
|
43
|
+
const types_1 = require("../../types");
|
|
44
|
+
const base_1 = require("../../core/concepts/base");
|
|
45
|
+
class ClaudeCodeTransformer {
|
|
46
|
+
constructor(bindingConfigPath) {
|
|
47
|
+
this.templates = {};
|
|
48
|
+
// Load binding configuration
|
|
49
|
+
const configPath = bindingConfigPath || path.join(__dirname, 'binding.yml');
|
|
50
|
+
this.bindingConfig = this.loadBindingConfig(configPath);
|
|
51
|
+
this.loadTemplates();
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Transform role to Claude Code deployment
|
|
55
|
+
*/
|
|
56
|
+
async transform(role, config, overlays) {
|
|
57
|
+
const files = new Map();
|
|
58
|
+
const directories = [];
|
|
59
|
+
// Generate agent file
|
|
60
|
+
const agentContent = await this.generateAgentFile(role, config, overlays);
|
|
61
|
+
const agentPath = this.resolvePath(this.bindingConfig.output_structure.role_path, role);
|
|
62
|
+
files.set(agentPath, agentContent);
|
|
63
|
+
directories.push(path.dirname(agentPath));
|
|
64
|
+
// Copy contexts
|
|
65
|
+
await this.copyContexts(role, files, directories);
|
|
66
|
+
// Copy overlay contexts
|
|
67
|
+
await this.copyOverlayContexts(overlays, role, files, directories);
|
|
68
|
+
// Copy tasks
|
|
69
|
+
await this.copyTasks(role, files, directories);
|
|
70
|
+
// Copy flows
|
|
71
|
+
await this.copyFlows(role, files, directories);
|
|
72
|
+
// Copy configuration
|
|
73
|
+
const configPath = this.bindingConfig.output_structure.config_path;
|
|
74
|
+
files.set(configPath, yaml.dump(config));
|
|
75
|
+
directories.push(path.dirname(configPath));
|
|
76
|
+
// Create metadata
|
|
77
|
+
const metadata = {
|
|
78
|
+
concept: new base_1.ConceptReferenceImpl(types_1.ConceptType.ROLE, role.metadata.name),
|
|
79
|
+
binding: 'claude-code',
|
|
80
|
+
timestamp: new Date().toISOString(),
|
|
81
|
+
config: config
|
|
82
|
+
};
|
|
83
|
+
return {
|
|
84
|
+
files: Array.from(files.entries()).map(([path, content]) => ({ path, content })),
|
|
85
|
+
directories: [...new Set(directories)], // Remove duplicates
|
|
86
|
+
metadata
|
|
87
|
+
};
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Generate agent file content
|
|
91
|
+
*/
|
|
92
|
+
async generateAgentFile(role, config, overlays) {
|
|
93
|
+
// Prepare template data
|
|
94
|
+
const templateData = {
|
|
95
|
+
metadata: role.metadata,
|
|
96
|
+
prompt: role.prompt,
|
|
97
|
+
tasks: Array.from(role.tasks.values()),
|
|
98
|
+
flows: Array.from(role.flows.values()),
|
|
99
|
+
contextCategories: Object.values(types_1.ContextCategory),
|
|
100
|
+
overlayContexts: this.collectOverlayContexts(overlays),
|
|
101
|
+
mcpServers: this.getMCPServers(role, config),
|
|
102
|
+
paths: {
|
|
103
|
+
contextPrefix: this.resolvePath(this.bindingConfig.path_resolution.context_prefix, role),
|
|
104
|
+
taskPrefix: this.resolvePath(this.bindingConfig.path_resolution.task_prefix, role),
|
|
105
|
+
flowPrefix: this.resolvePath(this.bindingConfig.path_resolution.flow_prefix, role)
|
|
106
|
+
}
|
|
107
|
+
};
|
|
108
|
+
// Generate frontmatter
|
|
109
|
+
const frontmatter = this.templates.frontmatter(templateData);
|
|
110
|
+
// Generate body
|
|
111
|
+
const body = this.templates.body(templateData);
|
|
112
|
+
return `${frontmatter}\n${body}`;
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* Copy contexts to deployment
|
|
116
|
+
*/
|
|
117
|
+
async copyContexts(role, files, directories) {
|
|
118
|
+
const docsPath = this.resolvePath(this.bindingConfig.output_structure.docs_path, role);
|
|
119
|
+
const contextsPath = path.join(docsPath, 'contexts');
|
|
120
|
+
for (const [key, context] of role.contexts) {
|
|
121
|
+
const contextPath = path.join(contextsPath, key + '.md');
|
|
122
|
+
let content = context.content;
|
|
123
|
+
// Add frontmatter if not present
|
|
124
|
+
if (context.metadata) {
|
|
125
|
+
content = `---\n${yaml.dump(context.metadata)}---\n\n${content}`;
|
|
126
|
+
}
|
|
127
|
+
files.set(contextPath, content);
|
|
128
|
+
directories.push(path.dirname(contextPath));
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
/**
|
|
132
|
+
* Copy overlay contexts to deployment
|
|
133
|
+
*/
|
|
134
|
+
async copyOverlayContexts(overlays, role, files, directories) {
|
|
135
|
+
const docsPath = this.resolvePath(this.bindingConfig.output_structure.docs_path, role);
|
|
136
|
+
const overlaysPath = path.join(docsPath, 'contexts', '_overlays');
|
|
137
|
+
// Organization overlays
|
|
138
|
+
for (const context of overlays.organization.contexts) {
|
|
139
|
+
const contextPath = path.join(overlaysPath, 'organization', context.category, context.name + '.md');
|
|
140
|
+
files.set(contextPath, context.content);
|
|
141
|
+
directories.push(path.dirname(contextPath));
|
|
142
|
+
}
|
|
143
|
+
// Platform overlays
|
|
144
|
+
for (const [platform, overlay] of Object.entries(overlays.platforms)) {
|
|
145
|
+
for (const context of overlay.contexts) {
|
|
146
|
+
const contextPath = path.join(overlaysPath, 'platforms', platform, context.category, context.name + '.md');
|
|
147
|
+
files.set(contextPath, context.content);
|
|
148
|
+
directories.push(path.dirname(contextPath));
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
// Role overlays
|
|
152
|
+
for (const [roleName, overlay] of Object.entries(overlays.roles)) {
|
|
153
|
+
for (const context of overlay.contexts) {
|
|
154
|
+
const contextPath = path.join(overlaysPath, 'roles', roleName, context.category, context.name + '.md');
|
|
155
|
+
files.set(contextPath, context.content);
|
|
156
|
+
directories.push(path.dirname(contextPath));
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
/**
|
|
161
|
+
* Copy tasks to deployment
|
|
162
|
+
*/
|
|
163
|
+
async copyTasks(role, files, directories) {
|
|
164
|
+
const docsPath = this.resolvePath(this.bindingConfig.output_structure.docs_path, role);
|
|
165
|
+
const tasksPath = path.join(docsPath, 'tasks');
|
|
166
|
+
for (const task of role.tasks.values()) {
|
|
167
|
+
const taskPath = path.join(tasksPath, task.name + '.md');
|
|
168
|
+
files.set(taskPath, task.content);
|
|
169
|
+
directories.push(path.dirname(taskPath));
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
/**
|
|
173
|
+
* Copy flows to deployment
|
|
174
|
+
*/
|
|
175
|
+
async copyFlows(role, files, directories) {
|
|
176
|
+
const docsPath = this.resolvePath(this.bindingConfig.output_structure.docs_path, role);
|
|
177
|
+
const flowsPath = path.join(docsPath, 'flows');
|
|
178
|
+
for (const flow of role.flows.values()) {
|
|
179
|
+
const flowPath = path.join(flowsPath, flow.name + '.md');
|
|
180
|
+
files.set(flowPath, flow.content);
|
|
181
|
+
directories.push(path.dirname(flowPath));
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
/**
|
|
185
|
+
* Load binding configuration
|
|
186
|
+
*/
|
|
187
|
+
loadBindingConfig(configPath) {
|
|
188
|
+
try {
|
|
189
|
+
const content = require('fs').readFileSync(configPath, 'utf-8');
|
|
190
|
+
return yaml.load(content);
|
|
191
|
+
}
|
|
192
|
+
catch (error) {
|
|
193
|
+
throw new Error(`Failed to load binding config: ${error}`);
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
/**
|
|
197
|
+
* Load Handlebars templates
|
|
198
|
+
*/
|
|
199
|
+
loadTemplates() {
|
|
200
|
+
if (this.bindingConfig.templates?.role_frontmatter) {
|
|
201
|
+
const templatePath = path.join(__dirname, this.bindingConfig.templates.role_frontmatter);
|
|
202
|
+
const templateContent = require('fs').readFileSync(templatePath, 'utf-8');
|
|
203
|
+
this.templates.frontmatter = Handlebars.compile(templateContent);
|
|
204
|
+
}
|
|
205
|
+
if (this.bindingConfig.templates?.role_body) {
|
|
206
|
+
const templatePath = path.join(__dirname, this.bindingConfig.templates.role_body);
|
|
207
|
+
const templateContent = require('fs').readFileSync(templatePath, 'utf-8');
|
|
208
|
+
this.templates.body = Handlebars.compile(templateContent);
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
/**
|
|
212
|
+
* Resolve path template
|
|
213
|
+
*/
|
|
214
|
+
resolvePath(template, role) {
|
|
215
|
+
return template
|
|
216
|
+
.replace('{org}', role.metadata.org)
|
|
217
|
+
.replace('{system}', role.metadata.system)
|
|
218
|
+
.replace('{name}', role.metadata.name);
|
|
219
|
+
}
|
|
220
|
+
/**
|
|
221
|
+
* Collect overlay contexts for template
|
|
222
|
+
*/
|
|
223
|
+
collectOverlayContexts(overlays) {
|
|
224
|
+
const contexts = [];
|
|
225
|
+
// Add organization contexts
|
|
226
|
+
for (const context of overlays.organization.contexts) {
|
|
227
|
+
contexts.push({
|
|
228
|
+
...context,
|
|
229
|
+
path: `/.faber/overlays/organization/contexts/${context.category}/${context.name}.md`
|
|
230
|
+
});
|
|
231
|
+
}
|
|
232
|
+
// Add platform contexts
|
|
233
|
+
for (const [platform, overlay] of Object.entries(overlays.platforms)) {
|
|
234
|
+
for (const context of overlay.contexts) {
|
|
235
|
+
contexts.push({
|
|
236
|
+
...context,
|
|
237
|
+
path: `/.faber/overlays/platforms/${platform}/contexts/${context.category}/${context.name}.md`
|
|
238
|
+
});
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
// Add role contexts
|
|
242
|
+
for (const [roleName, overlay] of Object.entries(overlays.roles)) {
|
|
243
|
+
for (const context of overlay.contexts) {
|
|
244
|
+
contexts.push({
|
|
245
|
+
...context,
|
|
246
|
+
path: `/.faber/overlays/roles/${roleName}/contexts/${context.category}/${context.name}.md`
|
|
247
|
+
});
|
|
248
|
+
}
|
|
249
|
+
}
|
|
250
|
+
return contexts;
|
|
251
|
+
}
|
|
252
|
+
/**
|
|
253
|
+
* Get MCP servers used by role
|
|
254
|
+
*/
|
|
255
|
+
getMCPServers(role, config) {
|
|
256
|
+
const servers = {};
|
|
257
|
+
// Check platform contexts for MCP server references
|
|
258
|
+
for (const context of role.contexts.values()) {
|
|
259
|
+
if (context.metadata?.mcp_server) {
|
|
260
|
+
const serverName = context.metadata.mcp_server;
|
|
261
|
+
const serverConfig = config.mcp_servers?.[serverName];
|
|
262
|
+
if (serverConfig) {
|
|
263
|
+
servers[serverName] = serverConfig;
|
|
264
|
+
}
|
|
265
|
+
}
|
|
266
|
+
}
|
|
267
|
+
return Object.keys(servers).length > 0 ? servers : null;
|
|
268
|
+
}
|
|
269
|
+
}
|
|
270
|
+
exports.ClaudeCodeTransformer = ClaudeCodeTransformer;
|
|
271
|
+
//# sourceMappingURL=transformer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transformer.js","sourceRoot":"","sources":["../../../src/bindings/claude-code/transformer.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Binding system exports
|
|
3
|
+
*/
|
|
4
|
+
export { ClaudeCodeTransformer } from './claude-code/transformer';
|
|
5
|
+
import { ConceptType, DeploymentArtifact, Config } from '../types';
|
|
6
|
+
import { Overlays } from '../core/overlays';
|
|
7
|
+
export interface Binding {
|
|
8
|
+
name: string;
|
|
9
|
+
version: string;
|
|
10
|
+
supportedConcepts: ConceptType[];
|
|
11
|
+
transform(concept: any, config: Config, overlays: Overlays): Promise<DeploymentArtifact>;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Create binding transformer for framework
|
|
15
|
+
*/
|
|
16
|
+
export declare function createBinding(framework: string): Binding;
|
|
17
|
+
/**
|
|
18
|
+
* Check if binding supports concept type
|
|
19
|
+
*/
|
|
20
|
+
export declare function bindingSupportsConceptType(binding: Binding, conceptType: ConceptType): boolean;
|
|
21
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/bindings/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAElE,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,EAAQ,MAAM,UAAU,CAAC;AAEzE,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAE5C,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,iBAAiB,EAAE,WAAW,EAAE,CAAC;IAEjC,SAAS,CAAC,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAC;CAC1F;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAuBxD;AAED;;GAEG;AACH,wBAAgB,0BAA0B,CACxC,OAAO,EAAE,OAAO,EAChB,WAAW,EAAE,WAAW,GACvB,OAAO,CAET"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Binding system exports
|
|
4
|
+
*/
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.ClaudeCodeTransformer = void 0;
|
|
7
|
+
exports.createBinding = createBinding;
|
|
8
|
+
exports.bindingSupportsConceptType = bindingSupportsConceptType;
|
|
9
|
+
var transformer_1 = require("./claude-code/transformer");
|
|
10
|
+
Object.defineProperty(exports, "ClaudeCodeTransformer", { enumerable: true, get: function () { return transformer_1.ClaudeCodeTransformer; } });
|
|
11
|
+
const types_1 = require("../types");
|
|
12
|
+
const transformer_2 = require("./claude-code/transformer");
|
|
13
|
+
/**
|
|
14
|
+
* Create binding transformer for framework
|
|
15
|
+
*/
|
|
16
|
+
function createBinding(framework) {
|
|
17
|
+
switch (framework) {
|
|
18
|
+
case 'claude':
|
|
19
|
+
case 'claude-code':
|
|
20
|
+
return {
|
|
21
|
+
name: 'claude-code',
|
|
22
|
+
version: '1.0.0',
|
|
23
|
+
supportedConcepts: [types_1.ConceptType.ROLE, types_1.ConceptType.TOOL, types_1.ConceptType.EVAL],
|
|
24
|
+
transform: async (concept, config, overlays) => {
|
|
25
|
+
const transformer = new transformer_2.ClaudeCodeTransformer();
|
|
26
|
+
return transformer.transform(concept, config, overlays);
|
|
27
|
+
}
|
|
28
|
+
};
|
|
29
|
+
case 'langgraph':
|
|
30
|
+
throw new Error('LangGraph binding not yet implemented');
|
|
31
|
+
case 'crewai':
|
|
32
|
+
throw new Error('CrewAI binding not yet implemented');
|
|
33
|
+
default:
|
|
34
|
+
throw new Error(`Unknown binding framework: ${framework}`);
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Check if binding supports concept type
|
|
39
|
+
*/
|
|
40
|
+
function bindingSupportsConceptType(binding, conceptType) {
|
|
41
|
+
return binding.supportedConcepts.includes(conceptType);
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/bindings/index.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAmBH,sCAuBC;AAKD,gEAKC;AAlDD,yDAAkE;AAAzD,oHAAA,qBAAqB,OAAA;AAE9B,oCAAyE;AACzE,2DAAkE;AAWlE;;GAEG;AACH,SAAgB,aAAa,CAAC,SAAiB;IAC7C,QAAQ,SAAS,EAAE,CAAC;QAClB,KAAK,QAAQ,CAAC;QACd,KAAK,aAAa;YAChB,OAAO;gBACL,IAAI,EAAE,aAAa;gBACnB,OAAO,EAAE,OAAO;gBAChB,iBAAiB,EAAE,CAAC,mBAAW,CAAC,IAAI,EAAE,mBAAW,CAAC,IAAI,EAAE,mBAAW,CAAC,IAAI,CAAC;gBACzE,SAAS,EAAE,KAAK,EAAE,OAAa,EAAE,MAAc,EAAE,QAAkB,EAAE,EAAE;oBACrE,MAAM,WAAW,GAAG,IAAI,mCAAqB,EAAE,CAAC;oBAChD,OAAO,WAAW,CAAC,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;gBAC1D,CAAC;aACF,CAAC;QAEJ,KAAK,WAAW;YACd,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;QAE3D,KAAK,QAAQ;YACX,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;QAExD;YACE,MAAM,IAAI,KAAK,CAAC,8BAA8B,SAAS,EAAE,CAAC,CAAC;IAC/D,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAgB,0BAA0B,CACxC,OAAgB,EAChB,WAAwB;IAExB,OAAO,OAAO,CAAC,iBAAiB,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;AACzD,CAAC"}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Base concept loader and validator
|
|
3
|
+
*/
|
|
4
|
+
import { z } from 'zod';
|
|
5
|
+
import { Concept, ConceptType, ConceptMetadata, ValidationResult, ValidationError, ConceptReference } from '../../types';
|
|
6
|
+
export declare const BaseMetadataSchema: z.ZodObject<{
|
|
7
|
+
org: z.ZodString;
|
|
8
|
+
system: z.ZodString;
|
|
9
|
+
name: z.ZodString;
|
|
10
|
+
type: z.ZodNativeEnum<typeof ConceptType>;
|
|
11
|
+
description: z.ZodString;
|
|
12
|
+
created: z.ZodOptional<z.ZodString>;
|
|
13
|
+
updated: z.ZodOptional<z.ZodString>;
|
|
14
|
+
visibility: z.ZodOptional<z.ZodEnum<["public", "internal", "private"]>>;
|
|
15
|
+
tags: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
16
|
+
}, "strip", z.ZodTypeAny, {
|
|
17
|
+
name?: string;
|
|
18
|
+
description?: string;
|
|
19
|
+
org?: string;
|
|
20
|
+
system?: string;
|
|
21
|
+
type?: ConceptType;
|
|
22
|
+
created?: string;
|
|
23
|
+
updated?: string;
|
|
24
|
+
visibility?: "public" | "internal" | "private";
|
|
25
|
+
tags?: string[];
|
|
26
|
+
}, {
|
|
27
|
+
name?: string;
|
|
28
|
+
description?: string;
|
|
29
|
+
org?: string;
|
|
30
|
+
system?: string;
|
|
31
|
+
type?: ConceptType;
|
|
32
|
+
created?: string;
|
|
33
|
+
updated?: string;
|
|
34
|
+
visibility?: "public" | "internal" | "private";
|
|
35
|
+
tags?: string[];
|
|
36
|
+
}>;
|
|
37
|
+
export declare abstract class BaseConceptLoader<T extends Concept> {
|
|
38
|
+
protected conceptType: ConceptType;
|
|
39
|
+
constructor(conceptType: ConceptType);
|
|
40
|
+
/**
|
|
41
|
+
* Load a concept from disk
|
|
42
|
+
*/
|
|
43
|
+
load(conceptPath: string): Promise<T>;
|
|
44
|
+
/**
|
|
45
|
+
* Validate a concept
|
|
46
|
+
*/
|
|
47
|
+
validate(concept: T): Promise<ValidationResult>;
|
|
48
|
+
/**
|
|
49
|
+
* Load metadata file (agent.yml, tool.yml, etc.)
|
|
50
|
+
*/
|
|
51
|
+
protected loadMetadata(conceptPath: string): Promise<ConceptMetadata>;
|
|
52
|
+
/**
|
|
53
|
+
* Validate metadata against schema
|
|
54
|
+
*/
|
|
55
|
+
protected validateMetadata(metadata: ConceptMetadata): Promise<ValidationError[]>;
|
|
56
|
+
/**
|
|
57
|
+
* Check if file exists
|
|
58
|
+
*/
|
|
59
|
+
protected fileExists(filePath: string): Promise<boolean>;
|
|
60
|
+
/**
|
|
61
|
+
* Read file content
|
|
62
|
+
*/
|
|
63
|
+
protected readFile(filePath: string): Promise<string>;
|
|
64
|
+
/**
|
|
65
|
+
* List files in directory
|
|
66
|
+
*/
|
|
67
|
+
protected listFiles(dirPath: string, extension?: string): Promise<string[]>;
|
|
68
|
+
/**
|
|
69
|
+
* Parse frontmatter from markdown
|
|
70
|
+
*/
|
|
71
|
+
protected parseFrontmatter(content: string): {
|
|
72
|
+
metadata?: Record<string, unknown>;
|
|
73
|
+
body: string;
|
|
74
|
+
};
|
|
75
|
+
protected abstract getMetadataSchema(): z.ZodSchema;
|
|
76
|
+
protected abstract loadConceptContent(conceptPath: string, metadata: ConceptMetadata): Promise<T>;
|
|
77
|
+
protected abstract validateSpecific(concept: T): Promise<ValidationError[]>;
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Concept reference implementation
|
|
81
|
+
*/
|
|
82
|
+
export declare class ConceptReferenceImpl implements ConceptReference {
|
|
83
|
+
type: ConceptType;
|
|
84
|
+
name: string;
|
|
85
|
+
constructor(type: ConceptType, name: string);
|
|
86
|
+
toString(): string;
|
|
87
|
+
static parse(ref: string): ConceptReferenceImpl;
|
|
88
|
+
}
|
|
89
|
+
//# sourceMappingURL=base.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../../src/core/concepts/base.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EACL,OAAO,EACP,WAAW,EACX,eAAe,EACf,gBAAgB,EAChB,eAAe,EACf,gBAAgB,EACjB,MAAM,aAAa,CAAC;AAGrB,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAU7B,CAAC;AAEH,8BAAsB,iBAAiB,CAAC,CAAC,SAAS,OAAO;IACvD,SAAS,CAAC,WAAW,EAAE,WAAW,CAAC;gBAEvB,WAAW,EAAE,WAAW;IAIpC;;OAEG;IACG,IAAI,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC;IAqB3C;;OAEG;IACG,QAAQ,CAAC,OAAO,EAAE,CAAC,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAmBrD;;OAEG;cACa,YAAY,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC;IAmC3E;;OAEG;cACa,gBAAgB,CAAC,QAAQ,EAAE,eAAe,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;IAqBvF;;OAEG;cACa,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAS9D;;OAEG;cACa,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAI3D;;OAEG;cACa,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAYjF;;OAEG;IACH,SAAS,CAAC,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE;IAiBjG,SAAS,CAAC,QAAQ,CAAC,iBAAiB,IAAI,CAAC,CAAC,SAAS;IACnD,SAAS,CAAC,QAAQ,CAAC,kBAAkB,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,eAAe,GAAG,OAAO,CAAC,CAAC,CAAC;IACjG,SAAS,CAAC,QAAQ,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;CAC5E;AAED;;GAEG;AACH,qBAAa,oBAAqB,YAAW,gBAAgB;IAElD,IAAI,EAAE,WAAW;IACjB,IAAI,EAAE,MAAM;gBADZ,IAAI,EAAE,WAAW,EACjB,IAAI,EAAE,MAAM;IAGrB,QAAQ,IAAI,MAAM;IAIlB,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,oBAAoB;CAYhD"}
|