@magic-ingredients/tiny-brain-local 0.13.1 ā 0.14.10
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/agents/formatters/claude-code-formatter.js +0 -1
- package/dist/agents/formatters/formatter-factory.js +0 -1
- package/dist/agents/types.js +0 -1
- package/dist/core/console-logger.js +0 -1
- package/dist/core/file-logger.js +0 -1
- package/dist/core/mcp-server.js +0 -1
- package/dist/index.d.ts +22 -8
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +20 -151
- package/dist/prompts/index.js +0 -1
- package/dist/prompts/persona/persona.prompt.js +0 -1
- package/dist/prompts/planning/planning.prompt.js +0 -1
- package/dist/prompts/prompt-registry.js +0 -1
- package/dist/prompts/rules/rules.prompt.js +0 -1
- package/dist/prompts/thinking/thinking.prompt.js +0 -1
- package/dist/services/UpdateService.js +0 -1
- package/dist/services/agent-installation-service.js +0 -1
- package/dist/services/agent-manager.js +0 -1
- package/dist/services/agent-service.js +0 -1
- package/dist/services/analyse-service.d.ts +52 -8
- package/dist/services/analyse-service.d.ts.map +1 -1
- package/dist/services/analyse-service.js +325 -66
- package/dist/services/credential-storage.service.js +0 -1
- package/dist/services/dashboard-launcher.service.js +0 -1
- package/dist/services/persona-enhancer.js +0 -1
- package/dist/services/persona-service.js +0 -1
- package/dist/services/remote/auth-token-service.js +0 -1
- package/dist/services/remote/persona-sync-service.js +0 -1
- package/dist/services/remote/system-persona-service.js +0 -1
- package/dist/services/repo-service.d.ts.map +1 -1
- package/dist/services/repo-service.js +31 -25
- package/dist/services/versioning-service.js +0 -1
- package/dist/storage/local-filesystem-adapter.js +0 -1
- package/dist/storage/platform-config-adapter.js +0 -1
- package/dist/storage/platform-path-builder.js +0 -1
- package/dist/storage/storage-path-builder.js +0 -1
- package/dist/tools/analyse-request/analyse-request.tool.js +0 -1
- package/dist/tools/analyse.tool.d.ts +4 -0
- package/dist/tools/analyse.tool.d.ts.map +1 -1
- package/dist/tools/analyse.tool.js +34 -3
- package/dist/tools/config/config.tool.d.ts +3 -0
- package/dist/tools/config/config.tool.d.ts.map +1 -1
- package/dist/tools/config/config.tool.js +139 -70
- package/dist/tools/config/index.js +0 -1
- package/dist/tools/index.d.ts +4 -4
- package/dist/tools/index.js +0 -1
- package/dist/tools/persona/as.tool.js +0 -1
- package/dist/tools/persona/persona.tool.js +0 -1
- package/dist/tools/plan/plan.tool.d.ts +4 -0
- package/dist/tools/plan/plan.tool.d.ts.map +1 -1
- package/dist/tools/plan/plan.tool.js +144 -32
- package/dist/tools/rules/rules.tool.js +0 -1
- package/dist/tools/strategy/strategy.tool.js +0 -1
- package/dist/tools/thinking/thinking.tool.js +0 -1
- package/dist/tools/tool-registry.js +0 -1
- package/dist/tools/update/update.tool.js +0 -1
- package/dist/tools/validate-response/validate-response.tool.js +0 -1
- package/dist/types/local-context.js +0 -1
- package/dist/types/request-context.d.ts +1 -1
- package/dist/types/request-context.d.ts.map +1 -1
- package/dist/types/request-context.js +0 -1
- package/dist/utils/package-version.js +0 -1
- package/dist/utils/repo-utils.js +0 -1
- package/package.json +8 -32
- package/LICENSE +0 -21
- package/README.md +0 -260
- package/dist/agents/formatters/claude-code-formatter.js.map +0 -1
- package/dist/agents/formatters/formatter-factory.js.map +0 -1
- package/dist/agents/types.js.map +0 -1
- package/dist/analyser/analyzers/script-analyzer.d.ts +0 -10
- package/dist/analyser/analyzers/script-analyzer.d.ts.map +0 -1
- package/dist/analyser/analyzers/script-analyzer.js +0 -205
- package/dist/analyser/analyzers/script-analyzer.js.map +0 -1
- package/dist/analyser/detectors/base-detector.d.ts +0 -12
- package/dist/analyser/detectors/base-detector.d.ts.map +0 -1
- package/dist/analyser/detectors/base-detector.js +0 -50
- package/dist/analyser/detectors/base-detector.js.map +0 -1
- package/dist/analyser/detectors/javascript-detector.d.ts +0 -19
- package/dist/analyser/detectors/javascript-detector.d.ts.map +0 -1
- package/dist/analyser/detectors/javascript-detector.js +0 -347
- package/dist/analyser/detectors/javascript-detector.js.map +0 -1
- package/dist/analyser/index.d.ts +0 -5
- package/dist/analyser/index.d.ts.map +0 -1
- package/dist/analyser/index.js +0 -315
- package/dist/analyser/index.js.map +0 -1
- package/dist/analyser/types.d.ts +0 -2
- package/dist/analyser/types.d.ts.map +0 -1
- package/dist/analyser/types.js +0 -2
- package/dist/analyser/types.js.map +0 -1
- package/dist/analyser/utils.d.ts +0 -5
- package/dist/analyser/utils.d.ts.map +0 -1
- package/dist/analyser/utils.js +0 -24
- package/dist/analyser/utils.js.map +0 -1
- package/dist/cli/cli-factory.d.ts +0 -3
- package/dist/cli/cli-factory.d.ts.map +0 -1
- package/dist/cli/cli-factory.js +0 -235
- package/dist/cli/cli-factory.js.map +0 -1
- package/dist/cli/commands/analyse.command.d.ts +0 -18
- package/dist/cli/commands/analyse.command.d.ts.map +0 -1
- package/dist/cli/commands/analyse.command.js +0 -161
- package/dist/cli/commands/analyse.command.js.map +0 -1
- package/dist/cli/commands/config.command.d.ts +0 -25
- package/dist/cli/commands/config.command.d.ts.map +0 -1
- package/dist/cli/commands/config.command.js +0 -285
- package/dist/cli/commands/config.command.js.map +0 -1
- package/dist/cli/commands/install.command.d.ts +0 -23
- package/dist/cli/commands/install.command.d.ts.map +0 -1
- package/dist/cli/commands/install.command.js +0 -189
- package/dist/cli/commands/install.command.js.map +0 -1
- package/dist/cli/commands/list.command.d.ts +0 -15
- package/dist/cli/commands/list.command.d.ts.map +0 -1
- package/dist/cli/commands/list.command.js +0 -90
- package/dist/cli/commands/list.command.js.map +0 -1
- package/dist/cli/commands/status.command.d.ts +0 -25
- package/dist/cli/commands/status.command.d.ts.map +0 -1
- package/dist/cli/commands/status.command.js +0 -367
- package/dist/cli/commands/status.command.js.map +0 -1
- package/dist/cli/commands/track-commit.command.d.ts +0 -52
- package/dist/cli/commands/track-commit.command.d.ts.map +0 -1
- package/dist/cli/commands/track-commit.command.js +0 -239
- package/dist/cli/commands/track-commit.command.js.map +0 -1
- package/dist/cli/commands/uninstall.command.d.ts +0 -23
- package/dist/cli/commands/uninstall.command.d.ts.map +0 -1
- package/dist/cli/commands/uninstall.command.js +0 -176
- package/dist/cli/commands/uninstall.command.js.map +0 -1
- package/dist/cli/commands/validate-commit-message.command.d.ts +0 -47
- package/dist/cli/commands/validate-commit-message.command.d.ts.map +0 -1
- package/dist/cli/commands/validate-commit-message.command.js +0 -223
- package/dist/cli/commands/validate-commit-message.command.js.map +0 -1
- package/dist/cli/installers/base-installer.d.ts +0 -20
- package/dist/cli/installers/base-installer.d.ts.map +0 -1
- package/dist/cli/installers/base-installer.js +0 -3
- package/dist/cli/installers/base-installer.js.map +0 -1
- package/dist/cli/installers/chatgpt-installer.d.ts +0 -18
- package/dist/cli/installers/chatgpt-installer.d.ts.map +0 -1
- package/dist/cli/installers/chatgpt-installer.js +0 -45
- package/dist/cli/installers/chatgpt-installer.js.map +0 -1
- package/dist/cli/installers/claude-code-installer.d.ts +0 -23
- package/dist/cli/installers/claude-code-installer.d.ts.map +0 -1
- package/dist/cli/installers/claude-code-installer.js +0 -127
- package/dist/cli/installers/claude-code-installer.js.map +0 -1
- package/dist/cli/installers/claude-desktop-installer.d.ts +0 -18
- package/dist/cli/installers/claude-desktop-installer.d.ts.map +0 -1
- package/dist/cli/installers/claude-desktop-installer.js +0 -48
- package/dist/cli/installers/claude-desktop-installer.js.map +0 -1
- package/dist/cli/installers/cursor-installer.d.ts +0 -18
- package/dist/cli/installers/cursor-installer.d.ts.map +0 -1
- package/dist/cli/installers/cursor-installer.js +0 -45
- package/dist/cli/installers/cursor-installer.js.map +0 -1
- package/dist/cli/installers/installer-factory.d.ts +0 -30
- package/dist/cli/installers/installer-factory.d.ts.map +0 -1
- package/dist/cli/installers/installer-factory.js +0 -90
- package/dist/cli/installers/installer-factory.js.map +0 -1
- package/dist/cli/utils/node-resolver.d.ts +0 -53
- package/dist/cli/utils/node-resolver.d.ts.map +0 -1
- package/dist/cli/utils/node-resolver.js +0 -200
- package/dist/cli/utils/node-resolver.js.map +0 -1
- package/dist/cli/utils/package-locator.d.ts +0 -9
- package/dist/cli/utils/package-locator.d.ts.map +0 -1
- package/dist/cli/utils/package-locator.js +0 -81
- package/dist/cli/utils/package-locator.js.map +0 -1
- package/dist/cli/utils/system-info.d.ts +0 -20
- package/dist/cli/utils/system-info.d.ts.map +0 -1
- package/dist/cli/utils/system-info.js +0 -90
- package/dist/cli/utils/system-info.js.map +0 -1
- package/dist/cli.d.ts +0 -3
- package/dist/cli.d.ts.map +0 -1
- package/dist/cli.js +0 -27
- package/dist/cli.js.map +0 -1
- package/dist/core/console-logger.js.map +0 -1
- package/dist/core/file-logger.js.map +0 -1
- package/dist/core/mcp-server.js.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/prompts/index.js.map +0 -1
- package/dist/prompts/persona/persona.prompt.js.map +0 -1
- package/dist/prompts/planning/planning.prompt.js.map +0 -1
- package/dist/prompts/prompt-registry.js.map +0 -1
- package/dist/prompts/rules/rules.prompt.js.map +0 -1
- package/dist/prompts/thinking/thinking.prompt.js.map +0 -1
- package/dist/services/UpdateService.js.map +0 -1
- package/dist/services/adr-service.d.ts +0 -70
- package/dist/services/adr-service.d.ts.map +0 -1
- package/dist/services/adr-service.js +0 -242
- package/dist/services/adr-service.js.map +0 -1
- package/dist/services/agent-installation-service.js.map +0 -1
- package/dist/services/agent-manager.js.map +0 -1
- package/dist/services/agent-service.js.map +0 -1
- package/dist/services/analyse-service.js.map +0 -1
- package/dist/services/credential-storage.service.js.map +0 -1
- package/dist/services/dashboard-launcher.service.js.map +0 -1
- package/dist/services/persona-enhancer.js.map +0 -1
- package/dist/services/persona-grouper.d.ts +0 -29
- package/dist/services/persona-grouper.d.ts.map +0 -1
- package/dist/services/persona-grouper.js +0 -111
- package/dist/services/persona-grouper.js.map +0 -1
- package/dist/services/persona-service.js.map +0 -1
- package/dist/services/remote/auth-token-service.js.map +0 -1
- package/dist/services/remote/persona-sync-service.js.map +0 -1
- package/dist/services/remote/system-persona-service.js.map +0 -1
- package/dist/services/repo-service.js.map +0 -1
- package/dist/services/types/persona-types.d.ts +0 -84
- package/dist/services/types/persona-types.d.ts.map +0 -1
- package/dist/services/types/persona-types.js +0 -5
- package/dist/services/types/persona-types.js.map +0 -1
- package/dist/services/versioning-service.js.map +0 -1
- package/dist/storage/local-filesystem-adapter.js.map +0 -1
- package/dist/storage/platform-config-adapter.js.map +0 -1
- package/dist/storage/platform-path-builder.js.map +0 -1
- package/dist/storage/storage-path-builder.js.map +0 -1
- package/dist/test-setup.d.ts +0 -2
- package/dist/test-setup.d.ts.map +0 -1
- package/dist/test-setup.js +0 -12
- package/dist/test-setup.js.map +0 -1
- package/dist/tools/analyse-request/analyse-request.tool.js.map +0 -1
- package/dist/tools/analyse.tool.js.map +0 -1
- package/dist/tools/config/config.tool.js.map +0 -1
- package/dist/tools/config/index.js.map +0 -1
- package/dist/tools/index.js.map +0 -1
- package/dist/tools/persona/as.tool.js.map +0 -1
- package/dist/tools/persona/persona.tool.js.map +0 -1
- package/dist/tools/plan/plan.tool.js.map +0 -1
- package/dist/tools/rules/rules.tool.js.map +0 -1
- package/dist/tools/strategy/strategy.tool.js.map +0 -1
- package/dist/tools/thinking/thinking.tool.js.map +0 -1
- package/dist/tools/tool-registry.js.map +0 -1
- package/dist/tools/update/update.tool.js.map +0 -1
- package/dist/tools/validate-response/validate-response.tool.js.map +0 -1
- package/dist/types/local-context.js.map +0 -1
- package/dist/types/request-context.js.map +0 -1
- package/dist/utils/adr-pattern-detector.d.ts +0 -38
- package/dist/utils/adr-pattern-detector.d.ts.map +0 -1
- package/dist/utils/adr-pattern-detector.js +0 -158
- package/dist/utils/adr-pattern-detector.js.map +0 -1
- package/dist/utils/adr-suggestion-generator.d.ts +0 -50
- package/dist/utils/adr-suggestion-generator.d.ts.map +0 -1
- package/dist/utils/adr-suggestion-generator.js +0 -63
- package/dist/utils/adr-suggestion-generator.js.map +0 -1
- package/dist/utils/commit-parser.d.ts +0 -25
- package/dist/utils/commit-parser.d.ts.map +0 -1
- package/dist/utils/commit-parser.js +0 -46
- package/dist/utils/commit-parser.js.map +0 -1
- package/dist/utils/package-version.js.map +0 -1
- package/dist/utils/repo-utils.js.map +0 -1
- package/templates/adr/README.md +0 -243
- package/templates/adr/_template/0001-record-architecture-decisions.md +0 -223
- package/templates/adr/_template/ADR_CREATION_INSTRUCTIONS.md +0 -234
- package/templates/adr/_template/adr-schema.json +0 -74
- package/templates/adr/_template/adr-template.md +0 -136
- package/templates/prd/PRD_CREATION_INSTRUCTIONS.md +0 -268
- package/templates/prd/README.md +0 -252
- package/templates/prd/_template/feature-template.md +0 -105
- package/templates/prd/_template/prd-template.md +0 -126
- package/templates/prd/example-task-management/features/task-collaboration.md +0 -84
- package/templates/prd/example-task-management/features/task-crud.md +0 -222
- package/templates/prd/example-task-management/features/task-workflow.md +0 -62
- package/templates/prd/example-task-management/prd.md +0 -177
- package/templates/prd/feature-schema.json +0 -54
- package/templates/prd/prd-schema.json +0 -60
|
@@ -1,239 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Track Commit Command
|
|
3
|
-
*
|
|
4
|
-
* Hidden CLI command called by git hooks to track commit SHAs.
|
|
5
|
-
* Maps commit message prefixes to TDD phases and updates feature markdown files.
|
|
6
|
-
*/
|
|
7
|
-
import chalk from 'chalk';
|
|
8
|
-
import { exec } from 'node:child_process';
|
|
9
|
-
import { promisify } from 'node:util';
|
|
10
|
-
const execAsync = promisify(exec);
|
|
11
|
-
export class TrackCommitCommand {
|
|
12
|
-
planningService;
|
|
13
|
-
configService;
|
|
14
|
-
execFn;
|
|
15
|
-
constructor(_context, planningService, configService, execFn) {
|
|
16
|
-
this.planningService = planningService;
|
|
17
|
-
this.configService = configService;
|
|
18
|
-
this.execFn = execFn || execAsync;
|
|
19
|
-
}
|
|
20
|
-
/**
|
|
21
|
-
* Detect TDD phase from commit message prefix
|
|
22
|
-
* Supports conventional commit format with optional scope:
|
|
23
|
-
* - test: or test(scope):
|
|
24
|
-
* - feat: or feat(scope):
|
|
25
|
-
* - fix: or fix(scope):
|
|
26
|
-
* - refactor: or refactor(scope):
|
|
27
|
-
*
|
|
28
|
-
* See: https://www.conventionalcommits.org/en/v1.0.0/
|
|
29
|
-
*/
|
|
30
|
-
async detectPhase(message) {
|
|
31
|
-
// Match conventional commit format: type(optional-scope):
|
|
32
|
-
// Examples: test:, test(api):, feat:, feat(auth):, fix:, fix(api):, refactor:, refactor(plan):
|
|
33
|
-
if (/^test(\([^)]+\))?:/i.test(message)) {
|
|
34
|
-
return 'test';
|
|
35
|
-
}
|
|
36
|
-
if (/^feat(\([^)]+\))?:/i.test(message)) {
|
|
37
|
-
return 'impl';
|
|
38
|
-
}
|
|
39
|
-
if (/^fix(\([^)]+\))?:/i.test(message)) {
|
|
40
|
-
return 'impl';
|
|
41
|
-
}
|
|
42
|
-
if (/^refactor(\([^)]+\))?:/i.test(message)) {
|
|
43
|
-
return 'refactor';
|
|
44
|
-
}
|
|
45
|
-
return null;
|
|
46
|
-
}
|
|
47
|
-
/**
|
|
48
|
-
* Parse commit headers for PRD, Feature, and Task metadata
|
|
49
|
-
* @returns Parsed headers or null if any required header is missing
|
|
50
|
-
*/
|
|
51
|
-
parseCommitHeaders(message) {
|
|
52
|
-
const prdMatch = message.match(/^PRD:\s*(.+)$/m);
|
|
53
|
-
const featureMatch = message.match(/^Feature:\s*(.+)$/m);
|
|
54
|
-
const taskMatch = message.match(/^Task:\s*(.+)$/m);
|
|
55
|
-
// All three headers are required
|
|
56
|
-
if (!prdMatch || !featureMatch || !taskMatch) {
|
|
57
|
-
return null;
|
|
58
|
-
}
|
|
59
|
-
return {
|
|
60
|
-
prdId: prdMatch[1].trim(),
|
|
61
|
-
featureId: featureMatch[1].trim(),
|
|
62
|
-
taskDescription: taskMatch[1].trim(),
|
|
63
|
-
};
|
|
64
|
-
}
|
|
65
|
-
/**
|
|
66
|
-
* Find task using explicit header metadata
|
|
67
|
-
*/
|
|
68
|
-
findTaskByHeaders(plan, featureId, taskDescription) {
|
|
69
|
-
// Find feature by ID
|
|
70
|
-
const feature = plan.features?.find((f) => f.id === featureId);
|
|
71
|
-
if (!feature) {
|
|
72
|
-
return null;
|
|
73
|
-
}
|
|
74
|
-
// Find task by exact description match
|
|
75
|
-
const task = feature.tasks?.find((t) => t.description === taskDescription);
|
|
76
|
-
if (!task) {
|
|
77
|
-
return null;
|
|
78
|
-
}
|
|
79
|
-
return {
|
|
80
|
-
featureNumber: feature.number,
|
|
81
|
-
taskId: task.id,
|
|
82
|
-
};
|
|
83
|
-
}
|
|
84
|
-
/**
|
|
85
|
-
* Execute the commit tracking
|
|
86
|
-
*/
|
|
87
|
-
async execute(options) {
|
|
88
|
-
console.log(chalk.blue(`[track-commit] Processing commit ${options.sha.substring(0, 7)}`));
|
|
89
|
-
try {
|
|
90
|
-
// Detect phase
|
|
91
|
-
const phase = await this.detectPhase(options.message);
|
|
92
|
-
// Silently ignore non-trackable commits
|
|
93
|
-
if (!phase) {
|
|
94
|
-
console.log(chalk.gray('[track-commit] No TDD phase detected (expected test:, feat:, fix:, or refactor: with optional scope) - skipping'));
|
|
95
|
-
return;
|
|
96
|
-
}
|
|
97
|
-
console.log(chalk.blue(`[track-commit] Detected phase: ${phase}`));
|
|
98
|
-
// Parse commit headers (required for repo-scoped PRDs)
|
|
99
|
-
const headers = this.parseCommitHeaders(options.message);
|
|
100
|
-
if (!headers) {
|
|
101
|
-
// No headers - silently ignore (commit not related to PRD tracking)
|
|
102
|
-
console.log(chalk.gray('[track-commit] No PRD headers found - skipping'));
|
|
103
|
-
if (options.verbose) {
|
|
104
|
-
console.error(chalk.yellow('ā ļø No PRD headers found in commit message'));
|
|
105
|
-
}
|
|
106
|
-
return;
|
|
107
|
-
}
|
|
108
|
-
console.log(chalk.blue(`[track-commit] PRD: ${headers.prdId}, Feature: ${headers.featureId}`));
|
|
109
|
-
console.log(chalk.blue(`[track-commit] Task: ${headers.taskDescription}`));
|
|
110
|
-
// Load plan by PRD ID from headers (use 'default' persona for repo-scoped plans)
|
|
111
|
-
let plan;
|
|
112
|
-
try {
|
|
113
|
-
plan = await this.planningService.loadPlanForPersona('default', headers.prdId);
|
|
114
|
-
console.log(chalk.green(`[track-commit] ā Loaded plan: ${plan.title}`));
|
|
115
|
-
}
|
|
116
|
-
catch (error) {
|
|
117
|
-
console.error(chalk.yellow(`[track-commit] ā ļø PRD not found: ${headers.prdId}`));
|
|
118
|
-
if (options.verbose) {
|
|
119
|
-
console.error(chalk.red(`[track-commit] Error: ${error.message}`));
|
|
120
|
-
}
|
|
121
|
-
return;
|
|
122
|
-
}
|
|
123
|
-
// Find task using headers (exact matching)
|
|
124
|
-
const match = this.findTaskByHeaders(plan, headers.featureId, headers.taskDescription);
|
|
125
|
-
if (!match) {
|
|
126
|
-
console.error(chalk.yellow(`[track-commit] ā ļø Task not found in feature "${headers.featureId}": ${headers.taskDescription}`));
|
|
127
|
-
if (options.verbose) {
|
|
128
|
-
console.error(chalk.yellow(`ā ļø Task not found in feature "${headers.featureId}": ${headers.taskDescription}`));
|
|
129
|
-
}
|
|
130
|
-
return;
|
|
131
|
-
}
|
|
132
|
-
console.log(chalk.green(`[track-commit] ā Found task in feature #${match.featureNumber}`));
|
|
133
|
-
// Get the current task to check existing commits
|
|
134
|
-
const feature = plan.features?.find((f) => f.number === match.featureNumber);
|
|
135
|
-
const currentTask = feature?.tasks?.find((t) => t.id === match.taskId);
|
|
136
|
-
// Build update object based on phase
|
|
137
|
-
const timestamp = new Date().toISOString();
|
|
138
|
-
const updateTask = {
|
|
139
|
-
id: match.taskId,
|
|
140
|
-
};
|
|
141
|
-
if (phase === 'test') {
|
|
142
|
-
updateTask.testCommitSha = options.sha;
|
|
143
|
-
updateTask.testCommittedAt = timestamp;
|
|
144
|
-
// Only transition to 'tested' if no impl commit exists yet
|
|
145
|
-
// If impl commit exists, keep status as 'completed'
|
|
146
|
-
if (!currentTask?.commitSha) {
|
|
147
|
-
console.log(chalk.blue('[track-commit] No impl commit exists - setting status to tested'));
|
|
148
|
-
updateTask.status = 'tested'; // Auto-transition to RED phase
|
|
149
|
-
}
|
|
150
|
-
else {
|
|
151
|
-
console.log(chalk.green(`[track-commit] Impl commit exists (${currentTask.commitSha.substring(0, 7)}) - preserving completed status`));
|
|
152
|
-
}
|
|
153
|
-
}
|
|
154
|
-
else if (phase === 'impl') {
|
|
155
|
-
updateTask.commitSha = options.sha;
|
|
156
|
-
updateTask.committedAt = timestamp;
|
|
157
|
-
updateTask.completedAt = timestamp;
|
|
158
|
-
updateTask.status = 'completed'; // Auto-transition to GREEN phase
|
|
159
|
-
}
|
|
160
|
-
else if (phase === 'refactor') {
|
|
161
|
-
updateTask.refactorCommitSha = options.sha;
|
|
162
|
-
updateTask.refactorCommittedAt = timestamp;
|
|
163
|
-
// Status remains 'completed' - no transition needed
|
|
164
|
-
}
|
|
165
|
-
// Update plan
|
|
166
|
-
console.log(chalk.blue(`[track-commit] Updating task with ${phase} commit SHA...`));
|
|
167
|
-
await this.planningService.updatePlan({
|
|
168
|
-
planId: plan.id,
|
|
169
|
-
updates: {
|
|
170
|
-
updateFeature: {
|
|
171
|
-
featureNumber: match.featureNumber,
|
|
172
|
-
updateTask,
|
|
173
|
-
},
|
|
174
|
-
},
|
|
175
|
-
});
|
|
176
|
-
console.log(chalk.green(`[track-commit] ā
Successfully tracked ${phase} commit ${options.sha.substring(0, 7)}`));
|
|
177
|
-
console.log(chalk.green(`[track-commit] ā
Updated progress.json (changes not committed)`));
|
|
178
|
-
if (options.verbose) {
|
|
179
|
-
console.log(chalk.green(`ā
Tracked ${phase} commit ${options.sha.substring(0, 7)} for task: ${headers.taskDescription}`));
|
|
180
|
-
}
|
|
181
|
-
// Check if auto-commit is enabled
|
|
182
|
-
if (this.configService) {
|
|
183
|
-
try {
|
|
184
|
-
const autoCommit = await this.configService.isAutoCommitProgressEnabled();
|
|
185
|
-
if (autoCommit) {
|
|
186
|
-
console.log(chalk.blue('[track-commit] Auto-commit enabled - committing progress.json changes'));
|
|
187
|
-
// Stage progress.json
|
|
188
|
-
await this.execFn('git add docs/prd/*/progress.json', { cwd: process.cwd() });
|
|
189
|
-
// Create commit for progress.json update
|
|
190
|
-
const commitMessage = `chore: update progress tracking for ${headers.prdId}
|
|
191
|
-
|
|
192
|
-
Auto-committed progress.json changes after tracking ${phase} commit ${options.sha.substring(0, 7)}
|
|
193
|
-
|
|
194
|
-
Task: ${headers.taskDescription}
|
|
195
|
-
Feature: ${headers.featureId}`;
|
|
196
|
-
await this.execFn(`git commit -m "${commitMessage.replace(/"/g, '\\"')}"`, { cwd: process.cwd() });
|
|
197
|
-
console.log(chalk.green('[track-commit] ā
Auto-committed progress.json changes'));
|
|
198
|
-
}
|
|
199
|
-
else {
|
|
200
|
-
// Auto-commit disabled - show user-friendly instructions
|
|
201
|
-
console.log('');
|
|
202
|
-
console.log(chalk.cyan('š Progress tracking updated!'));
|
|
203
|
-
console.log('');
|
|
204
|
-
console.log(chalk.gray(' To commit progress.json changes, run:'));
|
|
205
|
-
console.log(chalk.white(' git add docs/prd/*/progress.json'));
|
|
206
|
-
console.log(chalk.white(' git commit -m "chore: update progress tracking"'));
|
|
207
|
-
console.log('');
|
|
208
|
-
console.log(chalk.gray(' š” Tip: Enable auto-commit to skip this step:'));
|
|
209
|
-
console.log(chalk.white(' npx tiny-brain config preferences set autoCommitProgress true'));
|
|
210
|
-
console.log('');
|
|
211
|
-
}
|
|
212
|
-
}
|
|
213
|
-
catch (error) {
|
|
214
|
-
// Don't fail the whole command if auto-commit fails
|
|
215
|
-
console.log(chalk.yellow(`[track-commit] ā ļø Auto-commit failed: ${error.message}`));
|
|
216
|
-
console.log(chalk.gray('[track-commit] You can manually commit progress.json changes'));
|
|
217
|
-
}
|
|
218
|
-
}
|
|
219
|
-
else {
|
|
220
|
-
// ConfigService not available - show manual instructions
|
|
221
|
-
console.log('');
|
|
222
|
-
console.log(chalk.cyan('š Progress tracking updated!'));
|
|
223
|
-
console.log('');
|
|
224
|
-
console.log(chalk.gray(' To commit progress.json changes, run:'));
|
|
225
|
-
console.log(chalk.white(' git add docs/prd/*/progress.json'));
|
|
226
|
-
console.log(chalk.white(' git commit -m "chore: update progress tracking"'));
|
|
227
|
-
console.log('');
|
|
228
|
-
}
|
|
229
|
-
}
|
|
230
|
-
catch (error) {
|
|
231
|
-
// Fail silently to avoid blocking commits
|
|
232
|
-
console.error(chalk.red(`[track-commit] ā Error tracking commit: ${error.message}`));
|
|
233
|
-
if (options.verbose) {
|
|
234
|
-
console.error(chalk.red('ā Error tracking commit:'), error);
|
|
235
|
-
}
|
|
236
|
-
}
|
|
237
|
-
}
|
|
238
|
-
}
|
|
239
|
-
//# sourceMappingURL=track-commit.command.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"track-commit.command.js","sourceRoot":"","sources":["../../../src/cli/commands/track-commit.command.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
import { InstallerFactory } from '../installers/installer-factory.js';
|
|
2
|
-
import { ConfigScope } from '../../storage/platform-path-builder.js';
|
|
3
|
-
interface UninstallOptions {
|
|
4
|
-
platform?: string;
|
|
5
|
-
all?: boolean;
|
|
6
|
-
name?: string;
|
|
7
|
-
scope?: ConfigScope;
|
|
8
|
-
force?: boolean;
|
|
9
|
-
}
|
|
10
|
-
export declare class UninstallCommand {
|
|
11
|
-
private factory;
|
|
12
|
-
constructor(factory: InstallerFactory);
|
|
13
|
-
execute(options?: UninstallOptions): Promise<void>;
|
|
14
|
-
private determinePlatforms;
|
|
15
|
-
private getInstalledPlatforms;
|
|
16
|
-
private promptForPlatforms;
|
|
17
|
-
private confirmUninstall;
|
|
18
|
-
private getPlatformDisplayName;
|
|
19
|
-
private uninstallPlatforms;
|
|
20
|
-
private showSummary;
|
|
21
|
-
}
|
|
22
|
-
export {};
|
|
23
|
-
//# sourceMappingURL=uninstall.command.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"uninstall.command.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/uninstall.command.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAC;AACtE,OAAO,EAAE,WAAW,EAAE,MAAM,wCAAwC,CAAC;AAErE,UAAU,gBAAgB;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAQD,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,OAAO,CAAmB;gBAEtB,OAAO,EAAE,gBAAgB;IAI/B,OAAO,CAAC,OAAO,GAAE,gBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC;YA8B9C,kBAAkB;YAuBlB,qBAAqB;YASrB,kBAAkB;YAqClB,gBAAgB;IAe9B,OAAO,CAAC,sBAAsB;YAWhB,kBAAkB;IAkDhC,OAAO,CAAC,WAAW;CA6BpB"}
|
|
@@ -1,176 +0,0 @@
|
|
|
1
|
-
import chalk from 'chalk';
|
|
2
|
-
import inquirer from 'inquirer';
|
|
3
|
-
export class UninstallCommand {
|
|
4
|
-
factory;
|
|
5
|
-
constructor(factory) {
|
|
6
|
-
this.factory = factory;
|
|
7
|
-
}
|
|
8
|
-
async execute(options = {}) {
|
|
9
|
-
console.log(chalk.cyan.bold('\nšļø tiny-brain MCP Server Uninstaller\n'));
|
|
10
|
-
const serverName = options.name || 'tiny-brain';
|
|
11
|
-
// Determine which platforms to uninstall from
|
|
12
|
-
const platforms = await this.determinePlatforms(options);
|
|
13
|
-
if (platforms.length === 0) {
|
|
14
|
-
console.log(chalk.yellow('ā ļø No platforms selected for uninstallation'));
|
|
15
|
-
return;
|
|
16
|
-
}
|
|
17
|
-
// Confirm uninstallation unless --force flag is set
|
|
18
|
-
if (!options.force) {
|
|
19
|
-
const confirmed = await this.confirmUninstall(platforms, serverName);
|
|
20
|
-
if (!confirmed) {
|
|
21
|
-
console.log(chalk.yellow('\nā ļø Uninstallation cancelled'));
|
|
22
|
-
return;
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
// Uninstall from each selected platform
|
|
26
|
-
console.log(chalk.cyan(`\nšļø Uninstalling from ${platforms.length} platform(s)...\n`));
|
|
27
|
-
const results = await this.uninstallPlatforms(platforms, serverName, options);
|
|
28
|
-
// Show summary
|
|
29
|
-
this.showSummary(results);
|
|
30
|
-
}
|
|
31
|
-
async determinePlatforms(options) {
|
|
32
|
-
// If specific platform provided
|
|
33
|
-
if (options.platform) {
|
|
34
|
-
return [options.platform];
|
|
35
|
-
}
|
|
36
|
-
// Get installed platforms
|
|
37
|
-
const installedPlatforms = await this.getInstalledPlatforms();
|
|
38
|
-
if (installedPlatforms.length === 0) {
|
|
39
|
-
console.log(chalk.yellow('ā ļø tiny-brain is not installed on any platforms'));
|
|
40
|
-
return [];
|
|
41
|
-
}
|
|
42
|
-
// If --all flag is set
|
|
43
|
-
if (options.all) {
|
|
44
|
-
return installedPlatforms;
|
|
45
|
-
}
|
|
46
|
-
// Interactive mode
|
|
47
|
-
return await this.promptForPlatforms(installedPlatforms);
|
|
48
|
-
}
|
|
49
|
-
async getInstalledPlatforms() {
|
|
50
|
-
try {
|
|
51
|
-
const installers = await this.factory.getInstallersForInstalledPlatforms();
|
|
52
|
-
return installers.map(i => i.getPlatformName());
|
|
53
|
-
}
|
|
54
|
-
catch {
|
|
55
|
-
return [];
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
async promptForPlatforms(installedPlatforms) {
|
|
59
|
-
const choices = [
|
|
60
|
-
{
|
|
61
|
-
name: chalk.bold('šļø Uninstall All'),
|
|
62
|
-
value: 'all',
|
|
63
|
-
checked: false
|
|
64
|
-
},
|
|
65
|
-
...installedPlatforms.map(platform => ({
|
|
66
|
-
name: this.getPlatformDisplayName(platform),
|
|
67
|
-
value: platform,
|
|
68
|
-
checked: false
|
|
69
|
-
}))
|
|
70
|
-
];
|
|
71
|
-
const { platforms } = await inquirer.prompt([
|
|
72
|
-
{
|
|
73
|
-
type: 'checkbox',
|
|
74
|
-
name: 'platforms',
|
|
75
|
-
message: 'šÆ Select platforms to uninstall tiny-brain from:',
|
|
76
|
-
choices,
|
|
77
|
-
validate: (answer) => {
|
|
78
|
-
if (answer.length === 0) {
|
|
79
|
-
return 'You must select at least one platform';
|
|
80
|
-
}
|
|
81
|
-
return true;
|
|
82
|
-
}
|
|
83
|
-
}
|
|
84
|
-
]);
|
|
85
|
-
// Handle "Uninstall All" selection
|
|
86
|
-
if (platforms.includes('all')) {
|
|
87
|
-
return installedPlatforms;
|
|
88
|
-
}
|
|
89
|
-
return platforms;
|
|
90
|
-
}
|
|
91
|
-
async confirmUninstall(platforms, serverName) {
|
|
92
|
-
const platformList = platforms.map(p => ` ⢠${this.getPlatformDisplayName(p)}`).join('\n');
|
|
93
|
-
const { confirm } = await inquirer.prompt([
|
|
94
|
-
{
|
|
95
|
-
type: 'confirm',
|
|
96
|
-
name: 'confirm',
|
|
97
|
-
message: `Are you sure you want to uninstall "${serverName}" from:\n${platformList}\n`,
|
|
98
|
-
default: false
|
|
99
|
-
}
|
|
100
|
-
]);
|
|
101
|
-
return confirm;
|
|
102
|
-
}
|
|
103
|
-
getPlatformDisplayName(platform) {
|
|
104
|
-
const displayNames = {
|
|
105
|
-
'claude-code': 'š¤ Claude Code',
|
|
106
|
-
'claude-desktop': 'š» Claude Desktop',
|
|
107
|
-
'cursor': 'ā” Cursor IDE',
|
|
108
|
-
'chatgpt': 'š§ ChatGPT Desktop'
|
|
109
|
-
};
|
|
110
|
-
return displayNames[platform] || platform;
|
|
111
|
-
}
|
|
112
|
-
async uninstallPlatforms(platforms, serverName, options) {
|
|
113
|
-
const results = new Map();
|
|
114
|
-
for (const platform of platforms) {
|
|
115
|
-
console.log(chalk.cyan.bold(`\nšļø Uninstalling Tiny Brain from ${platform}...`));
|
|
116
|
-
try {
|
|
117
|
-
const installer = this.factory.getInstaller(platform);
|
|
118
|
-
console.log(chalk.gray(`š Locating configuration...`));
|
|
119
|
-
const configPath = installer.getConfigPath();
|
|
120
|
-
console.log(chalk.gray(` š Config path: ${configPath}`));
|
|
121
|
-
console.log(chalk.gray(`šļø Removing tiny-brain configuration...`));
|
|
122
|
-
await installer.uninstall(serverName, {
|
|
123
|
-
scope: options.scope || 'local'
|
|
124
|
-
});
|
|
125
|
-
// Verify uninstallation
|
|
126
|
-
console.log(chalk.gray(`š Verifying removal...`));
|
|
127
|
-
const stillInstalled = await installer.verify(serverName, { scope: options.scope || 'local' });
|
|
128
|
-
if (!stillInstalled) {
|
|
129
|
-
console.log(chalk.green.bold(`ā
Successfully uninstalled tiny-brain from ${this.getPlatformDisplayName(platform)}`));
|
|
130
|
-
results.set(platform, { success: true });
|
|
131
|
-
}
|
|
132
|
-
else {
|
|
133
|
-
console.log(chalk.yellow(`ā ļø Uninstalled but verification shows it still exists in ${this.getPlatformDisplayName(platform)}`));
|
|
134
|
-
console.log(chalk.gray(` š” You may need to manually edit ${configPath}`));
|
|
135
|
-
results.set(platform, { success: false, error: 'Verification failed' });
|
|
136
|
-
}
|
|
137
|
-
}
|
|
138
|
-
catch (error) {
|
|
139
|
-
const errorMessage = error instanceof Error ? error.message : 'Unknown error';
|
|
140
|
-
console.error(chalk.red(`ā Uninstall failed for ${this.getPlatformDisplayName(platform)}: ${errorMessage}`));
|
|
141
|
-
results.set(platform, { success: false, error: errorMessage });
|
|
142
|
-
}
|
|
143
|
-
console.log(); // Empty line between platforms
|
|
144
|
-
}
|
|
145
|
-
return results;
|
|
146
|
-
}
|
|
147
|
-
showSummary(results) {
|
|
148
|
-
console.log(chalk.cyan.bold('š Uninstall Summary:\n'));
|
|
149
|
-
let successCount = 0;
|
|
150
|
-
let failureCount = 0;
|
|
151
|
-
for (const [platform, result] of results) {
|
|
152
|
-
if (result.success) {
|
|
153
|
-
console.log(chalk.green(` ā
${this.getPlatformDisplayName(platform)}`));
|
|
154
|
-
successCount++;
|
|
155
|
-
}
|
|
156
|
-
else {
|
|
157
|
-
console.log(chalk.red(` ā ${this.getPlatformDisplayName(platform)} - ${result.error}`));
|
|
158
|
-
failureCount++;
|
|
159
|
-
}
|
|
160
|
-
}
|
|
161
|
-
console.log();
|
|
162
|
-
if (failureCount === 0) {
|
|
163
|
-
console.log(chalk.green.bold(`š All uninstallations completed successfully!`));
|
|
164
|
-
console.log(chalk.gray(`\nš” tiny-brain has been removed from the selected platforms.`));
|
|
165
|
-
}
|
|
166
|
-
else if (successCount > 0) {
|
|
167
|
-
console.log(chalk.yellow(`ā ļø ${successCount} succeeded, ${failureCount} failed`));
|
|
168
|
-
console.log(chalk.gray(`\nš” Check the errors above for failed platforms.`));
|
|
169
|
-
}
|
|
170
|
-
else {
|
|
171
|
-
console.log(chalk.red(`ā All uninstallations failed`));
|
|
172
|
-
console.log(chalk.gray(`\nš” Please check the errors above and try again.`));
|
|
173
|
-
}
|
|
174
|
-
}
|
|
175
|
-
}
|
|
176
|
-
//# sourceMappingURL=uninstall.command.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"uninstall.command.js","sourceRoot":"","sources":["../../../src/cli/commands/uninstall.command.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Validate Commit Message Command
|
|
3
|
-
*
|
|
4
|
-
* CLI command called by commit-msg git hook to validate PRD/Feature/Task references.
|
|
5
|
-
* Prevents commits with invalid references from being created.
|
|
6
|
-
*/
|
|
7
|
-
interface ValidateCommitMessageOptions {
|
|
8
|
-
messageFile: string;
|
|
9
|
-
prdBasePath?: string;
|
|
10
|
-
}
|
|
11
|
-
interface ValidationResult {
|
|
12
|
-
valid: boolean;
|
|
13
|
-
error?: string;
|
|
14
|
-
}
|
|
15
|
-
export declare class ValidateCommitMessageCommand {
|
|
16
|
-
/**
|
|
17
|
-
* Read commit message from file
|
|
18
|
-
*/
|
|
19
|
-
readCommitMessage(filePath: string): Promise<string>;
|
|
20
|
-
/**
|
|
21
|
-
* Parse commit headers for PRD, Feature, and Task metadata
|
|
22
|
-
* @returns Parsed headers or null if any required header is missing
|
|
23
|
-
*/
|
|
24
|
-
parseCommitHeaders(message: string): {
|
|
25
|
-
prdId: string;
|
|
26
|
-
featureId: string;
|
|
27
|
-
taskDescription: string;
|
|
28
|
-
} | null;
|
|
29
|
-
/**
|
|
30
|
-
* Validate that PRD directory exists
|
|
31
|
-
*/
|
|
32
|
-
validatePRDExists(prdId: string, prdBasePath: string): Promise<ValidationResult>;
|
|
33
|
-
/**
|
|
34
|
-
* Validate that feature exists in progress.json
|
|
35
|
-
*/
|
|
36
|
-
validateFeatureExists(prdId: string, featureId: string, prdBasePath: string): Promise<ValidationResult>;
|
|
37
|
-
/**
|
|
38
|
-
* Validate that task exists in feature's tasks array by exact description match
|
|
39
|
-
*/
|
|
40
|
-
validateTaskExists(prdId: string, featureId: string, taskDescription: string, prdBasePath: string): Promise<ValidationResult>;
|
|
41
|
-
/**
|
|
42
|
-
* Execute validation
|
|
43
|
-
*/
|
|
44
|
-
execute(options: ValidateCommitMessageOptions): Promise<void>;
|
|
45
|
-
}
|
|
46
|
-
export {};
|
|
47
|
-
//# sourceMappingURL=validate-commit-message.command.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"validate-commit-message.command.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/validate-commit-message.command.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,UAAU,4BAA4B;IACpC,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,UAAU,gBAAgB;IACxB,KAAK,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,qBAAa,4BAA4B;IACvC;;OAEG;IACG,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAQ1D;;;OAGG;IACH,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,eAAe,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;IAiBzG;;OAEG;IACG,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAgDtF;;OAEG;IACG,qBAAqB,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC;IA+C7G;;OAEG;IACG,kBAAkB,CACtB,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,MAAM,EACjB,eAAe,EAAE,MAAM,EACvB,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,gBAAgB,CAAC;IA8D5B;;OAEG;IACG,OAAO,CAAC,OAAO,EAAE,4BAA4B,GAAG,OAAO,CAAC,IAAI,CAAC;CA4CpE"}
|