@fractary/faber 2.2.1 → 2.3.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/__tests__/integration/init-workflow.test.js +2 -52
- package/dist/__tests__/integration/init-workflow.test.js.map +1 -1
- package/dist/auth/github-app.d.ts +155 -0
- package/dist/auth/github-app.d.ts.map +1 -0
- package/dist/auth/github-app.js +348 -0
- package/dist/auth/github-app.js.map +1 -0
- package/dist/auth/index.d.ts +7 -0
- package/dist/auth/index.d.ts.map +1 -0
- package/dist/auth/index.js +7 -0
- package/dist/auth/index.js.map +1 -0
- package/dist/index.d.ts +1 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/dist/types.d.ts +1 -14
- package/dist/types.d.ts.map +1 -1
- package/dist/work/providers/github.d.ts.map +1 -1
- package/dist/work/providers/github.js +43 -7
- package/dist/work/providers/github.js.map +1 -1
- package/dist/workflow/faber.d.ts +8 -14
- package/dist/workflow/faber.d.ts.map +1 -1
- package/dist/workflow/faber.js +26 -161
- package/dist/workflow/faber.js.map +1 -1
- package/dist/workflow/index.d.ts +3 -2
- package/dist/workflow/index.d.ts.map +1 -1
- package/dist/workflow/index.js +3 -1
- package/dist/workflow/index.js.map +1 -1
- package/dist/workflow/resolver.d.ts +218 -0
- package/dist/workflow/resolver.d.ts.map +1 -0
- package/dist/workflow/resolver.js +351 -0
- package/dist/workflow/resolver.js.map +1 -0
- package/package.json +111 -106
|
@@ -0,0 +1,351 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fractary/faber - Workflow Resolver
|
|
3
|
+
*
|
|
4
|
+
* Handles workflow inheritance resolution with deterministic merge behavior.
|
|
5
|
+
* This is the SDK equivalent of plugins/faber/skills/faber-config/scripts/merge-workflows.sh
|
|
6
|
+
*
|
|
7
|
+
* Centralized workflow resolution ensures consistent behavior across CLI, MCP, and agents.
|
|
8
|
+
*/
|
|
9
|
+
import * as fs from 'fs';
|
|
10
|
+
import * as os from 'os';
|
|
11
|
+
import * as path from 'path';
|
|
12
|
+
// ============================================================================
|
|
13
|
+
// Custom Errors
|
|
14
|
+
// ============================================================================
|
|
15
|
+
export class WorkflowNotFoundError extends Error {
|
|
16
|
+
workflowId;
|
|
17
|
+
searchedPaths;
|
|
18
|
+
constructor(workflowId, searchedPaths) {
|
|
19
|
+
super(`Workflow not found: ${workflowId}`);
|
|
20
|
+
this.workflowId = workflowId;
|
|
21
|
+
this.searchedPaths = searchedPaths;
|
|
22
|
+
this.name = 'WorkflowNotFoundError';
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
export class CircularInheritanceError extends Error {
|
|
26
|
+
workflowId;
|
|
27
|
+
chain;
|
|
28
|
+
constructor(workflowId, chain) {
|
|
29
|
+
super(`Circular inheritance detected: ${workflowId} creates inheritance cycle`);
|
|
30
|
+
this.workflowId = workflowId;
|
|
31
|
+
this.chain = chain;
|
|
32
|
+
this.name = 'CircularInheritanceError';
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
export class DuplicateStepIdError extends Error {
|
|
36
|
+
duplicateIds;
|
|
37
|
+
constructor(duplicateIds) {
|
|
38
|
+
super(`Duplicate step IDs found: ${duplicateIds.join(', ')}`);
|
|
39
|
+
this.duplicateIds = duplicateIds;
|
|
40
|
+
this.name = 'DuplicateStepIdError';
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
export class InvalidWorkflowError extends Error {
|
|
44
|
+
workflowId;
|
|
45
|
+
reason;
|
|
46
|
+
constructor(workflowId, reason) {
|
|
47
|
+
super(`Invalid workflow ${workflowId}: ${reason}`);
|
|
48
|
+
this.workflowId = workflowId;
|
|
49
|
+
this.reason = reason;
|
|
50
|
+
this.name = 'InvalidWorkflowError';
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
// ============================================================================
|
|
54
|
+
// Workflow Resolver Class
|
|
55
|
+
// ============================================================================
|
|
56
|
+
/**
|
|
57
|
+
* Resolves workflow inheritance chains and merges phases.
|
|
58
|
+
*
|
|
59
|
+
* Merge algorithm (for each phase):
|
|
60
|
+
* 1. Pre-steps: Root ancestor first (reversed chain order)
|
|
61
|
+
* 2. Main steps: Only from child (first in chain)
|
|
62
|
+
* 3. Post-steps: Child first (chain order)
|
|
63
|
+
*
|
|
64
|
+
* Example for default → core:
|
|
65
|
+
* - chain = ["default", "core"] (child first)
|
|
66
|
+
* - pre_steps: core.pre_steps, then default.pre_steps
|
|
67
|
+
* - steps: only default.steps
|
|
68
|
+
* - post_steps: default.post_steps, then core.post_steps
|
|
69
|
+
*/
|
|
70
|
+
export class WorkflowResolver {
|
|
71
|
+
marketplaceRoot;
|
|
72
|
+
projectRoot;
|
|
73
|
+
workflowCache = new Map();
|
|
74
|
+
constructor(options = {}) {
|
|
75
|
+
this.marketplaceRoot =
|
|
76
|
+
options.marketplaceRoot ||
|
|
77
|
+
process.env['CLAUDE_MARKETPLACE_ROOT'] ||
|
|
78
|
+
path.join(process.env['HOME'] || os.homedir(), '.claude/plugins/marketplaces');
|
|
79
|
+
this.projectRoot = options.projectRoot || process.cwd();
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Sanitize a path component to prevent path traversal attacks.
|
|
83
|
+
* Rejects components containing '..' or absolute path indicators.
|
|
84
|
+
*/
|
|
85
|
+
sanitizePathComponent(component, context) {
|
|
86
|
+
// Reject empty components
|
|
87
|
+
if (!component || component.trim() === '') {
|
|
88
|
+
throw new InvalidWorkflowError(component, `${context} cannot be empty`);
|
|
89
|
+
}
|
|
90
|
+
// Reject path traversal sequences
|
|
91
|
+
if (component.includes('..')) {
|
|
92
|
+
throw new InvalidWorkflowError(component, `${context} cannot contain '..' (path traversal attempt)`);
|
|
93
|
+
}
|
|
94
|
+
// Reject absolute paths (Unix or Windows style)
|
|
95
|
+
if (component.startsWith('/') || component.startsWith('\\') || /^[a-zA-Z]:/.test(component)) {
|
|
96
|
+
throw new InvalidWorkflowError(component, `${context} cannot be an absolute path`);
|
|
97
|
+
}
|
|
98
|
+
// Reject null bytes (could bypass checks in some systems)
|
|
99
|
+
if (component.includes('\0')) {
|
|
100
|
+
throw new InvalidWorkflowError(component, `${context} contains invalid characters`);
|
|
101
|
+
}
|
|
102
|
+
return component;
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* Resolve a workflow by ID, applying inheritance and merging phases.
|
|
106
|
+
*/
|
|
107
|
+
async resolveWorkflow(workflowId) {
|
|
108
|
+
// Build inheritance chain (child first, ancestors last)
|
|
109
|
+
const chain = await this.buildInheritanceChain(workflowId);
|
|
110
|
+
// Load child workflow for base metadata
|
|
111
|
+
const childWorkflow = await this.loadWorkflowFile(chain[0]);
|
|
112
|
+
const skipSteps = childWorkflow.skip_steps || [];
|
|
113
|
+
// Merge phases for the entire chain
|
|
114
|
+
const phases = this.mergePhasesForChain(chain, skipSteps);
|
|
115
|
+
// Validate unique step IDs across all phases
|
|
116
|
+
this.validateUniqueStepIds(phases);
|
|
117
|
+
// Build resolved workflow
|
|
118
|
+
const resolved = {
|
|
119
|
+
id: childWorkflow.id,
|
|
120
|
+
description: childWorkflow.description,
|
|
121
|
+
inheritance_chain: chain,
|
|
122
|
+
phases,
|
|
123
|
+
autonomy: childWorkflow.autonomy,
|
|
124
|
+
critical_artifacts: childWorkflow.critical_artifacts,
|
|
125
|
+
integrations: childWorkflow.integrations,
|
|
126
|
+
};
|
|
127
|
+
if (skipSteps.length > 0) {
|
|
128
|
+
resolved.skipped_steps = skipSteps;
|
|
129
|
+
}
|
|
130
|
+
return resolved;
|
|
131
|
+
}
|
|
132
|
+
/**
|
|
133
|
+
* Build the inheritance chain from a workflow ID.
|
|
134
|
+
* Returns array with child first, root ancestor last.
|
|
135
|
+
*/
|
|
136
|
+
async buildInheritanceChain(workflowId) {
|
|
137
|
+
const chain = [];
|
|
138
|
+
const visited = new Set();
|
|
139
|
+
let currentId = workflowId;
|
|
140
|
+
while (currentId) {
|
|
141
|
+
// Check for circular inheritance
|
|
142
|
+
if (visited.has(currentId)) {
|
|
143
|
+
throw new CircularInheritanceError(currentId, chain);
|
|
144
|
+
}
|
|
145
|
+
visited.add(currentId);
|
|
146
|
+
chain.push(currentId);
|
|
147
|
+
// Load workflow and get extends
|
|
148
|
+
const workflow = await this.loadWorkflowFile(currentId);
|
|
149
|
+
currentId = workflow.extends;
|
|
150
|
+
}
|
|
151
|
+
return chain;
|
|
152
|
+
}
|
|
153
|
+
/**
|
|
154
|
+
* Load a workflow file by ID.
|
|
155
|
+
* Supports namespace resolution (fractary-faber:, project:, etc.)
|
|
156
|
+
*/
|
|
157
|
+
async loadWorkflowFile(workflowId) {
|
|
158
|
+
// Check cache first
|
|
159
|
+
if (this.workflowCache.has(workflowId)) {
|
|
160
|
+
return this.workflowCache.get(workflowId);
|
|
161
|
+
}
|
|
162
|
+
const filePath = this.resolveWorkflowPath(workflowId);
|
|
163
|
+
const searchedPaths = [filePath];
|
|
164
|
+
if (!fs.existsSync(filePath)) {
|
|
165
|
+
// Fallback: if no explicit namespace, try plugin defaults
|
|
166
|
+
if (!workflowId.includes(':')) {
|
|
167
|
+
const fallbackPath = path.join(this.marketplaceRoot, 'fractary-faber/plugins/faber/config/workflows', `${workflowId}.json`);
|
|
168
|
+
searchedPaths.push(fallbackPath);
|
|
169
|
+
if (fs.existsSync(fallbackPath)) {
|
|
170
|
+
return this.loadAndCacheWorkflow(workflowId, fallbackPath);
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
throw new WorkflowNotFoundError(workflowId, searchedPaths);
|
|
174
|
+
}
|
|
175
|
+
return this.loadAndCacheWorkflow(workflowId, filePath);
|
|
176
|
+
}
|
|
177
|
+
/**
|
|
178
|
+
* Load and cache a workflow from a file path.
|
|
179
|
+
*/
|
|
180
|
+
loadAndCacheWorkflow(workflowId, filePath) {
|
|
181
|
+
try {
|
|
182
|
+
const content = fs.readFileSync(filePath, 'utf-8');
|
|
183
|
+
const workflow = JSON.parse(content);
|
|
184
|
+
this.workflowCache.set(workflowId, workflow);
|
|
185
|
+
return workflow;
|
|
186
|
+
}
|
|
187
|
+
catch (error) {
|
|
188
|
+
if (error instanceof SyntaxError) {
|
|
189
|
+
throw new InvalidWorkflowError(workflowId, `JSON parse error: ${error.message}`);
|
|
190
|
+
}
|
|
191
|
+
throw error;
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
/**
|
|
195
|
+
* Resolve a workflow ID to a file path based on namespace.
|
|
196
|
+
* Validates all path components to prevent path traversal attacks.
|
|
197
|
+
*/
|
|
198
|
+
resolveWorkflowPath(workflowId) {
|
|
199
|
+
let namespace;
|
|
200
|
+
let workflowName;
|
|
201
|
+
if (workflowId.includes(':')) {
|
|
202
|
+
const parts = workflowId.split(':');
|
|
203
|
+
namespace = parts[0];
|
|
204
|
+
workflowName = parts.slice(1).join(':');
|
|
205
|
+
}
|
|
206
|
+
else {
|
|
207
|
+
namespace = 'project';
|
|
208
|
+
workflowName = workflowId;
|
|
209
|
+
}
|
|
210
|
+
// Sanitize namespace and workflow name to prevent path traversal
|
|
211
|
+
this.sanitizePathComponent(namespace, 'namespace');
|
|
212
|
+
this.sanitizePathComponent(workflowName, 'workflow name');
|
|
213
|
+
switch (namespace) {
|
|
214
|
+
case 'fractary-faber':
|
|
215
|
+
return path.join(this.marketplaceRoot, 'fractary-faber/plugins/faber/config/workflows', `${workflowName}.json`);
|
|
216
|
+
case 'fractary-faber-cloud':
|
|
217
|
+
return path.join(this.marketplaceRoot, 'fractary-faber/plugins/faber-cloud/config/workflows', `${workflowName}.json`);
|
|
218
|
+
case 'fractary-core': {
|
|
219
|
+
// Extract plugin name from workflow_name if it contains slash
|
|
220
|
+
const parts = workflowName.split('/');
|
|
221
|
+
// Sanitize each part individually
|
|
222
|
+
const plugin = this.sanitizePathComponent(parts[0], 'plugin name');
|
|
223
|
+
const workflow = parts.length > 1
|
|
224
|
+
? this.sanitizePathComponent(parts.slice(1).join('/'), 'workflow name')
|
|
225
|
+
: plugin;
|
|
226
|
+
return path.join(this.marketplaceRoot, `fractary-core/plugins/${plugin}/config/workflows`, `${workflow}.json`);
|
|
227
|
+
}
|
|
228
|
+
case 'fractary-codex':
|
|
229
|
+
return path.join(this.marketplaceRoot, 'fractary-codex/plugins/codex/config/workflows', `${workflowName}.json`);
|
|
230
|
+
case 'project':
|
|
231
|
+
case '':
|
|
232
|
+
return path.join(this.projectRoot, '.fractary/faber/workflows', `${workflowName}.json`);
|
|
233
|
+
default: {
|
|
234
|
+
// Fallback to old unified marketplace for backward compatibility
|
|
235
|
+
// Sanitize the derived plugin name as well
|
|
236
|
+
const pluginName = this.sanitizePathComponent(namespace.replace('fractary-', ''), 'plugin name');
|
|
237
|
+
return path.join(this.marketplaceRoot, `fractary/plugins/${pluginName}/config/workflows`, `${workflowName}.json`);
|
|
238
|
+
}
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
/**
|
|
242
|
+
* Merge phases for an entire inheritance chain.
|
|
243
|
+
*/
|
|
244
|
+
mergePhasesForChain(chain, skipSteps) {
|
|
245
|
+
const phaseNames = ['frame', 'architect', 'build', 'evaluate', 'release'];
|
|
246
|
+
const phases = {};
|
|
247
|
+
for (const phaseName of phaseNames) {
|
|
248
|
+
const mergedSteps = this.mergePhaseSteps(chain, phaseName);
|
|
249
|
+
const filteredSteps = this.applySkipSteps(mergedSteps, skipSteps);
|
|
250
|
+
// Get phase config from child workflow
|
|
251
|
+
const childWorkflow = this.workflowCache.get(chain[0]);
|
|
252
|
+
const childPhase = childWorkflow.phases?.[phaseName];
|
|
253
|
+
phases[phaseName] = {
|
|
254
|
+
enabled: childPhase?.enabled ?? true,
|
|
255
|
+
description: childPhase?.description,
|
|
256
|
+
steps: filteredSteps,
|
|
257
|
+
require_approval: childPhase?.require_approval,
|
|
258
|
+
max_retries: phaseName === 'evaluate' ? childPhase?.max_retries ?? 3 : undefined,
|
|
259
|
+
};
|
|
260
|
+
}
|
|
261
|
+
return phases;
|
|
262
|
+
}
|
|
263
|
+
/**
|
|
264
|
+
* Merge steps for a single phase across the inheritance chain.
|
|
265
|
+
*
|
|
266
|
+
* Order:
|
|
267
|
+
* 1. Pre-steps: Root ancestor first (reversed chain - index n-1 to 0)
|
|
268
|
+
* 2. Main steps: Only from child (index 0)
|
|
269
|
+
* 3. Post-steps: Child first (chain order - index 0 to n-1)
|
|
270
|
+
*/
|
|
271
|
+
mergePhaseSteps(chain, phaseName) {
|
|
272
|
+
const mergedSteps = [];
|
|
273
|
+
// Pre-steps: iterate from root (last in chain) to child (first) - reversed
|
|
274
|
+
for (let i = chain.length - 1; i >= 0; i--) {
|
|
275
|
+
const workflowId = chain[i];
|
|
276
|
+
const workflow = this.workflowCache.get(workflowId);
|
|
277
|
+
const phase = workflow.phases?.[phaseName];
|
|
278
|
+
const preSteps = phase?.pre_steps || [];
|
|
279
|
+
for (const step of preSteps) {
|
|
280
|
+
mergedSteps.push({
|
|
281
|
+
...step,
|
|
282
|
+
source: workflowId,
|
|
283
|
+
position: 'pre_step',
|
|
284
|
+
});
|
|
285
|
+
}
|
|
286
|
+
}
|
|
287
|
+
// Main steps: only from child (index 0)
|
|
288
|
+
const childWorkflow = this.workflowCache.get(chain[0]);
|
|
289
|
+
const childPhase = childWorkflow.phases?.[phaseName];
|
|
290
|
+
const mainSteps = childPhase?.steps || [];
|
|
291
|
+
for (const step of mainSteps) {
|
|
292
|
+
mergedSteps.push({
|
|
293
|
+
...step,
|
|
294
|
+
source: chain[0],
|
|
295
|
+
position: 'step',
|
|
296
|
+
});
|
|
297
|
+
}
|
|
298
|
+
// Post-steps: iterate from child (first) to root (last) - chain order
|
|
299
|
+
for (let i = 0; i < chain.length; i++) {
|
|
300
|
+
const workflowId = chain[i];
|
|
301
|
+
const workflow = this.workflowCache.get(workflowId);
|
|
302
|
+
const phase = workflow.phases?.[phaseName];
|
|
303
|
+
const postSteps = phase?.post_steps || [];
|
|
304
|
+
for (const step of postSteps) {
|
|
305
|
+
mergedSteps.push({
|
|
306
|
+
...step,
|
|
307
|
+
source: workflowId,
|
|
308
|
+
position: 'post_step',
|
|
309
|
+
});
|
|
310
|
+
}
|
|
311
|
+
}
|
|
312
|
+
return mergedSteps;
|
|
313
|
+
}
|
|
314
|
+
/**
|
|
315
|
+
* Apply skip_steps to filter out specified step IDs.
|
|
316
|
+
*/
|
|
317
|
+
applySkipSteps(steps, skipSteps) {
|
|
318
|
+
if (!skipSteps || skipSteps.length === 0) {
|
|
319
|
+
return steps;
|
|
320
|
+
}
|
|
321
|
+
const skipSet = new Set(skipSteps);
|
|
322
|
+
return steps.filter((step) => !skipSet.has(step.id));
|
|
323
|
+
}
|
|
324
|
+
/**
|
|
325
|
+
* Validate that all step IDs are unique across all phases.
|
|
326
|
+
*/
|
|
327
|
+
validateUniqueStepIds(phases) {
|
|
328
|
+
const allIds = new Map(); // id -> phase
|
|
329
|
+
const duplicates = [];
|
|
330
|
+
for (const [phaseName, phase] of Object.entries(phases)) {
|
|
331
|
+
for (const step of phase.steps) {
|
|
332
|
+
if (allIds.has(step.id)) {
|
|
333
|
+
duplicates.push(`${step.id} (in ${allIds.get(step.id)} and ${phaseName})`);
|
|
334
|
+
}
|
|
335
|
+
else {
|
|
336
|
+
allIds.set(step.id, phaseName);
|
|
337
|
+
}
|
|
338
|
+
}
|
|
339
|
+
}
|
|
340
|
+
if (duplicates.length > 0) {
|
|
341
|
+
throw new DuplicateStepIdError(duplicates);
|
|
342
|
+
}
|
|
343
|
+
}
|
|
344
|
+
/**
|
|
345
|
+
* Clear the workflow cache (useful for testing or reloading)
|
|
346
|
+
*/
|
|
347
|
+
clearCache() {
|
|
348
|
+
this.workflowCache.clear();
|
|
349
|
+
}
|
|
350
|
+
}
|
|
351
|
+
//# sourceMappingURL=resolver.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolver.js","sourceRoot":"","sources":["../../src/workflow/resolver.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,106 +1,111 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "@fractary/faber",
|
|
3
|
-
"version": "2.
|
|
4
|
-
"description": "FABER SDK - Development toolkit for AI-assisted workflows",
|
|
5
|
-
"type": "module",
|
|
6
|
-
"main": "dist/index.js",
|
|
7
|
-
"types": "dist/index.d.ts",
|
|
8
|
-
"exports": {
|
|
9
|
-
".": {
|
|
10
|
-
"types": "./dist/index.d.ts",
|
|
11
|
-
"default": "./dist/index.js"
|
|
12
|
-
},
|
|
13
|
-
"./work": {
|
|
14
|
-
"types": "./dist/work/index.d.ts",
|
|
15
|
-
"default": "./dist/work/index.js"
|
|
16
|
-
},
|
|
17
|
-
"./repo": {
|
|
18
|
-
"types": "./dist/repo/index.d.ts",
|
|
19
|
-
"default": "./dist/repo/index.js"
|
|
20
|
-
},
|
|
21
|
-
"./spec": {
|
|
22
|
-
"types": "./dist/spec/index.d.ts",
|
|
23
|
-
"default": "./dist/spec/index.js"
|
|
24
|
-
},
|
|
25
|
-
"./logs": {
|
|
26
|
-
"types": "./dist/logs/index.d.ts",
|
|
27
|
-
"default": "./dist/logs/index.js"
|
|
28
|
-
},
|
|
29
|
-
"./state": {
|
|
30
|
-
"types": "./dist/state/index.d.ts",
|
|
31
|
-
"default": "./dist/state/index.js"
|
|
32
|
-
},
|
|
33
|
-
"./workflow": {
|
|
34
|
-
"types": "./dist/workflow/index.d.ts",
|
|
35
|
-
"default": "./dist/workflow/index.js"
|
|
36
|
-
},
|
|
37
|
-
"./storage": {
|
|
38
|
-
"types": "./dist/storage/index.d.ts",
|
|
39
|
-
"default": "./dist/storage/index.js"
|
|
40
|
-
},
|
|
41
|
-
"./agents": {
|
|
42
|
-
"types": "./dist/agents/index.d.ts",
|
|
43
|
-
"default": "./dist/agents/index.js"
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
"
|
|
53
|
-
"
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
"
|
|
57
|
-
"
|
|
58
|
-
"
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
"
|
|
62
|
-
"
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
"
|
|
66
|
-
"
|
|
67
|
-
"
|
|
68
|
-
"
|
|
69
|
-
"
|
|
70
|
-
"
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
"
|
|
78
|
-
|
|
79
|
-
"
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
"
|
|
85
|
-
"
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
"@
|
|
89
|
-
"
|
|
90
|
-
"
|
|
91
|
-
"
|
|
92
|
-
"
|
|
93
|
-
"typescript": "^
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
"
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"name": "@fractary/faber",
|
|
3
|
+
"version": "2.3.4",
|
|
4
|
+
"description": "FABER SDK - Development toolkit for AI-assisted workflows",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"main": "dist/index.js",
|
|
7
|
+
"types": "dist/index.d.ts",
|
|
8
|
+
"exports": {
|
|
9
|
+
".": {
|
|
10
|
+
"types": "./dist/index.d.ts",
|
|
11
|
+
"default": "./dist/index.js"
|
|
12
|
+
},
|
|
13
|
+
"./work": {
|
|
14
|
+
"types": "./dist/work/index.d.ts",
|
|
15
|
+
"default": "./dist/work/index.js"
|
|
16
|
+
},
|
|
17
|
+
"./repo": {
|
|
18
|
+
"types": "./dist/repo/index.d.ts",
|
|
19
|
+
"default": "./dist/repo/index.js"
|
|
20
|
+
},
|
|
21
|
+
"./spec": {
|
|
22
|
+
"types": "./dist/spec/index.d.ts",
|
|
23
|
+
"default": "./dist/spec/index.js"
|
|
24
|
+
},
|
|
25
|
+
"./logs": {
|
|
26
|
+
"types": "./dist/logs/index.d.ts",
|
|
27
|
+
"default": "./dist/logs/index.js"
|
|
28
|
+
},
|
|
29
|
+
"./state": {
|
|
30
|
+
"types": "./dist/state/index.d.ts",
|
|
31
|
+
"default": "./dist/state/index.js"
|
|
32
|
+
},
|
|
33
|
+
"./workflow": {
|
|
34
|
+
"types": "./dist/workflow/index.d.ts",
|
|
35
|
+
"default": "./dist/workflow/index.js"
|
|
36
|
+
},
|
|
37
|
+
"./storage": {
|
|
38
|
+
"types": "./dist/storage/index.d.ts",
|
|
39
|
+
"default": "./dist/storage/index.js"
|
|
40
|
+
},
|
|
41
|
+
"./agents": {
|
|
42
|
+
"types": "./dist/agents/index.d.ts",
|
|
43
|
+
"default": "./dist/agents/index.js"
|
|
44
|
+
},
|
|
45
|
+
"./auth": {
|
|
46
|
+
"types": "./dist/auth/index.d.ts",
|
|
47
|
+
"default": "./dist/auth/index.js"
|
|
48
|
+
}
|
|
49
|
+
},
|
|
50
|
+
"files": [
|
|
51
|
+
"dist",
|
|
52
|
+
"README.md",
|
|
53
|
+
"LICENSE"
|
|
54
|
+
],
|
|
55
|
+
"scripts": {
|
|
56
|
+
"dev": "tsc --watch",
|
|
57
|
+
"build": "tsc",
|
|
58
|
+
"test": "jest",
|
|
59
|
+
"test:watch": "jest --watch",
|
|
60
|
+
"lint": "eslint src --ext .ts",
|
|
61
|
+
"typecheck": "tsc --noEmit",
|
|
62
|
+
"prepublishOnly": "npm run build"
|
|
63
|
+
},
|
|
64
|
+
"keywords": [
|
|
65
|
+
"faber",
|
|
66
|
+
"workflow",
|
|
67
|
+
"sdk",
|
|
68
|
+
"ai",
|
|
69
|
+
"development",
|
|
70
|
+
"automation",
|
|
71
|
+
"github",
|
|
72
|
+
"jira",
|
|
73
|
+
"linear",
|
|
74
|
+
"git"
|
|
75
|
+
],
|
|
76
|
+
"author": "Fractary Team",
|
|
77
|
+
"license": "MIT",
|
|
78
|
+
"publishConfig": {
|
|
79
|
+
"access": "public"
|
|
80
|
+
},
|
|
81
|
+
"dependencies": {
|
|
82
|
+
"commander": "^12.0.0",
|
|
83
|
+
"js-yaml": "^4.1.1",
|
|
84
|
+
"jsonwebtoken": "^9.0.0",
|
|
85
|
+
"zod": "^3.22.4"
|
|
86
|
+
},
|
|
87
|
+
"devDependencies": {
|
|
88
|
+
"@types/jest": "^30.0.0",
|
|
89
|
+
"@types/js-yaml": "^4.0.9",
|
|
90
|
+
"@types/jsonwebtoken": "^9.0.0",
|
|
91
|
+
"@types/node": "^20.19.26",
|
|
92
|
+
"@typescript-eslint/eslint-plugin": "^6.19.0",
|
|
93
|
+
"@typescript-eslint/parser": "^6.19.0",
|
|
94
|
+
"eslint": "^8.56.0",
|
|
95
|
+
"jest": "^29.7.0",
|
|
96
|
+
"ts-jest": "^29.1.1",
|
|
97
|
+
"ts-node": "^10.9.2",
|
|
98
|
+
"typescript": "^5.3.3"
|
|
99
|
+
},
|
|
100
|
+
"engines": {
|
|
101
|
+
"node": ">=18.0.0"
|
|
102
|
+
},
|
|
103
|
+
"repository": {
|
|
104
|
+
"type": "git",
|
|
105
|
+
"url": "git+https://github.com/fractary/faber.git"
|
|
106
|
+
},
|
|
107
|
+
"bugs": {
|
|
108
|
+
"url": "https://github.com/fractary/faber/issues"
|
|
109
|
+
},
|
|
110
|
+
"homepage": "https://github.com/fractary/faber#readme"
|
|
111
|
+
}
|