@fractary/faber-cli 1.5.8 → 1.5.9

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.
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA;;;;;GAKG;AAMH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAqBpC;;GAEG;AACH,wBAAgB,cAAc,IAAI,OAAO,CA0KxC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA;;;;;GAKG;AAMH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAmBpC;;GAEG;AACH,wBAAgB,cAAc,IAAI,OAAO,CA0KxC"}
package/dist/index.js CHANGED
@@ -23,8 +23,7 @@ import { createAuthCommand } from './commands/auth/index.js';
23
23
  if (process.stdout.isTTY) {
24
24
  process.stdout._handle?.setBlocking?.(true);
25
25
  }
26
- console.error('[DEBUG] CLI starting, args:', process.argv);
27
- const version = '1.5.8';
26
+ const version = '1.5.9';
28
27
  /**
29
28
  * Create and configure the main CLI program
30
29
  */
@@ -172,11 +171,8 @@ export function createFaberCLI() {
172
171
  const isMainModule = import.meta.url === `file://${process.argv[1]}` ||
173
172
  process.argv[1]?.endsWith('fractary-faber');
174
173
  if (isMainModule) {
175
- console.error('[DEBUG] Creating CLI program');
176
174
  const program = createFaberCLI();
177
- console.error('[DEBUG] Parsing argv');
178
175
  program.parse(process.argv);
179
- console.error('[DEBUG] Parse complete');
180
176
  // Show help if no command provided
181
177
  if (!process.argv.slice(2).length) {
182
178
  program.outputHelp();
@@ -36,8 +36,8 @@ export class AnthropicClient {
36
36
  return; // Already loaded
37
37
  }
38
38
  try {
39
- // Schema path relative to this file
40
- const schemaPath = path.resolve(__dirname, '../../../plugins/faber/config/schemas/plan.schema.json');
39
+ // Schema bundled with CLI package (cli/schemas/plan.schema.json)
40
+ const schemaPath = path.resolve(__dirname, '../../schemas/plan.schema.json');
41
41
  const schemaContent = await fs.readFile(schemaPath, 'utf8');
42
42
  this.planSchema = JSON.parse(schemaContent);
43
43
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fractary/faber-cli",
3
- "version": "1.5.8",
3
+ "version": "1.5.9",
4
4
  "description": "FABER CLI - Command-line interface for FABER development toolkit",
5
5
  "main": "dist/index.js",
6
6
  "bin": {
@@ -9,6 +9,7 @@
9
9
  "type": "module",
10
10
  "files": [
11
11
  "dist",
12
+ "schemas",
12
13
  "README.md",
13
14
  "LICENSE"
14
15
  ],
@@ -0,0 +1,230 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "$id": "https://raw.githubusercontent.com/fractary/faber/main/plugins/faber/config/schemas/plan.schema.json",
4
+ "title": "FABER Plan Schema",
5
+ "description": "JSON Schema for FABER workflow plans generated by CLI or Claude plugin",
6
+ "type": "object",
7
+ "required": ["plan_id", "created_by", "created_at", "workflow", "phases"],
8
+ "additionalProperties": true,
9
+ "properties": {
10
+ "$schema": {
11
+ "type": "string",
12
+ "format": "uri",
13
+ "description": "JSON Schema reference for IDE validation"
14
+ },
15
+ "plan_id": {
16
+ "type": "string",
17
+ "pattern": "^fractary-faber-[0-9]+-[0-9]{8}-[0-9]{6}$",
18
+ "description": "Unique plan identifier (format: fractary-faber-{work-id}-{YYYYMMDD}-{HHMMSS})",
19
+ "examples": ["fractary-faber-258-20260106-143022"]
20
+ },
21
+ "created_by": {
22
+ "type": "string",
23
+ "enum": ["cli", "claude", "api"],
24
+ "description": "Tool that created the plan"
25
+ },
26
+ "cli_version": {
27
+ "type": "string",
28
+ "pattern": "^[0-9]+\\.[0-9]+\\.[0-9]+$",
29
+ "description": "Version of CLI that created the plan (if created_by: cli)",
30
+ "examples": ["3.4.0"]
31
+ },
32
+ "created_at": {
33
+ "type": "string",
34
+ "format": "date-time",
35
+ "description": "ISO 8601 timestamp when plan was created"
36
+ },
37
+ "issue": {
38
+ "type": "object",
39
+ "required": ["source", "id"],
40
+ "description": "Issue metadata - links plan to originating work item",
41
+ "properties": {
42
+ "source": {
43
+ "type": "string",
44
+ "enum": ["github", "jira", "linear", "manual"],
45
+ "description": "Issue tracking system"
46
+ },
47
+ "id": {
48
+ "type": "string",
49
+ "description": "Issue identifier (e.g., issue number)"
50
+ },
51
+ "url": {
52
+ "type": "string",
53
+ "format": "uri",
54
+ "description": "Full URL to issue"
55
+ }
56
+ }
57
+ },
58
+ "branch": {
59
+ "type": "string",
60
+ "description": "Git branch name for this workflow (e.g., feature/258)"
61
+ },
62
+ "worktree": {
63
+ "type": "string",
64
+ "description": "Git worktree path (e.g., ~/.claude-worktrees/fractary-myproject-258)"
65
+ },
66
+ "workflow": {
67
+ "type": "string",
68
+ "description": "Workflow type identifier (e.g., etl, bugfix, core)"
69
+ },
70
+ "overall_complexity": {
71
+ "type": "string",
72
+ "enum": ["low", "medium", "high"],
73
+ "description": "Overall estimated complexity"
74
+ },
75
+ "estimated_phases": {
76
+ "type": "integer",
77
+ "minimum": 1,
78
+ "description": "Estimated number of phases to complete"
79
+ },
80
+ "special_considerations": {
81
+ "type": "array",
82
+ "items": {
83
+ "type": "string"
84
+ },
85
+ "description": "Special notes or warnings for this workflow"
86
+ },
87
+ "phases": {
88
+ "type": "array",
89
+ "description": "Ordered list of workflow phases",
90
+ "items": {
91
+ "$ref": "#/definitions/phase"
92
+ }
93
+ },
94
+ "metadata": {
95
+ "type": "object",
96
+ "description": "Additional metadata (flexible)",
97
+ "properties": {
98
+ "org": {
99
+ "type": "string",
100
+ "description": "GitHub organization"
101
+ },
102
+ "project": {
103
+ "type": "string",
104
+ "description": "Project/repository name"
105
+ },
106
+ "subproject": {
107
+ "type": "string",
108
+ "description": "Subproject identifier (optional)"
109
+ }
110
+ }
111
+ },
112
+ "autonomy": {
113
+ "type": "string",
114
+ "enum": ["supervised", "assisted", "autonomous", "guarded"],
115
+ "description": "Autonomy level for workflow execution"
116
+ }
117
+ },
118
+ "definitions": {
119
+ "phase": {
120
+ "type": "object",
121
+ "required": ["phase", "description", "steps"],
122
+ "properties": {
123
+ "phase": {
124
+ "type": "string",
125
+ "description": "Phase identifier (e.g., frame, architect, build, evaluate, release)"
126
+ },
127
+ "description": {
128
+ "type": "string",
129
+ "description": "What this phase accomplishes"
130
+ },
131
+ "steps": {
132
+ "type": "array",
133
+ "description": "Specific steps for this phase",
134
+ "items": {
135
+ "$ref": "#/definitions/step"
136
+ }
137
+ },
138
+ "success_criteria": {
139
+ "type": "array",
140
+ "description": "Criteria to verify phase completion",
141
+ "items": {
142
+ "type": "string"
143
+ }
144
+ },
145
+ "complexity": {
146
+ "type": "string",
147
+ "enum": ["low", "medium", "high"],
148
+ "description": "Phase complexity estimate"
149
+ }
150
+ }
151
+ },
152
+ "step": {
153
+ "type": "object",
154
+ "required": ["action"],
155
+ "properties": {
156
+ "action": {
157
+ "type": "string",
158
+ "description": "Specific action to take"
159
+ },
160
+ "details": {
161
+ "type": "string",
162
+ "description": "Additional context or requirements"
163
+ },
164
+ "command": {
165
+ "type": ["string", "null"],
166
+ "description": "Shell command to execute (optional)"
167
+ },
168
+ "prompt": {
169
+ "type": "string",
170
+ "description": "LLM prompt for this step (optional)"
171
+ },
172
+ "artifacts": {
173
+ "type": "object",
174
+ "description": "Expected artifacts from this step"
175
+ }
176
+ }
177
+ }
178
+ },
179
+ "examples": [
180
+ {
181
+ "plan_id": "fractary-faber-258-20260106-143022",
182
+ "created_by": "cli",
183
+ "cli_version": "3.4.0",
184
+ "created_at": "2026-01-06T14:30:22Z",
185
+ "issue": {
186
+ "source": "github",
187
+ "id": "258",
188
+ "url": "https://github.com/fractary/myproject/issues/258"
189
+ },
190
+ "branch": "feature/258",
191
+ "worktree": "~/.claude-worktrees/fractary-myproject-258",
192
+ "workflow": "etl",
193
+ "overall_complexity": "medium",
194
+ "estimated_phases": 5,
195
+ "phases": [
196
+ {
197
+ "phase": "frame",
198
+ "description": "Understand requirements and plan approach",
199
+ "steps": [
200
+ {
201
+ "action": "Read issue description and extract requirements",
202
+ "details": "Identify data source, target format, and validation rules"
203
+ }
204
+ ],
205
+ "success_criteria": [
206
+ "Requirements documented",
207
+ "Data source identified"
208
+ ],
209
+ "complexity": "low"
210
+ },
211
+ {
212
+ "phase": "architect",
213
+ "description": "Design ETL pipeline architecture",
214
+ "steps": [
215
+ {
216
+ "action": "Design data transformation logic",
217
+ "details": "Map source fields to target schema"
218
+ }
219
+ ],
220
+ "success_criteria": [
221
+ "Architecture documented",
222
+ "Data flow mapped"
223
+ ],
224
+ "complexity": "medium"
225
+ }
226
+ ],
227
+ "autonomy": "supervised"
228
+ }
229
+ ]
230
+ }