@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.
Files changed (107) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +146 -0
  3. package/dist/api.d.ts +81 -0
  4. package/dist/api.d.ts.map +1 -0
  5. package/dist/api.js +261 -0
  6. package/dist/api.js.map +1 -0
  7. package/dist/bindings/claude-code/transformer.d.ts +55 -0
  8. package/dist/bindings/claude-code/transformer.d.ts.map +1 -0
  9. package/dist/bindings/claude-code/transformer.js +271 -0
  10. package/dist/bindings/claude-code/transformer.js.map +1 -0
  11. package/dist/bindings/index.d.ts +21 -0
  12. package/dist/bindings/index.d.ts.map +1 -0
  13. package/dist/bindings/index.js +43 -0
  14. package/dist/bindings/index.js.map +1 -0
  15. package/dist/core/concepts/base.d.ts +89 -0
  16. package/dist/core/concepts/base.d.ts.map +1 -0
  17. package/dist/core/concepts/base.js +230 -0
  18. package/dist/core/concepts/base.js.map +1 -0
  19. package/dist/core/concepts/eval.d.ts +90 -0
  20. package/dist/core/concepts/eval.d.ts.map +1 -0
  21. package/dist/core/concepts/eval.js +118 -0
  22. package/dist/core/concepts/eval.js.map +1 -0
  23. package/dist/core/concepts/index.d.ts +9 -0
  24. package/dist/core/concepts/index.d.ts.map +1 -0
  25. package/dist/core/concepts/index.js +36 -0
  26. package/dist/core/concepts/index.js.map +1 -0
  27. package/dist/core/concepts/role.d.ts +19 -0
  28. package/dist/core/concepts/role.d.ts.map +1 -0
  29. package/dist/core/concepts/role.js +227 -0
  30. package/dist/core/concepts/role.js.map +1 -0
  31. package/dist/core/concepts/team.d.ts +57 -0
  32. package/dist/core/concepts/team.d.ts.map +1 -0
  33. package/dist/core/concepts/team.js +106 -0
  34. package/dist/core/concepts/team.js.map +1 -0
  35. package/dist/core/concepts/tool.d.ts +43 -0
  36. package/dist/core/concepts/tool.d.ts.map +1 -0
  37. package/dist/core/concepts/tool.js +104 -0
  38. package/dist/core/concepts/tool.js.map +1 -0
  39. package/dist/core/concepts/workflow.d.ts +87 -0
  40. package/dist/core/concepts/workflow.d.ts.map +1 -0
  41. package/dist/core/concepts/workflow.js +114 -0
  42. package/dist/core/concepts/workflow.js.map +1 -0
  43. package/dist/core/config/index.d.ts +34 -0
  44. package/dist/core/config/index.d.ts.map +1 -0
  45. package/dist/core/config/index.js +80 -0
  46. package/dist/core/config/index.js.map +1 -0
  47. package/dist/core/config/loader.d.ts +53 -0
  48. package/dist/core/config/loader.d.ts.map +1 -0
  49. package/dist/core/config/loader.js +234 -0
  50. package/dist/core/config/loader.js.map +1 -0
  51. package/dist/core/contexts/index.d.ts +36 -0
  52. package/dist/core/contexts/index.d.ts.map +1 -0
  53. package/dist/core/contexts/index.js +75 -0
  54. package/dist/core/contexts/index.js.map +1 -0
  55. package/dist/core/contexts/loader.d.ts +66 -0
  56. package/dist/core/contexts/loader.d.ts.map +1 -0
  57. package/dist/core/contexts/loader.js +261 -0
  58. package/dist/core/contexts/loader.js.map +1 -0
  59. package/dist/core/overlays/index.d.ts +31 -0
  60. package/dist/core/overlays/index.d.ts.map +1 -0
  61. package/dist/core/overlays/index.js +82 -0
  62. package/dist/core/overlays/index.js.map +1 -0
  63. package/dist/core/overlays/resolver.d.ts +65 -0
  64. package/dist/core/overlays/resolver.d.ts.map +1 -0
  65. package/dist/core/overlays/resolver.js +249 -0
  66. package/dist/core/overlays/resolver.js.map +1 -0
  67. package/dist/index.d.ts +20 -0
  68. package/dist/index.d.ts.map +1 -0
  69. package/dist/index.js +56 -0
  70. package/dist/index.js.map +1 -0
  71. package/dist/types/bindings.d.ts +59 -0
  72. package/dist/types/bindings.d.ts.map +1 -0
  73. package/dist/types/bindings.js +6 -0
  74. package/dist/types/bindings.js.map +1 -0
  75. package/dist/types/concepts.d.ts +131 -0
  76. package/dist/types/concepts.d.ts.map +1 -0
  77. package/dist/types/concepts.js +29 -0
  78. package/dist/types/concepts.js.map +1 -0
  79. package/dist/types/config.d.ts +42 -0
  80. package/dist/types/config.d.ts.map +1 -0
  81. package/dist/types/config.js +6 -0
  82. package/dist/types/config.js.map +1 -0
  83. package/dist/types/contexts.d.ts +59 -0
  84. package/dist/types/contexts.d.ts.map +1 -0
  85. package/dist/types/contexts.js +17 -0
  86. package/dist/types/contexts.js.map +1 -0
  87. package/dist/types/index.d.ts +17 -0
  88. package/dist/types/index.d.ts.map +1 -0
  89. package/dist/types/index.js +30 -0
  90. package/dist/types/index.js.map +1 -0
  91. package/dist/types/overlays.d.ts +28 -0
  92. package/dist/types/overlays.d.ts.map +1 -0
  93. package/dist/types/overlays.js +15 -0
  94. package/dist/types/overlays.js.map +1 -0
  95. package/dist/utils/file-system.d.ts +40 -0
  96. package/dist/utils/file-system.d.ts.map +1 -0
  97. package/dist/utils/file-system.js +105 -0
  98. package/dist/utils/file-system.js.map +1 -0
  99. package/dist/utils/template.d.ts +28 -0
  100. package/dist/utils/template.d.ts.map +1 -0
  101. package/dist/utils/template.js +107 -0
  102. package/dist/utils/template.js.map +1 -0
  103. package/dist/utils/validation.d.ts +42 -0
  104. package/dist/utils/validation.d.ts.map +1 -0
  105. package/dist/utils/validation.js +94 -0
  106. package/dist/utils/validation.js.map +1 -0
  107. package/package.json +83 -0
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2024 Fractary Team
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,146 @@
1
+ # Faber
2
+
3
+ > Universal AI Agent Orchestration Framework - Core SDK
4
+
5
+ [![MIT License](https://img.shields.io/badge/license-MIT-blue.svg)](LICENSE)
6
+ [![Node.js Version](https://img.shields.io/badge/node-%3E%3D18.0.0-brightgreen)](package.json)
7
+ [![TypeScript](https://img.shields.io/badge/typescript-5.3.3-blue)](https://www.typescriptlang.org/)
8
+
9
+ ## Overview
10
+
11
+ Faber is the core SDK for building universal AI agents that can be deployed across multiple AI frameworks (Claude Code, LangGraph, CrewAI, etc.) and adapted to different platforms and organizational contexts.
12
+
13
+ This is the **core framework package**. For the CLI tool, see [@fractary/faber-cli](https://www.npmjs.com/package/@fractary/faber-cli).
14
+
15
+ ## Installation
16
+
17
+ ```bash
18
+ npm install @fractary/faber
19
+ ```
20
+
21
+ ## Programmatic Usage
22
+
23
+ ```typescript
24
+ import { FaberAPI, RoleLoader } from '@fractary/faber';
25
+
26
+ // Initialize API
27
+ const api = new FaberAPI({
28
+ projectPath: './my-agents'
29
+ });
30
+
31
+ // Load and build an agent
32
+ const result = await api.build('claude', 'role', 'issue-manager', {
33
+ output: './deployments/claude',
34
+ platform: 'github-issues'
35
+ });
36
+
37
+ console.log('Built agent:', result.files);
38
+ ```
39
+
40
+ ## Core Features
41
+
42
+ - **Concept System** - Roles, Teams, Tools, Workflows, Evals
43
+ - **Context System** - 7 categories of dynamic knowledge loading
44
+ - **Overlay System** - Customization without forking
45
+ - **Binding Framework** - Transform to any AI framework
46
+ - **Configuration Management** - Flexible config system
47
+ - **TypeScript First** - Full type safety
48
+
49
+ ## API Reference
50
+
51
+ ### FaberAPI
52
+
53
+ Main programmatic interface:
54
+
55
+ ```typescript
56
+ class FaberAPI {
57
+ // Initialize a new Faber project
58
+ async init(options: InitOptions): Promise<void>
59
+
60
+ // Create new concepts
61
+ async create(type: ConceptType, name: string, options: CreateOptions): Promise<void>
62
+
63
+ // List available concepts
64
+ async list(type?: ConceptType, filter?: ListFilter): Promise<ConceptInfo[]>
65
+
66
+ // Validate a concept
67
+ async validate(type: ConceptType, name: string): Promise<ValidationResult>
68
+
69
+ // Build/transform for a framework
70
+ async build(binding: string, type: ConceptType, name: string, options: BuildOptions): Promise<DeploymentArtifact>
71
+
72
+ // Load configuration
73
+ async loadConfig(): Promise<Config>
74
+
75
+ // Apply overlays
76
+ async applyOverlays(concept: Concept, overlays: Overlays): Promise<Concept>
77
+ }
78
+ ```
79
+
80
+ ### Concept Loaders
81
+
82
+ Direct access to loaders:
83
+
84
+ ```typescript
85
+ import { RoleLoader, TeamLoader, ToolLoader } from '@fractary/faber/loaders';
86
+
87
+ const loader = new RoleLoader();
88
+ const role = await loader.load('./roles/my-agent');
89
+ const validation = await loader.validate(role);
90
+ ```
91
+
92
+ ### Bindings
93
+
94
+ Create custom framework bindings:
95
+
96
+ ```typescript
97
+ import { BindingTransformer, DeploymentArtifact } from '@fractary/faber/bindings';
98
+
99
+ class MyCustomBinding implements BindingTransformer {
100
+ async transform(concept: Concept, config: Config, overlays?: Overlays): Promise<DeploymentArtifact> {
101
+ // Custom transformation logic
102
+ }
103
+
104
+ async validate(concept: Concept): Promise<ValidationResult> {
105
+ // Validation logic
106
+ }
107
+
108
+ getRequirements(): BindingRequirements {
109
+ return {
110
+ supportedConcepts: [ConceptType.ROLE, ConceptType.TEAM]
111
+ };
112
+ }
113
+ }
114
+ ```
115
+
116
+ ## Documentation
117
+
118
+ - [Core Concepts](https://github.com/fractary/faber-cli/blob/main/docs/concepts.md)
119
+ - [Context System](https://github.com/fractary/faber-cli/blob/main/docs/contexts.md)
120
+ - [Overlay System](https://github.com/fractary/faber-cli/blob/main/docs/overlays.md)
121
+ - [Binding System](https://github.com/fractary/faber-cli/blob/main/docs/bindings.md)
122
+ - [API Reference](https://github.com/fractary/faber-cli/blob/main/docs/api.md)
123
+
124
+ ## CLI Tool
125
+
126
+ For command-line usage, install the CLI package:
127
+
128
+ ```bash
129
+ npm install -g @fractary/faber-cli
130
+ ```
131
+
132
+ See [@fractary/faber-cli](https://www.npmjs.com/package/@fractary/faber-cli) for CLI documentation.
133
+
134
+ ## Contributing
135
+
136
+ See [Contributing Guide](https://github.com/fractary/faber-cli/blob/main/docs/contributing.md).
137
+
138
+ ## License
139
+
140
+ MIT - see [LICENSE](LICENSE) file for details.
141
+
142
+ ---
143
+
144
+ **Part of the Faber Ecosystem**
145
+ - [@fractary/faber](https://www.npmjs.com/package/@fractary/faber) - Core SDK (this package)
146
+ - [@fractary/faber-cli](https://www.npmjs.com/package/@fractary/faber-cli) - CLI tool
package/dist/api.d.ts ADDED
@@ -0,0 +1,81 @@
1
+ /**
2
+ * Faber-CLI Programmatic API
3
+ */
4
+ import { EventEmitter } from 'events';
5
+ import { Config, ConceptType, ValidationResult, Concept } from './types';
6
+ import { Overlays } from './core/overlays/resolver';
7
+ import { ConceptInfo, DeploymentArtifact } from './types';
8
+ export interface FaberOptions {
9
+ projectPath?: string;
10
+ configPath?: string;
11
+ verbose?: boolean;
12
+ quiet?: boolean;
13
+ }
14
+ export interface CreateOptions {
15
+ org?: string;
16
+ system?: string;
17
+ platforms?: string[];
18
+ description?: string;
19
+ members?: string[];
20
+ type?: string;
21
+ target?: string;
22
+ }
23
+ export interface BuildOptions {
24
+ output?: string;
25
+ noOverlays?: boolean;
26
+ platform?: string;
27
+ dryRun?: boolean;
28
+ verbose?: boolean;
29
+ }
30
+ export declare class FaberAPI extends EventEmitter {
31
+ private projectPath;
32
+ private configPath;
33
+ private config;
34
+ private configLoader;
35
+ constructor(options?: FaberOptions);
36
+ /**
37
+ * Initialize a new Faber project
38
+ */
39
+ init(template?: string): Promise<void>;
40
+ /**
41
+ * Get project configuration
42
+ */
43
+ getConfig(): Promise<Config>;
44
+ /**
45
+ * Set configuration value
46
+ */
47
+ setConfig(key: string, value: any): Promise<void>;
48
+ /**
49
+ * Create a new concept
50
+ */
51
+ createConcept(type: ConceptType, name: string, options?: CreateOptions): Promise<void>;
52
+ /**
53
+ * Load a concept
54
+ */
55
+ loadConcept<T extends Concept>(type: ConceptType, name: string): Promise<T>;
56
+ /**
57
+ * List concepts
58
+ */
59
+ listConcepts(type?: ConceptType): Promise<ConceptInfo[]>;
60
+ /**
61
+ * Validate a concept
62
+ */
63
+ validateConcept(type: ConceptType, name: string): Promise<ValidationResult>;
64
+ /**
65
+ * Build a deployment
66
+ */
67
+ build(framework: string, concept: Concept, options?: BuildOptions): Promise<DeploymentArtifact>;
68
+ /**
69
+ * Deploy an artifact
70
+ */
71
+ deploy(artifact: DeploymentArtifact, target: string): Promise<void>;
72
+ /**
73
+ * Resolve overlays
74
+ */
75
+ resolveOverlays(type: string, name: string, platform?: string): Promise<Overlays>;
76
+ /**
77
+ * Apply overlays to concept
78
+ */
79
+ applyOverlays(concept: Concept, overlays: Overlays): Promise<Concept>;
80
+ }
81
+ //# sourceMappingURL=api.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAEtC,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,gBAAgB,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAOzE,OAAO,EAAmB,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAGrE,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAE1D,MAAM,WAAW,YAAY;IAC3B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,aAAa;IAC5B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,YAAY;IAC3B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,qBAAa,QAAS,SAAQ,YAAY;IACxC,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,MAAM,CAAuB;IACrC,OAAO,CAAC,YAAY,CAAe;gBAEvB,OAAO,GAAE,YAAiB;IAOtC;;OAEG;IACG,IAAI,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA2C5C;;OAEG;IACG,SAAS,IAAI,OAAO,CAAC,MAAM,CAAC;IAOlC;;OAEG;IACG,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;IAoBvD;;OAEG;IACG,aAAa,CAAC,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,GAAE,aAAkB,GAAG,OAAO,CAAC,IAAI,CAAC;IA2ChG;;OAEG;IACG,WAAW,CAAC,CAAC,SAAS,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC;IA6BjF;;OAEG;IACG,YAAY,CAAC,IAAI,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IAY9D;;OAEG;IACG,eAAe,CAAC,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC;IA6BjF;;OAEG;IACG,KAAK,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,GAAE,YAAiB,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAuCzG;;OAEG;IACG,MAAM,CAAC,QAAQ,EAAE,kBAAkB,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAYzE;;OAEG;IACG,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC;IAKvF;;OAEG;IACG,aAAa,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC;CAK5E"}
package/dist/api.js ADDED
@@ -0,0 +1,261 @@
1
+ "use strict";
2
+ /**
3
+ * Faber-CLI Programmatic API
4
+ */
5
+ var __importDefault = (this && this.__importDefault) || function (mod) {
6
+ return (mod && mod.__esModule) ? mod : { "default": mod };
7
+ };
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.FaberAPI = void 0;
10
+ const events_1 = require("events");
11
+ const path_1 = __importDefault(require("path"));
12
+ const types_1 = require("./types");
13
+ const loader_1 = require("./core/config/loader");
14
+ const role_1 = require("./core/concepts/role");
15
+ const team_1 = require("./core/concepts/team");
16
+ const workflow_1 = require("./core/concepts/workflow");
17
+ const tool_1 = require("./core/concepts/tool");
18
+ const eval_1 = require("./core/concepts/eval");
19
+ const resolver_1 = require("./core/overlays/resolver");
20
+ const transformer_1 = require("./bindings/claude-code/transformer");
21
+ const file_system_1 = require("./utils/file-system");
22
+ class FaberAPI extends events_1.EventEmitter {
23
+ constructor(options = {}) {
24
+ super();
25
+ this.config = null;
26
+ this.projectPath = options.projectPath || process.cwd();
27
+ this.configPath = options.configPath || path_1.default.join(this.projectPath, '.faber', 'config.yml');
28
+ this.configLoader = new loader_1.ConfigLoader();
29
+ }
30
+ /**
31
+ * Initialize a new Faber project
32
+ */
33
+ async init(template) {
34
+ // Create project structure
35
+ const dirs = [
36
+ '.faber/overlays/organization',
37
+ '.faber/overlays/platforms',
38
+ '.faber/overlays/roles',
39
+ '.faber/overlays/teams',
40
+ '.faber/overlays/workflows',
41
+ 'roles',
42
+ 'tools',
43
+ 'teams',
44
+ 'workflows',
45
+ 'evals',
46
+ 'deployments'
47
+ ];
48
+ for (const dir of dirs) {
49
+ await (0, file_system_1.ensureDirectoryExists)(path_1.default.join(this.projectPath, dir));
50
+ }
51
+ // Create default config
52
+ const defaultConfig = {
53
+ platforms: {},
54
+ mcp_servers: {},
55
+ overlays: {
56
+ enabled: true,
57
+ paths: ['.faber/overlays']
58
+ },
59
+ bindings: {
60
+ claude: {
61
+ auto_activate: true
62
+ }
63
+ }
64
+ };
65
+ await (0, file_system_1.writeFile)(this.configPath, `# Faber-CLI Configuration\n\n${JSON.stringify(defaultConfig, null, 2)}`);
66
+ this.emit('init', { projectPath: this.projectPath, template });
67
+ }
68
+ /**
69
+ * Get project configuration
70
+ */
71
+ async getConfig() {
72
+ if (!this.config) {
73
+ this.config = await this.configLoader.load(this.configPath);
74
+ }
75
+ return this.config;
76
+ }
77
+ /**
78
+ * Set configuration value
79
+ */
80
+ async setConfig(key, value) {
81
+ const config = await this.getConfig();
82
+ const keys = key.split('.');
83
+ let obj = config;
84
+ for (let i = 0; i < keys.length - 1; i++) {
85
+ if (!(keys[i] in obj)) {
86
+ obj[keys[i]] = {};
87
+ }
88
+ obj = obj[keys[i]];
89
+ }
90
+ obj[keys[keys.length - 1]] = value;
91
+ await (0, file_system_1.writeFile)(this.configPath, JSON.stringify(config, null, 2));
92
+ this.config = config;
93
+ this.emit('config:set', { key, value });
94
+ }
95
+ /**
96
+ * Create a new concept
97
+ */
98
+ async createConcept(type, name, options = {}) {
99
+ const conceptPath = path_1.default.join(this.projectPath, `${type}s`, name);
100
+ await (0, file_system_1.ensureDirectoryExists)(conceptPath);
101
+ // Create metadata file based on type
102
+ const metadata = {
103
+ name,
104
+ description: options.description || `${type} ${name}`,
105
+ ...options
106
+ };
107
+ const metadataFile = type === types_1.ConceptType.ROLE ? 'agent.yml' :
108
+ type === types_1.ConceptType.TEAM ? 'team.yml' :
109
+ type === types_1.ConceptType.WORKFLOW ? 'workflow.yml' :
110
+ type === types_1.ConceptType.TOOL ? 'tool.yml' :
111
+ 'eval.yml';
112
+ await (0, file_system_1.writeFile)(path_1.default.join(conceptPath, metadataFile), `name: ${name}\n` +
113
+ `description: ${metadata.description}\n` +
114
+ (type === types_1.ConceptType.ROLE && options.platforms ?
115
+ `platforms:\n${options.platforms.map(p => ` - ${p}`).join('\n')}\n` : '') +
116
+ (type === types_1.ConceptType.TEAM && options.members ?
117
+ `members:\n${options.members.map(m => ` - role: ${m}`).join('\n')}\n` : ''));
118
+ // Create prompt.md for roles
119
+ if (type === types_1.ConceptType.ROLE) {
120
+ await (0, file_system_1.writeFile)(path_1.default.join(conceptPath, 'prompt.md'), `# ${name}\n\n${metadata.description}\n\n## Core Behavior\n\n[Define agent behavior here]`);
121
+ // Create subdirectories
122
+ for (const dir of ['tasks', 'flows', 'contexts']) {
123
+ await (0, file_system_1.ensureDirectoryExists)(path_1.default.join(conceptPath, dir));
124
+ }
125
+ }
126
+ this.emit('concept:created', { type, name, options });
127
+ }
128
+ /**
129
+ * Load a concept
130
+ */
131
+ async loadConcept(type, name) {
132
+ const conceptPath = path_1.default.join(this.projectPath, `${type}s`, name);
133
+ let loader;
134
+ switch (type) {
135
+ case types_1.ConceptType.ROLE:
136
+ loader = new role_1.RoleLoader();
137
+ break;
138
+ case types_1.ConceptType.TEAM:
139
+ loader = new team_1.TeamLoader();
140
+ break;
141
+ case types_1.ConceptType.WORKFLOW:
142
+ loader = new workflow_1.WorkflowLoader();
143
+ break;
144
+ case types_1.ConceptType.TOOL:
145
+ loader = new tool_1.ToolLoader();
146
+ break;
147
+ case types_1.ConceptType.EVAL:
148
+ loader = new eval_1.EvalLoader();
149
+ break;
150
+ default:
151
+ throw new Error(`Unknown concept type: ${type}`);
152
+ }
153
+ const concept = await loader.load(conceptPath);
154
+ this.emit('concept:loaded', { type, name, concept });
155
+ return concept;
156
+ }
157
+ /**
158
+ * List concepts
159
+ */
160
+ async listConcepts(type) {
161
+ const concepts = [];
162
+ const types = type ? [type] : Object.values(types_1.ConceptType);
163
+ for (const t of types) {
164
+ // Implementation would scan directories and load metadata
165
+ // For now, returning empty array
166
+ }
167
+ return concepts;
168
+ }
169
+ /**
170
+ * Validate a concept
171
+ */
172
+ async validateConcept(type, name) {
173
+ const concept = await this.loadConcept(type, name);
174
+ let loader;
175
+ switch (type) {
176
+ case types_1.ConceptType.ROLE:
177
+ loader = new role_1.RoleLoader();
178
+ break;
179
+ case types_1.ConceptType.TEAM:
180
+ loader = new team_1.TeamLoader();
181
+ break;
182
+ case types_1.ConceptType.WORKFLOW:
183
+ loader = new workflow_1.WorkflowLoader();
184
+ break;
185
+ case types_1.ConceptType.TOOL:
186
+ loader = new tool_1.ToolLoader();
187
+ break;
188
+ case types_1.ConceptType.EVAL:
189
+ loader = new eval_1.EvalLoader();
190
+ break;
191
+ default:
192
+ throw new Error(`Unknown concept type: ${type}`);
193
+ }
194
+ const result = await loader.validate(concept);
195
+ this.emit('concept:validated', { type, name, result });
196
+ return result;
197
+ }
198
+ /**
199
+ * Build a deployment
200
+ */
201
+ async build(framework, concept, options = {}) {
202
+ this.emit('build:start', { framework, concept: concept.name });
203
+ const config = await this.getConfig();
204
+ // Resolve overlays
205
+ const overlayResolver = new resolver_1.OverlayResolver(this.projectPath);
206
+ const overlays = options.noOverlays ?
207
+ {} :
208
+ await overlayResolver.resolveOverlays(concept.type, concept.name, options.platform);
209
+ // Get transformer
210
+ let transformer;
211
+ switch (framework) {
212
+ case 'claude':
213
+ transformer = new transformer_1.ClaudeCodeTransformer();
214
+ break;
215
+ default:
216
+ throw new Error(`Unknown framework: ${framework}`);
217
+ }
218
+ // Transform
219
+ const artifact = await transformer.transform(concept, config, overlays);
220
+ // Write files unless dry-run
221
+ if (!options.dryRun) {
222
+ const outputDir = options.output || path_1.default.join(this.projectPath, 'deployments', framework);
223
+ for (const file of artifact.files) {
224
+ const filePath = path_1.default.join(outputDir, file.path);
225
+ await (0, file_system_1.ensureDirectoryExists)(path_1.default.dirname(filePath));
226
+ await (0, file_system_1.writeFile)(filePath, file.content);
227
+ }
228
+ }
229
+ this.emit('build:complete', artifact);
230
+ return artifact;
231
+ }
232
+ /**
233
+ * Deploy an artifact
234
+ */
235
+ async deploy(artifact, target) {
236
+ this.emit('deploy:start', { artifact, target });
237
+ for (const file of artifact.files) {
238
+ const filePath = path_1.default.join(target, file.path);
239
+ await (0, file_system_1.ensureDirectoryExists)(path_1.default.dirname(filePath));
240
+ await (0, file_system_1.writeFile)(filePath, file.content);
241
+ }
242
+ this.emit('deploy:complete', { artifact, target });
243
+ }
244
+ /**
245
+ * Resolve overlays
246
+ */
247
+ async resolveOverlays(type, name, platform) {
248
+ const resolver = new resolver_1.OverlayResolver(this.projectPath);
249
+ return resolver.resolveOverlays(type, name, platform);
250
+ }
251
+ /**
252
+ * Apply overlays to concept
253
+ */
254
+ async applyOverlays(concept, overlays) {
255
+ // Deep merge logic would go here
256
+ // For now, returning original concept
257
+ return concept;
258
+ }
259
+ }
260
+ exports.FaberAPI = FaberAPI;
261
+ //# sourceMappingURL=api.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api.js","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,55 @@
1
+ /**
2
+ * Claude Code binding transformer
3
+ */
4
+ import { Role, Config, DeploymentArtifact } from '../../types';
5
+ import { Overlays } from '../../core/overlays';
6
+ export declare class ClaudeCodeTransformer {
7
+ private bindingConfig;
8
+ private templates;
9
+ constructor(bindingConfigPath?: string);
10
+ /**
11
+ * Transform role to Claude Code deployment
12
+ */
13
+ transform(role: Role, config: Config, overlays: Overlays): Promise<DeploymentArtifact>;
14
+ /**
15
+ * Generate agent file content
16
+ */
17
+ private generateAgentFile;
18
+ /**
19
+ * Copy contexts to deployment
20
+ */
21
+ private copyContexts;
22
+ /**
23
+ * Copy overlay contexts to deployment
24
+ */
25
+ private copyOverlayContexts;
26
+ /**
27
+ * Copy tasks to deployment
28
+ */
29
+ private copyTasks;
30
+ /**
31
+ * Copy flows to deployment
32
+ */
33
+ private copyFlows;
34
+ /**
35
+ * Load binding configuration
36
+ */
37
+ private loadBindingConfig;
38
+ /**
39
+ * Load Handlebars templates
40
+ */
41
+ private loadTemplates;
42
+ /**
43
+ * Resolve path template
44
+ */
45
+ private resolvePath;
46
+ /**
47
+ * Collect overlay contexts for template
48
+ */
49
+ private collectOverlayContexts;
50
+ /**
51
+ * Get MCP servers used by role
52
+ */
53
+ private getMCPServers;
54
+ }
55
+ //# sourceMappingURL=transformer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transformer.d.ts","sourceRoot":"","sources":["../../../src/bindings/claude-code/transformer.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH,OAAO,EACL,IAAI,EACJ,MAAM,EACN,kBAAkB,EAKnB,MAAM,aAAa,CAAC;AAErB,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAE/C,qBAAa,qBAAqB;IAChC,OAAO,CAAC,aAAa,CAAgB;IACrC,OAAO,CAAC,SAAS,CAGV;gBAEK,iBAAiB,CAAC,EAAE,MAAM;IAOtC;;OAEG;IACG,SAAS,CACb,IAAI,EAAE,IAAI,EACV,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,QAAQ,GACjB,OAAO,CAAC,kBAAkB,CAAC;IA6C9B;;OAEG;YACW,iBAAiB;IAuC/B;;OAEG;YACW,YAAY;IAyB1B;;OAEG;YACW,mBAAmB;IAuDjC;;OAEG;YACW,SAAS;IAkBvB;;OAEG;YACW,SAAS;IAkBvB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IASzB;;OAEG;IACH,OAAO,CAAC,aAAa;IAoBrB;;OAEG;IACH,OAAO,CAAC,WAAW;IAOnB;;OAEG;IACH,OAAO,CAAC,sBAAsB;IAkC9B;;OAEG;IACH,OAAO,CAAC,aAAa;CAgBtB"}