@brainfile/cli 0.13.1 → 0.13.3
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/CHANGELOG.md +34 -0
- package/dist/cli.js +27 -1
- package/dist/cli.js.map +1 -1
- package/dist/commands/contract.d.ts.map +1 -1
- package/dist/commands/contract.js +10 -0
- package/dist/commands/contract.js.map +1 -1
- package/dist/commands/mcp.d.ts.map +1 -1
- package/dist/commands/mcp.js +116 -0
- package/dist/commands/mcp.js.map +1 -1
- package/dist/commands/rules.d.ts +68 -0
- package/dist/commands/rules.d.ts.map +1 -0
- package/dist/commands/rules.js +322 -0
- package/dist/commands/rules.js.map +1 -0
- package/dist/commands/schema.d.ts +31 -0
- package/dist/commands/schema.d.ts.map +1 -0
- package/dist/commands/schema.js +369 -0
- package/dist/commands/schema.js.map +1 -0
- package/dist/commands/show.d.ts +4 -0
- package/dist/commands/show.d.ts.map +1 -1
- package/dist/commands/show.js +33 -13
- package/dist/commands/show.js.map +1 -1
- package/dist/lib/contractRunner.d.ts +5 -0
- package/dist/lib/contractRunner.d.ts.map +1 -1
- package/dist/lib/contractRunner.js +33 -1
- package/dist/lib/contractRunner.js.map +1 -1
- package/dist/schemas/base.json +159 -0
- package/dist/schemas/board.json +198 -0
- package/package.json +3 -2
|
@@ -0,0 +1,369 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Schema command for Brainfile CLI
|
|
4
|
+
*
|
|
5
|
+
* View and manage brainfile schemas locally, eliminating network access for basic usage.
|
|
6
|
+
*
|
|
7
|
+
* Usage:
|
|
8
|
+
* brainfile schema # List available schemas
|
|
9
|
+
* brainfile schema <name> # Display specific schema
|
|
10
|
+
* brainfile schema update # Check for and download schema updates
|
|
11
|
+
* brainfile schema --json # Output in JSON format
|
|
12
|
+
*
|
|
13
|
+
* @packageDocumentation
|
|
14
|
+
*/
|
|
15
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
16
|
+
if (k2 === undefined) k2 = k;
|
|
17
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
18
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
19
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
20
|
+
}
|
|
21
|
+
Object.defineProperty(o, k2, desc);
|
|
22
|
+
}) : (function(o, m, k, k2) {
|
|
23
|
+
if (k2 === undefined) k2 = k;
|
|
24
|
+
o[k2] = m[k];
|
|
25
|
+
}));
|
|
26
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
27
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
28
|
+
}) : function(o, v) {
|
|
29
|
+
o["default"] = v;
|
|
30
|
+
});
|
|
31
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
32
|
+
var ownKeys = function(o) {
|
|
33
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
34
|
+
var ar = [];
|
|
35
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
36
|
+
return ar;
|
|
37
|
+
};
|
|
38
|
+
return ownKeys(o);
|
|
39
|
+
};
|
|
40
|
+
return function (mod) {
|
|
41
|
+
if (mod && mod.__esModule) return mod;
|
|
42
|
+
var result = {};
|
|
43
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
44
|
+
__setModuleDefault(result, mod);
|
|
45
|
+
return result;
|
|
46
|
+
};
|
|
47
|
+
})();
|
|
48
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
49
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
50
|
+
};
|
|
51
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
52
|
+
exports.SCHEMA_COMMAND_HELP = void 0;
|
|
53
|
+
exports.schemaCommand = schemaCommand;
|
|
54
|
+
exports.schemaUpdateCommand = schemaUpdateCommand;
|
|
55
|
+
const fs = __importStar(require("fs"));
|
|
56
|
+
const path = __importStar(require("path"));
|
|
57
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
58
|
+
const logger_1 = require("../utils/logger");
|
|
59
|
+
const cli_error_1 = require("../utils/cli-error");
|
|
60
|
+
const errorHandler_1 = require("../utils/errorHandler");
|
|
61
|
+
const config_1 = require("../utils/config");
|
|
62
|
+
// ============================================================================
|
|
63
|
+
// Constants
|
|
64
|
+
// ============================================================================
|
|
65
|
+
const SCHEMA_BASE_URL = 'https://brainfile.md/v1';
|
|
66
|
+
const CHECK_INTERVAL_MS = 24 * 60 * 60 * 1000; // 24 hours
|
|
67
|
+
// Get bundled schemas directory (relative to this file after compilation)
|
|
68
|
+
function getBundledSchemasDir() {
|
|
69
|
+
// In development: cli/src/schemas
|
|
70
|
+
// In production: cli/dist/schemas
|
|
71
|
+
const distPath = path.join(__dirname, '..', 'schemas');
|
|
72
|
+
const srcPath = path.join(__dirname, '..', '..', 'src', 'schemas');
|
|
73
|
+
if (fs.existsSync(distPath)) {
|
|
74
|
+
return distPath;
|
|
75
|
+
}
|
|
76
|
+
if (fs.existsSync(srcPath)) {
|
|
77
|
+
return srcPath;
|
|
78
|
+
}
|
|
79
|
+
// Fallback for development
|
|
80
|
+
return path.join(__dirname, 'schemas');
|
|
81
|
+
}
|
|
82
|
+
// Schema metadata
|
|
83
|
+
const BUNDLED_SCHEMAS = [
|
|
84
|
+
{
|
|
85
|
+
id: 'board',
|
|
86
|
+
description: 'Board structure (columns, tasks, contracts)',
|
|
87
|
+
file: 'board.json',
|
|
88
|
+
},
|
|
89
|
+
{
|
|
90
|
+
id: 'base',
|
|
91
|
+
description: 'Base types (rules, agent instructions)',
|
|
92
|
+
file: 'base.json',
|
|
93
|
+
},
|
|
94
|
+
];
|
|
95
|
+
// ============================================================================
|
|
96
|
+
// Help Text
|
|
97
|
+
// ============================================================================
|
|
98
|
+
exports.SCHEMA_COMMAND_HELP = `
|
|
99
|
+
Examples:
|
|
100
|
+
brainfile schema # List available schemas
|
|
101
|
+
brainfile schema board # View the board schema
|
|
102
|
+
brainfile schema base # View the base schema
|
|
103
|
+
brainfile schema update # Check for schema updates
|
|
104
|
+
brainfile schema board --json # Output board schema as JSON
|
|
105
|
+
|
|
106
|
+
Bundled schemas:
|
|
107
|
+
board - Board structure (columns, tasks, contracts)
|
|
108
|
+
base - Base types (rules, agent instructions)
|
|
109
|
+
|
|
110
|
+
Notes:
|
|
111
|
+
- Schemas are bundled with the CLI (no network required for basic usage)
|
|
112
|
+
- Use 'schema update' to check for newer versions from brainfile.md
|
|
113
|
+
- Auto-checks once per 24 hours (non-blocking notification)
|
|
114
|
+
`.trimEnd();
|
|
115
|
+
// ============================================================================
|
|
116
|
+
// Main Command
|
|
117
|
+
// ============================================================================
|
|
118
|
+
function schemaCommand(options, logger = logger_1.defaultLogger) {
|
|
119
|
+
const { name, json } = options;
|
|
120
|
+
// Handle update subcommand
|
|
121
|
+
if (name === 'update') {
|
|
122
|
+
return schemaUpdateCommand({ json }, logger);
|
|
123
|
+
}
|
|
124
|
+
// Handle show specific schema
|
|
125
|
+
if (name) {
|
|
126
|
+
return schemaShowCommand(name, { json }, logger);
|
|
127
|
+
}
|
|
128
|
+
// List all schemas
|
|
129
|
+
return schemaListCommand({ json }, logger);
|
|
130
|
+
}
|
|
131
|
+
// ============================================================================
|
|
132
|
+
// List Schemas
|
|
133
|
+
// ============================================================================
|
|
134
|
+
function schemaListCommand(options, logger) {
|
|
135
|
+
if (options.json) {
|
|
136
|
+
const output = {
|
|
137
|
+
schemas: BUNDLED_SCHEMAS.map((s) => ({
|
|
138
|
+
id: s.id,
|
|
139
|
+
description: s.description,
|
|
140
|
+
})),
|
|
141
|
+
};
|
|
142
|
+
logger.log(JSON.stringify(output, null, 2));
|
|
143
|
+
}
|
|
144
|
+
else {
|
|
145
|
+
logger.log('');
|
|
146
|
+
logger.log(chalk_1.default.bold('Available schemas:'));
|
|
147
|
+
logger.log('');
|
|
148
|
+
const maxIdLen = Math.max(...BUNDLED_SCHEMAS.map((s) => s.id.length));
|
|
149
|
+
for (const schema of BUNDLED_SCHEMAS) {
|
|
150
|
+
logger.log(` ${chalk_1.default.cyan(schema.id.padEnd(maxIdLen))} ${chalk_1.default.gray('-')} ${schema.description}`);
|
|
151
|
+
}
|
|
152
|
+
logger.log('');
|
|
153
|
+
logger.log(chalk_1.default.gray('Run: brainfile schema <name> to view schema'));
|
|
154
|
+
logger.log(chalk_1.default.gray('Run: brainfile schema update to check for updates'));
|
|
155
|
+
}
|
|
156
|
+
// Check for auto-update (non-blocking)
|
|
157
|
+
checkAutoUpdate(logger);
|
|
158
|
+
return {
|
|
159
|
+
success: true,
|
|
160
|
+
action: 'list',
|
|
161
|
+
schemas: BUNDLED_SCHEMAS.map((s) => s.id),
|
|
162
|
+
};
|
|
163
|
+
}
|
|
164
|
+
// ============================================================================
|
|
165
|
+
// Show Schema
|
|
166
|
+
// ============================================================================
|
|
167
|
+
function schemaShowCommand(name, options, logger) {
|
|
168
|
+
const schemaInfo = BUNDLED_SCHEMAS.find((s) => s.id === name);
|
|
169
|
+
if (!schemaInfo) {
|
|
170
|
+
const availableIds = BUNDLED_SCHEMAS.map((s) => s.id).join(', ');
|
|
171
|
+
throw new cli_error_1.CLIError(`Unknown schema: ${name}`, errorHandler_1.ExitCode.USER_ERROR, `Available schemas: ${availableIds}`);
|
|
172
|
+
}
|
|
173
|
+
const schemasDir = getBundledSchemasDir();
|
|
174
|
+
const schemaPath = path.join(schemasDir, schemaInfo.file);
|
|
175
|
+
if (!fs.existsSync(schemaPath)) {
|
|
176
|
+
throw new cli_error_1.CLIError(`Schema file not found: ${schemaInfo.file}`, errorHandler_1.ExitCode.USER_ERROR, `Expected at: ${schemaPath}`);
|
|
177
|
+
}
|
|
178
|
+
const content = fs.readFileSync(schemaPath, 'utf-8');
|
|
179
|
+
const schema = JSON.parse(content);
|
|
180
|
+
if (options.json) {
|
|
181
|
+
logger.log(JSON.stringify(schema, null, 2));
|
|
182
|
+
}
|
|
183
|
+
else {
|
|
184
|
+
logger.log('');
|
|
185
|
+
logger.log(chalk_1.default.bold(`Schema: ${name}`));
|
|
186
|
+
logger.log(chalk_1.default.gray(`Description: ${schemaInfo.description}`));
|
|
187
|
+
logger.log(chalk_1.default.gray(`Source: ${SCHEMA_BASE_URL}/${schemaInfo.file}`));
|
|
188
|
+
logger.log('');
|
|
189
|
+
logger.log(JSON.stringify(schema, null, 2));
|
|
190
|
+
}
|
|
191
|
+
return {
|
|
192
|
+
success: true,
|
|
193
|
+
action: 'show',
|
|
194
|
+
schema,
|
|
195
|
+
};
|
|
196
|
+
}
|
|
197
|
+
// ============================================================================
|
|
198
|
+
// Update Schemas
|
|
199
|
+
// ============================================================================
|
|
200
|
+
async function fetchWithTimeout(url, timeoutMs) {
|
|
201
|
+
const controller = new AbortController();
|
|
202
|
+
const timeout = setTimeout(() => controller.abort(), timeoutMs);
|
|
203
|
+
try {
|
|
204
|
+
const response = await fetch(url, { signal: controller.signal });
|
|
205
|
+
return response;
|
|
206
|
+
}
|
|
207
|
+
finally {
|
|
208
|
+
clearTimeout(timeout);
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
function schemaUpdateCommand(options, logger = logger_1.defaultLogger) {
|
|
212
|
+
// Run the async update and handle synchronously for CLI
|
|
213
|
+
schemaUpdateAsync(options, logger);
|
|
214
|
+
return {
|
|
215
|
+
success: true,
|
|
216
|
+
action: 'update',
|
|
217
|
+
updated: false, // Will be updated by async function
|
|
218
|
+
};
|
|
219
|
+
}
|
|
220
|
+
async function schemaUpdateAsync(options, logger) {
|
|
221
|
+
if (!options.json) {
|
|
222
|
+
logger.log('');
|
|
223
|
+
logger.log(chalk_1.default.bold('Checking for schema updates...'));
|
|
224
|
+
logger.log('');
|
|
225
|
+
}
|
|
226
|
+
const schemasDir = getBundledSchemasDir();
|
|
227
|
+
const results = [];
|
|
228
|
+
for (const schemaInfo of BUNDLED_SCHEMAS) {
|
|
229
|
+
const url = `${SCHEMA_BASE_URL}/${schemaInfo.file}`;
|
|
230
|
+
const localPath = path.join(schemasDir, schemaInfo.file);
|
|
231
|
+
try {
|
|
232
|
+
const response = await fetchWithTimeout(url, 10000);
|
|
233
|
+
if (!response.ok) {
|
|
234
|
+
results.push({
|
|
235
|
+
id: schemaInfo.id,
|
|
236
|
+
status: 'error',
|
|
237
|
+
error: `HTTP ${response.status}`,
|
|
238
|
+
});
|
|
239
|
+
continue;
|
|
240
|
+
}
|
|
241
|
+
const remoteContent = await response.text();
|
|
242
|
+
const remoteSchema = JSON.parse(remoteContent);
|
|
243
|
+
// Compare with local
|
|
244
|
+
let localSchema = null;
|
|
245
|
+
if (fs.existsSync(localPath)) {
|
|
246
|
+
const localContent = fs.readFileSync(localPath, 'utf-8');
|
|
247
|
+
localSchema = JSON.parse(localContent);
|
|
248
|
+
}
|
|
249
|
+
// Simple comparison using JSON stringification
|
|
250
|
+
const remoteStr = JSON.stringify(remoteSchema);
|
|
251
|
+
const localStr = localSchema ? JSON.stringify(localSchema) : '';
|
|
252
|
+
if (remoteStr !== localStr) {
|
|
253
|
+
// Update local schema
|
|
254
|
+
fs.writeFileSync(localPath, JSON.stringify(remoteSchema, null, 2));
|
|
255
|
+
results.push({ id: schemaInfo.id, status: 'updated' });
|
|
256
|
+
}
|
|
257
|
+
else {
|
|
258
|
+
results.push({ id: schemaInfo.id, status: 'current' });
|
|
259
|
+
}
|
|
260
|
+
}
|
|
261
|
+
catch (error) {
|
|
262
|
+
const errorMsg = error instanceof Error ? error.message : String(error);
|
|
263
|
+
results.push({ id: schemaInfo.id, status: 'error', error: errorMsg });
|
|
264
|
+
}
|
|
265
|
+
}
|
|
266
|
+
// Update last check time
|
|
267
|
+
updateLastCheckTime();
|
|
268
|
+
// Output results
|
|
269
|
+
if (options.json) {
|
|
270
|
+
logger.log(JSON.stringify({ schemas: results }, null, 2));
|
|
271
|
+
}
|
|
272
|
+
else {
|
|
273
|
+
for (const result of results) {
|
|
274
|
+
if (result.status === 'updated') {
|
|
275
|
+
logger.log(` ${chalk_1.default.green('+')} ${chalk_1.default.cyan(result.id)} - Updated`);
|
|
276
|
+
}
|
|
277
|
+
else if (result.status === 'current') {
|
|
278
|
+
logger.log(` ${chalk_1.default.gray('=')} ${chalk_1.default.cyan(result.id)} - Up to date`);
|
|
279
|
+
}
|
|
280
|
+
else {
|
|
281
|
+
logger.log(` ${chalk_1.default.red('!')} ${chalk_1.default.cyan(result.id)} - Error: ${result.error}`);
|
|
282
|
+
}
|
|
283
|
+
}
|
|
284
|
+
const updatedCount = results.filter((r) => r.status === 'updated').length;
|
|
285
|
+
logger.log('');
|
|
286
|
+
if (updatedCount > 0) {
|
|
287
|
+
logger.log(chalk_1.default.green(`Updated ${updatedCount} schema(s)`));
|
|
288
|
+
}
|
|
289
|
+
else {
|
|
290
|
+
logger.log(chalk_1.default.gray('All schemas are up to date'));
|
|
291
|
+
}
|
|
292
|
+
}
|
|
293
|
+
}
|
|
294
|
+
// ============================================================================
|
|
295
|
+
// Auto-Update Check
|
|
296
|
+
// ============================================================================
|
|
297
|
+
function getSchemaConfig() {
|
|
298
|
+
const config = (0, config_1.loadConfig)();
|
|
299
|
+
return config.schema || {};
|
|
300
|
+
}
|
|
301
|
+
function saveSchemaConfig(schemaConfig) {
|
|
302
|
+
const config = (0, config_1.loadConfig)();
|
|
303
|
+
config.schema = schemaConfig;
|
|
304
|
+
(0, config_1.saveConfig)(config);
|
|
305
|
+
}
|
|
306
|
+
function updateLastCheckTime() {
|
|
307
|
+
const schemaConfig = getSchemaConfig();
|
|
308
|
+
schemaConfig.lastCheck = new Date().toISOString();
|
|
309
|
+
saveSchemaConfig(schemaConfig);
|
|
310
|
+
}
|
|
311
|
+
function shouldAutoCheck() {
|
|
312
|
+
const schemaConfig = getSchemaConfig();
|
|
313
|
+
if (!schemaConfig.lastCheck) {
|
|
314
|
+
return true;
|
|
315
|
+
}
|
|
316
|
+
const lastCheck = new Date(schemaConfig.lastCheck).getTime();
|
|
317
|
+
const now = Date.now();
|
|
318
|
+
return now - lastCheck > CHECK_INTERVAL_MS;
|
|
319
|
+
}
|
|
320
|
+
function checkAutoUpdate(logger) {
|
|
321
|
+
if (!shouldAutoCheck()) {
|
|
322
|
+
return;
|
|
323
|
+
}
|
|
324
|
+
// Run async check in background (non-blocking)
|
|
325
|
+
checkForUpdatesAsync(logger).catch(() => {
|
|
326
|
+
// Silently ignore errors during auto-check
|
|
327
|
+
});
|
|
328
|
+
}
|
|
329
|
+
async function checkForUpdatesAsync(logger) {
|
|
330
|
+
const schemasDir = getBundledSchemasDir();
|
|
331
|
+
let hasUpdates = false;
|
|
332
|
+
for (const schemaInfo of BUNDLED_SCHEMAS) {
|
|
333
|
+
const url = `${SCHEMA_BASE_URL}/${schemaInfo.file}`;
|
|
334
|
+
const localPath = path.join(schemasDir, schemaInfo.file);
|
|
335
|
+
try {
|
|
336
|
+
const response = await fetchWithTimeout(url, 5000);
|
|
337
|
+
if (!response.ok) {
|
|
338
|
+
continue;
|
|
339
|
+
}
|
|
340
|
+
const remoteContent = await response.text();
|
|
341
|
+
const remoteSchema = JSON.parse(remoteContent);
|
|
342
|
+
// Compare with local
|
|
343
|
+
if (fs.existsSync(localPath)) {
|
|
344
|
+
const localContent = fs.readFileSync(localPath, 'utf-8');
|
|
345
|
+
const localSchema = JSON.parse(localContent);
|
|
346
|
+
const remoteStr = JSON.stringify(remoteSchema);
|
|
347
|
+
const localStr = JSON.stringify(localSchema);
|
|
348
|
+
if (remoteStr !== localStr) {
|
|
349
|
+
hasUpdates = true;
|
|
350
|
+
break;
|
|
351
|
+
}
|
|
352
|
+
}
|
|
353
|
+
}
|
|
354
|
+
catch {
|
|
355
|
+
// Silently ignore errors during auto-check
|
|
356
|
+
}
|
|
357
|
+
}
|
|
358
|
+
// Update last check time
|
|
359
|
+
updateLastCheckTime();
|
|
360
|
+
// Notify user if updates available
|
|
361
|
+
if (hasUpdates) {
|
|
362
|
+
logger.log('');
|
|
363
|
+
logger.log(chalk_1.default.yellow('Hint: ') +
|
|
364
|
+
'Schema updates available. Run ' +
|
|
365
|
+
chalk_1.default.cyan('brainfile schema update') +
|
|
366
|
+
' to update.');
|
|
367
|
+
}
|
|
368
|
+
}
|
|
369
|
+
//# sourceMappingURL=schema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/commands/schema.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/show.d.ts
CHANGED
|
@@ -1,12 +1,16 @@
|
|
|
1
|
+
import { type Task } from '@brainfile/core';
|
|
1
2
|
import { type Logger } from '../utils/logger';
|
|
2
3
|
export interface ShowOptions {
|
|
3
4
|
file: string;
|
|
4
5
|
task?: string;
|
|
6
|
+
json?: boolean;
|
|
5
7
|
}
|
|
6
8
|
export interface ShowResult {
|
|
7
9
|
success: true;
|
|
8
10
|
taskId: string;
|
|
9
11
|
archived: boolean;
|
|
12
|
+
task?: Task;
|
|
13
|
+
column?: string;
|
|
10
14
|
}
|
|
11
15
|
/**
|
|
12
16
|
* Show full details of a single task.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"show.d.ts","sourceRoot":"","sources":["../../src/commands/show.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"show.d.ts","sourceRoot":"","sources":["../../src/commands/show.ts"],"names":[],"mappings":"AAEA,OAAO,EAA2B,KAAK,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAErE,OAAO,EAAiB,KAAK,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAW7D,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,IAAI,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,OAAO,CAAC;IAClB,IAAI,CAAC,EAAE,IAAI,CAAC;IACZ,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,WAAW,EAAE,MAAM,GAAE,MAAsB,GAAG,UAAU,CAyE5F"}
|
package/dist/commands/show.js
CHANGED
|
@@ -65,12 +65,22 @@ function showCommand(options, logger = logger_1.defaultLogger) {
|
|
|
65
65
|
const board = parsed.board;
|
|
66
66
|
const taskInfo = (0, core_1.findTaskById)(board, options.task);
|
|
67
67
|
if (taskInfo) {
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
68
|
+
if (options.json) {
|
|
69
|
+
const jsonOutput = {
|
|
70
|
+
...taskInfo.task,
|
|
71
|
+
column: taskInfo.column.title,
|
|
72
|
+
archived: false,
|
|
73
|
+
};
|
|
74
|
+
logger.log(JSON.stringify(jsonOutput, null, 2));
|
|
75
|
+
}
|
|
76
|
+
else {
|
|
77
|
+
renderTask({
|
|
78
|
+
task: taskInfo.task,
|
|
79
|
+
columnTitle: taskInfo.column.title,
|
|
80
|
+
archived: false,
|
|
81
|
+
}, logger);
|
|
82
|
+
}
|
|
83
|
+
return { success: true, taskId: taskInfo.task.id, archived: false, task: taskInfo.task, column: taskInfo.column.title };
|
|
74
84
|
}
|
|
75
85
|
// Fallback: search the separate archive file (brainfile-archive.md)
|
|
76
86
|
const { tasks: archivedTasks, archivePath, error } = (0, archive_1.loadArchivedTasks)(filePath);
|
|
@@ -79,13 +89,23 @@ function showCommand(options, logger = logger_1.defaultLogger) {
|
|
|
79
89
|
}
|
|
80
90
|
const archivedTask = archivedTasks.find((t) => t.id === options.task);
|
|
81
91
|
if (archivedTask) {
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
92
|
+
if (options.json) {
|
|
93
|
+
const jsonOutput = {
|
|
94
|
+
...archivedTask,
|
|
95
|
+
column: 'Archive',
|
|
96
|
+
archived: true,
|
|
97
|
+
};
|
|
98
|
+
logger.log(JSON.stringify(jsonOutput, null, 2));
|
|
99
|
+
}
|
|
100
|
+
else {
|
|
101
|
+
renderTask({
|
|
102
|
+
task: archivedTask,
|
|
103
|
+
columnTitle: 'Archive',
|
|
104
|
+
archived: true,
|
|
105
|
+
archivePath,
|
|
106
|
+
}, logger);
|
|
107
|
+
}
|
|
108
|
+
return { success: true, taskId: archivedTask.id, archived: true, task: archivedTask, column: 'Archive' };
|
|
89
109
|
}
|
|
90
110
|
// Not found anywhere → throw a helpful error with available IDs
|
|
91
111
|
const available = [];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"show.js","sourceRoot":"","sources":["../../src/commands/show.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"show.js","sourceRoot":"","sources":["../../src/commands/show.ts"],"names":[],"mappings":"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"}
|
|
@@ -21,6 +21,10 @@ export interface ContractDeliverResult {
|
|
|
21
21
|
action: 'deliver';
|
|
22
22
|
board: Board;
|
|
23
23
|
}
|
|
24
|
+
export interface ValidationWarning {
|
|
25
|
+
command: string;
|
|
26
|
+
message: string;
|
|
27
|
+
}
|
|
24
28
|
export interface ContractValidateResult {
|
|
25
29
|
action: 'validate';
|
|
26
30
|
board: Board;
|
|
@@ -31,6 +35,7 @@ export interface ContractValidateResult {
|
|
|
31
35
|
error?: string;
|
|
32
36
|
}>;
|
|
33
37
|
commandResults: ValidationCommandResult[];
|
|
38
|
+
warnings: ValidationWarning[];
|
|
34
39
|
ok: boolean;
|
|
35
40
|
}
|
|
36
41
|
export type ContractRunnerResult = ContractPickupResult | ContractDeliverResult | ContractValidateResult;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contractRunner.d.ts","sourceRoot":"","sources":["../../src/lib/contractRunner.ts"],"names":[],"mappings":"AAGA,OAAO,EAML,KAAK,KAAK,EACV,KAAK,QAAQ,EACb,KAAK,WAAW,EACjB,MAAM,iBAAiB,CAAC;AAEzB,MAAM,MAAM,cAAc,GAAG,QAAQ,GAAG,SAAS,GAAG,UAAU,CAAC;AAE/D,MAAM,WAAW,kBAAkB;IACjC,2BAA2B;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,8BAA8B;IAC9B,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,uBAAuB;IACtC,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,QAAQ,CAAC;IACjB,KAAK,EAAE,KAAK,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,SAAS,CAAC;IAClB,KAAK,EAAE,KAAK,CAAC;CACd;AAED,MAAM,WAAW,sBAAsB;IACrC,MAAM,EAAE,UAAU,CAAC;IACnB,KAAK,EAAE,KAAK,CAAC;IACb,iBAAiB,EAAE,KAAK,CAAC;QACvB,WAAW,EAAE,WAAW,CAAC;QACzB,EAAE,EAAE,OAAO,CAAC;QACZ,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC,CAAC;IACH,cAAc,EAAE,uBAAuB,EAAE,CAAC;IAC1C,EAAE,EAAE,OAAO,CAAC;CACb;
|
|
1
|
+
{"version":3,"file":"contractRunner.d.ts","sourceRoot":"","sources":["../../src/lib/contractRunner.ts"],"names":[],"mappings":"AAGA,OAAO,EAML,KAAK,KAAK,EACV,KAAK,QAAQ,EACb,KAAK,WAAW,EACjB,MAAM,iBAAiB,CAAC;AAEzB,MAAM,MAAM,cAAc,GAAG,QAAQ,GAAG,SAAS,GAAG,UAAU,CAAC;AAE/D,MAAM,WAAW,kBAAkB;IACjC,2BAA2B;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,8BAA8B;IAC9B,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,uBAAuB;IACtC,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,QAAQ,CAAC;IACjB,KAAK,EAAE,KAAK,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,SAAS,CAAC;IAClB,KAAK,EAAE,KAAK,CAAC;CACd;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,sBAAsB;IACrC,MAAM,EAAE,UAAU,CAAC;IACnB,KAAK,EAAE,KAAK,CAAC;IACb,iBAAiB,EAAE,KAAK,CAAC;QACvB,WAAW,EAAE,WAAW,CAAC;QACzB,EAAE,EAAE,OAAO,CAAC;QACZ,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC,CAAC;IACH,cAAc,EAAE,uBAAuB,EAAE,CAAC;IAC1C,QAAQ,EAAE,iBAAiB,EAAE,CAAC;IAC9B,EAAE,EAAE,OAAO,CAAC;CACb;AAwBD,MAAM,MAAM,oBAAoB,GAC5B,oBAAoB,GACpB,qBAAqB,GACrB,sBAAsB,CAAC;AAiC3B,wBAAgB,6BAA6B,CAAC,MAAM,EAAE;IACpD,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,QAAQ,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;CACzB,GAAG,MAAM,CA2ET;AAED,wBAAgB,cAAc,CAAC,GAAG,EAAE,kBAAkB,GAAG,oBAAoB,GAAG;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,CA0ChG;AAED,wBAAgB,eAAe,CAAC,GAAG,EAAE,kBAAkB,GAAG,qBAAqB,GAAG;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,CAkBlG;AAED,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,kBAAkB,GAAG,sBAAsB,GAAG;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,CA2GpG"}
|
|
@@ -41,6 +41,26 @@ const fs = __importStar(require("fs"));
|
|
|
41
41
|
const path = __importStar(require("path"));
|
|
42
42
|
const child_process_1 = require("child_process");
|
|
43
43
|
const core_1 = require("@brainfile/core");
|
|
44
|
+
/**
|
|
45
|
+
* Detects if a command changes directories, which can cause brainfile resolution issues.
|
|
46
|
+
* Returns a warning message if detected, undefined otherwise.
|
|
47
|
+
*/
|
|
48
|
+
function detectDirectoryChangeWarning(command) {
|
|
49
|
+
// Patterns that change directory
|
|
50
|
+
const patterns = [
|
|
51
|
+
/\bcd\s+[^\s;|&]+/, // cd path
|
|
52
|
+
/\bpushd\s+/, // pushd
|
|
53
|
+
/\bchdir\s+/, // chdir (less common)
|
|
54
|
+
];
|
|
55
|
+
for (const pattern of patterns) {
|
|
56
|
+
if (pattern.test(command)) {
|
|
57
|
+
return `Command changes directory which may cause brainfile CLI to find a different brainfile. ` +
|
|
58
|
+
`If this command invokes brainfile CLI, use -f to specify the brainfile path explicitly, ` +
|
|
59
|
+
`or run the command from project root without cd.`;
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
return undefined;
|
|
63
|
+
}
|
|
44
64
|
function readBoardFromFile(filePath) {
|
|
45
65
|
const resolvedPath = path.resolve(filePath);
|
|
46
66
|
if (!fs.existsSync(resolvedPath)) {
|
|
@@ -215,7 +235,12 @@ function validateContract(ctx) {
|
|
|
215
235
|
return { error: contractInfo.error };
|
|
216
236
|
const contract = contractInfo.contract;
|
|
217
237
|
const brainfileAbs = path.resolve(resolvedFilePath);
|
|
218
|
-
const
|
|
238
|
+
const brainfileDir = path.dirname(brainfileAbs);
|
|
239
|
+
// If brainfile is inside .brainfile/, use parent as project root
|
|
240
|
+
// This ensures paths like "cli/src/file.ts" resolve from project root, not .brainfile/
|
|
241
|
+
const baseDir = path.basename(brainfileDir) === '.brainfile'
|
|
242
|
+
? path.dirname(brainfileDir)
|
|
243
|
+
: brainfileDir;
|
|
219
244
|
const deliverables = contract.deliverables ?? [];
|
|
220
245
|
const deliverableChecks = [];
|
|
221
246
|
// Check file deliverables exist
|
|
@@ -242,6 +267,7 @@ function validateContract(ctx) {
|
|
|
242
267
|
// If any deliverable failed, fail fast (and do not run commands)
|
|
243
268
|
const deliverablesOk = deliverableChecks.every((c) => c.ok);
|
|
244
269
|
const commandResults = [];
|
|
270
|
+
const warnings = [];
|
|
245
271
|
let ok = deliverablesOk;
|
|
246
272
|
if (ok) {
|
|
247
273
|
const commands = contract.validation?.commands ?? [];
|
|
@@ -252,6 +278,11 @@ function validateContract(ctx) {
|
|
|
252
278
|
ok = false;
|
|
253
279
|
break;
|
|
254
280
|
}
|
|
281
|
+
// Check for directory-changing commands that may cause issues
|
|
282
|
+
const dirWarning = detectDirectoryChangeWarning(normalized.value);
|
|
283
|
+
if (dirWarning) {
|
|
284
|
+
warnings.push({ command: normalized.value, message: dirWarning });
|
|
285
|
+
}
|
|
255
286
|
const res = (0, child_process_1.spawnSync)(normalized.value, {
|
|
256
287
|
shell: true,
|
|
257
288
|
cwd: baseDir,
|
|
@@ -281,6 +312,7 @@ function validateContract(ctx) {
|
|
|
281
312
|
board: statusResult.board,
|
|
282
313
|
deliverableChecks,
|
|
283
314
|
commandResults,
|
|
315
|
+
warnings,
|
|
284
316
|
ok,
|
|
285
317
|
};
|
|
286
318
|
}
|